# frozen_string_literal: true
# Copyright 2020 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
#
# https://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.
# Auto-generated by gapic-generator-ruby. DO NOT EDIT!
module Google
module Cloud
module Dataproc
module V1
# Runtime configuration for a workload.
# @!attribute [rw] version
# @return [::String]
# Optional. Version of the batch runtime.
# @!attribute [rw] container_image
# @return [::String]
# Optional. Optional custom container image for the job runtime environment.
# If not specified, a default container image will be used.
# @!attribute [rw] properties
# @return [::Google::Protobuf::Map{::String => ::String}]
# Optional. A mapping of property names to values, which are used to
# configure workload execution.
class RuntimeConfig
include ::Google::Protobuf::MessageExts
extend ::Google::Protobuf::MessageExts::ClassMethods
# @!attribute [rw] key
# @return [::String]
# @!attribute [rw] value
# @return [::String]
class PropertiesEntry
include ::Google::Protobuf::MessageExts
extend ::Google::Protobuf::MessageExts::ClassMethods
end
end
# Environment configuration for a workload.
# @!attribute [rw] execution_config
# @return [::Google::Cloud::Dataproc::V1::ExecutionConfig]
# Optional. Execution configuration for a workload.
# @!attribute [rw] peripherals_config
# @return [::Google::Cloud::Dataproc::V1::PeripheralsConfig]
# Optional. Peripherals configuration that workload has access to.
class EnvironmentConfig
include ::Google::Protobuf::MessageExts
extend ::Google::Protobuf::MessageExts::ClassMethods
end
# Execution configuration for a workload.
# @!attribute [rw] service_account
# @return [::String]
# Optional. Service account that used to execute workload.
# @!attribute [rw] network_uri
# @return [::String]
# Optional. Network URI to connect workload to.
# @!attribute [rw] subnetwork_uri
# @return [::String]
# Optional. Subnetwork URI to connect workload to.
# @!attribute [rw] network_tags
# @return [::Array<::String>]
# Optional. Tags used for network traffic control.
# @!attribute [rw] kms_key
# @return [::String]
# Optional. The Cloud KMS key to use for encryption.
# @!attribute [rw] ttl
# @return [::Google::Protobuf::Duration]
# Optional. The duration after which the workload will be terminated.
# When the workload passes this ttl, it will be unconditionally killed
# without waiting for ongoing work to finish.
# Minimum value is 10 minutes; maximum value is 14 days (see JSON
# representation of
# [Duration](https://developers.google.com/protocol-buffers/docs/proto3#json)).
# If both ttl and idle_ttl are specified, the conditions are treated as
# and OR: the workload will be terminated when it has been idle for idle_ttl
# or when the ttl has passed, whichever comes first.
# If ttl is not specified for a session, it defaults to 24h.
# @!attribute [rw] staging_bucket
# @return [::String]
# Optional. A Cloud Storage bucket used to stage workload dependencies,
# config files, and store workload output and other ephemeral data, such as
# Spark history files. If you do not specify a staging bucket, Cloud Dataproc
# will determine a Cloud Storage location according to the region where your
# workload is running, and then create and manage project-level, per-location
# staging and temporary buckets.
# **This field requires a Cloud Storage bucket name, not a `gs://...` URI to
# a Cloud Storage bucket.**
class ExecutionConfig
include ::Google::Protobuf::MessageExts
extend ::Google::Protobuf::MessageExts::ClassMethods
end
# Spark History Server configuration for the workload.
# @!attribute [rw] dataproc_cluster
# @return [::String]
# Optional. Resource name of an existing Dataproc Cluster to act as a Spark
# History Server for the workload.
#
# Example:
#
# * `projects/[project_id]/regions/[region]/clusters/[cluster_name]`
class SparkHistoryServerConfig
include ::Google::Protobuf::MessageExts
extend ::Google::Protobuf::MessageExts::ClassMethods
end
# Auxiliary services configuration for a workload.
# @!attribute [rw] metastore_service
# @return [::String]
# Optional. Resource name of an existing Dataproc Metastore service.
#
# Example:
#
# * `projects/[project_id]/locations/[region]/services/[service_id]`
# @!attribute [rw] spark_history_server_config
# @return [::Google::Cloud::Dataproc::V1::SparkHistoryServerConfig]
# Optional. The Spark History Server configuration for the workload.
class PeripheralsConfig
include ::Google::Protobuf::MessageExts
extend ::Google::Protobuf::MessageExts::ClassMethods
end
# Runtime information about workload execution.
# @!attribute [r] endpoints
# @return [::Google::Protobuf::Map{::String => ::String}]
# Output only. Map of remote access endpoints (such as web interfaces and
# APIs) to their URIs.
# @!attribute [r] output_uri
# @return [::String]
# Output only. A URI pointing to the location of the stdout and stderr of the
# workload.
# @!attribute [r] diagnostic_output_uri
# @return [::String]
# Output only. A URI pointing to the location of the diagnostics tarball.
# @!attribute [r] approximate_usage
# @return [::Google::Cloud::Dataproc::V1::UsageMetrics]
# Output only. Approximate workload resource usage calculated after workload
# finishes (see [Dataproc Serverless pricing]
# (https://cloud.google.com/dataproc-serverless/pricing)).
# @!attribute [r] current_usage
# @return [::Google::Cloud::Dataproc::V1::UsageSnapshot]
# Output only. Snapshot of current workload resource usage.
class RuntimeInfo
include ::Google::Protobuf::MessageExts
extend ::Google::Protobuf::MessageExts::ClassMethods
# @!attribute [rw] key
# @return [::String]
# @!attribute [rw] value
# @return [::String]
class EndpointsEntry
include ::Google::Protobuf::MessageExts
extend ::Google::Protobuf::MessageExts::ClassMethods
end
end
# Usage metrics represent approximate total resources consumed by a workload.
# @!attribute [rw] milli_dcu_seconds
# @return [::Integer]
# Optional. DCU (Dataproc Compute Units) usage in (`milliDCU` x `seconds`)
# (see [Dataproc Serverless pricing]
# (https://cloud.google.com/dataproc-serverless/pricing)).
# @!attribute [rw] shuffle_storage_gb_seconds
# @return [::Integer]
# Optional. Shuffle storage usage in (`GB` x `seconds`) (see
# [Dataproc Serverless pricing]
# (https://cloud.google.com/dataproc-serverless/pricing)).
class UsageMetrics
include ::Google::Protobuf::MessageExts
extend ::Google::Protobuf::MessageExts::ClassMethods
end
# The usage snaphot represents the resources consumed by a workload at a
# specified time.
# @!attribute [rw] milli_dcu
# @return [::Integer]
# Optional. Milli (one-thousandth) Dataproc Compute Units (DCUs) (see
# [Dataproc Serverless pricing]
# (https://cloud.google.com/dataproc-serverless/pricing)).
# @!attribute [rw] shuffle_storage_gb
# @return [::Integer]
# Optional. Shuffle Storage in gigabytes (GB). (see [Dataproc Serverless
# pricing] (https://cloud.google.com/dataproc-serverless/pricing))
# @!attribute [rw] snapshot_time
# @return [::Google::Protobuf::Timestamp]
# Optional. The timestamp of the usage snapshot.
class UsageSnapshot
include ::Google::Protobuf::MessageExts
extend ::Google::Protobuf::MessageExts::ClassMethods
end
# The cluster's GKE config.
# @!attribute [rw] gke_cluster_target
# @return [::String]
# Optional. A target GKE cluster to deploy to. It must be in the same project
# and region as the Dataproc cluster (the GKE cluster can be zonal or
# regional). Format:
# 'projects/\\{project}/locations/\\{location}/clusters/\\{cluster_id}'
# @!attribute [rw] node_pool_target
# @return [::Array<::Google::Cloud::Dataproc::V1::GkeNodePoolTarget>]
# Optional. GKE node pools where workloads will be scheduled. At least one
# node pool must be assigned the `DEFAULT`
# {::Google::Cloud::Dataproc::V1::GkeNodePoolTarget::Role GkeNodePoolTarget.Role}.
# If a `GkeNodePoolTarget` is not specified, Dataproc constructs a `DEFAULT`
# `GkeNodePoolTarget`. Each role can be given to only one
# `GkeNodePoolTarget`. All node pools must have the same location settings.
class GkeClusterConfig
include ::Google::Protobuf::MessageExts
extend ::Google::Protobuf::MessageExts::ClassMethods
end
# The configuration for running the Dataproc cluster on Kubernetes.
# @!attribute [rw] kubernetes_namespace
# @return [::String]
# Optional. A namespace within the Kubernetes cluster to deploy into. If this
# namespace does not exist, it is created. If it exists, Dataproc verifies
# that another Dataproc VirtualCluster is not installed into it. If not
# specified, the name of the Dataproc Cluster is used.
# @!attribute [rw] gke_cluster_config
# @return [::Google::Cloud::Dataproc::V1::GkeClusterConfig]
# Required. The configuration for running the Dataproc cluster on GKE.
# @!attribute [rw] kubernetes_software_config
# @return [::Google::Cloud::Dataproc::V1::KubernetesSoftwareConfig]
# Optional. The software configuration for this Dataproc cluster running on
# Kubernetes.
class KubernetesClusterConfig
include ::Google::Protobuf::MessageExts
extend ::Google::Protobuf::MessageExts::ClassMethods
end
# The software configuration for this Dataproc cluster running on Kubernetes.
# @!attribute [rw] component_version
# @return [::Google::Protobuf::Map{::String => ::String}]
# The components that should be installed in this Dataproc cluster. The key
# must be a string from the KubernetesComponent enumeration. The value is
# the version of the software to be installed.
# At least one entry must be specified.
# @!attribute [rw] properties
# @return [::Google::Protobuf::Map{::String => ::String}]
# The properties to set on daemon config files.
#
# Property keys are specified in `prefix:property` format, for example
# `spark:spark.kubernetes.container.image`. The following are supported
# prefixes and their mappings:
#
# * spark: `spark-defaults.conf`
#
# For more information, see [Cluster
# properties](https://cloud.google.com/dataproc/docs/concepts/cluster-properties).
class KubernetesSoftwareConfig
include ::Google::Protobuf::MessageExts
extend ::Google::Protobuf::MessageExts::ClassMethods
# @!attribute [rw] key
# @return [::String]
# @!attribute [rw] value
# @return [::String]
class ComponentVersionEntry
include ::Google::Protobuf::MessageExts
extend ::Google::Protobuf::MessageExts::ClassMethods
end
# @!attribute [rw] key
# @return [::String]
# @!attribute [rw] value
# @return [::String]
class PropertiesEntry
include ::Google::Protobuf::MessageExts
extend ::Google::Protobuf::MessageExts::ClassMethods
end
end
# GKE node pools that Dataproc workloads run on.
# @!attribute [rw] node_pool
# @return [::String]
# Required. The target GKE node pool.
# Format:
# 'projects/\\{project}/locations/\\{location}/clusters/\\{cluster}/nodePools/\\{node_pool}'
# @!attribute [rw] roles
# @return [::Array<::Google::Cloud::Dataproc::V1::GkeNodePoolTarget::Role>]
# Required. The roles associated with the GKE node pool.
# @!attribute [rw] node_pool_config
# @return [::Google::Cloud::Dataproc::V1::GkeNodePoolConfig]
# Input only. The configuration for the GKE node pool.
#
# If specified, Dataproc attempts to create a node pool with the
# specified shape. If one with the same name already exists, it is
# verified against all specified fields. If a field differs, the
# virtual cluster creation will fail.
#
# If omitted, any node pool with the specified name is used. If a
# node pool with the specified name does not exist, Dataproc create a
# node pool with default values.
#
# This is an input only field. It will not be returned by the API.
class GkeNodePoolTarget
include ::Google::Protobuf::MessageExts
extend ::Google::Protobuf::MessageExts::ClassMethods
# `Role` specifies the tasks that will run on the node pool. Roles can be
# specific to workloads. Exactly one
# {::Google::Cloud::Dataproc::V1::GkeNodePoolTarget GkeNodePoolTarget} within the
# virtual cluster must have the `DEFAULT` role, which is used to run all
# workloads that are not associated with a node pool.
module Role
# Role is unspecified.
ROLE_UNSPECIFIED = 0
# At least one node pool must have the `DEFAULT` role.
# Work assigned to a role that is not associated with a node pool
# is assigned to the node pool with the `DEFAULT` role. For example,
# work assigned to the `CONTROLLER` role will be assigned to the node pool
# with the `DEFAULT` role if no node pool has the `CONTROLLER` role.
DEFAULT = 1
# Run work associated with the Dataproc control plane (for example,
# controllers and webhooks). Very low resource requirements.
CONTROLLER = 2
# Run work associated with a Spark driver of a job.
SPARK_DRIVER = 3
# Run work associated with a Spark executor of a job.
SPARK_EXECUTOR = 4
end
end
# The configuration of a GKE node pool used by a [Dataproc-on-GKE
# cluster](https://cloud.google.com/dataproc/docs/concepts/jobs/dataproc-gke#create-a-dataproc-on-gke-cluster).
# @!attribute [rw] config
# @return [::Google::Cloud::Dataproc::V1::GkeNodePoolConfig::GkeNodeConfig]
# Optional. The node pool configuration.
# @!attribute [rw] locations
# @return [::Array<::String>]
# Optional. The list of Compute Engine
# [zones](https://cloud.google.com/compute/docs/zones#available) where
# node pool nodes associated with a Dataproc on GKE virtual cluster
# will be located.
#
# **Note:** All node pools associated with a virtual cluster
# must be located in the same region as the virtual cluster, and they must
# be located in the same zone within that region.
#
# If a location is not specified during node pool creation, Dataproc on GKE
# will choose the zone.
# @!attribute [rw] autoscaling
# @return [::Google::Cloud::Dataproc::V1::GkeNodePoolConfig::GkeNodePoolAutoscalingConfig]
# Optional. The autoscaler configuration for this node pool. The autoscaler
# is enabled only when a valid configuration is present.
class GkeNodePoolConfig
include ::Google::Protobuf::MessageExts
extend ::Google::Protobuf::MessageExts::ClassMethods
# Parameters that describe cluster nodes.
# @!attribute [rw] machine_type
# @return [::String]
# Optional. The name of a Compute Engine [machine
# type](https://cloud.google.com/compute/docs/machine-types).
# @!attribute [rw] local_ssd_count
# @return [::Integer]
# Optional. The number of local SSD disks to attach to the node, which is
# limited by the maximum number of disks allowable per zone (see [Adding
# Local SSDs](https://cloud.google.com/compute/docs/disks/local-ssd)).
# @!attribute [rw] preemptible
# @return [::Boolean]
# Optional. Whether the nodes are created as legacy [preemptible VM
# instances] (https://cloud.google.com/compute/docs/instances/preemptible).
# Also see
# {::Google::Cloud::Dataproc::V1::GkeNodePoolConfig::GkeNodeConfig#spot Spot}
# VMs, preemptible VM instances without a maximum lifetime. Legacy and Spot
# preemptible nodes cannot be used in a node pool with the `CONTROLLER`
# [role]
# (/dataproc/docs/reference/rest/v1/projects.regions.clusters#role)
# or in the DEFAULT node pool if the CONTROLLER role is not assigned (the
# DEFAULT node pool will assume the CONTROLLER role).
# @!attribute [rw] accelerators
# @return [::Array<::Google::Cloud::Dataproc::V1::GkeNodePoolConfig::GkeNodePoolAcceleratorConfig>]
# Optional. A list of [hardware
# accelerators](https://cloud.google.com/compute/docs/gpus) to attach to
# each node.
# @!attribute [rw] min_cpu_platform
# @return [::String]
# Optional. [Minimum CPU
# platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform)
# to be used by this instance. The instance may be scheduled on the
# specified or a newer CPU platform. Specify the friendly names of CPU
# platforms, such as "Intel Haswell"` or Intel Sandy Bridge".
# @!attribute [rw] boot_disk_kms_key
# @return [::String]
# Optional. The [Customer Managed Encryption Key (CMEK)]
# (https://cloud.google.com/kubernetes-engine/docs/how-to/using-cmek)
# used to encrypt the boot disk attached to each node in the node pool.
# Specify the key using the following format:
# projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME
.
# @!attribute [rw] spot
# @return [::Boolean]
# Optional. Whether the nodes are created as [Spot VM instances]
# (https://cloud.google.com/compute/docs/instances/spot).
# Spot VMs are the latest update to legacy
# [preemptible
# VMs][google.cloud.dataproc.v1.GkeNodePoolConfig.GkeNodeConfig.preemptible].
# Spot VMs do not have a maximum lifetime. Legacy and Spot preemptible
# nodes cannot be used in a node pool with the `CONTROLLER`
# [role](/dataproc/docs/reference/rest/v1/projects.regions.clusters#role)
# or in the DEFAULT node pool if the CONTROLLER role is not assigned (the
# DEFAULT node pool will assume the CONTROLLER role).
class GkeNodeConfig
include ::Google::Protobuf::MessageExts
extend ::Google::Protobuf::MessageExts::ClassMethods
end
# A GkeNodeConfigAcceleratorConfig represents a Hardware Accelerator request
# for a node pool.
# @!attribute [rw] accelerator_count
# @return [::Integer]
# The number of accelerator cards exposed to an instance.
# @!attribute [rw] accelerator_type
# @return [::String]
# The accelerator type resource namename (see GPUs on Compute Engine).
# @!attribute [rw] gpu_partition_size
# @return [::String]
# Size of partitions to create on the GPU. Valid values are described in
# the NVIDIA [mig user
# guide](https://docs.nvidia.com/datacenter/tesla/mig-user-guide/#partitioning).
class GkeNodePoolAcceleratorConfig
include ::Google::Protobuf::MessageExts
extend ::Google::Protobuf::MessageExts::ClassMethods
end
# GkeNodePoolAutoscaling contains information the cluster autoscaler needs to
# adjust the size of the node pool to the current cluster usage.
# @!attribute [rw] min_node_count
# @return [::Integer]
# The minimum number of nodes in the node pool. Must be >= 0 and <=
# max_node_count.
# @!attribute [rw] max_node_count
# @return [::Integer]
# The maximum number of nodes in the node pool. Must be >= min_node_count,
# and must be > 0.
# **Note:** Quota must be sufficient to scale up the cluster.
class GkeNodePoolAutoscalingConfig
include ::Google::Protobuf::MessageExts
extend ::Google::Protobuf::MessageExts::ClassMethods
end
end
# Cluster components that can be activated.
module Component
# Unspecified component. Specifying this will cause Cluster creation to fail.
COMPONENT_UNSPECIFIED = 0
# The Anaconda python distribution. The Anaconda component is not supported
# in the Dataproc
# 2.0
# image. The 2.0 image is pre-installed with Miniconda.
ANACONDA = 5
# Docker
DOCKER = 13
# The Druid query engine. (alpha)
DRUID = 9
# Flink
FLINK = 14
# HBase. (beta)
HBASE = 11
# The Hive Web HCatalog (the REST service for accessing HCatalog).
HIVE_WEBHCAT = 3
# Hudi.
HUDI = 18
# The Jupyter Notebook.
JUPYTER = 1
# The Presto query engine.
PRESTO = 6
# The Trino query engine.
TRINO = 17
# The Ranger service.
RANGER = 12
# The Solr service.
SOLR = 10
# The Zeppelin notebook.
ZEPPELIN = 4
# The Zookeeper service.
ZOOKEEPER = 8
end
# Actions in response to failure of a resource associated with a cluster.
module FailureAction
# When FailureAction is unspecified, failure action defaults to NO_ACTION.
FAILURE_ACTION_UNSPECIFIED = 0
# Take no action on failure to create a cluster resource. NO_ACTION is the
# default.
NO_ACTION = 1
# Delete the failed cluster resource.
DELETE = 2
end
end
end
end
end