pulumi-gcp 7.7.1__py3-none-any.whl → 7.8.0__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
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]]: