pulumi-gcp 8.6.0a1728595713__py3-none-any.whl → 8.7.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. pulumi_gcp/__init__.py +78 -0
  2. pulumi_gcp/accesscontextmanager/service_perimeter.py +2 -0
  3. pulumi_gcp/accesscontextmanager/service_perimeter_dry_run_egress_policy.py +4 -0
  4. pulumi_gcp/accesscontextmanager/service_perimeter_dry_run_ingress_policy.py +4 -0
  5. pulumi_gcp/accesscontextmanager/service_perimeter_egress_policy.py +4 -0
  6. pulumi_gcp/accesscontextmanager/service_perimeter_ingress_policy.py +4 -0
  7. pulumi_gcp/accesscontextmanager/service_perimeters.py +2 -0
  8. pulumi_gcp/apigee/__init__.py +2 -0
  9. pulumi_gcp/apigee/_inputs.py +108 -0
  10. pulumi_gcp/apigee/app_group.py +811 -0
  11. pulumi_gcp/apigee/developer.py +757 -0
  12. pulumi_gcp/apigee/outputs.py +64 -0
  13. pulumi_gcp/artifactregistry/get_docker_image.py +40 -0
  14. pulumi_gcp/bigquery/connection.py +12 -12
  15. pulumi_gcp/bigquery/job.py +6 -6
  16. pulumi_gcp/bigtable/_inputs.py +58 -0
  17. pulumi_gcp/bigtable/instance_iam_binding.py +13 -34
  18. pulumi_gcp/bigtable/instance_iam_member.py +13 -34
  19. pulumi_gcp/bigtable/instance_iam_policy.py +0 -47
  20. pulumi_gcp/bigtable/outputs.py +36 -0
  21. pulumi_gcp/cloudrunv2/get_service.py +12 -1
  22. pulumi_gcp/cloudrunv2/service.py +92 -0
  23. pulumi_gcp/compute/_inputs.py +217 -119
  24. pulumi_gcp/compute/backend_service.py +76 -0
  25. pulumi_gcp/compute/get_backend_service.py +12 -1
  26. pulumi_gcp/compute/get_instance.py +29 -1
  27. pulumi_gcp/compute/get_instance_template.py +29 -1
  28. pulumi_gcp/compute/get_region_instance_group_manager.py +0 -18
  29. pulumi_gcp/compute/get_region_instance_template.py +29 -1
  30. pulumi_gcp/compute/instance.py +89 -0
  31. pulumi_gcp/compute/instance_from_machine_image.py +82 -0
  32. pulumi_gcp/compute/instance_from_template.py +82 -0
  33. pulumi_gcp/compute/instance_template.py +75 -0
  34. pulumi_gcp/compute/network_firewall_policy_association.py +76 -50
  35. pulumi_gcp/compute/network_firewall_policy_rule.py +149 -103
  36. pulumi_gcp/compute/outputs.py +172 -82
  37. pulumi_gcp/compute/region_backend_service.py +94 -0
  38. pulumi_gcp/compute/region_instance_template.py +75 -0
  39. pulumi_gcp/compute/region_network_endpoint_group.py +6 -4
  40. pulumi_gcp/compute/region_network_firewall_policy_association.py +104 -54
  41. pulumi_gcp/compute/region_network_firewall_policy_rule.py +160 -107
  42. pulumi_gcp/config/__init__.pyi +4 -0
  43. pulumi_gcp/config/vars.py +8 -0
  44. pulumi_gcp/container/_inputs.py +12 -0
  45. pulumi_gcp/container/attached_cluster.py +9 -6
  46. pulumi_gcp/container/outputs.py +10 -2
  47. pulumi_gcp/datastream/stream.py +2 -2
  48. pulumi_gcp/diagflow/_inputs.py +472 -2
  49. pulumi_gcp/diagflow/cx_agent.py +64 -4
  50. pulumi_gcp/diagflow/cx_flow.py +30 -0
  51. pulumi_gcp/diagflow/outputs.py +378 -2
  52. pulumi_gcp/discoveryengine/_inputs.py +32 -5
  53. pulumi_gcp/discoveryengine/chat_engine.py +64 -0
  54. pulumi_gcp/discoveryengine/outputs.py +22 -3
  55. pulumi_gcp/gkehub/feature.py +2 -4
  56. pulumi_gcp/iam/workload_identity_pool_provider.py +56 -0
  57. pulumi_gcp/kms/key_handle.py +8 -8
  58. pulumi_gcp/looker/instance.py +104 -2
  59. pulumi_gcp/monitoring/_inputs.py +23 -0
  60. pulumi_gcp/monitoring/get_secret_version.py +22 -3
  61. pulumi_gcp/monitoring/outputs.py +16 -0
  62. pulumi_gcp/netapp/backup_vault.py +2 -2
  63. pulumi_gcp/networkconnectivity/__init__.py +1 -0
  64. pulumi_gcp/networkconnectivity/_inputs.py +218 -0
  65. pulumi_gcp/networkconnectivity/group.py +764 -0
  66. pulumi_gcp/networkconnectivity/internal_range.py +117 -7
  67. pulumi_gcp/networkconnectivity/outputs.py +167 -0
  68. pulumi_gcp/networkconnectivity/spoke.py +144 -0
  69. pulumi_gcp/networksecurity/server_tls_policy.py +2 -2
  70. pulumi_gcp/networkservices/gateway.py +54 -0
  71. pulumi_gcp/oracledatabase/__init__.py +20 -0
  72. pulumi_gcp/oracledatabase/_inputs.py +4745 -0
  73. pulumi_gcp/oracledatabase/autonomous_database.py +983 -0
  74. pulumi_gcp/oracledatabase/cloud_exadata_infrastructure.py +842 -0
  75. pulumi_gcp/oracledatabase/cloud_vm_cluster.py +1086 -0
  76. pulumi_gcp/oracledatabase/get_autonomous_database.py +290 -0
  77. pulumi_gcp/oracledatabase/get_autonomous_databases.py +150 -0
  78. pulumi_gcp/oracledatabase/get_cloud_exadata_infrastructure.py +257 -0
  79. pulumi_gcp/oracledatabase/get_cloud_exadata_infrastructures.py +150 -0
  80. pulumi_gcp/oracledatabase/get_cloud_vm_cluster.py +290 -0
  81. pulumi_gcp/oracledatabase/get_cloud_vm_clusters.py +150 -0
  82. pulumi_gcp/oracledatabase/get_db_nodes.py +245 -0
  83. pulumi_gcp/oracledatabase/get_db_servers.py +245 -0
  84. pulumi_gcp/oracledatabase/outputs.py +9304 -0
  85. pulumi_gcp/organizations/folder.py +7 -7
  86. pulumi_gcp/organizations/project.py +7 -7
  87. pulumi_gcp/orgpolicy/_inputs.py +3 -3
  88. pulumi_gcp/orgpolicy/outputs.py +2 -2
  89. pulumi_gcp/privilegedaccessmanager/get_entitlement.py +46 -2
  90. pulumi_gcp/provider.py +40 -0
  91. pulumi_gcp/pulumi-plugin.json +1 -1
  92. pulumi_gcp/secretmanager/get_regional_secret_version.py +24 -5
  93. pulumi_gcp/secretmanager/get_regional_secret_version_access.py +24 -5
  94. pulumi_gcp/secretmanager/get_secret_version.py +22 -3
  95. pulumi_gcp/secretmanager/get_secret_version_access.py +22 -3
  96. pulumi_gcp/secretmanager/outputs.py +2 -10
  97. pulumi_gcp/secretmanager/regional_secret.py +2 -2
  98. pulumi_gcp/securesourcemanager/__init__.py +1 -0
  99. pulumi_gcp/securesourcemanager/branch_rule.py +975 -0
  100. pulumi_gcp/siteverification/get_token.py +0 -16
  101. pulumi_gcp/siteverification/owner.py +0 -16
  102. pulumi_gcp/spanner/_inputs.py +29 -5
  103. pulumi_gcp/spanner/backup_schedule.py +4 -2
  104. pulumi_gcp/spanner/outputs.py +20 -3
  105. pulumi_gcp/sql/_inputs.py +6 -6
  106. pulumi_gcp/sql/outputs.py +4 -4
  107. pulumi_gcp/sql/user.py +28 -21
  108. pulumi_gcp/storage/_inputs.py +36 -0
  109. pulumi_gcp/storage/bucket.py +47 -0
  110. pulumi_gcp/storage/get_bucket.py +12 -1
  111. pulumi_gcp/storage/outputs.py +40 -0
  112. pulumi_gcp/transcoder/__init__.py +11 -0
  113. pulumi_gcp/transcoder/_inputs.py +3991 -0
  114. pulumi_gcp/transcoder/job.py +2134 -0
  115. pulumi_gcp/transcoder/job_template.py +1524 -0
  116. pulumi_gcp/transcoder/outputs.py +2918 -0
  117. pulumi_gcp/vertex/ai_deployment_resource_pool.py +2 -2
  118. pulumi_gcp/vmwareengine/_inputs.py +440 -0
  119. pulumi_gcp/vmwareengine/cluster.py +100 -2
  120. pulumi_gcp/vmwareengine/get_cluster.py +12 -1
  121. pulumi_gcp/vmwareengine/outputs.py +615 -0
  122. pulumi_gcp/workstations/_inputs.py +54 -0
  123. pulumi_gcp/workstations/outputs.py +32 -0
  124. pulumi_gcp/workstations/workstation_config.py +205 -0
  125. {pulumi_gcp-8.6.0a1728595713.dist-info → pulumi_gcp-8.7.0.dist-info}/METADATA +1 -1
  126. {pulumi_gcp-8.6.0a1728595713.dist-info → pulumi_gcp-8.7.0.dist-info}/RECORD +128 -105
  127. {pulumi_gcp-8.6.0a1728595713.dist-info → pulumi_gcp-8.7.0.dist-info}/WHEEL +1 -1
  128. {pulumi_gcp-8.6.0a1728595713.dist-info → pulumi_gcp-8.7.0.dist-info}/top_level.txt +0 -0
@@ -418,8 +418,7 @@ class Feature(pulumi.CustomResource):
418
418
  "gke_cluster": {
419
419
  "resource_link": cluster.id.apply(lambda id: f"//container.googleapis.com/{id}"),
420
420
  },
421
- },
422
- description="Membership")
421
+ })
423
422
  feature = gcp.gkehub.Feature("feature",
424
423
  name="multiclusteringress",
425
424
  location="global",
@@ -765,8 +764,7 @@ class Feature(pulumi.CustomResource):
765
764
  "gke_cluster": {
766
765
  "resource_link": cluster.id.apply(lambda id: f"//container.googleapis.com/{id}"),
767
766
  },
768
- },
769
- description="Membership")
767
+ })
770
768
  feature = gcp.gkehub.Feature("feature",
771
769
  name="multiclusteringress",
772
770
  location="global",
@@ -800,6 +800,34 @@ class WorkloadIdentityPoolProvider(pulumi.CustomResource):
800
800
  "account_id": "999999999999",
801
801
  })
802
802
  ```
803
+ ### Iam Workload Identity Pool Provider Github Actions
804
+
805
+ ```python
806
+ import pulumi
807
+ import pulumi_gcp as gcp
808
+
809
+ pool = gcp.iam.WorkloadIdentityPool("pool", workload_identity_pool_id="example-pool")
810
+ example = gcp.iam.WorkloadIdentityPoolProvider("example",
811
+ workload_identity_pool_id=pool.workload_identity_pool_id,
812
+ workload_identity_pool_provider_id="example-prvdr",
813
+ display_name="Name of provider",
814
+ description="GitHub Actions identity pool provider for automated test",
815
+ disabled=True,
816
+ attribute_condition=\"\"\" assertion.repository_owner_id == "123456789" &&
817
+ attribute.repository == "gh-org/gh-repo" &&
818
+ assertion.ref == "refs/heads/main" &&
819
+ assertion.ref_type == "branch"
820
+ \"\"\",
821
+ attribute_mapping={
822
+ "google.subject": "assertion.sub",
823
+ "attribute.actor": "assertion.actor",
824
+ "attribute.aud": "assertion.aud",
825
+ "attribute.repository": "assertion.repository",
826
+ },
827
+ oidc={
828
+ "issuer_uri": "https://token.actions.githubusercontent.com",
829
+ })
830
+ ```
803
831
  ### Iam Workload Identity Pool Provider Oidc Basic
804
832
 
805
833
  ```python
@@ -1135,6 +1163,34 @@ class WorkloadIdentityPoolProvider(pulumi.CustomResource):
1135
1163
  "account_id": "999999999999",
1136
1164
  })
1137
1165
  ```
1166
+ ### Iam Workload Identity Pool Provider Github Actions
1167
+
1168
+ ```python
1169
+ import pulumi
1170
+ import pulumi_gcp as gcp
1171
+
1172
+ pool = gcp.iam.WorkloadIdentityPool("pool", workload_identity_pool_id="example-pool")
1173
+ example = gcp.iam.WorkloadIdentityPoolProvider("example",
1174
+ workload_identity_pool_id=pool.workload_identity_pool_id,
1175
+ workload_identity_pool_provider_id="example-prvdr",
1176
+ display_name="Name of provider",
1177
+ description="GitHub Actions identity pool provider for automated test",
1178
+ disabled=True,
1179
+ attribute_condition=\"\"\" assertion.repository_owner_id == "123456789" &&
1180
+ attribute.repository == "gh-org/gh-repo" &&
1181
+ assertion.ref == "refs/heads/main" &&
1182
+ assertion.ref_type == "branch"
1183
+ \"\"\",
1184
+ attribute_mapping={
1185
+ "google.subject": "assertion.sub",
1186
+ "attribute.actor": "assertion.actor",
1187
+ "attribute.aud": "assertion.aud",
1188
+ "attribute.repository": "assertion.repository",
1189
+ },
1190
+ oidc={
1191
+ "issuer_uri": "https://token.actions.githubusercontent.com",
1192
+ })
1193
+ ```
1138
1194
  ### Iam Workload Identity Pool Provider Oidc Basic
1139
1195
 
1140
1196
  ```python
@@ -224,7 +224,7 @@ class KeyHandle(pulumi.CustomResource):
224
224
 
225
225
  # Create Folder in GCP Organization
226
226
  autokms_folder = gcp.organizations.Folder("autokms_folder",
227
- display_name="folder-example",
227
+ display_name="my-folder",
228
228
  parent="organizations/123456789",
229
229
  deletion_protection=False)
230
230
  # Create the key project
@@ -237,8 +237,8 @@ class KeyHandle(pulumi.CustomResource):
237
237
  opts = pulumi.ResourceOptions(depends_on=[autokms_folder]))
238
238
  # Create the resource project
239
239
  resource_project = gcp.organizations.Project("resource_project",
240
- project_id="resources",
241
- name="resources",
240
+ project_id="res-proj",
241
+ name="res-proj",
242
242
  folder_id=autokms_folder.folder_id,
243
243
  billing_account="000000-0000000-0000000-000000",
244
244
  deletion_policy="DELETE",
@@ -279,7 +279,7 @@ class KeyHandle(pulumi.CustomResource):
279
279
  opts = pulumi.ResourceOptions(depends_on=[autokey_config]))
280
280
  example_keyhandle = gcp.kms.KeyHandle("example-keyhandle",
281
281
  project=resource_project.project_id,
282
- name="example-key-handle",
282
+ name="tf-test-key-handle",
283
283
  location="global",
284
284
  resource_type_selector="storage.googleapis.com/Bucket",
285
285
  opts = pulumi.ResourceOptions(depends_on=[wait_autokey_config]))
@@ -340,7 +340,7 @@ class KeyHandle(pulumi.CustomResource):
340
340
 
341
341
  # Create Folder in GCP Organization
342
342
  autokms_folder = gcp.organizations.Folder("autokms_folder",
343
- display_name="folder-example",
343
+ display_name="my-folder",
344
344
  parent="organizations/123456789",
345
345
  deletion_protection=False)
346
346
  # Create the key project
@@ -353,8 +353,8 @@ class KeyHandle(pulumi.CustomResource):
353
353
  opts = pulumi.ResourceOptions(depends_on=[autokms_folder]))
354
354
  # Create the resource project
355
355
  resource_project = gcp.organizations.Project("resource_project",
356
- project_id="resources",
357
- name="resources",
356
+ project_id="res-proj",
357
+ name="res-proj",
358
358
  folder_id=autokms_folder.folder_id,
359
359
  billing_account="000000-0000000-0000000-000000",
360
360
  deletion_policy="DELETE",
@@ -395,7 +395,7 @@ class KeyHandle(pulumi.CustomResource):
395
395
  opts = pulumi.ResourceOptions(depends_on=[autokey_config]))
396
396
  example_keyhandle = gcp.kms.KeyHandle("example-keyhandle",
397
397
  project=resource_project.project_id,
398
- name="example-key-handle",
398
+ name="tf-test-key-handle",
399
399
  location="global",
400
400
  resource_type_selector="storage.googleapis.com/Bucket",
401
401
  opts = pulumi.ResourceOptions(depends_on=[wait_autokey_config]))
@@ -24,6 +24,7 @@ class InstanceArgs:
24
24
  admin_settings: Optional[pulumi.Input['InstanceAdminSettingsArgs']] = None,
25
25
  consumer_network: Optional[pulumi.Input[str]] = None,
26
26
  custom_domain: Optional[pulumi.Input['InstanceCustomDomainArgs']] = None,
27
+ deletion_policy: Optional[pulumi.Input[str]] = None,
27
28
  deny_maintenance_period: Optional[pulumi.Input['InstanceDenyMaintenancePeriodArgs']] = None,
28
29
  encryption_config: Optional[pulumi.Input['InstanceEncryptionConfigArgs']] = None,
29
30
  fips_enabled: Optional[pulumi.Input[bool]] = None,
@@ -48,6 +49,10 @@ class InstanceArgs:
48
49
  project that is hosting the Looker Instance.
49
50
  :param pulumi.Input['InstanceCustomDomainArgs'] custom_domain: Custom domain settings for a Looker instance.
50
51
  Structure is documented below.
52
+ :param pulumi.Input[str] deletion_policy: Policy to determine if the cluster should be deleted forcefully.
53
+ If setting deletion_policy = "FORCE", the Looker instance will be deleted regardless
54
+ of its nested resources. If set to "DEFAULT", Looker instances that still have
55
+ nested resources will return an error. Possible values: DEFAULT, FORCE
51
56
  :param pulumi.Input['InstanceDenyMaintenancePeriodArgs'] deny_maintenance_period: Maintenance denial period for this instance.
52
57
  You must allow at least 14 days of maintenance availability
53
58
  between any two deny maintenance periods.
@@ -99,6 +104,8 @@ class InstanceArgs:
99
104
  pulumi.set(__self__, "consumer_network", consumer_network)
100
105
  if custom_domain is not None:
101
106
  pulumi.set(__self__, "custom_domain", custom_domain)
107
+ if deletion_policy is not None:
108
+ pulumi.set(__self__, "deletion_policy", deletion_policy)
102
109
  if deny_maintenance_period is not None:
103
110
  pulumi.set(__self__, "deny_maintenance_period", deny_maintenance_period)
104
111
  if encryption_config is not None:
@@ -170,6 +177,21 @@ class InstanceArgs:
170
177
  def custom_domain(self, value: Optional[pulumi.Input['InstanceCustomDomainArgs']]):
171
178
  pulumi.set(self, "custom_domain", value)
172
179
 
180
+ @property
181
+ @pulumi.getter(name="deletionPolicy")
182
+ def deletion_policy(self) -> Optional[pulumi.Input[str]]:
183
+ """
184
+ Policy to determine if the cluster should be deleted forcefully.
185
+ If setting deletion_policy = "FORCE", the Looker instance will be deleted regardless
186
+ of its nested resources. If set to "DEFAULT", Looker instances that still have
187
+ nested resources will return an error. Possible values: DEFAULT, FORCE
188
+ """
189
+ return pulumi.get(self, "deletion_policy")
190
+
191
+ @deletion_policy.setter
192
+ def deletion_policy(self, value: Optional[pulumi.Input[str]]):
193
+ pulumi.set(self, "deletion_policy", value)
194
+
173
195
  @property
174
196
  @pulumi.getter(name="denyMaintenancePeriod")
175
197
  def deny_maintenance_period(self) -> Optional[pulumi.Input['InstanceDenyMaintenancePeriodArgs']]:
@@ -387,6 +409,7 @@ class _InstanceState:
387
409
  consumer_network: Optional[pulumi.Input[str]] = None,
388
410
  create_time: Optional[pulumi.Input[str]] = None,
389
411
  custom_domain: Optional[pulumi.Input['InstanceCustomDomainArgs']] = None,
412
+ deletion_policy: Optional[pulumi.Input[str]] = None,
390
413
  deny_maintenance_period: Optional[pulumi.Input['InstanceDenyMaintenancePeriodArgs']] = None,
391
414
  egress_public_ip: Optional[pulumi.Input[str]] = None,
392
415
  encryption_config: Optional[pulumi.Input['InstanceEncryptionConfigArgs']] = None,
@@ -419,6 +442,10 @@ class _InstanceState:
419
442
  accurate to nanoseconds.
420
443
  :param pulumi.Input['InstanceCustomDomainArgs'] custom_domain: Custom domain settings for a Looker instance.
421
444
  Structure is documented below.
445
+ :param pulumi.Input[str] deletion_policy: Policy to determine if the cluster should be deleted forcefully.
446
+ If setting deletion_policy = "FORCE", the Looker instance will be deleted regardless
447
+ of its nested resources. If set to "DEFAULT", Looker instances that still have
448
+ nested resources will return an error. Possible values: DEFAULT, FORCE
422
449
  :param pulumi.Input['InstanceDenyMaintenancePeriodArgs'] deny_maintenance_period: Maintenance denial period for this instance.
423
450
  You must allow at least 14 days of maintenance availability
424
451
  between any two deny maintenance periods.
@@ -479,6 +506,8 @@ class _InstanceState:
479
506
  pulumi.set(__self__, "create_time", create_time)
480
507
  if custom_domain is not None:
481
508
  pulumi.set(__self__, "custom_domain", custom_domain)
509
+ if deletion_policy is not None:
510
+ pulumi.set(__self__, "deletion_policy", deletion_policy)
482
511
  if deny_maintenance_period is not None:
483
512
  pulumi.set(__self__, "deny_maintenance_period", deny_maintenance_period)
484
513
  if egress_public_ip is not None:
@@ -575,6 +604,21 @@ class _InstanceState:
575
604
  def custom_domain(self, value: Optional[pulumi.Input['InstanceCustomDomainArgs']]):
576
605
  pulumi.set(self, "custom_domain", value)
577
606
 
607
+ @property
608
+ @pulumi.getter(name="deletionPolicy")
609
+ def deletion_policy(self) -> Optional[pulumi.Input[str]]:
610
+ """
611
+ Policy to determine if the cluster should be deleted forcefully.
612
+ If setting deletion_policy = "FORCE", the Looker instance will be deleted regardless
613
+ of its nested resources. If set to "DEFAULT", Looker instances that still have
614
+ nested resources will return an error. Possible values: DEFAULT, FORCE
615
+ """
616
+ return pulumi.get(self, "deletion_policy")
617
+
618
+ @deletion_policy.setter
619
+ def deletion_policy(self, value: Optional[pulumi.Input[str]]):
620
+ pulumi.set(self, "deletion_policy", value)
621
+
578
622
  @property
579
623
  @pulumi.getter(name="denyMaintenancePeriod")
580
624
  def deny_maintenance_period(self) -> Optional[pulumi.Input['InstanceDenyMaintenancePeriodArgs']]:
@@ -866,6 +910,7 @@ class Instance(pulumi.CustomResource):
866
910
  admin_settings: Optional[pulumi.Input[Union['InstanceAdminSettingsArgs', 'InstanceAdminSettingsArgsDict']]] = None,
867
911
  consumer_network: Optional[pulumi.Input[str]] = None,
868
912
  custom_domain: Optional[pulumi.Input[Union['InstanceCustomDomainArgs', 'InstanceCustomDomainArgsDict']]] = None,
913
+ deletion_policy: Optional[pulumi.Input[str]] = None,
869
914
  deny_maintenance_period: Optional[pulumi.Input[Union['InstanceDenyMaintenancePeriodArgs', 'InstanceDenyMaintenancePeriodArgsDict']]] = None,
870
915
  encryption_config: Optional[pulumi.Input[Union['InstanceEncryptionConfigArgs', 'InstanceEncryptionConfigArgsDict']]] = None,
871
916
  fips_enabled: Optional[pulumi.Input[bool]] = None,
@@ -907,7 +952,8 @@ class Instance(pulumi.CustomResource):
907
952
  oauth_config={
908
953
  "client_id": "my-client-id",
909
954
  "client_secret": "my-client-secret",
910
- })
955
+ },
956
+ deletion_policy="DEFAULT")
911
957
  ```
912
958
  ### Looker Instance Full
913
959
 
@@ -1080,6 +1126,22 @@ class Instance(pulumi.CustomResource):
1080
1126
  "allowed_vpcs": ["projects/test-project/global/networks/test"],
1081
1127
  })
1082
1128
  ```
1129
+ ### Looker Instance Force Delete
1130
+
1131
+ ```python
1132
+ import pulumi
1133
+ import pulumi_gcp as gcp
1134
+
1135
+ looker_instance = gcp.looker.Instance("looker-instance",
1136
+ name="my-instance",
1137
+ platform_edition="LOOKER_CORE_STANDARD_ANNUAL",
1138
+ region="us-central1",
1139
+ oauth_config={
1140
+ "client_id": "my-client-id",
1141
+ "client_secret": "my-client-secret",
1142
+ },
1143
+ deletion_policy="FORCE")
1144
+ ```
1083
1145
 
1084
1146
  ## Import
1085
1147
 
@@ -1120,6 +1182,10 @@ class Instance(pulumi.CustomResource):
1120
1182
  project that is hosting the Looker Instance.
1121
1183
  :param pulumi.Input[Union['InstanceCustomDomainArgs', 'InstanceCustomDomainArgsDict']] custom_domain: Custom domain settings for a Looker instance.
1122
1184
  Structure is documented below.
1185
+ :param pulumi.Input[str] deletion_policy: Policy to determine if the cluster should be deleted forcefully.
1186
+ If setting deletion_policy = "FORCE", the Looker instance will be deleted regardless
1187
+ of its nested resources. If set to "DEFAULT", Looker instances that still have
1188
+ nested resources will return an error. Possible values: DEFAULT, FORCE
1123
1189
  :param pulumi.Input[Union['InstanceDenyMaintenancePeriodArgs', 'InstanceDenyMaintenancePeriodArgsDict']] deny_maintenance_period: Maintenance denial period for this instance.
1124
1190
  You must allow at least 14 days of maintenance availability
1125
1191
  between any two deny maintenance periods.
@@ -1196,7 +1262,8 @@ class Instance(pulumi.CustomResource):
1196
1262
  oauth_config={
1197
1263
  "client_id": "my-client-id",
1198
1264
  "client_secret": "my-client-secret",
1199
- })
1265
+ },
1266
+ deletion_policy="DEFAULT")
1200
1267
  ```
1201
1268
  ### Looker Instance Full
1202
1269
 
@@ -1369,6 +1436,22 @@ class Instance(pulumi.CustomResource):
1369
1436
  "allowed_vpcs": ["projects/test-project/global/networks/test"],
1370
1437
  })
1371
1438
  ```
1439
+ ### Looker Instance Force Delete
1440
+
1441
+ ```python
1442
+ import pulumi
1443
+ import pulumi_gcp as gcp
1444
+
1445
+ looker_instance = gcp.looker.Instance("looker-instance",
1446
+ name="my-instance",
1447
+ platform_edition="LOOKER_CORE_STANDARD_ANNUAL",
1448
+ region="us-central1",
1449
+ oauth_config={
1450
+ "client_id": "my-client-id",
1451
+ "client_secret": "my-client-secret",
1452
+ },
1453
+ deletion_policy="FORCE")
1454
+ ```
1372
1455
 
1373
1456
  ## Import
1374
1457
 
@@ -1418,6 +1501,7 @@ class Instance(pulumi.CustomResource):
1418
1501
  admin_settings: Optional[pulumi.Input[Union['InstanceAdminSettingsArgs', 'InstanceAdminSettingsArgsDict']]] = None,
1419
1502
  consumer_network: Optional[pulumi.Input[str]] = None,
1420
1503
  custom_domain: Optional[pulumi.Input[Union['InstanceCustomDomainArgs', 'InstanceCustomDomainArgsDict']]] = None,
1504
+ deletion_policy: Optional[pulumi.Input[str]] = None,
1421
1505
  deny_maintenance_period: Optional[pulumi.Input[Union['InstanceDenyMaintenancePeriodArgs', 'InstanceDenyMaintenancePeriodArgsDict']]] = None,
1422
1506
  encryption_config: Optional[pulumi.Input[Union['InstanceEncryptionConfigArgs', 'InstanceEncryptionConfigArgsDict']]] = None,
1423
1507
  fips_enabled: Optional[pulumi.Input[bool]] = None,
@@ -1445,6 +1529,7 @@ class Instance(pulumi.CustomResource):
1445
1529
  __props__.__dict__["admin_settings"] = admin_settings
1446
1530
  __props__.__dict__["consumer_network"] = consumer_network
1447
1531
  __props__.__dict__["custom_domain"] = custom_domain
1532
+ __props__.__dict__["deletion_policy"] = deletion_policy
1448
1533
  __props__.__dict__["deny_maintenance_period"] = deny_maintenance_period
1449
1534
  __props__.__dict__["encryption_config"] = encryption_config
1450
1535
  __props__.__dict__["fips_enabled"] = fips_enabled
@@ -1481,6 +1566,7 @@ class Instance(pulumi.CustomResource):
1481
1566
  consumer_network: Optional[pulumi.Input[str]] = None,
1482
1567
  create_time: Optional[pulumi.Input[str]] = None,
1483
1568
  custom_domain: Optional[pulumi.Input[Union['InstanceCustomDomainArgs', 'InstanceCustomDomainArgsDict']]] = None,
1569
+ deletion_policy: Optional[pulumi.Input[str]] = None,
1484
1570
  deny_maintenance_period: Optional[pulumi.Input[Union['InstanceDenyMaintenancePeriodArgs', 'InstanceDenyMaintenancePeriodArgsDict']]] = None,
1485
1571
  egress_public_ip: Optional[pulumi.Input[str]] = None,
1486
1572
  encryption_config: Optional[pulumi.Input[Union['InstanceEncryptionConfigArgs', 'InstanceEncryptionConfigArgsDict']]] = None,
@@ -1518,6 +1604,10 @@ class Instance(pulumi.CustomResource):
1518
1604
  accurate to nanoseconds.
1519
1605
  :param pulumi.Input[Union['InstanceCustomDomainArgs', 'InstanceCustomDomainArgsDict']] custom_domain: Custom domain settings for a Looker instance.
1520
1606
  Structure is documented below.
1607
+ :param pulumi.Input[str] deletion_policy: Policy to determine if the cluster should be deleted forcefully.
1608
+ If setting deletion_policy = "FORCE", the Looker instance will be deleted regardless
1609
+ of its nested resources. If set to "DEFAULT", Looker instances that still have
1610
+ nested resources will return an error. Possible values: DEFAULT, FORCE
1521
1611
  :param pulumi.Input[Union['InstanceDenyMaintenancePeriodArgs', 'InstanceDenyMaintenancePeriodArgsDict']] deny_maintenance_period: Maintenance denial period for this instance.
1522
1612
  You must allow at least 14 days of maintenance availability
1523
1613
  between any two deny maintenance periods.
@@ -1578,6 +1668,7 @@ class Instance(pulumi.CustomResource):
1578
1668
  __props__.__dict__["consumer_network"] = consumer_network
1579
1669
  __props__.__dict__["create_time"] = create_time
1580
1670
  __props__.__dict__["custom_domain"] = custom_domain
1671
+ __props__.__dict__["deletion_policy"] = deletion_policy
1581
1672
  __props__.__dict__["deny_maintenance_period"] = deny_maintenance_period
1582
1673
  __props__.__dict__["egress_public_ip"] = egress_public_ip
1583
1674
  __props__.__dict__["encryption_config"] = encryption_config
@@ -1638,6 +1729,17 @@ class Instance(pulumi.CustomResource):
1638
1729
  """
1639
1730
  return pulumi.get(self, "custom_domain")
1640
1731
 
1732
+ @property
1733
+ @pulumi.getter(name="deletionPolicy")
1734
+ def deletion_policy(self) -> pulumi.Output[Optional[str]]:
1735
+ """
1736
+ Policy to determine if the cluster should be deleted forcefully.
1737
+ If setting deletion_policy = "FORCE", the Looker instance will be deleted regardless
1738
+ of its nested resources. If set to "DEFAULT", Looker instances that still have
1739
+ nested resources will return an error. Possible values: DEFAULT, FORCE
1740
+ """
1741
+ return pulumi.get(self, "deletion_policy")
1742
+
1641
1743
  @property
1642
1744
  @pulumi.getter(name="denyMaintenancePeriod")
1643
1745
  def deny_maintenance_period(self) -> pulumi.Output[Optional['outputs.InstanceDenyMaintenancePeriod']]:
@@ -147,6 +147,11 @@ if not MYPY:
147
147
  are notified when this alert fires, on a per-channel basis.
148
148
  Structure is documented below.
149
149
  """
150
+ notification_prompts: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
151
+ """
152
+ Control when notifications will be sent out.
153
+ Each value may be one of: `NOTIFICATION_PROMPT_UNSPECIFIED`, `OPENED`, `CLOSED`.
154
+ """
150
155
  notification_rate_limit: NotRequired[pulumi.Input['AlertPolicyAlertStrategyNotificationRateLimitArgsDict']]
151
156
  """
152
157
  Required for alert policies with a LogMatch condition.
@@ -161,12 +166,15 @@ class AlertPolicyAlertStrategyArgs:
161
166
  def __init__(__self__, *,
162
167
  auto_close: Optional[pulumi.Input[str]] = None,
163
168
  notification_channel_strategies: Optional[pulumi.Input[Sequence[pulumi.Input['AlertPolicyAlertStrategyNotificationChannelStrategyArgs']]]] = None,
169
+ notification_prompts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
164
170
  notification_rate_limit: Optional[pulumi.Input['AlertPolicyAlertStrategyNotificationRateLimitArgs']] = None):
165
171
  """
166
172
  :param pulumi.Input[str] auto_close: If an alert policy that was active has no data for this long, any open incidents will close.
167
173
  :param pulumi.Input[Sequence[pulumi.Input['AlertPolicyAlertStrategyNotificationChannelStrategyArgs']]] notification_channel_strategies: Control over how the notification channels in `notification_channels`
168
174
  are notified when this alert fires, on a per-channel basis.
169
175
  Structure is documented below.
176
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] notification_prompts: Control when notifications will be sent out.
177
+ Each value may be one of: `NOTIFICATION_PROMPT_UNSPECIFIED`, `OPENED`, `CLOSED`.
170
178
  :param pulumi.Input['AlertPolicyAlertStrategyNotificationRateLimitArgs'] notification_rate_limit: Required for alert policies with a LogMatch condition.
171
179
  This limit is not implemented for alert policies that are not log-based.
172
180
  Structure is documented below.
@@ -175,6 +183,8 @@ class AlertPolicyAlertStrategyArgs:
175
183
  pulumi.set(__self__, "auto_close", auto_close)
176
184
  if notification_channel_strategies is not None:
177
185
  pulumi.set(__self__, "notification_channel_strategies", notification_channel_strategies)
186
+ if notification_prompts is not None:
187
+ pulumi.set(__self__, "notification_prompts", notification_prompts)
178
188
  if notification_rate_limit is not None:
179
189
  pulumi.set(__self__, "notification_rate_limit", notification_rate_limit)
180
190
 
@@ -204,6 +214,19 @@ class AlertPolicyAlertStrategyArgs:
204
214
  def notification_channel_strategies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['AlertPolicyAlertStrategyNotificationChannelStrategyArgs']]]]):
205
215
  pulumi.set(self, "notification_channel_strategies", value)
206
216
 
217
+ @property
218
+ @pulumi.getter(name="notificationPrompts")
219
+ def notification_prompts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
220
+ """
221
+ Control when notifications will be sent out.
222
+ Each value may be one of: `NOTIFICATION_PROMPT_UNSPECIFIED`, `OPENED`, `CLOSED`.
223
+ """
224
+ return pulumi.get(self, "notification_prompts")
225
+
226
+ @notification_prompts.setter
227
+ def notification_prompts(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
228
+ pulumi.set(self, "notification_prompts", value)
229
+
207
230
  @property
208
231
  @pulumi.getter(name="notificationRateLimit")
209
232
  def notification_rate_limit(self) -> Optional[pulumi.Input['AlertPolicyAlertStrategyNotificationRateLimitArgs']]:
@@ -28,7 +28,7 @@ class GetSecretVersionResult:
28
28
  """
29
29
  A collection of values returned by getSecretVersion.
30
30
  """
31
- def __init__(__self__, create_time=None, destroy_time=None, enabled=None, id=None, name=None, project=None, secret=None, secret_data=None, version=None):
31
+ def __init__(__self__, create_time=None, destroy_time=None, enabled=None, id=None, is_secret_data_base64=None, name=None, project=None, secret=None, secret_data=None, version=None):
32
32
  if create_time and not isinstance(create_time, str):
33
33
  raise TypeError("Expected argument 'create_time' to be a str")
34
34
  pulumi.set(__self__, "create_time", create_time)
@@ -41,6 +41,9 @@ class GetSecretVersionResult:
41
41
  if id and not isinstance(id, str):
42
42
  raise TypeError("Expected argument 'id' to be a str")
43
43
  pulumi.set(__self__, "id", id)
44
+ if is_secret_data_base64 and not isinstance(is_secret_data_base64, bool):
45
+ raise TypeError("Expected argument 'is_secret_data_base64' to be a bool")
46
+ pulumi.set(__self__, "is_secret_data_base64", is_secret_data_base64)
44
47
  if name and not isinstance(name, str):
45
48
  raise TypeError("Expected argument 'name' to be a str")
46
49
  pulumi.set(__self__, "name", name)
@@ -89,6 +92,11 @@ class GetSecretVersionResult:
89
92
  """
90
93
  return pulumi.get(self, "id")
91
94
 
95
+ @property
96
+ @pulumi.getter(name="isSecretDataBase64")
97
+ def is_secret_data_base64(self) -> Optional[bool]:
98
+ return pulumi.get(self, "is_secret_data_base64")
99
+
92
100
  @property
93
101
  @pulumi.getter
94
102
  def name(self) -> str:
@@ -132,6 +140,7 @@ class AwaitableGetSecretVersionResult(GetSecretVersionResult):
132
140
  destroy_time=self.destroy_time,
133
141
  enabled=self.enabled,
134
142
  id=self.id,
143
+ is_secret_data_base64=self.is_secret_data_base64,
135
144
  name=self.name,
136
145
  project=self.project,
137
146
  secret=self.secret,
@@ -139,7 +148,8 @@ class AwaitableGetSecretVersionResult(GetSecretVersionResult):
139
148
  version=self.version)
140
149
 
141
150
 
142
- def get_secret_version(project: Optional[str] = None,
151
+ def get_secret_version(is_secret_data_base64: Optional[bool] = None,
152
+ project: Optional[str] = None,
143
153
  secret: Optional[str] = None,
144
154
  version: Optional[str] = None,
145
155
  opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetSecretVersionResult:
@@ -156,6 +166,8 @@ def get_secret_version(project: Optional[str] = None,
156
166
  ```
157
167
 
158
168
 
169
+ :param bool is_secret_data_base64: If set to 'true', the secret data is
170
+ expected to be base64-encoded string.
159
171
  :param str project: The project to get the secret version for. If it
160
172
  is not provided, the provider project is used.
161
173
  :param str secret: The secret to get the secret version for.
@@ -164,6 +176,7 @@ def get_secret_version(project: Optional[str] = None,
164
176
  """
165
177
  pulumi.log.warn("""get_secret_version is deprecated: gcp.monitoring.getSecretVersion has been deprecated in favor of gcp.secretmanager.getSecretVersion""")
166
178
  __args__ = dict()
179
+ __args__['isSecretDataBase64'] = is_secret_data_base64
167
180
  __args__['project'] = project
168
181
  __args__['secret'] = secret
169
182
  __args__['version'] = version
@@ -175,12 +188,14 @@ def get_secret_version(project: Optional[str] = None,
175
188
  destroy_time=pulumi.get(__ret__, 'destroy_time'),
176
189
  enabled=pulumi.get(__ret__, 'enabled'),
177
190
  id=pulumi.get(__ret__, 'id'),
191
+ is_secret_data_base64=pulumi.get(__ret__, 'is_secret_data_base64'),
178
192
  name=pulumi.get(__ret__, 'name'),
179
193
  project=pulumi.get(__ret__, 'project'),
180
194
  secret=pulumi.get(__ret__, 'secret'),
181
195
  secret_data=pulumi.get(__ret__, 'secret_data'),
182
196
  version=pulumi.get(__ret__, 'version'))
183
- def get_secret_version_output(project: Optional[pulumi.Input[Optional[str]]] = None,
197
+ def get_secret_version_output(is_secret_data_base64: Optional[pulumi.Input[Optional[bool]]] = None,
198
+ project: Optional[pulumi.Input[Optional[str]]] = None,
184
199
  secret: Optional[pulumi.Input[str]] = None,
185
200
  version: Optional[pulumi.Input[Optional[str]]] = None,
186
201
  opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetSecretVersionResult]:
@@ -197,6 +212,8 @@ def get_secret_version_output(project: Optional[pulumi.Input[Optional[str]]] = N
197
212
  ```
198
213
 
199
214
 
215
+ :param bool is_secret_data_base64: If set to 'true', the secret data is
216
+ expected to be base64-encoded string.
200
217
  :param str project: The project to get the secret version for. If it
201
218
  is not provided, the provider project is used.
202
219
  :param str secret: The secret to get the secret version for.
@@ -205,6 +222,7 @@ def get_secret_version_output(project: Optional[pulumi.Input[Optional[str]]] = N
205
222
  """
206
223
  pulumi.log.warn("""get_secret_version is deprecated: gcp.monitoring.getSecretVersion has been deprecated in favor of gcp.secretmanager.getSecretVersion""")
207
224
  __args__ = dict()
225
+ __args__['isSecretDataBase64'] = is_secret_data_base64
208
226
  __args__['project'] = project
209
227
  __args__['secret'] = secret
210
228
  __args__['version'] = version
@@ -215,6 +233,7 @@ def get_secret_version_output(project: Optional[pulumi.Input[Optional[str]]] = N
215
233
  destroy_time=pulumi.get(__response__, 'destroy_time'),
216
234
  enabled=pulumi.get(__response__, 'enabled'),
217
235
  id=pulumi.get(__response__, 'id'),
236
+ is_secret_data_base64=pulumi.get(__response__, 'is_secret_data_base64'),
218
237
  name=pulumi.get(__response__, 'name'),
219
238
  project=pulumi.get(__response__, 'project'),
220
239
  secret=pulumi.get(__response__, 'secret'),
@@ -91,6 +91,8 @@ class AlertPolicyAlertStrategy(dict):
91
91
  suggest = "auto_close"
92
92
  elif key == "notificationChannelStrategies":
93
93
  suggest = "notification_channel_strategies"
94
+ elif key == "notificationPrompts":
95
+ suggest = "notification_prompts"
94
96
  elif key == "notificationRateLimit":
95
97
  suggest = "notification_rate_limit"
96
98
 
@@ -108,12 +110,15 @@ class AlertPolicyAlertStrategy(dict):
108
110
  def __init__(__self__, *,
109
111
  auto_close: Optional[str] = None,
110
112
  notification_channel_strategies: Optional[Sequence['outputs.AlertPolicyAlertStrategyNotificationChannelStrategy']] = None,
113
+ notification_prompts: Optional[Sequence[str]] = None,
111
114
  notification_rate_limit: Optional['outputs.AlertPolicyAlertStrategyNotificationRateLimit'] = None):
112
115
  """
113
116
  :param str auto_close: If an alert policy that was active has no data for this long, any open incidents will close.
114
117
  :param Sequence['AlertPolicyAlertStrategyNotificationChannelStrategyArgs'] notification_channel_strategies: Control over how the notification channels in `notification_channels`
115
118
  are notified when this alert fires, on a per-channel basis.
116
119
  Structure is documented below.
120
+ :param Sequence[str] notification_prompts: Control when notifications will be sent out.
121
+ Each value may be one of: `NOTIFICATION_PROMPT_UNSPECIFIED`, `OPENED`, `CLOSED`.
117
122
  :param 'AlertPolicyAlertStrategyNotificationRateLimitArgs' notification_rate_limit: Required for alert policies with a LogMatch condition.
118
123
  This limit is not implemented for alert policies that are not log-based.
119
124
  Structure is documented below.
@@ -122,6 +127,8 @@ class AlertPolicyAlertStrategy(dict):
122
127
  pulumi.set(__self__, "auto_close", auto_close)
123
128
  if notification_channel_strategies is not None:
124
129
  pulumi.set(__self__, "notification_channel_strategies", notification_channel_strategies)
130
+ if notification_prompts is not None:
131
+ pulumi.set(__self__, "notification_prompts", notification_prompts)
125
132
  if notification_rate_limit is not None:
126
133
  pulumi.set(__self__, "notification_rate_limit", notification_rate_limit)
127
134
 
@@ -143,6 +150,15 @@ class AlertPolicyAlertStrategy(dict):
143
150
  """
144
151
  return pulumi.get(self, "notification_channel_strategies")
145
152
 
153
+ @property
154
+ @pulumi.getter(name="notificationPrompts")
155
+ def notification_prompts(self) -> Optional[Sequence[str]]:
156
+ """
157
+ Control when notifications will be sent out.
158
+ Each value may be one of: `NOTIFICATION_PROMPT_UNSPECIFIED`, `OPENED`, `CLOSED`.
159
+ """
160
+ return pulumi.get(self, "notification_prompts")
161
+
146
162
  @property
147
163
  @pulumi.getter(name="notificationRateLimit")
148
164
  def notification_rate_limit(self) -> Optional['outputs.AlertPolicyAlertStrategyNotificationRateLimit']:
@@ -316,7 +316,7 @@ class BackupVault(pulumi.CustomResource):
316
316
 
317
317
  test_backup_vault = gcp.netapp.BackupVault("test_backup_vault",
318
318
  name="test-backup-vault",
319
- location="us-central1",
319
+ location="us-west1",
320
320
  description="Terraform created vault",
321
321
  labels={
322
322
  "creator": "testuser",
@@ -388,7 +388,7 @@ class BackupVault(pulumi.CustomResource):
388
388
 
389
389
  test_backup_vault = gcp.netapp.BackupVault("test_backup_vault",
390
390
  name="test-backup-vault",
391
- location="us-central1",
391
+ location="us-west1",
392
392
  description="Terraform created vault",
393
393
  labels={
394
394
  "creator": "testuser",
@@ -5,6 +5,7 @@
5
5
  from .. import _utilities
6
6
  import typing
7
7
  # Export this package's modules as members:
8
+ from .group import *
8
9
  from .hub import *
9
10
  from .internal_range import *
10
11
  from .policy_based_route import *