pulumi-gcp 7.10.0a1708496697__py3-none-any.whl → 7.10.0a1708543111__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
Files changed (57) hide show
  1. pulumi_gcp/__init__.py +32 -0
  2. pulumi_gcp/bigtable/table_iam_binding.py +6 -6
  3. pulumi_gcp/bigtable/table_iam_member.py +6 -6
  4. pulumi_gcp/bigtable/table_iam_policy.py +6 -6
  5. pulumi_gcp/cloudbuildv2/_inputs.py +32 -12
  6. pulumi_gcp/cloudbuildv2/connection.py +140 -38
  7. pulumi_gcp/cloudbuildv2/connection_iam_binding.py +13 -0
  8. pulumi_gcp/cloudbuildv2/connection_iam_member.py +13 -0
  9. pulumi_gcp/cloudbuildv2/connection_iam_policy.py +13 -0
  10. pulumi_gcp/cloudbuildv2/get_connection_iam_policy.py +2 -0
  11. pulumi_gcp/cloudbuildv2/outputs.py +32 -12
  12. pulumi_gcp/clouddeploy/__init__.py +1 -0
  13. pulumi_gcp/clouddeploy/_inputs.py +277 -2
  14. pulumi_gcp/clouddeploy/custom_target_type.py +923 -0
  15. pulumi_gcp/clouddeploy/outputs.py +263 -2
  16. pulumi_gcp/cloudfunctions/function.py +32 -0
  17. pulumi_gcp/cloudfunctions/get_function.py +11 -1
  18. pulumi_gcp/cloudrunv2/service.py +18 -0
  19. pulumi_gcp/compute/_inputs.py +20 -20
  20. pulumi_gcp/compute/outputs.py +24 -24
  21. pulumi_gcp/config/vars.py +2 -2
  22. pulumi_gcp/container/_inputs.py +22 -0
  23. pulumi_gcp/container/outputs.py +28 -0
  24. pulumi_gcp/dns/_inputs.py +2 -2
  25. pulumi_gcp/dns/get_managed_zone.py +2 -2
  26. pulumi_gcp/dns/get_managed_zones.py +35 -2
  27. pulumi_gcp/dns/outputs.py +2 -2
  28. pulumi_gcp/eventarc/_inputs.py +78 -0
  29. pulumi_gcp/eventarc/outputs.py +83 -0
  30. pulumi_gcp/firebase/__init__.py +1 -0
  31. pulumi_gcp/firebase/app_check_debug_token.py +480 -0
  32. pulumi_gcp/healthcare/hl7_store.py +50 -1
  33. pulumi_gcp/identityplatform/_inputs.py +330 -0
  34. pulumi_gcp/identityplatform/config.py +216 -0
  35. pulumi_gcp/identityplatform/outputs.py +397 -0
  36. pulumi_gcp/networksecurity/__init__.py +2 -0
  37. pulumi_gcp/networksecurity/firewall_endpoint.py +631 -0
  38. pulumi_gcp/networksecurity/security_profile_group.py +654 -0
  39. pulumi_gcp/notebooks/instance.py +109 -4
  40. pulumi_gcp/provider.py +8 -0
  41. pulumi_gcp/recaptcha/enterprise_key.py +4 -4
  42. pulumi_gcp/securityposture/_inputs.py +48 -48
  43. pulumi_gcp/securityposture/outputs.py +40 -40
  44. pulumi_gcp/securityposture/posture.py +22 -2
  45. pulumi_gcp/vertex/_inputs.py +63 -0
  46. pulumi_gcp/vertex/ai_feature_online_store_featureview.py +208 -0
  47. pulumi_gcp/vertex/outputs.py +87 -0
  48. pulumi_gcp/workbench/_inputs.py +4 -4
  49. pulumi_gcp/workbench/instance.py +59 -8
  50. pulumi_gcp/workbench/outputs.py +4 -4
  51. pulumi_gcp/workstations/_inputs.py +16 -0
  52. pulumi_gcp/workstations/outputs.py +14 -0
  53. pulumi_gcp/workstations/workstation_config.py +2 -0
  54. {pulumi_gcp-7.10.0a1708496697.dist-info → pulumi_gcp-7.10.0a1708543111.dist-info}/METADATA +1 -1
  55. {pulumi_gcp-7.10.0a1708496697.dist-info → pulumi_gcp-7.10.0a1708543111.dist-info}/RECORD +57 -53
  56. {pulumi_gcp-7.10.0a1708496697.dist-info → pulumi_gcp-7.10.0a1708543111.dist-info}/WHEEL +0 -0
  57. {pulumi_gcp-7.10.0a1708496697.dist-info → pulumi_gcp-7.10.0a1708543111.dist-info}/top_level.txt +0 -0
@@ -22,6 +22,7 @@ class ConnectionIAMPolicyArgs:
22
22
  The set of arguments for constructing a ConnectionIAMPolicy resource.
23
23
  :param pulumi.Input[str] policy_data: The policy data generated by
