pulumi-gcp 8.1.0a1726293903__py3-none-any.whl → 8.1.0a1726492828__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 (101) hide show
  1. pulumi_gcp/__init__.py +24 -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/_inputs.py +33 -0
  9. pulumi_gcp/bigquery/data_transfer_config.py +134 -6
  10. pulumi_gcp/bigquery/outputs.py +36 -0
  11. pulumi_gcp/bigqueryanalyticshub/_inputs.py +169 -7
  12. pulumi_gcp/bigqueryanalyticshub/data_exchange.py +96 -3
  13. pulumi_gcp/bigqueryanalyticshub/listing.py +114 -0
  14. pulumi_gcp/bigqueryanalyticshub/outputs.py +138 -5
  15. pulumi_gcp/bigtable/_inputs.py +21 -1
  16. pulumi_gcp/bigtable/outputs.py +13 -1
  17. pulumi_gcp/bigtable/table.py +34 -0
  18. pulumi_gcp/certificateauthority/authority.py +14 -7
  19. pulumi_gcp/certificatemanager/__init__.py +1 -0
  20. pulumi_gcp/certificatemanager/certificate.py +28 -0
  21. pulumi_gcp/certificatemanager/get_certificates.py +150 -0
  22. pulumi_gcp/certificatemanager/outputs.py +322 -0
  23. pulumi_gcp/cloudbuild/_inputs.py +6 -6
  24. pulumi_gcp/cloudbuild/outputs.py +4 -4
  25. pulumi_gcp/cloudrun/_inputs.py +6 -12
  26. pulumi_gcp/cloudrun/outputs.py +8 -16
  27. pulumi_gcp/cloudrunv2/_inputs.py +72 -15
  28. pulumi_gcp/cloudrunv2/outputs.py +82 -16
  29. pulumi_gcp/cloudrunv2/service.py +50 -4
  30. pulumi_gcp/cloudtasks/_inputs.py +630 -0
  31. pulumi_gcp/cloudtasks/outputs.py +479 -0
  32. pulumi_gcp/cloudtasks/queue.py +238 -0
  33. pulumi_gcp/compute/_inputs.py +129 -9
  34. pulumi_gcp/compute/get_instance.py +1 -1
  35. pulumi_gcp/compute/health_check.py +114 -0
  36. pulumi_gcp/compute/instance.py +86 -4
  37. pulumi_gcp/compute/instance_template.py +66 -0
  38. pulumi_gcp/compute/interconnect.py +28 -21
  39. pulumi_gcp/compute/node_template.py +93 -0
  40. pulumi_gcp/compute/outputs.py +108 -6
  41. pulumi_gcp/compute/target_https_proxy.py +28 -0
  42. pulumi_gcp/container/_inputs.py +140 -3
  43. pulumi_gcp/container/attached_cluster.py +7 -7
  44. pulumi_gcp/container/outputs.py +174 -2
  45. pulumi_gcp/databasemigrationservice/_inputs.py +176 -148
  46. pulumi_gcp/databasemigrationservice/connection_profile.py +206 -0
  47. pulumi_gcp/databasemigrationservice/outputs.py +109 -87
  48. pulumi_gcp/dataloss/_inputs.py +353 -1
  49. pulumi_gcp/dataloss/outputs.py +274 -3
  50. pulumi_gcp/dataproc/_inputs.py +27 -27
  51. pulumi_gcp/dataproc/outputs.py +18 -18
  52. pulumi_gcp/datastream/_inputs.py +69 -1
  53. pulumi_gcp/datastream/outputs.py +44 -2
  54. pulumi_gcp/datastream/stream.py +194 -7
  55. pulumi_gcp/discoveryengine/_inputs.py +188 -0
  56. pulumi_gcp/discoveryengine/data_store.py +14 -14
  57. pulumi_gcp/discoveryengine/outputs.py +153 -1
  58. pulumi_gcp/firebase/database_instance.py +7 -7
  59. pulumi_gcp/gkehub/_inputs.py +25 -1
  60. pulumi_gcp/gkehub/feature_membership.py +12 -6
  61. pulumi_gcp/gkehub/outputs.py +17 -1
  62. pulumi_gcp/iam/_inputs.py +196 -0
  63. pulumi_gcp/iam/get_workload_identity_pool_provider.py +13 -3
  64. pulumi_gcp/iam/outputs.py +295 -0
  65. pulumi_gcp/iam/workload_identity_pool_provider.py +164 -3
  66. pulumi_gcp/kms/__init__.py +2 -0
  67. pulumi_gcp/kms/autokey_config.py +10 -2
  68. pulumi_gcp/kms/get_crypto_key_latest_version.py +222 -0
  69. pulumi_gcp/kms/get_crypto_key_versions.py +175 -0
  70. pulumi_gcp/kms/outputs.py +164 -0
  71. pulumi_gcp/netapp/active_directory.py +6 -6
  72. pulumi_gcp/netapp/backup.py +6 -6
  73. pulumi_gcp/netapp/backup_policy.py +6 -6
  74. pulumi_gcp/netapp/backup_vault.py +6 -6
  75. pulumi_gcp/netapp/storage_pool.py +4 -4
  76. pulumi_gcp/netapp/volume.py +7 -0
  77. pulumi_gcp/networkconnectivity/_inputs.py +21 -1
  78. pulumi_gcp/networkconnectivity/outputs.py +15 -1
  79. pulumi_gcp/networkconnectivity/spoke.py +8 -0
  80. pulumi_gcp/networksecurity/client_tls_policy.py +24 -22
  81. pulumi_gcp/networksecurity/server_tls_policy.py +20 -32
  82. pulumi_gcp/organizations/get_project.py +13 -3
  83. pulumi_gcp/organizations/project.py +88 -3
  84. pulumi_gcp/parallelstore/instance.py +121 -121
  85. pulumi_gcp/projects/iam_member_remove.py +26 -0
  86. pulumi_gcp/projects/usage_export_bucket.py +38 -0
  87. pulumi_gcp/pubsub/_inputs.py +40 -0
  88. pulumi_gcp/pubsub/outputs.py +51 -1
  89. pulumi_gcp/pubsub/subscription.py +6 -0
  90. pulumi_gcp/pulumi-plugin.json +1 -1
  91. pulumi_gcp/redis/_inputs.py +419 -0
  92. pulumi_gcp/redis/cluster.py +123 -0
  93. pulumi_gcp/redis/outputs.py +315 -0
  94. pulumi_gcp/securitycenter/__init__.py +2 -0
  95. pulumi_gcp/securitycenter/v2_folder_scc_big_query_export.py +857 -0
  96. pulumi_gcp/securitycenter/v2_organization_scc_big_query_exports.py +4 -4
  97. pulumi_gcp/securitycenter/v2_project_scc_big_query_export.py +796 -0
  98. {pulumi_gcp-8.1.0a1726293903.dist-info → pulumi_gcp-8.1.0a1726492828.dist-info}/METADATA +1 -1
  99. {pulumi_gcp-8.1.0a1726293903.dist-info → pulumi_gcp-8.1.0a1726492828.dist-info}/RECORD +101 -95
  100. {pulumi_gcp-8.1.0a1726293903.dist-info → pulumi_gcp-8.1.0a1726492828.dist-info}/WHEEL +1 -1
  101. {pulumi_gcp-8.1.0a1726293903.dist-info → pulumi_gcp-8.1.0a1726492828.dist-info}/top_level.txt +0 -0
@@ -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
 
@@ -13,11 +13,16 @@ 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
16
17
 
17
18
  __all__ = [
18
19
  'DataExchangeIamBindingCondition',
19
20
  'DataExchangeIamMemberCondition',
21
+ 'DataExchangeSharingEnvironmentConfig',
22
+ 'DataExchangeSharingEnvironmentConfigDcrExchangeConfig',
23
+ 'DataExchangeSharingEnvironmentConfigDefaultExchangeConfig',
20
24
  'ListingBigqueryDataset',
25
+ 'ListingBigqueryDatasetSelectedResource',
21
26
  'ListingDataProvider',
22
27
  'ListingIamBindingCondition',
23
28
  'ListingIamMemberCondition',
@@ -79,26 +84,138 @@ class DataExchangeIamMemberCondition(dict):
79
84
  return pulumi.get(self, "description")
80
85
 
81
86
 
87
+ @pulumi.output_type
88
+ class DataExchangeSharingEnvironmentConfig(dict):
89
+ @staticmethod
90
+ def __key_warning(key: str):
91
+ suggest = None
92
+ if key == "dcrExchangeConfig":
93
+ suggest = "dcr_exchange_config"
94
+ elif key == "defaultExchangeConfig":
95
+ suggest = "default_exchange_config"
96
+
97
+ if suggest:
98
+ pulumi.log.warn(f"Key '{key}' not found in DataExchangeSharingEnvironmentConfig. Access the value via the '{suggest}' property getter instead.")
99
+
100
+ def __getitem__(self, key: str) -> Any:
101
+ DataExchangeSharingEnvironmentConfig.__key_warning(key)
102
+ return super().__getitem__(key)
103
+
104
+ def get(self, key: str, default = None) -> Any:
105
+ DataExchangeSharingEnvironmentConfig.__key_warning(key)
106
+ return super().get(key, default)
107
+
108
+ def __init__(__self__, *,
109
+ dcr_exchange_config: Optional['outputs.DataExchangeSharingEnvironmentConfigDcrExchangeConfig'] = None,
110
+ default_exchange_config: Optional['outputs.DataExchangeSharingEnvironmentConfigDefaultExchangeConfig'] = None):
111
+ """
112
+ :param 'DataExchangeSharingEnvironmentConfigDcrExchangeConfigArgs' dcr_exchange_config: Data Clean Room (DCR), used for privacy-safe and secured data sharing.
113
+ :param 'DataExchangeSharingEnvironmentConfigDefaultExchangeConfigArgs' default_exchange_config: Default Analytics Hub data exchange, used for secured data sharing.
114
+ """
115
+ if dcr_exchange_config is not None:
116
+ pulumi.set(__self__, "dcr_exchange_config", dcr_exchange_config)
117
+ if default_exchange_config is not None:
118
+ pulumi.set(__self__, "default_exchange_config", default_exchange_config)
119
+
120
+ @property
121
+ @pulumi.getter(name="dcrExchangeConfig")
122
+ def dcr_exchange_config(self) -> Optional['outputs.DataExchangeSharingEnvironmentConfigDcrExchangeConfig']:
123
+ """
124
+ Data Clean Room (DCR), used for privacy-safe and secured data sharing.
125
+ """
126
+ return pulumi.get(self, "dcr_exchange_config")
127
+
128
+ @property
129
+ @pulumi.getter(name="defaultExchangeConfig")
130
+ def default_exchange_config(self) -> Optional['outputs.DataExchangeSharingEnvironmentConfigDefaultExchangeConfig']:
131
+ """
132
+ Default Analytics Hub data exchange, used for secured data sharing.
133
+ """
134
+ return pulumi.get(self, "default_exchange_config")
135
+
136
+
137
+ @pulumi.output_type
138
+ class DataExchangeSharingEnvironmentConfigDcrExchangeConfig(dict):
139
+ def __init__(__self__):
140
+ pass
141
+
142
+
143
+ @pulumi.output_type
144
+ class DataExchangeSharingEnvironmentConfigDefaultExchangeConfig(dict):
145
+ def __init__(__self__):
146
+ pass
147
+
148
+
82
149
  @pulumi.output_type
83
150
  class ListingBigqueryDataset(dict):
151
+ @staticmethod
152
+ def __key_warning(key: str):
153
+ suggest = None
154
+ if key == "selectedResources":
155
+ suggest = "selected_resources"
156
+
157
+ if suggest:
158
+ pulumi.log.warn(f"Key '{key}' not found in ListingBigqueryDataset. Access the value via the '{suggest}' property getter instead.")
159
+
160
+ def __getitem__(self, key: str) -> Any:
161
+ ListingBigqueryDataset.__key_warning(key)
162
+ return super().__getitem__(key)
163
+
164
+ def get(self, key: str, default = None) -> Any:
165
+ ListingBigqueryDataset.__key_warning(key)
166
+ return super().get(key, default)
167
+
84
168
  def __init__(__self__, *,
85
- dataset: str):
169
+ dataset: str,
170
+ selected_resources: Optional[Sequence['outputs.ListingBigqueryDatasetSelectedResource']] = None):
86
171
  """
87
172
  :param str dataset: Resource name of the dataset source for this listing. e.g. projects/myproject/datasets/123
88
-
89
- - - -
173
+ :param Sequence['ListingBigqueryDatasetSelectedResourceArgs'] selected_resources: Resource in this dataset that is selectively shared. This field is required for data clean room exchanges.
174
+ Structure is documented below.
90
175
  """
91
176
  pulumi.set(__self__, "dataset", dataset)
177
+ if selected_resources is not None:
178
+ pulumi.set(__self__, "selected_resources", selected_resources)
92
179
 
93
180
  @property
94
181
  @pulumi.getter
95
182
  def dataset(self) -> str:
96
183
  """
97
184
  Resource name of the dataset source for this listing. e.g. projects/myproject/datasets/123
185
+ """
186
+ return pulumi.get(self, "dataset")
187
+
188
+ @property
189
+ @pulumi.getter(name="selectedResources")
190
+ def selected_resources(self) -> Optional[Sequence['outputs.ListingBigqueryDatasetSelectedResource']]:
191
+ """
192
+ Resource in this dataset that is selectively shared. This field is required for data clean room exchanges.
193
+ Structure is documented below.
194
+ """
195
+ return pulumi.get(self, "selected_resources")
196
+
197
+
198
+ @pulumi.output_type
199
+ class ListingBigqueryDatasetSelectedResource(dict):
200
+ def __init__(__self__, *,
201
+ table: Optional[str] = None):
202
+ """
203
+ :param str table: Format: For table: projects/{projectId}/datasets/{datasetId}/tables/{tableId} Example:"projects/test_project/datasets/test_dataset/tables/test_table"
204
+
205
+ - - -
206
+ """
207
+ if table is not None:
208
+ pulumi.set(__self__, "table", table)
209
+
210
+ @property
211
+ @pulumi.getter
212
+ def table(self) -> Optional[str]:
213
+ """
214
+ Format: For table: projects/{projectId}/datasets/{datasetId}/tables/{tableId} Example:"projects/test_project/datasets/test_dataset/tables/test_table"
98
215
 
99
216
  - - -
100
217
  """
101
- return pulumi.get(self, "dataset")
218
+ return pulumi.get(self, "table")
102
219
 
103
220
 
104
221
  @pulumi.output_type
@@ -254,7 +371,9 @@ class ListingRestrictedExportConfig(dict):
254
371
  @staticmethod
255
372
  def __key_warning(key: str):
256
373
  suggest = None
257
- if key == "restrictQueryResult":
374
+ if key == "restrictDirectTableAccess":
375
+ suggest = "restrict_direct_table_access"
376
+ elif key == "restrictQueryResult":
258
377
  suggest = "restrict_query_result"
259
378
 
260
379
  if suggest:
@@ -270,13 +389,18 @@ class ListingRestrictedExportConfig(dict):
270
389
 
271
390
  def __init__(__self__, *,
272
391
  enabled: Optional[bool] = None,
392
+ restrict_direct_table_access: Optional[bool] = None,
273
393
  restrict_query_result: Optional[bool] = None):
274
394
  """
275
395
  :param bool enabled: If true, enable restricted export.
396
+ :param bool restrict_direct_table_access: (Output)
397
+ If true, restrict direct table access(read api/tabledata.list) on linked table.
276
398
  :param bool restrict_query_result: If true, restrict export of query result derived from restricted linked dataset table.
277
399
  """
278
400
  if enabled is not None:
279
401
  pulumi.set(__self__, "enabled", enabled)
402
+ if restrict_direct_table_access is not None:
403
+ pulumi.set(__self__, "restrict_direct_table_access", restrict_direct_table_access)
280
404
  if restrict_query_result is not None:
281
405
  pulumi.set(__self__, "restrict_query_result", restrict_query_result)
282
406
 
@@ -288,6 +412,15 @@ class ListingRestrictedExportConfig(dict):
288
412
  """
289
413
  return pulumi.get(self, "enabled")
290
414
 
415
+ @property
416
+ @pulumi.getter(name="restrictDirectTableAccess")
417
+ def restrict_direct_table_access(self) -> Optional[bool]:
418
+ """
419
+ (Output)
420
+ If true, restrict direct table access(read api/tabledata.list) on linked table.
421
+ """
422
+ return pulumi.get(self, "restrict_direct_table_access")
423
+
291
424
  @property
292
425
  @pulumi.getter(name="restrictQueryResult")
293
426
  def restrict_query_result(self) -> Optional[bool]:
@@ -714,17 +714,25 @@ if not MYPY:
714
714
  """
715
715
  The name of the column family.
716
716
  """
717
+ type: NotRequired[pulumi.Input[str]]
718
+ """
719
+ The type of the column family.
720
+ """
717
721
  elif False:
718
722
  TableColumnFamilyArgsDict: TypeAlias = Mapping[str, Any]
719
723
 
720
724
  @pulumi.input_type
721
725
  class TableColumnFamilyArgs:
722
726
  def __init__(__self__, *,
723
- family: pulumi.Input[str]):
727
+ family: pulumi.Input[str],
728
+ type: Optional[pulumi.Input[str]] = None):
724
729
  """
725
730
  :param pulumi.Input[str] family: The name of the column family.
731
+ :param pulumi.Input[str] type: The type of the column family.
726
732
  """
727
733
  pulumi.set(__self__, "family", family)
734
+ if type is not None:
735
+ pulumi.set(__self__, "type", type)
728
736
 
729
737
  @property
730
738
  @pulumi.getter
@@ -738,6 +746,18 @@ class TableColumnFamilyArgs:
738
746
  def family(self, value: pulumi.Input[str]):
739
747
  pulumi.set(self, "family", value)
740
748
 
749
+ @property
750
+ @pulumi.getter
751
+ def type(self) -> Optional[pulumi.Input[str]]:
752
+ """
753
+ The type of the column family.
754
+ """
755
+ return pulumi.get(self, "type")
756
+
757
+ @type.setter
758
+ def type(self, value: Optional[pulumi.Input[str]]):
759
+ pulumi.set(self, "type", value)
760
+
741
761
 
742
762
  if not MYPY:
743
763
  class TableIamBindingConditionArgsDict(TypedDict):
@@ -532,11 +532,15 @@ class TableAutomatedBackupPolicy(dict):
532
532
  @pulumi.output_type
533
533
  class TableColumnFamily(dict):
534
534
  def __init__(__self__, *,
535
- family: str):
535
+ family: str,
536
+ type: Optional[str] = None):
536
537
  """
537
538
  :param str family: The name of the column family.
539
+ :param str type: The type of the column family.
538
540
  """
539
541
  pulumi.set(__self__, "family", family)
542
+ if type is not None:
543
+ pulumi.set(__self__, "type", type)
540
544
 
541
545
  @property
542
546
  @pulumi.getter
@@ -546,6 +550,14 @@ class TableColumnFamily(dict):
546
550
  """
547
551
  return pulumi.get(self, "family")
548
552
 
553
+ @property
554
+ @pulumi.getter
555
+ def type(self) -> Optional[str]:
556
+ """
557
+ The type of the column family.
558
+ """
559
+ return pulumi.get(self, "type")
560
+
549
561
 
550
562
  @pulumi.output_type
551
563
  class TableIamBindingCondition(dict):
@@ -356,6 +356,23 @@ class Table(pulumi.CustomResource):
356
356
  },
357
357
  {
358
358
  "family": "family-second",
359
+ "type": "intsum",
360
+ },
361
+ {
362
+ "family": "family-third",
363
+ "type": \"\"\" {
364
+ \\x09\\x09\\x09\\x09\\x09"aggregateType": {
365
+ \\x09\\x09\\x09\\x09\\x09\\x09"max": {},
366
+ \\x09\\x09\\x09\\x09\\x09\\x09"inputType": {
367
+ \\x09\\x09\\x09\\x09\\x09\\x09\\x09"int64Type": {
368
+ \\x09\\x09\\x09\\x09\\x09\\x09\\x09\\x09"encoding": {
369
+ \\x09\\x09\\x09\\x09\\x09\\x09\\x09\\x09\\x09"bigEndianBytes": {}
370
+ \\x09\\x09\\x09\\x09\\x09\\x09\\x09\\x09}
371
+ \\x09\\x09\\x09\\x09\\x09\\x09\\x09}
372
+ \\x09\\x09\\x09\\x09\\x09\\x09}
373
+ \\x09\\x09\\x09\\x09\\x09}
374
+ \\x09\\x09\\x09\\x09}
375
+ \"\"\",
359
376
  },
360
377
  ],
361
378
  change_stream_retention="24h0m0s",
@@ -446,6 +463,23 @@ class Table(pulumi.CustomResource):
446
463
  },
447
464
  {
448
465
  "family": "family-second",
466
+ "type": "intsum",
467
+ },
468
+ {
469
+ "family": "family-third",
470
+ "type": \"\"\" {
471
+ \\x09\\x09\\x09\\x09\\x09"aggregateType": {
472
+ \\x09\\x09\\x09\\x09\\x09\\x09"max": {},
473
+ \\x09\\x09\\x09\\x09\\x09\\x09"inputType": {
474
+ \\x09\\x09\\x09\\x09\\x09\\x09\\x09"int64Type": {
475
+ \\x09\\x09\\x09\\x09\\x09\\x09\\x09\\x09"encoding": {
476
+ \\x09\\x09\\x09\\x09\\x09\\x09\\x09\\x09\\x09"bigEndianBytes": {}
477
+ \\x09\\x09\\x09\\x09\\x09\\x09\\x09\\x09}
478
+ \\x09\\x09\\x09\\x09\\x09\\x09\\x09}
479
+ \\x09\\x09\\x09\\x09\\x09\\x09}
480
+ \\x09\\x09\\x09\\x09\\x09}
481
+ \\x09\\x09\\x09\\x09}
482
+ \"\"\",
449
483
  },
450
484
  ],
451
485
  change_stream_retention="24h0m0s",