pulumi-gcp 8.1.0a1726293903__py3-none-any.whl → 8.2.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 +62 -0
  2. pulumi_gcp/alloydb/_inputs.py +94 -0
  3. pulumi_gcp/alloydb/cluster.py +94 -1
  4. pulumi_gcp/alloydb/outputs.py +79 -0
  5. pulumi_gcp/assuredworkloads/workload.py +135 -16
  6. pulumi_gcp/backupdisasterrecovery/__init__.py +1 -0
  7. pulumi_gcp/backupdisasterrecovery/backup_vault.py +1203 -0
  8. pulumi_gcp/bigquery/__init__.py +1 -0
  9. pulumi_gcp/bigquery/_inputs.py +33 -0
  10. pulumi_gcp/bigquery/data_transfer_config.py +134 -6
  11. pulumi_gcp/bigquery/get_tables.py +143 -0
  12. pulumi_gcp/bigquery/outputs.py +66 -0
  13. pulumi_gcp/bigqueryanalyticshub/_inputs.py +169 -7
  14. pulumi_gcp/bigqueryanalyticshub/data_exchange.py +96 -3
  15. pulumi_gcp/bigqueryanalyticshub/listing.py +114 -0
  16. pulumi_gcp/bigqueryanalyticshub/outputs.py +138 -5
  17. pulumi_gcp/bigtable/_inputs.py +21 -1
  18. pulumi_gcp/bigtable/outputs.py +13 -1
  19. pulumi_gcp/bigtable/table.py +34 -0
  20. pulumi_gcp/certificateauthority/authority.py +14 -7
  21. pulumi_gcp/certificatemanager/__init__.py +1 -0
  22. pulumi_gcp/certificatemanager/certificate.py +28 -0
  23. pulumi_gcp/certificatemanager/get_certificates.py +150 -0
  24. pulumi_gcp/certificatemanager/outputs.py +322 -0
  25. pulumi_gcp/cloudbuild/_inputs.py +6 -6
  26. pulumi_gcp/cloudbuild/outputs.py +4 -4
  27. pulumi_gcp/cloudrun/_inputs.py +6 -12
  28. pulumi_gcp/cloudrun/outputs.py +8 -16
  29. pulumi_gcp/cloudrunv2/_inputs.py +72 -15
  30. pulumi_gcp/cloudrunv2/outputs.py +82 -16
  31. pulumi_gcp/cloudrunv2/service.py +50 -4
  32. pulumi_gcp/cloudtasks/_inputs.py +630 -0
  33. pulumi_gcp/cloudtasks/outputs.py +479 -0
  34. pulumi_gcp/cloudtasks/queue.py +238 -0
  35. pulumi_gcp/compute/__init__.py +1 -0
  36. pulumi_gcp/compute/_inputs.py +2300 -257
  37. pulumi_gcp/compute/get_instance.py +4 -1
  38. pulumi_gcp/compute/health_check.py +114 -0
  39. pulumi_gcp/compute/instance.py +86 -4
  40. pulumi_gcp/compute/instance_template.py +66 -0
  41. pulumi_gcp/compute/interconnect.py +28 -21
  42. pulumi_gcp/compute/network_firewall_policy_with_rules.py +826 -0
  43. pulumi_gcp/compute/node_template.py +93 -0
  44. pulumi_gcp/compute/outputs.py +1491 -6
  45. pulumi_gcp/compute/region_target_http_proxy.py +159 -0
  46. pulumi_gcp/compute/region_target_https_proxy.py +175 -0
  47. pulumi_gcp/compute/service_attachment.py +75 -0
  48. pulumi_gcp/compute/target_http_proxy.py +49 -28
  49. pulumi_gcp/compute/target_https_proxy.py +77 -28
  50. pulumi_gcp/config/__init__.pyi +4 -0
  51. pulumi_gcp/config/vars.py +8 -0
  52. pulumi_gcp/container/_inputs.py +236 -3
  53. pulumi_gcp/container/attached_cluster.py +61 -8
  54. pulumi_gcp/container/outputs.py +276 -2
  55. pulumi_gcp/databasemigrationservice/_inputs.py +176 -148
  56. pulumi_gcp/databasemigrationservice/connection_profile.py +206 -0
  57. pulumi_gcp/databasemigrationservice/outputs.py +109 -87
  58. pulumi_gcp/dataloss/_inputs.py +353 -1
  59. pulumi_gcp/dataloss/outputs.py +274 -3
  60. pulumi_gcp/dataproc/_inputs.py +27 -27
  61. pulumi_gcp/dataproc/metastore_federation.py +8 -8
  62. pulumi_gcp/dataproc/metastore_service.py +2 -0
  63. pulumi_gcp/dataproc/outputs.py +18 -18
  64. pulumi_gcp/datastream/_inputs.py +69 -1
  65. pulumi_gcp/datastream/outputs.py +44 -2
  66. pulumi_gcp/datastream/stream.py +201 -7
  67. pulumi_gcp/developerconnect/__init__.py +11 -0
  68. pulumi_gcp/developerconnect/_inputs.py +301 -0
  69. pulumi_gcp/developerconnect/connection.py +1034 -0
  70. pulumi_gcp/developerconnect/git_repository_link.py +873 -0
  71. pulumi_gcp/developerconnect/outputs.py +247 -0
  72. pulumi_gcp/discoveryengine/_inputs.py +188 -0
  73. pulumi_gcp/discoveryengine/data_store.py +14 -14
  74. pulumi_gcp/discoveryengine/outputs.py +153 -1
  75. pulumi_gcp/firebase/database_instance.py +7 -7
  76. pulumi_gcp/gkehub/_inputs.py +25 -1
  77. pulumi_gcp/gkehub/feature_membership.py +12 -6
  78. pulumi_gcp/gkehub/outputs.py +17 -1
  79. pulumi_gcp/gkeonprem/_inputs.py +3 -3
  80. pulumi_gcp/gkeonprem/outputs.py +2 -2
  81. pulumi_gcp/iam/_inputs.py +196 -0
  82. pulumi_gcp/iam/get_workload_identity_pool_provider.py +13 -3
  83. pulumi_gcp/iam/outputs.py +295 -0
  84. pulumi_gcp/iam/workload_identity_pool_provider.py +164 -3
  85. pulumi_gcp/kms/__init__.py +2 -0
  86. pulumi_gcp/kms/autokey_config.py +10 -2
  87. pulumi_gcp/kms/get_crypto_key_latest_version.py +222 -0
  88. pulumi_gcp/kms/get_crypto_key_versions.py +175 -0
  89. pulumi_gcp/kms/outputs.py +164 -0
  90. pulumi_gcp/memorystore/__init__.py +10 -0
  91. pulumi_gcp/memorystore/_inputs.py +731 -0
  92. pulumi_gcp/memorystore/instance.py +1663 -0
  93. pulumi_gcp/memorystore/outputs.py +598 -0
  94. pulumi_gcp/netapp/active_directory.py +6 -6
  95. pulumi_gcp/netapp/backup.py +6 -6
  96. pulumi_gcp/netapp/backup_policy.py +6 -6
  97. pulumi_gcp/netapp/backup_vault.py +6 -6
  98. pulumi_gcp/netapp/storage_pool.py +4 -4
  99. pulumi_gcp/netapp/volume.py +108 -0
  100. pulumi_gcp/networkconnectivity/_inputs.py +21 -1
  101. pulumi_gcp/networkconnectivity/outputs.py +15 -1
  102. pulumi_gcp/networkconnectivity/spoke.py +8 -0
  103. pulumi_gcp/networksecurity/client_tls_policy.py +24 -22
  104. pulumi_gcp/networksecurity/server_tls_policy.py +20 -32
  105. pulumi_gcp/organizations/folder.py +52 -33
  106. pulumi_gcp/organizations/get_project.py +13 -3
  107. pulumi_gcp/organizations/project.py +88 -3
  108. pulumi_gcp/parallelstore/instance.py +121 -121
  109. pulumi_gcp/projects/iam_member_remove.py +26 -0
  110. pulumi_gcp/projects/usage_export_bucket.py +38 -0
  111. pulumi_gcp/provider.py +40 -0
  112. pulumi_gcp/pubsub/_inputs.py +40 -0
  113. pulumi_gcp/pubsub/outputs.py +51 -1
  114. pulumi_gcp/pubsub/subscription.py +6 -0
  115. pulumi_gcp/pulumi-plugin.json +1 -1
  116. pulumi_gcp/redis/_inputs.py +419 -0
  117. pulumi_gcp/redis/cluster.py +123 -0
  118. pulumi_gcp/redis/outputs.py +315 -0
  119. pulumi_gcp/securitycenter/__init__.py +2 -0
  120. pulumi_gcp/securitycenter/v2_folder_scc_big_query_export.py +857 -0
  121. pulumi_gcp/securitycenter/v2_organization_scc_big_query_exports.py +4 -4
  122. pulumi_gcp/securitycenter/v2_project_mute_config.py +2 -2
  123. pulumi_gcp/securitycenter/v2_project_scc_big_query_export.py +796 -0
  124. pulumi_gcp/vpcaccess/connector.py +21 -28
  125. {pulumi_gcp-8.1.0a1726293903.dist-info → pulumi_gcp-8.2.0.dist-info}/METADATA +1 -1
  126. {pulumi_gcp-8.1.0a1726293903.dist-info → pulumi_gcp-8.2.0.dist-info}/RECORD +128 -111
  127. {pulumi_gcp-8.1.0a1726293903.dist-info → pulumi_gcp-8.2.0.dist-info}/WHEEL +1 -1
  128. {pulumi_gcp-8.1.0a1726293903.dist-info → pulumi_gcp-8.2.0.dist-info}/top_level.txt +0 -0
@@ -19,8 +19,16 @@ __all__ = [
19
19
  'DataExchangeIamBindingConditionArgsDict',
20
20
  'DataExchangeIamMemberConditionArgs',
21
21
  'DataExchangeIamMemberConditionArgsDict',
22
+ 'DataExchangeSharingEnvironmentConfigArgs',
23
+ 'DataExchangeSharingEnvironmentConfigArgsDict',
24
+ 'DataExchangeSharingEnvironmentConfigDcrExchangeConfigArgs',
25
+ 'DataExchangeSharingEnvironmentConfigDcrExchangeConfigArgsDict',
26
+ 'DataExchangeSharingEnvironmentConfigDefaultExchangeConfigArgs',
27
+ 'DataExchangeSharingEnvironmentConfigDefaultExchangeConfigArgsDict',
22
28
  'ListingBigqueryDatasetArgs',
23
29
  'ListingBigqueryDatasetArgsDict',
30
+ 'ListingBigqueryDatasetSelectedResourceArgs',
31
+ 'ListingBigqueryDatasetSelectedResourceArgsDict',
24
32
  'ListingDataProviderArgs',
25
33
  'ListingDataProviderArgsDict',
26
34
  'ListingIamBindingConditionArgs',
@@ -129,13 +137,92 @@ class DataExchangeIamMemberConditionArgs:
129
137
  pulumi.set(self, "description", value)
130
138
 
131
139
 
140
+ if not MYPY:
141
+ class DataExchangeSharingEnvironmentConfigArgsDict(TypedDict):
142
+ dcr_exchange_config: NotRequired[pulumi.Input['DataExchangeSharingEnvironmentConfigDcrExchangeConfigArgsDict']]
143
+ """
144
+ Data Clean Room (DCR), used for privacy-safe and secured data sharing.
145
+ """
146
+ default_exchange_config: NotRequired[pulumi.Input['DataExchangeSharingEnvironmentConfigDefaultExchangeConfigArgsDict']]
147
+ """
148
+ Default Analytics Hub data exchange, used for secured data sharing.
149
+ """
150
+ elif False:
151
+ DataExchangeSharingEnvironmentConfigArgsDict: TypeAlias = Mapping[str, Any]
152
+
153
+ @pulumi.input_type
154
+ class DataExchangeSharingEnvironmentConfigArgs:
155
+ def __init__(__self__, *,
156
+ dcr_exchange_config: Optional[pulumi.Input['DataExchangeSharingEnvironmentConfigDcrExchangeConfigArgs']] = None,
157
+ default_exchange_config: Optional[pulumi.Input['DataExchangeSharingEnvironmentConfigDefaultExchangeConfigArgs']] = None):
158
+ """
159
+ :param pulumi.Input['DataExchangeSharingEnvironmentConfigDcrExchangeConfigArgs'] dcr_exchange_config: Data Clean Room (DCR), used for privacy-safe and secured data sharing.
160
+ :param pulumi.Input['DataExchangeSharingEnvironmentConfigDefaultExchangeConfigArgs'] default_exchange_config: Default Analytics Hub data exchange, used for secured data sharing.
161
+ """
162
+ if dcr_exchange_config is not None:
163
+ pulumi.set(__self__, "dcr_exchange_config", dcr_exchange_config)
164
+ if default_exchange_config is not None:
165
+ pulumi.set(__self__, "default_exchange_config", default_exchange_config)
166
+
167
+ @property
168
+ @pulumi.getter(name="dcrExchangeConfig")
169
+ def dcr_exchange_config(self) -> Optional[pulumi.Input['DataExchangeSharingEnvironmentConfigDcrExchangeConfigArgs']]:
170
+ """
171
+ Data Clean Room (DCR), used for privacy-safe and secured data sharing.
172
+ """
173
+ return pulumi.get(self, "dcr_exchange_config")
174
+
175
+ @dcr_exchange_config.setter
176
+ def dcr_exchange_config(self, value: Optional[pulumi.Input['DataExchangeSharingEnvironmentConfigDcrExchangeConfigArgs']]):
177
+ pulumi.set(self, "dcr_exchange_config", value)
178
+
179
+ @property
180
+ @pulumi.getter(name="defaultExchangeConfig")
181
+ def default_exchange_config(self) -> Optional[pulumi.Input['DataExchangeSharingEnvironmentConfigDefaultExchangeConfigArgs']]:
182
+ """
183
+ Default Analytics Hub data exchange, used for secured data sharing.
184
+ """
185
+ return pulumi.get(self, "default_exchange_config")
186
+
187
+ @default_exchange_config.setter
188
+ def default_exchange_config(self, value: Optional[pulumi.Input['DataExchangeSharingEnvironmentConfigDefaultExchangeConfigArgs']]):
189
+ pulumi.set(self, "default_exchange_config", value)
190
+
191
+
192
+ if not MYPY:
193
+ class DataExchangeSharingEnvironmentConfigDcrExchangeConfigArgsDict(TypedDict):
194
+ pass
195
+ elif False:
196
+ DataExchangeSharingEnvironmentConfigDcrExchangeConfigArgsDict: TypeAlias = Mapping[str, Any]
197
+
198
+ @pulumi.input_type
199
+ class DataExchangeSharingEnvironmentConfigDcrExchangeConfigArgs:
200
+ def __init__(__self__):
201
+ pass
202
+
203
+
204
+ if not MYPY:
205
+ class DataExchangeSharingEnvironmentConfigDefaultExchangeConfigArgsDict(TypedDict):
206
+ pass
207
+ elif False:
208
+ DataExchangeSharingEnvironmentConfigDefaultExchangeConfigArgsDict: TypeAlias = Mapping[str, Any]
209
+
210
+ @pulumi.input_type
211
+ class DataExchangeSharingEnvironmentConfigDefaultExchangeConfigArgs:
212
+ def __init__(__self__):
213
+ pass
214
+
215
+
132
216
  if not MYPY:
133
217
  class ListingBigqueryDatasetArgsDict(TypedDict):
134
218
  dataset: pulumi.Input[str]
135
219
  """
136
220
  Resource name of the dataset source for this listing. e.g. projects/myproject/datasets/123
137
-
138
- - - -
221
+ """
222
+ selected_resources: NotRequired[pulumi.Input[Sequence[pulumi.Input['ListingBigqueryDatasetSelectedResourceArgsDict']]]]
223
+ """
224
+ Resource in this dataset that is selectively shared. This field is required for data clean room exchanges.
225
+ Structure is documented below.
139
226
  """
140
227
  elif False:
141
228
  ListingBigqueryDatasetArgsDict: TypeAlias = Mapping[str, Any]
@@ -143,21 +230,22 @@ elif False:
143
230
  @pulumi.input_type
144
231
  class ListingBigqueryDatasetArgs:
145
232
  def __init__(__self__, *,
146
- dataset: pulumi.Input[str]):
233
+ dataset: pulumi.Input[str],
234
+ selected_resources: Optional[pulumi.Input[Sequence[pulumi.Input['ListingBigqueryDatasetSelectedResourceArgs']]]] = None):
147
235
  """
148
236
  :param pulumi.Input[str] dataset: Resource name of the dataset source for this listing. e.g. projects/myproject/datasets/123
149
-
150
- - - -
237
+ :param pulumi.Input[Sequence[pulumi.Input['ListingBigqueryDatasetSelectedResourceArgs']]] selected_resources: Resource in this dataset that is selectively shared. This field is required for data clean room exchanges.
238
+ Structure is documented below.
151
239
  """
152
240
  pulumi.set(__self__, "dataset", dataset)
241
+ if selected_resources is not None:
242
+ pulumi.set(__self__, "selected_resources", selected_resources)
153
243
 
154
244
  @property
155
245
  @pulumi.getter
156
246
  def dataset(self) -> pulumi.Input[str]:
157
247
  """
158
248
  Resource name of the dataset source for this listing. e.g. projects/myproject/datasets/123
159
-
160
- - - -
161
249
  """
162
250
  return pulumi.get(self, "dataset")
163
251
 
@@ -165,6 +253,57 @@ class ListingBigqueryDatasetArgs:
165
253
  def dataset(self, value: pulumi.Input[str]):
166
254
  pulumi.set(self, "dataset", value)
167
255
 
256
+ @property
257
+ @pulumi.getter(name="selectedResources")
258
+ def selected_resources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ListingBigqueryDatasetSelectedResourceArgs']]]]:
259
+ """
260
+ Resource in this dataset that is selectively shared. This field is required for data clean room exchanges.
261
+ Structure is documented below.
262
+ """
263
+ return pulumi.get(self, "selected_resources")
264
+
265
+ @selected_resources.setter
266
+ def selected_resources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ListingBigqueryDatasetSelectedResourceArgs']]]]):
267
+ pulumi.set(self, "selected_resources", value)
268
+
269
+
270
+ if not MYPY:
271
+ class ListingBigqueryDatasetSelectedResourceArgsDict(TypedDict):
272
+ table: NotRequired[pulumi.Input[str]]
273
+ """
274
+ Format: For table: projects/{projectId}/datasets/{datasetId}/tables/{tableId} Example:"projects/test_project/datasets/test_dataset/tables/test_table"
275
+
276
+ - - -
277
+ """
278
+ elif False:
279
+ ListingBigqueryDatasetSelectedResourceArgsDict: TypeAlias = Mapping[str, Any]
280
+
281
+ @pulumi.input_type
282
+ class ListingBigqueryDatasetSelectedResourceArgs:
283
+ def __init__(__self__, *,
284
+ table: Optional[pulumi.Input[str]] = None):
285
+ """
286
+ :param pulumi.Input[str] table: Format: For table: projects/{projectId}/datasets/{datasetId}/tables/{tableId} Example:"projects/test_project/datasets/test_dataset/tables/test_table"
287
+
288
+ - - -
289
+ """
290
+ if table is not None:
291
+ pulumi.set(__self__, "table", table)
292
+
293
+ @property
294
+ @pulumi.getter
295
+ def table(self) -> Optional[pulumi.Input[str]]:
296
+ """
297
+ Format: For table: projects/{projectId}/datasets/{datasetId}/tables/{tableId} Example:"projects/test_project/datasets/test_dataset/tables/test_table"
298
+
299
+ - - -
300
+ """
301
+ return pulumi.get(self, "table")
302
+
303
+ @table.setter
304
+ def table(self, value: Optional[pulumi.Input[str]]):
305
+ pulumi.set(self, "table", value)
306
+
168
307
 
