pulumi-gcp 8.0.0rc0__py3-none-any.whl → 8.1.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 (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.0.0rc0.dist-info → pulumi_gcp-8.1.0.dist-info}/METADATA +1 -1
  99. {pulumi_gcp-8.0.0rc0.dist-info → pulumi_gcp-8.1.0.dist-info}/RECORD +101 -95
  100. {pulumi_gcp-8.0.0rc0.dist-info → pulumi_gcp-8.1.0.dist-info}/WHEEL +1 -1
  101. {pulumi_gcp-8.0.0rc0.dist-info → pulumi_gcp-8.1.0.dist-info}/top_level.txt +0 -0
@@ -49,6 +49,8 @@ __all__ = [
49
49
  'ConnectionSparkSparkHistoryServerConfigArgsDict',
50
50
  'DataTransferConfigEmailPreferencesArgs',
51
51
  'DataTransferConfigEmailPreferencesArgsDict',
52
+ 'DataTransferConfigEncryptionConfigurationArgs',
53
+ 'DataTransferConfigEncryptionConfigurationArgsDict',
52
54
  'DataTransferConfigScheduleOptionsArgs',
53
55
  'DataTransferConfigScheduleOptionsArgsDict',
54
56
  'DataTransferConfigSensitiveParamsArgs',
@@ -1244,6 +1246,37 @@ class DataTransferConfigEmailPreferencesArgs:
1244
1246
  pulumi.set(self, "enable_failure_email", value)
1245
1247
 
1246
1248
 
1249
+ if not MYPY:
1250
+ class DataTransferConfigEncryptionConfigurationArgsDict(TypedDict):
1251
+ kms_key_name: pulumi.Input[str]
1252
+ """
1253
+ The name of the KMS key used for encrypting BigQuery data.
1254
+ """
1255
+ elif False:
1256
+ DataTransferConfigEncryptionConfigurationArgsDict: TypeAlias = Mapping[str, Any]
1257
+
1258
+ @pulumi.input_type
1259
+ class DataTransferConfigEncryptionConfigurationArgs:
1260
+ def __init__(__self__, *,
1261
+ kms_key_name: pulumi.Input[str]):
1262
+ """
1263
+ :param pulumi.Input[str] kms_key_name: The name of the KMS key used for encrypting BigQuery data.
1264
+ """
1265
+ pulumi.set(__self__, "kms_key_name", kms_key_name)
1266
+
1267
+ @property
1268
+ @pulumi.getter(name="kmsKeyName")
1269
+ def kms_key_name(self) -> pulumi.Input[str]:
1270
+ """
1271
+ The name of the KMS key used for encrypting BigQuery data.
1272
+ """
1273
+ return pulumi.get(self, "kms_key_name")
1274
+
1275
+ @kms_key_name.setter
1276
+ def kms_key_name(self, value: pulumi.Input[str]):
1277
+ pulumi.set(self, "kms_key_name", value)
1278
+
1279
+
1247
1280
  if not MYPY:
1248
1281
  class DataTransferConfigScheduleOptionsArgsDict(TypedDict):
1249
1282
  disable_auto_scheduling: NotRequired[pulumi.Input[bool]]
@@ -28,6 +28,7 @@ class DataTransferConfigArgs:
28
28
  destination_dataset_id: Optional[pulumi.Input[str]] = None,
29
29
  disabled: Optional[pulumi.Input[bool]] = None,
30
30
  email_preferences: Optional[pulumi.Input['DataTransferConfigEmailPreferencesArgs']] = None,
31
+ encryption_configuration: Optional[pulumi.Input['DataTransferConfigEncryptionConfigurationArgs']] = None,
31
32
  location: Optional[pulumi.Input[str]] = None,
32
33
  notification_pubsub_topic: Optional[pulumi.Input[str]] = None,
33
34
  project: Optional[pulumi.Input[str]] = None,
@@ -56,6 +57,8 @@ class DataTransferConfigArgs:
56
57
  :param pulumi.Input['DataTransferConfigEmailPreferencesArgs'] email_preferences: Email notifications will be sent according to these preferences to the
57
58
  email address of the user who owns this transfer config.
58
59
  Structure is documented below.
60
+ :param pulumi.Input['DataTransferConfigEncryptionConfigurationArgs'] encryption_configuration: Represents the encryption configuration for a transfer.
61
+ Structure is documented below.
59
62
  :param pulumi.Input[str] location: The geographic location where the transfer config should reside.
60
63
  Examples: US, EU, asia-northeast1. The default value is US.
61
64
  :param pulumi.Input[str] notification_pubsub_topic: Pub/Sub topic where notifications will be sent after transfer runs
@@ -95,6 +98,8 @@ class DataTransferConfigArgs:
95
98
  pulumi.set(__self__, "disabled", disabled)
96
99
  if email_preferences is not None:
97
100
  pulumi.set(__self__, "email_preferences", email_preferences)
101
+ if encryption_configuration is not None:
102
+ pulumi.set(__self__, "encryption_configuration", encryption_configuration)
98
103
  if location is not None:
99
104
  pulumi.set(__self__, "location", location)
100
105
  if notification_pubsub_topic is not None:
@@ -206,6 +211,19 @@ class DataTransferConfigArgs:
206
211
  def email_preferences(self, value: Optional[pulumi.Input['DataTransferConfigEmailPreferencesArgs']]):
207
212
  pulumi.set(self, "email_preferences", value)
208
213
 
214
+ @property
215
+ @pulumi.getter(name="encryptionConfiguration")
216
+ def encryption_configuration(self) -> Optional[pulumi.Input['DataTransferConfigEncryptionConfigurationArgs']]:
217
+ """
218
+ Represents the encryption configuration for a transfer.
219
+ Structure is documented below.
220
+ """
221
+ return pulumi.get(self, "encryption_configuration")
222
+
223
+ @encryption_configuration.setter
224
+ def encryption_configuration(self, value: Optional[pulumi.Input['DataTransferConfigEncryptionConfigurationArgs']]):
225
+ pulumi.set(self, "encryption_configuration", value)
226
+
209
227
  @property
210
228
  @pulumi.getter
211
229
  def location(self) -> Optional[pulumi.Input[str]]:
@@ -320,6 +338,7 @@ class _DataTransferConfigState:
320
338
  disabled: Optional[pulumi.Input[bool]] = None,
321
339
  display_name: Optional[pulumi.Input[str]] = None,
322
340
  email_preferences: Optional[pulumi.Input['DataTransferConfigEmailPreferencesArgs']] = None,
341
+ encryption_configuration: Optional[pulumi.Input['DataTransferConfigEncryptionConfigurationArgs']] = None,
323
342
  location: Optional[pulumi.Input[str]] = None,
324
343
  name: Optional[pulumi.Input[str]] = None,
325
344
  notification_pubsub_topic: Optional[pulumi.Input[str]] = None,
@@ -343,6 +362,8 @@ class _DataTransferConfigState:
343
362
  :param pulumi.Input['DataTransferConfigEmailPreferencesArgs'] email_preferences: Email notifications will be sent according to these preferences to the
344
363
  email address of the user who owns this transfer config.
345
364
  Structure is documented below.
365
+ :param pulumi.Input['DataTransferConfigEncryptionConfigurationArgs'] encryption_configuration: Represents the encryption configuration for a transfer.
366
+ Structure is documented below.
346
367
  :param pulumi.Input[str] location: The geographic location where the transfer config should reside.
347
368
  Examples: US, EU, asia-northeast1. The default value is US.
348
369
  :param pulumi.Input[str] name: The resource name of the transfer config. Transfer config names have the
@@ -395,6 +416,8 @@ class _DataTransferConfigState:
395
416
  pulumi.set(__self__, "display_name", display_name)
396
417
  if email_preferences is not None:
397
418
  pulumi.set(__self__, "email_preferences", email_preferences)
419
+ if encryption_configuration is not None:
420
+ pulumi.set(__self__, "encryption_configuration", encryption_configuration)
398
421
  if location is not None:
399
422
  pulumi.set(__self__, "location", location)
400
423
  if name is not None:
@@ -492,6 +515,19 @@ class _DataTransferConfigState:
492
515
  def email_preferences(self, value: Optional[pulumi.Input['DataTransferConfigEmailPreferencesArgs']]):
493
516
  pulumi.set(self, "email_preferences", value)
494
517
 
518
+ @property
519
+ @pulumi.getter(name="encryptionConfiguration")
520
+ def encryption_configuration(self) -> Optional[pulumi.Input['DataTransferConfigEncryptionConfigurationArgs']]:
521
+ """
522
+ Represents the encryption configuration for a transfer.
523
+ Structure is documented below.
524
+ """
525
+ return pulumi.get(self, "encryption_configuration")
526
+
527
+ @encryption_configuration.setter
528
+ def encryption_configuration(self, value: Optional[pulumi.Input['DataTransferConfigEncryptionConfigurationArgs']]):
529
+ pulumi.set(self, "encryption_configuration", value)
530
+
495
531
  @property
496
532
  @pulumi.getter
497
533
  def location(self) -> Optional[pulumi.Input[str]]:
@@ -642,6 +678,7 @@ class DataTransferConfig(pulumi.CustomResource):
642
678
  disabled: Optional[pulumi.Input[bool]] = None,
643
679
  display_name: Optional[pulumi.Input[str]] = None,
644
680
  email_preferences: Optional[pulumi.Input[Union['DataTransferConfigEmailPreferencesArgs', 'DataTransferConfigEmailPreferencesArgsDict']]] = None,
681
+ encryption_configuration: Optional[pulumi.Input[Union['DataTransferConfigEncryptionConfigurationArgs', 'DataTransferConfigEncryptionConfigurationArgsDict']]] = None,
645
682
  location: Optional[pulumi.Input[str]] = None,
646
683
  notification_pubsub_topic: Optional[pulumi.Input[str]] = None,
647
684
  params: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
@@ -693,6 +730,45 @@ class DataTransferConfig(pulumi.CustomResource):
693
730
  },
694
731
  opts = pulumi.ResourceOptions(depends_on=[permissions]))
695
732
  ```
733
+ ### Bigquerydatatransfer Config Cmek
734
+
735
+ ```python
736
+ import pulumi
737
+ import pulumi_gcp as gcp
738
+
739
+ project = gcp.organizations.get_project()
740
+ permissions = gcp.projects.IAMMember("permissions",
741
+ project=project.project_id,
742
+ role="roles/iam.serviceAccountTokenCreator",
743
+ member=f"serviceAccount:service-{project.number}@gcp-sa-bigquerydatatransfer.iam.gserviceaccount.com")
744
+ my_dataset = gcp.bigquery.Dataset("my_dataset",
745
+ dataset_id="example_dataset",
746
+ friendly_name="foo",
747
+ description="bar",
748
+ location="asia-northeast1",
749
+ opts = pulumi.ResourceOptions(depends_on=[permissions]))
750
+ key_ring = gcp.kms.KeyRing("key_ring",
751
+ name="example-keyring",
752
+ location="us")
753
+ crypto_key = gcp.kms.CryptoKey("crypto_key",
754
+ name="example-key",
755
+ key_ring=key_ring.id)
756
+ query_config_cmek = gcp.bigquery.DataTransferConfig("query_config_cmek",
757
+ display_name="",
758
+ location="asia-northeast1",
759
+ data_source_id="scheduled_query",
760
+ schedule="first sunday of quarter 00:00",
761
+ destination_dataset_id=my_dataset.dataset_id,
762
+ params={
763
+ "destination_table_name_template": "my_table",
764
+ "write_disposition": "WRITE_APPEND",
765
+ "query": "SELECT name FROM tabl WHERE x = 'y'",
766
+ },
767
+ encryption_configuration={
768
+ "kms_key_name": crypto_key.id,
769
+ },
770
+ opts = pulumi.ResourceOptions(depends_on=[permissions]))
771
+ ```
696
772
  ### Bigquerydatatransfer Config Salesforce
697
773
 
698
774
  ```python
@@ -713,9 +789,7 @@ class DataTransferConfig(pulumi.CustomResource):
713
789
  params={
714
790
  "connector.authentication.oauth.clientId": "client-id",
715
791
  "connector.authentication.oauth.clientSecret": "client-secret",
716
- "connector.authentication.username": "username",
717
- "connector.authentication.password": "password",
718
- "connector.authentication.securityToken": "security-token",
792
+ "connector.authentication.oauth.myDomain": "MyDomainName",
719
793
  "assets": "[\\"asset-a\\",\\"asset-b\\"]",
720
794
  })
721
795
  ```
@@ -746,6 +820,8 @@ class DataTransferConfig(pulumi.CustomResource):
746
820
  :param pulumi.Input[Union['DataTransferConfigEmailPreferencesArgs', 'DataTransferConfigEmailPreferencesArgsDict']] email_preferences: Email notifications will be sent according to these preferences to the
747
821
  email address of the user who owns this transfer config.
748
822
  Structure is documented below.
823
+ :param pulumi.Input[Union['DataTransferConfigEncryptionConfigurationArgs', 'DataTransferConfigEncryptionConfigurationArgsDict']] encryption_configuration: Represents the encryption configuration for a transfer.
824
+ Structure is documented below.
749
825
  :param pulumi.Input[str] location: The geographic location where the transfer config should reside.
750
826
  Examples: US, EU, asia-northeast1. The default value is US.
751
827
  :param pulumi.Input[str] notification_pubsub_topic: Pub/Sub topic where notifications will be sent after transfer runs
@@ -829,6 +905,45 @@ class DataTransferConfig(pulumi.CustomResource):
829
905
  },
830
906
  opts = pulumi.ResourceOptions(depends_on=[permissions]))
831
907
  ```
908
+ ### Bigquerydatatransfer Config Cmek
909
+
910
+ ```python
911
+ import pulumi
912
+ import pulumi_gcp as gcp
913
+
914
+ project = gcp.organizations.get_project()
915
+ permissions = gcp.projects.IAMMember("permissions",
916
+ project=project.project_id,
917
+ role="roles/iam.serviceAccountTokenCreator",
918
+ member=f"serviceAccount:service-{project.number}@gcp-sa-bigquerydatatransfer.iam.gserviceaccount.com")
919
+ my_dataset = gcp.bigquery.Dataset("my_dataset",
920
+ dataset_id="example_dataset",
921
+ friendly_name="foo",
922
+ description="bar",
923
+ location="asia-northeast1",
924
+ opts = pulumi.ResourceOptions(depends_on=[permissions]))
925
+ key_ring = gcp.kms.KeyRing("key_ring",
926
+ name="example-keyring",
927
+ location="us")
928
+ crypto_key = gcp.kms.CryptoKey("crypto_key",
929
+ name="example-key",
930
+ key_ring=key_ring.id)
931
+ query_config_cmek = gcp.bigquery.DataTransferConfig("query_config_cmek",
932
+ display_name="",
933
+ location="asia-northeast1",
934
+ data_source_id="scheduled_query",
935
+ schedule="first sunday of quarter 00:00",
936
+ destination_dataset_id=my_dataset.dataset_id,
937
+ params={
938
+ "destination_table_name_template": "my_table",
939
+ "write_disposition": "WRITE_APPEND",
940
+ "query": "SELECT name FROM tabl WHERE x = 'y'",
941
+ },
942
+ encryption_configuration={
943
+ "kms_key_name": crypto_key.id,
944
+ },
945
+ opts = pulumi.ResourceOptions(depends_on=[permissions]))
946
+ ```
832
947
  ### Bigquerydatatransfer Config Salesforce
833
948
 
834
949
  ```python
@@ -849,9 +964,7 @@ class DataTransferConfig(pulumi.CustomResource):
849
964
  params={
850
965
  "connector.authentication.oauth.clientId": "client-id",
851
966
  "connector.authentication.oauth.clientSecret": "client-secret",
852
- "connector.authentication.username": "username",
853
- "connector.authentication.password": "password",
854
- "connector.authentication.securityToken": "security-token",
967
+ "connector.authentication.oauth.myDomain": "MyDomainName",
855
968
  "assets": "[\\"asset-a\\",\\"asset-b\\"]",
856
969
  })
857
970
  ```
@@ -889,6 +1002,7 @@ class DataTransferConfig(pulumi.CustomResource):
889
1002
  disabled: Optional[pulumi.Input[bool]] = None,
890
1003
  display_name: Optional[pulumi.Input[str]] = None,
891
1004
  email_preferences: Optional[pulumi.Input[Union['DataTransferConfigEmailPreferencesArgs', 'DataTransferConfigEmailPreferencesArgsDict']]] = None,
1005
+ encryption_configuration: Optional[pulumi.Input[Union['DataTransferConfigEncryptionConfigurationArgs', 'DataTransferConfigEncryptionConfigurationArgsDict']]] = None,
892
1006
  location: Optional[pulumi.Input[str]] = None,
893
1007
  notification_pubsub_topic: Optional[pulumi.Input[str]] = None,
894
1008
  params: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
@@ -916,6 +1030,7 @@ class DataTransferConfig(pulumi.CustomResource):
916
1030
  raise TypeError("Missing required property 'display_name'")
917
1031
  __props__.__dict__["display_name"] = display_name
918
1032
  __props__.__dict__["email_preferences"] = email_preferences
1033
+ __props__.__dict__["encryption_configuration"] = encryption_configuration
919
1034
  __props__.__dict__["location"] = location
920
1035
  __props__.__dict__["notification_pubsub_topic"] = notification_pubsub_topic
921
1036
  if params is None and not opts.urn:
@@ -943,6 +1058,7 @@ class DataTransferConfig(pulumi.CustomResource):
943
1058
  disabled: Optional[pulumi.Input[bool]] = None,
944
1059
  display_name: Optional[pulumi.Input[str]] = None,
945
1060
  email_preferences: Optional[pulumi.Input[Union['DataTransferConfigEmailPreferencesArgs', 'DataTransferConfigEmailPreferencesArgsDict']]] = None,
1061
+ encryption_configuration: Optional[pulumi.Input[Union['DataTransferConfigEncryptionConfigurationArgs', 'DataTransferConfigEncryptionConfigurationArgsDict']]] = None,
946
1062
  location: Optional[pulumi.Input[str]] = None,
947
1063
  name: Optional[pulumi.Input[str]] = None,
948
1064
  notification_pubsub_topic: Optional[pulumi.Input[str]] = None,
@@ -971,6 +1087,8 @@ class DataTransferConfig(pulumi.CustomResource):
971
1087
  :param pulumi.Input[Union['DataTransferConfigEmailPreferencesArgs', 'DataTransferConfigEmailPreferencesArgsDict']] email_preferences: Email notifications will be sent according to these preferences to the
972
1088
  email address of the user who owns this transfer config.
973
1089
  Structure is documented below.
1090
+ :param pulumi.Input[Union['DataTransferConfigEncryptionConfigurationArgs', 'DataTransferConfigEncryptionConfigurationArgsDict']] encryption_configuration: Represents the encryption configuration for a transfer.
1091
+ Structure is documented below.
974
1092
  :param pulumi.Input[str] location: The geographic location where the transfer config should reside.
975
1093
  Examples: US, EU, asia-northeast1. The default value is US.
976
1094
  :param pulumi.Input[str] name: The resource name of the transfer config. Transfer config names have the
@@ -1021,6 +1139,7 @@ class DataTransferConfig(pulumi.CustomResource):
1021
1139
  __props__.__dict__["disabled"] = disabled
1022
1140
  __props__.__dict__["display_name"] = display_name
1023
1141
  __props__.__dict__["email_preferences"] = email_preferences
1142
+ __props__.__dict__["encryption_configuration"] = encryption_configuration
1024
1143
  __props__.__dict__["location"] = location
1025
1144
  __props__.__dict__["name"] = name
1026
1145
  __props__.__dict__["notification_pubsub_topic"] = notification_pubsub_topic
@@ -1086,6 +1205,15 @@ class DataTransferConfig(pulumi.CustomResource):
1086
1205
  """
1087
1206
  return pulumi.get(self, "email_preferences")
1088
1207
 
1208
+ @property
1209
+ @pulumi.getter(name="encryptionConfiguration")
1210
+ def encryption_configuration(self) -> pulumi.Output[Optional['outputs.DataTransferConfigEncryptionConfiguration']]:
1211
+ """
1212
+ Represents the encryption configuration for a transfer.
1213
+ Structure is documented below.
1214
+ """
1215
+ return pulumi.get(self, "encryption_configuration")
1216
+
1089
1217
  @property
1090
1218
  @pulumi.getter
1091
1219
  def location(self) -> pulumi.Output[Optional[str]]:
@@ -33,6 +33,7 @@ __all__ = [
33
33
  'ConnectionSparkMetastoreServiceConfig',
34
34
  'ConnectionSparkSparkHistoryServerConfig',
35
35
  'DataTransferConfigEmailPreferences',
36
+ 'DataTransferConfigEncryptionConfiguration',
36
37
  'DataTransferConfigScheduleOptions',
37
38
  'DataTransferConfigSensitiveParams',
38
39
  'DatasetAccess',
@@ -985,6 +986,41 @@ class DataTransferConfigEmailPreferences(dict):
985
986
  return pulumi.get(self, "enable_failure_email")
986
987
 
987
988
 
989
+ @pulumi.output_type
990
+ class DataTransferConfigEncryptionConfiguration(dict):
991
+ @staticmethod
992
+ def __key_warning(key: str):
993
+ suggest = None
994
+ if key == "kmsKeyName":
995
+ suggest = "kms_key_name"
996
+
997
+ if suggest:
998
+ pulumi.log.warn(f"Key '{key}' not found in DataTransferConfigEncryptionConfiguration. Access the value via the '{suggest}' property getter instead.")
999
+
1000
+ def __getitem__(self, key: str) -> Any:
1001
+ DataTransferConfigEncryptionConfiguration.__key_warning(key)
1002
+ return super().__getitem__(key)
1003
+
1004
+ def get(self, key: str, default = None) -> Any:
1005
+ DataTransferConfigEncryptionConfiguration.__key_warning(key)
1006
+ return super().get(key, default)
1007
+
1008
+ def __init__(__self__, *,
1009
+ kms_key_name: str):
1010
+ """
1011
+ :param str kms_key_name: The name of the KMS key used for encrypting BigQuery data.
1012
+ """
1013
+ pulumi.set(__self__, "kms_key_name", kms_key_name)
1014
+
1015
+ @property
1016
+ @pulumi.getter(name="kmsKeyName")
1017
+ def kms_key_name(self) -> str:
1018
+ """
1019
+ The name of the KMS key used for encrypting BigQuery data.
1020
+ """
1021
+ return pulumi.get(self, "kms_key_name")
1022
+
1023
+
988
1024
  @pulumi.output_type
989
1025
  class DataTransferConfigScheduleOptions(dict):
990
1026
  @staticmethod
@@ -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]]: