# Copyright 2017 Google Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # NOTE: This class is auto generated by the swagger code generator program. # https://github.com/swagger-api/swagger-codegen.git # Do not edit the class manually. defmodule GoogleApi.Composer.V1beta1.Model.NodeConfig do @moduledoc """ The configuration information for the Kubernetes Engine nodes running the Apache Airflow software. ## Attributes - tags ([String.t]): Optional. 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](https://www.ietf.org/rfc/rfc1035.txt). Cannot be updated. Defaults to: `null`. - diskSizeGb (integer()): Optional. The disk size in GB used for node VMs. Minimum size is 20GB. If unspecified, defaults to 100GB. Cannot be updated. Defaults to: `null`. - location (String.t): Optional. The Compute Engine [zone](/compute/docs/regions-zones) in which to deploy the VMs used to run the Apache Airflow software, specified as a [relative resource name](/apis/design/resource_names#relative_resource_name). For example: \"projects/{projectId}/zones/{zoneId}\". This `location` must belong to the enclosing environment's project and location. If both this field and `nodeConfig.machineType` are specified, `nodeConfig.machineType` must belong to this `location`; if both are unspecified, the service will pick a zone in the Compute Engine region corresponding to the Cloud Composer location, and propagate that choice to both fields. If only one field (`location` or `nodeConfig.machineType`) is specified, the location information from the specified field will be propagated to the unspecified field. Defaults to: `null`. - machineType (String.t): Optional. The Compute Engine [machine type](/compute/docs/machine-types) used for cluster instances, specified as a [relative resource name](/apis/design/resource_names#relative_resource_name). For example: \"projects/{projectId}/zones/{zoneId}/machineTypes/{machineTypeId}\". The `machineType` must belong to the enclosing environment's project and location. If both this field and `nodeConfig.location` are specified, this `machineType` must belong to the `nodeConfig.location`; if both are unspecified, the service will pick a zone in the Compute Engine region corresponding to the Cloud Composer location, and propagate that choice to both fields. If exactly one of this field and `nodeConfig.location` is specified, the location information from the specified field will be propagated to the unspecified field. If this field is unspecified, the `machineTypeId` defaults to \"n1-standard-1\". Defaults to: `null`. - network (String.t): Optional. The Compute Engine network to be used for machine communications, specified as a [relative resource name](/apis/design/resource_names#relative_resource_name). For example: \"projects/{projectId}/global/networks/{networkId}\". If unspecified, the default network in the environment's project is used. If a [Custom Subnet Network](/vpc/docs/vpc#vpc_networks_and_subnets) is provided, `nodeConfig.subnetwork` must also be provided. For [Shared VPC](/vpc/docs/shared-vpc) subnetwork requirements, see `nodeConfig.subnetwork`. Defaults to: `null`. - oauthScopes ([String.t]): Optional. The set of Google API scopes to be made available on all node VMs. Defaults to [\"https://www.googleapis.com/auth/cloud-platform\"] and must be included in the list of specified scopes. Cannot be updated. Defaults to: `null`. - serviceAccount (String.t): Optional. 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. Defaults to: `null`. - subnetwork (String.t): Optional. The Compute Engine subnetwork to be used for machine communications, specified as a [relative resource name](/apis/design/resource_names#relative_resource_name). For example: \"projects/{projectId}/regions/{regionId}/subnetworks/{subnetworkId}\" If a subnetwork is provided, `nodeConfig.network` must also be provided, and the subnetwork must belong to the same project as the network. For Shared VPC, you must configure the subnetwork with secondary ranges named <strong>composer-pods</strong> and <strong>composer-services</strong> to support Alias IPs. Defaults to: `null`. """ use GoogleApi.Gax.ModelBase @type t :: %__MODULE__{ :tags => list(any()), :diskSizeGb => any(), :location => any(), :machineType => any(), :network => any(), :oauthScopes => list(any()), :serviceAccount => any(), :subnetwork => any() } field(:tags, type: :list) field(:diskSizeGb) field(:location) field(:machineType) field(:network) field(:oauthScopes, type: :list) field(:serviceAccount) field(:subnetwork) end defimpl Poison.Decoder, for: GoogleApi.Composer.V1beta1.Model.NodeConfig do def decode(value, options) do GoogleApi.Composer.V1beta1.Model.NodeConfig.decode(value, options) end end defimpl Poison.Encoder, for: GoogleApi.Composer.V1beta1.Model.NodeConfig do def encode(value, options) do GoogleApi.Gax.ModelBase.encode(value, options) end end