24
24
  a `organizations_get_iam_policy` data source.
25
+ :param pulumi.Input[str] location: The location for the resource Used to find the parent resource to bind the IAM policy to
25
26
  :param pulumi.Input[str] name: Used to find the parent resource to bind the IAM policy to
26
27
  :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
27
28
  If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
@@ -62,6 +63,9 @@ class ConnectionIAMPolicyArgs:
62
63
  @property
63
64
  @pulumi.getter
64
65
  def location(self) -> Optional[pulumi.Input[str]]:
66
+ """
67
+ The location for the resource Used to find the parent resource to bind the IAM policy to
68
+ """
65
69
  return pulumi.get(self, "location")
66
70
 
67
71
  @location.setter
@@ -117,6 +121,7 @@ class _ConnectionIAMPolicyState:
117
121
  """
118
122
  Input properties used for looking up and filtering ConnectionIAMPolicy resources.
119
123
  :param pulumi.Input[str] etag: (Computed) The etag of the IAM policy.
124
+ :param pulumi.Input[str] location: The location for the resource Used to find the parent resource to bind the IAM policy to
120
125
  :param pulumi.Input[str] name: Used to find the parent resource to bind the IAM policy to
121
126
  :param pulumi.Input[str] policy_data: The policy data generated by
122
127
  a `organizations_get_iam_policy` data source.
@@ -161,6 +166,9 @@ class _ConnectionIAMPolicyState:
161
166
  @property
162
167
  @pulumi.getter
163
168
  def location(self) -> Optional[pulumi.Input[str]]:
169
+ """
170
+ The location for the resource Used to find the parent resource to bind the IAM policy to
171
+ """
164
172
  return pulumi.get(self, "location")
165
173
 
166
174
  @location.setter
@@ -325,6 +333,7 @@ class ConnectionIAMPolicy(pulumi.CustomResource):
325
333
 
326
334
  :param str resource_name: The name of the resource.
327
335
  :param pulumi.ResourceOptions opts: Options for the resource.
336
+ :param pulumi.Input[str] location: The location for the resource Used to find the parent resource to bind the IAM policy to
328
337
  :param pulumi.Input[str] name: Used to find the parent resource to bind the IAM policy to
329
338
  :param pulumi.Input[str] policy_data: The policy data generated by
330
339
  a `organizations_get_iam_policy` data source.
@@ -502,6 +511,7 @@ class ConnectionIAMPolicy(pulumi.CustomResource):
502
511
  :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
503
512
  :param pulumi.ResourceOptions opts: Options for the resource.
504
513
  :param pulumi.Input[str] etag: (Computed) The etag of the IAM policy.
514
+ :param pulumi.Input[str] location: The location for the resource Used to find the parent resource to bind the IAM policy to
505
515
  :param pulumi.Input[str] name: Used to find the parent resource to bind the IAM policy to
506
516
  :param pulumi.Input[str] policy_data: The policy data generated by
507
517
  a `organizations_get_iam_policy` data source.
@@ -542,6 +552,9 @@ class ConnectionIAMPolicy(pulumi.CustomResource):
542
552
  @property
543
553
  @pulumi.getter
544
554
  def location(self) -> pulumi.Output[str]:
555
+ """
556
+ The location for the resource Used to find the parent resource to bind the IAM policy to
557
+ """
545
558
  return pulumi.get(self, "location")
546
559
 
547
560
  @property
@@ -115,6 +115,7 @@ def get_connection_iam_policy(location: Optional[str] = None,
115
115
  ```
116
116
 
117
117
 
118
+ :param str location: The location for the resource Used to find the parent resource to bind the IAM policy to
118
119
  :param str name: Used to find the parent resource to bind the IAM policy to
119
120
  :param str project: The ID of the project in which the resource belongs.
120
121
  If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
@@ -155,6 +156,7 @@ def get_connection_iam_policy_output(location: Optional[pulumi.Input[Optional[st
155
156
  ```
156
157
 
157
158
 
159
+ :param str location: The location for the resource Used to find the parent resource to bind the IAM policy to
158
160
  :param str name: Used to find the parent resource to bind the IAM policy to
159
161
  :param str project: The ID of the project in which the resource belongs.
160
162
  If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
@@ -51,6 +51,7 @@ class ConnectionGithubConfig(dict):
51
51
  """
52
52
  :param int app_installation_id: GitHub App installation id.
53
53
  :param 'ConnectionGithubConfigAuthorizerCredentialArgs' authorizer_credential: OAuth credential of the account that authorized the Cloud Build GitHub App. It is recommended to use a robot account instead of a human user account. The OAuth token must be tied to the Cloud Build GitHub App.
54
+ Structure is documented below.
54
55
  """
55
56
  if app_installation_id is not None:
56
57
  pulumi.set(__self__, "app_installation_id", app_installation_id)
@@ -70,6 +71,7 @@ class ConnectionGithubConfig(dict):
70
71
  def authorizer_credential(self) -> Optional['outputs.ConnectionGithubConfigAuthorizerCredential']:
71
72
  """
72
73
  OAuth credential of the account that authorized the Cloud Build GitHub App. It is recommended to use a robot account instead of a human user account. The OAuth token must be tied to the Cloud Build GitHub App.
74
+ Structure is documented below.
73
75
  """
74
76
  return pulumi.get(self, "authorizer_credential")
75
77
 
@@ -98,7 +100,8 @@ class ConnectionGithubConfigAuthorizerCredential(dict):
98
100
  username: Optional[str] = None):
99
101
  """
100
102
  :param str oauth_token_secret_version: A SecretManager resource containing the OAuth token that authorizes the Cloud Build connection. Format: `projects/*/secrets/*/versions/*`.
101
- :param str username: Output only. The username associated to this token.
103
+ :param str username: (Output)
104
+ Output only. The username associated to this token.
102
105
  """
103
106
  if oauth_token_secret_version is not None:
104
107
  pulumi.set(__self__, "oauth_token_secret_version", oauth_token_secret_version)
@@ -117,6 +120,7 @@ class ConnectionGithubConfigAuthorizerCredential(dict):
117
120
  @pulumi.getter
118
121
  def username(self) -> Optional[str]:
119
122
  """
123
+ (Output)
120
124
  Output only. The username associated to this token.
121
125
  """
122
126
  return pulumi.get(self, "username")
@@ -171,6 +175,7 @@ class ConnectionGithubEnterpriseConfig(dict):
171
175
  :param str app_slug: The URL-friendly name of the GitHub App.
172
176
  :param str private_key_secret_version: SecretManager resource containing the private key of the GitHub App, formatted as `projects/*/secrets/*/versions/*`.
173
177
  :param 'ConnectionGithubEnterpriseConfigServiceDirectoryConfigArgs' service_directory_config: Configuration for using Service Directory to privately connect to a GitHub Enterprise server. This should only be set if the GitHub Enterprise server is hosted on-premises and not reachable by public internet. If this field is left empty, calls to the GitHub Enterprise server will be made over the public internet.
178
+ Structure is documented below.
174
179
  :param str ssl_ca: SSL certificate to use for requests to GitHub Enterprise.
175
180
  :param str webhook_secret_secret_version: SecretManager resource containing the webhook secret of the GitHub App, formatted as `projects/*/secrets/*/versions/*`.
176
181
  """
@@ -235,6 +240,7 @@ class ConnectionGithubEnterpriseConfig(dict):
235
240
  def service_directory_config(self) -> Optional['outputs.ConnectionGithubEnterpriseConfigServiceDirectoryConfig']:
236
241
  """
237
242
  Configuration for using Service Directory to privately connect to a GitHub Enterprise server. This should only be set if the GitHub Enterprise server is hosted on-premises and not reachable by public internet. If this field is left empty, calls to the GitHub Enterprise server will be made over the public internet.
243
+ Structure is documented below.
238
244
  """
239
245
  return pulumi.get(self, "service_directory_config")
240
246
 
@@ -314,11 +320,15 @@ class ConnectionGitlabConfig(dict):
314
320
  ssl_ca: Optional[str] = None):
315
321
  """
316
322
  :param 'ConnectionGitlabConfigAuthorizerCredentialArgs' authorizer_credential: Required. A GitLab personal access token with the `api` scope access.
323
+ Structure is documented below.
317
324
  :param 'ConnectionGitlabConfigReadAuthorizerCredentialArgs' read_authorizer_credential: Required. A GitLab personal access token with the minimum `read_api` scope access.
325
+ Structure is documented below.
318
326
  :param str webhook_secret_secret_version: Required. Immutable. SecretManager resource containing the webhook secret of a GitLab Enterprise project, formatted as `projects/*/secrets/*/versions/*`.
319
327
  :param str host_uri: The URI of the GitLab Enterprise host this connection is for. If not specified, the default value is https://gitlab.com.
320
- :param str server_version: Output only. Version of the GitLab Enterprise server running on the `host_uri`.
328
+ :param str server_version: (Output)
329
+ Output only. Version of the GitLab Enterprise server running on the `host_uri`.
321
330
  :param 'ConnectionGitlabConfigServiceDirectoryConfigArgs' service_directory_config: Configuration for using Service Directory to privately connect to a GitLab Enterprise server. This should only be set if the GitLab Enterprise server is hosted on-premises and not reachable by public internet. If this field is left empty, calls to the GitLab Enterprise server will be made over the public internet.
331
+ Structure is documented below.
322
332
  :param str ssl_ca: SSL certificate to use for requests to GitLab Enterprise.
323
333
  """
324
334
  pulumi.set(__self__, "authorizer_credential", authorizer_credential)
@@ -338,6 +348,7 @@ class ConnectionGitlabConfig(dict):
338
348
  def authorizer_credential(self) -> 'outputs.ConnectionGitlabConfigAuthorizerCredential':
339
349
  """
340
350
  Required. A GitLab personal access token with the `api` scope access.
351
+ Structure is documented below.
341
352
  """
342
353
  return pulumi.get(self, "authorizer_credential")
343
354
 
@@ -346,6 +357,7 @@ class ConnectionGitlabConfig(dict):
346
357
  def read_authorizer_credential(self) -> 'outputs.ConnectionGitlabConfigReadAuthorizerCredential':
347
358
  """
348
359
  Required. A GitLab personal access token with the minimum `read_api` scope access.
360
+ Structure is documented below.
349
361
  """
350
362
  return pulumi.get(self, "read_authorizer_credential")
351
363
 
@@ -369,6 +381,7 @@ class ConnectionGitlabConfig(dict):
369
381
  @pulumi.getter(name="serverVersion")
370
382
  def server_version(self) -> Optional[str]:
371
383
  """
384
+ (Output)
372
385
  Output only. Version of the GitLab Enterprise server running on the `host_uri`.
373
386
  """
374
387
  return pulumi.get(self, "server_version")
@@ -378,6 +391,7 @@ class ConnectionGitlabConfig(dict):
378
391
  def service_directory_config(self) -> Optional['outputs.ConnectionGitlabConfigServiceDirectoryConfig']:
379
392
  """
380
393
  Configuration for using Service Directory to privately connect to a GitLab Enterprise server. This should only be set if the GitLab Enterprise server is hosted on-premises and not reachable by public internet. If this field is left empty, calls to the GitLab Enterprise server will be made over the public internet.
394
+ Structure is documented below.
381
395
  """
382
396
  return pulumi.get(self, "service_directory_config")
383
397
 
@@ -414,7 +428,8 @@ class ConnectionGitlabConfigAuthorizerCredential(dict):
414
428
  username: Optional[str] = None):
415
429
  """
416
430
  :param str user_token_secret_version: Required. A SecretManager resource containing the user token that authorizes the Cloud Build connection. Format: `projects/*/secrets/*/versions/*`.
417
- :param str username: Output only. The username associated to this token.
431
+ :param str username: (Output)
432
+ Output only. The username associated to this token.
418
433
  """
419
434
  pulumi.set(__self__, "user_token_secret_version", user_token_secret_version)
420
435
  if username is not None:
@@ -432,6 +447,7 @@ class ConnectionGitlabConfigAuthorizerCredential(dict):
432
447
  @pulumi.getter
433
448
  def username(self) -> Optional[str]:
434
449
  """
450
+ (Output)
435
451
  Output only. The username associated to this token.
436
452
  """
437
453
  return pulumi.get(self, "username")
@@ -461,9 +477,8 @@ class ConnectionGitlabConfigReadAuthorizerCredential(dict):
461
477
  username: Optional[str] = None):
462
478
  """
463
479
  :param str user_token_secret_version: Required. A SecretManager resource containing the user token that authorizes the Cloud Build connection. Format: `projects/*/secrets/*/versions/*`.
464
- :param str username: Output only. The username associated to this token.
465
-
466
- - - -
480
+ :param str username: (Output)
481
+ Output only. The username associated to this token.
467
482
  """
468
483
  pulumi.set(__self__, "user_token_secret_version", user_token_secret_version)
469
484
  if username is not None:
@@ -481,9 +496,8 @@ class ConnectionGitlabConfigReadAuthorizerCredential(dict):
481
496
  @pulumi.getter
482
497
  def username(self) -> Optional[str]:
483
498
  """
499
+ (Output)
484
500
  Output only. The username associated to this token.
485
-
486
- - - -
487
501
  """
488
502
  return pulumi.get(self, "username")
489
503
 
@@ -584,9 +598,12 @@ class ConnectionInstallationState(dict):
584
598
  message: Optional[str] = None,
585
599
  stage: Optional[str] = None):
586
600
  """
587
- :param str action_uri: Output only. Link to follow for next action. Empty string if the installation is already complete.
588
- :param str message: Output only. Message of what the user should do next to continue the installation. Empty string if the installation is already complete.
589
- :param str stage: Output only. Current step of the installation process. Possible values: STAGE_UNSPECIFIED, PENDING_CREATE_APP, PENDING_USER_OAUTH, PENDING_INSTALL_APP, COMPLETE
601
+ :param str action_uri: (Output)
602
+ Output only. Link to follow for next action. Empty string if the installation is already complete.
603
+ :param str message: (Output)
604
+ Output only. Message of what the user should do next to continue the installation. Empty string if the installation is already complete.
605
+ :param str stage: (Output)
606
+ Output only. Current step of the installation process.
590
607
  """
591
608
  if action_uri is not None:
592
609
  pulumi.set(__self__, "action_uri", action_uri)
@@ -599,6 +616,7 @@ class ConnectionInstallationState(dict):
599
616
  @pulumi.getter(name="actionUri")
600
617
  def action_uri(self) -> Optional[str]:
601
618
  """
619
+ (Output)
602
620
  Output only. Link to follow for next action. Empty string if the installation is already complete.
603
621
  """
604
622
  return pulumi.get(self, "action_uri")
@@ -607,6 +625,7 @@ class ConnectionInstallationState(dict):
607
625
  @pulumi.getter
608
626
  def message(self) -> Optional[str]:
609
627
  """
628
+ (Output)
610
629
  Output only. Message of what the user should do next to continue the installation. Empty string if the installation is already complete.
611
630
  """
612
631
  return pulumi.get(self, "message")
@@ -615,7 +634,8 @@ class ConnectionInstallationState(dict):
615
634
  @pulumi.getter
616
635
  def stage(self) -> Optional[str]:
617
636
  """
618
- Output only. Current step of the installation process. Possible values: STAGE_UNSPECIFIED, PENDING_CREATE_APP, PENDING_USER_OAUTH, PENDING_INSTALL_APP, COMPLETE
637
+ (Output)
638
+ Output only. Current step of the installation process.
619
639
  """
620
640
  return pulumi.get(self, "stage")
621
641
 
@@ -6,6 +6,7 @@ from .. import _utilities
6
6
  import typing
7
7
  # Export this package's modules as members:
8
8
  from .automation import *
9
+ from .custom_target_type import *
9
10
  from .delivery_pipeline import *
10
11
  from .delivery_pipeline_iam_binding import *
11
12
  from .delivery_pipeline_iam_member import *
@@ -15,6 +15,10 @@ __all__ = [
15
15
  'AutomationRulePromoteReleaseRuleArgs',
16
16
  'AutomationSelectorArgs',
17
17
  'AutomationSelectorTargetArgs',
18
+ 'CustomTargetTypeCustomActionsArgs',
19
+ 'CustomTargetTypeCustomActionsIncludeSkaffoldModuleArgs',
20
+ 'CustomTargetTypeCustomActionsIncludeSkaffoldModuleGitArgs',
21
+ 'CustomTargetTypeCustomActionsIncludeSkaffoldModuleGoogleCloudStorageArgs',
18
22
  'DeliveryPipelineConditionArgs',
19
23
  'DeliveryPipelineConditionPipelineReadyConditionArgs',
20
24
  'DeliveryPipelineConditionTargetsPresentConditionArgs',
@@ -282,6 +286,213 @@ class AutomationSelectorTargetArgs:
282
286
  pulumi.set(self, "labels", value)
283
287
 
284
288
 
289
+ @pulumi.input_type
290
+ class CustomTargetTypeCustomActionsArgs:
291
+ def __init__(__self__, *,
292
+ deploy_action: pulumi.Input[str],
293
+ include_skaffold_modules: Optional[pulumi.Input[Sequence[pulumi.Input['CustomTargetTypeCustomActionsIncludeSkaffoldModuleArgs']]]] = None,
294
+ render_action: Optional[pulumi.Input[str]] = None):
295
+ """
296
+ :param pulumi.Input[str] deploy_action: The Skaffold custom action responsible for deploy operations.
297
+ :param pulumi.Input[Sequence[pulumi.Input['CustomTargetTypeCustomActionsIncludeSkaffoldModuleArgs']]] include_skaffold_modules: List of Skaffold modules Cloud Deploy will include in the Skaffold Config as required before performing diagnose.
298
+ Structure is documented below.
299
+ :param pulumi.Input[str] render_action: The Skaffold custom action responsible for render operations. If not provided then Cloud Deploy will perform the render operations via `skaffold render`.
300
+ """
301
+ pulumi.set(__self__, "deploy_action", deploy_action)
302
+ if include_skaffold_modules is not None:
303
+ pulumi.set(__self__, "include_skaffold_modules", include_skaffold_modules)
304
+ if render_action is not None:
305
+ pulumi.set(__self__, "render_action", render_action)
306
+
307
+ @property
308
+ @pulumi.getter(name="deployAction")
309
+ def deploy_action(self) -> pulumi.Input[str]:
310
+ """
311
+ The Skaffold custom action responsible for deploy operations.
312
+ """
313
+ return pulumi.get(self, "deploy_action")
314
+
315
+ @deploy_action.setter
316
+ def deploy_action(self, value: pulumi.Input[str]):
317
+ pulumi.set(self, "deploy_action", value)
318
+
319
+ @property
320
+ @pulumi.getter(name="includeSkaffoldModules")
321
+ def include_skaffold_modules(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['CustomTargetTypeCustomActionsIncludeSkaffoldModuleArgs']]]]:
322
+ """
323
+ List of Skaffold modules Cloud Deploy will include in the Skaffold Config as required before performing diagnose.
324
+ Structure is documented below.
325
+ """
326
+ return pulumi.get(self, "include_skaffold_modules")
327
+
328
+ @include_skaffold_modules.setter
329
+ def include_skaffold_modules(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['CustomTargetTypeCustomActionsIncludeSkaffoldModuleArgs']]]]):
330
+ pulumi.set(self, "include_skaffold_modules", value)
331
+
332
+ @property
333
+ @pulumi.getter(name="renderAction")
334
+ def render_action(self) -> Optional[pulumi.Input[str]]:
335
+ """
336
+ The Skaffold custom action responsible for render operations. If not provided then Cloud Deploy will perform the render operations via `skaffold render`.
337
+ """
338
+ return pulumi.get(self, "render_action")
339
+
340
+ @render_action.setter
341
+ def render_action(self, value: Optional[pulumi.Input[str]]):
342
+ pulumi.set(self, "render_action", value)
343
+
344
+
345
+ @pulumi.input_type
346
+ class CustomTargetTypeCustomActionsIncludeSkaffoldModuleArgs:
347
+ def __init__(__self__, *,
348
+ configs: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
349
+ git: Optional[pulumi.Input['CustomTargetTypeCustomActionsIncludeSkaffoldModuleGitArgs']] = None,
350
+ google_cloud_storage: Optional[pulumi.Input['CustomTargetTypeCustomActionsIncludeSkaffoldModuleGoogleCloudStorageArgs']] = None):
351
+ """
352
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] configs: The Skaffold Config modules to use from the specified source.
353
+ :param pulumi.Input['CustomTargetTypeCustomActionsIncludeSkaffoldModuleGitArgs'] git: Remote git repository containing the Skaffold Config modules.
354
+ Structure is documented below.
355
+ :param pulumi.Input['CustomTargetTypeCustomActionsIncludeSkaffoldModuleGoogleCloudStorageArgs'] google_cloud_storage: Cloud Storage bucket containing Skaffold Config modules.
356
+ Structure is documented below.
357
+ """
358
+ if configs is not None:
359
+ pulumi.set(__self__, "configs", configs)
360
+ if git is not None:
361
+ pulumi.set(__self__, "git", git)
362
+ if google_cloud_storage is not None:
363
+ pulumi.set(__self__, "google_cloud_storage", google_cloud_storage)
364
+
365
+ @property
366
+ @pulumi.getter
367
+ def configs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
368
+ """
369
+ The Skaffold Config modules to use from the specified source.
370
+ """
371
+ return pulumi.get(self, "configs")
372
+
373
+ @configs.setter
374
+ def configs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
375
+ pulumi.set(self, "configs", value)
376
+
377
+ @property
378
+ @pulumi.getter
379
+ def git(self) -> Optional[pulumi.Input['CustomTargetTypeCustomActionsIncludeSkaffoldModuleGitArgs']]:
380
+ """
381
+ Remote git repository containing the Skaffold Config modules.
382
+ Structure is documented below.
383
+ """
384
+ return pulumi.get(self, "git")
385
+
386
+ @git.setter
387
+ def git(self, value: Optional[pulumi.Input['CustomTargetTypeCustomActionsIncludeSkaffoldModuleGitArgs']]):
388
+ pulumi.set(self, "git", value)
389
+
390
+ @property
391
+ @pulumi.getter(name="googleCloudStorage")
392
+ def google_cloud_storage(self) -> Optional[pulumi.Input['CustomTargetTypeCustomActionsIncludeSkaffoldModuleGoogleCloudStorageArgs']]:
393
+ """
394
+ Cloud Storage bucket containing Skaffold Config modules.
395
+ Structure is documented below.
396
+ """
397
+ return pulumi.get(self, "google_cloud_storage")
398
+
399
+ @google_cloud_storage.setter
400
+ def google_cloud_storage(self, value: Optional[pulumi.Input['CustomTargetTypeCustomActionsIncludeSkaffoldModuleGoogleCloudStorageArgs']]):
401
+ pulumi.set(self, "google_cloud_storage", value)
402
+
403
+
404
+ @pulumi.input_type
405
+ class CustomTargetTypeCustomActionsIncludeSkaffoldModuleGitArgs:
406
+ def __init__(__self__, *,
407
+ repo: pulumi.Input[str],
408
+ path: Optional[pulumi.Input[str]] = None,
409
+ ref: Optional[pulumi.Input[str]] = None):
410
+ """
411
+ :param pulumi.Input[str] repo: Git repository the package should be cloned from.
412
+ :param pulumi.Input[str] path: Relative path from the repository root to the Skaffold file.
413
+ :param pulumi.Input[str] ref: Git ref the package should be cloned from.
414
+ """
415
+ pulumi.set(__self__, "repo", repo)
416
+ if path is not None:
417
+ pulumi.set(__self__, "path", path)
418
+ if ref is not None:
419
+ pulumi.set(__self__, "ref", ref)
420
+
421
+ @property
422
+ @pulumi.getter
423
+ def repo(self) -> pulumi.Input[str]:
424
+ """
425
+ Git repository the package should be cloned from.
426
+ """
427
+ return pulumi.get(self, "repo")
428
+
429
+ @repo.setter
430
+ def repo(self, value: pulumi.Input[str]):
431
+ pulumi.set(self, "repo", value)
432
+
433
+ @property
434
+ @pulumi.getter
435
+ def path(self) -> Optional[pulumi.Input[str]]:
436
+ """
437
+ Relative path from the repository root to the Skaffold file.
438
+ """
439
+ return pulumi.get(self, "path")
440
+
441
+ @path.setter
442
+ def path(self, value: Optional[pulumi.Input[str]]):
443
+ pulumi.set(self, "path", value)
444
+
445
+ @property
446
+ @pulumi.getter
447
+ def ref(self) -> Optional[pulumi.Input[str]]:
448
+ """
449
+ Git ref the package should be cloned from.
450
+ """
451
+ return pulumi.get(self, "ref")
452
+
453
+ @ref.setter
454
+ def ref(self, value: Optional[pulumi.Input[str]]):
455
+ pulumi.set(self, "ref", value)
456
+
457
+
458
+ @pulumi.input_type
459
+ class CustomTargetTypeCustomActionsIncludeSkaffoldModuleGoogleCloudStorageArgs:
460
+ def __init__(__self__, *,
461
+ source: pulumi.Input[str],
462
+ path: Optional[pulumi.Input[str]] = None):
463
+ """
464
+ :param pulumi.Input[str] source: Cloud Storage source paths to copy recursively. For example, providing `gs://my-bucket/dir/configs/*` will result in Skaffold copying all files within the `dir/configs` directory in the bucket `my-bucket`.
465
+ :param pulumi.Input[str] path: Relative path from the source to the Skaffold file.
466
+ """
467
+ pulumi.set(__self__, "source", source)
468
+ if path is not None:
469
+ pulumi.set(__self__, "path", path)
470
+
471
+ @property
472
+ @pulumi.getter
473
+ def source(self) -> pulumi.Input[str]:
474
+ """
475
+ Cloud Storage source paths to copy recursively. For example, providing `gs://my-bucket/dir/configs/*` will result in Skaffold copying all files within the `dir/configs` directory in the bucket `my-bucket`.
476
+ """
477
+ return pulumi.get(self, "source")
478
+
479
+ @source.setter
480
+ def source(self, value: pulumi.Input[str]):
481
+ pulumi.set(self, "source", value)
482
+
483
+ @property
484
+ @pulumi.getter
485
+ def path(self) -> Optional[pulumi.Input[str]]:
486
+ """
487
+ Relative path from the source to the Skaffold file.
488
+ """
489
+ return pulumi.get(self, "path")
490
+
491
+ @path.setter
492
+ def path(self, value: Optional[pulumi.Input[str]]):
493
+ pulumi.set(self, "path", value)
494
+
495
+
285
496
  @pulumi.input_type
286
497
  class DeliveryPipelineConditionArgs:
287
498
  def __init__(__self__, *,
@@ -1105,12 +1316,24 @@ class DeliveryPipelineSerialPipelineStageStrategyCanaryRuntimeConfigArgs:
1105
1316
  @pulumi.input_type
1106
1317
  class DeliveryPipelineSerialPipelineStageStrategyCanaryRuntimeConfigCloudRunArgs:
1107
1318
  def __init__(__self__, *,
1108
- automatic_traffic_control: Optional[pulumi.Input[bool]] = None):
1319
+ automatic_traffic_control: Optional[pulumi.Input[bool]] = None,
1320
+ canary_revision_tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1321
+ prior_revision_tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1322
+ stable_revision_tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
1109
1323
  """
1110
1324
  :param pulumi.Input[bool] automatic_traffic_control: Whether Cloud Deploy should update the traffic stanza in a Cloud Run Service on the user's behalf to facilitate traffic splitting. This is required to be true for CanaryDeployments, but optional for CustomCanaryDeployments.
1325
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] canary_revision_tags: Optional. A list of tags that are added to the canary revision while the canary phase is in progress.
1326
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] prior_revision_tags: Optional. A list of tags that are added to the prior revision while the canary phase is in progress.
1327
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] stable_revision_tags: Optional. A list of tags that are added to the final stable revision when the stable phase is applied.
1111
1328
  """
1112
1329
  if automatic_traffic_control is not None:
1113
1330
  pulumi.set(__self__, "automatic_traffic_control", automatic_traffic_control)
1331
+ if canary_revision_tags is not None:
1332
+ pulumi.set(__self__, "canary_revision_tags", canary_revision_tags)
1333
+ if prior_revision_tags is not None:
1334
+ pulumi.set(__self__, "prior_revision_tags", prior_revision_tags)
1335
+ if stable_revision_tags is not None:
1336
+ pulumi.set(__self__, "stable_revision_tags", stable_revision_tags)
1114
1337
 
1115
1338
  @property
1116
1339
  @pulumi.getter(name="automaticTrafficControl")
@@ -1124,6 +1347,42 @@ class DeliveryPipelineSerialPipelineStageStrategyCanaryRuntimeConfigCloudRunArgs
1124
1347
  def automatic_traffic_control(self, value: Optional[pulumi.Input[bool]]):
1125
1348
  pulumi.set(self, "automatic_traffic_control", value)
1126
1349
 
1350
+ @property
1351
+ @pulumi.getter(name="canaryRevisionTags")
1352
+ def canary_revision_tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
1353
+ """
1354
+ Optional. A list of tags that are added to the canary revision while the canary phase is in progress.
1355
+ """
1356
+ return pulumi.get(self, "canary_revision_tags")
1357
+
1358
+ @canary_revision_tags.setter
1359
+ def canary_revision_tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
1360
+ pulumi.set(self, "canary_revision_tags", value)
1361
+
1362
+ @property
1363
+ @pulumi.getter(name="priorRevisionTags")
1364
+ def prior_revision_tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
1365
+ """
1366
+ Optional. A list of tags that are added to the prior revision while the canary phase is in progress.
1367
+ """
1368
+ return pulumi.get(self, "prior_revision_tags")
1369
+
1370
+ @prior_revision_tags.setter
1371
+ def prior_revision_tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
1372
+ pulumi.set(self, "prior_revision_tags", value)
1373
+
1374
+ @property
1375
+ @pulumi.getter(name="stableRevisionTags")
1376
+ def stable_revision_tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
1377
+ """
1378
+ Optional. A list of tags that are added to the final stable revision when the stable phase is applied.
1379
+ """
1380
+ return pulumi.get(self, "stable_revision_tags")
1381
+
1382
+ @stable_revision_tags.setter
1383
+ def stable_revision_tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
1384
+ pulumi.set(self, "stable_revision_tags", value)
1385
+
1127
1386
 
1128
1387
  @pulumi.input_type
1129
1388
  class DeliveryPipelineSerialPipelineStageStrategyCanaryRuntimeConfigKubernetesArgs:
@@ -1170,18 +1429,22 @@ class DeliveryPipelineSerialPipelineStageStrategyCanaryRuntimeConfigKubernetesGa
1170
1429
  deployment: pulumi.Input[str],
1171
1430
  http_route: pulumi.Input[str],
1172
1431
  service: pulumi.Input[str],
1173
- route_update_wait_time: Optional[pulumi.Input[str]] = None):
1432
+ route_update_wait_time: Optional[pulumi.Input[str]] = None,
1433
+ stable_cutback_duration: Optional[pulumi.Input[str]] = None):
1174
1434
  """
1175
1435
  :param pulumi.Input[str] deployment: Required. Name of the Kubernetes Deployment whose traffic is managed by the specified HTTPRoute and Service.
1176
1436
  :param pulumi.Input[str] http_route: Required. Name of the Gateway API HTTPRoute.
1177
1437
  :param pulumi.Input[str] service: Required. Name of the Kubernetes Service.
1178
1438
  :param pulumi.Input[str] route_update_wait_time: Optional. The time to wait for route updates to propagate. The maximum configurable time is 3 hours, in seconds format. If unspecified, there is no wait time.
1439
+ :param pulumi.Input[str] stable_cutback_duration: Optional. The amount of time to migrate traffic back from the canary Service to the original Service during the stable phase deployment. If specified, must be between 15s and 3600s. If unspecified, there is no cutback time.
1179
1440
  """
1180
1441
  pulumi.set(__self__, "deployment", deployment)
1181
1442
  pulumi.set(__self__, "http_route", http_route)
1182
1443
  pulumi.set(__self__, "service", service)
1183
1444
  if route_update_wait_time is not None:
1184
1445
  pulumi.set(__self__, "route_update_wait_time", route_update_wait_time)
1446
+ if stable_cutback_duration is not None:
1447
+ pulumi.set(__self__, "stable_cutback_duration", stable_cutback_duration)
1185
1448
 
1186
1449
  @property
1187
1450
  @pulumi.getter
@@ -1231,6 +1494,18 @@ class DeliveryPipelineSerialPipelineStageStrategyCanaryRuntimeConfigKubernetesGa
1231
1494
  def route_update_wait_time(self, value: Optional[pulumi.Input[str]]):
1232
1495
  pulumi.set(self, "route_update_wait_time", value)
1233
1496
 
1497
+ @property
1498
+ @pulumi.getter(name="stableCutbackDuration")
1499
+ def stable_cutback_duration(self) -> Optional[pulumi.Input[str]]:
1500
+ """
1501
+ Optional. The amount of time to migrate traffic back from the canary Service to the original Service during the stable phase deployment. If specified, must be between 15s and 3600s. If unspecified, there is no cutback time.
1502
+ """
1503
+ return pulumi.get(self, "stable_cutback_duration")
1504
+
1505
+ @stable_cutback_duration.setter
1506
+ def stable_cutback_duration(self, value: Optional[pulumi.Input[str]]):
1507
+ pulumi.set(self, "stable_cutback_duration", value)
1508
+
1234
1509
 
1235
1510
  @pulumi.input_type
1236
1511
  class DeliveryPipelineSerialPipelineStageStrategyCanaryRuntimeConfigKubernetesServiceNetworkingArgs: