pub struct DiskArgs {Show 25 fields
pub access_mode: Output<Option<String>>,
pub async_primary_disk: Output<Option<DiskAsyncPrimaryDisk>>,
pub description: Output<Option<String>>,
pub disk_encryption_key: Output<Option<DiskDiskEncryptionKey>>,
pub enable_confidential_compute: Output<Option<bool>>,
pub guest_os_features: Output<Option<Vec<DiskGuestOsFeature>>>,
pub image: Output<Option<String>>,
pub interface: Output<Option<String>>,
pub labels: Output<Option<HashMap<String, String>>>,
pub licenses: Output<Option<Vec<String>>>,
pub multi_writer: Output<Option<bool>>,
pub name: Output<Option<String>>,
pub physical_block_size_bytes: Output<Option<i32>>,
pub project: Output<Option<String>>,
pub provisioned_iops: Output<Option<i32>>,
pub provisioned_throughput: Output<Option<i32>>,
pub resource_policies: Output<Option<Vec<String>>>,
pub size: Output<Option<i32>>,
pub snapshot: Output<Option<String>>,
pub source_disk: Output<Option<String>>,
pub source_image_encryption_key: Output<Option<DiskSourceImageEncryptionKey>>,
pub source_snapshot_encryption_key: Output<Option<DiskSourceSnapshotEncryptionKey>>,
pub storage_pool: Output<Option<String>>,
pub type_: Output<Option<String>>,
pub zone: Output<Option<String>>,
}
Fields§
§access_mode: Output<Option<String>>
The accessMode of the disk. For example:
- READ_WRITE_SINGLE
- READ_WRITE_MANY
- READ_ONLY_SINGLE
async_primary_disk: Output<Option<DiskAsyncPrimaryDisk>>
A nested object resource. Structure is documented below.
description: Output<Option<String>>
An optional description of this resource. Provide this property when you create the resource.
disk_encryption_key: Output<Option<DiskDiskEncryptionKey>>
Encrypts the disk using a customer-supplied encryption key. After you encrypt a disk with a customer-supplied key, you must provide the same key if you use the disk later (e.g. to create a disk snapshot or an image, or to attach the disk to a virtual machine). Customer-supplied encryption keys do not protect access to metadata of the disk. If you do not provide an encryption key when creating the disk, then the disk will be encrypted using an automatically generated key and you do not need to provide a key to use the disk later. Structure is documented below.
enable_confidential_compute: Output<Option<bool>>
Whether this disk is using confidential compute mode. Note: Only supported on hyperdisk skus, disk_encryption_key is required when setting to true
guest_os_features: Output<Option<Vec<DiskGuestOsFeature>>>
A list of features to enable on the guest operating system. Applicable only for bootable disks. Structure is documented below.
image: Output<Option<String>>
The image from which to initialize this disk. This can be
one of: the image’s self_link
, projects/{project}/global/images/{image}
,
projects/{project}/global/images/family/{family}
, global/images/{image}
,
global/images/family/{family}
, family/{family}
, {project}/{family}
,
{project}/{image}
, {family}
, or {image}
. If referred by family, the
images names must include the family name. If they don’t, use the
gcp.compute.Image data source.
For instance, the image centos-6-v20180104
includes its family name centos-6
.
These images can be referred by family name here.
interface: Output<Option<String>>
Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. The default is SCSI.
Warning:
interface
is deprecated and will be removed in a future major release. This field is no longer used and can be safely removed from your configurations; disk interfaces are automatically determined on attachment.
labels: Output<Option<HashMap<String, String>>>
Labels to apply to this disk. A list of key->value pairs.
Note: This field is non-authoritative, and will only manage the labels present in your configuration.
Please refer to the field effective_labels
for all of the labels present on the resource.
licenses: Output<Option<Vec<String>>>
Any applicable license URI.
multi_writer: Output<Option<bool>>
Indicates whether or not the disk can be read/write attached to more than one instance.
name: Output<Option<String>>
Name of the resource. Provided by the client when the resource is
created. The name must be 1-63 characters long, and comply with
RFC1035. Specifically, the name must be 1-63 characters long and match
the regular expression a-z?
which means the
first character must be a lowercase letter, and all following
characters must be a dash, lowercase letter, or digit, except the last
character, which cannot be a dash.
physical_block_size_bytes: Output<Option<i32>>
Physical block size of the persistent disk, in bytes. If not present in a request, a default value is used. Currently supported sizes are 4096 and 16384, other sizes may be added in the future. If an unsupported value is requested, the error message will list the supported values for the caller’s project.
project: Output<Option<String>>
The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
provisioned_iops: Output<Option<i32>>
Indicates how many IOPS must be provisioned for the disk. Note: Updating currently is only supported by hyperdisk skus without the need to delete and recreate the disk, hyperdisk allows for an update of IOPS every 4 hours. To update your hyperdisk more frequently, you’ll need to manually delete and recreate it
provisioned_throughput: Output<Option<i32>>
Indicates how much Throughput must be provisioned for the disk. Note: Updating currently is only supported by hyperdisk skus without the need to delete and recreate the disk, hyperdisk allows for an update of Throughput every 4 hours. To update your hyperdisk more frequently, you’ll need to manually delete and recreate it
resource_policies: Output<Option<Vec<String>>>
Resource policies applied to this disk for automatic snapshot creations.
~>NOTE This value does not support updating the
resource policy, as resource policies can not be updated more than
one at a time. Use
gcp.compute.DiskResourcePolicyAttachment
to allow for updating the resource policy attached to the disk.
size: Output<Option<i32>>
Size of the persistent disk, specified in GB. You can specify this
field when creating a persistent disk using the image
or
snapshot
parameter, or specify it alone to create an empty
persistent disk.
If you specify this field along with image
or snapshot
,
the value must not be less than the size of the image
or the size of the snapshot.
~>NOTE If you change the size, the provider updates the disk size
if upsizing is detected but recreates the disk if downsizing is requested.
You can add lifecycle.prevent_destroy
in the config to prevent destroying
and recreating.
snapshot: Output<Option<String>>
The source snapshot used to create this disk. You can provide this as a partial or full URL to the resource. If the snapshot is in another project than this disk, you must supply a full URL. For example, the following are valid values:
https://www.googleapis.com/compute/v1/projects/project/global/snapshots/snapshot
projects/project/global/snapshots/snapshot
global/snapshots/snapshot
source_disk: Output<Option<String>>
The source disk used to create this disk. You can provide this as a partial or full URL to the resource. For example, the following are valid values:
- https://www.googleapis.com/compute/v1/projects/{project}/zones/{zone}/disks/{disk}
- https://www.googleapis.com/compute/v1/projects/{project}/regions/{region}/disks/{disk}
- projects/{project}/zones/{zone}/disks/{disk}
- projects/{project}/regions/{region}/disks/{disk}
- zones/{zone}/disks/{disk}
- regions/{region}/disks/{disk}
source_image_encryption_key: Output<Option<DiskSourceImageEncryptionKey>>
The customer-supplied encryption key of the source image. Required if the source image is protected by a customer-supplied encryption key. Structure is documented below.
source_snapshot_encryption_key: Output<Option<DiskSourceSnapshotEncryptionKey>>
The customer-supplied encryption key of the source snapshot. Required if the source snapshot is protected by a customer-supplied encryption key. Structure is documented below.
storage_pool: Output<Option<String>>
The URL or the name of the storage pool in which the new disk is created. For example:
- https://www.googleapis.com/compute/v1/projects/{project}/zones/{zone}/storagePools/{storagePool}
- /projects/{project}/zones/{zone}/storagePools/{storagePool}
- /zones/{zone}/storagePools/{storagePool}
- /{storagePool}
type_: Output<Option<String>>
URL of the disk type resource describing which disk type to use to create the disk. Provide this when creating the disk.
zone: Output<Option<String>>
A reference to the zone where the disk resides.
Implementations§
Trait Implementations§
Auto Trait Implementations§
impl Freeze for DiskArgs
impl RefUnwindSafe for DiskArgs
impl Send for DiskArgs
impl Sync for DiskArgs
impl Unpin for DiskArgs
impl UnwindSafe for DiskArgs
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)