169
308
  if not MYPY:
170
309
  class ListingDataProviderArgsDict(TypedDict):
@@ -368,6 +507,11 @@ if not MYPY:
368
507
  """
369
508
  If true, enable restricted export.
370
509
  """
510
+ restrict_direct_table_access: NotRequired[pulumi.Input[bool]]
511
+ """
512
+ (Output)
513
+ If true, restrict direct table access(read api/tabledata.list) on linked table.
514
+ """
371
515
  restrict_query_result: NotRequired[pulumi.Input[bool]]
372
516
  """
373
517
  If true, restrict export of query result derived from restricted linked dataset table.
@@ -379,13 +523,18 @@ elif False:
379
523
  class ListingRestrictedExportConfigArgs:
380
524
  def __init__(__self__, *,
381
525
  enabled: Optional[pulumi.Input[bool]] = None,
526
+ restrict_direct_table_access: Optional[pulumi.Input[bool]] = None,
382
527
  restrict_query_result: Optional[pulumi.Input[bool]] = None):
383
528
  """
384
529
  :param pulumi.Input[bool] enabled: If true, enable restricted export.
530
+ :param pulumi.Input[bool] restrict_direct_table_access: (Output)
531
+ If true, restrict direct table access(read api/tabledata.list) on linked table.
385
532
  :param pulumi.Input[bool] restrict_query_result: If true, restrict export of query result derived from restricted linked dataset table.
386
533
  """
387
534
  if enabled is not None:
388
535
  pulumi.set(__self__, "enabled", enabled)
536
+ if restrict_direct_table_access is not None:
537
+ pulumi.set(__self__, "restrict_direct_table_access", restrict_direct_table_access)
389
538
  if restrict_query_result is not None:
390
539
  pulumi.set(__self__, "restrict_query_result", restrict_query_result)
391
540
 
@@ -401,6 +550,19 @@ class ListingRestrictedExportConfigArgs:
401
550
  def enabled(self, value: Optional[pulumi.Input[bool]]):
402
551
  pulumi.set(self, "enabled", value)
403
552
 
553
+ @property
554
+ @pulumi.getter(name="restrictDirectTableAccess")
555
+ def restrict_direct_table_access(self) -> Optional[pulumi.Input[bool]]:
556
+ """
557
+ (Output)
558
+ If true, restrict direct table access(read api/tabledata.list) on linked table.
559
+ """
560
+ return pulumi.get(self, "restrict_direct_table_access")
561
+
562
+ @restrict_direct_table_access.setter
563
+ def restrict_direct_table_access(self, value: Optional[pulumi.Input[bool]]):
564
+ pulumi.set(self, "restrict_direct_table_access", value)
565
+
404
566
  @property
405
567
  @pulumi.getter(name="restrictQueryResult")
406
568
  def restrict_query_result(self) -> Optional[pulumi.Input[bool]]:
@@ -13,6 +13,8 @@ if sys.version_info >= (3, 11):
13
13
  else:
14
14
  from typing_extensions import NotRequired, TypedDict, TypeAlias
15
15
  from .. import _utilities
16
+ from . import outputs
17
+ from ._inputs import *
16
18
 
17
19
  __all__ = ['DataExchangeArgs', 'DataExchange']
18
20
 
@@ -26,7 +28,8 @@ class DataExchangeArgs:
26
28
  documentation: Optional[pulumi.Input[str]] = None,
27
29
  icon: Optional[pulumi.Input[str]] = None,
28
30
  primary_contact: Optional[pulumi.Input[str]] = None,
29
- project: Optional[pulumi.Input[str]] = None):
31
+ project: Optional[pulumi.Input[str]] = None,
32
+ sharing_environment_config: Optional[pulumi.Input['DataExchangeSharingEnvironmentConfigArgs']] = None):
30
33
  """
31
34
  The set of arguments for constructing a DataExchange resource.
32
35
  :param pulumi.Input[str] data_exchange_id: The ID of the data exchange. Must contain only Unicode letters, numbers (0-9), underscores (_). Should not use characters that require URL-escaping, or characters outside of ASCII, spaces.
@@ -41,6 +44,9 @@ class DataExchangeArgs:
41
44
  :param pulumi.Input[str] primary_contact: Email or URL of the primary point of contact of the data exchange.
42
45
  :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
43
46
  If it is not provided, the provider project is used.
47
+ :param pulumi.Input['DataExchangeSharingEnvironmentConfigArgs'] sharing_environment_config: Configurable data sharing environment option for a data exchange.
48
+ This field is required for data clean room exchanges.
49
+ Structure is documented below.
44
50
  """
45
51
  pulumi.set(__self__, "data_exchange_id", data_exchange_id)
46
52
  pulumi.set(__self__, "display_name", display_name)
@@ -55,6 +61,8 @@ class DataExchangeArgs:
55
61
  pulumi.set(__self__, "primary_contact", primary_contact)
56
62
  if project is not None:
57
63
  pulumi.set(__self__, "project", project)
64
+ if sharing_environment_config is not None:
65
+ pulumi.set(__self__, "sharing_environment_config", sharing_environment_config)
58
66
 
59
67
  @property
60
68
  @pulumi.getter(name="dataExchangeId")
@@ -156,6 +164,20 @@ class DataExchangeArgs:
156
164
  def project(self, value: Optional[pulumi.Input[str]]):
157
165
  pulumi.set(self, "project", value)
158
166
 
167
+ @property
168
+ @pulumi.getter(name="sharingEnvironmentConfig")
169
+ def sharing_environment_config(self) -> Optional[pulumi.Input['DataExchangeSharingEnvironmentConfigArgs']]:
170
+ """
171
+ Configurable data sharing environment option for a data exchange.
172
+ This field is required for data clean room exchanges.
173
+ Structure is documented below.
174
+ """
175
+ return pulumi.get(self, "sharing_environment_config")
176
+
177
+ @sharing_environment_config.setter
178
+ def sharing_environment_config(self, value: Optional[pulumi.Input['DataExchangeSharingEnvironmentConfigArgs']]):
179
+ pulumi.set(self, "sharing_environment_config", value)
180
+
159
181
 
160
182
  @pulumi.input_type
161
183
  class _DataExchangeState:
@@ -169,7 +191,8 @@ class _DataExchangeState:
169
191
  location: Optional[pulumi.Input[str]] = None,
170
192
  name: Optional[pulumi.Input[str]] = None,
171
193
  primary_contact: Optional[pulumi.Input[str]] = None,
172
- project: Optional[pulumi.Input[str]] = None):
194
+ project: Optional[pulumi.Input[str]] = None,
195
+ sharing_environment_config: Optional[pulumi.Input['DataExchangeSharingEnvironmentConfigArgs']] = None):
173
196
  """
174
197
  Input properties used for looking up and filtering DataExchange resources.
175
198
  :param pulumi.Input[str] data_exchange_id: The ID of the data exchange. Must contain only Unicode letters, numbers (0-9), underscores (_). Should not use characters that require URL-escaping, or characters outside of ASCII, spaces.
@@ -187,6 +210,9 @@ class _DataExchangeState:
187
210
  :param pulumi.Input[str] primary_contact: Email or URL of the primary point of contact of the data exchange.
188
211
  :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
189
212
  If it is not provided, the provider project is used.
213
+ :param pulumi.Input['DataExchangeSharingEnvironmentConfigArgs'] sharing_environment_config: Configurable data sharing environment option for a data exchange.
214
+ This field is required for data clean room exchanges.
215
+ Structure is documented below.
190
216
  """
191
217
  if data_exchange_id is not None:
192
218
  pulumi.set(__self__, "data_exchange_id", data_exchange_id)
@@ -208,6 +234,8 @@ class _DataExchangeState:
208
234
  pulumi.set(__self__, "primary_contact", primary_contact)
209
235
  if project is not None:
210
236
  pulumi.set(__self__, "project", project)
237
+ if sharing_environment_config is not None:
238
+ pulumi.set(__self__, "sharing_environment_config", sharing_environment_config)
211
239
 
212
240
  @property
213
241
  @pulumi.getter(name="dataExchangeId")
@@ -334,6 +362,20 @@ class _DataExchangeState:
334
362
  def project(self, value: Optional[pulumi.Input[str]]):
335
363
  pulumi.set(self, "project", value)
336
364
 
365
+ @property
366
+ @pulumi.getter(name="sharingEnvironmentConfig")
367
+ def sharing_environment_config(self) -> Optional[pulumi.Input['DataExchangeSharingEnvironmentConfigArgs']]:
368
+ """
369
+ Configurable data sharing environment option for a data exchange.
370
+ This field is required for data clean room exchanges.
371
+ Structure is documented below.
372
+ """
373
+ return pulumi.get(self, "sharing_environment_config")
374
+
375
+ @sharing_environment_config.setter
376
+ def sharing_environment_config(self, value: Optional[pulumi.Input['DataExchangeSharingEnvironmentConfigArgs']]):
377
+ pulumi.set(self, "sharing_environment_config", value)
378
+
337
379
 
338
380
  class DataExchange(pulumi.CustomResource):
339
381
  @overload
@@ -348,6 +390,7 @@ class DataExchange(pulumi.CustomResource):
348
390
  location: Optional[pulumi.Input[str]] = None,
349
391
  primary_contact: Optional[pulumi.Input[str]] = None,
350
392
  project: Optional[pulumi.Input[str]] = None,
393
+ sharing_environment_config: Optional[pulumi.Input[Union['DataExchangeSharingEnvironmentConfigArgs', 'DataExchangeSharingEnvironmentConfigArgsDict']]] = None,
351
394
  __props__=None):
352
395
  """
353
396
  A Bigquery Analytics Hub data exchange
@@ -372,6 +415,21 @@ class DataExchange(pulumi.CustomResource):
372
415
  display_name="my_data_exchange",
373
416
  description="example data exchange")
374
417
  ```
418
+ ### Bigquery Analyticshub Data Exchange Dcr
419
+
420
+ ```python
421
+ import pulumi
422
+ import pulumi_gcp as gcp
423
+
424
+ data_exchange = gcp.bigqueryanalyticshub.DataExchange("data_exchange",
425
+ location="US",
426
+ data_exchange_id="dcr_data_exchange",
427
+ display_name="dcr_data_exchange",
428
+ description="example dcr data exchange",
429
+ sharing_environment_config={
430
+ "dcr_exchange_config": {},
431
+ })
432
+ ```
375
433
 
376
434
  ## Import
377
435
 
@@ -417,6 +475,9 @@ class DataExchange(pulumi.CustomResource):
417
475
  :param pulumi.Input[str] primary_contact: Email or URL of the primary point of contact of the data exchange.
418
476
  :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
419
477
  If it is not provided, the provider project is used.
478
+ :param pulumi.Input[Union['DataExchangeSharingEnvironmentConfigArgs', 'DataExchangeSharingEnvironmentConfigArgsDict']] sharing_environment_config: Configurable data sharing environment option for a data exchange.
479
+ This field is required for data clean room exchanges.
480
+ Structure is documented below.
420
481
  """
421
482
  ...
422
483
  @overload
@@ -447,6 +508,21 @@ class DataExchange(pulumi.CustomResource):
447
508
  display_name="my_data_exchange",
448
509
  description="example data exchange")
449
510
  ```
511
+ ### Bigquery Analyticshub Data Exchange Dcr
512
+
513
+ ```python
514
+ import pulumi
515
+ import pulumi_gcp as gcp
516
+
517
+ data_exchange = gcp.bigqueryanalyticshub.DataExchange("data_exchange",
518
+ location="US",
519
+ data_exchange_id="dcr_data_exchange",
520
+ display_name="dcr_data_exchange",
521
+ description="example dcr data exchange",
522
+ sharing_environment_config={
523
+ "dcr_exchange_config": {},
524
+ })
525
+ ```
450
526
 
451
527
  ## Import
452
528
 
@@ -501,6 +577,7 @@ class DataExchange(pulumi.CustomResource):
501
577
  location: Optional[pulumi.Input[str]] = None,
502
578
  primary_contact: Optional[pulumi.Input[str]] = None,
503
579
  project: Optional[pulumi.Input[str]] = None,
580
+ sharing_environment_config: Optional[pulumi.Input[Union['DataExchangeSharingEnvironmentConfigArgs', 'DataExchangeSharingEnvironmentConfigArgsDict']]] = None,
504
581
  __props__=None):
505
582
  opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
506
583
  if not isinstance(opts, pulumi.ResourceOptions):
@@ -524,6 +601,7 @@ class DataExchange(pulumi.CustomResource):
524
601
  __props__.__dict__["location"] = location
525
602
  __props__.__dict__["primary_contact"] = primary_contact
526
603
  __props__.__dict__["project"] = project
604
+ __props__.__dict__["sharing_environment_config"] = sharing_environment_config
527
605
  __props__.__dict__["listing_count"] = None
528
606
  __props__.__dict__["name"] = None
529
607
  super(DataExchange, __self__).__init__(
@@ -545,7 +623,8 @@ class DataExchange(pulumi.CustomResource):
545
623
  location: Optional[pulumi.Input[str]] = None,
546
624
  name: Optional[pulumi.Input[str]] = None,
547
625
  primary_contact: Optional[pulumi.Input[str]] = None,
548
- project: Optional[pulumi.Input[str]] = None) -> 'DataExchange':
626
+ project: Optional[pulumi.Input[str]] = None,
627
+ sharing_environment_config: Optional[pulumi.Input[Union['DataExchangeSharingEnvironmentConfigArgs', 'DataExchangeSharingEnvironmentConfigArgsDict']]] = None) -> 'DataExchange':
549
628
  """
550
629
  Get an existing DataExchange resource's state with the given name, id, and optional extra
551
630
  properties used to qualify the lookup.
@@ -568,6 +647,9 @@ class DataExchange(pulumi.CustomResource):
568
647
  :param pulumi.Input[str] primary_contact: Email or URL of the primary point of contact of the data exchange.
569
648
  :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
570
649
  If it is not provided, the provider project is used.
650
+ :param pulumi.Input[Union['DataExchangeSharingEnvironmentConfigArgs', 'DataExchangeSharingEnvironmentConfigArgsDict']] sharing_environment_config: Configurable data sharing environment option for a data exchange.
651
+ This field is required for data clean room exchanges.
652
+ Structure is documented below.
571
653
  """
572
654
  opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
573
655
 
@@ -583,6 +665,7 @@ class DataExchange(pulumi.CustomResource):
583
665
  __props__.__dict__["name"] = name
584
666
  __props__.__dict__["primary_contact"] = primary_contact
585
667
  __props__.__dict__["project"] = project
668
+ __props__.__dict__["sharing_environment_config"] = sharing_environment_config
586
669
  return DataExchange(resource_name, opts=opts, __props__=__props__)
587
670
 
588
671
  @property
@@ -670,3 +753,13 @@ class DataExchange(pulumi.CustomResource):
670
753
  """
671
754
  return pulumi.get(self, "project")
672
755
 
756
+ @property
757
+ @pulumi.getter(name="sharingEnvironmentConfig")
758
+ def sharing_environment_config(self) -> pulumi.Output['outputs.DataExchangeSharingEnvironmentConfig']:
759
+ """
760
+ Configurable data sharing environment option for a data exchange.
761
+ This field is required for data clean room exchanges.
762
+ Structure is documented below.
763
+ """
764
+ return pulumi.get(self, "sharing_environment_config")
765
+
@@ -613,6 +613,63 @@ class Listing(pulumi.CustomResource):
613
613
  "restrict_query_result": True,
614
614
  })
615
615
  ```
616
+ ### Bigquery Analyticshub Listing Dcr
617
+
618
+ ```python
619
+ import pulumi
620
+ import pulumi_gcp as gcp
621
+
622
+ listing = gcp.bigqueryanalyticshub.DataExchange("listing",
623
+ location="US",
624
+ data_exchange_id="dcr_data_exchange",
625
+ display_name="dcr_data_exchange",
626
+ description="example dcr data exchange",
627
+ sharing_environment_config={
628
+ "dcr_exchange_config": {},
629
+ })
630
+ listing_dataset = gcp.bigquery.Dataset("listing",
631
+ dataset_id="dcr_listing",
632
+ friendly_name="dcr_listing",
633
+ description="example dcr data exchange",
634
+ location="US")
635
+ listing_table = gcp.bigquery.Table("listing",
636
+ deletion_protection=False,
637
+ table_id="dcr_listing",
638
+ dataset_id=listing_dataset.dataset_id,
639
+ schema=\"\"\"[
640
+ {
641
+ "name": "name",
642
+ "type": "STRING",
643
+ "mode": "NULLABLE"
644
+ },
645
+ {
646
+ "name": "post_abbr",
647
+ "type": "STRING",
648
+ "mode": "NULLABLE"
649
+ },
650
+ {
651
+ "name": "date",
652
+ "type": "DATE",
653
+ "mode": "NULLABLE"
654
+ }
655
+ ]
656
+ \"\"\")
657
+ listing_listing = gcp.bigqueryanalyticshub.Listing("listing",
658
+ location="US",
659
+ data_exchange_id=listing.data_exchange_id,
660
+ listing_id="dcr_listing",
661
+ display_name="dcr_listing",
662
+ description="example dcr data exchange",
663
+ bigquery_dataset={
664
+ "dataset": listing_dataset.id,
665
+ "selected_resources": [{
666
+ "table": listing_table.id,
667
+ }],
668
+ },
669
+ restricted_export_config={
670
+ "enabled": True,
671
+ })
672
+ ```
616
673
 
617
674
  ## Import
618
675
 
@@ -730,6 +787,63 @@ class Listing(pulumi.CustomResource):
730
787
  "restrict_query_result": True,
731
788
  })
732
789
  ```
790
+ ### Bigquery Analyticshub Listing Dcr
791
+
792
+ ```python
793
+ import pulumi
794
+ import pulumi_gcp as gcp
795
+
796
+ listing = gcp.bigqueryanalyticshub.DataExchange("listing",
797
+ location="US",
798
+ data_exchange_id="dcr_data_exchange",
799
+ display_name="dcr_data_exchange",
800
+ description="example dcr data exchange",
801
+ sharing_environment_config={
802
+ "dcr_exchange_config": {},
803
+ })
804
+ listing_dataset = gcp.bigquery.Dataset("listing",
805
+ dataset_id="dcr_listing",
806
+ friendly_name="dcr_listing",
807
+ description="example dcr data exchange",
808
+ location="US")
809
+ listing_table = gcp.bigquery.Table("listing",
810
+ deletion_protection=False,
811
+ table_id="dcr_listing",
812
+ dataset_id=listing_dataset.dataset_id,
813
+ schema=\"\"\"[
814
+ {
815
+ "name": "name",
816
+ "type": "STRING",
817
+ "mode": "NULLABLE"
818
+ },
819
+ {
820
+ "name": "post_abbr",
821
+ "type": "STRING",
822
+ "mode": "NULLABLE"
823
+ },
824
+ {
825
+ "name": "date",
826
+ "type": "DATE",
827
+ "mode": "NULLABLE"
828
+ }
829
+ ]
830
+ \"\"\")
831
+ listing_listing = gcp.bigqueryanalyticshub.Listing("listing",
832
+ location="US",
833
+ data_exchange_id=listing.data_exchange_id,
834
+ listing_id="dcr_listing",
835
+ display_name="dcr_listing",
836
+ description="example dcr data exchange",
837
+ bigquery_dataset={
838
+ "dataset": listing_dataset.id,
839
+ "selected_resources": [{
840
+ "table": listing_table.id,
841
+ }],
842
+ },
843
+ restricted_export_config={
844
+ "enabled": True,
845
+ })
846
+ ```
733
847
 
734
848
  ## Import
735
849