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

com.pulumi.azurenative.azurefleet.kotlin.inputs.ImageReferenceArgs.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: 2.82.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.azurenative.azurefleet.kotlin.inputs

import com.pulumi.azurenative.azurefleet.inputs.ImageReferenceArgs.builder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import kotlin.String
import kotlin.Suppress
import kotlin.jvm.JvmName

/**
 * Specifies information about the image to use. You can specify information about
 * platform images, marketplace images, or virtual machine images. This element is
 * required when you want to use a platform image, marketplace image, or virtual
 * machine image, but is not used in other creation operations. NOTE: Image
 * reference publisher and offer can only be set when you create the scale set.
 * @property communityGalleryImageId Specified the community gallery image unique id for vm deployment. This can be
 * fetched from community gallery image GET call.
 * @property id Resource Id
 * @property offer Specifies the offer of the platform image or marketplace image used to create
 * the virtual machine.
 * @property publisher The image publisher.
 * @property sharedGalleryImageId Specified the shared gallery image unique id for vm deployment. This can be
 * fetched from shared gallery image GET call.
 * @property sku The image SKU.
 * @property version Specifies the version of the platform image or marketplace image used to create
 * the virtual machine. The allowed formats are Major.Minor.Build or 'latest'.
 * Major, Minor, and Build are decimal numbers. Specify 'latest' to use the latest
 * version of an image available at deploy time. Even if you use 'latest', the VM
 * image will not automatically update after deploy time even if a new version
 * becomes available. Please do not use field 'version' for gallery image
 * deployment, gallery image should always use 'id' field for deployment, to use 'latest'
 * version of gallery image, just set
 * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageName}'
 * in the 'id' field without version input.
 */
public data class ImageReferenceArgs(
    public val communityGalleryImageId: Output? = null,
    public val id: Output? = null,
    public val offer: Output? = null,
    public val publisher: Output? = null,
    public val sharedGalleryImageId: Output? = null,
    public val sku: Output? = null,
    public val version: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.azurenative.azurefleet.inputs.ImageReferenceArgs =
        com.pulumi.azurenative.azurefleet.inputs.ImageReferenceArgs.builder()
            .communityGalleryImageId(communityGalleryImageId?.applyValue({ args0 -> args0 }))
            .id(id?.applyValue({ args0 -> args0 }))
            .offer(offer?.applyValue({ args0 -> args0 }))
            .publisher(publisher?.applyValue({ args0 -> args0 }))
            .sharedGalleryImageId(sharedGalleryImageId?.applyValue({ args0 -> args0 }))
            .sku(sku?.applyValue({ args0 -> args0 }))
            .version(version?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [ImageReferenceArgs].
 */
@PulumiTagMarker
public class ImageReferenceArgsBuilder internal constructor() {
    private var communityGalleryImageId: Output? = null

    private var id: Output? = null

    private var offer: Output? = null

    private var publisher: Output? = null

    private var sharedGalleryImageId: Output? = null

    private var sku: Output? = null

    private var version: Output? = null

    /**
     * @param value Specified the community gallery image unique id for vm deployment. This can be
     * fetched from community gallery image GET call.
     */
    @JvmName("dpvvyxnbunwhodbl")
    public suspend fun communityGalleryImageId(`value`: Output) {
        this.communityGalleryImageId = value
    }

    /**
     * @param value Resource Id
     */
    @JvmName("itgedlvoiuxrykcc")
    public suspend fun id(`value`: Output) {
        this.id = value
    }

    /**
     * @param value Specifies the offer of the platform image or marketplace image used to create
     * the virtual machine.
     */
    @JvmName("ajasnotrkodxejgb")
    public suspend fun offer(`value`: Output) {
        this.offer = value
    }

    /**
     * @param value The image publisher.
     */
    @JvmName("vkvtohpyorluiecw")
    public suspend fun publisher(`value`: Output) {
        this.publisher = value
    }

    /**
     * @param value Specified the shared gallery image unique id for vm deployment. This can be
     * fetched from shared gallery image GET call.
     */
    @JvmName("ekjjmerrlgoifruv")
    public suspend fun sharedGalleryImageId(`value`: Output) {
        this.sharedGalleryImageId = value
    }

    /**
     * @param value The image SKU.
     */
    @JvmName("mhmhifquexsbjnqa")
    public suspend fun sku(`value`: Output) {
        this.sku = value
    }

    /**
     * @param value Specifies the version of the platform image or marketplace image used to create
     * the virtual machine. The allowed formats are Major.Minor.Build or 'latest'.
     * Major, Minor, and Build are decimal numbers. Specify 'latest' to use the latest
     * version of an image available at deploy time. Even if you use 'latest', the VM
     * image will not automatically update after deploy time even if a new version
     * becomes available. Please do not use field 'version' for gallery image
     * deployment, gallery image should always use 'id' field for deployment, to use 'latest'
     * version of gallery image, just set
     * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageName}'
     * in the 'id' field without version input.
     */
    @JvmName("rvqponijhaaxndjr")
    public suspend fun version(`value`: Output) {
        this.version = value
    }

    /**
     * @param value Specified the community gallery image unique id for vm deployment. This can be
     * fetched from community gallery image GET call.
     */
    @JvmName("tksidkmkvawenurr")
    public suspend fun communityGalleryImageId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.communityGalleryImageId = mapped
    }

    /**
     * @param value Resource Id
     */
    @JvmName("iebkhwepsvmcqnvr")
    public suspend fun id(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.id = mapped
    }

    /**
     * @param value Specifies the offer of the platform image or marketplace image used to create
     * the virtual machine.
     */
    @JvmName("xqdomnluxwrgtgmn")
    public suspend fun offer(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.offer = mapped
    }

    /**
     * @param value The image publisher.
     */
    @JvmName("jnqduwakqoaxvsxr")
    public suspend fun publisher(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.publisher = mapped
    }

    /**
     * @param value Specified the shared gallery image unique id for vm deployment. This can be
     * fetched from shared gallery image GET call.
     */
    @JvmName("clphtetdrpqenswq")
    public suspend fun sharedGalleryImageId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.sharedGalleryImageId = mapped
    }

    /**
     * @param value The image SKU.
     */
    @JvmName("xjstjohjyefctsyi")
    public suspend fun sku(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.sku = mapped
    }

    /**
     * @param value Specifies the version of the platform image or marketplace image used to create
     * the virtual machine. The allowed formats are Major.Minor.Build or 'latest'.
     * Major, Minor, and Build are decimal numbers. Specify 'latest' to use the latest
     * version of an image available at deploy time. Even if you use 'latest', the VM
     * image will not automatically update after deploy time even if a new version
     * becomes available. Please do not use field 'version' for gallery image
     * deployment, gallery image should always use 'id' field for deployment, to use 'latest'
     * version of gallery image, just set
     * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageName}'
     * in the 'id' field without version input.
     */
    @JvmName("wvgitdvwaxlymdvm")
    public suspend fun version(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.version = mapped
    }

    internal fun build(): ImageReferenceArgs = ImageReferenceArgs(
        communityGalleryImageId = communityGalleryImageId,
        id = id,
        offer = offer,
        publisher = publisher,
        sharedGalleryImageId = sharedGalleryImageId,
        sku = sku,
        version = version,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy