// Code generated by protoc-gen-go. DO NOT EDIT.
// source: google/cloud/dataproc/v1/clusters.proto

package dataproc

import (
	context "context"
	fmt "fmt"
	math "math"

	proto "github.com/golang/protobuf/proto"
	duration "github.com/golang/protobuf/ptypes/duration"
	timestamp "github.com/golang/protobuf/ptypes/timestamp"
	_ "google.golang.org/genproto/googleapis/api/annotations"
	longrunning "google.golang.org/genproto/googleapis/longrunning"
	field_mask "google.golang.org/genproto/protobuf/field_mask"
	grpc "google.golang.org/grpc"
	codes "google.golang.org/grpc/codes"
	status "google.golang.org/grpc/status"
)

// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf

// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package

// The cluster state.
type ClusterStatus_State int32

const (
	// The cluster state is unknown.
	ClusterStatus_UNKNOWN ClusterStatus_State = 0
	// The cluster is being created and set up. It is not ready for use.
	ClusterStatus_CREATING ClusterStatus_State = 1
	// The cluster is currently running and healthy. It is ready for use.
	ClusterStatus_RUNNING ClusterStatus_State = 2
	// The cluster encountered an error. It is not ready for use.
	ClusterStatus_ERROR ClusterStatus_State = 3
	// The cluster is being deleted. It cannot be used.
	ClusterStatus_DELETING ClusterStatus_State = 4
	// The cluster is being updated. It continues to accept and process jobs.
	ClusterStatus_UPDATING ClusterStatus_State = 5
)

var ClusterStatus_State_name = map[int32]string{
	0: "UNKNOWN",
	1: "CREATING",
	2: "RUNNING",
	3: "ERROR",
	4: "DELETING",
	5: "UPDATING",
}

var ClusterStatus_State_value = map[string]int32{
	"UNKNOWN":  0,
	"CREATING": 1,
	"RUNNING":  2,
	"ERROR":    3,
	"DELETING": 4,
	"UPDATING": 5,
}

func (x ClusterStatus_State) String() string {
	return proto.EnumName(ClusterStatus_State_name, int32(x))
}

func (ClusterStatus_State) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_29f9b85b3c7e3a5f, []int{10, 0}
}

// The cluster substate.
type ClusterStatus_Substate int32

const (
	// The cluster substate is unknown.
	ClusterStatus_UNSPECIFIED ClusterStatus_Substate = 0
	// The cluster is known to be in an unhealthy state
	// (for example, critical daemons are not running or HDFS capacity is
	// exhausted).
	//
	// Applies to RUNNING state.
	ClusterStatus_UNHEALTHY ClusterStatus_Substate = 1
	// The agent-reported status is out of date (may occur if
	// Dataproc loses communication with Agent).
	//
	// Applies to RUNNING state.
	ClusterStatus_STALE_STATUS ClusterStatus_Substate = 2
)

var ClusterStatus_Substate_name = map[int32]string{
	0: "UNSPECIFIED",
	1: "UNHEALTHY",
	2: "STALE_STATUS",
}

var ClusterStatus_Substate_value = map[string]int32{
	"UNSPECIFIED":  0,
	"UNHEALTHY":    1,
	"STALE_STATUS": 2,
}

func (x ClusterStatus_Substate) String() string {
	return proto.EnumName(ClusterStatus_Substate_name, int32(x))
}

func (ClusterStatus_Substate) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_29f9b85b3c7e3a5f, []int{10, 1}
}

// Indicates whether to consume capacity from an reservation or not.
type ReservationAffinity_Type int32

const (
	ReservationAffinity_TYPE_UNSPECIFIED ReservationAffinity_Type = 0
	// Do not consume from any allocated capacity.
	ReservationAffinity_NO_RESERVATION ReservationAffinity_Type = 1
	// Consume any reservation available.
	ReservationAffinity_ANY_RESERVATION ReservationAffinity_Type = 2
	// Must consume from a specific reservation. Must specify key value fields
	// for specifying the reservations.
	ReservationAffinity_SPECIFIC_RESERVATION ReservationAffinity_Type = 3
)

var ReservationAffinity_Type_name = map[int32]string{
	0: "TYPE_UNSPECIFIED",
	1: "NO_RESERVATION",
	2: "ANY_RESERVATION",
	3: "SPECIFIC_RESERVATION",
}

var ReservationAffinity_Type_value = map[string]int32{
	"TYPE_UNSPECIFIED":     0,
	"NO_RESERVATION":       1,
	"ANY_RESERVATION":      2,
	"SPECIFIC_RESERVATION": 3,
}

func (x ReservationAffinity_Type) String() string {
	return proto.EnumName(ReservationAffinity_Type_name, int32(x))
}

func (ReservationAffinity_Type) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_29f9b85b3c7e3a5f, []int{24, 0}
}

// Describes the identifying information, config, and status of
// a cluster of Compute Engine instances.
type Cluster struct {
	// Required. The Google Cloud Platform project ID that the cluster belongs to.
	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
	// Required. The cluster name. Cluster names within a project must be
	// unique. Names of deleted clusters can be reused.
	ClusterName string `protobuf:"bytes,2,opt,name=cluster_name,json=clusterName,proto3" json:"cluster_name,omitempty"`
	// Required. The cluster config. Note that Dataproc may set
	// default values, and values may change when clusters are updated.
	Config *ClusterConfig `protobuf:"bytes,3,opt,name=config,proto3" json:"config,omitempty"`
	// Optional. The labels to associate with this cluster.
	// Label **keys** must contain 1 to 63 characters, and must conform to
	// [RFC 1035](https://www.ietf.org/rfc/rfc1035.txt).
	// Label **values** may be empty, but, if present, must contain 1 to 63
	// characters, and must conform to [RFC
	// 1035](https://www.ietf.org/rfc/rfc1035.txt). No more than 32 labels can be
	// associated with a cluster.
	Labels map[string]string `protobuf:"bytes,8,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// Output only. Cluster status.
	Status *ClusterStatus `protobuf:"bytes,4,opt,name=status,proto3" json:"status,omitempty"`
	// Output only. The previous cluster status.
	StatusHistory []*ClusterStatus `protobuf:"bytes,7,rep,name=status_history,json=statusHistory,proto3" json:"status_history,omitempty"`
	// Output only. A cluster UUID (Unique Universal Identifier). Dataproc
	// generates this value when it creates the cluster.
	ClusterUuid string `protobuf:"bytes,6,opt,name=cluster_uuid,json=clusterUuid,proto3" json:"cluster_uuid,omitempty"`
	// Contains cluster daemon metrics such as HDFS and YARN stats.
	//
	// **Beta Feature**: This report is available for testing purposes only. It
	// may be changed before final release.
	Metrics              *ClusterMetrics `protobuf:"bytes,9,opt,name=metrics,proto3" json:"metrics,omitempty"`
	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
	XXX_unrecognized     []byte          `json:"-"`
	XXX_sizecache        int32           `json:"-"`
}

func (m *Cluster) Reset()         { *m = Cluster{} }
func (m *Cluster) String() string { return proto.CompactTextString(m) }
func (*Cluster) ProtoMessage()    {}
func (*Cluster) Descriptor() ([]byte, []int) {
	return fileDescriptor_29f9b85b3c7e3a5f, []int{0}
}

func (m *Cluster) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Cluster.Unmarshal(m, b)
}
func (m *Cluster) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Cluster.Marshal(b, m, deterministic)
}
func (m *Cluster) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Cluster.Merge(m, src)
}
func (m *Cluster) XXX_Size() int {
	return xxx_messageInfo_Cluster.Size(m)
}
func (m *Cluster) XXX_DiscardUnknown() {
	xxx_messageInfo_Cluster.DiscardUnknown(m)
}

var xxx_messageInfo_Cluster proto.InternalMessageInfo

func (m *Cluster) GetProjectId() string {
	if m != nil {
		return m.ProjectId
	}
	return ""
}

func (m *Cluster) GetClusterName() string {
	if m != nil {
		return m.ClusterName
	}
	return ""
}

func (m *Cluster) GetConfig() *ClusterConfig {
	if m != nil {
		return m.Config
	}
	return nil
}

func (m *Cluster) GetLabels() map[string]string {
	if m != nil {
		return m.Labels
	}
	return nil
}

func (m *Cluster) GetStatus() *ClusterStatus {
	if m != nil {
		return m.Status
	}
	return nil
}

func (m *Cluster) GetStatusHistory() []*ClusterStatus {
	if m != nil {
		return m.StatusHistory
	}
	return nil
}

func (m *Cluster) GetClusterUuid() string {
	if m != nil {
		return m.ClusterUuid
	}
	return ""
}

func (m *Cluster) GetMetrics() *ClusterMetrics {
	if m != nil {
		return m.Metrics
	}
	return nil
}

// The cluster config.
type ClusterConfig struct {
	// Optional. A Cloud Storage bucket used to stage job
	// dependencies, config files, and job driver console output.
	// If you do not specify a staging bucket, Cloud
	// Dataproc will determine a Cloud Storage location (US,
	// ASIA, or EU) for your cluster's staging bucket according to the
	// Compute Engine zone where your cluster is deployed, and then create
	// and manage this project-level, per-location bucket (see
	// [Dataproc staging
	// bucket](/dataproc/docs/concepts/configuring-clusters/staging-bucket)).
	ConfigBucket string `protobuf:"bytes,1,opt,name=config_bucket,json=configBucket,proto3" json:"config_bucket,omitempty"`
	// Optional. The shared Compute Engine config settings for
	// all instances in a cluster.
	GceClusterConfig *GceClusterConfig `protobuf:"bytes,8,opt,name=gce_cluster_config,json=gceClusterConfig,proto3" json:"gce_cluster_config,omitempty"`
	// Optional. The Compute Engine config settings for
	// the master instance in a cluster.
	MasterConfig *InstanceGroupConfig `protobuf:"bytes,9,opt,name=master_config,json=masterConfig,proto3" json:"master_config,omitempty"`
	// Optional. The Compute Engine config settings for
	// worker instances in a cluster.
	WorkerConfig *InstanceGroupConfig `protobuf:"bytes,10,opt,name=worker_config,json=workerConfig,proto3" json:"worker_config,omitempty"`
	// Optional. The Compute Engine config settings for
	// additional worker instances in a cluster.
	SecondaryWorkerConfig *InstanceGroupConfig `protobuf:"bytes,12,opt,name=secondary_worker_config,json=secondaryWorkerConfig,proto3" json:"secondary_worker_config,omitempty"`
	// Optional. The config settings for software inside the cluster.
	SoftwareConfig *SoftwareConfig `protobuf:"bytes,13,opt,name=software_config,json=softwareConfig,proto3" json:"software_config,omitempty"`
	// Optional. Commands to execute on each node after config is
	// completed. By default, executables are run on master and all worker nodes.
	// You can test a node's `role` metadata to run an executable on
	// a master or worker node, as shown below using `curl` (you can also use
	// `wget`):
	//
	//     ROLE=$(curl -H Metadata-Flavor:Google
	//     http://metadata/computeMetadata/v1/instance/attributes/dataproc-role)
	//     if [[ "${ROLE}" == 'Master' ]]; then
	//       ... master specific actions ...
	//     else
	//       ... worker specific actions ...
	//     fi
	InitializationActions []*NodeInitializationAction `protobuf:"bytes,11,rep,name=initialization_actions,json=initializationActions,proto3" json:"initialization_actions,omitempty"`
	// Optional. Encryption settings for the cluster.
	EncryptionConfig *EncryptionConfig `protobuf:"bytes,15,opt,name=encryption_config,json=encryptionConfig,proto3" json:"encryption_config,omitempty"`
	// Optional. Autoscaling config for the policy associated with the cluster.
	// Cluster does not autoscale if this field is unset.
	AutoscalingConfig *AutoscalingConfig `protobuf:"bytes,18,opt,name=autoscaling_config,json=autoscalingConfig,proto3" json:"autoscaling_config,omitempty"`
	// Optional. Security settings for the cluster.
	SecurityConfig *SecurityConfig `protobuf:"bytes,16,opt,name=security_config,json=securityConfig,proto3" json:"security_config,omitempty"`
	// Optional. Lifecycle setting for the cluster.
	LifecycleConfig      *LifecycleConfig `protobuf:"bytes,17,opt,name=lifecycle_config,json=lifecycleConfig,proto3" json:"lifecycle_config,omitempty"`
	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
	XXX_unrecognized     []byte           `json:"-"`
	XXX_sizecache        int32            `json:"-"`
}

func (m *ClusterConfig) Reset()         { *m = ClusterConfig{} }
func (m *ClusterConfig) String() string { return proto.CompactTextString(m) }
func (*ClusterConfig) ProtoMessage()    {}
func (*ClusterConfig) Descriptor() ([]byte, []int) {
	return fileDescriptor_29f9b85b3c7e3a5f, []int{1}
}

func (m *ClusterConfig) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ClusterConfig.Unmarshal(m, b)
}
func (m *ClusterConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ClusterConfig.Marshal(b, m, deterministic)
}
func (m *ClusterConfig) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ClusterConfig.Merge(m, src)
}
func (m *ClusterConfig) XXX_Size() int {
	return xxx_messageInfo_ClusterConfig.Size(m)
}
func (m *ClusterConfig) XXX_DiscardUnknown() {
	xxx_messageInfo_ClusterConfig.DiscardUnknown(m)
}

var xxx_messageInfo_ClusterConfig proto.InternalMessageInfo

func (m *ClusterConfig) GetConfigBucket() string {
	if m != nil {
		return m.ConfigBucket
	}
	return ""
}

func (m *ClusterConfig) GetGceClusterConfig() *GceClusterConfig {
	if m != nil {
		return m.GceClusterConfig
	}
	return nil
}

func (m *ClusterConfig) GetMasterConfig() *InstanceGroupConfig {
	if m != nil {
		return m.MasterConfig
	}
	return nil
}

func (m *ClusterConfig) GetWorkerConfig() *InstanceGroupConfig {
	if m != nil {
		return m.WorkerConfig
	}
	return nil
}

func (m *ClusterConfig) GetSecondaryWorkerConfig() *InstanceGroupConfig {
	if m != nil {
		return m.SecondaryWorkerConfig
	}
	return nil
}

func (m *ClusterConfig) GetSoftwareConfig() *SoftwareConfig {
	if m != nil {
		return m.SoftwareConfig
	}
	return nil
}

func (m *ClusterConfig) GetInitializationActions() []*NodeInitializationAction {
	if m != nil {
		return m.InitializationActions
	}
	return nil
}

func (m *ClusterConfig) GetEncryptionConfig() *EncryptionConfig {
	if m != nil {
		return m.EncryptionConfig
	}
	return nil
}

func (m *ClusterConfig) GetAutoscalingConfig() *AutoscalingConfig {
	if m != nil {
		return m.AutoscalingConfig
	}
	return nil
}

func (m *ClusterConfig) GetSecurityConfig() *SecurityConfig {
	if m != nil {
		return m.SecurityConfig
	}
	return nil
}

func (m *ClusterConfig) GetLifecycleConfig() *LifecycleConfig {
	if m != nil {
		return m.LifecycleConfig
	}
	return nil
}

// Autoscaling Policy config associated with the cluster.
type AutoscalingConfig struct {
	// Optional. The autoscaling policy used by the cluster.
	//
	// Only resource names including projectid and location (region) are valid.
	// Examples:
	//
	// * `https://www.googleapis.com/compute/v1/projects/[project_id]/locations/[dataproc_region]/autoscalingPolicies/[policy_id]`
	// * `projects/[project_id]/locations/[dataproc_region]/autoscalingPolicies/[policy_id]`
	//
	// Note that the policy must be in the same project and Dataproc region.
	PolicyUri            string   `protobuf:"bytes,1,opt,name=policy_uri,json=policyUri,proto3" json:"policy_uri,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *AutoscalingConfig) Reset()         { *m = AutoscalingConfig{} }
func (m *AutoscalingConfig) String() string { return proto.CompactTextString(m) }
func (*AutoscalingConfig) ProtoMessage()    {}
func (*AutoscalingConfig) Descriptor() ([]byte, []int) {
	return fileDescriptor_29f9b85b3c7e3a5f, []int{2}
}

func (m *AutoscalingConfig) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_AutoscalingConfig.Unmarshal(m, b)
}
func (m *AutoscalingConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_AutoscalingConfig.Marshal(b, m, deterministic)
}
func (m *AutoscalingConfig) XXX_Merge(src proto.Message) {
	xxx_messageInfo_AutoscalingConfig.Merge(m, src)
}
func (m *AutoscalingConfig) XXX_Size() int {
	return xxx_messageInfo_AutoscalingConfig.Size(m)
}
func (m *AutoscalingConfig) XXX_DiscardUnknown() {
	xxx_messageInfo_AutoscalingConfig.DiscardUnknown(m)
}

var xxx_messageInfo_AutoscalingConfig proto.InternalMessageInfo

func (m *AutoscalingConfig) GetPolicyUri() string {
	if m != nil {
		return m.PolicyUri
	}
	return ""
}

// Encryption settings for the cluster.
type EncryptionConfig struct {
	// Optional. The Cloud KMS key name to use for PD disk encryption for all
	// instances in the cluster.
	GcePdKmsKeyName      string   `protobuf:"bytes,1,opt,name=gce_pd_kms_key_name,json=gcePdKmsKeyName,proto3" json:"gce_pd_kms_key_name,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *EncryptionConfig) Reset()         { *m = EncryptionConfig{} }
func (m *EncryptionConfig) String() string { return proto.CompactTextString(m) }
func (*EncryptionConfig) ProtoMessage()    {}
func (*EncryptionConfig) Descriptor() ([]byte, []int) {
	return fileDescriptor_29f9b85b3c7e3a5f, []int{3}
}

func (m *EncryptionConfig) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_EncryptionConfig.Unmarshal(m, b)
}
func (m *EncryptionConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_EncryptionConfig.Marshal(b, m, deterministic)
}
func (m *EncryptionConfig) XXX_Merge(src proto.Message) {
	xxx_messageInfo_EncryptionConfig.Merge(m, src)
}
func (m *EncryptionConfig) XXX_Size() int {
	return xxx_messageInfo_EncryptionConfig.Size(m)
}
func (m *EncryptionConfig) XXX_DiscardUnknown() {
	xxx_messageInfo_EncryptionConfig.DiscardUnknown(m)
}

var xxx_messageInfo_EncryptionConfig proto.InternalMessageInfo

func (m *EncryptionConfig) GetGcePdKmsKeyName() string {
	if m != nil {
		return m.GcePdKmsKeyName
	}
	return ""
}

// Common config settings for resources of Compute Engine cluster
// instances, applicable to all instances in the cluster.
type GceClusterConfig struct {
	// Optional. The zone where the Compute Engine cluster will be located.
	// On a create request, it is required in the "global" region. If omitted
	// in a non-global Dataproc region, the service will pick a zone in the
	// corresponding Compute Engine region. On a get request, zone will
	// always be present.
	//
	// A full URL, partial URI, or short name are valid. Examples:
	//
	// * `https://www.googleapis.com/compute/v1/projects/[project_id]/zones/[zone]`
	// * `projects/[project_id]/zones/[zone]`
	// * `us-central1-f`
	ZoneUri string `protobuf:"bytes,1,opt,name=zone_uri,json=zoneUri,proto3" json:"zone_uri,omitempty"`
	// Optional. The Compute Engine network to be used for machine
	// communications. Cannot be specified with subnetwork_uri. If neither
	// `network_uri` nor `subnetwork_uri` is specified, the "default" network of
	// the project is used, if it exists. Cannot be a "Custom Subnet Network" (see
	// [Using Subnetworks](/compute/docs/subnetworks) for more information).
	//
	// A full URL, partial URI, or short name are valid. Examples:
	//
	// * `https://www.googleapis.com/compute/v1/projects/[project_id]/regions/global/default`
	// * `projects/[project_id]/regions/global/default`
	// * `default`
	NetworkUri string `protobuf:"bytes,2,opt,name=network_uri,json=networkUri,proto3" json:"network_uri,omitempty"`
	// Optional. The Compute Engine subnetwork to be used for machine
	// communications. Cannot be specified with network_uri.
	//
	// A full URL, partial URI, or short name are valid. Examples:
	//
	// * `https://www.googleapis.com/compute/v1/projects/[project_id]/regions/us-east1/subnetworks/sub0`
	// * `projects/[project_id]/regions/us-east1/subnetworks/sub0`
	// * `sub0`
	SubnetworkUri string `protobuf:"bytes,6,opt,name=subnetwork_uri,json=subnetworkUri,proto3" json:"subnetwork_uri,omitempty"`
	// Optional. If true, all instances in the cluster will only have internal IP
	// addresses. By default, clusters are not restricted to internal IP
	// addresses, and will have ephemeral external IP addresses assigned to each
	// instance. This `internal_ip_only` restriction can only be enabled for
	// subnetwork enabled networks, and all off-cluster dependencies must be
	// configured to be accessible without external IP addresses.
	InternalIpOnly bool `protobuf:"varint,7,opt,name=internal_ip_only,json=internalIpOnly,proto3" json:"internal_ip_only,omitempty"`
	// Optional. The [Dataproc service
	// account](/dataproc/docs/concepts/configuring-clusters/service-accounts#service_accounts_in_cloud_dataproc)
	// (also see [VM Data Plane
	// identity](/dataproc/docs/concepts/iam/dataproc-principals#vm_service_account_data_plane_identity))
	// used by Dataproc cluster VM instances to access Google Cloud Platform
	// services.
	//
	// If not specified, the
	// [Compute Engine default service
	// account](/compute/docs/access/service-accounts#default_service_account)
	// is used.
	ServiceAccount string `protobuf:"bytes,8,opt,name=service_account,json=serviceAccount,proto3" json:"service_account,omitempty"`
	// Optional. The URIs of service account scopes to be included in
	// Compute Engine instances. The following base set of scopes is always
	// included:
	//
	// * https://www.googleapis.com/auth/cloud.useraccounts.readonly
	// * https://www.googleapis.com/auth/devstorage.read_write
	// * https://www.googleapis.com/auth/logging.write
	//
	// If no scopes are specified, the following defaults are also provided:
	//
	// * https://www.googleapis.com/auth/bigquery
	// * https://www.googleapis.com/auth/bigtable.admin.table
	// * https://www.googleapis.com/auth/bigtable.data
	// * https://www.googleapis.com/auth/devstorage.full_control
	ServiceAccountScopes []string `protobuf:"bytes,3,rep,name=service_account_scopes,json=serviceAccountScopes,proto3" json:"service_account_scopes,omitempty"`
	// The Compute Engine tags to add to all instances (see
	// [Tagging instances](/compute/docs/label-or-tag-resources#tags)).
	Tags []string `protobuf:"bytes,4,rep,name=tags,proto3" json:"tags,omitempty"`
	// 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)).
	Metadata map[string]string `protobuf:"bytes,5,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// Optional. Reservation Affinity for consuming Zonal reservation.
	ReservationAffinity  *ReservationAffinity `protobuf:"bytes,11,opt,name=reservation_affinity,json=reservationAffinity,proto3" json:"reservation_affinity,omitempty"`
	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
	XXX_unrecognized     []byte               `json:"-"`
	XXX_sizecache        int32                `json:"-"`
}

func (m *GceClusterConfig) Reset()         { *m = GceClusterConfig{} }
func (m *GceClusterConfig) String() string { return proto.CompactTextString(m) }
func (*GceClusterConfig) ProtoMessage()    {}
func (*GceClusterConfig) Descriptor() ([]byte, []int) {
	return fileDescriptor_29f9b85b3c7e3a5f, []int{4}
}

func (m *GceClusterConfig) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GceClusterConfig.Unmarshal(m, b)
}
func (m *GceClusterConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GceClusterConfig.Marshal(b, m, deterministic)
}
func (m *GceClusterConfig) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GceClusterConfig.Merge(m, src)
}
func (m *GceClusterConfig) XXX_Size() int {
	return xxx_messageInfo_GceClusterConfig.Size(m)
}
func (m *GceClusterConfig) XXX_DiscardUnknown() {
	xxx_messageInfo_GceClusterConfig.DiscardUnknown(m)
}

var xxx_messageInfo_GceClusterConfig proto.InternalMessageInfo

func (m *GceClusterConfig) GetZoneUri() string {
	if m != nil {
		return m.ZoneUri
	}
	return ""
}

func (m *GceClusterConfig) GetNetworkUri() string {
	if m != nil {
		return m.NetworkUri
	}
	return ""
}

func (m *GceClusterConfig) GetSubnetworkUri() string {
	if m != nil {
		return m.SubnetworkUri
	}
	return ""
}

func (m *GceClusterConfig) GetInternalIpOnly() bool {
	if m != nil {
		return m.InternalIpOnly
	}
	return false
}

func (m *GceClusterConfig) GetServiceAccount() string {
	if m != nil {
		return m.ServiceAccount
	}
	return ""
}

func (m *GceClusterConfig) GetServiceAccountScopes() []string {
	if m != nil {
		return m.ServiceAccountScopes
	}
	return nil
}

func (m *GceClusterConfig) GetTags() []string {
	if m != nil {
		return m.Tags
	}
	return nil
}

func (m *GceClusterConfig) GetMetadata() map[string]string {
	if m != nil {
		return m.Metadata
	}
	return nil
}

func (m *GceClusterConfig) GetReservationAffinity() *ReservationAffinity {
	if m != nil {
		return m.ReservationAffinity
	}
	return nil
}

// The config settings for Compute Engine resources in
// an instance group, such as a master or worker group.
type InstanceGroupConfig struct {
	// Optional. The number of VM instances in the instance group.
	// For master instance groups, must be set to 1.
	NumInstances int32 `protobuf:"varint,1,opt,name=num_instances,json=numInstances,proto3" json:"num_instances,omitempty"`
	// Output only. The list of instance names. Dataproc derives the names
	// from `cluster_name`, `num_instances`, and the instance group.
	InstanceNames []string `protobuf:"bytes,2,rep,name=instance_names,json=instanceNames,proto3" json:"instance_names,omitempty"`
	// Optional. The Compute Engine image resource used for cluster
	// instances. It can be specified or may be inferred from
	// `SoftwareConfig.image_version`.
	ImageUri string `protobuf:"bytes,3,opt,name=image_uri,json=imageUri,proto3" json:"image_uri,omitempty"`
	// Optional. The Compute Engine machine type used for cluster instances.
	//
	// A full URL, partial URI, or short name are valid. Examples:
	//
	// * `https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2`
	// * `projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2`
	// * `n1-standard-2`
	//
	// **Auto Zone Exception**: If you are using the Dataproc
	// [Auto Zone
	// Placement](/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement)
	// feature, you must use the short name of the machine type
	// resource, for example, `n1-standard-2`.
	MachineTypeUri string `protobuf:"bytes,4,opt,name=machine_type_uri,json=machineTypeUri,proto3" json:"machine_type_uri,omitempty"`
	// Optional. Disk option config settings.
	DiskConfig *DiskConfig `protobuf:"bytes,5,opt,name=disk_config,json=diskConfig,proto3" json:"disk_config,omitempty"`
	// Optional. Specifies that this instance group contains preemptible
	// instances.
	IsPreemptible bool `protobuf:"varint,6,opt,name=is_preemptible,json=isPreemptible,proto3" json:"is_preemptible,omitempty"`
	// Output only. The config for Compute Engine Instance Group
	// Manager that manages this group.
	// This is only used for preemptible instance groups.
	ManagedGroupConfig *ManagedGroupConfig `protobuf:"bytes,7,opt,name=managed_group_config,json=managedGroupConfig,proto3" json:"managed_group_config,omitempty"`
	// Optional. The Compute Engine accelerator configuration for these
	// instances.
	Accelerators []*AcceleratorConfig `protobuf:"bytes,8,rep,name=accelerators,proto3" json:"accelerators,omitempty"`
	// Optional. Specifies the minimum cpu platform for the Instance Group.
	// See [Dataproc&rarr;Minimum CPU Platform]
	// (/dataproc/docs/concepts/compute/dataproc-min-cpu).
	MinCpuPlatform       string   `protobuf:"bytes,9,opt,name=min_cpu_platform,json=minCpuPlatform,proto3" json:"min_cpu_platform,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *InstanceGroupConfig) Reset()         { *m = InstanceGroupConfig{} }
func (m *InstanceGroupConfig) String() string { return proto.CompactTextString(m) }
func (*InstanceGroupConfig) ProtoMessage()    {}
func (*InstanceGroupConfig) Descriptor() ([]byte, []int) {
	return fileDescriptor_29f9b85b3c7e3a5f, []int{5}
}

func (m *InstanceGroupConfig) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_InstanceGroupConfig.Unmarshal(m, b)
}
func (m *InstanceGroupConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_InstanceGroupConfig.Marshal(b, m, deterministic)
}
func (m *InstanceGroupConfig) XXX_Merge(src proto.Message) {
	xxx_messageInfo_InstanceGroupConfig.Merge(m, src)
}
func (m *InstanceGroupConfig) XXX_Size() int {
	return xxx_messageInfo_InstanceGroupConfig.Size(m)
}
func (m *InstanceGroupConfig) XXX_DiscardUnknown() {
	xxx_messageInfo_InstanceGroupConfig.DiscardUnknown(m)
}

var xxx_messageInfo_InstanceGroupConfig proto.InternalMessageInfo

func (m *InstanceGroupConfig) GetNumInstances() int32 {
	if m != nil {
		return m.NumInstances
	}
	return 0
}

func (m *InstanceGroupConfig) GetInstanceNames() []string {
	if m != nil {
		return m.InstanceNames
	}
	return nil
}

func (m *InstanceGroupConfig) GetImageUri() string {
	if m != nil {
		return m.ImageUri
	}
	return ""
}

func (m *InstanceGroupConfig) GetMachineTypeUri() string {
	if m != nil {
		return m.MachineTypeUri
	}
	return ""
}

func (m *InstanceGroupConfig) GetDiskConfig() *DiskConfig {
	if m != nil {
		return m.DiskConfig
	}
	return nil
}

func (m *InstanceGroupConfig) GetIsPreemptible() bool {
	if m != nil {
		return m.IsPreemptible
	}
	return false
}

func (m *InstanceGroupConfig) GetManagedGroupConfig() *ManagedGroupConfig {
	if m != nil {
		return m.ManagedGroupConfig
	}
	return nil
}

func (m *InstanceGroupConfig) GetAccelerators() []*AcceleratorConfig {
	if m != nil {
		return m.Accelerators
	}
	return nil
}

func (m *InstanceGroupConfig) GetMinCpuPlatform() string {
	if m != nil {
		return m.MinCpuPlatform
	}
	return ""
}

// Specifies the resources used to actively manage an instance group.
type ManagedGroupConfig struct {
	// Output only. The name of the Instance Template used for the Managed
	// Instance Group.
	InstanceTemplateName string `protobuf:"bytes,1,opt,name=instance_template_name,json=instanceTemplateName,proto3" json:"instance_template_name,omitempty"`
	// Output only. The name of the Instance Group Manager for this group.
	InstanceGroupManagerName string   `protobuf:"bytes,2,opt,name=instance_group_manager_name,json=instanceGroupManagerName,proto3" json:"instance_group_manager_name,omitempty"`
	XXX_NoUnkeyedLiteral     struct{} `json:"-"`
	XXX_unrecognized         []byte   `json:"-"`
	XXX_sizecache            int32    `json:"-"`
}

func (m *ManagedGroupConfig) Reset()         { *m = ManagedGroupConfig{} }
func (m *ManagedGroupConfig) String() string { return proto.CompactTextString(m) }
func (*ManagedGroupConfig) ProtoMessage()    {}
func (*ManagedGroupConfig) Descriptor() ([]byte, []int) {
	return fileDescriptor_29f9b85b3c7e3a5f, []int{6}
}

func (m *ManagedGroupConfig) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ManagedGroupConfig.Unmarshal(m, b)
}
func (m *ManagedGroupConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ManagedGroupConfig.Marshal(b, m, deterministic)
}
func (m *ManagedGroupConfig) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ManagedGroupConfig.Merge(m, src)
}
func (m *ManagedGroupConfig) XXX_Size() int {
	return xxx_messageInfo_ManagedGroupConfig.Size(m)
}
func (m *ManagedGroupConfig) XXX_DiscardUnknown() {
	xxx_messageInfo_ManagedGroupConfig.DiscardUnknown(m)
}

var xxx_messageInfo_ManagedGroupConfig proto.InternalMessageInfo

func (m *ManagedGroupConfig) GetInstanceTemplateName() string {
	if m != nil {
		return m.InstanceTemplateName
	}
	return ""
}

func (m *ManagedGroupConfig) GetInstanceGroupManagerName() string {
	if m != nil {
		return m.InstanceGroupManagerName
	}
	return ""
}

// Specifies the type and number of accelerator cards attached to the instances
// of an instance. See [GPUs on Compute Engine](/compute/docs/gpus/).
type AcceleratorConfig struct {
	// Full URL, partial URI, or short name of the accelerator type resource to
	// expose to this instance. See
	// [Compute Engine
	// AcceleratorTypes](/compute/docs/reference/beta/acceleratorTypes).
	//
	// Examples:
	//
	// * `https://www.googleapis.com/compute/beta/projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80`
	// * `projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80`
	// * `nvidia-tesla-k80`
	//
	// **Auto Zone Exception**: If you are using the Dataproc
	// [Auto Zone
	// Placement](/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement)
	// feature, you must use the short name of the accelerator type
	// resource, for example, `nvidia-tesla-k80`.
	AcceleratorTypeUri string `protobuf:"bytes,1,opt,name=accelerator_type_uri,json=acceleratorTypeUri,proto3" json:"accelerator_type_uri,omitempty"`
	// The number of the accelerator cards of this type exposed to this instance.
	AcceleratorCount     int32    `protobuf:"varint,2,opt,name=accelerator_count,json=acceleratorCount,proto3" json:"accelerator_count,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *AcceleratorConfig) Reset()         { *m = AcceleratorConfig{} }
func (m *AcceleratorConfig) String() string { return proto.CompactTextString(m) }
func (*AcceleratorConfig) ProtoMessage()    {}
func (*AcceleratorConfig) Descriptor() ([]byte, []int) {
	return fileDescriptor_29f9b85b3c7e3a5f, []int{7}
}

func (m *AcceleratorConfig) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_AcceleratorConfig.Unmarshal(m, b)
}
func (m *AcceleratorConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_AcceleratorConfig.Marshal(b, m, deterministic)
}
func (m *AcceleratorConfig) XXX_Merge(src proto.Message) {
	xxx_messageInfo_AcceleratorConfig.Merge(m, src)
}
func (m *AcceleratorConfig) XXX_Size() int {
	return xxx_messageInfo_AcceleratorConfig.Size(m)
}
func (m *AcceleratorConfig) XXX_DiscardUnknown() {
	xxx_messageInfo_AcceleratorConfig.DiscardUnknown(m)
}

var xxx_messageInfo_AcceleratorConfig proto.InternalMessageInfo

func (m *AcceleratorConfig) GetAcceleratorTypeUri() string {
	if m != nil {
		return m.AcceleratorTypeUri
	}
	return ""
}

func (m *AcceleratorConfig) GetAcceleratorCount() int32 {
	if m != nil {
		return m.AcceleratorCount
	}
	return 0
}

// Specifies the config of disk options for a group of VM instances.
type DiskConfig struct {
	// Optional. Type of the boot disk (default is "pd-standard").
	// Valid values: "pd-ssd" (Persistent Disk Solid State Drive) or
	// "pd-standard" (Persistent Disk Hard Disk Drive).
	BootDiskType string `protobuf:"bytes,3,opt,name=boot_disk_type,json=bootDiskType,proto3" json:"boot_disk_type,omitempty"`
	// Optional. Size in GB of the boot disk (default is 500GB).
	BootDiskSizeGb int32 `protobuf:"varint,1,opt,name=boot_disk_size_gb,json=bootDiskSizeGb,proto3" json:"boot_disk_size_gb,omitempty"`
	// Optional. Number of attached SSDs, from 0 to 4 (default is 0).
	// If SSDs are not attached, the boot disk is used to store runtime logs and
	// [HDFS](https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data.
	// If one or more SSDs are attached, this runtime bulk
	// data is spread across them, and the boot disk contains only basic
	// config and installed binaries.
	NumLocalSsds         int32    `protobuf:"varint,2,opt,name=num_local_ssds,json=numLocalSsds,proto3" json:"num_local_ssds,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *DiskConfig) Reset()         { *m = DiskConfig{} }
func (m *DiskConfig) String() string { return proto.CompactTextString(m) }
func (*DiskConfig) ProtoMessage()    {}
func (*DiskConfig) Descriptor() ([]byte, []int) {
	return fileDescriptor_29f9b85b3c7e3a5f, []int{8}
}

func (m *DiskConfig) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_DiskConfig.Unmarshal(m, b)
}
func (m *DiskConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_DiskConfig.Marshal(b, m, deterministic)
}
func (m *DiskConfig) XXX_Merge(src proto.Message) {
	xxx_messageInfo_DiskConfig.Merge(m, src)
}
func (m *DiskConfig) XXX_Size() int {
	return xxx_messageInfo_DiskConfig.Size(m)
}
func (m *DiskConfig) XXX_DiscardUnknown() {
	xxx_messageInfo_DiskConfig.DiscardUnknown(m)
}

var xxx_messageInfo_DiskConfig proto.InternalMessageInfo

func (m *DiskConfig) GetBootDiskType() string {
	if m != nil {
		return m.BootDiskType
	}
	return ""
}

func (m *DiskConfig) GetBootDiskSizeGb() int32 {
	if m != nil {
		return m.BootDiskSizeGb
	}
	return 0
}

func (m *DiskConfig) GetNumLocalSsds() int32 {
	if m != nil {
		return m.NumLocalSsds
	}
	return 0
}

// Specifies an executable to run on a fully configured node and a
// timeout period for executable completion.
type NodeInitializationAction struct {
	// Required. Cloud Storage URI of executable file.
	ExecutableFile string `protobuf:"bytes,1,opt,name=executable_file,json=executableFile,proto3" json:"executable_file,omitempty"`
	// Optional. Amount of time executable has to complete. Default is
	// 10 minutes (see JSON representation of
	// [Duration](https://developers.google.com/protocol-buffers/docs/proto3#json)).
	//
	// Cluster creation fails with an explanatory error message (the
	// name of the executable that caused the error and the exceeded timeout
	// period) if the executable is not completed at end of the timeout period.
	ExecutionTimeout     *duration.Duration `protobuf:"bytes,2,opt,name=execution_timeout,json=executionTimeout,proto3" json:"execution_timeout,omitempty"`
	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
	XXX_unrecognized     []byte             `json:"-"`
	XXX_sizecache        int32              `json:"-"`
}

func (m *NodeInitializationAction) Reset()         { *m = NodeInitializationAction{} }
func (m *NodeInitializationAction) String() string { return proto.CompactTextString(m) }
func (*NodeInitializationAction) ProtoMessage()    {}
func (*NodeInitializationAction) Descriptor() ([]byte, []int) {
	return fileDescriptor_29f9b85b3c7e3a5f, []int{9}
}

func (m *NodeInitializationAction) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_NodeInitializationAction.Unmarshal(m, b)
}
func (m *NodeInitializationAction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_NodeInitializationAction.Marshal(b, m, deterministic)
}
func (m *NodeInitializationAction) XXX_Merge(src proto.Message) {
	xxx_messageInfo_NodeInitializationAction.Merge(m, src)
}
func (m *NodeInitializationAction) XXX_Size() int {
	return xxx_messageInfo_NodeInitializationAction.Size(m)
}
func (m *NodeInitializationAction) XXX_DiscardUnknown() {
	xxx_messageInfo_NodeInitializationAction.DiscardUnknown(m)
}

var xxx_messageInfo_NodeInitializationAction proto.InternalMessageInfo

func (m *NodeInitializationAction) GetExecutableFile() string {
	if m != nil {
		return m.ExecutableFile
	}
	return ""
}

func (m *NodeInitializationAction) GetExecutionTimeout() *duration.Duration {
	if m != nil {
		return m.ExecutionTimeout
	}
	return nil
}

// The status of a cluster and its instances.
type ClusterStatus struct {
	// Output only. The cluster's state.
	State ClusterStatus_State `protobuf:"varint,1,opt,name=state,proto3,enum=google.cloud.dataproc.v1.ClusterStatus_State" json:"state,omitempty"`
	// Optional. Output only. Details of cluster's state.
	Detail string `protobuf:"bytes,2,opt,name=detail,proto3" json:"detail,omitempty"`
	// Output only. Time when this state was entered (see JSON representation of
	// [Timestamp](https://developers.google.com/protocol-buffers/docs/proto3#json)).
	StateStartTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=state_start_time,json=stateStartTime,proto3" json:"state_start_time,omitempty"`
	// Output only. Additional state information that includes
	// status reported by the agent.
	Substate             ClusterStatus_Substate `protobuf:"varint,4,opt,name=substate,proto3,enum=google.cloud.dataproc.v1.ClusterStatus_Substate" json:"substate,omitempty"`
	XXX_NoUnkeyedLiteral struct{}               `json:"-"`
	XXX_unrecognized     []byte                 `json:"-"`
	XXX_sizecache        int32                  `json:"-"`
}

func (m *ClusterStatus) Reset()         { *m = ClusterStatus{} }
func (m *ClusterStatus) String() string { return proto.CompactTextString(m) }
func (*ClusterStatus) ProtoMessage()    {}
func (*ClusterStatus) Descriptor() ([]byte, []int) {
	return fileDescriptor_29f9b85b3c7e3a5f, []int{10}
}

func (m *ClusterStatus) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ClusterStatus.Unmarshal(m, b)
}
func (m *ClusterStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ClusterStatus.Marshal(b, m, deterministic)
}
func (m *ClusterStatus) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ClusterStatus.Merge(m, src)
}
func (m *ClusterStatus) XXX_Size() int {
	return xxx_messageInfo_ClusterStatus.Size(m)
}
func (m *ClusterStatus) XXX_DiscardUnknown() {
	xxx_messageInfo_ClusterStatus.DiscardUnknown(m)
}

var xxx_messageInfo_ClusterStatus proto.InternalMessageInfo

func (m *ClusterStatus) GetState() ClusterStatus_State {
	if m != nil {
		return m.State
	}
	return ClusterStatus_UNKNOWN
}

func (m *ClusterStatus) GetDetail() string {
	if m != nil {
		return m.Detail
	}
	return ""
}

func (m *ClusterStatus) GetStateStartTime() *timestamp.Timestamp {
	if m != nil {
		return m.StateStartTime
	}
	return nil
}

func (m *ClusterStatus) GetSubstate() ClusterStatus_Substate {
	if m != nil {
		return m.Substate
	}
	return ClusterStatus_UNSPECIFIED
}

// Security related configuration, including Kerberos.
type SecurityConfig struct {
	// Kerberos related configuration.
	KerberosConfig       *KerberosConfig `protobuf:"bytes,1,opt,name=kerberos_config,json=kerberosConfig,proto3" json:"kerberos_config,omitempty"`
	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
	XXX_unrecognized     []byte          `json:"-"`
	XXX_sizecache        int32           `json:"-"`
}

func (m *SecurityConfig) Reset()         { *m = SecurityConfig{} }
func (m *SecurityConfig) String() string { return proto.CompactTextString(m) }
func (*SecurityConfig) ProtoMessage()    {}
func (*SecurityConfig) Descriptor() ([]byte, []int) {
	return fileDescriptor_29f9b85b3c7e3a5f, []int{11}
}

func (m *SecurityConfig) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_SecurityConfig.Unmarshal(m, b)
}
func (m *SecurityConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_SecurityConfig.Marshal(b, m, deterministic)
}
func (m *SecurityConfig) XXX_Merge(src proto.Message) {
	xxx_messageInfo_SecurityConfig.Merge(m, src)
}
func (m *SecurityConfig) XXX_Size() int {
	return xxx_messageInfo_SecurityConfig.Size(m)
}
func (m *SecurityConfig) XXX_DiscardUnknown() {
	xxx_messageInfo_SecurityConfig.DiscardUnknown(m)
}

var xxx_messageInfo_SecurityConfig proto.InternalMessageInfo

func (m *SecurityConfig) GetKerberosConfig() *KerberosConfig {
	if m != nil {
		return m.KerberosConfig
	}
	return nil
}

// Specifies Kerberos related configuration.
type KerberosConfig struct {
	// Optional. Flag to indicate whether to Kerberize the cluster.
	EnableKerberos bool `protobuf:"varint,1,opt,name=enable_kerberos,json=enableKerberos,proto3" json:"enable_kerberos,omitempty"`
	// Required. The Cloud Storage URI of a KMS encrypted file containing the root
	// principal password.
	RootPrincipalPasswordUri string `protobuf:"bytes,2,opt,name=root_principal_password_uri,json=rootPrincipalPasswordUri,proto3" json:"root_principal_password_uri,omitempty"`
	// Required. The uri of the KMS key used to encrypt various sensitive
	// files.
	KmsKeyUri string `protobuf:"bytes,3,opt,name=kms_key_uri,json=kmsKeyUri,proto3" json:"kms_key_uri,omitempty"`
	// Optional. The Cloud Storage URI of the keystore file used for SSL
	// encryption. If not provided, Dataproc will provide a self-signed
	// certificate.
	KeystoreUri string `protobuf:"bytes,4,opt,name=keystore_uri,json=keystoreUri,proto3" json:"keystore_uri,omitempty"`
	// Optional. The Cloud Storage URI of the truststore file used for SSL
	// encryption. If not provided, Dataproc will provide a self-signed
	// certificate.
	TruststoreUri string `protobuf:"bytes,5,opt,name=truststore_uri,json=truststoreUri,proto3" json:"truststore_uri,omitempty"`
	// Optional. The Cloud Storage URI of a KMS encrypted file containing the
	// password to the user provided keystore. For the self-signed certificate,
	// this password is generated by Dataproc.
	KeystorePasswordUri string `protobuf:"bytes,6,opt,name=keystore_password_uri,json=keystorePasswordUri,proto3" json:"keystore_password_uri,omitempty"`
	// Optional. The Cloud Storage URI of a KMS encrypted file containing the
	// password to the user provided key. For the self-signed certificate, this
	// password is generated by Dataproc.
	KeyPasswordUri string `protobuf:"bytes,7,opt,name=key_password_uri,json=keyPasswordUri,proto3" json:"key_password_uri,omitempty"`
	// Optional. The Cloud Storage URI of a KMS encrypted file containing the
	// password to the user provided truststore. For the self-signed certificate,
	// this password is generated by Dataproc.
	TruststorePasswordUri string `protobuf:"bytes,8,opt,name=truststore_password_uri,json=truststorePasswordUri,proto3" json:"truststore_password_uri,omitempty"`
	// Optional. The remote realm the Dataproc on-cluster KDC will trust, should
	// the user enable cross realm trust.
	CrossRealmTrustRealm string `protobuf:"bytes,9,opt,name=cross_realm_trust_realm,json=crossRealmTrustRealm,proto3" json:"cross_realm_trust_realm,omitempty"`
	// Optional. The KDC (IP or hostname) for the remote trusted realm in a cross
	// realm trust relationship.
	CrossRealmTrustKdc string `protobuf:"bytes,10,opt,name=cross_realm_trust_kdc,json=crossRealmTrustKdc,proto3" json:"cross_realm_trust_kdc,omitempty"`
	// Optional. The admin server (IP or hostname) for the remote trusted realm in
	// a cross realm trust relationship.
	CrossRealmTrustAdminServer string `protobuf:"bytes,11,opt,name=cross_realm_trust_admin_server,json=crossRealmTrustAdminServer,proto3" json:"cross_realm_trust_admin_server,omitempty"`
	// Optional. The Cloud Storage URI of a KMS encrypted file containing the
	// shared password between the on-cluster Kerberos realm and the remote
	// trusted realm, in a cross realm trust relationship.
	CrossRealmTrustSharedPasswordUri string `protobuf:"bytes,12,opt,name=cross_realm_trust_shared_password_uri,json=crossRealmTrustSharedPasswordUri,proto3" json:"cross_realm_trust_shared_password_uri,omitempty"`
	// Optional. The Cloud Storage URI of a KMS encrypted file containing the
	// master key of the KDC database.
	KdcDbKeyUri string `protobuf:"bytes,13,opt,name=kdc_db_key_uri,json=kdcDbKeyUri,proto3" json:"kdc_db_key_uri,omitempty"`
	// Optional. The lifetime of the ticket granting ticket, in hours.
	// If not specified, or user specifies 0, then default value 10
	// will be used.
	TgtLifetimeHours int32 `protobuf:"varint,14,opt,name=tgt_lifetime_hours,json=tgtLifetimeHours,proto3" json:"tgt_lifetime_hours,omitempty"`
	// Optional. The name of the on-cluster Kerberos realm.
	// If not specified, the uppercased domain of hostnames will be the realm.
	Realm                string   `protobuf:"bytes,15,opt,name=realm,proto3" json:"realm,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *KerberosConfig) Reset()         { *m = KerberosConfig{} }
func (m *KerberosConfig) String() string { return proto.CompactTextString(m) }
func (*KerberosConfig) ProtoMessage()    {}
func (*KerberosConfig) Descriptor() ([]byte, []int) {
	return fileDescriptor_29f9b85b3c7e3a5f, []int{12}
}

func (m *KerberosConfig) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_KerberosConfig.Unmarshal(m, b)
}
func (m *KerberosConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_KerberosConfig.Marshal(b, m, deterministic)
}
func (m *KerberosConfig) XXX_Merge(src proto.Message) {
	xxx_messageInfo_KerberosConfig.Merge(m, src)
}
func (m *KerberosConfig) XXX_Size() int {
	return xxx_messageInfo_KerberosConfig.Size(m)
}
func (m *KerberosConfig) XXX_DiscardUnknown() {
	xxx_messageInfo_KerberosConfig.DiscardUnknown(m)
}

var xxx_messageInfo_KerberosConfig proto.InternalMessageInfo

func (m *KerberosConfig) GetEnableKerberos() bool {
	if m != nil {
		return m.EnableKerberos
	}
	return false
}

func (m *KerberosConfig) GetRootPrincipalPasswordUri() string {
	if m != nil {
		return m.RootPrincipalPasswordUri
	}
	return ""
}

func (m *KerberosConfig) GetKmsKeyUri() string {
	if m != nil {
		return m.KmsKeyUri
	}
	return ""
}

func (m *KerberosConfig) GetKeystoreUri() string {
	if m != nil {
		return m.KeystoreUri
	}
	return ""
}

func (m *KerberosConfig) GetTruststoreUri() string {
	if m != nil {
		return m.TruststoreUri
	}
	return ""
}

func (m *KerberosConfig) GetKeystorePasswordUri() string {
	if m != nil {
		return m.KeystorePasswordUri
	}
	return ""
}

func (m *KerberosConfig) GetKeyPasswordUri() string {
	if m != nil {
		return m.KeyPasswordUri
	}
	return ""
}

func (m *KerberosConfig) GetTruststorePasswordUri() string {
	if m != nil {
		return m.TruststorePasswordUri
	}
	return ""
}

func (m *KerberosConfig) GetCrossRealmTrustRealm() string {
	if m != nil {
		return m.CrossRealmTrustRealm
	}
	return ""
}

func (m *KerberosConfig) GetCrossRealmTrustKdc() string {
	if m != nil {
		return m.CrossRealmTrustKdc
	}
	return ""
}

func (m *KerberosConfig) GetCrossRealmTrustAdminServer() string {
	if m != nil {
		return m.CrossRealmTrustAdminServer
	}
	return ""
}

func (m *KerberosConfig) GetCrossRealmTrustSharedPasswordUri() string {
	if m != nil {
		return m.CrossRealmTrustSharedPasswordUri
	}
	return ""
}

func (m *KerberosConfig) GetKdcDbKeyUri() string {
	if m != nil {
		return m.KdcDbKeyUri
	}
	return ""
}

func (m *KerberosConfig) GetTgtLifetimeHours() int32 {
	if m != nil {
		return m.TgtLifetimeHours
	}
	return 0
}

func (m *KerberosConfig) GetRealm() string {
	if m != nil {
		return m.Realm
	}
	return ""
}

// Specifies the selection and config of software inside the cluster.
type SoftwareConfig struct {
	// Optional. The version of software inside the cluster. It must be one of the
	// supported [Dataproc
	// Versions](/dataproc/docs/concepts/versioning/dataproc-versions#supported_cloud_dataproc_versions),
	// such as "1.2" (including a subminor version, such as "1.2.29"), or the
	// ["preview"
	// version](/dataproc/docs/concepts/versioning/dataproc-versions#other_versions).
	// If unspecified, it defaults to the latest Debian version.
	ImageVersion string `protobuf:"bytes,1,opt,name=image_version,json=imageVersion,proto3" json:"image_version,omitempty"`
	// Optional. The properties to set on daemon config files.
	//
	// Property keys are specified in `prefix:property` format, for example
	// `core:hadoop.tmp.dir`. The following are supported prefixes
	// and their mappings:
	//
	// * capacity-scheduler: `capacity-scheduler.xml`
	// * core:   `core-site.xml`
	// * distcp: `distcp-default.xml`
	// * hdfs:   `hdfs-site.xml`
	// * hive:   `hive-site.xml`
	// * mapred: `mapred-site.xml`
	// * pig:    `pig.properties`
	// * spark:  `spark-defaults.conf`
	// * yarn:   `yarn-site.xml`
	//
	// For more information, see
	// [Cluster properties](/dataproc/docs/concepts/cluster-properties).
	Properties map[string]string `protobuf:"bytes,2,rep,name=properties,proto3" json:"properties,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// Optional. The set of components to activate on the cluster.
	OptionalComponents   []Component `protobuf:"varint,3,rep,packed,name=optional_components,json=optionalComponents,proto3,enum=google.cloud.dataproc.v1.Component" json:"optional_components,omitempty"`
	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
	XXX_unrecognized     []byte      `json:"-"`
	XXX_sizecache        int32       `json:"-"`
}

func (m *SoftwareConfig) Reset()         { *m = SoftwareConfig{} }
func (m *SoftwareConfig) String() string { return proto.CompactTextString(m) }
func (*SoftwareConfig) ProtoMessage()    {}
func (*SoftwareConfig) Descriptor() ([]byte, []int) {
	return fileDescriptor_29f9b85b3c7e3a5f, []int{13}
}

func (m *SoftwareConfig) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_SoftwareConfig.Unmarshal(m, b)
}
func (m *SoftwareConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_SoftwareConfig.Marshal(b, m, deterministic)
}
func (m *SoftwareConfig) XXX_Merge(src proto.Message) {
	xxx_messageInfo_SoftwareConfig.Merge(m, src)
}
func (m *SoftwareConfig) XXX_Size() int {
	return xxx_messageInfo_SoftwareConfig.Size(m)
}
func (m *SoftwareConfig) XXX_DiscardUnknown() {
	xxx_messageInfo_SoftwareConfig.DiscardUnknown(m)
}

var xxx_messageInfo_SoftwareConfig proto.InternalMessageInfo

func (m *SoftwareConfig) GetImageVersion() string {
	if m != nil {
		return m.ImageVersion
	}
	return ""
}

func (m *SoftwareConfig) GetProperties() map[string]string {
	if m != nil {
		return m.Properties
	}
	return nil
}

func (m *SoftwareConfig) GetOptionalComponents() []Component {
	if m != nil {
		return m.OptionalComponents
	}
	return nil
}

// Specifies the cluster auto-delete schedule configuration.
type LifecycleConfig struct {
	// Optional. The duration to keep the cluster alive while idling (when no jobs
	// are running). Passing this threshold will cause the cluster to be
	// deleted. Minimum value is 10 minutes; maximum value is 14 days (see JSON
	// representation of
	// [Duration](https://developers.google.com/protocol-buffers/docs/proto3#json).
	IdleDeleteTtl *duration.Duration `protobuf:"bytes,1,opt,name=idle_delete_ttl,json=idleDeleteTtl,proto3" json:"idle_delete_ttl,omitempty"`
	// Either the exact time the cluster should be deleted at or
	// the cluster maximum age.
	//
	// Types that are valid to be assigned to Ttl:
	//	*LifecycleConfig_AutoDeleteTime
	//	*LifecycleConfig_AutoDeleteTtl
	Ttl isLifecycleConfig_Ttl `protobuf_oneof:"ttl"`
	// Output only. The time when cluster became idle (most recent job finished)
	// and became eligible for deletion due to idleness (see JSON representation
	// of
	// [Timestamp](https://developers.google.com/protocol-buffers/docs/proto3#json)).
	IdleStartTime        *timestamp.Timestamp `protobuf:"bytes,4,opt,name=idle_start_time,json=idleStartTime,proto3" json:"idle_start_time,omitempty"`
	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
	XXX_unrecognized     []byte               `json:"-"`
	XXX_sizecache        int32                `json:"-"`
}

func (m *LifecycleConfig) Reset()         { *m = LifecycleConfig{} }
func (m *LifecycleConfig) String() string { return proto.CompactTextString(m) }
func (*LifecycleConfig) ProtoMessage()    {}
func (*LifecycleConfig) Descriptor() ([]byte, []int) {
	return fileDescriptor_29f9b85b3c7e3a5f, []int{14}
}

func (m *LifecycleConfig) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_LifecycleConfig.Unmarshal(m, b)
}
func (m *LifecycleConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_LifecycleConfig.Marshal(b, m, deterministic)
}
func (m *LifecycleConfig) XXX_Merge(src proto.Message) {
	xxx_messageInfo_LifecycleConfig.Merge(m, src)
}
func (m *LifecycleConfig) XXX_Size() int {
	return xxx_messageInfo_LifecycleConfig.Size(m)
}
func (m *LifecycleConfig) XXX_DiscardUnknown() {
	xxx_messageInfo_LifecycleConfig.DiscardUnknown(m)
}

var xxx_messageInfo_LifecycleConfig proto.InternalMessageInfo

func (m *LifecycleConfig) GetIdleDeleteTtl() *duration.Duration {
	if m != nil {
		return m.IdleDeleteTtl
	}
	return nil
}

type isLifecycleConfig_Ttl interface {
	isLifecycleConfig_Ttl()
}

type LifecycleConfig_AutoDeleteTime struct {
	AutoDeleteTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=auto_delete_time,json=autoDeleteTime,proto3,oneof"`
}

type LifecycleConfig_AutoDeleteTtl struct {
	AutoDeleteTtl *duration.Duration `protobuf:"bytes,3,opt,name=auto_delete_ttl,json=autoDeleteTtl,proto3,oneof"`
}

func (*LifecycleConfig_AutoDeleteTime) isLifecycleConfig_Ttl() {}

func (*LifecycleConfig_AutoDeleteTtl) isLifecycleConfig_Ttl() {}

func (m *LifecycleConfig) GetTtl() isLifecycleConfig_Ttl {
	if m != nil {
		return m.Ttl
	}
	return nil
}

func (m *LifecycleConfig) GetAutoDeleteTime() *timestamp.Timestamp {
	if x, ok := m.GetTtl().(*LifecycleConfig_AutoDeleteTime); ok {
		return x.AutoDeleteTime
	}
	return nil
}

func (m *LifecycleConfig) GetAutoDeleteTtl() *duration.Duration {
	if x, ok := m.GetTtl().(*LifecycleConfig_AutoDeleteTtl); ok {
		return x.AutoDeleteTtl
	}
	return nil
}

func (m *LifecycleConfig) GetIdleStartTime() *timestamp.Timestamp {
	if m != nil {
		return m.IdleStartTime
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*LifecycleConfig) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*LifecycleConfig_AutoDeleteTime)(nil),
		(*LifecycleConfig_AutoDeleteTtl)(nil),
	}
}

// Contains cluster daemon metrics, such as HDFS and YARN stats.
//
// **Beta Feature**: This report is available for testing purposes only. It may
// be changed before final release.
type ClusterMetrics struct {
	// The HDFS metrics.
	HdfsMetrics map[string]int64 `protobuf:"bytes,1,rep,name=hdfs_metrics,json=hdfsMetrics,proto3" json:"hdfs_metrics,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
	// The YARN metrics.
	YarnMetrics          map[string]int64 `protobuf:"bytes,2,rep,name=yarn_metrics,json=yarnMetrics,proto3" json:"yarn_metrics,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
	XXX_unrecognized     []byte           `json:"-"`
	XXX_sizecache        int32            `json:"-"`
}

func (m *ClusterMetrics) Reset()         { *m = ClusterMetrics{} }
func (m *ClusterMetrics) String() string { return proto.CompactTextString(m) }
func (*ClusterMetrics) ProtoMessage()    {}
func (*ClusterMetrics) Descriptor() ([]byte, []int) {
	return fileDescriptor_29f9b85b3c7e3a5f, []int{15}
}

func (m *ClusterMetrics) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ClusterMetrics.Unmarshal(m, b)
}
func (m *ClusterMetrics) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ClusterMetrics.Marshal(b, m, deterministic)
}
func (m *ClusterMetrics) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ClusterMetrics.Merge(m, src)
}
func (m *ClusterMetrics) XXX_Size() int {
	return xxx_messageInfo_ClusterMetrics.Size(m)
}
func (m *ClusterMetrics) XXX_DiscardUnknown() {
	xxx_messageInfo_ClusterMetrics.DiscardUnknown(m)
}

var xxx_messageInfo_ClusterMetrics proto.InternalMessageInfo

func (m *ClusterMetrics) GetHdfsMetrics() map[string]int64 {
	if m != nil {
		return m.HdfsMetrics
	}
	return nil
}

func (m *ClusterMetrics) GetYarnMetrics() map[string]int64 {
	if m != nil {
		return m.YarnMetrics
	}
	return nil
}

// A request to create a cluster.
type CreateClusterRequest struct {
	// Required. The ID of the Google Cloud Platform project that the cluster
	// belongs to.
	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
	// Required. The Dataproc region in which to handle the request.
	Region string `protobuf:"bytes,3,opt,name=region,proto3" json:"region,omitempty"`
	// Required. The cluster to create.
	Cluster *Cluster `protobuf:"bytes,2,opt,name=cluster,proto3" json:"cluster,omitempty"`
	// Optional. A unique id used to identify the request. If the server
	// receives two [CreateClusterRequest][google.cloud.dataproc.v1.CreateClusterRequest] requests  with the same
	// id, then the second request will be ignored and the
	// first [google.longrunning.Operation][google.longrunning.Operation] created and stored in the backend
	// is returned.
	//
	// It is recommended to always set this value to a
	// [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier).
	//
	// The id must contain only letters (a-z, A-Z), numbers (0-9),
	// underscores (_), and hyphens (-). The maximum length is 40 characters.
	RequestId            string   `protobuf:"bytes,4,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *CreateClusterRequest) Reset()         { *m = CreateClusterRequest{} }
func (m *CreateClusterRequest) String() string { return proto.CompactTextString(m) }
func (*CreateClusterRequest) ProtoMessage()    {}
func (*CreateClusterRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_29f9b85b3c7e3a5f, []int{16}
}

func (m *CreateClusterRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CreateClusterRequest.Unmarshal(m, b)
}
func (m *CreateClusterRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CreateClusterRequest.Marshal(b, m, deterministic)
}
func (m *CreateClusterRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CreateClusterRequest.Merge(m, src)
}
func (m *CreateClusterRequest) XXX_Size() int {
	return xxx_messageInfo_CreateClusterRequest.Size(m)
}
func (m *CreateClusterRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_CreateClusterRequest.DiscardUnknown(m)
}

var xxx_messageInfo_CreateClusterRequest proto.InternalMessageInfo

func (m *CreateClusterRequest) GetProjectId() string {
	if m != nil {
		return m.ProjectId
	}
	return ""
}

func (m *CreateClusterRequest) GetRegion() string {
	if m != nil {
		return m.Region
	}
	return ""
}

func (m *CreateClusterRequest) GetCluster() *Cluster {
	if m != nil {
		return m.Cluster
	}
	return nil
}

func (m *CreateClusterRequest) GetRequestId() string {
	if m != nil {
		return m.RequestId
	}
	return ""
}

// A request to update a cluster.
type UpdateClusterRequest struct {
	// Required. The ID of the Google Cloud Platform project the
	// cluster belongs to.
	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
	// Required. The Dataproc region in which to handle the request.
	Region string `protobuf:"bytes,5,opt,name=region,proto3" json:"region,omitempty"`
	// Required. The cluster name.
	ClusterName string `protobuf:"bytes,2,opt,name=cluster_name,json=clusterName,proto3" json:"cluster_name,omitempty"`
	// Required. The changes to the cluster.
	Cluster *Cluster `protobuf:"bytes,3,opt,name=cluster,proto3" json:"cluster,omitempty"`
	// Optional. Timeout for graceful YARN decomissioning. Graceful
	// decommissioning allows removing nodes from the cluster without
	// interrupting jobs in progress. Timeout specifies how long to wait for jobs
	// in progress to finish before forcefully removing nodes (and potentially
	// interrupting jobs). Default timeout is 0 (for forceful decommission), and
	// the maximum allowed timeout is 1 day. (see JSON representation of
	// [Duration](https://developers.google.com/protocol-buffers/docs/proto3#json)).
	//
	// Only supported on Dataproc image versions 1.2 and higher.
	GracefulDecommissionTimeout *duration.Duration `protobuf:"bytes,6,opt,name=graceful_decommission_timeout,json=gracefulDecommissionTimeout,proto3" json:"graceful_decommission_timeout,omitempty"`
	// Required. Specifies the path, relative to `Cluster`, of
	// the field to update. For example, to change the number of workers
	// in a cluster to 5, the `update_mask` parameter would be
	// specified as `config.worker_config.num_instances`,
	// and the `PATCH` request body would specify the new value, as follows:
	//
	//     {
	//       "config":{
	//         "workerConfig":{
	//           "numInstances":"5"
	//         }
	//       }
	//     }
	// Similarly, to change the number of preemptible workers in a cluster to 5,
	// the `update_mask` parameter would be
	// `config.secondary_worker_config.num_instances`, and the `PATCH` request
	// body would be set as follows:
	//
	//     {
	//       "config":{
	//         "secondaryWorkerConfig":{
	//           "numInstances":"5"
	//         }
	//       }
	//     }
	// <strong>Note:</strong> Currently, only the following fields can be updated:
	//
	//  <table>
	//  <tbody>
	//  <tr>
	//  <td><strong>Mask</strong></td>
	//  <td><strong>Purpose</strong></td>
	//  </tr>
	//  <tr>
	//  <td><strong><em>labels</em></strong></td>
	//  <td>Update labels</td>
	//  </tr>
	//  <tr>
	//  <td><strong><em>config.worker_config.num_instances</em></strong></td>
	//  <td>Resize primary worker group</td>
	//  </tr>
	//  <tr>
	//  <td><strong><em>config.secondary_worker_config.num_instances</em></strong></td>
	//  <td>Resize secondary worker group</td>
	//  </tr>
	//  <tr>
	//  <td>config.autoscaling_config.policy_uri</td><td>Use, stop using, or
	//  change autoscaling policies</td>
	//  </tr>
	//  </tbody>
	//  </table>
	UpdateMask *field_mask.FieldMask `protobuf:"bytes,4,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
	// Optional. A unique id used to identify the request. If the server
	// receives two [UpdateClusterRequest][google.cloud.dataproc.v1.UpdateClusterRequest] requests  with the same
	// id, then the second request will be ignored and the
	// first [google.longrunning.Operation][google.longrunning.Operation] created and stored in the
	// backend is returned.
	//
	// It is recommended to always set this value to a
	// [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier).
	//
	// The id must contain only letters (a-z, A-Z), numbers (0-9),
	// underscores (_), and hyphens (-). The maximum length is 40 characters.
	RequestId            string   `protobuf:"bytes,7,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *UpdateClusterRequest) Reset()         { *m = UpdateClusterRequest{} }
func (m *UpdateClusterRequest) String() string { return proto.CompactTextString(m) }
func (*UpdateClusterRequest) ProtoMessage()    {}
func (*UpdateClusterRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_29f9b85b3c7e3a5f, []int{17}
}

func (m *UpdateClusterRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_UpdateClusterRequest.Unmarshal(m, b)
}
func (m *UpdateClusterRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_UpdateClusterRequest.Marshal(b, m, deterministic)
}
func (m *UpdateClusterRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_UpdateClusterRequest.Merge(m, src)
}
func (m *UpdateClusterRequest) XXX_Size() int {
	return xxx_messageInfo_UpdateClusterRequest.Size(m)
}
func (m *UpdateClusterRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_UpdateClusterRequest.DiscardUnknown(m)
}

var xxx_messageInfo_UpdateClusterRequest proto.InternalMessageInfo

func (m *UpdateClusterRequest) GetProjectId() string {
	if m != nil {
		return m.ProjectId
	}
	return ""
}

func (m *UpdateClusterRequest) GetRegion() string {
	if m != nil {
		return m.Region
	}
	return ""
}

func (m *UpdateClusterRequest) GetClusterName() string {
	if m != nil {
		return m.ClusterName
	}
	return ""
}

func (m *UpdateClusterRequest) GetCluster() *Cluster {
	if m != nil {
		return m.Cluster
	}
	return nil
}

func (m *UpdateClusterRequest) GetGracefulDecommissionTimeout() *duration.Duration {
	if m != nil {
		return m.GracefulDecommissionTimeout
	}
	return nil
}

func (m *UpdateClusterRequest) GetUpdateMask() *field_mask.FieldMask {
	if m != nil {
		return m.UpdateMask
	}
	return nil
}

func (m *UpdateClusterRequest) GetRequestId() string {
	if m != nil {
		return m.RequestId
	}
	return ""
}

// A request to delete a cluster.
type DeleteClusterRequest struct {
	// Required. The ID of the Google Cloud Platform project that the cluster
	// belongs to.
	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
	// Required. The Dataproc region in which to handle the request.
	Region string `protobuf:"bytes,3,opt,name=region,proto3" json:"region,omitempty"`
	// Required. The cluster name.
	ClusterName string `protobuf:"bytes,2,opt,name=cluster_name,json=clusterName,proto3" json:"cluster_name,omitempty"`
	// Optional. Specifying the `cluster_uuid` means the RPC should fail
	// (with error NOT_FOUND) if cluster with specified UUID does not exist.
	ClusterUuid string `protobuf:"bytes,4,opt,name=cluster_uuid,json=clusterUuid,proto3" json:"cluster_uuid,omitempty"`
	// Optional. A unique id used to identify the request. If the server
	// receives two [DeleteClusterRequest][google.cloud.dataproc.v1.DeleteClusterRequest] requests  with the same
	// id, then the second request will be ignored and the
	// first [google.longrunning.Operation][google.longrunning.Operation] created and stored in the
	// backend is returned.
	//
	// It is recommended to always set this value to a
	// [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier).
	//
	// The id must contain only letters (a-z, A-Z), numbers (0-9),
	// underscores (_), and hyphens (-). The maximum length is 40 characters.
	RequestId            string   `protobuf:"bytes,5,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *DeleteClusterRequest) Reset()         { *m = DeleteClusterRequest{} }
func (m *DeleteClusterRequest) String() string { return proto.CompactTextString(m) }
func (*DeleteClusterRequest) ProtoMessage()    {}
func (*DeleteClusterRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_29f9b85b3c7e3a5f, []int{18}
}

func (m *DeleteClusterRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_DeleteClusterRequest.Unmarshal(m, b)
}
func (m *DeleteClusterRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_DeleteClusterRequest.Marshal(b, m, deterministic)
}
func (m *DeleteClusterRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_DeleteClusterRequest.Merge(m, src)
}
func (m *DeleteClusterRequest) XXX_Size() int {
	return xxx_messageInfo_DeleteClusterRequest.Size(m)
}
func (m *DeleteClusterRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_DeleteClusterRequest.DiscardUnknown(m)
}

var xxx_messageInfo_DeleteClusterRequest proto.InternalMessageInfo

func (m *DeleteClusterRequest) GetProjectId() string {
	if m != nil {
		return m.ProjectId
	}
	return ""
}

func (m *DeleteClusterRequest) GetRegion() string {
	if m != nil {
		return m.Region
	}
	return ""
}

func (m *DeleteClusterRequest) GetClusterName() string {
	if m != nil {
		return m.ClusterName
	}
	return ""
}

func (m *DeleteClusterRequest) GetClusterUuid() string {
	if m != nil {
		return m.ClusterUuid
	}
	return ""
}

func (m *DeleteClusterRequest) GetRequestId() string {
	if m != nil {
		return m.RequestId
	}
	return ""
}

// Request to get the resource representation for a cluster in a project.
type GetClusterRequest struct {
	// Required. The ID of the Google Cloud Platform project that the cluster
	// belongs to.
	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
	// Required. The Dataproc region in which to handle the request.
	Region string `protobuf:"bytes,3,opt,name=region,proto3" json:"region,omitempty"`
	// Required. The cluster name.
	ClusterName          string   `protobuf:"bytes,2,opt,name=cluster_name,json=clusterName,proto3" json:"cluster_name,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *GetClusterRequest) Reset()         { *m = GetClusterRequest{} }
func (m *GetClusterRequest) String() string { return proto.CompactTextString(m) }
func (*GetClusterRequest) ProtoMessage()    {}
func (*GetClusterRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_29f9b85b3c7e3a5f, []int{19}
}

func (m *GetClusterRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GetClusterRequest.Unmarshal(m, b)
}
func (m *GetClusterRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GetClusterRequest.Marshal(b, m, deterministic)
}
func (m *GetClusterRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GetClusterRequest.Merge(m, src)
}
func (m *GetClusterRequest) XXX_Size() int {
	return xxx_messageInfo_GetClusterRequest.Size(m)
}
func (m *GetClusterRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_GetClusterRequest.DiscardUnknown(m)
}

var xxx_messageInfo_GetClusterRequest proto.InternalMessageInfo

func (m *GetClusterRequest) GetProjectId() string {
	if m != nil {
		return m.ProjectId
	}
	return ""
}

func (m *GetClusterRequest) GetRegion() string {
	if m != nil {
		return m.Region
	}
	return ""
}

func (m *GetClusterRequest) GetClusterName() string {
	if m != nil {
		return m.ClusterName
	}
	return ""
}

// A request to list the clusters in a project.
type ListClustersRequest struct {
	// Required. The ID of the Google Cloud Platform project that the cluster
	// belongs to.
	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
	// Required. The Dataproc region in which to handle the request.
	Region string `protobuf:"bytes,4,opt,name=region,proto3" json:"region,omitempty"`
	// Optional. A filter constraining the clusters to list. Filters are
	// case-sensitive and have the following syntax:
	//
	// field = value [AND [field = value]] ...
	//
	// where **field** is one of `status.state`, `clusterName`, or `labels.[KEY]`,
	// and `[KEY]` is a label key. **value** can be `*` to match all values.
	// `status.state` can be one of the following: `ACTIVE`, `INACTIVE`,
	// `CREATING`, `RUNNING`, `ERROR`, `DELETING`, or `UPDATING`. `ACTIVE`
	// contains the `CREATING`, `UPDATING`, and `RUNNING` states. `INACTIVE`
	// contains the `DELETING` and `ERROR` states.
	// `clusterName` is the name of the cluster provided at creation time.
	// Only the logical `AND` operator is supported; space-separated items are
	// treated as having an implicit `AND` operator.
	//
	// Example filter:
	//
	// status.state = ACTIVE AND clusterName = mycluster
	// AND labels.env = staging AND labels.starred = *
	Filter string `protobuf:"bytes,5,opt,name=filter,proto3" json:"filter,omitempty"`
	// Optional. The standard List page size.
	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
	// Optional. The standard List page token.
	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ListClustersRequest) Reset()         { *m = ListClustersRequest{} }
func (m *ListClustersRequest) String() string { return proto.CompactTextString(m) }
func (*ListClustersRequest) ProtoMessage()    {}
func (*ListClustersRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_29f9b85b3c7e3a5f, []int{20}
}

func (m *ListClustersRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ListClustersRequest.Unmarshal(m, b)
}
func (m *ListClustersRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ListClustersRequest.Marshal(b, m, deterministic)
}
func (m *ListClustersRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ListClustersRequest.Merge(m, src)
}
func (m *ListClustersRequest) XXX_Size() int {
	return xxx_messageInfo_ListClustersRequest.Size(m)
}
func (m *ListClustersRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_ListClustersRequest.DiscardUnknown(m)
}

var xxx_messageInfo_ListClustersRequest proto.InternalMessageInfo

func (m *ListClustersRequest) GetProjectId() string {
	if m != nil {
		return m.ProjectId
	}
	return ""
}

func (m *ListClustersRequest) GetRegion() string {
	if m != nil {
		return m.Region
	}
	return ""
}

func (m *ListClustersRequest) GetFilter() string {
	if m != nil {
		return m.Filter
	}
	return ""
}

func (m *ListClustersRequest) GetPageSize() int32 {
	if m != nil {
		return m.PageSize
	}
	return 0
}

func (m *ListClustersRequest) GetPageToken() string {
	if m != nil {
		return m.PageToken
	}
	return ""
}

// The list of all clusters in a project.
type ListClustersResponse struct {
	// Output only. The clusters in the project.
	Clusters []*Cluster `protobuf:"bytes,1,rep,name=clusters,proto3" json:"clusters,omitempty"`
	// Output only. This token is included in the response if there are more
	// results to fetch. To fetch additional results, provide this value as the
	// `page_token` in a subsequent `ListClustersRequest`.
	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ListClustersResponse) Reset()         { *m = ListClustersResponse{} }
func (m *ListClustersResponse) String() string { return proto.CompactTextString(m) }
func (*ListClustersResponse) ProtoMessage()    {}
func (*ListClustersResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_29f9b85b3c7e3a5f, []int{21}
}

func (m *ListClustersResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ListClustersResponse.Unmarshal(m, b)
}
func (m *ListClustersResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ListClustersResponse.Marshal(b, m, deterministic)
}
func (m *ListClustersResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ListClustersResponse.Merge(m, src)
}
func (m *ListClustersResponse) XXX_Size() int {
	return xxx_messageInfo_ListClustersResponse.Size(m)
}
func (m *ListClustersResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_ListClustersResponse.DiscardUnknown(m)
}

var xxx_messageInfo_ListClustersResponse proto.InternalMessageInfo

func (m *ListClustersResponse) GetClusters() []*Cluster {
	if m != nil {
		return m.Clusters
	}
	return nil
}

func (m *ListClustersResponse) GetNextPageToken() string {
	if m != nil {
		return m.NextPageToken
	}
	return ""
}

// A request to collect cluster diagnostic information.
type DiagnoseClusterRequest struct {
	// Required. The ID of the Google Cloud Platform project that the cluster
	// belongs to.
	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
	// Required. The Dataproc region in which to handle the request.
	Region string `protobuf:"bytes,3,opt,name=region,proto3" json:"region,omitempty"`
	// Required. The cluster name.
	ClusterName          string   `protobuf:"bytes,2,opt,name=cluster_name,json=clusterName,proto3" json:"cluster_name,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *DiagnoseClusterRequest) Reset()         { *m = DiagnoseClusterRequest{} }
func (m *DiagnoseClusterRequest) String() string { return proto.CompactTextString(m) }
func (*DiagnoseClusterRequest) ProtoMessage()    {}
func (*DiagnoseClusterRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_29f9b85b3c7e3a5f, []int{22}
}

func (m *DiagnoseClusterRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_DiagnoseClusterRequest.Unmarshal(m, b)
}
func (m *DiagnoseClusterRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_DiagnoseClusterRequest.Marshal(b, m, deterministic)
}
func (m *DiagnoseClusterRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_DiagnoseClusterRequest.Merge(m, src)
}
func (m *DiagnoseClusterRequest) XXX_Size() int {
	return xxx_messageInfo_DiagnoseClusterRequest.Size(m)
}
func (m *DiagnoseClusterRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_DiagnoseClusterRequest.DiscardUnknown(m)
}

var xxx_messageInfo_DiagnoseClusterRequest proto.InternalMessageInfo

func (m *DiagnoseClusterRequest) GetProjectId() string {
	if m != nil {
		return m.ProjectId
	}
	return ""
}

func (m *DiagnoseClusterRequest) GetRegion() string {
	if m != nil {
		return m.Region
	}
	return ""
}

func (m *DiagnoseClusterRequest) GetClusterName() string {
	if m != nil {
		return m.ClusterName
	}
	return ""
}

// The location of diagnostic output.
type DiagnoseClusterResults struct {
	// Output only. The Cloud Storage URI of the diagnostic output.
	// The output report is a plain text file with a summary of collected
	// diagnostics.
	OutputUri            string   `protobuf:"bytes,1,opt,name=output_uri,json=outputUri,proto3" json:"output_uri,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *DiagnoseClusterResults) Reset()         { *m = DiagnoseClusterResults{} }
func (m *DiagnoseClusterResults) String() string { return proto.CompactTextString(m) }
func (*DiagnoseClusterResults) ProtoMessage()    {}
func (*DiagnoseClusterResults) Descriptor() ([]byte, []int) {
	return fileDescriptor_29f9b85b3c7e3a5f, []int{23}
}

func (m *DiagnoseClusterResults) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_DiagnoseClusterResults.Unmarshal(m, b)
}
func (m *DiagnoseClusterResults) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_DiagnoseClusterResults.Marshal(b, m, deterministic)
}
func (m *DiagnoseClusterResults) XXX_Merge(src proto.Message) {
	xxx_messageInfo_DiagnoseClusterResults.Merge(m, src)
}
func (m *DiagnoseClusterResults) XXX_Size() int {
	return xxx_messageInfo_DiagnoseClusterResults.Size(m)
}
func (m *DiagnoseClusterResults) XXX_DiscardUnknown() {
	xxx_messageInfo_DiagnoseClusterResults.DiscardUnknown(m)
}

var xxx_messageInfo_DiagnoseClusterResults proto.InternalMessageInfo

func (m *DiagnoseClusterResults) GetOutputUri() string {
	if m != nil {
		return m.OutputUri
	}
	return ""
}

// Reservation Affinity for consuming Zonal reservation.
type ReservationAffinity struct {
	// Optional. Type of reservation to consume
	ConsumeReservationType ReservationAffinity_Type `protobuf:"varint,1,opt,name=consume_reservation_type,json=consumeReservationType,proto3,enum=google.cloud.dataproc.v1.ReservationAffinity_Type" json:"consume_reservation_type,omitempty"`
	// Optional. Corresponds to the label key of reservation resource.
	Key string `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"`
	// Optional. Corresponds to the label values of reservation resource.
	Values               []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ReservationAffinity) Reset()         { *m = ReservationAffinity{} }
func (m *ReservationAffinity) String() string { return proto.CompactTextString(m) }
func (*ReservationAffinity) ProtoMessage()    {}
func (*ReservationAffinity) Descriptor() ([]byte, []int) {
	return fileDescriptor_29f9b85b3c7e3a5f, []int{24}
}

func (m *ReservationAffinity) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ReservationAffinity.Unmarshal(m, b)
}
func (m *ReservationAffinity) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ReservationAffinity.Marshal(b, m, deterministic)
}
func (m *ReservationAffinity) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ReservationAffinity.Merge(m, src)
}
func (m *ReservationAffinity) XXX_Size() int {
	return xxx_messageInfo_ReservationAffinity.Size(m)
}
func (m *ReservationAffinity) XXX_DiscardUnknown() {
	xxx_messageInfo_ReservationAffinity.DiscardUnknown(m)
}

var xxx_messageInfo_ReservationAffinity proto.InternalMessageInfo

func (m *ReservationAffinity) GetConsumeReservationType() ReservationAffinity_Type {
	if m != nil {
		return m.ConsumeReservationType
	}
	return ReservationAffinity_TYPE_UNSPECIFIED
}

func (m *ReservationAffinity) GetKey() string {
	if m != nil {
		return m.Key
	}
	return ""
}

func (m *ReservationAffinity) GetValues() []string {
	if m != nil {
		return m.Values
	}
	return nil
}

func init() {
	proto.RegisterEnum("google.cloud.dataproc.v1.ClusterStatus_State", ClusterStatus_State_name, ClusterStatus_State_value)
	proto.RegisterEnum("google.cloud.dataproc.v1.ClusterStatus_Substate", ClusterStatus_Substate_name, ClusterStatus_Substate_value)
	proto.RegisterEnum("google.cloud.dataproc.v1.ReservationAffinity_Type", ReservationAffinity_Type_name, ReservationAffinity_Type_value)
	proto.RegisterType((*Cluster)(nil), "google.cloud.dataproc.v1.Cluster")
	proto.RegisterMapType((map[string]string)(nil), "google.cloud.dataproc.v1.Cluster.LabelsEntry")
	proto.RegisterType((*ClusterConfig)(nil), "google.cloud.dataproc.v1.ClusterConfig")
	proto.RegisterType((*AutoscalingConfig)(nil), "google.cloud.dataproc.v1.AutoscalingConfig")
	proto.RegisterType((*EncryptionConfig)(nil), "google.cloud.dataproc.v1.EncryptionConfig")
	proto.RegisterType((*GceClusterConfig)(nil), "google.cloud.dataproc.v1.GceClusterConfig")
	proto.RegisterMapType((map[string]string)(nil), "google.cloud.dataproc.v1.GceClusterConfig.MetadataEntry")
	proto.RegisterType((*InstanceGroupConfig)(nil), "google.cloud.dataproc.v1.InstanceGroupConfig")
	proto.RegisterType((*ManagedGroupConfig)(nil), "google.cloud.dataproc.v1.ManagedGroupConfig")
	proto.RegisterType((*AcceleratorConfig)(nil), "google.cloud.dataproc.v1.AcceleratorConfig")
	proto.RegisterType((*DiskConfig)(nil), "google.cloud.dataproc.v1.DiskConfig")
	proto.RegisterType((*NodeInitializationAction)(nil), "google.cloud.dataproc.v1.NodeInitializationAction")
	proto.RegisterType((*ClusterStatus)(nil), "google.cloud.dataproc.v1.ClusterStatus")
	proto.RegisterType((*SecurityConfig)(nil), "google.cloud.dataproc.v1.SecurityConfig")
	proto.RegisterType((*KerberosConfig)(nil), "google.cloud.dataproc.v1.KerberosConfig")
	proto.RegisterType((*SoftwareConfig)(nil), "google.cloud.dataproc.v1.SoftwareConfig")
	proto.RegisterMapType((map[string]string)(nil), "google.cloud.dataproc.v1.SoftwareConfig.PropertiesEntry")
	proto.RegisterType((*LifecycleConfig)(nil), "google.cloud.dataproc.v1.LifecycleConfig")
	proto.RegisterType((*ClusterMetrics)(nil), "google.cloud.dataproc.v1.ClusterMetrics")
	proto.RegisterMapType((map[string]int64)(nil), "google.cloud.dataproc.v1.ClusterMetrics.HdfsMetricsEntry")
	proto.RegisterMapType((map[string]int64)(nil), "google.cloud.dataproc.v1.ClusterMetrics.YarnMetricsEntry")
	proto.RegisterType((*CreateClusterRequest)(nil), "google.cloud.dataproc.v1.CreateClusterRequest")
	proto.RegisterType((*UpdateClusterRequest)(nil), "google.cloud.dataproc.v1.UpdateClusterRequest")
	proto.RegisterType((*DeleteClusterRequest)(nil), "google.cloud.dataproc.v1.DeleteClusterRequest")
	proto.RegisterType((*GetClusterRequest)(nil), "google.cloud.dataproc.v1.GetClusterRequest")
	proto.RegisterType((*ListClustersRequest)(nil), "google.cloud.dataproc.v1.ListClustersRequest")
	proto.RegisterType((*ListClustersResponse)(nil), "google.cloud.dataproc.v1.ListClustersResponse")
	proto.RegisterType((*DiagnoseClusterRequest)(nil), "google.cloud.dataproc.v1.DiagnoseClusterRequest")
	proto.RegisterType((*DiagnoseClusterResults)(nil), "google.cloud.dataproc.v1.DiagnoseClusterResults")
	proto.RegisterType((*ReservationAffinity)(nil), "google.cloud.dataproc.v1.ReservationAffinity")
}

func init() {
	proto.RegisterFile("google/cloud/dataproc/v1/clusters.proto", fileDescriptor_29f9b85b3c7e3a5f)
}

var fileDescriptor_29f9b85b3c7e3a5f = []byte{
	// 3008 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0xcf, 0x6f, 0x1b, 0xc7,
	0xf5, 0xf7, 0x92, 0xfa, 0xf9, 0x28, 0x52, 0xd4, 0x48, 0xb6, 0x19, 0x39, 0xf1, 0x57, 0xdf, 0xcd,
	0x2f, 0xc5, 0xb1, 0xc9, 0x58, 0x41, 0x9b, 0xc4, 0x49, 0x83, 0x50, 0x16, 0x6d, 0x29, 0x92, 0x65,
	0x65, 0x45, 0x39, 0x70, 0x91, 0x60, 0xb1, 0xdc, 0x1d, 0x51, 0x1b, 0x2e, 0x77, 0x37, 0x3b, 0xb3,
	0x76, 0xe8, 0x34, 0x40, 0xdb, 0x4b, 0x0f, 0x05, 0x7a, 0x68, 0xd0, 0x43, 0x0f, 0x6d, 0xaf, 0x4d,
	0x8b, 0x9e, 0x7a, 0x69, 0x0f, 0x05, 0x7a, 0x2b, 0xea, 0xf6, 0xd4, 0x9e, 0x9a, 0x53, 0x80, 0xf6,
	0x0f, 0xe8, 0x9f, 0x50, 0xcc, 0x8f, 0xe5, 0xce, 0x92, 0x92, 0x48, 0x3b, 0x06, 0x72, 0x32, 0x35,
	0xef, 0xf3, 0x3e, 0xf3, 0xde, 0x9b, 0x37, 0xf3, 0xde, 0xcc, 0x1a, 0x5e, 0x6c, 0x07, 0x41, 0xdb,
	0xc3, 0x35, 0xdb, 0x0b, 0x62, 0xa7, 0xe6, 0x58, 0xd4, 0x0a, 0xa3, 0xc0, 0xae, 0xdd, 0xbb, 0x5a,
	0xb3, 0xbd, 0x98, 0x50, 0x1c, 0x91, 0x6a, 0x18, 0x05, 0x34, 0x40, 0x15, 0x01, 0xac, 0x72, 0x60,
	0x35, 0x01, 0x56, 0xef, 0x5d, 0x5d, 0x7e, 0x5a, 0x52, 0x58, 0xa1, 0x5b, 0xb3, 0x7c, 0x3f, 0xa0,
	0x16, 0x75, 0x03, 0x5f, 0xea, 0x2d, 0x9f, 0x57, 0xa4, 0xb6, 0xe7, 0x62, 0x9f, 0x4a, 0xc1, 0xff,
	0x29, 0x82, 0x43, 0x17, 0x7b, 0x8e, 0xd9, 0xc2, 0x47, 0xd6, 0x3d, 0x37, 0x88, 0x24, 0xe0, 0xf9,
	0x13, 0x4d, 0x23, 0x47, 0x56, 0x84, 0x1d, 0x09, 0x7b, 0x56, 0xc2, 0xbc, 0xc0, 0x6f, 0x47, 0xb1,
	0xef, 0xbb, 0x7e, 0xbb, 0x16, 0x84, 0x38, 0xca, 0x58, 0x71, 0x51, 0x82, 0xf8, 0x5f, 0xad, 0xf8,
	0xb0, 0xe6, 0xc4, 0x02, 0x20, 0xe5, 0x2b, 0x83, 0x72, 0x61, 0x51, 0xd7, 0x22, 0x9d, 0x01, 0x73,
	0xfb, 0x08, 0xea, 0x76, 0x31, 0xa1, 0x56, 0x37, 0x14, 0x00, 0xfd, 0x8b, 0x09, 0x98, 0xbe, 0x2e,
	0x62, 0x86, 0x74, 0x80, 0x30, 0x0a, 0x3e, 0xc2, 0x36, 0x35, 0x5d, 0xa7, 0xa2, 0xad, 0x68, 0xab,
	0xb3, 0xeb, 0xf9, 0xaf, 0xea, 0x39, 0x63, 0x56, 0x0e, 0x6f, 0x39, 0xe8, 0x05, 0x98, 0x93, 0x21,
	0x36, 0x7d, 0xab, 0x8b, 0x2b, 0xb9, 0x14, 0x55, 0x90, 0x82, 0x5d, 0xab, 0x8b, 0xd1, 0x06, 0x4c,
	0xd9, 0x81, 0x7f, 0xe8, 0xb6, 0x2b, 0xf9, 0x15, 0x6d, 0xb5, 0xb0, 0xf6, 0x62, 0xf5, 0xa4, 0x95,
	0xa8, 0xca, 0xe9, 0xaf, 0x73, 0xb8, 0xa0, 0x92, 0xba, 0xe8, 0x5d, 0x98, 0xf2, 0xac, 0x16, 0xf6,
	0x48, 0x65, 0x66, 0x25, 0xbf, 0x5a, 0x58, 0xbb, 0x32, 0x92, 0xa5, 0xba, 0xc3, 0xf1, 0x0d, 0x9f,
	0x46, 0x3d, 0xc6, 0xa5, 0x19, 0x92, 0x81, 0x59, 0x44, 0xa8, 0x45, 0x63, 0x52, 0x99, 0x18, 0xd3,
	0xa2, 0x7d, 0x0e, 0x67, 0x2c, 0x79, 0x43, 0xea, 0xa2, 0x7d, 0x28, 0x89, 0x5f, 0xe6, 0x91, 0x4b,
	0x68, 0x10, 0xf5, 0x2a, 0xd3, 0xdc, 0xb2, 0x47, 0x63, 0x2b, 0x0a, 0x8e, 0x4d, 0x41, 0xa1, 0x06,
	0x35, 0x8e, 0x5d, 0xa7, 0x32, 0x95, 0x04, 0x35, 0xdf, 0x0f, 0xea, 0x41, 0xec, 0x3a, 0x68, 0x1d,
	0xa6, 0xbb, 0x98, 0x46, 0xae, 0x4d, 0x2a, 0xb3, 0xdc, 0x87, 0xd5, 0x91, 0xb3, 0xde, 0x12, 0x78,
	0x23, 0x51, 0x5c, 0x7e, 0x03, 0x0a, 0x4a, 0x88, 0x50, 0x19, 0xf2, 0x1d, 0xdc, 0x13, 0x8b, 0x6d,
	0xb0, 0x9f, 0x68, 0x09, 0x26, 0xef, 0x59, 0x5e, 0x2c, 0x97, 0xd6, 0x10, 0x7f, 0x5c, 0xcb, 0xbd,
	0xae, 0xe9, 0xff, 0x9d, 0x86, 0x62, 0x66, 0xb1, 0xd0, 0x2a, 0x14, 0xc5, 0x4a, 0x99, 0xad, 0xd8,
	0xee, 0x60, 0x9a, 0x26, 0x8d, 0x66, 0xcc, 0x09, 0xc9, 0x3a, 0x17, 0xa0, 0x0f, 0x01, 0xb5, 0x6d,
	0x6c, 0x26, 0x6e, 0xca, 0xdc, 0x98, 0xe1, 0x5e, 0x5c, 0x3a, 0xd9, 0x8b, 0x9b, 0x36, 0x1e, 0x4a,
	0x0f, 0xcd, 0x28, 0xb7, 0x07, 0x86, 0xd1, 0xfb, 0x50, 0xec, 0x5a, 0x2a, 0xb3, 0x88, 0xcf, 0x29,
	0xf9, 0xb2, 0xe5, 0x13, 0x6a, 0xf9, 0x36, 0xbe, 0x19, 0x05, 0x71, 0xa8, 0x92, 0xcf, 0x09, 0xa2,
	0x94, 0xf8, 0x7e, 0x10, 0x75, 0x52, 0x62, 0x78, 0x7c, 0x62, 0x41, 0x24, 0x89, 0x3f, 0x82, 0xf3,
	0x04, 0xdb, 0x81, 0xef, 0x58, 0x51, 0xcf, 0xcc, 0x4e, 0x31, 0xf7, 0xd8, 0x53, 0x9c, 0xed, 0x53,
	0xbe, 0xaf, 0xce, 0x75, 0x07, 0xe6, 0x49, 0x70, 0x48, 0xef, 0x5b, 0x11, 0x4e, 0xe6, 0x28, 0x8e,
	0xca, 0x9f, 0x7d, 0xa9, 0xa0, 0xd2, 0x97, 0x48, 0x66, 0x10, 0xf9, 0x70, 0xce, 0xf5, 0x5d, 0xea,
	0x5a, 0x9e, 0xfb, 0x80, 0x9f, 0x4b, 0xa6, 0x65, 0xf3, 0xf3, 0xab, 0x52, 0xe0, 0x9b, 0x62, 0xed,
	0x64, 0xfa, 0xdd, 0xc0, 0xc1, 0x5b, 0x19, 0xdd, 0x3a, 0x57, 0x95, 0x7e, 0xb8, 0xc7, 0x88, 0x08,
	0xfa, 0x00, 0x16, 0xb0, 0x6f, 0x47, 0xbd, 0x90, 0xcf, 0x25, 0x3d, 0x99, 0x1f, 0x95, 0x43, 0x8d,
	0xbe, 0x4a, 0x26, 0x87, 0xf0, 0xc0, 0x30, 0x32, 0x01, 0x59, 0x31, 0x0d, 0x88, 0x6d, 0x79, 0xae,
	0xdf, 0x4e, 0xe8, 0x11, 0xa7, 0x7f, 0xf9, 0x64, 0xfa, 0x7a, 0xaa, 0xa3, 0xf2, 0x2f, 0x58, 0x83,
	0xe3, 0x7c, 0x19, 0xb0, 0x1d, 0x47, 0x2e, 0xed, 0x25, 0xec, 0xe5, 0x91, 0xcb, 0x20, 0x15, 0xb2,
	0xcb, 0x90, 0x19, 0x44, 0x77, 0xa1, 0xec, 0xb9, 0x87, 0xd8, 0xee, 0xd9, 0x5e, 0x7f, 0x7d, 0x17,
	0x38, 0xf1, 0x4b, 0x27, 0x13, 0xef, 0x24, 0x1a, 0x2a, 0xf3, 0xbc, 0x97, 0x1d, 0xd5, 0x5f, 0x83,
	0x85, 0x21, 0xff, 0x78, 0x9d, 0x08, 0x3c, 0xd7, 0xee, 0x99, 0x71, 0xe4, 0xaa, 0x5b, 0x7e, 0x56,
	0x0c, 0x1f, 0x44, 0xae, 0xde, 0x80, 0xf2, 0x60, 0xdc, 0xd1, 0x55, 0x58, 0x64, 0x67, 0x40, 0xe8,
	0x98, 0x9d, 0x2e, 0x31, 0x3b, 0xb8, 0x27, 0x4a, 0x88, 0x42, 0x30, 0xdf, 0xb6, 0xf1, 0x9e, 0xb3,
	0xdd, 0x25, 0xdb, 0xb8, 0xc7, 0xca, 0x88, 0xfe, 0x9b, 0x09, 0x28, 0x0f, 0x9e, 0x01, 0xe8, 0x22,
	0xcc, 0x3c, 0x08, 0x7c, 0x3c, 0x38, 0xfb, 0x34, 0x1b, 0x3c, 0x88, 0x5c, 0xf4, 0x1c, 0x14, 0x7c,
	0x4c, 0xd9, 0x9e, 0xe2, 0x90, 0x5c, 0x0a, 0x01, 0x39, 0xce, 0x50, 0x97, 0xa0, 0x44, 0xe2, 0x96,
	0x0a, 0x9c, 0x4a, 0x81, 0xc5, 0x54, 0xc4, 0xb0, 0x57, 0xa0, 0xec, 0xfa, 0x14, 0x47, 0xbe, 0xe5,
	0x99, 0x6e, 0x68, 0x06, 0xbe, 0xc7, 0xce, 0x7d, 0x6d, 0x75, 0x46, 0x2e, 0x48, 0x22, 0xdc, 0x0a,
	0x6f, 0xfb, 0x5e, 0x0f, 0x5d, 0x66, 0x0b, 0x1d, 0xdd, 0x73, 0x6d, 0x6c, 0x5a, 0xb6, 0x1d, 0xc4,
	0x3e, 0xe5, 0x27, 0xdd, 0x6c, 0x7f, 0xf9, 0xb8, 0xac, 0x2e, 0x44, 0xe8, 0x0d, 0x38, 0x37, 0x80,
	0x36, 0x89, 0x1d, 0x84, 0x98, 0x54, 0xf2, 0x2b, 0xf9, 0x44, 0x69, 0x29, 0xab, 0xb4, 0xcf, 0x01,
	0x08, 0xc1, 0x04, 0xb5, 0xda, 0xac, 0xa2, 0xe5, 0x57, 0x67, 0x0d, 0xfe, 0x1b, 0x35, 0x61, 0xa6,
	0x8b, 0xa9, 0xc5, 0xd6, 0xba, 0x32, 0xc9, 0xb7, 0xe1, 0xeb, 0xe3, 0x9f, 0xaf, 0xd5, 0x5b, 0x52,
	0x95, 0x57, 0x07, 0xa3, 0xcf, 0x84, 0x30, 0x2c, 0x45, 0x98, 0xd9, 0x20, 0xf7, 0xf9, 0xe1, 0x21,
	0xdb, 0xa2, 0xbd, 0x4a, 0x61, 0xd4, 0x59, 0x65, 0xa4, 0x5a, 0x75, 0xa9, 0x24, 0x3c, 0x5a, 0x8c,
	0x86, 0x25, 0xcb, 0x6f, 0x42, 0x31, 0x63, 0xc1, 0x23, 0xd5, 0xa7, 0x5f, 0x4e, 0xc0, 0xe2, 0x31,
	0x47, 0x23, 0xab, 0x52, 0x7e, 0xdc, 0x35, 0x5d, 0x29, 0x22, 0x9c, 0x6d, 0x52, 0x1e, 0xca, 0x7e,
	0xdc, 0x4d, 0x74, 0x08, 0xcb, 0x89, 0x04, 0xc5, 0x73, 0x93, 0x54, 0x72, 0xc9, 0x12, 0xe4, 0x8d,
	0x62, 0x22, 0x62, 0x99, 0x49, 0xd0, 0x0a, 0xcc, 0xba, 0x5d, 0xab, 0x2d, 0xd2, 0x30, 0x9f, 0x2e,
	0xef, 0x0c, 0x1f, 0x95, 0x59, 0xd3, 0xb5, 0xec, 0x23, 0xd7, 0xc7, 0x26, 0xed, 0x85, 0x02, 0x38,
	0xa1, 0xe4, 0x81, 0x14, 0x36, 0x7b, 0x21, 0x87, 0xbf, 0x0b, 0x05, 0xc7, 0x25, 0x9d, 0x64, 0x07,
	0x4f, 0xf2, 0xc8, 0x3e, 0x77, 0x72, 0x64, 0x37, 0x5c, 0xd2, 0x51, 0x37, 0x2f, 0x38, 0xfd, 0x01,
	0xee, 0x08, 0x31, 0xc3, 0x08, 0xe3, 0x6e, 0x48, 0xdd, 0x96, 0x87, 0x79, 0x72, 0xcb, 0x74, 0x2d,
	0xba, 0x64, 0x2f, 0x95, 0x20, 0x1b, 0x96, 0xba, 0x96, 0x6f, 0xb5, 0xb1, 0x63, 0xb6, 0x59, 0xd4,
	0x12, 0x03, 0xa6, 0xb9, 0x01, 0x97, 0x4f, 0x36, 0xe0, 0x96, 0xd0, 0x1a, 0xa8, 0x42, 0x79, 0x03,
	0x75, 0x87, 0x04, 0xa8, 0x09, 0x73, 0x96, 0x6d, 0x63, 0x8f, 0x75, 0xb8, 0x41, 0x94, 0xf4, 0x73,
	0xa7, 0x1d, 0xab, 0x29, 0x3a, 0x53, 0x44, 0x55, 0x16, 0x1e, 0x61, 0xd7, 0x37, 0xed, 0x30, 0x36,
	0x43, 0xcf, 0xa2, 0x87, 0x41, 0xd4, 0xe5, 0x95, 0xbf, 0x1f, 0x61, 0xd7, 0xbf, 0x1e, 0xc6, 0x7b,
	0x52, 0xa4, 0x7f, 0xae, 0x01, 0x1a, 0x36, 0x9a, 0x6d, 0xc0, 0xfe, 0xaa, 0x53, 0xdc, 0x65, 0x4c,
	0x78, 0xe0, 0x68, 0xca, 0x1b, 0x4b, 0x09, 0xa4, 0x29, 0x11, 0xbc, 0xcd, 0x5d, 0x87, 0x0b, 0x7d,
	0x55, 0x11, 0x3c, 0xe1, 0xfb, 0x60, 0x77, 0x9c, 0x37, 0x2a, 0xae, 0x9a, 0x99, 0xc2, 0x0a, 0xde,
	0x2a, 0xeb, 0x11, 0x2c, 0x0c, 0x39, 0x8b, 0x5e, 0x81, 0x25, 0xc5, 0xd3, 0x34, 0x7f, 0xc4, 0x46,
	0x40, 0x8a, 0x2c, 0x49, 0x9f, 0x97, 0x61, 0x41, 0xd5, 0x10, 0xc7, 0x0e, 0x33, 0x60, 0xd2, 0x28,
	0x5b, 0x2a, 0x7f, 0xec, 0x53, 0xfd, 0xa7, 0x1a, 0x40, 0x9a, 0x3f, 0xe8, 0x25, 0x28, 0xb5, 0x82,
	0x80, 0x9a, 0x3c, 0xff, 0xd8, 0x5c, 0x6a, 0x42, 0xcf, 0x31, 0x11, 0x03, 0xb3, 0x99, 0x50, 0x15,
	0x16, 0x52, 0x28, 0x71, 0x1f, 0x60, 0xb3, 0xdd, 0x52, 0x37, 0x54, 0x29, 0x41, 0xef, 0xbb, 0x0f,
	0xf0, 0xcd, 0x16, 0xa3, 0x66, 0x9b, 0xcf, 0x0b, 0x6c, 0xcb, 0x33, 0x09, 0x71, 0x88, 0xb0, 0x29,
	0xdd, 0x7d, 0x3b, 0x4c, 0xb2, 0x4f, 0x1c, 0xa2, 0xff, 0x4c, 0x83, 0xca, 0x49, 0x7d, 0x01, 0x3b,
	0x53, 0xf1, 0x27, 0xd8, 0x8e, 0xa9, 0xd5, 0xf2, 0xb0, 0x79, 0xe8, 0x7a, 0x58, 0xbd, 0xa1, 0x94,
	0x52, 0xd9, 0x0d, 0xd7, 0xc3, 0x68, 0x1b, 0x16, 0xc4, 0x08, 0x3b, 0xac, 0xd8, 0x9d, 0x27, 0x88,
	0x45, 0x30, 0x0a, 0x6b, 0x4f, 0x25, 0x39, 0x97, 0xdc, 0x89, 0xaa, 0x1b, 0xf2, 0x56, 0x95, 0x34,
	0x06, 0x89, 0x62, 0x53, 0xe8, 0xe9, 0xbf, 0xcb, 0xf7, 0xfb, 0x5e, 0xd1, 0xc4, 0xa3, 0x4d, 0x98,
	0x64, 0x1d, 0xbc, 0x30, 0xa1, 0x34, 0xc6, 0xb5, 0x44, 0xe8, 0x55, 0xd9, 0x3f, 0x58, 0xe4, 0x83,
	0x20, 0x40, 0x17, 0x61, 0xca, 0xc1, 0xd4, 0x72, 0x3d, 0x99, 0x2b, 0x53, 0x5f, 0xd5, 0xc5, 0xad,
	0x45, 0x8c, 0xa2, 0x2d, 0x28, 0x73, 0xa0, 0x49, 0xa8, 0x15, 0x51, 0xee, 0x8a, 0xbc, 0x51, 0x2d,
	0x0f, 0xf9, 0xd1, 0x4c, 0xee, 0x76, 0x62, 0x06, 0x7e, 0x51, 0xc1, 0xfb, 0x4c, 0x8f, 0x49, 0xd0,
	0x7b, 0x30, 0x43, 0xe2, 0x96, 0xb0, 0x7b, 0x82, 0xdb, 0xfd, 0xca, 0xd8, 0x76, 0x4b, 0x3d, 0x41,
	0xdc, 0xa7, 0xd1, 0xef, 0xc0, 0x24, 0x77, 0x09, 0x15, 0x60, 0xfa, 0x60, 0x77, 0x7b, 0xf7, 0xf6,
	0xfb, 0xbb, 0xe5, 0x33, 0x68, 0x0e, 0x66, 0xae, 0x1b, 0x8d, 0x7a, 0x73, 0x6b, 0xf7, 0x66, 0x59,
	0x63, 0x22, 0xe3, 0x60, 0x77, 0x97, 0xfd, 0x91, 0x43, 0xb3, 0x30, 0xd9, 0x30, 0x8c, 0xdb, 0x46,
	0x39, 0xcf, 0x50, 0x1b, 0x8d, 0x9d, 0x06, 0x47, 0x4d, 0xb0, 0xbf, 0x0e, 0xf6, 0x36, 0x84, 0xce,
	0xa4, 0xfe, 0x16, 0xcc, 0x24, 0x53, 0xa2, 0x79, 0x28, 0x1c, 0xec, 0xee, 0xef, 0x35, 0xae, 0x6f,
	0xdd, 0xd8, 0x6a, 0x6c, 0x94, 0xcf, 0xa0, 0x22, 0xcc, 0x1e, 0xec, 0x6e, 0x36, 0xea, 0x3b, 0xcd,
	0xcd, 0xbb, 0x65, 0x0d, 0x95, 0x61, 0x6e, 0xbf, 0x59, 0xdf, 0x69, 0x98, 0xfb, 0xcd, 0x7a, 0xf3,
	0x60, 0xbf, 0x9c, 0xd3, 0x6d, 0x28, 0x65, 0xdb, 0x26, 0xf4, 0x1e, 0xcc, 0x77, 0x70, 0xd4, 0xc2,
	0x51, 0x40, 0x92, 0xd3, 0x4d, 0x1b, 0xd5, 0x79, 0x6d, 0x4b, 0x05, 0x41, 0x61, 0x94, 0x3a, 0x99,
	0xbf, 0xf5, 0xdf, 0x4e, 0x41, 0x29, 0x0b, 0xe1, 0x29, 0xea, 0xf3, 0xf4, 0x4c, 0xb0, 0x7c, 0x96,
	0xa4, 0x49, 0x10, 0xb2, 0x44, 0x87, 0x1d, 0x1d, 0x11, 0xdb, 0x48, 0x61, 0xe4, 0xfa, 0xb6, 0x1b,
	0x5a, 0x9e, 0x19, 0x5a, 0x84, 0xdc, 0x0f, 0x22, 0x27, 0xdb, 0xb5, 0xe4, 0x8c, 0x0a, 0xc3, 0xed,
	0x25, 0xb0, 0x3d, 0x89, 0x62, 0x7b, 0xfe, 0x59, 0x28, 0x24, 0xad, 0x54, 0xa6, 0x0a, 0xe5, 0x8c,
	0xd9, 0x0e, 0x6f, 0xa2, 0x18, 0xe8, 0x05, 0x98, 0xeb, 0xe0, 0x1e, 0xbb, 0x69, 0x0e, 0x95, 0xa0,
	0x42, 0x22, 0x90, 0x0d, 0x11, 0x8d, 0x62, 0x42, 0x53, 0xe4, 0xa4, 0xd2, 0x10, 0xa5, 0x22, 0x86,
	0x7d, 0x0d, 0xce, 0xf6, 0x39, 0x33, 0x66, 0x2b, 0x3d, 0xd4, 0x62, 0x82, 0x50, 0x2d, 0xbe, 0x02,
	0x65, 0x66, 0x6d, 0x46, 0x67, 0x5a, 0x39, 0xb1, 0x3b, 0xb8, 0xa7, 0xc2, 0xdf, 0x84, 0xf3, 0x8a,
	0x4d, 0x19, 0x2d, 0xa5, 0xa3, 0x3a, 0x9b, 0x62, 0x54, 0xe5, 0x6b, 0x70, 0xde, 0x8e, 0x02, 0x42,
	0xcc, 0x08, 0x5b, 0x5e, 0xd7, 0xe4, 0x20, 0xf1, 0x5b, 0x2d, 0x12, 0x4b, 0x1c, 0x63, 0xb0, 0xe1,
	0x26, 0x43, 0xf0, 0x5f, 0xe8, 0xdb, 0x70, 0x76, 0x58, 0xb7, 0xe3, 0xd8, 0xfc, 0xfe, 0x27, 0x35,
	0xd1, 0x80, 0xe6, 0xb6, 0x63, 0xa3, 0x9b, 0x70, 0x71, 0x58, 0xcf, 0x72, 0x58, 0x95, 0x62, 0xdd,
	0x0e, 0x8e, 0x78, 0xc7, 0x24, 0x09, 0x96, 0x07, 0x08, 0xea, 0x0c, 0xb7, 0xcf, 0x61, 0xa8, 0x09,
	0xcf, 0x0f, 0x13, 0x89, 0x27, 0xa4, 0x6c, 0x1c, 0xe6, 0x52, 0xbe, 0x95, 0x01, 0xbe, 0x7d, 0x0e,
	0x57, 0x43, 0xb2, 0x0a, 0xa5, 0x8e, 0x63, 0x9b, 0x4e, 0xab, 0x9f, 0x33, 0x45, 0x35, 0x1b, 0x1c,
	0x7b, 0xa3, 0x25, 0xb3, 0xe6, 0x2a, 0x20, 0xda, 0xa6, 0x26, 0xbb, 0x10, 0xb0, 0x43, 0xc7, 0x3c,
	0x0a, 0xe2, 0x88, 0x54, 0x4a, 0xe9, 0xd9, 0x5d, 0xa6, 0x6d, 0xba, 0x23, 0xa5, 0x9b, 0x4c, 0x88,
	0x9e, 0x82, 0x49, 0x11, 0xdd, 0xf9, 0x94, 0x53, 0x8c, 0xe8, 0xbf, 0xcf, 0x41, 0x29, 0x7b, 0xa3,
	0x64, 0x5d, 0x99, 0xe8, 0x9f, 0xee, 0xe1, 0x88, 0xb8, 0x81, 0x9f, 0x79, 0x3b, 0xe0, 0x92, 0x3b,
	0x42, 0x80, 0x3e, 0xe4, 0xef, 0x52, 0x21, 0x8e, 0xa8, 0x2b, 0x3b, 0xb2, 0x53, 0x7b, 0xda, 0xec,
	0x3c, 0xd5, 0xbd, 0xbe, 0xaa, 0xf2, 0x28, 0xa4, 0x10, 0xa2, 0xbb, 0xb0, 0x18, 0xf0, 0x6b, 0x8a,
	0xe5, 0x99, 0x76, 0xd0, 0x0d, 0x03, 0x1f, 0xfb, 0x54, 0x34, 0xdf, 0xa5, 0xb5, 0x67, 0x4f, 0x39,
	0x22, 0x13, 0xac, 0xcc, 0x86, 0x84, 0xa4, 0x3f, 0x4e, 0x96, 0xbf, 0x03, 0xf3, 0x03, 0xd3, 0x3f,
	0x52, 0x43, 0xfb, 0xe7, 0x1c, 0xcc, 0x0f, 0xdc, 0xd3, 0xd0, 0x0d, 0x98, 0x77, 0x1d, 0x0f, 0x9b,
	0x0e, 0xf6, 0x30, 0xc5, 0x26, 0xa5, 0x9e, 0x3c, 0xca, 0x46, 0xd5, 0xb5, 0x22, 0x53, 0xdb, 0xe0,
	0x5a, 0x4d, 0xea, 0xa1, 0x6d, 0x28, 0xb3, 0x1b, 0x6a, 0x9f, 0xc7, 0x95, 0xed, 0xca, 0xc8, 0xc2,
	0xa2, 0x6d, 0x9e, 0x31, 0x4a, 0x4c, 0x55, 0x72, 0xb1, 0xd2, 0xb2, 0x09, 0xf3, 0x19, 0x32, 0xea,
	0xc9, 0x22, 0x35, 0xc2, 0xa8, 0xcd, 0x33, 0x46, 0x51, 0xa1, 0xa2, 0x1e, 0xba, 0x29, 0xdd, 0x53,
	0xca, 0xdd, 0xc4, 0x78, 0xe5, 0x8e, 0xfb, 0xd7, 0xaf, 0x76, 0xeb, 0x93, 0x90, 0xa7, 0xd4, 0xd3,
	0xff, 0x9e, 0x83, 0x52, 0xf6, 0x29, 0x0c, 0x7d, 0x00, 0x73, 0x47, 0xce, 0x21, 0x31, 0x93, 0xa7,
	0x34, 0x8d, 0x27, 0xd4, 0x1b, 0xe3, 0x3e, 0xa5, 0x55, 0x37, 0x9d, 0x43, 0x22, 0x7f, 0x8b, 0x5b,
	0x52, 0xe1, 0x28, 0x1d, 0x61, 0xec, 0x3d, 0x2b, 0xf2, 0xfb, 0xec, 0xb9, 0x47, 0x64, 0xbf, 0x6b,
	0x45, 0x7e, 0x96, 0xbd, 0x97, 0x8e, 0x2c, 0xbf, 0x0d, 0xe5, 0xc1, 0xe9, 0x47, 0x65, 0x54, 0x5e,
	0xc9, 0x28, 0xa6, 0x3f, 0x38, 0xc1, 0xa3, 0xe8, 0xeb, 0x7f, 0xd2, 0x60, 0xe9, 0x7a, 0x84, 0x2d,
	0x9a, 0x5c, 0x1b, 0x0d, 0xfc, 0x71, 0x8c, 0x09, 0x1d, 0xeb, 0xed, 0xf8, 0x02, 0x4c, 0x45, 0xb8,
	0xcd, 0xb6, 0xba, 0x52, 0xa8, 0xe4, 0x10, 0x7a, 0x07, 0xa6, 0xe5, 0xe3, 0xa0, 0x4c, 0xc3, 0xff,
	0x1f, 0x19, 0x32, 0x41, 0x90, 0xa8, 0x31, 0x13, 0x22, 0x61, 0x0d, 0x33, 0x41, 0xa9, 0x72, 0xb3,
	0x72, 0x78, 0xcb, 0xd1, 0x7f, 0x9c, 0x87, 0xa5, 0x83, 0xd0, 0xf9, 0xba, 0xf6, 0x4f, 0x0e, 0xdb,
	0x3f, 0xee, 0xc3, 0xb8, 0xe2, 0x67, 0xfe, 0xf1, 0xfc, 0x6c, 0xc1, 0x33, 0xed, 0xc8, 0xb2, 0xf1,
	0x61, 0xec, 0x99, 0x0e, 0xb6, 0x83, 0x6e, 0xd7, 0x25, 0x44, 0xed, 0x73, 0xa7, 0xc6, 0x3a, 0x0f,
	0x2e, 0x24, 0x24, 0x1b, 0x0a, 0x87, 0x6c, 0x79, 0xd1, 0x3b, 0x50, 0x88, 0x79, 0x98, 0xf8, 0xc7,
	0x84, 0x13, 0xb7, 0xe0, 0x0d, 0x17, 0x7b, 0xce, 0x2d, 0x8b, 0x74, 0x84, 0x89, 0x20, 0x74, 0xd8,
	0xc0, 0xc0, 0x6a, 0x4c, 0x1f, 0xbb, 0x1a, 0x7f, 0xd3, 0x60, 0x49, 0x6c, 0xfd, 0x27, 0x9d, 0x4d,
	0xe3, 0xae, 0xc6, 0xe0, 0xcb, 0xbb, 0xda, 0x1b, 0xa9, 0x2f, 0xef, 0x59, 0x6f, 0x26, 0x8f, 0xf5,
	0xe6, 0x7b, 0xb0, 0x70, 0x13, 0xd3, 0x6f, 0xc8, 0x13, 0xfd, 0x8f, 0x1a, 0x2c, 0xee, 0xb8, 0x24,
	0x99, 0x9f, 0x3c, 0x9e, 0x01, 0x13, 0xc3, 0x06, 0x5c, 0x80, 0xa9, 0x43, 0xd7, 0x63, 0xf9, 0xaa,
	0xb8, 0x2d, 0x87, 0xd0, 0x0a, 0xcc, 0x86, 0xac, 0x86, 0xb3, 0x8b, 0xa0, 0x7a, 0xb1, 0x9b, 0x61,
	0xa3, 0xec, 0x06, 0xc8, 0xe7, 0x67, 0x08, 0x1a, 0x74, 0xb0, 0xaf, 0x5e, 0x2b, 0xb9, 0x62, 0x93,
	0x8d, 0xea, 0x3f, 0xd2, 0x60, 0x29, 0x6b, 0x3b, 0x09, 0x03, 0x9f, 0xb0, 0xeb, 0xf5, 0x4c, 0xf2,
	0x41, 0x4f, 0x1e, 0xd3, 0xe3, 0xed, 0x96, 0xbc, 0xd1, 0xd7, 0x43, 0x2f, 0xc3, 0xbc, 0x8f, 0x3f,
	0xa1, 0xa6, 0x62, 0x85, 0x72, 0x2d, 0x2f, 0x32, 0xd9, 0x5e, 0xdf, 0x92, 0x1f, 0x68, 0x70, 0x6e,
	0xc3, 0xb5, 0xda, 0x7e, 0x40, 0xbe, 0xa9, 0x9c, 0xd4, 0xdf, 0x3a, 0xc6, 0x04, 0x12, 0x7b, 0x94,
	0x30, 0x13, 0x82, 0x98, 0x86, 0x31, 0xcd, 0x3e, 0x7d, 0xe6, 0x8d, 0x59, 0x31, 0x7c, 0x10, 0xb9,
	0xfa, 0x2f, 0x72, 0xb0, 0x78, 0xcc, 0x9b, 0x1b, 0xfa, 0x18, 0x2a, 0x76, 0xe0, 0x93, 0xb8, 0x8b,
	0x4d, 0xf5, 0x21, 0x8f, 0x5f, 0xf6, 0xc5, 0x2d, 0x76, 0xed, 0x91, 0x1e, 0xf1, 0xaa, 0xcd, 0x5e,
	0x88, 0xc5, 0x4a, 0x9e, 0x93, 0xc4, 0x0a, 0x8a, 0x3f, 0x15, 0x9c, 0x15, 0x85, 0x45, 0x79, 0x7f,
	0xe5, 0xd5, 0xe5, 0x02, 0x4c, 0xf1, 0x82, 0x92, 0x79, 0xdf, 0x94, 0x43, 0xba, 0x09, 0x13, 0x5c,
	0x77, 0x09, 0xca, 0xcd, 0xbb, 0x7b, 0x0d, 0x33, 0x7b, 0xf5, 0x43, 0x50, 0xda, 0xbd, 0x6d, 0x1a,
	0x8d, 0xfd, 0x86, 0x71, 0xa7, 0xde, 0xdc, 0xba, 0xbd, 0x5b, 0xd6, 0xd0, 0x22, 0xcc, 0xd7, 0x77,
	0xef, 0x66, 0x06, 0x73, 0xa8, 0x02, 0x4b, 0x52, 0xef, 0x7a, 0x46, 0x92, 0x5f, 0xfb, 0xf7, 0x1c,
	0x2c, 0xa4, 0x4f, 0x9e, 0x34, 0x0a, 0x3c, 0x0f, 0x47, 0xe8, 0xfb, 0x39, 0x28, 0x66, 0xea, 0x1a,
	0xaa, 0x9e, 0x92, 0x68, 0xc7, 0x14, 0xc0, 0xe5, 0x67, 0x12, 0xbc, 0xf2, 0x45, 0xb7, 0x7a, 0x3b,
	0xf9, 0xa2, 0xab, 0xff, 0x4a, 0x7b, 0x58, 0x7f, 0x2b, 0xfd, 0xd4, 0x7a, 0x75, 0x54, 0x16, 0xf7,
	0x35, 0x93, 0xe7, 0xd0, 0x2f, 0xeb, 0x4f, 0xa5, 0xe9, 0x77, 0x59, 0xa4, 0xd4, 0x65, 0x99, 0x36,
	0x3f, 0xfc, 0xe7, 0x7f, 0x3e, 0xcf, 0xbd, 0xad, 0xbf, 0x5a, 0xbb, 0x77, 0xb5, 0x26, 0x41, 0xa4,
	0xf6, 0x69, 0x0a, 0xff, 0xac, 0x26, 0xf0, 0xa4, 0xf6, 0xa9, 0xf8, 0xf1, 0x59, 0xff, 0x3b, 0xf9,
	0xb5, 0x7e, 0x59, 0xf9, 0x75, 0x0e, 0x8a, 0x99, 0xd2, 0x78, 0x5a, 0x08, 0x8e, 0xab, 0xa1, 0xa3,
	0x42, 0xf0, 0x97, 0xaf, 0x1f, 0x82, 0xb5, 0x13, 0x43, 0xc0, 0xb7, 0x54, 0xf2, 0xc7, 0x65, 0xa5,
	0x76, 0xf1, 0xd8, 0xdc, 0x5a, 0x5b, 0x7f, 0x8c, 0xd8, 0xd4, 0x3e, 0x55, 0xc9, 0x3f, 0x4b, 0x43,
	0xf5, 0xf3, 0x1c, 0x14, 0x33, 0x75, 0xeb, 0xb4, 0x50, 0x1d, 0x57, 0xe0, 0x46, 0x85, 0xea, 0x0f,
	0xda, 0xc3, 0xfa, 0xbb, 0x70, 0x76, 0xb0, 0xdc, 0x36, 0xba, 0x21, 0xed, 0x3d, 0x56, 0xe0, 0x2e,
	0x9e, 0x1e, 0x38, 0x1e, 0xa4, 0x8d, 0x4b, 0x4f, 0x20, 0x48, 0xe8, 0xaf, 0x1a, 0x40, 0x5a, 0x06,
	0xd1, 0x29, 0x2f, 0xbc, 0x43, 0xc5, 0x72, 0x79, 0xf4, 0xe1, 0xae, 0x77, 0xc6, 0xf4, 0x05, 0x3d,
	0x09, 0x5f, 0xfe, 0xa5, 0xc1, 0x9c, 0x5a, 0x97, 0xd0, 0x95, 0xd3, 0xbe, 0xa7, 0x0d, 0xd5, 0xde,
	0xe5, 0xea, 0xb8, 0x70, 0x51, 0xee, 0xf4, 0x8f, 0xbe, 0xac, 0x2f, 0x0c, 0x39, 0xf7, 0x65, 0xbd,
	0x32, 0xec, 0xb0, 0x28, 0xbf, 0xdc, 0xd5, 0x6f, 0xa1, 0xc7, 0xd9, 0xf7, 0xe8, 0x27, 0x39, 0x98,
	0x1f, 0x28, 0x33, 0xe8, 0x95, 0xd3, 0x3e, 0x36, 0x1c, 0x57, 0x14, 0x47, 0xe5, 0xf1, 0x17, 0xda,
	0xc3, 0x7a, 0xed, 0xa4, 0x3c, 0x3e, 0xa1, 0xca, 0x8d, 0xb7, 0xc0, 0x7b, 0xfa, 0xf6, 0x13, 0xd8,
	0xd1, 0x8e, 0xb4, 0xe0, 0x9a, 0x76, 0x69, 0x79, 0xfb, 0x61, 0xfd, 0x7c, 0xdf, 0x63, 0x61, 0xb1,
	0x15, 0xba, 0xa4, 0x6a, 0x07, 0xdd, 0x7f, 0xd4, 0xab, 0x47, 0x94, 0x86, 0xe4, 0x5a, 0xad, 0x76,
	0xff, 0xfe, 0xfd, 0x01, 0x61, 0xcd, 0x8a, 0xe9, 0x91, 0xf8, 0xef, 0x3e, 0x57, 0x92, 0x8f, 0x10,
	0xeb, 0x1f, 0xc3, 0xd3, 0x76, 0xd0, 0x3d, 0x31, 0x9c, 0xeb, 0xc9, 0x7b, 0x32, 0xd9, 0x63, 0x31,
	0xd9, 0xd3, 0xbe, 0xfb, 0x8e, 0x84, 0xb6, 0x03, 0xcf, 0xf2, 0xdb, 0xd5, 0x20, 0x6a, 0xd7, 0xda,
	0xd8, 0xe7, 0x11, 0xab, 0xa5, 0xf3, 0x0d, 0xff, 0xaf, 0xa2, 0x37, 0x93, 0xdf, 0xad, 0x29, 0x0e,
	0x7e, 0xf5, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xeb, 0x94, 0xee, 0x72, 0x1c, 0x25, 0x00, 0x00,
}

// Reference imports to suppress errors if they are not otherwise used.
var _ context.Context
var _ grpc.ClientConnInterface

// This is a compile-time assertion to ensure that this generated file
// is compatible with the grpc package it is being compiled against.
const _ = grpc.SupportPackageIsVersion6

// ClusterControllerClient is the client API for ClusterController service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type ClusterControllerClient interface {
	// Creates a cluster in a project. The returned
	// [Operation.metadata][google.longrunning.Operation.metadata] will be
	// [ClusterOperationMetadata](https://cloud.google.com/dataproc/docs/reference/rpc/google.cloud.dataproc.v1#clusteroperationmetadata).
	CreateCluster(ctx context.Context, in *CreateClusterRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
	// Updates a cluster in a project. The returned
	// [Operation.metadata][google.longrunning.Operation.metadata] will be
	// [ClusterOperationMetadata](https://cloud.google.com/dataproc/docs/reference/rpc/google.cloud.dataproc.v1#clusteroperationmetadata).
	UpdateCluster(ctx context.Context, in *UpdateClusterRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
	// Deletes a cluster in a project. The returned
	// [Operation.metadata][google.longrunning.Operation.metadata] will be
	// [ClusterOperationMetadata](https://cloud.google.com/dataproc/docs/reference/rpc/google.cloud.dataproc.v1#clusteroperationmetadata).
	DeleteCluster(ctx context.Context, in *DeleteClusterRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
	// Gets the resource representation for a cluster in a project.
	GetCluster(ctx context.Context, in *GetClusterRequest, opts ...grpc.CallOption) (*Cluster, error)
	// Lists all regions/{region}/clusters in a project.
	ListClusters(ctx context.Context, in *ListClustersRequest, opts ...grpc.CallOption) (*ListClustersResponse, error)
	// Gets cluster diagnostic information. The returned
	// [Operation.metadata][google.longrunning.Operation.metadata] will be
	// [ClusterOperationMetadata](https://cloud.google.com/dataproc/docs/reference/rpc/google.cloud.dataproc.v1#clusteroperationmetadata).
	// After the operation completes,
	// [Operation.response][google.longrunning.Operation.response]
	// contains
	// [DiagnoseClusterResults](https://cloud.google.com/dataproc/docs/reference/rpc/google.cloud.dataproc.v1#diagnoseclusterresults).
	DiagnoseCluster(ctx context.Context, in *DiagnoseClusterRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
}

type clusterControllerClient struct {
	cc grpc.ClientConnInterface
}

func NewClusterControllerClient(cc grpc.ClientConnInterface) ClusterControllerClient {
	return &clusterControllerClient{cc}
}

func (c *clusterControllerClient) CreateCluster(ctx context.Context, in *CreateClusterRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
	out := new(longrunning.Operation)
	err := c.cc.Invoke(ctx, "/google.cloud.dataproc.v1.ClusterController/CreateCluster", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *clusterControllerClient) UpdateCluster(ctx context.Context, in *UpdateClusterRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
	out := new(longrunning.Operation)
	err := c.cc.Invoke(ctx, "/google.cloud.dataproc.v1.ClusterController/UpdateCluster", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *clusterControllerClient) DeleteCluster(ctx context.Context, in *DeleteClusterRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
	out := new(longrunning.Operation)
	err := c.cc.Invoke(ctx, "/google.cloud.dataproc.v1.ClusterController/DeleteCluster", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *clusterControllerClient) GetCluster(ctx context.Context, in *GetClusterRequest, opts ...grpc.CallOption) (*Cluster, error) {
	out := new(Cluster)
	err := c.cc.Invoke(ctx, "/google.cloud.dataproc.v1.ClusterController/GetCluster", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *clusterControllerClient) ListClusters(ctx context.Context, in *ListClustersRequest, opts ...grpc.CallOption) (*ListClustersResponse, error) {
	out := new(ListClustersResponse)
	err := c.cc.Invoke(ctx, "/google.cloud.dataproc.v1.ClusterController/ListClusters", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *clusterControllerClient) DiagnoseCluster(ctx context.Context, in *DiagnoseClusterRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
	out := new(longrunning.Operation)
	err := c.cc.Invoke(ctx, "/google.cloud.dataproc.v1.ClusterController/DiagnoseCluster", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// ClusterControllerServer is the server API for ClusterController service.
type ClusterControllerServer interface {
	// Creates a cluster in a project. The returned
	// [Operation.metadata][google.longrunning.Operation.metadata] will be
	// [ClusterOperationMetadata](https://cloud.google.com/dataproc/docs/reference/rpc/google.cloud.dataproc.v1#clusteroperationmetadata).
	CreateCluster(context.Context, *CreateClusterRequest) (*longrunning.Operation, error)
	// Updates a cluster in a project. The returned
	// [Operation.metadata][google.longrunning.Operation.metadata] will be
	// [ClusterOperationMetadata](https://cloud.google.com/dataproc/docs/reference/rpc/google.cloud.dataproc.v1#clusteroperationmetadata).
	UpdateCluster(context.Context, *UpdateClusterRequest) (*longrunning.Operation, error)
	// Deletes a cluster in a project. The returned
	// [Operation.metadata][google.longrunning.Operation.metadata] will be
	// [ClusterOperationMetadata](https://cloud.google.com/dataproc/docs/reference/rpc/google.cloud.dataproc.v1#clusteroperationmetadata).
	DeleteCluster(context.Context, *DeleteClusterRequest) (*longrunning.Operation, error)
	// Gets the resource representation for a cluster in a project.
	GetCluster(context.Context, *GetClusterRequest) (*Cluster, error)
	// Lists all regions/{region}/clusters in a project.
	ListClusters(context.Context, *ListClustersRequest) (*ListClustersResponse, error)
	// Gets cluster diagnostic information. The returned
	// [Operation.metadata][google.longrunning.Operation.metadata] will be
	// [ClusterOperationMetadata](https://cloud.google.com/dataproc/docs/reference/rpc/google.cloud.dataproc.v1#clusteroperationmetadata).
	// After the operation completes,
	// [Operation.response][google.longrunning.Operation.response]
	// contains
	// [DiagnoseClusterResults](https://cloud.google.com/dataproc/docs/reference/rpc/google.cloud.dataproc.v1#diagnoseclusterresults).
	DiagnoseCluster(context.Context, *DiagnoseClusterRequest) (*longrunning.Operation, error)
}

// UnimplementedClusterControllerServer can be embedded to have forward compatible implementations.
type UnimplementedClusterControllerServer struct {
}

func (*UnimplementedClusterControllerServer) CreateCluster(ctx context.Context, req *CreateClusterRequest) (*longrunning.Operation, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CreateCluster not implemented")
}
func (*UnimplementedClusterControllerServer) UpdateCluster(ctx context.Context, req *UpdateClusterRequest) (*longrunning.Operation, error) {
	return nil, status.Errorf(codes.Unimplemented, "method UpdateCluster not implemented")
}
func (*UnimplementedClusterControllerServer) DeleteCluster(ctx context.Context, req *DeleteClusterRequest) (*longrunning.Operation, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DeleteCluster not implemented")
}
func (*UnimplementedClusterControllerServer) GetCluster(ctx context.Context, req *GetClusterRequest) (*Cluster, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetCluster not implemented")
}
func (*UnimplementedClusterControllerServer) ListClusters(ctx context.Context, req *ListClustersRequest) (*ListClustersResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ListClusters not implemented")
}
func (*UnimplementedClusterControllerServer) DiagnoseCluster(ctx context.Context, req *DiagnoseClusterRequest) (*longrunning.Operation, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DiagnoseCluster not implemented")
}

func RegisterClusterControllerServer(s *grpc.Server, srv ClusterControllerServer) {
	s.RegisterService(&_ClusterController_serviceDesc, srv)
}

func _ClusterController_CreateCluster_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateClusterRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ClusterControllerServer).CreateCluster(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.dataproc.v1.ClusterController/CreateCluster",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ClusterControllerServer).CreateCluster(ctx, req.(*CreateClusterRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ClusterController_UpdateCluster_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UpdateClusterRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ClusterControllerServer).UpdateCluster(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.dataproc.v1.ClusterController/UpdateCluster",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ClusterControllerServer).UpdateCluster(ctx, req.(*UpdateClusterRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ClusterController_DeleteCluster_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeleteClusterRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ClusterControllerServer).DeleteCluster(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.dataproc.v1.ClusterController/DeleteCluster",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ClusterControllerServer).DeleteCluster(ctx, req.(*DeleteClusterRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ClusterController_GetCluster_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetClusterRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ClusterControllerServer).GetCluster(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.dataproc.v1.ClusterController/GetCluster",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ClusterControllerServer).GetCluster(ctx, req.(*GetClusterRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ClusterController_ListClusters_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListClustersRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ClusterControllerServer).ListClusters(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.dataproc.v1.ClusterController/ListClusters",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ClusterControllerServer).ListClusters(ctx, req.(*ListClustersRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ClusterController_DiagnoseCluster_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DiagnoseClusterRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ClusterControllerServer).DiagnoseCluster(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.dataproc.v1.ClusterController/DiagnoseCluster",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ClusterControllerServer).DiagnoseCluster(ctx, req.(*DiagnoseClusterRequest))
	}
	return interceptor(ctx, in, info, handler)
}

var _ClusterController_serviceDesc = grpc.ServiceDesc{
	ServiceName: "google.cloud.dataproc.v1.ClusterController",
	HandlerType: (*ClusterControllerServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "CreateCluster",
			Handler:    _ClusterController_CreateCluster_Handler,
		},
		{
			MethodName: "UpdateCluster",
			Handler:    _ClusterController_UpdateCluster_Handler,
		},
		{
			MethodName: "DeleteCluster",
			Handler:    _ClusterController_DeleteCluster_Handler,
		},
		{
			MethodName: "GetCluster",
			Handler:    _ClusterController_GetCluster_Handler,
		},
		{
			MethodName: "ListClusters",
			Handler:    _ClusterController_ListClusters_Handler,
		},
		{
			MethodName: "DiagnoseCluster",
			Handler:    _ClusterController_DiagnoseCluster_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "google/cloud/dataproc/v1/clusters.proto",
}
