# Copyright 2019 Google LLC # # 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 file is auto generated by the elixir code generator program. # Do not edit this file manually. defmodule GoogleApi.Container.V1.Model.ClusterUpdate do @moduledoc """ ClusterUpdate describes an update to the cluster. Exactly one update can be applied to a cluster with each request, so at most one field can be provided. ## Attributes * `desiredAddonsConfig` (*type:* `GoogleApi.Container.V1.Model.AddonsConfig.t`, *default:* `nil`) - Configurations for the various addons available to run in the cluster. * `desiredBinaryAuthorization` (*type:* `GoogleApi.Container.V1.Model.BinaryAuthorization.t`, *default:* `nil`) - The desired configuration options for the Binary Authorization feature. * `desiredClusterAutoscaling` (*type:* `GoogleApi.Container.V1.Model.ClusterAutoscaling.t`, *default:* `nil`) - Cluster-level autoscaling configuration. * `desiredDatabaseEncryption` (*type:* `GoogleApi.Container.V1.Model.DatabaseEncryption.t`, *default:* `nil`) - Configuration of etcd encryption. * `desiredDefaultSnatStatus` (*type:* `GoogleApi.Container.V1.Model.DefaultSnatStatus.t`, *default:* `nil`) - The desired status of whether to disable default sNAT for this cluster. * `desiredImageType` (*type:* `String.t`, *default:* `nil`) - The desired image type for the node pool. NOTE: Set the "desired_node_pool" field as well. * `desiredIntraNodeVisibilityConfig` (*type:* `GoogleApi.Container.V1.Model.IntraNodeVisibilityConfig.t`, *default:* `nil`) - The desired config of Intra-node visibility. * `desiredLocations` (*type:* `list(String.t)`, *default:* `nil`) - The desired list of Google Compute Engine [zones](https://cloud.google.com/compute/docs/zones#available) in which the cluster's nodes should be located. Changing the locations a cluster is in will result in nodes being either created or removed from the cluster, depending on whether locations are being added or removed. This list must always include the cluster's primary zone. * `desiredLoggingService` (*type:* `String.t`, *default:* `nil`) - The logging service the cluster should use to write logs. Currently available options: * `logging.googleapis.com/kubernetes` - The Cloud Logging service with a Kubernetes-native resource model * `logging.googleapis.com` - The legacy Cloud Logging service (no longer available as of GKE 1.15). * `none` - no logs will be exported from the cluster. If left as an empty string,`logging.googleapis.com/kubernetes` will be used for GKE 1.14+ or `logging.googleapis.com` for earlier versions. * `desiredMasterAuthorizedNetworksConfig` (*type:* `GoogleApi.Container.V1.Model.MasterAuthorizedNetworksConfig.t`, *default:* `nil`) - The desired configuration options for master authorized networks feature. * `desiredMasterVersion` (*type:* `String.t`, *default:* `nil`) - The Kubernetes version to change the master to. Users may specify either explicit versions offered by Kubernetes Engine or version aliases, which have the following behavior: - "latest": picks the highest valid Kubernetes version - "1.X": picks the highest valid patch+gke.N patch in the 1.X version - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version - "1.X.Y-gke.N": picks an explicit Kubernetes version - "-": picks the default Kubernetes version * `desiredMonitoringService` (*type:* `String.t`, *default:* `nil`) - The monitoring service the cluster should use to write metrics. Currently available options: * "monitoring.googleapis.com/kubernetes" - The Cloud Monitoring service with a Kubernetes-native resource model * `monitoring.googleapis.com` - The legacy Cloud Monitoring service (no longer available as of GKE 1.15). * `none` - No metrics will be exported from the cluster. If left as an empty string,`monitoring.googleapis.com/kubernetes` will be used for GKE 1.14+ or `monitoring.googleapis.com` for earlier versions. * `desiredNodePoolAutoscaling` (*type:* `GoogleApi.Container.V1.Model.NodePoolAutoscaling.t`, *default:* `nil`) - Autoscaler configuration for the node pool specified in desired_node_pool_id. If there is only one pool in the cluster and desired_node_pool_id is not provided then the change applies to that single node pool. * `desiredNodePoolId` (*type:* `String.t`, *default:* `nil`) - The node pool to be upgraded. This field is mandatory if "desired_node_version", "desired_image_family" or "desired_node_pool_autoscaling" is specified and there is more than one node pool on the cluster. * `desiredNodeVersion` (*type:* `String.t`, *default:* `nil`) - The Kubernetes version to change the nodes to (typically an upgrade). Users may specify either explicit versions offered by Kubernetes Engine or version aliases, which have the following behavior: - "latest": picks the highest valid Kubernetes version - "1.X": picks the highest valid patch+gke.N patch in the 1.X version - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version - "1.X.Y-gke.N": picks an explicit Kubernetes version - "-": picks the Kubernetes master version * `desiredPrivateClusterConfig` (*type:* `GoogleApi.Container.V1.Model.PrivateClusterConfig.t`, *default:* `nil`) - The desired private cluster configuration. * `desiredReleaseChannel` (*type:* `GoogleApi.Container.V1.Model.ReleaseChannel.t`, *default:* `nil`) - The desired release channel configuration. * `desiredResourceUsageExportConfig` (*type:* `GoogleApi.Container.V1.Model.ResourceUsageExportConfig.t`, *default:* `nil`) - The desired configuration for exporting resource usage. * `desiredShieldedNodes` (*type:* `GoogleApi.Container.V1.Model.ShieldedNodes.t`, *default:* `nil`) - Configuration for Shielded Nodes. * `desiredVerticalPodAutoscaling` (*type:* `GoogleApi.Container.V1.Model.VerticalPodAutoscaling.t`, *default:* `nil`) - Cluster-level Vertical Pod Autoscaling configuration. * `desiredWorkloadIdentityConfig` (*type:* `GoogleApi.Container.V1.Model.WorkloadIdentityConfig.t`, *default:* `nil`) - Configuration for Workload Identity. """ use GoogleApi.Gax.ModelBase @type t :: %__MODULE__{ :desiredAddonsConfig => GoogleApi.Container.V1.Model.AddonsConfig.t(), :desiredBinaryAuthorization => GoogleApi.Container.V1.Model.BinaryAuthorization.t(), :desiredClusterAutoscaling => GoogleApi.Container.V1.Model.ClusterAutoscaling.t(), :desiredDatabaseEncryption => GoogleApi.Container.V1.Model.DatabaseEncryption.t(), :desiredDefaultSnatStatus => GoogleApi.Container.V1.Model.DefaultSnatStatus.t(), :desiredImageType => String.t(), :desiredIntraNodeVisibilityConfig => GoogleApi.Container.V1.Model.IntraNodeVisibilityConfig.t(), :desiredLocations => list(String.t()), :desiredLoggingService => String.t(), :desiredMasterAuthorizedNetworksConfig => GoogleApi.Container.V1.Model.MasterAuthorizedNetworksConfig.t(), :desiredMasterVersion => String.t(), :desiredMonitoringService => String.t(), :desiredNodePoolAutoscaling => GoogleApi.Container.V1.Model.NodePoolAutoscaling.t(), :desiredNodePoolId => String.t(), :desiredNodeVersion => String.t(), :desiredPrivateClusterConfig => GoogleApi.Container.V1.Model.PrivateClusterConfig.t(), :desiredReleaseChannel => GoogleApi.Container.V1.Model.ReleaseChannel.t(), :desiredResourceUsageExportConfig => GoogleApi.Container.V1.Model.ResourceUsageExportConfig.t(), :desiredShieldedNodes => GoogleApi.Container.V1.Model.ShieldedNodes.t(), :desiredVerticalPodAutoscaling => GoogleApi.Container.V1.Model.VerticalPodAutoscaling.t(), :desiredWorkloadIdentityConfig => GoogleApi.Container.V1.Model.WorkloadIdentityConfig.t() } field(:desiredAddonsConfig, as: GoogleApi.Container.V1.Model.AddonsConfig) field(:desiredBinaryAuthorization, as: GoogleApi.Container.V1.Model.BinaryAuthorization) field(:desiredClusterAutoscaling, as: GoogleApi.Container.V1.Model.ClusterAutoscaling) field(:desiredDatabaseEncryption, as: GoogleApi.Container.V1.Model.DatabaseEncryption) field(:desiredDefaultSnatStatus, as: GoogleApi.Container.V1.Model.DefaultSnatStatus) field(:desiredImageType) field(:desiredIntraNodeVisibilityConfig, as: GoogleApi.Container.V1.Model.IntraNodeVisibilityConfig ) field(:desiredLocations, type: :list) field(:desiredLoggingService) field(:desiredMasterAuthorizedNetworksConfig, as: GoogleApi.Container.V1.Model.MasterAuthorizedNetworksConfig ) field(:desiredMasterVersion) field(:desiredMonitoringService) field(:desiredNodePoolAutoscaling, as: GoogleApi.Container.V1.Model.NodePoolAutoscaling) field(:desiredNodePoolId) field(:desiredNodeVersion) field(:desiredPrivateClusterConfig, as: GoogleApi.Container.V1.Model.PrivateClusterConfig) field(:desiredReleaseChannel, as: GoogleApi.Container.V1.Model.ReleaseChannel) field(:desiredResourceUsageExportConfig, as: GoogleApi.Container.V1.Model.ResourceUsageExportConfig ) field(:desiredShieldedNodes, as: GoogleApi.Container.V1.Model.ShieldedNodes) field(:desiredVerticalPodAutoscaling, as: GoogleApi.Container.V1.Model.VerticalPodAutoscaling) field(:desiredWorkloadIdentityConfig, as: GoogleApi.Container.V1.Model.WorkloadIdentityConfig) end defimpl Poison.Decoder, for: GoogleApi.Container.V1.Model.ClusterUpdate do def decode(value, options) do GoogleApi.Container.V1.Model.ClusterUpdate.decode(value, options) end end defimpl Poison.Encoder, for: GoogleApi.Container.V1.Model.ClusterUpdate do def encode(value, options) do GoogleApi.Gax.ModelBase.encode(value, options) end end