// Code generated by protoc-gen-go. DO NOT EDIT.
// source: cluster.proto

package pb

import (
	fmt "fmt"
	math "math"

	proto "github.com/golang/protobuf/proto"
	empty "github.com/golang/protobuf/ptypes/empty"
	timestamp "github.com/golang/protobuf/ptypes/timestamp"
	wrappers "github.com/golang/protobuf/ptypes/wrappers"
	_ "github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swagger/options"
	context "golang.org/x/net/context"
	_ "google.golang.org/genproto/googleapis/api/annotations"
	grpc "google.golang.org/grpc"
)

// 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.ProtoPackageIsVersion2 // please upgrade the proto package

type DescribeSubnetsRequest struct {
	// required, id of runtime that contain subnet
	RuntimeId *wrappers.StringValue `protobuf:"bytes,1,opt,name=runtime_id,json=runtimeId,proto3" json:"runtime_id,omitempty"`
	// data limit per page, default value 20, max value 200
	Limit uint32 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"`
	// data offset, default 0
	Offset uint32 `protobuf:"varint,3,opt,name=offset,proto3" json:"offset,omitempty"`
	// subnet type
	SubnetType *wrappers.UInt32Value `protobuf:"bytes,4,opt,name=subnet_type,json=subnetType,proto3" json:"subnet_type,omitempty"`
	// subnet ids
	SubnetId []string `protobuf:"bytes,5,rep,name=subnet_id,json=subnetId,proto3" json:"subnet_id,omitempty"`
	// zone eg.[pek3a|pek3b|...]
	Zone []string `protobuf:"bytes,6,rep,name=zone,proto3" json:"zone,omitempty"`
	// advanced param
	AdvancedParam        []string `protobuf:"bytes,7,rep,name=advanced_param,json=advancedParam,proto3" json:"advanced_param,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_DescribeSubnetsRequest proto.InternalMessageInfo

func (m *DescribeSubnetsRequest) GetRuntimeId() *wrappers.StringValue {
	if m != nil {
		return m.RuntimeId
	}
	return nil
}

func (m *DescribeSubnetsRequest) GetLimit() uint32 {
	if m != nil {
		return m.Limit
	}
	return 0
}

func (m *DescribeSubnetsRequest) GetOffset() uint32 {
	if m != nil {
		return m.Offset
	}
	return 0
}

func (m *DescribeSubnetsRequest) GetSubnetType() *wrappers.UInt32Value {
	if m != nil {
		return m.SubnetType
	}
	return nil
}

func (m *DescribeSubnetsRequest) GetSubnetId() []string {
	if m != nil {
		return m.SubnetId
	}
	return nil
}

func (m *DescribeSubnetsRequest) GetZone() []string {
	if m != nil {
		return m.Zone
	}
	return nil
}

func (m *DescribeSubnetsRequest) GetAdvancedParam() []string {
	if m != nil {
		return m.AdvancedParam
	}
	return nil
}

type Subnet struct {
	// subnet id
	SubnetId *wrappers.StringValue `protobuf:"bytes,1,opt,name=subnet_id,json=subnetId,proto3" json:"subnet_id,omitempty"`
	// subnet name
	Name *wrappers.StringValue `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	// subnet zone
	Zone *wrappers.StringValue `protobuf:"bytes,3,opt,name=zone,proto3" json:"zone,omitempty"`
	// the time when subnet create
	CreateTime *timestamp.Timestamp `protobuf:"bytes,4,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
	// subnet description
	Description *wrappers.StringValue `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"`
	// instance ids, subnet belong to one more instance
	InstanceId []string `protobuf:"bytes,6,rep,name=instance_id,json=instanceId,proto3" json:"instance_id,omitempty"`
	// vpc id, a vpc contain one more subnet
	VpcId *wrappers.StringValue `protobuf:"bytes,7,opt,name=vpc_id,json=vpcId,proto3" json:"vpc_id,omitempty"`
	// subnet type
	SubnetType           *wrappers.UInt32Value `protobuf:"bytes,8,opt,name=subnet_type,json=subnetType,proto3" json:"subnet_type,omitempty"`
	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
	XXX_unrecognized     []byte                `json:"-"`
	XXX_sizecache        int32                 `json:"-"`
}

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

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

var xxx_messageInfo_Subnet proto.InternalMessageInfo

func (m *Subnet) GetSubnetId() *wrappers.StringValue {
	if m != nil {
		return m.SubnetId
	}
	return nil
}

func (m *Subnet) GetName() *wrappers.StringValue {
	if m != nil {
		return m.Name
	}
	return nil
}

func (m *Subnet) GetZone() *wrappers.StringValue {
	if m != nil {
		return m.Zone
	}
	return nil
}

func (m *Subnet) GetCreateTime() *timestamp.Timestamp {
	if m != nil {
		return m.CreateTime
	}
	return nil
}

func (m *Subnet) GetDescription() *wrappers.StringValue {
	if m != nil {
		return m.Description
	}
	return nil
}

func (m *Subnet) GetInstanceId() []string {
	if m != nil {
		return m.InstanceId
	}
	return nil
}

func (m *Subnet) GetVpcId() *wrappers.StringValue {
	if m != nil {
		return m.VpcId
	}
	return nil
}

func (m *Subnet) GetSubnetType() *wrappers.UInt32Value {
	if m != nil {
		return m.SubnetType
	}
	return nil
}

type DescribeSubnetsResponse struct {
	// total count of subnet
	TotalCount uint32 `protobuf:"varint,1,opt,name=total_count,json=totalCount,proto3" json:"total_count,omitempty"`
	// list of subnet
	SubnetSet            []*Subnet `protobuf:"bytes,2,rep,name=subnet_set,json=subnetSet,proto3" json:"subnet_set,omitempty"`
	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
	XXX_unrecognized     []byte    `json:"-"`
	XXX_sizecache        int32     `json:"-"`
}

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

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

var xxx_messageInfo_DescribeSubnetsResponse proto.InternalMessageInfo

func (m *DescribeSubnetsResponse) GetTotalCount() uint32 {
	if m != nil {
		return m.TotalCount
	}
	return 0
}

func (m *DescribeSubnetsResponse) GetSubnetSet() []*Subnet {
	if m != nil {
		return m.SubnetSet
	}
	return nil
}

type CreateClusterRequest struct {
	// required, id of app to run in cluster
	AppId *wrappers.StringValue `protobuf:"bytes,1,opt,name=app_id,json=appId,proto3" json:"app_id,omitempty"`
	// required, id of app version
	VersionId *wrappers.StringValue `protobuf:"bytes,2,opt,name=version_id,json=versionId,proto3" json:"version_id,omitempty"`
	// required, id of runtime
	RuntimeId *wrappers.StringValue `protobuf:"bytes,3,opt,name=runtime_id,json=runtimeId,proto3" json:"runtime_id,omitempty"`
	// required, conf a json string, include cpu, memory info of cluster
	Conf *wrappers.StringValue `protobuf:"bytes,4,opt,name=conf,proto3" json:"conf,omitempty"`
	// advanced param
	AdvancedParam        []string `protobuf:"bytes,5,rep,name=advanced_param,json=advancedParam,proto3" json:"advanced_param,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_3cfb3b8ec240c376, []int{3}
}

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) GetAppId() *wrappers.StringValue {
	if m != nil {
		return m.AppId
	}
	return nil
}

func (m *CreateClusterRequest) GetVersionId() *wrappers.StringValue {
	if m != nil {
		return m.VersionId
	}
	return nil
}

func (m *CreateClusterRequest) GetRuntimeId() *wrappers.StringValue {
	if m != nil {
		return m.RuntimeId
	}
	return nil
}

func (m *CreateClusterRequest) GetConf() *wrappers.StringValue {
	if m != nil {
		return m.Conf
	}
	return nil
}

func (m *CreateClusterRequest) GetAdvancedParam() []string {
	if m != nil {
		return m.AdvancedParam
	}
	return nil
}

type CreateClusterResponse struct {
	// id of cluster created
	ClusterId *wrappers.StringValue `protobuf:"bytes,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	// id of job
	JobId                *wrappers.StringValue `protobuf:"bytes,2,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
	XXX_unrecognized     []byte                `json:"-"`
	XXX_sizecache        int32                 `json:"-"`
}

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

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

var xxx_messageInfo_CreateClusterResponse proto.InternalMessageInfo

func (m *CreateClusterResponse) GetClusterId() *wrappers.StringValue {
	if m != nil {
		return m.ClusterId
	}
	return nil
}

func (m *CreateClusterResponse) GetJobId() *wrappers.StringValue {
	if m != nil {
		return m.JobId
	}
	return nil
}

type ModifyClusterRequest struct {
	// required, cluster to modify
	Cluster *Cluster `protobuf:"bytes,1,opt,name=cluster,proto3" json:"cluster,omitempty"`
	// list of cluster node
	ClusterNodeSet []*ClusterNode `protobuf:"bytes,2,rep,name=cluster_node_set,json=clusterNodeSet,proto3" json:"cluster_node_set,omitempty"`
	// list of cluster role
	ClusterRoleSet []*ClusterRole `protobuf:"bytes,3,rep,name=cluster_role_set,json=clusterRoleSet,proto3" json:"cluster_role_set,omitempty"`
	// list of cluster link
	ClusterLinkSet []*ClusterLink `protobuf:"bytes,4,rep,name=cluster_link_set,json=clusterLinkSet,proto3" json:"cluster_link_set,omitempty"`
	// list of cluster common
	ClusterCommonSet []*ClusterCommon `protobuf:"bytes,5,rep,name=cluster_common_set,json=clusterCommonSet,proto3" json:"cluster_common_set,omitempty"`
	// list of cluster loadbalancer
	ClusterLoadbalancerSet []*ClusterLoadbalancer `protobuf:"bytes,6,rep,name=cluster_loadbalancer_set,json=clusterLoadbalancerSet,proto3" json:"cluster_loadbalancer_set,omitempty"`
	XXX_NoUnkeyedLiteral   struct{}               `json:"-"`
	XXX_unrecognized       []byte                 `json:"-"`
	XXX_sizecache          int32                  `json:"-"`
}

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

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

var xxx_messageInfo_ModifyClusterRequest proto.InternalMessageInfo

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

func (m *ModifyClusterRequest) GetClusterNodeSet() []*ClusterNode {
	if m != nil {
		return m.ClusterNodeSet
	}
	return nil
}

func (m *ModifyClusterRequest) GetClusterRoleSet() []*ClusterRole {
	if m != nil {
		return m.ClusterRoleSet
	}
	return nil
}

func (m *ModifyClusterRequest) GetClusterLinkSet() []*ClusterLink {
	if m != nil {
		return m.ClusterLinkSet
	}
	return nil
}

func (m *ModifyClusterRequest) GetClusterCommonSet() []*ClusterCommon {
	if m != nil {
		return m.ClusterCommonSet
	}
	return nil
}

func (m *ModifyClusterRequest) GetClusterLoadbalancerSet() []*ClusterLoadbalancer {
	if m != nil {
		return m.ClusterLoadbalancerSet
	}
	return nil
}

type ModifyClusterResponse struct {
	// id of cluster modified
	ClusterId            *wrappers.StringValue `protobuf:"bytes,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
	XXX_unrecognized     []byte                `json:"-"`
	XXX_sizecache        int32                 `json:"-"`
}

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

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

var xxx_messageInfo_ModifyClusterResponse proto.InternalMessageInfo

func (m *ModifyClusterResponse) GetClusterId() *wrappers.StringValue {
	if m != nil {
		return m.ClusterId
	}
	return nil
}

type ModifyClusterNodeRequest struct {
	// required, cluster node to modify
	ClusterNode          *ClusterNode `protobuf:"bytes,1,opt,name=cluster_node,json=clusterNode,proto3" json:"cluster_node,omitempty"`
	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
	XXX_unrecognized     []byte       `json:"-"`
	XXX_sizecache        int32        `json:"-"`
}

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

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

var xxx_messageInfo_ModifyClusterNodeRequest proto.InternalMessageInfo

func (m *ModifyClusterNodeRequest) GetClusterNode() *ClusterNode {
	if m != nil {
		return m.ClusterNode
	}
	return nil
}

type ModifyClusterNodeResponse struct {
	// id of cluster node modified
	NodeId               *wrappers.StringValue `protobuf:"bytes,1,opt,name=node_id,json=nodeId,proto3" json:"node_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
	XXX_unrecognized     []byte                `json:"-"`
	XXX_sizecache        int32                 `json:"-"`
}

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

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

var xxx_messageInfo_ModifyClusterNodeResponse proto.InternalMessageInfo

func (m *ModifyClusterNodeResponse) GetNodeId() *wrappers.StringValue {
	if m != nil {
		return m.NodeId
	}
	return nil
}

type ModifyClusterAttributesRequest struct {
	// required, id of cluster to modify
	ClusterId *wrappers.StringValue `protobuf:"bytes,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	// cluster name
	Name *wrappers.StringValue `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	// cluster description
	Description          *wrappers.StringValue `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
	XXX_unrecognized     []byte                `json:"-"`
	XXX_sizecache        int32                 `json:"-"`
}

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

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

var xxx_messageInfo_ModifyClusterAttributesRequest proto.InternalMessageInfo

func (m *ModifyClusterAttributesRequest) GetClusterId() *wrappers.StringValue {
	if m != nil {
		return m.ClusterId
	}
	return nil
}

func (m *ModifyClusterAttributesRequest) GetName() *wrappers.StringValue {
	if m != nil {
		return m.Name
	}
	return nil
}

func (m *ModifyClusterAttributesRequest) GetDescription() *wrappers.StringValue {
	if m != nil {
		return m.Description
	}
	return nil
}

type ModifyClusterAttributesResponse struct {
	// id of cluster modified
	ClusterId            *wrappers.StringValue `protobuf:"bytes,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
	XXX_unrecognized     []byte                `json:"-"`
	XXX_sizecache        int32                 `json:"-"`
}

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

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

var xxx_messageInfo_ModifyClusterAttributesResponse proto.InternalMessageInfo

func (m *ModifyClusterAttributesResponse) GetClusterId() *wrappers.StringValue {
	if m != nil {
		return m.ClusterId
	}
	return nil
}

type ModifyClusterNodeAttributesRequest struct {
	// required, id of cluster node to modify
	NodeId *wrappers.StringValue `protobuf:"bytes,1,opt,name=node_id,json=nodeId,proto3" json:"node_id,omitempty"`
	// node name
	Name                 *wrappers.StringValue `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
	XXX_unrecognized     []byte                `json:"-"`
	XXX_sizecache        int32                 `json:"-"`
}

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

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

var xxx_messageInfo_ModifyClusterNodeAttributesRequest proto.InternalMessageInfo

func (m *ModifyClusterNodeAttributesRequest) GetNodeId() *wrappers.StringValue {
	if m != nil {
		return m.NodeId
	}
	return nil
}

func (m *ModifyClusterNodeAttributesRequest) GetName() *wrappers.StringValue {
	if m != nil {
		return m.Name
	}
	return nil
}

type ModifyClusterNodeAttributesResponse struct {
	// id of cluster node modified
	NodeId               *wrappers.StringValue `protobuf:"bytes,1,opt,name=node_id,json=nodeId,proto3" json:"node_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
	XXX_unrecognized     []byte                `json:"-"`
	XXX_sizecache        int32                 `json:"-"`
}

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

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

var xxx_messageInfo_ModifyClusterNodeAttributesResponse proto.InternalMessageInfo

func (m *ModifyClusterNodeAttributesResponse) GetNodeId() *wrappers.StringValue {
	if m != nil {
		return m.NodeId
	}
	return nil
}

type AddTableClusterNodesRequest struct {
	// required, list of node to add to cluster
	ClusterNodeSet       []*ClusterNode `protobuf:"bytes,1,rep,name=cluster_node_set,json=clusterNodeSet,proto3" json:"cluster_node_set,omitempty"`
	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
	XXX_unrecognized     []byte         `json:"-"`
	XXX_sizecache        int32          `json:"-"`
}

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

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

var xxx_messageInfo_AddTableClusterNodesRequest proto.InternalMessageInfo

func (m *AddTableClusterNodesRequest) GetClusterNodeSet() []*ClusterNode {
	if m != nil {
		return m.ClusterNodeSet
	}
	return nil
}

type DeleteTableClusterNodesRequest struct {
	// required, list of node to delete from cluster
	NodeId               []string `protobuf:"bytes,1,rep,name=node_id,json=nodeId,proto3" json:"node_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_DeleteTableClusterNodesRequest proto.InternalMessageInfo

func (m *DeleteTableClusterNodesRequest) GetNodeId() []string {
	if m != nil {
		return m.NodeId
	}
	return nil
}

type DeleteClustersRequest struct {
	// required, ids of clusters to delete
	ClusterId []string `protobuf:"bytes,1,rep,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	// advanced param
	AdvancedParam []string `protobuf:"bytes,2,rep,name=advanced_param,json=advancedParam,proto3" json:"advanced_param,omitempty"`
	// whether force delete clusters or not
	Force *wrappers.BoolValue `protobuf:"bytes,3,opt,name=force,proto3" json:"force,omitempty"`
	// timeout(s), when delete clusters
	GracePeriod          uint32   `protobuf:"varint,4,opt,name=grace_period,json=gracePeriod,proto3" json:"grace_period,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_DeleteClustersRequest proto.InternalMessageInfo

func (m *DeleteClustersRequest) GetClusterId() []string {
	if m != nil {
		return m.ClusterId
	}
	return nil
}

func (m *DeleteClustersRequest) GetAdvancedParam() []string {
	if m != nil {
		return m.AdvancedParam
	}
	return nil
}

func (m *DeleteClustersRequest) GetForce() *wrappers.BoolValue {
	if m != nil {
		return m.Force
	}
	return nil
}

func (m *DeleteClustersRequest) GetGracePeriod() uint32 {
	if m != nil {
		return m.GracePeriod
	}
	return 0
}

type DeleteClustersResponse struct {
	// ids of clusters deleted
	ClusterId []string `protobuf:"bytes,1,rep,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	// ids of jobs
	JobId                []string `protobuf:"bytes,2,rep,name=job_id,json=jobId,proto3" json:"job_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_DeleteClustersResponse proto.InternalMessageInfo

func (m *DeleteClustersResponse) GetClusterId() []string {
	if m != nil {
		return m.ClusterId
	}
	return nil
}

func (m *DeleteClustersResponse) GetJobId() []string {
	if m != nil {
		return m.JobId
	}
	return nil
}

type UpgradeClusterRequest struct {
	// required, id of cluster to upgrade
	ClusterId *wrappers.StringValue `protobuf:"bytes,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	// app version id
	VersionId *wrappers.StringValue `protobuf:"bytes,2,opt,name=version_id,json=versionId,proto3" json:"version_id,omitempty"`
	// advanced param
	AdvancedParam        []string `protobuf:"bytes,3,rep,name=advanced_param,json=advancedParam,proto3" json:"advanced_param,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_UpgradeClusterRequest proto.InternalMessageInfo

func (m *UpgradeClusterRequest) GetClusterId() *wrappers.StringValue {
	if m != nil {
		return m.ClusterId
	}
	return nil
}

func (m *UpgradeClusterRequest) GetVersionId() *wrappers.StringValue {
	if m != nil {
		return m.VersionId
	}
	return nil
}

func (m *UpgradeClusterRequest) GetAdvancedParam() []string {
	if m != nil {
		return m.AdvancedParam
	}
	return nil
}

type UpgradeClusterResponse struct {
	// id of cluster upgraded
	ClusterId *wrappers.StringValue `protobuf:"bytes,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	// job id
	JobId                *wrappers.StringValue `protobuf:"bytes,2,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
	XXX_unrecognized     []byte                `json:"-"`
	XXX_sizecache        int32                 `json:"-"`
}

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

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

var xxx_messageInfo_UpgradeClusterResponse proto.InternalMessageInfo

func (m *UpgradeClusterResponse) GetClusterId() *wrappers.StringValue {
	if m != nil {
		return m.ClusterId
	}
	return nil
}

func (m *UpgradeClusterResponse) GetJobId() *wrappers.StringValue {
	if m != nil {
		return m.JobId
	}
	return nil
}

type RollbackClusterRequest struct {
	// required, id of cluster to rollback
	ClusterId *wrappers.StringValue `protobuf:"bytes,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	// advanced param
	AdvancedParam        []string `protobuf:"bytes,2,rep,name=advanced_param,json=advancedParam,proto3" json:"advanced_param,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_RollbackClusterRequest proto.InternalMessageInfo

func (m *RollbackClusterRequest) GetClusterId() *wrappers.StringValue {
	if m != nil {
		return m.ClusterId
	}
	return nil
}

func (m *RollbackClusterRequest) GetAdvancedParam() []string {
	if m != nil {
		return m.AdvancedParam
	}
	return nil
}

type RollbackClusterResponse struct {
	// id of cluster to rollbacked
	ClusterId *wrappers.StringValue `protobuf:"bytes,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	// job id
	JobId                *wrappers.StringValue `protobuf:"bytes,2,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
	XXX_unrecognized     []byte                `json:"-"`
	XXX_sizecache        int32                 `json:"-"`
}

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

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

var xxx_messageInfo_RollbackClusterResponse proto.InternalMessageInfo

func (m *RollbackClusterResponse) GetClusterId() *wrappers.StringValue {
	if m != nil {
		return m.ClusterId
	}
	return nil
}

func (m *RollbackClusterResponse) GetJobId() *wrappers.StringValue {
	if m != nil {
		return m.JobId
	}
	return nil
}

type RoleResource struct {
	// role.eg:[mysql|wordpress]
	Role *wrappers.StringValue `protobuf:"bytes,1,opt,name=role,proto3" json:"role,omitempty"`
	// number of cpu
	Cpu *wrappers.UInt32Value `protobuf:"bytes,2,opt,name=cpu,proto3" json:"cpu,omitempty"`
	// number of gpu
	Gpu *wrappers.UInt32Value `protobuf:"bytes,3,opt,name=gpu,proto3" json:"gpu,omitempty"`
	// size of memory
	Memory *wrappers.UInt32Value `protobuf:"bytes,4,opt,name=memory,proto3" json:"memory,omitempty"`
	// size of instance
	InstanceSize *wrappers.UInt32Value `protobuf:"bytes,5,opt,name=instance_size,json=instanceSize,proto3" json:"instance_size,omitempty"`
	// size of storage
	StorageSize          *wrappers.UInt32Value `protobuf:"bytes,6,opt,name=storage_size,json=storageSize,proto3" json:"storage_size,omitempty"`
	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
	XXX_unrecognized     []byte                `json:"-"`
	XXX_sizecache        int32                 `json:"-"`
}

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

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

var xxx_messageInfo_RoleResource proto.InternalMessageInfo

func (m *RoleResource) GetRole() *wrappers.StringValue {
	if m != nil {
		return m.Role
	}
	return nil
}

func (m *RoleResource) GetCpu() *wrappers.UInt32Value {
	if m != nil {
		return m.Cpu
	}
	return nil
}

func (m *RoleResource) GetGpu() *wrappers.UInt32Value {
	if m != nil {
		return m.Gpu
	}
	return nil
}

func (m *RoleResource) GetMemory() *wrappers.UInt32Value {
	if m != nil {
		return m.Memory
	}
	return nil
}

func (m *RoleResource) GetInstanceSize() *wrappers.UInt32Value {
	if m != nil {
		return m.InstanceSize
	}
	return nil
}

func (m *RoleResource) GetStorageSize() *wrappers.UInt32Value {
	if m != nil {
		return m.StorageSize
	}
	return nil
}

type ResizeClusterRequest struct {
	// required, id of cluster to resize
	ClusterId *wrappers.StringValue `protobuf:"bytes,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	// list of role resource
	RoleResource []*RoleResource `protobuf:"bytes,2,rep,name=role_resource,json=roleResource,proto3" json:"role_resource,omitempty"`
	// advanced param
	AdvancedParam        []string `protobuf:"bytes,5,rep,name=advanced_param,json=advancedParam,proto3" json:"advanced_param,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_ResizeClusterRequest proto.InternalMessageInfo

func (m *ResizeClusterRequest) GetClusterId() *wrappers.StringValue {
	if m != nil {
		return m.ClusterId
	}
	return nil
}

func (m *ResizeClusterRequest) GetRoleResource() []*RoleResource {
	if m != nil {
		return m.RoleResource
	}
	return nil
}

func (m *ResizeClusterRequest) GetAdvancedParam() []string {
	if m != nil {
		return m.AdvancedParam
	}
	return nil
}

type ResizeClusterResponse struct {
	// id of cluster resized
	ClusterId *wrappers.StringValue `protobuf:"bytes,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	// job id
	JobId                *wrappers.StringValue `protobuf:"bytes,2,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
	XXX_unrecognized     []byte                `json:"-"`
	XXX_sizecache        int32                 `json:"-"`
}

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

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

var xxx_messageInfo_ResizeClusterResponse proto.InternalMessageInfo

func (m *ResizeClusterResponse) GetClusterId() *wrappers.StringValue {
	if m != nil {
		return m.ClusterId
	}
	return nil
}

func (m *ResizeClusterResponse) GetJobId() *wrappers.StringValue {
	if m != nil {
		return m.JobId
	}
	return nil
}

type AddClusterNodesRequest struct {
	// required, id of cluster to add node
	ClusterId *wrappers.StringValue `protobuf:"bytes,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	// required, role eg:[mysql|wordpress|...]
	Role *wrappers.StringValue `protobuf:"bytes,2,opt,name=role,proto3" json:"role,omitempty"`
	// number of node added to cluster
	NodeCount *wrappers.UInt32Value `protobuf:"bytes,3,opt,name=node_count,json=nodeCount,proto3" json:"node_count,omitempty"`
	// advanced param
	AdvancedParam        []string `protobuf:"bytes,4,rep,name=advanced_param,json=advancedParam,proto3" json:"advanced_param,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_AddClusterNodesRequest proto.InternalMessageInfo

func (m *AddClusterNodesRequest) GetClusterId() *wrappers.StringValue {
	if m != nil {
		return m.ClusterId
	}
	return nil
}

func (m *AddClusterNodesRequest) GetRole() *wrappers.StringValue {
	if m != nil {
		return m.Role
	}
	return nil
}

func (m *AddClusterNodesRequest) GetNodeCount() *wrappers.UInt32Value {
	if m != nil {
		return m.NodeCount
	}
	return nil
}

func (m *AddClusterNodesRequest) GetAdvancedParam() []string {
	if m != nil {
		return m.AdvancedParam
	}
	return nil
}

type AddClusterNodesResponse struct {
	// id of cluster added node
	ClusterId *wrappers.StringValue `protobuf:"bytes,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	// id of job of add node to cluster
	JobId                *wrappers.StringValue `protobuf:"bytes,2,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
	XXX_unrecognized     []byte                `json:"-"`
	XXX_sizecache        int32                 `json:"-"`
}

func (m *AddClusterNodesResponse) Reset()         { *m = AddClusterNodesResponse{} }
func (m *AddClusterNodesResponse) String() string { return proto.CompactTextString(m) }
func (*AddClusterNodesResponse) ProtoMessage()    {}
func (*AddClusterNodesResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_3cfb3b8ec240c376, []int{25}
}

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

var xxx_messageInfo_AddClusterNodesResponse proto.InternalMessageInfo

func (m *AddClusterNodesResponse) GetClusterId() *wrappers.StringValue {
	if m != nil {
		return m.ClusterId
	}
	return nil
}

func (m *AddClusterNodesResponse) GetJobId() *wrappers.StringValue {
	if m != nil {
		return m.JobId
	}
	return nil
}

type DeleteClusterNodesRequest struct {
	// required, id of cluster to delete node
	ClusterId *wrappers.StringValue `protobuf:"bytes,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	// required, node ids
	NodeId []string `protobuf:"bytes,2,rep,name=node_id,json=nodeId,proto3" json:"node_id,omitempty"`
	// advanced param
	AdvancedParam        []string `protobuf:"bytes,3,rep,name=advanced_param,json=advancedParam,proto3" json:"advanced_param,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *DeleteClusterNodesRequest) Reset()         { *m = DeleteClusterNodesRequest{} }
func (m *DeleteClusterNodesRequest) String() string { return proto.CompactTextString(m) }
func (*DeleteClusterNodesRequest) ProtoMessage()    {}
func (*DeleteClusterNodesRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_3cfb3b8ec240c376, []int{26}
}

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

var xxx_messageInfo_DeleteClusterNodesRequest proto.InternalMessageInfo

func (m *DeleteClusterNodesRequest) GetClusterId() *wrappers.StringValue {
	if m != nil {
		return m.ClusterId
	}
	return nil
}

func (m *DeleteClusterNodesRequest) GetNodeId() []string {
	if m != nil {
		return m.NodeId
	}
	return nil
}

func (m *DeleteClusterNodesRequest) GetAdvancedParam() []string {
	if m != nil {
		return m.AdvancedParam
	}
	return nil
}

type DeleteClusterNodesResponse struct {
	// id of cluster deleted node
	ClusterId *wrappers.StringValue `protobuf:"bytes,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	// job id
	JobId                *wrappers.StringValue `protobuf:"bytes,2,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
	XXX_unrecognized     []byte                `json:"-"`
	XXX_sizecache        int32                 `json:"-"`
}

func (m *DeleteClusterNodesResponse) Reset()         { *m = DeleteClusterNodesResponse{} }
func (m *DeleteClusterNodesResponse) String() string { return proto.CompactTextString(m) }
func (*DeleteClusterNodesResponse) ProtoMessage()    {}
func (*DeleteClusterNodesResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_3cfb3b8ec240c376, []int{27}
}

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

var xxx_messageInfo_DeleteClusterNodesResponse proto.InternalMessageInfo

func (m *DeleteClusterNodesResponse) GetClusterId() *wrappers.StringValue {
	if m != nil {
		return m.ClusterId
	}
	return nil
}

func (m *DeleteClusterNodesResponse) GetJobId() *wrappers.StringValue {
	if m != nil {
		return m.JobId
	}
	return nil
}

type UpdateClusterEnvRequest struct {
	// id of cluster to update env
	ClusterId *wrappers.StringValue `protobuf:"bytes,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	// env
	Env *wrappers.StringValue `protobuf:"bytes,2,opt,name=env,proto3" json:"env,omitempty"`
	// advanced param
	AdvancedParam        []string `protobuf:"bytes,3,rep,name=advanced_param,json=advancedParam,proto3" json:"advanced_param,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *UpdateClusterEnvRequest) Reset()         { *m = UpdateClusterEnvRequest{} }
func (m *UpdateClusterEnvRequest) String() string { return proto.CompactTextString(m) }
func (*UpdateClusterEnvRequest) ProtoMessage()    {}
func (*UpdateClusterEnvRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_3cfb3b8ec240c376, []int{28}
}

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

var xxx_messageInfo_UpdateClusterEnvRequest proto.InternalMessageInfo

func (m *UpdateClusterEnvRequest) GetClusterId() *wrappers.StringValue {
	if m != nil {
		return m.ClusterId
	}
	return nil
}

func (m *UpdateClusterEnvRequest) GetEnv() *wrappers.StringValue {
	if m != nil {
		return m.Env
	}
	return nil
}

func (m *UpdateClusterEnvRequest) GetAdvancedParam() []string {
	if m != nil {
		return m.AdvancedParam
	}
	return nil
}

type UpdateClusterEnvResponse struct {
	// id of cluster to updated env
	ClusterId *wrappers.StringValue `protobuf:"bytes,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	// job id
	JobId                *wrappers.StringValue `protobuf:"bytes,2,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
	XXX_unrecognized     []byte                `json:"-"`
	XXX_sizecache        int32                 `json:"-"`
}

func (m *UpdateClusterEnvResponse) Reset()         { *m = UpdateClusterEnvResponse{} }
func (m *UpdateClusterEnvResponse) String() string { return proto.CompactTextString(m) }
func (*UpdateClusterEnvResponse) ProtoMessage()    {}
func (*UpdateClusterEnvResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_3cfb3b8ec240c376, []int{29}
}

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

var xxx_messageInfo_UpdateClusterEnvResponse proto.InternalMessageInfo

func (m *UpdateClusterEnvResponse) GetClusterId() *wrappers.StringValue {
	if m != nil {
		return m.ClusterId
	}
	return nil
}

func (m *UpdateClusterEnvResponse) GetJobId() *wrappers.StringValue {
	if m != nil {
		return m.JobId
	}
	return nil
}

type ClusterCommon struct {
	// cluster id
	ClusterId *wrappers.StringValue `protobuf:"bytes,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	// cluster role
	Role *wrappers.StringValue `protobuf:"bytes,2,opt,name=role,proto3" json:"role,omitempty"`
	// bound of server id(index number), some service(zookeeper) need the index to be bounded
	ServerIdUpperBound *wrappers.UInt32Value `protobuf:"bytes,3,opt,name=server_id_upper_bound,json=serverIdUpperBound,proto3" json:"server_id_upper_bound,omitempty"`
	// action of cluster support.eg.[change_vxnet|scale_horizontal]
	AdvancedActions *wrappers.StringValue `protobuf:"bytes,4,opt,name=advanced_actions,json=advancedActions,proto3" json:"advanced_actions,omitempty"`
	// init service config, a json string
	InitService *wrappers.StringValue `protobuf:"bytes,5,opt,name=init_service,json=initService,proto3" json:"init_service,omitempty"`
	// start service config, a json string
	StartService *wrappers.StringValue `protobuf:"bytes,6,opt,name=start_service,json=startService,proto3" json:"start_service,omitempty"`
	// stop service config, a json string
	StopService *wrappers.StringValue `protobuf:"bytes,7,opt,name=stop_service,json=stopService,proto3" json:"stop_service,omitempty"`
	// scale out service config, a json string
	ScaleOutService *wrappers.StringValue `protobuf:"bytes,8,opt,name=scale_out_service,json=scaleOutService,proto3" json:"scale_out_service,omitempty"`
	// scale in service config, a json string
	ScaleInService *wrappers.StringValue `protobuf:"bytes,9,opt,name=scale_in_service,json=scaleInService,proto3" json:"scale_in_service,omitempty"`
	// restart service config, a json string
	RestartService *wrappers.StringValue `protobuf:"bytes,10,opt,name=restart_service,json=restartService,proto3" json:"restart_service,omitempty"`
	// destroy service config, a json string
	DestroyService *wrappers.StringValue `protobuf:"bytes,11,opt,name=destroy_service,json=destroyService,proto3" json:"destroy_service,omitempty"`
	// upgrade service config, a json string
	UpgradeService *wrappers.StringValue `protobuf:"bytes,12,opt,name=upgrade_service,json=upgradeService,proto3" json:"upgrade_service,omitempty"`
	// custom service config, a json string
	CustomService *wrappers.StringValue `protobuf:"bytes,13,opt,name=custom_service,json=customService,proto3" json:"custom_service,omitempty"`
	// backup service config, a json string
	BackupService *wrappers.StringValue `protobuf:"bytes,14,opt,name=backup_service,json=backupService,proto3" json:"backup_service,omitempty"`
	// restore service config, a json string
	RestoreService *wrappers.StringValue `protobuf:"bytes,15,opt,name=restore_service,json=restoreService,proto3" json:"restore_service,omitempty"`
	// delete snapshot service config, a json string
	DeleteSnapshotService *wrappers.StringValue `protobuf:"bytes,16,opt,name=delete_snapshot_service,json=deleteSnapshotService,proto3" json:"delete_snapshot_service,omitempty"`
	// health check config,a json string
	HealthCheck *wrappers.StringValue `protobuf:"bytes,17,opt,name=health_check,json=healthCheck,proto3" json:"health_check,omitempty"`
	// monitor config,a json string
	Monitor        *wrappers.StringValue `protobuf:"bytes,18,opt,name=monitor,proto3" json:"monitor,omitempty"`
	Passphraseless *wrappers.StringValue `protobuf:"bytes,19,opt,name=passphraseless,proto3" json:"passphraseless,omitempty"`
	// vertical scaling policy.eg.[parallel|sequential]
	VerticalScalingPolicy *wrappers.StringValue `protobuf:"bytes,20,opt,name=vertical_scaling_policy,json=verticalScalingPolicy,proto3" json:"vertical_scaling_policy,omitempty"`
	// agent install or not
	AgentInstalled *wrappers.BoolValue `protobuf:"bytes,21,opt,name=agent_installed,json=agentInstalled,proto3" json:"agent_installed,omitempty"`
	// custom metadata script, a json string
	CustomMetadataScript *wrappers.StringValue `protobuf:"bytes,22,opt,name=custom_metadata_script,json=customMetadataScript,proto3" json:"custom_metadata_script,omitempty"`
	// image id
	ImageId *wrappers.StringValue `protobuf:"bytes,23,opt,name=image_id,json=imageId,proto3" json:"image_id,omitempty"`
	// policy of backup
	BackupPolicy *wrappers.StringValue `protobuf:"bytes,24,opt,name=backup_policy,json=backupPolicy,proto3" json:"backup_policy,omitempty"`
	// support incremental backup or not
	IncrementalBackupSupported *wrappers.BoolValue `protobuf:"bytes,25,opt,name=incremental_backup_supported,json=incrementalBackupSupported,proto3" json:"incremental_backup_supported,omitempty"`
	// hypervisor.eg.[docker|kvm|...]
	Hypervisor           *wrappers.StringValue `protobuf:"bytes,26,opt,name=hypervisor,proto3" json:"hypervisor,omitempty"`
	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
	XXX_unrecognized     []byte                `json:"-"`
	XXX_sizecache        int32                 `json:"-"`
}

func (m *ClusterCommon) Reset()         { *m = ClusterCommon{} }
func (m *ClusterCommon) String() string { return proto.CompactTextString(m) }
func (*ClusterCommon) ProtoMessage()    {}
func (*ClusterCommon) Descriptor() ([]byte, []int) {
	return fileDescriptor_3cfb3b8ec240c376, []int{30}
}

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

var xxx_messageInfo_ClusterCommon proto.InternalMessageInfo

func (m *ClusterCommon) GetClusterId() *wrappers.StringValue {
	if m != nil {
		return m.ClusterId
	}
	return nil
}

func (m *ClusterCommon) GetRole() *wrappers.StringValue {
	if m != nil {
		return m.Role
	}
	return nil
}

func (m *ClusterCommon) GetServerIdUpperBound() *wrappers.UInt32Value {
	if m != nil {
		return m.ServerIdUpperBound
	}
	return nil
}

func (m *ClusterCommon) GetAdvancedActions() *wrappers.StringValue {
	if m != nil {
		return m.AdvancedActions
	}
	return nil
}

func (m *ClusterCommon) GetInitService() *wrappers.StringValue {
	if m != nil {
		return m.InitService
	}
	return nil
}

func (m *ClusterCommon) GetStartService() *wrappers.StringValue {
	if m != nil {
		return m.StartService
	}
	return nil
}

func (m *ClusterCommon) GetStopService() *wrappers.StringValue {
	if m != nil {
		return m.StopService
	}
	return nil
}

func (m *ClusterCommon) GetScaleOutService() *wrappers.StringValue {
	if m != nil {
		return m.ScaleOutService
	}
	return nil
}

func (m *ClusterCommon) GetScaleInService() *wrappers.StringValue {
	if m != nil {
		return m.ScaleInService
	}
	return nil
}

func (m *ClusterCommon) GetRestartService() *wrappers.StringValue {
	if m != nil {
		return m.RestartService
	}
	return nil
}

func (m *ClusterCommon) GetDestroyService() *wrappers.StringValue {
	if m != nil {
		return m.DestroyService
	}
	return nil
}

func (m *ClusterCommon) GetUpgradeService() *wrappers.StringValue {
	if m != nil {
		return m.UpgradeService
	}
	return nil
}

func (m *ClusterCommon) GetCustomService() *wrappers.StringValue {
	if m != nil {
		return m.CustomService
	}
	return nil
}

func (m *ClusterCommon) GetBackupService() *wrappers.StringValue {
	if m != nil {
		return m.BackupService
	}
	return nil
}

func (m *ClusterCommon) GetRestoreService() *wrappers.StringValue {
	if m != nil {
		return m.RestoreService
	}
	return nil
}

func (m *ClusterCommon) GetDeleteSnapshotService() *wrappers.StringValue {
	if m != nil {
		return m.DeleteSnapshotService
	}
	return nil
}

func (m *ClusterCommon) GetHealthCheck() *wrappers.StringValue {
	if m != nil {
		return m.HealthCheck
	}
	return nil
}

func (m *ClusterCommon) GetMonitor() *wrappers.StringValue {
	if m != nil {
		return m.Monitor
	}
	return nil
}

func (m *ClusterCommon) GetPassphraseless() *wrappers.StringValue {
	if m != nil {
		return m.Passphraseless
	}
	return nil
}

func (m *ClusterCommon) GetVerticalScalingPolicy() *wrappers.StringValue {
	if m != nil {
		return m.VerticalScalingPolicy
	}
	return nil
}

func (m *ClusterCommon) GetAgentInstalled() *wrappers.BoolValue {
	if m != nil {
		return m.AgentInstalled
	}
	return nil
}

func (m *ClusterCommon) GetCustomMetadataScript() *wrappers.StringValue {
	if m != nil {
		return m.CustomMetadataScript
	}
	return nil
}

func (m *ClusterCommon) GetImageId() *wrappers.StringValue {
	if m != nil {
		return m.ImageId
	}
	return nil
}

func (m *ClusterCommon) GetBackupPolicy() *wrappers.StringValue {
	if m != nil {
		return m.BackupPolicy
	}
	return nil
}

func (m *ClusterCommon) GetIncrementalBackupSupported() *wrappers.BoolValue {
	if m != nil {
		return m.IncrementalBackupSupported
	}
	return nil
}

func (m *ClusterCommon) GetHypervisor() *wrappers.StringValue {
	if m != nil {
		return m.Hypervisor
	}
	return nil
}

type ClusterNode struct {
	// cluster node(cluster contain one more node) id
	NodeId *wrappers.StringValue `protobuf:"bytes,1,opt,name=node_id,json=nodeId,proto3" json:"node_id,omitempty"`
	// cluster id
	ClusterId *wrappers.StringValue `protobuf:"bytes,2,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	// name, default empty
	Name *wrappers.StringValue `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
	// instance id
	InstanceId *wrappers.StringValue `protobuf:"bytes,4,opt,name=instance_id,json=instanceId,proto3" json:"instance_id,omitempty"`
	// volume id, if mount volume
	VolumeId *wrappers.StringValue `protobuf:"bytes,5,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"`
	// device
	Device *wrappers.StringValue `protobuf:"bytes,6,opt,name=device,proto3" json:"device,omitempty"`
	// subnet id
	SubnetId *wrappers.StringValue `protobuf:"bytes,7,opt,name=subnet_id,json=subnetId,proto3" json:"subnet_id,omitempty"`
	// private ip
	PrivateIp *wrappers.StringValue `protobuf:"bytes,8,opt,name=private_ip,json=privateIp,proto3" json:"private_ip,omitempty"`
	// elastic ip, if attach ip
	Eip *wrappers.StringValue `protobuf:"bytes,9,opt,name=eip,proto3" json:"eip,omitempty"`
	// server id
	ServerId *wrappers.UInt32Value `protobuf:"bytes,10,opt,name=server_id,json=serverId,proto3" json:"server_id,omitempty"`
	// role eg.[wordpress|mysql|...]
	Role *wrappers.StringValue `protobuf:"bytes,11,opt,name=role,proto3" json:"role,omitempty"`
	// status eg.[active|used|enabled|disabled|deleted|stopped|ceased|successful|failed]
	Status *wrappers.StringValue `protobuf:"bytes,12,opt,name=status,proto3" json:"status,omitempty"`
	// transition status eg.[creating|deleting|upgrading|updating|rollbacking|stopping|starting|recovering|ceasing|resizing|scaling]
	TransitionStatus *wrappers.StringValue `protobuf:"bytes,13,opt,name=transition_status,json=transitionStatus,proto3" json:"transition_status,omitempty"`
	// group id
	GroupId *wrappers.UInt32Value `protobuf:"bytes,14,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"`
	// own path, concat string group_path:user_id
	OwnerPath *wrappers.StringValue `protobuf:"bytes,15,opt,name=owner_path,json=ownerPath,proto3" json:"owner_path,omitempty"`
	// global server id
	GlobalServerId *wrappers.UInt32Value `protobuf:"bytes,16,opt,name=global_server_id,json=globalServerId,proto3" json:"global_server_id,omitempty"`
	// custom metadata
	CustomMetadata *wrappers.StringValue `protobuf:"bytes,17,opt,name=custom_metadata,json=customMetadata,proto3" json:"custom_metadata,omitempty"`
	// public key
	PubKey *wrappers.StringValue `protobuf:"bytes,18,opt,name=pub_key,json=pubKey,proto3" json:"pub_key,omitempty"`
	// health status default empty eg.[healthy|unhealthy|""]
	HealthStatus *wrappers.StringValue `protobuf:"bytes,19,opt,name=health_status,json=healthStatus,proto3" json:"health_status,omitempty"`
	// backup or not
	IsBackup *wrappers.BoolValue `protobuf:"bytes,20,opt,name=is_backup,json=isBackup,proto3" json:"is_backup,omitempty"`
	// auto backup or not
	AutoBackup *wrappers.BoolValue `protobuf:"bytes,21,opt,name=auto_backup,json=autoBackup,proto3" json:"auto_backup,omitempty"`
	// the time when cluster node create
	CreateTime *timestamp.Timestamp `protobuf:"bytes,22,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
	// record cluster node status changed time
	StatusTime *timestamp.Timestamp `protobuf:"bytes,23,opt,name=status_time,json=statusTime,proto3" json:"status_time,omitempty"`
	// host id
	HostId *wrappers.StringValue `protobuf:"bytes,24,opt,name=host_id,json=hostId,proto3" json:"host_id,omitempty"`
	// host ip
	HostIp *wrappers.StringValue `protobuf:"bytes,25,opt,name=host_ip,json=hostIp,proto3" json:"host_ip,omitempty"`
	// cluster role
	ClusterRole *ClusterRole `protobuf:"bytes,26,opt,name=cluster_role,json=clusterRole,proto3" json:"cluster_role,omitempty"`
	// cluster common info
	ClusterCommon *ClusterCommon `protobuf:"bytes,27,opt,name=cluster_common,json=clusterCommon,proto3" json:"cluster_common,omitempty"`
	// list of ssh key pair id
	KeyPairId []string `protobuf:"bytes,28,rep,name=key_pair_id,json=keyPairId,proto3" json:"key_pair_id,omitempty"`
	// owner
	Owner                *wrappers.StringValue `protobuf:"bytes,29,opt,name=owner,proto3" json:"owner,omitempty"`
	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
	XXX_unrecognized     []byte                `json:"-"`
	XXX_sizecache        int32                 `json:"-"`
}

func (m *ClusterNode) Reset()         { *m = ClusterNode{} }
func (m *ClusterNode) String() string { return proto.CompactTextString(m) }
func (*ClusterNode) ProtoMessage()    {}
func (*ClusterNode) Descriptor() ([]byte, []int) {
	return fileDescriptor_3cfb3b8ec240c376, []int{31}
}

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

var xxx_messageInfo_ClusterNode proto.InternalMessageInfo

func (m *ClusterNode) GetNodeId() *wrappers.StringValue {
	if m != nil {
		return m.NodeId
	}
	return nil
}

func (m *ClusterNode) GetClusterId() *wrappers.StringValue {
	if m != nil {
		return m.ClusterId
	}
	return nil
}

func (m *ClusterNode) GetName() *wrappers.StringValue {
	if m != nil {
		return m.Name
	}
	return nil
}

func (m *ClusterNode) GetInstanceId() *wrappers.StringValue {
	if m != nil {
		return m.InstanceId
	}
	return nil
}

func (m *ClusterNode) GetVolumeId() *wrappers.StringValue {
	if m != nil {
		return m.VolumeId
	}
	return nil
}

func (m *ClusterNode) GetDevice() *wrappers.StringValue {
	if m != nil {
		return m.Device
	}
	return nil
}

func (m *ClusterNode) GetSubnetId() *wrappers.StringValue {
	if m != nil {
		return m.SubnetId
	}
	return nil
}

func (m *ClusterNode) GetPrivateIp() *wrappers.StringValue {
	if m != nil {
		return m.PrivateIp
	}
	return nil
}

func (m *ClusterNode) GetEip() *wrappers.StringValue {
	if m != nil {
		return m.Eip
	}
	return nil
}

func (m *ClusterNode) GetServerId() *wrappers.UInt32Value {
	if m != nil {
		return m.ServerId
	}
	return nil
}

func (m *ClusterNode) GetRole() *wrappers.StringValue {
	if m != nil {
		return m.Role
	}
	return nil
}

func (m *ClusterNode) GetStatus() *wrappers.StringValue {
	if m != nil {
		return m.Status
	}
	return nil
}

func (m *ClusterNode) GetTransitionStatus() *wrappers.StringValue {
	if m != nil {
		return m.TransitionStatus
	}
	return nil
}

func (m *ClusterNode) GetGroupId() *wrappers.UInt32Value {
	if m != nil {
		return m.GroupId
	}
	return nil
}

func (m *ClusterNode) GetOwnerPath() *wrappers.StringValue {
	if m != nil {
		return m.OwnerPath
	}
	return nil
}

func (m *ClusterNode) GetGlobalServerId() *wrappers.UInt32Value {
	if m != nil {
		return m.GlobalServerId
	}
	return nil
}

func (m *ClusterNode) GetCustomMetadata() *wrappers.StringValue {
	if m != nil {
		return m.CustomMetadata
	}
	return nil
}

func (m *ClusterNode) GetPubKey() *wrappers.StringValue {
	if m != nil {
		return m.PubKey
	}
	return nil
}

func (m *ClusterNode) GetHealthStatus() *wrappers.StringValue {
	if m != nil {
		return m.HealthStatus
	}
	return nil
}

func (m *ClusterNode) GetIsBackup() *wrappers.BoolValue {
	if m != nil {
		return m.IsBackup
	}
	return nil
}

func (m *ClusterNode) GetAutoBackup() *wrappers.BoolValue {
	if m != nil {
		return m.AutoBackup
	}
	return nil
}

func (m *ClusterNode) GetCreateTime() *timestamp.Timestamp {
	if m != nil {
		return m.CreateTime
	}
	return nil
}

func (m *ClusterNode) GetStatusTime() *timestamp.Timestamp {
	if m != nil {
		return m.StatusTime
	}
	return nil
}

func (m *ClusterNode) GetHostId() *wrappers.StringValue {
	if m != nil {
		return m.HostId
	}
	return nil
}

func (m *ClusterNode) GetHostIp() *wrappers.StringValue {
	if m != nil {
		return m.HostIp
	}
	return nil
}

func (m *ClusterNode) GetClusterRole() *ClusterRole {
	if m != nil {
		return m.ClusterRole
	}
	return nil
}

func (m *ClusterNode) GetClusterCommon() *ClusterCommon {
	if m != nil {
		return m.ClusterCommon
	}
	return nil
}

func (m *ClusterNode) GetKeyPairId() []string {
	if m != nil {
		return m.KeyPairId
	}
	return nil
}

func (m *ClusterNode) GetOwner() *wrappers.StringValue {
	if m != nil {
		return m.Owner
	}
	return nil
}

type ClusterRole struct {
	// cluster id
	ClusterId *wrappers.StringValue `protobuf:"bytes,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	// role.eg.[wordpress|mysql|...]
	Role *wrappers.StringValue `protobuf:"bytes,2,opt,name=role,proto3" json:"role,omitempty"`
	// number of cpu
	Cpu *wrappers.UInt32Value `protobuf:"bytes,3,opt,name=cpu,proto3" json:"cpu,omitempty"`
	// number of gpu
	Gpu *wrappers.UInt32Value `protobuf:"bytes,4,opt,name=gpu,proto3" json:"gpu,omitempty"`
	// size of memory
	Memory *wrappers.UInt32Value `protobuf:"bytes,5,opt,name=memory,proto3" json:"memory,omitempty"`
	// size of instance
	InstanceSize *wrappers.UInt32Value `protobuf:"bytes,6,opt,name=instance_size,json=instanceSize,proto3" json:"instance_size,omitempty"`
	// size of storage
	StorageSize *wrappers.UInt32Value `protobuf:"bytes,7,opt,name=storage_size,json=storageSize,proto3" json:"storage_size,omitempty"`
	// mount point, a dir.eg.[/data]
	MountPoint *wrappers.StringValue `protobuf:"bytes,8,opt,name=mount_point,json=mountPoint,proto3" json:"mount_point,omitempty"`
	// mount_options
	MountOptions *wrappers.StringValue `protobuf:"bytes,9,opt,name=mount_options,json=mountOptions,proto3" json:"mount_options,omitempty"`
	// file system eg.[ext|ext4|...]
	FileSystem *wrappers.StringValue `protobuf:"bytes,10,opt,name=file_system,json=fileSystem,proto3" json:"file_system,omitempty"`
	// env of cluster
	Env *wrappers.StringValue `protobuf:"bytes,11,opt,name=env,proto3" json:"env,omitempty"`
	// number of replica
	Replicas *wrappers.UInt32Value `protobuf:"bytes,12,opt,name=replicas,proto3" json:"replicas,omitempty"`
	// number of replica on ready
	ReadyReplicas *wrappers.UInt32Value `protobuf:"bytes,13,opt,name=ready_replicas,json=readyReplicas,proto3" json:"ready_replicas,omitempty"`
	// api version
	ApiVersion           *wrappers.StringValue `protobuf:"bytes,14,opt,name=api_version,json=apiVersion,proto3" json:"api_version,omitempty"`
	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
	XXX_unrecognized     []byte                `json:"-"`
	XXX_sizecache        int32                 `json:"-"`
}

func (m *ClusterRole) Reset()         { *m = ClusterRole{} }
func (m *ClusterRole) String() string { return proto.CompactTextString(m) }
func (*ClusterRole) ProtoMessage()    {}
func (*ClusterRole) Descriptor() ([]byte, []int) {
	return fileDescriptor_3cfb3b8ec240c376, []int{32}
}

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

var xxx_messageInfo_ClusterRole proto.InternalMessageInfo

func (m *ClusterRole) GetClusterId() *wrappers.StringValue {
	if m != nil {
		return m.ClusterId
	}
	return nil
}

func (m *ClusterRole) GetRole() *wrappers.StringValue {
	if m != nil {
		return m.Role
	}
	return nil
}

func (m *ClusterRole) GetCpu() *wrappers.UInt32Value {
	if m != nil {
		return m.Cpu
	}
	return nil
}

func (m *ClusterRole) GetGpu() *wrappers.UInt32Value {
	if m != nil {
		return m.Gpu
	}
	return nil
}

func (m *ClusterRole) GetMemory() *wrappers.UInt32Value {
	if m != nil {
		return m.Memory
	}
	return nil
}

func (m *ClusterRole) GetInstanceSize() *wrappers.UInt32Value {
	if m != nil {
		return m.InstanceSize
	}
	return nil
}

func (m *ClusterRole) GetStorageSize() *wrappers.UInt32Value {
	if m != nil {
		return m.StorageSize
	}
	return nil
}

func (m *ClusterRole) GetMountPoint() *wrappers.StringValue {
	if m != nil {
		return m.MountPoint
	}
	return nil
}

func (m *ClusterRole) GetMountOptions() *wrappers.StringValue {
	if m != nil {
		return m.MountOptions
	}
	return nil
}

func (m *ClusterRole) GetFileSystem() *wrappers.StringValue {
	if m != nil {
		return m.FileSystem
	}
	return nil
}

func (m *ClusterRole) GetEnv() *wrappers.StringValue {
	if m != nil {
		return m.Env
	}
	return nil
}

func (m *ClusterRole) GetReplicas() *wrappers.UInt32Value {
	if m != nil {
		return m.Replicas
	}
	return nil
}

func (m *ClusterRole) GetReadyReplicas() *wrappers.UInt32Value {
	if m != nil {
		return m.ReadyReplicas
	}
	return nil
}

func (m *ClusterRole) GetApiVersion() *wrappers.StringValue {
	if m != nil {
		return m.ApiVersion
	}
	return nil
}

type ClusterLoadbalancer struct {
	// cluster id
	ClusterId *wrappers.StringValue `protobuf:"bytes,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	// role of balancer
	Role *wrappers.StringValue `protobuf:"bytes,2,opt,name=role,proto3" json:"role,omitempty"`
	// listener id
	LoadbalancerListenerId *wrappers.StringValue `protobuf:"bytes,3,opt,name=loadbalancer_listener_id,json=loadbalancerListenerId,proto3" json:"loadbalancer_listener_id,omitempty"`
	// port
	LoadbalancerPort *wrappers.UInt32Value `protobuf:"bytes,4,opt,name=loadbalancer_port,json=loadbalancerPort,proto3" json:"loadbalancer_port,omitempty"`
	// policy id
	LoadbalancerPolicyId *wrappers.StringValue `protobuf:"bytes,5,opt,name=loadbalancer_policy_id,json=loadbalancerPolicyId,proto3" json:"loadbalancer_policy_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
	XXX_unrecognized     []byte                `json:"-"`
	XXX_sizecache        int32                 `json:"-"`
}

func (m *ClusterLoadbalancer) Reset()         { *m = ClusterLoadbalancer{} }
func (m *ClusterLoadbalancer) String() string { return proto.CompactTextString(m) }
func (*ClusterLoadbalancer) ProtoMessage()    {}
func (*ClusterLoadbalancer) Descriptor() ([]byte, []int) {
	return fileDescriptor_3cfb3b8ec240c376, []int{33}
}

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

var xxx_messageInfo_ClusterLoadbalancer proto.InternalMessageInfo

func (m *ClusterLoadbalancer) GetClusterId() *wrappers.StringValue {
	if m != nil {
		return m.ClusterId
	}
	return nil
}

func (m *ClusterLoadbalancer) GetRole() *wrappers.StringValue {
	if m != nil {
		return m.Role
	}
	return nil
}

func (m *ClusterLoadbalancer) GetLoadbalancerListenerId() *wrappers.StringValue {
	if m != nil {
		return m.LoadbalancerListenerId
	}
	return nil
}

func (m *ClusterLoadbalancer) GetLoadbalancerPort() *wrappers.UInt32Value {
	if m != nil {
		return m.LoadbalancerPort
	}
	return nil
}

func (m *ClusterLoadbalancer) GetLoadbalancerPolicyId() *wrappers.StringValue {
	if m != nil {
		return m.LoadbalancerPolicyId
	}
	return nil
}

type ClusterLink struct {
	// cluster id
	ClusterId *wrappers.StringValue `protobuf:"bytes,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	// cluster link name eg.[mysql|wordpress|...]
	Name *wrappers.StringValue `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	// external cluster id
	ExternalClusterId *wrappers.StringValue `protobuf:"bytes,3,opt,name=external_cluster_id,json=externalClusterId,proto3" json:"external_cluster_id,omitempty"`
	// owner path, concat string group_path:user_id
	OwnerPath *wrappers.StringValue `protobuf:"bytes,4,opt,name=owner_path,json=ownerPath,proto3" json:"owner_path,omitempty"`
	// owner
	Owner                *wrappers.StringValue `protobuf:"bytes,5,opt,name=owner,proto3" json:"owner,omitempty"`
	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
	XXX_unrecognized     []byte                `json:"-"`
	XXX_sizecache        int32                 `json:"-"`
}

func (m *ClusterLink) Reset()         { *m = ClusterLink{} }
func (m *ClusterLink) String() string { return proto.CompactTextString(m) }
func (*ClusterLink) ProtoMessage()    {}
func (*ClusterLink) Descriptor() ([]byte, []int) {
	return fileDescriptor_3cfb3b8ec240c376, []int{34}
}

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

var xxx_messageInfo_ClusterLink proto.InternalMessageInfo

func (m *ClusterLink) GetClusterId() *wrappers.StringValue {
	if m != nil {
		return m.ClusterId
	}
	return nil
}

func (m *ClusterLink) GetName() *wrappers.StringValue {
	if m != nil {
		return m.Name
	}
	return nil
}

func (m *ClusterLink) GetExternalClusterId() *wrappers.StringValue {
	if m != nil {
		return m.ExternalClusterId
	}
	return nil
}

func (m *ClusterLink) GetOwnerPath() *wrappers.StringValue {
	if m != nil {
		return m.OwnerPath
	}
	return nil
}

func (m *ClusterLink) GetOwner() *wrappers.StringValue {
	if m != nil {
		return m.Owner
	}
	return nil
}

type Cluster struct {
	// cluster id
	ClusterId *wrappers.StringValue `protobuf:"bytes,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	// cluster name
	Name *wrappers.StringValue `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	// cluster description
	Description *wrappers.StringValue `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
	// id of app run in cluster
	AppId *wrappers.StringValue `protobuf:"bytes,4,opt,name=app_id,json=appId,proto3" json:"app_id,omitempty"`
	// id of version of app run in cluster
	VersionId *wrappers.StringValue `protobuf:"bytes,5,opt,name=version_id,json=versionId,proto3" json:"version_id,omitempty"`
	// subnet id, cluster run in a subnet
	SubnetId *wrappers.StringValue `protobuf:"bytes,6,opt,name=subnet_id,json=subnetId,proto3" json:"subnet_id,omitempty"`
	// vpc id, a vpc contain one more subnet
	VpcId *wrappers.StringValue `protobuf:"bytes,7,opt,name=vpc_id,json=vpcId,proto3" json:"vpc_id,omitempty"`
	// frontgate id, a proxy for vpc to communicate
	FrontgateId *wrappers.StringValue `protobuf:"bytes,8,opt,name=frontgate_id,json=frontgateId,proto3" json:"frontgate_id,omitempty"`
	// cluster type, frontgate or normal cluster
	ClusterType *wrappers.UInt32Value `protobuf:"bytes,9,opt,name=cluster_type,json=clusterType,proto3" json:"cluster_type,omitempty"`
	// endpoint of cluster
	Endpoints *wrappers.StringValue `protobuf:"bytes,10,opt,name=endpoints,proto3" json:"endpoints,omitempty"`
	// cluster status eg.[active|used|enabled|disabled|deleted|stopped|ceased]
	Status *wrappers.StringValue `protobuf:"bytes,11,opt,name=status,proto3" json:"status,omitempty"`
	// cluster transition status eg.[creating|deleting|upgrading|updating|rollbacking|stopping|starting|recovering|ceasing|resizing|scaling]
	TransitionStatus *wrappers.StringValue `protobuf:"bytes,12,opt,name=transition_status,json=transitionStatus,proto3" json:"transition_status,omitempty"`
	// metadata root access
	MetadataRootAccess *wrappers.BoolValue `protobuf:"bytes,13,opt,name=metadata_root_access,json=metadataRootAccess,proto3" json:"metadata_root_access,omitempty"`
	// owner path, concat string group_path:user_id
	OwnerPath *wrappers.StringValue `protobuf:"bytes,14,opt,name=owner_path,json=ownerPath,proto3" json:"owner_path,omitempty"`
	// global uuid
	GlobalUuid *wrappers.StringValue `protobuf:"bytes,15,opt,name=global_uuid,json=globalUuid,proto3" json:"global_uuid,omitempty"`
	// upgrade status, unused
	UpgradeStatus *wrappers.StringValue `protobuf:"bytes,16,opt,name=upgrade_status,json=upgradeStatus,proto3" json:"upgrade_status,omitempty"`
	// cluster upgraded time
	UpgradeTime *timestamp.Timestamp `protobuf:"bytes,17,opt,name=upgrade_time,json=upgradeTime,proto3" json:"upgrade_time,omitempty"`
	// cluster runtime id
	RuntimeId *wrappers.StringValue `protobuf:"bytes,18,opt,name=runtime_id,json=runtimeId,proto3" json:"runtime_id,omitempty"`
	// the time when cluster create
	CreateTime *timestamp.Timestamp `protobuf:"bytes,19,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
	// record status changed time
	StatusTime     *timestamp.Timestamp  `protobuf:"bytes,20,opt,name=status_time,json=statusTime,proto3" json:"status_time,omitempty"`
	AdditionalInfo *wrappers.StringValue `protobuf:"bytes,21,opt,name=additional_info,json=additionalInfo,proto3" json:"additional_info,omitempty"`
	// cluster env
	Env *wrappers.StringValue `protobuf:"bytes,22,opt,name=env,proto3" json:"env,omitempty"`
	// cluster used to debug or not
	Debug *wrappers.BoolValue `protobuf:"bytes,23,opt,name=debug,proto3" json:"debug,omitempty"`
	// zone of cluster eg.[pek3a|pek3b]
	Zone *wrappers.StringValue `protobuf:"bytes,24,opt,name=zone,proto3" json:"zone,omitempty"`
	// list of cluster node
	ClusterNodeSet []*ClusterNode `protobuf:"bytes,25,rep,name=cluster_node_set,json=clusterNodeSet,proto3" json:"cluster_node_set,omitempty"`
	// list of cluster role
	ClusterRoleSet []*ClusterRole `protobuf:"bytes,26,rep,name=cluster_role_set,json=clusterRoleSet,proto3" json:"cluster_role_set,omitempty"`
	// list of cluster link
	ClusterLinkSet []*ClusterLink `protobuf:"bytes,27,rep,name=cluster_link_set,json=clusterLinkSet,proto3" json:"cluster_link_set,omitempty"`
	// list of cluster common
	ClusterCommonSet []*ClusterCommon `protobuf:"bytes,28,rep,name=cluster_common_set,json=clusterCommonSet,proto3" json:"cluster_common_set,omitempty"`
	// lister of cluster loadbalancer
	ClusterLoadbalancerSet []*ClusterLoadbalancer `protobuf:"bytes,29,rep,name=cluster_loadbalancer_set,json=clusterLoadbalancerSet,proto3" json:"cluster_loadbalancer_set,omitempty"`
	// owner
	Owner                *wrappers.StringValue `protobuf:"bytes,30,opt,name=owner,proto3" json:"owner,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_3cfb3b8ec240c376, []int{35}
}

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) GetClusterId() *wrappers.StringValue {
	if m != nil {
		return m.ClusterId
	}
	return nil
}

func (m *Cluster) GetName() *wrappers.StringValue {
	if m != nil {
		return m.Name
	}
	return nil
}

func (m *Cluster) GetDescription() *wrappers.StringValue {
	if m != nil {
		return m.Description
	}
	return nil
}

func (m *Cluster) GetAppId() *wrappers.StringValue {
	if m != nil {
		return m.AppId
	}
	return nil
}

func (m *Cluster) GetVersionId() *wrappers.StringValue {
	if m != nil {
		return m.VersionId
	}
	return nil
}

func (m *Cluster) GetSubnetId() *wrappers.StringValue {
	if m != nil {
		return m.SubnetId
	}
	return nil
}

func (m *Cluster) GetVpcId() *wrappers.StringValue {
	if m != nil {
		return m.VpcId
	}
	return nil
}

func (m *Cluster) GetFrontgateId() *wrappers.StringValue {
	if m != nil {
		return m.FrontgateId
	}
	return nil
}

func (m *Cluster) GetClusterType() *wrappers.UInt32Value {
	if m != nil {
		return m.ClusterType
	}
	return nil
}

func (m *Cluster) GetEndpoints() *wrappers.StringValue {
	if m != nil {
		return m.Endpoints
	}
	return nil
}

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

func (m *Cluster) GetTransitionStatus() *wrappers.StringValue {
	if m != nil {
		return m.TransitionStatus
	}
	return nil
}

func (m *Cluster) GetMetadataRootAccess() *wrappers.BoolValue {
	if m != nil {
		return m.MetadataRootAccess
	}
	return nil
}

func (m *Cluster) GetOwnerPath() *wrappers.StringValue {
	if m != nil {
		return m.OwnerPath
	}
	return nil
}

func (m *Cluster) GetGlobalUuid() *wrappers.StringValue {
	if m != nil {
		return m.GlobalUuid
	}
	return nil
}

func (m *Cluster) GetUpgradeStatus() *wrappers.StringValue {
	if m != nil {
		return m.UpgradeStatus
	}
	return nil
}

func (m *Cluster) GetUpgradeTime() *timestamp.Timestamp {
	if m != nil {
		return m.UpgradeTime
	}
	return nil
}

func (m *Cluster) GetRuntimeId() *wrappers.StringValue {
	if m != nil {
		return m.RuntimeId
	}
	return nil
}

func (m *Cluster) GetCreateTime() *timestamp.Timestamp {
	if m != nil {
		return m.CreateTime
	}
	return nil
}

func (m *Cluster) GetStatusTime() *timestamp.Timestamp {
	if m != nil {
		return m.StatusTime
	}
	return nil
}

func (m *Cluster) GetAdditionalInfo() *wrappers.StringValue {
	if m != nil {
		return m.AdditionalInfo
	}
	return nil
}

func (m *Cluster) GetEnv() *wrappers.StringValue {
	if m != nil {
		return m.Env
	}
	return nil
}

func (m *Cluster) GetDebug() *wrappers.BoolValue {
	if m != nil {
		return m.Debug
	}
	return nil
}

func (m *Cluster) GetZone() *wrappers.StringValue {
	if m != nil {
		return m.Zone
	}
	return nil
}

func (m *Cluster) GetClusterNodeSet() []*ClusterNode {
	if m != nil {
		return m.ClusterNodeSet
	}
	return nil
}

func (m *Cluster) GetClusterRoleSet() []*ClusterRole {
	if m != nil {
		return m.ClusterRoleSet
	}
	return nil
}

func (m *Cluster) GetClusterLinkSet() []*ClusterLink {
	if m != nil {
		return m.ClusterLinkSet
	}
	return nil
}

func (m *Cluster) GetClusterCommonSet() []*ClusterCommon {
	if m != nil {
		return m.ClusterCommonSet
	}
	return nil
}

func (m *Cluster) GetClusterLoadbalancerSet() []*ClusterLoadbalancer {
	if m != nil {
		return m.ClusterLoadbalancerSet
	}
	return nil
}

func (m *Cluster) GetOwner() *wrappers.StringValue {
	if m != nil {
		return m.Owner
	}
	return nil
}

type DescribeClustersRequest struct {
	// cluster ids
	ClusterId []string `protobuf:"bytes,1,rep,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	// app ids
	AppId []string `protobuf:"bytes,2,rep,name=app_id,json=appId,proto3" json:"app_id,omitempty"`
	// version ids
	VersionId []string `protobuf:"bytes,3,rep,name=version_id,json=versionId,proto3" json:"version_id,omitempty"`
	// cluster status eg.[active|used|enabled|disabled|deleted|stopped|ceased]
	Status []string `protobuf:"bytes,4,rep,name=status,proto3" json:"status,omitempty"`
	// runtime ids
	RuntimeId []string `protobuf:"bytes,5,rep,name=runtime_id,json=runtimeId,proto3" json:"runtime_id,omitempty"`
	// frontgate ids
	FrontgateId []string `protobuf:"bytes,6,rep,name=frontgate_id,json=frontgateId,proto3" json:"frontgate_id,omitempty"`
	// external cluster id
	ExternalClusterId *wrappers.StringValue `protobuf:"bytes,7,opt,name=external_cluster_id,json=externalClusterId,proto3" json:"external_cluster_id,omitempty"`
	// data limit per page, default value 20, max value 200
	Limit uint32 `protobuf:"varint,8,opt,name=limit,proto3" json:"limit,omitempty"`
	// data offset, default 0
	Offset uint32 `protobuf:"varint,9,opt,name=offset,proto3" json:"offset,omitempty"`
	// query key, support these fields(cluster_id, app_id, version_id, status, runtime_id, frontgate_id, owner, cluster_type)
	SearchWord *wrappers.StringValue `protobuf:"bytes,10,opt,name=search_word,json=searchWord,proto3" json:"search_word,omitempty"`
	// sort key, order by sort_key, default create_time
	SortKey *wrappers.StringValue `protobuf:"bytes,11,opt,name=sort_key,json=sortKey,proto3" json:"sort_key,omitempty"`
	// value = 0 sort ASC, value = 1 sort DESC
	Reverse *wrappers.BoolValue `protobuf:"bytes,12,opt,name=reverse,proto3" json:"reverse,omitempty"`
	// owner
	Owner []string `protobuf:"bytes,13,rep,name=owner,proto3" json:"owner,omitempty"`
	// cluster type, frontgate or normal cluster
	ClusterType *wrappers.StringValue `protobuf:"bytes,14,opt,name=cluster_type,json=clusterType,proto3" json:"cluster_type,omitempty"`
	// get cluster detail info or not
	WithDetail *wrappers.BoolValue `protobuf:"bytes,15,opt,name=with_detail,json=withDetail,proto3" json:"with_detail,omitempty"`
	// cluster created duration eg.[1 day]
	CreatedDate *wrappers.UInt32Value `protobuf:"bytes,16,opt,name=created_date,json=createdDate,proto3" json:"created_date,omitempty"`
	// select column to display
	DisplayColumns       []string `protobuf:"bytes,17,rep,name=display_columns,json=displayColumns,proto3" json:"display_columns,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *DescribeClustersRequest) Reset()         { *m = DescribeClustersRequest{} }
func (m *DescribeClustersRequest) String() string { return proto.CompactTextString(m) }
func (*DescribeClustersRequest) ProtoMessage()    {}
func (*DescribeClustersRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_3cfb3b8ec240c376, []int{36}
}

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

var xxx_messageInfo_DescribeClustersRequest proto.InternalMessageInfo

func (m *DescribeClustersRequest) GetClusterId() []string {
	if m != nil {
		return m.ClusterId
	}
	return nil
}

func (m *DescribeClustersRequest) GetAppId() []string {
	if m != nil {
		return m.AppId
	}
	return nil
}

func (m *DescribeClustersRequest) GetVersionId() []string {
	if m != nil {
		return m.VersionId
	}
	return nil
}

func (m *DescribeClustersRequest) GetStatus() []string {
	if m != nil {
		return m.Status
	}
	return nil
}

func (m *DescribeClustersRequest) GetRuntimeId() []string {
	if m != nil {
		return m.RuntimeId
	}
	return nil
}

func (m *DescribeClustersRequest) GetFrontgateId() []string {
	if m != nil {
		return m.FrontgateId
	}
	return nil
}

func (m *DescribeClustersRequest) GetExternalClusterId() *wrappers.StringValue {
	if m != nil {
		return m.ExternalClusterId
	}
	return nil
}

func (m *DescribeClustersRequest) GetLimit() uint32 {
	if m != nil {
		return m.Limit
	}
	return 0
}

func (m *DescribeClustersRequest) GetOffset() uint32 {
	if m != nil {
		return m.Offset
	}
	return 0
}

func (m *DescribeClustersRequest) GetSearchWord() *wrappers.StringValue {
	if m != nil {
		return m.SearchWord
	}
	return nil
}

func (m *DescribeClustersRequest) GetSortKey() *wrappers.StringValue {
	if m != nil {
		return m.SortKey
	}
	return nil
}

func (m *DescribeClustersRequest) GetReverse() *wrappers.BoolValue {
	if m != nil {
		return m.Reverse
	}
	return nil
}

func (m *DescribeClustersRequest) GetOwner() []string {
	if m != nil {
		return m.Owner
	}
	return nil
}

func (m *DescribeClustersRequest) GetClusterType() *wrappers.StringValue {
	if m != nil {
		return m.ClusterType
	}
	return nil
}

func (m *DescribeClustersRequest) GetWithDetail() *wrappers.BoolValue {
	if m != nil {
		return m.WithDetail
	}
	return nil
}

func (m *DescribeClustersRequest) GetCreatedDate() *wrappers.UInt32Value {
	if m != nil {
		return m.CreatedDate
	}
	return nil
}

func (m *DescribeClustersRequest) GetDisplayColumns() []string {
	if m != nil {
		return m.DisplayColumns
	}
	return nil
}

type DescribeClustersResponse struct {
	// total count of qualified cluster
	TotalCount uint32 `protobuf:"varint,1,opt,name=total_count,json=totalCount,proto3" json:"total_count,omitempty"`
	// list of cluster
	ClusterSet           []*Cluster `protobuf:"bytes,2,rep,name=cluster_set,json=clusterSet,proto3" json:"cluster_set,omitempty"`
	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
	XXX_unrecognized     []byte     `json:"-"`
	XXX_sizecache        int32      `json:"-"`
}

func (m *DescribeClustersResponse) Reset()         { *m = DescribeClustersResponse{} }
func (m *DescribeClustersResponse) String() string { return proto.CompactTextString(m) }
func (*DescribeClustersResponse) ProtoMessage()    {}
func (*DescribeClustersResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_3cfb3b8ec240c376, []int{37}
}

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

var xxx_messageInfo_DescribeClustersResponse proto.InternalMessageInfo

func (m *DescribeClustersResponse) GetTotalCount() uint32 {
	if m != nil {
		return m.TotalCount
	}
	return 0
}

func (m *DescribeClustersResponse) GetClusterSet() []*Cluster {
	if m != nil {
		return m.ClusterSet
	}
	return nil
}

type DescribeAppClustersRequest struct {
	// app ids
	AppId []string `protobuf:"bytes,1,rep,name=app_id,json=appId,proto3" json:"app_id,omitempty"`
	// status eg.[active|used|enabled|disabled|deleted|stopped|ceased]
	Status []string `protobuf:"bytes,2,rep,name=status,proto3" json:"status,omitempty"`
	// data limit per page, default value 20, max value 200
	Limit uint32 `protobuf:"varint,3,opt,name=limit,proto3" json:"limit,omitempty"`
	// data offset, default 0
	Offset uint32 `protobuf:"varint,4,opt,name=offset,proto3" json:"offset,omitempty"`
	// query key, support these fields(cluster_id, app_id, version_id, status, runtime_id, frontgate_id, owner, cluster_type)
	SearchWord *wrappers.StringValue `protobuf:"bytes,5,opt,name=search_word,json=searchWord,proto3" json:"search_word,omitempty"`
	// sort key, order by sort_key, default create_time
	SortKey *wrappers.StringValue `protobuf:"bytes,6,opt,name=sort_key,json=sortKey,proto3" json:"sort_key,omitempty"`
	// value = 0 sort ASC, value = 1 sort DESC
	Reverse *wrappers.BoolValue `protobuf:"bytes,7,opt,name=reverse,proto3" json:"reverse,omitempty"`
	// owner
	Owner []string `protobuf:"bytes,8,rep,name=owner,proto3" json:"owner,omitempty"`
	// get cluster with detail
	WithDetail *wrappers.BoolValue `protobuf:"bytes,9,opt,name=with_detail,json=withDetail,proto3" json:"with_detail,omitempty"`
	// cluster created duration eg.[1 day]
	CreatedDate *wrappers.UInt32Value `protobuf:"bytes,10,opt,name=created_date,json=createdDate,proto3" json:"created_date,omitempty"`
	// select columns to display
	DisplayColumns       []string `protobuf:"bytes,11,rep,name=display_columns,json=displayColumns,proto3" json:"display_columns,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *DescribeAppClustersRequest) Reset()         { *m = DescribeAppClustersRequest{} }
func (m *DescribeAppClustersRequest) String() string { return proto.CompactTextString(m) }
func (*DescribeAppClustersRequest) ProtoMessage()    {}
func (*DescribeAppClustersRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_3cfb3b8ec240c376, []int{38}
}

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

var xxx_messageInfo_DescribeAppClustersRequest proto.InternalMessageInfo

func (m *DescribeAppClustersRequest) GetAppId() []string {
	if m != nil {
		return m.AppId
	}
	return nil
}

func (m *DescribeAppClustersRequest) GetStatus() []string {
	if m != nil {
		return m.Status
	}
	return nil
}

func (m *DescribeAppClustersRequest) GetLimit() uint32 {
	if m != nil {
		return m.Limit
	}
	return 0
}

func (m *DescribeAppClustersRequest) GetOffset() uint32 {
	if m != nil {
		return m.Offset
	}
	return 0
}

func (m *DescribeAppClustersRequest) GetSearchWord() *wrappers.StringValue {
	if m != nil {
		return m.SearchWord
	}
	return nil
}

func (m *DescribeAppClustersRequest) GetSortKey() *wrappers.StringValue {
	if m != nil {
		return m.SortKey
	}
	return nil
}

func (m *DescribeAppClustersRequest) GetReverse() *wrappers.BoolValue {
	if m != nil {
		return m.Reverse
	}
	return nil
}

func (m *DescribeAppClustersRequest) GetOwner() []string {
	if m != nil {
		return m.Owner
	}
	return nil
}

func (m *DescribeAppClustersRequest) GetWithDetail() *wrappers.BoolValue {
	if m != nil {
		return m.WithDetail
	}
	return nil
}

func (m *DescribeAppClustersRequest) GetCreatedDate() *wrappers.UInt32Value {
	if m != nil {
		return m.CreatedDate
	}
	return nil
}

func (m *DescribeAppClustersRequest) GetDisplayColumns() []string {
	if m != nil {
		return m.DisplayColumns
	}
	return nil
}

type DescribeAppClustersResponse struct {
	// total count of cluster of app
	TotalCount uint32 `protobuf:"varint,1,opt,name=total_count,json=totalCount,proto3" json:"total_count,omitempty"`
	// list of cluster
	ClusterSet           []*Cluster `protobuf:"bytes,2,rep,name=cluster_set,json=clusterSet,proto3" json:"cluster_set,omitempty"`
	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
	XXX_unrecognized     []byte     `json:"-"`
	XXX_sizecache        int32      `json:"-"`
}

func (m *DescribeAppClustersResponse) Reset()         { *m = DescribeAppClustersResponse{} }
func (m *DescribeAppClustersResponse) String() string { return proto.CompactTextString(m) }
func (*DescribeAppClustersResponse) ProtoMessage()    {}
func (*DescribeAppClustersResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_3cfb3b8ec240c376, []int{39}
}

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

var xxx_messageInfo_DescribeAppClustersResponse proto.InternalMessageInfo

func (m *DescribeAppClustersResponse) GetTotalCount() uint32 {
	if m != nil {
		return m.TotalCount
	}
	return 0
}

func (m *DescribeAppClustersResponse) GetClusterSet() []*Cluster {
	if m != nil {
		return m.ClusterSet
	}
	return nil
}

type DescribeClusterNodesRequest struct {
	// cluster id
	ClusterId *wrappers.StringValue `protobuf:"bytes,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	// node ids
	NodeId []string `protobuf:"bytes,2,rep,name=node_id,json=nodeId,proto3" json:"node_id,omitempty"`
	// status eg.[active|used|enabled|disabled|deleted|stopped|ceased]
	Status []string `protobuf:"bytes,3,rep,name=status,proto3" json:"status,omitempty"`
	// data limit per page, default value 20, max value 200
	Limit uint32 `protobuf:"varint,4,opt,name=limit,proto3" json:"limit,omitempty"`
	// data offset, default 0
	Offset uint32 `protobuf:"varint,5,opt,name=offset,proto3" json:"offset,omitempty"`
	// query key, support these fields(cluster_id, node_id, status, owner)
	SearchWord *wrappers.StringValue `protobuf:"bytes,6,opt,name=search_word,json=searchWord,proto3" json:"search_word,omitempty"`
	// sort key, order by sort_key, default create_time
	SortKey *wrappers.StringValue `protobuf:"bytes,7,opt,name=sort_key,json=sortKey,proto3" json:"sort_key,omitempty"`
	// value = 0 sort ASC, value = 1 sort DESC
	Reverse *wrappers.BoolValue `protobuf:"bytes,8,opt,name=reverse,proto3" json:"reverse,omitempty"`
	// owner
	Owner []string `protobuf:"bytes,9,rep,name=owner,proto3" json:"owner,omitempty"`
	// select columns to display
	DisplayColumns       []string `protobuf:"bytes,10,rep,name=display_columns,json=displayColumns,proto3" json:"display_columns,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *DescribeClusterNodesRequest) Reset()         { *m = DescribeClusterNodesRequest{} }
func (m *DescribeClusterNodesRequest) String() string { return proto.CompactTextString(m) }
func (*DescribeClusterNodesRequest) ProtoMessage()    {}
func (*DescribeClusterNodesRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_3cfb3b8ec240c376, []int{40}
}

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

var xxx_messageInfo_DescribeClusterNodesRequest proto.InternalMessageInfo

func (m *DescribeClusterNodesRequest) GetClusterId() *wrappers.StringValue {
	if m != nil {
		return m.ClusterId
	}
	return nil
}

func (m *DescribeClusterNodesRequest) GetNodeId() []string {
	if m != nil {
		return m.NodeId
	}
	return nil
}

func (m *DescribeClusterNodesRequest) GetStatus() []string {
	if m != nil {
		return m.Status
	}
	return nil
}

func (m *DescribeClusterNodesRequest) GetLimit() uint32 {
	if m != nil {
		return m.Limit
	}
	return 0
}

func (m *DescribeClusterNodesRequest) GetOffset() uint32 {
	if m != nil {
		return m.Offset
	}
	return 0
}

func (m *DescribeClusterNodesRequest) GetSearchWord() *wrappers.StringValue {
	if m != nil {
		return m.SearchWord
	}
	return nil
}

func (m *DescribeClusterNodesRequest) GetSortKey() *wrappers.StringValue {
	if m != nil {
		return m.SortKey
	}
	return nil
}

func (m *DescribeClusterNodesRequest) GetReverse() *wrappers.BoolValue {
	if m != nil {
		return m.Reverse
	}
	return nil
}

func (m *DescribeClusterNodesRequest) GetOwner() []string {
	if m != nil {
		return m.Owner
	}
	return nil
}

func (m *DescribeClusterNodesRequest) GetDisplayColumns() []string {
	if m != nil {
		return m.DisplayColumns
	}
	return nil
}

type DescribeClusterNodesResponse struct {
	// total count of node in the cluster
	TotalCount uint32 `protobuf:"varint,1,opt,name=total_count,json=totalCount,proto3" json:"total_count,omitempty"`
	// list of cluster node
	ClusterNodeSet       []*ClusterNode `protobuf:"bytes,2,rep,name=cluster_node_set,json=clusterNodeSet,proto3" json:"cluster_node_set,omitempty"`
	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
	XXX_unrecognized     []byte         `json:"-"`
	XXX_sizecache        int32          `json:"-"`
}

func (m *DescribeClusterNodesResponse) Reset()         { *m = DescribeClusterNodesResponse{} }
func (m *DescribeClusterNodesResponse) String() string { return proto.CompactTextString(m) }
func (*DescribeClusterNodesResponse) ProtoMessage()    {}
func (*DescribeClusterNodesResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_3cfb3b8ec240c376, []int{41}
}

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

var xxx_messageInfo_DescribeClusterNodesResponse proto.InternalMessageInfo

func (m *DescribeClusterNodesResponse) GetTotalCount() uint32 {
	if m != nil {
		return m.TotalCount
	}
	return 0
}

func (m *DescribeClusterNodesResponse) GetClusterNodeSet() []*ClusterNode {
	if m != nil {
		return m.ClusterNodeSet
	}
	return nil
}

type StopClustersRequest struct {
	// required, ids of cluster to stop
	ClusterId []string `protobuf:"bytes,1,rep,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	// advanced param
	AdvancedParam        []string `protobuf:"bytes,2,rep,name=advanced_param,json=advancedParam,proto3" json:"advanced_param,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *StopClustersRequest) Reset()         { *m = StopClustersRequest{} }
func (m *StopClustersRequest) String() string { return proto.CompactTextString(m) }
func (*StopClustersRequest) ProtoMessage()    {}
func (*StopClustersRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_3cfb3b8ec240c376, []int{42}
}

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

var xxx_messageInfo_StopClustersRequest proto.InternalMessageInfo

func (m *StopClustersRequest) GetClusterId() []string {
	if m != nil {
		return m.ClusterId
	}
	return nil
}

func (m *StopClustersRequest) GetAdvancedParam() []string {
	if m != nil {
		return m.AdvancedParam
	}
	return nil
}

type StopClustersResponse struct {
	// ids of clusters stopped
	ClusterId []string `protobuf:"bytes,1,rep,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	// job ids
	JobId                []string `protobuf:"bytes,2,rep,name=job_id,json=jobId,proto3" json:"job_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *StopClustersResponse) Reset()         { *m = StopClustersResponse{} }
func (m *StopClustersResponse) String() string { return proto.CompactTextString(m) }
func (*StopClustersResponse) ProtoMessage()    {}
func (*StopClustersResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_3cfb3b8ec240c376, []int{43}
}

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

var xxx_messageInfo_StopClustersResponse proto.InternalMessageInfo

func (m *StopClustersResponse) GetClusterId() []string {
	if m != nil {
		return m.ClusterId
	}
	return nil
}

func (m *StopClustersResponse) GetJobId() []string {
	if m != nil {
		return m.JobId
	}
	return nil
}

type StartClustersRequest struct {
	// required, ids of cluster to start
	ClusterId []string `protobuf:"bytes,1,rep,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	// advanced param
	AdvancedParam        []string `protobuf:"bytes,2,rep,name=advanced_param,json=advancedParam,proto3" json:"advanced_param,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *StartClustersRequest) Reset()         { *m = StartClustersRequest{} }
func (m *StartClustersRequest) String() string { return proto.CompactTextString(m) }
func (*StartClustersRequest) ProtoMessage()    {}
func (*StartClustersRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_3cfb3b8ec240c376, []int{44}
}

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

var xxx_messageInfo_StartClustersRequest proto.InternalMessageInfo

func (m *StartClustersRequest) GetClusterId() []string {
	if m != nil {
		return m.ClusterId
	}
	return nil
}

func (m *StartClustersRequest) GetAdvancedParam() []string {
	if m != nil {
		return m.AdvancedParam
	}
	return nil
}

type StartClustersResponse struct {
	// ids of clusters started
	ClusterId []string `protobuf:"bytes,1,rep,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	// job ids
	JobId                []string `protobuf:"bytes,2,rep,name=job_id,json=jobId,proto3" json:"job_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *StartClustersResponse) Reset()         { *m = StartClustersResponse{} }
func (m *StartClustersResponse) String() string { return proto.CompactTextString(m) }
func (*StartClustersResponse) ProtoMessage()    {}
func (*StartClustersResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_3cfb3b8ec240c376, []int{45}
}

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

var xxx_messageInfo_StartClustersResponse proto.InternalMessageInfo

func (m *StartClustersResponse) GetClusterId() []string {
	if m != nil {
		return m.ClusterId
	}
	return nil
}

func (m *StartClustersResponse) GetJobId() []string {
	if m != nil {
		return m.JobId
	}
	return nil
}

type RecoverClustersRequest struct {
	// required, ids of clusters to recover
	ClusterId []string `protobuf:"bytes,1,rep,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	// advanced param
	AdvancedParam        []string `protobuf:"bytes,2,rep,name=advanced_param,json=advancedParam,proto3" json:"advanced_param,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *RecoverClustersRequest) Reset()         { *m = RecoverClustersRequest{} }
func (m *RecoverClustersRequest) String() string { return proto.CompactTextString(m) }
func (*RecoverClustersRequest) ProtoMessage()    {}
func (*RecoverClustersRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_3cfb3b8ec240c376, []int{46}
}

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

var xxx_messageInfo_RecoverClustersRequest proto.InternalMessageInfo

func (m *RecoverClustersRequest) GetClusterId() []string {
	if m != nil {
		return m.ClusterId
	}
	return nil
}

func (m *RecoverClustersRequest) GetAdvancedParam() []string {
	if m != nil {
		return m.AdvancedParam
	}
	return nil
}

type RecoverClustersResponse struct {
	// ids of cluster recovered
	ClusterId []string `protobuf:"bytes,1,rep,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	// ids of job of recover cluster
	JobId                []string `protobuf:"bytes,2,rep,name=job_id,json=jobId,proto3" json:"job_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *RecoverClustersResponse) Reset()         { *m = RecoverClustersResponse{} }
func (m *RecoverClustersResponse) String() string { return proto.CompactTextString(m) }
func (*RecoverClustersResponse) ProtoMessage()    {}
func (*RecoverClustersResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_3cfb3b8ec240c376, []int{47}
}

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

var xxx_messageInfo_RecoverClustersResponse proto.InternalMessageInfo

func (m *RecoverClustersResponse) GetClusterId() []string {
	if m != nil {
		return m.ClusterId
	}
	return nil
}

func (m *RecoverClustersResponse) GetJobId() []string {
	if m != nil {
		return m.JobId
	}
	return nil
}

type CeaseClustersRequest struct {
	// required, ids of cluster to cease
	ClusterId []string `protobuf:"bytes,1,rep,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	// advanced param
	AdvancedParam []string `protobuf:"bytes,2,rep,name=advanced_param,json=advancedParam,proto3" json:"advanced_param,omitempty"`
	// whether force delete clusters or not
	Force *wrappers.BoolValue `protobuf:"bytes,3,opt,name=force,proto3" json:"force,omitempty"`
	// timeout(s), when delete clusters
	GracePeriod          uint32   `protobuf:"varint,4,opt,name=grace_period,json=gracePeriod,proto3" json:"grace_period,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *CeaseClustersRequest) Reset()         { *m = CeaseClustersRequest{} }
func (m *CeaseClustersRequest) String() string { return proto.CompactTextString(m) }
func (*CeaseClustersRequest) ProtoMessage()    {}
func (*CeaseClustersRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_3cfb3b8ec240c376, []int{48}
}

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

var xxx_messageInfo_CeaseClustersRequest proto.InternalMessageInfo

func (m *CeaseClustersRequest) GetClusterId() []string {
	if m != nil {
		return m.ClusterId
	}
	return nil
}

func (m *CeaseClustersRequest) GetAdvancedParam() []string {
	if m != nil {
		return m.AdvancedParam
	}
	return nil
}

func (m *CeaseClustersRequest) GetForce() *wrappers.BoolValue {
	if m != nil {
		return m.Force
	}
	return nil
}

func (m *CeaseClustersRequest) GetGracePeriod() uint32 {
	if m != nil {
		return m.GracePeriod
	}
	return 0
}

type CeaseClustersResponse struct {
	// ids of cluster ceased
	ClusterId []string `protobuf:"bytes,1,rep,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	// ids of job of cease cluster
	JobId                []string `protobuf:"bytes,2,rep,name=job_id,json=jobId,proto3" json:"job_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *CeaseClustersResponse) Reset()         { *m = CeaseClustersResponse{} }
func (m *CeaseClustersResponse) String() string { return proto.CompactTextString(m) }
func (*CeaseClustersResponse) ProtoMessage()    {}
func (*CeaseClustersResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_3cfb3b8ec240c376, []int{49}
}

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

var xxx_messageInfo_CeaseClustersResponse proto.InternalMessageInfo

func (m *CeaseClustersResponse) GetClusterId() []string {
	if m != nil {
		return m.ClusterId
	}
	return nil
}

func (m *CeaseClustersResponse) GetJobId() []string {
	if m != nil {
		return m.JobId
	}
	return nil
}

type GetClusterStatisticsRequest struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *GetClusterStatisticsRequest) Reset()         { *m = GetClusterStatisticsRequest{} }
func (m *GetClusterStatisticsRequest) String() string { return proto.CompactTextString(m) }
func (*GetClusterStatisticsRequest) ProtoMessage()    {}
func (*GetClusterStatisticsRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_3cfb3b8ec240c376, []int{50}
}

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

var xxx_messageInfo_GetClusterStatisticsRequest proto.InternalMessageInfo

type GetClusterStatisticsResponse struct {
	// cluster create time range map to cluster count, max length is 14
	LastTwoWeekCreated map[string]uint32 `protobuf:"bytes,1,rep,name=last_two_week_created,json=lastTwoWeekCreated,proto3" json:"last_two_week_created,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
	// runtime id map to cluster count, max length is 10
	TopTenRuntimes map[string]uint32 `protobuf:"bytes,2,rep,name=top_ten_runtimes,json=topTenRuntimes,proto3" json:"top_ten_runtimes,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
	// number of cluster
	ClusterCount uint32 `protobuf:"varint,3,opt,name=cluster_count,json=clusterCount,proto3" json:"cluster_count,omitempty"`
	// number of runtime
	RuntimeCount uint32 `protobuf:"varint,4,opt,name=runtime_count,json=runtimeCount,proto3" json:"runtime_count,omitempty"`
	// app id map to cluster count, max length is 10
	TopTenApps           map[string]uint32 `protobuf:"bytes,5,rep,name=top_ten_apps,json=topTenApps,proto3" json:"top_ten_apps,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 *GetClusterStatisticsResponse) Reset()         { *m = GetClusterStatisticsResponse{} }
func (m *GetClusterStatisticsResponse) String() string { return proto.CompactTextString(m) }
func (*GetClusterStatisticsResponse) ProtoMessage()    {}
func (*GetClusterStatisticsResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_3cfb3b8ec240c376, []int{51}
}

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

var xxx_messageInfo_GetClusterStatisticsResponse proto.InternalMessageInfo

func (m *GetClusterStatisticsResponse) GetLastTwoWeekCreated() map[string]uint32 {
	if m != nil {
		return m.LastTwoWeekCreated
	}
	return nil
}

func (m *GetClusterStatisticsResponse) GetTopTenRuntimes() map[string]uint32 {
	if m != nil {
		return m.TopTenRuntimes
	}
	return nil
}

func (m *GetClusterStatisticsResponse) GetClusterCount() uint32 {
	if m != nil {
		return m.ClusterCount
	}
	return 0
}

func (m *GetClusterStatisticsResponse) GetRuntimeCount() uint32 {
	if m != nil {
		return m.RuntimeCount
	}
	return 0
}

func (m *GetClusterStatisticsResponse) GetTopTenApps() map[string]uint32 {
	if m != nil {
		return m.TopTenApps
	}
	return nil
}

type KeyPair struct {
	// ssh key pair id
	KeyPairId *wrappers.StringValue `protobuf:"bytes,1,opt,name=key_pair_id,json=keyPairId,proto3" json:"key_pair_id,omitempty"`
	// key pair name
	Name *wrappers.StringValue `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	// key pair description
	Description *wrappers.StringValue `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
	// public key
	PubKey *wrappers.StringValue `protobuf:"bytes,4,opt,name=pub_key,json=pubKey,proto3" json:"pub_key,omitempty"`
	// owner path, concat string group_path:user_id
	OwnerPath *wrappers.StringValue `protobuf:"bytes,5,opt,name=owner_path,json=ownerPath,proto3" json:"owner_path,omitempty"`
	// the time when key pair create
	CreateTime *timestamp.Timestamp `protobuf:"bytes,6,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
	// record status changed time
	StatusTime *timestamp.Timestamp `protobuf:"bytes,7,opt,name=status_time,json=statusTime,proto3" json:"status_time,omitempty"`
	// list of node used the keypair
	NodeId []string `protobuf:"bytes,8,rep,name=node_id,json=nodeId,proto3" json:"node_id,omitempty"`
	// owner
	Owner                *wrappers.StringValue `protobuf:"bytes,9,opt,name=owner,proto3" json:"owner,omitempty"`
	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
	XXX_unrecognized     []byte                `json:"-"`
	XXX_sizecache        int32                 `json:"-"`
}

func (m *KeyPair) Reset()         { *m = KeyPair{} }
func (m *KeyPair) String() string { return proto.CompactTextString(m) }
func (*KeyPair) ProtoMessage()    {}
func (*KeyPair) Descriptor() ([]byte, []int) {
	return fileDescriptor_3cfb3b8ec240c376, []int{52}
}

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

var xxx_messageInfo_KeyPair proto.InternalMessageInfo

func (m *KeyPair) GetKeyPairId() *wrappers.StringValue {
	if m != nil {
		return m.KeyPairId
	}
	return nil
}

func (m *KeyPair) GetName() *wrappers.StringValue {
	if m != nil {
		return m.Name
	}
	return nil
}

func (m *KeyPair) GetDescription() *wrappers.StringValue {
	if m != nil {
		return m.Description
	}
	return nil
}

func (m *KeyPair) GetPubKey() *wrappers.StringValue {
	if m != nil {
		return m.PubKey
	}
	return nil
}

func (m *KeyPair) GetOwnerPath() *wrappers.StringValue {
	if m != nil {
		return m.OwnerPath
	}
	return nil
}

func (m *KeyPair) GetCreateTime() *timestamp.Timestamp {
	if m != nil {
		return m.CreateTime
	}
	return nil
}

func (m *KeyPair) GetStatusTime() *timestamp.Timestamp {
	if m != nil {
		return m.StatusTime
	}
	return nil
}

func (m *KeyPair) GetNodeId() []string {
	if m != nil {
		return m.NodeId
	}
	return nil
}

func (m *KeyPair) GetOwner() *wrappers.StringValue {
	if m != nil {
		return m.Owner
	}
	return nil
}

type CreateKeyPairRequest struct {
	// keypair name
	Name *wrappers.StringValue `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// keypair description
	Description *wrappers.StringValue `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
	// public key
	PubKey               *wrappers.StringValue `protobuf:"bytes,3,opt,name=pub_key,json=pubKey,proto3" json:"pub_key,omitempty"`
	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
	XXX_unrecognized     []byte                `json:"-"`
	XXX_sizecache        int32                 `json:"-"`
}

func (m *CreateKeyPairRequest) Reset()         { *m = CreateKeyPairRequest{} }
func (m *CreateKeyPairRequest) String() string { return proto.CompactTextString(m) }
func (*CreateKeyPairRequest) ProtoMessage()    {}
func (*CreateKeyPairRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_3cfb3b8ec240c376, []int{53}
}

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

var xxx_messageInfo_CreateKeyPairRequest proto.InternalMessageInfo

func (m *CreateKeyPairRequest) GetName() *wrappers.StringValue {
	if m != nil {
		return m.Name
	}
	return nil
}

func (m *CreateKeyPairRequest) GetDescription() *wrappers.StringValue {
	if m != nil {
		return m.Description
	}
	return nil
}

func (m *CreateKeyPairRequest) GetPubKey() *wrappers.StringValue {
	if m != nil {
		return m.PubKey
	}
	return nil
}

type CreateKeyPairResponse struct {
	// id of key pair created
	KeyPairId            *wrappers.StringValue `protobuf:"bytes,1,opt,name=key_pair_id,json=keyPairId,proto3" json:"key_pair_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
	XXX_unrecognized     []byte                `json:"-"`
	XXX_sizecache        int32                 `json:"-"`
}

func (m *CreateKeyPairResponse) Reset()         { *m = CreateKeyPairResponse{} }
func (m *CreateKeyPairResponse) String() string { return proto.CompactTextString(m) }
func (*CreateKeyPairResponse) ProtoMessage()    {}
func (*CreateKeyPairResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_3cfb3b8ec240c376, []int{54}
}

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

var xxx_messageInfo_CreateKeyPairResponse proto.InternalMessageInfo

func (m *CreateKeyPairResponse) GetKeyPairId() *wrappers.StringValue {
	if m != nil {
		return m.KeyPairId
	}
	return nil
}

type DescribeKeyPairsRequest struct {
	// key pair id
	KeyPairId *wrappers.StringValue `protobuf:"bytes,1,opt,name=key_pair_id,json=keyPairId,proto3" json:"key_pair_id,omitempty"`
	// key pair name
	Name *wrappers.StringValue `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	// key pair description
	Description *wrappers.StringValue `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
	// public key
	PubKey *wrappers.StringValue `protobuf:"bytes,4,opt,name=pub_key,json=pubKey,proto3" json:"pub_key,omitempty"`
	// owner
	Owner []string `protobuf:"bytes,5,rep,name=owner,proto3" json:"owner,omitempty"`
	// query key, can filter with these fields(key_pair_id, name, owner)
	SearchWord *wrappers.StringValue `protobuf:"bytes,6,opt,name=search_word,json=searchWord,proto3" json:"search_word,omitempty"`
	// data limit per page, default value 20, max value 200
	Limit uint32 `protobuf:"varint,7,opt,name=limit,proto3" json:"limit,omitempty"`
	// data offset, default 0
	Offset uint32 `protobuf:"varint,8,opt,name=offset,proto3" json:"offset,omitempty"`
	// select columns to display
	DisplayColumns       []string `protobuf:"bytes,9,rep,name=display_columns,json=displayColumns,proto3" json:"display_columns,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *DescribeKeyPairsRequest) Reset()         { *m = DescribeKeyPairsRequest{} }
func (m *DescribeKeyPairsRequest) String() string { return proto.CompactTextString(m) }
func (*DescribeKeyPairsRequest) ProtoMessage()    {}
func (*DescribeKeyPairsRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_3cfb3b8ec240c376, []int{55}
}

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

var xxx_messageInfo_DescribeKeyPairsRequest proto.InternalMessageInfo

func (m *DescribeKeyPairsRequest) GetKeyPairId() *wrappers.StringValue {
	if m != nil {
		return m.KeyPairId
	}
	return nil
}

func (m *DescribeKeyPairsRequest) GetName() *wrappers.StringValue {
	if m != nil {
		return m.Name
	}
	return nil
}

func (m *DescribeKeyPairsRequest) GetDescription() *wrappers.StringValue {
	if m != nil {
		return m.Description
	}
	return nil
}

func (m *DescribeKeyPairsRequest) GetPubKey() *wrappers.StringValue {
	if m != nil {
		return m.PubKey
	}
	return nil
}

func (m *DescribeKeyPairsRequest) GetOwner() []string {
	if m != nil {
		return m.Owner
	}
	return nil
}

func (m *DescribeKeyPairsRequest) GetSearchWord() *wrappers.StringValue {
	if m != nil {
		return m.SearchWord
	}
	return nil
}

func (m *DescribeKeyPairsRequest) GetLimit() uint32 {
	if m != nil {
		return m.Limit
	}
	return 0
}

func (m *DescribeKeyPairsRequest) GetOffset() uint32 {
	if m != nil {
		return m.Offset
	}
	return 0
}

func (m *DescribeKeyPairsRequest) GetDisplayColumns() []string {
	if m != nil {
		return m.DisplayColumns
	}
	return nil
}

type DescribeKeyPairsResponse struct {
	// total count of qualified key pair
	TotalCount uint32 `protobuf:"varint,1,opt,name=total_count,json=totalCount,proto3" json:"total_count,omitempty"`
	// list of key pair
	KeyPairSet           []*KeyPair `protobuf:"bytes,2,rep,name=key_pair_set,json=keyPairSet,proto3" json:"key_pair_set,omitempty"`
	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
	XXX_unrecognized     []byte     `json:"-"`
	XXX_sizecache        int32      `json:"-"`
}

func (m *DescribeKeyPairsResponse) Reset()         { *m = DescribeKeyPairsResponse{} }
func (m *DescribeKeyPairsResponse) String() string { return proto.CompactTextString(m) }
func (*DescribeKeyPairsResponse) ProtoMessage()    {}
func (*DescribeKeyPairsResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_3cfb3b8ec240c376, []int{56}
}

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

var xxx_messageInfo_DescribeKeyPairsResponse proto.InternalMessageInfo

func (m *DescribeKeyPairsResponse) GetTotalCount() uint32 {
	if m != nil {
		return m.TotalCount
	}
	return 0
}

func (m *DescribeKeyPairsResponse) GetKeyPairSet() []*KeyPair {
	if m != nil {
		return m.KeyPairSet
	}
	return nil
}

type DeleteKeyPairsRequest struct {
	// required, ids of key pairs to delete
	KeyPairId            []string `protobuf:"bytes,1,rep,name=key_pair_id,json=keyPairId,proto3" json:"key_pair_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *DeleteKeyPairsRequest) Reset()         { *m = DeleteKeyPairsRequest{} }
func (m *DeleteKeyPairsRequest) String() string { return proto.CompactTextString(m) }
func (*DeleteKeyPairsRequest) ProtoMessage()    {}
func (*DeleteKeyPairsRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_3cfb3b8ec240c376, []int{57}
}

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

var xxx_messageInfo_DeleteKeyPairsRequest proto.InternalMessageInfo

func (m *DeleteKeyPairsRequest) GetKeyPairId() []string {
	if m != nil {
		return m.KeyPairId
	}
	return nil
}

type DeleteKeyPairsResponse struct {
	// ids of key pairs deleted
	KeyPairId            []string `protobuf:"bytes,1,rep,name=key_pair_id,json=keyPairId,proto3" json:"key_pair_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *DeleteKeyPairsResponse) Reset()         { *m = DeleteKeyPairsResponse{} }
func (m *DeleteKeyPairsResponse) String() string { return proto.CompactTextString(m) }
func (*DeleteKeyPairsResponse) ProtoMessage()    {}
func (*DeleteKeyPairsResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_3cfb3b8ec240c376, []int{58}
}

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

var xxx_messageInfo_DeleteKeyPairsResponse proto.InternalMessageInfo

func (m *DeleteKeyPairsResponse) GetKeyPairId() []string {
	if m != nil {
		return m.KeyPairId
	}
	return nil
}

type AttachKeyPairsRequest struct {
	// ids of key pairs to attach
	KeyPairId []string `protobuf:"bytes,1,rep,name=key_pair_id,json=keyPairId,proto3" json:"key_pair_id,omitempty"`
	// ids of node to attached
	NodeId               []string `protobuf:"bytes,2,rep,name=node_id,json=nodeId,proto3" json:"node_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *AttachKeyPairsRequest) Reset()         { *m = AttachKeyPairsRequest{} }
func (m *AttachKeyPairsRequest) String() string { return proto.CompactTextString(m) }
func (*AttachKeyPairsRequest) ProtoMessage()    {}
func (*AttachKeyPairsRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_3cfb3b8ec240c376, []int{59}
}

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

var xxx_messageInfo_AttachKeyPairsRequest proto.InternalMessageInfo

func (m *AttachKeyPairsRequest) GetKeyPairId() []string {
	if m != nil {
		return m.KeyPairId
	}
	return nil
}

func (m *AttachKeyPairsRequest) GetNodeId() []string {
	if m != nil {
		return m.NodeId
	}
	return nil
}

type AttachKeyPairsResponse struct {
	// ids of jobs of attach key pair
	JobId                []string `protobuf:"bytes,1,rep,name=job_id,json=jobId,proto3" json:"job_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *AttachKeyPairsResponse) Reset()         { *m = AttachKeyPairsResponse{} }
func (m *AttachKeyPairsResponse) String() string { return proto.CompactTextString(m) }
func (*AttachKeyPairsResponse) ProtoMessage()    {}
func (*AttachKeyPairsResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_3cfb3b8ec240c376, []int{60}
}

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

var xxx_messageInfo_AttachKeyPairsResponse proto.InternalMessageInfo

func (m *AttachKeyPairsResponse) GetJobId() []string {
	if m != nil {
		return m.JobId
	}
	return nil
}

type DetachKeyPairsRequest struct {
	// ids of key pairs to detach
	KeyPairId []string `protobuf:"bytes,1,rep,name=key_pair_id,json=keyPairId,proto3" json:"key_pair_id,omitempty"`
	// ids of nodes to detached
	NodeId               []string `protobuf:"bytes,2,rep,name=node_id,json=nodeId,proto3" json:"node_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *DetachKeyPairsRequest) Reset()         { *m = DetachKeyPairsRequest{} }
func (m *DetachKeyPairsRequest) String() string { return proto.CompactTextString(m) }
func (*DetachKeyPairsRequest) ProtoMessage()    {}
func (*DetachKeyPairsRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_3cfb3b8ec240c376, []int{61}
}

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

var xxx_messageInfo_DetachKeyPairsRequest proto.InternalMessageInfo

func (m *DetachKeyPairsRequest) GetKeyPairId() []string {
	if m != nil {
		return m.KeyPairId
	}
	return nil
}

func (m *DetachKeyPairsRequest) GetNodeId() []string {
	if m != nil {
		return m.NodeId
	}
	return nil
}

type DetachKeyPairsResponse struct {
	// ids of jobs of detach key pair
	JobId                []string `protobuf:"bytes,1,rep,name=job_id,json=jobId,proto3" json:"job_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *DetachKeyPairsResponse) Reset()         { *m = DetachKeyPairsResponse{} }
func (m *DetachKeyPairsResponse) String() string { return proto.CompactTextString(m) }
func (*DetachKeyPairsResponse) ProtoMessage()    {}
func (*DetachKeyPairsResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_3cfb3b8ec240c376, []int{62}
}

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

var xxx_messageInfo_DetachKeyPairsResponse proto.InternalMessageInfo

func (m *DetachKeyPairsResponse) GetJobId() []string {
	if m != nil {
		return m.JobId
	}
	return nil
}

type NodeKeyPair struct {
	// id of node with key pair
	NodeId *wrappers.StringValue `protobuf:"bytes,1,opt,name=node_id,json=nodeId,proto3" json:"node_id,omitempty"`
	// id of key pair in node
	KeyPairId            *wrappers.StringValue `protobuf:"bytes,2,opt,name=key_pair_id,json=keyPairId,proto3" json:"key_pair_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
	XXX_unrecognized     []byte                `json:"-"`
	XXX_sizecache        int32                 `json:"-"`
}

func (m *NodeKeyPair) Reset()         { *m = NodeKeyPair{} }
func (m *NodeKeyPair) String() string { return proto.CompactTextString(m) }
func (*NodeKeyPair) ProtoMessage()    {}
func (*NodeKeyPair) Descriptor() ([]byte, []int) {
	return fileDescriptor_3cfb3b8ec240c376, []int{63}
}

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

var xxx_messageInfo_NodeKeyPair proto.InternalMessageInfo

func (m *NodeKeyPair) GetNodeId() *wrappers.StringValue {
	if m != nil {
		return m.NodeId
	}
	return nil
}

func (m *NodeKeyPair) GetKeyPairId() *wrappers.StringValue {
	if m != nil {
		return m.KeyPairId
	}
	return nil
}

type AddNodeKeyPairsRequest struct {
	// list of node with key pair to add
	NodeKeyPair          []*NodeKeyPair `protobuf:"bytes,1,rep,name=node_key_pair,json=nodeKeyPair,proto3" json:"node_key_pair,omitempty"`
	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
	XXX_unrecognized     []byte         `json:"-"`
	XXX_sizecache        int32          `json:"-"`
}

func (m *AddNodeKeyPairsRequest) Reset()         { *m = AddNodeKeyPairsRequest{} }
func (m *AddNodeKeyPairsRequest) String() string { return proto.CompactTextString(m) }
func (*AddNodeKeyPairsRequest) ProtoMessage()    {}
func (*AddNodeKeyPairsRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_3cfb3b8ec240c376, []int{64}
}

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

var xxx_messageInfo_AddNodeKeyPairsRequest proto.InternalMessageInfo

func (m *AddNodeKeyPairsRequest) GetNodeKeyPair() []*NodeKeyPair {
	if m != nil {
		return m.NodeKeyPair
	}
	return nil
}

type AddNodeKeyPairsResponse struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *AddNodeKeyPairsResponse) Reset()         { *m = AddNodeKeyPairsResponse{} }
func (m *AddNodeKeyPairsResponse) String() string { return proto.CompactTextString(m) }
func (*AddNodeKeyPairsResponse) ProtoMessage()    {}
func (*AddNodeKeyPairsResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_3cfb3b8ec240c376, []int{65}
}

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

var xxx_messageInfo_AddNodeKeyPairsResponse proto.InternalMessageInfo

type DeleteNodeKeyPairsRequest struct {
	// list of node with key pair to delete
	NodeKeyPair          []*NodeKeyPair `protobuf:"bytes,1,rep,name=node_key_pair,json=nodeKeyPair,proto3" json:"node_key_pair,omitempty"`
	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
	XXX_unrecognized     []byte         `json:"-"`
	XXX_sizecache        int32          `json:"-"`
}

func (m *DeleteNodeKeyPairsRequest) Reset()         { *m = DeleteNodeKeyPairsRequest{} }
func (m *DeleteNodeKeyPairsRequest) String() string { return proto.CompactTextString(m) }
func (*DeleteNodeKeyPairsRequest) ProtoMessage()    {}
func (*DeleteNodeKeyPairsRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_3cfb3b8ec240c376, []int{66}
}

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

var xxx_messageInfo_DeleteNodeKeyPairsRequest proto.InternalMessageInfo

func (m *DeleteNodeKeyPairsRequest) GetNodeKeyPair() []*NodeKeyPair {
	if m != nil {
		return m.NodeKeyPair
	}
	return nil
}

type DeleteNodeKeyPairsResponse struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *DeleteNodeKeyPairsResponse) Reset()         { *m = DeleteNodeKeyPairsResponse{} }
func (m *DeleteNodeKeyPairsResponse) String() string { return proto.CompactTextString(m) }
func (*DeleteNodeKeyPairsResponse) ProtoMessage()    {}
func (*DeleteNodeKeyPairsResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_3cfb3b8ec240c376, []int{67}
}

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

var xxx_messageInfo_DeleteNodeKeyPairsResponse proto.InternalMessageInfo

func init() {
	proto.RegisterType((*DescribeSubnetsRequest)(nil), "openpitrix.DescribeSubnetsRequest")
	proto.RegisterType((*Subnet)(nil), "openpitrix.Subnet")
	proto.RegisterType((*DescribeSubnetsResponse)(nil), "openpitrix.DescribeSubnetsResponse")
	proto.RegisterType((*CreateClusterRequest)(nil), "openpitrix.CreateClusterRequest")
	proto.RegisterType((*CreateClusterResponse)(nil), "openpitrix.CreateClusterResponse")
	proto.RegisterType((*ModifyClusterRequest)(nil), "openpitrix.ModifyClusterRequest")
	proto.RegisterType((*ModifyClusterResponse)(nil), "openpitrix.ModifyClusterResponse")
	proto.RegisterType((*ModifyClusterNodeRequest)(nil), "openpitrix.ModifyClusterNodeRequest")
	proto.RegisterType((*ModifyClusterNodeResponse)(nil), "openpitrix.ModifyClusterNodeResponse")
	proto.RegisterType((*ModifyClusterAttributesRequest)(nil), "openpitrix.ModifyClusterAttributesRequest")
	proto.RegisterType((*ModifyClusterAttributesResponse)(nil), "openpitrix.ModifyClusterAttributesResponse")
	proto.RegisterType((*ModifyClusterNodeAttributesRequest)(nil), "openpitrix.ModifyClusterNodeAttributesRequest")
	proto.RegisterType((*ModifyClusterNodeAttributesResponse)(nil), "openpitrix.ModifyClusterNodeAttributesResponse")
	proto.RegisterType((*AddTableClusterNodesRequest)(nil), "openpitrix.AddTableClusterNodesRequest")
	proto.RegisterType((*DeleteTableClusterNodesRequest)(nil), "openpitrix.DeleteTableClusterNodesRequest")
	proto.RegisterType((*DeleteClustersRequest)(nil), "openpitrix.DeleteClustersRequest")
	proto.RegisterType((*DeleteClustersResponse)(nil), "openpitrix.DeleteClustersResponse")
	proto.RegisterType((*UpgradeClusterRequest)(nil), "openpitrix.UpgradeClusterRequest")
	proto.RegisterType((*UpgradeClusterResponse)(nil), "openpitrix.UpgradeClusterResponse")
	proto.RegisterType((*RollbackClusterRequest)(nil), "openpitrix.RollbackClusterRequest")
	proto.RegisterType((*RollbackClusterResponse)(nil), "openpitrix.RollbackClusterResponse")
	proto.RegisterType((*RoleResource)(nil), "openpitrix.RoleResource")
	proto.RegisterType((*ResizeClusterRequest)(nil), "openpitrix.ResizeClusterRequest")
	proto.RegisterType((*ResizeClusterResponse)(nil), "openpitrix.ResizeClusterResponse")
	proto.RegisterType((*AddClusterNodesRequest)(nil), "openpitrix.AddClusterNodesRequest")
	proto.RegisterType((*AddClusterNodesResponse)(nil), "openpitrix.AddClusterNodesResponse")
	proto.RegisterType((*DeleteClusterNodesRequest)(nil), "openpitrix.DeleteClusterNodesRequest")
	proto.RegisterType((*DeleteClusterNodesResponse)(nil), "openpitrix.DeleteClusterNodesResponse")
	proto.RegisterType((*UpdateClusterEnvRequest)(nil), "openpitrix.UpdateClusterEnvRequest")
	proto.RegisterType((*UpdateClusterEnvResponse)(nil), "openpitrix.UpdateClusterEnvResponse")
	proto.RegisterType((*ClusterCommon)(nil), "openpitrix.ClusterCommon")
	proto.RegisterType((*ClusterNode)(nil), "openpitrix.ClusterNode")
	proto.RegisterType((*ClusterRole)(nil), "openpitrix.ClusterRole")
	proto.RegisterType((*ClusterLoadbalancer)(nil), "openpitrix.ClusterLoadbalancer")
	proto.RegisterType((*ClusterLink)(nil), "openpitrix.ClusterLink")
	proto.RegisterType((*Cluster)(nil), "openpitrix.Cluster")
	proto.RegisterType((*DescribeClustersRequest)(nil), "openpitrix.DescribeClustersRequest")
	proto.RegisterType((*DescribeClustersResponse)(nil), "openpitrix.DescribeClustersResponse")
	proto.RegisterType((*DescribeAppClustersRequest)(nil), "openpitrix.DescribeAppClustersRequest")
	proto.RegisterType((*DescribeAppClustersResponse)(nil), "openpitrix.DescribeAppClustersResponse")
	proto.RegisterType((*DescribeClusterNodesRequest)(nil), "openpitrix.DescribeClusterNodesRequest")
	proto.RegisterType((*DescribeClusterNodesResponse)(nil), "openpitrix.DescribeClusterNodesResponse")
	proto.RegisterType((*StopClustersRequest)(nil), "openpitrix.StopClustersRequest")
	proto.RegisterType((*StopClustersResponse)(nil), "openpitrix.StopClustersResponse")
	proto.RegisterType((*StartClustersRequest)(nil), "openpitrix.StartClustersRequest")
	proto.RegisterType((*StartClustersResponse)(nil), "openpitrix.StartClustersResponse")
	proto.RegisterType((*RecoverClustersRequest)(nil), "openpitrix.RecoverClustersRequest")
	proto.RegisterType((*RecoverClustersResponse)(nil), "openpitrix.RecoverClustersResponse")
	proto.RegisterType((*CeaseClustersRequest)(nil), "openpitrix.CeaseClustersRequest")
	proto.RegisterType((*CeaseClustersResponse)(nil), "openpitrix.CeaseClustersResponse")
	proto.RegisterType((*GetClusterStatisticsRequest)(nil), "openpitrix.GetClusterStatisticsRequest")
	proto.RegisterType((*GetClusterStatisticsResponse)(nil), "openpitrix.GetClusterStatisticsResponse")
	proto.RegisterMapType((map[string]uint32)(nil), "openpitrix.GetClusterStatisticsResponse.LastTwoWeekCreatedEntry")
	proto.RegisterMapType((map[string]uint32)(nil), "openpitrix.GetClusterStatisticsResponse.TopTenAppsEntry")
	proto.RegisterMapType((map[string]uint32)(nil), "openpitrix.GetClusterStatisticsResponse.TopTenRuntimesEntry")
	proto.RegisterType((*KeyPair)(nil), "openpitrix.KeyPair")
	proto.RegisterType((*CreateKeyPairRequest)(nil), "openpitrix.CreateKeyPairRequest")
	proto.RegisterType((*CreateKeyPairResponse)(nil), "openpitrix.CreateKeyPairResponse")
	proto.RegisterType((*DescribeKeyPairsRequest)(nil), "openpitrix.DescribeKeyPairsRequest")
	proto.RegisterType((*DescribeKeyPairsResponse)(nil), "openpitrix.DescribeKeyPairsResponse")
	proto.RegisterType((*DeleteKeyPairsRequest)(nil), "openpitrix.DeleteKeyPairsRequest")
	proto.RegisterType((*DeleteKeyPairsResponse)(nil), "openpitrix.DeleteKeyPairsResponse")
	proto.RegisterType((*AttachKeyPairsRequest)(nil), "openpitrix.AttachKeyPairsRequest")
	proto.RegisterType((*AttachKeyPairsResponse)(nil), "openpitrix.AttachKeyPairsResponse")
	proto.RegisterType((*DetachKeyPairsRequest)(nil), "openpitrix.DetachKeyPairsRequest")
	proto.RegisterType((*DetachKeyPairsResponse)(nil), "openpitrix.DetachKeyPairsResponse")
	proto.RegisterType((*NodeKeyPair)(nil), "openpitrix.NodeKeyPair")
	proto.RegisterType((*AddNodeKeyPairsRequest)(nil), "openpitrix.AddNodeKeyPairsRequest")
	proto.RegisterType((*AddNodeKeyPairsResponse)(nil), "openpitrix.AddNodeKeyPairsResponse")
	proto.RegisterType((*DeleteNodeKeyPairsRequest)(nil), "openpitrix.DeleteNodeKeyPairsRequest")
	proto.RegisterType((*DeleteNodeKeyPairsResponse)(nil), "openpitrix.DeleteNodeKeyPairsResponse")
}

func init() { proto.RegisterFile("cluster.proto", fileDescriptor_3cfb3b8ec240c376) }

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

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

// 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.SupportPackageIsVersion4

// ClusterManagerClient is the client API for ClusterManager service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type ClusterManagerClient interface {
	AddNodeKeyPairs(ctx context.Context, in *AddNodeKeyPairsRequest, opts ...grpc.CallOption) (*AddNodeKeyPairsResponse, error)
	DeleteNodeKeyPairs(ctx context.Context, in *DeleteNodeKeyPairsRequest, opts ...grpc.CallOption) (*DeleteNodeKeyPairsResponse, error)
	// Create key pair
	CreateKeyPair(ctx context.Context, in *CreateKeyPairRequest, opts ...grpc.CallOption) (*CreateKeyPairResponse, error)
	// Get key pairs, support filter with these fields(key_pair_id, name, owner), default return all key pairs
	DescribeKeyPairs(ctx context.Context, in *DescribeKeyPairsRequest, opts ...grpc.CallOption) (*DescribeKeyPairsResponse, error)
	// Batch delete key pairs
	DeleteKeyPairs(ctx context.Context, in *DeleteKeyPairsRequest, opts ...grpc.CallOption) (*DeleteKeyPairsResponse, error)
	// Batch attach key pairs to node
	AttachKeyPairs(ctx context.Context, in *AttachKeyPairsRequest, opts ...grpc.CallOption) (*AttachKeyPairsResponse, error)
	// Batch detach key pairs from node
	DetachKeyPairs(ctx context.Context, in *DetachKeyPairsRequest, opts ...grpc.CallOption) (*DetachKeyPairsResponse, error)
	// Get subnets
	DescribeSubnets(ctx context.Context, in *DescribeSubnetsRequest, opts ...grpc.CallOption) (*DescribeSubnetsResponse, error)
	// Create cluster
	CreateCluster(ctx context.Context, in *CreateClusterRequest, opts ...grpc.CallOption) (*CreateClusterResponse, error)
	// Create debug cluster
	CreateDebugCluster(ctx context.Context, in *CreateClusterRequest, opts ...grpc.CallOption) (*CreateClusterResponse, error)
	ModifyCluster(ctx context.Context, in *ModifyClusterRequest, opts ...grpc.CallOption) (*ModifyClusterResponse, error)
	ModifyClusterNode(ctx context.Context, in *ModifyClusterNodeRequest, opts ...grpc.CallOption) (*ModifyClusterNodeResponse, error)
	// Modify cluster attributes
	ModifyClusterAttributes(ctx context.Context, in *ModifyClusterAttributesRequest, opts ...grpc.CallOption) (*ModifyClusterAttributesResponse, error)
	// Modify node attributes in the cluster
	ModifyClusterNodeAttributes(ctx context.Context, in *ModifyClusterNodeAttributesRequest, opts ...grpc.CallOption) (*ModifyClusterNodeAttributesResponse, error)
	AddTableClusterNodes(ctx context.Context, in *AddTableClusterNodesRequest, opts ...grpc.CallOption) (*empty.Empty, error)
	DeleteTableClusterNodes(ctx context.Context, in *DeleteTableClusterNodesRequest, opts ...grpc.CallOption) (*empty.Empty, error)
	// Batch delete clusters
	DeleteClusters(ctx context.Context, in *DeleteClustersRequest, opts ...grpc.CallOption) (*DeleteClustersResponse, error)
	// Upgrade cluster
	UpgradeCluster(ctx context.Context, in *UpgradeClusterRequest, opts ...grpc.CallOption) (*UpgradeClusterResponse, error)
	// Rollback cluster
	RollbackCluster(ctx context.Context, in *RollbackClusterRequest, opts ...grpc.CallOption) (*RollbackClusterResponse, error)
	// Resize cluster
	ResizeCluster(ctx context.Context, in *ResizeClusterRequest, opts ...grpc.CallOption) (*ResizeClusterResponse, error)
	// Batch add nodes to cluster
	AddClusterNodes(ctx context.Context, in *AddClusterNodesRequest, opts ...grpc.CallOption) (*AddClusterNodesResponse, error)
	// Batch delete nodes from cluster
	DeleteClusterNodes(ctx context.Context, in *DeleteClusterNodesRequest, opts ...grpc.CallOption) (*DeleteClusterNodesResponse, error)
	// Update env of cluster
	UpdateClusterEnv(ctx context.Context, in *UpdateClusterEnvRequest, opts ...grpc.CallOption) (*UpdateClusterEnvResponse, error)
	// Get clusters, can filter with these fields(cluster_id, app_id, version_id, status, runtime_id, frontgate_id, owner, cluster_type), default return all clusters
	DescribeClusters(ctx context.Context, in *DescribeClustersRequest, opts ...grpc.CallOption) (*DescribeClustersResponse, error)
	// Get debug clusters, can filter with these fields(cluster_id, app_id, version_id, status, runtime_id, frontgate_id, owner, cluster_type), default return all debug clusters
	DescribeDebugClusters(ctx context.Context, in *DescribeClustersRequest, opts ...grpc.CallOption) (*DescribeClustersResponse, error)
	// Get app clusters, can filter with these fields(cluster_id, app_id, version_id, status, runtime_id, frontgate_id, owner, cluster_type), default return all app clusters
	DescribeAppClusters(ctx context.Context, in *DescribeAppClustersRequest, opts ...grpc.CallOption) (*DescribeAppClustersResponse, error)
	// Get debug app clusters, can filter with these fields(cluster_id, app_id, version_id, status, runtime_id, frontgate_id, owner, cluster_type), default return all debug app clusters
	DescribeDebugAppClusters(ctx context.Context, in *DescribeAppClustersRequest, opts ...grpc.CallOption) (*DescribeAppClustersResponse, error)
	// Get nodes in cluster, can filter with these fields(cluster_id, node_id, status, owner)
	DescribeClusterNodes(ctx context.Context, in *DescribeClusterNodesRequest, opts ...grpc.CallOption) (*DescribeClusterNodesResponse, error)
	// Batch stop clusters
	StopClusters(ctx context.Context, in *StopClustersRequest, opts ...grpc.CallOption) (*StopClustersResponse, error)
	// Batch start cluster
	StartClusters(ctx context.Context, in *StartClustersRequest, opts ...grpc.CallOption) (*StartClustersResponse, error)
	// Batch recover clusters
	RecoverClusters(ctx context.Context, in *RecoverClustersRequest, opts ...grpc.CallOption) (*RecoverClustersResponse, error)
	// Batch cease clusters
	CeaseClusters(ctx context.Context, in *CeaseClustersRequest, opts ...grpc.CallOption) (*CeaseClustersResponse, error)
	// Get statistics of cluster
	GetClusterStatistics(ctx context.Context, in *GetClusterStatisticsRequest, opts ...grpc.CallOption) (*GetClusterStatisticsResponse, error)
}

type clusterManagerClient struct {
	cc *grpc.ClientConn
}

func NewClusterManagerClient(cc *grpc.ClientConn) ClusterManagerClient {
	return &clusterManagerClient{cc}
}

func (c *clusterManagerClient) AddNodeKeyPairs(ctx context.Context, in *AddNodeKeyPairsRequest, opts ...grpc.CallOption) (*AddNodeKeyPairsResponse, error) {
	out := new(AddNodeKeyPairsResponse)
	err := c.cc.Invoke(ctx, "/openpitrix.ClusterManager/AddNodeKeyPairs", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *clusterManagerClient) DeleteNodeKeyPairs(ctx context.Context, in *DeleteNodeKeyPairsRequest, opts ...grpc.CallOption) (*DeleteNodeKeyPairsResponse, error) {
	out := new(DeleteNodeKeyPairsResponse)
	err := c.cc.Invoke(ctx, "/openpitrix.ClusterManager/DeleteNodeKeyPairs", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *clusterManagerClient) CreateKeyPair(ctx context.Context, in *CreateKeyPairRequest, opts ...grpc.CallOption) (*CreateKeyPairResponse, error) {
	out := new(CreateKeyPairResponse)
	err := c.cc.Invoke(ctx, "/openpitrix.ClusterManager/CreateKeyPair", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *clusterManagerClient) DescribeKeyPairs(ctx context.Context, in *DescribeKeyPairsRequest, opts ...grpc.CallOption) (*DescribeKeyPairsResponse, error) {
	out := new(DescribeKeyPairsResponse)
	err := c.cc.Invoke(ctx, "/openpitrix.ClusterManager/DescribeKeyPairs", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *clusterManagerClient) DeleteKeyPairs(ctx context.Context, in *DeleteKeyPairsRequest, opts ...grpc.CallOption) (*DeleteKeyPairsResponse, error) {
	out := new(DeleteKeyPairsResponse)
	err := c.cc.Invoke(ctx, "/openpitrix.ClusterManager/DeleteKeyPairs", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *clusterManagerClient) AttachKeyPairs(ctx context.Context, in *AttachKeyPairsRequest, opts ...grpc.CallOption) (*AttachKeyPairsResponse, error) {
	out := new(AttachKeyPairsResponse)
	err := c.cc.Invoke(ctx, "/openpitrix.ClusterManager/AttachKeyPairs", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *clusterManagerClient) DetachKeyPairs(ctx context.Context, in *DetachKeyPairsRequest, opts ...grpc.CallOption) (*DetachKeyPairsResponse, error) {
	out := new(DetachKeyPairsResponse)
	err := c.cc.Invoke(ctx, "/openpitrix.ClusterManager/DetachKeyPairs", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *clusterManagerClient) DescribeSubnets(ctx context.Context, in *DescribeSubnetsRequest, opts ...grpc.CallOption) (*DescribeSubnetsResponse, error) {
	out := new(DescribeSubnetsResponse)
	err := c.cc.Invoke(ctx, "/openpitrix.ClusterManager/DescribeSubnets", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *clusterManagerClient) CreateCluster(ctx context.Context, in *CreateClusterRequest, opts ...grpc.CallOption) (*CreateClusterResponse, error) {
	out := new(CreateClusterResponse)
	err := c.cc.Invoke(ctx, "/openpitrix.ClusterManager/CreateCluster", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *clusterManagerClient) CreateDebugCluster(ctx context.Context, in *CreateClusterRequest, opts ...grpc.CallOption) (*CreateClusterResponse, error) {
	out := new(CreateClusterResponse)
	err := c.cc.Invoke(ctx, "/openpitrix.ClusterManager/CreateDebugCluster", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *clusterManagerClient) ModifyCluster(ctx context.Context, in *ModifyClusterRequest, opts ...grpc.CallOption) (*ModifyClusterResponse, error) {
	out := new(ModifyClusterResponse)
	err := c.cc.Invoke(ctx, "/openpitrix.ClusterManager/ModifyCluster", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *clusterManagerClient) ModifyClusterNode(ctx context.Context, in *ModifyClusterNodeRequest, opts ...grpc.CallOption) (*ModifyClusterNodeResponse, error) {
	out := new(ModifyClusterNodeResponse)
	err := c.cc.Invoke(ctx, "/openpitrix.ClusterManager/ModifyClusterNode", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *clusterManagerClient) ModifyClusterAttributes(ctx context.Context, in *ModifyClusterAttributesRequest, opts ...grpc.CallOption) (*ModifyClusterAttributesResponse, error) {
	out := new(ModifyClusterAttributesResponse)
	err := c.cc.Invoke(ctx, "/openpitrix.ClusterManager/ModifyClusterAttributes", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *clusterManagerClient) ModifyClusterNodeAttributes(ctx context.Context, in *ModifyClusterNodeAttributesRequest, opts ...grpc.CallOption) (*ModifyClusterNodeAttributesResponse, error) {
	out := new(ModifyClusterNodeAttributesResponse)
	err := c.cc.Invoke(ctx, "/openpitrix.ClusterManager/ModifyClusterNodeAttributes", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *clusterManagerClient) AddTableClusterNodes(ctx context.Context, in *AddTableClusterNodesRequest, opts ...grpc.CallOption) (*empty.Empty, error) {
	out := new(empty.Empty)
	err := c.cc.Invoke(ctx, "/openpitrix.ClusterManager/AddTableClusterNodes", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *clusterManagerClient) DeleteTableClusterNodes(ctx context.Context, in *DeleteTableClusterNodesRequest, opts ...grpc.CallOption) (*empty.Empty, error) {
	out := new(empty.Empty)
	err := c.cc.Invoke(ctx, "/openpitrix.ClusterManager/DeleteTableClusterNodes", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *clusterManagerClient) DeleteClusters(ctx context.Context, in *DeleteClustersRequest, opts ...grpc.CallOption) (*DeleteClustersResponse, error) {
	out := new(DeleteClustersResponse)
	err := c.cc.Invoke(ctx, "/openpitrix.ClusterManager/DeleteClusters", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *clusterManagerClient) UpgradeCluster(ctx context.Context, in *UpgradeClusterRequest, opts ...grpc.CallOption) (*UpgradeClusterResponse, error) {
	out := new(UpgradeClusterResponse)
	err := c.cc.Invoke(ctx, "/openpitrix.ClusterManager/UpgradeCluster", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *clusterManagerClient) RollbackCluster(ctx context.Context, in *RollbackClusterRequest, opts ...grpc.CallOption) (*RollbackClusterResponse, error) {
	out := new(RollbackClusterResponse)
	err := c.cc.Invoke(ctx, "/openpitrix.ClusterManager/RollbackCluster", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *clusterManagerClient) ResizeCluster(ctx context.Context, in *ResizeClusterRequest, opts ...grpc.CallOption) (*ResizeClusterResponse, error) {
	out := new(ResizeClusterResponse)
	err := c.cc.Invoke(ctx, "/openpitrix.ClusterManager/ResizeCluster", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *clusterManagerClient) AddClusterNodes(ctx context.Context, in *AddClusterNodesRequest, opts ...grpc.CallOption) (*AddClusterNodesResponse, error) {
	out := new(AddClusterNodesResponse)
	err := c.cc.Invoke(ctx, "/openpitrix.ClusterManager/AddClusterNodes", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *clusterManagerClient) DeleteClusterNodes(ctx context.Context, in *DeleteClusterNodesRequest, opts ...grpc.CallOption) (*DeleteClusterNodesResponse, error) {
	out := new(DeleteClusterNodesResponse)
	err := c.cc.Invoke(ctx, "/openpitrix.ClusterManager/DeleteClusterNodes", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *clusterManagerClient) UpdateClusterEnv(ctx context.Context, in *UpdateClusterEnvRequest, opts ...grpc.CallOption) (*UpdateClusterEnvResponse, error) {
	out := new(UpdateClusterEnvResponse)
	err := c.cc.Invoke(ctx, "/openpitrix.ClusterManager/UpdateClusterEnv", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *clusterManagerClient) DescribeClusters(ctx context.Context, in *DescribeClustersRequest, opts ...grpc.CallOption) (*DescribeClustersResponse, error) {
	out := new(DescribeClustersResponse)
	err := c.cc.Invoke(ctx, "/openpitrix.ClusterManager/DescribeClusters", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *clusterManagerClient) DescribeDebugClusters(ctx context.Context, in *DescribeClustersRequest, opts ...grpc.CallOption) (*DescribeClustersResponse, error) {
	out := new(DescribeClustersResponse)
	err := c.cc.Invoke(ctx, "/openpitrix.ClusterManager/DescribeDebugClusters", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *clusterManagerClient) DescribeAppClusters(ctx context.Context, in *DescribeAppClustersRequest, opts ...grpc.CallOption) (*DescribeAppClustersResponse, error) {
	out := new(DescribeAppClustersResponse)
	err := c.cc.Invoke(ctx, "/openpitrix.ClusterManager/DescribeAppClusters", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *clusterManagerClient) DescribeDebugAppClusters(ctx context.Context, in *DescribeAppClustersRequest, opts ...grpc.CallOption) (*DescribeAppClustersResponse, error) {
	out := new(DescribeAppClustersResponse)
	err := c.cc.Invoke(ctx, "/openpitrix.ClusterManager/DescribeDebugAppClusters", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *clusterManagerClient) DescribeClusterNodes(ctx context.Context, in *DescribeClusterNodesRequest, opts ...grpc.CallOption) (*DescribeClusterNodesResponse, error) {
	out := new(DescribeClusterNodesResponse)
	err := c.cc.Invoke(ctx, "/openpitrix.ClusterManager/DescribeClusterNodes", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *clusterManagerClient) StopClusters(ctx context.Context, in *StopClustersRequest, opts ...grpc.CallOption) (*StopClustersResponse, error) {
	out := new(StopClustersResponse)
	err := c.cc.Invoke(ctx, "/openpitrix.ClusterManager/StopClusters", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *clusterManagerClient) StartClusters(ctx context.Context, in *StartClustersRequest, opts ...grpc.CallOption) (*StartClustersResponse, error) {
	out := new(StartClustersResponse)
	err := c.cc.Invoke(ctx, "/openpitrix.ClusterManager/StartClusters", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *clusterManagerClient) RecoverClusters(ctx context.Context, in *RecoverClustersRequest, opts ...grpc.CallOption) (*RecoverClustersResponse, error) {
	out := new(RecoverClustersResponse)
	err := c.cc.Invoke(ctx, "/openpitrix.ClusterManager/RecoverClusters", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *clusterManagerClient) CeaseClusters(ctx context.Context, in *CeaseClustersRequest, opts ...grpc.CallOption) (*CeaseClustersResponse, error) {
	out := new(CeaseClustersResponse)
	err := c.cc.Invoke(ctx, "/openpitrix.ClusterManager/CeaseClusters", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *clusterManagerClient) GetClusterStatistics(ctx context.Context, in *GetClusterStatisticsRequest, opts ...grpc.CallOption) (*GetClusterStatisticsResponse, error) {
	out := new(GetClusterStatisticsResponse)
	err := c.cc.Invoke(ctx, "/openpitrix.ClusterManager/GetClusterStatistics", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// ClusterManagerServer is the server API for ClusterManager service.
type ClusterManagerServer interface {
	AddNodeKeyPairs(context.Context, *AddNodeKeyPairsRequest) (*AddNodeKeyPairsResponse, error)
	DeleteNodeKeyPairs(context.Context, *DeleteNodeKeyPairsRequest) (*DeleteNodeKeyPairsResponse, error)
	// Create key pair
	CreateKeyPair(context.Context, *CreateKeyPairRequest) (*CreateKeyPairResponse, error)
	// Get key pairs, support filter with these fields(key_pair_id, name, owner), default return all key pairs
	DescribeKeyPairs(context.Context, *DescribeKeyPairsRequest) (*DescribeKeyPairsResponse, error)
	// Batch delete key pairs
	DeleteKeyPairs(context.Context, *DeleteKeyPairsRequest) (*DeleteKeyPairsResponse, error)
	// Batch attach key pairs to node
	AttachKeyPairs(context.Context, *AttachKeyPairsRequest) (*AttachKeyPairsResponse, error)
	// Batch detach key pairs from node
	DetachKeyPairs(context.Context, *DetachKeyPairsRequest) (*DetachKeyPairsResponse, error)
	// Get subnets
	DescribeSubnets(context.Context, *DescribeSubnetsRequest) (*DescribeSubnetsResponse, error)
	// Create cluster
	CreateCluster(context.Context, *CreateClusterRequest) (*CreateClusterResponse, error)
	// Create debug cluster
	CreateDebugCluster(context.Context, *CreateClusterRequest) (*CreateClusterResponse, error)
	ModifyCluster(context.Context, *ModifyClusterRequest) (*ModifyClusterResponse, error)
	ModifyClusterNode(context.Context, *ModifyClusterNodeRequest) (*ModifyClusterNodeResponse, error)
	// Modify cluster attributes
	ModifyClusterAttributes(context.Context, *ModifyClusterAttributesRequest) (*ModifyClusterAttributesResponse, error)
	// Modify node attributes in the cluster
	ModifyClusterNodeAttributes(context.Context, *ModifyClusterNodeAttributesRequest) (*ModifyClusterNodeAttributesResponse, error)
	AddTableClusterNodes(context.Context, *AddTableClusterNodesRequest) (*empty.Empty, error)
	DeleteTableClusterNodes(context.Context, *DeleteTableClusterNodesRequest) (*empty.Empty, error)
	// Batch delete clusters
	DeleteClusters(context.Context, *DeleteClustersRequest) (*DeleteClustersResponse, error)
	// Upgrade cluster
	UpgradeCluster(context.Context, *UpgradeClusterRequest) (*UpgradeClusterResponse, error)
	// Rollback cluster
	RollbackCluster(context.Context, *RollbackClusterRequest) (*RollbackClusterResponse, error)
	// Resize cluster
	ResizeCluster(context.Context, *ResizeClusterRequest) (*ResizeClusterResponse, error)
	// Batch add nodes to cluster
	AddClusterNodes(context.Context, *AddClusterNodesRequest) (*AddClusterNodesResponse, error)
	// Batch delete nodes from cluster
	DeleteClusterNodes(context.Context, *DeleteClusterNodesRequest) (*DeleteClusterNodesResponse, error)
	// Update env of cluster
	UpdateClusterEnv(context.Context, *UpdateClusterEnvRequest) (*UpdateClusterEnvResponse, error)
	// Get clusters, can filter with these fields(cluster_id, app_id, version_id, status, runtime_id, frontgate_id, owner, cluster_type), default return all clusters
	DescribeClusters(context.Context, *DescribeClustersRequest) (*DescribeClustersResponse, error)
	// Get debug clusters, can filter with these fields(cluster_id, app_id, version_id, status, runtime_id, frontgate_id, owner, cluster_type), default return all debug clusters
	DescribeDebugClusters(context.Context, *DescribeClustersRequest) (*DescribeClustersResponse, error)
	// Get app clusters, can filter with these fields(cluster_id, app_id, version_id, status, runtime_id, frontgate_id, owner, cluster_type), default return all app clusters
	DescribeAppClusters(context.Context, *DescribeAppClustersRequest) (*DescribeAppClustersResponse, error)
	// Get debug app clusters, can filter with these fields(cluster_id, app_id, version_id, status, runtime_id, frontgate_id, owner, cluster_type), default return all debug app clusters
	DescribeDebugAppClusters(context.Context, *DescribeAppClustersRequest) (*DescribeAppClustersResponse, error)
	// Get nodes in cluster, can filter with these fields(cluster_id, node_id, status, owner)
	DescribeClusterNodes(context.Context, *DescribeClusterNodesRequest) (*DescribeClusterNodesResponse, error)
	// Batch stop clusters
	StopClusters(context.Context, *StopClustersRequest) (*StopClustersResponse, error)
	// Batch start cluster
	StartClusters(context.Context, *StartClustersRequest) (*StartClustersResponse, error)
	// Batch recover clusters
	RecoverClusters(context.Context, *RecoverClustersRequest) (*RecoverClustersResponse, error)
	// Batch cease clusters
	CeaseClusters(context.Context, *CeaseClustersRequest) (*CeaseClustersResponse, error)
	// Get statistics of cluster
	GetClusterStatistics(context.Context, *GetClusterStatisticsRequest) (*GetClusterStatisticsResponse, error)
}

func RegisterClusterManagerServer(s *grpc.Server, srv ClusterManagerServer) {
	s.RegisterService(&_ClusterManager_serviceDesc, srv)
}

func _ClusterManager_AddNodeKeyPairs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(AddNodeKeyPairsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ClusterManagerServer).AddNodeKeyPairs(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/openpitrix.ClusterManager/AddNodeKeyPairs",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ClusterManagerServer).AddNodeKeyPairs(ctx, req.(*AddNodeKeyPairsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ClusterManager_DeleteNodeKeyPairs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeleteNodeKeyPairsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ClusterManagerServer).DeleteNodeKeyPairs(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/openpitrix.ClusterManager/DeleteNodeKeyPairs",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ClusterManagerServer).DeleteNodeKeyPairs(ctx, req.(*DeleteNodeKeyPairsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ClusterManager_CreateKeyPair_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateKeyPairRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ClusterManagerServer).CreateKeyPair(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/openpitrix.ClusterManager/CreateKeyPair",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ClusterManagerServer).CreateKeyPair(ctx, req.(*CreateKeyPairRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ClusterManager_DescribeKeyPairs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DescribeKeyPairsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ClusterManagerServer).DescribeKeyPairs(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/openpitrix.ClusterManager/DescribeKeyPairs",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ClusterManagerServer).DescribeKeyPairs(ctx, req.(*DescribeKeyPairsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ClusterManager_DeleteKeyPairs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeleteKeyPairsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ClusterManagerServer).DeleteKeyPairs(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/openpitrix.ClusterManager/DeleteKeyPairs",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ClusterManagerServer).DeleteKeyPairs(ctx, req.(*DeleteKeyPairsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ClusterManager_AttachKeyPairs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(AttachKeyPairsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ClusterManagerServer).AttachKeyPairs(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/openpitrix.ClusterManager/AttachKeyPairs",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ClusterManagerServer).AttachKeyPairs(ctx, req.(*AttachKeyPairsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ClusterManager_DetachKeyPairs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DetachKeyPairsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ClusterManagerServer).DetachKeyPairs(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/openpitrix.ClusterManager/DetachKeyPairs",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ClusterManagerServer).DetachKeyPairs(ctx, req.(*DetachKeyPairsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ClusterManager_DescribeSubnets_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DescribeSubnetsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ClusterManagerServer).DescribeSubnets(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/openpitrix.ClusterManager/DescribeSubnets",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ClusterManagerServer).DescribeSubnets(ctx, req.(*DescribeSubnetsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ClusterManager_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.(ClusterManagerServer).CreateCluster(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/openpitrix.ClusterManager/CreateCluster",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ClusterManagerServer).CreateCluster(ctx, req.(*CreateClusterRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ClusterManager_CreateDebugCluster_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.(ClusterManagerServer).CreateDebugCluster(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/openpitrix.ClusterManager/CreateDebugCluster",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ClusterManagerServer).CreateDebugCluster(ctx, req.(*CreateClusterRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ClusterManager_ModifyCluster_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ModifyClusterRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ClusterManagerServer).ModifyCluster(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/openpitrix.ClusterManager/ModifyCluster",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ClusterManagerServer).ModifyCluster(ctx, req.(*ModifyClusterRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ClusterManager_ModifyClusterNode_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ModifyClusterNodeRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ClusterManagerServer).ModifyClusterNode(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/openpitrix.ClusterManager/ModifyClusterNode",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ClusterManagerServer).ModifyClusterNode(ctx, req.(*ModifyClusterNodeRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ClusterManager_ModifyClusterAttributes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ModifyClusterAttributesRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ClusterManagerServer).ModifyClusterAttributes(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/openpitrix.ClusterManager/ModifyClusterAttributes",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ClusterManagerServer).ModifyClusterAttributes(ctx, req.(*ModifyClusterAttributesRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ClusterManager_ModifyClusterNodeAttributes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ModifyClusterNodeAttributesRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ClusterManagerServer).ModifyClusterNodeAttributes(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/openpitrix.ClusterManager/ModifyClusterNodeAttributes",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ClusterManagerServer).ModifyClusterNodeAttributes(ctx, req.(*ModifyClusterNodeAttributesRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ClusterManager_AddTableClusterNodes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(AddTableClusterNodesRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ClusterManagerServer).AddTableClusterNodes(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/openpitrix.ClusterManager/AddTableClusterNodes",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ClusterManagerServer).AddTableClusterNodes(ctx, req.(*AddTableClusterNodesRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ClusterManager_DeleteTableClusterNodes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeleteTableClusterNodesRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ClusterManagerServer).DeleteTableClusterNodes(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/openpitrix.ClusterManager/DeleteTableClusterNodes",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ClusterManagerServer).DeleteTableClusterNodes(ctx, req.(*DeleteTableClusterNodesRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ClusterManager_DeleteClusters_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeleteClustersRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ClusterManagerServer).DeleteClusters(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/openpitrix.ClusterManager/DeleteClusters",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ClusterManagerServer).DeleteClusters(ctx, req.(*DeleteClustersRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ClusterManager_UpgradeCluster_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UpgradeClusterRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ClusterManagerServer).UpgradeCluster(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/openpitrix.ClusterManager/UpgradeCluster",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ClusterManagerServer).UpgradeCluster(ctx, req.(*UpgradeClusterRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ClusterManager_RollbackCluster_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(RollbackClusterRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ClusterManagerServer).RollbackCluster(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/openpitrix.ClusterManager/RollbackCluster",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ClusterManagerServer).RollbackCluster(ctx, req.(*RollbackClusterRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ClusterManager_ResizeCluster_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ResizeClusterRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ClusterManagerServer).ResizeCluster(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/openpitrix.ClusterManager/ResizeCluster",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ClusterManagerServer).ResizeCluster(ctx, req.(*ResizeClusterRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ClusterManager_AddClusterNodes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(AddClusterNodesRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ClusterManagerServer).AddClusterNodes(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/openpitrix.ClusterManager/AddClusterNodes",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ClusterManagerServer).AddClusterNodes(ctx, req.(*AddClusterNodesRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ClusterManager_DeleteClusterNodes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeleteClusterNodesRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ClusterManagerServer).DeleteClusterNodes(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/openpitrix.ClusterManager/DeleteClusterNodes",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ClusterManagerServer).DeleteClusterNodes(ctx, req.(*DeleteClusterNodesRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ClusterManager_UpdateClusterEnv_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UpdateClusterEnvRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ClusterManagerServer).UpdateClusterEnv(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/openpitrix.ClusterManager/UpdateClusterEnv",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ClusterManagerServer).UpdateClusterEnv(ctx, req.(*UpdateClusterEnvRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ClusterManager_DescribeClusters_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DescribeClustersRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ClusterManagerServer).DescribeClusters(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/openpitrix.ClusterManager/DescribeClusters",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ClusterManagerServer).DescribeClusters(ctx, req.(*DescribeClustersRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ClusterManager_DescribeDebugClusters_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DescribeClustersRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ClusterManagerServer).DescribeDebugClusters(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/openpitrix.ClusterManager/DescribeDebugClusters",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ClusterManagerServer).DescribeDebugClusters(ctx, req.(*DescribeClustersRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ClusterManager_DescribeAppClusters_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DescribeAppClustersRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ClusterManagerServer).DescribeAppClusters(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/openpitrix.ClusterManager/DescribeAppClusters",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ClusterManagerServer).DescribeAppClusters(ctx, req.(*DescribeAppClustersRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ClusterManager_DescribeDebugAppClusters_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DescribeAppClustersRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ClusterManagerServer).DescribeDebugAppClusters(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/openpitrix.ClusterManager/DescribeDebugAppClusters",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ClusterManagerServer).DescribeDebugAppClusters(ctx, req.(*DescribeAppClustersRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ClusterManager_DescribeClusterNodes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DescribeClusterNodesRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ClusterManagerServer).DescribeClusterNodes(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/openpitrix.ClusterManager/DescribeClusterNodes",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ClusterManagerServer).DescribeClusterNodes(ctx, req.(*DescribeClusterNodesRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ClusterManager_StopClusters_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(StopClustersRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ClusterManagerServer).StopClusters(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/openpitrix.ClusterManager/StopClusters",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ClusterManagerServer).StopClusters(ctx, req.(*StopClustersRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ClusterManager_StartClusters_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(StartClustersRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ClusterManagerServer).StartClusters(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/openpitrix.ClusterManager/StartClusters",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ClusterManagerServer).StartClusters(ctx, req.(*StartClustersRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ClusterManager_RecoverClusters_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(RecoverClustersRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ClusterManagerServer).RecoverClusters(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/openpitrix.ClusterManager/RecoverClusters",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ClusterManagerServer).RecoverClusters(ctx, req.(*RecoverClustersRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ClusterManager_CeaseClusters_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CeaseClustersRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ClusterManagerServer).CeaseClusters(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/openpitrix.ClusterManager/CeaseClusters",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ClusterManagerServer).CeaseClusters(ctx, req.(*CeaseClustersRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ClusterManager_GetClusterStatistics_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetClusterStatisticsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ClusterManagerServer).GetClusterStatistics(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/openpitrix.ClusterManager/GetClusterStatistics",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ClusterManagerServer).GetClusterStatistics(ctx, req.(*GetClusterStatisticsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

var _ClusterManager_serviceDesc = grpc.ServiceDesc{
	ServiceName: "openpitrix.ClusterManager",
	HandlerType: (*ClusterManagerServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "AddNodeKeyPairs",
			Handler:    _ClusterManager_AddNodeKeyPairs_Handler,
		},
		{
			MethodName: "DeleteNodeKeyPairs",
			Handler:    _ClusterManager_DeleteNodeKeyPairs_Handler,
		},
		{
			MethodName: "CreateKeyPair",
			Handler:    _ClusterManager_CreateKeyPair_Handler,
		},
		{
			MethodName: "DescribeKeyPairs",
			Handler:    _ClusterManager_DescribeKeyPairs_Handler,
		},
		{
			MethodName: "DeleteKeyPairs",
			Handler:    _ClusterManager_DeleteKeyPairs_Handler,
		},
		{
			MethodName: "AttachKeyPairs",
			Handler:    _ClusterManager_AttachKeyPairs_Handler,
		},
		{
			MethodName: "DetachKeyPairs",
			Handler:    _ClusterManager_DetachKeyPairs_Handler,
		},
		{
			MethodName: "DescribeSubnets",
			Handler:    _ClusterManager_DescribeSubnets_Handler,
		},
		{
			MethodName: "CreateCluster",
			Handler:    _ClusterManager_CreateCluster_Handler,
		},
		{
			MethodName: "CreateDebugCluster",
			Handler:    _ClusterManager_CreateDebugCluster_Handler,
		},
		{
			MethodName: "ModifyCluster",
			Handler:    _ClusterManager_ModifyCluster_Handler,
		},
		{
			MethodName: "ModifyClusterNode",
			Handler:    _ClusterManager_ModifyClusterNode_Handler,
		},
		{
			MethodName: "ModifyClusterAttributes",
			Handler:    _ClusterManager_ModifyClusterAttributes_Handler,
		},
		{
			MethodName: "ModifyClusterNodeAttributes",
			Handler:    _ClusterManager_ModifyClusterNodeAttributes_Handler,
		},
		{
			MethodName: "AddTableClusterNodes",
			Handler:    _ClusterManager_AddTableClusterNodes_Handler,
		},
		{
			MethodName: "DeleteTableClusterNodes",
			Handler:    _ClusterManager_DeleteTableClusterNodes_Handler,
		},
		{
			MethodName: "DeleteClusters",
			Handler:    _ClusterManager_DeleteClusters_Handler,
		},
		{
			MethodName: "UpgradeCluster",
			Handler:    _ClusterManager_UpgradeCluster_Handler,
		},
		{
			MethodName: "RollbackCluster",
			Handler:    _ClusterManager_RollbackCluster_Handler,
		},
		{
			MethodName: "ResizeCluster",
			Handler:    _ClusterManager_ResizeCluster_Handler,
		},
		{
			MethodName: "AddClusterNodes",
			Handler:    _ClusterManager_AddClusterNodes_Handler,
		},
		{
			MethodName: "DeleteClusterNodes",
			Handler:    _ClusterManager_DeleteClusterNodes_Handler,
		},
		{
			MethodName: "UpdateClusterEnv",
			Handler:    _ClusterManager_UpdateClusterEnv_Handler,
		},
		{
			MethodName: "DescribeClusters",
			Handler:    _ClusterManager_DescribeClusters_Handler,
		},
		{
			MethodName: "DescribeDebugClusters",
			Handler:    _ClusterManager_DescribeDebugClusters_Handler,
		},
		{
			MethodName: "DescribeAppClusters",
			Handler:    _ClusterManager_DescribeAppClusters_Handler,
		},
		{
			MethodName: "DescribeDebugAppClusters",
			Handler:    _ClusterManager_DescribeDebugAppClusters_Handler,
		},
		{
			MethodName: "DescribeClusterNodes",
			Handler:    _ClusterManager_DescribeClusterNodes_Handler,
		},
		{
			MethodName: "StopClusters",
			Handler:    _ClusterManager_StopClusters_Handler,
		},
		{
			MethodName: "StartClusters",
			Handler:    _ClusterManager_StartClusters_Handler,
		},
		{
			MethodName: "RecoverClusters",
			Handler:    _ClusterManager_RecoverClusters_Handler,
		},
		{
			MethodName: "CeaseClusters",
			Handler:    _ClusterManager_CeaseClusters_Handler,
		},
		{
			MethodName: "GetClusterStatistics",
			Handler:    _ClusterManager_GetClusterStatistics_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "cluster.proto",
}
