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

com.pulumi.gcp.composer.kotlin.outputs.GetEnvironmentConfigNodeConfig.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.composer.kotlin.outputs

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

/**
 *
 * @property composerInternalIpv4CidrBlock IPv4 cidr range that will be used by Composer internal components.
 * @property composerNetworkAttachment PSC (Private Service Connect) Network entry point. Customers can pre-create the Network Attachment and point Cloud Composer environment to use. It is possible to share network attachment among many environments, provided enough IP addresses are available.
 * @property diskSizeGb The disk size in GB used for node VMs. Minimum size is 20GB. If unspecified, defaults to 100GB. Cannot be updated. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.
 * @property enableIpMasqAgent Deploys 'ip-masq-agent' daemon set in the GKE cluster and defines nonMasqueradeCIDRs equals to pod IP range so IP masquerading is used for all destination addresses, except between pods traffic. See: https://cloud.google.com/kubernetes-engine/docs/how-to/ip-masquerade-agent
 * @property ipAllocationPolicies Configuration for controlling how IPs are allocated in the GKE cluster. Cannot be updated.
 * @property machineType The Compute Engine machine type used for cluster instances, specified as a name or relative resource name. For example: "projects/{project}/zones/{zone}/machineTypes/{machineType}". Must belong to the enclosing environment's project and region/zone. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.
 * @property maxPodsPerNode The maximum pods per node in the GKE cluster allocated during environment creation. Lowering this value reduces IP address consumption by the Cloud Composer Kubernetes cluster. This value can only be set during environment creation, and only if the environment is VPC-Native. The range of possible values is 8-110, and the default is 32. Cannot be updated. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.
 * @property network The Compute Engine machine type used for cluster instances, specified as a name or relative resource name. For example: "projects/{project}/zones/{zone}/machineTypes/{machineType}". Must belong to the enclosing environment's project and region/zone. The network must belong to the environment's project. If unspecified, the "default" network ID in the environment's project is used. If a Custom Subnet Network is provided, subnetwork must also be provided.
 * @property oauthScopes The set of Google API scopes to be made available on all node VMs. Cannot be updated. If empty, defaults to ["https://www.googleapis.com/auth/cloud-platform"]. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.
 * @property serviceAccount The Google Cloud Platform Service Account to be used by the node VMs. If a service account is not specified, the "default" Compute Engine service account is used. Cannot be updated. If given, note that the service account must have roles/composer.worker for any GCP resources created under the Cloud Composer Environment.
 * @property subnetwork The Compute Engine subnetwork to be used for machine communications, specified as a self-link, relative resource name (e.g. "projects/{project}/regions/{region}/subnetworks/{subnetwork}"), or by name. If subnetwork is provided, network must also be provided and the subnetwork must belong to the enclosing environment's project and region.
 * @property tags The list of instance tags applied to all node VMs. Tags are used to identify valid sources or targets for network firewalls. Each tag within the list must comply with RFC1035. Cannot be updated.
 * @property zone The Compute Engine zone in which to deploy the VMs running the Apache Airflow software, specified as the zone name or relative resource name (e.g. "projects/{project}/zones/{zone}"). Must belong to the enclosing environment's project and region. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.
 */
public data class GetEnvironmentConfigNodeConfig(
    public val composerInternalIpv4CidrBlock: String,
    public val composerNetworkAttachment: String,
    public val diskSizeGb: Int,
    public val enableIpMasqAgent: Boolean,
    public val ipAllocationPolicies: List,
    public val machineType: String,
    public val maxPodsPerNode: Int,
    public val network: String,
    public val oauthScopes: List,
    public val serviceAccount: String,
    public val subnetwork: String,
    public val tags: List,
    public val zone: String,
) {
    public companion object {
        public fun toKotlin(javaType: com.pulumi.gcp.composer.outputs.GetEnvironmentConfigNodeConfig): GetEnvironmentConfigNodeConfig = GetEnvironmentConfigNodeConfig(
            composerInternalIpv4CidrBlock = javaType.composerInternalIpv4CidrBlock(),
            composerNetworkAttachment = javaType.composerNetworkAttachment(),
            diskSizeGb = javaType.diskSizeGb(),
            enableIpMasqAgent = javaType.enableIpMasqAgent(),
            ipAllocationPolicies = javaType.ipAllocationPolicies().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.gcp.composer.kotlin.outputs.GetEnvironmentConfigNodeConfigIpAllocationPolicy.Companion.toKotlin(args0)
                })
            }),
            machineType = javaType.machineType(),
            maxPodsPerNode = javaType.maxPodsPerNode(),
            network = javaType.network(),
            oauthScopes = javaType.oauthScopes().map({ args0 -> args0 }),
            serviceAccount = javaType.serviceAccount(),
            subnetwork = javaType.subnetwork(),
            tags = javaType.tags().map({ args0 -> args0 }),
            zone = javaType.zone(),
        )
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy