pulumi-gcp 7.7.1__py3-none-any.whl → 7.8.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 (37) hide show
  1. pulumi_gcp/__init__.py +43 -0
  2. pulumi_gcp/alloydb/instance.py +1 -1
  3. pulumi_gcp/blockchainnodeengine/__init__.py +10 -0
  4. pulumi_gcp/blockchainnodeengine/_inputs.py +388 -0
  5. pulumi_gcp/blockchainnodeengine/blockchain_nodes.py +791 -0
  6. pulumi_gcp/blockchainnodeengine/outputs.py +441 -0
  7. pulumi_gcp/compute/__init__.py +2 -0
  8. pulumi_gcp/compute/disk.py +28 -0
  9. pulumi_gcp/compute/get_disk.py +11 -1
  10. pulumi_gcp/compute/get_instance_group_manager.py +11 -1
  11. pulumi_gcp/compute/get_machine_types.py +143 -0
  12. pulumi_gcp/compute/instance_group_manager.py +28 -0
  13. pulumi_gcp/compute/interconnect_attachment.py +75 -0
  14. pulumi_gcp/compute/outputs.py +219 -0
  15. pulumi_gcp/compute/region_instance_group_manager.py +28 -0
  16. pulumi_gcp/compute/region_network_endpoint.py +556 -0
  17. pulumi_gcp/compute/region_network_endpoint_group.py +128 -71
  18. pulumi_gcp/config/__init__.pyi +2 -2
  19. pulumi_gcp/config/vars.py +4 -4
  20. pulumi_gcp/discoveryengine/__init__.py +4 -0
  21. pulumi_gcp/discoveryengine/_inputs.py +237 -0
  22. pulumi_gcp/discoveryengine/chat_engine.py +822 -0
  23. pulumi_gcp/discoveryengine/outputs.py +304 -0
  24. pulumi_gcp/discoveryengine/search_engine.py +752 -0
  25. pulumi_gcp/filestore/_inputs.py +1 -3
  26. pulumi_gcp/filestore/outputs.py +1 -3
  27. pulumi_gcp/memcache/instance.py +61 -0
  28. pulumi_gcp/netapp/__init__.py +1 -0
  29. pulumi_gcp/netapp/storage_pool.py +34 -6
  30. pulumi_gcp/netapp/volume.py +65 -2
  31. pulumi_gcp/netapp/volume_snapshot.py +625 -0
  32. pulumi_gcp/provider.py +20 -0
  33. pulumi_gcp/vmwareengine/private_cloud.py +0 -7
  34. {pulumi_gcp-7.7.1.dist-info → pulumi_gcp-7.8.0.dist-info}/METADATA +1 -1
  35. {pulumi_gcp-7.7.1.dist-info → pulumi_gcp-7.8.0.dist-info}/RECORD +37 -26
  36. {pulumi_gcp-7.7.1.dist-info → pulumi_gcp-7.8.0.dist-info}/WHEEL +0 -0
  37. {pulumi_gcp-7.7.1.dist-info → pulumi_gcp-7.8.0.dist-info}/top_level.txt +0 -0
@@ -28,8 +28,7 @@ class InstanceFileSharesArgs:
28
28
  :param pulumi.Input[str] name: The name of the fileshare (16 characters or less)
29
29
  :param pulumi.Input[Sequence[pulumi.Input['InstanceFileSharesNfsExportOptionArgs']]] nfs_export_options: Nfs Export Options. There is a limit of 10 export options per file share.
30
30
  Structure is documented below.
31
- :param pulumi.Input[str] source_backup: (Output)
32
- The resource name of the backup, in the format
31
+ :param pulumi.Input[str] source_backup: The resource name of the backup, in the format
33
32
  projects/{projectId}/locations/{locationId}/backups/{backupId},
34
33
  that this file share has been restored from.
35
34
  """
@@ -82,7 +81,6 @@ class InstanceFileSharesArgs:
82
81
  @pulumi.getter(name="sourceBackup")
83
82
  def source_backup(self) -> Optional[pulumi.Input[str]]:
84
83
  """
85
- (Output)
86
84
  The resource name of the backup, in the format
87
85
  projects/{projectId}/locations/{locationId}/backups/{backupId},
88
86
  that this file share has been restored from.
@@ -53,8 +53,7 @@ class InstanceFileShares(dict):
53
53
  :param str name: The name of the fileshare (16 characters or less)
54
54
  :param Sequence['InstanceFileSharesNfsExportOptionArgs'] nfs_export_options: Nfs Export Options. There is a limit of 10 export options per file share.
55
55
  Structure is documented below.
56
- :param str source_backup: (Output)
57
- The resource name of the backup, in the format
56
+ :param str source_backup: The resource name of the backup, in the format
58
57
  projects/{projectId}/locations/{locationId}/backups/{backupId},
59
58
  that this file share has been restored from.
60
59
  """
@@ -95,7 +94,6 @@ class InstanceFileShares(dict):
95
94
  @pulumi.getter(name="sourceBackup")
96
95
  def source_backup(self) -> Optional[str]:
97
96
  """
98
- (Output)
99
97
  The resource name of the backup, in the format
100
98
  projects/{projectId}/locations/{locationId}/backups/{backupId},
101
99
  that this file share has been restored from.
@@ -27,6 +27,7 @@ class InstanceArgs:
27
27
  name: Optional[pulumi.Input[str]] = None,
28
28
  project: Optional[pulumi.Input[str]] = None,
29
29
  region: Optional[pulumi.Input[str]] = None,
30
+ reserved_ip_range_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
30
31
  zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
31
32
  """
32
33
  The set of arguments for constructing a Instance resource.
@@ -53,6 +54,9 @@ class InstanceArgs:
53
54
  :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
54
55
  If it is not provided, the provider project is used.
55
56
  :param pulumi.Input[str] region: The region of the Memcache instance. If it is not provided, the provider region is used.
57
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] reserved_ip_range_ids: Contains the name of allocated IP address ranges associated with
58
+ the private service access connection for example, "test-default"
59
+ associated with IP range 10.0.0.0/29.
56
60
  :param pulumi.Input[Sequence[pulumi.Input[str]]] zones: Zones where memcache nodes should be provisioned. If not
57
61
  provided, all zones will be used.
58
62
  """
@@ -76,6 +80,8 @@ class InstanceArgs:
76
80
  pulumi.set(__self__, "project", project)
77
81
  if region is not None:
78
82
  pulumi.set(__self__, "region", region)
83
+ if reserved_ip_range_ids is not None:
84
+ pulumi.set(__self__, "reserved_ip_range_ids", reserved_ip_range_ids)
79
85
  if zones is not None:
80
86
  pulumi.set(__self__, "zones", zones)
81
87
 
@@ -223,6 +229,20 @@ class InstanceArgs:
223
229
  def region(self, value: Optional[pulumi.Input[str]]):
224
230
  pulumi.set(self, "region", value)
225
231
 
232
+ @property
233
+ @pulumi.getter(name="reservedIpRangeIds")
234
+ def reserved_ip_range_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
235
+ """
236
+ Contains the name of allocated IP address ranges associated with
237
+ the private service access connection for example, "test-default"
238
+ associated with IP range 10.0.0.0/29.
239
+ """
240
+ return pulumi.get(self, "reserved_ip_range_ids")
241
+
242
+ @reserved_ip_range_ids.setter
243
+ def reserved_ip_range_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
244
+ pulumi.set(self, "reserved_ip_range_ids", value)
245
+
226
246
  @property
227
247
  @pulumi.getter
228
248
  def zones(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
@@ -258,6 +278,7 @@ class _InstanceState:
258
278
  project: Optional[pulumi.Input[str]] = None,
259
279
  pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
260
280
  region: Optional[pulumi.Input[str]] = None,
281
+ reserved_ip_range_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
261
282
  zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
262
283
  """
263
284
  Input properties used for looking up and filtering Instance resources.
@@ -297,6 +318,9 @@ class _InstanceState:
297
318
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource
298
319
  and default labels configured on the provider.
299
320
  :param pulumi.Input[str] region: The region of the Memcache instance. If it is not provided, the provider region is used.
321
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] reserved_ip_range_ids: Contains the name of allocated IP address ranges associated with
322
+ the private service access connection for example, "test-default"
323
+ associated with IP range 10.0.0.0/29.
300
324
  :param pulumi.Input[Sequence[pulumi.Input[str]]] zones: Zones where memcache nodes should be provisioned. If not
301
325
  provided, all zones will be used.
302
326
  """
@@ -336,6 +360,8 @@ class _InstanceState:
336
360
  pulumi.set(__self__, "pulumi_labels", pulumi_labels)
337
361
  if region is not None:
338
362
  pulumi.set(__self__, "region", region)
363
+ if reserved_ip_range_ids is not None:
364
+ pulumi.set(__self__, "reserved_ip_range_ids", reserved_ip_range_ids)
339
365
  if zones is not None:
340
366
  pulumi.set(__self__, "zones", zones)
341
367
 
@@ -573,6 +599,20 @@ class _InstanceState:
573
599
  def region(self, value: Optional[pulumi.Input[str]]):
574
600
  pulumi.set(self, "region", value)
575
601
 
602
+ @property
603
+ @pulumi.getter(name="reservedIpRangeIds")
604
+ def reserved_ip_range_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
605
+ """
606
+ Contains the name of allocated IP address ranges associated with
607
+ the private service access connection for example, "test-default"
608
+ associated with IP range 10.0.0.0/29.
609
+ """
610
+ return pulumi.get(self, "reserved_ip_range_ids")
611
+
612
+ @reserved_ip_range_ids.setter
613
+ def reserved_ip_range_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
614
+ pulumi.set(self, "reserved_ip_range_ids", value)
615
+
576
616
  @property
577
617
  @pulumi.getter
578
618
  def zones(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
@@ -603,6 +643,7 @@ class Instance(pulumi.CustomResource):
603
643
  node_count: Optional[pulumi.Input[int]] = None,
604
644
  project: Optional[pulumi.Input[str]] = None,
605
645
  region: Optional[pulumi.Input[str]] = None,
646
+ reserved_ip_range_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
606
647
  zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
607
648
  __props__=None):
608
649
  """
@@ -709,6 +750,9 @@ class Instance(pulumi.CustomResource):
709
750
  :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
710
751
  If it is not provided, the provider project is used.
711
752
  :param pulumi.Input[str] region: The region of the Memcache instance. If it is not provided, the provider region is used.
753
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] reserved_ip_range_ids: Contains the name of allocated IP address ranges associated with
754
+ the private service access connection for example, "test-default"
755
+ associated with IP range 10.0.0.0/29.
712
756
  :param pulumi.Input[Sequence[pulumi.Input[str]]] zones: Zones where memcache nodes should be provisioned. If not
713
757
  provided, all zones will be used.
714
758
  """
@@ -823,6 +867,7 @@ class Instance(pulumi.CustomResource):
823
867
  node_count: Optional[pulumi.Input[int]] = None,
824
868
  project: Optional[pulumi.Input[str]] = None,
825
869
  region: Optional[pulumi.Input[str]] = None,
870
+ reserved_ip_range_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
826
871
  zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
827
872
  __props__=None):
828
873
  opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
@@ -848,6 +893,7 @@ class Instance(pulumi.CustomResource):
848
893
  __props__.__dict__["node_count"] = node_count
849
894
  __props__.__dict__["project"] = project
850
895
  __props__.__dict__["region"] = region
896
+ __props__.__dict__["reserved_ip_range_ids"] = reserved_ip_range_ids
851
897
  __props__.__dict__["zones"] = zones
852
898
  __props__.__dict__["create_time"] = None
853
899
  __props__.__dict__["discovery_endpoint"] = None
@@ -886,6 +932,7 @@ class Instance(pulumi.CustomResource):
886
932
  project: Optional[pulumi.Input[str]] = None,
887
933
  pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
888
934
  region: Optional[pulumi.Input[str]] = None,
935
+ reserved_ip_range_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
889
936
  zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None) -> 'Instance':
890
937
  """
891
938
  Get an existing Instance resource's state with the given name, id, and optional extra
@@ -930,6 +977,9 @@ class Instance(pulumi.CustomResource):
930
977
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource
931
978
  and default labels configured on the provider.
932
979
  :param pulumi.Input[str] region: The region of the Memcache instance. If it is not provided, the provider region is used.
980
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] reserved_ip_range_ids: Contains the name of allocated IP address ranges associated with
981
+ the private service access connection for example, "test-default"
982
+ associated with IP range 10.0.0.0/29.
933
983
  :param pulumi.Input[Sequence[pulumi.Input[str]]] zones: Zones where memcache nodes should be provisioned. If not
934
984
  provided, all zones will be used.
935
985
  """
@@ -955,6 +1005,7 @@ class Instance(pulumi.CustomResource):
955
1005
  __props__.__dict__["project"] = project
956
1006
  __props__.__dict__["pulumi_labels"] = pulumi_labels
957
1007
  __props__.__dict__["region"] = region
1008
+ __props__.__dict__["reserved_ip_range_ids"] = reserved_ip_range_ids
958
1009
  __props__.__dict__["zones"] = zones
959
1010
  return Instance(resource_name, opts=opts, __props__=__props__)
960
1011
 
@@ -1120,6 +1171,16 @@ class Instance(pulumi.CustomResource):
1120
1171
  """
1121
1172
  return pulumi.get(self, "region")
1122
1173
 
1174
+ @property
1175
+ @pulumi.getter(name="reservedIpRangeIds")
1176
+ def reserved_ip_range_ids(self) -> pulumi.Output[Optional[Sequence[str]]]:
1177
+ """
1178
+ Contains the name of allocated IP address ranges associated with
1179
+ the private service access connection for example, "test-default"
1180
+ associated with IP range 10.0.0.0/29.
1181
+ """
1182
+ return pulumi.get(self, "reserved_ip_range_ids")
1183
+
1123
1184
  @property
1124
1185
  @pulumi.getter
1125
1186
  def zones(self) -> pulumi.Output[Sequence[str]]:
@@ -11,5 +11,6 @@ from .backup_vault import *
11
11
  from .kmsconfig import *
12
12
  from .storage_pool import *
13
13
  from .volume import *
14
+ from .volume_snapshot import *
14
15
  from ._inputs import *
15
16
  from . import outputs
@@ -527,7 +527,9 @@ class StoragePool(pulumi.CustomResource):
527
527
  * LDAP use for NFS volumes, if applicable
528
528
  * Customer-managed encryption key (CMEK) policy
529
529
 
530
- The capacity of the pool can be split up and assigned to volumes within the pool. Storage pools are a billable component of NetApp Volumes. Billing is based on the location, service level, and capacity allocated to a pool independent of consumption at the volume level.
530
+ The capacity of the pool can be split up and assigned to volumes within the pool. Storage pools are a billable
531
+ component of NetApp Volumes. Billing is based on the location, service level, and capacity allocated to a pool
532
+ independent of consumption at the volume level.
531
533
 
532
534
  To get more information about storagePool, see:
533
535
 
@@ -542,18 +544,30 @@ class StoragePool(pulumi.CustomResource):
542
544
  import pulumi
543
545
  import pulumi_gcp as gcp
544
546
 
547
+ # Create a network or use datasource to reference existing network
545
548
  peering_network = gcp.compute.Network("peeringNetwork")
546
- # Create an IP address
549
+ # Reserve a CIDR for NetApp Volumes to use
550
+ # When using shared-VPCs, this resource needs to be created in host project
547
551
  private_ip_alloc = gcp.compute.GlobalAddress("privateIpAlloc",
548
552
  purpose="VPC_PEERING",
549
553
  address_type="INTERNAL",
550
554
  prefix_length=16,
551
555
  network=peering_network.id)
552
- # Create a private connection
556
+ # Create a Private Service Access connection
557
+ # When using shared-VPCs, this resource needs to be created in host project
553
558
  default = gcp.servicenetworking.Connection("default",
554
559
  network=peering_network.id,
555
560
  service="netapp.servicenetworking.goog",
556
561
  reserved_peering_ranges=[private_ip_alloc.name])
562
+ # Modify the PSA Connection to allow import/export of custom routes
563
+ # When using shared-VPCs, this resource needs to be created in host project
564
+ route_updates = gcp.compute.NetworkPeeringRoutesConfig("routeUpdates",
565
+ peering=default.peering,
566
+ network=peering_network.name,
567
+ import_custom_routes=True,
568
+ export_custom_routes=True)
569
+ # Create a storage pool
570
+ # Create this resource in the project which is expected to own the volumes
557
571
  test_pool = gcp.netapp.StoragePool("testPool",
558
572
  location="us-central1",
559
573
  service_level="PREMIUM",
@@ -617,7 +631,9 @@ class StoragePool(pulumi.CustomResource):
617
631
  * LDAP use for NFS volumes, if applicable
618
632
  * Customer-managed encryption key (CMEK) policy
619
633
 
620
- The capacity of the pool can be split up and assigned to volumes within the pool. Storage pools are a billable component of NetApp Volumes. Billing is based on the location, service level, and capacity allocated to a pool independent of consumption at the volume level.
634
+ The capacity of the pool can be split up and assigned to volumes within the pool. Storage pools are a billable
635
+ component of NetApp Volumes. Billing is based on the location, service level, and capacity allocated to a pool
636
+ independent of consumption at the volume level.
621
637
 
622
638
  To get more information about storagePool, see:
623
639
 
@@ -632,18 +648,30 @@ class StoragePool(pulumi.CustomResource):
632
648
  import pulumi
633
649
  import pulumi_gcp as gcp
634
650
 
651
+ # Create a network or use datasource to reference existing network
635
652
  peering_network = gcp.compute.Network("peeringNetwork")
636
- # Create an IP address
653
+ # Reserve a CIDR for NetApp Volumes to use
654
+ # When using shared-VPCs, this resource needs to be created in host project
637
655
  private_ip_alloc = gcp.compute.GlobalAddress("privateIpAlloc",
638
656
  purpose="VPC_PEERING",
639
657
  address_type="INTERNAL",
640
658
  prefix_length=16,
641
659
  network=peering_network.id)
642
- # Create a private connection
660
+ # Create a Private Service Access connection
661
+ # When using shared-VPCs, this resource needs to be created in host project
643
662
  default = gcp.servicenetworking.Connection("default",
644
663
  network=peering_network.id,
645
664
  service="netapp.servicenetworking.goog",
646
665
  reserved_peering_ranges=[private_ip_alloc.name])
666
+ # Modify the PSA Connection to allow import/export of custom routes
667
+ # When using shared-VPCs, this resource needs to be created in host project
668
+ route_updates = gcp.compute.NetworkPeeringRoutesConfig("routeUpdates",
669
+ peering=default.peering,
670
+ network=peering_network.name,
671
+ import_custom_routes=True,
672
+ export_custom_routes=True)
673
+ # Create a storage pool
674
+ # Create this resource in the project which is expected to own the volumes
647
675
  test_pool = gcp.netapp.StoragePool("testPool",
648
676
  location="us-central1",
649
677
  service_level="PREMIUM",
@@ -21,6 +21,7 @@ class VolumeArgs:
21
21
  protocols: pulumi.Input[Sequence[pulumi.Input[str]]],
22
22
  share_name: pulumi.Input[str],
23
23
  storage_pool: pulumi.Input[str],
24
+ deletion_policy: Optional[pulumi.Input[str]] = None,
24
25
  description: Optional[pulumi.Input[str]] = None,
25
26
  export_policy: Optional[pulumi.Input['VolumeExportPolicyArgs']] = None,
26
27
  kerberos_enabled: Optional[pulumi.Input[bool]] = None,
@@ -41,6 +42,9 @@ class VolumeArgs:
41
42
  Each value may be one of: `NFSV3`, `NFSV4`, `SMB`.
42
43
  :param pulumi.Input[str] share_name: Share name (SMB) or export path (NFS) of the volume. Needs to be unique per location.
43
44
  :param pulumi.Input[str] storage_pool: Name of the storage pool to create the volume in. Pool needs enough spare capacity to accomodate the volume.
45
+ :param pulumi.Input[str] deletion_policy: Policy to determine if the volume should be deleted forcefully.
46
+ Volumes may have nested snapshot resources. Deleting such a volume will fail.
47
+ Setting this parameter to FORCE will delete volumes including nested snapshots.
44
48
  :param pulumi.Input[str] description: An optional description of this resource.
45
49
  :param pulumi.Input['VolumeExportPolicyArgs'] export_policy: Export policy of the volume for NFSV3 and/or NFSV4.1 access.
46
50
  Structure is documented below.
@@ -73,6 +77,8 @@ class VolumeArgs:
73
77
  pulumi.set(__self__, "protocols", protocols)
74
78
  pulumi.set(__self__, "share_name", share_name)
75
79
  pulumi.set(__self__, "storage_pool", storage_pool)
80
+ if deletion_policy is not None:
81
+ pulumi.set(__self__, "deletion_policy", deletion_policy)
76
82
  if description is not None:
77
83
  pulumi.set(__self__, "description", description)
78
84
  if export_policy is not None:
@@ -159,6 +165,20 @@ class VolumeArgs:
159
165
  def storage_pool(self, value: pulumi.Input[str]):
160
166
  pulumi.set(self, "storage_pool", value)
161
167
 
168
+ @property
169
+ @pulumi.getter(name="deletionPolicy")
170
+ def deletion_policy(self) -> Optional[pulumi.Input[str]]:
171
+ """
172
+ Policy to determine if the volume should be deleted forcefully.
173
+ Volumes may have nested snapshot resources. Deleting such a volume will fail.
174
+ Setting this parameter to FORCE will delete volumes including nested snapshots.
175
+ """
176
+ return pulumi.get(self, "deletion_policy")
177
+
178
+ @deletion_policy.setter
179
+ def deletion_policy(self, value: Optional[pulumi.Input[str]]):
180
+ pulumi.set(self, "deletion_policy", value)
181
+
162
182
  @property
163
183
  @pulumi.getter
164
184
  def description(self) -> Optional[pulumi.Input[str]]:
@@ -323,6 +343,7 @@ class _VolumeState:
323
343
  def __init__(__self__, *,
324
344
  active_directory: Optional[pulumi.Input[str]] = None,
325
345
  capacity_gib: Optional[pulumi.Input[str]] = None,
346
+ deletion_policy: Optional[pulumi.Input[str]] = None,
326
347
  description: Optional[pulumi.Input[str]] = None,
327
348
  effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
328
349
  encryption_type: Optional[pulumi.Input[str]] = None,
@@ -354,6 +375,9 @@ class _VolumeState:
354
375
  Input properties used for looking up and filtering Volume resources.
355
376
  :param pulumi.Input[str] active_directory: Reports the resource name of the Active Directory policy being used. Inherited from storage pool.
356
377
  :param pulumi.Input[str] capacity_gib: Capacity of the volume (in GiB).
378
+ :param pulumi.Input[str] deletion_policy: Policy to determine if the volume should be deleted forcefully.
379
+ Volumes may have nested snapshot resources. Deleting such a volume will fail.
380
+ Setting this parameter to FORCE will delete volumes including nested snapshots.
357
381
  :param pulumi.Input[str] description: An optional description of this resource.
358
382
  :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.
359
383
  :param pulumi.Input[str] encryption_type: Reports the data-at-rest encryption type of the volume. Inherited from storage pool.
@@ -403,6 +427,8 @@ class _VolumeState:
403
427
  pulumi.set(__self__, "active_directory", active_directory)
404
428
  if capacity_gib is not None:
405
429
  pulumi.set(__self__, "capacity_gib", capacity_gib)
430
+ if deletion_policy is not None:
431
+ pulumi.set(__self__, "deletion_policy", deletion_policy)
406
432
  if description is not None:
407
433
  pulumi.set(__self__, "description", description)
408
434
  if effective_labels is not None:
@@ -482,6 +508,20 @@ class _VolumeState:
482
508
  def capacity_gib(self, value: Optional[pulumi.Input[str]]):
483
509
  pulumi.set(self, "capacity_gib", value)
484
510
 
511
+ @property
512
+ @pulumi.getter(name="deletionPolicy")
513
+ def deletion_policy(self) -> Optional[pulumi.Input[str]]:
514
+ """
515
+ Policy to determine if the volume should be deleted forcefully.
516
+ Volumes may have nested snapshot resources. Deleting such a volume will fail.
517
+ Setting this parameter to FORCE will delete volumes including nested snapshots.
518
+ """
519
+ return pulumi.get(self, "deletion_policy")
520
+
521
+ @deletion_policy.setter
522
+ def deletion_policy(self, value: Optional[pulumi.Input[str]]):
523
+ pulumi.set(self, "deletion_policy", value)
524
+
485
525
  @property
486
526
  @pulumi.getter
487
527
  def description(self) -> Optional[pulumi.Input[str]]:
@@ -830,6 +870,7 @@ class Volume(pulumi.CustomResource):
830
870
  resource_name: str,
831
871
  opts: Optional[pulumi.ResourceOptions] = None,
832
872
  capacity_gib: Optional[pulumi.Input[str]] = None,
873
+ deletion_policy: Optional[pulumi.Input[str]] = None,
833
874
  description: Optional[pulumi.Input[str]] = None,
834
875
  export_policy: Optional[pulumi.Input[pulumi.InputType['VolumeExportPolicyArgs']]] = None,
835
876
  kerberos_enabled: Optional[pulumi.Input[bool]] = None,
@@ -879,7 +920,8 @@ class Volume(pulumi.CustomResource):
879
920
  capacity_gib="100",
880
921
  share_name="test-volume",
881
922
  storage_pool=default_storage_pool.name,
882
- protocols=["NFSV3"])
923
+ protocols=["NFSV3"],
924
+ deletion_policy="DEFAULT")
883
925
  ```
884
926
 
885
927
  ## Import
@@ -901,6 +943,9 @@ class Volume(pulumi.CustomResource):
901
943
  :param str resource_name: The name of the resource.
902
944
  :param pulumi.ResourceOptions opts: Options for the resource.
903
945
  :param pulumi.Input[str] capacity_gib: Capacity of the volume (in GiB).
946
+ :param pulumi.Input[str] deletion_policy: Policy to determine if the volume should be deleted forcefully.
947
+ Volumes may have nested snapshot resources. Deleting such a volume will fail.
948
+ Setting this parameter to FORCE will delete volumes including nested snapshots.
904
949
  :param pulumi.Input[str] description: An optional description of this resource.
905
950
  :param pulumi.Input[pulumi.InputType['VolumeExportPolicyArgs']] export_policy: Export policy of the volume for NFSV3 and/or NFSV4.1 access.
906
951
  Structure is documented below.
@@ -971,7 +1016,8 @@ class Volume(pulumi.CustomResource):
971
1016
  capacity_gib="100",
972
1017
  share_name="test-volume",
973
1018
  storage_pool=default_storage_pool.name,
974
- protocols=["NFSV3"])
1019
+ protocols=["NFSV3"],
1020
+ deletion_policy="DEFAULT")
975
1021
  ```
976
1022
 
977
1023
  ## Import
@@ -1006,6 +1052,7 @@ class Volume(pulumi.CustomResource):
1006
1052
  resource_name: str,
1007
1053
  opts: Optional[pulumi.ResourceOptions] = None,
1008
1054
  capacity_gib: Optional[pulumi.Input[str]] = None,
1055
+ deletion_policy: Optional[pulumi.Input[str]] = None,
1009
1056
  description: Optional[pulumi.Input[str]] = None,
1010
1057
  export_policy: Optional[pulumi.Input[pulumi.InputType['VolumeExportPolicyArgs']]] = None,
1011
1058
  kerberos_enabled: Optional[pulumi.Input[bool]] = None,
@@ -1034,6 +1081,7 @@ class Volume(pulumi.CustomResource):
1034
1081
  if capacity_gib is None and not opts.urn:
1035
1082
  raise TypeError("Missing required property 'capacity_gib'")
1036
1083
  __props__.__dict__["capacity_gib"] = capacity_gib
1084
+ __props__.__dict__["deletion_policy"] = deletion_policy
1037
1085
  __props__.__dict__["description"] = description
1038
1086
  __props__.__dict__["export_policy"] = export_policy
1039
1087
  __props__.__dict__["kerberos_enabled"] = kerberos_enabled
@@ -1084,6 +1132,7 @@ class Volume(pulumi.CustomResource):
1084
1132
  opts: Optional[pulumi.ResourceOptions] = None,
1085
1133
  active_directory: Optional[pulumi.Input[str]] = None,
1086
1134
  capacity_gib: Optional[pulumi.Input[str]] = None,
1135
+ deletion_policy: Optional[pulumi.Input[str]] = None,
1087
1136
  description: Optional[pulumi.Input[str]] = None,
1088
1137
  effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
1089
1138
  encryption_type: Optional[pulumi.Input[str]] = None,
@@ -1120,6 +1169,9 @@ class Volume(pulumi.CustomResource):
1120
1169
  :param pulumi.ResourceOptions opts: Options for the resource.
1121
1170
  :param pulumi.Input[str] active_directory: Reports the resource name of the Active Directory policy being used. Inherited from storage pool.
1122
1171
  :param pulumi.Input[str] capacity_gib: Capacity of the volume (in GiB).
1172
+ :param pulumi.Input[str] deletion_policy: Policy to determine if the volume should be deleted forcefully.
1173
+ Volumes may have nested snapshot resources. Deleting such a volume will fail.
1174
+ Setting this parameter to FORCE will delete volumes including nested snapshots.
1123
1175
  :param pulumi.Input[str] description: An optional description of this resource.
1124
1176
  :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.
1125
1177
  :param pulumi.Input[str] encryption_type: Reports the data-at-rest encryption type of the volume. Inherited from storage pool.
@@ -1171,6 +1223,7 @@ class Volume(pulumi.CustomResource):
1171
1223
 
1172
1224
  __props__.__dict__["active_directory"] = active_directory
1173
1225
  __props__.__dict__["capacity_gib"] = capacity_gib
1226
+ __props__.__dict__["deletion_policy"] = deletion_policy
1174
1227
  __props__.__dict__["description"] = description
1175
1228
  __props__.__dict__["effective_labels"] = effective_labels
1176
1229
  __props__.__dict__["encryption_type"] = encryption_type
@@ -1216,6 +1269,16 @@ class Volume(pulumi.CustomResource):
1216
1269
  """
1217
1270
  return pulumi.get(self, "capacity_gib")
1218
1271
 
1272
+ @property
1273
+ @pulumi.getter(name="deletionPolicy")
1274
+ def deletion_policy(self) -> pulumi.Output[Optional[str]]:
1275
+ """
1276
+ Policy to determine if the volume should be deleted forcefully.
1277
+ Volumes may have nested snapshot resources. Deleting such a volume will fail.
1278
+ Setting this parameter to FORCE will delete volumes including nested snapshots.
1279
+ """
1280
+ return pulumi.get(self, "deletion_policy")
1281
+
1219
1282
  @property
1220
1283
  @pulumi.getter
1221
1284
  def description(self) -> pulumi.Output[Optional[str]]: