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

com.pulumi.gcp.dataproc.kotlin.outputs.ClusterClusterConfigGceClusterConfig.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.dataproc.kotlin.outputs

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

/**
 *
 * @property internalIpOnly By default, clusters are not restricted to internal IP addresses,
 * and will have ephemeral external IP addresses assigned to each instance. If set to true, all
 * instances in the cluster will only have internal IP addresses. Note: Private Google Access
 * (also known as `privateIpGoogleAccess`) must be enabled on the subnetwork that the cluster
 * will be launched in.
 * @property metadata A map of the Compute Engine metadata entries to add to all instances
 * (see [Project and instance metadata](https://cloud.google.com/compute/docs/storing-retrieving-metadata#project_and_instance_metadata)).
 * @property network The name or self_link of the Google Compute Engine
 * network to the cluster will be part of. Conflicts with `subnetwork`.
 * If neither is specified, this defaults to the "default" network.
 * @property nodeGroupAffinity Node Group Affinity for sole-tenant clusters.
 * @property reservationAffinity Reservation Affinity for consuming zonal reservation.
 * @property serviceAccount The service account to be used by the Node VMs.
 * If not specified, the "default" service account is used.
 * @property serviceAccountScopes The set of Google API scopes
 * to be made available on all of the node VMs under the `service_account`
 * specified. Both OAuth2 URLs and gcloud
 * short names are supported. To allow full access to all Cloud APIs, use the
 * `cloud-platform` scope. See a complete list of scopes [here](https://cloud.google.com/sdk/gcloud/reference/alpha/compute/instances/set-scopes#--scopes).
 * @property shieldedInstanceConfig Shielded Instance Config for clusters using [Compute Engine Shielded VMs](https://cloud.google.com/security/shielded-cloud/shielded-vm).
 * - - -
 * @property subnetwork The name or self_link of the Google Compute Engine
 * subnetwork the cluster will be part of. Conflicts with `network`.
 * @property tags The list of instance tags applied to instances in the cluster.
 * Tags are used to identify valid sources or targets for network firewalls.
 * @property zone The GCP zone where your data is stored and used (i.e. where
 * the master and the worker nodes will be created in). If `region` is set to 'global' (default)
 * then `zone` is mandatory, otherwise GCP is able to make use of [Auto Zone Placement](https://cloud.google.com/dataproc/docs/concepts/auto-zone)
 * to determine this automatically for you.
 * Note: This setting additionally determines and restricts
 * which computing resources are available for use with other configs such as
 * `cluster_config.master_config.machine_type` and `cluster_config.worker_config.machine_type`.
 */
public data class ClusterClusterConfigGceClusterConfig(
    public val internalIpOnly: Boolean? = null,
    public val metadata: Map? = null,
    public val network: String? = null,
    public val nodeGroupAffinity: ClusterClusterConfigGceClusterConfigNodeGroupAffinity? = null,
    public val reservationAffinity: ClusterClusterConfigGceClusterConfigReservationAffinity? = null,
    public val serviceAccount: String? = null,
    public val serviceAccountScopes: List? = null,
    public val shieldedInstanceConfig: ClusterClusterConfigGceClusterConfigShieldedInstanceConfig? =
        null,
    public val subnetwork: String? = null,
    public val tags: List? = null,
    public val zone: String? = null,
) {
    public companion object {
        public fun toKotlin(javaType: com.pulumi.gcp.dataproc.outputs.ClusterClusterConfigGceClusterConfig): ClusterClusterConfigGceClusterConfig = ClusterClusterConfigGceClusterConfig(
            internalIpOnly = javaType.internalIpOnly().map({ args0 -> args0 }).orElse(null),
            metadata = javaType.metadata().map({ args0 -> args0.key.to(args0.value) }).toMap(),
            network = javaType.network().map({ args0 -> args0 }).orElse(null),
            nodeGroupAffinity = javaType.nodeGroupAffinity().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.gcp.dataproc.kotlin.outputs.ClusterClusterConfigGceClusterConfigNodeGroupAffinity.Companion.toKotlin(args0)
                })
            }).orElse(null),
            reservationAffinity = javaType.reservationAffinity().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.gcp.dataproc.kotlin.outputs.ClusterClusterConfigGceClusterConfigReservationAffinity.Companion.toKotlin(args0)
                })
            }).orElse(null),
            serviceAccount = javaType.serviceAccount().map({ args0 -> args0 }).orElse(null),
            serviceAccountScopes = javaType.serviceAccountScopes().map({ args0 -> args0 }),
            shieldedInstanceConfig = javaType.shieldedInstanceConfig().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.gcp.dataproc.kotlin.outputs.ClusterClusterConfigGceClusterConfigShieldedInstanceConfig.Companion.toKotlin(args0)
                })
            }).orElse(null),
            subnetwork = javaType.subnetwork().map({ args0 -> args0 }).orElse(null),
            tags = javaType.tags().map({ args0 -> args0 }),
            zone = javaType.zone().map({ args0 -> args0 }).orElse(null),
        )
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy