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

com.pulumi.awsnative.lightsail.kotlin.Disk.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.lightsail.kotlin

import com.pulumi.awsnative.kotlin.outputs.Tag
import com.pulumi.awsnative.lightsail.kotlin.outputs.DiskAddOn
import com.pulumi.awsnative.lightsail.kotlin.outputs.DiskLocation
import com.pulumi.core.Output
import com.pulumi.kotlin.KotlinCustomResource
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.ResourceMapper
import com.pulumi.kotlin.options.CustomResourceOptions
import com.pulumi.kotlin.options.CustomResourceOptionsBuilder
import com.pulumi.resources.Resource
import kotlin.Boolean
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import com.pulumi.awsnative.kotlin.outputs.Tag.Companion.toKotlin as tagToKotlin
import com.pulumi.awsnative.lightsail.kotlin.outputs.DiskAddOn.Companion.toKotlin as diskAddOnToKotlin
import com.pulumi.awsnative.lightsail.kotlin.outputs.DiskLocation.Companion.toKotlin as diskLocationToKotlin

/**
 * Builder for [Disk].
 */
@PulumiTagMarker
public class DiskResourceBuilder internal constructor() {
    public var name: String? = null

    public var args: DiskArgs = DiskArgs()

    public var opts: CustomResourceOptions = CustomResourceOptions()

    /**
     * @param name The _unique_ name of the resulting resource.
     */
    public fun name(`value`: String) {
        this.name = value
    }

    /**
     * @param block The arguments to use to populate this resource's properties.
     */
    public suspend fun args(block: suspend DiskArgsBuilder.() -> Unit) {
        val builder = DiskArgsBuilder()
        block(builder)
        this.args = builder.build()
    }

    /**
     * @param block A bag of options that control this resource's behavior.
     */
    public suspend fun opts(block: suspend CustomResourceOptionsBuilder.() -> Unit) {
        this.opts = com.pulumi.kotlin.options.CustomResourceOptions.opts(block)
    }

    internal fun build(): Disk {
        val builtJavaResource = com.pulumi.awsnative.lightsail.Disk(
            this.name,
            this.args.toJava(),
            this.opts.toJava(),
        )
        return Disk(builtJavaResource)
    }
}

/**
 * Resource Type definition for AWS::Lightsail::Disk
 */
public class Disk internal constructor(
    override val javaResource: com.pulumi.awsnative.lightsail.Disk,
) : KotlinCustomResource(javaResource, DiskMapper) {
    /**
     * An array of objects representing the add-ons to enable for the new instance.
     */
    public val addOns: Output>?
        get() = javaResource.addOns().applyValue({ args0 ->
            args0.map({ args0 ->
                args0.map({ args0 ->
                    args0.let({ args0 -> diskAddOnToKotlin(args0) })
                })
            }).orElse(null)
        })

    /**
     * Name of the attached Lightsail Instance
     */
    public val attachedTo: Output
        get() = javaResource.attachedTo().applyValue({ args0 -> args0 })

    /**
     * Attachment State of the Lightsail disk
     */
    public val attachmentState: Output
        get() = javaResource.attachmentState().applyValue({ args0 -> args0 })

    /**
     * The Availability Zone in which to create your instance. Use the following format: us-east-2a (case sensitive). Be sure to add the include Availability Zones parameter to your request.
     */
    public val availabilityZone: Output?
        get() = javaResource.availabilityZone().applyValue({ args0 ->
            args0.map({ args0 ->
                args0
            }).orElse(null)
        })

    /**
     * The Amazon Resource Name (ARN) of the disk.
     */
    public val diskArn: Output
        get() = javaResource.diskArn().applyValue({ args0 -> args0 })

    /**
     * The names to use for your new Lightsail disk.
     */
    public val diskName: Output
        get() = javaResource.diskName().applyValue({ args0 -> args0 })

    /**
     * Iops of the Lightsail disk
     */
    public val iops: Output
        get() = javaResource.iops().applyValue({ args0 -> args0 })

    /**
     * Check is Disk is attached state
     */
    public val isAttached: Output
        get() = javaResource.isAttached().applyValue({ args0 -> args0 })

    /**
     * The AWS Region and Availability Zone where the disk is located.
     */
    public val location: Output?
        get() = javaResource.location().applyValue({ args0 ->
            args0.map({ args0 ->
                args0.let({ args0 ->
                    diskLocationToKotlin(args0)
                })
            }).orElse(null)
        })

    /**
     * Path of the  attached Disk
     */
    public val path: Output
        get() = javaResource.path().applyValue({ args0 -> args0 })

    /**
     * Resource type of Lightsail instance.
     */
    public val resourceType: Output
        get() = javaResource.resourceType().applyValue({ args0 -> args0 })

    /**
     * Size of the Lightsail disk
     */
    public val sizeInGb: Output
        get() = javaResource.sizeInGb().applyValue({ args0 -> args0 })

    /**
     * State of the Lightsail disk
     */
    public val state: Output
        get() = javaResource.state().applyValue({ args0 -> args0 })

    /**
     * Support code to help identify any issues
     */
    public val supportCode: Output
        get() = javaResource.supportCode().applyValue({ args0 -> args0 })

    /**
     * An array of key-value pairs to apply to this resource.
     */
    public val tags: Output>?
        get() = javaResource.tags().applyValue({ args0 ->
            args0.map({ args0 ->
                args0.map({ args0 ->
                    args0.let({ args0 -> tagToKotlin(args0) })
                })
            }).orElse(null)
        })
}

public object DiskMapper : ResourceMapper {
    override fun supportsMappingOfType(javaResource: Resource): Boolean =
        com.pulumi.awsnative.lightsail.Disk::class == javaResource::class

    override fun map(javaResource: Resource): Disk = Disk(
        javaResource as
            com.pulumi.awsnative.lightsail.Disk,
    )
}

/**
 * @see [Disk].
 * @param name The _unique_ name of the resulting resource.
 * @param block Builder for [Disk].
 */
public suspend fun disk(name: String, block: suspend DiskResourceBuilder.() -> Unit): Disk {
    val builder = DiskResourceBuilder()
    builder.name(name)
    block(builder)
    return builder.build()
}

/**
 * @see [Disk].
 * @param name The _unique_ name of the resulting resource.
 */
public fun disk(name: String): Disk {
    val builder = DiskResourceBuilder()
    builder.name(name)
    return builder.build()
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy