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
@@ -93,14 +93,6 @@ def get_token(identifier: Optional[str] = None,
93
93
  verification_method: Optional[str] = None,
94
94
  opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetTokenResult:
95
95
  """
96
- ## subcategory: "Site Verification"
97
-
98
- description: |-
99
- A verification token is used to demonstrate ownership of a website or domain.
100
- ---
101
-
102
- # siteverification_get_token
103
-
104
96
  A verification token is used to demonstrate ownership of a website or domain.
105
97
 
106
98
  To get more information about Token, see:
@@ -163,14 +155,6 @@ def get_token_output(identifier: Optional[pulumi.Input[str]] = None,
163
155
  verification_method: Optional[pulumi.Input[str]] = None,
164
156
  opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetTokenResult]:
165
157
  """
166
- ## subcategory: "Site Verification"
167
-
168
- description: |-
169
- A verification token is used to demonstrate ownership of a website or domain.
170
- ---
171
-
172
- # siteverification_get_token
173
-
174
158
  A verification token is used to demonstrate ownership of a website or domain.
175
159
 
176
160
  To get more information about Token, see:
@@ -115,14 +115,6 @@ class Owner(pulumi.CustomResource):
115
115
  web_resource_id: Optional[pulumi.Input[str]] = None,
116
116
  __props__=None):
117
117
  """
118
- ## subcategory: "Site Verification"
119
-
120
- description: |-
121
- Manages additional owners on verified web resources.
122
- ---
123
-
124
- # siteverification.Owner
125
-
126
118
  An owner is an additional user that may manage a verified web site in the
127
119
  [Google Search Console](https://www.google.com/webmasters/tools/). There
128
120
  are two types of web resource owners:
@@ -221,14 +213,6 @@ class Owner(pulumi.CustomResource):
221
213
  args: OwnerArgs,
222
214
  opts: Optional[pulumi.ResourceOptions] = None):
223
215
  """
224
- ## subcategory: "Site Verification"
225
-
226
- description: |-
227
- Manages additional owners on verified web resources.
228
- ---
229
-
230
- # siteverification.Owner
231
-
232
216
  An owner is an additional user that may manage a verified web site in the
233
217
  [Google Search Console](https://www.google.com/webmasters/tools/). There
234
218
  are two types of web resource owners:
@@ -168,27 +168,38 @@ class BackupScheduleSpecCronSpecArgs:
168
168
 
169
169
  if not MYPY:
170
170
  class DatabaseEncryptionConfigArgsDict(TypedDict):
171
- kms_key_name: pulumi.Input[str]
171
+ kms_key_name: NotRequired[pulumi.Input[str]]
172
172
  """
173
173
  Fully qualified name of the KMS key to use to encrypt this database. This key must exist
174
174
  in the same location as the Spanner Database.
175
175
  """
176
+ kms_key_names: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
177
+ """
178
+ Fully qualified name of the KMS keys to use to encrypt this database. The keys must exist
179
+ in the same locations as the Spanner Database.
180
+ """
176
181
  elif False:
177
182
  DatabaseEncryptionConfigArgsDict: TypeAlias = Mapping[str, Any]
178
183
 
179
184
  @pulumi.input_type
180
185
  class DatabaseEncryptionConfigArgs:
181
186
  def __init__(__self__, *,
182
- kms_key_name: pulumi.Input[str]):
187
+ kms_key_name: Optional[pulumi.Input[str]] = None,
188
+ kms_key_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
183
189
  """
184
190
  :param pulumi.Input[str] kms_key_name: Fully qualified name of the KMS key to use to encrypt this database. This key must exist
185
191
  in the same location as the Spanner Database.
192
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] kms_key_names: Fully qualified name of the KMS keys to use to encrypt this database. The keys must exist
193
+ in the same locations as the Spanner Database.
186
194
  """
187
- pulumi.set(__self__, "kms_key_name", kms_key_name)
195
+ if kms_key_name is not None:
196
+ pulumi.set(__self__, "kms_key_name", kms_key_name)
197
+ if kms_key_names is not None:
198
+ pulumi.set(__self__, "kms_key_names", kms_key_names)
188
199
 
189
200
  @property
190
201
  @pulumi.getter(name="kmsKeyName")
191
- def kms_key_name(self) -> pulumi.Input[str]:
202
+ def kms_key_name(self) -> Optional[pulumi.Input[str]]:
192
203
  """
193
204
  Fully qualified name of the KMS key to use to encrypt this database. This key must exist
194
205
  in the same location as the Spanner Database.
@@ -196,9 +207,22 @@ class DatabaseEncryptionConfigArgs:
196
207
  return pulumi.get(self, "kms_key_name")
197
208
 
198
209
  @kms_key_name.setter
199
- def kms_key_name(self, value: pulumi.Input[str]):
210
+ def kms_key_name(self, value: Optional[pulumi.Input[str]]):
200
211
  pulumi.set(self, "kms_key_name", value)
201
212
 
213
+ @property
214
+ @pulumi.getter(name="kmsKeyNames")
215
+ def kms_key_names(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
216
+ """
217
+ Fully qualified name of the KMS keys to use to encrypt this database. The keys must exist
218
+ in the same locations as the Spanner Database.
219
+ """
220
+ return pulumi.get(self, "kms_key_names")
221
+
222
+ @kms_key_names.setter
223
+ def kms_key_names(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
224
+ pulumi.set(self, "kms_key_names", value)
225
+
202
226
 
203
227
  if not MYPY:
204
228
  class DatabaseIAMBindingConditionArgsDict(TypedDict):
@@ -393,7 +393,8 @@ class BackupSchedule(pulumi.CustomResource):
393
393
  name="instance-id",
394
394
  config="regional-europe-west1",
395
395
  display_name="main-instance",
396
- num_nodes=1)
396
+ num_nodes=1,
397
+ edition="ENTERPRISE")
397
398
  database = gcp.spanner.Database("database",
398
399
  instance=main.name,
399
400
  name="database-id",
@@ -525,7 +526,8 @@ class BackupSchedule(pulumi.CustomResource):
525
526
  name="instance-id",
526
527
  config="regional-europe-west1",
527
528
  display_name="main-instance",
528
- num_nodes=1)
529
+ num_nodes=1,
530
+ edition="ENTERPRISE")
529
531
  database = gcp.spanner.Database("database",
530
532
  instance=main.name,
531
533
  name="database-id",
@@ -130,6 +130,8 @@ class DatabaseEncryptionConfig(dict):
130
130
  suggest = None
131
131
  if key == "kmsKeyName":
132
132
  suggest = "kms_key_name"
133
+ elif key == "kmsKeyNames":
134
+ suggest = "kms_key_names"
133
135
 
134
136
  if suggest:
135
137
  pulumi.log.warn(f"Key '{key}' not found in DatabaseEncryptionConfig. Access the value via the '{suggest}' property getter instead.")
@@ -143,22 +145,37 @@ class DatabaseEncryptionConfig(dict):
143
145
  return super().get(key, default)
144
146
 
145
147
  def __init__(__self__, *,
146
- kms_key_name: str):
148
+ kms_key_name: Optional[str] = None,
149
+ kms_key_names: Optional[Sequence[str]] = None):
147
150
  """
148
151
  :param str kms_key_name: Fully qualified name of the KMS key to use to encrypt this database. This key must exist
149
152
  in the same location as the Spanner Database.
153
+ :param Sequence[str] kms_key_names: Fully qualified name of the KMS keys to use to encrypt this database. The keys must exist
154
+ in the same locations as the Spanner Database.
150
155
  """
151
- pulumi.set(__self__, "kms_key_name", kms_key_name)
156
+ if kms_key_name is not None:
157
+ pulumi.set(__self__, "kms_key_name", kms_key_name)
158
+ if kms_key_names is not None:
159
+ pulumi.set(__self__, "kms_key_names", kms_key_names)
152
160
 
153
161
  @property
154
162
  @pulumi.getter(name="kmsKeyName")
155
- def kms_key_name(self) -> str:
163
+ def kms_key_name(self) -> Optional[str]:
156
164
  """
157
165
  Fully qualified name of the KMS key to use to encrypt this database. This key must exist
158
166
  in the same location as the Spanner Database.
159
167
  """
160
168
  return pulumi.get(self, "kms_key_name")
161
169
 
170
+ @property
171
+ @pulumi.getter(name="kmsKeyNames")
172
+ def kms_key_names(self) -> Optional[Sequence[str]]:
173
+ """
174
+ Fully qualified name of the KMS keys to use to encrypt this database. The keys must exist
175
+ in the same locations as the Spanner Database.
176
+ """
177
+ return pulumi.get(self, "kms_key_names")
178
+
162
179
 
163
180
  @pulumi.output_type
164
181
  class DatabaseIAMBindingCondition(dict):
pulumi_gcp/sql/_inputs.py CHANGED
@@ -1837,11 +1837,11 @@ if not MYPY:
1837
1837
  """
1838
1838
  server_ca_mode: NotRequired[pulumi.Input[str]]
1839
1839
  """
1840
- Specify how the server certificate's Certificate Authority is hosted. Supported value is `GOOGLE_MANAGED_INTERNAL_CA`.
1840
+ Specify how the server certificate's Certificate Authority is hosted. Supported values are `GOOGLE_MANAGED_INTERNAL_CA` and `GOOGLE_MANAGED_CAS_CA`.
1841
1841
  """
1842
1842
  ssl_mode: NotRequired[pulumi.Input[str]]
1843
1843
  """
1844
- Specify how SSL connection should be enforced in DB connections.
1844
+ Specify how SSL connection should be enforced in DB connections. Supported values are `ALLOW_UNENCRYPTED_AND_ENCRYPTED`, `ENCRYPTED_ONLY`, and `TRUSTED_CLIENT_CERTIFICATE_REQUIRED` (not supported for SQL Server). See [API reference doc](https://cloud.google.com/sql/docs/postgres/admin-api/rest/v1/instances#ipconfiguration) for details.
1845
1845
  """
1846
1846
  elif False:
1847
1847
  DatabaseInstanceSettingsIpConfigurationArgsDict: TypeAlias = Mapping[str, Any]
@@ -1869,8 +1869,8 @@ class DatabaseInstanceSettingsIpConfigurationArgs:
1869
1869
  At least `ipv4_enabled` must be enabled or a `private_network` must be configured.
1870
1870
  This setting can be updated, but it cannot be removed after it is set.
1871
1871
  :param pulumi.Input[Sequence[pulumi.Input['DatabaseInstanceSettingsIpConfigurationPscConfigArgs']]] psc_configs: PSC settings for a Cloud SQL instance.
1872
- :param pulumi.Input[str] server_ca_mode: Specify how the server certificate's Certificate Authority is hosted. Supported value is `GOOGLE_MANAGED_INTERNAL_CA`.
1873
- :param pulumi.Input[str] ssl_mode: Specify how SSL connection should be enforced in DB connections.
1872
+ :param pulumi.Input[str] server_ca_mode: Specify how the server certificate's Certificate Authority is hosted. Supported values are `GOOGLE_MANAGED_INTERNAL_CA` and `GOOGLE_MANAGED_CAS_CA`.
1873
+ :param pulumi.Input[str] ssl_mode: Specify how SSL connection should be enforced in DB connections. Supported values are `ALLOW_UNENCRYPTED_AND_ENCRYPTED`, `ENCRYPTED_ONLY`, and `TRUSTED_CLIENT_CERTIFICATE_REQUIRED` (not supported for SQL Server). See [API reference doc](https://cloud.google.com/sql/docs/postgres/admin-api/rest/v1/instances#ipconfiguration) for details.
1874
1874
  """
1875
1875
  if allocated_ip_range is not None:
1876
1876
  pulumi.set(__self__, "allocated_ip_range", allocated_ip_range)
@@ -1968,7 +1968,7 @@ class DatabaseInstanceSettingsIpConfigurationArgs:
1968
1968
  @pulumi.getter(name="serverCaMode")
1969
1969
  def server_ca_mode(self) -> Optional[pulumi.Input[str]]:
1970
1970
  """
1971
- Specify how the server certificate's Certificate Authority is hosted. Supported value is `GOOGLE_MANAGED_INTERNAL_CA`.
1971
+ Specify how the server certificate's Certificate Authority is hosted. Supported values are `GOOGLE_MANAGED_INTERNAL_CA` and `GOOGLE_MANAGED_CAS_CA`.
1972
1972
  """
1973
1973
  return pulumi.get(self, "server_ca_mode")
1974
1974
 
@@ -1980,7 +1980,7 @@ class DatabaseInstanceSettingsIpConfigurationArgs:
1980
1980
  @pulumi.getter(name="sslMode")
1981
1981
  def ssl_mode(self) -> Optional[pulumi.Input[str]]:
1982
1982
  """
1983
- Specify how SSL connection should be enforced in DB connections.
1983
+ Specify how SSL connection should be enforced in DB connections. Supported values are `ALLOW_UNENCRYPTED_AND_ENCRYPTED`, `ENCRYPTED_ONLY`, and `TRUSTED_CLIENT_CERTIFICATE_REQUIRED` (not supported for SQL Server). See [API reference doc](https://cloud.google.com/sql/docs/postgres/admin-api/rest/v1/instances#ipconfiguration) for details.
1984
1984
  """
1985
1985
  return pulumi.get(self, "ssl_mode")
1986
1986
 
pulumi_gcp/sql/outputs.py CHANGED
@@ -1492,8 +1492,8 @@ class DatabaseInstanceSettingsIpConfiguration(dict):
1492
1492
  At least `ipv4_enabled` must be enabled or a `private_network` must be configured.
1493
1493
  This setting can be updated, but it cannot be removed after it is set.
1494
1494
  :param Sequence['DatabaseInstanceSettingsIpConfigurationPscConfigArgs'] psc_configs: PSC settings for a Cloud SQL instance.
1495
- :param str server_ca_mode: Specify how the server certificate's Certificate Authority is hosted. Supported value is `GOOGLE_MANAGED_INTERNAL_CA`.
1496
- :param str ssl_mode: Specify how SSL connection should be enforced in DB connections.
1495
+ :param str server_ca_mode: Specify how the server certificate's Certificate Authority is hosted. Supported values are `GOOGLE_MANAGED_INTERNAL_CA` and `GOOGLE_MANAGED_CAS_CA`.
1496
+ :param str ssl_mode: Specify how SSL connection should be enforced in DB connections. Supported values are `ALLOW_UNENCRYPTED_AND_ENCRYPTED`, `ENCRYPTED_ONLY`, and `TRUSTED_CLIENT_CERTIFICATE_REQUIRED` (not supported for SQL Server). See [API reference doc](https://cloud.google.com/sql/docs/postgres/admin-api/rest/v1/instances#ipconfiguration) for details.
1497
1497
  """
1498
1498
  if allocated_ip_range is not None:
1499
1499
  pulumi.set(__self__, "allocated_ip_range", allocated_ip_range)
@@ -1567,7 +1567,7 @@ class DatabaseInstanceSettingsIpConfiguration(dict):
1567
1567
  @pulumi.getter(name="serverCaMode")
1568
1568
  def server_ca_mode(self) -> Optional[str]:
1569
1569
  """
1570
- Specify how the server certificate's Certificate Authority is hosted. Supported value is `GOOGLE_MANAGED_INTERNAL_CA`.
1570
+ Specify how the server certificate's Certificate Authority is hosted. Supported values are `GOOGLE_MANAGED_INTERNAL_CA` and `GOOGLE_MANAGED_CAS_CA`.
1571
1571
  """
1572
1572
  return pulumi.get(self, "server_ca_mode")
1573
1573
 
@@ -1575,7 +1575,7 @@ class DatabaseInstanceSettingsIpConfiguration(dict):
1575
1575
  @pulumi.getter(name="sslMode")
1576
1576
  def ssl_mode(self) -> Optional[str]:
1577
1577
  """
1578
- Specify how SSL connection should be enforced in DB connections.
1578
+ Specify how SSL connection should be enforced in DB connections. Supported values are `ALLOW_UNENCRYPTED_AND_ENCRYPTED`, `ENCRYPTED_ONLY`, and `TRUSTED_CLIENT_CERTIFICATE_REQUIRED` (not supported for SQL Server). See [API reference doc](https://cloud.google.com/sql/docs/postgres/admin-api/rest/v1/instances#ipconfiguration) for details.
1579
1579
  """
1580
1580
  return pulumi.get(self, "ssl_mode")
1581
1581
 
pulumi_gcp/sql/user.py CHANGED
@@ -53,9 +53,10 @@ class UserArgs:
53
53
  is not provided, the provider project is used.
54
54
  :param pulumi.Input[str] type: The user type. It determines the method to authenticate the
55
55
  user during login. The default is the database's built-in user type. Flags
56
- include "BUILT_IN", "CLOUD_IAM_USER", and "CLOUD_IAM_SERVICE_ACCOUNT" for both
57
- [Postgres](https://cloud.google.com/sql/docs/postgres/admin-api/rest/v1beta4/users#sqlusertype) and [MySQL](https://cloud.google.com/sql/docs/mysql/admin-api/rest/v1beta4/users#sqlusertype).
58
- MySQL also includes "CLOUD_IAM_GROUP", "CLOUD_IAM_GROUP_USER" and "CLOUD_IAM_GROUP_SERVICE_ACCOUNT".
56
+ include "BUILT_IN", "CLOUD_IAM_USER", "CLOUD_IAM_SERVICE_ACCOUNT", "CLOUD_IAM_GROUP",
57
+ "CLOUD_IAM_GROUP_USER" and "CLOUD_IAM_GROUP_SERVICE_ACCOUNT" for
58
+ [Postgres](https://cloud.google.com/sql/docs/postgres/admin-api/rest/v1beta4/users#sqlusertype)
59
+ and [MySQL](https://cloud.google.com/sql/docs/mysql/admin-api/rest/v1beta4/users#sqlusertype).
59
60
  """
60
61
  pulumi.set(__self__, "instance", instance)
61
62
  if deletion_policy is not None:
@@ -174,9 +175,10 @@ class UserArgs:
174
175
  """
175
176
  The user type. It determines the method to authenticate the
176
177
  user during login. The default is the database's built-in user type. Flags
177
- include "BUILT_IN", "CLOUD_IAM_USER", and "CLOUD_IAM_SERVICE_ACCOUNT" for both
178
- [Postgres](https://cloud.google.com/sql/docs/postgres/admin-api/rest/v1beta4/users#sqlusertype) and [MySQL](https://cloud.google.com/sql/docs/mysql/admin-api/rest/v1beta4/users#sqlusertype).
179
- MySQL also includes "CLOUD_IAM_GROUP", "CLOUD_IAM_GROUP_USER" and "CLOUD_IAM_GROUP_SERVICE_ACCOUNT".
178
+ include "BUILT_IN", "CLOUD_IAM_USER", "CLOUD_IAM_SERVICE_ACCOUNT", "CLOUD_IAM_GROUP",
179
+ "CLOUD_IAM_GROUP_USER" and "CLOUD_IAM_GROUP_SERVICE_ACCOUNT" for
180
+ [Postgres](https://cloud.google.com/sql/docs/postgres/admin-api/rest/v1beta4/users#sqlusertype)
181
+ and [MySQL](https://cloud.google.com/sql/docs/mysql/admin-api/rest/v1beta4/users#sqlusertype).
180
182
  """
181
183
  return pulumi.get(self, "type")
182
184
 
@@ -221,9 +223,10 @@ class _UserState:
221
223
  is not provided, the provider project is used.
222
224
  :param pulumi.Input[str] type: The user type. It determines the method to authenticate the
223
225
  user during login. The default is the database's built-in user type. Flags
224
- include "BUILT_IN", "CLOUD_IAM_USER", and "CLOUD_IAM_SERVICE_ACCOUNT" for both
225
- [Postgres](https://cloud.google.com/sql/docs/postgres/admin-api/rest/v1beta4/users#sqlusertype) and [MySQL](https://cloud.google.com/sql/docs/mysql/admin-api/rest/v1beta4/users#sqlusertype).
226
- MySQL also includes "CLOUD_IAM_GROUP", "CLOUD_IAM_GROUP_USER" and "CLOUD_IAM_GROUP_SERVICE_ACCOUNT".
226
+ include "BUILT_IN", "CLOUD_IAM_USER", "CLOUD_IAM_SERVICE_ACCOUNT", "CLOUD_IAM_GROUP",
227
+ "CLOUD_IAM_GROUP_USER" and "CLOUD_IAM_GROUP_SERVICE_ACCOUNT" for
228
+ [Postgres](https://cloud.google.com/sql/docs/postgres/admin-api/rest/v1beta4/users#sqlusertype)
229
+ and [MySQL](https://cloud.google.com/sql/docs/mysql/admin-api/rest/v1beta4/users#sqlusertype).
227
230
  """
228
231
  if deletion_policy is not None:
229
232
  pulumi.set(__self__, "deletion_policy", deletion_policy)
@@ -354,9 +357,10 @@ class _UserState:
354
357
  """
355
358
  The user type. It determines the method to authenticate the
356
359
  user during login. The default is the database's built-in user type. Flags
357
- include "BUILT_IN", "CLOUD_IAM_USER", and "CLOUD_IAM_SERVICE_ACCOUNT" for both
358
- [Postgres](https://cloud.google.com/sql/docs/postgres/admin-api/rest/v1beta4/users#sqlusertype) and [MySQL](https://cloud.google.com/sql/docs/mysql/admin-api/rest/v1beta4/users#sqlusertype).
359
- MySQL also includes "CLOUD_IAM_GROUP", "CLOUD_IAM_GROUP_USER" and "CLOUD_IAM_GROUP_SERVICE_ACCOUNT".
360
+ include "BUILT_IN", "CLOUD_IAM_USER", "CLOUD_IAM_SERVICE_ACCOUNT", "CLOUD_IAM_GROUP",
361
+ "CLOUD_IAM_GROUP_USER" and "CLOUD_IAM_GROUP_SERVICE_ACCOUNT" for
362
+ [Postgres](https://cloud.google.com/sql/docs/postgres/admin-api/rest/v1beta4/users#sqlusertype)
363
+ and [MySQL](https://cloud.google.com/sql/docs/mysql/admin-api/rest/v1beta4/users#sqlusertype).
360
364
  """
361
365
  return pulumi.get(self, "type")
362
366
 
@@ -507,9 +511,10 @@ class User(pulumi.CustomResource):
507
511
  is not provided, the provider project is used.
508
512
  :param pulumi.Input[str] type: The user type. It determines the method to authenticate the
509
513
  user during login. The default is the database's built-in user type. Flags
510
- include "BUILT_IN", "CLOUD_IAM_USER", and "CLOUD_IAM_SERVICE_ACCOUNT" for both
511
- [Postgres](https://cloud.google.com/sql/docs/postgres/admin-api/rest/v1beta4/users#sqlusertype) and [MySQL](https://cloud.google.com/sql/docs/mysql/admin-api/rest/v1beta4/users#sqlusertype).
512
- MySQL also includes "CLOUD_IAM_GROUP", "CLOUD_IAM_GROUP_USER" and "CLOUD_IAM_GROUP_SERVICE_ACCOUNT".
514
+ include "BUILT_IN", "CLOUD_IAM_USER", "CLOUD_IAM_SERVICE_ACCOUNT", "CLOUD_IAM_GROUP",
515
+ "CLOUD_IAM_GROUP_USER" and "CLOUD_IAM_GROUP_SERVICE_ACCOUNT" for
516
+ [Postgres](https://cloud.google.com/sql/docs/postgres/admin-api/rest/v1beta4/users#sqlusertype)
517
+ and [MySQL](https://cloud.google.com/sql/docs/mysql/admin-api/rest/v1beta4/users#sqlusertype).
513
518
  """
514
519
  ...
515
520
  @overload
@@ -714,9 +719,10 @@ class User(pulumi.CustomResource):
714
719
  is not provided, the provider project is used.
715
720
  :param pulumi.Input[str] type: The user type. It determines the method to authenticate the
716
721
  user during login. The default is the database's built-in user type. Flags
717
- include "BUILT_IN", "CLOUD_IAM_USER", and "CLOUD_IAM_SERVICE_ACCOUNT" for both
718
- [Postgres](https://cloud.google.com/sql/docs/postgres/admin-api/rest/v1beta4/users#sqlusertype) and [MySQL](https://cloud.google.com/sql/docs/mysql/admin-api/rest/v1beta4/users#sqlusertype).
719
- MySQL also includes "CLOUD_IAM_GROUP", "CLOUD_IAM_GROUP_USER" and "CLOUD_IAM_GROUP_SERVICE_ACCOUNT".
722
+ include "BUILT_IN", "CLOUD_IAM_USER", "CLOUD_IAM_SERVICE_ACCOUNT", "CLOUD_IAM_GROUP",
723
+ "CLOUD_IAM_GROUP_USER" and "CLOUD_IAM_GROUP_SERVICE_ACCOUNT" for
724
+ [Postgres](https://cloud.google.com/sql/docs/postgres/admin-api/rest/v1beta4/users#sqlusertype)
725
+ and [MySQL](https://cloud.google.com/sql/docs/mysql/admin-api/rest/v1beta4/users#sqlusertype).
720
726
  """
721
727
  opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
722
728
 
@@ -811,9 +817,10 @@ class User(pulumi.CustomResource):
811
817
  """
812
818
  The user type. It determines the method to authenticate the
813
819
  user during login. The default is the database's built-in user type. Flags
814
- include "BUILT_IN", "CLOUD_IAM_USER", and "CLOUD_IAM_SERVICE_ACCOUNT" for both
815
- [Postgres](https://cloud.google.com/sql/docs/postgres/admin-api/rest/v1beta4/users#sqlusertype) and [MySQL](https://cloud.google.com/sql/docs/mysql/admin-api/rest/v1beta4/users#sqlusertype).
816
- MySQL also includes "CLOUD_IAM_GROUP", "CLOUD_IAM_GROUP_USER" and "CLOUD_IAM_GROUP_SERVICE_ACCOUNT".
820
+ include "BUILT_IN", "CLOUD_IAM_USER", "CLOUD_IAM_SERVICE_ACCOUNT", "CLOUD_IAM_GROUP",
821
+ "CLOUD_IAM_GROUP_USER" and "CLOUD_IAM_GROUP_SERVICE_ACCOUNT" for
822
+ [Postgres](https://cloud.google.com/sql/docs/postgres/admin-api/rest/v1beta4/users#sqlusertype)
823
+ and [MySQL](https://cloud.google.com/sql/docs/mysql/admin-api/rest/v1beta4/users#sqlusertype).
817
824
  """
818
825
  return pulumi.get(self, "type")
819
826
 
@@ -23,6 +23,8 @@ __all__ = [
23
23
  'BucketCustomPlacementConfigArgsDict',
24
24
  'BucketEncryptionArgs',
25
25
  'BucketEncryptionArgsDict',
26
+ 'BucketHierarchicalNamespaceArgs',
27
+ 'BucketHierarchicalNamespaceArgsDict',
26
28
  'BucketIAMBindingConditionArgs',
27
29
  'BucketIAMBindingConditionArgsDict',
28
30
  'BucketIAMMemberConditionArgs',
@@ -355,6 +357,40 @@ class BucketEncryptionArgs:
355
357
  pulumi.set(self, "default_kms_key_name", value)
356
358
 
357
359
 
360
+ if not MYPY:
361
+ class BucketHierarchicalNamespaceArgsDict(TypedDict):
362
+ enabled: pulumi.Input[bool]
363
+ """
364
+ Enable hierarchical namespace for the bucket.
365
+ To use this flag, you must also use --uniform-bucket-level-access
366
+ """
367
+ elif False:
368
+ BucketHierarchicalNamespaceArgsDict: TypeAlias = Mapping[str, Any]
369
+
370
+ @pulumi.input_type
371
+ class BucketHierarchicalNamespaceArgs:
372
+ def __init__(__self__, *,
373
+ enabled: pulumi.Input[bool]):
374
+ """
375
+ :param pulumi.Input[bool] enabled: Enable hierarchical namespace for the bucket.
376
+ To use this flag, you must also use --uniform-bucket-level-access
377
+ """
378
+ pulumi.set(__self__, "enabled", enabled)
379
+
380
+ @property
381
+ @pulumi.getter
382
+ def enabled(self) -> pulumi.Input[bool]:
383
+ """
384
+ Enable hierarchical namespace for the bucket.
385
+ To use this flag, you must also use --uniform-bucket-level-access
386
+ """
387
+ return pulumi.get(self, "enabled")
388
+
389
+ @enabled.setter
390
+ def enabled(self, value: pulumi.Input[bool]):
391
+ pulumi.set(self, "enabled", value)
392
+
393
+
358
394
  if not MYPY:
359
395
  class BucketIAMBindingConditionArgsDict(TypedDict):
360
396
  expression: pulumi.Input[str]
@@ -29,6 +29,7 @@ class BucketArgs:
29
29
  enable_object_retention: Optional[pulumi.Input[bool]] = None,
30
30
  encryption: Optional[pulumi.Input['BucketEncryptionArgs']] = None,
31
31
  force_destroy: Optional[pulumi.Input[bool]] = None,
32
+ hierarchical_namespace: Optional[pulumi.Input['BucketHierarchicalNamespaceArgs']] = None,
32
33
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
33
34
  lifecycle_rules: Optional[pulumi.Input[Sequence[pulumi.Input['BucketLifecycleRuleArgs']]]] = None,
34
35
  logging: Optional[pulumi.Input['BucketLoggingArgs']] = None,
@@ -57,6 +58,7 @@ class BucketArgs:
57
58
  :param pulumi.Input[bool] force_destroy: When deleting a bucket, this
58
59
  boolean option will delete all contained objects. If you try to delete a
59
60
  bucket that contains objects, the provider will fail that run.
61
+ :param pulumi.Input['BucketHierarchicalNamespaceArgs'] hierarchical_namespace: The bucket's hierarchical namespace policy, which defines the bucket capability to handle folders in logical structure. Structure is documented below.
60
62
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: A map of key/value label pairs to assign to the bucket.
61
63
  :param pulumi.Input[Sequence[pulumi.Input['BucketLifecycleRuleArgs']]] lifecycle_rules: The bucket's [Lifecycle Rules](https://cloud.google.com/storage/docs/lifecycle#configuration) configuration. Multiple blocks of this type are permitted. Structure is documented below.
62
64
  :param pulumi.Input['BucketLoggingArgs'] logging: The bucket's [Access & Storage Logs](https://cloud.google.com/storage/docs/access-logs) configuration. Structure is documented below.
@@ -89,6 +91,8 @@ class BucketArgs:
89
91
  pulumi.set(__self__, "encryption", encryption)
90
92
  if force_destroy is not None:
91
93
  pulumi.set(__self__, "force_destroy", force_destroy)
94
+ if hierarchical_namespace is not None:
95
+ pulumi.set(__self__, "hierarchical_namespace", hierarchical_namespace)
92
96
  if labels is not None:
93
97
  pulumi.set(__self__, "labels", labels)
94
98
  if lifecycle_rules is not None:
@@ -218,6 +222,18 @@ class BucketArgs:
218
222
  def force_destroy(self, value: Optional[pulumi.Input[bool]]):
219
223
  pulumi.set(self, "force_destroy", value)
220
224
 
225
+ @property
226
+ @pulumi.getter(name="hierarchicalNamespace")
227
+ def hierarchical_namespace(self) -> Optional[pulumi.Input['BucketHierarchicalNamespaceArgs']]:
228
+ """
229
+ The bucket's hierarchical namespace policy, which defines the bucket capability to handle folders in logical structure. Structure is documented below.
230
+ """
231
+ return pulumi.get(self, "hierarchical_namespace")
232
+
233
+ @hierarchical_namespace.setter
234
+ def hierarchical_namespace(self, value: Optional[pulumi.Input['BucketHierarchicalNamespaceArgs']]):
235
+ pulumi.set(self, "hierarchical_namespace", value)
236
+
221
237
  @property
222
238
  @pulumi.getter
223
239
  def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
@@ -400,6 +416,7 @@ class _BucketState:
400
416
  enable_object_retention: Optional[pulumi.Input[bool]] = None,
401
417
  encryption: Optional[pulumi.Input['BucketEncryptionArgs']] = None,
402
418
  force_destroy: Optional[pulumi.Input[bool]] = None,
419
+ hierarchical_namespace: Optional[pulumi.Input['BucketHierarchicalNamespaceArgs']] = None,
403
420
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
404
421
  lifecycle_rules: Optional[pulumi.Input[Sequence[pulumi.Input['BucketLifecycleRuleArgs']]]] = None,
405
422
  location: Optional[pulumi.Input[str]] = None,
@@ -430,6 +447,7 @@ class _BucketState:
430
447
  :param pulumi.Input[bool] force_destroy: When deleting a bucket, this
431
448
  boolean option will delete all contained objects. If you try to delete a
432
449
  bucket that contains objects, the provider will fail that run.
450
+ :param pulumi.Input['BucketHierarchicalNamespaceArgs'] hierarchical_namespace: The bucket's hierarchical namespace policy, which defines the bucket capability to handle folders in logical structure. Structure is documented below.
433
451
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: A map of key/value label pairs to assign to the bucket.
434
452
  :param pulumi.Input[Sequence[pulumi.Input['BucketLifecycleRuleArgs']]] lifecycle_rules: The bucket's [Lifecycle Rules](https://cloud.google.com/storage/docs/lifecycle#configuration) configuration. Multiple blocks of this type are permitted. Structure is documented below.
435
453
  :param pulumi.Input[str] location: The [GCS location](https://cloud.google.com/storage/docs/bucket-locations).
@@ -470,6 +488,8 @@ class _BucketState:
470
488
  pulumi.set(__self__, "encryption", encryption)
471
489
  if force_destroy is not None:
472
490
  pulumi.set(__self__, "force_destroy", force_destroy)
491
+ if hierarchical_namespace is not None:
492
+ pulumi.set(__self__, "hierarchical_namespace", hierarchical_namespace)
473
493
  if labels is not None:
474
494
  pulumi.set(__self__, "labels", labels)
475
495
  if lifecycle_rules is not None:
@@ -604,6 +624,18 @@ class _BucketState:
604
624
  def force_destroy(self, value: Optional[pulumi.Input[bool]]):
605
625
  pulumi.set(self, "force_destroy", value)
606
626
 
627
+ @property
628
+ @pulumi.getter(name="hierarchicalNamespace")
629
+ def hierarchical_namespace(self) -> Optional[pulumi.Input['BucketHierarchicalNamespaceArgs']]:
630
+ """
631
+ The bucket's hierarchical namespace policy, which defines the bucket capability to handle folders in logical structure. Structure is documented below.
632
+ """
633
+ return pulumi.get(self, "hierarchical_namespace")
634
+
635
+ @hierarchical_namespace.setter
636
+ def hierarchical_namespace(self, value: Optional[pulumi.Input['BucketHierarchicalNamespaceArgs']]):
637
+ pulumi.set(self, "hierarchical_namespace", value)
638
+
607
639
  @property
608
640
  @pulumi.getter
609
641
  def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
@@ -849,6 +881,7 @@ class Bucket(pulumi.CustomResource):
849
881
  enable_object_retention: Optional[pulumi.Input[bool]] = None,
850
882
  encryption: Optional[pulumi.Input[Union['BucketEncryptionArgs', 'BucketEncryptionArgsDict']]] = None,
851
883
  force_destroy: Optional[pulumi.Input[bool]] = None,
884
+ hierarchical_namespace: Optional[pulumi.Input[Union['BucketHierarchicalNamespaceArgs', 'BucketHierarchicalNamespaceArgsDict']]] = None,
852
885
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
853
886
  lifecycle_rules: Optional[pulumi.Input[Sequence[pulumi.Input[Union['BucketLifecycleRuleArgs', 'BucketLifecycleRuleArgsDict']]]]] = None,
854
887
  location: Optional[pulumi.Input[str]] = None,
@@ -1014,6 +1047,7 @@ class Bucket(pulumi.CustomResource):
1014
1047
  :param pulumi.Input[bool] force_destroy: When deleting a bucket, this
1015
1048
  boolean option will delete all contained objects. If you try to delete a
1016
1049
  bucket that contains objects, the provider will fail that run.
1050
+ :param pulumi.Input[Union['BucketHierarchicalNamespaceArgs', 'BucketHierarchicalNamespaceArgsDict']] hierarchical_namespace: The bucket's hierarchical namespace policy, which defines the bucket capability to handle folders in logical structure. Structure is documented below.
1017
1051
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: A map of key/value label pairs to assign to the bucket.
1018
1052
  :param pulumi.Input[Sequence[pulumi.Input[Union['BucketLifecycleRuleArgs', 'BucketLifecycleRuleArgsDict']]]] lifecycle_rules: The bucket's [Lifecycle Rules](https://cloud.google.com/storage/docs/lifecycle#configuration) configuration. Multiple blocks of this type are permitted. Structure is documented below.
1019
1053
  :param pulumi.Input[str] location: The [GCS location](https://cloud.google.com/storage/docs/bucket-locations).
@@ -1200,6 +1234,7 @@ class Bucket(pulumi.CustomResource):
1200
1234
  enable_object_retention: Optional[pulumi.Input[bool]] = None,
1201
1235
  encryption: Optional[pulumi.Input[Union['BucketEncryptionArgs', 'BucketEncryptionArgsDict']]] = None,
1202
1236
  force_destroy: Optional[pulumi.Input[bool]] = None,
1237
+ hierarchical_namespace: Optional[pulumi.Input[Union['BucketHierarchicalNamespaceArgs', 'BucketHierarchicalNamespaceArgsDict']]] = None,
1203
1238
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
1204
1239
  lifecycle_rules: Optional[pulumi.Input[Sequence[pulumi.Input[Union['BucketLifecycleRuleArgs', 'BucketLifecycleRuleArgsDict']]]]] = None,
1205
1240
  location: Optional[pulumi.Input[str]] = None,
@@ -1231,6 +1266,7 @@ class Bucket(pulumi.CustomResource):
1231
1266
  __props__.__dict__["enable_object_retention"] = enable_object_retention
1232
1267
  __props__.__dict__["encryption"] = encryption
1233
1268
  __props__.__dict__["force_destroy"] = force_destroy
1269
+ __props__.__dict__["hierarchical_namespace"] = hierarchical_namespace
1234
1270
  __props__.__dict__["labels"] = labels
1235
1271
  __props__.__dict__["lifecycle_rules"] = lifecycle_rules
1236
1272
  if location is None and not opts.urn:
@@ -1273,6 +1309,7 @@ class Bucket(pulumi.CustomResource):
1273
1309
  enable_object_retention: Optional[pulumi.Input[bool]] = None,
1274
1310
  encryption: Optional[pulumi.Input[Union['BucketEncryptionArgs', 'BucketEncryptionArgsDict']]] = None,
1275
1311
  force_destroy: Optional[pulumi.Input[bool]] = None,
1312
+ hierarchical_namespace: Optional[pulumi.Input[Union['BucketHierarchicalNamespaceArgs', 'BucketHierarchicalNamespaceArgsDict']]] = None,
1276
1313
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
1277
1314
  lifecycle_rules: Optional[pulumi.Input[Sequence[pulumi.Input[Union['BucketLifecycleRuleArgs', 'BucketLifecycleRuleArgsDict']]]]] = None,
1278
1315
  location: Optional[pulumi.Input[str]] = None,
@@ -1308,6 +1345,7 @@ class Bucket(pulumi.CustomResource):
1308
1345
  :param pulumi.Input[bool] force_destroy: When deleting a bucket, this
1309
1346
  boolean option will delete all contained objects. If you try to delete a
1310
1347
  bucket that contains objects, the provider will fail that run.
1348
+ :param pulumi.Input[Union['BucketHierarchicalNamespaceArgs', 'BucketHierarchicalNamespaceArgsDict']] hierarchical_namespace: The bucket's hierarchical namespace policy, which defines the bucket capability to handle folders in logical structure. Structure is documented below.
1311
1349
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: A map of key/value label pairs to assign to the bucket.
1312
1350
  :param pulumi.Input[Sequence[pulumi.Input[Union['BucketLifecycleRuleArgs', 'BucketLifecycleRuleArgsDict']]]] lifecycle_rules: The bucket's [Lifecycle Rules](https://cloud.google.com/storage/docs/lifecycle#configuration) configuration. Multiple blocks of this type are permitted. Structure is documented below.
1313
1351
  :param pulumi.Input[str] location: The [GCS location](https://cloud.google.com/storage/docs/bucket-locations).
@@ -1344,6 +1382,7 @@ class Bucket(pulumi.CustomResource):
1344
1382
  __props__.__dict__["enable_object_retention"] = enable_object_retention
1345
1383
  __props__.__dict__["encryption"] = encryption
1346
1384
  __props__.__dict__["force_destroy"] = force_destroy
1385
+ __props__.__dict__["hierarchical_namespace"] = hierarchical_namespace
1347
1386
  __props__.__dict__["labels"] = labels
1348
1387
  __props__.__dict__["lifecycle_rules"] = lifecycle_rules
1349
1388
  __props__.__dict__["location"] = location
@@ -1428,6 +1467,14 @@ class Bucket(pulumi.CustomResource):
1428
1467
  """
1429
1468
  return pulumi.get(self, "force_destroy")
1430
1469
 
1470
+ @property
1471
+ @pulumi.getter(name="hierarchicalNamespace")
1472
+ def hierarchical_namespace(self) -> pulumi.Output[Optional['outputs.BucketHierarchicalNamespace']]:
1473
+ """
1474
+ The bucket's hierarchical namespace policy, which defines the bucket capability to handle folders in logical structure. Structure is documented below.
1475
+ """
1476
+ return pulumi.get(self, "hierarchical_namespace")
1477
+
1431
1478
  @property
1432
1479
  @pulumi.getter
1433
1480
  def labels(self) -> pulumi.Output[Optional[Mapping[str, str]]]:
@@ -27,7 +27,7 @@ class GetBucketResult:
27
27
  """
28
28
  A collection of values returned by getBucket.
29
29
  """
30
- def __init__(__self__, autoclasses=None, cors=None, custom_placement_configs=None, default_event_based_hold=None, effective_labels=None, enable_object_retention=None, encryptions=None, force_destroy=None, id=None, labels=None, lifecycle_rules=None, location=None, loggings=None, name=None, project=None, project_number=None, public_access_prevention=None, pulumi_labels=None, requester_pays=None, retention_policies=None, rpo=None, self_link=None, soft_delete_policies=None, storage_class=None, uniform_bucket_level_access=None, url=None, versionings=None, websites=None):
30
+ def __init__(__self__, autoclasses=None, cors=None, custom_placement_configs=None, default_event_based_hold=None, effective_labels=None, enable_object_retention=None, encryptions=None, force_destroy=None, hierarchical_namespaces=None, id=None, labels=None, lifecycle_rules=None, location=None, loggings=None, name=None, project=None, project_number=None, public_access_prevention=None, pulumi_labels=None, requester_pays=None, retention_policies=None, rpo=None, self_link=None, soft_delete_policies=None, storage_class=None, uniform_bucket_level_access=None, url=None, versionings=None, websites=None):
31
31
  if autoclasses and not isinstance(autoclasses, list):
32
32
  raise TypeError("Expected argument 'autoclasses' to be a list")
33
33
  pulumi.set(__self__, "autoclasses", autoclasses)
@@ -52,6 +52,9 @@ class GetBucketResult:
52
52
  if force_destroy and not isinstance(force_destroy, bool):
53
53
  raise TypeError("Expected argument 'force_destroy' to be a bool")
54
54
  pulumi.set(__self__, "force_destroy", force_destroy)
55
+ if hierarchical_namespaces and not isinstance(hierarchical_namespaces, list):
56
+ raise TypeError("Expected argument 'hierarchical_namespaces' to be a list")
57
+ pulumi.set(__self__, "hierarchical_namespaces", hierarchical_namespaces)
55
58
  if id and not isinstance(id, str):
56
59
  raise TypeError("Expected argument 'id' to be a str")
57
60
  pulumi.set(__self__, "id", id)
@@ -153,6 +156,11 @@ class GetBucketResult:
153
156
  def force_destroy(self) -> bool:
154
157
  return pulumi.get(self, "force_destroy")
155
158
 
159
+ @property
160
+ @pulumi.getter(name="hierarchicalNamespaces")
161
+ def hierarchical_namespaces(self) -> Sequence['outputs.GetBucketHierarchicalNamespaceResult']:
162
+ return pulumi.get(self, "hierarchical_namespaces")
163
+
156
164
  @property
157
165
  @pulumi.getter
158
166
  def id(self) -> str:
@@ -271,6 +279,7 @@ class AwaitableGetBucketResult(GetBucketResult):
271
279
  enable_object_retention=self.enable_object_retention,
272
280
  encryptions=self.encryptions,
273
281
  force_destroy=self.force_destroy,
282
+ hierarchical_namespaces=self.hierarchical_namespaces,
274
283
  id=self.id,
275
284
  labels=self.labels,
276
285
  lifecycle_rules=self.lifecycle_rules,
@@ -330,6 +339,7 @@ def get_bucket(name: Optional[str] = None,
330
339
  enable_object_retention=pulumi.get(__ret__, 'enable_object_retention'),
331
340
  encryptions=pulumi.get(__ret__, 'encryptions'),
332
341
  force_destroy=pulumi.get(__ret__, 'force_destroy'),
342
+ hierarchical_namespaces=pulumi.get(__ret__, 'hierarchical_namespaces'),
333
343
  id=pulumi.get(__ret__, 'id'),
334
344
  labels=pulumi.get(__ret__, 'labels'),
335
345
  lifecycle_rules=pulumi.get(__ret__, 'lifecycle_rules'),
@@ -386,6 +396,7 @@ def get_bucket_output(name: Optional[pulumi.Input[str]] = None,
386
396
  enable_object_retention=pulumi.get(__response__, 'enable_object_retention'),
387
397
  encryptions=pulumi.get(__response__, 'encryptions'),
388
398
  force_destroy=pulumi.get(__response__, 'force_destroy'),
399
+ hierarchical_namespaces=pulumi.get(__response__, 'hierarchical_namespaces'),
389
400
  id=pulumi.get(__response__, 'id'),
390
401
  labels=pulumi.get(__response__, 'labels'),
391
402
  lifecycle_rules=pulumi.get(__response__, 'lifecycle_rules'),