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

com.pulumi.gcp.compute.kotlin.outputs.GetInstanceTemplateResult.kt Maven / Gradle / Ivy

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

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

import kotlin.Boolean
import kotlin.String
import kotlin.Suppress
import kotlin.collections.List
import kotlin.collections.Map

/**
 * A collection of values returned by getInstanceTemplate.
 * @property advancedMachineFeatures
 * @property canIpForward Whether to allow sending and receiving of
 * packets with non-matching source or destination IPs. This defaults to false.
 * @property confidentialInstanceConfigs Enable [Confidential Mode](https://cloud.google.com/compute/confidential-vm/docs/about-cvm) on this VM. Structure is documented below
 * @property description A brief description of this resource.
 * @property disks Disks to attach to instances created from this template.
 * This can be specified multiple times for multiple disks. Structure is
 * documented below.
 * @property effectiveLabels
 * @property enableDisplay Enable [Virtual Displays](https://cloud.google.com/compute/docs/instances/enable-instance-virtual-display#verify_display_driver) on this instance.
 * **Note**: `allow_stopping_for_update` must be set to true in order to update this field.
 * @property filter
 * @property guestAccelerators List of the type and count of accelerator cards attached to the instance. Structure documented below.
 * @property id The provider-assigned unique ID for this managed resource.
 * @property instanceDescription A brief description to use for instances
 * created from this template.
 * @property labels (Optional) A set of ket/value label pairs to assign to disk created from
 * this template
 * @property machineType The machine type to create.
 * @property metadata Metadata key/value pairs to make available from
 * within instances created from this template.
 * @property metadataFingerprint The unique fingerprint of the metadata.
 * @property metadataStartupScript An alternative to using the
 * startup-script metadata key, mostly to match the compute_instance resource.
 * This replaces the startup-script metadata key on the created instance and
 * thus the two mechanisms are not allowed to be used simultaneously.
 * @property minCpuPlatform Specifies a minimum CPU platform. Applicable values are the friendly names of CPU platforms, such as
 * `Intel Haswell` or `Intel Skylake`. See the complete list [here](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform).
 * @property mostRecent
 * @property name The name of the instance template. If you leave
 * this blank, the provider will auto-generate a unique name.
 * @property namePrefix Creates a unique name beginning with the specified
 * prefix. Conflicts with `name`.
 * @property networkInterfaces The URL of the network attachment that this interface should connect to in the following format: projects/{projectNumber}/regions/{region_name}/networkAttachments/{network_attachment_name}.  s
 * @property networkPerformanceConfigs The network performance configuration setting
 * for the instance, if set. Structure is documented below.
 * @property partnerMetadata
 * @property project The ID of the project in which the resource belongs. If it
 * is not provided, the provider project is used.
 * @property pulumiLabels
 * @property region An instance template is a global resource that is not
 * bound to a zone or a region. However, you can still specify some regional
 * resources in an instance template, which restricts the template to the
 * region where that resource resides. For example, a custom `subnetwork`
 * resource is tied to a specific region. Defaults to the region of the
 * Provider if no value is given.
 * @property reservationAffinities
 * @property resourceManagerTags
 * @property resourcePolicies (Optional) -- A list of short names of resource policies to attach to this disk for automatic snapshot creations. Currently a max of 1 resource policy is supported.
 * @property schedulings The scheduling strategy to use. More details about
 * this configuration option are detailed below.
 * @property selfLink The URI of the created resource.
 * @property selfLinkUnique A special URI of the created resource that uniquely identifies this instance template with the following format: `projects/{{project}}/global/instanceTemplates/{{name}}?uniqueId={{uniqueId}}`
 * Referencing an instance template via this attribute prevents Time of Check to Time of Use attacks when the instance template resides in a shared/untrusted environment.
 * @property serviceAccounts Service account to attach to the instance. Structure is documented below.
 * @property shieldedInstanceConfigs Enable [Shielded VM](https://cloud.google.com/security/shielded-cloud/shielded-vm) on this instance. Shielded VM provides verifiable integrity to prevent against malware and rootkits. Defaults to disabled. Structure is documented below.
 * **Note**: `shielded_instance_config` can only be used with boot images with shielded vm support. See the complete list [here](https://cloud.google.com/compute/docs/images#shielded-images).
 * @property tags Tags to attach to the instance.
 * @property tagsFingerprint The unique fingerprint of the tags.
 */
public data class GetInstanceTemplateResult(
    public val advancedMachineFeatures: List,
    public val canIpForward: Boolean,
    public val confidentialInstanceConfigs: List,
    public val description: String,
    public val disks: List,
    public val effectiveLabels: Map,
    public val enableDisplay: Boolean,
    public val filter: String? = null,
    public val guestAccelerators: List,
    public val id: String,
    public val instanceDescription: String,
    public val labels: Map,
    public val machineType: String,
    public val metadata: Map,
    public val metadataFingerprint: String,
    public val metadataStartupScript: String,
    public val minCpuPlatform: String,
    public val mostRecent: Boolean? = null,
    public val name: String? = null,
    public val namePrefix: String,
    public val networkInterfaces: List,
    public val networkPerformanceConfigs: List,
    public val partnerMetadata: Map,
    public val project: String? = null,
    public val pulumiLabels: Map,
    public val region: String,
    public val reservationAffinities: List,
    public val resourceManagerTags: Map,
    public val resourcePolicies: List,
    public val schedulings: List,
    public val selfLink: String,
    public val selfLinkUnique: String? = null,
    public val serviceAccounts: List,
    public val shieldedInstanceConfigs: List,
    public val tags: List,
    public val tagsFingerprint: String,
) {
    public companion object {
        public fun toKotlin(javaType: com.pulumi.gcp.compute.outputs.GetInstanceTemplateResult): GetInstanceTemplateResult = GetInstanceTemplateResult(
            advancedMachineFeatures = javaType.advancedMachineFeatures().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.gcp.compute.kotlin.outputs.GetInstanceTemplateAdvancedMachineFeature.Companion.toKotlin(args0)
                })
            }),
            canIpForward = javaType.canIpForward(),
            confidentialInstanceConfigs = javaType.confidentialInstanceConfigs().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.gcp.compute.kotlin.outputs.GetInstanceTemplateConfidentialInstanceConfig.Companion.toKotlin(args0)
                })
            }),
            description = javaType.description(),
            disks = javaType.disks().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.gcp.compute.kotlin.outputs.GetInstanceTemplateDisk.Companion.toKotlin(args0)
                })
            }),
            effectiveLabels = javaType.effectiveLabels().map({ args0 -> args0.key.to(args0.value) }).toMap(),
            enableDisplay = javaType.enableDisplay(),
            filter = javaType.filter().map({ args0 -> args0 }).orElse(null),
            guestAccelerators = javaType.guestAccelerators().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.gcp.compute.kotlin.outputs.GetInstanceTemplateGuestAccelerator.Companion.toKotlin(args0)
                })
            }),
            id = javaType.id(),
            instanceDescription = javaType.instanceDescription(),
            labels = javaType.labels().map({ args0 -> args0.key.to(args0.value) }).toMap(),
            machineType = javaType.machineType(),
            metadata = javaType.metadata().map({ args0 -> args0.key.to(args0.value) }).toMap(),
            metadataFingerprint = javaType.metadataFingerprint(),
            metadataStartupScript = javaType.metadataStartupScript(),
            minCpuPlatform = javaType.minCpuPlatform(),
            mostRecent = javaType.mostRecent().map({ args0 -> args0 }).orElse(null),
            name = javaType.name().map({ args0 -> args0 }).orElse(null),
            namePrefix = javaType.namePrefix(),
            networkInterfaces = javaType.networkInterfaces().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.gcp.compute.kotlin.outputs.GetInstanceTemplateNetworkInterface.Companion.toKotlin(args0)
                })
            }),
            networkPerformanceConfigs = javaType.networkPerformanceConfigs().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.gcp.compute.kotlin.outputs.GetInstanceTemplateNetworkPerformanceConfig.Companion.toKotlin(args0)
                })
            }),
            partnerMetadata = javaType.partnerMetadata().map({ args0 -> args0.key.to(args0.value) }).toMap(),
            project = javaType.project().map({ args0 -> args0 }).orElse(null),
            pulumiLabels = javaType.pulumiLabels().map({ args0 -> args0.key.to(args0.value) }).toMap(),
            region = javaType.region(),
            reservationAffinities = javaType.reservationAffinities().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.gcp.compute.kotlin.outputs.GetInstanceTemplateReservationAffinity.Companion.toKotlin(args0)
                })
            }),
            resourceManagerTags = javaType.resourceManagerTags().map({ args0 ->
                args0.key.to(args0.value)
            }).toMap(),
            resourcePolicies = javaType.resourcePolicies().map({ args0 -> args0 }),
            schedulings = javaType.schedulings().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.gcp.compute.kotlin.outputs.GetInstanceTemplateScheduling.Companion.toKotlin(args0)
                })
            }),
            selfLink = javaType.selfLink(),
            selfLinkUnique = javaType.selfLinkUnique().map({ args0 -> args0 }).orElse(null),
            serviceAccounts = javaType.serviceAccounts().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.gcp.compute.kotlin.outputs.GetInstanceTemplateServiceAccount.Companion.toKotlin(args0)
                })
            }),
            shieldedInstanceConfigs = javaType.shieldedInstanceConfigs().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.gcp.compute.kotlin.outputs.GetInstanceTemplateShieldedInstanceConfig.Companion.toKotlin(args0)
                })
            }),
            tags = javaType.tags().map({ args0 -> args0 }),
            tagsFingerprint = javaType.tagsFingerprint(),
        )
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy