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

com.pulumi.gcp.compute.kotlin.inputs.GetImagePlainArgs.kt Maven / Gradle / Ivy

@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.gcp.compute.kotlin.inputs

import com.pulumi.gcp.compute.inputs.GetImagePlainArgs.builder
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import kotlin.Boolean
import kotlin.String
import kotlin.Suppress
import kotlin.jvm.JvmName

/**
 * A collection of arguments for invoking getImage.
 * @property family The family name of the image.
 * @property filter
 * @property mostRecent A boolean to indicate either to take to most recent image if your filter
 * returns more than one image.
 * @property name , `family` or `filter` - (Required) The name of a specific image or a family.
 * Exactly one of `name`, `family` or `filter` must be specified. If `name` is specified, it will fetch
 * the corresponding image. If `family` is specified, it will return the latest image
 * that is part of an image family and is not deprecated. If you specify `filter`, your
 * filter must return exactly one image unless you use `most_recent`.
 * Filter syntax can be found [here](https://cloud.google.com/compute/docs/reference/rest/v1/images/list) in the filter section.
 * - - -
 * @property project The project in which the resource belongs. If it is not
 * provided, the provider project is used. If you are using a
 * [public base image][pubimg], be sure to specify the correct Image Project.
 */
public data class GetImagePlainArgs(
    public val family: String? = null,
    public val filter: String? = null,
    public val mostRecent: Boolean? = null,
    public val name: String? = null,
    public val project: String? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.gcp.compute.inputs.GetImagePlainArgs =
        com.pulumi.gcp.compute.inputs.GetImagePlainArgs.builder()
            .family(family?.let({ args0 -> args0 }))
            .filter(filter?.let({ args0 -> args0 }))
            .mostRecent(mostRecent?.let({ args0 -> args0 }))
            .name(name?.let({ args0 -> args0 }))
            .project(project?.let({ args0 -> args0 })).build()
}

/**
 * Builder for [GetImagePlainArgs].
 */
@PulumiTagMarker
public class GetImagePlainArgsBuilder internal constructor() {
    private var family: String? = null

    private var filter: String? = null

    private var mostRecent: Boolean? = null

    private var name: String? = null

    private var project: String? = null

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

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

    /**
     * @param value A boolean to indicate either to take to most recent image if your filter
     * returns more than one image.
     */
    @JvmName("dtwhttnvqluxgvpt")
    public suspend fun mostRecent(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> args0 })
        this.mostRecent = mapped
    }

    /**
     * @param value , `family` or `filter` - (Required) The name of a specific image or a family.
     * Exactly one of `name`, `family` or `filter` must be specified. If `name` is specified, it will fetch
     * the corresponding image. If `family` is specified, it will return the latest image
     * that is part of an image family and is not deprecated. If you specify `filter`, your
     * filter must return exactly one image unless you use `most_recent`.
     * Filter syntax can be found [here](https://cloud.google.com/compute/docs/reference/rest/v1/images/list) in the filter section.
     * - - -
     */
    @JvmName("keyodljhffdtiexp")
    public suspend fun name(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> args0 })
        this.name = mapped
    }

    /**
     * @param value The project in which the resource belongs. If it is not
     * provided, the provider project is used. If you are using a
     * [public base image][pubimg], be sure to specify the correct Image Project.
     */
    @JvmName("jqswccgofsrjlbdr")
    public suspend fun project(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> args0 })
        this.project = mapped
    }

    internal fun build(): GetImagePlainArgs = GetImagePlainArgs(
        family = family,
        filter = filter,
        mostRecent = mostRecent,
        name = name,
        project = project,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy