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

com.pulumi.gcp.compute.kotlin.outputs.InstanceBootDiskInitializeParams.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: 8.10.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.gcp.compute.kotlin.outputs

import kotlin.Any
import kotlin.Boolean
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.collections.Map

/**
 *
 * @property enableConfidentialCompute Whether this disk is using confidential compute mode.
 * Note: Only supported on hyperdisk skus, disk_encryption_key is required when setting to true.
 * @property image 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](https://www.terraform.io/docs/providers/google/d/compute_image.html).
 * For instance, the image `centos-6-v20180104` includes its family name `centos-6`.
 * These images can be referred by family name here.
 * @property labels A set of key/value label pairs assigned to the disk. This
 * field is only applicable for persistent disks.
 * @property provisionedIops Indicates how many IOPS to provision for the disk.
 * This sets the number of I/O operations per second that the disk can handle.
 * For more details,see the [Hyperdisk documentation](https://cloud.google.com/compute/docs/disks/hyperdisks).
 * Note: Updating currently is only supported for hyperdisk skus via disk update
 * api/gcloud 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.
 * @property provisionedThroughput Indicates how much throughput to provision for the disk.
 * This sets the number of throughput mb per second that the disk can handle.
 * For more details,see the [Hyperdisk documentation](https://cloud.google.com/compute/docs/disks/hyperdisks).
 * Note: Updating currently is only supported for hyperdisk skus via disk update
 * api/gcloud 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.
 * @property resourceManagerTags A map of resource manager tags. Resource manager tag keys and values have the same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456. The field is ignored (both PUT & PATCH) when empty.
 * @property size The size of the image in gigabytes. If not specified, it
 * will inherit the size of its base image.
 * @property type The GCE disk type. Such as pd-standard, pd-balanced or pd-ssd.
 */
public data class InstanceBootDiskInitializeParams(
    public val enableConfidentialCompute: Boolean? = null,
    public val image: String? = null,
    public val labels: Map? = null,
    public val provisionedIops: Int? = null,
    public val provisionedThroughput: Int? = null,
    public val resourceManagerTags: Map? = null,
    public val size: Int? = null,
    public val type: String? = null,
) {
    public companion object {
        public fun toKotlin(javaType: com.pulumi.gcp.compute.outputs.InstanceBootDiskInitializeParams): InstanceBootDiskInitializeParams = InstanceBootDiskInitializeParams(
            enableConfidentialCompute = javaType.enableConfidentialCompute().map({ args0 ->
                args0
            }).orElse(null),
            image = javaType.image().map({ args0 -> args0 }).orElse(null),
            labels = javaType.labels().map({ args0 -> args0.key.to(args0.value) }).toMap(),
            provisionedIops = javaType.provisionedIops().map({ args0 -> args0 }).orElse(null),
            provisionedThroughput = javaType.provisionedThroughput().map({ args0 -> args0 }).orElse(null),
            resourceManagerTags = javaType.resourceManagerTags().map({ args0 ->
                args0.key.to(args0.value)
            }).toMap(),
            size = javaType.size().map({ args0 -> args0 }).orElse(null),
            type = javaType.type().map({ args0 -> args0 }).orElse(null),
        )
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy