auto-regenerate .pb.go files (#299)

This is an auto-generated regeneration of the .pb.go files by
cloud.google.com/go/internal/gapicgen. Once this PR is submitted, genmgr will
update the corresponding CL at gocloud to depend on the newer version of
go-genproto, and assign reviewers. Whilst this or any regen PR is open in
go-genproto, gapicgen will not create any more regeneration PRs or CLs. If all
regen PRs are closed, gapicgen will create a new set of regeneration PRs and
CLs once per night.

If you have been assigned to review this CL, please:

- Ensure that CI is passing. If it's failing, it requires your manual attention.
- Approve and submit this PR if you believe it's ready to ship. That will prompt
  genmgr to assign reviewers to the gocloud CL.

Corresponding gocloud CL: https://code-review.googlesource.com/c/gocloud/+/51451
diff --git a/googleapis/cloud/accessapproval/v1/accessapproval.pb.go b/googleapis/cloud/accessapproval/v1/accessapproval.pb.go
new file mode 100644
index 0000000..ecd27f6
--- /dev/null
+++ b/googleapis/cloud/accessapproval/v1/accessapproval.pb.go
@@ -0,0 +1,1551 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// source: google/cloud/accessapproval/v1/accessapproval.proto
+
+package accessapproval
+
+import (
+	context "context"
+	fmt "fmt"
+	math "math"
+
+	proto "github.com/golang/protobuf/proto"
+	empty "github.com/golang/protobuf/ptypes/empty"
+	timestamp "github.com/golang/protobuf/ptypes/timestamp"
+	_ "google.golang.org/genproto/googleapis/api/annotations"
+	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 type of enrollment for a given service to Access Approval.
+type EnrollmentLevel int32
+
+const (
+	// Default value for proto, shouldn't be used.
+	EnrollmentLevel_ENROLLMENT_LEVEL_UNSPECIFIED EnrollmentLevel = 0
+	// Service is enrolled in Access Approval for all requests
+	EnrollmentLevel_BLOCK_ALL EnrollmentLevel = 1
+)
+
+var EnrollmentLevel_name = map[int32]string{
+	0: "ENROLLMENT_LEVEL_UNSPECIFIED",
+	1: "BLOCK_ALL",
+}
+
+var EnrollmentLevel_value = map[string]int32{
+	"ENROLLMENT_LEVEL_UNSPECIFIED": 0,
+	"BLOCK_ALL":                    1,
+}
+
+func (x EnrollmentLevel) String() string {
+	return proto.EnumName(EnrollmentLevel_name, int32(x))
+}
+
+func (EnrollmentLevel) EnumDescriptor() ([]byte, []int) {
+	return fileDescriptor_b766c7add582ab6f, []int{0}
+}
+
+// Type of access justification.
+type AccessReason_Type int32
+
+const (
+	// Default value for proto, shouldn't be used.
+	AccessReason_TYPE_UNSPECIFIED AccessReason_Type = 0
+	// Customer made a request or raised an issue that required the principal to
+	// access customer data. `detail` is of the form ("#####" is the issue ID):
+	// <ol>
+	//   <li>"Feedback Report: #####"</li>
+	//   <li>"Case Number: #####"</li>
+	//   <li>"Case ID: #####"</li>
+	//   <li>"E-PIN Reference: #####"</li>
+	//   <li>"Google-#####"</li>
+	//   <li>"T-#####"</li>
+	// </ol>
+	AccessReason_CUSTOMER_INITIATED_SUPPORT AccessReason_Type = 1
+	// The principal accessed customer data in order to diagnose or resolve a
+	// suspected issue in services or a known outage. Often this access is used
+	// to confirm that customers are not affected by a suspected service issue
+	// or to remediate a reversible system issue.
+	AccessReason_GOOGLE_INITIATED_SERVICE AccessReason_Type = 2
+	// Google initiated service for security, fraud, abuse, or compliance
+	// purposes.
+	AccessReason_GOOGLE_INITIATED_REVIEW AccessReason_Type = 3
+)
+
+var AccessReason_Type_name = map[int32]string{
+	0: "TYPE_UNSPECIFIED",
+	1: "CUSTOMER_INITIATED_SUPPORT",
+	2: "GOOGLE_INITIATED_SERVICE",
+	3: "GOOGLE_INITIATED_REVIEW",
+}
+
+var AccessReason_Type_value = map[string]int32{
+	"TYPE_UNSPECIFIED":           0,
+	"CUSTOMER_INITIATED_SUPPORT": 1,
+	"GOOGLE_INITIATED_SERVICE":   2,
+	"GOOGLE_INITIATED_REVIEW":    3,
+}
+
+func (x AccessReason_Type) String() string {
+	return proto.EnumName(AccessReason_Type_name, int32(x))
+}
+
+func (AccessReason_Type) EnumDescriptor() ([]byte, []int) {
+	return fileDescriptor_b766c7add582ab6f, []int{1, 0}
+}
+
+// Home office and physical location of the principal.
+type AccessLocations struct {
+	// The "home office" location of the principal. A two-letter country code
+	// (ISO 3166-1 alpha-2), such as "US", "DE" or "GB" or a region code. In some
+	// limited situations Google systems may refer refer to a region code instead
+	// of a country code.
+	// Possible Region Codes:
+	// <ol>
+	//   <li>ASI: Asia</li>
+	//   <li>EUR: Europe</li>
+	//   <li>OCE: Oceania</li>
+	//   <li>AFR: Africa</li>
+	//   <li>NAM: North America</li>
+	//   <li>SAM: South America</li>
+	//   <li>ANT: Antarctica</li>
+	//   <li>ANY: Any location</li>
+	// </ol>
+	PrincipalOfficeCountry string `protobuf:"bytes,1,opt,name=principal_office_country,json=principalOfficeCountry,proto3" json:"principal_office_country,omitempty"`
+	// Physical location of the principal at the time of the access. A
+	// two-letter country code (ISO 3166-1 alpha-2), such as "US", "DE" or "GB" or
+	// a region code. In some limited situations Google systems may refer refer to
+	// a region code instead of a country code.
+	// Possible Region Codes:
+	// <ol>
+	//   <li>ASI: Asia</li>
+	//   <li>EUR: Europe</li>
+	//   <li>OCE: Oceania</li>
+	//   <li>AFR: Africa</li>
+	//   <li>NAM: North America</li>
+	//   <li>SAM: South America</li>
+	//   <li>ANT: Antarctica</li>
+	//   <li>ANY: Any location</li>
+	// </ol>
+	PrincipalPhysicalLocationCountry string   `protobuf:"bytes,2,opt,name=principal_physical_location_country,json=principalPhysicalLocationCountry,proto3" json:"principal_physical_location_country,omitempty"`
+	XXX_NoUnkeyedLiteral             struct{} `json:"-"`
+	XXX_unrecognized                 []byte   `json:"-"`
+	XXX_sizecache                    int32    `json:"-"`
+}
+
+func (m *AccessLocations) Reset()         { *m = AccessLocations{} }
+func (m *AccessLocations) String() string { return proto.CompactTextString(m) }
+func (*AccessLocations) ProtoMessage()    {}
+func (*AccessLocations) Descriptor() ([]byte, []int) {
+	return fileDescriptor_b766c7add582ab6f, []int{0}
+}
+
+func (m *AccessLocations) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_AccessLocations.Unmarshal(m, b)
+}
+func (m *AccessLocations) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_AccessLocations.Marshal(b, m, deterministic)
+}
+func (m *AccessLocations) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_AccessLocations.Merge(m, src)
+}
+func (m *AccessLocations) XXX_Size() int {
+	return xxx_messageInfo_AccessLocations.Size(m)
+}
+func (m *AccessLocations) XXX_DiscardUnknown() {
+	xxx_messageInfo_AccessLocations.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_AccessLocations proto.InternalMessageInfo
+
+func (m *AccessLocations) GetPrincipalOfficeCountry() string {
+	if m != nil {
+		return m.PrincipalOfficeCountry
+	}
+	return ""
+}
+
+func (m *AccessLocations) GetPrincipalPhysicalLocationCountry() string {
+	if m != nil {
+		return m.PrincipalPhysicalLocationCountry
+	}
+	return ""
+}
+
+type AccessReason struct {
+	// Type of access justification.
+	Type AccessReason_Type `protobuf:"varint,1,opt,name=type,proto3,enum=google.cloud.accessapproval.v1.AccessReason_Type" json:"type,omitempty"`
+	// More detail about certain reason types. See comments for each type above.
+	Detail               string   `protobuf:"bytes,2,opt,name=detail,proto3" json:"detail,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *AccessReason) Reset()         { *m = AccessReason{} }
+func (m *AccessReason) String() string { return proto.CompactTextString(m) }
+func (*AccessReason) ProtoMessage()    {}
+func (*AccessReason) Descriptor() ([]byte, []int) {
+	return fileDescriptor_b766c7add582ab6f, []int{1}
+}
+
+func (m *AccessReason) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_AccessReason.Unmarshal(m, b)
+}
+func (m *AccessReason) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_AccessReason.Marshal(b, m, deterministic)
+}
+func (m *AccessReason) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_AccessReason.Merge(m, src)
+}
+func (m *AccessReason) XXX_Size() int {
+	return xxx_messageInfo_AccessReason.Size(m)
+}
+func (m *AccessReason) XXX_DiscardUnknown() {
+	xxx_messageInfo_AccessReason.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_AccessReason proto.InternalMessageInfo
+
+func (m *AccessReason) GetType() AccessReason_Type {
+	if m != nil {
+		return m.Type
+	}
+	return AccessReason_TYPE_UNSPECIFIED
+}
+
+func (m *AccessReason) GetDetail() string {
+	if m != nil {
+		return m.Detail
+	}
+	return ""
+}
+
+// A decision that has been made to approve access to a resource.
+type ApproveDecision struct {
+	// The time at which approval was granted.
+	ApproveTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=approve_time,json=approveTime,proto3" json:"approve_time,omitempty"`
+	// The time at which the approval expires.
+	ExpireTime           *timestamp.Timestamp `protobuf:"bytes,2,opt,name=expire_time,json=expireTime,proto3" json:"expire_time,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
+	XXX_unrecognized     []byte               `json:"-"`
+	XXX_sizecache        int32                `json:"-"`
+}
+
+func (m *ApproveDecision) Reset()         { *m = ApproveDecision{} }
+func (m *ApproveDecision) String() string { return proto.CompactTextString(m) }
+func (*ApproveDecision) ProtoMessage()    {}
+func (*ApproveDecision) Descriptor() ([]byte, []int) {
+	return fileDescriptor_b766c7add582ab6f, []int{2}
+}
+
+func (m *ApproveDecision) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_ApproveDecision.Unmarshal(m, b)
+}
+func (m *ApproveDecision) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_ApproveDecision.Marshal(b, m, deterministic)
+}
+func (m *ApproveDecision) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_ApproveDecision.Merge(m, src)
+}
+func (m *ApproveDecision) XXX_Size() int {
+	return xxx_messageInfo_ApproveDecision.Size(m)
+}
+func (m *ApproveDecision) XXX_DiscardUnknown() {
+	xxx_messageInfo_ApproveDecision.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ApproveDecision proto.InternalMessageInfo
+
+func (m *ApproveDecision) GetApproveTime() *timestamp.Timestamp {
+	if m != nil {
+		return m.ApproveTime
+	}
+	return nil
+}
+
+func (m *ApproveDecision) GetExpireTime() *timestamp.Timestamp {
+	if m != nil {
+		return m.ExpireTime
+	}
+	return nil
+}
+
+// A decision that has been made to dismiss an approval request.
+type DismissDecision struct {
+	// The time at which the approval request was dismissed.
+	DismissTime          *timestamp.Timestamp `protobuf:"bytes,1,opt,name=dismiss_time,json=dismissTime,proto3" json:"dismiss_time,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
+	XXX_unrecognized     []byte               `json:"-"`
+	XXX_sizecache        int32                `json:"-"`
+}
+
+func (m *DismissDecision) Reset()         { *m = DismissDecision{} }
+func (m *DismissDecision) String() string { return proto.CompactTextString(m) }
+func (*DismissDecision) ProtoMessage()    {}
+func (*DismissDecision) Descriptor() ([]byte, []int) {
+	return fileDescriptor_b766c7add582ab6f, []int{3}
+}
+
+func (m *DismissDecision) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_DismissDecision.Unmarshal(m, b)
+}
+func (m *DismissDecision) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_DismissDecision.Marshal(b, m, deterministic)
+}
+func (m *DismissDecision) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_DismissDecision.Merge(m, src)
+}
+func (m *DismissDecision) XXX_Size() int {
+	return xxx_messageInfo_DismissDecision.Size(m)
+}
+func (m *DismissDecision) XXX_DiscardUnknown() {
+	xxx_messageInfo_DismissDecision.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_DismissDecision proto.InternalMessageInfo
+
+func (m *DismissDecision) GetDismissTime() *timestamp.Timestamp {
+	if m != nil {
+		return m.DismissTime
+	}
+	return nil
+}
+
+// The properties associated with the resource of the request.
+type ResourceProperties struct {
+	// Whether an approval will exclude the descendants of the resource being
+	// requested.
+	ExcludesDescendants  bool     `protobuf:"varint,1,opt,name=excludes_descendants,json=excludesDescendants,proto3" json:"excludes_descendants,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *ResourceProperties) Reset()         { *m = ResourceProperties{} }
+func (m *ResourceProperties) String() string { return proto.CompactTextString(m) }
+func (*ResourceProperties) ProtoMessage()    {}
+func (*ResourceProperties) Descriptor() ([]byte, []int) {
+	return fileDescriptor_b766c7add582ab6f, []int{4}
+}
+
+func (m *ResourceProperties) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_ResourceProperties.Unmarshal(m, b)
+}
+func (m *ResourceProperties) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_ResourceProperties.Marshal(b, m, deterministic)
+}
+func (m *ResourceProperties) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_ResourceProperties.Merge(m, src)
+}
+func (m *ResourceProperties) XXX_Size() int {
+	return xxx_messageInfo_ResourceProperties.Size(m)
+}
+func (m *ResourceProperties) XXX_DiscardUnknown() {
+	xxx_messageInfo_ResourceProperties.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ResourceProperties proto.InternalMessageInfo
+
+func (m *ResourceProperties) GetExcludesDescendants() bool {
+	if m != nil {
+		return m.ExcludesDescendants
+	}
+	return false
+}
+
+// A request for the customer to approve access to a resource.
+type ApprovalRequest struct {
+	// The resource name of the request. Format is
+	// "{projects|folders|organizations}/{id}/approvalRequests/{approval_request_id}".
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+	// The resource for which approval is being requested. The format of the
+	// resource name is defined at
+	// https://cloud.google.com/apis/design/resource_names. The resource name here
+	// may either be a "full" resource name (e.g.
+	// "//library.googleapis.com/shelves/shelf1/books/book2") or a "relative"
+	// resource name (e.g. "shelves/shelf1/books/book2") as described in the
+	// resource name specification.
+	RequestedResourceName string `protobuf:"bytes,2,opt,name=requested_resource_name,json=requestedResourceName,proto3" json:"requested_resource_name,omitempty"`
+	// Properties related to the resource represented by requested_resource_name.
+	RequestedResourceProperties *ResourceProperties `protobuf:"bytes,9,opt,name=requested_resource_properties,json=requestedResourceProperties,proto3" json:"requested_resource_properties,omitempty"`
+	// The justification for which approval is being requested.
+	RequestedReason *AccessReason `protobuf:"bytes,3,opt,name=requested_reason,json=requestedReason,proto3" json:"requested_reason,omitempty"`
+	// The locations for which approval is being requested.
+	RequestedLocations *AccessLocations `protobuf:"bytes,4,opt,name=requested_locations,json=requestedLocations,proto3" json:"requested_locations,omitempty"`
+	// The time at which approval was requested.
+	RequestTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=request_time,json=requestTime,proto3" json:"request_time,omitempty"`
+	// The requested expiration for the approval. If the request is approved,
+	// access will be granted from the time of approval until the expiration time.
+	RequestedExpiration *timestamp.Timestamp `protobuf:"bytes,6,opt,name=requested_expiration,json=requestedExpiration,proto3" json:"requested_expiration,omitempty"`
+	// The current decision on the approval request.
+	//
+	// Types that are valid to be assigned to Decision:
+	//	*ApprovalRequest_Approve
+	//	*ApprovalRequest_Dismiss
+	Decision             isApprovalRequest_Decision `protobuf_oneof:"decision"`
+	XXX_NoUnkeyedLiteral struct{}                   `json:"-"`
+	XXX_unrecognized     []byte                     `json:"-"`
+	XXX_sizecache        int32                      `json:"-"`
+}
+
+func (m *ApprovalRequest) Reset()         { *m = ApprovalRequest{} }
+func (m *ApprovalRequest) String() string { return proto.CompactTextString(m) }
+func (*ApprovalRequest) ProtoMessage()    {}
+func (*ApprovalRequest) Descriptor() ([]byte, []int) {
+	return fileDescriptor_b766c7add582ab6f, []int{5}
+}
+
+func (m *ApprovalRequest) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_ApprovalRequest.Unmarshal(m, b)
+}
+func (m *ApprovalRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_ApprovalRequest.Marshal(b, m, deterministic)
+}
+func (m *ApprovalRequest) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_ApprovalRequest.Merge(m, src)
+}
+func (m *ApprovalRequest) XXX_Size() int {
+	return xxx_messageInfo_ApprovalRequest.Size(m)
+}
+func (m *ApprovalRequest) XXX_DiscardUnknown() {
+	xxx_messageInfo_ApprovalRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ApprovalRequest proto.InternalMessageInfo
+
+func (m *ApprovalRequest) GetName() string {
+	if m != nil {
+		return m.Name
+	}
+	return ""
+}
+
+func (m *ApprovalRequest) GetRequestedResourceName() string {
+	if m != nil {
+		return m.RequestedResourceName
+	}
+	return ""
+}
+
+func (m *ApprovalRequest) GetRequestedResourceProperties() *ResourceProperties {
+	if m != nil {
+		return m.RequestedResourceProperties
+	}
+	return nil
+}
+
+func (m *ApprovalRequest) GetRequestedReason() *AccessReason {
+	if m != nil {
+		return m.RequestedReason
+	}
+	return nil
+}
+
+func (m *ApprovalRequest) GetRequestedLocations() *AccessLocations {
+	if m != nil {
+		return m.RequestedLocations
+	}
+	return nil
+}
+
+func (m *ApprovalRequest) GetRequestTime() *timestamp.Timestamp {
+	if m != nil {
+		return m.RequestTime
+	}
+	return nil
+}
+
+func (m *ApprovalRequest) GetRequestedExpiration() *timestamp.Timestamp {
+	if m != nil {
+		return m.RequestedExpiration
+	}
+	return nil
+}
+
+type isApprovalRequest_Decision interface {
+	isApprovalRequest_Decision()
+}
+
+type ApprovalRequest_Approve struct {
+	Approve *ApproveDecision `protobuf:"bytes,7,opt,name=approve,proto3,oneof"`
+}
+
+type ApprovalRequest_Dismiss struct {
+	Dismiss *DismissDecision `protobuf:"bytes,8,opt,name=dismiss,proto3,oneof"`
+}
+
+func (*ApprovalRequest_Approve) isApprovalRequest_Decision() {}
+
+func (*ApprovalRequest_Dismiss) isApprovalRequest_Decision() {}
+
+func (m *ApprovalRequest) GetDecision() isApprovalRequest_Decision {
+	if m != nil {
+		return m.Decision
+	}
+	return nil
+}
+
+func (m *ApprovalRequest) GetApprove() *ApproveDecision {
+	if x, ok := m.GetDecision().(*ApprovalRequest_Approve); ok {
+		return x.Approve
+	}
+	return nil
+}
+
+func (m *ApprovalRequest) GetDismiss() *DismissDecision {
+	if x, ok := m.GetDecision().(*ApprovalRequest_Dismiss); ok {
+		return x.Dismiss
+	}
+	return nil
+}
+
+// XXX_OneofWrappers is for the internal use of the proto package.
+func (*ApprovalRequest) XXX_OneofWrappers() []interface{} {
+	return []interface{}{
+		(*ApprovalRequest_Approve)(nil),
+		(*ApprovalRequest_Dismiss)(nil),
+	}
+}
+
+// Represents the enrollment of a cloud resource into a specific service.
+type EnrolledService struct {
+	// The product for which Access Approval will be enrolled. Allowed values are
+	// listed below (case-sensitive):
+	// <ol>
+	//   <li>all</li>
+	//   <li>appengine.googleapis.com</li>
+	//   <li>bigquery.googleapis.com</li>
+	//   <li>bigtable.googleapis.com</li>
+	//   <li>cloudkms.googleapis.com</li>
+	//   <li>compute.googleapis.com</li>
+	//   <li>dataflow.googleapis.com</li>
+	//   <li>iam.googleapis.com</li>
+	//   <li>pubsub.googleapis.com</li>
+	//   <li>storage.googleapis.com</li>
+	// <ol>
+	CloudProduct string `protobuf:"bytes,1,opt,name=cloud_product,json=cloudProduct,proto3" json:"cloud_product,omitempty"`
+	// The enrollment level of the service.
+	EnrollmentLevel      EnrollmentLevel `protobuf:"varint,2,opt,name=enrollment_level,json=enrollmentLevel,proto3,enum=google.cloud.accessapproval.v1.EnrollmentLevel" json:"enrollment_level,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
+	XXX_unrecognized     []byte          `json:"-"`
+	XXX_sizecache        int32           `json:"-"`
+}
+
+func (m *EnrolledService) Reset()         { *m = EnrolledService{} }
+func (m *EnrolledService) String() string { return proto.CompactTextString(m) }
+func (*EnrolledService) ProtoMessage()    {}
+func (*EnrolledService) Descriptor() ([]byte, []int) {
+	return fileDescriptor_b766c7add582ab6f, []int{6}
+}
+
+func (m *EnrolledService) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_EnrolledService.Unmarshal(m, b)
+}
+func (m *EnrolledService) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_EnrolledService.Marshal(b, m, deterministic)
+}
+func (m *EnrolledService) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_EnrolledService.Merge(m, src)
+}
+func (m *EnrolledService) XXX_Size() int {
+	return xxx_messageInfo_EnrolledService.Size(m)
+}
+func (m *EnrolledService) XXX_DiscardUnknown() {
+	xxx_messageInfo_EnrolledService.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_EnrolledService proto.InternalMessageInfo
+
+func (m *EnrolledService) GetCloudProduct() string {
+	if m != nil {
+		return m.CloudProduct
+	}
+	return ""
+}
+
+func (m *EnrolledService) GetEnrollmentLevel() EnrollmentLevel {
+	if m != nil {
+		return m.EnrollmentLevel
+	}
+	return EnrollmentLevel_ENROLLMENT_LEVEL_UNSPECIFIED
+}
+
+// Settings on a Project/Folder/Organization related to Access Approval.
+type AccessApprovalSettings struct {
+	// The resource name of the settings. Format is one of:
+	// <ol>
+	//   <li>"projects/{project_id}/accessApprovalSettings"</li>
+	//   <li>"folders/{folder_id}/accessApprovalSettings"</li>
+	//   <li>"organizations/{organization_id}/accessApprovalSettings"</li>
+	// <ol>
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+	// A list of email addresses to which notifications relating to approval
+	// requests should be sent. Notifications relating to a resource will be sent
+	// to all emails in the settings of ancestor resources of that resource. A
+	// maximum of 50 email addresses are allowed.
+	NotificationEmails []string `protobuf:"bytes,2,rep,name=notification_emails,json=notificationEmails,proto3" json:"notification_emails,omitempty"`
+	// A list of Google Cloud Services for which the given resource has Access
+	// Approval enrolled. Access requests for the resource given by name against
+	// any of these services contained here will be required to have explicit
+	// approval. If name refers to an organization, enrollment can be done for
+	// individual services. If name refers to a folder or project, enrollment can
+	// only be done on an all or nothing basis.
+	//
+	// If a cloud_product is repeated in this list, the first entry will be
+	// honored and all following entries will be discarded. A maximum of 10
+	// enrolled services will be enforced, to be expanded as the set of supported
+	// services is expanded.
+	EnrolledServices []*EnrolledService `protobuf:"bytes,3,rep,name=enrolled_services,json=enrolledServices,proto3" json:"enrolled_services,omitempty"`
+	// Output only. This field is read only (not settable via
+	// UpdateAccessAccessApprovalSettings method). If the field is true, that
+	// indicates that at least one service is enrolled for Access Approval in one
+	// or more ancestors of the Project or Folder (this field will always be
+	// unset for the organization since organizations do not have ancestors).
+	EnrolledAncestor     bool     `protobuf:"varint,4,opt,name=enrolled_ancestor,json=enrolledAncestor,proto3" json:"enrolled_ancestor,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *AccessApprovalSettings) Reset()         { *m = AccessApprovalSettings{} }
+func (m *AccessApprovalSettings) String() string { return proto.CompactTextString(m) }
+func (*AccessApprovalSettings) ProtoMessage()    {}
+func (*AccessApprovalSettings) Descriptor() ([]byte, []int) {
+	return fileDescriptor_b766c7add582ab6f, []int{7}
+}
+
+func (m *AccessApprovalSettings) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_AccessApprovalSettings.Unmarshal(m, b)
+}
+func (m *AccessApprovalSettings) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_AccessApprovalSettings.Marshal(b, m, deterministic)
+}
+func (m *AccessApprovalSettings) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_AccessApprovalSettings.Merge(m, src)
+}
+func (m *AccessApprovalSettings) XXX_Size() int {
+	return xxx_messageInfo_AccessApprovalSettings.Size(m)
+}
+func (m *AccessApprovalSettings) XXX_DiscardUnknown() {
+	xxx_messageInfo_AccessApprovalSettings.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_AccessApprovalSettings proto.InternalMessageInfo
+
+func (m *AccessApprovalSettings) GetName() string {
+	if m != nil {
+		return m.Name
+	}
+	return ""
+}
+
+func (m *AccessApprovalSettings) GetNotificationEmails() []string {
+	if m != nil {
+		return m.NotificationEmails
+	}
+	return nil
+}
+
+func (m *AccessApprovalSettings) GetEnrolledServices() []*EnrolledService {
+	if m != nil {
+		return m.EnrolledServices
+	}
+	return nil
+}
+
+func (m *AccessApprovalSettings) GetEnrolledAncestor() bool {
+	if m != nil {
+		return m.EnrolledAncestor
+	}
+	return false
+}
+
+// Request to list approval requests.
+type ListApprovalRequestsMessage struct {
+	// The parent resource. This may be "projects/{project_id}",
+	// "folders/{folder_id}", or "organizations/{organization_id}".
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
+	// A filter on the type of approval requests to retrieve. Must be one of the
+	// following values:
+	// <ol>
+	//   <li>[not set]: Requests that are pending or have active approvals.</li>
+	//   <li>ALL: All requests.</li>
+	//   <li>PENDING: Only pending requests.</li>
+	//   <li>ACTIVE: Only active (i.e. currently approved) requests.</li>
+	//   <li>DISMISSED: Only dismissed (including expired) requests.</li>
+	// </ol>
+	Filter string `protobuf:"bytes,2,opt,name=filter,proto3" json:"filter,omitempty"`
+	// Requested page size.
+	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
+	// A token identifying the page of results to return.
+	PageToken            string   `protobuf:"bytes,4,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 *ListApprovalRequestsMessage) Reset()         { *m = ListApprovalRequestsMessage{} }
+func (m *ListApprovalRequestsMessage) String() string { return proto.CompactTextString(m) }
+func (*ListApprovalRequestsMessage) ProtoMessage()    {}
+func (*ListApprovalRequestsMessage) Descriptor() ([]byte, []int) {
+	return fileDescriptor_b766c7add582ab6f, []int{8}
+}
+
+func (m *ListApprovalRequestsMessage) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_ListApprovalRequestsMessage.Unmarshal(m, b)
+}
+func (m *ListApprovalRequestsMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_ListApprovalRequestsMessage.Marshal(b, m, deterministic)
+}
+func (m *ListApprovalRequestsMessage) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_ListApprovalRequestsMessage.Merge(m, src)
+}
+func (m *ListApprovalRequestsMessage) XXX_Size() int {
+	return xxx_messageInfo_ListApprovalRequestsMessage.Size(m)
+}
+func (m *ListApprovalRequestsMessage) XXX_DiscardUnknown() {
+	xxx_messageInfo_ListApprovalRequestsMessage.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ListApprovalRequestsMessage proto.InternalMessageInfo
+
+func (m *ListApprovalRequestsMessage) GetParent() string {
+	if m != nil {
+		return m.Parent
+	}
+	return ""
+}
+
+func (m *ListApprovalRequestsMessage) GetFilter() string {
+	if m != nil {
+		return m.Filter
+	}
+	return ""
+}
+
+func (m *ListApprovalRequestsMessage) GetPageSize() int32 {
+	if m != nil {
+		return m.PageSize
+	}
+	return 0
+}
+
+func (m *ListApprovalRequestsMessage) GetPageToken() string {
+	if m != nil {
+		return m.PageToken
+	}
+	return ""
+}
+
+// Response to listing of ApprovalRequest objects.
+type ListApprovalRequestsResponse struct {
+	// Approval request details.
+	ApprovalRequests []*ApprovalRequest `protobuf:"bytes,1,rep,name=approval_requests,json=approvalRequests,proto3" json:"approval_requests,omitempty"`
+	// Token to retrieve the next page of results, or empty if there are no more.
+	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *ListApprovalRequestsResponse) Reset()         { *m = ListApprovalRequestsResponse{} }
+func (m *ListApprovalRequestsResponse) String() string { return proto.CompactTextString(m) }
+func (*ListApprovalRequestsResponse) ProtoMessage()    {}
+func (*ListApprovalRequestsResponse) Descriptor() ([]byte, []int) {
+	return fileDescriptor_b766c7add582ab6f, []int{9}
+}
+
+func (m *ListApprovalRequestsResponse) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_ListApprovalRequestsResponse.Unmarshal(m, b)
+}
+func (m *ListApprovalRequestsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_ListApprovalRequestsResponse.Marshal(b, m, deterministic)
+}
+func (m *ListApprovalRequestsResponse) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_ListApprovalRequestsResponse.Merge(m, src)
+}
+func (m *ListApprovalRequestsResponse) XXX_Size() int {
+	return xxx_messageInfo_ListApprovalRequestsResponse.Size(m)
+}
+func (m *ListApprovalRequestsResponse) XXX_DiscardUnknown() {
+	xxx_messageInfo_ListApprovalRequestsResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ListApprovalRequestsResponse proto.InternalMessageInfo
+
+func (m *ListApprovalRequestsResponse) GetApprovalRequests() []*ApprovalRequest {
+	if m != nil {
+		return m.ApprovalRequests
+	}
+	return nil
+}
+
+func (m *ListApprovalRequestsResponse) GetNextPageToken() string {
+	if m != nil {
+		return m.NextPageToken
+	}
+	return ""
+}
+
+// Request to get an approval request.
+type GetApprovalRequestMessage struct {
+	// Name of the approval request to retrieve.
+	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 *GetApprovalRequestMessage) Reset()         { *m = GetApprovalRequestMessage{} }
+func (m *GetApprovalRequestMessage) String() string { return proto.CompactTextString(m) }
+func (*GetApprovalRequestMessage) ProtoMessage()    {}
+func (*GetApprovalRequestMessage) Descriptor() ([]byte, []int) {
+	return fileDescriptor_b766c7add582ab6f, []int{10}
+}
+
+func (m *GetApprovalRequestMessage) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_GetApprovalRequestMessage.Unmarshal(m, b)
+}
+func (m *GetApprovalRequestMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_GetApprovalRequestMessage.Marshal(b, m, deterministic)
+}
+func (m *GetApprovalRequestMessage) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_GetApprovalRequestMessage.Merge(m, src)
+}
+func (m *GetApprovalRequestMessage) XXX_Size() int {
+	return xxx_messageInfo_GetApprovalRequestMessage.Size(m)
+}
+func (m *GetApprovalRequestMessage) XXX_DiscardUnknown() {
+	xxx_messageInfo_GetApprovalRequestMessage.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_GetApprovalRequestMessage proto.InternalMessageInfo
+
+func (m *GetApprovalRequestMessage) GetName() string {
+	if m != nil {
+		return m.Name
+	}
+	return ""
+}
+
+// Request to approve an ApprovalRequest.
+type ApproveApprovalRequestMessage struct {
+	// Name of the approval request to approve.
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+	// The expiration time of this approval.
+	ExpireTime           *timestamp.Timestamp `protobuf:"bytes,2,opt,name=expire_time,json=expireTime,proto3" json:"expire_time,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
+	XXX_unrecognized     []byte               `json:"-"`
+	XXX_sizecache        int32                `json:"-"`
+}
+
+func (m *ApproveApprovalRequestMessage) Reset()         { *m = ApproveApprovalRequestMessage{} }
+func (m *ApproveApprovalRequestMessage) String() string { return proto.CompactTextString(m) }
+func (*ApproveApprovalRequestMessage) ProtoMessage()    {}
+func (*ApproveApprovalRequestMessage) Descriptor() ([]byte, []int) {
+	return fileDescriptor_b766c7add582ab6f, []int{11}
+}
+
+func (m *ApproveApprovalRequestMessage) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_ApproveApprovalRequestMessage.Unmarshal(m, b)
+}
+func (m *ApproveApprovalRequestMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_ApproveApprovalRequestMessage.Marshal(b, m, deterministic)
+}
+func (m *ApproveApprovalRequestMessage) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_ApproveApprovalRequestMessage.Merge(m, src)
+}
+func (m *ApproveApprovalRequestMessage) XXX_Size() int {
+	return xxx_messageInfo_ApproveApprovalRequestMessage.Size(m)
+}
+func (m *ApproveApprovalRequestMessage) XXX_DiscardUnknown() {
+	xxx_messageInfo_ApproveApprovalRequestMessage.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ApproveApprovalRequestMessage proto.InternalMessageInfo
+
+func (m *ApproveApprovalRequestMessage) GetName() string {
+	if m != nil {
+		return m.Name
+	}
+	return ""
+}
+
+func (m *ApproveApprovalRequestMessage) GetExpireTime() *timestamp.Timestamp {
+	if m != nil {
+		return m.ExpireTime
+	}
+	return nil
+}
+
+// Request to dismiss an approval request.
+type DismissApprovalRequestMessage struct {
+	// Name of the ApprovalRequest to dismiss.
+	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 *DismissApprovalRequestMessage) Reset()         { *m = DismissApprovalRequestMessage{} }
+func (m *DismissApprovalRequestMessage) String() string { return proto.CompactTextString(m) }
+func (*DismissApprovalRequestMessage) ProtoMessage()    {}
+func (*DismissApprovalRequestMessage) Descriptor() ([]byte, []int) {
+	return fileDescriptor_b766c7add582ab6f, []int{12}
+}
+
+func (m *DismissApprovalRequestMessage) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_DismissApprovalRequestMessage.Unmarshal(m, b)
+}
+func (m *DismissApprovalRequestMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_DismissApprovalRequestMessage.Marshal(b, m, deterministic)
+}
+func (m *DismissApprovalRequestMessage) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_DismissApprovalRequestMessage.Merge(m, src)
+}
+func (m *DismissApprovalRequestMessage) XXX_Size() int {
+	return xxx_messageInfo_DismissApprovalRequestMessage.Size(m)
+}
+func (m *DismissApprovalRequestMessage) XXX_DiscardUnknown() {
+	xxx_messageInfo_DismissApprovalRequestMessage.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_DismissApprovalRequestMessage proto.InternalMessageInfo
+
+func (m *DismissApprovalRequestMessage) GetName() string {
+	if m != nil {
+		return m.Name
+	}
+	return ""
+}
+
+// Request to get access approval settings.
+type GetAccessApprovalSettingsMessage struct {
+	// Name of the AccessApprovalSettings to retrieve.
+	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 *GetAccessApprovalSettingsMessage) Reset()         { *m = GetAccessApprovalSettingsMessage{} }
+func (m *GetAccessApprovalSettingsMessage) String() string { return proto.CompactTextString(m) }
+func (*GetAccessApprovalSettingsMessage) ProtoMessage()    {}
+func (*GetAccessApprovalSettingsMessage) Descriptor() ([]byte, []int) {
+	return fileDescriptor_b766c7add582ab6f, []int{13}
+}
+
+func (m *GetAccessApprovalSettingsMessage) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_GetAccessApprovalSettingsMessage.Unmarshal(m, b)
+}
+func (m *GetAccessApprovalSettingsMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_GetAccessApprovalSettingsMessage.Marshal(b, m, deterministic)
+}
+func (m *GetAccessApprovalSettingsMessage) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_GetAccessApprovalSettingsMessage.Merge(m, src)
+}
+func (m *GetAccessApprovalSettingsMessage) XXX_Size() int {
+	return xxx_messageInfo_GetAccessApprovalSettingsMessage.Size(m)
+}
+func (m *GetAccessApprovalSettingsMessage) XXX_DiscardUnknown() {
+	xxx_messageInfo_GetAccessApprovalSettingsMessage.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_GetAccessApprovalSettingsMessage proto.InternalMessageInfo
+
+func (m *GetAccessApprovalSettingsMessage) GetName() string {
+	if m != nil {
+		return m.Name
+	}
+	return ""
+}
+
+// Request to update access approval settings.
+type UpdateAccessApprovalSettingsMessage struct {
+	// The new AccessApprovalSettings.
+	Settings *AccessApprovalSettings `protobuf:"bytes,1,opt,name=settings,proto3" json:"settings,omitempty"`
+	// The update mask applies to the settings. Only the top level fields of
+	// AccessApprovalSettings (notification_emails & enrolled_services) are
+	// supported. For each field, if it is included, the currently stored value
+	// will be entirely overwritten with the value of the field passed in this
+	// request.
+	//
+	// For the `FieldMask` definition, see
+	// https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask
+	// If this field is left unset, only the notification_emails field will be
+	// updated.
+	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
+	XXX_unrecognized     []byte                `json:"-"`
+	XXX_sizecache        int32                 `json:"-"`
+}
+
+func (m *UpdateAccessApprovalSettingsMessage) Reset()         { *m = UpdateAccessApprovalSettingsMessage{} }
+func (m *UpdateAccessApprovalSettingsMessage) String() string { return proto.CompactTextString(m) }
+func (*UpdateAccessApprovalSettingsMessage) ProtoMessage()    {}
+func (*UpdateAccessApprovalSettingsMessage) Descriptor() ([]byte, []int) {
+	return fileDescriptor_b766c7add582ab6f, []int{14}
+}
+
+func (m *UpdateAccessApprovalSettingsMessage) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_UpdateAccessApprovalSettingsMessage.Unmarshal(m, b)
+}
+func (m *UpdateAccessApprovalSettingsMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_UpdateAccessApprovalSettingsMessage.Marshal(b, m, deterministic)
+}
+func (m *UpdateAccessApprovalSettingsMessage) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_UpdateAccessApprovalSettingsMessage.Merge(m, src)
+}
+func (m *UpdateAccessApprovalSettingsMessage) XXX_Size() int {
+	return xxx_messageInfo_UpdateAccessApprovalSettingsMessage.Size(m)
+}
+func (m *UpdateAccessApprovalSettingsMessage) XXX_DiscardUnknown() {
+	xxx_messageInfo_UpdateAccessApprovalSettingsMessage.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_UpdateAccessApprovalSettingsMessage proto.InternalMessageInfo
+
+func (m *UpdateAccessApprovalSettingsMessage) GetSettings() *AccessApprovalSettings {
+	if m != nil {
+		return m.Settings
+	}
+	return nil
+}
+
+func (m *UpdateAccessApprovalSettingsMessage) GetUpdateMask() *field_mask.FieldMask {
+	if m != nil {
+		return m.UpdateMask
+	}
+	return nil
+}
+
+// Request to delete access approval settings.
+type DeleteAccessApprovalSettingsMessage struct {
+	// Name of the AccessApprovalSettings to delete.
+	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 *DeleteAccessApprovalSettingsMessage) Reset()         { *m = DeleteAccessApprovalSettingsMessage{} }
+func (m *DeleteAccessApprovalSettingsMessage) String() string { return proto.CompactTextString(m) }
+func (*DeleteAccessApprovalSettingsMessage) ProtoMessage()    {}
+func (*DeleteAccessApprovalSettingsMessage) Descriptor() ([]byte, []int) {
+	return fileDescriptor_b766c7add582ab6f, []int{15}
+}
+
+func (m *DeleteAccessApprovalSettingsMessage) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_DeleteAccessApprovalSettingsMessage.Unmarshal(m, b)
+}
+func (m *DeleteAccessApprovalSettingsMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_DeleteAccessApprovalSettingsMessage.Marshal(b, m, deterministic)
+}
+func (m *DeleteAccessApprovalSettingsMessage) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_DeleteAccessApprovalSettingsMessage.Merge(m, src)
+}
+func (m *DeleteAccessApprovalSettingsMessage) XXX_Size() int {
+	return xxx_messageInfo_DeleteAccessApprovalSettingsMessage.Size(m)
+}
+func (m *DeleteAccessApprovalSettingsMessage) XXX_DiscardUnknown() {
+	xxx_messageInfo_DeleteAccessApprovalSettingsMessage.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_DeleteAccessApprovalSettingsMessage proto.InternalMessageInfo
+
+func (m *DeleteAccessApprovalSettingsMessage) GetName() string {
+	if m != nil {
+		return m.Name
+	}
+	return ""
+}
+
+func init() {
+	proto.RegisterEnum("google.cloud.accessapproval.v1.EnrollmentLevel", EnrollmentLevel_name, EnrollmentLevel_value)
+	proto.RegisterEnum("google.cloud.accessapproval.v1.AccessReason_Type", AccessReason_Type_name, AccessReason_Type_value)
+	proto.RegisterType((*AccessLocations)(nil), "google.cloud.accessapproval.v1.AccessLocations")
+	proto.RegisterType((*AccessReason)(nil), "google.cloud.accessapproval.v1.AccessReason")
+	proto.RegisterType((*ApproveDecision)(nil), "google.cloud.accessapproval.v1.ApproveDecision")
+	proto.RegisterType((*DismissDecision)(nil), "google.cloud.accessapproval.v1.DismissDecision")
+	proto.RegisterType((*ResourceProperties)(nil), "google.cloud.accessapproval.v1.ResourceProperties")
+	proto.RegisterType((*ApprovalRequest)(nil), "google.cloud.accessapproval.v1.ApprovalRequest")
+	proto.RegisterType((*EnrolledService)(nil), "google.cloud.accessapproval.v1.EnrolledService")
+	proto.RegisterType((*AccessApprovalSettings)(nil), "google.cloud.accessapproval.v1.AccessApprovalSettings")
+	proto.RegisterType((*ListApprovalRequestsMessage)(nil), "google.cloud.accessapproval.v1.ListApprovalRequestsMessage")
+	proto.RegisterType((*ListApprovalRequestsResponse)(nil), "google.cloud.accessapproval.v1.ListApprovalRequestsResponse")
+	proto.RegisterType((*GetApprovalRequestMessage)(nil), "google.cloud.accessapproval.v1.GetApprovalRequestMessage")
+	proto.RegisterType((*ApproveApprovalRequestMessage)(nil), "google.cloud.accessapproval.v1.ApproveApprovalRequestMessage")
+	proto.RegisterType((*DismissApprovalRequestMessage)(nil), "google.cloud.accessapproval.v1.DismissApprovalRequestMessage")
+	proto.RegisterType((*GetAccessApprovalSettingsMessage)(nil), "google.cloud.accessapproval.v1.GetAccessApprovalSettingsMessage")
+	proto.RegisterType((*UpdateAccessApprovalSettingsMessage)(nil), "google.cloud.accessapproval.v1.UpdateAccessApprovalSettingsMessage")
+	proto.RegisterType((*DeleteAccessApprovalSettingsMessage)(nil), "google.cloud.accessapproval.v1.DeleteAccessApprovalSettingsMessage")
+}
+
+func init() {
+	proto.RegisterFile("google/cloud/accessapproval/v1/accessapproval.proto", fileDescriptor_b766c7add582ab6f)
+}
+
+var fileDescriptor_b766c7add582ab6f = []byte{
+	// 1567 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x58, 0xcf, 0x6f, 0x1b, 0x45,
+	0x14, 0xee, 0xda, 0x69, 0x9b, 0x4c, 0xd3, 0xc6, 0x9d, 0x84, 0xd4, 0x38, 0x49, 0x89, 0x36, 0x12,
+	0x94, 0xd0, 0x7a, 0x9b, 0xa4, 0x54, 0x34, 0x25, 0x52, 0xf3, 0x63, 0x1b, 0xa2, 0x3a, 0x89, 0xd9,
+	0x38, 0xad, 0x88, 0x90, 0x96, 0xed, 0x7a, 0xec, 0x2c, 0x5d, 0xef, 0x2c, 0x3b, 0x63, 0xa7, 0x29,
+	0xea, 0x85, 0x03, 0x52, 0x0f, 0x95, 0x50, 0x39, 0x20, 0xb8, 0x21, 0x21, 0x71, 0x43, 0xe2, 0x82,
+	0xc4, 0x9d, 0x13, 0xdc, 0xda, 0x7f, 0x80, 0x03, 0xe2, 0x86, 0xc4, 0x9f, 0x80, 0x76, 0x66, 0x76,
+	0xbd, 0x59, 0x6f, 0xec, 0x75, 0x41, 0xdc, 0xb2, 0xef, 0xbd, 0xef, 0x9b, 0xf7, 0xbe, 0x79, 0x6f,
+	0x66, 0x62, 0xb0, 0x50, 0xc7, 0xb8, 0x6e, 0x23, 0xc5, 0xb4, 0x71, 0xb3, 0xaa, 0x18, 0xa6, 0x89,
+	0x08, 0x31, 0x5c, 0xd7, 0xc3, 0x2d, 0xc3, 0x56, 0x5a, 0x73, 0x31, 0x4b, 0xd1, 0xf5, 0x30, 0xc5,
+	0xf0, 0x22, 0x07, 0x15, 0x19, 0xa8, 0x18, 0x0b, 0x69, 0xcd, 0x15, 0x26, 0x05, 0xa9, 0xe1, 0x5a,
+	0x8a, 0xe1, 0x38, 0x98, 0x1a, 0xd4, 0xc2, 0x0e, 0xe1, 0xe8, 0xc2, 0x6b, 0x11, 0x6f, 0xcd, 0x42,
+	0x76, 0x55, 0xbf, 0x8f, 0xf6, 0x8d, 0x96, 0x85, 0x3d, 0x11, 0x30, 0x21, 0x02, 0xd8, 0xd7, 0xfd,
+	0x66, 0x4d, 0x41, 0x0d, 0x97, 0x1e, 0x0a, 0xe7, 0x74, 0xdc, 0xc9, 0x29, 0x1a, 0x06, 0x79, 0x10,
+	0xe3, 0x0f, 0x23, 0xa8, 0xd5, 0x40, 0x84, 0x1a, 0x0d, 0x57, 0x04, 0x5c, 0x88, 0x24, 0x60, 0xda,
+	0x16, 0x72, 0x28, 0x77, 0xc8, 0xdf, 0x48, 0x60, 0x64, 0x99, 0x55, 0x53, 0xc2, 0x26, 0xcf, 0x19,
+	0xbe, 0x03, 0xf2, 0xae, 0x67, 0x39, 0xa6, 0xe5, 0x1a, 0xb6, 0x8e, 0x6b, 0x35, 0xcb, 0x44, 0xba,
+	0x89, 0x9b, 0x0e, 0xf5, 0x0e, 0xf3, 0xd2, 0xb4, 0x74, 0x69, 0x48, 0x1b, 0x0f, 0xfd, 0xdb, 0xcc,
+	0xbd, 0xca, 0xbd, 0x70, 0x13, 0xcc, 0xb4, 0x91, 0xee, 0xfe, 0x21, 0xb1, 0x4c, 0xc3, 0xd6, 0x6d,
+	0xc1, 0x1c, 0x92, 0x64, 0x18, 0xc9, 0x74, 0x18, 0x5a, 0x16, 0x91, 0x41, 0x0a, 0x82, 0x4e, 0xfe,
+	0x53, 0x02, 0xc3, 0x3c, 0x39, 0x0d, 0x19, 0x04, 0x3b, 0x50, 0x05, 0x03, 0xf4, 0xd0, 0x45, 0x2c,
+	0x8b, 0x73, 0xf3, 0x73, 0xc5, 0xee, 0x9b, 0x52, 0x8c, 0x62, 0x8b, 0x95, 0x43, 0x17, 0x69, 0x0c,
+	0x0e, 0xc7, 0xc1, 0xa9, 0x2a, 0xa2, 0x86, 0x65, 0x8b, 0x4c, 0xc4, 0x97, 0x7c, 0x00, 0x06, 0xfc,
+	0x28, 0x38, 0x06, 0x72, 0x95, 0x0f, 0xca, 0xaa, 0xbe, 0xbb, 0xb5, 0x53, 0x56, 0x57, 0x37, 0x6e,
+	0x6f, 0xa8, 0x6b, 0xb9, 0x13, 0xf0, 0x22, 0x28, 0xac, 0xee, 0xee, 0x54, 0xb6, 0x37, 0x55, 0x4d,
+	0xdf, 0xd8, 0xda, 0xa8, 0x6c, 0x2c, 0x57, 0xd4, 0x35, 0x7d, 0x67, 0xb7, 0x5c, 0xde, 0xd6, 0x2a,
+	0x39, 0x09, 0x4e, 0x82, 0xfc, 0xfa, 0xf6, 0xf6, 0x7a, 0x49, 0x8d, 0x7a, 0x55, 0xed, 0xee, 0xc6,
+	0xaa, 0x9a, 0xcb, 0xc0, 0x09, 0x70, 0xa1, 0xc3, 0xab, 0xa9, 0x77, 0x37, 0xd4, 0x7b, 0xb9, 0xac,
+	0xfc, 0xd4, 0xdf, 0x05, 0x96, 0x38, 0x5a, 0x43, 0xa6, 0x45, 0x2c, 0xec, 0xc0, 0x25, 0x30, 0xcc,
+	0x6b, 0x41, 0xba, 0xbf, 0x9b, 0xac, 0xe6, 0x33, 0xf3, 0x85, 0xa0, 0xe6, 0x60, 0xab, 0x8b, 0x95,
+	0x60, 0xab, 0xb5, 0x33, 0x22, 0xde, 0xb7, 0xc0, 0x9b, 0xe0, 0x0c, 0x7a, 0xe8, 0x5a, 0x9e, 0x40,
+	0x67, 0x7a, 0xa2, 0x01, 0x0f, 0xf7, 0x0d, 0x72, 0x19, 0x8c, 0xac, 0x59, 0xa4, 0x61, 0x11, 0x12,
+	0x4d, 0xa7, 0xca, 0x4d, 0xa9, 0xd3, 0x11, 0xf1, 0x8c, 0x71, 0x1d, 0x40, 0x0d, 0x11, 0xdc, 0xf4,
+	0x4c, 0x54, 0xf6, 0xb0, 0x8b, 0x3c, 0x6a, 0x21, 0x02, 0xe7, 0xc0, 0x18, 0x7a, 0x68, 0xda, 0xcd,
+	0x2a, 0x22, 0x7a, 0x15, 0x11, 0x13, 0x39, 0x55, 0xc3, 0xa1, 0x84, 0x91, 0x0f, 0x6a, 0xa3, 0x81,
+	0x6f, 0xad, 0xed, 0x92, 0x7f, 0x39, 0x19, 0x48, 0x65, 0xd8, 0x1a, 0xfa, 0xa4, 0x89, 0x08, 0x85,
+	0x10, 0x0c, 0x38, 0x86, 0xc8, 0x69, 0x48, 0x63, 0x7f, 0xc3, 0xeb, 0xe0, 0x82, 0xc7, 0xdd, 0xa8,
+	0xaa, 0x7b, 0x62, 0x69, 0x9d, 0x85, 0xf1, 0x4d, 0x7f, 0x25, 0x74, 0x07, 0x89, 0x6d, 0xf9, 0xb8,
+	0x16, 0x98, 0x4a, 0xc0, 0xb9, 0x61, 0xce, 0xf9, 0x21, 0x56, 0xf8, 0x7c, 0xaf, 0xde, 0xeb, 0xac,
+	0x56, 0x9b, 0xe8, 0x58, 0x31, 0x22, 0xc5, 0x3d, 0x90, 0x8b, 0xae, 0xeb, 0xb7, 0x6c, 0x3e, 0xcb,
+	0x96, 0xba, 0xdc, 0x4f, 0x9b, 0x6b, 0x23, 0x91, 0x45, 0xd8, 0xcc, 0x7c, 0x04, 0x46, 0xdb, 0xc4,
+	0xc1, 0x28, 0x92, 0xfc, 0x00, 0xe3, 0x56, 0xd2, 0x71, 0x87, 0x67, 0x83, 0x06, 0x43, 0xae, 0xf6,
+	0x79, 0xb1, 0x04, 0x86, 0x85, 0x95, 0xb7, 0xc6, 0xc9, 0xde, 0xad, 0x21, 0xe2, 0x59, 0xa7, 0x6e,
+	0x82, 0xb1, 0x76, 0x82, 0xac, 0x09, 0x19, 0x6f, 0xfe, 0x54, 0x4f, 0x9a, 0x76, 0x61, 0x6a, 0x08,
+	0x83, 0x77, 0xc0, 0x69, 0x31, 0x07, 0xf9, 0xd3, 0x29, 0x6b, 0x3c, 0x3a, 0x79, 0xef, 0x9d, 0xd0,
+	0x02, 0x06, 0x9f, 0x4c, 0x74, 0x71, 0x7e, 0x30, 0x1d, 0x59, 0x6c, 0x6e, 0x7c, 0x32, 0xc1, 0xb0,
+	0x02, 0xc0, 0x60, 0x55, 0x98, 0xe5, 0x67, 0x12, 0x18, 0x51, 0x1d, 0x0f, 0xdb, 0x36, 0xaa, 0xee,
+	0x20, 0xaf, 0x65, 0x99, 0x08, 0xce, 0x80, 0xb3, 0x8c, 0xd5, 0xef, 0xb6, 0x6a, 0xd3, 0xa4, 0xa2,
+	0x9f, 0x87, 0x99, 0xb1, 0xcc, 0x6d, 0x70, 0x0f, 0xe4, 0x10, 0xc3, 0x35, 0x90, 0x43, 0x75, 0x1b,
+	0xb5, 0x10, 0x3f, 0xc5, 0xce, 0xf5, 0x4e, 0x4d, 0x0d, 0x71, 0x25, 0x1f, 0xa6, 0x8d, 0xa0, 0xa3,
+	0x06, 0xf9, 0x2f, 0x09, 0x8c, 0xf3, 0x0d, 0x0f, 0x26, 0x6c, 0x07, 0x51, 0x6a, 0x39, 0x75, 0x92,
+	0x38, 0x62, 0x0a, 0x18, 0x75, 0x30, 0xb5, 0x6a, 0x96, 0x38, 0xde, 0x51, 0xc3, 0xb0, 0x6c, 0x92,
+	0xcf, 0x4c, 0x67, 0x2f, 0x0d, 0x69, 0x30, 0xea, 0x52, 0x99, 0x07, 0x7e, 0x08, 0xce, 0x23, 0x51,
+	0xb3, 0x4e, 0x78, 0xd1, 0x24, 0x9f, 0x9d, 0xce, 0xa6, 0xd1, 0x35, 0x26, 0x96, 0x96, 0x43, 0x47,
+	0x0d, 0x04, 0x5e, 0x8d, 0xb0, 0x1b, 0x8e, 0x89, 0x08, 0xc5, 0x1e, 0x6b, 0xf3, 0xc1, 0x95, 0xec,
+	0xef, 0xcb, 0xd9, 0x36, 0x62, 0x59, 0x38, 0xe5, 0x27, 0x12, 0x98, 0x28, 0x59, 0x84, 0xc6, 0xce,
+	0x13, 0xb2, 0xe9, 0xaf, 0x5d, 0x67, 0xf7, 0x84, 0x6b, 0x78, 0xc8, 0x09, 0x76, 0x42, 0x7c, 0xf9,
+	0xf6, 0x9a, 0x65, 0x53, 0xe4, 0x05, 0xf7, 0x07, 0xff, 0x82, 0x13, 0x60, 0xc8, 0x35, 0xea, 0x48,
+	0x27, 0xd6, 0x23, 0xc4, 0x86, 0xf7, 0xa4, 0x36, 0xe8, 0x1b, 0x76, 0xac, 0x47, 0x08, 0x4e, 0x01,
+	0xc0, 0x9c, 0x14, 0x3f, 0x40, 0x0e, 0xcb, 0x6b, 0x48, 0x63, 0xe1, 0x15, 0xdf, 0x20, 0x7f, 0x27,
+	0x81, 0xc9, 0xa4, 0x5c, 0x34, 0x44, 0x5c, 0xec, 0x10, 0xe4, 0x8b, 0x17, 0xe8, 0xa1, 0x8b, 0xbe,
+	0xf7, 0x0f, 0xca, 0x6c, 0xfa, 0x0e, 0x0f, 0x49, 0xb5, 0x9c, 0x11, 0x5b, 0x05, 0xbe, 0x0e, 0x46,
+	0x1c, 0xf4, 0x90, 0xea, 0x91, 0x14, 0x79, 0x6d, 0x67, 0x7d, 0x73, 0x39, 0x4c, 0x53, 0x01, 0xaf,
+	0xae, 0xa3, 0x78, 0x92, 0x81, 0x5e, 0x09, 0x4d, 0x22, 0xbb, 0x60, 0x4a, 0xcc, 0x57, 0x7a, 0xd0,
+	0xbf, 0xbb, 0xbc, 0x16, 0xc0, 0x94, 0x18, 0xc2, 0x3e, 0xd2, 0xbc, 0x0e, 0xa6, 0xfd, 0xba, 0x12,
+	0x9b, 0xbf, 0x1b, 0xee, 0x27, 0x09, 0xcc, 0xec, 0xba, 0x55, 0x83, 0xa2, 0xee, 0x58, 0x0d, 0x0c,
+	0x12, 0x61, 0x12, 0x57, 0xe7, 0xf5, 0x74, 0x47, 0x6f, 0x9c, 0x50, 0x0b, 0x79, 0x7c, 0x95, 0x9a,
+	0x6c, 0x69, 0xf6, 0x14, 0x3c, 0x56, 0xa5, 0xdb, 0xfe, 0x6b, 0x71, 0xd3, 0x20, 0x0f, 0x34, 0xc0,
+	0xc3, 0xfd, 0xbf, 0xe5, 0x1b, 0x60, 0x66, 0x0d, 0xd9, 0xa8, 0x57, 0xde, 0x09, 0x35, 0xcf, 0xae,
+	0x04, 0x47, 0x57, 0x78, 0x72, 0xc0, 0x69, 0x30, 0xa9, 0x6e, 0x69, 0xdb, 0xa5, 0xd2, 0xa6, 0xba,
+	0x55, 0xd1, 0x4b, 0xea, 0x5d, 0xb5, 0x14, 0x7b, 0x3d, 0x9d, 0x05, 0x43, 0x2b, 0xa5, 0xed, 0xd5,
+	0x3b, 0xfa, 0x72, 0xa9, 0x94, 0x93, 0xe6, 0x5f, 0x9c, 0x07, 0xe7, 0x8e, 0xae, 0x0c, 0xbf, 0xcd,
+	0x80, 0xb1, 0xa4, 0x09, 0x80, 0x37, 0x7b, 0x29, 0xd5, 0x65, 0x86, 0x0b, 0xef, 0xbe, 0x0c, 0x38,
+	0x18, 0x3a, 0xf9, 0xa9, 0xf4, 0xd9, 0x8b, 0x3f, 0xbe, 0xcc, 0x7c, 0x2e, 0xc1, 0x4b, 0xfe, 0xbf,
+	0x06, 0x9f, 0xf2, 0x03, 0x60, 0xc9, 0xf5, 0xf0, 0xc7, 0xc8, 0xa4, 0x44, 0x99, 0x7d, 0xac, 0xc4,
+	0x47, 0x69, 0xef, 0x4d, 0xf8, 0x46, 0x34, 0xb6, 0x86, 0xed, 0x2a, 0xf2, 0x92, 0x43, 0x15, 0x78,
+	0x25, 0x1a, 0x8a, 0xbd, 0xba, 0xe1, 0x58, 0x8f, 0xf8, 0xb5, 0x9a, 0x04, 0x80, 0x5f, 0x64, 0x00,
+	0xec, 0x9c, 0x3f, 0x78, 0xa3, 0x57, 0x91, 0xc7, 0xce, 0x6c, 0xa1, 0xdf, 0xb3, 0xa3, 0x43, 0x12,
+	0xbf, 0x25, 0x22, 0x82, 0x74, 0xe4, 0xac, 0xcc, 0x3e, 0x0e, 0x25, 0x61, 0xb1, 0xa1, 0x20, 0x89,
+	0xa1, 0x81, 0x24, 0x2c, 0x34, 0x26, 0x48, 0x12, 0x00, 0xfe, 0x9c, 0x01, 0xe3, 0xc9, 0x27, 0x0c,
+	0x5c, 0x4a, 0x79, 0xf3, 0xff, 0x57, 0xd2, 0xfc, 0xc0, 0xa5, 0xf9, 0x5e, 0x92, 0xaf, 0xa6, 0x95,
+	0x66, 0x51, 0xbc, 0x34, 0x16, 0xa5, 0xd9, 0xbd, 0x6b, 0xb2, 0x92, 0x52, 0xa5, 0x28, 0x6a, 0x51,
+	0x7e, 0xbb, 0x2f, 0xc1, 0x22, 0x58, 0xa6, 0x5d, 0xf2, 0x59, 0xd9, 0x5b, 0xbb, 0xae, 0x67, 0xec,
+	0xff, 0xa3, 0x9d, 0x78, 0x58, 0xf5, 0xa9, 0x5d, 0x04, 0xd5, 0xb7, 0x76, 0x6d, 0x2c, 0xfc, 0x31,
+	0xc3, 0xaf, 0xc2, 0xe4, 0xf7, 0xd2, 0xad, 0x34, 0x13, 0xd9, 0xed, 0xe4, 0x2d, 0xbc, 0xe4, 0xfd,
+	0x20, 0x7f, 0xcd, 0x85, 0x7c, 0x26, 0xc1, 0xcb, 0xc9, 0x42, 0x26, 0xc2, 0x1e, 0xef, 0x5d, 0x81,
+	0x6f, 0x25, 0x2a, 0x78, 0x4c, 0xf8, 0x02, 0x9c, 0xeb, 0x22, 0x5d, 0x32, 0x08, 0xfe, 0x9d, 0x01,
+	0x93, 0xdd, 0x6e, 0x4b, 0xb8, 0xda, 0xab, 0xe8, 0x14, 0x77, 0xed, 0x4b, 0x2b, 0xf7, 0x9c, 0x2b,
+	0xf7, 0x9b, 0x34, 0xcf, 0xbb, 0x22, 0xb8, 0x68, 0x8b, 0x29, 0x25, 0x5c, 0x0c, 0xaf, 0xe6, 0xbd,
+	0x5b, 0xf3, 0xd7, 0x12, 0x28, 0x7a, 0xaa, 0x1a, 0x61, 0xb8, 0x3d, 0xbf, 0x98, 0xc0, 0x90, 0x52,
+	0xe8, 0x36, 0x0f, 0xfc, 0x2a, 0x03, 0x26, 0xbb, 0x5d, 0xf4, 0xbd, 0x25, 0x4f, 0xf1, 0x4c, 0x28,
+	0x8c, 0x77, 0xbc, 0x3a, 0xd4, 0x86, 0x4b, 0x0f, 0xdb, 0xcd, 0x38, 0xdb, 0x67, 0x33, 0xce, 0xf6,
+	0xd7, 0x8c, 0xb3, 0xfd, 0x37, 0x63, 0xe1, 0xfd, 0x5f, 0x97, 0xa7, 0x62, 0xd5, 0xf2, 0x22, 0x0c,
+	0xd7, 0x22, 0x45, 0x13, 0x37, 0x9e, 0x2f, 0x17, 0xf7, 0x29, 0x75, 0xc9, 0xa2, 0xa2, 0x1c, 0x1c,
+	0x1c, 0xc4, 0x9c, 0x8a, 0xd1, 0xa4, 0xfb, 0xfc, 0x37, 0xc4, 0x2b, 0xae, 0x6d, 0xd0, 0x1a, 0xf6,
+	0x1a, 0x2b, 0x4f, 0x24, 0x20, 0x9b, 0xb8, 0xd1, 0x43, 0xd1, 0x95, 0xd1, 0xa3, 0x62, 0x96, 0x7d,
+	0xcd, 0xca, 0xd2, 0x5e, 0x49, 0xc0, 0xea, 0xd8, 0x36, 0x9c, 0x7a, 0x11, 0x7b, 0x75, 0xa5, 0x8e,
+	0x1c, 0xa6, 0xa8, 0xd2, 0x5e, 0xfc, 0xb8, 0xdf, 0x2d, 0x6f, 0x1e, 0xb5, 0xdc, 0x3f, 0xc5, 0x80,
+	0x0b, 0xff, 0x04, 0x00, 0x00, 0xff, 0xff, 0xea, 0x70, 0x36, 0xc0, 0xef, 0x14, 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
+
+// AccessApprovalClient is the client API for AccessApproval service.
+//
+// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
+type AccessApprovalClient interface {
+	// Lists approval requests associated with a project, folder, or organization.
+	// Approval requests can be filtered by state (pending, active, dismissed).
+	// The order is reverse chronological.
+	ListApprovalRequests(ctx context.Context, in *ListApprovalRequestsMessage, opts ...grpc.CallOption) (*ListApprovalRequestsResponse, error)
+	// Gets an approval request. Returns NOT_FOUND if the request does not exist.
+	GetApprovalRequest(ctx context.Context, in *GetApprovalRequestMessage, opts ...grpc.CallOption) (*ApprovalRequest, error)
+	// Approves a request and returns the updated ApprovalRequest.
+	//
+	// Returns NOT_FOUND if the request does not exist. Returns
+	// FAILED_PRECONDITION if the request exists but is not in a pending state.
+	ApproveApprovalRequest(ctx context.Context, in *ApproveApprovalRequestMessage, opts ...grpc.CallOption) (*ApprovalRequest, error)
+	// Dismisses a request. Returns the updated ApprovalRequest.
+	//
+	// NOTE: This does not deny access to the resource if another request has been
+	// made and approved. It is equivalent in effect to ignoring the request
+	// altogether.
+	//
+	// Returns NOT_FOUND if the request does not exist.
+	//
+	// Returns FAILED_PRECONDITION if the request exists but is not in a pending
+	// state.
+	DismissApprovalRequest(ctx context.Context, in *DismissApprovalRequestMessage, opts ...grpc.CallOption) (*ApprovalRequest, error)
+	// Gets the settings associated with a project, folder, or organization.
+	GetAccessApprovalSettings(ctx context.Context, in *GetAccessApprovalSettingsMessage, opts ...grpc.CallOption) (*AccessApprovalSettings, error)
+	// Updates the settings associated with a project, folder, or organization.
+	// Settings to update are determined by the value of field_mask.
+	UpdateAccessApprovalSettings(ctx context.Context, in *UpdateAccessApprovalSettingsMessage, opts ...grpc.CallOption) (*AccessApprovalSettings, error)
+	// Deletes the settings associated with a project, folder, or organization.
+	// This will have the effect of disabling Access Approval for the project,
+	// folder, or organization, but only if all ancestors also have Access
+	// Approval disabled. If Access Approval is enabled at a higher level of the
+	// hierarchy, then Access Approval will still be enabled at this level as
+	// the settings are inherited.
+	DeleteAccessApprovalSettings(ctx context.Context, in *DeleteAccessApprovalSettingsMessage, opts ...grpc.CallOption) (*empty.Empty, error)
+}
+
+type accessApprovalClient struct {
+	cc grpc.ClientConnInterface
+}
+
+func NewAccessApprovalClient(cc grpc.ClientConnInterface) AccessApprovalClient {
+	return &accessApprovalClient{cc}
+}
+
+func (c *accessApprovalClient) ListApprovalRequests(ctx context.Context, in *ListApprovalRequestsMessage, opts ...grpc.CallOption) (*ListApprovalRequestsResponse, error) {
+	out := new(ListApprovalRequestsResponse)
+	err := c.cc.Invoke(ctx, "/google.cloud.accessapproval.v1.AccessApproval/ListApprovalRequests", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *accessApprovalClient) GetApprovalRequest(ctx context.Context, in *GetApprovalRequestMessage, opts ...grpc.CallOption) (*ApprovalRequest, error) {
+	out := new(ApprovalRequest)
+	err := c.cc.Invoke(ctx, "/google.cloud.accessapproval.v1.AccessApproval/GetApprovalRequest", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *accessApprovalClient) ApproveApprovalRequest(ctx context.Context, in *ApproveApprovalRequestMessage, opts ...grpc.CallOption) (*ApprovalRequest, error) {
+	out := new(ApprovalRequest)
+	err := c.cc.Invoke(ctx, "/google.cloud.accessapproval.v1.AccessApproval/ApproveApprovalRequest", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *accessApprovalClient) DismissApprovalRequest(ctx context.Context, in *DismissApprovalRequestMessage, opts ...grpc.CallOption) (*ApprovalRequest, error) {
+	out := new(ApprovalRequest)
+	err := c.cc.Invoke(ctx, "/google.cloud.accessapproval.v1.AccessApproval/DismissApprovalRequest", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *accessApprovalClient) GetAccessApprovalSettings(ctx context.Context, in *GetAccessApprovalSettingsMessage, opts ...grpc.CallOption) (*AccessApprovalSettings, error) {
+	out := new(AccessApprovalSettings)
+	err := c.cc.Invoke(ctx, "/google.cloud.accessapproval.v1.AccessApproval/GetAccessApprovalSettings", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *accessApprovalClient) UpdateAccessApprovalSettings(ctx context.Context, in *UpdateAccessApprovalSettingsMessage, opts ...grpc.CallOption) (*AccessApprovalSettings, error) {
+	out := new(AccessApprovalSettings)
+	err := c.cc.Invoke(ctx, "/google.cloud.accessapproval.v1.AccessApproval/UpdateAccessApprovalSettings", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *accessApprovalClient) DeleteAccessApprovalSettings(ctx context.Context, in *DeleteAccessApprovalSettingsMessage, opts ...grpc.CallOption) (*empty.Empty, error) {
+	out := new(empty.Empty)
+	err := c.cc.Invoke(ctx, "/google.cloud.accessapproval.v1.AccessApproval/DeleteAccessApprovalSettings", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+// AccessApprovalServer is the server API for AccessApproval service.
+type AccessApprovalServer interface {
+	// Lists approval requests associated with a project, folder, or organization.
+	// Approval requests can be filtered by state (pending, active, dismissed).
+	// The order is reverse chronological.
+	ListApprovalRequests(context.Context, *ListApprovalRequestsMessage) (*ListApprovalRequestsResponse, error)
+	// Gets an approval request. Returns NOT_FOUND if the request does not exist.
+	GetApprovalRequest(context.Context, *GetApprovalRequestMessage) (*ApprovalRequest, error)
+	// Approves a request and returns the updated ApprovalRequest.
+	//
+	// Returns NOT_FOUND if the request does not exist. Returns
+	// FAILED_PRECONDITION if the request exists but is not in a pending state.
+	ApproveApprovalRequest(context.Context, *ApproveApprovalRequestMessage) (*ApprovalRequest, error)
+	// Dismisses a request. Returns the updated ApprovalRequest.
+	//
+	// NOTE: This does not deny access to the resource if another request has been
+	// made and approved. It is equivalent in effect to ignoring the request
+	// altogether.
+	//
+	// Returns NOT_FOUND if the request does not exist.
+	//
+	// Returns FAILED_PRECONDITION if the request exists but is not in a pending
+	// state.
+	DismissApprovalRequest(context.Context, *DismissApprovalRequestMessage) (*ApprovalRequest, error)
+	// Gets the settings associated with a project, folder, or organization.
+	GetAccessApprovalSettings(context.Context, *GetAccessApprovalSettingsMessage) (*AccessApprovalSettings, error)
+	// Updates the settings associated with a project, folder, or organization.
+	// Settings to update are determined by the value of field_mask.
+	UpdateAccessApprovalSettings(context.Context, *UpdateAccessApprovalSettingsMessage) (*AccessApprovalSettings, error)
+	// Deletes the settings associated with a project, folder, or organization.
+	// This will have the effect of disabling Access Approval for the project,
+	// folder, or organization, but only if all ancestors also have Access
+	// Approval disabled. If Access Approval is enabled at a higher level of the
+	// hierarchy, then Access Approval will still be enabled at this level as
+	// the settings are inherited.
+	DeleteAccessApprovalSettings(context.Context, *DeleteAccessApprovalSettingsMessage) (*empty.Empty, error)
+}
+
+// UnimplementedAccessApprovalServer can be embedded to have forward compatible implementations.
+type UnimplementedAccessApprovalServer struct {
+}
+
+func (*UnimplementedAccessApprovalServer) ListApprovalRequests(ctx context.Context, req *ListApprovalRequestsMessage) (*ListApprovalRequestsResponse, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method ListApprovalRequests not implemented")
+}
+func (*UnimplementedAccessApprovalServer) GetApprovalRequest(ctx context.Context, req *GetApprovalRequestMessage) (*ApprovalRequest, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method GetApprovalRequest not implemented")
+}
+func (*UnimplementedAccessApprovalServer) ApproveApprovalRequest(ctx context.Context, req *ApproveApprovalRequestMessage) (*ApprovalRequest, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method ApproveApprovalRequest not implemented")
+}
+func (*UnimplementedAccessApprovalServer) DismissApprovalRequest(ctx context.Context, req *DismissApprovalRequestMessage) (*ApprovalRequest, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method DismissApprovalRequest not implemented")
+}
+func (*UnimplementedAccessApprovalServer) GetAccessApprovalSettings(ctx context.Context, req *GetAccessApprovalSettingsMessage) (*AccessApprovalSettings, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method GetAccessApprovalSettings not implemented")
+}
+func (*UnimplementedAccessApprovalServer) UpdateAccessApprovalSettings(ctx context.Context, req *UpdateAccessApprovalSettingsMessage) (*AccessApprovalSettings, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method UpdateAccessApprovalSettings not implemented")
+}
+func (*UnimplementedAccessApprovalServer) DeleteAccessApprovalSettings(ctx context.Context, req *DeleteAccessApprovalSettingsMessage) (*empty.Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method DeleteAccessApprovalSettings not implemented")
+}
+
+func RegisterAccessApprovalServer(s *grpc.Server, srv AccessApprovalServer) {
+	s.RegisterService(&_AccessApproval_serviceDesc, srv)
+}
+
+func _AccessApproval_ListApprovalRequests_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(ListApprovalRequestsMessage)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(AccessApprovalServer).ListApprovalRequests(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/google.cloud.accessapproval.v1.AccessApproval/ListApprovalRequests",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(AccessApprovalServer).ListApprovalRequests(ctx, req.(*ListApprovalRequestsMessage))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _AccessApproval_GetApprovalRequest_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(GetApprovalRequestMessage)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(AccessApprovalServer).GetApprovalRequest(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/google.cloud.accessapproval.v1.AccessApproval/GetApprovalRequest",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(AccessApprovalServer).GetApprovalRequest(ctx, req.(*GetApprovalRequestMessage))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _AccessApproval_ApproveApprovalRequest_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(ApproveApprovalRequestMessage)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(AccessApprovalServer).ApproveApprovalRequest(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/google.cloud.accessapproval.v1.AccessApproval/ApproveApprovalRequest",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(AccessApprovalServer).ApproveApprovalRequest(ctx, req.(*ApproveApprovalRequestMessage))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _AccessApproval_DismissApprovalRequest_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(DismissApprovalRequestMessage)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(AccessApprovalServer).DismissApprovalRequest(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/google.cloud.accessapproval.v1.AccessApproval/DismissApprovalRequest",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(AccessApprovalServer).DismissApprovalRequest(ctx, req.(*DismissApprovalRequestMessage))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _AccessApproval_GetAccessApprovalSettings_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(GetAccessApprovalSettingsMessage)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(AccessApprovalServer).GetAccessApprovalSettings(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/google.cloud.accessapproval.v1.AccessApproval/GetAccessApprovalSettings",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(AccessApprovalServer).GetAccessApprovalSettings(ctx, req.(*GetAccessApprovalSettingsMessage))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _AccessApproval_UpdateAccessApprovalSettings_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(UpdateAccessApprovalSettingsMessage)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(AccessApprovalServer).UpdateAccessApprovalSettings(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/google.cloud.accessapproval.v1.AccessApproval/UpdateAccessApprovalSettings",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(AccessApprovalServer).UpdateAccessApprovalSettings(ctx, req.(*UpdateAccessApprovalSettingsMessage))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _AccessApproval_DeleteAccessApprovalSettings_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(DeleteAccessApprovalSettingsMessage)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(AccessApprovalServer).DeleteAccessApprovalSettings(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/google.cloud.accessapproval.v1.AccessApproval/DeleteAccessApprovalSettings",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(AccessApprovalServer).DeleteAccessApprovalSettings(ctx, req.(*DeleteAccessApprovalSettingsMessage))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+var _AccessApproval_serviceDesc = grpc.ServiceDesc{
+	ServiceName: "google.cloud.accessapproval.v1.AccessApproval",
+	HandlerType: (*AccessApprovalServer)(nil),
+	Methods: []grpc.MethodDesc{
+		{
+			MethodName: "ListApprovalRequests",
+			Handler:    _AccessApproval_ListApprovalRequests_Handler,
+		},
+		{
+			MethodName: "GetApprovalRequest",
+			Handler:    _AccessApproval_GetApprovalRequest_Handler,
+		},
+		{
+			MethodName: "ApproveApprovalRequest",
+			Handler:    _AccessApproval_ApproveApprovalRequest_Handler,
+		},
+		{
+			MethodName: "DismissApprovalRequest",
+			Handler:    _AccessApproval_DismissApprovalRequest_Handler,
+		},
+		{
+			MethodName: "GetAccessApprovalSettings",
+			Handler:    _AccessApproval_GetAccessApprovalSettings_Handler,
+		},
+		{
+			MethodName: "UpdateAccessApprovalSettings",
+			Handler:    _AccessApproval_UpdateAccessApprovalSettings_Handler,
+		},
+		{
+			MethodName: "DeleteAccessApprovalSettings",
+			Handler:    _AccessApproval_DeleteAccessApprovalSettings_Handler,
+		},
+	},
+	Streams:  []grpc.StreamDesc{},
+	Metadata: "google/cloud/accessapproval/v1/accessapproval.proto",
+}
diff --git a/googleapis/cloud/redis/v1/cloud_redis.pb.go b/googleapis/cloud/redis/v1/cloud_redis.pb.go
index 2dff22d..7d26f31 100644
--- a/googleapis/cloud/redis/v1/cloud_redis.pb.go
+++ b/googleapis/cloud/redis/v1/cloud_redis.pb.go
@@ -119,6 +119,40 @@
 	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 (
@@ -163,8 +197,8 @@
 	// 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] and
-	// [alternative_location_id] fields for more details.
+	// 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"`
@@ -173,17 +207,16 @@
 	// 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] is also provided, it must be
-	// different from [location_id].
+	// 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].
+	// 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. Updating the
-	// version will perform an upgrade/downgrade to the new version. Currently,
-	// the supported values are:
+	// 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
@@ -199,9 +232,9 @@
 	// 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]
+	// 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] or [alternative_location_id] and can
+	// 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.
@@ -240,10 +273,14 @@
 	// "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"`
-	XXX_NoUnkeyedLiteral   struct{} `json:"-"`
-	XXX_unrecognized       []byte   `json:"-"`
-	XXX_sizecache          int32    `json:"-"`
+	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{} }
@@ -397,6 +434,13 @@
 	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:
@@ -408,11 +452,11 @@
 	// 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][CloudRedis.ListInstancesResponse.next_page_token]
+	// [`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 List request,
-	// if any.
+	// 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:"-"`
@@ -473,10 +517,10 @@
 	// 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".
+	// 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.
@@ -649,7 +693,7 @@
 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][CloudRedis.Instance]:
+	// fields from [Instance][google.cloud.redis.v1.Instance]:
 	//
 	//  *   `displayName`
 	//  *   `labels`
@@ -1300,6 +1344,7 @@
 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")
@@ -1328,134 +1373,139 @@
 }
 
 var fileDescriptor_a99cb3206a9deca4 = []byte{
-	// 2021 bytes of a gzipped FileDescriptorProto
+	// 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, 0x6d, 0x26, 0x5a, 0x42, 0xb4, 0x93,
-	0x84, 0x38, 0x26, 0x2b, 0x55, 0xbc, 0xb0, 0xb5, 0xb1, 0x37, 0x90, 0xb1, 0x24, 0x3b, 0x43, 0xd9,
-	0x92, 0x6b, 0xa4, 0xa4, 0x8a, 0x50, 0xd4, 0xd0, 0x96, 0xda, 0xf2, 0x60, 0x69, 0x66, 0x98, 0x69,
-	0x29, 0x71, 0x42, 0x6a, 0x29, 0x6e, 0x14, 0xc5, 0x09, 0x28, 0x0e, 0x1c, 0xd8, 0x03, 0x17, 0xa0,
-	0xb8, 0xf2, 0x01, 0xb8, 0x91, 0x23, 0xdc, 0x72, 0xa0, 0xf6, 0x00, 0x17, 0x3e, 0x02, 0x17, 0xa8,
-	0xee, 0x9e, 0x91, 0x66, 0x64, 0x0d, 0x5a, 0x2f, 0xae, 0xbd, 0x75, 0xbf, 0x7f, 0xf3, 0xfa, 0xf7,
-	0x5e, 0xf7, 0xfb, 0x49, 0x70, 0xbb, 0x6b, 0xdb, 0xdd, 0x1e, 0x29, 0xb7, 0x7b, 0xf6, 0xa0, 0x53,
-	0x76, 0x49, 0xc7, 0xf4, 0xca, 0xc3, 0x7b, 0x62, 0x6b, 0xf0, 0x6d, 0xc9, 0x71, 0x6d, 0x6a, 0xa3,
-	0xbc, 0x30, 0x2c, 0x71, 0x4d, 0x49, 0x68, 0x86, 0xf7, 0x0a, 0x5f, 0xf2, 0xfd, 0xb1, 0x63, 0x96,
-	0xb1, 0x65, 0xd9, 0x14, 0x53, 0xd3, 0xb6, 0x7c, 0xa7, 0xc2, 0x95, 0x90, 0xb6, 0xdd, 0x33, 0x89,
-	0x45, 0x7d, 0xc5, 0xf5, 0x90, 0xe2, 0xc8, 0x24, 0xbd, 0x8e, 0x71, 0x48, 0x8e, 0xf1, 0xd0, 0xb4,
-	0x5d, 0xdf, 0xe0, 0x6a, 0xc8, 0xc0, 0x25, 0x9e, 0x3d, 0x70, 0xdb, 0xc4, 0x57, 0xdd, 0xf0, 0x55,
-	0x3d, 0xdb, 0xea, 0xba, 0x03, 0xcb, 0x32, 0xad, 0x6e, 0xd9, 0x76, 0x88, 0x1b, 0xf9, 0x72, 0xd1,
-	0x37, 0xe2, 0xbb, 0xc3, 0xc1, 0x91, 0xff, 0x95, 0x3e, 0xf6, 0x4e, 0x26, 0x52, 0x18, 0x59, 0x50,
-	0xb3, 0x4f, 0x3c, 0x8a, 0xfb, 0x8e, 0x30, 0x50, 0xfe, 0x02, 0xb0, 0xa8, 0x59, 0x1e, 0xc5, 0x56,
-	0x9b, 0xa0, 0x2b, 0x30, 0x67, 0xe1, 0x3e, 0x91, 0xa5, 0xa2, 0xb4, 0x96, 0xda, 0x4e, 0x7e, 0xaa,
-	0x26, 0x74, 0x2e, 0x40, 0xef, 0x42, 0xa6, 0x63, 0x7a, 0x4e, 0x0f, 0x9f, 0x1a, 0xdc, 0x20, 0xc1,
-	0x0c, 0xf4, 0xb4, 0x2f, 0xab, 0x33, 0x93, 0x0a, 0x2c, 0xf4, 0xf0, 0x21, 0xe9, 0x79, 0x72, 0xb2,
-	0x98, 0x5c, 0x4b, 0x6f, 0x7c, 0xb5, 0x34, 0x15, 0xcb, 0x52, 0xf0, 0xb1, 0xd2, 0x1e, 0xb7, 0xae,
-	0x59, 0xd4, 0x3d, 0xd5, 0x7d, 0x57, 0x74, 0x13, 0xd2, 0x3d, 0xbb, 0xcd, 0xcf, 0x68, 0x98, 0x1d,
-	0x79, 0x2e, 0xc8, 0x43, 0xd2, 0x21, 0x90, 0x6b, 0x1d, 0xb4, 0x05, 0x57, 0x70, 0x8f, 0x12, 0xd7,
-	0xc2, 0xd4, 0x1c, 0x12, 0x23, 0xec, 0x31, 0x3f, 0xf6, 0xc8, 0x87, 0x6c, 0xf6, 0xc6, 0xce, 0x6b,
-	0xb0, 0xc4, 0x73, 0x31, 0x86, 0xc4, 0xf5, 0x4c, 0xdb, 0x92, 0xdf, 0x1a, 0xbb, 0x64, 0xb8, 0xe6,
-	0x89, 0x50, 0xa0, 0x32, 0xac, 0xb8, 0xc4, 0x23, 0xee, 0x90, 0x74, 0x0c, 0xd3, 0x31, 0x5c, 0x6c,
-	0x75, 0x89, 0x9c, 0x1a, 0x5b, 0x2f, 0x07, 0x5a, 0xcd, 0xd1, 0x99, 0x8e, 0xc1, 0x77, 0x6c, 0x7b,
-	0x54, 0x86, 0xc0, 0x26, 0xa9, 0x73, 0x01, 0x53, 0x38, 0xb6, 0x4b, 0xe5, 0x74, 0x51, 0x5a, 0x9b,
-	0xf7, 0x15, 0x4c, 0x80, 0xde, 0x87, 0xcb, 0xed, 0x81, 0xeb, 0x12, 0x8b, 0x46, 0x4e, 0x91, 0x19,
-	0x07, 0x58, 0xf1, 0xf5, 0xa1, 0x13, 0x3c, 0x84, 0x74, 0xdb, 0x25, 0x98, 0x12, 0x83, 0x15, 0x53,
-	0x5e, 0x2a, 0x4a, 0x6b, 0xe9, 0x8d, 0x42, 0x00, 0x77, 0x50, 0xe9, 0x52, 0x2b, 0xa8, 0xb4, 0x08,
-	0x04, 0xc2, 0x87, 0x49, 0xd1, 0x43, 0x98, 0xf7, 0x28, 0xa6, 0x44, 0xce, 0x16, 0xa5, 0xb5, 0xec,
-	0xc6, 0xad, 0x59, 0xa5, 0x6a, 0x32, 0x63, 0x11, 0x46, 0x38, 0xa2, 0x75, 0xc8, 0xb2, 0xc5, 0xc0,
-	0x33, 0xfa, 0xc4, 0xf3, 0x70, 0x97, 0xc8, 0xcb, 0xe3, 0x9c, 0x97, 0x84, 0x6a, 0x5f, 0x68, 0xd0,
-	0x77, 0x02, 0xc4, 0xdb, 0xb6, 0x75, 0x64, 0x76, 0x3d, 0x39, 0xc7, 0x1b, 0xe4, 0xde, 0xac, 0xaf,
-	0xea, 0x4c, 0x52, 0x11, 0x3e, 0xbc, 0x4d, 0xc2, 0x45, 0xf2, 0xe5, 0xe8, 0x01, 0xcc, 0x51, 0x93,
-	0xb8, 0xf2, 0x0a, 0x3f, 0xc9, 0xcd, 0x59, 0x31, 0x5b, 0x26, 0x71, 0xfd, 0xc6, 0x66, 0x6e, 0xe8,
-	0x0e, 0x64, 0xfb, 0xa4, 0x6f, 0xbb, 0xa7, 0x86, 0x67, 0xbe, 0x20, 0x46, 0xf7, 0x50, 0x46, 0x41,
-	0x8d, 0x12, 0x7a, 0x46, 0xa8, 0x9a, 0xe6, 0x0b, 0xb2, 0x7b, 0x88, 0x36, 0x00, 0xe1, 0x01, 0x3d,
-	0xb6, 0x5d, 0xf3, 0x05, 0xe9, 0x18, 0x16, 0xa1, 0xcf, 0x6c, 0xf7, 0x44, 0x5e, 0x1d, 0xf7, 0xc3,
-	0xca, 0x58, 0x5d, 0x17, 0x5a, 0xf4, 0x00, 0x64, 0x87, 0x75, 0x93, 0x47, 0x89, 0xd5, 0x26, 0x86,
-	0x89, 0xfb, 0x86, 0xd9, 0x21, 0x16, 0x35, 0xe9, 0xa9, 0x9c, 0x1f, 0x03, 0xf6, 0x76, 0xc8, 0x48,
-	0xc3, 0x7d, 0xcd, 0x37, 0x29, 0xdc, 0x87, 0x74, 0xe8, 0x96, 0xa0, 0x1c, 0x24, 0x4f, 0xc8, 0xa9,
-	0xb8, 0x9d, 0x3a, 0x5b, 0xa2, 0x55, 0x98, 0x1f, 0xe2, 0xde, 0x20, 0xb8, 0x90, 0x62, 0xb3, 0x99,
-	0xf8, 0x50, 0x2a, 0x7c, 0x13, 0x56, 0xce, 0xe0, 0x77, 0x9e, 0x00, 0xca, 0x2f, 0x24, 0x98, 0xe7,
-	0x75, 0x47, 0x79, 0x58, 0x69, 0xb6, 0xd4, 0x56, 0xcd, 0x78, 0x5c, 0x6f, 0x1e, 0xd4, 0x2a, 0xda,
-	0x8e, 0x56, 0xab, 0xe6, 0x2e, 0xa1, 0x0c, 0x2c, 0x56, 0xf4, 0x9a, 0xda, 0xd2, 0xea, 0xbb, 0x39,
-	0x09, 0xa5, 0x60, 0x5e, 0xaf, 0xa9, 0xd5, 0x6f, 0xe7, 0x12, 0x4c, 0xf1, 0xf8, 0xa0, 0x2a, 0x14,
-	0x49, 0xb6, 0xab, 0xd6, 0xf6, 0x6a, 0x7c, 0x37, 0x87, 0x96, 0x20, 0xa5, 0xd7, 0x0e, 0x54, 0x4d,
-	0x67, 0xdb, 0x79, 0xb4, 0x0c, 0xe9, 0x7d, 0x55, 0xab, 0xb7, 0x6a, 0x75, 0xb5, 0x5e, 0xa9, 0xe5,
-	0x16, 0x98, 0x5e, 0xdb, 0x3f, 0x68, 0xe8, 0xdc, 0x7c, 0x11, 0xe5, 0x20, 0xb3, 0xa3, 0x6a, 0x7b,
-	0x5a, 0x7d, 0xd7, 0x68, 0x3c, 0xa9, 0xe9, 0xb9, 0x94, 0xf2, 0x21, 0xcc, 0xb1, 0x1a, 0xa2, 0x55,
-	0xc8, 0xb5, 0xb4, 0x9a, 0x3e, 0x91, 0x53, 0x0a, 0xe6, 0xb7, 0xd5, 0xa6, 0x56, 0xc9, 0x49, 0x2c,
-	0x74, 0xb3, 0xa5, 0xd6, 0xab, 0xaa, 0x5e, 0x35, 0x1e, 0xa9, 0xb9, 0xe4, 0xe6, 0xf7, 0xfe, 0xa5,
-	0x7e, 0x17, 0xae, 0x89, 0x96, 0x10, 0x5d, 0x82, 0x1d, 0xd3, 0x2b, 0xb5, 0xed, 0x7e, 0x79, 0xf4,
-	0x00, 0x7e, 0xe4, 0xb8, 0xf6, 0xf7, 0x49, 0x9b, 0x7a, 0xe5, 0x97, 0xfe, 0xea, 0x55, 0x39, 0xb8,
-	0x98, 0x5e, 0xf9, 0x65, 0xb0, 0x7c, 0x55, 0x36, 0x7d, 0x0f, 0xaf, 0xfc, 0x32, 0x58, 0xbe, 0x52,
-	0x7e, 0x29, 0xc1, 0xea, 0x9e, 0xe9, 0xd1, 0x20, 0x9c, 0xa7, 0x93, 0x1f, 0x0c, 0x88, 0x47, 0x91,
-	0x0a, 0x0b, 0x0e, 0x66, 0xb7, 0xd8, 0x7f, 0x59, 0xef, 0x7c, 0xaa, 0x26, 0xfe, 0xad, 0xde, 0x80,
-	0x77, 0x47, 0xb1, 0x27, 0x33, 0x0a, 0xae, 0xbb, 0xee, 0x3b, 0xa2, 0x77, 0x20, 0xe5, 0xe0, 0x2e,
-	0xe1, 0x6d, 0xca, 0x8b, 0x35, 0xaf, 0x2f, 0x32, 0x01, 0x6b, 0x4e, 0x74, 0x0d, 0x80, 0x2b, 0xa9,
-	0x7d, 0x42, 0x2c, 0x39, 0xc9, 0x4b, 0xc9, 0xcd, 0x5b, 0x4c, 0xa0, 0x7c, 0x22, 0x41, 0x7e, 0x22,
-	0x2f, 0xcf, 0xb1, 0x2d, 0x8f, 0xa0, 0x07, 0x90, 0x1a, 0x9d, 0x44, 0x96, 0xf8, 0xb5, 0xbc, 0x3e,
-	0xe3, 0x0a, 0xe9, 0x63, 0x0f, 0xf4, 0x15, 0x58, 0xb6, 0xc8, 0x73, 0x6a, 0x84, 0x3e, 0x2e, 0xfa,
-	0x68, 0x89, 0x89, 0x0f, 0x82, 0x04, 0x50, 0x11, 0xd2, 0x03, 0xcb, 0x25, 0xb8, 0x7d, 0x8c, 0x0f,
-	0x7b, 0x84, 0x0f, 0x88, 0x94, 0x1e, 0x16, 0x29, 0x0d, 0x40, 0xbb, 0x64, 0x94, 0x60, 0x80, 0xdb,
-	0xfd, 0xc8, 0x3c, 0xba, 0xc5, 0x51, 0xbb, 0x3e, 0xa3, 0x86, 0x62, 0x62, 0x29, 0x7f, 0x96, 0x20,
-	0x5f, 0xe1, 0x2f, 0xde, 0x64, 0xd0, 0x0b, 0x28, 0xc6, 0x4d, 0x48, 0x07, 0x20, 0xb0, 0xe7, 0x3a,
-	0x31, 0x1e, 0x97, 0x10, 0xc8, 0xf9, 0x3b, 0xbd, 0x18, 0xec, 0x78, 0x4d, 0x66, 0x63, 0x2b, 0x62,
-	0x8c, 0xbc, 0x94, 0x5f, 0x4b, 0x90, 0x7f, 0xec, 0x74, 0xa6, 0x1c, 0xe2, 0x21, 0xa4, 0x07, 0x5c,
-	0xc1, 0x87, 0x3d, 0x3f, 0xc9, 0xb4, 0x19, 0xb0, 0xc3, 0xf8, 0xc0, 0x3e, 0xf6, 0x4e, 0xfc, 0xec,
-	0x84, 0x0f, 0x13, 0x44, 0xb2, 0x4b, 0x7c, 0xae, 0xec, 0x74, 0xc8, 0x57, 0x49, 0x8f, 0x9c, 0x4d,
-	0xee, 0xff, 0x28, 0x9b, 0x02, 0xa9, 0xdd, 0xb6, 0xd7, 0xe4, 0x4c, 0x08, 0xe5, 0x21, 0x39, 0x70,
-	0xcd, 0x30, 0x1b, 0x61, 0x7b, 0xe5, 0x29, 0xa4, 0x35, 0xcb, 0x19, 0x50, 0xf1, 0xb4, 0x21, 0x15,
-	0xa0, 0xdb, 0xf6, 0x0c, 0xc1, 0x9e, 0x7c, 0x24, 0x8a, 0x31, 0x47, 0x19, 0xc5, 0x7e, 0x74, 0x49,
-	0x4f, 0x75, 0x83, 0xcd, 0xf6, 0x22, 0x2c, 0x08, 0x77, 0xe5, 0x87, 0x90, 0xd7, 0xfa, 0x6c, 0x34,
-	0x4f, 0x9e, 0x29, 0x96, 0x1a, 0x7d, 0x0b, 0x32, 0x26, 0xcb, 0xc6, 0x9f, 0x6e, 0x7e, 0xa5, 0x95,
-	0x58, 0x2c, 0x47, 0x89, 0x8b, 0x20, 0x69, 0x73, 0x2c, 0x51, 0x6e, 0x43, 0x76, 0xb7, 0xed, 0x55,
-	0x89, 0x47, 0x4d, 0x8b, 0x77, 0x5c, 0x1c, 0x04, 0x36, 0x64, 0x1a, 0x03, 0x3a, 0xc6, 0xe0, 0x00,
-	0x96, 0x19, 0x06, 0x9d, 0xb1, 0xa7, 0x0f, 0xc4, 0xad, 0x78, 0x20, 0x42, 0x9f, 0x79, 0x74, 0x49,
-	0xcf, 0x76, 0x23, 0x92, 0xed, 0x25, 0x48, 0x87, 0xa2, 0x29, 0x1f, 0x43, 0xbe, 0xf6, 0xfc, 0x5c,
-	0xb8, 0xec, 0xc3, 0x92, 0xcd, 0x53, 0x8c, 0x02, 0x73, 0x23, 0x26, 0xa1, 0xf0, 0x71, 0xfc, 0xe9,
-	0x6b, 0x87, 0x44, 0xca, 0x9f, 0x12, 0x70, 0x65, 0x07, 0x9b, 0x3d, 0x7b, 0x48, 0xdc, 0x8b, 0xeb,
-	0x37, 0xf4, 0x1c, 0x56, 0x3b, 0x98, 0x62, 0x83, 0xdd, 0x18, 0xd2, 0xe6, 0xfc, 0xab, 0x6f, 0x77,
-	0xc4, 0x8d, 0xc8, 0x6e, 0xa8, 0x31, 0xc9, 0xc6, 0x24, 0x52, 0xaa, 0x62, 0x8a, 0x0f, 0x46, 0x91,
-	0xf6, 0xed, 0x0e, 0x11, 0xcc, 0x00, 0x75, 0xce, 0x28, 0x94, 0x23, 0x40, 0x67, 0xcd, 0xd1, 0x4d,
-	0x28, 0x56, 0xd5, 0x96, 0x6a, 0x1c, 0xe8, 0x8d, 0x56, 0xad, 0xd2, 0xd2, 0x1a, 0x75, 0x63, 0xbf,
-	0x51, 0x9d, 0x1c, 0xbd, 0x79, 0x58, 0xd9, 0xd3, 0xf6, 0xb5, 0x56, 0xad, 0x6a, 0x70, 0xeb, 0xbd,
-	0x46, 0xb3, 0x99, 0x93, 0xd0, 0x65, 0x58, 0xde, 0x69, 0xe8, 0x95, 0x5a, 0x48, 0x98, 0x50, 0x7e,
-	0x9b, 0x80, 0x95, 0x46, 0xf0, 0xc3, 0x61, 0x9f, 0x50, 0xcc, 0x72, 0x41, 0x5b, 0x51, 0x0e, 0x29,
-	0xcd, 0xe2, 0x90, 0x11, 0xfa, 0xf8, 0x75, 0x58, 0x24, 0x56, 0x47, 0x78, 0x26, 0x66, 0x7a, 0xbe,
-	0x45, 0xac, 0x0e, 0x77, 0x7b, 0x1b, 0x16, 0x28, 0x76, 0xbb, 0x84, 0xfa, 0x13, 0xca, 0xdf, 0x21,
-	0x04, 0x73, 0x43, 0xe2, 0x1e, 0x0a, 0xb6, 0xaf, 0xf3, 0x35, 0xba, 0x01, 0x3e, 0x89, 0x34, 0x3a,
-	0x84, 0x62, 0xb3, 0x27, 0x88, 0xbd, 0x9e, 0x11, 0xc2, 0x2a, 0x97, 0xa1, 0x3b, 0x90, 0x6b, 0x33,
-	0xf8, 0x7b, 0x86, 0x2b, 0x0a, 0x40, 0x3a, 0xf2, 0x42, 0x51, 0x5a, 0x5b, 0xd4, 0x97, 0x85, 0x5c,
-	0x0f, 0xc4, 0xe8, 0x3a, 0xa4, 0xb1, 0x63, 0x46, 0x39, 0xbf, 0x0e, 0xd8, 0x31, 0x7d, 0xb2, 0xaf,
-	0xfc, 0x53, 0x82, 0x5c, 0xf0, 0xce, 0x8f, 0x50, 0x32, 0x61, 0x19, 0x0f, 0xb1, 0xd9, 0x63, 0x23,
-	0xca, 0x78, 0x61, 0x5b, 0xa3, 0x21, 0xb9, 0x15, 0xd3, 0x18, 0x93, 0x11, 0x4a, 0x6a, 0xe0, 0xfe,
-	0x94, 0x79, 0x8f, 0x58, 0x6c, 0x52, 0xcf, 0xe2, 0x88, 0xa6, 0x70, 0x04, 0x97, 0xa7, 0xd8, 0x4e,
-	0x61, 0x6c, 0xf7, 0xc3, 0x8c, 0x2d, 0xfe, 0x3e, 0xb1, 0x18, 0x41, 0x16, 0x61, 0x5a, 0x97, 0x85,
-	0x4c, 0x58, 0xb5, 0xf1, 0xc7, 0x65, 0x80, 0x0a, 0x73, 0xe5, 0x6c, 0x11, 0xfd, 0x5e, 0x82, 0xa5,
-	0x08, 0x55, 0x40, 0x71, 0xbf, 0xe3, 0xa6, 0x11, 0x9d, 0xc2, 0xdd, 0xcf, 0x66, 0x2c, 0xd8, 0x87,
-	0xf2, 0x8d, 0x37, 0xaa, 0x3f, 0x51, 0x7f, 0xfc, 0xb7, 0x7f, 0xfc, 0x3c, 0x51, 0x46, 0xef, 0xb1,
-	0x5f, 0xe5, 0x2f, 0x85, 0xe8, 0xc1, 0x88, 0x8a, 0xad, 0x87, 0x28, 0xd8, 0x7a, 0x88, 0x7a, 0xa1,
-	0x5f, 0x49, 0x90, 0x0e, 0xb1, 0x06, 0x74, 0x27, 0xee, 0xb1, 0x3b, 0xc3, 0x2c, 0x0a, 0xb3, 0x66,
-	0x9d, 0xf2, 0xd1, 0x1b, 0x95, 0xbf, 0x10, 0x91, 0xcc, 0x98, 0x20, 0x26, 0xaf, 0x10, 0x23, 0x5c,
-	0x7f, 0x85, 0x7e, 0x92, 0x80, 0x6c, 0x94, 0x7d, 0xa0, 0x38, 0x68, 0xa6, 0x92, 0x94, 0xc2, 0xb5,
-	0xc0, 0x3a, 0xf4, 0xfb, 0xbf, 0x34, 0xba, 0xc6, 0xca, 0xef, 0xa4, 0xd7, 0xaa, 0x06, 0x5f, 0xfe,
-	0xdf, 0x67, 0x40, 0xb7, 0x63, 0x9e, 0xda, 0xc9, 0xd7, 0xe0, 0x8d, 0xfa, 0x8e, 0xc0, 0xfc, 0x6e,
-	0x88, 0xd5, 0x8c, 0xd6, 0x1c, 0x81, 0xfb, 0xca, 0xf9, 0x6a, 0xb3, 0x39, 0xa2, 0x09, 0xe8, 0xa7,
-	0x09, 0xc8, 0x46, 0x49, 0x4c, 0x2c, 0x16, 0x53, 0xb9, 0xce, 0x2c, 0x2c, 0xfe, 0x70, 0xc1, 0x58,
-	0xac, 0x86, 0x88, 0x55, 0x14, 0x84, 0xed, 0x8d, 0x0f, 0x38, 0x08, 0x81, 0xb0, 0xf4, 0x59, 0xfb,
-	0x21, 0x84, 0xc6, 0x7f, 0x24, 0xc8, 0x46, 0x19, 0x46, 0x2c, 0x1a, 0x53, 0x89, 0xc8, 0x2c, 0x34,
-	0x7e, 0x73, 0xc1, 0x68, 0xac, 0xb0, 0x33, 0xde, 0x0d, 0x33, 0x1c, 0xbf, 0x1f, 0xbe, 0x76, 0xae,
-	0x1b, 0xb1, 0x69, 0xf2, 0xc3, 0x6c, 0x4a, 0xeb, 0xe8, 0x47, 0x09, 0xc8, 0x46, 0xb9, 0x44, 0x2c,
-	0x02, 0x53, 0x29, 0xc7, 0x2c, 0x04, 0x3e, 0xb9, 0x60, 0x04, 0x10, 0x47, 0x20, 0xc2, 0x65, 0x3e,
-	0x1f, 0x04, 0xe4, 0x79, 0x00, 0xc1, 0xcf, 0x12, 0x90, 0x9b, 0xe4, 0x10, 0xa8, 0x74, 0x3e, 0xb2,
-	0xf1, 0x45, 0x3f, 0x11, 0x57, 0x39, 0x0c, 0xd3, 0xc8, 0x12, 0x47, 0x63, 0x4b, 0xf9, 0xe0, 0x7c,
-	0x68, 0x1c, 0xf9, 0xc7, 0x62, 0x78, 0xfc, 0x5d, 0x82, 0x6c, 0xf4, 0xa7, 0x44, 0x6c, 0x4b, 0x4c,
-	0xfd, 0xc5, 0x31, 0x0b, 0x8b, 0x8f, 0x5f, 0xab, 0x0f, 0x21, 0x3f, 0x49, 0x51, 0x6a, 0x7d, 0x87,
-	0x9e, 0x9e, 0x03, 0x81, 0xd0, 0x3c, 0x58, 0x3f, 0xdf, 0x3c, 0x28, 0x3c, 0x7a, 0xad, 0xae, 0x4e,
-	0xa3, 0xa3, 0x7f, 0x55, 0x4b, 0xc7, 0x94, 0x3a, 0xde, 0x66, 0xb9, 0xfc, 0xec, 0xd9, 0xb3, 0x49,
-	0xae, 0x8a, 0x07, 0xf4, 0x58, 0xfc, 0x49, 0xfd, 0x9e, 0xd3, 0xc3, 0xf4, 0xc8, 0x76, 0xfb, 0xdb,
-	0x1e, 0x5c, 0x6d, 0xdb, 0xfd, 0xe9, 0xe0, 0x6c, 0xcb, 0xe3, 0x49, 0xde, 0x24, 0xee, 0xd0, 0x6c,
-	0x93, 0x27, 0xf7, 0x18, 0xc1, 0xb4, 0x0f, 0xa4, 0xa7, 0x9b, 0xbe, 0x4b, 0xd7, 0xee, 0x61, 0xab,
-	0x5b, 0xb2, 0xdd, 0x6e, 0xb9, 0x4b, 0x2c, 0x0e, 0x46, 0x79, 0xfc, 0xdd, 0x89, 0xbf, 0xc8, 0xb7,
-	0xf8, 0xe2, 0x70, 0x81, 0x9b, 0xbd, 0xff, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x08, 0xfa, 0xeb,
-	0x64, 0x48, 0x17, 0x00, 0x00,
+	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.
@@ -1474,6 +1524,7 @@
 	// 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
@@ -1610,6 +1661,7 @@
 	// 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
diff --git a/googleapis/cloud/redis/v1beta1/cloud_redis.pb.go b/googleapis/cloud/redis/v1beta1/cloud_redis.pb.go
index c5864dc..79cb4f2 100644
--- a/googleapis/cloud/redis/v1beta1/cloud_redis.pb.go
+++ b/googleapis/cloud/redis/v1beta1/cloud_redis.pb.go
@@ -119,6 +119,40 @@
 	return fileDescriptor_522f9b2de914b9c5, []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_522f9b2de914b9c5, []int{0, 2}
+}
+
+// Specifies different modes of operation in relation to the data retention.
 type FailoverInstanceRequest_DataProtectionMode int32
 
 const (
@@ -151,7 +185,7 @@
 }
 
 func (FailoverInstanceRequest_DataProtectionMode) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_522f9b2de914b9c5, []int{13, 0}
+	return fileDescriptor_522f9b2de914b9c5, []int{14, 0}
 }
 
 // A Google Cloud Redis instance.
@@ -163,8 +197,8 @@
 	// 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] and
-	// [alternative_location_id] fields for more details.
+	// should be provisioned in. Refer to [location_id][google.cloud.redis.v1beta1.Instance.location_id] and
+	// [alternative_location_id][google.cloud.redis.v1beta1.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"`
@@ -173,17 +207,16 @@
 	// 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] is also provided, it must be
-	// different from [location_id].
+	// failures. If [alternative_location_id][google.cloud.redis.v1beta1.Instance.alternative_location_id] is also provided, it must be
+	// different from [location_id][google.cloud.redis.v1beta1.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].
+	// must be a different zone from the one provided in [location_id][google.cloud.redis.v1beta1.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. Updating the
-	// version will perform an upgrade/downgrade to the new version. Currently,
-	// the supported values are:
+	// 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
@@ -199,9 +232,9 @@
 	// 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]
+	// Tier instances, this will always be the same as the [location_id][google.cloud.redis.v1beta1.Instance.location_id]
 	// provided by the user at creation time. For Standard Tier instances,
-	// this can be either [location_id] or [alternative_location_id] and can
+	// this can be either [location_id][google.cloud.redis.v1beta1.Instance.location_id] or [alternative_location_id][google.cloud.redis.v1beta1.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.
@@ -240,10 +273,14 @@
 	// "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"`
-	XXX_NoUnkeyedLiteral   struct{} `json:"-"`
-	XXX_unrecognized       []byte   `json:"-"`
-	XXX_sizecache          int32    `json:"-"`
+	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.v1beta1.Instance_ConnectMode" json:"connect_mode,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
+	XXX_unrecognized     []byte               `json:"-"`
+	XXX_sizecache        int32                `json:"-"`
 }
 
 func (m *Instance) Reset()         { *m = Instance{} }
@@ -397,6 +434,13 @@
 	return ""
 }
 
+func (m *Instance) GetConnectMode() Instance_ConnectMode {
+	if m != nil {
+		return m.ConnectMode
+	}
+	return Instance_CONNECT_MODE_UNSPECIFIED
+}
+
 // Request for [ListInstances][google.cloud.redis.v1beta1.CloudRedis.ListInstances].
 type ListInstancesRequest struct {
 	// Required. The resource name of the instance location using the form:
@@ -408,11 +452,11 @@
 	// 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][CloudRedis.ListInstancesResponse.next_page_token]
+	// [`next_page_token`][google.cloud.redis.v1beta1.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 List request,
-	// if any.
+	// The `next_page_token` value returned from a previous
+	// [ListInstances][google.cloud.redis.v1beta1.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:"-"`
@@ -473,10 +517,10 @@
 	// 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".
+	// 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.
@@ -703,6 +747,58 @@
 	return nil
 }
 
+// Request for [UpgradeInstance][google.cloud.redis.v1beta1.CloudRedis.UpgradeInstance].
+type UpgradeInstanceRequest 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. Specifies the target version of Redis software to upgrade to.
+	RedisVersion         string   `protobuf:"bytes,2,opt,name=redis_version,json=redisVersion,proto3" json:"redis_version,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *UpgradeInstanceRequest) Reset()         { *m = UpgradeInstanceRequest{} }
+func (m *UpgradeInstanceRequest) String() string { return proto.CompactTextString(m) }
+func (*UpgradeInstanceRequest) ProtoMessage()    {}
+func (*UpgradeInstanceRequest) Descriptor() ([]byte, []int) {
+	return fileDescriptor_522f9b2de914b9c5, []int{6}
+}
+
+func (m *UpgradeInstanceRequest) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_UpgradeInstanceRequest.Unmarshal(m, b)
+}
+func (m *UpgradeInstanceRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_UpgradeInstanceRequest.Marshal(b, m, deterministic)
+}
+func (m *UpgradeInstanceRequest) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_UpgradeInstanceRequest.Merge(m, src)
+}
+func (m *UpgradeInstanceRequest) XXX_Size() int {
+	return xxx_messageInfo_UpgradeInstanceRequest.Size(m)
+}
+func (m *UpgradeInstanceRequest) XXX_DiscardUnknown() {
+	xxx_messageInfo_UpgradeInstanceRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_UpgradeInstanceRequest proto.InternalMessageInfo
+
+func (m *UpgradeInstanceRequest) GetName() string {
+	if m != nil {
+		return m.Name
+	}
+	return ""
+}
+
+func (m *UpgradeInstanceRequest) GetRedisVersion() string {
+	if m != nil {
+		return m.RedisVersion
+	}
+	return ""
+}
+
 // Request for [DeleteInstance][google.cloud.redis.v1beta1.CloudRedis.DeleteInstance].
 type DeleteInstanceRequest struct {
 	// Required. Redis instance resource name using the form:
@@ -718,7 +814,7 @@
 func (m *DeleteInstanceRequest) String() string { return proto.CompactTextString(m) }
 func (*DeleteInstanceRequest) ProtoMessage()    {}
 func (*DeleteInstanceRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_522f9b2de914b9c5, []int{6}
+	return fileDescriptor_522f9b2de914b9c5, []int{7}
 }
 
 func (m *DeleteInstanceRequest) XXX_Unmarshal(b []byte) error {
@@ -759,7 +855,7 @@
 func (m *GcsSource) String() string { return proto.CompactTextString(m) }
 func (*GcsSource) ProtoMessage()    {}
 func (*GcsSource) Descriptor() ([]byte, []int) {
-	return fileDescriptor_522f9b2de914b9c5, []int{7}
+	return fileDescriptor_522f9b2de914b9c5, []int{8}
 }
 
 func (m *GcsSource) XXX_Unmarshal(b []byte) error {
@@ -803,7 +899,7 @@
 func (m *InputConfig) String() string { return proto.CompactTextString(m) }
 func (*InputConfig) ProtoMessage()    {}
 func (*InputConfig) Descriptor() ([]byte, []int) {
-	return fileDescriptor_522f9b2de914b9c5, []int{8}
+	return fileDescriptor_522f9b2de914b9c5, []int{9}
 }
 
 func (m *InputConfig) XXX_Unmarshal(b []byte) error {
@@ -872,7 +968,7 @@
 func (m *ImportInstanceRequest) String() string { return proto.CompactTextString(m) }
 func (*ImportInstanceRequest) ProtoMessage()    {}
 func (*ImportInstanceRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_522f9b2de914b9c5, []int{9}
+	return fileDescriptor_522f9b2de914b9c5, []int{10}
 }
 
 func (m *ImportInstanceRequest) XXX_Unmarshal(b []byte) error {
@@ -921,7 +1017,7 @@
 func (m *GcsDestination) String() string { return proto.CompactTextString(m) }
 func (*GcsDestination) ProtoMessage()    {}
 func (*GcsDestination) Descriptor() ([]byte, []int) {
-	return fileDescriptor_522f9b2de914b9c5, []int{10}
+	return fileDescriptor_522f9b2de914b9c5, []int{11}
 }
 
 func (m *GcsDestination) XXX_Unmarshal(b []byte) error {
@@ -965,7 +1061,7 @@
 func (m *OutputConfig) String() string { return proto.CompactTextString(m) }
 func (*OutputConfig) ProtoMessage()    {}
 func (*OutputConfig) Descriptor() ([]byte, []int) {
-	return fileDescriptor_522f9b2de914b9c5, []int{11}
+	return fileDescriptor_522f9b2de914b9c5, []int{12}
 }
 
 func (m *OutputConfig) XXX_Unmarshal(b []byte) error {
@@ -1034,7 +1130,7 @@
 func (m *ExportInstanceRequest) String() string { return proto.CompactTextString(m) }
 func (*ExportInstanceRequest) ProtoMessage()    {}
 func (*ExportInstanceRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_522f9b2de914b9c5, []int{12}
+	return fileDescriptor_522f9b2de914b9c5, []int{13}
 }
 
 func (m *ExportInstanceRequest) XXX_Unmarshal(b []byte) error {
@@ -1087,7 +1183,7 @@
 func (m *FailoverInstanceRequest) String() string { return proto.CompactTextString(m) }
 func (*FailoverInstanceRequest) ProtoMessage()    {}
 func (*FailoverInstanceRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_522f9b2de914b9c5, []int{13}
+	return fileDescriptor_522f9b2de914b9c5, []int{14}
 }
 
 func (m *FailoverInstanceRequest) XXX_Unmarshal(b []byte) error {
@@ -1141,7 +1237,7 @@
 func (m *LocationMetadata) String() string { return proto.CompactTextString(m) }
 func (*LocationMetadata) ProtoMessage()    {}
 func (*LocationMetadata) Descriptor() ([]byte, []int) {
-	return fileDescriptor_522f9b2de914b9c5, []int{14}
+	return fileDescriptor_522f9b2de914b9c5, []int{15}
 }
 
 func (m *LocationMetadata) XXX_Unmarshal(b []byte) error {
@@ -1181,7 +1277,7 @@
 func (m *ZoneMetadata) String() string { return proto.CompactTextString(m) }
 func (*ZoneMetadata) ProtoMessage()    {}
 func (*ZoneMetadata) Descriptor() ([]byte, []int) {
-	return fileDescriptor_522f9b2de914b9c5, []int{15}
+	return fileDescriptor_522f9b2de914b9c5, []int{16}
 }
 
 func (m *ZoneMetadata) XXX_Unmarshal(b []byte) error {
@@ -1205,6 +1301,7 @@
 func init() {
 	proto.RegisterEnum("google.cloud.redis.v1beta1.Instance_State", Instance_State_name, Instance_State_value)
 	proto.RegisterEnum("google.cloud.redis.v1beta1.Instance_Tier", Instance_Tier_name, Instance_Tier_value)
+	proto.RegisterEnum("google.cloud.redis.v1beta1.Instance_ConnectMode", Instance_ConnectMode_name, Instance_ConnectMode_value)
 	proto.RegisterEnum("google.cloud.redis.v1beta1.FailoverInstanceRequest_DataProtectionMode", FailoverInstanceRequest_DataProtectionMode_name, FailoverInstanceRequest_DataProtectionMode_value)
 	proto.RegisterType((*Instance)(nil), "google.cloud.redis.v1beta1.Instance")
 	proto.RegisterMapType((map[string]string)(nil), "google.cloud.redis.v1beta1.Instance.LabelsEntry")
@@ -1214,6 +1311,7 @@
 	proto.RegisterType((*GetInstanceRequest)(nil), "google.cloud.redis.v1beta1.GetInstanceRequest")
 	proto.RegisterType((*CreateInstanceRequest)(nil), "google.cloud.redis.v1beta1.CreateInstanceRequest")
 	proto.RegisterType((*UpdateInstanceRequest)(nil), "google.cloud.redis.v1beta1.UpdateInstanceRequest")
+	proto.RegisterType((*UpgradeInstanceRequest)(nil), "google.cloud.redis.v1beta1.UpgradeInstanceRequest")
 	proto.RegisterType((*DeleteInstanceRequest)(nil), "google.cloud.redis.v1beta1.DeleteInstanceRequest")
 	proto.RegisterType((*GcsSource)(nil), "google.cloud.redis.v1beta1.GcsSource")
 	proto.RegisterType((*InputConfig)(nil), "google.cloud.redis.v1beta1.InputConfig")
@@ -1232,127 +1330,135 @@
 }
 
 var fileDescriptor_522f9b2de914b9c5 = []byte{
-	// 1917 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x58, 0xcf, 0x6f, 0xdb, 0xc8,
-	0xf5, 0x0f, 0x25, 0xcb, 0x5f, 0xeb, 0x49, 0x96, 0xe5, 0x89, 0xf5, 0x0d, 0x57, 0xdb, 0x74, 0xbd,
-	0x4c, 0xb6, 0xeb, 0x18, 0xa9, 0xd4, 0x38, 0x45, 0xb1, 0x71, 0xba, 0xbb, 0xa1, 0x24, 0xda, 0x26,
-	0x60, 0x4b, 0x06, 0xa5, 0x2c, 0xd0, 0x05, 0x0a, 0xee, 0x98, 0x1a, 0xcb, 0xac, 0x25, 0x92, 0x25,
-	0x47, 0x4a, 0x9c, 0xc0, 0x28, 0x5a, 0x2c, 0x8a, 0xde, 0xdb, 0xed, 0xb5, 0xed, 0xa1, 0x45, 0xff,
-	0x85, 0xa2, 0x7f, 0x40, 0x81, 0x1c, 0xdb, 0x9e, 0x02, 0x14, 0xd8, 0x43, 0x4f, 0xbd, 0xf4, 0xbe,
-	0xbd, 0x14, 0x33, 0x43, 0x4a, 0x94, 0x2c, 0xcb, 0x8e, 0xbd, 0xbd, 0x71, 0xde, 0xaf, 0x79, 0xef,
-	0x33, 0x6f, 0xe6, 0xf3, 0x24, 0xb8, 0xdf, 0x71, 0xdd, 0x4e, 0x97, 0x94, 0xad, 0xae, 0xdb, 0x6f,
-	0x97, 0x7d, 0xd2, 0xb6, 0x83, 0xf2, 0xe0, 0xc1, 0x01, 0xa1, 0xf8, 0x81, 0x90, 0x99, 0x5c, 0x56,
-	0xf2, 0x7c, 0x97, 0xba, 0xa8, 0x28, 0xac, 0x4b, 0x5c, 0x53, 0x12, 0x9a, 0xd0, 0xba, 0xf8, 0x8d,
-	0x30, 0x12, 0xf6, 0xec, 0x32, 0x76, 0x1c, 0x97, 0x62, 0x6a, 0xbb, 0x4e, 0xe8, 0x59, 0xbc, 0x15,
-	0xd3, 0x5a, 0x5d, 0x9b, 0x38, 0x34, 0x54, 0xbc, 0x13, 0x53, 0x1c, 0xda, 0xa4, 0xdb, 0x36, 0x0f,
-	0xc8, 0x11, 0x1e, 0xd8, 0xae, 0x1f, 0x1a, 0xbc, 0x15, 0x33, 0xf0, 0x49, 0xe0, 0xf6, 0x7d, 0x8b,
-	0x84, 0xaa, 0x3b, 0xa1, 0xaa, 0xeb, 0x3a, 0x1d, 0xbf, 0xef, 0x38, 0xb6, 0xd3, 0x29, 0xbb, 0x1e,
-	0xf1, 0xc7, 0x76, 0x5e, 0x0d, 0x8d, 0xf8, 0xea, 0xa0, 0x7f, 0x18, 0xee, 0xd2, 0xc3, 0xc1, 0xf1,
-	0x44, 0x0a, 0x43, 0x0b, 0x6a, 0xf7, 0x48, 0x40, 0x71, 0xcf, 0x13, 0x06, 0xca, 0x3f, 0x00, 0x16,
-	0x74, 0x27, 0xa0, 0xd8, 0xb1, 0x08, 0xba, 0x05, 0x73, 0x0e, 0xee, 0x11, 0x59, 0x5a, 0x95, 0xd6,
-	0xd2, 0x95, 0xe4, 0x97, 0x6a, 0xc2, 0xe0, 0x02, 0xf4, 0x2e, 0x64, 0xdb, 0x76, 0xe0, 0x75, 0xf1,
-	0x89, 0xc9, 0x0d, 0x12, 0xcc, 0xc0, 0xc8, 0x84, 0xb2, 0x3a, 0x33, 0xd9, 0x81, 0xf9, 0x2e, 0x3e,
-	0x20, 0xdd, 0x40, 0x4e, 0xae, 0x26, 0xd7, 0x32, 0x1b, 0xdf, 0x29, 0x9d, 0x0f, 0x68, 0x29, 0xda,
-	0xb1, 0xb4, 0xcb, 0x5d, 0x34, 0x87, 0xfa, 0x27, 0x46, 0xe8, 0x8f, 0xee, 0x42, 0xa6, 0xeb, 0x5a,
-	0xbc, 0x50, 0xd3, 0x6e, 0xcb, 0x73, 0x51, 0x32, 0x92, 0x01, 0x91, 0x5c, 0x6f, 0xa3, 0xc7, 0x70,
-	0x0b, 0x77, 0x29, 0xf1, 0x1d, 0x4c, 0xed, 0x01, 0x31, 0xe3, 0x1e, 0xa9, 0x91, 0x47, 0x21, 0x66,
-	0xb3, 0x3b, 0x72, 0x5e, 0x83, 0x45, 0x9e, 0x90, 0x39, 0x20, 0x7e, 0x60, 0xbb, 0x8e, 0xfc, 0x7f,
-	0x23, 0x97, 0x2c, 0xd7, 0x7c, 0x22, 0x14, 0xa8, 0x0c, 0xcb, 0x3e, 0x09, 0x88, 0x3f, 0x20, 0x6d,
-	0xd3, 0xf6, 0x4c, 0x1f, 0x3b, 0x1d, 0x22, 0xa7, 0x47, 0xd6, 0x4b, 0x91, 0x56, 0xf7, 0x0c, 0xa6,
-	0x63, 0x18, 0x1e, 0xb9, 0x01, 0x95, 0x21, 0xb2, 0x49, 0x1a, 0x5c, 0xc0, 0x14, 0x9e, 0xeb, 0x53,
-	0x39, 0xb3, 0x2a, 0xad, 0xa5, 0x42, 0x05, 0x13, 0xa0, 0x87, 0x70, 0xd3, 0xea, 0xfb, 0x3e, 0x71,
-	0xe8, 0x58, 0x15, 0xd9, 0x51, 0x80, 0xe5, 0x50, 0x1f, 0xab, 0xe0, 0x09, 0x64, 0x2c, 0x9f, 0x60,
-	0x4a, 0x4c, 0x76, 0xa2, 0xf2, 0xe2, 0xaa, 0xb4, 0x96, 0xd9, 0x28, 0x46, 0x98, 0x47, 0xc7, 0x5d,
-	0x6a, 0x45, 0xc7, 0x2d, 0x02, 0x81, 0xf0, 0x61, 0x52, 0xa4, 0x41, 0x2a, 0xa0, 0x98, 0x12, 0x39,
-	0xb7, 0x2a, 0xad, 0xe5, 0x36, 0xd6, 0x2f, 0x75, 0x5e, 0x4d, 0xe6, 0x21, 0x62, 0x09, 0x6f, 0xb4,
-	0x0e, 0x39, 0xf6, 0xd1, 0x0f, 0xcc, 0x1e, 0x09, 0x02, 0xdc, 0x21, 0xf2, 0xd2, 0x28, 0xf1, 0x45,
-	0xa1, 0xda, 0x13, 0x1a, 0xf4, 0x59, 0x04, 0xbb, 0xe5, 0x3a, 0x87, 0x76, 0x27, 0x90, 0xf3, 0xbc,
-	0x55, 0xbe, 0x77, 0xa9, 0xad, 0x0d, 0x26, 0xae, 0x0a, 0x47, 0xde, 0x30, 0xf1, 0xe3, 0x0a, 0xe5,
-	0xa8, 0x02, 0x73, 0xd4, 0x26, 0xbe, 0xbc, 0xcc, 0x6b, 0xba, 0x77, 0xa9, 0xc0, 0x2d, 0x9b, 0xf8,
-	0x61, 0xb3, 0x33, 0x5f, 0x74, 0x0f, 0x72, 0x3d, 0xd2, 0x73, 0xfd, 0x13, 0x33, 0xb0, 0x5f, 0x10,
-	0xb3, 0x73, 0x20, 0xa3, 0xe8, 0xc8, 0x12, 0x46, 0x56, 0xa8, 0x9a, 0xf6, 0x0b, 0xb2, 0x7d, 0x80,
-	0x36, 0x00, 0xe1, 0x3e, 0x3d, 0x72, 0x7d, 0xfb, 0x05, 0x69, 0x9b, 0x0e, 0xa1, 0xcf, 0x5c, 0xff,
-	0x58, 0x5e, 0x19, 0xb5, 0xc7, 0xf2, 0x48, 0x5d, 0x17, 0x5a, 0xf4, 0x21, 0xc8, 0x1e, 0x6b, 0xae,
-	0x80, 0x12, 0xc7, 0x22, 0xa6, 0x8d, 0x7b, 0xa6, 0xdd, 0x26, 0x0e, 0xb5, 0xe9, 0x89, 0x5c, 0x18,
-	0x41, 0xf7, 0xff, 0x31, 0x23, 0x1d, 0xf7, 0xf4, 0xd0, 0xa4, 0xf8, 0x08, 0x32, 0xb1, 0x4b, 0x83,
-	0xf2, 0x90, 0x3c, 0x26, 0x27, 0xe2, 0xc6, 0x1a, 0xec, 0x13, 0xad, 0x40, 0x6a, 0x80, 0xbb, 0xfd,
-	0xe8, 0x92, 0x8a, 0xc5, 0x66, 0xe2, 0x03, 0xa9, 0xf8, 0x31, 0x2c, 0x9f, 0x01, 0xf1, 0x4d, 0x02,
-	0x28, 0xbf, 0x92, 0x20, 0xc5, 0x3b, 0x00, 0x15, 0x60, 0xb9, 0xd9, 0x52, 0x5b, 0x9a, 0xf9, 0xb4,
-	0xde, 0xdc, 0xd7, 0xaa, 0xfa, 0x96, 0xae, 0xd5, 0xf2, 0x37, 0x50, 0x16, 0x16, 0xaa, 0x86, 0xa6,
-	0xb6, 0xf4, 0xfa, 0x76, 0x5e, 0x42, 0x69, 0x48, 0x19, 0x9a, 0x5a, 0xfb, 0x41, 0x3e, 0xc1, 0x14,
-	0x4f, 0xf7, 0x6b, 0x42, 0x91, 0x64, 0xab, 0x9a, 0xb6, 0xab, 0xf1, 0xd5, 0x1c, 0x5a, 0x84, 0xb4,
-	0xa1, 0xed, 0xab, 0xba, 0xc1, 0x96, 0x29, 0xb4, 0x04, 0x99, 0x3d, 0x55, 0xaf, 0xb7, 0xb4, 0xba,
-	0x5a, 0xaf, 0x6a, 0xf9, 0x79, 0xa6, 0xd7, 0xf7, 0xf6, 0x1b, 0x06, 0x37, 0x5f, 0x40, 0x79, 0xc8,
-	0x6e, 0xa9, 0xfa, 0xae, 0x5e, 0xdf, 0x36, 0x1b, 0x9f, 0x68, 0x46, 0x1e, 0x94, 0x0f, 0x60, 0x8e,
-	0x9d, 0x21, 0x5a, 0x81, 0x7c, 0x4b, 0xd7, 0x8c, 0x89, 0x9c, 0xd2, 0x90, 0xaa, 0xa8, 0x4d, 0xbd,
-	0x9a, 0x97, 0x58, 0xe8, 0x66, 0x4b, 0xad, 0xd7, 0x54, 0xa3, 0x66, 0xee, 0xa8, 0xf9, 0xe4, 0xe6,
-	0x67, 0xff, 0x52, 0x7f, 0x08, 0xb7, 0x45, 0x5f, 0x88, 0x56, 0xc1, 0x9e, 0x1d, 0x94, 0x2c, 0xb7,
-	0x57, 0x1e, 0x3e, 0x8a, 0xdf, 0xf7, 0x7c, 0xf7, 0x47, 0xc4, 0xa2, 0x41, 0xf9, 0x65, 0xf8, 0x75,
-	0x5a, 0x8e, 0xee, 0x69, 0x50, 0x7e, 0x19, 0x7d, 0x9e, 0x96, 0xed, 0xd0, 0x23, 0x28, 0xbf, 0x8c,
-	0x3e, 0x4f, 0x95, 0x2f, 0x24, 0x58, 0xd9, 0xb5, 0x03, 0x1a, 0x85, 0x0b, 0x0c, 0xf2, 0xe3, 0x3e,
-	0x09, 0x28, 0x52, 0x61, 0xde, 0xc3, 0xec, 0x52, 0x87, 0xaf, 0xed, 0xbd, 0x2f, 0xd5, 0xc4, 0x57,
-	0xea, 0x1d, 0x78, 0x77, 0x18, 0x7b, 0x32, 0xa3, 0xe8, 0xf6, 0x1b, 0xa1, 0x23, 0x7a, 0x1b, 0xd2,
-	0x1e, 0xee, 0x10, 0xde, 0xa6, 0xfc, 0xb0, 0x52, 0xc6, 0x02, 0x13, 0xb0, 0xe6, 0x44, 0xb7, 0x01,
-	0xb8, 0x92, 0xba, 0xc7, 0xc4, 0x91, 0x93, 0xfc, 0x28, 0xb9, 0x79, 0x8b, 0x09, 0x94, 0xdf, 0x4b,
-	0x50, 0x98, 0xc8, 0x2b, 0xf0, 0x5c, 0x27, 0x20, 0xa8, 0x02, 0xe9, 0x61, 0x25, 0xb2, 0xc4, 0x2f,
-	0xe8, 0xdd, 0xcb, 0xdc, 0x23, 0x63, 0xe4, 0x86, 0xbe, 0x05, 0x4b, 0x0e, 0x79, 0x4e, 0xcd, 0x58,
-	0x06, 0xa2, 0x99, 0x16, 0x99, 0x78, 0x3f, 0xca, 0x02, 0xad, 0x42, 0xa6, 0xef, 0xf8, 0x04, 0x5b,
-	0x47, 0xf8, 0xa0, 0x4b, 0x38, 0x73, 0xa4, 0x8d, 0xb8, 0x48, 0x69, 0x00, 0xda, 0x26, 0xc3, 0x2c,
-	0x23, 0xf0, 0x1e, 0x8d, 0x11, 0xd5, 0x7b, 0x1c, 0xba, 0x77, 0x2e, 0x38, 0x48, 0x41, 0x65, 0xca,
-	0x5f, 0x24, 0x28, 0x54, 0xf9, 0x2b, 0x38, 0x19, 0xf4, 0x6b, 0x38, 0x91, 0xbb, 0x90, 0x89, 0x40,
-	0x60, 0x4f, 0x78, 0x62, 0xc4, 0xa3, 0x10, 0xc9, 0xf5, 0x36, 0xd2, 0x60, 0x21, 0x5a, 0xf1, 0x83,
-	0xb9, 0x24, 0xc0, 0x22, 0xd0, 0xd0, 0x55, 0xf9, 0xad, 0x04, 0x85, 0xa7, 0x5e, 0x7b, 0x4a, 0x25,
-	0x4f, 0x20, 0xd3, 0xe7, 0x0a, 0x3e, 0x0a, 0xf0, 0x72, 0xa6, 0x91, 0xc3, 0x16, 0x9b, 0x16, 0xf6,
-	0x70, 0x70, 0x1c, 0xa6, 0x28, 0x7c, 0x98, 0x60, 0x2c, 0xc5, 0xc4, 0xd5, 0x53, 0x34, 0xa0, 0x50,
-	0x23, 0x5d, 0x72, 0x36, 0xc3, 0x6b, 0x1c, 0xa0, 0x02, 0xe9, 0x6d, 0x2b, 0x68, 0xf2, 0x61, 0x09,
-	0x15, 0x20, 0xd9, 0xf7, 0xed, 0xf8, 0xc0, 0xc2, 0xd6, 0x8a, 0x09, 0x19, 0xdd, 0xf1, 0xfa, 0x54,
-	0xbc, 0x74, 0x68, 0x0b, 0xa0, 0x63, 0x05, 0xa6, 0x18, 0xb0, 0x42, 0x38, 0xde, 0x9b, 0x55, 0xcf,
-	0x70, 0x83, 0x9d, 0x1b, 0x46, 0xba, 0x13, 0x2d, 0x2a, 0x0b, 0x30, 0x2f, 0x62, 0x28, 0x3f, 0x95,
-	0xa0, 0xa0, 0xf7, 0x18, 0x7d, 0x4f, 0x56, 0x76, 0xee, 0x0c, 0xd5, 0x80, 0xac, 0xcd, 0x72, 0x0a,
-	0xc9, 0x2f, 0x3c, 0xf9, 0xf7, 0x67, 0xc3, 0x3a, 0xac, 0x41, 0x44, 0xca, 0xd8, 0x23, 0x89, 0xf2,
-	0x3e, 0xe4, 0xb6, 0xad, 0xa0, 0x46, 0x02, 0x6a, 0x3b, 0xbc, 0x0d, 0xcf, 0x43, 0x83, 0x42, 0xb6,
-	0xd1, 0xa7, 0x23, 0x38, 0x9e, 0xc2, 0x12, 0x83, 0xa3, 0x3d, 0xf2, 0x0c, 0x31, 0x59, 0xbf, 0x00,
-	0x93, 0xd8, 0x5e, 0x3b, 0x37, 0x8c, 0x5c, 0x67, 0x4c, 0x52, 0x59, 0x84, 0x4c, 0x2c, 0xa4, 0xf2,
-	0xb9, 0x04, 0x05, 0xed, 0xf9, 0x1b, 0x41, 0x64, 0xc0, 0xa2, 0xcb, 0x13, 0x1d, 0xc7, 0x68, 0x6d,
-	0x56, 0x5a, 0xf1, 0xca, 0x42, 0x8a, 0x76, 0x63, 0x22, 0xe5, 0xcf, 0x09, 0xb8, 0xb5, 0x85, 0xed,
-	0xae, 0x3b, 0x20, 0xfe, 0xd7, 0xd7, 0x85, 0xe8, 0x14, 0x56, 0xda, 0x98, 0x62, 0x93, 0x5d, 0x26,
-	0x62, 0xf1, 0x99, 0xad, 0xe7, 0xb6, 0xc5, 0x65, 0xc9, 0x6d, 0x6c, 0xcd, 0xca, 0xf8, 0x9c, 0x6c,
-	0x4a, 0x35, 0x4c, 0xf1, 0xfe, 0x30, 0xdc, 0x9e, 0xdb, 0x26, 0x62, 0x86, 0x40, 0xed, 0x33, 0x0a,
-	0xe5, 0x10, 0xd0, 0x59, 0x73, 0x74, 0x17, 0x56, 0x6b, 0x6a, 0x4b, 0x35, 0xf7, 0x8d, 0x46, 0x4b,
-	0xab, 0xb6, 0xf4, 0x46, 0xdd, 0xdc, 0x6b, 0xd4, 0x26, 0x49, 0xba, 0x00, 0xcb, 0xbb, 0xfa, 0x9e,
-	0xde, 0xd2, 0x6a, 0x26, 0xb7, 0xde, 0x6d, 0x34, 0x9b, 0x79, 0x09, 0xdd, 0x84, 0xa5, 0xad, 0x86,
-	0x51, 0xd5, 0x62, 0xc2, 0x84, 0xf2, 0x6f, 0x09, 0xf2, 0xd1, 0x2b, 0xb7, 0x47, 0x28, 0x66, 0xa9,
-	0x20, 0x07, 0x96, 0xf0, 0x00, 0xdb, 0x5d, 0xf6, 0x40, 0x9b, 0x2f, 0x5c, 0x67, 0xc8, 0x13, 0x4f,
-	0x66, 0x95, 0x3d, 0x19, 0xa6, 0xa4, 0x46, 0x31, 0x3e, 0x65, 0x21, 0x86, 0x23, 0x5d, 0xd2, 0xc8,
-	0xe1, 0x31, 0x4d, 0xf1, 0x18, 0x6e, 0x4e, 0xb1, 0x9d, 0x32, 0xb9, 0x7c, 0x14, 0x9f, 0x5c, 0x2e,
-	0xe8, 0x1b, 0x16, 0x28, 0x4a, 0x25, 0x3e, 0xe3, 0xe4, 0x20, 0x1b, 0x57, 0x6d, 0xfc, 0x71, 0x09,
-	0xa0, 0xca, 0xfc, 0xf9, 0xe8, 0x84, 0xfe, 0x24, 0xc1, 0xe2, 0x18, 0x6f, 0xa2, 0x99, 0x3f, 0x74,
-	0xa6, 0x51, 0x7f, 0xf1, 0xc1, 0x1b, 0x78, 0x08, 0x52, 0x56, 0xaa, 0xaf, 0xd5, 0x90, 0x63, 0x7e,
-	0xf6, 0xb7, 0x7f, 0xfe, 0x32, 0xf1, 0x5d, 0xb4, 0x31, 0xfc, 0x29, 0xfb, 0x52, 0xc8, 0x3f, 0x1c,
-	0x8e, 0x29, 0xeb, 0xb1, 0xf1, 0x64, 0x3d, 0x36, 0x96, 0xa0, 0x3f, 0x48, 0x90, 0x89, 0x91, 0x29,
-	0x2a, 0xcd, 0xbc, 0xee, 0x67, 0x58, 0xb7, 0x78, 0x29, 0x0a, 0x50, 0xd4, 0xd7, 0x2a, 0xbf, 0x22,
-	0x67, 0x13, 0x65, 0xd2, 0x73, 0xd2, 0x8c, 0x0d, 0x4f, 0xeb, 0xa7, 0xe8, 0xf3, 0x04, 0xe4, 0xc6,
-	0x39, 0x1a, 0xcd, 0xc4, 0x6c, 0x2a, 0x9f, 0x17, 0x6f, 0x47, 0x2e, 0xb1, 0xdf, 0xd0, 0xa5, 0x46,
-	0xf4, 0x1b, 0x5a, 0xf9, 0x8d, 0xf4, 0x4a, 0xdd, 0x84, 0x3b, 0x97, 0x28, 0x09, 0xdd, 0x9c, 0x64,
-	0x4e, 0xd5, 0x39, 0x79, 0xad, 0xbe, 0x2d, 0x80, 0xbf, 0x1f, 0x63, 0xfc, 0xe1, 0x37, 0x2f, 0xfe,
-	0x23, 0xe5, 0x0a, 0xa7, 0xb4, 0x39, 0x64, 0x4f, 0xf4, 0xf3, 0x04, 0xe4, 0xc6, 0x09, 0x7e, 0x36,
-	0x0c, 0x53, 0x87, 0x81, 0x8b, 0x60, 0xf8, 0xdd, 0x75, 0x61, 0x58, 0x89, 0x8d, 0x1a, 0xe3, 0xf5,
-	0x6f, 0x6f, 0x3c, 0x1e, 0xd5, 0x1f, 0x69, 0x4a, 0x97, 0xed, 0x82, 0x18, 0x10, 0x5f, 0x49, 0x90,
-	0x1b, 0x67, 0xdb, 0xd9, 0x40, 0x4c, 0x65, 0xe6, 0x8b, 0x80, 0xf8, 0xe2, 0xba, 0x40, 0x2c, 0xb3,
-	0xca, 0xee, 0xc7, 0x39, 0x3e, 0xec, 0x82, 0x47, 0x6f, 0x7e, 0x05, 0x36, 0x6d, 0x5e, 0xc2, 0xa6,
-	0xb4, 0x8e, 0xfe, 0x23, 0x41, 0x6e, 0x9c, 0x47, 0x67, 0x17, 0x3f, 0x95, 0x73, 0x2f, 0x2a, 0xfe,
-	0xd7, 0xd7, 0x2d, 0x1e, 0xf1, 0xe2, 0xc7, 0xd8, 0xfb, 0x1a, 0xd5, 0x93, 0xe7, 0x51, 0xf5, 0xbf,
-	0x48, 0x40, 0x7e, 0x92, 0x30, 0xd1, 0xc3, 0x2b, 0xd0, 0xeb, 0xff, 0xfc, 0x39, 0x78, 0x8b, 0x23,
-	0x30, 0x6d, 0x28, 0xe0, 0x40, 0x3c, 0x51, 0x1e, 0x5f, 0x01, 0x88, 0xc3, 0xb0, 0x18, 0x06, 0xc5,
-	0xdf, 0x25, 0xc8, 0x8d, 0x4f, 0xd3, 0xb3, 0x1b, 0x61, 0xea, 0xe4, 0x7d, 0x11, 0x0c, 0xde, 0x2b,
-	0xf5, 0x3e, 0x14, 0x26, 0x0b, 0xd4, 0x7a, 0x1e, 0x3d, 0x39, 0xa7, 0xee, 0xd8, 0x63, 0xbf, 0x7e,
-	0x85, 0xc7, 0xbe, 0xb8, 0xf3, 0x4a, 0x5d, 0x99, 0x36, 0x71, 0xfd, 0x55, 0x2d, 0x1d, 0x51, 0xea,
-	0x05, 0x9b, 0xe5, 0xf2, 0xb3, 0x67, 0xcf, 0x26, 0xc7, 0x31, 0xdc, 0xa7, 0x47, 0xe2, 0x5f, 0xdc,
-	0x6f, 0x7b, 0x5d, 0x4c, 0x0f, 0x5d, 0xbf, 0x57, 0xf9, 0x09, 0x7c, 0xd3, 0x72, 0x7b, 0x33, 0x20,
-	0xa9, 0x14, 0x47, 0x4c, 0xde, 0x24, 0xfe, 0xc0, 0xb6, 0x48, 0x85, 0x88, 0x29, 0xca, 0xdd, 0x97,
-	0x3e, 0xfd, 0x38, 0xf4, 0xec, 0xb8, 0x5d, 0xec, 0x74, 0x4a, 0xae, 0xdf, 0x29, 0x77, 0x88, 0xc3,
-	0xab, 0x2d, 0x8f, 0xb6, 0x9f, 0xf6, 0x7f, 0xf2, 0x63, 0xbe, 0x3a, 0x98, 0xe7, 0xb6, 0x0f, 0xff,
-	0x1b, 0x00, 0x00, 0xff, 0xff, 0x8c, 0x13, 0xef, 0xb3, 0x7a, 0x16, 0x00, 0x00,
+	// 2048 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x59, 0xcf, 0x6f, 0xdb, 0xd6,
+	0x1d, 0x0f, 0xa5, 0xd8, 0xb3, 0xbe, 0x92, 0x65, 0xf9, 0xc5, 0x4a, 0x58, 0xb5, 0x59, 0x5d, 0x26,
+	0x5d, 0x1d, 0x23, 0x93, 0x16, 0x67, 0x18, 0x1a, 0x67, 0x6d, 0x42, 0x4b, 0xb4, 0x4d, 0xc0, 0x96,
+	0x04, 0x4a, 0x0e, 0xb6, 0x0e, 0x03, 0xfb, 0x4c, 0x3d, 0xcb, 0x9c, 0x25, 0x92, 0x23, 0x9f, 0x94,
+	0x38, 0x81, 0x31, 0x6c, 0x28, 0x86, 0xdd, 0xd7, 0x6e, 0xc7, 0x6d, 0x87, 0x0d, 0xd8, 0x9f, 0x30,
+	0xec, 0x0f, 0x18, 0x90, 0xe3, 0xb6, 0x53, 0x4e, 0x3d, 0xec, 0xb4, 0xcb, 0xee, 0x1d, 0x30, 0x0c,
+	0xef, 0x91, 0x14, 0x29, 0x59, 0x96, 0x15, 0xc7, 0xbd, 0x91, 0xdf, 0x5f, 0xfc, 0x7e, 0x3e, 0xef,
+	0xc7, 0xf7, 0x63, 0x19, 0xee, 0xb6, 0x6d, 0xbb, 0xdd, 0x21, 0x25, 0xa3, 0x63, 0xf7, 0x5a, 0x25,
+	0x97, 0xb4, 0x4c, 0xaf, 0xd4, 0xbf, 0xb7, 0x4f, 0x28, 0xbe, 0xe7, 0xdb, 0x74, 0x6e, 0x2b, 0x3a,
+	0xae, 0x4d, 0x6d, 0x54, 0xf0, 0xa3, 0x8b, 0xdc, 0x53, 0xf4, 0x3d, 0x41, 0x74, 0xe1, 0x9d, 0xa0,
+	0x12, 0x76, 0xcc, 0x12, 0xb6, 0x2c, 0x9b, 0x62, 0x6a, 0xda, 0x56, 0x90, 0x59, 0xb8, 0x11, 0xf3,
+	0x1a, 0x1d, 0x93, 0x58, 0x34, 0x70, 0xbc, 0x1b, 0x73, 0x1c, 0x98, 0xa4, 0xd3, 0xd2, 0xf7, 0xc9,
+	0x21, 0xee, 0x9b, 0xb6, 0x1b, 0x04, 0xbc, 0x15, 0x0b, 0x70, 0x89, 0x67, 0xf7, 0x5c, 0x83, 0x04,
+	0xae, 0x5b, 0x81, 0xab, 0x63, 0x5b, 0x6d, 0xb7, 0x67, 0x59, 0xa6, 0xd5, 0x2e, 0xd9, 0x0e, 0x71,
+	0x87, 0xbe, 0xbc, 0x1c, 0x04, 0xf1, 0xb7, 0xfd, 0xde, 0x41, 0xf0, 0x95, 0x2e, 0xf6, 0x8e, 0x46,
+	0x5a, 0x18, 0x44, 0x50, 0xb3, 0x4b, 0x3c, 0x8a, 0xbb, 0x8e, 0x1f, 0x20, 0x7d, 0x9e, 0x81, 0x39,
+	0xd5, 0xf2, 0x28, 0xb6, 0x0c, 0x82, 0x6e, 0xc0, 0x55, 0x0b, 0x77, 0x89, 0x28, 0x2c, 0x0b, 0x2b,
+	0xa9, 0x8d, 0xe4, 0x97, 0x72, 0x42, 0xe3, 0x06, 0xf4, 0x1e, 0x64, 0x5a, 0xa6, 0xe7, 0x74, 0xf0,
+	0xb1, 0xce, 0x03, 0x12, 0x2c, 0x40, 0x4b, 0x07, 0xb6, 0x2a, 0x0b, 0xd9, 0x86, 0xd9, 0x0e, 0xde,
+	0x27, 0x1d, 0x4f, 0x4c, 0x2e, 0x27, 0x57, 0xd2, 0x6b, 0xdf, 0x29, 0x9e, 0x4d, 0x68, 0x31, 0xfc,
+	0x62, 0x71, 0x87, 0xa7, 0x28, 0x16, 0x75, 0x8f, 0xb5, 0x20, 0x1f, 0xdd, 0x86, 0x74, 0xc7, 0x36,
+	0x38, 0x50, 0xdd, 0x6c, 0x89, 0x57, 0xc3, 0x66, 0x04, 0x0d, 0x42, 0xbb, 0xda, 0x42, 0x0f, 0xe1,
+	0x06, 0xee, 0x50, 0xe2, 0x5a, 0x98, 0x9a, 0x7d, 0xa2, 0xc7, 0x33, 0x66, 0xa2, 0x8c, 0x7c, 0x2c,
+	0x66, 0x27, 0x4a, 0x5e, 0x81, 0x79, 0xde, 0x90, 0xde, 0x27, 0xae, 0x67, 0xda, 0x96, 0xf8, 0x8d,
+	0x28, 0x25, 0xc3, 0x3d, 0x4f, 0x7c, 0x07, 0x2a, 0xc1, 0xa2, 0x4b, 0x3c, 0xe2, 0xf6, 0x49, 0x4b,
+	0x37, 0x1d, 0xdd, 0xc5, 0x56, 0x9b, 0x88, 0xa9, 0x28, 0x7a, 0x21, 0xf4, 0xaa, 0x8e, 0xc6, 0x7c,
+	0x8c, 0xc3, 0x43, 0xdb, 0xa3, 0x22, 0x84, 0x31, 0x49, 0x8d, 0x1b, 0x98, 0xc3, 0xb1, 0x5d, 0x2a,
+	0xa6, 0x97, 0x85, 0x95, 0x99, 0xc0, 0xc1, 0x0c, 0xe8, 0x3e, 0x5c, 0x33, 0x7a, 0xae, 0x4b, 0x2c,
+	0x3a, 0x84, 0x22, 0x13, 0x15, 0x58, 0x0c, 0xfc, 0x31, 0x04, 0x8f, 0x21, 0x6d, 0xb8, 0x04, 0x53,
+	0xa2, 0xb3, 0x15, 0x15, 0xe7, 0x97, 0x85, 0x95, 0xf4, 0x5a, 0x21, 0xe4, 0x3c, 0x5c, 0xee, 0x62,
+	0x33, 0x5c, 0x6e, 0xbf, 0x10, 0xf8, 0x39, 0xcc, 0x8a, 0x14, 0x98, 0xf1, 0x28, 0xa6, 0x44, 0xcc,
+	0x2e, 0x0b, 0x2b, 0xd9, 0xb5, 0xd5, 0xa9, 0xd6, 0xab, 0xc1, 0x32, 0xfc, 0x5a, 0x7e, 0x36, 0x5a,
+	0x85, 0x2c, 0x7b, 0xe8, 0x79, 0x7a, 0x97, 0x78, 0x1e, 0x6e, 0x13, 0x71, 0x21, 0x6a, 0x7c, 0xde,
+	0x77, 0xed, 0xfa, 0x1e, 0xf4, 0x69, 0x48, 0xbb, 0x61, 0x5b, 0x07, 0x66, 0xdb, 0x13, 0x73, 0x7c,
+	0xab, 0x7c, 0x6f, 0xaa, 0x4f, 0x6b, 0xcc, 0x5c, 0xf6, 0x13, 0xf9, 0x86, 0x89, 0x2f, 0x57, 0x60,
+	0x47, 0x1b, 0x70, 0x95, 0x9a, 0xc4, 0x15, 0x17, 0x39, 0xa6, 0x3b, 0x53, 0x15, 0x6e, 0x9a, 0xc4,
+	0x0d, 0x36, 0x3b, 0xcb, 0x45, 0x77, 0x20, 0xdb, 0x25, 0x5d, 0xdb, 0x3d, 0xd6, 0x3d, 0xf3, 0x39,
+	0xd1, 0xdb, 0xfb, 0x22, 0x0a, 0x97, 0x2c, 0xa1, 0x65, 0x7c, 0x57, 0xc3, 0x7c, 0x4e, 0xb6, 0xf6,
+	0xd1, 0x1a, 0x20, 0xdc, 0xa3, 0x87, 0xb6, 0x6b, 0x3e, 0x27, 0x2d, 0xdd, 0x22, 0xf4, 0xa9, 0xed,
+	0x1e, 0x89, 0x4b, 0xd1, 0xf6, 0x58, 0x8c, 0xdc, 0x55, 0xdf, 0x8b, 0x3e, 0x02, 0xd1, 0x61, 0x9b,
+	0xcb, 0xa3, 0xc4, 0x32, 0x88, 0x6e, 0xe2, 0xae, 0x6e, 0xb6, 0x88, 0x45, 0x4d, 0x7a, 0x2c, 0xe6,
+	0x23, 0xea, 0xae, 0xc7, 0x82, 0x54, 0xdc, 0x55, 0x83, 0x10, 0xf4, 0x03, 0xc8, 0x18, 0xb6, 0x65,
+	0x11, 0x83, 0xea, 0x5d, 0xbb, 0x45, 0xc4, 0xeb, 0x1c, 0xe9, 0x74, 0xa7, 0xad, 0xec, 0x27, 0xee,
+	0xda, 0x2d, 0xe2, 0xb7, 0x97, 0x36, 0x22, 0x4b, 0xe1, 0x01, 0xa4, 0x63, 0xc7, 0x11, 0xe5, 0x20,
+	0x79, 0x44, 0x8e, 0xfd, 0xbb, 0x40, 0x63, 0x8f, 0x68, 0x09, 0x66, 0xfa, 0xb8, 0xd3, 0x0b, 0x8f,
+	0xbf, 0xff, 0xb2, 0x9e, 0xf8, 0x50, 0x28, 0x3c, 0x82, 0xc5, 0x53, 0xcb, 0xf3, 0x3a, 0x05, 0xa4,
+	0xcf, 0x05, 0x98, 0xe1, 0x7b, 0x0b, 0xe5, 0x61, 0xb1, 0xd1, 0x94, 0x9b, 0x8a, 0xbe, 0x57, 0x6d,
+	0xd4, 0x95, 0xb2, 0xba, 0xa9, 0x2a, 0x95, 0xdc, 0x15, 0x94, 0x81, 0xb9, 0xb2, 0xa6, 0xc8, 0x4d,
+	0xb5, 0xba, 0x95, 0x13, 0x50, 0x0a, 0x66, 0x34, 0x45, 0xae, 0xfc, 0x30, 0x97, 0x60, 0x8e, 0xbd,
+	0x7a, 0xc5, 0x77, 0x24, 0xd9, 0x5b, 0x45, 0xd9, 0x51, 0xf8, 0xdb, 0x55, 0x34, 0x0f, 0x29, 0x4d,
+	0xa9, 0xcb, 0xaa, 0xc6, 0x5e, 0x67, 0xd0, 0x02, 0xa4, 0x77, 0x65, 0xb5, 0xda, 0x54, 0xaa, 0x72,
+	0xb5, 0xac, 0xe4, 0x66, 0x99, 0x5f, 0xdd, 0xad, 0xd7, 0x34, 0x1e, 0x3e, 0x87, 0x72, 0x90, 0xd9,
+	0x94, 0xd5, 0x1d, 0xb5, 0xba, 0xa5, 0xd7, 0x9e, 0x28, 0x5a, 0x0e, 0xa4, 0x0f, 0xe1, 0x2a, 0xdb,
+	0x1d, 0x68, 0x09, 0x72, 0x4d, 0x55, 0xd1, 0x46, 0x7a, 0x4a, 0xc1, 0xcc, 0x86, 0xdc, 0x50, 0xcb,
+	0x39, 0x81, 0x95, 0x6e, 0x34, 0xe5, 0x6a, 0x45, 0xd6, 0x2a, 0xfa, 0xb6, 0x9c, 0x4b, 0x4a, 0x3f,
+	0x82, 0x74, 0x8c, 0x6d, 0xf4, 0x0e, 0x88, 0xe5, 0x5a, 0xb5, 0xaa, 0x94, 0x9b, 0xfa, 0x6e, 0xad,
+	0x32, 0x0a, 0x0e, 0x41, 0xb6, 0xa2, 0x6a, 0xcc, 0x59, 0x57, 0x14, 0xcd, 0x87, 0x58, 0x80, 0xeb,
+	0x75, 0x4d, 0x7d, 0xc2, 0x98, 0x68, 0x28, 0xda, 0x13, 0xb5, 0xac, 0xe8, 0x72, 0xb9, 0xac, 0x34,
+	0x1a, 0xb9, 0xc4, 0xfa, 0xa7, 0xff, 0x96, 0x7f, 0x0c, 0x37, 0xfd, 0x45, 0xf6, 0xd7, 0x1d, 0x3b,
+	0xa6, 0x57, 0x34, 0xec, 0x6e, 0x69, 0x70, 0x97, 0x7f, 0xdf, 0x71, 0xed, 0x9f, 0x10, 0x83, 0x7a,
+	0xa5, 0x17, 0xc1, 0xd3, 0x49, 0x29, 0xbc, 0x5e, 0xbc, 0xd2, 0x8b, 0xf0, 0xf1, 0xa4, 0x64, 0x06,
+	0x19, 0x5e, 0xe9, 0x45, 0xf8, 0x78, 0x22, 0x7d, 0x21, 0xc0, 0xd2, 0x8e, 0xe9, 0xd1, 0xb0, 0x9c,
+	0xa7, 0x91, 0x9f, 0xf6, 0x88, 0x47, 0x91, 0x0c, 0xb3, 0x0e, 0x66, 0x77, 0x51, 0x30, 0x24, 0xee,
+	0x7c, 0x29, 0x27, 0xbe, 0x92, 0x6f, 0xc1, 0x7b, 0x83, 0xda, 0xa3, 0x1d, 0x85, 0x97, 0x96, 0x16,
+	0x24, 0xa2, 0xb7, 0x21, 0xe5, 0xe0, 0x36, 0xe1, 0xa7, 0x8b, 0xef, 0x84, 0x19, 0x6d, 0x8e, 0x19,
+	0xd8, 0x99, 0x42, 0x37, 0x01, 0xb8, 0x93, 0xda, 0x47, 0xc4, 0x12, 0x93, 0x7c, 0x9f, 0xf0, 0xf0,
+	0x26, 0x33, 0x48, 0x7f, 0x14, 0x20, 0x3f, 0xd2, 0x97, 0xe7, 0xd8, 0x96, 0x47, 0xd0, 0x06, 0xa4,
+	0x06, 0x48, 0x44, 0x81, 0xdf, 0x2b, 0xb7, 0xa7, 0x39, 0x14, 0x5a, 0x94, 0x86, 0xbe, 0x05, 0x0b,
+	0x16, 0x79, 0x46, 0xf5, 0x58, 0x07, 0xfe, 0x4e, 0x9d, 0x67, 0xe6, 0x7a, 0xd8, 0x05, 0x5a, 0x86,
+	0x74, 0xcf, 0x72, 0x09, 0x36, 0x0e, 0xf1, 0x7e, 0x87, 0xf0, 0x81, 0x97, 0xd2, 0xe2, 0x26, 0xa9,
+	0x06, 0x68, 0x8b, 0x0c, 0xba, 0x0c, 0xc9, 0x7b, 0x30, 0x34, 0x5f, 0xdf, 0xe7, 0xd4, 0xbd, 0x7b,
+	0xce, 0x42, 0xfa, 0x13, 0x58, 0xfa, 0x9b, 0x00, 0xf9, 0x32, 0xbf, 0xbc, 0x47, 0x8b, 0x5e, 0xc2,
+	0x8a, 0xdc, 0x86, 0x74, 0x48, 0x02, 0x9b, 0x3c, 0x89, 0x68, 0xfc, 0x43, 0x68, 0x57, 0x5b, 0x48,
+	0x81, 0xb9, 0xf0, 0x8d, 0x2f, 0xcc, 0x94, 0x04, 0xfb, 0x85, 0x06, 0xa9, 0xd2, 0xef, 0x05, 0xc8,
+	0xef, 0x39, 0xad, 0x31, 0x48, 0x1e, 0x43, 0xba, 0xc7, 0x1d, 0x5c, 0xc1, 0x70, 0x38, 0xe3, 0x66,
+	0xda, 0x26, 0x13, 0x39, 0xbb, 0xd8, 0x3b, 0x0a, 0x5a, 0xf4, 0x73, 0x98, 0x61, 0xa8, 0xc5, 0xc4,
+	0xc5, 0x5b, 0x3c, 0x81, 0xeb, 0x7b, 0x4e, 0xdb, 0xc5, 0x2d, 0x72, 0x79, 0x2b, 0x78, 0x5a, 0x73,
+	0xc4, 0x68, 0x1e, 0xd2, 0x1c, 0x92, 0x06, 0xf9, 0x0a, 0xe9, 0x10, 0x7a, 0x89, 0x5f, 0x97, 0x24,
+	0x48, 0x6d, 0x19, 0x5e, 0x83, 0x4b, 0x4c, 0x94, 0x87, 0x64, 0xcf, 0x35, 0xe3, 0x32, 0x8f, 0xbd,
+	0x4b, 0x3a, 0xa4, 0x55, 0xcb, 0xe9, 0x51, 0xff, 0x16, 0x47, 0x9b, 0x00, 0x6d, 0xc3, 0xd3, 0x7d,
+	0x59, 0x1a, 0xac, 0xc6, 0xfb, 0x93, 0xe8, 0x1c, 0x7c, 0x60, 0xfb, 0x8a, 0x96, 0x6a, 0x87, 0x2f,
+	0x1b, 0x73, 0x30, 0xeb, 0xd7, 0x90, 0x7e, 0x2e, 0x40, 0x5e, 0xed, 0x32, 0xd1, 0x33, 0x8a, 0xec,
+	0x4c, 0xe5, 0x59, 0x83, 0x8c, 0xc9, 0x7a, 0x0a, 0x24, 0x43, 0xb0, 0xf1, 0x3e, 0x98, 0xbc, 0xaa,
+	0x03, 0x0c, 0x7e, 0xa5, 0xb4, 0x19, 0x59, 0xa4, 0x0f, 0x20, 0xbb, 0x65, 0x78, 0x15, 0xe2, 0x51,
+	0xd3, 0xe2, 0xa7, 0xe0, 0x2c, 0x36, 0x28, 0x64, 0x6a, 0x3d, 0x1a, 0xd1, 0xb1, 0x07, 0x0b, 0x8c,
+	0x8e, 0x56, 0x94, 0x19, 0x70, 0xb2, 0x7a, 0x0e, 0x27, 0xb1, 0x6f, 0x6d, 0x5f, 0xd1, 0xb2, 0xed,
+	0x21, 0xcb, 0xc6, 0x3c, 0xa4, 0x63, 0x25, 0xa5, 0xcf, 0x04, 0xc8, 0x2b, 0xcf, 0x5e, 0x8b, 0x22,
+	0x0d, 0xe6, 0x6d, 0xde, 0xe8, 0x30, 0x47, 0x2b, 0x93, 0xda, 0x8a, 0x23, 0x0b, 0xb6, 0xa0, 0x1d,
+	0x33, 0x49, 0x7f, 0x4d, 0xc0, 0x8d, 0x4d, 0x6c, 0x76, 0xec, 0x3e, 0x71, 0x2f, 0xf1, 0x0c, 0x9c,
+	0xc0, 0x52, 0x0b, 0x53, 0xac, 0xb3, 0xb3, 0x4c, 0x0c, 0xae, 0x74, 0xb9, 0x88, 0x49, 0x70, 0x11,
+	0xb3, 0x39, 0xa9, 0xe3, 0x33, 0xba, 0x29, 0x56, 0x30, 0xc5, 0xf5, 0x41, 0xb9, 0x48, 0xda, 0xa0,
+	0xd6, 0x29, 0x87, 0x74, 0x00, 0xe8, 0x74, 0x38, 0xba, 0x0d, 0xcb, 0x15, 0xb9, 0x29, 0xeb, 0x75,
+	0xad, 0xd6, 0x54, 0xca, 0x4d, 0xb5, 0x56, 0x1d, 0x37, 0xa3, 0xf3, 0xb0, 0xb8, 0xa3, 0xee, 0xaa,
+	0x4d, 0xa5, 0xa2, 0xf3, 0xe8, 0x9d, 0x5a, 0xa3, 0x91, 0x13, 0xd0, 0x35, 0x58, 0xd8, 0xac, 0x69,
+	0x65, 0x25, 0x66, 0x4c, 0x48, 0xff, 0x11, 0x20, 0x17, 0x5e, 0xb2, 0xbb, 0x84, 0x62, 0xd6, 0x0a,
+	0xb2, 0x60, 0x01, 0xf7, 0xb1, 0xd9, 0x61, 0xf3, 0x41, 0x7f, 0x6e, 0x5b, 0x83, 0x31, 0xf5, 0x78,
+	0x12, 0xec, 0xd1, 0x32, 0x45, 0x39, 0xac, 0xf1, 0x09, 0x2b, 0x31, 0x10, 0xc2, 0x49, 0x2d, 0x8b,
+	0x87, 0x3c, 0x85, 0x23, 0xb8, 0x36, 0x26, 0x76, 0x8c, 0x2a, 0xfb, 0x38, 0xae, 0xca, 0xce, 0xd9,
+	0x37, 0xac, 0x50, 0xd8, 0x4a, 0x5c, 0xbf, 0x65, 0x21, 0x13, 0x77, 0xad, 0xfd, 0x79, 0x11, 0xa0,
+	0xcc, 0xf2, 0xb9, 0x2c, 0x44, 0x7f, 0x11, 0x60, 0x7e, 0x68, 0x6c, 0xa3, 0x89, 0x82, 0x75, 0x9c,
+	0xf2, 0x28, 0xdc, 0x7b, 0x8d, 0x0c, 0x5f, 0x13, 0x48, 0xe5, 0x57, 0x72, 0x30, 0xe2, 0x7e, 0xf1,
+	0x8f, 0x7f, 0xfd, 0x3a, 0xf1, 0x5d, 0xb4, 0x36, 0xf8, 0x01, 0xe0, 0x85, 0x6f, 0xff, 0x68, 0xa0,
+	0x92, 0x56, 0x63, 0xea, 0x68, 0x35, 0xa6, 0x8a, 0xd0, 0x9f, 0x04, 0x48, 0xc7, 0x66, 0x39, 0x2a,
+	0x4e, 0x3c, 0xee, 0xa7, 0x86, 0x7e, 0x61, 0xaa, 0x09, 0x24, 0xc9, 0xaf, 0x64, 0x7e, 0x44, 0x4e,
+	0x37, 0xca, 0xac, 0x67, 0xb4, 0x19, 0xd3, 0x6e, 0xab, 0x27, 0xe8, 0xb3, 0x04, 0x64, 0x87, 0x25,
+	0x02, 0x9a, 0xc8, 0xd9, 0x58, 0x39, 0x51, 0xb8, 0x19, 0xa6, 0xc4, 0x7e, 0x79, 0x28, 0xd6, 0xc2,
+	0x5f, 0x1e, 0xa4, 0xdf, 0x09, 0x2f, 0xe5, 0x75, 0xb8, 0x35, 0x05, 0x24, 0x74, 0x6d, 0x74, 0x70,
+	0xcb, 0xd6, 0xf1, 0x2b, 0xf9, 0x6d, 0x9f, 0xf8, 0xbb, 0x31, 0xc1, 0x31, 0x78, 0xe6, 0xe0, 0x3f,
+	0x96, 0x2e, 0xb0, 0x4a, 0xeb, 0x83, 0xe1, 0x8d, 0x7e, 0x99, 0x80, 0xec, 0xb0, 0xbe, 0x98, 0x4c,
+	0xc3, 0x58, 0x2d, 0x72, 0x1e, 0x0d, 0x7f, 0x78, 0x53, 0x1a, 0x96, 0x62, 0x4a, 0x67, 0x18, 0xff,
+	0xd6, 0xda, 0xc3, 0x08, 0x7f, 0xe8, 0x29, 0x4e, 0xbb, 0x0b, 0x62, 0x44, 0xfc, 0x4f, 0x80, 0x85,
+	0x11, 0x19, 0x83, 0xd6, 0x26, 0x33, 0x31, 0x4e, 0xf3, 0x9c, 0x47, 0xc5, 0x6f, 0xdf, 0x94, 0x0a,
+	0xc4, 0xb0, 0xdd, 0x1d, 0xd2, 0x46, 0x9c, 0x88, 0x47, 0xd2, 0xfa, 0xeb, 0x9f, 0x82, 0xf5, 0x9e,
+	0x0f, 0x62, 0x5d, 0x58, 0x45, 0x5f, 0x09, 0x90, 0x1d, 0x96, 0x1b, 0x93, 0x77, 0xc2, 0x58, 0x69,
+	0x72, 0x1e, 0xfc, 0x2f, 0xde, 0x14, 0xfe, 0x22, 0x87, 0x1f, 0x17, 0x39, 0xc1, 0x31, 0x78, 0x70,
+	0x01, 0xf4, 0x26, 0x87, 0xc0, 0xc0, 0xff, 0x57, 0x80, 0xec, 0xb0, 0x90, 0x98, 0x0c, 0x7e, 0xac,
+	0xe8, 0x38, 0x0f, 0xfc, 0x6f, 0x2e, 0x67, 0xed, 0x87, 0xe4, 0xcb, 0x1b, 0xa0, 0x27, 0xcf, 0x42,
+	0xf4, 0xbf, 0x4a, 0x40, 0x6e, 0x54, 0x31, 0xa0, 0xfb, 0x17, 0xd0, 0x17, 0x5f, 0xfb, 0x7d, 0xf8,
+	0x16, 0x67, 0x60, 0x9c, 0x2a, 0xe2, 0x44, 0x3c, 0x96, 0x1e, 0x5e, 0x80, 0x88, 0x83, 0x00, 0x0c,
+	0xa3, 0xe2, 0x9f, 0x02, 0x64, 0x87, 0xff, 0x9c, 0x98, 0xbc, 0x11, 0xc6, 0xfe, 0xe9, 0x71, 0x1e,
+	0x0d, 0xce, 0x4b, 0xf9, 0x2e, 0xe4, 0x47, 0x01, 0x2a, 0x5d, 0x87, 0x1e, 0x9f, 0x81, 0x3b, 0x36,
+	0xed, 0x56, 0x2f, 0x30, 0xed, 0x0a, 0xdb, 0x2f, 0xe5, 0xa5, 0x71, 0x92, 0xf3, 0xef, 0x72, 0xf1,
+	0x90, 0x52, 0xc7, 0x5b, 0x2f, 0x95, 0x9e, 0x3e, 0x7d, 0x3a, 0xaa, 0x47, 0x71, 0x8f, 0x1e, 0xfa,
+	0x3f, 0xfe, 0x7f, 0xdb, 0xe9, 0x60, 0x7a, 0x60, 0xbb, 0xdd, 0x8d, 0x9f, 0xc1, 0x37, 0x0d, 0xbb,
+	0x3b, 0x81, 0x92, 0x8d, 0x42, 0x24, 0x65, 0x1a, 0xc4, 0xed, 0x9b, 0x06, 0xd9, 0x20, 0xbe, 0x8c,
+	0xb4, 0xeb, 0xc2, 0x27, 0x8f, 0x82, 0xcc, 0xb6, 0xdd, 0xc1, 0x56, 0xbb, 0x68, 0xbb, 0xed, 0x52,
+	0x9b, 0x58, 0x1c, 0x6d, 0x29, 0xfa, 0xfc, 0xb8, 0x7f, 0x43, 0x3c, 0xe4, 0x6f, 0xfb, 0xb3, 0x3c,
+	0xf6, 0xfe, 0xff, 0x03, 0x00, 0x00, 0xff, 0xff, 0x26, 0x1c, 0x79, 0x8a, 0xb1, 0x18, 0x00, 0x00,
 }
 
 // Reference imports to suppress errors if they are not otherwise used.
@@ -1371,6 +1477,7 @@
 	// 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
@@ -1397,6 +1504,9 @@
 	// 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)
+	// Upgrades Redis instance to the newer Redis version specified in the
+	// request.
+	UpgradeInstance(ctx context.Context, in *UpgradeInstanceRequest, 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
@@ -1465,6 +1575,15 @@
 	return out, nil
 }
 
+func (c *cloudRedisClient) UpgradeInstance(ctx context.Context, in *UpgradeInstanceRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
+	out := new(longrunning.Operation)
+	err := c.cc.Invoke(ctx, "/google.cloud.redis.v1beta1.CloudRedis/UpgradeInstance", 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.v1beta1.CloudRedis/ImportInstance", in, out, opts...)
@@ -1507,6 +1626,7 @@
 	// 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
@@ -1533,6 +1653,9 @@
 	// 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)
+	// Upgrades Redis instance to the newer Redis version specified in the
+	// request.
+	UpgradeInstance(context.Context, *UpgradeInstanceRequest) (*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
@@ -1573,6 +1696,9 @@
 func (*UnimplementedCloudRedisServer) UpdateInstance(ctx context.Context, req *UpdateInstanceRequest) (*longrunning.Operation, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method UpdateInstance not implemented")
 }
+func (*UnimplementedCloudRedisServer) UpgradeInstance(ctx context.Context, req *UpgradeInstanceRequest) (*longrunning.Operation, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method UpgradeInstance not implemented")
+}
 func (*UnimplementedCloudRedisServer) ImportInstance(ctx context.Context, req *ImportInstanceRequest) (*longrunning.Operation, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method ImportInstance not implemented")
 }
@@ -1662,6 +1788,24 @@
 	return interceptor(ctx, in, info, handler)
 }
 
+func _CloudRedis_UpgradeInstance_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(UpgradeInstanceRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(CloudRedisServer).UpgradeInstance(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/google.cloud.redis.v1beta1.CloudRedis/UpgradeInstance",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(CloudRedisServer).UpgradeInstance(ctx, req.(*UpgradeInstanceRequest))
+	}
+	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 {
@@ -1755,6 +1899,10 @@
 			Handler:    _CloudRedis_UpdateInstance_Handler,
 		},
 		{
+			MethodName: "UpgradeInstance",
+			Handler:    _CloudRedis_UpgradeInstance_Handler,
+		},
+		{
 			MethodName: "ImportInstance",
 			Handler:    _CloudRedis_ImportInstance_Handler,
 		},