pulumi-gcp 7.15.0a1711038061__py3-none-any.whl → 7.16.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 (83) hide show
  1. pulumi_gcp/__init__.py +102 -0
  2. pulumi_gcp/accesscontextmanager/__init__.py +1 -0
  3. pulumi_gcp/accesscontextmanager/_inputs.py +74 -58
  4. pulumi_gcp/accesscontextmanager/outputs.py +74 -58
  5. pulumi_gcp/accesscontextmanager/service_perimeter.py +0 -2
  6. pulumi_gcp/accesscontextmanager/service_perimeter_dry_run_resource.py +345 -0
  7. pulumi_gcp/accesscontextmanager/service_perimeter_egress_policy.py +80 -0
  8. pulumi_gcp/accesscontextmanager/service_perimeter_ingress_policy.py +86 -0
  9. pulumi_gcp/accesscontextmanager/service_perimeter_resource.py +4 -2
  10. pulumi_gcp/apphub/__init__.py +15 -0
  11. pulumi_gcp/apphub/_inputs.py +1016 -0
  12. pulumi_gcp/apphub/application.py +775 -0
  13. pulumi_gcp/apphub/get_discovered_service.py +180 -0
  14. pulumi_gcp/apphub/get_discovered_workload.py +180 -0
  15. pulumi_gcp/apphub/outputs.py +1206 -0
  16. pulumi_gcp/apphub/service.py +1121 -0
  17. pulumi_gcp/apphub/service_project_attachment.py +516 -0
  18. pulumi_gcp/apphub/workload.py +1197 -0
  19. pulumi_gcp/cloudquota/__init__.py +10 -0
  20. pulumi_gcp/cloudquota/get_s_quota_info.py +322 -0
  21. pulumi_gcp/cloudquota/get_s_quota_infos.py +136 -0
  22. pulumi_gcp/cloudquota/outputs.py +375 -0
  23. pulumi_gcp/cloudrunv2/_inputs.py +85 -4
  24. pulumi_gcp/cloudrunv2/get_service.py +11 -1
  25. pulumi_gcp/cloudrunv2/outputs.py +165 -6
  26. pulumi_gcp/cloudrunv2/service.py +60 -6
  27. pulumi_gcp/composer/_inputs.py +16 -0
  28. pulumi_gcp/composer/outputs.py +23 -0
  29. pulumi_gcp/compute/_inputs.py +109 -11
  30. pulumi_gcp/compute/outputs.py +144 -13
  31. pulumi_gcp/compute/region_network_endpoint_group.py +30 -0
  32. pulumi_gcp/compute/region_url_map.py +152 -0
  33. pulumi_gcp/config/__init__.pyi +4 -0
  34. pulumi_gcp/config/vars.py +8 -0
  35. pulumi_gcp/dataform/repository.py +4 -74
  36. pulumi_gcp/firebase/__init__.py +1 -0
  37. pulumi_gcp/firebase/android_app.py +41 -40
  38. pulumi_gcp/firebase/app_check_device_check_config.py +572 -0
  39. pulumi_gcp/firestore/_inputs.py +69 -0
  40. pulumi_gcp/firestore/database.py +206 -0
  41. pulumi_gcp/firestore/index.py +34 -48
  42. pulumi_gcp/firestore/outputs.py +80 -0
  43. pulumi_gcp/gkeonprem/_inputs.py +1 -3
  44. pulumi_gcp/gkeonprem/outputs.py +1 -3
  45. pulumi_gcp/gkeonprem/v_mware_cluster.py +2 -0
  46. pulumi_gcp/iap/__init__.py +5 -0
  47. pulumi_gcp/iap/_inputs.py +100 -0
  48. pulumi_gcp/iap/get_tunnel_dest_group_iam_policy.py +172 -0
  49. pulumi_gcp/iap/outputs.py +76 -0
  50. pulumi_gcp/iap/tunnel_dest_group.py +524 -0
  51. pulumi_gcp/iap/tunnel_dest_group_iam_binding.py +858 -0
  52. pulumi_gcp/iap/tunnel_dest_group_iam_member.py +858 -0
  53. pulumi_gcp/iap/tunnel_dest_group_iam_policy.py +760 -0
  54. pulumi_gcp/kms/__init__.py +1 -0
  55. pulumi_gcp/kms/_inputs.py +246 -0
  56. pulumi_gcp/kms/ekm_connection.py +610 -0
  57. pulumi_gcp/kms/outputs.py +242 -0
  58. pulumi_gcp/monitoring/_inputs.py +2 -0
  59. pulumi_gcp/monitoring/outputs.py +2 -0
  60. pulumi_gcp/networksecurity/__init__.py +1 -0
  61. pulumi_gcp/networksecurity/firewall_endpoint.py +48 -0
  62. pulumi_gcp/networksecurity/firewall_endpoint_association.py +753 -0
  63. pulumi_gcp/notebooks/instance.py +8 -0
  64. pulumi_gcp/orgpolicy/policy.py +2 -2
  65. pulumi_gcp/provider.py +40 -0
  66. pulumi_gcp/pubsub/_inputs.py +108 -0
  67. pulumi_gcp/pubsub/get_topic.py +11 -1
  68. pulumi_gcp/pubsub/outputs.py +213 -0
  69. pulumi_gcp/pubsub/subscription.py +4 -4
  70. pulumi_gcp/pubsub/topic.py +92 -0
  71. pulumi_gcp/securityposture/posture.py +2 -2
  72. pulumi_gcp/securityposture/posture_deployment.py +2 -2
  73. pulumi_gcp/storage/_inputs.py +72 -15
  74. pulumi_gcp/storage/bucket.py +54 -0
  75. pulumi_gcp/storage/get_bucket.py +11 -1
  76. pulumi_gcp/storage/outputs.py +110 -14
  77. pulumi_gcp/workstations/_inputs.py +247 -4
  78. pulumi_gcp/workstations/outputs.py +261 -5
  79. pulumi_gcp/workstations/workstation_config.py +160 -0
  80. {pulumi_gcp-7.15.0a1711038061.dist-info → pulumi_gcp-7.16.0.dist-info}/METADATA +1 -1
  81. {pulumi_gcp-7.15.0a1711038061.dist-info → pulumi_gcp-7.16.0.dist-info}/RECORD +83 -61
  82. {pulumi_gcp-7.15.0a1711038061.dist-info → pulumi_gcp-7.16.0.dist-info}/WHEEL +0 -0
  83. {pulumi_gcp-7.15.0a1711038061.dist-info → pulumi_gcp-7.16.0.dist-info}/top_level.txt +0 -0
@@ -16,6 +16,7 @@ __all__ = ['TopicArgs', 'Topic']
16
16
  @pulumi.input_type
17
17
  class TopicArgs:
18
18
  def __init__(__self__, *,
19
+ ingestion_data_source_settings: Optional[pulumi.Input['TopicIngestionDataSourceSettingsArgs']] = None,
19
20
  kms_key_name: Optional[pulumi.Input[str]] = None,
20
21
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
21
22
  message_retention_duration: Optional[pulumi.Input[str]] = None,
@@ -25,6 +26,8 @@ class TopicArgs:
25
26
  schema_settings: Optional[pulumi.Input['TopicSchemaSettingsArgs']] = None):
26
27
  """
27
28
  The set of arguments for constructing a Topic resource.
29
+ :param pulumi.Input['TopicIngestionDataSourceSettingsArgs'] ingestion_data_source_settings: Settings for ingestion from a data source into this topic.
30
+ Structure is documented below.
28
31
  :param pulumi.Input[str] kms_key_name: The resource name of the Cloud KMS CryptoKey to be used to protect access
29
32
  to messages published on this topic. Your project's PubSub service account
30
33
  (`service-{{PROJECT_NUMBER}}@gcp-sa-pubsub.iam.gserviceaccount.com`) must have
@@ -55,6 +58,8 @@ class TopicArgs:
55
58
  :param pulumi.Input['TopicSchemaSettingsArgs'] schema_settings: Settings for validating messages published against a schema.
56
59
  Structure is documented below.
57
60
  """
61
+ if ingestion_data_source_settings is not None:
62
+ pulumi.set(__self__, "ingestion_data_source_settings", ingestion_data_source_settings)
58
63
  if kms_key_name is not None:
59
64
  pulumi.set(__self__, "kms_key_name", kms_key_name)
60
65
  if labels is not None:
@@ -70,6 +75,19 @@ class TopicArgs:
70
75
  if schema_settings is not None:
71
76
  pulumi.set(__self__, "schema_settings", schema_settings)
72
77
 
78
+ @property
79
+ @pulumi.getter(name="ingestionDataSourceSettings")
80
+ def ingestion_data_source_settings(self) -> Optional[pulumi.Input['TopicIngestionDataSourceSettingsArgs']]:
81
+ """
82
+ Settings for ingestion from a data source into this topic.
83
+ Structure is documented below.
84
+ """
85
+ return pulumi.get(self, "ingestion_data_source_settings")
86
+
87
+ @ingestion_data_source_settings.setter
88
+ def ingestion_data_source_settings(self, value: Optional[pulumi.Input['TopicIngestionDataSourceSettingsArgs']]):
89
+ pulumi.set(self, "ingestion_data_source_settings", value)
90
+
73
91
  @property
74
92
  @pulumi.getter(name="kmsKeyName")
75
93
  def kms_key_name(self) -> Optional[pulumi.Input[str]]:
@@ -181,6 +199,7 @@ class TopicArgs:
181
199
  class _TopicState:
182
200
  def __init__(__self__, *,
183
201
  effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
202
+ ingestion_data_source_settings: Optional[pulumi.Input['TopicIngestionDataSourceSettingsArgs']] = None,
184
203
  kms_key_name: Optional[pulumi.Input[str]] = None,
185
204
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
186
205
  message_retention_duration: Optional[pulumi.Input[str]] = None,
@@ -192,6 +211,8 @@ class _TopicState:
192
211
  """
193
212
  Input properties used for looking up and filtering Topic resources.
194
213
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] effective_labels: All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
214
+ :param pulumi.Input['TopicIngestionDataSourceSettingsArgs'] ingestion_data_source_settings: Settings for ingestion from a data source into this topic.
215
+ Structure is documented below.
195
216
  :param pulumi.Input[str] kms_key_name: The resource name of the Cloud KMS CryptoKey to be used to protect access
196
217
  to messages published on this topic. Your project's PubSub service account
197
218
  (`service-{{PROJECT_NUMBER}}@gcp-sa-pubsub.iam.gserviceaccount.com`) must have
@@ -226,6 +247,8 @@ class _TopicState:
226
247
  """
227
248
  if effective_labels is not None:
228
249
  pulumi.set(__self__, "effective_labels", effective_labels)
250
+ if ingestion_data_source_settings is not None:
251
+ pulumi.set(__self__, "ingestion_data_source_settings", ingestion_data_source_settings)
229
252
  if kms_key_name is not None:
230
253
  pulumi.set(__self__, "kms_key_name", kms_key_name)
231
254
  if labels is not None:
@@ -255,6 +278,19 @@ class _TopicState:
255
278
  def effective_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
256
279
  pulumi.set(self, "effective_labels", value)
257
280
 
281
+ @property
282
+ @pulumi.getter(name="ingestionDataSourceSettings")
283
+ def ingestion_data_source_settings(self) -> Optional[pulumi.Input['TopicIngestionDataSourceSettingsArgs']]:
284
+ """
285
+ Settings for ingestion from a data source into this topic.
286
+ Structure is documented below.
287
+ """
288
+ return pulumi.get(self, "ingestion_data_source_settings")
289
+
290
+ @ingestion_data_source_settings.setter
291
+ def ingestion_data_source_settings(self, value: Optional[pulumi.Input['TopicIngestionDataSourceSettingsArgs']]):
292
+ pulumi.set(self, "ingestion_data_source_settings", value)
293
+
258
294
  @property
259
295
  @pulumi.getter(name="kmsKeyName")
260
296
  def kms_key_name(self) -> Optional[pulumi.Input[str]]:
@@ -380,6 +416,7 @@ class Topic(pulumi.CustomResource):
380
416
  def __init__(__self__,
381
417
  resource_name: str,
382
418
  opts: Optional[pulumi.ResourceOptions] = None,
419
+ ingestion_data_source_settings: Optional[pulumi.Input[pulumi.InputType['TopicIngestionDataSourceSettingsArgs']]] = None,
383
420
  kms_key_name: Optional[pulumi.Input[str]] = None,
384
421
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
385
422
  message_retention_duration: Optional[pulumi.Input[str]] = None,
@@ -482,6 +519,25 @@ class Topic(pulumi.CustomResource):
482
519
  ))
483
520
  ```
484
521
  <!--End PulumiCodeChooser -->
522
+ ### Pubsub Topic Ingestion Kinesis
523
+
524
+ <!--Start PulumiCodeChooser -->
525
+ ```python
526
+ import pulumi
527
+ import pulumi_gcp as gcp
528
+
529
+ example = gcp.pubsub.Topic("example",
530
+ name="example-topic",
531
+ ingestion_data_source_settings=gcp.pubsub.TopicIngestionDataSourceSettingsArgs(
532
+ aws_kinesis=gcp.pubsub.TopicIngestionDataSourceSettingsAwsKinesisArgs(
533
+ stream_arn="arn:aws:kinesis:us-west-2:111111111111:stream/fake-stream-name",
534
+ consumer_arn="arn:aws:kinesis:us-west-2:111111111111:stream/fake-stream-name/consumer/consumer-1:1111111111",
535
+ aws_role_arn="arn:aws:iam::111111111111:role/fake-role-name",
536
+ gcp_service_account="fake-service-account@fake-gcp-project.iam.gserviceaccount.com",
537
+ ),
538
+ ))
539
+ ```
540
+ <!--End PulumiCodeChooser -->
485
541
 
486
542
  ## Import
487
543
 
@@ -509,6 +565,8 @@ class Topic(pulumi.CustomResource):
509
565
 
510
566
  :param str resource_name: The name of the resource.
511
567
  :param pulumi.ResourceOptions opts: Options for the resource.
568
+ :param pulumi.Input[pulumi.InputType['TopicIngestionDataSourceSettingsArgs']] ingestion_data_source_settings: Settings for ingestion from a data source into this topic.
569
+ Structure is documented below.
512
570
  :param pulumi.Input[str] kms_key_name: The resource name of the Cloud KMS CryptoKey to be used to protect access
513
571
  to messages published on this topic. Your project's PubSub service account
514
572
  (`service-{{PROJECT_NUMBER}}@gcp-sa-pubsub.iam.gserviceaccount.com`) must have
@@ -639,6 +697,25 @@ class Topic(pulumi.CustomResource):
639
697
  ))
640
698
  ```
641
699
  <!--End PulumiCodeChooser -->
700
+ ### Pubsub Topic Ingestion Kinesis
701
+
702
+ <!--Start PulumiCodeChooser -->
703
+ ```python
704
+ import pulumi
705
+ import pulumi_gcp as gcp
706
+
707
+ example = gcp.pubsub.Topic("example",
708
+ name="example-topic",
709
+ ingestion_data_source_settings=gcp.pubsub.TopicIngestionDataSourceSettingsArgs(
710
+ aws_kinesis=gcp.pubsub.TopicIngestionDataSourceSettingsAwsKinesisArgs(
711
+ stream_arn="arn:aws:kinesis:us-west-2:111111111111:stream/fake-stream-name",
712
+ consumer_arn="arn:aws:kinesis:us-west-2:111111111111:stream/fake-stream-name/consumer/consumer-1:1111111111",
713
+ aws_role_arn="arn:aws:iam::111111111111:role/fake-role-name",
714
+ gcp_service_account="fake-service-account@fake-gcp-project.iam.gserviceaccount.com",
715
+ ),
716
+ ))
717
+ ```
718
+ <!--End PulumiCodeChooser -->
642
719
 
643
720
  ## Import
644
721
 
@@ -679,6 +756,7 @@ class Topic(pulumi.CustomResource):
679
756
  def _internal_init(__self__,
680
757
  resource_name: str,
681
758
  opts: Optional[pulumi.ResourceOptions] = None,
759
+ ingestion_data_source_settings: Optional[pulumi.Input[pulumi.InputType['TopicIngestionDataSourceSettingsArgs']]] = None,
682
760
  kms_key_name: Optional[pulumi.Input[str]] = None,
683
761
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
684
762
  message_retention_duration: Optional[pulumi.Input[str]] = None,
@@ -695,6 +773,7 @@ class Topic(pulumi.CustomResource):
695
773
  raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
696
774
  __props__ = TopicArgs.__new__(TopicArgs)
697
775
 
776
+ __props__.__dict__["ingestion_data_source_settings"] = ingestion_data_source_settings
698
777
  __props__.__dict__["kms_key_name"] = kms_key_name
699
778
  __props__.__dict__["labels"] = labels
700
779
  __props__.__dict__["message_retention_duration"] = message_retention_duration
@@ -717,6 +796,7 @@ class Topic(pulumi.CustomResource):
717
796
  id: pulumi.Input[str],
718
797
  opts: Optional[pulumi.ResourceOptions] = None,
719
798
  effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
799
+ ingestion_data_source_settings: Optional[pulumi.Input[pulumi.InputType['TopicIngestionDataSourceSettingsArgs']]] = None,
720
800
  kms_key_name: Optional[pulumi.Input[str]] = None,
721
801
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
722
802
  message_retention_duration: Optional[pulumi.Input[str]] = None,
@@ -733,6 +813,8 @@ class Topic(pulumi.CustomResource):
733
813
  :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
734
814
  :param pulumi.ResourceOptions opts: Options for the resource.
735
815
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] effective_labels: All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
816
+ :param pulumi.Input[pulumi.InputType['TopicIngestionDataSourceSettingsArgs']] ingestion_data_source_settings: Settings for ingestion from a data source into this topic.
817
+ Structure is documented below.
736
818
  :param pulumi.Input[str] kms_key_name: The resource name of the Cloud KMS CryptoKey to be used to protect access
737
819
  to messages published on this topic. Your project's PubSub service account
738
820
  (`service-{{PROJECT_NUMBER}}@gcp-sa-pubsub.iam.gserviceaccount.com`) must have
@@ -770,6 +852,7 @@ class Topic(pulumi.CustomResource):
770
852
  __props__ = _TopicState.__new__(_TopicState)
771
853
 
772
854
  __props__.__dict__["effective_labels"] = effective_labels
855
+ __props__.__dict__["ingestion_data_source_settings"] = ingestion_data_source_settings
773
856
  __props__.__dict__["kms_key_name"] = kms_key_name
774
857
  __props__.__dict__["labels"] = labels
775
858
  __props__.__dict__["message_retention_duration"] = message_retention_duration
@@ -788,6 +871,15 @@ class Topic(pulumi.CustomResource):
788
871
  """
789
872
  return pulumi.get(self, "effective_labels")
790
873
 
874
+ @property
875
+ @pulumi.getter(name="ingestionDataSourceSettings")
876
+ def ingestion_data_source_settings(self) -> pulumi.Output[Optional['outputs.TopicIngestionDataSourceSettings']]:
877
+ """
878
+ Settings for ingestion from a data source into this topic.
879
+ Structure is documented below.
880
+ """
881
+ return pulumi.get(self, "ingestion_data_source_settings")
882
+
791
883
  @property
792
884
  @pulumi.getter(name="kmsKeyName")
793
885
  def kms_key_name(self) -> pulumi.Output[Optional[str]]:
@@ -357,7 +357,7 @@ class Posture(pulumi.CustomResource):
357
357
  import pulumi_gcp as gcp
358
358
 
359
359
  posture1 = gcp.securityposture.Posture("posture1",
360
- posture_id="posture_1",
360
+ posture_id="posture_example",
361
361
  parent="organizations/123456789",
362
362
  location="global",
363
363
  state="ACTIVE",
@@ -511,7 +511,7 @@ class Posture(pulumi.CustomResource):
511
511
  import pulumi_gcp as gcp
512
512
 
513
513
  posture1 = gcp.securityposture.Posture("posture1",
514
- posture_id="posture_1",
514
+ posture_id="posture_example",
515
515
  parent="organizations/123456789",
516
516
  location="global",
517
517
  state="ACTIVE",
@@ -467,7 +467,7 @@ class PostureDeployment(pulumi.CustomResource):
467
467
  import pulumi
468
468
  import pulumi_gcp as gcp
469
469
 
470
- posture1 = gcp.securityposture.Posture("posture1",
470
+ posture1 = gcp.securityposture.Posture("posture_1",
471
471
  posture_id="posture_1",
472
472
  parent="organizations/123456789",
473
473
  location="global",
@@ -555,7 +555,7 @@ class PostureDeployment(pulumi.CustomResource):
555
555
  import pulumi
556
556
  import pulumi_gcp as gcp
557
557
 
558
- posture1 = gcp.securityposture.Posture("posture1",
558
+ posture1 = gcp.securityposture.Posture("posture_1",
559
559
  posture_id="posture_1",
560
560
  parent="organizations/123456789",
561
561
  location="global",
@@ -23,6 +23,7 @@ __all__ = [
23
23
  'BucketObjectCustomerEncryptionArgs',
24
24
  'BucketObjectRetentionArgs',
25
25
  'BucketRetentionPolicyArgs',
26
+ 'BucketSoftDeletePolicyArgs',
26
27
  'BucketVersioningArgs',
27
28
  'BucketWebsiteArgs',
28
29
  'DefaultObjectAccessControlProjectTeamArgs',
@@ -787,6 +788,45 @@ class BucketRetentionPolicyArgs:
787
788
  pulumi.set(self, "is_locked", value)
788
789
 
789
790
 
791
+ @pulumi.input_type
792
+ class BucketSoftDeletePolicyArgs:
793
+ def __init__(__self__, *,
794
+ effective_time: Optional[pulumi.Input[str]] = None,
795
+ retention_duration_seconds: Optional[pulumi.Input[int]] = None):
796
+ """
797
+ :param pulumi.Input[str] effective_time: Server-determined value that indicates the time from which the policy, or one with a greater retention, was effective. This value is in RFC 3339 format.
798
+ :param pulumi.Input[int] retention_duration_seconds: The duration in seconds that soft-deleted objects in the bucket will be retained and cannot be permanently deleted. Default value is 604800. The value must be in between 604800(7 days) and 7776000(90 days). **Note**: To disable the soft delete policy on a bucket, This field must be set to 0.
799
+ """
800
+ if effective_time is not None:
801
+ pulumi.set(__self__, "effective_time", effective_time)
802
+ if retention_duration_seconds is not None:
803
+ pulumi.set(__self__, "retention_duration_seconds", retention_duration_seconds)
804
+
805
+ @property
806
+ @pulumi.getter(name="effectiveTime")
807
+ def effective_time(self) -> Optional[pulumi.Input[str]]:
808
+ """
809
+ Server-determined value that indicates the time from which the policy, or one with a greater retention, was effective. This value is in RFC 3339 format.
810
+ """
811
+ return pulumi.get(self, "effective_time")
812
+
813
+ @effective_time.setter
814
+ def effective_time(self, value: Optional[pulumi.Input[str]]):
815
+ pulumi.set(self, "effective_time", value)
816
+
817
+ @property
818
+ @pulumi.getter(name="retentionDurationSeconds")
819
+ def retention_duration_seconds(self) -> Optional[pulumi.Input[int]]:
820
+ """
821
+ The duration in seconds that soft-deleted objects in the bucket will be retained and cannot be permanently deleted. Default value is 604800. The value must be in between 604800(7 days) and 7776000(90 days). **Note**: To disable the soft delete policy on a bucket, This field must be set to 0.
822
+ """
823
+ return pulumi.get(self, "retention_duration_seconds")
824
+
825
+ @retention_duration_seconds.setter
826
+ def retention_duration_seconds(self, value: Optional[pulumi.Input[int]]):
827
+ pulumi.set(self, "retention_duration_seconds", value)
828
+
829
+
790
830
  @pulumi.input_type
791
831
  class BucketVersioningArgs:
792
832
  def __init__(__self__, *,
@@ -1944,34 +1984,27 @@ class TransferJobTransferSpecAwsS3DataSourceAwsAccessKeyArgs:
1944
1984
  @pulumi.input_type
1945
1985
  class TransferJobTransferSpecAzureBlobStorageDataSourceArgs:
1946
1986
  def __init__(__self__, *,
1947
- azure_credentials: pulumi.Input['TransferJobTransferSpecAzureBlobStorageDataSourceAzureCredentialsArgs'],
1948
1987
  container: pulumi.Input[str],
1949
1988
  storage_account: pulumi.Input[str],
1989
+ azure_credentials: Optional[pulumi.Input['TransferJobTransferSpecAzureBlobStorageDataSourceAzureCredentialsArgs']] = None,
1990
+ credentials_secret: Optional[pulumi.Input[str]] = None,
1950
1991
  path: Optional[pulumi.Input[str]] = None):
1951
1992
  """
1952
- :param pulumi.Input['TransferJobTransferSpecAzureBlobStorageDataSourceAzureCredentialsArgs'] azure_credentials: Credentials used to authenticate API requests to Azure block.
1953
1993
  :param pulumi.Input[str] container: The container to transfer from the Azure Storage account.`
1954
1994
  :param pulumi.Input[str] storage_account: The name of the Azure Storage account.
1995
+ :param pulumi.Input['TransferJobTransferSpecAzureBlobStorageDataSourceAzureCredentialsArgs'] azure_credentials: Credentials used to authenticate API requests to Azure block.
1996
+ :param pulumi.Input[str] credentials_secret: Full Resource name of a secret in Secret Manager containing [SAS Credentials in JSON form](https://cloud.google.com/storage-transfer/docs/reference/rest/v1/TransferSpec#azureblobstoragedata:~:text=begin%!w(MISSING)ith%!a(MISSING)%27/%!-(MISSING),credentialsSecret,-string). Service Agent for Storage Transfer must have permissions to access secret. If credentials_secret is specified, do not specify azure_credentials.`,
1955
1997
  :param pulumi.Input[str] path: Root path to transfer objects. Must be an empty string or full path name that ends with a '/'. This field is treated as an object prefix. As such, it should generally not begin with a '/'.
1956
1998
  """
1957
- pulumi.set(__self__, "azure_credentials", azure_credentials)
1958
1999
  pulumi.set(__self__, "container", container)
1959
2000
  pulumi.set(__self__, "storage_account", storage_account)
2001
+ if azure_credentials is not None:
2002
+ pulumi.set(__self__, "azure_credentials", azure_credentials)
2003
+ if credentials_secret is not None:
2004
+ pulumi.set(__self__, "credentials_secret", credentials_secret)
1960
2005
  if path is not None:
1961
2006
  pulumi.set(__self__, "path", path)
1962
2007
 
1963
- @property
1964
- @pulumi.getter(name="azureCredentials")
1965
- def azure_credentials(self) -> pulumi.Input['TransferJobTransferSpecAzureBlobStorageDataSourceAzureCredentialsArgs']:
1966
- """
1967
- Credentials used to authenticate API requests to Azure block.
1968
- """
1969
- return pulumi.get(self, "azure_credentials")
1970
-
1971
- @azure_credentials.setter
1972
- def azure_credentials(self, value: pulumi.Input['TransferJobTransferSpecAzureBlobStorageDataSourceAzureCredentialsArgs']):
1973
- pulumi.set(self, "azure_credentials", value)
1974
-
1975
2008
  @property
1976
2009
  @pulumi.getter
1977
2010
  def container(self) -> pulumi.Input[str]:
@@ -1996,6 +2029,30 @@ class TransferJobTransferSpecAzureBlobStorageDataSourceArgs:
1996
2029
  def storage_account(self, value: pulumi.Input[str]):
1997
2030
  pulumi.set(self, "storage_account", value)
1998
2031
 
2032
+ @property
2033
+ @pulumi.getter(name="azureCredentials")
2034
+ def azure_credentials(self) -> Optional[pulumi.Input['TransferJobTransferSpecAzureBlobStorageDataSourceAzureCredentialsArgs']]:
2035
+ """
2036
+ Credentials used to authenticate API requests to Azure block.
2037
+ """
2038
+ return pulumi.get(self, "azure_credentials")
2039
+
2040
+ @azure_credentials.setter
2041
+ def azure_credentials(self, value: Optional[pulumi.Input['TransferJobTransferSpecAzureBlobStorageDataSourceAzureCredentialsArgs']]):
2042
+ pulumi.set(self, "azure_credentials", value)
2043
+
2044
+ @property
2045
+ @pulumi.getter(name="credentialsSecret")
2046
+ def credentials_secret(self) -> Optional[pulumi.Input[str]]:
2047
+ """
2048
+ Full Resource name of a secret in Secret Manager containing [SAS Credentials in JSON form](https://cloud.google.com/storage-transfer/docs/reference/rest/v1/TransferSpec#azureblobstoragedata:~:text=begin%!w(MISSING)ith%!a(MISSING)%27/%!-(MISSING),credentialsSecret,-string). Service Agent for Storage Transfer must have permissions to access secret. If credentials_secret is specified, do not specify azure_credentials.`,
2049
+ """
2050
+ return pulumi.get(self, "credentials_secret")
2051
+
2052
+ @credentials_secret.setter
2053
+ def credentials_secret(self, value: Optional[pulumi.Input[str]]):
2054
+ pulumi.set(self, "credentials_secret", value)
2055
+
1999
2056
  @property
2000
2057
  @pulumi.getter
2001
2058
  def path(self) -> Optional[pulumi.Input[str]]:
@@ -33,6 +33,7 @@ class BucketArgs:
33
33
  requester_pays: Optional[pulumi.Input[bool]] = None,
34
34
  retention_policy: Optional[pulumi.Input['BucketRetentionPolicyArgs']] = None,
35
35
  rpo: Optional[pulumi.Input[str]] = None,
36
+ soft_delete_policy: Optional[pulumi.Input['BucketSoftDeletePolicyArgs']] = None,
36
37
  storage_class: Optional[pulumi.Input[str]] = None,
37
38
  uniform_bucket_level_access: Optional[pulumi.Input[bool]] = None,
38
39
  versioning: Optional[pulumi.Input['BucketVersioningArgs']] = None,
@@ -61,6 +62,8 @@ class BucketArgs:
61
62
  :param pulumi.Input[bool] requester_pays: Enables [Requester Pays](https://cloud.google.com/storage/docs/requester-pays) on a storage bucket.
62
63
  :param pulumi.Input['BucketRetentionPolicyArgs'] retention_policy: Configuration of the bucket's data retention policy for how long objects in the bucket should be retained. Structure is documented below.
63
64
  :param pulumi.Input[str] rpo: The recovery point objective for cross-region replication of the bucket. Applicable only for dual and multi-region buckets. `"DEFAULT"` sets default replication. `"ASYNC_TURBO"` value enables turbo replication, valid for dual-region buckets only. See [Turbo Replication](https://cloud.google.com/storage/docs/managing-turbo-replication) for more information. If rpo is not specified at bucket creation, it defaults to `"DEFAULT"` for dual and multi-region buckets. **NOTE** If used with single-region bucket, It will throw an error.
65
+ :param pulumi.Input['BucketSoftDeletePolicyArgs'] soft_delete_policy: The bucket's soft delete policy, which defines the period of time that soft-deleted objects will be retained, and cannot
66
+ be permanently deleted. If it is not provided, by default Google Cloud Storage sets this to default soft delete policy
64
67
  :param pulumi.Input[str] storage_class: The [Storage Class](https://cloud.google.com/storage/docs/storage-classes) of the new bucket. Supported values include: `STANDARD`, `MULTI_REGIONAL`, `REGIONAL`, `NEARLINE`, `COLDLINE`, `ARCHIVE`.
65
68
  :param pulumi.Input[bool] uniform_bucket_level_access: Enables [Uniform bucket-level access](https://cloud.google.com/storage/docs/uniform-bucket-level-access) access to a bucket.
66
69
  :param pulumi.Input['BucketVersioningArgs'] versioning: The bucket's [Versioning](https://cloud.google.com/storage/docs/object-versioning) configuration. Structure is documented below.
@@ -99,6 +102,8 @@ class BucketArgs:
99
102
  pulumi.set(__self__, "retention_policy", retention_policy)
100
103
  if rpo is not None:
101
104
  pulumi.set(__self__, "rpo", rpo)
105
+ if soft_delete_policy is not None:
106
+ pulumi.set(__self__, "soft_delete_policy", soft_delete_policy)
102
107
  if storage_class is not None:
103
108
  pulumi.set(__self__, "storage_class", storage_class)
104
109
  if uniform_bucket_level_access is not None:
@@ -317,6 +322,19 @@ class BucketArgs:
317
322
  def rpo(self, value: Optional[pulumi.Input[str]]):
318
323
  pulumi.set(self, "rpo", value)
319
324
 
325
+ @property
326
+ @pulumi.getter(name="softDeletePolicy")
327
+ def soft_delete_policy(self) -> Optional[pulumi.Input['BucketSoftDeletePolicyArgs']]:
328
+ """
329
+ The bucket's soft delete policy, which defines the period of time that soft-deleted objects will be retained, and cannot
330
+ be permanently deleted. If it is not provided, by default Google Cloud Storage sets this to default soft delete policy
331
+ """
332
+ return pulumi.get(self, "soft_delete_policy")
333
+
334
+ @soft_delete_policy.setter
335
+ def soft_delete_policy(self, value: Optional[pulumi.Input['BucketSoftDeletePolicyArgs']]):
336
+ pulumi.set(self, "soft_delete_policy", value)
337
+
320
338
  @property
321
339
  @pulumi.getter(name="storageClass")
322
340
  def storage_class(self) -> Optional[pulumi.Input[str]]:
@@ -389,6 +407,7 @@ class _BucketState:
389
407
  retention_policy: Optional[pulumi.Input['BucketRetentionPolicyArgs']] = None,
390
408
  rpo: Optional[pulumi.Input[str]] = None,
391
409
  self_link: Optional[pulumi.Input[str]] = None,
410
+ soft_delete_policy: Optional[pulumi.Input['BucketSoftDeletePolicyArgs']] = None,
392
411
  storage_class: Optional[pulumi.Input[str]] = None,
393
412
  uniform_bucket_level_access: Optional[pulumi.Input[bool]] = None,
394
413
  url: Optional[pulumi.Input[str]] = None,
@@ -422,6 +441,8 @@ class _BucketState:
422
441
  :param pulumi.Input['BucketRetentionPolicyArgs'] retention_policy: Configuration of the bucket's data retention policy for how long objects in the bucket should be retained. Structure is documented below.
423
442
  :param pulumi.Input[str] rpo: The recovery point objective for cross-region replication of the bucket. Applicable only for dual and multi-region buckets. `"DEFAULT"` sets default replication. `"ASYNC_TURBO"` value enables turbo replication, valid for dual-region buckets only. See [Turbo Replication](https://cloud.google.com/storage/docs/managing-turbo-replication) for more information. If rpo is not specified at bucket creation, it defaults to `"DEFAULT"` for dual and multi-region buckets. **NOTE** If used with single-region bucket, It will throw an error.
424
443
  :param pulumi.Input[str] self_link: The URI of the created resource.
444
+ :param pulumi.Input['BucketSoftDeletePolicyArgs'] soft_delete_policy: The bucket's soft delete policy, which defines the period of time that soft-deleted objects will be retained, and cannot
445
+ be permanently deleted. If it is not provided, by default Google Cloud Storage sets this to default soft delete policy
425
446
  :param pulumi.Input[str] storage_class: The [Storage Class](https://cloud.google.com/storage/docs/storage-classes) of the new bucket. Supported values include: `STANDARD`, `MULTI_REGIONAL`, `REGIONAL`, `NEARLINE`, `COLDLINE`, `ARCHIVE`.
426
447
  :param pulumi.Input[bool] uniform_bucket_level_access: Enables [Uniform bucket-level access](https://cloud.google.com/storage/docs/uniform-bucket-level-access) access to a bucket.
427
448
  :param pulumi.Input[str] url: The base URL of the bucket, in the format `gs://<bucket-name>`.
@@ -468,6 +489,8 @@ class _BucketState:
468
489
  pulumi.set(__self__, "rpo", rpo)
469
490
  if self_link is not None:
470
491
  pulumi.set(__self__, "self_link", self_link)
492
+ if soft_delete_policy is not None:
493
+ pulumi.set(__self__, "soft_delete_policy", soft_delete_policy)
471
494
  if storage_class is not None:
472
495
  pulumi.set(__self__, "storage_class", storage_class)
473
496
  if uniform_bucket_level_access is not None:
@@ -725,6 +748,19 @@ class _BucketState:
725
748
  def self_link(self, value: Optional[pulumi.Input[str]]):
726
749
  pulumi.set(self, "self_link", value)
727
750
 
751
+ @property
752
+ @pulumi.getter(name="softDeletePolicy")
753
+ def soft_delete_policy(self) -> Optional[pulumi.Input['BucketSoftDeletePolicyArgs']]:
754
+ """
755
+ The bucket's soft delete policy, which defines the period of time that soft-deleted objects will be retained, and cannot
756
+ be permanently deleted. If it is not provided, by default Google Cloud Storage sets this to default soft delete policy
757
+ """
758
+ return pulumi.get(self, "soft_delete_policy")
759
+
760
+ @soft_delete_policy.setter
761
+ def soft_delete_policy(self, value: Optional[pulumi.Input['BucketSoftDeletePolicyArgs']]):
762
+ pulumi.set(self, "soft_delete_policy", value)
763
+
728
764
  @property
729
765
  @pulumi.getter(name="storageClass")
730
766
  def storage_class(self) -> Optional[pulumi.Input[str]]:
@@ -808,6 +844,7 @@ class Bucket(pulumi.CustomResource):
808
844
  requester_pays: Optional[pulumi.Input[bool]] = None,
809
845
  retention_policy: Optional[pulumi.Input[pulumi.InputType['BucketRetentionPolicyArgs']]] = None,
810
846
  rpo: Optional[pulumi.Input[str]] = None,
847
+ soft_delete_policy: Optional[pulumi.Input[pulumi.InputType['BucketSoftDeletePolicyArgs']]] = None,
811
848
  storage_class: Optional[pulumi.Input[str]] = None,
812
849
  uniform_bucket_level_access: Optional[pulumi.Input[bool]] = None,
813
850
  versioning: Optional[pulumi.Input[pulumi.InputType['BucketVersioningArgs']]] = None,
@@ -959,6 +996,8 @@ class Bucket(pulumi.CustomResource):
959
996
  :param pulumi.Input[bool] requester_pays: Enables [Requester Pays](https://cloud.google.com/storage/docs/requester-pays) on a storage bucket.
960
997
  :param pulumi.Input[pulumi.InputType['BucketRetentionPolicyArgs']] retention_policy: Configuration of the bucket's data retention policy for how long objects in the bucket should be retained. Structure is documented below.
961
998
  :param pulumi.Input[str] rpo: The recovery point objective for cross-region replication of the bucket. Applicable only for dual and multi-region buckets. `"DEFAULT"` sets default replication. `"ASYNC_TURBO"` value enables turbo replication, valid for dual-region buckets only. See [Turbo Replication](https://cloud.google.com/storage/docs/managing-turbo-replication) for more information. If rpo is not specified at bucket creation, it defaults to `"DEFAULT"` for dual and multi-region buckets. **NOTE** If used with single-region bucket, It will throw an error.
999
+ :param pulumi.Input[pulumi.InputType['BucketSoftDeletePolicyArgs']] soft_delete_policy: The bucket's soft delete policy, which defines the period of time that soft-deleted objects will be retained, and cannot
1000
+ be permanently deleted. If it is not provided, by default Google Cloud Storage sets this to default soft delete policy
962
1001
  :param pulumi.Input[str] storage_class: The [Storage Class](https://cloud.google.com/storage/docs/storage-classes) of the new bucket. Supported values include: `STANDARD`, `MULTI_REGIONAL`, `REGIONAL`, `NEARLINE`, `COLDLINE`, `ARCHIVE`.
963
1002
  :param pulumi.Input[bool] uniform_bucket_level_access: Enables [Uniform bucket-level access](https://cloud.google.com/storage/docs/uniform-bucket-level-access) access to a bucket.
964
1003
  :param pulumi.Input[pulumi.InputType['BucketVersioningArgs']] versioning: The bucket's [Versioning](https://cloud.google.com/storage/docs/object-versioning) configuration. Structure is documented below.
@@ -1124,6 +1163,7 @@ class Bucket(pulumi.CustomResource):
1124
1163
  requester_pays: Optional[pulumi.Input[bool]] = None,
1125
1164
  retention_policy: Optional[pulumi.Input[pulumi.InputType['BucketRetentionPolicyArgs']]] = None,
1126
1165
  rpo: Optional[pulumi.Input[str]] = None,
1166
+ soft_delete_policy: Optional[pulumi.Input[pulumi.InputType['BucketSoftDeletePolicyArgs']]] = None,
1127
1167
  storage_class: Optional[pulumi.Input[str]] = None,
1128
1168
  uniform_bucket_level_access: Optional[pulumi.Input[bool]] = None,
1129
1169
  versioning: Optional[pulumi.Input[pulumi.InputType['BucketVersioningArgs']]] = None,
@@ -1156,6 +1196,7 @@ class Bucket(pulumi.CustomResource):
1156
1196
  __props__.__dict__["requester_pays"] = requester_pays
1157
1197
  __props__.__dict__["retention_policy"] = retention_policy
1158
1198
  __props__.__dict__["rpo"] = rpo
1199
+ __props__.__dict__["soft_delete_policy"] = soft_delete_policy
1159
1200
  __props__.__dict__["storage_class"] = storage_class
1160
1201
  __props__.__dict__["uniform_bucket_level_access"] = uniform_bucket_level_access
1161
1202
  __props__.__dict__["versioning"] = versioning
@@ -1196,6 +1237,7 @@ class Bucket(pulumi.CustomResource):
1196
1237
  retention_policy: Optional[pulumi.Input[pulumi.InputType['BucketRetentionPolicyArgs']]] = None,
1197
1238
  rpo: Optional[pulumi.Input[str]] = None,
1198
1239
  self_link: Optional[pulumi.Input[str]] = None,
1240
+ soft_delete_policy: Optional[pulumi.Input[pulumi.InputType['BucketSoftDeletePolicyArgs']]] = None,
1199
1241
  storage_class: Optional[pulumi.Input[str]] = None,
1200
1242
  uniform_bucket_level_access: Optional[pulumi.Input[bool]] = None,
1201
1243
  url: Optional[pulumi.Input[str]] = None,
@@ -1234,6 +1276,8 @@ class Bucket(pulumi.CustomResource):
1234
1276
  :param pulumi.Input[pulumi.InputType['BucketRetentionPolicyArgs']] retention_policy: Configuration of the bucket's data retention policy for how long objects in the bucket should be retained. Structure is documented below.
1235
1277
  :param pulumi.Input[str] rpo: The recovery point objective for cross-region replication of the bucket. Applicable only for dual and multi-region buckets. `"DEFAULT"` sets default replication. `"ASYNC_TURBO"` value enables turbo replication, valid for dual-region buckets only. See [Turbo Replication](https://cloud.google.com/storage/docs/managing-turbo-replication) for more information. If rpo is not specified at bucket creation, it defaults to `"DEFAULT"` for dual and multi-region buckets. **NOTE** If used with single-region bucket, It will throw an error.
1236
1278
  :param pulumi.Input[str] self_link: The URI of the created resource.
1279
+ :param pulumi.Input[pulumi.InputType['BucketSoftDeletePolicyArgs']] soft_delete_policy: The bucket's soft delete policy, which defines the period of time that soft-deleted objects will be retained, and cannot
1280
+ be permanently deleted. If it is not provided, by default Google Cloud Storage sets this to default soft delete policy
1237
1281
  :param pulumi.Input[str] storage_class: The [Storage Class](https://cloud.google.com/storage/docs/storage-classes) of the new bucket. Supported values include: `STANDARD`, `MULTI_REGIONAL`, `REGIONAL`, `NEARLINE`, `COLDLINE`, `ARCHIVE`.
1238
1282
  :param pulumi.Input[bool] uniform_bucket_level_access: Enables [Uniform bucket-level access](https://cloud.google.com/storage/docs/uniform-bucket-level-access) access to a bucket.
1239
1283
  :param pulumi.Input[str] url: The base URL of the bucket, in the format `gs://<bucket-name>`.
@@ -1264,6 +1308,7 @@ class Bucket(pulumi.CustomResource):
1264
1308
  __props__.__dict__["retention_policy"] = retention_policy
1265
1309
  __props__.__dict__["rpo"] = rpo
1266
1310
  __props__.__dict__["self_link"] = self_link
1311
+ __props__.__dict__["soft_delete_policy"] = soft_delete_policy
1267
1312
  __props__.__dict__["storage_class"] = storage_class
1268
1313
  __props__.__dict__["uniform_bucket_level_access"] = uniform_bucket_level_access
1269
1314
  __props__.__dict__["url"] = url
@@ -1437,6 +1482,15 @@ class Bucket(pulumi.CustomResource):
1437
1482
  """
1438
1483
  return pulumi.get(self, "self_link")
1439
1484
 
1485
+ @property
1486
+ @pulumi.getter(name="softDeletePolicy")
1487
+ def soft_delete_policy(self) -> pulumi.Output['outputs.BucketSoftDeletePolicy']:
1488
+ """
1489
+ The bucket's soft delete policy, which defines the period of time that soft-deleted objects will be retained, and cannot
1490
+ be permanently deleted. If it is not provided, by default Google Cloud Storage sets this to default soft delete policy
1491
+ """
1492
+ return pulumi.get(self, "soft_delete_policy")
1493
+
1440
1494
  @property
1441
1495
  @pulumi.getter(name="storageClass")
1442
1496
  def storage_class(self) -> pulumi.Output[Optional[str]]:
@@ -22,7 +22,7 @@ class GetBucketResult:
22
22
  """
23
23
  A collection of values returned by getBucket.
24
24
  """
25
- def __init__(__self__, autoclasses=None, cors=None, custom_placement_configs=None, default_event_based_hold=None, effective_labels=None, enable_object_retention=None, encryptions=None, force_destroy=None, id=None, labels=None, lifecycle_rules=None, location=None, loggings=None, name=None, project=None, public_access_prevention=None, pulumi_labels=None, requester_pays=None, retention_policies=None, rpo=None, self_link=None, storage_class=None, uniform_bucket_level_access=None, url=None, versionings=None, websites=None):
25
+ def __init__(__self__, autoclasses=None, cors=None, custom_placement_configs=None, default_event_based_hold=None, effective_labels=None, enable_object_retention=None, encryptions=None, force_destroy=None, id=None, labels=None, lifecycle_rules=None, location=None, loggings=None, name=None, project=None, public_access_prevention=None, pulumi_labels=None, requester_pays=None, retention_policies=None, rpo=None, self_link=None, soft_delete_policies=None, storage_class=None, uniform_bucket_level_access=None, url=None, versionings=None, websites=None):
26
26
  if autoclasses and not isinstance(autoclasses, list):
27
27
  raise TypeError("Expected argument 'autoclasses' to be a list")
28
28
  pulumi.set(__self__, "autoclasses", autoclasses)
@@ -86,6 +86,9 @@ class GetBucketResult:
86
86
  if self_link and not isinstance(self_link, str):
87
87
  raise TypeError("Expected argument 'self_link' to be a str")
88
88
  pulumi.set(__self__, "self_link", self_link)
89
+ if soft_delete_policies and not isinstance(soft_delete_policies, list):
90
+ raise TypeError("Expected argument 'soft_delete_policies' to be a list")
91
+ pulumi.set(__self__, "soft_delete_policies", soft_delete_policies)
89
92
  if storage_class and not isinstance(storage_class, str):
90
93
  raise TypeError("Expected argument 'storage_class' to be a str")
91
94
  pulumi.set(__self__, "storage_class", storage_class)
@@ -210,6 +213,11 @@ class GetBucketResult:
210
213
  def self_link(self) -> str:
211
214
  return pulumi.get(self, "self_link")
212
215
 
216
+ @property
217
+ @pulumi.getter(name="softDeletePolicies")
218
+ def soft_delete_policies(self) -> Sequence['outputs.GetBucketSoftDeletePolicyResult']:
219
+ return pulumi.get(self, "soft_delete_policies")
220
+
213
221
  @property
214
222
  @pulumi.getter(name="storageClass")
215
223
  def storage_class(self) -> str:
@@ -263,6 +271,7 @@ class AwaitableGetBucketResult(GetBucketResult):
263
271
  retention_policies=self.retention_policies,
264
272
  rpo=self.rpo,
265
273
  self_link=self.self_link,
274
+ soft_delete_policies=self.soft_delete_policies,
266
275
  storage_class=self.storage_class,
267
276
  uniform_bucket_level_access=self.uniform_bucket_level_access,
268
277
  url=self.url,
@@ -319,6 +328,7 @@ def get_bucket(name: Optional[str] = None,
319
328
  retention_policies=pulumi.get(__ret__, 'retention_policies'),
320
329
  rpo=pulumi.get(__ret__, 'rpo'),
321
330
  self_link=pulumi.get(__ret__, 'self_link'),
331
+ soft_delete_policies=pulumi.get(__ret__, 'soft_delete_policies'),
322
332
  storage_class=pulumi.get(__ret__, 'storage_class'),
323
333
  uniform_bucket_level_access=pulumi.get(__ret__, 'uniform_bucket_level_access'),
324
334
  url=pulumi.get(__ret__, 'url'),