All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pulumi.awsnative.ec2.kotlin.outputs.GetVolumeResult.kt Maven / Gradle / Ivy

Go to download

Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.

There is a newer version: 1.11.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.awsnative.ec2.kotlin.outputs

import com.pulumi.awsnative.kotlin.outputs.Tag
import kotlin.Boolean
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.collections.List

/**
 *
 * @property autoEnableIo Indicates whether the volume is auto-enabled for I/O operations. By default, Amazon EBS disables I/O to the volume from attached EC2 instances when it determines that a volume's data is potentially inconsistent. If the consistency of the volume is not a concern, and you prefer that the volume be made available immediately if it's impaired, you can configure the volume to automatically enable I/O.
 * @property availabilityZone The ID of the Availability Zone in which to create the volume. For example, ``us-east-1a``.
 * @property encrypted Indicates whether the volume should be encrypted. The effect of setting the encryption state to ``true`` depends on the volume origin (new or from a snapshot), starting encryption state, ownership, and whether encryption by default is enabled. For more information, see [Encryption by default](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#encryption-by-default) in the *Amazon Elastic Compute Cloud User Guide*.
 *  Encrypted Amazon EBS volumes must be attached to instances that support Amazon EBS encryption. For more information, see [Supported instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#EBSEncryption_supported_instances).
 * @property iops The number of I/O operations per second (IOPS). For ``gp3``, ``io1``, and ``io2`` volumes, this represents the number of IOPS that are provisioned for the volume. For ``gp2`` volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting.
 *  The following are the supported values for each volume type:
 *   +   ``gp3``: 3,000 - 16,000 IOPS
 *   +   ``io1``: 100 - 64,000 IOPS
 *   +   ``io2``: 100 - 256,000 IOPS
 *  For ``io2`` volumes, you can achieve up to 256,000 IOPS on [instances built on the Nitro System](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances). On other instances, you can achieve performance up to 32,000 IOPS.
 *  This parameter is required for ``io1`` and ``io2`` volumes. The default for ``gp3`` volumes is 3,000 IOPS. This parameter is not supported for ``gp2``, ``st1``, ``sc1``, or ``standard`` volumes.
 * @property kmsKeyId The identifier of the kms-key-long to use for Amazon EBS encryption. If ``KmsKeyId`` is specified, the encrypted state must be ``true``.
 *  If you omit this property and your account is enabled for encryption by default, or *Encrypted* is set to ``true``, then the volume is encrypted using the default key specified for your account. If your account does not have a default key, then the volume is encrypted using the aws-managed-key.
 *  Alternatively, if you want to specify a different key, you can specify one of the following:
 *   +  Key ID. For example, 1234abcd-12ab-34cd-56ef-1234567890ab.
 *   +  Key alias. Specify the alias for the key, prefixed with ``alias/``. For example, for a key with the alias ``my_cmk``, use ``alias/my_cmk``. Or to specify the aws-managed-key, use ``alias/aws/ebs``.
 *   +  Key ARN. For example, arn:aws:kms:us-east-1:012345678910:key/1234abcd-12ab-34cd-56ef-1234567890ab.
 *   +  Alias ARN. For example, arn:aws:kms:us-east-1:012345678910:alias/ExampleAlias.
 * @property multiAttachEnabled Indicates whether Amazon EBS Multi-Attach is enabled.
 *  CFNlong does not currently support updating a single-attach volume to be multi-attach enabled, updating a multi-attach enabled volume to be single-attach, or updating the size or number of I/O operations per second (IOPS) of a multi-attach enabled volume.
 * @property outpostArn The Amazon Resource Name (ARN) of the Outpost.
 * @property size The size of the volume, in GiBs. You must specify either a snapshot ID or a volume size. If you specify a snapshot, the default is the snapshot size. You can specify a volume size that is equal to or larger than the snapshot size.
 *  The following are the supported volumes sizes for each volume type:
 *   +   ``gp2`` and ``gp3``: 1 - 16,384 GiB
 *   +   ``io1``: 4 - 16,384 GiB
 *   +   ``io2``: 4 - 65,536 GiB
 *   +   ``st1`` and ``sc1``: 125 - 16,384 GiB
 *   +   ``standard``: 1 - 1024 GiB
 * @property snapshotId The snapshot from which to create the volume. You must specify either a snapshot ID or a volume size.
 * @property tags The tags to apply to the volume during creation.
 * @property throughput The throughput to provision for a volume, with a maximum of 1,000 MiB/s.
 *  This parameter is valid only for ``gp3`` volumes. The default value is 125.
 *  Valid Range: Minimum value of 125. Maximum value of 1000.
 * @property volumeId The ID of the volume.
 * @property volumeType The volume type. This parameter can be one of the following values:
 *   +  General Purpose SSD: ``gp2`` | ``gp3``
 *   +  Provisioned IOPS SSD: ``io1`` | ``io2``
 *   +  Throughput Optimized HDD: ``st1``
 *   +  Cold HDD: ``sc1``
 *   +  Magnetic: ``standard``
 *  For more information, see [Amazon EBS volume types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) in the *Amazon Elastic Compute Cloud User Guide*.
 *  Default: ``gp2``
 */
public data class GetVolumeResult(
    public val autoEnableIo: Boolean? = null,
    public val availabilityZone: String? = null,
    public val encrypted: Boolean? = null,
    public val iops: Int? = null,
    public val kmsKeyId: String? = null,
    public val multiAttachEnabled: Boolean? = null,
    public val outpostArn: String? = null,
    public val size: Int? = null,
    public val snapshotId: String? = null,
    public val tags: List? = null,
    public val throughput: Int? = null,
    public val volumeId: String? = null,
    public val volumeType: String? = null,
) {
    public companion object {
        public fun toKotlin(javaType: com.pulumi.awsnative.ec2.outputs.GetVolumeResult): GetVolumeResult = GetVolumeResult(
            autoEnableIo = javaType.autoEnableIo().map({ args0 -> args0 }).orElse(null),
            availabilityZone = javaType.availabilityZone().map({ args0 -> args0 }).orElse(null),
            encrypted = javaType.encrypted().map({ args0 -> args0 }).orElse(null),
            iops = javaType.iops().map({ args0 -> args0 }).orElse(null),
            kmsKeyId = javaType.kmsKeyId().map({ args0 -> args0 }).orElse(null),
            multiAttachEnabled = javaType.multiAttachEnabled().map({ args0 -> args0 }).orElse(null),
            outpostArn = javaType.outpostArn().map({ args0 -> args0 }).orElse(null),
            size = javaType.size().map({ args0 -> args0 }).orElse(null),
            snapshotId = javaType.snapshotId().map({ args0 -> args0 }).orElse(null),
            tags = javaType.tags().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.awsnative.kotlin.outputs.Tag.Companion.toKotlin(args0)
                })
            }),
            throughput = javaType.throughput().map({ args0 -> args0 }).orElse(null),
            volumeId = javaType.volumeId().map({ args0 -> args0 }).orElse(null),
            volumeType = javaType.volumeType().map({ args0 -> args0 }).orElse(null),
        )
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy