pulumi-gcp 7.12.0a1709365001__py3-none-any.whl → 7.13.0a1709814369__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
Files changed (73) hide show
  1. pulumi_gcp/__init__.py +72 -0
  2. pulumi_gcp/appengine/application_url_dispatch_rules.py +2 -2
  3. pulumi_gcp/appengine/engine_split_traffic.py +4 -4
  4. pulumi_gcp/appengine/service_network_settings.py +2 -2
  5. pulumi_gcp/appengine/standard_app_version.py +4 -4
  6. pulumi_gcp/bigquery/_inputs.py +88 -0
  7. pulumi_gcp/bigquery/dataset_iam_binding.py +35 -28
  8. pulumi_gcp/bigquery/dataset_iam_member.py +35 -28
  9. pulumi_gcp/bigquery/dataset_iam_policy.py +35 -28
  10. pulumi_gcp/bigquery/outputs.py +91 -0
  11. pulumi_gcp/bigquery/routine.py +118 -12
  12. pulumi_gcp/certificatemanager/dns_authorization.py +63 -14
  13. pulumi_gcp/clouddeploy/__init__.py +4 -0
  14. pulumi_gcp/clouddeploy/_inputs.py +80 -0
  15. pulumi_gcp/clouddeploy/automation.py +16 -0
  16. pulumi_gcp/clouddeploy/get_target_iam_policy.py +162 -0
  17. pulumi_gcp/clouddeploy/outputs.py +56 -0
  18. pulumi_gcp/clouddeploy/target_iam_binding.py +324 -0
  19. pulumi_gcp/clouddeploy/target_iam_member.py +324 -0
  20. pulumi_gcp/clouddeploy/target_iam_policy.py +253 -0
  21. pulumi_gcp/cloudfunctionsv2/function.py +0 -2
  22. pulumi_gcp/cloudrunv2/_inputs.py +4 -2
  23. pulumi_gcp/cloudrunv2/outputs.py +8 -4
  24. pulumi_gcp/composer/_inputs.py +18 -2
  25. pulumi_gcp/composer/outputs.py +29 -4
  26. pulumi_gcp/compute/__init__.py +1 -0
  27. pulumi_gcp/compute/get_forwarding_rules.py +142 -0
  28. pulumi_gcp/compute/instance_group_membership.py +4 -4
  29. pulumi_gcp/compute/outputs.py +816 -0
  30. pulumi_gcp/compute/region_network_endpoint.py +2 -2
  31. pulumi_gcp/compute/region_target_https_proxy.py +162 -37
  32. pulumi_gcp/compute/router_nat.py +8 -8
  33. pulumi_gcp/container/_inputs.py +80 -0
  34. pulumi_gcp/container/cluster.py +20 -16
  35. pulumi_gcp/container/outputs.py +115 -1
  36. pulumi_gcp/firebase/__init__.py +4 -0
  37. pulumi_gcp/firebase/app_check_app_attest_config.py +461 -0
  38. pulumi_gcp/firebase/app_check_play_integrity_config.py +465 -0
  39. pulumi_gcp/firebase/app_check_recaptcha_enterprise_config.py +474 -0
  40. pulumi_gcp/firebase/app_check_recaptcha_v3_config.py +511 -0
  41. pulumi_gcp/gkehub/scope.py +85 -0
  42. pulumi_gcp/integrationconnectors/connection.py +4 -4
  43. pulumi_gcp/looker/_inputs.py +42 -0
  44. pulumi_gcp/looker/instance.py +90 -0
  45. pulumi_gcp/looker/outputs.py +34 -0
  46. pulumi_gcp/migrationcenter/__init__.py +3 -0
  47. pulumi_gcp/migrationcenter/_inputs.py +500 -0
  48. pulumi_gcp/migrationcenter/outputs.py +562 -0
  49. pulumi_gcp/migrationcenter/preference_set.py +687 -0
  50. pulumi_gcp/monitoring/custom_service.py +4 -2
  51. pulumi_gcp/monitoring/generic_service.py +4 -2
  52. pulumi_gcp/monitoring/get_app_engine_service.py +2 -2
  53. pulumi_gcp/netapp/__init__.py +1 -0
  54. pulumi_gcp/netapp/_inputs.py +275 -0
  55. pulumi_gcp/netapp/outputs.py +290 -0
  56. pulumi_gcp/netapp/volume.py +140 -2
  57. pulumi_gcp/netapp/volume_replication.py +1292 -0
  58. pulumi_gcp/notebooks/instance.py +1 -1
  59. pulumi_gcp/securityposture/_inputs.py +22 -19
  60. pulumi_gcp/securityposture/outputs.py +18 -15
  61. pulumi_gcp/securityposture/posture.py +28 -48
  62. pulumi_gcp/spanner/_inputs.py +20 -0
  63. pulumi_gcp/spanner/database_iam_binding.py +134 -0
  64. pulumi_gcp/spanner/database_iam_member.py +134 -0
  65. pulumi_gcp/spanner/database_iam_policy.py +114 -0
  66. pulumi_gcp/spanner/outputs.py +20 -0
  67. pulumi_gcp/workbench/_inputs.py +157 -2
  68. pulumi_gcp/workbench/instance.py +52 -0
  69. pulumi_gcp/workbench/outputs.py +154 -2
  70. {pulumi_gcp-7.12.0a1709365001.dist-info → pulumi_gcp-7.13.0a1709814369.dist-info}/METADATA +1 -1
  71. {pulumi_gcp-7.12.0a1709365001.dist-info → pulumi_gcp-7.13.0a1709814369.dist-info}/RECORD +73 -60
  72. {pulumi_gcp-7.12.0a1709365001.dist-info → pulumi_gcp-7.13.0a1709814369.dist-info}/WHEEL +0 -0
  73. {pulumi_gcp-7.12.0a1709365001.dist-info → pulumi_gcp-7.13.0a1709814369.dist-info}/top_level.txt +0 -0
@@ -19,6 +19,7 @@ class DnsAuthorizationArgs:
19
19
  domain: pulumi.Input[str],
20
20
  description: Optional[pulumi.Input[str]] = None,
21
21
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
22
+ location: Optional[pulumi.Input[str]] = None,
22
23
  name: Optional[pulumi.Input[str]] = None,
23
24
  project: Optional[pulumi.Input[str]] = None):
24
25
  """
@@ -30,6 +31,7 @@ class DnsAuthorizationArgs:
30
31
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Set of label tags associated with the DNS Authorization resource.
31
32
  **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
32
33
  Please refer to the field `effective_labels` for all of the labels present on the resource.
34
+ :param pulumi.Input[str] location: The Certificate Manager location. If not specified, "global" is used.
33
35
  :param pulumi.Input[str] name: Name of the resource; provided by the client when the resource is created.
34
36
  The name must be 1-64 characters long, and match the regular expression [a-zA-Z][a-zA-Z0-9_-]* which means the first character must be a letter,
35
37
  and all following characters must be a dash, underscore, letter or digit.
@@ -44,6 +46,8 @@ class DnsAuthorizationArgs:
44
46
  pulumi.set(__self__, "description", description)
45
47
  if labels is not None:
46
48
  pulumi.set(__self__, "labels", labels)
49
+ if location is not None:
50
+ pulumi.set(__self__, "location", location)
47
51
  if name is not None:
48
52
  pulumi.set(__self__, "name", name)
49
53
  if project is not None:
@@ -89,6 +93,18 @@ class DnsAuthorizationArgs:
89
93
  def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
90
94
  pulumi.set(self, "labels", value)
91
95
 
96
+ @property
97
+ @pulumi.getter
98
+ def location(self) -> Optional[pulumi.Input[str]]:
99
+ """
100
+ The Certificate Manager location. If not specified, "global" is used.
101
+ """
102
+ return pulumi.get(self, "location")
103
+
104
+ @location.setter
105
+ def location(self, value: Optional[pulumi.Input[str]]):
106
+ pulumi.set(self, "location", value)
107
+
92
108
  @property
93
109
  @pulumi.getter
94
110
  def name(self) -> Optional[pulumi.Input[str]]:
@@ -128,6 +144,7 @@ class _DnsAuthorizationState:
128
144
  domain: Optional[pulumi.Input[str]] = None,
129
145
  effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
130
146
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
147
+ location: Optional[pulumi.Input[str]] = None,
131
148
  name: Optional[pulumi.Input[str]] = None,
132
149
  project: Optional[pulumi.Input[str]] = None,
133
150
  pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None):
@@ -145,6 +162,7 @@ class _DnsAuthorizationState:
145
162
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Set of label tags associated with the DNS Authorization resource.
146
163
  **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
147
164
  Please refer to the field `effective_labels` for all of the labels present on the resource.
165
+ :param pulumi.Input[str] location: The Certificate Manager location. If not specified, "global" is used.
148
166
  :param pulumi.Input[str] name: Name of the resource; provided by the client when the resource is created.
149
167
  The name must be 1-64 characters long, and match the regular expression [a-zA-Z][a-zA-Z0-9_-]* which means the first character must be a letter,
150
168
  and all following characters must be a dash, underscore, letter or digit.
@@ -166,6 +184,8 @@ class _DnsAuthorizationState:
166
184
  pulumi.set(__self__, "effective_labels", effective_labels)
167
185
  if labels is not None:
168
186
  pulumi.set(__self__, "labels", labels)
187
+ if location is not None:
188
+ pulumi.set(__self__, "location", location)
169
189
  if name is not None:
170
190
  pulumi.set(__self__, "name", name)
171
191
  if project is not None:
@@ -240,6 +260,18 @@ class _DnsAuthorizationState:
240
260
  def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
241
261
  pulumi.set(self, "labels", value)
242
262
 
263
+ @property
264
+ @pulumi.getter
265
+ def location(self) -> Optional[pulumi.Input[str]]:
266
+ """
267
+ The Certificate Manager location. If not specified, "global" is used.
268
+ """
269
+ return pulumi.get(self, "location")
270
+
271
+ @location.setter
272
+ def location(self, value: Optional[pulumi.Input[str]]):
273
+ pulumi.set(self, "location", value)
274
+
243
275
  @property
244
276
  @pulumi.getter
245
277
  def name(self) -> Optional[pulumi.Input[str]]:
@@ -292,6 +324,7 @@ class DnsAuthorization(pulumi.CustomResource):
292
324
  description: Optional[pulumi.Input[str]] = None,
293
325
  domain: Optional[pulumi.Input[str]] = None,
294
326
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
327
+ location: Optional[pulumi.Input[str]] = None,
295
328
  name: Optional[pulumi.Input[str]] = None,
296
329
  project: Optional[pulumi.Input[str]] = None,
297
330
  __props__=None):
@@ -307,7 +340,8 @@ class DnsAuthorization(pulumi.CustomResource):
307
340
 
308
341
  default = gcp.certificatemanager.DnsAuthorization("default",
309
342
  name="dns-auth",
310
- description="The default dnss",
343
+ location="global",
344
+ description="The default dns",
311
345
  domain="subdomain.hashicorptest.com")
312
346
  pulumi.export("recordNameToInsert", default.dns_resource_records[0].name)
313
347
  pulumi.export("recordTypeToInsert", default.dns_resource_records[0].type)
@@ -318,24 +352,24 @@ class DnsAuthorization(pulumi.CustomResource):
318
352
 
319
353
  DnsAuthorization can be imported using any of these accepted formats:
320
354
 
321
- * `projects/{{project}}/locations/global/dnsAuthorizations/{{name}}`
355
+ * `projects/{{project}}/locations/{{location}}/dnsAuthorizations/{{name}}`
322
356
 
323
- * `{{project}}/{{name}}`
357
+ * `{{project}}/{{location}}/{{name}}`
324
358
 
325
- * `{{name}}`
359
+ * `{{location}}/{{name}}`
326
360
 
327
361
  When using the `pulumi import` command, DnsAuthorization can be imported using one of the formats above. For example:
328
362
 
329
363
  ```sh
330
- $ pulumi import gcp:certificatemanager/dnsAuthorization:DnsAuthorization default projects/{{project}}/locations/global/dnsAuthorizations/{{name}}
364
+ $ pulumi import gcp:certificatemanager/dnsAuthorization:DnsAuthorization default projects/{{project}}/locations/{{location}}/dnsAuthorizations/{{name}}
331
365
  ```
332
366
 
333
367
  ```sh
334
- $ pulumi import gcp:certificatemanager/dnsAuthorization:DnsAuthorization default {{project}}/{{name}}
368
+ $ pulumi import gcp:certificatemanager/dnsAuthorization:DnsAuthorization default {{project}}/{{location}}/{{name}}
335
369
  ```
336
370
 
337
371
  ```sh
338
- $ pulumi import gcp:certificatemanager/dnsAuthorization:DnsAuthorization default {{name}}
372
+ $ pulumi import gcp:certificatemanager/dnsAuthorization:DnsAuthorization default {{location}}/{{name}}
339
373
  ```
340
374
 
341
375
  :param str resource_name: The name of the resource.
@@ -347,6 +381,7 @@ class DnsAuthorization(pulumi.CustomResource):
347
381
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Set of label tags associated with the DNS Authorization resource.
348
382
  **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
349
383
  Please refer to the field `effective_labels` for all of the labels present on the resource.
384
+ :param pulumi.Input[str] location: The Certificate Manager location. If not specified, "global" is used.
350
385
  :param pulumi.Input[str] name: Name of the resource; provided by the client when the resource is created.
351
386
  The name must be 1-64 characters long, and match the regular expression [a-zA-Z][a-zA-Z0-9_-]* which means the first character must be a letter,
352
387
  and all following characters must be a dash, underscore, letter or digit.
@@ -374,7 +409,8 @@ class DnsAuthorization(pulumi.CustomResource):
374
409
 
375
410
  default = gcp.certificatemanager.DnsAuthorization("default",
376
411
  name="dns-auth",
377
- description="The default dnss",
412
+ location="global",
413
+ description="The default dns",
378
414
  domain="subdomain.hashicorptest.com")
379
415
  pulumi.export("recordNameToInsert", default.dns_resource_records[0].name)
380
416
  pulumi.export("recordTypeToInsert", default.dns_resource_records[0].type)
@@ -385,24 +421,24 @@ class DnsAuthorization(pulumi.CustomResource):
385
421
 
386
422
  DnsAuthorization can be imported using any of these accepted formats:
387
423
 
388
- * `projects/{{project}}/locations/global/dnsAuthorizations/{{name}}`
424
+ * `projects/{{project}}/locations/{{location}}/dnsAuthorizations/{{name}}`
389
425
 
390
- * `{{project}}/{{name}}`
426
+ * `{{project}}/{{location}}/{{name}}`
391
427
 
392
- * `{{name}}`
428
+ * `{{location}}/{{name}}`
393
429
 
394
430
  When using the `pulumi import` command, DnsAuthorization can be imported using one of the formats above. For example:
395
431
 
396
432
  ```sh
397
- $ pulumi import gcp:certificatemanager/dnsAuthorization:DnsAuthorization default projects/{{project}}/locations/global/dnsAuthorizations/{{name}}
433
+ $ pulumi import gcp:certificatemanager/dnsAuthorization:DnsAuthorization default projects/{{project}}/locations/{{location}}/dnsAuthorizations/{{name}}
398
434
  ```
399
435
 
400
436
  ```sh
401
- $ pulumi import gcp:certificatemanager/dnsAuthorization:DnsAuthorization default {{project}}/{{name}}
437
+ $ pulumi import gcp:certificatemanager/dnsAuthorization:DnsAuthorization default {{project}}/{{location}}/{{name}}
402
438
  ```
403
439
 
404
440
  ```sh
405
- $ pulumi import gcp:certificatemanager/dnsAuthorization:DnsAuthorization default {{name}}
441
+ $ pulumi import gcp:certificatemanager/dnsAuthorization:DnsAuthorization default {{location}}/{{name}}
406
442
  ```
407
443
 
408
444
  :param str resource_name: The name of the resource.
@@ -423,6 +459,7 @@ class DnsAuthorization(pulumi.CustomResource):
423
459
  description: Optional[pulumi.Input[str]] = None,
424
460
  domain: Optional[pulumi.Input[str]] = None,
425
461
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
462
+ location: Optional[pulumi.Input[str]] = None,
426
463
  name: Optional[pulumi.Input[str]] = None,
427
464
  project: Optional[pulumi.Input[str]] = None,
428
465
  __props__=None):
@@ -439,6 +476,7 @@ class DnsAuthorization(pulumi.CustomResource):
439
476
  raise TypeError("Missing required property 'domain'")
440
477
  __props__.__dict__["domain"] = domain
441
478
  __props__.__dict__["labels"] = labels
479
+ __props__.__dict__["location"] = location
442
480
  __props__.__dict__["name"] = name
443
481
  __props__.__dict__["project"] = project
444
482
  __props__.__dict__["dns_resource_records"] = None
@@ -461,6 +499,7 @@ class DnsAuthorization(pulumi.CustomResource):
461
499
  domain: Optional[pulumi.Input[str]] = None,
462
500
  effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
463
501
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
502
+ location: Optional[pulumi.Input[str]] = None,
464
503
  name: Optional[pulumi.Input[str]] = None,
465
504
  project: Optional[pulumi.Input[str]] = None,
466
505
  pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None) -> 'DnsAuthorization':
@@ -483,6 +522,7 @@ class DnsAuthorization(pulumi.CustomResource):
483
522
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Set of label tags associated with the DNS Authorization resource.
484
523
  **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
485
524
  Please refer to the field `effective_labels` for all of the labels present on the resource.
525
+ :param pulumi.Input[str] location: The Certificate Manager location. If not specified, "global" is used.
486
526
  :param pulumi.Input[str] name: Name of the resource; provided by the client when the resource is created.
487
527
  The name must be 1-64 characters long, and match the regular expression [a-zA-Z][a-zA-Z0-9_-]* which means the first character must be a letter,
488
528
  and all following characters must be a dash, underscore, letter or digit.
@@ -503,6 +543,7 @@ class DnsAuthorization(pulumi.CustomResource):
503
543
  __props__.__dict__["domain"] = domain
504
544
  __props__.__dict__["effective_labels"] = effective_labels
505
545
  __props__.__dict__["labels"] = labels
546
+ __props__.__dict__["location"] = location
506
547
  __props__.__dict__["name"] = name
507
548
  __props__.__dict__["project"] = project
508
549
  __props__.__dict__["pulumi_labels"] = pulumi_labels
@@ -555,6 +596,14 @@ class DnsAuthorization(pulumi.CustomResource):
555
596
  """
556
597
  return pulumi.get(self, "labels")
557
598
 
599
+ @property
600
+ @pulumi.getter
601
+ def location(self) -> pulumi.Output[Optional[str]]:
602
+ """
603
+ The Certificate Manager location. If not specified, "global" is used.
604
+ """
605
+ return pulumi.get(self, "location")
606
+
558
607
  @property
559
608
  @pulumi.getter
560
609
  def name(self) -> pulumi.Output[str]:
@@ -12,6 +12,10 @@ from .delivery_pipeline_iam_binding import *
12
12
  from .delivery_pipeline_iam_member import *
13
13
  from .delivery_pipeline_iam_policy import *
14
14
  from .get_delivery_pipeline_iam_policy import *
15
+ from .get_target_iam_policy import *
15
16
  from .target import *
17
+ from .target_iam_binding import *
18
+ from .target_iam_member import *
19
+ from .target_iam_policy import *
16
20
  from ._inputs import *
17
21
  from . import outputs
@@ -48,6 +48,8 @@ __all__ = [
48
48
  'TargetAnthosClusterArgs',
49
49
  'TargetExecutionConfigArgs',
50
50
  'TargetGkeArgs',
51
+ 'TargetIamBindingConditionArgs',
52
+ 'TargetIamMemberConditionArgs',
51
53
  'TargetMultiTargetArgs',
52
54
  'TargetRunArgs',
53
55
  ]
@@ -1809,6 +1811,84 @@ class TargetGkeArgs:
1809
1811
  pulumi.set(self, "internal_ip", value)
1810
1812
 
1811
1813
 
1814
+ @pulumi.input_type
1815
+ class TargetIamBindingConditionArgs:
1816
+ def __init__(__self__, *,
1817
+ expression: pulumi.Input[str],
1818
+ title: pulumi.Input[str],
1819
+ description: Optional[pulumi.Input[str]] = None):
1820
+ pulumi.set(__self__, "expression", expression)
1821
+ pulumi.set(__self__, "title", title)
1822
+ if description is not None:
1823
+ pulumi.set(__self__, "description", description)
1824
+
1825
+ @property
1826
+ @pulumi.getter
1827
+ def expression(self) -> pulumi.Input[str]:
1828
+ return pulumi.get(self, "expression")
1829
+
1830
+ @expression.setter
1831
+ def expression(self, value: pulumi.Input[str]):
1832
+ pulumi.set(self, "expression", value)
1833
+
1834
+ @property
1835
+ @pulumi.getter
1836
+ def title(self) -> pulumi.Input[str]:
1837
+ return pulumi.get(self, "title")
1838
+
1839
+ @title.setter
1840
+ def title(self, value: pulumi.Input[str]):
1841
+ pulumi.set(self, "title", value)
1842
+
1843
+ @property
1844
+ @pulumi.getter
1845
+ def description(self) -> Optional[pulumi.Input[str]]:
1846
+ return pulumi.get(self, "description")
1847
+
1848
+ @description.setter
1849
+ def description(self, value: Optional[pulumi.Input[str]]):
1850
+ pulumi.set(self, "description", value)
1851
+
1852
+
1853
+ @pulumi.input_type
1854
+ class TargetIamMemberConditionArgs:
1855
+ def __init__(__self__, *,
1856
+ expression: pulumi.Input[str],
1857
+ title: pulumi.Input[str],
1858
+ description: Optional[pulumi.Input[str]] = None):
1859
+ pulumi.set(__self__, "expression", expression)
1860
+ pulumi.set(__self__, "title", title)
1861
+ if description is not None:
1862
+ pulumi.set(__self__, "description", description)
1863
+
1864
+ @property
1865
+ @pulumi.getter
1866
+ def expression(self) -> pulumi.Input[str]:
1867
+ return pulumi.get(self, "expression")
1868
+
1869
+ @expression.setter
1870
+ def expression(self, value: pulumi.Input[str]):
1871
+ pulumi.set(self, "expression", value)
1872
+
1873
+ @property
1874
+ @pulumi.getter
1875
+ def title(self) -> pulumi.Input[str]:
1876
+ return pulumi.get(self, "title")
1877
+
1878
+ @title.setter
1879
+ def title(self, value: pulumi.Input[str]):
1880
+ pulumi.set(self, "title", value)
1881
+
1882
+ @property
1883
+ @pulumi.getter
1884
+ def description(self) -> Optional[pulumi.Input[str]]:
1885
+ return pulumi.get(self, "description")
1886
+
1887
+ @description.setter
1888
+ def description(self, value: Optional[pulumi.Input[str]]):
1889
+ pulumi.set(self, "description", value)
1890
+
1891
+
1812
1892
  @pulumi.input_type
1813
1893
  class TargetMultiTargetArgs:
1814
1894
  def __init__(__self__, *,
@@ -538,6 +538,14 @@ class Automation(pulumi.CustomResource):
538
538
  suspended: Optional[pulumi.Input[bool]] = None,
539
539
  __props__=None):
540
540
  """
541
+ An `Automation` enables the automation of manually driven actions for a Delivery Pipeline, which includes Release promotion amongst Targets, Rollout repair and Rollout deployment strategy advancement.
542
+
543
+ To get more information about Automation, see:
544
+
545
+ * [API documentation](https://cloud.google.com/deploy/docs/api/reference/rest/v1/projects.locations.deliveryPipelines.automations)
546
+ * How-to Guides
547
+ * [Automate your deployment](https://cloud.google.com/deploy/docs/automation)
548
+
541
549
  ## Example Usage
542
550
  ### Clouddeploy Automation Basic
543
551
 
@@ -681,6 +689,14 @@ class Automation(pulumi.CustomResource):
681
689
  args: AutomationArgs,
682
690
  opts: Optional[pulumi.ResourceOptions] = None):
683
691
  """
692
+ An `Automation` enables the automation of manually driven actions for a Delivery Pipeline, which includes Release promotion amongst Targets, Rollout repair and Rollout deployment strategy advancement.
693
+
694
+ To get more information about Automation, see:
695
+
696
+ * [API documentation](https://cloud.google.com/deploy/docs/api/reference/rest/v1/projects.locations.deliveryPipelines.automations)
697
+ * How-to Guides
698
+ * [Automate your deployment](https://cloud.google.com/deploy/docs/automation)
699
+
684
700
  ## Example Usage
685
701
  ### Clouddeploy Automation Basic
686
702
 
@@ -0,0 +1,162 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
3
+ # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+
5
+ import copy
6
+ import warnings
7
+ import pulumi
8
+ import pulumi.runtime
9
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
10
+ from .. import _utilities
11
+
12
+ __all__ = [
13
+ 'GetTargetIamPolicyResult',
14
+ 'AwaitableGetTargetIamPolicyResult',
15
+ 'get_target_iam_policy',
16
+ 'get_target_iam_policy_output',
17
+ ]
18
+
19
+ @pulumi.output_type
20
+ class GetTargetIamPolicyResult:
21
+ """
22
+ A collection of values returned by getTargetIamPolicy.
23
+ """
24
+ def __init__(__self__, etag=None, id=None, location=None, name=None, policy_data=None, project=None):
25
+ if etag and not isinstance(etag, str):
26
+ raise TypeError("Expected argument 'etag' to be a str")
27
+ pulumi.set(__self__, "etag", etag)
28
+ if id and not isinstance(id, str):
29
+ raise TypeError("Expected argument 'id' to be a str")
30
+ pulumi.set(__self__, "id", id)
31
+ if location and not isinstance(location, str):
32
+ raise TypeError("Expected argument 'location' to be a str")
33
+ pulumi.set(__self__, "location", location)
34
+ if name and not isinstance(name, str):
35
+ raise TypeError("Expected argument 'name' to be a str")
36
+ pulumi.set(__self__, "name", name)
37
+ if policy_data and not isinstance(policy_data, str):
38
+ raise TypeError("Expected argument 'policy_data' to be a str")
39
+ pulumi.set(__self__, "policy_data", policy_data)
40
+ if project and not isinstance(project, str):
41
+ raise TypeError("Expected argument 'project' to be a str")
42
+ pulumi.set(__self__, "project", project)
43
+
44
+ @property
45
+ @pulumi.getter
46
+ def etag(self) -> str:
47
+ """
48
+ (Computed) The etag of the IAM policy.
49
+ """
50
+ return pulumi.get(self, "etag")
51
+
52
+ @property
53
+ @pulumi.getter
54
+ def id(self) -> str:
55
+ """
56
+ The provider-assigned unique ID for this managed resource.
57
+ """
58
+ return pulumi.get(self, "id")
59
+
60
+ @property
61
+ @pulumi.getter
62
+ def location(self) -> str:
63
+ return pulumi.get(self, "location")
64
+
65
+ @property
66
+ @pulumi.getter
67
+ def name(self) -> str:
68
+ return pulumi.get(self, "name")
69
+
70
+ @property
71
+ @pulumi.getter(name="policyData")
72
+ def policy_data(self) -> str:
73
+ """
74
+ (Required only by `clouddeploy.TargetIamPolicy`) The policy data generated by
75
+ a `organizations_get_iam_policy` data source.
76
+ """
77
+ return pulumi.get(self, "policy_data")
78
+
79
+ @property
80
+ @pulumi.getter
81
+ def project(self) -> str:
82
+ return pulumi.get(self, "project")
83
+
84
+
85
+ class AwaitableGetTargetIamPolicyResult(GetTargetIamPolicyResult):
86
+ # pylint: disable=using-constant-test
87
+ def __await__(self):
88
+ if False:
89
+ yield self
90
+ return GetTargetIamPolicyResult(
91
+ etag=self.etag,
92
+ id=self.id,
93
+ location=self.location,
94
+ name=self.name,
95
+ policy_data=self.policy_data,
96
+ project=self.project)
97
+
98
+
99
+ def get_target_iam_policy(location: Optional[str] = None,
100
+ name: Optional[str] = None,
101
+ project: Optional[str] = None,
102
+ opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetTargetIamPolicyResult:
103
+ """
104
+ Retrieves the current IAM policy data for target
105
+
106
+ ## example
107
+
108
+ ```python
109
+ import pulumi
110
+ import pulumi_gcp as gcp
111
+
112
+ policy = gcp.clouddeploy.get_target_iam_policy(project=default["project"],
113
+ location=default["location"],
114
+ name=default["name"])
115
+ ```
116
+
117
+
118
+ :param str name: Used to find the parent resource to bind the IAM policy to
119
+ :param str project: The ID of the project in which the resource belongs.
120
+ 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.
121
+ """
122
+ __args__ = dict()
123
+ __args__['location'] = location
124
+ __args__['name'] = name
125
+ __args__['project'] = project
126
+ opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
127
+ __ret__ = pulumi.runtime.invoke('gcp:clouddeploy/getTargetIamPolicy:getTargetIamPolicy', __args__, opts=opts, typ=GetTargetIamPolicyResult).value
128
+
129
+ return AwaitableGetTargetIamPolicyResult(
130
+ etag=pulumi.get(__ret__, 'etag'),
131
+ id=pulumi.get(__ret__, 'id'),
132
+ location=pulumi.get(__ret__, 'location'),
133
+ name=pulumi.get(__ret__, 'name'),
134
+ policy_data=pulumi.get(__ret__, 'policy_data'),
135
+ project=pulumi.get(__ret__, 'project'))
136
+
137
+
138
+ @_utilities.lift_output_func(get_target_iam_policy)
139
+ def get_target_iam_policy_output(location: Optional[pulumi.Input[Optional[str]]] = None,
140
+ name: Optional[pulumi.Input[str]] = None,
141
+ project: Optional[pulumi.Input[Optional[str]]] = None,
142
+ opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetTargetIamPolicyResult]:
143
+ """
144
+ Retrieves the current IAM policy data for target
145
+
146
+ ## example
147
+
148
+ ```python
149
+ import pulumi
150
+ import pulumi_gcp as gcp
151
+
152
+ policy = gcp.clouddeploy.get_target_iam_policy(project=default["project"],
153
+ location=default["location"],
154
+ name=default["name"])
155
+ ```
156
+
157
+
158
+ :param str name: Used to find the parent resource to bind the IAM policy to
159
+ :param str project: The ID of the project in which the resource belongs.
160
+ 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.
161
+ """
162
+ ...
@@ -49,6 +49,8 @@ __all__ = [
49
49
  'TargetAnthosCluster',
50
50
  'TargetExecutionConfig',
51
51
  'TargetGke',
52
+ 'TargetIamBindingCondition',
53
+ 'TargetIamMemberCondition',
52
54
  'TargetMultiTarget',
53
55
  'TargetRun',
54
56
  ]
@@ -1825,6 +1827,60 @@ class TargetGke(dict):
1825
1827
  return pulumi.get(self, "internal_ip")
1826
1828
 
1827
1829
 
1830
+ @pulumi.output_type
1831
+ class TargetIamBindingCondition(dict):
1832
+ def __init__(__self__, *,
1833
+ expression: str,
1834
+ title: str,
1835
+ description: Optional[str] = None):
1836
+ pulumi.set(__self__, "expression", expression)
1837
+ pulumi.set(__self__, "title", title)
1838
+ if description is not None:
1839
+ pulumi.set(__self__, "description", description)
1840
+
1841
+ @property
1842
+ @pulumi.getter
1843
+ def expression(self) -> str:
1844
+ return pulumi.get(self, "expression")
1845
+
1846
+ @property
1847
+ @pulumi.getter
1848
+ def title(self) -> str:
1849
+ return pulumi.get(self, "title")
1850
+
1851
+ @property
1852
+ @pulumi.getter
1853
+ def description(self) -> Optional[str]:
1854
+ return pulumi.get(self, "description")
1855
+
1856
+
1857
+ @pulumi.output_type
1858
+ class TargetIamMemberCondition(dict):
1859
+ def __init__(__self__, *,
1860
+ expression: str,
1861
+ title: str,
1862
+ description: Optional[str] = None):
1863
+ pulumi.set(__self__, "expression", expression)
1864
+ pulumi.set(__self__, "title", title)
1865
+ if description is not None:
1866
+ pulumi.set(__self__, "description", description)
1867
+
1868
+ @property
1869
+ @pulumi.getter
1870
+ def expression(self) -> str:
1871
+ return pulumi.get(self, "expression")
1872
+
1873
+ @property
1874
+ @pulumi.getter
1875
+ def title(self) -> str:
1876
+ return pulumi.get(self, "title")
1877
+
1878
+ @property
1879
+ @pulumi.getter
1880
+ def description(self) -> Optional[str]:
1881
+ return pulumi.get(self, "description")
1882
+
1883
+
1828
1884
  @pulumi.output_type
1829
1885
  class TargetMultiTarget(dict):
1830
1886
  @staticmethod