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

package redis

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

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

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

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

// Represents the different states of a Redis instance.
type Instance_State int32

const (
	// Not set.
	Instance_STATE_UNSPECIFIED Instance_State = 0
	// Redis instance is being created.
	Instance_CREATING Instance_State = 1
	// Redis instance has been created and is fully usable.
	Instance_READY Instance_State = 2
	// Redis instance configuration is being updated. Certain kinds of updates
	// may cause the instance to become unusable while the update is in
	// progress.
	Instance_UPDATING Instance_State = 3
	// Redis instance is being deleted.
	Instance_DELETING Instance_State = 4
	// Redis instance is being repaired and may be unusable.
	Instance_REPAIRING Instance_State = 5
	// Maintenance is being performed on this Redis instance.
	Instance_MAINTENANCE Instance_State = 6
	// Redis instance is importing data (availability may be affected).
	Instance_IMPORTING Instance_State = 8
	// Redis instance is failing over (availability may be affected).
	Instance_FAILING_OVER Instance_State = 9
)

var Instance_State_name = map[int32]string{
	0: "STATE_UNSPECIFIED",
	1: "CREATING",
	2: "READY",
	3: "UPDATING",
	4: "DELETING",
	5: "REPAIRING",
	6: "MAINTENANCE",
	8: "IMPORTING",
	9: "FAILING_OVER",
}

var Instance_State_value = map[string]int32{
	"STATE_UNSPECIFIED": 0,
	"CREATING":          1,
	"READY":             2,
	"UPDATING":          3,
	"DELETING":          4,
	"REPAIRING":         5,
	"MAINTENANCE":       6,
	"IMPORTING":         8,
	"FAILING_OVER":      9,
}

func (x Instance_State) String() string {
	return proto.EnumName(Instance_State_name, int32(x))
}

func (Instance_State) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_a99cb3206a9deca4, []int{0, 0}
}

// Available service tiers to choose from
type Instance_Tier int32

const (
	// Not set.
	Instance_TIER_UNSPECIFIED Instance_Tier = 0
	// BASIC tier: standalone instance
	Instance_BASIC Instance_Tier = 1
	// STANDARD_HA tier: highly available primary/replica instances
	Instance_STANDARD_HA Instance_Tier = 3
)

var Instance_Tier_name = map[int32]string{
	0: "TIER_UNSPECIFIED",
	1: "BASIC",
	3: "STANDARD_HA",
}

var Instance_Tier_value = map[string]int32{
	"TIER_UNSPECIFIED": 0,
	"BASIC":            1,
	"STANDARD_HA":      3,
}

func (x Instance_Tier) String() string {
	return proto.EnumName(Instance_Tier_name, int32(x))
}

func (Instance_Tier) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_a99cb3206a9deca4, []int{0, 1}
}

// Available connection modes.
type Instance_ConnectMode int32

const (
	// Not set.
	Instance_CONNECT_MODE_UNSPECIFIED Instance_ConnectMode = 0
	// Connect via directly peering with memorystore redis hosted service.
	Instance_DIRECT_PEERING Instance_ConnectMode = 1
	// Connect with google via private service access and share connection
	// across google managed services.
	Instance_PRIVATE_SERVICE_ACCESS Instance_ConnectMode = 2
)

var Instance_ConnectMode_name = map[int32]string{
	0: "CONNECT_MODE_UNSPECIFIED",
	1: "DIRECT_PEERING",
	2: "PRIVATE_SERVICE_ACCESS",
}

var Instance_ConnectMode_value = map[string]int32{
	"CONNECT_MODE_UNSPECIFIED": 0,
	"DIRECT_PEERING":           1,
	"PRIVATE_SERVICE_ACCESS":   2,
}

func (x Instance_ConnectMode) String() string {
	return proto.EnumName(Instance_ConnectMode_name, int32(x))
}

func (Instance_ConnectMode) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_a99cb3206a9deca4, []int{0, 2}
}

// Specifies different modes of operation in relation to the data retention.
type FailoverInstanceRequest_DataProtectionMode int32

const (
	// Defaults to LIMITED_DATA_LOSS if a data protection mode is not
	// specified.
	FailoverInstanceRequest_DATA_PROTECTION_MODE_UNSPECIFIED FailoverInstanceRequest_DataProtectionMode = 0
	// Instance failover will be protected with data loss control. More
	// specifically, the failover will only be performed if the current
	// replication offset diff between master and replica is under a certain
	// threshold.
	FailoverInstanceRequest_LIMITED_DATA_LOSS FailoverInstanceRequest_DataProtectionMode = 1
	// Instance failover will be performed without data loss control.
	FailoverInstanceRequest_FORCE_DATA_LOSS FailoverInstanceRequest_DataProtectionMode = 2
)

var FailoverInstanceRequest_DataProtectionMode_name = map[int32]string{
	0: "DATA_PROTECTION_MODE_UNSPECIFIED",
	1: "LIMITED_DATA_LOSS",
	2: "FORCE_DATA_LOSS",
}

var FailoverInstanceRequest_DataProtectionMode_value = map[string]int32{
	"DATA_PROTECTION_MODE_UNSPECIFIED": 0,
	"LIMITED_DATA_LOSS":                1,
	"FORCE_DATA_LOSS":                  2,
}

func (x FailoverInstanceRequest_DataProtectionMode) String() string {
	return proto.EnumName(FailoverInstanceRequest_DataProtectionMode_name, int32(x))
}

func (FailoverInstanceRequest_DataProtectionMode) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_a99cb3206a9deca4, []int{13, 0}
}

// A Google Cloud Redis instance.
type Instance struct {
	// Required. Unique name of the resource in this scope including project and
	// location using the form:
	//     `projects/{project_id}/locations/{location_id}/instances/{instance_id}`
	//
	// Note: Redis instances are managed and addressed at regional level so
	// location_id here refers to a GCP region; however, users may choose which
	// specific zone (or collection of zones for cross-zone instances) an instance
	// should be provisioned in. Refer to [location_id][google.cloud.redis.v1.Instance.location_id] and
	// [alternative_location_id][google.cloud.redis.v1.Instance.alternative_location_id] fields for more details.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// An arbitrary and optional user-provided name for the instance.
	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
	// Resource labels to represent user provided metadata
	Labels map[string]string `protobuf:"bytes,3,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// Optional. The zone where the instance will be provisioned. If not provided,
	// the service will choose a zone for the instance. For STANDARD_HA tier,
	// instances will be created across two zones for protection against zonal
	// failures. If [alternative_location_id][google.cloud.redis.v1.Instance.alternative_location_id] is also provided, it must be
	// different from [location_id][google.cloud.redis.v1.Instance.location_id].
	LocationId string `protobuf:"bytes,4,opt,name=location_id,json=locationId,proto3" json:"location_id,omitempty"`
	// Optional. Only applicable to STANDARD_HA tier which protects the instance
	// against zonal failures by provisioning it across two zones. If provided, it
	// must be a different zone from the one provided in [location_id][google.cloud.redis.v1.Instance.location_id].
	AlternativeLocationId string `protobuf:"bytes,5,opt,name=alternative_location_id,json=alternativeLocationId,proto3" json:"alternative_location_id,omitempty"`
	// Optional. The version of Redis software.
	// If not provided, latest supported version will be used. Currently, the
	// supported values are:
	//
	//  *   `REDIS_4_0` for Redis 4.0 compatibility (default)
	//  *   `REDIS_3_2` for Redis 3.2 compatibility
	RedisVersion string `protobuf:"bytes,7,opt,name=redis_version,json=redisVersion,proto3" json:"redis_version,omitempty"`
	// Optional. The CIDR range of internal addresses that are reserved for this
	// instance. If not provided, the service will choose an unused /29 block,
	// for example, 10.0.0.0/29 or 192.168.0.0/29. Ranges must be unique
	// and non-overlapping with existing subnets in an authorized network.
	ReservedIpRange string `protobuf:"bytes,9,opt,name=reserved_ip_range,json=reservedIpRange,proto3" json:"reserved_ip_range,omitempty"`
	// Output only. Hostname or IP address of the exposed Redis endpoint used by
	// clients to connect to the service.
	Host string `protobuf:"bytes,10,opt,name=host,proto3" json:"host,omitempty"`
	// Output only. The port number of the exposed Redis endpoint.
	Port int32 `protobuf:"varint,11,opt,name=port,proto3" json:"port,omitempty"`
	// Output only. The current zone where the Redis endpoint is placed. For Basic
	// Tier instances, this will always be the same as the [location_id][google.cloud.redis.v1.Instance.location_id]
	// provided by the user at creation time. For Standard Tier instances,
	// this can be either [location_id][google.cloud.redis.v1.Instance.location_id] or [alternative_location_id][google.cloud.redis.v1.Instance.alternative_location_id] and can
	// change after a failover event.
	CurrentLocationId string `protobuf:"bytes,12,opt,name=current_location_id,json=currentLocationId,proto3" json:"current_location_id,omitempty"`
	// Output only. The time the instance was created.
	CreateTime *timestamp.Timestamp `protobuf:"bytes,13,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
	// Output only. The current state of this instance.
	State Instance_State `protobuf:"varint,14,opt,name=state,proto3,enum=google.cloud.redis.v1.Instance_State" json:"state,omitempty"`
	// Output only. Additional information about the current status of this
	// instance, if available.
	StatusMessage string `protobuf:"bytes,15,opt,name=status_message,json=statusMessage,proto3" json:"status_message,omitempty"`
	// Optional. Redis configuration parameters, according to
	// http://redis.io/topics/config. Currently, the only supported parameters
	// are:
	//
	//  Redis 3.2 and above:
	//
	//  *   maxmemory-policy
	//  *   notify-keyspace-events
	//
	//  Redis 4.0 and above:
	//
	//  *   activedefrag
	//  *   lfu-log-factor
	//  *   lfu-decay-time
	RedisConfigs map[string]string `protobuf:"bytes,16,rep,name=redis_configs,json=redisConfigs,proto3" json:"redis_configs,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// Required. The service tier of the instance.
	Tier Instance_Tier `protobuf:"varint,17,opt,name=tier,proto3,enum=google.cloud.redis.v1.Instance_Tier" json:"tier,omitempty"`
	// Required. Redis memory size in GiB.
	MemorySizeGb int32 `protobuf:"varint,18,opt,name=memory_size_gb,json=memorySizeGb,proto3" json:"memory_size_gb,omitempty"`
	// Optional. The full name of the Google Compute Engine
	// [network](/compute/docs/networks-and-firewalls#networks) to which the
	// instance is connected. If left unspecified, the `default` network
	// will be used.
	AuthorizedNetwork string `protobuf:"bytes,20,opt,name=authorized_network,json=authorizedNetwork,proto3" json:"authorized_network,omitempty"`
	// Output only. Cloud IAM identity used by import / export operations to
	// transfer data to/from Cloud Storage. Format is
	// "serviceAccount:<service_account_email>". The value may change over time
	// for a given instance so should be checked before each import/export
	// operation.
	PersistenceIamIdentity string `protobuf:"bytes,21,opt,name=persistence_iam_identity,json=persistenceIamIdentity,proto3" json:"persistence_iam_identity,omitempty"`
	// Optional. The connect mode of Redis instance.
	// If not provided, default one will be used.
	// Current default: DIRECT_PEERING.
	ConnectMode          Instance_ConnectMode `protobuf:"varint,22,opt,name=connect_mode,json=connectMode,proto3,enum=google.cloud.redis.v1.Instance_ConnectMode" json:"connect_mode,omitempty"`
	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
	XXX_unrecognized     []byte               `json:"-"`
	XXX_sizecache        int32                `json:"-"`
}

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

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

var xxx_messageInfo_Instance proto.InternalMessageInfo

func (m *Instance) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *Instance) GetDisplayName() string {
	if m != nil {
		return m.DisplayName
	}
	return ""
}

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

func (m *Instance) GetLocationId() string {
	if m != nil {
		return m.LocationId
	}
	return ""
}

func (m *Instance) GetAlternativeLocationId() string {
	if m != nil {
		return m.AlternativeLocationId
	}
	return ""
}

func (m *Instance) GetRedisVersion() string {
	if m != nil {
		return m.RedisVersion
	}
	return ""
}

func (m *Instance) GetReservedIpRange() string {
	if m != nil {
		return m.ReservedIpRange
	}
	return ""
}

func (m *Instance) GetHost() string {
	if m != nil {
		return m.Host
	}
	return ""
}

func (m *Instance) GetPort() int32 {
	if m != nil {
		return m.Port
	}
	return 0
}

func (m *Instance) GetCurrentLocationId() string {
	if m != nil {
		return m.CurrentLocationId
	}
	return ""
}

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

func (m *Instance) GetState() Instance_State {
	if m != nil {
		return m.State
	}
	return Instance_STATE_UNSPECIFIED
}

func (m *Instance) GetStatusMessage() string {
	if m != nil {
		return m.StatusMessage
	}
	return ""
}

func (m *Instance) GetRedisConfigs() map[string]string {
	if m != nil {
		return m.RedisConfigs
	}
	return nil
}

func (m *Instance) GetTier() Instance_Tier {
	if m != nil {
		return m.Tier
	}
	return Instance_TIER_UNSPECIFIED
}

func (m *Instance) GetMemorySizeGb() int32 {
	if m != nil {
		return m.MemorySizeGb
	}
	return 0
}

func (m *Instance) GetAuthorizedNetwork() string {
	if m != nil {
		return m.AuthorizedNetwork
	}
	return ""
}

func (m *Instance) GetPersistenceIamIdentity() string {
	if m != nil {
		return m.PersistenceIamIdentity
	}
	return ""
}

func (m *Instance) GetConnectMode() Instance_ConnectMode {
	if m != nil {
		return m.ConnectMode
	}
	return Instance_CONNECT_MODE_UNSPECIFIED
}

// Request for [ListInstances][google.cloud.redis.v1.CloudRedis.ListInstances].
type ListInstancesRequest struct {
	// Required. The resource name of the instance location using the form:
	//     `projects/{project_id}/locations/{location_id}`
	// where `location_id` refers to a GCP region.
	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
	// The maximum number of items to return.
	//
	// If not specified, a default value of 1000 will be used by the service.
	// Regardless of the page_size value, the response may include a partial list
	// and a caller should only rely on response's
	// [`next_page_token`][google.cloud.redis.v1.ListInstancesResponse.next_page_token]
	// to determine if there are more instances left to be queried.
	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
	// The `next_page_token` value returned from a previous
	// [ListInstances][google.cloud.redis.v1.CloudRedis.ListInstances] request, if any.
	PageToken            string   `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_ListInstancesRequest proto.InternalMessageInfo

func (m *ListInstancesRequest) GetParent() string {
	if m != nil {
		return m.Parent
	}
	return ""
}

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

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

// Response for [ListInstances][google.cloud.redis.v1.CloudRedis.ListInstances].
type ListInstancesResponse struct {
	// A list of Redis instances in the project in the specified location,
	// or across all locations.
	//
	// If the `location_id` in the parent field of the request is "-", all regions
	// available to the project are queried, and the results aggregated.
	// If in such an aggregated query a location is unavailable, a dummy Redis
	// entry is included in the response with the `name` field set to a value of
	// the form `projects/{project_id}/locations/{location_id}/instances/`- and
	// the `status` field set to ERROR and `status_message` field set to "location
	// not available for ListInstances".
	Instances []*Instance `protobuf:"bytes,1,rep,name=instances,proto3" json:"instances,omitempty"`
	// Token to retrieve the next page of results, or empty if there are no more
	// results in the list.
	NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
	// Locations that could not be reached.
	Unreachable          []string `protobuf:"bytes,3,rep,name=unreachable,proto3" json:"unreachable,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_ListInstancesResponse proto.InternalMessageInfo

func (m *ListInstancesResponse) GetInstances() []*Instance {
	if m != nil {
		return m.Instances
	}
	return nil
}

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

func (m *ListInstancesResponse) GetUnreachable() []string {
	if m != nil {
		return m.Unreachable
	}
	return nil
}

// Request for [GetInstance][google.cloud.redis.v1.CloudRedis.GetInstance].
type GetInstanceRequest struct {
	// Required. Redis instance resource name using the form:
	//     `projects/{project_id}/locations/{location_id}/instances/{instance_id}`
	// where `location_id` refers to a GCP region.
	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_GetInstanceRequest proto.InternalMessageInfo

func (m *GetInstanceRequest) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

// Request for [CreateInstance][google.cloud.redis.v1.CloudRedis.CreateInstance].
type CreateInstanceRequest struct {
	// Required. The resource name of the instance location using the form:
	//     `projects/{project_id}/locations/{location_id}`
	// where `location_id` refers to a GCP region.
	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
	// Required. The logical name of the Redis instance in the customer project
	// with the following restrictions:
	//
	// * Must contain only lowercase letters, numbers, and hyphens.
	// * Must start with a letter.
	// * Must be between 1-40 characters.
	// * Must end with a number or a letter.
	// * Must be unique within the customer project / location
	InstanceId string `protobuf:"bytes,2,opt,name=instance_id,json=instanceId,proto3" json:"instance_id,omitempty"`
	// Required. A Redis [Instance] resource
	Instance             *Instance `protobuf:"bytes,3,opt,name=instance,proto3" json:"instance,omitempty"`
	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
	XXX_unrecognized     []byte    `json:"-"`
	XXX_sizecache        int32     `json:"-"`
}

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

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

var xxx_messageInfo_CreateInstanceRequest proto.InternalMessageInfo

func (m *CreateInstanceRequest) GetParent() string {
	if m != nil {
		return m.Parent
	}
	return ""
}

func (m *CreateInstanceRequest) GetInstanceId() string {
	if m != nil {
		return m.InstanceId
	}
	return ""
}

func (m *CreateInstanceRequest) GetInstance() *Instance {
	if m != nil {
		return m.Instance
	}
	return nil
}

// Request for [UpdateInstance][google.cloud.redis.v1.CloudRedis.UpdateInstance].
type UpdateInstanceRequest struct {
	// Required. Mask of fields to update. At least one path must be supplied in
	// this field. The elements of the repeated paths field may only include these
	// fields from [Instance][google.cloud.redis.v1.Instance]:
	//
	//  *   `displayName`
	//  *   `labels`
	//  *   `memorySizeGb`
	//  *   `redisConfig`
	UpdateMask *field_mask.FieldMask `protobuf:"bytes,1,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
	// Required. Update description.
	// Only fields specified in update_mask are updated.
	Instance             *Instance `protobuf:"bytes,2,opt,name=instance,proto3" json:"instance,omitempty"`
	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
	XXX_unrecognized     []byte    `json:"-"`
	XXX_sizecache        int32     `json:"-"`
}

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

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

var xxx_messageInfo_UpdateInstanceRequest proto.InternalMessageInfo

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

func (m *UpdateInstanceRequest) GetInstance() *Instance {
	if m != nil {
		return m.Instance
	}
	return nil
}

// Request for [DeleteInstance][google.cloud.redis.v1.CloudRedis.DeleteInstance].
type DeleteInstanceRequest struct {
	// Required. Redis instance resource name using the form:
	//     `projects/{project_id}/locations/{location_id}/instances/{instance_id}`
	// where `location_id` refers to a GCP region.
	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_DeleteInstanceRequest proto.InternalMessageInfo

func (m *DeleteInstanceRequest) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

// The Cloud Storage location for the input content
type GcsSource struct {
	// Required. Source data URI. (e.g. 'gs://my_bucket/my_object').
	Uri                  string   `protobuf:"bytes,1,opt,name=uri,proto3" json:"uri,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_GcsSource proto.InternalMessageInfo

func (m *GcsSource) GetUri() string {
	if m != nil {
		return m.Uri
	}
	return ""
}

// The input content
type InputConfig struct {
	// Required. Specify source location of input data
	//
	// Types that are valid to be assigned to Source:
	//	*InputConfig_GcsSource
	Source               isInputConfig_Source `protobuf_oneof:"source"`
	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
	XXX_unrecognized     []byte               `json:"-"`
	XXX_sizecache        int32                `json:"-"`
}

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

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

var xxx_messageInfo_InputConfig proto.InternalMessageInfo

type isInputConfig_Source interface {
	isInputConfig_Source()
}

type InputConfig_GcsSource struct {
	GcsSource *GcsSource `protobuf:"bytes,1,opt,name=gcs_source,json=gcsSource,proto3,oneof"`
}

func (*InputConfig_GcsSource) isInputConfig_Source() {}

func (m *InputConfig) GetSource() isInputConfig_Source {
	if m != nil {
		return m.Source
	}
	return nil
}

func (m *InputConfig) GetGcsSource() *GcsSource {
	if x, ok := m.GetSource().(*InputConfig_GcsSource); ok {
		return x.GcsSource
	}
	return nil
}

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

// Request for [Import][google.cloud.redis.v1.CloudRedis.ImportInstance].
type ImportInstanceRequest struct {
	// Required. Redis instance resource name using the form:
	//     `projects/{project_id}/locations/{location_id}/instances/{instance_id}`
	// where `location_id` refers to a GCP region.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Required. Specify data to be imported.
	InputConfig          *InputConfig `protobuf:"bytes,3,opt,name=input_config,json=inputConfig,proto3" json:"input_config,omitempty"`
	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
	XXX_unrecognized     []byte       `json:"-"`
	XXX_sizecache        int32        `json:"-"`
}

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

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

var xxx_messageInfo_ImportInstanceRequest proto.InternalMessageInfo

func (m *ImportInstanceRequest) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *ImportInstanceRequest) GetInputConfig() *InputConfig {
	if m != nil {
		return m.InputConfig
	}
	return nil
}

// The Cloud Storage location for the output content
type GcsDestination struct {
	// Required. Data destination URI (e.g.
	// 'gs://my_bucket/my_object'). Existing files will be overwritten.
	Uri                  string   `protobuf:"bytes,1,opt,name=uri,proto3" json:"uri,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_GcsDestination proto.InternalMessageInfo

func (m *GcsDestination) GetUri() string {
	if m != nil {
		return m.Uri
	}
	return ""
}

// The output content
type OutputConfig struct {
	// Required. Specify destination location of output data
	//
	// Types that are valid to be assigned to Destination:
	//	*OutputConfig_GcsDestination
	Destination          isOutputConfig_Destination `protobuf_oneof:"destination"`
	XXX_NoUnkeyedLiteral struct{}                   `json:"-"`
	XXX_unrecognized     []byte                     `json:"-"`
	XXX_sizecache        int32                      `json:"-"`
}

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

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

var xxx_messageInfo_OutputConfig proto.InternalMessageInfo

type isOutputConfig_Destination interface {
	isOutputConfig_Destination()
}

type OutputConfig_GcsDestination struct {
	GcsDestination *GcsDestination `protobuf:"bytes,1,opt,name=gcs_destination,json=gcsDestination,proto3,oneof"`
}

func (*OutputConfig_GcsDestination) isOutputConfig_Destination() {}

func (m *OutputConfig) GetDestination() isOutputConfig_Destination {
	if m != nil {
		return m.Destination
	}
	return nil
}

func (m *OutputConfig) GetGcsDestination() *GcsDestination {
	if x, ok := m.GetDestination().(*OutputConfig_GcsDestination); ok {
		return x.GcsDestination
	}
	return nil
}

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

// Request for [Export][google.cloud.redis.v1.CloudRedis.ExportInstance].
type ExportInstanceRequest struct {
	// Required. Redis instance resource name using the form:
	//     `projects/{project_id}/locations/{location_id}/instances/{instance_id}`
	// where `location_id` refers to a GCP region.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Required. Specify data to be exported.
	OutputConfig         *OutputConfig `protobuf:"bytes,3,opt,name=output_config,json=outputConfig,proto3" json:"output_config,omitempty"`
	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
	XXX_unrecognized     []byte        `json:"-"`
	XXX_sizecache        int32         `json:"-"`
}

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

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

var xxx_messageInfo_ExportInstanceRequest proto.InternalMessageInfo

func (m *ExportInstanceRequest) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *ExportInstanceRequest) GetOutputConfig() *OutputConfig {
	if m != nil {
		return m.OutputConfig
	}
	return nil
}

// Request for [Failover][google.cloud.redis.v1.CloudRedis.FailoverInstance].
type FailoverInstanceRequest struct {
	// Required. Redis instance resource name using the form:
	//     `projects/{project_id}/locations/{location_id}/instances/{instance_id}`
	// where `location_id` refers to a GCP region.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Optional. Available data protection modes that the user can choose. If it's
	// unspecified, data protection mode will be LIMITED_DATA_LOSS by default.
	DataProtectionMode   FailoverInstanceRequest_DataProtectionMode `protobuf:"varint,2,opt,name=data_protection_mode,json=dataProtectionMode,proto3,enum=google.cloud.redis.v1.FailoverInstanceRequest_DataProtectionMode" json:"data_protection_mode,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                                   `json:"-"`
	XXX_unrecognized     []byte                                     `json:"-"`
	XXX_sizecache        int32                                      `json:"-"`
}

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

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

var xxx_messageInfo_FailoverInstanceRequest proto.InternalMessageInfo

func (m *FailoverInstanceRequest) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *FailoverInstanceRequest) GetDataProtectionMode() FailoverInstanceRequest_DataProtectionMode {
	if m != nil {
		return m.DataProtectionMode
	}
	return FailoverInstanceRequest_DATA_PROTECTION_MODE_UNSPECIFIED
}

// Represents the v1 metadata of the long-running operation.
type OperationMetadata struct {
	// Creation timestamp.
	CreateTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
	// End timestamp.
	EndTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
	// Operation target.
	Target string `protobuf:"bytes,3,opt,name=target,proto3" json:"target,omitempty"`
	// Operation verb.
	Verb string `protobuf:"bytes,4,opt,name=verb,proto3" json:"verb,omitempty"`
	// Operation status details.
	StatusDetail string `protobuf:"bytes,5,opt,name=status_detail,json=statusDetail,proto3" json:"status_detail,omitempty"`
	// Specifies if cancellation was requested for the operation.
	CancelRequested bool `protobuf:"varint,6,opt,name=cancel_requested,json=cancelRequested,proto3" json:"cancel_requested,omitempty"`
	// API version.
	ApiVersion           string   `protobuf:"bytes,7,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 *OperationMetadata) Reset()         { *m = OperationMetadata{} }
func (m *OperationMetadata) String() string { return proto.CompactTextString(m) }
func (*OperationMetadata) ProtoMessage()    {}
func (*OperationMetadata) Descriptor() ([]byte, []int) {
	return fileDescriptor_a99cb3206a9deca4, []int{14}
}

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

var xxx_messageInfo_OperationMetadata proto.InternalMessageInfo

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

func (m *OperationMetadata) GetEndTime() *timestamp.Timestamp {
	if m != nil {
		return m.EndTime
	}
	return nil
}

func (m *OperationMetadata) GetTarget() string {
	if m != nil {
		return m.Target
	}
	return ""
}

func (m *OperationMetadata) GetVerb() string {
	if m != nil {
		return m.Verb
	}
	return ""
}

func (m *OperationMetadata) GetStatusDetail() string {
	if m != nil {
		return m.StatusDetail
	}
	return ""
}

func (m *OperationMetadata) GetCancelRequested() bool {
	if m != nil {
		return m.CancelRequested
	}
	return false
}

func (m *OperationMetadata) GetApiVersion() string {
	if m != nil {
		return m.ApiVersion
	}
	return ""
}

// This location metadata represents additional configuration options for a
// given location where a Redis instance may be created. All fields are output
// only. It is returned as content of the
// `google.cloud.location.Location.metadata` field.
type LocationMetadata struct {
	// Output only. The set of available zones in the location. The map is keyed
	// by the lowercase ID of each zone, as defined by GCE. These keys can be
	// specified in `location_id` or `alternative_location_id` fields when
	// creating a Redis instance.
	AvailableZones       map[string]*ZoneMetadata `protobuf:"bytes,1,rep,name=available_zones,json=availableZones,proto3" json:"available_zones,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	XXX_NoUnkeyedLiteral struct{}                 `json:"-"`
	XXX_unrecognized     []byte                   `json:"-"`
	XXX_sizecache        int32                    `json:"-"`
}

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

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

var xxx_messageInfo_LocationMetadata proto.InternalMessageInfo

func (m *LocationMetadata) GetAvailableZones() map[string]*ZoneMetadata {
	if m != nil {
		return m.AvailableZones
	}
	return nil
}

// Defines specific information for a particular zone. Currently empty and
// reserved for future use only.
type ZoneMetadata struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_ZoneMetadata proto.InternalMessageInfo

func init() {
	proto.RegisterEnum("google.cloud.redis.v1.Instance_State", Instance_State_name, Instance_State_value)
	proto.RegisterEnum("google.cloud.redis.v1.Instance_Tier", Instance_Tier_name, Instance_Tier_value)
	proto.RegisterEnum("google.cloud.redis.v1.Instance_ConnectMode", Instance_ConnectMode_name, Instance_ConnectMode_value)
	proto.RegisterEnum("google.cloud.redis.v1.FailoverInstanceRequest_DataProtectionMode", FailoverInstanceRequest_DataProtectionMode_name, FailoverInstanceRequest_DataProtectionMode_value)
	proto.RegisterType((*Instance)(nil), "google.cloud.redis.v1.Instance")
	proto.RegisterMapType((map[string]string)(nil), "google.cloud.redis.v1.Instance.LabelsEntry")
	proto.RegisterMapType((map[string]string)(nil), "google.cloud.redis.v1.Instance.RedisConfigsEntry")
	proto.RegisterType((*ListInstancesRequest)(nil), "google.cloud.redis.v1.ListInstancesRequest")
	proto.RegisterType((*ListInstancesResponse)(nil), "google.cloud.redis.v1.ListInstancesResponse")
	proto.RegisterType((*GetInstanceRequest)(nil), "google.cloud.redis.v1.GetInstanceRequest")
	proto.RegisterType((*CreateInstanceRequest)(nil), "google.cloud.redis.v1.CreateInstanceRequest")
	proto.RegisterType((*UpdateInstanceRequest)(nil), "google.cloud.redis.v1.UpdateInstanceRequest")
	proto.RegisterType((*DeleteInstanceRequest)(nil), "google.cloud.redis.v1.DeleteInstanceRequest")
	proto.RegisterType((*GcsSource)(nil), "google.cloud.redis.v1.GcsSource")
	proto.RegisterType((*InputConfig)(nil), "google.cloud.redis.v1.InputConfig")
	proto.RegisterType((*ImportInstanceRequest)(nil), "google.cloud.redis.v1.ImportInstanceRequest")
	proto.RegisterType((*GcsDestination)(nil), "google.cloud.redis.v1.GcsDestination")
	proto.RegisterType((*OutputConfig)(nil), "google.cloud.redis.v1.OutputConfig")
	proto.RegisterType((*ExportInstanceRequest)(nil), "google.cloud.redis.v1.ExportInstanceRequest")
	proto.RegisterType((*FailoverInstanceRequest)(nil), "google.cloud.redis.v1.FailoverInstanceRequest")
	proto.RegisterType((*OperationMetadata)(nil), "google.cloud.redis.v1.OperationMetadata")
	proto.RegisterType((*LocationMetadata)(nil), "google.cloud.redis.v1.LocationMetadata")
	proto.RegisterMapType((map[string]*ZoneMetadata)(nil), "google.cloud.redis.v1.LocationMetadata.AvailableZonesEntry")
	proto.RegisterType((*ZoneMetadata)(nil), "google.cloud.redis.v1.ZoneMetadata")
}

func init() {
	proto.RegisterFile("google/cloud/redis/v1/cloud_redis.proto", fileDescriptor_a99cb3206a9deca4)
}

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

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

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

// CloudRedisClient is the client API for CloudRedis service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type CloudRedisClient interface {
	// Lists all Redis instances owned by a project in either the specified
	// location (region) or all locations.
	//
	// The location should have the following format:
	//
	// * `projects/{project_id}/locations/{location_id}`
	//
	// If `location_id` is specified as `-` (wildcard), then all regions
	// available to the project are queried, and the results are aggregated.
	ListInstances(ctx context.Context, in *ListInstancesRequest, opts ...grpc.CallOption) (*ListInstancesResponse, error)
	// Gets the details of a specific Redis instance.
	GetInstance(ctx context.Context, in *GetInstanceRequest, opts ...grpc.CallOption) (*Instance, error)
	// Creates a Redis instance based on the specified tier and memory size.
	//
	// By default, the instance is accessible from the project's
	// [default network](/compute/docs/networks-and-firewalls#networks).
	//
	// The creation is executed asynchronously and callers may check the returned
	// operation to track its progress. Once the operation is completed the Redis
	// instance will be fully functional. Completed longrunning.Operation will
	// contain the new instance object in the response field.
	//
	// The returned operation is automatically deleted after a few hours, so there
	// is no need to call DeleteOperation.
	CreateInstance(ctx context.Context, in *CreateInstanceRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
	// Updates the metadata and configuration of a specific Redis instance.
	//
	// Completed longrunning.Operation will contain the new instance object
	// in the response field. The returned operation is automatically deleted
	// after a few hours, so there is no need to call DeleteOperation.
	UpdateInstance(ctx context.Context, in *UpdateInstanceRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
	// Import a Redis RDB snapshot file from Cloud Storage into a Redis instance.
	//
	// Redis may stop serving during this operation. Instance state will be
	// IMPORTING for entire operation. When complete, the instance will contain
	// only data from the imported file.
	//
	// The returned operation is automatically deleted after a few hours, so
	// there is no need to call DeleteOperation.
	ImportInstance(ctx context.Context, in *ImportInstanceRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
	// Export Redis instance data into a Redis RDB format file in Cloud Storage.
	//
	// Redis will continue serving during this operation.
	//
	// The returned operation is automatically deleted after a few hours, so
	// there is no need to call DeleteOperation.
	ExportInstance(ctx context.Context, in *ExportInstanceRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
	// Initiates a failover of the master node to current replica node for a
	// specific STANDARD tier Cloud Memorystore for Redis instance.
	FailoverInstance(ctx context.Context, in *FailoverInstanceRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
	// Deletes a specific Redis instance.  Instance stops serving and data is
	// deleted.
	DeleteInstance(ctx context.Context, in *DeleteInstanceRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
}

type cloudRedisClient struct {
	cc grpc.ClientConnInterface
}

func NewCloudRedisClient(cc grpc.ClientConnInterface) CloudRedisClient {
	return &cloudRedisClient{cc}
}

func (c *cloudRedisClient) ListInstances(ctx context.Context, in *ListInstancesRequest, opts ...grpc.CallOption) (*ListInstancesResponse, error) {
	out := new(ListInstancesResponse)
	err := c.cc.Invoke(ctx, "/google.cloud.redis.v1.CloudRedis/ListInstances", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *cloudRedisClient) GetInstance(ctx context.Context, in *GetInstanceRequest, opts ...grpc.CallOption) (*Instance, error) {
	out := new(Instance)
	err := c.cc.Invoke(ctx, "/google.cloud.redis.v1.CloudRedis/GetInstance", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *cloudRedisClient) CreateInstance(ctx context.Context, in *CreateInstanceRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
	out := new(longrunning.Operation)
	err := c.cc.Invoke(ctx, "/google.cloud.redis.v1.CloudRedis/CreateInstance", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *cloudRedisClient) UpdateInstance(ctx context.Context, in *UpdateInstanceRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
	out := new(longrunning.Operation)
	err := c.cc.Invoke(ctx, "/google.cloud.redis.v1.CloudRedis/UpdateInstance", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *cloudRedisClient) ImportInstance(ctx context.Context, in *ImportInstanceRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
	out := new(longrunning.Operation)
	err := c.cc.Invoke(ctx, "/google.cloud.redis.v1.CloudRedis/ImportInstance", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *cloudRedisClient) ExportInstance(ctx context.Context, in *ExportInstanceRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
	out := new(longrunning.Operation)
	err := c.cc.Invoke(ctx, "/google.cloud.redis.v1.CloudRedis/ExportInstance", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *cloudRedisClient) FailoverInstance(ctx context.Context, in *FailoverInstanceRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
	out := new(longrunning.Operation)
	err := c.cc.Invoke(ctx, "/google.cloud.redis.v1.CloudRedis/FailoverInstance", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *cloudRedisClient) DeleteInstance(ctx context.Context, in *DeleteInstanceRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
	out := new(longrunning.Operation)
	err := c.cc.Invoke(ctx, "/google.cloud.redis.v1.CloudRedis/DeleteInstance", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// CloudRedisServer is the server API for CloudRedis service.
type CloudRedisServer interface {
	// Lists all Redis instances owned by a project in either the specified
	// location (region) or all locations.
	//
	// The location should have the following format:
	//
	// * `projects/{project_id}/locations/{location_id}`
	//
	// If `location_id` is specified as `-` (wildcard), then all regions
	// available to the project are queried, and the results are aggregated.
	ListInstances(context.Context, *ListInstancesRequest) (*ListInstancesResponse, error)
	// Gets the details of a specific Redis instance.
	GetInstance(context.Context, *GetInstanceRequest) (*Instance, error)
	// Creates a Redis instance based on the specified tier and memory size.
	//
	// By default, the instance is accessible from the project's
	// [default network](/compute/docs/networks-and-firewalls#networks).
	//
	// The creation is executed asynchronously and callers may check the returned
	// operation to track its progress. Once the operation is completed the Redis
	// instance will be fully functional. Completed longrunning.Operation will
	// contain the new instance object in the response field.
	//
	// The returned operation is automatically deleted after a few hours, so there
	// is no need to call DeleteOperation.
	CreateInstance(context.Context, *CreateInstanceRequest) (*longrunning.Operation, error)
	// Updates the metadata and configuration of a specific Redis instance.
	//
	// Completed longrunning.Operation will contain the new instance object
	// in the response field. The returned operation is automatically deleted
	// after a few hours, so there is no need to call DeleteOperation.
	UpdateInstance(context.Context, *UpdateInstanceRequest) (*longrunning.Operation, error)
	// Import a Redis RDB snapshot file from Cloud Storage into a Redis instance.
	//
	// Redis may stop serving during this operation. Instance state will be
	// IMPORTING for entire operation. When complete, the instance will contain
	// only data from the imported file.
	//
	// The returned operation is automatically deleted after a few hours, so
	// there is no need to call DeleteOperation.
	ImportInstance(context.Context, *ImportInstanceRequest) (*longrunning.Operation, error)
	// Export Redis instance data into a Redis RDB format file in Cloud Storage.
	//
	// Redis will continue serving during this operation.
	//
	// The returned operation is automatically deleted after a few hours, so
	// there is no need to call DeleteOperation.
	ExportInstance(context.Context, *ExportInstanceRequest) (*longrunning.Operation, error)
	// Initiates a failover of the master node to current replica node for a
	// specific STANDARD tier Cloud Memorystore for Redis instance.
	FailoverInstance(context.Context, *FailoverInstanceRequest) (*longrunning.Operation, error)
	// Deletes a specific Redis instance.  Instance stops serving and data is
	// deleted.
	DeleteInstance(context.Context, *DeleteInstanceRequest) (*longrunning.Operation, error)
}

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

func (*UnimplementedCloudRedisServer) ListInstances(ctx context.Context, req *ListInstancesRequest) (*ListInstancesResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ListInstances not implemented")
}
func (*UnimplementedCloudRedisServer) GetInstance(ctx context.Context, req *GetInstanceRequest) (*Instance, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetInstance not implemented")
}
func (*UnimplementedCloudRedisServer) CreateInstance(ctx context.Context, req *CreateInstanceRequest) (*longrunning.Operation, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CreateInstance not implemented")
}
func (*UnimplementedCloudRedisServer) UpdateInstance(ctx context.Context, req *UpdateInstanceRequest) (*longrunning.Operation, error) {
	return nil, status.Errorf(codes.Unimplemented, "method UpdateInstance not implemented")
}
func (*UnimplementedCloudRedisServer) ImportInstance(ctx context.Context, req *ImportInstanceRequest) (*longrunning.Operation, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ImportInstance not implemented")
}
func (*UnimplementedCloudRedisServer) ExportInstance(ctx context.Context, req *ExportInstanceRequest) (*longrunning.Operation, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ExportInstance not implemented")
}
func (*UnimplementedCloudRedisServer) FailoverInstance(ctx context.Context, req *FailoverInstanceRequest) (*longrunning.Operation, error) {
	return nil, status.Errorf(codes.Unimplemented, "method FailoverInstance not implemented")
}
func (*UnimplementedCloudRedisServer) DeleteInstance(ctx context.Context, req *DeleteInstanceRequest) (*longrunning.Operation, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DeleteInstance not implemented")
}

func RegisterCloudRedisServer(s *grpc.Server, srv CloudRedisServer) {
	s.RegisterService(&_CloudRedis_serviceDesc, srv)
}

func _CloudRedis_ListInstances_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListInstancesRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(CloudRedisServer).ListInstances(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.redis.v1.CloudRedis/ListInstances",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(CloudRedisServer).ListInstances(ctx, req.(*ListInstancesRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _CloudRedis_GetInstance_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetInstanceRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(CloudRedisServer).GetInstance(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.redis.v1.CloudRedis/GetInstance",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(CloudRedisServer).GetInstance(ctx, req.(*GetInstanceRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _CloudRedis_CreateInstance_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateInstanceRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(CloudRedisServer).CreateInstance(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.redis.v1.CloudRedis/CreateInstance",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(CloudRedisServer).CreateInstance(ctx, req.(*CreateInstanceRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _CloudRedis_UpdateInstance_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UpdateInstanceRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(CloudRedisServer).UpdateInstance(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.redis.v1.CloudRedis/UpdateInstance",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(CloudRedisServer).UpdateInstance(ctx, req.(*UpdateInstanceRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _CloudRedis_ImportInstance_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ImportInstanceRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(CloudRedisServer).ImportInstance(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.redis.v1.CloudRedis/ImportInstance",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(CloudRedisServer).ImportInstance(ctx, req.(*ImportInstanceRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _CloudRedis_ExportInstance_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ExportInstanceRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(CloudRedisServer).ExportInstance(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.redis.v1.CloudRedis/ExportInstance",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(CloudRedisServer).ExportInstance(ctx, req.(*ExportInstanceRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _CloudRedis_FailoverInstance_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(FailoverInstanceRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(CloudRedisServer).FailoverInstance(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.redis.v1.CloudRedis/FailoverInstance",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(CloudRedisServer).FailoverInstance(ctx, req.(*FailoverInstanceRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _CloudRedis_DeleteInstance_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeleteInstanceRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(CloudRedisServer).DeleteInstance(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.redis.v1.CloudRedis/DeleteInstance",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(CloudRedisServer).DeleteInstance(ctx, req.(*DeleteInstanceRequest))
	}
	return interceptor(ctx, in, info, handler)
}

var _CloudRedis_serviceDesc = grpc.ServiceDesc{
	ServiceName: "google.cloud.redis.v1.CloudRedis",
	HandlerType: (*CloudRedisServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "ListInstances",
			Handler:    _CloudRedis_ListInstances_Handler,
		},
		{
			MethodName: "GetInstance",
			Handler:    _CloudRedis_GetInstance_Handler,
		},
		{
			MethodName: "CreateInstance",
			Handler:    _CloudRedis_CreateInstance_Handler,
		},
		{
			MethodName: "UpdateInstance",
			Handler:    _CloudRedis_UpdateInstance_Handler,
		},
		{
			MethodName: "ImportInstance",
			Handler:    _CloudRedis_ImportInstance_Handler,
		},
		{
			MethodName: "ExportInstance",
			Handler:    _CloudRedis_ExportInstance_Handler,
		},
		{
			MethodName: "FailoverInstance",
			Handler:    _CloudRedis_FailoverInstance_Handler,
		},
		{
			MethodName: "DeleteInstance",
			Handler:    _CloudRedis_DeleteInstance_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "google/cloud/redis/v1/cloud_redis.proto",
}
