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

This is an auto-generated regeneration of the .pb.go files by
cloud.google.com/go/internal/gapicgen. Once this PR is submitted, autotogen 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 passin 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
  gapicgen to assign reviewers to the gocloud CL.

Corresponding gocloud CL: https://code-review.googlesource.com/c/gocloud/+/50770
diff --git a/googleapis/ads/googleads/v2/errors/conversion_upload_error.pb.go b/googleapis/ads/googleads/v2/errors/conversion_upload_error.pb.go
index 6af9514..e7824bd 100644
--- a/googleapis/ads/googleads/v2/errors/conversion_upload_error.pb.go
+++ b/googleapis/ads/googleads/v2/errors/conversion_upload_error.pb.go
@@ -42,7 +42,7 @@
 	// specified conversion action.
 	ConversionUploadErrorEnum_EXPIRED_GCLID ConversionUploadErrorEnum_ConversionUploadError = 5
 	// The click associated with the given gclid occurred too recently. Please
-	// try uploading again after 24 hours have passed since the click occurred.
+	// try uploading again after 6 hours have passed since the click occurred.
 	ConversionUploadErrorEnum_TOO_RECENT_GCLID ConversionUploadErrorEnum_ConversionUploadError = 6
 	// The click associated with the given gclid could not be found in the
 	// system. This can happen if Google Click IDs are collected for non Google
@@ -78,7 +78,7 @@
 	// The request contained two or more conversions with the same order id and
 	// conversion action combination.
 	ConversionUploadErrorEnum_DUPLICATE_ORDER_ID ConversionUploadErrorEnum_ConversionUploadError = 16
-	// The call occurred too recently. Please try uploading again after 24 hours
+	// The call occurred too recently. Please try uploading again after 6 hours
 	// have passed since the call occurred.
 	ConversionUploadErrorEnum_TOO_RECENT_CALL ConversionUploadErrorEnum_ConversionUploadError = 17
 	// The click that initiated the call is too old for this conversion to be
diff --git a/googleapis/ads/googleads/v2/resources/campaign.pb.go b/googleapis/ads/googleads/v2/resources/campaign.pb.go
index 1aa7bb6..0ddc44d 100644
--- a/googleapis/ads/googleads/v2/resources/campaign.pb.go
+++ b/googleapis/ads/googleads/v2/resources/campaign.pb.go
@@ -715,48 +715,6 @@
 	return nil
 }
 
-// Selective optimization setting for this campaign, which includes a set of
-// conversion actions to optimize this campaign towards.
-type Campaign_SelectiveOptimization struct {
-	// The selected set of conversion actions for optimizing this campaign.
-	ConversionActions    []*wrappers.StringValue `protobuf:"bytes,1,rep,name=conversion_actions,json=conversionActions,proto3" json:"conversion_actions,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}                `json:"-"`
-	XXX_unrecognized     []byte                  `json:"-"`
-	XXX_sizecache        int32                   `json:"-"`
-}
-
-func (m *Campaign_SelectiveOptimization) Reset()         { *m = Campaign_SelectiveOptimization{} }
-func (m *Campaign_SelectiveOptimization) String() string { return proto.CompactTextString(m) }
-func (*Campaign_SelectiveOptimization) ProtoMessage()    {}
-func (*Campaign_SelectiveOptimization) Descriptor() ([]byte, []int) {
-	return fileDescriptor_4590562366212c3a, []int{0, 2}
-}
-
-func (m *Campaign_SelectiveOptimization) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_Campaign_SelectiveOptimization.Unmarshal(m, b)
-}
-func (m *Campaign_SelectiveOptimization) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_Campaign_SelectiveOptimization.Marshal(b, m, deterministic)
-}
-func (m *Campaign_SelectiveOptimization) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_Campaign_SelectiveOptimization.Merge(m, src)
-}
-func (m *Campaign_SelectiveOptimization) XXX_Size() int {
-	return xxx_messageInfo_Campaign_SelectiveOptimization.Size(m)
-}
-func (m *Campaign_SelectiveOptimization) XXX_DiscardUnknown() {
-	xxx_messageInfo_Campaign_SelectiveOptimization.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_Campaign_SelectiveOptimization proto.InternalMessageInfo
-
-func (m *Campaign_SelectiveOptimization) GetConversionActions() []*wrappers.StringValue {
-	if m != nil {
-		return m.ConversionActions
-	}
-	return nil
-}
-
 // The setting for controlling Dynamic Search Ads (DSA).
 type Campaign_DynamicSearchAdsSetting struct {
 	// The Internet domain name that this setting represents, e.g., "google.com"
@@ -777,7 +735,7 @@
 func (m *Campaign_DynamicSearchAdsSetting) String() string { return proto.CompactTextString(m) }
 func (*Campaign_DynamicSearchAdsSetting) ProtoMessage()    {}
 func (*Campaign_DynamicSearchAdsSetting) Descriptor() ([]byte, []int) {
-	return fileDescriptor_4590562366212c3a, []int{0, 3}
+	return fileDescriptor_4590562366212c3a, []int{0, 2}
 }
 
 func (m *Campaign_DynamicSearchAdsSetting) XXX_Unmarshal(b []byte) error {
@@ -844,7 +802,7 @@
 func (m *Campaign_AppCampaignSetting) String() string { return proto.CompactTextString(m) }
 func (*Campaign_AppCampaignSetting) ProtoMessage()    {}
 func (*Campaign_AppCampaignSetting) Descriptor() ([]byte, []int) {
-	return fileDescriptor_4590562366212c3a, []int{0, 4}
+	return fileDescriptor_4590562366212c3a, []int{0, 3}
 }
 
 func (m *Campaign_AppCampaignSetting) XXX_Unmarshal(b []byte) error {
@@ -886,6 +844,57 @@
 	return enums.AppCampaignAppStoreEnum_UNSPECIFIED
 }
 
+// Describes how unbranded pharma ads will be displayed.
+type Campaign_VanityPharma struct {
+	// The display mode for vanity pharma URLs.
+	VanityPharmaDisplayUrlMode enums.VanityPharmaDisplayUrlModeEnum_VanityPharmaDisplayUrlMode `protobuf:"varint,1,opt,name=vanity_pharma_display_url_mode,json=vanityPharmaDisplayUrlMode,proto3,enum=google.ads.googleads.v2.enums.VanityPharmaDisplayUrlModeEnum_VanityPharmaDisplayUrlMode" json:"vanity_pharma_display_url_mode,omitempty"`
+	// The text that will be displayed in display URL of the text ad when
+	// website description is the selected display mode for vanity pharma URLs.
+	VanityPharmaText     enums.VanityPharmaTextEnum_VanityPharmaText `protobuf:"varint,2,opt,name=vanity_pharma_text,json=vanityPharmaText,proto3,enum=google.ads.googleads.v2.enums.VanityPharmaTextEnum_VanityPharmaText" json:"vanity_pharma_text,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}                                    `json:"-"`
+	XXX_unrecognized     []byte                                      `json:"-"`
+	XXX_sizecache        int32                                       `json:"-"`
+}
+
+func (m *Campaign_VanityPharma) Reset()         { *m = Campaign_VanityPharma{} }
+func (m *Campaign_VanityPharma) String() string { return proto.CompactTextString(m) }
+func (*Campaign_VanityPharma) ProtoMessage()    {}
+func (*Campaign_VanityPharma) Descriptor() ([]byte, []int) {
+	return fileDescriptor_4590562366212c3a, []int{0, 4}
+}
+
+func (m *Campaign_VanityPharma) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_Campaign_VanityPharma.Unmarshal(m, b)
+}
+func (m *Campaign_VanityPharma) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_Campaign_VanityPharma.Marshal(b, m, deterministic)
+}
+func (m *Campaign_VanityPharma) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_Campaign_VanityPharma.Merge(m, src)
+}
+func (m *Campaign_VanityPharma) XXX_Size() int {
+	return xxx_messageInfo_Campaign_VanityPharma.Size(m)
+}
+func (m *Campaign_VanityPharma) XXX_DiscardUnknown() {
+	xxx_messageInfo_Campaign_VanityPharma.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Campaign_VanityPharma proto.InternalMessageInfo
+
+func (m *Campaign_VanityPharma) GetVanityPharmaDisplayUrlMode() enums.VanityPharmaDisplayUrlModeEnum_VanityPharmaDisplayUrlMode {
+	if m != nil {
+		return m.VanityPharmaDisplayUrlMode
+	}
+	return enums.VanityPharmaDisplayUrlModeEnum_UNSPECIFIED
+}
+
+func (m *Campaign_VanityPharma) GetVanityPharmaText() enums.VanityPharmaTextEnum_VanityPharmaText {
+	if m != nil {
+		return m.VanityPharmaText
+	}
+	return enums.VanityPharmaTextEnum_UNSPECIFIED
+}
+
 // The setting for Shopping campaigns. Defines the universe of products that
 // can be advertised by the campaign, and how this campaign interacts with
 // other Shopping campaigns.
@@ -1007,6 +1016,48 @@
 	return nil
 }
 
+// Selective optimization setting for this campaign, which includes a set of
+// conversion actions to optimize this campaign towards.
+type Campaign_SelectiveOptimization struct {
+	// The selected set of conversion actions for optimizing this campaign.
+	ConversionActions    []*wrappers.StringValue `protobuf:"bytes,1,rep,name=conversion_actions,json=conversionActions,proto3" json:"conversion_actions,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}                `json:"-"`
+	XXX_unrecognized     []byte                  `json:"-"`
+	XXX_sizecache        int32                   `json:"-"`
+}
+
+func (m *Campaign_SelectiveOptimization) Reset()         { *m = Campaign_SelectiveOptimization{} }
+func (m *Campaign_SelectiveOptimization) String() string { return proto.CompactTextString(m) }
+func (*Campaign_SelectiveOptimization) ProtoMessage()    {}
+func (*Campaign_SelectiveOptimization) Descriptor() ([]byte, []int) {
+	return fileDescriptor_4590562366212c3a, []int{0, 7}
+}
+
+func (m *Campaign_SelectiveOptimization) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_Campaign_SelectiveOptimization.Unmarshal(m, b)
+}
+func (m *Campaign_SelectiveOptimization) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_Campaign_SelectiveOptimization.Marshal(b, m, deterministic)
+}
+func (m *Campaign_SelectiveOptimization) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_Campaign_SelectiveOptimization.Merge(m, src)
+}
+func (m *Campaign_SelectiveOptimization) XXX_Size() int {
+	return xxx_messageInfo_Campaign_SelectiveOptimization.Size(m)
+}
+func (m *Campaign_SelectiveOptimization) XXX_DiscardUnknown() {
+	xxx_messageInfo_Campaign_SelectiveOptimization.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Campaign_SelectiveOptimization proto.InternalMessageInfo
+
+func (m *Campaign_SelectiveOptimization) GetConversionActions() []*wrappers.StringValue {
+	if m != nil {
+		return m.ConversionActions
+	}
+	return nil
+}
+
 // Represents a collection of settings related to ads geotargeting.
 type Campaign_GeoTargetTypeSetting struct {
 	// The setting used for positive geotargeting in this particular campaign.
@@ -1022,7 +1073,7 @@
 func (m *Campaign_GeoTargetTypeSetting) String() string { return proto.CompactTextString(m) }
 func (*Campaign_GeoTargetTypeSetting) ProtoMessage()    {}
 func (*Campaign_GeoTargetTypeSetting) Descriptor() ([]byte, []int) {
-	return fileDescriptor_4590562366212c3a, []int{0, 7}
+	return fileDescriptor_4590562366212c3a, []int{0, 8}
 }
 
 func (m *Campaign_GeoTargetTypeSetting) XXX_Unmarshal(b []byte) error {
@@ -1057,68 +1108,17 @@
 	return enums.NegativeGeoTargetTypeEnum_UNSPECIFIED
 }
 
-// Describes how unbranded pharma ads will be displayed.
-type Campaign_VanityPharma struct {
-	// The display mode for vanity pharma URLs.
-	VanityPharmaDisplayUrlMode enums.VanityPharmaDisplayUrlModeEnum_VanityPharmaDisplayUrlMode `protobuf:"varint,1,opt,name=vanity_pharma_display_url_mode,json=vanityPharmaDisplayUrlMode,proto3,enum=google.ads.googleads.v2.enums.VanityPharmaDisplayUrlModeEnum_VanityPharmaDisplayUrlMode" json:"vanity_pharma_display_url_mode,omitempty"`
-	// The text that will be displayed in display URL of the text ad when
-	// website description is the selected display mode for vanity pharma URLs.
-	VanityPharmaText     enums.VanityPharmaTextEnum_VanityPharmaText `protobuf:"varint,2,opt,name=vanity_pharma_text,json=vanityPharmaText,proto3,enum=google.ads.googleads.v2.enums.VanityPharmaTextEnum_VanityPharmaText" json:"vanity_pharma_text,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}                                    `json:"-"`
-	XXX_unrecognized     []byte                                      `json:"-"`
-	XXX_sizecache        int32                                       `json:"-"`
-}
-
-func (m *Campaign_VanityPharma) Reset()         { *m = Campaign_VanityPharma{} }
-func (m *Campaign_VanityPharma) String() string { return proto.CompactTextString(m) }
-func (*Campaign_VanityPharma) ProtoMessage()    {}
-func (*Campaign_VanityPharma) Descriptor() ([]byte, []int) {
-	return fileDescriptor_4590562366212c3a, []int{0, 8}
-}
-
-func (m *Campaign_VanityPharma) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_Campaign_VanityPharma.Unmarshal(m, b)
-}
-func (m *Campaign_VanityPharma) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_Campaign_VanityPharma.Marshal(b, m, deterministic)
-}
-func (m *Campaign_VanityPharma) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_Campaign_VanityPharma.Merge(m, src)
-}
-func (m *Campaign_VanityPharma) XXX_Size() int {
-	return xxx_messageInfo_Campaign_VanityPharma.Size(m)
-}
-func (m *Campaign_VanityPharma) XXX_DiscardUnknown() {
-	xxx_messageInfo_Campaign_VanityPharma.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_Campaign_VanityPharma proto.InternalMessageInfo
-
-func (m *Campaign_VanityPharma) GetVanityPharmaDisplayUrlMode() enums.VanityPharmaDisplayUrlModeEnum_VanityPharmaDisplayUrlMode {
-	if m != nil {
-		return m.VanityPharmaDisplayUrlMode
-	}
-	return enums.VanityPharmaDisplayUrlModeEnum_UNSPECIFIED
-}
-
-func (m *Campaign_VanityPharma) GetVanityPharmaText() enums.VanityPharmaTextEnum_VanityPharmaText {
-	if m != nil {
-		return m.VanityPharmaText
-	}
-	return enums.VanityPharmaTextEnum_UNSPECIFIED
-}
-
 func init() {
 	proto.RegisterType((*Campaign)(nil), "google.ads.googleads.v2.resources.Campaign")
 	proto.RegisterType((*Campaign_NetworkSettings)(nil), "google.ads.googleads.v2.resources.Campaign.NetworkSettings")
 	proto.RegisterType((*Campaign_HotelSettingInfo)(nil), "google.ads.googleads.v2.resources.Campaign.HotelSettingInfo")
-	proto.RegisterType((*Campaign_SelectiveOptimization)(nil), "google.ads.googleads.v2.resources.Campaign.SelectiveOptimization")
 	proto.RegisterType((*Campaign_DynamicSearchAdsSetting)(nil), "google.ads.googleads.v2.resources.Campaign.DynamicSearchAdsSetting")
 	proto.RegisterType((*Campaign_AppCampaignSetting)(nil), "google.ads.googleads.v2.resources.Campaign.AppCampaignSetting")
+	proto.RegisterType((*Campaign_VanityPharma)(nil), "google.ads.googleads.v2.resources.Campaign.VanityPharma")
 	proto.RegisterType((*Campaign_ShoppingSetting)(nil), "google.ads.googleads.v2.resources.Campaign.ShoppingSetting")
 	proto.RegisterType((*Campaign_TrackingSetting)(nil), "google.ads.googleads.v2.resources.Campaign.TrackingSetting")
+	proto.RegisterType((*Campaign_SelectiveOptimization)(nil), "google.ads.googleads.v2.resources.Campaign.SelectiveOptimization")
 	proto.RegisterType((*Campaign_GeoTargetTypeSetting)(nil), "google.ads.googleads.v2.resources.Campaign.GeoTargetTypeSetting")
-	proto.RegisterType((*Campaign_VanityPharma)(nil), "google.ads.googleads.v2.resources.Campaign.VanityPharma")
 }
 
 func init() {
@@ -1126,7 +1126,7 @@
 }
 
 var fileDescriptor_4590562366212c3a = []byte{
-	// 2222 bytes of a gzipped FileDescriptorProto
+	// 2225 bytes of a gzipped FileDescriptorProto
 	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x59, 0x4b, 0x93, 0xdb, 0xc6,
 	0x11, 0x5e, 0x52, 0x96, 0x22, 0xcd, 0x3e, 0x35, 0xfb, 0x82, 0x28, 0x59, 0x91, 0x9d, 0x38, 0x91,
 	0x2d, 0x87, 0x94, 0xb9, 0x92, 0x9c, 0xac, 0x64, 0x47, 0x5c, 0x4a, 0xd6, 0xae, 0xac, 0x07, 0x0b,
@@ -1231,39 +1231,40 @@
 	0x48, 0x68, 0xde, 0xab, 0xad, 0x81, 0x09, 0xe3, 0x5b, 0xf0, 0xbe, 0x61, 0xa4, 0x88, 0x89, 0x08,
 	0xb3, 0x71, 0x4f, 0xdf, 0x2b, 0x24, 0xae, 0x69, 0x82, 0x8e, 0xc6, 0x8f, 0x38, 0x5c, 0xfb, 0x15,
 	0x58, 0x1b, 0x3f, 0x1b, 0xc1, 0x36, 0x58, 0xd5, 0x07, 0x2e, 0xb9, 0xa6, 0x98, 0x39, 0xbe, 0x67,
-	0xa2, 0x3b, 0xf3, 0x22, 0x48, 0x1f, 0xd2, 0xda, 0x0a, 0x72, 0xe0, 0xd5, 0x3c, 0xb0, 0x99, 0xfb,
-	0x25, 0x84, 0x5f, 0x03, 0x98, 0xa9, 0x1d, 0xc8, 0x55, 0xf7, 0x54, 0x56, 0xa5, 0x44, 0x0b, 0x7d,
-	0xf9, 0x0c, 0xd7, 0xd2, 0xb0, 0xda, 0x5f, 0xab, 0x60, 0x7b, 0xca, 0x51, 0x0b, 0x7e, 0x01, 0x16,
-	0x3d, 0x12, 0x22, 0x3f, 0x3a, 0xbb, 0xe5, 0x2a, 0xb2, 0x00, 0x34, 0x40, 0xdd, 0x80, 0xb5, 0xc0,
-	0x72, 0x80, 0xa2, 0x7e, 0x8c, 0xfa, 0xb2, 0xd8, 0x79, 0xd8, 0xa4, 0x44, 0x41, 0xb7, 0x9c, 0x40,
-	0xda, 0xf2, 0xb3, 0xf8, 0x12, 0x6c, 0xc5, 0x1c, 0x3b, 0x3c, 0xa6, 0x34, 0xf0, 0xb1, 0x27, 0xfb,
-	0x3e, 0xee, 0x90, 0x28, 0x18, 0x96, 0xc8, 0x86, 0xf5, 0x98, 0xe3, 0xae, 0x01, 0xbe, 0x62, 0x01,
-	0x7f, 0x19, 0x05, 0x43, 0xd8, 0x04, 0xe7, 0x8f, 0x31, 0xf6, 0xb8, 0x75, 0xbe, 0x44, 0xb8, 0xb4,
-	0x6a, 0xed, 0xdf, 0x55, 0x00, 0x27, 0x4f, 0x34, 0xf0, 0x1f, 0x15, 0x50, 0x9b, 0x7e, 0x91, 0xad,
-	0xa2, 0xb5, 0xd2, 0x3c, 0x29, 0xba, 0x7f, 0x39, 0xe3, 0x1d, 0xeb, 0xbd, 0x9f, 0x10, 0x94, 0xb9,
-	0x1c, 0x2a, 0x54, 0xb3, 0xb7, 0x7b, 0xf9, 0x13, 0x70, 0x07, 0x5c, 0x90, 0xe7, 0x3a, 0xdf, 0x2b,
-	0x15, 0xff, 0xf3, 0x88, 0xd2, 0x03, 0x0f, 0xf6, 0xc1, 0xa5, 0xf4, 0x82, 0x5f, 0xc5, 0xba, 0xf8,
-	0x4c, 0x91, 0xf1, 0xb1, 0x45, 0x69, 0x57, 0x22, 0xc7, 0x7d, 0x4f, 0xe4, 0xf6, 0x45, 0x64, 0x9e,
-	0x6a, 0x7f, 0xaa, 0x82, 0xd5, 0xb1, 0x23, 0x37, 0x7c, 0x00, 0x16, 0x43, 0xcc, 0xdc, 0x13, 0x14,
-	0x89, 0x92, 0x5b, 0x07, 0x24, 0xfa, 0x07, 0x9e, 0x4c, 0x3b, 0x8e, 0x02, 0xcc, 0x1d, 0x97, 0xc4,
-	0xb2, 0x45, 0x2f, 0x97, 0x76, 0x0a, 0xd2, 0xd6, 0x08, 0xb8, 0x0f, 0x2e, 0xa7, 0x87, 0x34, 0xca,
-	0x7c, 0xc2, 0x64, 0xdf, 0x3e, 0xe3, 0x2a, 0x77, 0xa7, 0xa9, 0x59, 0xd6, 0x12, 0x54, 0xc7, 0x80,
-	0xe0, 0x17, 0x60, 0x09, 0x47, 0xa8, 0x17, 0x60, 0x27, 0x20, 0x2e, 0x0a, 0x4a, 0xd4, 0x9a, 0x45,
-	0xad, 0xff, 0x4c, 0xaa, 0xd7, 0x6c, 0xb0, 0x3a, 0xd6, 0x99, 0xc2, 0x5f, 0x82, 0xa5, 0xec, 0xf5,
-	0x5a, 0xa9, 0x5d, 0xb9, 0x98, 0xb9, 0x55, 0xab, 0x7d, 0x5f, 0x05, 0x1b, 0x79, 0xd7, 0x02, 0xf0,
-	0x77, 0x15, 0x60, 0x4d, 0xbb, 0xc0, 0x37, 0xe9, 0x5c, 0x74, 0x07, 0xdc, 0x31, 0xf0, 0x11, 0x7e,
-	0xdd, 0xf9, 0xe6, 0xcd, 0xd8, 0x9b, 0x34, 0x4f, 0xac, 0x3c, 0x99, 0xf6, 0xeb, 0x42, 0x2d, 0x67,
-	0xb1, 0x27, 0x2f, 0x0c, 0x7c, 0xd2, 0x93, 0xdc, 0x19, 0x7b, 0x33, 0xca, 0x13, 0xd7, 0xfe, 0x56,
-	0x05, 0x4b, 0xd9, 0x73, 0x0f, 0xfc, 0xb3, 0x3c, 0xe0, 0xcd, 0xfc, 0x4f, 0x61, 0x42, 0xf5, 0xba,
-	0xc0, 0xc1, 0x2c, 0xeb, 0x23, 0x4d, 0xf1, 0x8a, 0x05, 0xe9, 0x49, 0x61, 0xfa, 0xb4, 0x5d, 0x1b,
-	0x4c, 0x9d, 0x83, 0x0c, 0xc0, 0xc9, 0x3f, 0x20, 0x26, 0x64, 0x8f, 0xe6, 0xf0, 0xe8, 0x10, 0x9f,
-	0x8a, 0x09, 0x3f, 0xa4, 0xd0, 0x5e, 0x1b, 0x8c, 0x49, 0xf6, 0xae, 0x82, 0x2b, 0x53, 0xff, 0xec,
-	0xed, 0xfd, 0xaf, 0x02, 0x3e, 0x72, 0x49, 0x58, 0x7c, 0x16, 0xdb, 0x5b, 0x6e, 0xa7, 0x9b, 0x87,
-	0x08, 0xd2, 0xa9, 0x7c, 0xf3, 0xd4, 0x60, 0xfa, 0x44, 0x7e, 0x13, 0xea, 0x84, 0xf5, 0x1b, 0x7d,
-	0x1c, 0xa9, 0x04, 0x4f, 0xfe, 0xfc, 0x50, 0x9f, 0xcf, 0xf8, 0xad, 0x7d, 0x3f, 0x7d, 0xfa, 0x7b,
-	0xf5, 0xdc, 0x93, 0x56, 0xeb, 0xfb, 0xea, 0x07, 0xba, 0x77, 0xa9, 0xb7, 0x3c, 0x5e, 0xd7, 0x8f,
-	0xf2, 0xe9, 0xa8, 0x59, 0xb7, 0x13, 0xcd, 0x7f, 0x25, 0x3a, 0x6f, 0x5a, 0x1e, 0x7f, 0x93, 0xea,
-	0xbc, 0x39, 0x6a, 0xbe, 0x49, 0x75, 0xfe, 0x5b, 0xfd, 0x48, 0x4f, 0xec, 0xee, 0xb6, 0x3c, 0xbe,
-	0xbb, 0x9b, 0x6a, 0xed, 0xee, 0x1e, 0x35, 0x77, 0x77, 0x53, 0xbd, 0xde, 0x05, 0xe5, 0xec, 0xce,
-	0xff, 0x03, 0x00, 0x00, 0xff, 0xff, 0x25, 0x48, 0x73, 0x51, 0x82, 0x1f, 0x00, 0x00,
+	0xa2, 0x3b, 0xf3, 0x22, 0x48, 0x1f, 0xd2, 0xda, 0x0a, 0x72, 0xe0, 0xd5, 0xfe, 0x5a, 0x05, 0xdb,
+	0x53, 0x0e, 0x41, 0xf0, 0x0b, 0xb0, 0xe8, 0x91, 0x10, 0xf9, 0xd1, 0xd9, 0xfd, 0x53, 0x51, 0x0f,
+	0x04, 0x34, 0x40, 0xdd, 0x4d, 0xb5, 0xc0, 0x72, 0x80, 0xa2, 0x7e, 0x8c, 0xfa, 0xb2, 0x0c, 0x79,
+	0xd8, 0x2c, 0x56, 0x41, 0x1f, 0x9b, 0x40, 0xda, 0xf2, 0x83, 0xf5, 0x12, 0x6c, 0xc5, 0x1c, 0x3b,
+	0x3c, 0xa6, 0x34, 0xf0, 0xb1, 0x27, 0x3b, 0x32, 0xee, 0x90, 0x28, 0x18, 0x96, 0x58, 0xa7, 0xf5,
+	0x98, 0xe3, 0xae, 0x01, 0xbe, 0x62, 0x01, 0x7f, 0x19, 0x05, 0x43, 0xd8, 0x04, 0xe7, 0x8f, 0x31,
+	0xf6, 0xb8, 0x75, 0xbe, 0xc4, 0x59, 0x40, 0xab, 0xd6, 0xfe, 0x5d, 0x05, 0x70, 0xf2, 0xac, 0x01,
+	0xff, 0x51, 0x01, 0xb5, 0xe9, 0x57, 0xcc, 0x2a, 0x5a, 0x2b, 0xcd, 0x93, 0xa2, 0x9b, 0x91, 0x33,
+	0xde, 0xb1, 0xae, 0xf8, 0x09, 0x41, 0x99, 0x6b, 0x9b, 0x42, 0x35, 0x7b, 0xbb, 0x97, 0x3f, 0x01,
+	0x77, 0xc0, 0x05, 0x79, 0xe2, 0xf2, 0xbd, 0x52, 0xf1, 0x3f, 0x8f, 0x28, 0x3d, 0xf0, 0x60, 0x1f,
+	0x5c, 0x4a, 0xaf, 0xde, 0x55, 0xac, 0x8b, 0xbb, 0xfd, 0x8c, 0x8f, 0x2d, 0x4a, 0xbb, 0x12, 0x39,
+	0xee, 0x7b, 0x22, 0xb7, 0x2f, 0x22, 0xf3, 0x54, 0xfb, 0x5b, 0x15, 0x2c, 0x65, 0x5b, 0x3e, 0xf8,
+	0x67, 0xd9, 0xdb, 0xce, 0xbc, 0xa2, 0x35, 0xa1, 0x7d, 0x5d, 0xe0, 0x4f, 0x96, 0xf5, 0x91, 0xa6,
+	0x78, 0xc5, 0x82, 0xb4, 0x49, 0x9a, 0x3e, 0x6d, 0xd7, 0x06, 0x53, 0xe7, 0x20, 0x03, 0x70, 0xf2,
+	0xf2, 0x57, 0x45, 0x76, 0xa5, 0xf9, 0x68, 0x0e, 0x8f, 0x0e, 0xf1, 0xa9, 0x98, 0xf0, 0x43, 0x0a,
+	0xed, 0xb5, 0xc1, 0x98, 0xa4, 0xf6, 0xa7, 0x2a, 0x58, 0x1d, 0xbb, 0x30, 0x80, 0x0f, 0xc0, 0x62,
+	0x88, 0x99, 0x7b, 0x82, 0x22, 0x51, 0x72, 0xe3, 0x83, 0x44, 0xff, 0xc0, 0x93, 0x5b, 0x93, 0xa3,
+	0x00, 0x73, 0xc7, 0x25, 0xb1, 0x3c, 0x60, 0x94, 0xdb, 0x9a, 0x0a, 0xd2, 0xd6, 0x08, 0xb8, 0x0f,
+	0x2e, 0xa7, 0x47, 0x4c, 0xca, 0x7c, 0xc2, 0xe4, 0xa9, 0x63, 0xc6, 0x45, 0xf4, 0x4e, 0x53, 0xb3,
+	0xac, 0x25, 0xa8, 0x8e, 0x01, 0xc1, 0x2f, 0xc0, 0x12, 0x8e, 0x50, 0x2f, 0xc0, 0x4e, 0x40, 0x5c,
+	0x14, 0x94, 0xa8, 0x94, 0x8b, 0x5a, 0xff, 0x99, 0x54, 0xaf, 0xd9, 0x60, 0x75, 0xac, 0xaf, 0x86,
+	0xbf, 0x04, 0x4b, 0xd9, 0xcb, 0xc1, 0x52, 0x95, 0x6b, 0x31, 0x73, 0x27, 0x58, 0xf3, 0xc0, 0x66,
+	0xee, 0xf9, 0x00, 0x7e, 0x0d, 0x60, 0xa6, 0xa3, 0x42, 0xae, 0xba, 0xbd, 0xb7, 0x2a, 0x25, 0x8a,
+	0xc9, 0xe5, 0x33, 0x5c, 0x4b, 0xc3, 0x6a, 0xdf, 0x57, 0xc1, 0x46, 0xde, 0xd5, 0x09, 0xfc, 0x5d,
+	0x05, 0x58, 0xd3, 0x7e, 0x72, 0x98, 0xec, 0x2f, 0xba, 0x27, 0xef, 0x18, 0xf8, 0x08, 0xbf, 0x3e,
+	0x1d, 0xe4, 0xcd, 0xd8, 0x9b, 0x34, 0x4f, 0xac, 0x3c, 0x99, 0xf6, 0x7b, 0xc7, 0x64, 0x7d, 0x91,
+	0x27, 0x2f, 0x0c, 0x7c, 0xd2, 0x93, 0xdc, 0x19, 0x7b, 0x33, 0xca, 0x13, 0xef, 0x5d, 0x05, 0x57,
+	0xa6, 0xfe, 0xd9, 0xdb, 0xfb, 0x5f, 0x05, 0x7c, 0xe4, 0x92, 0xb0, 0xf8, 0x2c, 0xb6, 0xb7, 0xdc,
+	0x4e, 0xd3, 0x8f, 0x08, 0xd2, 0xa9, 0x7c, 0xf3, 0xd4, 0x60, 0xfa, 0x44, 0x7e, 0x79, 0xea, 0x84,
+	0xf5, 0x1b, 0x7d, 0x1c, 0xa9, 0x25, 0x4c, 0xfe, 0xfc, 0x50, 0x9f, 0xcf, 0xf8, 0xad, 0x7d, 0x3f,
+	0x7d, 0xfa, 0x7b, 0xf5, 0xdc, 0x93, 0x56, 0xeb, 0xfb, 0xea, 0x07, 0xba, 0x77, 0xa9, 0xb7, 0x3c,
+	0x5e, 0xd7, 0x8f, 0xf2, 0xe9, 0xa8, 0x59, 0xb7, 0x13, 0xcd, 0x7f, 0x25, 0x3a, 0x6f, 0x5a, 0x1e,
+	0x7f, 0x93, 0xea, 0xbc, 0x39, 0x6a, 0xbe, 0x49, 0x75, 0xfe, 0x5b, 0xfd, 0x48, 0x4f, 0xec, 0xee,
+	0xb6, 0x3c, 0xbe, 0xbb, 0x9b, 0x6a, 0xed, 0xee, 0x1e, 0x35, 0x77, 0x77, 0x53, 0xbd, 0xde, 0x05,
+	0xe5, 0xec, 0xce, 0xff, 0x03, 0x00, 0x00, 0xff, 0xff, 0xca, 0x31, 0x6a, 0xe4, 0x82, 0x1f, 0x00,
+	0x00,
 }
diff --git a/googleapis/ads/googleads/v2/resources/feed.pb.go b/googleapis/ads/googleads/v2/resources/feed.pb.go
index c4830bc..e084b6f 100644
--- a/googleapis/ads/googleads/v2/resources/feed.pb.go
+++ b/googleapis/ads/googleads/v2/resources/feed.pb.go
@@ -68,7 +68,9 @@
 	Id *wrappers.Int64Value `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
 	// Name of the feed. Required.
 	Name *wrappers.StringValue `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
-	// The Feed's attributes. Required on CREATE.
+	// The Feed's attributes. Required on CREATE, unless
+	// system_feed_generation_data is provided, in which case Google Ads will
+	// update the feed with the correct attributes.
 	// Disallowed on UPDATE. Use attribute_operations to add new attributes.
 	Attributes []*FeedAttribute `protobuf:"bytes,4,rep,name=attributes,proto3" json:"attributes,omitempty"`
 	// The list of operations changing the feed attributes. Attributes can only
diff --git a/googleapis/ads/googleads/v2/resources/recommendation.pb.go b/googleapis/ads/googleads/v2/resources/recommendation.pb.go
index 5ef2a7d..6313f52 100644
--- a/googleapis/ads/googleads/v2/resources/recommendation.pb.go
+++ b/googleapis/ads/googleads/v2/resources/recommendation.pb.go
@@ -668,167 +668,6 @@
 	return nil
 }
 
-// The Sitelink extension recommendation.
-type Recommendation_SitelinkExtensionRecommendation struct {
-	// Sitelink extensions recommended to be added.
-	RecommendedExtensions []*common.SitelinkFeedItem `protobuf:"bytes,1,rep,name=recommended_extensions,json=recommendedExtensions,proto3" json:"recommended_extensions,omitempty"`
-	XXX_NoUnkeyedLiteral  struct{}                   `json:"-"`
-	XXX_unrecognized      []byte                     `json:"-"`
-	XXX_sizecache         int32                      `json:"-"`
-}
-
-func (m *Recommendation_SitelinkExtensionRecommendation) Reset() {
-	*m = Recommendation_SitelinkExtensionRecommendation{}
-}
-func (m *Recommendation_SitelinkExtensionRecommendation) String() string {
-	return proto.CompactTextString(m)
-}
-func (*Recommendation_SitelinkExtensionRecommendation) ProtoMessage() {}
-func (*Recommendation_SitelinkExtensionRecommendation) Descriptor() ([]byte, []int) {
-	return fileDescriptor_0f6630579339be78, []int{0, 4}
-}
-
-func (m *Recommendation_SitelinkExtensionRecommendation) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_Recommendation_SitelinkExtensionRecommendation.Unmarshal(m, b)
-}
-func (m *Recommendation_SitelinkExtensionRecommendation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_Recommendation_SitelinkExtensionRecommendation.Marshal(b, m, deterministic)
-}
-func (m *Recommendation_SitelinkExtensionRecommendation) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_Recommendation_SitelinkExtensionRecommendation.Merge(m, src)
-}
-func (m *Recommendation_SitelinkExtensionRecommendation) XXX_Size() int {
-	return xxx_messageInfo_Recommendation_SitelinkExtensionRecommendation.Size(m)
-}
-func (m *Recommendation_SitelinkExtensionRecommendation) XXX_DiscardUnknown() {
-	xxx_messageInfo_Recommendation_SitelinkExtensionRecommendation.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_Recommendation_SitelinkExtensionRecommendation proto.InternalMessageInfo
-
-func (m *Recommendation_SitelinkExtensionRecommendation) GetRecommendedExtensions() []*common.SitelinkFeedItem {
-	if m != nil {
-		return m.RecommendedExtensions
-	}
-	return nil
-}
-
-// The move unused budget recommendation.
-type Recommendation_MoveUnusedBudgetRecommendation struct {
-	// The excess budget's resource_name.
-	ExcessCampaignBudget *wrappers.StringValue `protobuf:"bytes,1,opt,name=excess_campaign_budget,json=excessCampaignBudget,proto3" json:"excess_campaign_budget,omitempty"`
-	// The recommendation for the constrained budget to increase.
-	BudgetRecommendation *Recommendation_CampaignBudgetRecommendation `protobuf:"bytes,2,opt,name=budget_recommendation,json=budgetRecommendation,proto3" json:"budget_recommendation,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}                                     `json:"-"`
-	XXX_unrecognized     []byte                                       `json:"-"`
-	XXX_sizecache        int32                                        `json:"-"`
-}
-
-func (m *Recommendation_MoveUnusedBudgetRecommendation) Reset() {
-	*m = Recommendation_MoveUnusedBudgetRecommendation{}
-}
-func (m *Recommendation_MoveUnusedBudgetRecommendation) String() string {
-	return proto.CompactTextString(m)
-}
-func (*Recommendation_MoveUnusedBudgetRecommendation) ProtoMessage() {}
-func (*Recommendation_MoveUnusedBudgetRecommendation) Descriptor() ([]byte, []int) {
-	return fileDescriptor_0f6630579339be78, []int{0, 5}
-}
-
-func (m *Recommendation_MoveUnusedBudgetRecommendation) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_Recommendation_MoveUnusedBudgetRecommendation.Unmarshal(m, b)
-}
-func (m *Recommendation_MoveUnusedBudgetRecommendation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_Recommendation_MoveUnusedBudgetRecommendation.Marshal(b, m, deterministic)
-}
-func (m *Recommendation_MoveUnusedBudgetRecommendation) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_Recommendation_MoveUnusedBudgetRecommendation.Merge(m, src)
-}
-func (m *Recommendation_MoveUnusedBudgetRecommendation) XXX_Size() int {
-	return xxx_messageInfo_Recommendation_MoveUnusedBudgetRecommendation.Size(m)
-}
-func (m *Recommendation_MoveUnusedBudgetRecommendation) XXX_DiscardUnknown() {
-	xxx_messageInfo_Recommendation_MoveUnusedBudgetRecommendation.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_Recommendation_MoveUnusedBudgetRecommendation proto.InternalMessageInfo
-
-func (m *Recommendation_MoveUnusedBudgetRecommendation) GetExcessCampaignBudget() *wrappers.StringValue {
-	if m != nil {
-		return m.ExcessCampaignBudget
-	}
-	return nil
-}
-
-func (m *Recommendation_MoveUnusedBudgetRecommendation) GetBudgetRecommendation() *Recommendation_CampaignBudgetRecommendation {
-	if m != nil {
-		return m.BudgetRecommendation
-	}
-	return nil
-}
-
-// The text ad recommendation.
-type Recommendation_TextAdRecommendation struct {
-	// Recommended ad.
-	Ad *Ad `protobuf:"bytes,1,opt,name=ad,proto3" json:"ad,omitempty"`
-	// Creation date of the recommended ad.
-	// YYYY-MM-DD format, e.g., 2018-04-17.
-	CreationDate *wrappers.StringValue `protobuf:"bytes,2,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"`
-	// Date, if present, is the earliest when the recommendation will be auto
-	// applied.
-	// YYYY-MM-DD format, e.g., 2018-04-17.
-	AutoApplyDate        *wrappers.StringValue `protobuf:"bytes,3,opt,name=auto_apply_date,json=autoApplyDate,proto3" json:"auto_apply_date,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
-	XXX_unrecognized     []byte                `json:"-"`
-	XXX_sizecache        int32                 `json:"-"`
-}
-
-func (m *Recommendation_TextAdRecommendation) Reset()         { *m = Recommendation_TextAdRecommendation{} }
-func (m *Recommendation_TextAdRecommendation) String() string { return proto.CompactTextString(m) }
-func (*Recommendation_TextAdRecommendation) ProtoMessage()    {}
-func (*Recommendation_TextAdRecommendation) Descriptor() ([]byte, []int) {
-	return fileDescriptor_0f6630579339be78, []int{0, 6}
-}
-
-func (m *Recommendation_TextAdRecommendation) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_Recommendation_TextAdRecommendation.Unmarshal(m, b)
-}
-func (m *Recommendation_TextAdRecommendation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_Recommendation_TextAdRecommendation.Marshal(b, m, deterministic)
-}
-func (m *Recommendation_TextAdRecommendation) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_Recommendation_TextAdRecommendation.Merge(m, src)
-}
-func (m *Recommendation_TextAdRecommendation) XXX_Size() int {
-	return xxx_messageInfo_Recommendation_TextAdRecommendation.Size(m)
-}
-func (m *Recommendation_TextAdRecommendation) XXX_DiscardUnknown() {
-	xxx_messageInfo_Recommendation_TextAdRecommendation.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_Recommendation_TextAdRecommendation proto.InternalMessageInfo
-
-func (m *Recommendation_TextAdRecommendation) GetAd() *Ad {
-	if m != nil {
-		return m.Ad
-	}
-	return nil
-}
-
-func (m *Recommendation_TextAdRecommendation) GetCreationDate() *wrappers.StringValue {
-	if m != nil {
-		return m.CreationDate
-	}
-	return nil
-}
-
-func (m *Recommendation_TextAdRecommendation) GetAutoApplyDate() *wrappers.StringValue {
-	if m != nil {
-		return m.AutoApplyDate
-	}
-	return nil
-}
-
 // The Target CPA opt-in recommendation.
 type Recommendation_TargetCpaOptInRecommendation struct {
 	// The available goals and corresponding options for Target CPA strategy.
@@ -849,7 +688,7 @@
 }
 func (*Recommendation_TargetCpaOptInRecommendation) ProtoMessage() {}
 func (*Recommendation_TargetCpaOptInRecommendation) Descriptor() ([]byte, []int) {
-	return fileDescriptor_0f6630579339be78, []int{0, 7}
+	return fileDescriptor_0f6630579339be78, []int{0, 4}
 }
 
 func (m *Recommendation_TargetCpaOptInRecommendation) XXX_Unmarshal(b []byte) error {
@@ -911,7 +750,7 @@
 func (*Recommendation_TargetCpaOptInRecommendation_TargetCpaOptInRecommendationOption) ProtoMessage() {
 }
 func (*Recommendation_TargetCpaOptInRecommendation_TargetCpaOptInRecommendationOption) Descriptor() ([]byte, []int) {
-	return fileDescriptor_0f6630579339be78, []int{0, 7, 0}
+	return fileDescriptor_0f6630579339be78, []int{0, 4, 0}
 }
 
 func (m *Recommendation_TargetCpaOptInRecommendation_TargetCpaOptInRecommendationOption) XXX_Unmarshal(b []byte) error {
@@ -960,6 +799,167 @@
 	return nil
 }
 
+// The text ad recommendation.
+type Recommendation_TextAdRecommendation struct {
+	// Recommended ad.
+	Ad *Ad `protobuf:"bytes,1,opt,name=ad,proto3" json:"ad,omitempty"`
+	// Creation date of the recommended ad.
+	// YYYY-MM-DD format, e.g., 2018-04-17.
+	CreationDate *wrappers.StringValue `protobuf:"bytes,2,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"`
+	// Date, if present, is the earliest when the recommendation will be auto
+	// applied.
+	// YYYY-MM-DD format, e.g., 2018-04-17.
+	AutoApplyDate        *wrappers.StringValue `protobuf:"bytes,3,opt,name=auto_apply_date,json=autoApplyDate,proto3" json:"auto_apply_date,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
+	XXX_unrecognized     []byte                `json:"-"`
+	XXX_sizecache        int32                 `json:"-"`
+}
+
+func (m *Recommendation_TextAdRecommendation) Reset()         { *m = Recommendation_TextAdRecommendation{} }
+func (m *Recommendation_TextAdRecommendation) String() string { return proto.CompactTextString(m) }
+func (*Recommendation_TextAdRecommendation) ProtoMessage()    {}
+func (*Recommendation_TextAdRecommendation) Descriptor() ([]byte, []int) {
+	return fileDescriptor_0f6630579339be78, []int{0, 5}
+}
+
+func (m *Recommendation_TextAdRecommendation) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_Recommendation_TextAdRecommendation.Unmarshal(m, b)
+}
+func (m *Recommendation_TextAdRecommendation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_Recommendation_TextAdRecommendation.Marshal(b, m, deterministic)
+}
+func (m *Recommendation_TextAdRecommendation) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_Recommendation_TextAdRecommendation.Merge(m, src)
+}
+func (m *Recommendation_TextAdRecommendation) XXX_Size() int {
+	return xxx_messageInfo_Recommendation_TextAdRecommendation.Size(m)
+}
+func (m *Recommendation_TextAdRecommendation) XXX_DiscardUnknown() {
+	xxx_messageInfo_Recommendation_TextAdRecommendation.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Recommendation_TextAdRecommendation proto.InternalMessageInfo
+
+func (m *Recommendation_TextAdRecommendation) GetAd() *Ad {
+	if m != nil {
+		return m.Ad
+	}
+	return nil
+}
+
+func (m *Recommendation_TextAdRecommendation) GetCreationDate() *wrappers.StringValue {
+	if m != nil {
+		return m.CreationDate
+	}
+	return nil
+}
+
+func (m *Recommendation_TextAdRecommendation) GetAutoApplyDate() *wrappers.StringValue {
+	if m != nil {
+		return m.AutoApplyDate
+	}
+	return nil
+}
+
+// The Sitelink extension recommendation.
+type Recommendation_SitelinkExtensionRecommendation struct {
+	// Sitelink extensions recommended to be added.
+	RecommendedExtensions []*common.SitelinkFeedItem `protobuf:"bytes,1,rep,name=recommended_extensions,json=recommendedExtensions,proto3" json:"recommended_extensions,omitempty"`
+	XXX_NoUnkeyedLiteral  struct{}                   `json:"-"`
+	XXX_unrecognized      []byte                     `json:"-"`
+	XXX_sizecache         int32                      `json:"-"`
+}
+
+func (m *Recommendation_SitelinkExtensionRecommendation) Reset() {
+	*m = Recommendation_SitelinkExtensionRecommendation{}
+}
+func (m *Recommendation_SitelinkExtensionRecommendation) String() string {
+	return proto.CompactTextString(m)
+}
+func (*Recommendation_SitelinkExtensionRecommendation) ProtoMessage() {}
+func (*Recommendation_SitelinkExtensionRecommendation) Descriptor() ([]byte, []int) {
+	return fileDescriptor_0f6630579339be78, []int{0, 6}
+}
+
+func (m *Recommendation_SitelinkExtensionRecommendation) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_Recommendation_SitelinkExtensionRecommendation.Unmarshal(m, b)
+}
+func (m *Recommendation_SitelinkExtensionRecommendation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_Recommendation_SitelinkExtensionRecommendation.Marshal(b, m, deterministic)
+}
+func (m *Recommendation_SitelinkExtensionRecommendation) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_Recommendation_SitelinkExtensionRecommendation.Merge(m, src)
+}
+func (m *Recommendation_SitelinkExtensionRecommendation) XXX_Size() int {
+	return xxx_messageInfo_Recommendation_SitelinkExtensionRecommendation.Size(m)
+}
+func (m *Recommendation_SitelinkExtensionRecommendation) XXX_DiscardUnknown() {
+	xxx_messageInfo_Recommendation_SitelinkExtensionRecommendation.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Recommendation_SitelinkExtensionRecommendation proto.InternalMessageInfo
+
+func (m *Recommendation_SitelinkExtensionRecommendation) GetRecommendedExtensions() []*common.SitelinkFeedItem {
+	if m != nil {
+		return m.RecommendedExtensions
+	}
+	return nil
+}
+
+// The move unused budget recommendation.
+type Recommendation_MoveUnusedBudgetRecommendation struct {
+	// The excess budget's resource_name.
+	ExcessCampaignBudget *wrappers.StringValue `protobuf:"bytes,1,opt,name=excess_campaign_budget,json=excessCampaignBudget,proto3" json:"excess_campaign_budget,omitempty"`
+	// The recommendation for the constrained budget to increase.
+	BudgetRecommendation *Recommendation_CampaignBudgetRecommendation `protobuf:"bytes,2,opt,name=budget_recommendation,json=budgetRecommendation,proto3" json:"budget_recommendation,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}                                     `json:"-"`
+	XXX_unrecognized     []byte                                       `json:"-"`
+	XXX_sizecache        int32                                        `json:"-"`
+}
+
+func (m *Recommendation_MoveUnusedBudgetRecommendation) Reset() {
+	*m = Recommendation_MoveUnusedBudgetRecommendation{}
+}
+func (m *Recommendation_MoveUnusedBudgetRecommendation) String() string {
+	return proto.CompactTextString(m)
+}
+func (*Recommendation_MoveUnusedBudgetRecommendation) ProtoMessage() {}
+func (*Recommendation_MoveUnusedBudgetRecommendation) Descriptor() ([]byte, []int) {
+	return fileDescriptor_0f6630579339be78, []int{0, 7}
+}
+
+func (m *Recommendation_MoveUnusedBudgetRecommendation) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_Recommendation_MoveUnusedBudgetRecommendation.Unmarshal(m, b)
+}
+func (m *Recommendation_MoveUnusedBudgetRecommendation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_Recommendation_MoveUnusedBudgetRecommendation.Marshal(b, m, deterministic)
+}
+func (m *Recommendation_MoveUnusedBudgetRecommendation) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_Recommendation_MoveUnusedBudgetRecommendation.Merge(m, src)
+}
+func (m *Recommendation_MoveUnusedBudgetRecommendation) XXX_Size() int {
+	return xxx_messageInfo_Recommendation_MoveUnusedBudgetRecommendation.Size(m)
+}
+func (m *Recommendation_MoveUnusedBudgetRecommendation) XXX_DiscardUnknown() {
+	xxx_messageInfo_Recommendation_MoveUnusedBudgetRecommendation.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Recommendation_MoveUnusedBudgetRecommendation proto.InternalMessageInfo
+
+func (m *Recommendation_MoveUnusedBudgetRecommendation) GetExcessCampaignBudget() *wrappers.StringValue {
+	if m != nil {
+		return m.ExcessCampaignBudget
+	}
+	return nil
+}
+
+func (m *Recommendation_MoveUnusedBudgetRecommendation) GetBudgetRecommendation() *Recommendation_CampaignBudgetRecommendation {
+	if m != nil {
+		return m.BudgetRecommendation
+	}
+	return nil
+}
+
 // The Maximize Conversions Opt-In recommendation.
 type Recommendation_MaximizeConversionsOptInRecommendation struct {
 	// The recommended new budget amount.
@@ -1005,42 +1005,6 @@
 	return nil
 }
 
-// The Optimize Ad Rotation recommendation.
-type Recommendation_OptimizeAdRotationRecommendation struct {
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *Recommendation_OptimizeAdRotationRecommendation) Reset() {
-	*m = Recommendation_OptimizeAdRotationRecommendation{}
-}
-func (m *Recommendation_OptimizeAdRotationRecommendation) String() string {
-	return proto.CompactTextString(m)
-}
-func (*Recommendation_OptimizeAdRotationRecommendation) ProtoMessage() {}
-func (*Recommendation_OptimizeAdRotationRecommendation) Descriptor() ([]byte, []int) {
-	return fileDescriptor_0f6630579339be78, []int{0, 9}
-}
-
-func (m *Recommendation_OptimizeAdRotationRecommendation) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_Recommendation_OptimizeAdRotationRecommendation.Unmarshal(m, b)
-}
-func (m *Recommendation_OptimizeAdRotationRecommendation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_Recommendation_OptimizeAdRotationRecommendation.Marshal(b, m, deterministic)
-}
-func (m *Recommendation_OptimizeAdRotationRecommendation) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_Recommendation_OptimizeAdRotationRecommendation.Merge(m, src)
-}
-func (m *Recommendation_OptimizeAdRotationRecommendation) XXX_Size() int {
-	return xxx_messageInfo_Recommendation_OptimizeAdRotationRecommendation.Size(m)
-}
-func (m *Recommendation_OptimizeAdRotationRecommendation) XXX_DiscardUnknown() {
-	xxx_messageInfo_Recommendation_OptimizeAdRotationRecommendation.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_Recommendation_OptimizeAdRotationRecommendation proto.InternalMessageInfo
-
 // The Enhanced Cost-Per-Click Opt-In recommendation.
 type Recommendation_EnhancedCpcOptInRecommendation struct {
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
@@ -1056,7 +1020,7 @@
 }
 func (*Recommendation_EnhancedCpcOptInRecommendation) ProtoMessage() {}
 func (*Recommendation_EnhancedCpcOptInRecommendation) Descriptor() ([]byte, []int) {
-	return fileDescriptor_0f6630579339be78, []int{0, 10}
+	return fileDescriptor_0f6630579339be78, []int{0, 9}
 }
 
 func (m *Recommendation_EnhancedCpcOptInRecommendation) XXX_Unmarshal(b []byte) error {
@@ -1077,6 +1041,60 @@
 
 var xxx_messageInfo_Recommendation_EnhancedCpcOptInRecommendation proto.InternalMessageInfo
 
+// The keyword match type recommendation.
+type Recommendation_KeywordMatchTypeRecommendation struct {
+	// The existing keyword where the match type should be more broad.
+	Keyword *common.KeywordInfo `protobuf:"bytes,1,opt,name=keyword,proto3" json:"keyword,omitempty"`
+	// The recommended new match type.
+	RecommendedMatchType enums.KeywordMatchTypeEnum_KeywordMatchType `protobuf:"varint,2,opt,name=recommended_match_type,json=recommendedMatchType,proto3,enum=google.ads.googleads.v2.enums.KeywordMatchTypeEnum_KeywordMatchType" json:"recommended_match_type,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}                                    `json:"-"`
+	XXX_unrecognized     []byte                                      `json:"-"`
+	XXX_sizecache        int32                                       `json:"-"`
+}
+
+func (m *Recommendation_KeywordMatchTypeRecommendation) Reset() {
+	*m = Recommendation_KeywordMatchTypeRecommendation{}
+}
+func (m *Recommendation_KeywordMatchTypeRecommendation) String() string {
+	return proto.CompactTextString(m)
+}
+func (*Recommendation_KeywordMatchTypeRecommendation) ProtoMessage() {}
+func (*Recommendation_KeywordMatchTypeRecommendation) Descriptor() ([]byte, []int) {
+	return fileDescriptor_0f6630579339be78, []int{0, 10}
+}
+
+func (m *Recommendation_KeywordMatchTypeRecommendation) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_Recommendation_KeywordMatchTypeRecommendation.Unmarshal(m, b)
+}
+func (m *Recommendation_KeywordMatchTypeRecommendation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_Recommendation_KeywordMatchTypeRecommendation.Marshal(b, m, deterministic)
+}
+func (m *Recommendation_KeywordMatchTypeRecommendation) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_Recommendation_KeywordMatchTypeRecommendation.Merge(m, src)
+}
+func (m *Recommendation_KeywordMatchTypeRecommendation) XXX_Size() int {
+	return xxx_messageInfo_Recommendation_KeywordMatchTypeRecommendation.Size(m)
+}
+func (m *Recommendation_KeywordMatchTypeRecommendation) XXX_DiscardUnknown() {
+	xxx_messageInfo_Recommendation_KeywordMatchTypeRecommendation.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Recommendation_KeywordMatchTypeRecommendation proto.InternalMessageInfo
+
+func (m *Recommendation_KeywordMatchTypeRecommendation) GetKeyword() *common.KeywordInfo {
+	if m != nil {
+		return m.Keyword
+	}
+	return nil
+}
+
+func (m *Recommendation_KeywordMatchTypeRecommendation) GetRecommendedMatchType() enums.KeywordMatchTypeEnum_KeywordMatchType {
+	if m != nil {
+		return m.RecommendedMatchType
+	}
+	return enums.KeywordMatchTypeEnum_UNSPECIFIED
+}
+
 // The Search Partners Opt-In recommendation.
 type Recommendation_SearchPartnersOptInRecommendation struct {
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
@@ -1113,60 +1131,6 @@
 
 var xxx_messageInfo_Recommendation_SearchPartnersOptInRecommendation proto.InternalMessageInfo
 
-// The keyword match type recommendation.
-type Recommendation_KeywordMatchTypeRecommendation struct {
-	// The existing keyword where the match type should be more broad.
-	Keyword *common.KeywordInfo `protobuf:"bytes,1,opt,name=keyword,proto3" json:"keyword,omitempty"`
-	// The recommended new match type.
-	RecommendedMatchType enums.KeywordMatchTypeEnum_KeywordMatchType `protobuf:"varint,2,opt,name=recommended_match_type,json=recommendedMatchType,proto3,enum=google.ads.googleads.v2.enums.KeywordMatchTypeEnum_KeywordMatchType" json:"recommended_match_type,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}                                    `json:"-"`
-	XXX_unrecognized     []byte                                      `json:"-"`
-	XXX_sizecache        int32                                       `json:"-"`
-}
-
-func (m *Recommendation_KeywordMatchTypeRecommendation) Reset() {
-	*m = Recommendation_KeywordMatchTypeRecommendation{}
-}
-func (m *Recommendation_KeywordMatchTypeRecommendation) String() string {
-	return proto.CompactTextString(m)
-}
-func (*Recommendation_KeywordMatchTypeRecommendation) ProtoMessage() {}
-func (*Recommendation_KeywordMatchTypeRecommendation) Descriptor() ([]byte, []int) {
-	return fileDescriptor_0f6630579339be78, []int{0, 12}
-}
-
-func (m *Recommendation_KeywordMatchTypeRecommendation) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_Recommendation_KeywordMatchTypeRecommendation.Unmarshal(m, b)
-}
-func (m *Recommendation_KeywordMatchTypeRecommendation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_Recommendation_KeywordMatchTypeRecommendation.Marshal(b, m, deterministic)
-}
-func (m *Recommendation_KeywordMatchTypeRecommendation) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_Recommendation_KeywordMatchTypeRecommendation.Merge(m, src)
-}
-func (m *Recommendation_KeywordMatchTypeRecommendation) XXX_Size() int {
-	return xxx_messageInfo_Recommendation_KeywordMatchTypeRecommendation.Size(m)
-}
-func (m *Recommendation_KeywordMatchTypeRecommendation) XXX_DiscardUnknown() {
-	xxx_messageInfo_Recommendation_KeywordMatchTypeRecommendation.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_Recommendation_KeywordMatchTypeRecommendation proto.InternalMessageInfo
-
-func (m *Recommendation_KeywordMatchTypeRecommendation) GetKeyword() *common.KeywordInfo {
-	if m != nil {
-		return m.Keyword
-	}
-	return nil
-}
-
-func (m *Recommendation_KeywordMatchTypeRecommendation) GetRecommendedMatchType() enums.KeywordMatchTypeEnum_KeywordMatchType {
-	if m != nil {
-		return m.RecommendedMatchType
-	}
-	return enums.KeywordMatchTypeEnum_UNSPECIFIED
-}
-
 // The Maximize Clicks opt-in recommendation.
 type Recommendation_MaximizeClicksOptInRecommendation struct {
 	// The recommended new budget amount.
@@ -1185,7 +1149,7 @@
 }
 func (*Recommendation_MaximizeClicksOptInRecommendation) ProtoMessage() {}
 func (*Recommendation_MaximizeClicksOptInRecommendation) Descriptor() ([]byte, []int) {
-	return fileDescriptor_0f6630579339be78, []int{0, 13}
+	return fileDescriptor_0f6630579339be78, []int{0, 12}
 }
 
 func (m *Recommendation_MaximizeClicksOptInRecommendation) XXX_Unmarshal(b []byte) error {
@@ -1213,6 +1177,42 @@
 	return nil
 }
 
+// The Optimize Ad Rotation recommendation.
+type Recommendation_OptimizeAdRotationRecommendation struct {
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *Recommendation_OptimizeAdRotationRecommendation) Reset() {
+	*m = Recommendation_OptimizeAdRotationRecommendation{}
+}
+func (m *Recommendation_OptimizeAdRotationRecommendation) String() string {
+	return proto.CompactTextString(m)
+}
+func (*Recommendation_OptimizeAdRotationRecommendation) ProtoMessage() {}
+func (*Recommendation_OptimizeAdRotationRecommendation) Descriptor() ([]byte, []int) {
+	return fileDescriptor_0f6630579339be78, []int{0, 13}
+}
+
+func (m *Recommendation_OptimizeAdRotationRecommendation) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_Recommendation_OptimizeAdRotationRecommendation.Unmarshal(m, b)
+}
+func (m *Recommendation_OptimizeAdRotationRecommendation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_Recommendation_OptimizeAdRotationRecommendation.Marshal(b, m, deterministic)
+}
+func (m *Recommendation_OptimizeAdRotationRecommendation) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_Recommendation_OptimizeAdRotationRecommendation.Merge(m, src)
+}
+func (m *Recommendation_OptimizeAdRotationRecommendation) XXX_Size() int {
+	return xxx_messageInfo_Recommendation_OptimizeAdRotationRecommendation.Size(m)
+}
+func (m *Recommendation_OptimizeAdRotationRecommendation) XXX_DiscardUnknown() {
+	xxx_messageInfo_Recommendation_OptimizeAdRotationRecommendation.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Recommendation_OptimizeAdRotationRecommendation proto.InternalMessageInfo
+
 // The Callout extension recommendation.
 type Recommendation_CalloutExtensionRecommendation struct {
 	// Callout extensions recommended to be added.
@@ -1310,17 +1310,17 @@
 	proto.RegisterType((*Recommendation_CampaignBudgetRecommendation)(nil), "google.ads.googleads.v2.resources.Recommendation.CampaignBudgetRecommendation")
 	proto.RegisterType((*Recommendation_CampaignBudgetRecommendation_CampaignBudgetRecommendationOption)(nil), "google.ads.googleads.v2.resources.Recommendation.CampaignBudgetRecommendation.CampaignBudgetRecommendationOption")
 	proto.RegisterType((*Recommendation_KeywordRecommendation)(nil), "google.ads.googleads.v2.resources.Recommendation.KeywordRecommendation")
-	proto.RegisterType((*Recommendation_SitelinkExtensionRecommendation)(nil), "google.ads.googleads.v2.resources.Recommendation.SitelinkExtensionRecommendation")
-	proto.RegisterType((*Recommendation_MoveUnusedBudgetRecommendation)(nil), "google.ads.googleads.v2.resources.Recommendation.MoveUnusedBudgetRecommendation")
-	proto.RegisterType((*Recommendation_TextAdRecommendation)(nil), "google.ads.googleads.v2.resources.Recommendation.TextAdRecommendation")
 	proto.RegisterType((*Recommendation_TargetCpaOptInRecommendation)(nil), "google.ads.googleads.v2.resources.Recommendation.TargetCpaOptInRecommendation")
 	proto.RegisterType((*Recommendation_TargetCpaOptInRecommendation_TargetCpaOptInRecommendationOption)(nil), "google.ads.googleads.v2.resources.Recommendation.TargetCpaOptInRecommendation.TargetCpaOptInRecommendationOption")
+	proto.RegisterType((*Recommendation_TextAdRecommendation)(nil), "google.ads.googleads.v2.resources.Recommendation.TextAdRecommendation")
+	proto.RegisterType((*Recommendation_SitelinkExtensionRecommendation)(nil), "google.ads.googleads.v2.resources.Recommendation.SitelinkExtensionRecommendation")
+	proto.RegisterType((*Recommendation_MoveUnusedBudgetRecommendation)(nil), "google.ads.googleads.v2.resources.Recommendation.MoveUnusedBudgetRecommendation")
 	proto.RegisterType((*Recommendation_MaximizeConversionsOptInRecommendation)(nil), "google.ads.googleads.v2.resources.Recommendation.MaximizeConversionsOptInRecommendation")
-	proto.RegisterType((*Recommendation_OptimizeAdRotationRecommendation)(nil), "google.ads.googleads.v2.resources.Recommendation.OptimizeAdRotationRecommendation")
 	proto.RegisterType((*Recommendation_EnhancedCpcOptInRecommendation)(nil), "google.ads.googleads.v2.resources.Recommendation.EnhancedCpcOptInRecommendation")
-	proto.RegisterType((*Recommendation_SearchPartnersOptInRecommendation)(nil), "google.ads.googleads.v2.resources.Recommendation.SearchPartnersOptInRecommendation")
 	proto.RegisterType((*Recommendation_KeywordMatchTypeRecommendation)(nil), "google.ads.googleads.v2.resources.Recommendation.KeywordMatchTypeRecommendation")
+	proto.RegisterType((*Recommendation_SearchPartnersOptInRecommendation)(nil), "google.ads.googleads.v2.resources.Recommendation.SearchPartnersOptInRecommendation")
 	proto.RegisterType((*Recommendation_MaximizeClicksOptInRecommendation)(nil), "google.ads.googleads.v2.resources.Recommendation.MaximizeClicksOptInRecommendation")
+	proto.RegisterType((*Recommendation_OptimizeAdRotationRecommendation)(nil), "google.ads.googleads.v2.resources.Recommendation.OptimizeAdRotationRecommendation")
 	proto.RegisterType((*Recommendation_CalloutExtensionRecommendation)(nil), "google.ads.googleads.v2.resources.Recommendation.CalloutExtensionRecommendation")
 	proto.RegisterType((*Recommendation_CallExtensionRecommendation)(nil), "google.ads.googleads.v2.resources.Recommendation.CallExtensionRecommendation")
 }
@@ -1337,103 +1337,103 @@
 	0xdc, 0x12, 0x55, 0x28, 0xaa, 0x35, 0xb1, 0xa7, 0x5b, 0x93, 0xb5, 0xc7, 0xb5, 0x67, 0xd3, 0xa4,
 	0x0f, 0xa8, 0x82, 0x17, 0x2e, 0x12, 0x2f, 0x48, 0xa8, 0x0f, 0x40, 0x25, 0x78, 0x40, 0xe2, 0x03,
 	0xa0, 0x7e, 0x03, 0xa4, 0xbe, 0x56, 0xe2, 0x0b, 0xf0, 0xc6, 0x27, 0x40, 0x3c, 0x21, 0x8f, 0xc7,
-	0x8e, 0xf7, 0x62, 0x7b, 0xb3, 0xb4, 0xbc, 0xd9, 0x9e, 0xf3, 0xfb, 0x9d, 0xdf, 0x5c, 0xcf, 0x39,
-	0x63, 0xb8, 0x58, 0x67, 0xac, 0xde, 0xa0, 0x65, 0x62, 0x78, 0xe5, 0xe0, 0xd1, 0x7f, 0xda, 0xad,
-	0x94, 0x5d, 0xea, 0xb1, 0xa6, 0xab, 0x53, 0xaf, 0xec, 0x52, 0x9d, 0x59, 0x16, 0xb5, 0x0d, 0xc2,
-	0x4d, 0x66, 0x97, 0x1c, 0x97, 0x71, 0x86, 0x67, 0x03, 0xe3, 0x12, 0x31, 0xbc, 0x52, 0x84, 0x2b,
-	0xed, 0x56, 0x4a, 0x11, 0x4e, 0x79, 0x35, 0x89, 0xda, 0xa7, 0x63, 0x76, 0x59, 0x77, 0x4d, 0x4e,
-	0x5d, 0x93, 0x04, 0x8c, 0x4a, 0x39, 0xc3, 0x9c, 0xee, 0x71, 0x6a, 0x7b, 0x26, 0xb3, 0x3d, 0x09,
-	0x48, 0x94, 0x4e, 0xed, 0xa6, 0xe5, 0x95, 0x77, 0xe8, 0xfe, 0x7d, 0xe6, 0x1a, 0x9a, 0x45, 0xb8,
-	0x7e, 0x57, 0xe3, 0xfb, 0x0e, 0x95, 0xb8, 0x4b, 0xe9, 0xb8, 0xd6, 0xee, 0xc6, 0x81, 0x6b, 0xe9,
-	0x40, 0x4e, 0xdc, 0x3a, 0xe5, 0x9a, 0xee, 0x10, 0x8d, 0x39, 0x5c, 0x33, 0x6d, 0xad, 0x8d, 0xaa,
-	0xce, 0x48, 0x43, 0x52, 0x9d, 0xcf, 0x1e, 0x76, 0x62, 0x48, 0xdb, 0x82, 0xb4, 0x15, 0x6f, 0xdb,
-	0xcd, 0x3b, 0xe5, 0xfb, 0x2e, 0x71, 0x1c, 0xea, 0x86, 0xe3, 0x30, 0x13, 0x72, 0x39, 0x66, 0x99,
-	0xd8, 0x36, 0xe3, 0xc2, 0x9b, 0x6c, 0x9d, 0x7b, 0xfc, 0x3a, 0x8c, 0xab, 0x2d, 0x3a, 0xf0, 0x59,
-	0x18, 0x0b, 0xdd, 0x68, 0x36, 0xb1, 0x68, 0x1e, 0x15, 0xd1, 0xc2, 0x31, 0x75, 0x34, 0xfc, 0x78,
-	0x8d, 0x58, 0x14, 0x6f, 0xc1, 0xa0, 0xdf, 0xf5, 0x7c, 0xae, 0x88, 0x16, 0xc6, 0x2b, 0x57, 0x4b,
-	0x49, 0xf3, 0x2d, 0xfa, 0x5e, 0x6a, 0xf5, 0x70, 0x73, 0xdf, 0xa1, 0x2b, 0x76, 0xd3, 0xea, 0xf2,
-	0x59, 0x15, 0xac, 0xf8, 0x36, 0x0c, 0x99, 0x96, 0x43, 0x74, 0x9e, 0x1f, 0x28, 0xa2, 0x85, 0x91,
-	0xca, 0x95, 0x52, 0xe6, 0x7a, 0x6a, 0x23, 0x6b, 0x7b, 0x5d, 0x13, 0x6c, 0xaa, 0x64, 0xc5, 0x2b,
-	0x30, 0xa1, 0x13, 0xcb, 0x21, 0x66, 0xdd, 0xd6, 0xb6, 0x9b, 0x46, 0x9d, 0xf2, 0xfc, 0x11, 0xe1,
-	0x68, 0x26, 0x74, 0x14, 0x8e, 0x66, 0xe9, 0x06, 0x77, 0x4d, 0xbb, 0xbe, 0x49, 0x1a, 0x4d, 0xaa,
-	0x8e, 0x87, 0xa0, 0x45, 0x81, 0xc1, 0x97, 0xe1, 0x68, 0xf8, 0x25, 0x3f, 0xd4, 0x03, 0x3e, 0xb2,
-	0xc6, 0x97, 0xe0, 0x28, 0x31, 0xb4, 0xba, 0xcb, 0x9a, 0x4e, 0x7e, 0xb8, 0x07, 0xe4, 0x30, 0x31,
-	0x56, 0x7d, 0x63, 0x7c, 0x19, 0x8e, 0x19, 0xa6, 0x67, 0x99, 0x9e, 0x47, 0x8d, 0xfc, 0x98, 0x40,
-	0x2a, 0x1d, 0xc8, 0x45, 0xc6, 0x1a, 0x01, 0xee, 0xc0, 0x18, 0x7f, 0x8b, 0xa0, 0xd0, 0xd6, 0xe9,
-	0xb6, 0x15, 0x98, 0x1f, 0x14, 0x7c, 0xd7, 0x0e, 0x3f, 0xd8, 0x4b, 0x2d, 0xe3, 0xd2, 0xda, 0x78,
-	0xf5, 0x7f, 0xea, 0x8c, 0x9e, 0xd2, 0x8e, 0x1f, 0x22, 0x98, 0x0e, 0x77, 0x63, 0x9b, 0xa0, 0xa3,
-	0x42, 0xd0, 0xea, 0xe1, 0x05, 0xbd, 0x1f, 0xf0, 0x75, 0x28, 0x99, 0xda, 0xe9, 0xd6, 0x80, 0x3f,
-	0x81, 0x69, 0x4e, 0xf7, 0xb8, 0x46, 0x3a, 0x14, 0x1c, 0xeb, 0x77, 0xfd, 0xdd, 0xa4, 0x7b, 0xbc,
-	0xd6, 0x29, 0x60, 0x92, 0x77, 0xf9, 0x8e, 0x1f, 0x21, 0x28, 0x66, 0x9d, 0x0f, 0x79, 0xe8, 0x77,
-	0x76, 0x6e, 0x0a, 0xe6, 0x25, 0x87, 0x5c, 0x77, 0xf8, 0x9a, 0xdd, 0x39, 0x3b, 0x3c, 0xa5, 0x1d,
-	0xff, 0x8a, 0xe0, 0xbc, 0x45, 0xf6, 0x4c, 0xcb, 0x7c, 0x40, 0x35, 0x9d, 0xd9, 0xbb, 0xd4, 0x15,
-	0xa7, 0x6c, 0x82, 0xc8, 0x11, 0x21, 0xf2, 0xd6, 0xe1, 0x45, 0xae, 0x4b, 0x1f, 0x4b, 0x07, 0x2e,
-	0xba, 0xcb, 0x3d, 0x67, 0xf5, 0x64, 0x89, 0x7f, 0x40, 0x30, 0x47, 0xed, 0xbb, 0xc4, 0xd6, 0xa9,
-	0xa1, 0xe9, 0x8e, 0x9e, 0x20, 0x78, 0x54, 0x08, 0xde, 0x38, 0xbc, 0xe0, 0x15, 0xc9, 0xbd, 0xe4,
-	0xe8, 0xdd, 0x85, 0x16, 0x68, 0xaa, 0x05, 0xfe, 0x19, 0xc1, 0xbc, 0x47, 0x89, 0xab, 0xdf, 0xd5,
-	0x1c, 0xe2, 0x72, 0x9b, 0xba, 0x49, 0x83, 0x3a, 0x2e, 0x34, 0xde, 0x38, 0xbc, 0xc6, 0x1b, 0x82,
-	0x7e, 0x43, 0xb2, 0x77, 0x97, 0x39, 0xeb, 0x65, 0x19, 0x09, 0xa5, 0x07, 0x6b, 0xa0, 0x61, 0xea,
-	0x3b, 0x49, 0x4a, 0x27, 0xfa, 0x55, 0x1a, 0x4d, 0xbf, 0x60, 0x4f, 0x50, 0x6a, 0x65, 0x19, 0xe1,
-	0x9f, 0x10, 0x9c, 0x65, 0x0e, 0x0f, 0x94, 0xfa, 0xbb, 0x59, 0x86, 0xbb, 0x76, 0x9d, 0xc7, 0x85,
-	0x4e, 0xf5, 0xf0, 0x3a, 0xaf, 0x4b, 0xf2, 0x9a, 0xa1, 0x4a, 0xea, 0x0e, 0x99, 0x45, 0x96, 0x61,
-	0x83, 0xbf, 0x43, 0x50, 0xd4, 0x49, 0xa3, 0xc1, 0x9a, 0x5c, 0x8b, 0xf2, 0x96, 0x76, 0x89, 0x27,
-	0xfa, 0x5d, 0x98, 0x4b, 0x01, 0xf3, 0x4a, 0x48, 0xdc, 0xb9, 0x30, 0xf5, 0x54, 0x0b, 0xfc, 0x18,
-	0xc1, 0xac, 0x67, 0x72, 0xda, 0x30, 0xed, 0x9d, 0x64, 0x7d, 0x58, 0xe8, 0xfb, 0xa0, 0x8f, 0x45,
-	0x29, 0xa9, 0x93, 0x05, 0x9e, 0xf1, 0xd2, 0x4d, 0xf0, 0x37, 0x08, 0x4e, 0xfb, 0x9d, 0x48, 0x56,
-	0x77, 0x52, 0xa8, 0x5b, 0xef, 0x6f, 0xf4, 0x92, 0x95, 0x9d, 0xd2, 0x93, 0x9b, 0xf1, 0xf7, 0x08,
-	0x66, 0x3b, 0xd3, 0xca, 0x76, 0x65, 0x93, 0xfd, 0xce, 0xab, 0x8c, 0x69, 0xeb, 0x3e, 0xb3, 0xc8,
-	0x95, 0x3a, 0xe6, 0x75, 0x27, 0xd5, 0x42, 0xe8, 0xb3, 0xd8, 0x2e, 0xd5, 0x9a, 0x76, 0xd3, 0xa3,
-	0x46, 0x42, 0x12, 0x30, 0xd5, 0xaf, 0xbe, 0x75, 0xb6, 0x4b, 0x3f, 0x14, 0xcc, 0x09, 0x69, 0x40,
-	0xc1, 0x4a, 0xb5, 0x50, 0xfe, 0x42, 0x30, 0xd9, 0x2d, 0x6d, 0xc3, 0x1f, 0xc3, 0xe8, 0x36, 0xf1,
-	0xa8, 0x66, 0x51, 0xee, 0x9a, 0xba, 0x27, 0x12, 0xd2, 0xbe, 0xd2, 0x82, 0xd6, 0xd7, 0xf5, 0x80,
-	0x4e, 0x1d, 0xf1, 0xc9, 0xe5, 0x0b, 0xe6, 0x70, 0xc2, 0x61, 0x9c, 0xda, 0xdc, 0x24, 0x8d, 0xc8,
-	0x61, 0xee, 0xf9, 0x3a, 0x3c, 0x1e, 0x79, 0x90, 0x5f, 0x94, 0xa7, 0x39, 0x98, 0xea, 0x6a, 0x8b,
-	0xdf, 0x85, 0x11, 0xd3, 0x72, 0x5c, 0xea, 0x89, 0x40, 0x27, 0xbb, 0xde, 0x99, 0x2c, 0x2e, 0xb3,
-	0xe6, 0x76, 0x83, 0x06, 0x49, 0x5f, 0x1c, 0x80, 0x2f, 0xc0, 0x50, 0x70, 0x62, 0xcb, 0x4e, 0xa4,
-	0x43, 0xa5, 0x2d, 0x7e, 0x1b, 0x46, 0x74, 0xe6, 0x71, 0xcd, 0x32, 0x75, 0x97, 0x79, 0x32, 0x0b,
-	0x3f, 0xd5, 0x01, 0x5d, 0xb3, 0xf9, 0xc5, 0x0b, 0x01, 0x12, 0x7c, 0xfb, 0x75, 0x61, 0xee, 0x6b,
-	0x8e, 0x65, 0x0a, 0x32, 0xad, 0xcc, 0xd0, 0x1c, 0x03, 0xe0, 0x77, 0x60, 0x64, 0xd7, 0x34, 0x28,
-	0xd3, 0x76, 0x4d, 0x7a, 0xdf, 0x4b, 0x4c, 0xcd, 0xe3, 0x78, 0x10, 0x80, 0x4d, 0xdf, 0x5e, 0x79,
-	0x36, 0x08, 0x33, 0x69, 0x19, 0x29, 0xde, 0x82, 0x19, 0xbd, 0xe9, 0xba, 0xd4, 0xe6, 0xe1, 0x1e,
-	0x20, 0x16, 0x6b, 0xda, 0x51, 0x77, 0x51, 0x76, 0x77, 0x5f, 0x92, 0x04, 0x01, 0x7f, 0x4d, 0xc0,
-	0x65, 0xef, 0x0d, 0x28, 0x46, 0x5b, 0xea, 0x60, 0x97, 0xb5, 0x7a, 0xc8, 0x65, 0x7b, 0x38, 0x1d,
-	0x23, 0xe9, 0xe2, 0xe5, 0x11, 0x82, 0x71, 0x49, 0xed, 0xc7, 0x1b, 0x7f, 0x9c, 0x07, 0x8a, 0x03,
-	0x0b, 0x23, 0x95, 0x7b, 0xcf, 0x37, 0x7d, 0x4f, 0x6d, 0xbc, 0x2e, 0x3c, 0xab, 0x63, 0x81, 0x90,
-	0xe0, 0xcd, 0x53, 0x9e, 0x21, 0x98, 0xcb, 0x46, 0xe1, 0x75, 0x98, 0xec, 0x77, 0xf4, 0xf1, 0x76,
-	0xe7, 0x80, 0x1c, 0xd4, 0x8c, 0xb9, 0x17, 0x51, 0x33, 0x2a, 0x4f, 0x10, 0x4c, 0x75, 0x2d, 0x2b,
-	0xf0, 0x0a, 0x0c, 0xcb, 0x93, 0x57, 0x6a, 0x7f, 0x39, 0xd1, 0x75, 0x70, 0x59, 0x11, 0x1e, 0xe5,
-	0x6b, 0xf6, 0x1d, 0xa6, 0x86, 0x58, 0x7c, 0x0b, 0x94, 0xf8, 0xba, 0xf1, 0x53, 0xd6, 0x6d, 0xd3,
-	0x38, 0xc4, 0x8a, 0xf9, 0x7f, 0x0c, 0xbe, 0xe4, 0xe8, 0x8b, 0xa6, 0x11, 0x0c, 0x8d, 0xf2, 0x25,
-	0x82, 0x33, 0x19, 0x51, 0x17, 0xd7, 0x61, 0x3a, 0xee, 0xfd, 0xe0, 0x3a, 0x25, 0x8f, 0xc4, 0xb2,
-	0x7a, 0x2d, 0xab, 0x4f, 0xa1, 0x83, 0x2b, 0x94, 0x1a, 0x6b, 0x9c, 0x5a, 0xea, 0x54, 0x8c, 0x2f,
-	0xf2, 0xea, 0x29, 0x7f, 0x23, 0x28, 0xa4, 0x87, 0x0a, 0xac, 0xc2, 0x34, 0xdd, 0xd3, 0xa9, 0xe7,
-	0x69, 0xed, 0x55, 0x3a, 0xea, 0xa1, 0x56, 0x9e, 0x0c, 0xb0, 0xad, 0x2b, 0x10, 0x7f, 0x86, 0x60,
-	0xaa, 0x7b, 0xc0, 0xcb, 0xbd, 0x88, 0xaa, 0x57, 0x95, 0x6b, 0xbb, 0x2d, 0xc4, 0xfd, 0x8e, 0x60,
-	0xb2, 0x5b, 0x65, 0x88, 0xdf, 0x84, 0x1c, 0x09, 0x97, 0xcf, 0x7c, 0x0f, 0x52, 0x6a, 0x86, 0x9a,
-	0x23, 0x06, 0xae, 0xc1, 0x98, 0xee, 0xd2, 0x20, 0xc5, 0x35, 0x08, 0xa7, 0x89, 0x87, 0x7c, 0x7c,
-	0x80, 0x46, 0x43, 0xc8, 0x32, 0xe1, 0x14, 0x2f, 0xc3, 0x04, 0x69, 0x72, 0xa6, 0x11, 0xc7, 0x69,
-	0xec, 0x07, 0x24, 0x03, 0x3d, 0x90, 0x8c, 0xf9, 0xa0, 0x9a, 0x8f, 0xf1, 0x59, 0x94, 0xdf, 0x8e,
-	0xc0, 0x4c, 0x5a, 0x9d, 0x89, 0xbf, 0x42, 0x30, 0x1c, 0x1e, 0x54, 0xa8, 0xdf, 0x83, 0x2a, 0xcd,
-	0x43, 0x6a, 0xa3, 0x3c, 0xa8, 0x42, 0x05, 0xf8, 0x36, 0xc4, 0x8f, 0x57, 0x2d, 0x56, 0x7b, 0xf7,
-	0xbe, 0xdd, 0xe2, 0xbb, 0x35, 0xf2, 0x2d, 0x77, 0xdc, 0x93, 0x01, 0x98, 0xcb, 0xd6, 0x83, 0xf7,
-	0x60, 0xb0, 0xce, 0x48, 0x43, 0xcc, 0xfb, 0x78, 0xc5, 0xc8, 0xb8, 0x45, 0x4b, 0x23, 0x5c, 0x65,
-	0xa4, 0x21, 0xee, 0xd4, 0xb2, 0x8c, 0x54, 0xe1, 0x11, 0xaf, 0xc2, 0x89, 0xbe, 0x3a, 0x3d, 0xc1,
-	0x5b, 0x7b, 0x8a, 0x19, 0x9c, 0x73, 0xe9, 0xbd, 0xa6, 0xe9, 0xfa, 0x47, 0x56, 0xdb, 0xf5, 0x52,
-	0xeb, 0xb9, 0xde, 0x43, 0x12, 0x31, 0x17, 0x52, 0xb5, 0x6e, 0xad, 0x84, 0x73, 0x7e, 0xf0, 0x85,
-	0x9c, 0xf3, 0x5f, 0x23, 0x38, 0xd7, 0xdb, 0x65, 0x44, 0x4f, 0x91, 0x1e, 0xfd, 0xdb, 0x48, 0xaf,
-	0xcc, 0x41, 0x31, 0xab, 0xea, 0x54, 0x8a, 0x50, 0x48, 0xbf, 0x8f, 0x50, 0xce, 0xc2, 0x6c, 0xe6,
-	0x6d, 0x80, 0xf2, 0x07, 0x82, 0x42, 0x7a, 0x99, 0xf1, 0xbc, 0x82, 0xdd, 0x83, 0xd6, 0x70, 0x73,
-	0x50, 0x2e, 0xc9, 0x1b, 0xe5, 0xe5, 0x8c, 0xbd, 0xd0, 0xae, 0x52, 0xac, 0xfd, 0x0e, 0xe9, 0x93,
-	0x31, 0x1f, 0xd1, 0x57, 0xe5, 0x0b, 0x04, 0xb3, 0x99, 0xf7, 0x0d, 0xff, 0xd1, 0xe4, 0x7e, 0x8e,
-	0xa0, 0x90, 0x5e, 0xb0, 0xe3, 0x3b, 0x19, 0x91, 0xb9, 0x9c, 0x35, 0x01, 0x92, 0x3f, 0x2b, 0x30,
-	0x7f, 0x8a, 0xe0, 0x54, 0x4a, 0xf5, 0x8b, 0xf5, 0x0c, 0x1d, 0xaf, 0xf4, 0xa2, 0x23, 0x43, 0xc4,
-	0xe2, 0x71, 0x18, 0x6f, 0x0d, 0xcf, 0x8b, 0x0f, 0x73, 0x30, 0xaf, 0x33, 0x2b, 0x7b, 0x97, 0x2f,
-	0x9e, 0x6c, 0x15, 0xbc, 0xe1, 0xcf, 0xc6, 0x06, 0xfa, 0xe8, 0x3d, 0x89, 0xac, 0xb3, 0x06, 0xb1,
-	0xeb, 0x25, 0xe6, 0xd6, 0xcb, 0x75, 0x6a, 0x8b, 0xb9, 0x0a, 0x7f, 0xae, 0x38, 0xa6, 0x97, 0xf2,
+	0x8e, 0xf7, 0x62, 0x7b, 0xb3, 0xb4, 0xbc, 0xd9, 0x9e, 0xf3, 0xfb, 0x9d, 0xdf, 0xcc, 0x9c, 0x33,
+	0x73, 0x66, 0x0c, 0x17, 0xeb, 0x8c, 0xd5, 0x1b, 0xb4, 0x4c, 0x0c, 0xaf, 0x1c, 0x3c, 0xfa, 0x4f,
+	0xbb, 0x95, 0xb2, 0x4b, 0x3d, 0xd6, 0x74, 0x75, 0xea, 0x95, 0x5d, 0xaa, 0x33, 0xcb, 0xa2, 0xb6,
+	0x41, 0xb8, 0xc9, 0xec, 0x92, 0xe3, 0x32, 0xce, 0xf0, 0x6c, 0x60, 0x5c, 0x22, 0x86, 0x57, 0x8a,
+	0x70, 0xa5, 0xdd, 0x4a, 0x29, 0xc2, 0x29, 0xaf, 0x26, 0x51, 0xfb, 0x74, 0xcc, 0x2e, 0xeb, 0xae,
+	0xc9, 0xa9, 0x6b, 0x92, 0x80, 0x51, 0x29, 0x67, 0x98, 0xd3, 0x3d, 0x4e, 0x6d, 0xcf, 0x64, 0xb6,
+	0x27, 0x01, 0x89, 0xd2, 0xa9, 0xdd, 0xb4, 0xbc, 0xf2, 0x0e, 0xdd, 0xbf, 0xcf, 0x5c, 0x43, 0xb3,
+	0x08, 0xd7, 0xef, 0x6a, 0x7c, 0xdf, 0xa1, 0x12, 0x77, 0x29, 0x1d, 0xd7, 0xda, 0xdd, 0x38, 0x70,
+	0x2d, 0x1d, 0xc8, 0x89, 0x5b, 0xa7, 0x5c, 0xd3, 0x1d, 0xa2, 0x31, 0x87, 0x6b, 0xa6, 0xad, 0xb5,
+	0x51, 0xd5, 0x19, 0x69, 0x48, 0xaa, 0xf3, 0xd9, 0xc3, 0x4e, 0x0c, 0x69, 0x5b, 0x90, 0xb6, 0xe2,
+	0x6d, 0xbb, 0x79, 0xa7, 0x7c, 0xdf, 0x25, 0x8e, 0x43, 0xdd, 0x70, 0x1c, 0x66, 0x42, 0x2e, 0xc7,
+	0x2c, 0x13, 0xdb, 0x66, 0x5c, 0x78, 0x93, 0xad, 0x73, 0x8f, 0x5f, 0x87, 0x71, 0xb5, 0x45, 0x07,
+	0x3e, 0x0b, 0x63, 0xa1, 0x1b, 0xcd, 0x26, 0x16, 0xcd, 0xa3, 0x22, 0x5a, 0x38, 0xa6, 0x8e, 0x86,
+	0x1f, 0xaf, 0x11, 0x8b, 0xe2, 0x2d, 0x18, 0xf4, 0xbb, 0x9e, 0xcf, 0x15, 0xd1, 0xc2, 0x78, 0xe5,
+	0x6a, 0x29, 0x69, 0xbe, 0x45, 0xdf, 0x4b, 0xad, 0x1e, 0x6e, 0xee, 0x3b, 0x74, 0xc5, 0x6e, 0x5a,
+	0x5d, 0x3e, 0xab, 0x82, 0x15, 0xdf, 0x86, 0x21, 0xd3, 0x72, 0x88, 0xce, 0xf3, 0x03, 0x45, 0xb4,
+	0x30, 0x52, 0xb9, 0x52, 0xca, 0x8c, 0xa7, 0x36, 0xb2, 0xb6, 0xd7, 0x35, 0xc1, 0xa6, 0x4a, 0x56,
+	0xbc, 0x02, 0x13, 0x3a, 0xb1, 0x1c, 0x62, 0xd6, 0x6d, 0x6d, 0xbb, 0x69, 0xd4, 0x29, 0xcf, 0x1f,
+	0x11, 0x8e, 0x66, 0x42, 0x47, 0xe1, 0x68, 0x96, 0x6e, 0x70, 0xd7, 0xb4, 0xeb, 0x9b, 0xa4, 0xd1,
+	0xa4, 0xea, 0x78, 0x08, 0x5a, 0x14, 0x18, 0x7c, 0x19, 0x8e, 0x86, 0x5f, 0xf2, 0x43, 0x3d, 0xe0,
+	0x23, 0x6b, 0x7c, 0x09, 0x8e, 0x12, 0x43, 0xab, 0xbb, 0xac, 0xe9, 0xe4, 0x87, 0x7b, 0x40, 0x0e,
+	0x13, 0x63, 0xd5, 0x37, 0xc6, 0x97, 0xe1, 0x98, 0x61, 0x7a, 0x96, 0xe9, 0x79, 0xd4, 0xc8, 0x8f,
+	0x09, 0xa4, 0xd2, 0x81, 0x5c, 0x64, 0xac, 0x11, 0xe0, 0x0e, 0x8c, 0xf1, 0xb7, 0x08, 0x0a, 0x6d,
+	0x9d, 0x6e, 0x8b, 0xc0, 0xfc, 0xa0, 0xe0, 0xbb, 0x76, 0xf8, 0xc1, 0x5e, 0x6a, 0x19, 0x97, 0xd6,
+	0xc6, 0xab, 0xff, 0x53, 0x67, 0xf4, 0x94, 0x76, 0xfc, 0x10, 0xc1, 0x74, 0x98, 0x8d, 0x6d, 0x82,
+	0x8e, 0x0a, 0x41, 0xab, 0x87, 0x17, 0xf4, 0x7e, 0xc0, 0xd7, 0xa1, 0x64, 0x6a, 0xa7, 0x5b, 0x03,
+	0xfe, 0x04, 0xa6, 0x39, 0xdd, 0xe3, 0x1a, 0xe9, 0x50, 0x70, 0xac, 0xdf, 0xf8, 0xbb, 0x49, 0xf7,
+	0x78, 0xad, 0x53, 0xc0, 0x24, 0xef, 0xf2, 0x1d, 0x3f, 0x42, 0x50, 0xcc, 0x5a, 0x1f, 0xf2, 0xd0,
+	0xef, 0xec, 0xdc, 0x14, 0xcc, 0x4b, 0x0e, 0xb9, 0xee, 0xf0, 0x35, 0xbb, 0x73, 0x76, 0x78, 0x4a,
+	0x3b, 0xfe, 0x15, 0xc1, 0x79, 0x8b, 0xec, 0x99, 0x96, 0xf9, 0x80, 0x6a, 0x3a, 0xb3, 0x77, 0xa9,
+	0x2b, 0x56, 0xd9, 0x04, 0x91, 0x23, 0x42, 0xe4, 0xad, 0xc3, 0x8b, 0x5c, 0x97, 0x3e, 0x96, 0x0e,
+	0x5c, 0x74, 0x97, 0x7b, 0xce, 0xea, 0xc9, 0x12, 0xff, 0x80, 0x60, 0x8e, 0xda, 0x77, 0x89, 0xad,
+	0x53, 0x43, 0xd3, 0x1d, 0x3d, 0x41, 0xf0, 0xa8, 0x10, 0xbc, 0x71, 0x78, 0xc1, 0x2b, 0x92, 0x7b,
+	0xc9, 0xd1, 0xbb, 0x0b, 0x2d, 0xd0, 0x54, 0x0b, 0xfc, 0x33, 0x82, 0x79, 0x8f, 0x12, 0x57, 0xbf,
+	0xab, 0x39, 0xc4, 0xe5, 0x36, 0x75, 0x93, 0x06, 0x75, 0x5c, 0x68, 0xbc, 0x71, 0x78, 0x8d, 0x37,
+	0x04, 0xfd, 0x86, 0x64, 0xef, 0x2e, 0x73, 0xd6, 0xcb, 0x32, 0x12, 0x4a, 0x0f, 0x62, 0xa0, 0x61,
+	0xea, 0x3b, 0x49, 0x4a, 0x27, 0xfa, 0x55, 0x1a, 0x4d, 0xbf, 0x60, 0x4f, 0x50, 0x6a, 0x65, 0x19,
+	0xe1, 0x9f, 0x10, 0x9c, 0x65, 0x0e, 0x0f, 0x94, 0xfa, 0xd9, 0x2c, 0xb7, 0xbb, 0x76, 0x9d, 0xc7,
+	0x85, 0x4e, 0xf5, 0xf0, 0x3a, 0xaf, 0x4b, 0xf2, 0x9a, 0xa1, 0x4a, 0xea, 0x0e, 0x99, 0x45, 0x96,
+	0x61, 0x83, 0xbf, 0x43, 0x50, 0xd4, 0x49, 0xa3, 0xc1, 0x9a, 0x5c, 0x8b, 0xea, 0x96, 0x76, 0x89,
+	0x27, 0xfa, 0x0d, 0xcc, 0xa5, 0x80, 0x79, 0x25, 0x24, 0xee, 0x0c, 0x4c, 0x3d, 0xd5, 0x02, 0x3f,
+	0x46, 0x30, 0xeb, 0x99, 0x9c, 0x36, 0x4c, 0x7b, 0x27, 0x59, 0x1f, 0x16, 0xfa, 0x3e, 0xe8, 0x23,
+	0x28, 0x25, 0x75, 0xb2, 0xc0, 0x33, 0x5e, 0xba, 0x09, 0xfe, 0x06, 0xc1, 0x69, 0xbf, 0x13, 0xc9,
+	0xea, 0x4e, 0x0a, 0x75, 0xeb, 0xfd, 0x8d, 0x5e, 0xb2, 0xb2, 0x53, 0x7a, 0x72, 0x33, 0xfe, 0x1e,
+	0xc1, 0x6c, 0x67, 0x59, 0xd9, 0xae, 0x6c, 0xb2, 0xdf, 0x79, 0x95, 0x7b, 0xda, 0xba, 0xcf, 0x2c,
+	0x6a, 0xa5, 0x8e, 0x79, 0xdd, 0x49, 0xb5, 0x10, 0xfa, 0x2c, 0xb6, 0x4b, 0xb5, 0xa6, 0xdd, 0xf4,
+	0xa8, 0x91, 0x50, 0x04, 0x4c, 0xf5, 0xab, 0x6f, 0x9d, 0xed, 0xd2, 0x0f, 0x05, 0x73, 0x42, 0x19,
+	0x50, 0xb0, 0x52, 0x2d, 0x94, 0xbf, 0x10, 0x4c, 0x76, 0x2b, 0xdb, 0xf0, 0xc7, 0x30, 0xba, 0x4d,
+	0x3c, 0xaa, 0x59, 0x94, 0xbb, 0xa6, 0xee, 0x89, 0x82, 0xb4, 0xaf, 0xb2, 0xa0, 0xf5, 0x75, 0x3d,
+	0xa0, 0x53, 0x47, 0x7c, 0x72, 0xf9, 0x82, 0x39, 0x9c, 0x70, 0x18, 0xa7, 0x36, 0x37, 0x49, 0x23,
+	0x72, 0x98, 0x7b, 0xbe, 0x0e, 0x8f, 0x47, 0x1e, 0xe4, 0x17, 0xe5, 0x69, 0x0e, 0xa6, 0xba, 0xda,
+	0xe2, 0x77, 0x61, 0xc4, 0xb4, 0x1c, 0x97, 0x7a, 0x62, 0xa3, 0x93, 0x5d, 0xef, 0x2c, 0x16, 0x97,
+	0x59, 0x73, 0xbb, 0x41, 0x83, 0xa2, 0x2f, 0x0e, 0xc0, 0x17, 0x60, 0x28, 0x58, 0xb1, 0x65, 0x27,
+	0xd2, 0xa1, 0xd2, 0x16, 0xbf, 0x0d, 0x23, 0x3a, 0xf3, 0xb8, 0x66, 0x99, 0xba, 0xcb, 0x3c, 0x59,
+	0x85, 0x9f, 0xea, 0x80, 0xae, 0xd9, 0xfc, 0xe2, 0x85, 0x00, 0x09, 0xbe, 0xfd, 0xba, 0x30, 0xf7,
+	0x35, 0xc7, 0x2a, 0x05, 0x59, 0x56, 0x66, 0x68, 0x8e, 0x01, 0xf0, 0x3b, 0x30, 0xb2, 0x6b, 0x1a,
+	0x94, 0x69, 0xbb, 0x26, 0xbd, 0xef, 0x25, 0x96, 0xe6, 0x71, 0x3c, 0x08, 0xc0, 0xa6, 0x6f, 0xaf,
+	0x3c, 0x1b, 0x84, 0x99, 0xb4, 0x8a, 0x14, 0x6f, 0xc1, 0x8c, 0xde, 0x74, 0x5d, 0x6a, 0xf3, 0x30,
+	0x07, 0x88, 0xc5, 0x9a, 0x76, 0xd4, 0x5d, 0x94, 0xdd, 0xdd, 0x97, 0x24, 0x41, 0xc0, 0x5f, 0x13,
+	0x70, 0xd9, 0x7b, 0x03, 0x8a, 0x51, 0x4a, 0x1d, 0x64, 0x59, 0xab, 0x87, 0x5c, 0xb6, 0x87, 0xd3,
+	0x31, 0x92, 0x2e, 0x5e, 0x1e, 0x21, 0x18, 0x97, 0xd4, 0xfe, 0x7e, 0xe3, 0x8f, 0xf3, 0x40, 0x71,
+	0x60, 0x61, 0xa4, 0x72, 0xef, 0xf9, 0x96, 0xef, 0xa9, 0x8d, 0xd7, 0x85, 0x67, 0x75, 0x2c, 0x10,
+	0x12, 0xbc, 0x79, 0xca, 0x33, 0x04, 0x73, 0xd9, 0x28, 0xbc, 0x0e, 0x93, 0xfd, 0x8e, 0x3e, 0xde,
+	0xee, 0x1c, 0x90, 0x83, 0x33, 0x63, 0xee, 0x45, 0x9c, 0x19, 0x95, 0x27, 0x08, 0xa6, 0xba, 0x1e,
+	0x2b, 0xf0, 0x0a, 0x0c, 0xcb, 0x95, 0x57, 0x6a, 0x7f, 0x39, 0xd1, 0x75, 0x70, 0x59, 0x11, 0x2e,
+	0xe5, 0x6b, 0xf6, 0x1d, 0xa6, 0x86, 0x58, 0x7c, 0x0b, 0x94, 0x78, 0xdc, 0xf8, 0x25, 0xeb, 0xb6,
+	0x69, 0x1c, 0x22, 0x62, 0xfe, 0x1f, 0x83, 0x2f, 0x39, 0xfa, 0xa2, 0x69, 0x04, 0x43, 0xa3, 0xfc,
+	0x76, 0x04, 0x66, 0xd2, 0x0e, 0x01, 0xf8, 0x2b, 0x04, 0xc3, 0x61, 0x14, 0xa1, 0x7e, 0xa3, 0x28,
+	0xcd, 0x43, 0x6a, 0xa3, 0x8c, 0xa2, 0x50, 0x01, 0xbe, 0x0d, 0xf1, 0xd8, 0xd7, 0x62, 0x07, 0xa3,
+	0xde, 0xc7, 0x22, 0x3e, 0x94, 0x91, 0x6f, 0x39, 0x1c, 0x4f, 0x06, 0x60, 0x2e, 0x5b, 0x0f, 0xde,
+	0x83, 0xc1, 0x3a, 0x23, 0x0d, 0x31, 0xa7, 0xe3, 0x15, 0x23, 0xe3, 0x8a, 0x23, 0x8d, 0x70, 0x95,
+	0x91, 0x86, 0xb8, 0xf0, 0xc8, 0x32, 0x52, 0x85, 0x47, 0xbc, 0x0a, 0x27, 0xfa, 0xea, 0xf4, 0x04,
+	0x6f, 0xed, 0x29, 0x66, 0x70, 0xce, 0xa5, 0xf7, 0x9a, 0xa6, 0xeb, 0xc7, 0x53, 0xdb, 0xd9, 0xbf,
+	0x35, 0xe9, 0x7a, 0x58, 0xe1, 0xe7, 0x42, 0xaa, 0xd6, 0xdc, 0x4e, 0x48, 0xc2, 0xc1, 0x17, 0x92,
+	0x84, 0xbf, 0x23, 0x98, 0xec, 0x76, 0xb2, 0xc6, 0x6f, 0x42, 0x8e, 0x84, 0xe9, 0x37, 0xdf, 0x83,
+	0xd3, 0x9a, 0xa1, 0xe6, 0x88, 0x81, 0x6b, 0x30, 0xa6, 0xbb, 0x34, 0x38, 0x22, 0x18, 0x84, 0xd3,
+	0xc4, 0x4d, 0x32, 0x7e, 0x19, 0x33, 0x1a, 0x42, 0x96, 0x09, 0xa7, 0x78, 0x19, 0x26, 0x48, 0x93,
+	0x33, 0x8d, 0x38, 0x4e, 0x63, 0x3f, 0x20, 0x19, 0xe8, 0x81, 0x64, 0xcc, 0x07, 0xd5, 0x7c, 0x8c,
+	0xcf, 0xa2, 0x7c, 0x89, 0xe0, 0x4c, 0x46, 0x61, 0x8c, 0xeb, 0x30, 0x1d, 0xcf, 0x8b, 0x83, 0x1b,
+	0x4f, 0x99, 0xb3, 0xaf, 0x65, 0x2d, 0x3b, 0xa1, 0x83, 0x2b, 0x94, 0x1a, 0x6b, 0x9c, 0x5a, 0xea,
+	0x54, 0x8c, 0x2f, 0xf2, 0xea, 0x29, 0x7f, 0x23, 0x28, 0xa4, 0x57, 0x73, 0x58, 0x85, 0x69, 0xba,
+	0xa7, 0x53, 0xcf, 0x6b, 0x8f, 0xab, 0xc4, 0x0a, 0x25, 0xde, 0xf9, 0xc9, 0x00, 0xdb, 0x1a, 0x48,
+	0xf8, 0x33, 0x04, 0x53, 0xdd, 0x6b, 0xd2, 0xdc, 0x8b, 0xb8, 0x98, 0x52, 0xe5, 0xf6, 0xd3, 0x56,
+	0x85, 0x7e, 0x8d, 0xe0, 0x5c, 0x6f, 0x97, 0x11, 0x3d, 0xed, 0xf4, 0xe8, 0xdf, 0xee, 0xf4, 0x4a,
+	0x11, 0x0a, 0xe9, 0x77, 0x0d, 0xca, 0x1f, 0x08, 0x0a, 0xe9, 0xa7, 0x83, 0xe7, 0xb5, 0x47, 0x3d,
+	0x68, 0x0d, 0xc1, 0x83, 0x53, 0x8e, 0xbc, 0x08, 0x5e, 0xce, 0x58, 0x25, 0xdb, 0x55, 0x8a, 0x55,
+	0xb1, 0x43, 0xfa, 0x64, 0xcc, 0x47, 0xf4, 0x55, 0x39, 0x0b, 0xb3, 0x99, 0xf7, 0x19, 0xca, 0x17,
+	0x08, 0x66, 0x33, 0xef, 0x12, 0xfe, 0xa3, 0x89, 0x9b, 0x83, 0x62, 0xd6, 0x75, 0x81, 0xf2, 0x39,
+	0x82, 0x42, 0xfa, 0x81, 0x1d, 0xdf, 0xc9, 0x48, 0xfb, 0x72, 0xd6, 0x4c, 0x4a, 0xfe, 0xac, 0xac,
+	0xff, 0x14, 0xc1, 0xa9, 0x94, 0xd3, 0x2f, 0xd6, 0x33, 0x74, 0xbc, 0xd2, 0x8b, 0x8e, 0x0c, 0x11,
+	0x8b, 0xc7, 0x61, 0xbc, 0x35, 0xf7, 0x17, 0x1f, 0xe6, 0x60, 0x5e, 0x67, 0x56, 0x76, 0xee, 0x2f,
+	0x9e, 0x6c, 0x15, 0xbc, 0xe1, 0xcf, 0xd8, 0x06, 0xfa, 0xe8, 0x3d, 0x89, 0xac, 0xb3, 0x06, 0xb1,
+	0xeb, 0x25, 0xe6, 0xd6, 0xcb, 0x75, 0x6a, 0x8b, 0xf9, 0x0c, 0x7f, 0xae, 0x38, 0xa6, 0x97, 0xf2,
 	0xaf, 0xe5, 0xad, 0xe8, 0xe9, 0xc7, 0xdc, 0xc0, 0x6a, 0xad, 0xf6, 0x4b, 0x6e, 0x76, 0x35, 0xa0,
 	0xac, 0x19, 0x5e, 0x29, 0x78, 0xf4, 0x9f, 0x36, 0x2b, 0x25, 0x35, 0xb4, 0x7c, 0x1a, 0xda, 0x6c,
 	0xd5, 0x0c, 0x6f, 0x2b, 0xb2, 0xd9, 0xda, 0xac, 0x6c, 0x45, 0x36, 0x7f, 0xe6, 0xe6, 0x83, 0x86,
 	0x6a, 0xb5, 0x66, 0x78, 0xd5, 0x6a, 0x64, 0x55, 0xad, 0x6e, 0x56, 0xaa, 0xd5, 0xc8, 0x6e, 0x7b,
-	0x48, 0x88, 0x7d, 0xe3, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x66, 0xa0, 0xa4, 0xd7, 0x8e, 0x1b,
+	0x48, 0x88, 0x7d, 0xe3, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf0, 0x7f, 0x81, 0x9c, 0x8e, 0x1b,
 	0x00, 0x00,
 }
diff --git a/googleapis/cloud/memcache/v1beta2/cloud_memcache.pb.go b/googleapis/cloud/memcache/v1beta2/cloud_memcache.pb.go
new file mode 100644
index 0000000..c037c66
--- /dev/null
+++ b/googleapis/cloud/memcache/v1beta2/cloud_memcache.pb.go
@@ -0,0 +1,1732 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// source: google/cloud/memcache/v1beta2/cloud_memcache.proto
+
+package memcache
+
+import (
+	context "context"
+	fmt "fmt"
+	math "math"
+
+	proto "github.com/golang/protobuf/proto"
+	timestamp "github.com/golang/protobuf/ptypes/timestamp"
+	_ "google.golang.org/genproto/googleapis/api/annotations"
+	longrunning "google.golang.org/genproto/googleapis/longrunning"
+	field_mask "google.golang.org/genproto/protobuf/field_mask"
+	grpc "google.golang.org/grpc"
+	codes "google.golang.org/grpc/codes"
+	status "google.golang.org/grpc/status"
+)
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the proto package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// proto package needs to be updated.
+const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
+
+// Memcached versions supported by our service.
+type MemcacheVersion int32
+
+const (
+	MemcacheVersion_MEMCACHE_VERSION_UNSPECIFIED MemcacheVersion = 0
+	// Memcached 1.5 version.
+	MemcacheVersion_MEMCACHE_1_5 MemcacheVersion = 1
+)
+
+var MemcacheVersion_name = map[int32]string{
+	0: "MEMCACHE_VERSION_UNSPECIFIED",
+	1: "MEMCACHE_1_5",
+}
+
+var MemcacheVersion_value = map[string]int32{
+	"MEMCACHE_VERSION_UNSPECIFIED": 0,
+	"MEMCACHE_1_5":                 1,
+}
+
+func (x MemcacheVersion) String() string {
+	return proto.EnumName(MemcacheVersion_name, int32(x))
+}
+
+func (MemcacheVersion) EnumDescriptor() ([]byte, []int) {
+	return fileDescriptor_f170fe0dfb840f0d, []int{0}
+}
+
+// Different states of a Memcached instance.
+// LINT.IfChange
+type Instance_State int32
+
+const (
+	// State not set.
+	Instance_STATE_UNSPECIFIED Instance_State = 0
+	// Memcached instance is being created.
+	Instance_CREATING Instance_State = 1
+	// Memcached instance has been created and ready to be used.
+	Instance_READY Instance_State = 2
+	// Memcached instance is being deleted.
+	Instance_DELETING Instance_State = 4
+	// Memcached instance is going through maintenance, e.g. data plane rollout.
+	Instance_PERFORMING_MAINTENANCE Instance_State = 5
+)
+
+var Instance_State_name = map[int32]string{
+	0: "STATE_UNSPECIFIED",
+	1: "CREATING",
+	2: "READY",
+	4: "DELETING",
+	5: "PERFORMING_MAINTENANCE",
+}
+
+var Instance_State_value = map[string]int32{
+	"STATE_UNSPECIFIED":      0,
+	"CREATING":               1,
+	"READY":                  2,
+	"DELETING":               4,
+	"PERFORMING_MAINTENANCE": 5,
+}
+
+func (x Instance_State) String() string {
+	return proto.EnumName(Instance_State_name, int32(x))
+}
+
+func (Instance_State) EnumDescriptor() ([]byte, []int) {
+	return fileDescriptor_f170fe0dfb840f0d, []int{0, 0}
+}
+
+// Different states of a Memcached node.
+// LINT.IfChange
+type Instance_Node_State int32
+
+const (
+	// Node state is not set.
+	Instance_Node_STATE_UNSPECIFIED Instance_Node_State = 0
+	// Node is being created.
+	Instance_Node_CREATING Instance_Node_State = 1
+	// Node has been created and ready to be used.
+	Instance_Node_READY Instance_Node_State = 2
+	// Node is being deleted.
+	Instance_Node_DELETING Instance_Node_State = 3
+	// Node is being updated.
+	Instance_Node_UPDATING Instance_Node_State = 4
+)
+
+var Instance_Node_State_name = map[int32]string{
+	0: "STATE_UNSPECIFIED",
+	1: "CREATING",
+	2: "READY",
+	3: "DELETING",
+	4: "UPDATING",
+}
+
+var Instance_Node_State_value = map[string]int32{
+	"STATE_UNSPECIFIED": 0,
+	"CREATING":          1,
+	"READY":             2,
+	"DELETING":          3,
+	"UPDATING":          4,
+}
+
+func (x Instance_Node_State) String() string {
+	return proto.EnumName(Instance_Node_State_name, int32(x))
+}
+
+func (Instance_Node_State) EnumDescriptor() ([]byte, []int) {
+	return fileDescriptor_f170fe0dfb840f0d, []int{0, 1, 0}
+}
+
+type Instance_InstanceMessage_Code int32
+
+const (
+	// Message Code not set.
+	Instance_InstanceMessage_CODE_UNSPECIFIED Instance_InstanceMessage_Code = 0
+	// Memcached nodes are distributed unevenly.
+	Instance_InstanceMessage_ZONE_DISTRIBUTION_UNBALANCED Instance_InstanceMessage_Code = 1
+)
+
+var Instance_InstanceMessage_Code_name = map[int32]string{
+	0: "CODE_UNSPECIFIED",
+	1: "ZONE_DISTRIBUTION_UNBALANCED",
+}
+
+var Instance_InstanceMessage_Code_value = map[string]int32{
+	"CODE_UNSPECIFIED":             0,
+	"ZONE_DISTRIBUTION_UNBALANCED": 1,
+}
+
+func (x Instance_InstanceMessage_Code) String() string {
+	return proto.EnumName(Instance_InstanceMessage_Code_name, int32(x))
+}
+
+func (Instance_InstanceMessage_Code) EnumDescriptor() ([]byte, []int) {
+	return fileDescriptor_f170fe0dfb840f0d, []int{0, 2, 0}
+}
+
+type Instance struct {
+	// Required. Unique name of the resource in this scope including project and
+	// location using the form:
+	//     `projects/{project_id}/locations/{location_id}/instances/{instance_id}`
+	//
+	// Note: Memcached instances are managed and addressed at regional level so
+	// location_id here refers to a GCP region; however, users may choose which
+	// zones Memcached nodes within an instances should be provisioned in.
+	// Refer to [zones] field for more details.
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+	// Optional. User provided name for the instance only used for display
+	// purposes. Cannot be more than 80 characters.
+	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
+	// Optional. Resource labels to represent user-provided metadata.
+	// Refer to cloud documentation on labels for more details.
+	// https://cloud.google.com/compute/docs/labeling-resources
+	Labels map[string]string `protobuf:"bytes,3,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+	// Optional. The full name of the Google Compute Engine
+	// [network](/compute/docs/networks-and-firewalls#networks) to which the
+	// instance is connected. If left unspecified, the `default` network
+	// will be used.
+	AuthorizedNetwork string `protobuf:"bytes,4,opt,name=authorized_network,json=authorizedNetwork,proto3" json:"authorized_network,omitempty"`
+	// Optional. Zones where Memcached nodes should be provisioned in.
+	// Memcached nodes will be equally distributed across these zones. If not
+	// provided, the service will by default create nodes in all zones in the
+	// region for the instance.
+	Zones []string `protobuf:"bytes,5,rep,name=zones,proto3" json:"zones,omitempty"`
+	// Required. Number of nodes in the Memcached instance.
+	NodeCount int32 `protobuf:"varint,6,opt,name=node_count,json=nodeCount,proto3" json:"node_count,omitempty"`
+	// Required. Configuration for Memcached nodes.
+	NodeConfig *Instance_NodeConfig `protobuf:"bytes,7,opt,name=node_config,json=nodeConfig,proto3" json:"node_config,omitempty"`
+	// Optional. The major version of Memcached software.
+	// If not provided, latest supported version will be used. Currently the
+	// latest supported major version is MEMCACHE_1_5.
+	// The minor version will be automatically determined by our system based on
+	// the latest supported minor version.
+	MemcacheVersion MemcacheVersion `protobuf:"varint,9,opt,name=memcache_version,json=memcacheVersion,proto3,enum=google.cloud.memcache.v1beta2.MemcacheVersion" json:"memcache_version,omitempty"`
+	// Optional: User defined parameters to apply to the memcached process
+	// on each node.
+	Parameters *MemcacheParameters `protobuf:"bytes,11,opt,name=parameters,proto3" json:"parameters,omitempty"`
+	// Output only. List of Memcached nodes.
+	// Refer to [Node] message for more details.
+	MemcacheNodes []*Instance_Node `protobuf:"bytes,12,rep,name=memcache_nodes,json=memcacheNodes,proto3" json:"memcache_nodes,omitempty"`
+	// Output only. The time the instance was created.
+	CreateTime *timestamp.Timestamp `protobuf:"bytes,13,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
+	// Output only. The time the instance was updated.
+	UpdateTime *timestamp.Timestamp `protobuf:"bytes,14,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
+	// Output only. The state of this Memcached instance.
+	State Instance_State `protobuf:"varint,15,opt,name=state,proto3,enum=google.cloud.memcache.v1beta2.Instance_State" json:"state,omitempty"`
+	// Output only. The full version of memcached server running on this instance.
+	// System automatically determines the full memcached version for an instance
+	// based on the input MemcacheVersion.
+	// The full version format will be "memcached-1.5.16".
+	MemcacheFullVersion string `protobuf:"bytes,18,opt,name=memcache_full_version,json=memcacheFullVersion,proto3" json:"memcache_full_version,omitempty"`
+	// List of messages that describe current statuses of memcached instance.
+	InstanceMessages []*Instance_InstanceMessage `protobuf:"bytes,19,rep,name=instance_messages,json=instanceMessages,proto3" json:"instance_messages,omitempty"`
+	// Output only. Endpoint for Discovery API
+	DiscoveryEndpoint    string   `protobuf:"bytes,20,opt,name=discovery_endpoint,json=discoveryEndpoint,proto3" json:"discovery_endpoint,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *Instance) Reset()         { *m = Instance{} }
+func (m *Instance) String() string { return proto.CompactTextString(m) }
+func (*Instance) ProtoMessage()    {}
+func (*Instance) Descriptor() ([]byte, []int) {
+	return fileDescriptor_f170fe0dfb840f0d, []int{0}
+}
+
+func (m *Instance) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_Instance.Unmarshal(m, b)
+}
+func (m *Instance) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_Instance.Marshal(b, m, deterministic)
+}
+func (m *Instance) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_Instance.Merge(m, src)
+}
+func (m *Instance) XXX_Size() int {
+	return xxx_messageInfo_Instance.Size(m)
+}
+func (m *Instance) XXX_DiscardUnknown() {
+	xxx_messageInfo_Instance.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Instance proto.InternalMessageInfo
+
+func (m *Instance) GetName() string {
+	if m != nil {
+		return m.Name
+	}
+	return ""
+}
+
+func (m *Instance) GetDisplayName() string {
+	if m != nil {
+		return m.DisplayName
+	}
+	return ""
+}
+
+func (m *Instance) GetLabels() map[string]string {
+	if m != nil {
+		return m.Labels
+	}
+	return nil
+}
+
+func (m *Instance) GetAuthorizedNetwork() string {
+	if m != nil {
+		return m.AuthorizedNetwork
+	}
+	return ""
+}
+
+func (m *Instance) GetZones() []string {
+	if m != nil {
+		return m.Zones
+	}
+	return nil
+}
+
+func (m *Instance) GetNodeCount() int32 {
+	if m != nil {
+		return m.NodeCount
+	}
+	return 0
+}
+
+func (m *Instance) GetNodeConfig() *Instance_NodeConfig {
+	if m != nil {
+		return m.NodeConfig
+	}
+	return nil
+}
+
+func (m *Instance) GetMemcacheVersion() MemcacheVersion {
+	if m != nil {
+		return m.MemcacheVersion
+	}
+	return MemcacheVersion_MEMCACHE_VERSION_UNSPECIFIED
+}
+
+func (m *Instance) GetParameters() *MemcacheParameters {
+	if m != nil {
+		return m.Parameters
+	}
+	return nil
+}
+
+func (m *Instance) GetMemcacheNodes() []*Instance_Node {
+	if m != nil {
+		return m.MemcacheNodes
+	}
+	return nil
+}
+
+func (m *Instance) GetCreateTime() *timestamp.Timestamp {
+	if m != nil {
+		return m.CreateTime
+	}
+	return nil
+}
+
+func (m *Instance) GetUpdateTime() *timestamp.Timestamp {
+	if m != nil {
+		return m.UpdateTime
+	}
+	return nil
+}
+
+func (m *Instance) GetState() Instance_State {
+	if m != nil {
+		return m.State
+	}
+	return Instance_STATE_UNSPECIFIED
+}
+
+func (m *Instance) GetMemcacheFullVersion() string {
+	if m != nil {
+		return m.MemcacheFullVersion
+	}
+	return ""
+}
+
+func (m *Instance) GetInstanceMessages() []*Instance_InstanceMessage {
+	if m != nil {
+		return m.InstanceMessages
+	}
+	return nil
+}
+
+func (m *Instance) GetDiscoveryEndpoint() string {
+	if m != nil {
+		return m.DiscoveryEndpoint
+	}
+	return ""
+}
+
+// Configuration for a Memcached Node.
+type Instance_NodeConfig struct {
+	// Required. Number of cpus per Memcached node.
+	CpuCount int32 `protobuf:"varint,1,opt,name=cpu_count,json=cpuCount,proto3" json:"cpu_count,omitempty"`
+	// Required. Memory size in MiB for each Memcached node.
+	MemorySizeMb         int32    `protobuf:"varint,2,opt,name=memory_size_mb,json=memorySizeMb,proto3" json:"memory_size_mb,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *Instance_NodeConfig) Reset()         { *m = Instance_NodeConfig{} }
+func (m *Instance_NodeConfig) String() string { return proto.CompactTextString(m) }
+func (*Instance_NodeConfig) ProtoMessage()    {}
+func (*Instance_NodeConfig) Descriptor() ([]byte, []int) {
+	return fileDescriptor_f170fe0dfb840f0d, []int{0, 0}
+}
+
+func (m *Instance_NodeConfig) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_Instance_NodeConfig.Unmarshal(m, b)
+}
+func (m *Instance_NodeConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_Instance_NodeConfig.Marshal(b, m, deterministic)
+}
+func (m *Instance_NodeConfig) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_Instance_NodeConfig.Merge(m, src)
+}
+func (m *Instance_NodeConfig) XXX_Size() int {
+	return xxx_messageInfo_Instance_NodeConfig.Size(m)
+}
+func (m *Instance_NodeConfig) XXX_DiscardUnknown() {
+	xxx_messageInfo_Instance_NodeConfig.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Instance_NodeConfig proto.InternalMessageInfo
+
+func (m *Instance_NodeConfig) GetCpuCount() int32 {
+	if m != nil {
+		return m.CpuCount
+	}
+	return 0
+}
+
+func (m *Instance_NodeConfig) GetMemorySizeMb() int32 {
+	if m != nil {
+		return m.MemorySizeMb
+	}
+	return 0
+}
+
+type Instance_Node struct {
+	// Output only. Identifier of the Memcached node. The node id does not
+	// include project or location like the Memcached instance name.
+	NodeId string `protobuf:"bytes,1,opt,name=node_id,json=nodeId,proto3" json:"node_id,omitempty"`
+	// Output only. Location (GCP Zone) for the Memcached node.
+	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
+	// Output only. Current state of the Memcached node.
+	State Instance_Node_State `protobuf:"varint,3,opt,name=state,proto3,enum=google.cloud.memcache.v1beta2.Instance_Node_State" json:"state,omitempty"`
+	// Output only. Hostname or IP address of the Memcached node used by the
+	// clients to connect to the Memcached server on this node.
+	Host string `protobuf:"bytes,4,opt,name=host,proto3" json:"host,omitempty"`
+	// Output only. The port number of the Memcached server on this node.
+	Port int32 `protobuf:"varint,5,opt,name=port,proto3" json:"port,omitempty"`
+	// User defined parameters currently applied to the node.
+	Parameters           *MemcacheParameters `protobuf:"bytes,6,opt,name=parameters,proto3" json:"parameters,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
+	XXX_unrecognized     []byte              `json:"-"`
+	XXX_sizecache        int32               `json:"-"`
+}
+
+func (m *Instance_Node) Reset()         { *m = Instance_Node{} }
+func (m *Instance_Node) String() string { return proto.CompactTextString(m) }
+func (*Instance_Node) ProtoMessage()    {}
+func (*Instance_Node) Descriptor() ([]byte, []int) {
+	return fileDescriptor_f170fe0dfb840f0d, []int{0, 1}
+}
+
+func (m *Instance_Node) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_Instance_Node.Unmarshal(m, b)
+}
+func (m *Instance_Node) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_Instance_Node.Marshal(b, m, deterministic)
+}
+func (m *Instance_Node) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_Instance_Node.Merge(m, src)
+}
+func (m *Instance_Node) XXX_Size() int {
+	return xxx_messageInfo_Instance_Node.Size(m)
+}
+func (m *Instance_Node) XXX_DiscardUnknown() {
+	xxx_messageInfo_Instance_Node.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Instance_Node proto.InternalMessageInfo
+
+func (m *Instance_Node) GetNodeId() string {
+	if m != nil {
+		return m.NodeId
+	}
+	return ""
+}
+
+func (m *Instance_Node) GetZone() string {
+	if m != nil {
+		return m.Zone
+	}
+	return ""
+}
+
+func (m *Instance_Node) GetState() Instance_Node_State {
+	if m != nil {
+		return m.State
+	}
+	return Instance_Node_STATE_UNSPECIFIED
+}
+
+func (m *Instance_Node) GetHost() string {
+	if m != nil {
+		return m.Host
+	}
+	return ""
+}
+
+func (m *Instance_Node) GetPort() int32 {
+	if m != nil {
+		return m.Port
+	}
+	return 0
+}
+
+func (m *Instance_Node) GetParameters() *MemcacheParameters {
+	if m != nil {
+		return m.Parameters
+	}
+	return nil
+}
+
+type Instance_InstanceMessage struct {
+	// A code that correspond to one type of user-facing message.
+	Code Instance_InstanceMessage_Code `protobuf:"varint,1,opt,name=code,proto3,enum=google.cloud.memcache.v1beta2.Instance_InstanceMessage_Code" json:"code,omitempty"`
+	// Message on memcached instance which will be exposed to users.
+	Message              string   `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *Instance_InstanceMessage) Reset()         { *m = Instance_InstanceMessage{} }
+func (m *Instance_InstanceMessage) String() string { return proto.CompactTextString(m) }
+func (*Instance_InstanceMessage) ProtoMessage()    {}
+func (*Instance_InstanceMessage) Descriptor() ([]byte, []int) {
+	return fileDescriptor_f170fe0dfb840f0d, []int{0, 2}
+}
+
+func (m *Instance_InstanceMessage) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_Instance_InstanceMessage.Unmarshal(m, b)
+}
+func (m *Instance_InstanceMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_Instance_InstanceMessage.Marshal(b, m, deterministic)
+}
+func (m *Instance_InstanceMessage) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_Instance_InstanceMessage.Merge(m, src)
+}
+func (m *Instance_InstanceMessage) XXX_Size() int {
+	return xxx_messageInfo_Instance_InstanceMessage.Size(m)
+}
+func (m *Instance_InstanceMessage) XXX_DiscardUnknown() {
+	xxx_messageInfo_Instance_InstanceMessage.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Instance_InstanceMessage proto.InternalMessageInfo
+
+func (m *Instance_InstanceMessage) GetCode() Instance_InstanceMessage_Code {
+	if m != nil {
+		return m.Code
+	}
+	return Instance_InstanceMessage_CODE_UNSPECIFIED
+}
+
+func (m *Instance_InstanceMessage) GetMessage() string {
+	if m != nil {
+		return m.Message
+	}
+	return ""
+}
+
+// Request for [ListInstances][google.cloud.memcache.v1beta2.CloudMemcache.ListInstances].
+type ListInstancesRequest struct {
+	// Required. The resource name of the instance location using the form:
+	//     `projects/{project_id}/locations/{location_id}`
+	// where `location_id` refers to a GCP region
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
+	// The maximum number of items to return.
+	//
+	// If not specified, a default value of 1000 will be used by the service.
+	// Regardless of the page_size value, the response may include a partial list
+	// and a caller should only rely on response's
+	// [next_page_token][CloudMemcache.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.
+	PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
+	// List filter. For example, exclude all Memcached instances with name as
+	// my-instance by specifying "name != my-instance".
+	Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"`
+	// Sort results. Supported values are "name", "name desc" or "" (unsorted).
+	OrderBy              string   `protobuf:"bytes,5,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *ListInstancesRequest) Reset()         { *m = ListInstancesRequest{} }
+func (m *ListInstancesRequest) String() string { return proto.CompactTextString(m) }
+func (*ListInstancesRequest) ProtoMessage()    {}
+func (*ListInstancesRequest) Descriptor() ([]byte, []int) {
+	return fileDescriptor_f170fe0dfb840f0d, []int{1}
+}
+
+func (m *ListInstancesRequest) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_ListInstancesRequest.Unmarshal(m, b)
+}
+func (m *ListInstancesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_ListInstancesRequest.Marshal(b, m, deterministic)
+}
+func (m *ListInstancesRequest) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_ListInstancesRequest.Merge(m, src)
+}
+func (m *ListInstancesRequest) XXX_Size() int {
+	return xxx_messageInfo_ListInstancesRequest.Size(m)
+}
+func (m *ListInstancesRequest) XXX_DiscardUnknown() {
+	xxx_messageInfo_ListInstancesRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ListInstancesRequest proto.InternalMessageInfo
+
+func (m *ListInstancesRequest) GetParent() string {
+	if m != nil {
+		return m.Parent
+	}
+	return ""
+}
+
+func (m *ListInstancesRequest) GetPageSize() int32 {
+	if m != nil {
+		return m.PageSize
+	}
+	return 0
+}
+
+func (m *ListInstancesRequest) GetPageToken() string {
+	if m != nil {
+		return m.PageToken
+	}
+	return ""
+}
+
+func (m *ListInstancesRequest) GetFilter() string {
+	if m != nil {
+		return m.Filter
+	}
+	return ""
+}
+
+func (m *ListInstancesRequest) GetOrderBy() string {
+	if m != nil {
+		return m.OrderBy
+	}
+	return ""
+}
+
+// Response for [ListInstances][google.cloud.memcache.v1beta2.CloudMemcache.ListInstances].
+type ListInstancesResponse struct {
+	// A list of Memcached instances in the project in the specified location,
+	// or across all locations.
+	//
+	// If the `location_id` in the parent field of the request is "-", all regions
+	// available to the project are queried, and the results aggregated.
+	Resources []*Instance `protobuf:"bytes,1,rep,name=resources,proto3" json:"resources,omitempty"`
+	// Token to retrieve the next page of results, or empty if there are no more
+	// results in the list.
+	NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
+	// Locations that could not be reached.
+	Unreachable          []string `protobuf:"bytes,3,rep,name=unreachable,proto3" json:"unreachable,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *ListInstancesResponse) Reset()         { *m = ListInstancesResponse{} }
+func (m *ListInstancesResponse) String() string { return proto.CompactTextString(m) }
+func (*ListInstancesResponse) ProtoMessage()    {}
+func (*ListInstancesResponse) Descriptor() ([]byte, []int) {
+	return fileDescriptor_f170fe0dfb840f0d, []int{2}
+}
+
+func (m *ListInstancesResponse) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_ListInstancesResponse.Unmarshal(m, b)
+}
+func (m *ListInstancesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_ListInstancesResponse.Marshal(b, m, deterministic)
+}
+func (m *ListInstancesResponse) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_ListInstancesResponse.Merge(m, src)
+}
+func (m *ListInstancesResponse) XXX_Size() int {
+	return xxx_messageInfo_ListInstancesResponse.Size(m)
+}
+func (m *ListInstancesResponse) XXX_DiscardUnknown() {
+	xxx_messageInfo_ListInstancesResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ListInstancesResponse proto.InternalMessageInfo
+
+func (m *ListInstancesResponse) GetResources() []*Instance {
+	if m != nil {
+		return m.Resources
+	}
+	return nil
+}
+
+func (m *ListInstancesResponse) GetNextPageToken() string {
+	if m != nil {
+		return m.NextPageToken
+	}
+	return ""
+}
+
+func (m *ListInstancesResponse) GetUnreachable() []string {
+	if m != nil {
+		return m.Unreachable
+	}
+	return nil
+}
+
+// Request for [GetInstance][google.cloud.memcache.v1beta2.CloudMemcache.GetInstance].
+type GetInstanceRequest struct {
+	// Required. Memcached instance resource name in the format:
+	//     `projects/{project_id}/locations/{location_id}/instances/{instance_id}`
+	// where `location_id` refers to a GCP region
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *GetInstanceRequest) Reset()         { *m = GetInstanceRequest{} }
+func (m *GetInstanceRequest) String() string { return proto.CompactTextString(m) }
+func (*GetInstanceRequest) ProtoMessage()    {}
+func (*GetInstanceRequest) Descriptor() ([]byte, []int) {
+	return fileDescriptor_f170fe0dfb840f0d, []int{3}
+}
+
+func (m *GetInstanceRequest) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_GetInstanceRequest.Unmarshal(m, b)
+}
+func (m *GetInstanceRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_GetInstanceRequest.Marshal(b, m, deterministic)
+}
+func (m *GetInstanceRequest) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_GetInstanceRequest.Merge(m, src)
+}
+func (m *GetInstanceRequest) XXX_Size() int {
+	return xxx_messageInfo_GetInstanceRequest.Size(m)
+}
+func (m *GetInstanceRequest) XXX_DiscardUnknown() {
+	xxx_messageInfo_GetInstanceRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_GetInstanceRequest proto.InternalMessageInfo
+
+func (m *GetInstanceRequest) GetName() string {
+	if m != nil {
+		return m.Name
+	}
+	return ""
+}
+
+// Request for [CreateInstance][google.cloud.memcache.v1beta2.CloudMemcache.CreateInstance].
+type CreateInstanceRequest struct {
+	// Required. The resource name of the instance location using the form:
+	//     `projects/{project_id}/locations/{location_id}`
+	// where `location_id` refers to a GCP region
+	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
+	// Required. The logical name of the Memcached instance in the user
+	// project with the following restrictions:
+	//
+	// * Must contain only lowercase letters, numbers, and hyphens.
+	// * Must start with a letter.
+	// * Must be between 1-40 characters.
+	// * Must end with a number or a letter.
+	// * Must be unique within the user project / location
+	InstanceId string `protobuf:"bytes,2,opt,name=instance_id,json=instanceId,proto3" json:"instance_id,omitempty"`
+	// Required. A Memcached [Instance] resource
+	Resource             *Instance `protobuf:"bytes,3,opt,name=resource,proto3" json:"resource,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
+	XXX_unrecognized     []byte    `json:"-"`
+	XXX_sizecache        int32     `json:"-"`
+}
+
+func (m *CreateInstanceRequest) Reset()         { *m = CreateInstanceRequest{} }
+func (m *CreateInstanceRequest) String() string { return proto.CompactTextString(m) }
+func (*CreateInstanceRequest) ProtoMessage()    {}
+func (*CreateInstanceRequest) Descriptor() ([]byte, []int) {
+	return fileDescriptor_f170fe0dfb840f0d, []int{4}
+}
+
+func (m *CreateInstanceRequest) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_CreateInstanceRequest.Unmarshal(m, b)
+}
+func (m *CreateInstanceRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_CreateInstanceRequest.Marshal(b, m, deterministic)
+}
+func (m *CreateInstanceRequest) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_CreateInstanceRequest.Merge(m, src)
+}
+func (m *CreateInstanceRequest) XXX_Size() int {
+	return xxx_messageInfo_CreateInstanceRequest.Size(m)
+}
+func (m *CreateInstanceRequest) XXX_DiscardUnknown() {
+	xxx_messageInfo_CreateInstanceRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_CreateInstanceRequest proto.InternalMessageInfo
+
+func (m *CreateInstanceRequest) GetParent() string {
+	if m != nil {
+		return m.Parent
+	}
+	return ""
+}
+
+func (m *CreateInstanceRequest) GetInstanceId() string {
+	if m != nil {
+		return m.InstanceId
+	}
+	return ""
+}
+
+func (m *CreateInstanceRequest) GetResource() *Instance {
+	if m != nil {
+		return m.Resource
+	}
+	return nil
+}
+
+// Request for [UpdateInstance][google.cloud.memcache.v1beta2.CloudMemcache.UpdateInstance].
+type UpdateInstanceRequest struct {
+	// Required. Mask of fields to update.
+	//  *   `displayName`
+	UpdateMask *field_mask.FieldMask `protobuf:"bytes,1,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
+	// Required. A Memcached [Instance] resource.
+	// Only fields specified in update_mask are updated.
+	Resource             *Instance `protobuf:"bytes,2,opt,name=resource,proto3" json:"resource,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
+	XXX_unrecognized     []byte    `json:"-"`
+	XXX_sizecache        int32     `json:"-"`
+}
+
+func (m *UpdateInstanceRequest) Reset()         { *m = UpdateInstanceRequest{} }
+func (m *UpdateInstanceRequest) String() string { return proto.CompactTextString(m) }
+func (*UpdateInstanceRequest) ProtoMessage()    {}
+func (*UpdateInstanceRequest) Descriptor() ([]byte, []int) {
+	return fileDescriptor_f170fe0dfb840f0d, []int{5}
+}
+
+func (m *UpdateInstanceRequest) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_UpdateInstanceRequest.Unmarshal(m, b)
+}
+func (m *UpdateInstanceRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_UpdateInstanceRequest.Marshal(b, m, deterministic)
+}
+func (m *UpdateInstanceRequest) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_UpdateInstanceRequest.Merge(m, src)
+}
+func (m *UpdateInstanceRequest) XXX_Size() int {
+	return xxx_messageInfo_UpdateInstanceRequest.Size(m)
+}
+func (m *UpdateInstanceRequest) XXX_DiscardUnknown() {
+	xxx_messageInfo_UpdateInstanceRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_UpdateInstanceRequest proto.InternalMessageInfo
+
+func (m *UpdateInstanceRequest) GetUpdateMask() *field_mask.FieldMask {
+	if m != nil {
+		return m.UpdateMask
+	}
+	return nil
+}
+
+func (m *UpdateInstanceRequest) GetResource() *Instance {
+	if m != nil {
+		return m.Resource
+	}
+	return nil
+}
+
+// Request for [DeleteInstance][google.cloud.memcache.v1beta2.CloudMemcache.DeleteInstance].
+type DeleteInstanceRequest struct {
+	// Memcached instance resource name in the format:
+	//     `projects/{project_id}/locations/{location_id}/instances/{instance_id}`
+	// where `location_id` refers to a GCP region
+	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *DeleteInstanceRequest) Reset()         { *m = DeleteInstanceRequest{} }
+func (m *DeleteInstanceRequest) String() string { return proto.CompactTextString(m) }
+func (*DeleteInstanceRequest) ProtoMessage()    {}
+func (*DeleteInstanceRequest) Descriptor() ([]byte, []int) {
+	return fileDescriptor_f170fe0dfb840f0d, []int{6}
+}
+
+func (m *DeleteInstanceRequest) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_DeleteInstanceRequest.Unmarshal(m, b)
+}
+func (m *DeleteInstanceRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_DeleteInstanceRequest.Marshal(b, m, deterministic)
+}
+func (m *DeleteInstanceRequest) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_DeleteInstanceRequest.Merge(m, src)
+}
+func (m *DeleteInstanceRequest) XXX_Size() int {
+	return xxx_messageInfo_DeleteInstanceRequest.Size(m)
+}
+func (m *DeleteInstanceRequest) XXX_DiscardUnknown() {
+	xxx_messageInfo_DeleteInstanceRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_DeleteInstanceRequest proto.InternalMessageInfo
+
+func (m *DeleteInstanceRequest) GetName() string {
+	if m != nil {
+		return m.Name
+	}
+	return ""
+}
+
+// Request for [ApplyParameters][google.cloud.memcache.v1beta2.CloudMemcache.ApplyParameters].
+type ApplyParametersRequest struct {
+	// Required. Resource name of the Memcached instance for which parameter group updates
+	// should be applied.
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+	// Nodes to which we should apply the instance-level parameter group.
+	NodeIds []string `protobuf:"bytes,2,rep,name=node_ids,json=nodeIds,proto3" json:"node_ids,omitempty"`
+	// Whether to apply instance-level parameter group to all nodes. If set to
+	// true, will explicitly restrict users from specifying any nodes, and apply
+	// parameter group updates to all nodes within the instance.
+	ApplyAll             bool     `protobuf:"varint,3,opt,name=apply_all,json=applyAll,proto3" json:"apply_all,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *ApplyParametersRequest) Reset()         { *m = ApplyParametersRequest{} }
+func (m *ApplyParametersRequest) String() string { return proto.CompactTextString(m) }
+func (*ApplyParametersRequest) ProtoMessage()    {}
+func (*ApplyParametersRequest) Descriptor() ([]byte, []int) {
+	return fileDescriptor_f170fe0dfb840f0d, []int{7}
+}
+
+func (m *ApplyParametersRequest) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_ApplyParametersRequest.Unmarshal(m, b)
+}
+func (m *ApplyParametersRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_ApplyParametersRequest.Marshal(b, m, deterministic)
+}
+func (m *ApplyParametersRequest) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_ApplyParametersRequest.Merge(m, src)
+}
+func (m *ApplyParametersRequest) XXX_Size() int {
+	return xxx_messageInfo_ApplyParametersRequest.Size(m)
+}
+func (m *ApplyParametersRequest) XXX_DiscardUnknown() {
+	xxx_messageInfo_ApplyParametersRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ApplyParametersRequest proto.InternalMessageInfo
+
+func (m *ApplyParametersRequest) GetName() string {
+	if m != nil {
+		return m.Name
+	}
+	return ""
+}
+
+func (m *ApplyParametersRequest) GetNodeIds() []string {
+	if m != nil {
+		return m.NodeIds
+	}
+	return nil
+}
+
+func (m *ApplyParametersRequest) GetApplyAll() bool {
+	if m != nil {
+		return m.ApplyAll
+	}
+	return false
+}
+
+// Request for [UpdateParameters][google.cloud.memcache.v1beta2.CloudMemcache.UpdateParameters].
+type UpdateParametersRequest struct {
+	// Required. Resource name of the Memcached instance for which the parameters should be
+	// updated.
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+	// Required. Mask of fields to update.
+	UpdateMask *field_mask.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
+	// The parameters to apply to the instance.
+	Parameters           *MemcacheParameters `protobuf:"bytes,3,opt,name=parameters,proto3" json:"parameters,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
+	XXX_unrecognized     []byte              `json:"-"`
+	XXX_sizecache        int32               `json:"-"`
+}
+
+func (m *UpdateParametersRequest) Reset()         { *m = UpdateParametersRequest{} }
+func (m *UpdateParametersRequest) String() string { return proto.CompactTextString(m) }
+func (*UpdateParametersRequest) ProtoMessage()    {}
+func (*UpdateParametersRequest) Descriptor() ([]byte, []int) {
+	return fileDescriptor_f170fe0dfb840f0d, []int{8}
+}
+
+func (m *UpdateParametersRequest) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_UpdateParametersRequest.Unmarshal(m, b)
+}
+func (m *UpdateParametersRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_UpdateParametersRequest.Marshal(b, m, deterministic)
+}
+func (m *UpdateParametersRequest) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_UpdateParametersRequest.Merge(m, src)
+}
+func (m *UpdateParametersRequest) XXX_Size() int {
+	return xxx_messageInfo_UpdateParametersRequest.Size(m)
+}
+func (m *UpdateParametersRequest) XXX_DiscardUnknown() {
+	xxx_messageInfo_UpdateParametersRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_UpdateParametersRequest proto.InternalMessageInfo
+
+func (m *UpdateParametersRequest) GetName() string {
+	if m != nil {
+		return m.Name
+	}
+	return ""
+}
+
+func (m *UpdateParametersRequest) GetUpdateMask() *field_mask.FieldMask {
+	if m != nil {
+		return m.UpdateMask
+	}
+	return nil
+}
+
+func (m *UpdateParametersRequest) GetParameters() *MemcacheParameters {
+	if m != nil {
+		return m.Parameters
+	}
+	return nil
+}
+
+type MemcacheParameters struct {
+	// Output only. The unique ID associated with this set of parameters. Users
+	// can use this id to determine if the parameters associated with the instance
+	// differ from the parameters associated with the nodes and any action needs
+	// to be taken to apply parameters on nodes.
+	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
+	// User defined set of parameters to use in the memcached process.
+	Params               map[string]string `protobuf:"bytes,3,rep,name=params,proto3" json:"params,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
+	XXX_unrecognized     []byte            `json:"-"`
+	XXX_sizecache        int32             `json:"-"`
+}
+
+func (m *MemcacheParameters) Reset()         { *m = MemcacheParameters{} }
+func (m *MemcacheParameters) String() string { return proto.CompactTextString(m) }
+func (*MemcacheParameters) ProtoMessage()    {}
+func (*MemcacheParameters) Descriptor() ([]byte, []int) {
+	return fileDescriptor_f170fe0dfb840f0d, []int{9}
+}
+
+func (m *MemcacheParameters) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_MemcacheParameters.Unmarshal(m, b)
+}
+func (m *MemcacheParameters) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_MemcacheParameters.Marshal(b, m, deterministic)
+}
+func (m *MemcacheParameters) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_MemcacheParameters.Merge(m, src)
+}
+func (m *MemcacheParameters) XXX_Size() int {
+	return xxx_messageInfo_MemcacheParameters.Size(m)
+}
+func (m *MemcacheParameters) XXX_DiscardUnknown() {
+	xxx_messageInfo_MemcacheParameters.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_MemcacheParameters proto.InternalMessageInfo
+
+func (m *MemcacheParameters) GetId() string {
+	if m != nil {
+		return m.Id
+	}
+	return ""
+}
+
+func (m *MemcacheParameters) GetParams() map[string]string {
+	if m != nil {
+		return m.Params
+	}
+	return nil
+}
+
+// Represents the metadata of a long-running operation.
+type OperationMetadata struct {
+	// Time when the operation was created.
+	CreateTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
+	// Time when the operation finished running.
+	EndTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
+	// Server-defined resource path for the target of the operation.
+	Target string `protobuf:"bytes,3,opt,name=target,proto3" json:"target,omitempty"`
+	// Name of the verb executed by the operation.
+	Verb string `protobuf:"bytes,4,opt,name=verb,proto3" json:"verb,omitempty"`
+	// Human-readable status of the operation, if any.
+	StatusDetail string `protobuf:"bytes,5,opt,name=status_detail,json=statusDetail,proto3" json:"status_detail,omitempty"`
+	// Identifies whether the user has requested cancellation
+	// of the operation. Operations that have successfully been cancelled
+	// have [Operation.error][] value with a [google.rpc.Status.code][google.rpc.Status.code] of 1,
+	// corresponding to `Code.CANCELLED`.
+	CancelRequested bool `protobuf:"varint,6,opt,name=cancel_requested,json=cancelRequested,proto3" json:"cancel_requested,omitempty"`
+	// API version used to start the operation.
+	ApiVersion           string   `protobuf:"bytes,7,opt,name=api_version,json=apiVersion,proto3" json:"api_version,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *OperationMetadata) Reset()         { *m = OperationMetadata{} }
+func (m *OperationMetadata) String() string { return proto.CompactTextString(m) }
+func (*OperationMetadata) ProtoMessage()    {}
+func (*OperationMetadata) Descriptor() ([]byte, []int) {
+	return fileDescriptor_f170fe0dfb840f0d, []int{10}
+}
+
+func (m *OperationMetadata) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_OperationMetadata.Unmarshal(m, b)
+}
+func (m *OperationMetadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_OperationMetadata.Marshal(b, m, deterministic)
+}
+func (m *OperationMetadata) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_OperationMetadata.Merge(m, src)
+}
+func (m *OperationMetadata) XXX_Size() int {
+	return xxx_messageInfo_OperationMetadata.Size(m)
+}
+func (m *OperationMetadata) XXX_DiscardUnknown() {
+	xxx_messageInfo_OperationMetadata.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_OperationMetadata proto.InternalMessageInfo
+
+func (m *OperationMetadata) GetCreateTime() *timestamp.Timestamp {
+	if m != nil {
+		return m.CreateTime
+	}
+	return nil
+}
+
+func (m *OperationMetadata) GetEndTime() *timestamp.Timestamp {
+	if m != nil {
+		return m.EndTime
+	}
+	return nil
+}
+
+func (m *OperationMetadata) GetTarget() string {
+	if m != nil {
+		return m.Target
+	}
+	return ""
+}
+
+func (m *OperationMetadata) GetVerb() string {
+	if m != nil {
+		return m.Verb
+	}
+	return ""
+}
+
+func (m *OperationMetadata) GetStatusDetail() string {
+	if m != nil {
+		return m.StatusDetail
+	}
+	return ""
+}
+
+func (m *OperationMetadata) GetCancelRequested() bool {
+	if m != nil {
+		return m.CancelRequested
+	}
+	return false
+}
+
+func (m *OperationMetadata) GetApiVersion() string {
+	if m != nil {
+		return m.ApiVersion
+	}
+	return ""
+}
+
+// Metadata for the given [google.cloud.location.Location][google.cloud.location.Location].
+type LocationMetadata struct {
+	// Output only. The set of available zones in the location. The map is keyed
+	// by the lowercase ID of each zone, as defined by GCE. These keys can be
+	// specified in the `zones` field when creating a Memcached instance.
+	AvailableZones       map[string]*ZoneMetadata `protobuf:"bytes,1,rep,name=available_zones,json=availableZones,proto3" json:"available_zones,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+	XXX_NoUnkeyedLiteral struct{}                 `json:"-"`
+	XXX_unrecognized     []byte                   `json:"-"`
+	XXX_sizecache        int32                    `json:"-"`
+}
+
+func (m *LocationMetadata) Reset()         { *m = LocationMetadata{} }
+func (m *LocationMetadata) String() string { return proto.CompactTextString(m) }
+func (*LocationMetadata) ProtoMessage()    {}
+func (*LocationMetadata) Descriptor() ([]byte, []int) {
+	return fileDescriptor_f170fe0dfb840f0d, []int{11}
+}
+
+func (m *LocationMetadata) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_LocationMetadata.Unmarshal(m, b)
+}
+func (m *LocationMetadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_LocationMetadata.Marshal(b, m, deterministic)
+}
+func (m *LocationMetadata) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_LocationMetadata.Merge(m, src)
+}
+func (m *LocationMetadata) XXX_Size() int {
+	return xxx_messageInfo_LocationMetadata.Size(m)
+}
+func (m *LocationMetadata) XXX_DiscardUnknown() {
+	xxx_messageInfo_LocationMetadata.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_LocationMetadata proto.InternalMessageInfo
+
+func (m *LocationMetadata) GetAvailableZones() map[string]*ZoneMetadata {
+	if m != nil {
+		return m.AvailableZones
+	}
+	return nil
+}
+
+type ZoneMetadata struct {
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *ZoneMetadata) Reset()         { *m = ZoneMetadata{} }
+func (m *ZoneMetadata) String() string { return proto.CompactTextString(m) }
+func (*ZoneMetadata) ProtoMessage()    {}
+func (*ZoneMetadata) Descriptor() ([]byte, []int) {
+	return fileDescriptor_f170fe0dfb840f0d, []int{12}
+}
+
+func (m *ZoneMetadata) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_ZoneMetadata.Unmarshal(m, b)
+}
+func (m *ZoneMetadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_ZoneMetadata.Marshal(b, m, deterministic)
+}
+func (m *ZoneMetadata) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_ZoneMetadata.Merge(m, src)
+}
+func (m *ZoneMetadata) XXX_Size() int {
+	return xxx_messageInfo_ZoneMetadata.Size(m)
+}
+func (m *ZoneMetadata) XXX_DiscardUnknown() {
+	xxx_messageInfo_ZoneMetadata.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ZoneMetadata proto.InternalMessageInfo
+
+func init() {
+	proto.RegisterEnum("google.cloud.memcache.v1beta2.MemcacheVersion", MemcacheVersion_name, MemcacheVersion_value)
+	proto.RegisterEnum("google.cloud.memcache.v1beta2.Instance_State", Instance_State_name, Instance_State_value)
+	proto.RegisterEnum("google.cloud.memcache.v1beta2.Instance_Node_State", Instance_Node_State_name, Instance_Node_State_value)
+	proto.RegisterEnum("google.cloud.memcache.v1beta2.Instance_InstanceMessage_Code", Instance_InstanceMessage_Code_name, Instance_InstanceMessage_Code_value)
+	proto.RegisterType((*Instance)(nil), "google.cloud.memcache.v1beta2.Instance")
+	proto.RegisterMapType((map[string]string)(nil), "google.cloud.memcache.v1beta2.Instance.LabelsEntry")
+	proto.RegisterType((*Instance_NodeConfig)(nil), "google.cloud.memcache.v1beta2.Instance.NodeConfig")
+	proto.RegisterType((*Instance_Node)(nil), "google.cloud.memcache.v1beta2.Instance.Node")
+	proto.RegisterType((*Instance_InstanceMessage)(nil), "google.cloud.memcache.v1beta2.Instance.InstanceMessage")
+	proto.RegisterType((*ListInstancesRequest)(nil), "google.cloud.memcache.v1beta2.ListInstancesRequest")
+	proto.RegisterType((*ListInstancesResponse)(nil), "google.cloud.memcache.v1beta2.ListInstancesResponse")
+	proto.RegisterType((*GetInstanceRequest)(nil), "google.cloud.memcache.v1beta2.GetInstanceRequest")
+	proto.RegisterType((*CreateInstanceRequest)(nil), "google.cloud.memcache.v1beta2.CreateInstanceRequest")
+	proto.RegisterType((*UpdateInstanceRequest)(nil), "google.cloud.memcache.v1beta2.UpdateInstanceRequest")
+	proto.RegisterType((*DeleteInstanceRequest)(nil), "google.cloud.memcache.v1beta2.DeleteInstanceRequest")
+	proto.RegisterType((*ApplyParametersRequest)(nil), "google.cloud.memcache.v1beta2.ApplyParametersRequest")
+	proto.RegisterType((*UpdateParametersRequest)(nil), "google.cloud.memcache.v1beta2.UpdateParametersRequest")
+	proto.RegisterType((*MemcacheParameters)(nil), "google.cloud.memcache.v1beta2.MemcacheParameters")
+	proto.RegisterMapType((map[string]string)(nil), "google.cloud.memcache.v1beta2.MemcacheParameters.ParamsEntry")
+	proto.RegisterType((*OperationMetadata)(nil), "google.cloud.memcache.v1beta2.OperationMetadata")
+	proto.RegisterType((*LocationMetadata)(nil), "google.cloud.memcache.v1beta2.LocationMetadata")
+	proto.RegisterMapType((map[string]*ZoneMetadata)(nil), "google.cloud.memcache.v1beta2.LocationMetadata.AvailableZonesEntry")
+	proto.RegisterType((*ZoneMetadata)(nil), "google.cloud.memcache.v1beta2.ZoneMetadata")
+}
+
+func init() {
+	proto.RegisterFile("google/cloud/memcache/v1beta2/cloud_memcache.proto", fileDescriptor_f170fe0dfb840f0d)
+}
+
+var fileDescriptor_f170fe0dfb840f0d = []byte{
+	// 2019 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x59, 0xcb, 0x6f, 0xdb, 0xc8,
+	0x19, 0x2f, 0x29, 0x3f, 0xa4, 0x4f, 0xb6, 0x2c, 0x4f, 0xec, 0x58, 0xab, 0x4d, 0xb0, 0x8a, 0x52,
+	0x6c, 0x1d, 0xaf, 0x23, 0x21, 0xda, 0x4d, 0xb7, 0x75, 0xb2, 0x8b, 0xd2, 0x32, 0x13, 0x0b, 0x6b,
+	0xc9, 0x2e, 0x6d, 0x2f, 0x36, 0xb9, 0xb0, 0x23, 0x72, 0x2c, 0xb3, 0xa6, 0x48, 0x2e, 0x49, 0x39,
+	0x75, 0x82, 0x00, 0x45, 0x0f, 0x3d, 0x15, 0xbd, 0xf4, 0x4f, 0x68, 0x51, 0xec, 0xa1, 0xbd, 0xf5,
+	0x56, 0xf4, 0x01, 0xf4, 0xb2, 0xc8, 0xb1, 0xbd, 0xe5, 0xb4, 0x87, 0xa2, 0x87, 0xa2, 0xc7, 0xf6,
+	0xd2, 0x4b, 0x8b, 0x99, 0xe1, 0x50, 0x94, 0xec, 0x44, 0xb2, 0xd7, 0xb9, 0x91, 0xdf, 0x6b, 0xbe,
+	0xf9, 0x9e, 0x3f, 0x4a, 0x50, 0xeb, 0xb8, 0x6e, 0xc7, 0x26, 0x55, 0xc3, 0x76, 0x7b, 0x66, 0xb5,
+	0x4b, 0xba, 0x06, 0x36, 0x0e, 0x49, 0xf5, 0xf8, 0x4e, 0x9b, 0x84, 0xb8, 0xc6, 0xc9, 0xba, 0x20,
+	0x57, 0x3c, 0xdf, 0x0d, 0x5d, 0x74, 0x9d, 0xeb, 0x54, 0x18, 0xb3, 0x12, 0x33, 0x23, 0x9d, 0xe2,
+	0xb5, 0xc8, 0x24, 0xf6, 0xac, 0x2a, 0x76, 0x1c, 0x37, 0xc4, 0xa1, 0xe5, 0x3a, 0x01, 0x57, 0x2e,
+	0x2e, 0x25, 0xb8, 0x86, 0x6d, 0x11, 0x27, 0x8c, 0x18, 0xef, 0x24, 0x18, 0x07, 0x16, 0xb1, 0x4d,
+	0xbd, 0x4d, 0x0e, 0xf1, 0xb1, 0xe5, 0xfa, 0x91, 0xc0, 0x5b, 0x09, 0x01, 0x9f, 0x04, 0x6e, 0xcf,
+	0x37, 0x22, 0x8f, 0x8a, 0x37, 0x23, 0x96, 0xed, 0x3a, 0x1d, 0xbf, 0xe7, 0x38, 0x96, 0xd3, 0xa9,
+	0xba, 0x1e, 0xf1, 0x07, 0x4e, 0x2e, 0x45, 0x42, 0xec, 0xad, 0xdd, 0x3b, 0x88, 0x4e, 0xe9, 0xe2,
+	0xe0, 0x68, 0xc8, 0x85, 0x58, 0x22, 0xb4, 0xba, 0x24, 0x08, 0x71, 0xd7, 0xe3, 0x02, 0xe5, 0x9f,
+	0xce, 0x41, 0xba, 0xe1, 0x04, 0x21, 0x76, 0x0c, 0x82, 0x96, 0x60, 0xc2, 0xc1, 0x5d, 0x52, 0x90,
+	0x4a, 0xd2, 0x72, 0x66, 0x3d, 0xf5, 0x95, 0x22, 0x6b, 0x8c, 0x80, 0x6e, 0xc0, 0x8c, 0x69, 0x05,
+	0x9e, 0x8d, 0x4f, 0x74, 0x26, 0x20, 0x53, 0x01, 0x2d, 0x1b, 0xd1, 0x5a, 0x54, 0xe4, 0x13, 0x98,
+	0xb2, 0x71, 0x9b, 0xd8, 0x41, 0x21, 0x55, 0x4a, 0x2d, 0x67, 0x6b, 0xef, 0x57, 0x5e, 0x1b, 0xd3,
+	0x8a, 0x38, 0xb4, 0xb2, 0xc5, 0xb4, 0x54, 0x27, 0xf4, 0x4f, 0xb4, 0xc8, 0x04, 0xba, 0x0d, 0x08,
+	0xf7, 0xc2, 0x43, 0xd7, 0xb7, 0x9e, 0x12, 0x53, 0x77, 0x48, 0xf8, 0xc4, 0xf5, 0x8f, 0x0a, 0x13,
+	0xec, 0xd4, 0xf9, 0x3e, 0xa7, 0xc5, 0x19, 0x68, 0x01, 0x26, 0x9f, 0xba, 0x0e, 0x09, 0x0a, 0x93,
+	0xa5, 0xd4, 0x72, 0x46, 0xe3, 0x2f, 0xa8, 0x0c, 0xe0, 0xb8, 0x26, 0xd1, 0x0d, 0xb7, 0xe7, 0x84,
+	0x85, 0xa9, 0x92, 0xb4, 0x3c, 0xc9, 0xef, 0x94, 0xa1, 0xe4, 0x3a, 0xa5, 0xa2, 0xcf, 0x20, 0x1b,
+	0xc9, 0x38, 0x07, 0x56, 0xa7, 0x30, 0x5d, 0x92, 0x96, 0xb3, 0xb5, 0xda, 0xb8, 0xae, 0xb7, 0x98,
+	0x1d, 0xaa, 0xc9, 0x0d, 0x83, 0x13, 0x13, 0xd0, 0x23, 0xc8, 0x0b, 0x45, 0xfd, 0x98, 0xf8, 0x81,
+	0xe5, 0x3a, 0x85, 0x4c, 0x49, 0x5a, 0xce, 0xd5, 0x2a, 0x23, 0xcc, 0x37, 0x23, 0xc2, 0xa7, 0x5c,
+	0x4b, 0x9b, 0xeb, 0x0e, 0x12, 0xd0, 0xf7, 0x01, 0x3c, 0xec, 0xe3, 0x2e, 0x09, 0x89, 0x1f, 0x14,
+	0xb2, 0xcc, 0xe7, 0x3b, 0x63, 0x1a, 0xdd, 0x89, 0x15, 0xb5, 0x84, 0x11, 0xf4, 0x19, 0xe4, 0x62,
+	0x6f, 0xe9, 0x25, 0x82, 0xc2, 0x0c, 0xcb, 0xe2, 0xea, 0x79, 0x42, 0x41, 0x83, 0x90, 0xd2, 0x66,
+	0x85, 0x10, 0x25, 0x05, 0xe8, 0x7b, 0x90, 0x35, 0x7c, 0x82, 0x43, 0xa2, 0xd3, 0xd2, 0x2b, 0xcc,
+	0x32, 0x6f, 0x8b, 0xc2, 0xac, 0xa8, 0xcb, 0xca, 0x9e, 0xa8, 0x4b, 0x6e, 0x04, 0xb8, 0x0e, 0xa5,
+	0x52, 0x0b, 0x3d, 0xcf, 0x8c, 0x2d, 0xe4, 0xc6, 0xb4, 0xc0, 0x75, 0x98, 0x85, 0x4d, 0x98, 0x0c,
+	0x42, 0x1c, 0x92, 0xc2, 0x1c, 0x4b, 0xc0, 0xed, 0x71, 0x2f, 0xb5, 0x4b, 0x95, 0xb8, 0x39, 0x6e,
+	0x00, 0x7d, 0x08, 0x8b, 0x71, 0x9c, 0x0e, 0x7a, 0xb6, 0x1d, 0xa7, 0x16, 0x89, 0x96, 0x49, 0x69,
+	0x57, 0x84, 0xc4, 0x83, 0x9e, 0x6d, 0x8b, 0x9c, 0x99, 0x30, 0x6f, 0x45, 0x66, 0xf5, 0x2e, 0x09,
+	0x02, 0xdc, 0x21, 0x41, 0xe1, 0x0a, 0x8b, 0xf1, 0x87, 0xe3, 0xba, 0x23, 0x1e, 0x9a, 0x5c, 0x5f,
+	0xcb, 0x5b, 0x83, 0x84, 0x00, 0xd5, 0x00, 0x99, 0x56, 0x60, 0xb8, 0xc7, 0xc4, 0x3f, 0xd1, 0x89,
+	0x63, 0x7a, 0xae, 0xe5, 0x84, 0x85, 0x85, 0xbe, 0x6f, 0xf3, 0x31, 0x5b, 0x8d, 0xb8, 0xc5, 0x47,
+	0x00, 0xfd, 0x3a, 0x46, 0x25, 0xc8, 0x18, 0x5e, 0x2f, 0xea, 0x19, 0xa9, 0xdf, 0x33, 0x69, 0xc3,
+	0xeb, 0xf1, 0x96, 0xb9, 0xc5, 0x4a, 0xc5, 0xf5, 0x4f, 0xf4, 0xc0, 0x7a, 0x4a, 0xf4, 0x6e, 0x9b,
+	0x4d, 0x83, 0x48, 0x6c, 0x86, 0xb3, 0x76, 0xad, 0xa7, 0xa4, 0xd9, 0x2e, 0xfe, 0x43, 0x86, 0x09,
+	0x6a, 0x1b, 0x5d, 0x83, 0x69, 0xd6, 0x66, 0x96, 0xd9, 0x9f, 0x2d, 0x29, 0x6d, 0x8a, 0xd2, 0x1a,
+	0x26, 0x1d, 0x3b, 0xb4, 0x63, 0xf9, 0x54, 0xe1, 0x2c, 0x46, 0x40, 0x4d, 0x91, 0xb7, 0x14, 0xcb,
+	0xdb, 0xb9, 0xfa, 0xf2, 0x8c, 0xe4, 0x2d, 0xc1, 0xc4, 0xa1, 0x1b, 0x84, 0x7c, 0x8e, 0x44, 0xe7,
+	0x50, 0x02, 0x65, 0x78, 0xae, 0x1f, 0x16, 0x26, 0xc5, 0x45, 0x52, 0x1a, 0x23, 0x0c, 0x75, 0xda,
+	0xd4, 0x25, 0x74, 0x5a, 0x79, 0x17, 0x26, 0x99, 0x67, 0x68, 0x11, 0xe6, 0x77, 0xf7, 0x94, 0x3d,
+	0x55, 0xdf, 0x6f, 0xed, 0xee, 0xa8, 0xf5, 0xc6, 0x83, 0x86, 0xba, 0x91, 0xff, 0x06, 0x9a, 0x81,
+	0x74, 0x5d, 0x53, 0x95, 0xbd, 0x46, 0xeb, 0x61, 0x5e, 0x42, 0x19, 0x98, 0xd4, 0x54, 0x65, 0xe3,
+	0x51, 0x5e, 0xa6, 0x8c, 0x0d, 0x75, 0x4b, 0x65, 0x8c, 0x14, 0x7d, 0xdb, 0xdf, 0xd9, 0xe0, 0x62,
+	0x13, 0xc5, 0x3f, 0x48, 0x30, 0x37, 0x54, 0x1d, 0x68, 0x07, 0x26, 0x0c, 0xd7, 0xe4, 0xc3, 0x3c,
+	0x57, 0xbb, 0x7f, 0xc1, 0x22, 0xab, 0xd4, 0x5d, 0x93, 0x68, 0xcc, 0x12, 0x2a, 0xc0, 0x74, 0x54,
+	0xba, 0xd1, 0x02, 0x10, 0xaf, 0xe5, 0x8f, 0x61, 0x82, 0xca, 0xa1, 0x05, 0xc8, 0xd7, 0xb7, 0x37,
+	0x86, 0xaf, 0x54, 0x82, 0x6b, 0x8f, 0xb7, 0x5b, 0xaa, 0xbe, 0xd1, 0xd8, 0xdd, 0xd3, 0x1a, 0xeb,
+	0xfb, 0x7b, 0x8d, 0xed, 0x96, 0xbe, 0xdf, 0x5a, 0x57, 0xb6, 0x94, 0x56, 0x5d, 0xdd, 0xc8, 0x4b,
+	0xc5, 0xef, 0x42, 0x36, 0xb1, 0x06, 0x50, 0x1e, 0x52, 0x47, 0xe4, 0x84, 0x97, 0x8a, 0x46, 0x1f,
+	0xe9, 0x84, 0x3f, 0xc6, 0x76, 0x4f, 0x1c, 0xcc, 0x5f, 0xd6, 0xe4, 0xef, 0x48, 0x65, 0x7c, 0x19,
+	0xf1, 0x9c, 0x40, 0x45, 0xb8, 0xba, 0xa3, 0x6a, 0x0f, 0xb6, 0xb5, 0x66, 0xa3, 0xf5, 0x50, 0x6f,
+	0x2a, 0x8d, 0xd6, 0x9e, 0xda, 0xa2, 0xee, 0xe5, 0x27, 0xd7, 0x8c, 0x7f, 0x2a, 0x3f, 0x80, 0x52,
+	0x1c, 0x32, 0x1e, 0x48, 0xec, 0x59, 0x41, 0xc5, 0x70, 0xbb, 0xd5, 0x78, 0x7b, 0xde, 0xf7, 0x7c,
+	0xf7, 0x87, 0xc4, 0x08, 0x83, 0xea, 0xb3, 0xe8, 0xe9, 0x79, 0xd5, 0x76, 0x0d, 0xbe, 0xb1, 0xab,
+	0xcf, 0xc4, 0xe3, 0xf3, 0xaa, 0x68, 0xdb, 0xa0, 0xfa, 0x4c, 0x3c, 0x3e, 0x2f, 0x7f, 0x29, 0xc1,
+	0xc2, 0x96, 0x15, 0x84, 0xc2, 0x5c, 0xa0, 0x91, 0xcf, 0x7b, 0x24, 0x08, 0x91, 0x02, 0x53, 0x1e,
+	0xf6, 0x49, 0xd4, 0x8e, 0x99, 0xf5, 0x5b, 0x5f, 0x29, 0xf2, 0x7f, 0x95, 0x9b, 0x70, 0x23, 0xb6,
+	0x3d, 0xec, 0xd1, 0x56, 0xc4, 0xd0, 0x22, 0x45, 0xf4, 0x36, 0x64, 0x3c, 0xdc, 0x21, 0xac, 0x61,
+	0x79, 0xb7, 0x6a, 0x69, 0x4a, 0xa0, 0x6d, 0x8a, 0xae, 0xd3, 0x1a, 0xef, 0x10, 0x3d, 0x74, 0x8f,
+	0x88, 0xc3, 0x3a, 0x2d, 0xa3, 0x31, 0xf1, 0x3d, 0x4a, 0x40, 0x57, 0x61, 0xea, 0xc0, 0xb2, 0x43,
+	0xe2, 0x47, 0xeb, 0x37, 0x7a, 0x43, 0x6f, 0x41, 0xda, 0xf5, 0x4d, 0xe2, 0xeb, 0xed, 0x13, 0xd6,
+	0x37, 0x19, 0x6d, 0x9a, 0xbd, 0xaf, 0x9f, 0x94, 0xbf, 0x90, 0x60, 0x71, 0xe8, 0x2a, 0x81, 0xe7,
+	0x3a, 0x01, 0x41, 0x2a, 0x64, 0x04, 0xce, 0x09, 0x0a, 0x12, 0x9b, 0x7e, 0xdf, 0x1a, 0xb3, 0x30,
+	0xb5, 0xbe, 0x26, 0x7a, 0x17, 0xe6, 0x1c, 0xf2, 0xa3, 0x50, 0x4f, 0xf8, 0xcd, 0xeb, 0x62, 0x96,
+	0x92, 0x77, 0x62, 0xdf, 0x4b, 0x90, 0xed, 0x39, 0x3e, 0xc1, 0xc6, 0x21, 0x6e, 0xdb, 0x84, 0x01,
+	0x93, 0x8c, 0x96, 0x24, 0x95, 0x35, 0x40, 0x0f, 0x49, 0xec, 0xa8, 0x08, 0xf9, 0xfd, 0x01, 0x1c,
+	0xb4, 0xcc, 0x02, 0x5e, 0x1e, 0x5d, 0x01, 0x1c, 0x2c, 0x95, 0x5f, 0x48, 0xb0, 0x58, 0x67, 0xeb,
+	0x6b, 0xd8, 0xee, 0x25, 0xa4, 0xf2, 0x9b, 0x90, 0x8d, 0xf7, 0x88, 0x65, 0xf6, 0x47, 0xa6, 0xac,
+	0x81, 0xa0, 0x37, 0x4c, 0xb4, 0x09, 0x69, 0x11, 0x2d, 0x96, 0xd1, 0xf1, 0xc3, 0x1c, 0x4d, 0x7b,
+	0xa1, 0x5d, 0xfe, 0xa5, 0x04, 0x8b, 0xfb, 0x6c, 0x93, 0x0e, 0x5f, 0xa6, 0xbf, 0x96, 0x29, 0xde,
+	0x64, 0x37, 0x3a, 0x6b, 0x2d, 0x3f, 0xa0, 0x90, 0xb4, 0x89, 0x83, 0xa3, 0xc8, 0x4b, 0xae, 0x43,
+	0x09, 0x03, 0x5e, 0xca, 0x5f, 0xcb, 0xcb, 0xf7, 0x60, 0x71, 0x83, 0xd8, 0xe4, 0xb4, 0x93, 0x28,
+	0x99, 0xc9, 0x28, 0x3f, 0x3f, 0x97, 0xe0, 0xaa, 0xe2, 0x79, 0xf6, 0x49, 0x62, 0x42, 0x5f, 0x46,
+	0xe2, 0x69, 0x4b, 0x44, 0x5b, 0x2e, 0x28, 0xc8, 0xac, 0xd6, 0xa6, 0xf9, 0x86, 0x0b, 0x68, 0x07,
+	0x62, 0x7a, 0xa4, 0x8e, 0x6d, 0x9b, 0x65, 0x24, 0xad, 0xa5, 0x19, 0x41, 0xb1, 0xed, 0xf2, 0xbf,
+	0x24, 0x58, 0xe2, 0x31, 0xbe, 0x6c, 0x8f, 0x86, 0x72, 0x24, 0x9f, 0x3f, 0x47, 0x83, 0x1b, 0x30,
+	0x75, 0x19, 0x1b, 0xf0, 0xf7, 0x12, 0xa0, 0xd3, 0x22, 0xe8, 0x0a, 0xc8, 0x83, 0xf0, 0x40, 0xb6,
+	0x4c, 0xb4, 0xcf, 0x3a, 0x06, 0x77, 0xc5, 0x57, 0xc5, 0x47, 0xe7, 0x3e, 0xba, 0xc2, 0x1e, 0xc5,
+	0xf7, 0x05, 0x37, 0x46, 0xf7, 0x4d, 0x82, 0x7c, 0xae, 0x7d, 0xf3, 0x2b, 0x19, 0xe6, 0xb7, 0xc5,
+	0x87, 0x58, 0x93, 0x84, 0xd8, 0xc4, 0x21, 0x46, 0xf7, 0x06, 0x51, 0xae, 0x34, 0x0a, 0xa3, 0x0e,
+	0x00, 0xdc, 0xbb, 0x90, 0x26, 0x8e, 0xc9, 0x35, 0xe5, 0x91, 0x9a, 0xd3, 0xc4, 0x31, 0x99, 0xda,
+	0x55, 0x98, 0x0a, 0xb1, 0xdf, 0x21, 0x61, 0x34, 0xb4, 0xa3, 0x37, 0x5a, 0xf3, 0xc7, 0xc4, 0x6f,
+	0x47, 0xf3, 0x9a, 0x3d, 0xa3, 0x9b, 0x30, 0x4b, 0x31, 0x50, 0x2f, 0xd0, 0x4d, 0x12, 0x62, 0xcb,
+	0x8e, 0x46, 0xf6, 0x0c, 0x27, 0x6e, 0x30, 0x1a, 0xba, 0x05, 0x79, 0x83, 0x16, 0x8f, 0xad, 0xfb,
+	0xbc, 0xfa, 0x88, 0xc9, 0x30, 0x4f, 0x5a, 0x9b, 0xe3, 0x74, 0x4d, 0x90, 0xd1, 0x3b, 0x90, 0xc5,
+	0x9e, 0x15, 0xa3, 0xdf, 0x69, 0x66, 0x0d, 0xb0, 0x67, 0x45, 0x78, 0xb7, 0xfc, 0x1f, 0x09, 0xf2,
+	0x62, 0x78, 0xc5, 0x51, 0xfa, 0x1c, 0xe6, 0xf0, 0x31, 0xb6, 0x6c, 0x3a, 0x7a, 0x75, 0xfe, 0xc5,
+	0xc6, 0x97, 0x40, 0x7d, 0x44, 0x5a, 0x87, 0x2d, 0x55, 0x14, 0x61, 0xe6, 0x31, 0xb5, 0xc2, 0xb2,
+	0xc8, 0x8b, 0x26, 0x87, 0x07, 0x38, 0x45, 0x07, 0xae, 0x9c, 0x21, 0x7b, 0x46, 0xc6, 0x95, 0x64,
+	0xc6, 0xb3, 0xb5, 0xf7, 0x46, 0x78, 0x44, 0x6d, 0x09, 0x6f, 0x92, 0xe5, 0x91, 0x83, 0x99, 0x24,
+	0x6b, 0x45, 0x85, 0xb9, 0xa1, 0xef, 0x39, 0x0a, 0x87, 0x9a, 0x6a, 0xb3, 0xae, 0xd4, 0x37, 0x55,
+	0xfd, 0x53, 0x55, 0xdb, 0xe5, 0x68, 0x28, 0x89, 0x59, 0xf2, 0x30, 0x13, 0x4b, 0xdc, 0xd1, 0xef,
+	0xe6, 0xa5, 0xda, 0xff, 0x72, 0x30, 0x5b, 0xa7, 0x9e, 0x08, 0x63, 0xe8, 0x4f, 0x12, 0xcc, 0x0e,
+	0x2c, 0x59, 0x34, 0xea, 0x8b, 0xfb, 0x2c, 0x74, 0x51, 0xfc, 0xe0, 0x7c, 0x4a, 0x7c, 0x8f, 0x97,
+	0xeb, 0x2f, 0x95, 0x68, 0x21, 0xfd, 0xe4, 0x6f, 0x7f, 0xff, 0x85, 0xfc, 0x01, 0xaa, 0xc5, 0xbf,
+	0xaf, 0x3c, 0xe3, 0xf4, 0x8f, 0x62, 0x30, 0xb4, 0x92, 0x00, 0x41, 0x2b, 0x09, 0xf0, 0x83, 0x7e,
+	0x23, 0x41, 0x36, 0xb1, 0x7c, 0xd1, 0xa8, 0xb1, 0x72, 0x7a, 0x51, 0x17, 0xc7, 0xdd, 0x17, 0x65,
+	0xe5, 0xa5, 0xc2, 0x26, 0xe2, 0x69, 0x77, 0x29, 0xf5, 0x15, 0xce, 0x26, 0x80, 0xda, 0xca, 0x73,
+	0xf4, 0x6b, 0x19, 0x72, 0x83, 0x6b, 0x1d, 0x8d, 0x0a, 0xde, 0x99, 0x28, 0xa0, 0x78, 0x5d, 0x68,
+	0x25, 0x7e, 0xdb, 0xa9, 0xc4, 0x23, 0xa5, 0xfc, 0x47, 0xe9, 0x85, 0xf2, 0x08, 0xde, 0x1d, 0xef,
+	0x62, 0xa8, 0xfa, 0x7a, 0xb9, 0x53, 0x93, 0xea, 0xa5, 0xf2, 0x36, 0x4f, 0xd0, 0x6a, 0x02, 0x46,
+	0xac, 0x8a, 0x45, 0xca, 0xc2, 0xf3, 0x71, 0xf9, 0x02, 0xd9, 0x5c, 0x8b, 0x97, 0x31, 0xfa, 0x42,
+	0x86, 0xdc, 0x20, 0x64, 0x18, 0x19, 0xa8, 0x33, 0x11, 0xc6, 0xa8, 0x40, 0xfd, 0xf9, 0x0d, 0x07,
+	0x6a, 0x21, 0xb1, 0x3a, 0x07, 0x23, 0xf4, 0xb0, 0x76, 0xaf, 0x1f, 0xa1, 0xf8, 0x87, 0xbb, 0x71,
+	0x2b, 0x29, 0x11, 0xaa, 0xdf, 0xc9, 0x90, 0x1f, 0xde, 0xfc, 0xe8, 0xdb, 0x63, 0x05, 0xeb, 0x14,
+	0x54, 0x18, 0x15, 0xae, 0x2f, 0xdf, 0x74, 0x5d, 0xd1, 0xfb, 0xaf, 0x26, 0x63, 0xd6, 0xdf, 0xf9,
+	0x2c, 0x6a, 0x9b, 0xb5, 0xfa, 0xf9, 0xdb, 0x6e, 0xad, 0x37, 0x74, 0xdb, 0x35, 0x69, 0x05, 0xfd,
+	0x5b, 0x82, 0xdc, 0x20, 0xde, 0x1b, 0x59, 0x61, 0x67, 0xc2, 0xc3, 0x51, 0x21, 0xfb, 0x99, 0xf4,
+	0x42, 0xd9, 0x84, 0xc5, 0xe1, 0x5d, 0xac, 0x76, 0xbd, 0xf0, 0xe4, 0x02, 0x11, 0x4a, 0x4c, 0xa0,
+	0x95, 0x8b, 0x4c, 0xa0, 0xdf, 0xca, 0x30, 0x37, 0x04, 0x5c, 0xd1, 0xdd, 0x11, 0xf7, 0x3e, 0x1b,
+	0xe8, 0x8e, 0xba, 0xf8, 0x5f, 0xde, 0x70, 0xad, 0x2c, 0xb1, 0x5a, 0x11, 0x60, 0x79, 0x35, 0x86,
+	0xc6, 0xbc, 0xbb, 0xca, 0xeb, 0x17, 0xa8, 0x13, 0x3c, 0x78, 0xd1, 0x35, 0x69, 0xa5, 0xf8, 0xc9,
+	0x0b, 0x65, 0xe9, 0x15, 0x40, 0xf9, 0xaf, 0x4a, 0xe5, 0x30, 0x0c, 0xbd, 0x60, 0xad, 0x5a, 0x7d,
+	0xf2, 0xe4, 0xc9, 0x30, 0x8a, 0xc6, 0xbd, 0xf0, 0x90, 0xff, 0x51, 0x70, 0xdb, 0xb3, 0x71, 0x78,
+	0xe0, 0xfa, 0xdd, 0xf5, 0x1f, 0x4b, 0x70, 0xc3, 0x70, 0xbb, 0xaf, 0x0f, 0xf7, 0x3a, 0x1a, 0x58,
+	0xd2, 0x3b, 0xb4, 0x62, 0x76, 0xa4, 0xc7, 0x6a, 0xa4, 0xd4, 0x71, 0x6d, 0xec, 0x74, 0x2a, 0xae,
+	0xdf, 0xa9, 0x76, 0x88, 0xc3, 0xea, 0xa9, 0xda, 0x3f, 0xfa, 0x15, 0xff, 0x58, 0xdc, 0x13, 0x84,
+	0xf6, 0x14, 0xd3, 0x78, 0xff, 0xff, 0x01, 0x00, 0x00, 0xff, 0xff, 0xfb, 0x30, 0x60, 0x87, 0xe2,
+	0x18, 0x00, 0x00,
+}
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ context.Context
+var _ grpc.ClientConn
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the grpc package it is being compiled against.
+const _ = grpc.SupportPackageIsVersion4
+
+// CloudMemcacheClient is the client API for CloudMemcache service.
+//
+// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
+type CloudMemcacheClient interface {
+	// Lists Instances in a given project and location.
+	ListInstances(ctx context.Context, in *ListInstancesRequest, opts ...grpc.CallOption) (*ListInstancesResponse, error)
+	// Gets details of a single Instance.
+	GetInstance(ctx context.Context, in *GetInstanceRequest, opts ...grpc.CallOption) (*Instance, error)
+	// Creates a new Instance in a given project and location.
+	CreateInstance(ctx context.Context, in *CreateInstanceRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
+	// Updates an existing Instance in a given project and location.
+	UpdateInstance(ctx context.Context, in *UpdateInstanceRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
+	// Updates the defined Memcached Parameters for an existing Instance.
+	// This method only stages the parameters, it must be followed by
+	// ApplyParameters to apply the parameters to nodes of the Memcached Instance.
+	UpdateParameters(ctx context.Context, in *UpdateParametersRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
+	// Deletes a single Instance.
+	DeleteInstance(ctx context.Context, in *DeleteInstanceRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
+	// ApplyParameters will update current set of Parameters to the set of
+	// specified nodes of the Memcached Instance.
+	ApplyParameters(ctx context.Context, in *ApplyParametersRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
+}
+
+type cloudMemcacheClient struct {
+	cc *grpc.ClientConn
+}
+
+func NewCloudMemcacheClient(cc *grpc.ClientConn) CloudMemcacheClient {
+	return &cloudMemcacheClient{cc}
+}
+
+func (c *cloudMemcacheClient) ListInstances(ctx context.Context, in *ListInstancesRequest, opts ...grpc.CallOption) (*ListInstancesResponse, error) {
+	out := new(ListInstancesResponse)
+	err := c.cc.Invoke(ctx, "/google.cloud.memcache.v1beta2.CloudMemcache/ListInstances", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *cloudMemcacheClient) GetInstance(ctx context.Context, in *GetInstanceRequest, opts ...grpc.CallOption) (*Instance, error) {
+	out := new(Instance)
+	err := c.cc.Invoke(ctx, "/google.cloud.memcache.v1beta2.CloudMemcache/GetInstance", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *cloudMemcacheClient) CreateInstance(ctx context.Context, in *CreateInstanceRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
+	out := new(longrunning.Operation)
+	err := c.cc.Invoke(ctx, "/google.cloud.memcache.v1beta2.CloudMemcache/CreateInstance", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *cloudMemcacheClient) UpdateInstance(ctx context.Context, in *UpdateInstanceRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
+	out := new(longrunning.Operation)
+	err := c.cc.Invoke(ctx, "/google.cloud.memcache.v1beta2.CloudMemcache/UpdateInstance", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *cloudMemcacheClient) UpdateParameters(ctx context.Context, in *UpdateParametersRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
+	out := new(longrunning.Operation)
+	err := c.cc.Invoke(ctx, "/google.cloud.memcache.v1beta2.CloudMemcache/UpdateParameters", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *cloudMemcacheClient) DeleteInstance(ctx context.Context, in *DeleteInstanceRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
+	out := new(longrunning.Operation)
+	err := c.cc.Invoke(ctx, "/google.cloud.memcache.v1beta2.CloudMemcache/DeleteInstance", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *cloudMemcacheClient) ApplyParameters(ctx context.Context, in *ApplyParametersRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
+	out := new(longrunning.Operation)
+	err := c.cc.Invoke(ctx, "/google.cloud.memcache.v1beta2.CloudMemcache/ApplyParameters", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+// CloudMemcacheServer is the server API for CloudMemcache service.
+type CloudMemcacheServer interface {
+	// Lists Instances in a given project and location.
+	ListInstances(context.Context, *ListInstancesRequest) (*ListInstancesResponse, error)
+	// Gets details of a single Instance.
+	GetInstance(context.Context, *GetInstanceRequest) (*Instance, error)
+	// Creates a new Instance in a given project and location.
+	CreateInstance(context.Context, *CreateInstanceRequest) (*longrunning.Operation, error)
+	// Updates an existing Instance in a given project and location.
+	UpdateInstance(context.Context, *UpdateInstanceRequest) (*longrunning.Operation, error)
+	// Updates the defined Memcached Parameters for an existing Instance.
+	// This method only stages the parameters, it must be followed by
+	// ApplyParameters to apply the parameters to nodes of the Memcached Instance.
+	UpdateParameters(context.Context, *UpdateParametersRequest) (*longrunning.Operation, error)
+	// Deletes a single Instance.
+	DeleteInstance(context.Context, *DeleteInstanceRequest) (*longrunning.Operation, error)
+	// ApplyParameters will update current set of Parameters to the set of
+	// specified nodes of the Memcached Instance.
+	ApplyParameters(context.Context, *ApplyParametersRequest) (*longrunning.Operation, error)
+}
+
+// UnimplementedCloudMemcacheServer can be embedded to have forward compatible implementations.
+type UnimplementedCloudMemcacheServer struct {
+}
+
+func (*UnimplementedCloudMemcacheServer) ListInstances(ctx context.Context, req *ListInstancesRequest) (*ListInstancesResponse, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method ListInstances not implemented")
+}
+func (*UnimplementedCloudMemcacheServer) GetInstance(ctx context.Context, req *GetInstanceRequest) (*Instance, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method GetInstance not implemented")
+}
+func (*UnimplementedCloudMemcacheServer) CreateInstance(ctx context.Context, req *CreateInstanceRequest) (*longrunning.Operation, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method CreateInstance not implemented")
+}
+func (*UnimplementedCloudMemcacheServer) UpdateInstance(ctx context.Context, req *UpdateInstanceRequest) (*longrunning.Operation, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method UpdateInstance not implemented")
+}
+func (*UnimplementedCloudMemcacheServer) UpdateParameters(ctx context.Context, req *UpdateParametersRequest) (*longrunning.Operation, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method UpdateParameters not implemented")
+}
+func (*UnimplementedCloudMemcacheServer) DeleteInstance(ctx context.Context, req *DeleteInstanceRequest) (*longrunning.Operation, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method DeleteInstance not implemented")
+}
+func (*UnimplementedCloudMemcacheServer) ApplyParameters(ctx context.Context, req *ApplyParametersRequest) (*longrunning.Operation, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method ApplyParameters not implemented")
+}
+
+func RegisterCloudMemcacheServer(s *grpc.Server, srv CloudMemcacheServer) {
+	s.RegisterService(&_CloudMemcache_serviceDesc, srv)
+}
+
+func _CloudMemcache_ListInstances_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(ListInstancesRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(CloudMemcacheServer).ListInstances(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/google.cloud.memcache.v1beta2.CloudMemcache/ListInstances",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(CloudMemcacheServer).ListInstances(ctx, req.(*ListInstancesRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _CloudMemcache_GetInstance_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(GetInstanceRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(CloudMemcacheServer).GetInstance(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/google.cloud.memcache.v1beta2.CloudMemcache/GetInstance",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(CloudMemcacheServer).GetInstance(ctx, req.(*GetInstanceRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _CloudMemcache_CreateInstance_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(CreateInstanceRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(CloudMemcacheServer).CreateInstance(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/google.cloud.memcache.v1beta2.CloudMemcache/CreateInstance",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(CloudMemcacheServer).CreateInstance(ctx, req.(*CreateInstanceRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _CloudMemcache_UpdateInstance_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(UpdateInstanceRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(CloudMemcacheServer).UpdateInstance(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/google.cloud.memcache.v1beta2.CloudMemcache/UpdateInstance",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(CloudMemcacheServer).UpdateInstance(ctx, req.(*UpdateInstanceRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _CloudMemcache_UpdateParameters_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(UpdateParametersRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(CloudMemcacheServer).UpdateParameters(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/google.cloud.memcache.v1beta2.CloudMemcache/UpdateParameters",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(CloudMemcacheServer).UpdateParameters(ctx, req.(*UpdateParametersRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _CloudMemcache_DeleteInstance_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(DeleteInstanceRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(CloudMemcacheServer).DeleteInstance(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/google.cloud.memcache.v1beta2.CloudMemcache/DeleteInstance",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(CloudMemcacheServer).DeleteInstance(ctx, req.(*DeleteInstanceRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _CloudMemcache_ApplyParameters_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(ApplyParametersRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(CloudMemcacheServer).ApplyParameters(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/google.cloud.memcache.v1beta2.CloudMemcache/ApplyParameters",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(CloudMemcacheServer).ApplyParameters(ctx, req.(*ApplyParametersRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+var _CloudMemcache_serviceDesc = grpc.ServiceDesc{
+	ServiceName: "google.cloud.memcache.v1beta2.CloudMemcache",
+	HandlerType: (*CloudMemcacheServer)(nil),
+	Methods: []grpc.MethodDesc{
+		{
+			MethodName: "ListInstances",
+			Handler:    _CloudMemcache_ListInstances_Handler,
+		},
+		{
+			MethodName: "GetInstance",
+			Handler:    _CloudMemcache_GetInstance_Handler,
+		},
+		{
+			MethodName: "CreateInstance",
+			Handler:    _CloudMemcache_CreateInstance_Handler,
+		},
+		{
+			MethodName: "UpdateInstance",
+			Handler:    _CloudMemcache_UpdateInstance_Handler,
+		},
+		{
+			MethodName: "UpdateParameters",
+			Handler:    _CloudMemcache_UpdateParameters_Handler,
+		},
+		{
+			MethodName: "DeleteInstance",
+			Handler:    _CloudMemcache_DeleteInstance_Handler,
+		},
+		{
+			MethodName: "ApplyParameters",
+			Handler:    _CloudMemcache_ApplyParameters_Handler,
+		},
+	},
+	Streams:  []grpc.StreamDesc{},
+	Metadata: "google/cloud/memcache/v1beta2/cloud_memcache.proto",
+}
diff --git a/googleapis/cloud/orgpolicy/v1/orgpolicy.pb.go b/googleapis/cloud/orgpolicy/v1/orgpolicy.pb.go
new file mode 100644
index 0000000..4e755b0
--- /dev/null
+++ b/googleapis/cloud/orgpolicy/v1/orgpolicy.pb.go
@@ -0,0 +1,611 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// source: google/cloud/orgpolicy/v1/orgpolicy.proto
+
+package orgpolicy
+
+import (
+	fmt "fmt"
+	math "math"
+
+	proto "github.com/golang/protobuf/proto"
+	_ "github.com/golang/protobuf/ptypes/empty"
+	timestamp "github.com/golang/protobuf/ptypes/timestamp"
+	_ "google.golang.org/genproto/googleapis/api/annotations"
+)
+
+// 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
+
+// This enum can be used to set `Policies` that apply to all possible
+// configuration values rather than specific values in `allowed_values` or
+// `denied_values`.
+//
+// Settting this to `ALLOW` will mean this `Policy` allows all values.
+// Similarly, setting it to `DENY` will mean no values are allowed. If
+// set to either `ALLOW` or `DENY,  `allowed_values` and `denied_values`
+// must be unset. Setting this to `ALL_VALUES_UNSPECIFIED` allows for
+// setting `allowed_values` and `denied_values`.
+type Policy_ListPolicy_AllValues int32
+
+const (
+	// Indicates that allowed_values or denied_values must be set.
+	Policy_ListPolicy_ALL_VALUES_UNSPECIFIED Policy_ListPolicy_AllValues = 0
+	// A policy with this set allows all values.
+	Policy_ListPolicy_ALLOW Policy_ListPolicy_AllValues = 1
+	// A policy with this set denies all values.
+	Policy_ListPolicy_DENY Policy_ListPolicy_AllValues = 2
+)
+
+var Policy_ListPolicy_AllValues_name = map[int32]string{
+	0: "ALL_VALUES_UNSPECIFIED",
+	1: "ALLOW",
+	2: "DENY",
+}
+
+var Policy_ListPolicy_AllValues_value = map[string]int32{
+	"ALL_VALUES_UNSPECIFIED": 0,
+	"ALLOW":                  1,
+	"DENY":                   2,
+}
+
+func (x Policy_ListPolicy_AllValues) String() string {
+	return proto.EnumName(Policy_ListPolicy_AllValues_name, int32(x))
+}
+
+func (Policy_ListPolicy_AllValues) EnumDescriptor() ([]byte, []int) {
+	return fileDescriptor_fc4532988da7cf50, []int{0, 0, 0}
+}
+
+// Defines a Cloud Organization `Policy` which is used to specify `Constraints`
+// for configurations of Cloud Platform resources.
+type Policy struct {
+	// Version of the `Policy`. Default version is 0;
+	Version int32 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"`
+	// The name of the `Constraint` the `Policy` is configuring, for example,
+	// `constraints/serviceuser.services`.
+	//
+	// Immutable after creation.
+	Constraint string `protobuf:"bytes,2,opt,name=constraint,proto3" json:"constraint,omitempty"`
+	// An opaque tag indicating the current version of the `Policy`, used for
+	// concurrency control.
+	//
+	// When the `Policy` is returned from either a `GetPolicy` or a
+	// `ListOrgPolicy` request, this `etag` indicates the version of the current
+	// `Policy` to use when executing a read-modify-write loop.
+	//
+	// When the `Policy` is returned from a `GetEffectivePolicy` request, the
+	// `etag` will be unset.
+	//
+	// When the `Policy` is used in a `SetOrgPolicy` method, use the `etag` value
+	// that was returned from a `GetOrgPolicy` request as part of a
+	// read-modify-write loop for concurrency control. Not setting the `etag`in a
+	// `SetOrgPolicy` request will result in an unconditional write of the
+	// `Policy`.
+	Etag []byte `protobuf:"bytes,3,opt,name=etag,proto3" json:"etag,omitempty"`
+	// The time stamp the `Policy` was previously updated. This is set by the
+	// server, not specified by the caller, and represents the last time a call to
+	// `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
+	// be ignored.
+	UpdateTime *timestamp.Timestamp `protobuf:"bytes,4,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
+	// The field to populate is based on the `constraint_type` value in the
+	// `Constraint`.
+	//   `list_constraint` => `list_policy`
+	//   `boolean_constraint` => `boolean_policy`
+	//
+	//  A `restore_default` message may be used with any `Constraint` type.
+	//
+	// Providing a *_policy that is incompatible with the `constraint_type` will
+	// result in an `invalid_argument` error.
+	//
+	// Attempting to set a `Policy` with a `policy_type` not set will result in an
+	// `invalid_argument` error.
+	//
+	// Types that are valid to be assigned to PolicyType:
+	//	*Policy_ListPolicy_
+	//	*Policy_BooleanPolicy_
+	//	*Policy_RestoreDefault_
+	PolicyType           isPolicy_PolicyType `protobuf_oneof:"policy_type"`
+	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
+	XXX_unrecognized     []byte              `json:"-"`
+	XXX_sizecache        int32               `json:"-"`
+}
+
+func (m *Policy) Reset()         { *m = Policy{} }
+func (m *Policy) String() string { return proto.CompactTextString(m) }
+func (*Policy) ProtoMessage()    {}
+func (*Policy) Descriptor() ([]byte, []int) {
+	return fileDescriptor_fc4532988da7cf50, []int{0}
+}
+
+func (m *Policy) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_Policy.Unmarshal(m, b)
+}
+func (m *Policy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_Policy.Marshal(b, m, deterministic)
+}
+func (m *Policy) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_Policy.Merge(m, src)
+}
+func (m *Policy) XXX_Size() int {
+	return xxx_messageInfo_Policy.Size(m)
+}
+func (m *Policy) XXX_DiscardUnknown() {
+	xxx_messageInfo_Policy.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Policy proto.InternalMessageInfo
+
+func (m *Policy) GetVersion() int32 {
+	if m != nil {
+		return m.Version
+	}
+	return 0
+}
+
+func (m *Policy) GetConstraint() string {
+	if m != nil {
+		return m.Constraint
+	}
+	return ""
+}
+
+func (m *Policy) GetEtag() []byte {
+	if m != nil {
+		return m.Etag
+	}
+	return nil
+}
+
+func (m *Policy) GetUpdateTime() *timestamp.Timestamp {
+	if m != nil {
+		return m.UpdateTime
+	}
+	return nil
+}
+
+type isPolicy_PolicyType interface {
+	isPolicy_PolicyType()
+}
+
+type Policy_ListPolicy_ struct {
+	ListPolicy *Policy_ListPolicy `protobuf:"bytes,5,opt,name=list_policy,json=listPolicy,proto3,oneof"`
+}
+
+type Policy_BooleanPolicy_ struct {
+	BooleanPolicy *Policy_BooleanPolicy `protobuf:"bytes,6,opt,name=boolean_policy,json=booleanPolicy,proto3,oneof"`
+}
+
+type Policy_RestoreDefault_ struct {
+	RestoreDefault *Policy_RestoreDefault `protobuf:"bytes,7,opt,name=restore_default,json=restoreDefault,proto3,oneof"`
+}
+
+func (*Policy_ListPolicy_) isPolicy_PolicyType() {}
+
+func (*Policy_BooleanPolicy_) isPolicy_PolicyType() {}
+
+func (*Policy_RestoreDefault_) isPolicy_PolicyType() {}
+
+func (m *Policy) GetPolicyType() isPolicy_PolicyType {
+	if m != nil {
+		return m.PolicyType
+	}
+	return nil
+}
+
+func (m *Policy) GetListPolicy() *Policy_ListPolicy {
+	if x, ok := m.GetPolicyType().(*Policy_ListPolicy_); ok {
+		return x.ListPolicy
+	}
+	return nil
+}
+
+func (m *Policy) GetBooleanPolicy() *Policy_BooleanPolicy {
+	if x, ok := m.GetPolicyType().(*Policy_BooleanPolicy_); ok {
+		return x.BooleanPolicy
+	}
+	return nil
+}
+
+func (m *Policy) GetRestoreDefault() *Policy_RestoreDefault {
+	if x, ok := m.GetPolicyType().(*Policy_RestoreDefault_); ok {
+		return x.RestoreDefault
+	}
+	return nil
+}
+
+// XXX_OneofWrappers is for the internal use of the proto package.
+func (*Policy) XXX_OneofWrappers() []interface{} {
+	return []interface{}{
+		(*Policy_ListPolicy_)(nil),
+		(*Policy_BooleanPolicy_)(nil),
+		(*Policy_RestoreDefault_)(nil),
+	}
+}
+
+// Used in `policy_type` to specify how `list_policy` behaves at this
+// resource.
+//
+// `ListPolicy` can define specific values and subtrees of Cloud Resource
+// Manager resource hierarchy (`Organizations`, `Folders`, `Projects`) that
+// are allowed or denied by setting the `allowed_values` and `denied_values`
+// fields. This is achieved by using the `under:` and optional `is:` prefixes.
+// The `under:` prefix is used to denote resource subtree values.
+// The `is:` prefix is used to denote specific values, and is required only
+// if the value contains a ":". Values prefixed with "is:" are treated the
+// same as values with no prefix.
+// Ancestry subtrees must be in one of the following formats:
+//     - "projects/<project-id>", e.g. "projects/tokyo-rain-123"
+//     - "folders/<folder-id>", e.g. "folders/1234"
+//     - "organizations/<organization-id>", e.g. "organizations/1234"
+// The `supports_under` field of the associated `Constraint`  defines whether
+// ancestry prefixes can be used. You can set `allowed_values` and
+// `denied_values` in the same `Policy` if `all_values` is
+// `ALL_VALUES_UNSPECIFIED`. `ALLOW` or `DENY` are used to allow or deny all
+// values. If `all_values` is set to either `ALLOW` or `DENY`,
+// `allowed_values` and `denied_values` must be unset.
+type Policy_ListPolicy struct {
+	// List of values allowed  at this resource. Can only be set if `all_values`
+	// is set to `ALL_VALUES_UNSPECIFIED`.
+	AllowedValues []string `protobuf:"bytes,1,rep,name=allowed_values,json=allowedValues,proto3" json:"allowed_values,omitempty"`
+	// List of values denied at this resource. Can only be set if `all_values`
+	// is set to `ALL_VALUES_UNSPECIFIED`.
+	DeniedValues []string `protobuf:"bytes,2,rep,name=denied_values,json=deniedValues,proto3" json:"denied_values,omitempty"`
+	// The policy all_values state.
+	AllValues Policy_ListPolicy_AllValues `protobuf:"varint,3,opt,name=all_values,json=allValues,proto3,enum=google.cloud.orgpolicy.v1.Policy_ListPolicy_AllValues" json:"all_values,omitempty"`
+	// Optional. The Google Cloud Console will try to default to a configuration
+	// that matches the value specified in this `Policy`. If `suggested_value`
+	// is not set, it will inherit the value specified higher in the hierarchy,
+	// unless `inherit_from_parent` is `false`.
+	SuggestedValue string `protobuf:"bytes,4,opt,name=suggested_value,json=suggestedValue,proto3" json:"suggested_value,omitempty"`
+	// Determines the inheritance behavior for this `Policy`.
+	//
+	// By default, a `ListPolicy` set at a resource supercedes any `Policy` set
+	// anywhere up the resource hierarchy. However, if `inherit_from_parent` is
+	// set to `true`, then the values from the effective `Policy` of the parent
+	// resource are inherited, meaning the values set in this `Policy` are
+	// added to the values inherited up the hierarchy.
+	//
+	// Setting `Policy` hierarchies that inherit both allowed values and denied
+	// values isn't recommended in most circumstances to keep the configuration
+	// simple and understandable. However, it is possible to set a `Policy` with
+	// `allowed_values` set that inherits a `Policy` with `denied_values` set.
+	// In this case, the values that are allowed must be in `allowed_values` and
+	// not present in `denied_values`.
+	//
+	// For example, suppose you have a `Constraint`
+	// `constraints/serviceuser.services`, which has a `constraint_type` of
+	// `list_constraint`, and with `constraint_default` set to `ALLOW`.
+	// Suppose that at the Organization level, a `Policy` is applied that
+	// restricts the allowed API activations to {`E1`, `E2`}. Then, if a
+	// `Policy` is applied to a project below the Organization that has
+	// `inherit_from_parent` set to `false` and field all_values set to DENY,
+	// then an attempt to activate any API will be denied.
+	//
+	// The following examples demonstrate different possible layerings for
+	// `projects/bar` parented by `organizations/foo`:
+	//
+	// Example 1 (no inherited values):
+	//   `organizations/foo` has a `Policy` with values:
+	//     {allowed_values: "E1" allowed_values:"E2"}
+	//   `projects/bar` has `inherit_from_parent` `false` and values:
+	//     {allowed_values: "E3" allowed_values: "E4"}
+	// The accepted values at `organizations/foo` are `E1`, `E2`.
+	// The accepted values at `projects/bar` are `E3`, and `E4`.
+	//
+	// Example 2 (inherited values):
+	//   `organizations/foo` has a `Policy` with values:
+	//     {allowed_values: "E1" allowed_values:"E2"}
+	//   `projects/bar` has a `Policy` with values:
+	//     {value: "E3" value: "E4" inherit_from_parent: true}
+	// The accepted values at `organizations/foo` are `E1`, `E2`.
+	// The accepted values at `projects/bar` are `E1`, `E2`, `E3`, and `E4`.
+	//
+	// Example 3 (inheriting both allowed and denied values):
+	//   `organizations/foo` has a `Policy` with values:
+	//     {allowed_values: "E1" allowed_values: "E2"}
+	//   `projects/bar` has a `Policy` with:
+	//     {denied_values: "E1"}
+	// The accepted values at `organizations/foo` are `E1`, `E2`.
+	// The value accepted at `projects/bar` is `E2`.
+	//
+	// Example 4 (RestoreDefault):
+	//   `organizations/foo` has a `Policy` with values:
+	//     {allowed_values: "E1" allowed_values:"E2"}
+	//   `projects/bar` has a `Policy` with values:
+	//     {RestoreDefault: {}}
+	// The accepted values at `organizations/foo` are `E1`, `E2`.
+	// The accepted values at `projects/bar` are either all or none depending on
+	// the value of `constraint_default` (if `ALLOW`, all; if
+	// `DENY`, none).
+	//
+	// Example 5 (no policy inherits parent policy):
+	//   `organizations/foo` has no `Policy` set.
+	//   `projects/bar` has no `Policy` set.
+	// The accepted values at both levels are either all or none depending on
+	// the value of `constraint_default` (if `ALLOW`, all; if
+	// `DENY`, none).
+	//
+	// Example 6 (ListConstraint allowing all):
+	//   `organizations/foo` has a `Policy` with values:
+	//     {allowed_values: "E1" allowed_values: "E2"}
+	//   `projects/bar` has a `Policy` with:
+	//     {all: ALLOW}
+	// The accepted values at `organizations/foo` are `E1`, E2`.
+	// Any value is accepted at `projects/bar`.
+	//
+	// Example 7 (ListConstraint allowing none):
+	//   `organizations/foo` has a `Policy` with values:
+	//     {allowed_values: "E1" allowed_values: "E2"}
+	//   `projects/bar` has a `Policy` with:
+	//     {all: DENY}
+	// The accepted values at `organizations/foo` are `E1`, E2`.
+	// No value is accepted at `projects/bar`.
+	//
+	// Example 10 (allowed and denied subtrees of Resource Manager hierarchy):
+	// Given the following resource hierarchy
+	//   O1->{F1, F2}; F1->{P1}; F2->{P2, P3},
+	//   `organizations/foo` has a `Policy` with values:
+	//     {allowed_values: "under:organizations/O1"}
+	//   `projects/bar` has a `Policy` with:
+	//     {allowed_values: "under:projects/P3"}
+	//     {denied_values: "under:folders/F2"}
+	// The accepted values at `organizations/foo` are `organizations/O1`,
+	//   `folders/F1`, `folders/F2`, `projects/P1`, `projects/P2`,
+	//   `projects/P3`.
+	// The accepted values at `projects/bar` are `organizations/O1`,
+	//   `folders/F1`, `projects/P1`.
+	InheritFromParent    bool     `protobuf:"varint,5,opt,name=inherit_from_parent,json=inheritFromParent,proto3" json:"inherit_from_parent,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *Policy_ListPolicy) Reset()         { *m = Policy_ListPolicy{} }
+func (m *Policy_ListPolicy) String() string { return proto.CompactTextString(m) }
+func (*Policy_ListPolicy) ProtoMessage()    {}
+func (*Policy_ListPolicy) Descriptor() ([]byte, []int) {
+	return fileDescriptor_fc4532988da7cf50, []int{0, 0}
+}
+
+func (m *Policy_ListPolicy) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_Policy_ListPolicy.Unmarshal(m, b)
+}
+func (m *Policy_ListPolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_Policy_ListPolicy.Marshal(b, m, deterministic)
+}
+func (m *Policy_ListPolicy) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_Policy_ListPolicy.Merge(m, src)
+}
+func (m *Policy_ListPolicy) XXX_Size() int {
+	return xxx_messageInfo_Policy_ListPolicy.Size(m)
+}
+func (m *Policy_ListPolicy) XXX_DiscardUnknown() {
+	xxx_messageInfo_Policy_ListPolicy.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Policy_ListPolicy proto.InternalMessageInfo
+
+func (m *Policy_ListPolicy) GetAllowedValues() []string {
+	if m != nil {
+		return m.AllowedValues
+	}
+	return nil
+}
+
+func (m *Policy_ListPolicy) GetDeniedValues() []string {
+	if m != nil {
+		return m.DeniedValues
+	}
+	return nil
+}
+
+func (m *Policy_ListPolicy) GetAllValues() Policy_ListPolicy_AllValues {
+	if m != nil {
+		return m.AllValues
+	}
+	return Policy_ListPolicy_ALL_VALUES_UNSPECIFIED
+}
+
+func (m *Policy_ListPolicy) GetSuggestedValue() string {
+	if m != nil {
+		return m.SuggestedValue
+	}
+	return ""
+}
+
+func (m *Policy_ListPolicy) GetInheritFromParent() bool {
+	if m != nil {
+		return m.InheritFromParent
+	}
+	return false
+}
+
+// Used in `policy_type` to specify how `boolean_policy` will behave at this
+// resource.
+type Policy_BooleanPolicy struct {
+	// If `true`, then the `Policy` is enforced. If `false`, then any
+	// configuration is acceptable.
+	//
+	// Suppose you have a `Constraint`
+	// `constraints/compute.disableSerialPortAccess` with `constraint_default`
+	// set to `ALLOW`. A `Policy` for that `Constraint` exhibits the following
+	// behavior:
+	//   - If the `Policy` at this resource has enforced set to `false`, serial
+	//     port connection attempts will be allowed.
+	//   - If the `Policy` at this resource has enforced set to `true`, serial
+	//     port connection attempts will be refused.
+	//   - If the `Policy` at this resource is `RestoreDefault`, serial port
+	//     connection attempts will be allowed.
+	//   - If no `Policy` is set at this resource or anywhere higher in the
+	//     resource hierarchy, serial port connection attempts will be allowed.
+	//   - If no `Policy` is set at this resource, but one exists higher in the
+	//     resource hierarchy, the behavior is as if the`Policy` were set at
+	//     this resource.
+	//
+	// The following examples demonstrate the different possible layerings:
+	//
+	// Example 1 (nearest `Constraint` wins):
+	//   `organizations/foo` has a `Policy` with:
+	//     {enforced: false}
+	//   `projects/bar` has no `Policy` set.
+	// The constraint at `projects/bar` and `organizations/foo` will not be
+	// enforced.
+	//
+	// Example 2 (enforcement gets replaced):
+	//   `organizations/foo` has a `Policy` with:
+	//     {enforced: false}
+	//   `projects/bar` has a `Policy` with:
+	//     {enforced: true}
+	// The constraint at `organizations/foo` is not enforced.
+	// The constraint at `projects/bar` is enforced.
+	//
+	// Example 3 (RestoreDefault):
+	//   `organizations/foo` has a `Policy` with:
+	//     {enforced: true}
+	//   `projects/bar` has a `Policy` with:
+	//     {RestoreDefault: {}}
+	// The constraint at `organizations/foo` is enforced.
+	// The constraint at `projects/bar` is not enforced, because
+	// `constraint_default` for the `Constraint` is `ALLOW`.
+	Enforced             bool     `protobuf:"varint,1,opt,name=enforced,proto3" json:"enforced,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *Policy_BooleanPolicy) Reset()         { *m = Policy_BooleanPolicy{} }
+func (m *Policy_BooleanPolicy) String() string { return proto.CompactTextString(m) }
+func (*Policy_BooleanPolicy) ProtoMessage()    {}
+func (*Policy_BooleanPolicy) Descriptor() ([]byte, []int) {
+	return fileDescriptor_fc4532988da7cf50, []int{0, 1}
+}
+
+func (m *Policy_BooleanPolicy) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_Policy_BooleanPolicy.Unmarshal(m, b)
+}
+func (m *Policy_BooleanPolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_Policy_BooleanPolicy.Marshal(b, m, deterministic)
+}
+func (m *Policy_BooleanPolicy) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_Policy_BooleanPolicy.Merge(m, src)
+}
+func (m *Policy_BooleanPolicy) XXX_Size() int {
+	return xxx_messageInfo_Policy_BooleanPolicy.Size(m)
+}
+func (m *Policy_BooleanPolicy) XXX_DiscardUnknown() {
+	xxx_messageInfo_Policy_BooleanPolicy.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Policy_BooleanPolicy proto.InternalMessageInfo
+
+func (m *Policy_BooleanPolicy) GetEnforced() bool {
+	if m != nil {
+		return m.Enforced
+	}
+	return false
+}
+
+// Ignores policies set above this resource and restores the
+// `constraint_default` enforcement behavior of the specific `Constraint` at
+// this resource.
+//
+// Suppose that `constraint_default` is set to `ALLOW` for the
+// `Constraint` `constraints/serviceuser.services`. Suppose that organization
+// foo.com sets a `Policy` at their Organization resource node that restricts
+// the allowed service activations to deny all service activations. They
+// could then set a `Policy` with the `policy_type` `restore_default` on
+// several experimental projects, restoring the `constraint_default`
+// enforcement of the `Constraint` for only those projects, allowing those
+// projects to have all services activated.
+type Policy_RestoreDefault struct {
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *Policy_RestoreDefault) Reset()         { *m = Policy_RestoreDefault{} }
+func (m *Policy_RestoreDefault) String() string { return proto.CompactTextString(m) }
+func (*Policy_RestoreDefault) ProtoMessage()    {}
+func (*Policy_RestoreDefault) Descriptor() ([]byte, []int) {
+	return fileDescriptor_fc4532988da7cf50, []int{0, 2}
+}
+
+func (m *Policy_RestoreDefault) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_Policy_RestoreDefault.Unmarshal(m, b)
+}
+func (m *Policy_RestoreDefault) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_Policy_RestoreDefault.Marshal(b, m, deterministic)
+}
+func (m *Policy_RestoreDefault) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_Policy_RestoreDefault.Merge(m, src)
+}
+func (m *Policy_RestoreDefault) XXX_Size() int {
+	return xxx_messageInfo_Policy_RestoreDefault.Size(m)
+}
+func (m *Policy_RestoreDefault) XXX_DiscardUnknown() {
+	xxx_messageInfo_Policy_RestoreDefault.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Policy_RestoreDefault proto.InternalMessageInfo
+
+func init() {
+	proto.RegisterEnum("google.cloud.orgpolicy.v1.Policy_ListPolicy_AllValues", Policy_ListPolicy_AllValues_name, Policy_ListPolicy_AllValues_value)
+	proto.RegisterType((*Policy)(nil), "google.cloud.orgpolicy.v1.Policy")
+	proto.RegisterType((*Policy_ListPolicy)(nil), "google.cloud.orgpolicy.v1.Policy.ListPolicy")
+	proto.RegisterType((*Policy_BooleanPolicy)(nil), "google.cloud.orgpolicy.v1.Policy.BooleanPolicy")
+	proto.RegisterType((*Policy_RestoreDefault)(nil), "google.cloud.orgpolicy.v1.Policy.RestoreDefault")
+}
+
+func init() {
+	proto.RegisterFile("google/cloud/orgpolicy/v1/orgpolicy.proto", fileDescriptor_fc4532988da7cf50)
+}
+
+var fileDescriptor_fc4532988da7cf50 = []byte{
+	// 603 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x54, 0x5d, 0x6f, 0xd3, 0x30,
+	0x14, 0x5d, 0xba, 0xad, 0x6b, 0x6f, 0xd7, 0xac, 0x18, 0x09, 0x65, 0xe1, 0xab, 0x1a, 0x42, 0x14,
+	0x81, 0x12, 0x3a, 0x24, 0x5e, 0xc6, 0x4b, 0xbb, 0x75, 0x6c, 0x52, 0xb5, 0x55, 0x19, 0x2b, 0x5f,
+	0x93, 0x22, 0xb7, 0x75, 0x83, 0x25, 0xd7, 0x8e, 0x1c, 0xa7, 0x68, 0x7f, 0x09, 0x89, 0x17, 0x7e,
+	0x04, 0x0f, 0xfc, 0x2a, 0x54, 0x3b, 0x49, 0x37, 0xc4, 0x34, 0xf1, 0xe6, 0x7b, 0xce, 0xb9, 0xe7,
+	0xd8, 0xf7, 0xa6, 0x85, 0xe7, 0x91, 0x10, 0x11, 0x23, 0xfe, 0x98, 0x89, 0x74, 0xe2, 0x0b, 0x19,
+	0xc5, 0x82, 0xd1, 0xf1, 0xa5, 0x3f, 0x6f, 0x2f, 0x0b, 0x2f, 0x96, 0x42, 0x09, 0xb4, 0x6d, 0xa4,
+	0x9e, 0x96, 0x7a, 0x4b, 0x76, 0xde, 0x76, 0xef, 0x67, 0x2e, 0x5a, 0x38, 0x4a, 0xa7, 0x3e, 0x99,
+	0xc5, 0x2a, 0xeb, 0x73, 0x1f, 0xff, 0x4d, 0x2a, 0x3a, 0x23, 0x89, 0xc2, 0xb3, 0x38, 0x13, 0x3c,
+	0xc8, 0x04, 0x38, 0xa6, 0x3e, 0xe6, 0x5c, 0x28, 0xac, 0xa8, 0xe0, 0x89, 0x61, 0x77, 0x7e, 0x96,
+	0xa1, 0x3c, 0xd0, 0x49, 0xc8, 0x81, 0x8d, 0x39, 0x91, 0x09, 0x15, 0xdc, 0xb1, 0x9a, 0x56, 0x6b,
+	0x3d, 0xc8, 0x4b, 0xf4, 0x08, 0x60, 0x2c, 0x78, 0xa2, 0x24, 0xa6, 0x5c, 0x39, 0xa5, 0xa6, 0xd5,
+	0xaa, 0x06, 0x57, 0x10, 0x84, 0x60, 0x8d, 0x28, 0x1c, 0x39, 0xab, 0x4d, 0xab, 0xb5, 0x19, 0xe8,
+	0x33, 0xda, 0x83, 0x5a, 0x1a, 0x4f, 0xb0, 0x22, 0xe1, 0xe2, 0x42, 0xce, 0x5a, 0xd3, 0x6a, 0xd5,
+	0x76, 0x5d, 0x2f, 0x7b, 0x65, 0x7e, 0x5b, 0xef, 0x7d, 0x7e, 0xdb, 0x00, 0x8c, 0x7c, 0x01, 0xa0,
+	0x53, 0xa8, 0x31, 0x9a, 0xa8, 0xd0, 0xcc, 0xc0, 0x59, 0xd7, 0xcd, 0x2f, 0xbd, 0x1b, 0x47, 0xe4,
+	0x99, 0x27, 0x78, 0x7d, 0x9a, 0x28, 0x73, 0x3c, 0x5a, 0x09, 0x80, 0x15, 0x15, 0xfa, 0x08, 0xf6,
+	0x48, 0x08, 0x46, 0x30, 0xcf, 0x3d, 0xcb, 0xda, 0xd3, 0xbf, 0xdd, 0xb3, 0x6b, 0xfa, 0x0a, 0xdb,
+	0xfa, 0xe8, 0x2a, 0x80, 0xbe, 0xc0, 0x96, 0x24, 0x89, 0x12, 0x92, 0x84, 0x13, 0x32, 0xc5, 0x29,
+	0x53, 0xce, 0x86, 0xb6, 0x7e, 0x75, 0xbb, 0x75, 0x60, 0x1a, 0x0f, 0x4c, 0xdf, 0xd1, 0x4a, 0x60,
+	0xcb, 0x6b, 0x88, 0xfb, 0xab, 0x04, 0xb0, 0x7c, 0x13, 0x7a, 0x0a, 0x36, 0x66, 0x4c, 0x7c, 0x23,
+	0x93, 0x70, 0x8e, 0x59, 0x4a, 0x12, 0xc7, 0x6a, 0xae, 0xb6, 0xaa, 0x41, 0x3d, 0x43, 0x87, 0x1a,
+	0x44, 0x4f, 0xa0, 0x3e, 0x21, 0x9c, 0x2e, 0x55, 0x25, 0xad, 0xda, 0x34, 0x60, 0x26, 0x3a, 0x07,
+	0xc0, 0x8c, 0xe5, 0x8a, 0xc5, 0xe6, 0xec, 0xdd, 0x37, 0xff, 0x33, 0x61, 0xaf, 0xc3, 0x98, 0xf1,
+	0x0a, 0xaa, 0x38, 0x3f, 0xa2, 0x67, 0xb0, 0x95, 0xa4, 0x51, 0x44, 0x12, 0x95, 0xc7, 0xeb, 0xd5,
+	0x57, 0x03, 0xbb, 0x80, 0xb5, 0x12, 0x79, 0x70, 0x97, 0xf2, 0xaf, 0x44, 0x52, 0x15, 0x4e, 0xa5,
+	0x98, 0x85, 0x31, 0x96, 0x84, 0x2b, 0xbd, 0xea, 0x4a, 0x70, 0x27, 0xa3, 0x0e, 0xa5, 0x98, 0x0d,
+	0x34, 0xb1, 0xf3, 0x16, 0xaa, 0x45, 0x20, 0x72, 0xe1, 0x5e, 0xa7, 0xdf, 0x0f, 0x87, 0x9d, 0xfe,
+	0x79, 0xef, 0x2c, 0x3c, 0x3f, 0x39, 0x1b, 0xf4, 0xf6, 0x8f, 0x0f, 0x8f, 0x7b, 0x07, 0x8d, 0x15,
+	0x54, 0x85, 0xf5, 0x4e, 0xbf, 0x7f, 0xfa, 0xa1, 0x61, 0xa1, 0x0a, 0xac, 0x1d, 0xf4, 0x4e, 0x3e,
+	0x35, 0x4a, 0xee, 0x0b, 0xa8, 0x5f, 0xdb, 0x23, 0x72, 0xa1, 0x42, 0xf8, 0x54, 0xc8, 0x31, 0x99,
+	0xe8, 0xaf, 0xbd, 0x12, 0x14, 0xb5, 0xdb, 0x00, 0xfb, 0xfa, 0x66, 0xba, 0x75, 0xa8, 0x99, 0x49,
+	0x84, 0xea, 0x32, 0x26, 0xdd, 0x1f, 0x16, 0x3c, 0x1c, 0x8b, 0xd9, 0xcd, 0xd3, 0xea, 0xda, 0xa7,
+	0x32, 0x32, 0x49, 0x83, 0xc5, 0x97, 0x3e, 0xb0, 0x3e, 0x77, 0x33, 0x71, 0x24, 0x18, 0xe6, 0xd1,
+	0x42, 0xed, 0x47, 0x84, 0xeb, 0xdf, 0x81, 0x6f, 0x28, 0x1c, 0xd3, 0xe4, 0x1f, 0xff, 0x14, 0x7b,
+	0x45, 0xf1, 0xbd, 0xb4, 0xfd, 0xce, 0x98, 0xec, 0xeb, 0xc4, 0x22, 0xc3, 0x1b, 0xb6, 0x7f, 0xe7,
+	0xdc, 0x85, 0xe6, 0x2e, 0x0a, 0xee, 0x62, 0xd8, 0x1e, 0x95, 0x75, 0xcc, 0xeb, 0x3f, 0x01, 0x00,
+	0x00, 0xff, 0xff, 0xd4, 0x2e, 0xb9, 0xbb, 0x8f, 0x04, 0x00, 0x00,
+}
diff --git a/googleapis/cloud/recommendationengine/v1beta1/catalog.pb.go b/googleapis/cloud/recommendationengine/v1beta1/catalog.pb.go
index f5000d7..67e8587 100644
--- a/googleapis/cloud/recommendationengine/v1beta1/catalog.pb.go
+++ b/googleapis/cloud/recommendationengine/v1beta1/catalog.pb.go
@@ -8,6 +8,7 @@
 	math "math"
 
 	proto "github.com/golang/protobuf/proto"
+	_ "github.com/golang/protobuf/ptypes/struct"
 	_ "google.golang.org/genproto/googleapis/api/annotations"
 )
 
@@ -301,7 +302,7 @@
 	// Required if the price is set. Currency code for price/costs. Use
 	// three-character ISO-4217 code.
 	CurrencyCode string `protobuf:"bytes,4,opt,name=currency_code,json=currencyCode,proto3" json:"currency_code,omitempty"`
-	// Optional. Stock state of the catalog item. Default is `IN_STOCK`.
+	// Optional. Online stock state of the catalog item. Default is `IN_STOCK`.
 	StockState ProductCatalogItem_StockState `protobuf:"varint,5,opt,name=stock_state,json=stockState,proto3,enum=google.cloud.recommendationengine.v1beta1.ProductCatalogItem_StockState" json:"stock_state,omitempty"`
 	// Optional. The available quantity of the item.
 	AvailableQuantity int64 `protobuf:"varint,6,opt,name=available_quantity,json=availableQuantity,proto3" json:"available_quantity,omitempty"`
@@ -603,58 +604,61 @@
 }
 
 var fileDescriptor_988daa8a4f3967d9 = []byte{
-	// 837 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x55, 0x51, 0x6f, 0xdb, 0x36,
-	0x10, 0x8e, 0xe5, 0x38, 0x69, 0xce, 0x4e, 0xea, 0x32, 0xed, 0x26, 0x78, 0xc3, 0x60, 0x78, 0x18,
-	0x90, 0x3d, 0xcc, 0x6e, 0x53, 0x6c, 0x2b, 0x36, 0xec, 0x21, 0x71, 0x9d, 0xda, 0x28, 0xda, 0x64,
-	0x74, 0x02, 0x0c, 0x03, 0x56, 0x81, 0xa1, 0x0e, 0x32, 0x1b, 0x89, 0xd4, 0x28, 0x2a, 0xab, 0xb1,
-	0xff, 0xb7, 0xfd, 0xad, 0x81, 0x14, 0xed, 0x78, 0x4b, 0x1e, 0x62, 0xac, 0x6f, 0xbc, 0x3b, 0xde,
-	0xf7, 0x7d, 0xe4, 0x7d, 0xa2, 0xe0, 0xfb, 0x44, 0xa9, 0x24, 0xc5, 0x01, 0x4f, 0x55, 0x19, 0x0f,
-	0x34, 0x72, 0x95, 0x65, 0x28, 0x63, 0x66, 0x84, 0x92, 0x28, 0x13, 0x21, 0x71, 0x70, 0xfd, 0xec,
-	0x12, 0x0d, 0x7b, 0x36, 0xe0, 0xcc, 0xb0, 0x54, 0x25, 0xfd, 0x5c, 0x2b, 0xa3, 0xc8, 0xd7, 0x55,
-	0x63, 0xdf, 0x35, 0xf6, 0xef, 0x6a, 0xec, 0xfb, 0xc6, 0xce, 0xe7, 0x9e, 0x83, 0xe5, 0x62, 0xc0,
-	0xa4, 0x54, 0xc6, 0x6d, 0x2a, 0x2a, 0xa0, 0xce, 0x77, 0x6b, 0x28, 0x50, 0x59, 0xa6, 0x64, 0xd5,
-	0xd7, 0xfb, 0x7b, 0x13, 0x9a, 0xc3, 0x4a, 0xd2, 0xc4, 0x60, 0x46, 0xf6, 0x20, 0x10, 0x71, 0x58,
-	0xeb, 0xd6, 0x0e, 0x76, 0x68, 0x20, 0x62, 0xf2, 0x27, 0x3c, 0xe6, 0xcc, 0x60, 0xa2, 0xf4, 0x3c,
-	0x9a, 0x09, 0xd4, 0x4c, 0xf3, 0x99, 0xc0, 0x22, 0x0c, 0xba, 0xf5, 0x83, 0xe6, 0xe1, 0xb8, 0x7f,
-	0x6f, 0xfd, 0xfd, 0x15, 0x16, 0xbb, 0x76, 0x90, 0x63, 0x8f, 0x38, 0xa7, 0xfb, 0xfc, 0x3f, 0x29,
-	0x81, 0x05, 0x79, 0x0c, 0x0d, 0x23, 0x4c, 0x8a, 0x61, 0xdd, 0xe9, 0xa9, 0x02, 0xd2, 0x85, 0x66,
-	0x8c, 0x05, 0xd7, 0x22, 0xb7, 0x2c, 0xe1, 0xa6, 0xab, 0xad, 0xa6, 0xc8, 0x3b, 0x78, 0x28, 0x0c,
-	0x66, 0x11, 0x33, 0x46, 0x8b, 0xcb, 0xd2, 0x60, 0x11, 0x36, 0xba, 0xb5, 0x83, 0xe6, 0xe1, 0xb7,
-	0x6b, 0xe8, 0x3d, 0x41, 0x66, 0x4a, 0x8d, 0x6f, 0x58, 0x4e, 0xf7, 0x2c, 0xda, 0xd1, 0x12, 0x8c,
-	0x7c, 0x09, 0xbb, 0x29, 0x93, 0x49, 0xc9, 0x12, 0x8c, 0xb8, 0x8a, 0x31, 0xdc, 0x72, 0x1a, 0x5a,
-	0x8b, 0xe4, 0x50, 0xc5, 0x48, 0x08, 0x6c, 0x1a, 0x96, 0x14, 0xe1, 0x83, 0x6e, 0xfd, 0x60, 0x87,
-	0xba, 0x35, 0xe9, 0xc1, 0xae, 0x13, 0x96, 0x68, 0x55, 0xe6, 0x91, 0x88, 0xc3, 0x9d, 0x4a, 0xbc,
-	0x4d, 0xbe, 0xb2, 0xb9, 0x49, 0x4c, 0xde, 0x43, 0x3b, 0xd7, 0x2a, 0x2e, 0xb9, 0x89, 0x32, 0x34,
-	0x2c, 0x66, 0x86, 0x85, 0xe0, 0xd4, 0xff, 0xb4, 0x86, 0xfa, 0xb3, 0x0a, 0x62, 0xe5, 0xd2, 0xc7,
-	0x1b, 0xf4, 0xa1, 0x07, 0x7e, 0xe3, 0x71, 0x3b, 0xcf, 0xe1, 0xd1, 0xad, 0x51, 0x90, 0x2f, 0x00,
-	0xfc, 0x30, 0xec, 0xa0, 0x6b, 0x4e, 0xfe, 0x4a, 0xe6, 0xf8, 0x09, 0xec, 0xff, 0x9b, 0x3a, 0x32,
-	0xf3, 0x1c, 0x7b, 0x7f, 0x6d, 0x03, 0xb9, 0xcd, 0x4a, 0xae, 0xa0, 0x89, 0x1f, 0x18, 0x37, 0x51,
-	0xae, 0x05, 0x47, 0xe7, 0xac, 0xf5, 0x7c, 0x73, 0x1b, 0xb3, 0x3f, 0xb2, 0x80, 0x67, 0x16, 0x6f,
-	0xbc, 0x41, 0x01, 0x97, 0x91, 0x25, 0x73, 0x34, 0x91, 0x66, 0x32, 0xc1, 0x30, 0xf8, 0x18, 0x64,
-	0x0e, 0x99, 0x5a, 0x3c, 0x4b, 0x96, 0x2f, 0x23, 0xf2, 0x0e, 0x1a, 0x5c, 0x15, 0xa6, 0x08, 0xeb,
-	0x6b, 0x7f, 0x0b, 0x77, 0xd0, 0x0c, 0x2d, 0xd4, 0x48, 0x1a, 0x3d, 0xa7, 0x15, 0xac, 0x75, 0x19,
-	0x2f, 0xb5, 0x46, 0xc9, 0xe7, 0x95, 0xcb, 0x2a, 0xa7, 0xb7, 0x16, 0x49, 0xe7, 0x32, 0x01, 0xcd,
-	0xc2, 0x28, 0x7e, 0x15, 0x15, 0x86, 0x19, 0x74, 0x36, 0xdf, 0xfb, 0xbf, 0x52, 0xa6, 0x16, 0x70,
-	0x6a, 0xf1, 0x28, 0x14, 0xcb, 0x35, 0xf9, 0x06, 0x08, 0xbb, 0x66, 0x22, 0x65, 0x97, 0x29, 0x46,
-	0xbf, 0x97, 0x4c, 0x1a, 0x61, 0xe6, 0xce, 0xfa, 0x75, 0xfa, 0x68, 0x59, 0xf9, 0xd9, 0x17, 0xc8,
-	0x21, 0x3c, 0xe1, 0x4c, 0x2a, 0x29, 0x38, 0x4b, 0xa3, 0x85, 0xa3, 0x4b, 0x2d, 0xc2, 0x6d, 0x77,
-	0x8c, 0xfd, 0x65, 0xd1, 0x2b, 0xb8, 0xd0, 0x82, 0x8c, 0x61, 0x4b, 0x64, 0x2c, 0xc1, 0xea, 0xab,
-	0x69, 0x1e, 0x3e, 0x5d, 0xe3, 0x20, 0x13, 0xdb, 0x48, 0x7d, 0x7f, 0xe7, 0x17, 0x80, 0x1b, 0x97,
-	0xd8, 0xab, 0x8c, 0x45, 0x91, 0xa7, 0x6c, 0xbe, 0x62, 0xc3, 0x80, 0xb6, 0x7c, 0xb2, 0xda, 0xf4,
-	0x15, 0xec, 0x29, 0x2d, 0x12, 0x21, 0x9d, 0x5e, 0xbb, 0x2b, 0x70, 0xbb, 0x76, 0x17, 0x59, 0xb7,
-	0xad, 0xf3, 0x14, 0xe0, 0xc6, 0x12, 0xa4, 0x0d, 0xf5, 0x4c, 0x48, 0x8f, 0x67, 0x97, 0x2e, 0xc3,
-	0x3e, 0xf8, 0x5e, 0xbb, 0xec, 0xbc, 0x00, 0xb8, 0x99, 0xae, 0xad, 0x5f, 0xe1, 0xdc, 0x3f, 0xb1,
-	0x76, 0x69, 0x9f, 0xb9, 0x6b, 0x96, 0x96, 0x0b, 0xbe, 0x2a, 0xf8, 0x21, 0x78, 0x51, 0xeb, 0xbd,
-	0x07, 0xb8, 0x19, 0x06, 0xf9, 0x0c, 0x3e, 0x9d, 0x9e, 0x9f, 0x0e, 0x5f, 0x47, 0xd3, 0xf3, 0xa3,
-	0xf3, 0x51, 0x74, 0xf1, 0x76, 0x7a, 0x36, 0x1a, 0x4e, 0x4e, 0x26, 0xa3, 0x97, 0xed, 0x0d, 0xd2,
-	0x82, 0x07, 0x93, 0xb7, 0x91, 0xab, 0xb7, 0x37, 0x48, 0x1b, 0x5a, 0xa7, 0x17, 0xe7, 0xd1, 0xe9,
-	0x89, 0xcf, 0xd4, 0x6c, 0xfd, 0x8c, 0x8e, 0x4e, 0xe9, 0xcb, 0x11, 0x6d, 0x07, 0x64, 0x17, 0x76,
-	0x8e, 0x8f, 0x86, 0xaf, 0xab, 0xb0, 0xde, 0x09, 0xda, 0xb5, 0xe3, 0x6d, 0x68, 0xb8, 0x53, 0xf7,
-	0x5e, 0x41, 0xc3, 0xdd, 0xa5, 0x55, 0x6a, 0xe7, 0xe5, 0x95, 0x96, 0x5a, 0x90, 0x4f, 0x60, 0x6b,
-	0x86, 0x22, 0x99, 0x19, 0x27, 0xb5, 0x41, 0x7d, 0x64, 0x4f, 0xf0, 0x87, 0x88, 0xcd, 0xcc, 0x3d,
-	0xd4, 0x0d, 0x5a, 0x05, 0xc7, 0xd1, 0xaf, 0xbf, 0xf9, 0xf1, 0x25, 0xca, 0x3e, 0x8d, 0x7d, 0xa5,
-	0x93, 0x41, 0x82, 0xd2, 0xfd, 0x79, 0x06, 0x55, 0x89, 0xe5, 0xa2, 0xb8, 0xc7, 0x4f, 0xeb, 0xc7,
-	0xbb, 0x8a, 0x97, 0x5b, 0x0e, 0xe9, 0xf9, 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xff, 0xaf, 0x77,
-	0xb8, 0x7f, 0x07, 0x00, 0x00,
+	// 887 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x55, 0xdd, 0x6e, 0x1b, 0x45,
+	0x14, 0x8e, 0xd7, 0x71, 0xd2, 0x1c, 0x3b, 0xa9, 0x3b, 0x69, 0x61, 0x65, 0x10, 0xb2, 0x8c, 0x90,
+	0xd2, 0x8b, 0xda, 0x4d, 0x2a, 0xa0, 0x02, 0x71, 0x11, 0xbb, 0x9b, 0xd8, 0xaa, 0xda, 0x98, 0x71,
+	0x82, 0x10, 0x12, 0x5d, 0x8d, 0x67, 0x87, 0xf5, 0x34, 0xbb, 0x3b, 0xcb, 0xec, 0x6c, 0xa8, 0xc5,
+	0xdb, 0x70, 0xc9, 0x73, 0x20, 0x78, 0x2d, 0x34, 0x3f, 0x76, 0x5c, 0x92, 0x8b, 0x58, 0xf4, 0xee,
+	0xfc, 0x7e, 0xdf, 0x37, 0x73, 0xce, 0xce, 0xc2, 0xd7, 0xb1, 0x10, 0x71, 0xc2, 0x7a, 0x34, 0x11,
+	0x65, 0xd4, 0x93, 0x8c, 0x8a, 0x34, 0x65, 0x59, 0x44, 0x14, 0x17, 0x19, 0xcb, 0x62, 0x9e, 0xb1,
+	0xde, 0xd5, 0xe1, 0x94, 0x29, 0x72, 0xd8, 0xa3, 0x44, 0x91, 0x44, 0xc4, 0xdd, 0x5c, 0x0a, 0x25,
+	0xd0, 0x63, 0xdb, 0xd8, 0x35, 0x8d, 0xdd, 0xdb, 0x1a, 0xbb, 0xae, 0xb1, 0xf5, 0xa9, 0xe3, 0x20,
+	0x39, 0xef, 0x91, 0x2c, 0x13, 0xca, 0x14, 0x15, 0x16, 0xa8, 0xf5, 0xd5, 0x1a, 0x0a, 0x44, 0x9a,
+	0x8a, 0xcc, 0xf5, 0x2d, 0x50, 0x8d, 0x37, 0x2d, 0x7f, 0xe9, 0x15, 0x4a, 0x96, 0x54, 0xd9, 0x6c,
+	0xe7, 0x9f, 0x4d, 0xa8, 0x0f, 0xac, 0xe0, 0x91, 0x62, 0x29, 0xda, 0x03, 0x8f, 0x47, 0x7e, 0xa5,
+	0x5d, 0x39, 0xd8, 0xc1, 0x1e, 0x8f, 0xd0, 0xef, 0xf0, 0x90, 0x12, 0xc5, 0x62, 0x21, 0xe7, 0xe1,
+	0x8c, 0x33, 0x49, 0x24, 0x9d, 0x71, 0x56, 0xf8, 0x5e, 0xbb, 0x7a, 0x50, 0x3f, 0x1a, 0x76, 0xef,
+	0x7c, 0xba, 0xee, 0x0a, 0x8b, 0xb6, 0x0d, 0xe4, 0xd0, 0x21, 0xce, 0xf1, 0x3e, 0xfd, 0x4f, 0x88,
+	0xb3, 0x02, 0x3d, 0x84, 0x9a, 0xe2, 0x2a, 0x61, 0x7e, 0xd5, 0xe8, 0xb1, 0x0e, 0x6a, 0x43, 0x3d,
+	0x62, 0x05, 0x95, 0x3c, 0xd7, 0x2c, 0xfe, 0xa6, 0xc9, 0xad, 0x86, 0xd0, 0x1b, 0xb8, 0xcf, 0x15,
+	0x4b, 0x43, 0xa2, 0x94, 0xe4, 0xd3, 0x52, 0xb1, 0xc2, 0xaf, 0xb5, 0x2b, 0x07, 0xf5, 0xa3, 0x2f,
+	0xd7, 0xd0, 0x7b, 0xc2, 0x88, 0x2a, 0x25, 0x7b, 0x45, 0x72, 0xbc, 0xa7, 0xd1, 0x8e, 0x97, 0x60,
+	0xe8, 0x73, 0xd8, 0x4d, 0x48, 0x16, 0x97, 0x24, 0x66, 0x21, 0x15, 0x11, 0xf3, 0xb7, 0x8c, 0x86,
+	0xc6, 0x22, 0x38, 0x10, 0x11, 0x43, 0x08, 0x36, 0x15, 0x89, 0x0b, 0xff, 0x5e, 0xbb, 0x7a, 0xb0,
+	0x83, 0x8d, 0x8d, 0x3a, 0xb0, 0x6b, 0x84, 0xc5, 0x52, 0x94, 0x79, 0xc8, 0x23, 0x7f, 0xc7, 0x8a,
+	0xd7, 0xc1, 0x53, 0x1d, 0x1b, 0x45, 0xe8, 0x2d, 0x34, 0x73, 0x29, 0xa2, 0x92, 0xaa, 0x30, 0x65,
+	0x8a, 0x44, 0x44, 0x11, 0x1f, 0x8c, 0xfa, 0xef, 0xd6, 0x50, 0x3f, 0xb6, 0x10, 0x2b, 0x97, 0x3e,
+	0xdc, 0xc0, 0xf7, 0x1d, 0xf0, 0x2b, 0x87, 0xdb, 0x7a, 0x06, 0x0f, 0x6e, 0x8c, 0x02, 0x7d, 0x06,
+	0xe0, 0x86, 0xa1, 0x07, 0x5d, 0x31, 0xf2, 0x57, 0x22, 0xfd, 0x47, 0xb0, 0xff, 0x3e, 0x75, 0xa8,
+	0xe6, 0x39, 0xeb, 0xfc, 0xbd, 0x0d, 0xe8, 0x26, 0x2b, 0xba, 0x84, 0x3a, 0x7b, 0x47, 0xa8, 0x0a,
+	0x73, 0xc9, 0x29, 0x33, 0x9b, 0xb5, 0xde, 0xde, 0xdc, 0xc4, 0xec, 0x06, 0x1a, 0x70, 0xac, 0xf1,
+	0x86, 0x1b, 0x18, 0xd8, 0xd2, 0xd3, 0x64, 0x86, 0x26, 0x94, 0x24, 0x8b, 0x99, 0xef, 0x7d, 0x08,
+	0x32, 0x83, 0x8c, 0x35, 0x9e, 0x26, 0xcb, 0x97, 0x1e, 0x7a, 0x03, 0x35, 0x2a, 0x0a, 0x55, 0xf8,
+	0xd5, 0xb5, 0xbf, 0x85, 0x5b, 0x68, 0x06, 0x1a, 0x2a, 0xc8, 0x94, 0x9c, 0x63, 0x0b, 0xab, 0xb7,
+	0x8c, 0x96, 0x52, 0xb2, 0x8c, 0xce, 0xed, 0x96, 0xd9, 0x4d, 0x6f, 0x2c, 0x82, 0x66, 0xcb, 0x38,
+	0xd4, 0x0b, 0x25, 0xe8, 0x65, 0x58, 0x28, 0xa2, 0x98, 0x59, 0xf3, 0xbd, 0xff, 0x2b, 0x65, 0xa2,
+	0x01, 0x27, 0x1a, 0x0f, 0x43, 0xb1, 0xb4, 0xd1, 0x13, 0x40, 0xe4, 0x8a, 0xf0, 0x84, 0x4c, 0x13,
+	0x16, 0xfe, 0x5a, 0x92, 0x4c, 0x71, 0x35, 0x37, 0xab, 0x5f, 0xc5, 0x0f, 0x96, 0x99, 0xef, 0x5d,
+	0x02, 0x1d, 0xc1, 0x23, 0x4a, 0x32, 0x91, 0x71, 0x4a, 0x92, 0x70, 0xb1, 0xd1, 0xa5, 0xe4, 0xfe,
+	0xb6, 0x39, 0xc6, 0xfe, 0x32, 0xe9, 0x14, 0x5c, 0x48, 0x8e, 0x86, 0xb0, 0xc5, 0x53, 0x12, 0x33,
+	0xfb, 0xd5, 0xd4, 0x8f, 0x9e, 0xae, 0x71, 0x90, 0x91, 0x6e, 0xc4, 0xae, 0xbf, 0xf5, 0x23, 0xc0,
+	0xf5, 0x96, 0xe8, 0xab, 0x8c, 0x78, 0x91, 0x27, 0x64, 0xbe, 0xb2, 0x86, 0x1e, 0x6e, 0xb8, 0xa0,
+	0x2d, 0xfa, 0x02, 0xf6, 0x84, 0xe4, 0x31, 0xcf, 0x8c, 0x5e, 0x5d, 0xe5, 0x99, 0xaa, 0xdd, 0x45,
+	0xd4, 0x94, 0xb5, 0x9e, 0x02, 0x5c, 0xaf, 0x04, 0x6a, 0x42, 0x35, 0xe5, 0x99, 0xc3, 0xd3, 0xa6,
+	0x89, 0x90, 0x77, 0xae, 0x57, 0x9b, 0xad, 0xe7, 0x00, 0xd7, 0xd3, 0xd5, 0xf9, 0x4b, 0x36, 0x77,
+	0x4f, 0xac, 0x36, 0xf5, 0x33, 0x77, 0x45, 0x92, 0x72, 0xc1, 0x67, 0x9d, 0x6f, 0xbc, 0xe7, 0x95,
+	0xce, 0x5b, 0x80, 0xeb, 0x61, 0xa0, 0x4f, 0xe0, 0xe3, 0xc9, 0xf9, 0xd9, 0xe0, 0x65, 0x38, 0x39,
+	0x3f, 0x3e, 0x0f, 0xc2, 0x8b, 0xd7, 0x93, 0x71, 0x30, 0x18, 0x9d, 0x8c, 0x82, 0x17, 0xcd, 0x0d,
+	0xd4, 0x80, 0x7b, 0xa3, 0xd7, 0xa1, 0xc9, 0x37, 0x37, 0x50, 0x13, 0x1a, 0x67, 0x17, 0xe7, 0xe1,
+	0xd9, 0x89, 0x8b, 0x54, 0x74, 0x7e, 0x8c, 0x83, 0x33, 0xfc, 0x22, 0xc0, 0x4d, 0x0f, 0xed, 0xc2,
+	0x4e, 0xff, 0x78, 0xf0, 0xd2, 0xba, 0xd5, 0x96, 0xd7, 0xac, 0xf4, 0xb7, 0xa1, 0x66, 0x4e, 0xdd,
+	0x39, 0x85, 0x9a, 0xb9, 0x4b, 0xad, 0x54, 0xcf, 0xcb, 0x29, 0x2d, 0x25, 0x47, 0x1f, 0xc1, 0xd6,
+	0x8c, 0xf1, 0x78, 0xa6, 0x8c, 0xd4, 0x1a, 0x76, 0x9e, 0x3e, 0xc1, 0x6f, 0x3c, 0x52, 0x33, 0xf3,
+	0x50, 0xd7, 0xb0, 0x75, 0xfa, 0x7f, 0x55, 0xe0, 0x09, 0x15, 0xe9, 0xdd, 0x67, 0x38, 0xae, 0xfc,
+	0xf4, 0xb3, 0x2b, 0x8e, 0x85, 0x7e, 0x4c, 0xbb, 0x42, 0xc6, 0xbd, 0x98, 0x65, 0xe6, 0x5f, 0xd5,
+	0xb3, 0x29, 0x92, 0xf3, 0xe2, 0x0e, 0x3f, 0xc1, 0x6f, 0x6f, 0x4b, 0xfe, 0xe1, 0xd5, 0x70, 0x30,
+	0x38, 0x1e, 0xfd, 0xe9, 0x3d, 0x3e, 0xb5, 0x3c, 0x03, 0x23, 0x0a, 0xbf, 0x57, 0x1b, 0x58, 0x51,
+	0x3f, 0x1c, 0xf6, 0x35, 0xd0, 0x74, 0xcb, 0xb0, 0x3f, 0xfb, 0x37, 0x00, 0x00, 0xff, 0xff, 0xed,
+	0x19, 0x86, 0x94, 0x03, 0x08, 0x00, 0x00,
 }
diff --git a/googleapis/cloud/recommendationengine/v1beta1/catalog_service.pb.go b/googleapis/cloud/recommendationengine/v1beta1/catalog_service.pb.go
index bcf749e..230e20b 100644
--- a/googleapis/cloud/recommendationengine/v1beta1/catalog_service.pb.go
+++ b/googleapis/cloud/recommendationengine/v1beta1/catalog_service.pb.go
@@ -361,55 +361,57 @@
 }
 
 var fileDescriptor_5d69b5a822db872f = []byte{
-	// 760 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x56, 0x5f, 0x4f, 0xd4, 0x4a,
-	0x14, 0x4f, 0x81, 0x4b, 0x2e, 0xb3, 0xc0, 0xbd, 0x4c, 0x72, 0xa1, 0x59, 0x2e, 0xc9, 0xa6, 0x24,
-	0x06, 0xd7, 0xd8, 0x09, 0x6b, 0x82, 0x09, 0xc4, 0x08, 0x2c, 0x8a, 0x24, 0x18, 0xc9, 0xe2, 0x9f,
-	0xa8, 0x31, 0x9b, 0xa1, 0x7b, 0xb6, 0x54, 0xda, 0x99, 0xda, 0x99, 0x05, 0xc5, 0xf0, 0x62, 0xe2,
-	0x93, 0xf1, 0xc9, 0x0f, 0xe0, 0xf7, 0xf0, 0x03, 0xf8, 0x60, 0xe2, 0x8b, 0xfa, 0x11, 0x34, 0xf1,
-	0x63, 0x98, 0x4e, 0x5b, 0xe9, 0xee, 0x76, 0xc3, 0x96, 0x8d, 0x6f, 0x9d, 0x39, 0x67, 0x7e, 0xf3,
-	0x3b, 0xe7, 0xfc, 0xce, 0xe9, 0xa0, 0xeb, 0x36, 0xe7, 0xb6, 0x0b, 0xc4, 0x72, 0x79, 0xab, 0x41,
-	0x02, 0xb0, 0xb8, 0xe7, 0x01, 0x6b, 0x50, 0xe9, 0x70, 0x06, 0xcc, 0x76, 0x18, 0x90, 0xc3, 0xc5,
-	0x3d, 0x90, 0x74, 0x91, 0x58, 0x54, 0x52, 0x97, 0xdb, 0x75, 0x01, 0xc1, 0xa1, 0x63, 0x81, 0xe9,
-	0x07, 0x5c, 0x72, 0x7c, 0x31, 0x02, 0x30, 0x15, 0x80, 0x99, 0x05, 0x60, 0xc6, 0x00, 0xc5, 0xff,
-	0xe3, 0xbb, 0xa8, 0xef, 0x10, 0xca, 0x18, 0x97, 0xca, 0x49, 0x44, 0x40, 0xc5, 0x99, 0x94, 0xd5,
-	0x72, 0x1d, 0x60, 0x32, 0x36, 0x5c, 0xcd, 0x4d, 0x31, 0x3e, 0xb8, 0xd4, 0xff, 0x41, 0xc7, 0xf3,
-	0x79, 0x90, 0x5c, 0x38, 0x1f, 0x9f, 0x73, 0x39, 0xb3, 0x83, 0x16, 0x63, 0x0e, 0xb3, 0x09, 0xf7,
-	0x21, 0x68, 0xa3, 0x3b, 0x1b, 0x3b, 0xa9, 0xd5, 0x5e, 0xab, 0x49, 0xc0, 0xf3, 0xe5, 0x8b, 0xd8,
-	0x58, 0xea, 0x34, 0x36, 0x1d, 0x70, 0x1b, 0x75, 0x8f, 0x8a, 0x83, 0xc8, 0xc3, 0x78, 0xab, 0x21,
-	0xbd, 0x1a, 0x00, 0x95, 0x50, 0x8d, 0x38, 0x6f, 0x49, 0xf0, 0x6a, 0xf0, 0xac, 0x05, 0x42, 0xe2,
-	0x69, 0x34, 0xea, 0xd3, 0x00, 0x98, 0xd4, 0xb5, 0x92, 0xb6, 0x30, 0x56, 0x8b, 0x57, 0xf8, 0x21,
-	0x1a, 0x4f, 0x8a, 0xe0, 0x48, 0xf0, 0xf4, 0xa1, 0x92, 0xb6, 0x50, 0xa8, 0x2c, 0x99, 0x7d, 0x97,
-	0xc0, 0x4c, 0x5f, 0x56, 0xb0, 0x4e, 0x17, 0xc6, 0x25, 0xf4, 0xdf, 0x26, 0xc8, 0x0c, 0x2e, 0x18,
-	0x8d, 0x30, 0xea, 0x41, 0xcc, 0x44, 0x7d, 0x1b, 0xaf, 0x35, 0x34, 0xb3, 0xed, 0x88, 0xb4, 0xbb,
-	0x38, 0x8b, 0xfb, 0x2c, 0x1a, 0xf3, 0xa9, 0x0d, 0x75, 0xe1, 0x1c, 0x83, 0x22, 0xfe, 0x57, 0xed,
-	0xef, 0x70, 0x63, 0xd7, 0x39, 0x06, 0x3c, 0x87, 0x90, 0x32, 0x4a, 0x7e, 0x00, 0x4c, 0x1f, 0x56,
-	0x07, 0x95, 0xfb, 0xdd, 0x70, 0x23, 0xc4, 0x6c, 0x3a, 0xae, 0x84, 0x40, 0x1f, 0x89, 0x30, 0xa3,
-	0x95, 0xf1, 0x5e, 0x43, 0x7a, 0x37, 0x0f, 0xe1, 0x73, 0x26, 0x00, 0x3f, 0x46, 0x13, 0xe9, 0x64,
-	0x09, 0x5d, 0x2b, 0x0d, 0x0f, 0x90, 0xad, 0xf1, 0x54, 0xb6, 0x04, 0xbe, 0x80, 0xfe, 0x61, 0xf0,
-	0x5c, 0xd6, 0x53, 0xac, 0x87, 0x14, 0xb5, 0x89, 0x70, 0x7b, 0x27, 0x61, 0x6e, 0x7c, 0xd4, 0x90,
-	0x7e, 0xcf, 0x6f, 0x64, 0x97, 0x39, 0x23, 0xb5, 0x7f, 0xb0, 0xc4, 0x78, 0x05, 0x15, 0x5a, 0x8a,
-	0x8a, 0xd2, 0xa1, 0xca, 0x72, 0xa1, 0x52, 0x4c, 0x90, 0x13, 0xa9, 0x9a, 0x37, 0x43, 0xa9, 0xde,
-	0xa6, 0xe2, 0xa0, 0x86, 0x22, 0xf7, 0xf0, 0xdb, 0x30, 0x91, 0xbe, 0x01, 0x2e, 0xf4, 0x1b, 0x47,
-	0xe5, 0x4d, 0x01, 0x4d, 0xc6, 0xae, 0xbb, 0xd1, 0xbc, 0xc0, 0x3f, 0x35, 0x34, 0xd5, 0x25, 0x79,
-	0x5c, 0xcd, 0x13, 0x5a, 0x8f, 0x86, 0x29, 0x9e, 0x33, 0x3f, 0xc6, 0xfd, 0x57, 0x5f, 0xbf, 0xbf,
-	0x1b, 0xda, 0x31, 0x56, 0x7f, 0x0f, 0x82, 0x97, 0x91, 0x5c, 0xaf, 0xf9, 0x01, 0x7f, 0x0a, 0x96,
-	0x14, 0xa4, 0x4c, 0x5c, 0x6e, 0x45, 0x9d, 0x4f, 0xca, 0xc9, 0x80, 0x11, 0xa4, 0x7c, 0x42, 0xd2,
-	0x82, 0x58, 0x6e, 0xab, 0x1a, 0xfe, 0xa6, 0xa1, 0xc9, 0xf6, 0x76, 0xc2, 0xab, 0x39, 0x28, 0x66,
-	0x76, 0xe2, 0xb9, 0x83, 0xbc, 0xa5, 0x82, 0x5c, 0xc7, 0xa9, 0x20, 0xc3, 0x12, 0x9d, 0x1d, 0x62,
-	0x5b, 0x84, 0xa4, 0x7c, 0x82, 0x7f, 0x68, 0xe8, 0xdf, 0xce, 0x7e, 0xc3, 0xeb, 0x39, 0x68, 0xf5,
-	0x18, 0x1a, 0xc5, 0xea, 0x40, 0x18, 0x51, 0xc3, 0x67, 0xc5, 0x79, 0xbe, 0x62, 0x2a, 0xa5, 0x76,
-	0x75, 0x6d, 0x2e, 0xa5, 0xf6, 0xea, 0xf9, 0x41, 0x95, 0x5a, 0x19, 0xb8, 0x88, 0x1d, 0x4a, 0xfd,
-	0xa0, 0xa1, 0xa9, 0xae, 0xc6, 0xce, 0x15, 0x6a, 0xaf, 0xb1, 0x50, 0x9c, 0xee, 0x1a, 0x2d, 0x37,
-	0xc2, 0x5f, 0x64, 0x52, 0xa7, 0xf2, 0xe0, 0x7a, 0xfc, 0xac, 0x21, 0xbc, 0xa5, 0xfe, 0xdc, 0x6d,
-	0x8a, 0xdc, 0xc8, 0xc1, 0xbe, 0xfb, 0x78, 0x42, 0x7f, 0x2e, 0x41, 0x49, 0x3d, 0x03, 0xcc, 0x3b,
-	0xc9, 0x33, 0xc0, 0xa8, 0xa9, 0x28, 0xb6, 0x8d, 0xcd, 0x81, 0x47, 0x47, 0xf4, 0xf6, 0x58, 0xd6,
-	0xca, 0xc5, 0x07, 0x9f, 0xd6, 0xe6, 0x33, 0xd9, 0x46, 0x4c, 0xa8, 0xef, 0x08, 0xd3, 0xe2, 0xde,
-	0x97, 0x35, 0x73, 0x5f, 0x4a, 0x5f, 0x2c, 0x13, 0x72, 0x74, 0x74, 0xd4, 0x61, 0x24, 0xb4, 0x25,
-	0xf7, 0xa3, 0x27, 0xcf, 0x65, 0xdf, 0xa5, 0xb2, 0xc9, 0x03, 0x6f, 0xbd, 0xfe, 0xe8, 0x49, 0x1c,
-	0x8c, 0xcd, 0x5d, 0xca, 0x6c, 0x93, 0x07, 0x36, 0xb1, 0x81, 0xa9, 0xca, 0x90, 0x53, 0x80, 0x3e,
-	0x9e, 0x4a, 0x2b, 0x59, 0xc6, 0xbd, 0x51, 0x85, 0x74, 0xe5, 0x57, 0x00, 0x00, 0x00, 0xff, 0xff,
-	0x72, 0x9d, 0x60, 0xe0, 0x4f, 0x0a, 0x00, 0x00,
+	// 798 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x56, 0xd1, 0x6a, 0x33, 0x45,
+	0x14, 0x66, 0xf2, 0xff, 0x7f, 0xb1, 0x93, 0xb6, 0xda, 0x01, 0xdb, 0x25, 0xb5, 0x10, 0xb6, 0x20,
+	0x6d, 0xa4, 0x3b, 0x34, 0x42, 0x85, 0x16, 0xb1, 0x4d, 0x5a, 0x6b, 0xa1, 0x62, 0x49, 0xb5, 0xa2,
+	0x22, 0x61, 0xba, 0x39, 0xd9, 0xae, 0xdd, 0x9d, 0x59, 0x77, 0x26, 0xad, 0x56, 0x7a, 0x23, 0x78,
+	0x25, 0x5e, 0xf9, 0x00, 0x82, 0x97, 0x3e, 0x82, 0xd7, 0xe2, 0x85, 0xe0, 0x8d, 0xfa, 0x08, 0x0a,
+	0x3e, 0x86, 0xec, 0xcc, 0xae, 0xdd, 0x24, 0x1b, 0x9a, 0x34, 0xfc, 0x77, 0x3b, 0x73, 0xce, 0x7c,
+	0xf3, 0x9d, 0x73, 0xbe, 0x73, 0x76, 0xf0, 0x5b, 0x9e, 0x10, 0x5e, 0x00, 0xd4, 0x0d, 0x44, 0xaf,
+	0x43, 0x63, 0x70, 0x45, 0x18, 0x02, 0xef, 0x30, 0xe5, 0x0b, 0x0e, 0xdc, 0xf3, 0x39, 0xd0, 0xeb,
+	0xad, 0x0b, 0x50, 0x6c, 0x8b, 0xba, 0x4c, 0xb1, 0x40, 0x78, 0x6d, 0x09, 0xf1, 0xb5, 0xef, 0x82,
+	0x13, 0xc5, 0x42, 0x09, 0xb2, 0x61, 0x00, 0x1c, 0x0d, 0xe0, 0x14, 0x01, 0x38, 0x29, 0x40, 0xe5,
+	0x95, 0xf4, 0x2e, 0x16, 0xf9, 0x94, 0x71, 0x2e, 0x94, 0x76, 0x92, 0x06, 0xa8, 0xb2, 0x9c, 0xb3,
+	0xba, 0x81, 0x0f, 0x5c, 0xa5, 0x86, 0x37, 0x26, 0xa6, 0x98, 0x1e, 0xdc, 0x1e, 0xff, 0xa0, 0x1f,
+	0x46, 0x22, 0xce, 0x2e, 0x5c, 0x4b, 0xcf, 0x05, 0x82, 0x7b, 0x71, 0x8f, 0x73, 0x9f, 0x7b, 0x54,
+	0x44, 0x10, 0xf7, 0xd1, 0x5d, 0x49, 0x9d, 0xf4, 0xea, 0xa2, 0xd7, 0xa5, 0x10, 0x46, 0xea, 0xcb,
+	0xd4, 0x58, 0x1d, 0x34, 0x76, 0x7d, 0x08, 0x3a, 0xed, 0x90, 0xc9, 0x2b, 0xe3, 0x61, 0x7f, 0x87,
+	0xb0, 0xd5, 0x8c, 0x81, 0x29, 0x68, 0x1a, 0xce, 0xc7, 0x0a, 0xc2, 0x16, 0x7c, 0xde, 0x03, 0xa9,
+	0xc8, 0x12, 0x9e, 0x89, 0x58, 0x0c, 0x5c, 0x59, 0xa8, 0x8a, 0xd6, 0x67, 0x5b, 0xe9, 0x8a, 0x7c,
+	0x84, 0xe7, 0xb2, 0x22, 0xf8, 0x0a, 0x42, 0xab, 0x54, 0x45, 0xeb, 0xe5, 0xfa, 0xb6, 0x33, 0x76,
+	0x09, 0x9c, 0xfc, 0x65, 0x65, 0xf7, 0x7e, 0x61, 0xbf, 0x86, 0x5f, 0x3e, 0x02, 0x55, 0xc0, 0x85,
+	0xe0, 0xa7, 0x9c, 0x85, 0x90, 0x32, 0xd1, 0xdf, 0xf6, 0x37, 0x08, 0x2f, 0x9f, 0xf8, 0x32, 0xef,
+	0x2e, 0x1f, 0xe2, 0xbe, 0x82, 0x67, 0x23, 0xe6, 0x41, 0x5b, 0xfa, 0xb7, 0xa0, 0x89, 0x3f, 0x6b,
+	0xbd, 0x90, 0x6c, 0x9c, 0xf9, 0xb7, 0x40, 0x56, 0x31, 0xd6, 0x46, 0x25, 0xae, 0x80, 0x5b, 0x4f,
+	0xf4, 0x41, 0xed, 0xfe, 0x7e, 0xb2, 0x91, 0x60, 0x76, 0xfd, 0x40, 0x41, 0x6c, 0x3d, 0x35, 0x98,
+	0x66, 0x65, 0xff, 0x80, 0xb0, 0x35, 0xcc, 0x43, 0x46, 0x82, 0x4b, 0x20, 0x9f, 0xe0, 0xf9, 0x7c,
+	0xb2, 0xa4, 0x85, 0xaa, 0x4f, 0xa6, 0xc8, 0xd6, 0x5c, 0x2e, 0x5b, 0x92, 0xbc, 0x8a, 0x5f, 0xe4,
+	0xf0, 0x85, 0x6a, 0xe7, 0x58, 0x97, 0x34, 0xb5, 0xf9, 0x64, 0xfb, 0x34, 0x63, 0x6e, 0xff, 0x8a,
+	0xb0, 0xf5, 0x41, 0xd4, 0x29, 0x2e, 0x73, 0x41, 0x6a, 0x9f, 0x63, 0x89, 0xc9, 0x2e, 0x2e, 0xf7,
+	0x34, 0x15, 0xad, 0x43, 0x9d, 0xe5, 0x72, 0xbd, 0x92, 0x21, 0x67, 0x52, 0x75, 0xde, 0x4e, 0xa4,
+	0xfa, 0x2e, 0x93, 0x57, 0x2d, 0x6c, 0xdc, 0x93, 0x6f, 0xdb, 0xc1, 0xd6, 0x01, 0x04, 0x30, 0x6e,
+	0x1c, 0xf5, 0x6f, 0xcb, 0x78, 0x21, 0x75, 0x3d, 0x33, 0xf3, 0x82, 0xfc, 0x8b, 0xf0, 0xe2, 0x90,
+	0xe4, 0x49, 0x73, 0x92, 0xd0, 0x46, 0x34, 0x4c, 0xe5, 0x91, 0xf9, 0xb1, 0xcf, 0xbf, 0xfe, 0xf3,
+	0xef, 0xef, 0x4b, 0xa7, 0xf6, 0xde, 0xff, 0x83, 0xe0, 0x2b, 0x23, 0xd7, 0x37, 0xa3, 0x58, 0x7c,
+	0x06, 0xae, 0x92, 0xb4, 0x46, 0x03, 0xe1, 0x9a, 0xce, 0xa7, 0xb5, 0x6c, 0xc0, 0x48, 0x5a, 0xbb,
+	0xa3, 0x79, 0x41, 0xec, 0xf4, 0x55, 0x8d, 0xfc, 0x85, 0xf0, 0x42, 0x7f, 0x3b, 0x91, 0xbd, 0x09,
+	0x28, 0x16, 0x76, 0xe2, 0xa3, 0x83, 0x7c, 0x47, 0x07, 0xd9, 0x20, 0xb9, 0x20, 0x93, 0x12, 0x3d,
+	0x1c, 0x62, 0x5f, 0x84, 0xb4, 0x76, 0x47, 0xfe, 0x41, 0xf8, 0xa5, 0xc1, 0x7e, 0x23, 0x8d, 0x09,
+	0x68, 0x8d, 0x18, 0x1a, 0x95, 0xe6, 0x54, 0x18, 0xa6, 0xe1, 0x8b, 0xe2, 0x7c, 0x5c, 0x31, 0xb5,
+	0x52, 0x87, 0xba, 0x76, 0x22, 0xa5, 0x8e, 0xea, 0xf9, 0x69, 0x95, 0x5a, 0x9f, 0xba, 0x88, 0x03,
+	0x4a, 0xfd, 0x19, 0xe1, 0xc5, 0xa1, 0xc6, 0x9e, 0x28, 0xd4, 0x51, 0x63, 0xa1, 0xb2, 0x34, 0x34,
+	0x5a, 0x0e, 0x93, 0x5f, 0x64, 0x56, 0xa7, 0xda, 0xf4, 0x7a, 0xfc, 0x1d, 0x61, 0x72, 0xac, 0xff,
+	0xdc, 0x7d, 0x8a, 0x3c, 0x98, 0x80, 0xfd, 0xf0, 0xf1, 0x8c, 0xfe, 0x6a, 0x86, 0x92, 0x7b, 0x06,
+	0x38, 0xef, 0x65, 0xcf, 0x00, 0xbb, 0xa5, 0xa3, 0x38, 0xb1, 0x8f, 0xa6, 0x1e, 0x1d, 0xe6, 0xed,
+	0xb1, 0x83, 0x6a, 0x95, 0x0f, 0x7f, 0xdb, 0x5f, 0x2b, 0x64, 0x6b, 0x98, 0xb0, 0xc8, 0x97, 0x8e,
+	0x2b, 0xc2, 0x3f, 0xf6, 0x9d, 0x4b, 0xa5, 0x22, 0xb9, 0x43, 0xe9, 0xcd, 0xcd, 0xcd, 0x80, 0x91,
+	0xb2, 0x9e, 0xba, 0x34, 0x4f, 0x9e, 0xcd, 0x28, 0x60, 0xaa, 0x2b, 0xe2, 0xb0, 0xf1, 0x0b, 0xc2,
+	0x9b, 0xae, 0x08, 0xc7, 0xcf, 0xcb, 0x29, 0xfa, 0xf8, 0xd3, 0xd4, 0xd9, 0x13, 0x01, 0xe3, 0x9e,
+	0x23, 0x62, 0x8f, 0x7a, 0xc0, 0x75, 0x2d, 0xe9, 0xfd, 0x95, 0x63, 0x3c, 0xae, 0x76, 0x8b, 0x8c,
+	0x3f, 0x96, 0x9e, 0xb5, 0x0e, 0x9b, 0xfb, 0xc7, 0x3f, 0x95, 0x36, 0x8e, 0xcc, 0x3d, 0x4d, 0x4d,
+	0xaa, 0xd5, 0xe7, 0x7b, 0x68, 0x48, 0x9d, 0x6f, 0x35, 0x12, 0xa0, 0x8b, 0x19, 0x7d, 0xfb, 0xeb,
+	0xff, 0x05, 0x00, 0x00, 0xff, 0xff, 0x2a, 0x97, 0x34, 0xa3, 0xb5, 0x0a, 0x00, 0x00,
 }
 
 // Reference imports to suppress errors if they are not otherwise used.
diff --git a/googleapis/cloud/recommendationengine/v1beta1/common.pb.go b/googleapis/cloud/recommendationengine/v1beta1/common.pb.go
index f5ac677..564bfc9 100644
--- a/googleapis/cloud/recommendationengine/v1beta1/common.pb.go
+++ b/googleapis/cloud/recommendationengine/v1beta1/common.pb.go
@@ -182,27 +182,30 @@
 }
 
 var fileDescriptor_9a5832e177c44eb7 = []byte{
-	// 346 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x93, 0x41, 0x4b, 0x3a, 0x41,
-	0x18, 0xc6, 0x99, 0xf5, 0xff, 0x0f, 0x1c, 0x2f, 0x35, 0x49, 0xc8, 0xd2, 0xc1, 0x3c, 0xd9, 0x65,
-	0x06, 0x0d, 0x22, 0xea, 0x50, 0x14, 0x79, 0x32, 0x0f, 0x46, 0x1d, 0x82, 0x90, 0x71, 0x9d, 0x86,
-	0xa1, 0xf5, 0x7d, 0x97, 0xd9, 0x59, 0x41, 0x3a, 0x75, 0x08, 0xfa, 0xa6, 0x7d, 0x8d, 0x70, 0x77,
-	0xcd, 0xd4, 0x0d, 0xc4, 0xdb, 0xee, 0x3c, 0xef, 0xf3, 0xbc, 0xbf, 0x67, 0xd9, 0xa1, 0xa7, 0x1a,
-	0x51, 0x87, 0x4a, 0x04, 0x21, 0x26, 0x23, 0x61, 0x55, 0x80, 0xe3, 0xb1, 0x82, 0x91, 0x74, 0x06,
-	0x41, 0x81, 0x36, 0xa0, 0xc4, 0xa4, 0x35, 0x54, 0x4e, 0xb6, 0xc4, 0x4c, 0x42, 0xe0, 0x91, 0x45,
-	0x87, 0xec, 0x38, 0xf3, 0xf1, 0xd4, 0xc7, 0x8b, 0x7c, 0x3c, 0xf7, 0xf9, 0x87, 0xf9, 0x0a, 0x19,
-	0x19, 0x21, 0x01, 0xd0, 0xa5, 0x43, 0x71, 0x16, 0xd4, 0xf8, 0xfa, 0x47, 0x69, 0x47, 0x49, 0x97,
-	0x58, 0x75, 0x27, 0x23, 0xf6, 0x4e, 0x68, 0x35, 0x90, 0x4e, 0x69, 0xb4, 0x26, 0x90, 0xe1, 0xe0,
-	0x25, 0x93, 0xe2, 0x1a, 0xa9, 0x97, 0x9a, 0x95, 0x76, 0x8f, 0x6f, 0xbc, 0x97, 0x2f, 0x52, 0xf9,
-	0xcd, 0x22, 0x31, 0x3f, 0x8d, 0x6f, 0xc1, 0xd9, 0x69, 0x7f, 0x3f, 0x58, 0x57, 0xd8, 0x1b, 0x65,
-	0x90, 0x8c, 0xd5, 0x0a, 0x80, 0x97, 0x02, 0x74, 0xb7, 0x03, 0xe8, 0xcd, 0xf3, 0x96, 0xd7, 0xef,
-	0xc1, 0xea, 0xb9, 0xdf, 0xa0, 0xf4, 0xde, 0x59, 0x03, 0xba, 0x6b, 0x62, 0xc7, 0xaa, 0xf4, 0xff,
-	0x44, 0x86, 0x89, 0x4a, 0xeb, 0x97, 0xfb, 0xd9, 0x8b, 0x7f, 0x44, 0xcb, 0x9d, 0x10, 0xa5, 0x5b,
-	0x1f, 0xf1, 0xe6, 0x23, 0x9f, 0x84, 0xd6, 0xfe, 0x6a, 0xcd, 0x76, 0x69, 0xe9, 0x55, 0x4d, 0x6b,
-	0xa4, 0x4e, 0x9a, 0xe5, 0xfe, 0xec, 0x91, 0x3d, 0xce, 0x43, 0xbc, 0x3a, 0x69, 0x56, 0xda, 0x57,
-	0xdb, 0xb5, 0x5c, 0x80, 0xe7, 0x18, 0xe7, 0xde, 0x19, 0xf1, 0x3f, 0x08, 0x3d, 0x28, 0xee, 0x5f,
-	0x00, 0xf2, 0xb0, 0x0c, 0x72, 0xb9, 0x1d, 0xc8, 0xcf, 0xd7, 0xf9, 0xc5, 0x71, 0x3d, 0x78, 0x7a,
-	0xce, 0xc3, 0x34, 0x86, 0x12, 0x34, 0x47, 0xab, 0x85, 0x56, 0x90, 0xfe, 0x87, 0x22, 0x93, 0x64,
-	0x64, 0xe2, 0x0d, 0xee, 0xc2, 0x45, 0x91, 0x38, 0xdc, 0x49, 0x93, 0x4e, 0xbe, 0x03, 0x00, 0x00,
-	0xff, 0xff, 0xda, 0x59, 0x80, 0x3f, 0x54, 0x03, 0x00, 0x00,
+	// 388 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x93, 0xc1, 0x4a, 0xeb, 0x40,
+	0x18, 0x85, 0x99, 0xf4, 0xf6, 0x42, 0xa7, 0x9b, 0x7b, 0x63, 0x91, 0x12, 0x5c, 0xd4, 0xae, 0xda,
+	0x85, 0x13, 0x5a, 0x41, 0x44, 0x17, 0x6a, 0x4b, 0x2b, 0x42, 0x2d, 0x12, 0xb1, 0x0b, 0x41, 0x64,
+	0x9a, 0x8e, 0x43, 0x30, 0x99, 0x3f, 0x24, 0x93, 0x42, 0x71, 0xe5, 0x42, 0xf0, 0x39, 0x5c, 0xfa,
+	0x1c, 0xbe, 0x8b, 0xaf, 0x21, 0x9d, 0x49, 0xad, 0x6d, 0x23, 0x94, 0xee, 0x92, 0x39, 0xe7, 0x3f,
+	0xe7, 0xfb, 0x43, 0x06, 0x1f, 0x70, 0x00, 0xee, 0x33, 0xdb, 0xf5, 0x21, 0x19, 0xd9, 0x11, 0x73,
+	0x21, 0x08, 0x98, 0x18, 0x51, 0xe9, 0x81, 0x60, 0x82, 0x7b, 0x82, 0xd9, 0xe3, 0xc6, 0x90, 0x49,
+	0xda, 0xb0, 0xa7, 0x12, 0x08, 0x12, 0x46, 0x20, 0xc1, 0xac, 0xeb, 0x39, 0xa2, 0xe6, 0x48, 0xd6,
+	0x1c, 0x49, 0xe7, 0xac, 0x9d, 0xb4, 0x82, 0x86, 0x9e, 0x4d, 0x85, 0x00, 0xa9, 0x4c, 0xb1, 0x0e,
+	0xaa, 0x7e, 0xfe, 0xc1, 0xb8, 0xcb, 0xa8, 0x4c, 0x22, 0x76, 0x49, 0x43, 0xf3, 0x19, 0xe1, 0x92,
+	0x4b, 0x25, 0xe3, 0x10, 0x79, 0x2e, 0xf5, 0xef, 0x1f, 0xb4, 0x14, 0x97, 0x51, 0x25, 0x57, 0x2b,
+	0x36, 0xfb, 0x64, 0xed, 0x5e, 0x32, 0x4f, 0x25, 0xed, 0x79, 0x62, 0x7a, 0x1a, 0x77, 0x84, 0x8c,
+	0x26, 0xce, 0x96, 0xbb, 0xaa, 0x98, 0x4f, 0xd8, 0x14, 0x49, 0xc0, 0x96, 0x00, 0x0c, 0x05, 0xd0,
+	0xdb, 0x0c, 0xa0, 0x3f, 0xcb, 0x5b, 0xac, 0xff, 0x2f, 0x96, 0xcf, 0xad, 0x2a, 0xc6, 0xd7, 0x32,
+	0xf2, 0x04, 0xef, 0x79, 0xb1, 0x34, 0x4b, 0x38, 0x3f, 0xa6, 0x7e, 0xc2, 0xd4, 0xfa, 0x05, 0x47,
+	0xbf, 0x58, 0xbb, 0xb8, 0xd0, 0xf5, 0x81, 0xca, 0x55, 0x8b, 0x31, 0xb3, 0xbc, 0x22, 0x5c, 0xfe,
+	0x6d, 0x6b, 0xf3, 0x1f, 0xce, 0x3d, 0xb2, 0x49, 0x19, 0x55, 0x50, 0xad, 0xe0, 0x4c, 0x1f, 0xcd,
+	0xc1, 0x2c, 0xc4, 0xa8, 0xa0, 0x5a, 0xb1, 0x79, 0xba, 0xd9, 0x96, 0x73, 0xf0, 0x14, 0xe3, 0xc8,
+	0x38, 0x44, 0xd6, 0x0b, 0xc2, 0xdb, 0xd9, 0xfb, 0x67, 0x80, 0xdc, 0x2c, 0x82, 0x9c, 0x6c, 0x06,
+	0xf2, 0xfd, 0x75, 0x7e, 0x70, 0xb4, 0x3e, 0x10, 0xde, 0x73, 0x21, 0x58, 0x3f, 0xf1, 0x0a, 0xdd,
+	0xde, 0xa5, 0x66, 0x0e, 0x3e, 0x15, 0x9c, 0x40, 0xc4, 0x6d, 0xce, 0x84, 0xfa, 0x73, 0x6d, 0x2d,
+	0xd1, 0xd0, 0x8b, 0xd7, 0xb8, 0x3d, 0xc7, 0x59, 0xe2, 0x9b, 0x91, 0x77, 0x3a, 0xed, 0xb3, 0x8b,
+	0x77, 0xa3, 0x7e, 0xae, 0x7b, 0xda, 0x0a, 0xca, 0x59, 0xf0, 0x76, 0x34, 0xd4, 0xa0, 0xd1, 0x9a,
+	0x06, 0x0d, 0xff, 0xaa, 0xf6, 0xfd, 0xaf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x24, 0x67, 0x99, 0x49,
+	0xba, 0x03, 0x00, 0x00,
 }
diff --git a/googleapis/cloud/recommendationengine/v1beta1/import.pb.go b/googleapis/cloud/recommendationengine/v1beta1/import.pb.go
index 2c20e18..9f02245 100644
--- a/googleapis/cloud/recommendationengine/v1beta1/import.pb.go
+++ b/googleapis/cloud/recommendationengine/v1beta1/import.pb.go
@@ -741,55 +741,58 @@
 }
 
 var fileDescriptor_152d6e7da409eb0d = []byte{
-	// 794 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x56, 0xdd, 0x8a, 0x23, 0x45,
-	0x14, 0xde, 0x74, 0x34, 0x98, 0xd3, 0xc9, 0x80, 0x1d, 0xb2, 0x1b, 0x83, 0xb2, 0x43, 0x8b, 0xb0,
-	0x7a, 0xd1, 0xcd, 0x8e, 0xb2, 0x0b, 0x0e, 0x8a, 0xce, 0xb8, 0x38, 0xb9, 0x50, 0xa4, 0x63, 0x2e,
-	0x54, 0xa4, 0xa9, 0x74, 0x9f, 0xf4, 0x94, 0x74, 0x57, 0xb5, 0xf5, 0x33, 0x28, 0xfa, 0x0e, 0xe2,
-	0xad, 0x77, 0x3e, 0x86, 0x8f, 0xe3, 0x9b, 0x48, 0x57, 0x55, 0x27, 0x99, 0x4c, 0xc0, 0x64, 0xf0,
-	0x46, 0xf6, 0x2e, 0x75, 0xea, 0x3b, 0xbf, 0xf5, 0x7d, 0x27, 0x0d, 0xcf, 0x0a, 0xce, 0x8b, 0x12,
-	0xe3, 0xac, 0xe4, 0x3a, 0x8f, 0x05, 0x66, 0xbc, 0xaa, 0x90, 0xe5, 0x44, 0x51, 0xce, 0x90, 0x15,
-	0x94, 0x61, 0x7c, 0xf3, 0x74, 0x89, 0x8a, 0x3c, 0x8d, 0x69, 0x55, 0x73, 0xa1, 0xa2, 0x5a, 0x70,
-	0xc5, 0x83, 0x77, 0xad, 0x5f, 0x64, 0xfc, 0xa2, 0x7d, 0x7e, 0x91, 0xf3, 0x9b, 0xbe, 0xe9, 0x52,
-	0x90, 0x9a, 0xc6, 0x84, 0x31, 0xae, 0x0c, 0x48, 0xda, 0x40, 0xd3, 0xc7, 0x5b, 0xb7, 0x2b, 0x8a,
-	0x65, 0x9e, 0x2e, 0xf1, 0x9a, 0xdc, 0x50, 0x2e, 0x1c, 0xe0, 0xf9, 0xe1, 0x15, 0x66, 0x44, 0x91,
-	0x92, 0x17, 0xce, 0xf1, 0xc3, 0xc3, 0x1d, 0xb5, 0x44, 0x91, 0xe2, 0x0d, 0x32, 0xb5, 0x53, 0x95,
-	0x39, 0x2d, 0xf5, 0x2a, 0x56, 0xb4, 0x42, 0xa9, 0x48, 0x55, 0x3b, 0xc0, 0x23, 0x07, 0x10, 0x75,
-	0x16, 0x4b, 0x45, 0x94, 0x76, 0xfd, 0x84, 0xef, 0x41, 0xff, 0xf3, 0x4c, 0xce, 0xb9, 0x16, 0x19,
-	0x06, 0x6f, 0x01, 0x50, 0x56, 0x6b, 0x95, 0x6a, 0x41, 0xe5, 0xa4, 0x73, 0xda, 0x7d, 0xd2, 0x4f,
-	0xfa, 0xc6, 0xb2, 0x10, 0x54, 0x86, 0x02, 0x46, 0x97, 0xb6, 0xe4, 0x19, 0x2b, 0x29, 0x43, 0xe7,
-	0xf5, 0x1d, 0x0c, 0x5d, 0x27, 0x29, 0x55, 0x58, 0x59, 0x47, 0xff, 0xec, 0x59, 0x74, 0xf0, 0xcc,
-	0xa3, 0x36, 0xac, 0xc2, 0x2a, 0x19, 0x64, 0x9b, 0x83, 0x0c, 0x19, 0x8c, 0x17, 0x12, 0xc5, 0x8b,
-	0xa6, 0xd9, 0x5b, 0x59, 0x17, 0xe0, 0x6f, 0xc6, 0xd0, 0xe6, 0xfc, 0xe0, 0x88, 0x9c, 0xeb, 0xb0,
-	0x09, 0xe8, 0xf6, 0xa7, 0x0c, 0x3f, 0x83, 0x60, 0x66, 0x88, 0xf3, 0x42, 0x08, 0x2e, 0xe4, 0x25,
-	0x67, 0x2b, 0x5a, 0x04, 0x8f, 0x01, 0x8a, 0x4c, 0xa6, 0xb5, 0xc0, 0x15, 0xfd, 0x69, 0xd2, 0x39,
-	0xed, 0x3c, 0xe9, 0x5f, 0x3d, 0x48, 0xfa, 0x45, 0x26, 0xbf, 0x32, 0xa6, 0x8b, 0x21, 0xf8, 0x39,
-	0x4a, 0x45, 0x99, 0xc9, 0x14, 0xfe, 0xee, 0xc1, 0x1b, 0x36, 0xcc, 0x56, 0x67, 0x32, 0xc1, 0x1f,
-	0x35, 0x4a, 0x15, 0x3c, 0x84, 0x5e, 0x4d, 0x04, 0x32, 0x65, 0x23, 0x25, 0xee, 0xd4, 0x8c, 0x5f,
-	0x58, 0x48, 0x4a, 0xf3, 0x89, 0x67, 0xee, 0xfa, 0xce, 0x32, 0xcb, 0x83, 0x6f, 0x60, 0x60, 0x5f,
-	0x27, 0x33, 0x45, 0x4d, 0xba, 0xa7, 0x9d, 0x23, 0xc7, 0x3c, 0x6b, 0xdc, 0x6d, 0x4b, 0x89, 0x4f,
-	0x37, 0x87, 0x60, 0x09, 0x43, 0x34, 0xfd, 0xb6, 0xb1, 0x5f, 0x31, 0xb1, 0x3f, 0x3a, 0x26, 0xf6,
-	0x9d, 0xa9, 0x25, 0x03, 0xdc, 0x3a, 0x85, 0xbf, 0x79, 0xf0, 0xc8, 0x82, 0xd6, 0x93, 0x7f, 0xc9,
-	0x27, 0xf2, 0xb7, 0x07, 0xfe, 0x56, 0x01, 0x81, 0x82, 0xf1, 0x5a, 0x48, 0x86, 0xea, 0xa9, 0x34,
-	0x5c, 0x37, 0x43, 0xf1, 0xcf, 0x3e, 0xbe, 0x87, 0xa0, 0xb6, 0x14, 0x73, 0xf5, 0x20, 0x19, 0x65,
-	0x7b, 0xe4, 0xbb, 0xb0, 0xdc, 0x76, 0xa9, 0x3c, 0x93, 0xea, 0x18, 0x1d, 0xad, 0xd7, 0x87, 0x53,
-	0x84, 0x0b, 0xfb, 0x0b, 0x4c, 0x36, 0xfa, 0xdc, 0xe9, 0xc7, 0xbe, 0xd3, 0x27, 0xf7, 0x11, 0xeb,
-	0x4e, 0x47, 0x63, 0xbd, 0xef, 0xe2, 0xe2, 0x35, 0xe8, 0xd9, 0x54, 0xe1, 0x1f, 0x1e, 0x9c, 0xd8,
-	0x87, 0xf8, 0x02, 0x15, 0xc9, 0x89, 0x22, 0xc1, 0x3b, 0x70, 0xc2, 0x6b, 0x14, 0x26, 0x4d, 0xca,
-	0x48, 0x85, 0x93, 0x57, 0x0d, 0xb1, 0x86, 0x6b, 0xeb, 0x97, 0xa4, 0xc2, 0x1d, 0xee, 0x75, 0x77,
-	0xb9, 0x77, 0x0e, 0x7e, 0x26, 0x90, 0x28, 0x4c, 0x9b, 0x5d, 0xeb, 0xe8, 0x31, 0x6d, 0x5b, 0x6a,
-	0x17, 0x71, 0xf4, 0x75, 0xbb, 0x88, 0x13, 0xb0, 0xf0, 0xc6, 0x10, 0xbc, 0x0d, 0x43, 0xa9, 0xb3,
-	0x0c, 0x65, 0x43, 0x2f, 0xed, 0x68, 0xdf, 0x4d, 0x06, 0xce, 0x78, 0xd9, 0xd8, 0x1a, 0xd0, 0x8a,
-	0xd0, 0x52, 0x0b, 0x74, 0x20, 0xcf, 0x82, 0x9c, 0xd1, 0x82, 0xce, 0xc1, 0xd7, 0x75, 0xbe, 0x2e,
-	0xa3, 0xf7, 0xef, 0x65, 0x58, 0x78, 0x63, 0x08, 0xff, 0xea, 0xc0, 0x74, 0xdf, 0x9a, 0x92, 0x35,
-	0x67, 0x12, 0x83, 0xe7, 0x4e, 0x03, 0xa9, 0x24, 0x55, 0x5d, 0x62, 0xbb, 0x64, 0x83, 0x36, 0xba,
-	0xa8, 0xb3, 0x68, 0x6e, 0xfe, 0x4c, 0x1c, 0xb1, 0xe7, 0x16, 0x77, 0x57, 0x3c, 0xde, 0x7f, 0x2f,
-	0x9e, 0x3f, 0x3d, 0x98, 0xdc, 0x5d, 0x27, 0xff, 0x83, 0xca, 0x83, 0x6b, 0x38, 0xb1, 0xdf, 0x26,
-	0xa9, 0xd4, 0x55, 0x45, 0xc4, 0xcf, 0x4e, 0x0f, 0x9f, 0xde, 0x4b, 0x0f, 0x26, 0xd2, 0xdc, 0x06,
-	0x4a, 0x86, 0x74, 0xfb, 0x18, 0xfe, 0x0a, 0x0f, 0xf7, 0x03, 0x83, 0x08, 0x46, 0x3f, 0x70, 0xca,
-	0x30, 0x77, 0xff, 0x9f, 0xb7, 0x68, 0xf8, 0xba, 0xbd, 0xb2, 0x33, 0xb5, 0x34, 0x3b, 0x83, 0xb1,
-	0x66, 0xfb, 0x3c, 0x2c, 0x27, 0x47, 0xed, 0xe5, 0x96, 0xcf, 0x45, 0xfa, 0xed, 0xf7, 0xae, 0xa1,
-	0x82, 0x97, 0x84, 0x15, 0x11, 0x17, 0x45, 0x5c, 0x20, 0x33, 0xa4, 0x8c, 0xed, 0x15, 0xa9, 0xa9,
-	0x3c, 0xe0, 0x8b, 0xe7, 0x7c, 0xdf, 0xe5, 0xb2, 0x67, 0x22, 0xbd, 0xff, 0x4f, 0x00, 0x00, 0x00,
-	0xff, 0xff, 0x82, 0x75, 0x60, 0x21, 0x15, 0x0a, 0x00, 0x00,
+	// 835 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x56, 0xdd, 0x6a, 0x24, 0x45,
+	0x14, 0xde, 0xe9, 0xb8, 0xc1, 0x39, 0x9d, 0x09, 0xd8, 0x21, 0xbb, 0x63, 0x50, 0x36, 0xb4, 0x08,
+	0xbb, 0x82, 0xdd, 0x24, 0xca, 0x2e, 0x18, 0x14, 0x37, 0x63, 0xd8, 0x9d, 0x0b, 0x65, 0xe9, 0x18,
+	0x41, 0x45, 0x9a, 0x9a, 0xea, 0x33, 0x9d, 0x92, 0xee, 0xaa, 0xb6, 0x7e, 0x82, 0xa2, 0xef, 0x20,
+	0xde, 0x7a, 0xa7, 0x97, 0xbe, 0x81, 0xf7, 0xbe, 0x88, 0x6f, 0x22, 0x5d, 0x55, 0x3d, 0x33, 0x99,
+	0x0c, 0x38, 0x13, 0xbc, 0x91, 0xbd, 0x9b, 0x3a, 0xf5, 0x9d, 0xdf, 0xfa, 0xbe, 0x33, 0x0d, 0x8f,
+	0x4b, 0x21, 0xca, 0x0a, 0x53, 0x5a, 0x09, 0x53, 0xa4, 0x12, 0xa9, 0xa8, 0x6b, 0xe4, 0x05, 0xd1,
+	0x4c, 0x70, 0xe4, 0x25, 0xe3, 0x98, 0x5e, 0x1d, 0x4d, 0x50, 0x93, 0xa3, 0x94, 0xd5, 0x8d, 0x90,
+	0x3a, 0x69, 0xa4, 0xd0, 0x22, 0x7a, 0xe4, 0xfc, 0x12, 0xeb, 0x97, 0xac, 0xf2, 0x4b, 0xbc, 0xdf,
+	0xc1, 0x1b, 0x3e, 0x05, 0x69, 0x58, 0x4a, 0x38, 0x17, 0xda, 0x82, 0x94, 0x0b, 0x74, 0xf0, 0x60,
+	0xe1, 0x76, 0xca, 0xb0, 0x2a, 0xf2, 0x09, 0x5e, 0x92, 0x2b, 0x26, 0xa4, 0x07, 0x3c, 0x59, 0xbf,
+	0x42, 0x4a, 0x34, 0xa9, 0x44, 0xe9, 0x1d, 0x3f, 0x58, 0xdf, 0xd1, 0x28, 0x94, 0x39, 0x5e, 0x21,
+	0xd7, 0x4b, 0x55, 0xd9, 0xd3, 0xc4, 0x4c, 0x53, 0xcd, 0x6a, 0x54, 0x9a, 0xd4, 0x8d, 0x07, 0xdc,
+	0xf7, 0x00, 0xd9, 0xd0, 0x54, 0x69, 0xa2, 0x8d, 0xef, 0x27, 0x7e, 0x07, 0xfa, 0xcf, 0xa8, 0x3a,
+	0x17, 0x46, 0x52, 0x8c, 0xde, 0x04, 0x60, 0xbc, 0x31, 0x3a, 0x37, 0x92, 0xa9, 0x61, 0xef, 0x70,
+	0xeb, 0x61, 0x3f, 0xeb, 0x5b, 0xcb, 0x85, 0x64, 0x2a, 0x96, 0xb0, 0x37, 0x72, 0x25, 0x8f, 0x79,
+	0xc5, 0x38, 0x7a, 0xaf, 0xaf, 0x61, 0xe0, 0x3b, 0xc9, 0x99, 0xc6, 0xda, 0x39, 0x86, 0xc7, 0x8f,
+	0x93, 0xb5, 0x67, 0x9e, 0x74, 0x61, 0x35, 0xd6, 0xd9, 0x0e, 0x9d, 0x1f, 0x54, 0xcc, 0x61, 0xff,
+	0x42, 0xa1, 0x3c, 0x6b, 0x9b, 0xbd, 0x96, 0xf5, 0x02, 0xc2, 0xf9, 0x18, 0xba, 0x9c, 0xef, 0x6f,
+	0x90, 0x73, 0x16, 0x36, 0x03, 0xd3, 0xfd, 0x54, 0xf1, 0x27, 0x10, 0x8d, 0x2d, 0x71, 0xce, 0xa4,
+	0x14, 0x52, 0x8d, 0x04, 0x9f, 0xb2, 0x32, 0x7a, 0x00, 0x50, 0x52, 0x95, 0x37, 0x12, 0xa7, 0xec,
+	0xfb, 0x61, 0xef, 0xb0, 0xf7, 0xb0, 0xff, 0xfc, 0x4e, 0xd6, 0x2f, 0xa9, 0x7a, 0x61, 0x4d, 0xa7,
+	0x03, 0x08, 0x0b, 0x54, 0x9a, 0x71, 0x9b, 0x29, 0xfe, 0x25, 0x80, 0xd7, 0x5d, 0x98, 0x85, 0xce,
+	0x54, 0x86, 0xdf, 0x19, 0x54, 0x3a, 0xba, 0x07, 0xdb, 0x0d, 0x91, 0xc8, 0xb5, 0x8b, 0x94, 0xf9,
+	0x53, 0x3b, 0x7e, 0xe9, 0x20, 0x39, 0x2b, 0x86, 0x81, 0xbd, 0xeb, 0x7b, 0xcb, 0xb8, 0x88, 0xbe,
+	0x84, 0x1d, 0xf7, 0x3a, 0xd4, 0x16, 0x35, 0xdc, 0x3a, 0xec, 0x6d, 0x38, 0xe6, 0x71, 0xeb, 0xee,
+	0x5a, 0xca, 0x42, 0x36, 0x3f, 0x44, 0x13, 0x18, 0xa0, 0xed, 0xb7, 0x8b, 0xfd, 0x8a, 0x8d, 0xfd,
+	0xe1, 0x26, 0xb1, 0x6f, 0x4c, 0x2d, 0xdb, 0xc1, 0x85, 0x53, 0xfc, 0x73, 0x00, 0xf7, 0x1d, 0x68,
+	0x36, 0xf9, 0x97, 0x7c, 0x22, 0x7f, 0x07, 0x10, 0x2e, 0x14, 0x10, 0x69, 0xd8, 0x9f, 0x09, 0xc9,
+	0x52, 0x3d, 0x57, 0x96, 0xeb, 0x76, 0x28, 0xe1, 0xf1, 0x47, 0xb7, 0x10, 0xd4, 0x82, 0x62, 0x9e,
+	0xdf, 0xc9, 0xf6, 0xe8, 0x0a, 0xf9, 0x5e, 0x38, 0x6e, 0xfb, 0x54, 0x81, 0x4d, 0xb5, 0x89, 0x8e,
+	0x66, 0xeb, 0xc3, 0x2b, 0xc2, 0x87, 0xfd, 0x11, 0x86, 0x73, 0x7d, 0x2e, 0xf5, 0xe3, 0xde, 0xe9,
+	0xe3, 0xdb, 0x88, 0x75, 0xa9, 0xa3, 0x7d, 0xb3, 0xea, 0xe2, 0xf4, 0x55, 0xd8, 0x76, 0xa9, 0xe2,
+	0x5f, 0x03, 0xd8, 0x75, 0x0f, 0xf1, 0x29, 0x6a, 0x52, 0x10, 0x4d, 0xa2, 0xb7, 0x61, 0x57, 0x34,
+	0x28, 0x6d, 0x9a, 0x9c, 0x93, 0x1a, 0x87, 0x77, 0x2d, 0xb1, 0x06, 0x33, 0xeb, 0x67, 0xa4, 0xc6,
+	0x25, 0xee, 0x6d, 0x2d, 0x73, 0xef, 0x04, 0x42, 0x2a, 0x91, 0x68, 0xcc, 0xdb, 0x5d, 0xeb, 0xe9,
+	0x71, 0xd0, 0xb5, 0xd4, 0x2d, 0xe2, 0xe4, 0xf3, 0x6e, 0x11, 0x67, 0xe0, 0xe0, 0xad, 0x21, 0x7a,
+	0x0b, 0x06, 0xca, 0x50, 0x8a, 0xaa, 0xa5, 0x97, 0xf1, 0xb4, 0xdf, 0xca, 0x76, 0xbc, 0x71, 0xd4,
+	0xda, 0x5a, 0xd0, 0x94, 0xb0, 0xca, 0x48, 0xf4, 0xa0, 0xc0, 0x81, 0xbc, 0xd1, 0x81, 0x4e, 0x20,
+	0x34, 0x4d, 0x31, 0x2b, 0x63, 0xfb, 0xdf, 0xcb, 0x70, 0xf0, 0xd6, 0x10, 0xff, 0xd9, 0x83, 0x83,
+	0x55, 0x6b, 0x4a, 0x35, 0x82, 0x2b, 0x8c, 0x9e, 0x78, 0x0d, 0xe4, 0x8a, 0xd4, 0x4d, 0x85, 0xdd,
+	0x92, 0x8d, 0xba, 0xe8, 0xb2, 0xa1, 0xc9, 0xb9, 0xfd, 0x33, 0xf1, 0xc4, 0x3e, 0x77, 0xb8, 0x9b,
+	0xe2, 0x09, 0xfe, 0x7b, 0xf1, 0xfc, 0x16, 0xc0, 0xf0, 0xe6, 0x3a, 0xf9, 0x1f, 0x54, 0x1e, 0x5d,
+	0xc2, 0xae, 0xfb, 0x36, 0xc9, 0x95, 0xa9, 0x6b, 0x22, 0x7f, 0xf0, 0x7a, 0x78, 0x7a, 0x2b, 0x3d,
+	0xd8, 0x48, 0xe7, 0x2e, 0x50, 0x36, 0x60, 0x8b, 0xc7, 0xf8, 0x27, 0xb8, 0xb7, 0x1a, 0x18, 0x25,
+	0xb0, 0xf7, 0xad, 0x60, 0x1c, 0x0b, 0xff, 0xff, 0x79, 0x8d, 0x86, 0xaf, 0xb9, 0x2b, 0x37, 0x53,
+	0x47, 0xb3, 0x63, 0xd8, 0x37, 0x7c, 0x95, 0x87, 0xe3, 0xe4, 0x5e, 0x77, 0xb9, 0xe0, 0x73, 0xfa,
+	0x57, 0x0f, 0xde, 0xa5, 0xa2, 0x5e, 0xbf, 0xab, 0x17, 0xbd, 0xaf, 0xbe, 0xf1, 0xe0, 0x52, 0x54,
+	0x84, 0x97, 0x89, 0x90, 0x65, 0x5a, 0x22, 0xb7, 0x34, 0x4e, 0xdd, 0x15, 0x69, 0x98, 0x5a, 0xe3,
+	0x1b, 0xe9, 0x64, 0xd5, 0xe5, 0xef, 0xc1, 0xdd, 0xec, 0x6c, 0xf4, 0x74, 0xfc, 0x47, 0xf0, 0xe8,
+	0x99, 0xcb, 0x33, 0xb2, 0x45, 0x65, 0xd7, 0xb0, 0x67, 0xae, 0xa8, 0x2f, 0x8e, 0x4e, 0xdb, 0x40,
+	0x93, 0x6d, 0x9b, 0xfd, 0xbd, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0x7a, 0x8b, 0x03, 0xd0, 0x7b,
+	0x0a, 0x00, 0x00,
 }
diff --git a/googleapis/cloud/recommendationengine/v1beta1/prediction_apikey_registry_service.pb.go b/googleapis/cloud/recommendationengine/v1beta1/prediction_apikey_registry_service.pb.go
index 3a2a6f5..81cd57e 100644
--- a/googleapis/cloud/recommendationengine/v1beta1/prediction_apikey_registry_service.pb.go
+++ b/googleapis/cloud/recommendationengine/v1beta1/prediction_apikey_registry_service.pb.go
@@ -294,46 +294,49 @@
 }
 
 var fileDescriptor_dc7c074fb118b00d = []byte{
-	// 616 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x55, 0x4f, 0x6b, 0x14, 0x31,
-	0x1c, 0x65, 0xb6, 0xda, 0xda, 0x88, 0x08, 0x39, 0xb4, 0xcb, 0xb4, 0xc5, 0x75, 0x04, 0xe9, 0x0e,
-	0x38, 0xa1, 0xf5, 0x20, 0x54, 0x44, 0xea, 0x1f, 0x3c, 0xe8, 0xa1, 0x6c, 0x0b, 0x82, 0x20, 0x43,
-	0x3a, 0xfb, 0xeb, 0x34, 0xed, 0x4c, 0x12, 0x93, 0x6c, 0xd7, 0xa9, 0xd4, 0x83, 0x1f, 0x40, 0x04,
-	0x3f, 0x88, 0x47, 0xbf, 0x83, 0x47, 0xf5, 0xea, 0x4d, 0xfc, 0x12, 0x5e, 0x64, 0x32, 0xb3, 0xeb,
-	0x2a, 0xeb, 0xec, 0x2c, 0xac, 0xb7, 0x24, 0x2f, 0x79, 0xf3, 0x7b, 0x6f, 0xde, 0x2f, 0x41, 0x9d,
-	0x58, 0x88, 0x38, 0x01, 0x12, 0x25, 0xa2, 0xd7, 0x25, 0x0a, 0x22, 0x91, 0xa6, 0xc0, 0xbb, 0xd4,
-	0x30, 0xc1, 0x81, 0xc7, 0x8c, 0x03, 0x39, 0xd9, 0xd8, 0x07, 0x43, 0x37, 0x88, 0x54, 0xd0, 0x65,
-	0x51, 0x0e, 0x84, 0x54, 0xb2, 0x63, 0xc8, 0x42, 0x05, 0x31, 0xd3, 0x46, 0x65, 0xa1, 0x06, 0x75,
-	0xc2, 0x22, 0x08, 0xa4, 0x12, 0x46, 0xe0, 0x76, 0xc1, 0x19, 0x58, 0xce, 0x60, 0x1c, 0x67, 0x50,
-	0x72, 0xba, 0xab, 0xe5, 0xe7, 0xa9, 0x64, 0x84, 0x72, 0x2e, 0x8c, 0xdd, 0xa4, 0x0b, 0x22, 0x77,
-	0x79, 0x04, 0x8d, 0x12, 0x06, 0xdc, 0x94, 0xc0, 0x4a, 0x09, 0xd8, 0xd9, 0x7e, 0xef, 0x80, 0x40,
-	0x2a, 0x4d, 0x56, 0x80, 0xde, 0x2d, 0xb4, 0xba, 0x33, 0x2c, 0x75, 0x5b, 0xb2, 0xc7, 0x90, 0x75,
-	0x8a, 0x42, 0x2d, 0x39, 0x5e, 0x46, 0x0b, 0x54, 0xb2, 0xf0, 0x18, 0xb2, 0xa6, 0xd3, 0x72, 0xd6,
-	0x17, 0x3b, 0xf3, 0xd4, 0x6e, 0xf2, 0xbe, 0x3a, 0xa8, 0x7d, 0x5f, 0x01, 0x35, 0x50, 0x75, 0xbe,
-	0x03, 0x2f, 0x7a, 0xa0, 0x0d, 0x5e, 0x42, 0xf3, 0x92, 0x2a, 0xe0, 0x66, 0xc0, 0x52, 0xcc, 0xf0,
-	0x5b, 0x07, 0x5d, 0xf9, 0xd3, 0xaa, 0x70, 0xc4, 0x2b, 0x4b, 0xd1, 0x6c, 0xb4, 0x9c, 0xf5, 0x8b,
-	0x9b, 0x8f, 0x82, 0xda, 0x46, 0x05, 0x95, 0x15, 0xad, 0xca, 0x0a, 0xd4, 0x7b, 0x8d, 0xd6, 0x9f,
-	0x30, 0x6d, 0xaa, 0x18, 0xf4, 0x24, 0x51, 0x2b, 0x68, 0x51, 0xd2, 0x18, 0x42, 0xcd, 0x4e, 0xc1,
-	0x56, 0x7f, 0xbe, 0x73, 0x21, 0x5f, 0xd8, 0x65, 0xa7, 0x80, 0xd7, 0x10, 0xb2, 0xa0, 0x11, 0xc7,
-	0xc0, 0x9b, 0x73, 0xf6, 0xa0, 0xdd, 0xbe, 0x97, 0x2f, 0x78, 0x3f, 0x1c, 0xd4, 0xae, 0x51, 0x80,
-	0x96, 0x82, 0x6b, 0xc0, 0xef, 0x1c, 0xd4, 0x9a, 0x60, 0x9f, 0x6e, 0x3a, 0xad, 0xb9, 0x59, 0xfa,
-	0xb7, 0x56, 0xe5, 0x9f, 0xc6, 0xd7, 0xd1, 0x65, 0x0e, 0x2f, 0x4d, 0x38, 0x22, 0xb2, 0x61, 0x45,
-	0x5e, 0xca, 0x97, 0x77, 0x86, 0x42, 0xef, 0xa2, 0xf6, 0x03, 0x48, 0xa0, 0x5e, 0x7c, 0x30, 0x3a,
-	0xc7, 0x69, 0x0a, 0xa5, 0xcf, 0x76, 0xbc, 0xf9, 0x6d, 0x01, 0x35, 0xff, 0x71, 0x36, 0xc3, 0x1f,
-	0x1a, 0xc8, 0x9b, 0x9c, 0x4e, 0xbc, 0x37, 0x85, 0x29, 0xb5, 0xc3, 0xee, 0xce, 0xca, 0x6a, 0xef,
-	0xe8, 0xcd, 0x97, 0xef, 0xef, 0x1b, 0x5d, 0x2f, 0x1c, 0x5e, 0x2b, 0xaf, 0x8a, 0x88, 0xdd, 0x91,
-	0x4a, 0x1c, 0x41, 0x64, 0x34, 0xf1, 0x49, 0x22, 0xa2, 0xc2, 0x7a, 0xe2, 0x93, 0x88, 0x1a, 0x9a,
-	0x88, 0x38, 0x1f, 0xc2, 0x09, 0x70, 0xb3, 0x6b, 0x84, 0x02, 0x4d, 0xfc, 0x33, 0x52, 0xf9, 0xd3,
-	0xb6, 0x1c, 0x1f, 0x7f, 0x6c, 0xa0, 0xab, 0x13, 0x83, 0x87, 0x77, 0xa7, 0x90, 0x56, 0xb7, 0x8f,
-	0xdc, 0xbd, 0xd9, 0x92, 0x16, 0xbd, 0xe1, 0xc5, 0xd6, 0x3c, 0x8a, 0xff, 0xb7, 0x79, 0xf8, 0xa7,
-	0x83, 0xbc, 0xc9, 0x51, 0x9e, 0x2a, 0x6b, 0xb5, 0x3b, 0xc3, 0x5d, 0x1a, 0xb0, 0x0e, 0x6e, 0xf7,
-	0xe0, 0x61, 0x7e, 0xbb, 0x0f, 0xd4, 0xfb, 0x23, 0xea, 0xf3, 0xae, 0x99, 0x56, 0x7b, 0xb5, 0x74,
-	0xe2, 0x9f, 0xb9, 0x4f, 0x3f, 0x6d, 0x5f, 0x1b, 0xab, 0xa5, 0xa8, 0x8b, 0x4a, 0xa6, 0x83, 0x48,
-	0xa4, 0x9f, 0xb7, 0x83, 0x43, 0x63, 0xa4, 0xde, 0x22, 0xa4, 0xdf, 0xef, 0xff, 0x05, 0x12, 0xda,
-	0x33, 0x87, 0xc5, 0xab, 0x7a, 0x43, 0x26, 0xd4, 0x1c, 0x08, 0x95, 0xde, 0x0b, 0x9f, 0x3d, 0x2f,
-	0xa5, 0xc5, 0x22, 0xa1, 0x3c, 0x0e, 0x84, 0x8a, 0x49, 0x0c, 0xdc, 0x0a, 0x25, 0xbf, 0x09, 0x6a,
-	0xbc, 0xc6, 0xb7, 0xc7, 0x81, 0xfb, 0xf3, 0x96, 0xe9, 0xe6, 0xaf, 0x00, 0x00, 0x00, 0xff, 0xff,
-	0xaa, 0x30, 0x43, 0xe3, 0xd6, 0x07, 0x00, 0x00,
+	// 657 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x55, 0x41, 0x6b, 0xd4, 0x40,
+	0x18, 0x25, 0xa9, 0x6d, 0xed, 0x88, 0x08, 0x73, 0x68, 0x97, 0x6d, 0x8b, 0x6b, 0x04, 0xe9, 0x2e,
+	0x34, 0x43, 0xeb, 0x41, 0xa8, 0x88, 0x6c, 0x6b, 0x29, 0xa2, 0x87, 0x92, 0x16, 0x05, 0x41, 0xc2,
+	0x34, 0xfb, 0x35, 0x9d, 0x36, 0x99, 0x19, 0x33, 0xb3, 0xad, 0x5b, 0xa9, 0x07, 0x7f, 0x80, 0x08,
+	0xfe, 0x03, 0x8f, 0x5e, 0x3c, 0xfa, 0x07, 0x3c, 0x79, 0x54, 0xaf, 0xde, 0xc4, 0x3f, 0xe1, 0x45,
+	0x32, 0xb3, 0x5b, 0xb7, 0x52, 0xb3, 0x59, 0x58, 0x6f, 0xc9, 0xbc, 0x6f, 0xde, 0xbc, 0xf7, 0xf2,
+	0x7d, 0x13, 0x14, 0xc4, 0x42, 0xc4, 0x09, 0x90, 0x28, 0x11, 0xed, 0x16, 0xc9, 0x20, 0x12, 0x69,
+	0x0a, 0xbc, 0x45, 0x35, 0x13, 0x1c, 0x78, 0xcc, 0x38, 0x90, 0xc3, 0xa5, 0x1d, 0xd0, 0x74, 0x89,
+	0xc8, 0x0c, 0x5a, 0x2c, 0xca, 0x81, 0x90, 0x4a, 0x76, 0x00, 0x9d, 0x30, 0x83, 0x98, 0x29, 0x9d,
+	0x75, 0x42, 0x05, 0xd9, 0x21, 0x8b, 0xc0, 0x97, 0x99, 0xd0, 0x02, 0xd7, 0x2d, 0xa7, 0x6f, 0x38,
+	0xfd, 0xf3, 0x38, 0xfd, 0x2e, 0x67, 0x75, 0xae, 0x7b, 0x3c, 0x95, 0x8c, 0x50, 0xce, 0x85, 0x36,
+	0x45, 0xca, 0x12, 0x55, 0x67, 0xfa, 0xd0, 0x28, 0x61, 0xc0, 0x75, 0x17, 0x98, 0xed, 0x02, 0xe6,
+	0x6d, 0xa7, 0xbd, 0x4b, 0x20, 0x95, 0xba, 0x63, 0x41, 0xef, 0x16, 0x9a, 0xdb, 0x3c, 0x95, 0xda,
+	0x94, 0xec, 0x01, 0x74, 0x02, 0x2b, 0xd4, 0x90, 0xe3, 0x19, 0x34, 0x49, 0x25, 0x0b, 0x0f, 0xa0,
+	0x53, 0x71, 0x6a, 0xce, 0xc2, 0x54, 0x30, 0x41, 0x4d, 0x91, 0xf7, 0xcd, 0x41, 0xf5, 0xb5, 0x0c,
+	0xa8, 0x86, 0xa2, 0xfd, 0x01, 0x3c, 0x6b, 0x83, 0xd2, 0x78, 0x1a, 0x4d, 0x48, 0x9a, 0x01, 0xd7,
+	0x3d, 0x16, 0xfb, 0x86, 0x5f, 0x3b, 0xe8, 0xea, 0xd9, 0xa8, 0xc2, 0xbe, 0xac, 0x0c, 0x45, 0xc5,
+	0xad, 0x39, 0x0b, 0x97, 0x96, 0x37, 0xfc, 0xd2, 0x41, 0xf9, 0x85, 0x8a, 0xe6, 0x64, 0x01, 0xea,
+	0xbd, 0x44, 0x0b, 0x0f, 0x99, 0xd2, 0x45, 0x0c, 0x6a, 0x90, 0xa9, 0x59, 0x34, 0x25, 0x69, 0x0c,
+	0xa1, 0x62, 0xc7, 0x60, 0xd4, 0x8f, 0x07, 0x17, 0xf3, 0x85, 0x2d, 0x76, 0x0c, 0x78, 0x1e, 0x21,
+	0x03, 0x6a, 0x71, 0x00, 0xbc, 0x32, 0x66, 0x36, 0x9a, 0xf2, 0xed, 0x7c, 0xc1, 0xfb, 0xe9, 0xa0,
+	0x7a, 0x09, 0x01, 0x4a, 0x0a, 0xae, 0x00, 0xbf, 0x71, 0x50, 0x6d, 0x40, 0x7c, 0xaa, 0xe2, 0xd4,
+	0xc6, 0x46, 0x99, 0xdf, 0x7c, 0x51, 0x7e, 0x0a, 0xdf, 0x40, 0x57, 0x38, 0x3c, 0xd7, 0x61, 0x9f,
+	0x49, 0xd7, 0x98, 0xbc, 0x9c, 0x2f, 0x6f, 0x9e, 0x1a, 0xbd, 0x8b, 0xea, 0xf7, 0x20, 0x81, 0x72,
+	0xed, 0x83, 0xd1, 0x05, 0x4e, 0x53, 0xe8, 0xe6, 0x6c, 0x9e, 0x97, 0xbf, 0x4f, 0xa2, 0xca, 0x3f,
+	0xf6, 0x76, 0xf0, 0x07, 0x17, 0x79, 0x83, 0xbb, 0x13, 0x6f, 0x0f, 0x11, 0x4a, 0xe9, 0x66, 0xaf,
+	0x8e, 0x2a, 0x6a, 0x6f, 0xff, 0xd5, 0xd7, 0x1f, 0x6f, 0xdd, 0x96, 0x17, 0x9e, 0x5e, 0x2b, 0x2f,
+	0x6c, 0x8b, 0xdd, 0x91, 0x99, 0xd8, 0x87, 0x48, 0x2b, 0xd2, 0x20, 0x89, 0x88, 0x6c, 0xf4, 0xa4,
+	0x41, 0x22, 0xaa, 0x69, 0x22, 0xe2, 0xfc, 0x11, 0x0e, 0x81, 0xeb, 0x2d, 0x2d, 0x32, 0x50, 0xa4,
+	0x71, 0x42, 0x0a, 0x3f, 0xda, 0x8a, 0xd3, 0xc0, 0x1f, 0x5d, 0x74, 0x6d, 0x60, 0xe3, 0xe1, 0xad,
+	0x21, 0xac, 0x95, 0x9d, 0xa3, 0xea, 0xf6, 0x68, 0x49, 0xed, 0x6c, 0x78, 0xb1, 0x09, 0x8f, 0xe2,
+	0xff, 0x1d, 0x1e, 0xfe, 0xe5, 0x20, 0x6f, 0x70, 0x2b, 0x0f, 0xd5, 0x6b, 0xa5, 0x27, 0xa3, 0x3a,
+	0xdd, 0x63, 0xed, 0xdd, 0xee, 0xfe, 0x7a, 0x7e, 0xbb, 0xf7, 0xdc, 0x37, 0xfa, 0xdc, 0xe7, 0x53,
+	0x33, 0xac, 0xf7, 0x62, 0xeb, 0xa4, 0x71, 0x52, 0x7d, 0xfc, 0xb9, 0x79, 0xfd, 0x5c, 0x2f, 0x56,
+	0x17, 0x95, 0x4c, 0xf9, 0x91, 0x48, 0xbf, 0x34, 0xfd, 0x3d, 0xad, 0xa5, 0x5a, 0x21, 0xe4, 0xe8,
+	0xe8, 0xe8, 0x2f, 0x90, 0xd0, 0xb6, 0xde, 0xb3, 0x7f, 0xd5, 0x45, 0x99, 0x50, 0xbd, 0x2b, 0xb2,
+	0x74, 0xf5, 0x93, 0x83, 0x16, 0x23, 0x91, 0x96, 0x4f, 0x6d, 0xd3, 0x79, 0xf2, 0xb4, 0x5b, 0x1c,
+	0x8b, 0x84, 0xf2, 0xd8, 0x17, 0x59, 0x4c, 0x62, 0xe0, 0x26, 0x1a, 0xf2, 0xe7, 0xc8, 0x12, 0xff,
+	0xef, 0xdb, 0xe7, 0x81, 0xef, 0xdc, 0xf1, 0x60, 0x7d, 0xad, 0x79, 0xff, 0xbd, 0x5b, 0xdf, 0xb0,
+	0xe7, 0xac, 0x19, 0x51, 0xc1, 0x99, 0xda, 0x75, 0x2b, 0xea, 0xd1, 0xd2, 0x6a, 0x4e, 0xb4, 0x33,
+	0x61, 0x4e, 0xbf, 0xf9, 0x3b, 0x00, 0x00, 0xff, 0xff, 0x39, 0x6d, 0x6a, 0xfb, 0x3c, 0x08, 0x00,
+	0x00,
 }
 
 // Reference imports to suppress errors if they are not otherwise used.
diff --git a/googleapis/cloud/recommendationengine/v1beta1/prediction_service.pb.go b/googleapis/cloud/recommendationengine/v1beta1/prediction_service.pb.go
index 95ee1aa..d484024 100644
--- a/googleapis/cloud/recommendationengine/v1beta1/prediction_service.pb.go
+++ b/googleapis/cloud/recommendationengine/v1beta1/prediction_service.pb.go
@@ -99,9 +99,14 @@
 	// Allowed values:
 	//
 	// * `returnCatalogItem`: Boolean. If set to true, the associated catalogItem
-	//   object will be returned in the
+	//    object will be returned in the
 	//   `PredictResponse.PredictionResult.itemMetadata` object in the method
 	//    response.
+	// * `returnItemScore`: Boolean. If set to true, the prediction 'score'
+	//    corresponding to each returned item will be set in the `metadata`
+	//    field in the prediction response. The given 'score' indicates the
+	//    probability of an item being clicked/purchased given the user's context
+	//    and history.
 	Params map[string]*_struct.Value `protobuf:"bytes,6,rep,name=params,proto3" json:"params,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	// Optional. The labels for the predict request.
 	//
@@ -359,55 +364,58 @@
 }
 
 var fileDescriptor_73deb4cba861f96f = []byte{
-	// 757 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x95, 0xeb, 0x6a, 0x34, 0x35,
-	0x18, 0xc7, 0x99, 0xd9, 0xee, 0x29, 0x6b, 0xdf, 0x43, 0x7c, 0x6d, 0x87, 0x51, 0x61, 0x59, 0x41,
-	0xd6, 0xa2, 0x33, 0xb4, 0x0a, 0xda, 0x15, 0x3f, 0xb4, 0x52, 0xb0, 0x68, 0xa1, 0xce, 0x56, 0x8b,
-	0x42, 0x19, 0xb2, 0x33, 0x4f, 0xa7, 0xb1, 0x33, 0xc9, 0x98, 0x64, 0xb6, 0x6e, 0x45, 0x90, 0xde,
-	0x82, 0x77, 0xe2, 0x65, 0xf8, 0x49, 0xf4, 0x0a, 0x44, 0x2f, 0x44, 0x26, 0x93, 0x3d, 0xd5, 0x15,
-	0xfa, 0xb6, 0xfd, 0x96, 0xe4, 0x9f, 0xfc, 0x9e, 0x63, 0x12, 0xb4, 0x9f, 0x70, 0x9e, 0xa4, 0xe0,
-	0x47, 0x29, 0x2f, 0x62, 0x5f, 0x40, 0xc4, 0xb3, 0x0c, 0x58, 0x4c, 0x14, 0xe5, 0x0c, 0x58, 0x42,
-	0x19, 0xf8, 0xe3, 0xed, 0x11, 0x28, 0xb2, 0xed, 0xe7, 0x02, 0x62, 0x1a, 0x95, 0x42, 0x28, 0x41,
-	0x8c, 0x69, 0x04, 0x5e, 0x2e, 0xb8, 0xe2, 0xf8, 0x9d, 0x8a, 0xe1, 0x69, 0x86, 0xb7, 0x8a, 0xe1,
-	0x19, 0x86, 0xfb, 0x86, 0x31, 0x47, 0x72, 0xea, 0x13, 0xc6, 0xb8, 0xd2, 0x9b, 0x64, 0x05, 0x72,
-	0x37, 0x17, 0xd4, 0x28, 0xa5, 0xc0, 0x94, 0x11, 0x06, 0x77, 0xf7, 0xb2, 0x90, 0x20, 0x42, 0x18,
-	0xcf, 0xcf, 0x4e, 0x4d, 0xea, 0xd9, 0xa8, 0x38, 0xf7, 0xa5, 0x12, 0x45, 0x64, 0xd4, 0xde, 0xaf,
-	0x6b, 0xe8, 0xc9, 0x71, 0x15, 0x58, 0x00, 0xdf, 0x17, 0x20, 0x15, 0xc6, 0x68, 0x8d, 0x91, 0x0c,
-	0x1c, 0xab, 0x6b, 0xf5, 0xdb, 0x81, 0x1e, 0xe3, 0x21, 0x42, 0x73, 0xb0, 0x63, 0x77, 0xad, 0x7e,
-	0x67, 0xe7, 0x03, 0xef, 0xce, 0x71, 0x7b, 0x5f, 0x49, 0x10, 0x07, 0xe5, 0xd9, 0xa0, 0x5d, 0x4c,
-	0x87, 0xf8, 0x75, 0xd4, 0xce, 0x49, 0x02, 0xa1, 0xa4, 0xd7, 0xe0, 0x34, 0xbb, 0x56, 0xbf, 0x1e,
-	0xb4, 0xca, 0x85, 0x21, 0xbd, 0x06, 0xfc, 0x26, 0x42, 0x5a, 0x54, 0xfc, 0x12, 0x98, 0xd3, 0xd2,
-	0xbe, 0xe8, 0xed, 0x27, 0xe5, 0x02, 0xde, 0x40, 0x8d, 0x73, 0x9a, 0x2a, 0x10, 0x4e, 0x4d, 0x4b,
-	0x66, 0x86, 0x37, 0x51, 0x33, 0x16, 0x93, 0x50, 0x14, 0xcc, 0x59, 0xeb, 0x5a, 0xfd, 0x56, 0xd0,
-	0x88, 0xc5, 0x24, 0x28, 0x18, 0x3e, 0x43, 0x8d, 0x9c, 0x08, 0x92, 0x49, 0xa7, 0xd1, 0xad, 0xf5,
-	0x3b, 0x3b, 0x07, 0x2f, 0xe1, 0xfd, 0x72, 0x82, 0xbc, 0x63, 0xcd, 0x39, 0x60, 0x4a, 0x4c, 0x02,
-	0x03, 0x2d, 0xf1, 0x29, 0x19, 0x41, 0x2a, 0x9d, 0xf6, 0x43, 0xf1, 0x5f, 0x68, 0x8e, 0xc1, 0x57,
-	0x50, 0xf7, 0x4b, 0xd4, 0x59, 0xb0, 0x8a, 0x9f, 0xa1, 0xda, 0x25, 0x4c, 0x4c, 0x85, 0xca, 0x21,
-	0x7e, 0x17, 0xd5, 0xc7, 0x24, 0x2d, 0xc0, 0xd4, 0x66, 0x63, 0x6a, 0x7e, 0x5a, 0x75, 0xef, 0xeb,
-	0x52, 0x0d, 0xaa, 0x4d, 0x03, 0xfb, 0x23, 0xcb, 0xdd, 0x45, 0x9d, 0x05, 0x4b, 0x2b, 0x90, 0x2f,
-	0x16, 0x91, 0xed, 0x85, 0xa3, 0xbd, 0xbf, 0xeb, 0xe8, 0xe9, 0xcc, 0x69, 0x99, 0x73, 0x26, 0x01,
-	0x03, 0x6a, 0x0a, 0x90, 0x45, 0xaa, 0xa4, 0x63, 0xe9, 0x0c, 0x7c, 0x7e, 0x9f, 0x0c, 0x54, 0xb0,
-	0xe9, 0x9c, 0x72, 0x16, 0x68, 0x66, 0x30, 0x65, 0xe3, 0x6d, 0xf4, 0x62, 0x99, 0x64, 0x1a, 0xa4,
-	0xf2, 0xf1, 0xd5, 0x65, 0xad, 0x6a, 0x95, 0x0f, 0x91, 0x43, 0x15, 0x64, 0x32, 0xcc, 0xa8, 0x94,
-	0x94, 0x25, 0x21, 0x65, 0x61, 0x44, 0x14, 0x49, 0x79, 0xe2, 0xd4, 0xba, 0xb5, 0x7e, 0x3b, 0x78,
-	0x4d, 0xeb, 0x47, 0x95, 0x7c, 0xc8, 0x3e, 0xad, 0xc4, 0xff, 0xef, 0xa5, 0x18, 0xb5, 0x32, 0x50,
-	0x24, 0x26, 0x8a, 0x38, 0x75, 0x1d, 0xec, 0x67, 0x0f, 0x08, 0xf6, 0xc8, 0xa0, 0xaa, 0x8a, 0xcf,
-	0xc8, 0xf8, 0x6d, 0xf4, 0x94, 0xc1, 0x0f, 0x2a, 0x5c, 0xb8, 0x06, 0x0d, 0x1d, 0xe5, 0x7a, 0xb9,
-	0x7c, 0x3c, 0xbd, 0x0a, 0xee, 0xcf, 0x36, 0x7a, 0x76, 0x3b, 0x61, 0xf8, 0x09, 0xb2, 0x69, 0x6c,
-	0xaa, 0x69, 0xd3, 0x18, 0xdf, 0x58, 0x68, 0xbd, 0x8c, 0x32, 0x9c, 0x39, 0x6e, 0x6b, 0xc7, 0xcf,
-	0x1e, 0xb1, 0x4a, 0xde, 0xa1, 0x82, 0x6c, 0x39, 0x9a, 0x57, 0xe8, 0xc2, 0x92, 0x7b, 0x8a, 0x9e,
-	0xff, 0x67, 0xcb, 0xa3, 0xf4, 0xf2, 0x10, 0xad, 0x3f, 0x3a, 0x74, 0xe7, 0x77, 0x1b, 0x3d, 0x9f,
-	0x87, 0x38, 0xac, 0x9e, 0x7c, 0xfc, 0x97, 0x85, 0x9a, 0x66, 0x15, 0xef, 0xde, 0xfb, 0x92, 0xbb,
-	0x83, 0xfb, 0xe7, 0xbd, 0x17, 0xde, 0xfc, 0xf9, 0xcf, 0x2f, 0xf6, 0x37, 0xbd, 0x93, 0xd9, 0xa3,
-	0xff, 0x63, 0xf9, 0x48, 0x7f, 0x92, 0x0b, 0xfe, 0x1d, 0x44, 0x4a, 0xfa, 0x5b, 0x7e, 0xca, 0xa3,
-	0xea, 0x67, 0xf1, 0xb7, 0x7c, 0xd3, 0xeb, 0xe5, 0x50, 0x3f, 0xdf, 0x43, 0xc5, 0x05, 0x94, 0xb3,
-	0x3c, 0x25, 0x11, 0x64, 0xc0, 0xca, 0x13, 0x3f, 0x0d, 0xcc, 0xf7, 0x36, 0xb0, 0xb6, 0xdc, 0xd3,
-	0xdf, 0xf6, 0xde, 0x5a, 0xe9, 0x51, 0xe5, 0x33, 0xc9, 0xa9, 0xf4, 0x22, 0x9e, 0xfd, 0xb1, 0xe7,
-	0x5d, 0x28, 0x95, 0xcb, 0x81, 0xef, 0x5f, 0x5d, 0x5d, 0xdd, 0x12, 0x7d, 0x52, 0xa8, 0x8b, 0xea,
-	0xc3, 0x7a, 0x2f, 0x4f, 0x89, 0x3a, 0xe7, 0x22, 0xdb, 0x0f, 0xbf, 0x3d, 0x33, 0x61, 0x27, 0x3c,
-	0x25, 0x2c, 0xf1, 0xb8, 0x48, 0xfc, 0x04, 0x98, 0x2e, 0x82, 0x3f, 0x07, 0xdc, 0xe1, 0xa3, 0xfb,
-	0x78, 0x95, 0x38, 0x6a, 0x68, 0xd2, 0xfb, 0xff, 0x06, 0x00, 0x00, 0xff, 0xff, 0x67, 0x5d, 0xcf,
-	0x65, 0xd7, 0x07, 0x00, 0x00,
+	// 804 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x95, 0xdd, 0x6e, 0x1c, 0x35,
+	0x14, 0xc7, 0x35, 0xb3, 0xd9, 0x4d, 0xd6, 0x21, 0xfd, 0x30, 0xa5, 0x1d, 0x0d, 0x20, 0xad, 0x82,
+	0x84, 0xb6, 0x11, 0x9d, 0x51, 0x02, 0x12, 0x74, 0x11, 0x17, 0x49, 0xb4, 0x82, 0x08, 0x2a, 0x2d,
+	0xb3, 0xa5, 0x15, 0x48, 0xd1, 0xc8, 0x3b, 0x73, 0x32, 0x35, 0x9d, 0xb1, 0x07, 0xdb, 0xb3, 0x61,
+	0x8b, 0x90, 0x50, 0x5f, 0x81, 0x37, 0xe0, 0x92, 0x4b, 0x9e, 0x81, 0x2b, 0xae, 0x10, 0x3c, 0x01,
+	0x82, 0x07, 0x41, 0x63, 0x7b, 0xbf, 0xca, 0x22, 0x6d, 0x93, 0xdc, 0xd9, 0xfe, 0xdb, 0xbf, 0xf3,
+	0x3f, 0x3e, 0xfe, 0x40, 0x47, 0x19, 0xe7, 0x59, 0x0e, 0x61, 0x92, 0xf3, 0x2a, 0x0d, 0x05, 0x24,
+	0xbc, 0x28, 0x80, 0xa5, 0x44, 0x51, 0xce, 0x80, 0x65, 0x94, 0x41, 0x38, 0xde, 0x1f, 0x81, 0x22,
+	0xfb, 0x61, 0x29, 0x20, 0xa5, 0x49, 0x2d, 0xc4, 0x12, 0xc4, 0x98, 0x26, 0x10, 0x94, 0x82, 0x2b,
+	0x8e, 0xef, 0x1a, 0x46, 0xa0, 0x19, 0xc1, 0x2a, 0x46, 0x60, 0x19, 0xfe, 0x1b, 0x36, 0x1c, 0x29,
+	0x69, 0x48, 0x18, 0xe3, 0x4a, 0x4f, 0x92, 0x06, 0xe4, 0xdf, 0x59, 0x50, 0x93, 0x9c, 0x02, 0x53,
+	0x56, 0xe8, 0xad, 0xef, 0xb2, 0x92, 0x20, 0x62, 0x18, 0xcf, 0xd7, 0x4e, 0x43, 0xea, 0xde, 0xa8,
+	0x3a, 0x0b, 0xa5, 0x12, 0x55, 0x62, 0xd5, 0xdd, 0x5f, 0x36, 0xd0, 0xb5, 0x81, 0x49, 0x2c, 0x82,
+	0x6f, 0x2a, 0x90, 0x0a, 0x63, 0xb4, 0xc1, 0x48, 0x01, 0x9e, 0xd3, 0x71, 0xba, 0xed, 0x48, 0xb7,
+	0xf1, 0x10, 0xa1, 0x39, 0xd8, 0x73, 0x3b, 0x4e, 0x77, 0xfb, 0xe0, 0xbd, 0x60, 0xed, 0xbc, 0x83,
+	0x2f, 0x24, 0x88, 0x7e, 0xbd, 0x36, 0x6a, 0x57, 0xd3, 0x26, 0x7e, 0x1d, 0xb5, 0x4b, 0x92, 0x41,
+	0x2c, 0xe9, 0x33, 0xf0, 0x36, 0x3b, 0x4e, 0xb7, 0x19, 0x6d, 0xd5, 0x03, 0x43, 0xfa, 0x0c, 0xf0,
+	0x9b, 0x08, 0x69, 0x51, 0xf1, 0xa7, 0xc0, 0xbc, 0x2d, 0xed, 0x45, 0x4f, 0x7f, 0x58, 0x0f, 0xe0,
+	0xdb, 0xa8, 0x75, 0x46, 0x73, 0x05, 0xc2, 0x6b, 0x68, 0xc9, 0xf6, 0xf0, 0x1d, 0xb4, 0x99, 0x8a,
+	0x49, 0x2c, 0x2a, 0xe6, 0x6d, 0x74, 0x9c, 0xee, 0x56, 0xd4, 0x4a, 0xc5, 0x24, 0xaa, 0x18, 0x3e,
+	0x45, 0xad, 0x92, 0x08, 0x52, 0x48, 0xaf, 0xd5, 0x69, 0x74, 0xb7, 0x0f, 0xfa, 0x2f, 0xe1, 0x7e,
+	0x79, 0x83, 0x82, 0x81, 0xe6, 0xf4, 0x99, 0x12, 0x93, 0xc8, 0x42, 0x6b, 0x7c, 0x4e, 0x46, 0x90,
+	0x4b, 0xaf, 0x7d, 0x59, 0xfc, 0x67, 0x9a, 0x63, 0xf1, 0x06, 0xea, 0x7f, 0x8e, 0xb6, 0x17, 0xa2,
+	0xe2, 0x1b, 0xa8, 0xf1, 0x14, 0x26, 0xb6, 0x42, 0x75, 0x13, 0xbf, 0x83, 0x9a, 0x63, 0x92, 0x57,
+	0x60, 0x6b, 0x73, 0x7b, 0x1a, 0x7e, 0x5a, 0xf5, 0xe0, 0x51, 0xad, 0x46, 0x66, 0x52, 0xcf, 0xfd,
+	0xc0, 0xf1, 0xef, 0xa3, 0xed, 0x85, 0x48, 0x2b, 0x90, 0xb7, 0x16, 0x91, 0xed, 0x85, 0xa5, 0xbb,
+	0x7f, 0x37, 0xd1, 0xf5, 0x99, 0x69, 0x59, 0x72, 0x26, 0x01, 0x03, 0xda, 0x14, 0x20, 0xab, 0x5c,
+	0x49, 0xcf, 0xd1, 0x3b, 0xf0, 0xe9, 0x45, 0x76, 0xc0, 0xc0, 0xa6, 0x7d, 0xca, 0x59, 0xa4, 0x99,
+	0xd1, 0x94, 0x8d, 0xf7, 0xd1, 0xad, 0x65, 0x92, 0x3d, 0x20, 0xc6, 0xe3, 0xab, 0xcb, 0x9a, 0x39,
+	0x2a, 0xef, 0x23, 0x8f, 0x2a, 0x28, 0x64, 0x5c, 0x50, 0x29, 0x29, 0xcb, 0x62, 0xca, 0xe2, 0x84,
+	0x28, 0x92, 0xf3, 0xcc, 0x6b, 0x74, 0x1a, 0xdd, 0x76, 0xf4, 0x9a, 0xd6, 0x1f, 0x18, 0xf9, 0x84,
+	0x1d, 0x1b, 0xf1, 0xff, 0xcf, 0x52, 0x8a, 0xb6, 0x0a, 0x50, 0x24, 0x25, 0x8a, 0x78, 0x4d, 0x9d,
+	0xec, 0x27, 0x97, 0x48, 0xf6, 0x81, 0x45, 0x99, 0x8a, 0xcf, 0xc8, 0xf8, 0x6d, 0x74, 0x9d, 0xc1,
+	0xb7, 0x2a, 0x5e, 0xb8, 0x06, 0x2d, 0x9d, 0xe5, 0x4e, 0x3d, 0x3c, 0x98, 0x5e, 0x05, 0xff, 0x07,
+	0x17, 0xdd, 0x78, 0x71, 0xc3, 0xf0, 0x35, 0xe4, 0xd2, 0xd4, 0x56, 0xd3, 0xa5, 0x29, 0x7e, 0xee,
+	0xa0, 0x9d, 0x3a, 0xcb, 0x78, 0x66, 0xdc, 0xd5, 0xc6, 0x4f, 0xaf, 0xb0, 0x4a, 0xc1, 0x89, 0x82,
+	0x62, 0x39, 0x9b, 0x57, 0xe8, 0xc2, 0x90, 0xff, 0x18, 0xdd, 0xfc, 0xcf, 0x94, 0x2b, 0x39, 0xcb,
+	0x43, 0xb4, 0x73, 0xe5, 0xd0, 0x83, 0xdf, 0x5d, 0x74, 0x73, 0x9e, 0xe2, 0xd0, 0x3c, 0xf9, 0xf8,
+	0x2f, 0x07, 0x6d, 0xda, 0x51, 0x7c, 0xff, 0xc2, 0x97, 0xdc, 0xef, 0x5d, 0x7c, 0xdf, 0x77, 0xe3,
+	0xe7, 0x7f, 0xfe, 0xf3, 0xa3, 0xfb, 0xe5, 0xee, 0xc3, 0xd9, 0xa3, 0xff, 0x5d, 0xfd, 0x48, 0x7f,
+	0x54, 0x0a, 0xfe, 0x35, 0x24, 0x4a, 0x86, 0x7b, 0x61, 0xce, 0x13, 0xf3, 0xb3, 0x84, 0x7b, 0xa1,
+	0x3d, 0xeb, 0x75, 0x53, 0x3f, 0xdf, 0x43, 0xc5, 0x05, 0xd4, 0xbd, 0x32, 0x27, 0x09, 0x14, 0xc0,
+	0xea, 0x15, 0xdf, 0xf7, 0xec, 0xf7, 0xd6, 0x73, 0xf6, 0xfc, 0xc7, 0xbf, 0x1d, 0xbe, 0xb5, 0xd2,
+	0x91, 0xf1, 0x4c, 0x4a, 0x2a, 0x83, 0x84, 0x17, 0x7f, 0x1c, 0x06, 0x4f, 0x94, 0x2a, 0x65, 0x2f,
+	0x0c, 0xcf, 0xcf, 0xcf, 0x5f, 0x10, 0x43, 0x52, 0xa9, 0x27, 0xe6, 0xc3, 0xba, 0x57, 0xe6, 0x44,
+	0x9d, 0x71, 0x51, 0x1c, 0xfd, 0xea, 0xa0, 0x7b, 0x09, 0x2f, 0xd6, 0xcf, 0x7d, 0xe0, 0x7c, 0x75,
+	0x6a, 0x27, 0x67, 0x3c, 0x27, 0x2c, 0x0b, 0xb8, 0xc8, 0xc2, 0x0c, 0x98, 0x2e, 0x5b, 0x38, 0x0f,
+	0xb9, 0xc6, 0xd7, 0xf8, 0xe1, 0x2a, 0xf1, 0x27, 0xb7, 0x19, 0xf5, 0x8f, 0x0f, 0x4f, 0x7e, 0x76,
+	0xef, 0x7e, 0x6c, 0xe2, 0x1c, 0x6b, 0x53, 0xd1, 0xd2, 0xdc, 0xbe, 0x31, 0xf5, 0x68, 0xff, 0xa8,
+	0x06, 0x8d, 0x5a, 0x3a, 0xfa, 0xbb, 0xff, 0x06, 0x00, 0x00, 0xff, 0xff, 0xa4, 0x3a, 0xc8, 0x7f,
+	0x3d, 0x08, 0x00, 0x00,
 }
 
 // Reference imports to suppress errors if they are not otherwise used.
diff --git a/googleapis/cloud/recommendationengine/v1beta1/user_event.pb.go b/googleapis/cloud/recommendationengine/v1beta1/user_event.pb.go
index 3e6eb71..899ffff 100644
--- a/googleapis/cloud/recommendationengine/v1beta1/user_event.pb.go
+++ b/googleapis/cloud/recommendationengine/v1beta1/user_event.pb.go
@@ -74,8 +74,8 @@
 	//
 	// * `home-page-view`
 	ProductEventDetail *ProductEventDetail `protobuf:"bytes,4,opt,name=product_event_detail,json=productEventDetail,proto3" json:"product_event_detail,omitempty"`
-	// Optional. Only required for ImportUserEvents method, and ignored if set for
-	// any other methods. Timestamp of user event created.
+	// Optional. Only required for ImportUserEvents method. Timestamp of user
+	// event created.
 	EventTime            *timestamp.Timestamp `protobuf:"bytes,5,opt,name=event_time,json=eventTime,proto3" json:"event_time,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
 	XXX_unrecognized     []byte               `json:"-"`
@@ -705,66 +705,68 @@
 }
 
 var fileDescriptor_f86607756c01e62b = []byte{
-	// 962 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x56, 0x4f, 0x6f, 0x1b, 0x45,
-	0x14, 0x97, 0xed, 0x38, 0xb1, 0xc7, 0x8e, 0xd3, 0x4e, 0x22, 0x61, 0x59, 0x20, 0x82, 0x11, 0x52,
-	0x38, 0xb0, 0x56, 0x52, 0x51, 0x42, 0x11, 0x48, 0x21, 0x14, 0xd5, 0x07, 0xa4, 0x74, 0xeb, 0x22,
-	0x81, 0x04, 0xcb, 0x78, 0xf7, 0x65, 0x3b, 0xca, 0xee, 0xcc, 0x7a, 0x66, 0xd6, 0xad, 0xcf, 0x7c,
-	0x0b, 0x4e, 0x9c, 0x38, 0x23, 0x3e, 0x21, 0x7a, 0x33, 0xb3, 0xb6, 0x23, 0xe7, 0x10, 0x2b, 0xbd,
-	0xed, 0xfb, 0xf7, 0xfb, 0xbd, 0xbf, 0x63, 0x93, 0x67, 0xa9, 0x94, 0x69, 0x06, 0xa3, 0x38, 0x93,
-	0x65, 0x32, 0x52, 0x10, 0xcb, 0x3c, 0x07, 0x91, 0x30, 0xc3, 0xa5, 0x00, 0x91, 0x72, 0x01, 0xa3,
-	0xf9, 0xe9, 0x14, 0x0c, 0x3b, 0x1d, 0x95, 0x1a, 0x54, 0x04, 0x73, 0x10, 0x26, 0x28, 0x94, 0x34,
-	0x92, 0x7e, 0xee, 0x62, 0x03, 0x1b, 0x1b, 0xdc, 0x15, 0x1b, 0xf8, 0xd8, 0xc1, 0x87, 0x9e, 0x86,
-	0x15, 0x7c, 0xc4, 0x84, 0x90, 0xc6, 0x3a, 0x69, 0x07, 0x34, 0xf8, 0xea, 0xfe, 0x49, 0xc4, 0xcc,
-	0xb0, 0x4c, 0xa6, 0x3e, 0xf0, 0xe9, 0x16, 0x81, 0x32, 0xcf, 0xa5, 0xf0, 0x71, 0x1f, 0xfb, 0x38,
-	0x2b, 0x4d, 0xcb, 0xeb, 0x91, 0xe1, 0x39, 0x68, 0xc3, 0xf2, 0xc2, 0x39, 0x0c, 0xff, 0x6c, 0x90,
-	0xf6, 0x6b, 0x0d, 0xea, 0x39, 0x96, 0x4b, 0x3f, 0x22, 0xc4, 0xd6, 0x1d, 0x99, 0x45, 0x01, 0xfd,
-	0xda, 0x71, 0xed, 0xa4, 0x1d, 0xb6, 0xad, 0x66, 0xb2, 0x28, 0x80, 0x5e, 0x91, 0xb6, 0xed, 0x0d,
-	0x17, 0xd7, 0xb2, 0x5f, 0x3f, 0xae, 0x9d, 0x74, 0xce, 0x9e, 0x04, 0xf7, 0xee, 0x4d, 0x80, 0x3c,
-	0x63, 0x71, 0x2d, 0xc3, 0x56, 0xe9, 0xbf, 0xe8, 0x2f, 0xa4, 0xeb, 0x08, 0x13, 0x30, 0x8c, 0x67,
-	0xfd, 0x86, 0x05, 0x7d, 0xba, 0x05, 0xa8, 0x4d, 0xfc, 0x07, 0x1b, 0x1d, 0x76, 0x60, 0x25, 0x50,
-	0x49, 0x8e, 0x0a, 0x25, 0x93, 0x32, 0x36, 0xd1, 0x2d, 0x8a, 0x1d, 0x4b, 0xf1, 0xed, 0x16, 0x14,
-	0x57, 0x0e, 0x66, 0x9d, 0x89, 0x16, 0x1b, 0x3a, 0xfa, 0xf5, 0xb2, 0x79, 0x3c, 0x87, 0x7e, 0xd3,
-	0xd2, 0x0c, 0x2a, 0x9a, 0x6a, 0x00, 0xc1, 0xa4, 0x1a, 0x40, 0xd5, 0x58, 0x9e, 0xc3, 0xf0, 0xdf,
-	0x1a, 0x69, 0x55, 0xdd, 0xc1, 0x21, 0xcc, 0xb9, 0xe6, 0x46, 0xaa, 0x88, 0x27, 0xd5, 0x10, 0xbc,
-	0x66, 0x9c, 0xd0, 0x0f, 0xc8, 0x9e, 0x1b, 0x42, 0x62, 0x47, 0xd0, 0x0e, 0x77, 0x6d, 0x37, 0x13,
-	0x8c, 0xe3, 0x45, 0xc4, 0x92, 0x44, 0x81, 0xd6, 0xb6, 0x93, 0xed, 0xb0, 0xcd, 0x8b, 0x0b, 0xa7,
-	0x40, 0xb3, 0x8d, 0x63, 0x29, 0x08, 0x63, 0xbb, 0xd0, 0x0e, 0xed, 0x38, 0x2f, 0x50, 0x41, 0x03,
-	0x72, 0x98, 0x70, 0x05, 0xb1, 0x89, 0xac, 0x97, 0x82, 0x59, 0x09, 0xda, 0xd8, 0x32, 0x5a, 0xe1,
-	0x63, 0x67, 0xc2, 0x14, 0x43, 0x67, 0x18, 0xfe, 0x5d, 0x27, 0x9d, 0xf5, 0xea, 0x1f, 0x91, 0x46,
-	0xa9, 0xb8, 0x4f, 0x17, 0x3f, 0xe9, 0x27, 0xa4, 0xab, 0xe0, 0x1a, 0x94, 0x02, 0x15, 0xa1, 0x69,
-	0xd7, 0x9a, 0x3a, 0x95, 0xee, 0xb5, 0xe2, 0xf4, 0x98, 0x74, 0x0b, 0x96, 0x42, 0x34, 0xe7, 0xf0,
-	0x76, 0x55, 0x10, 0x41, 0xdd, 0xcf, 0x1c, 0xde, 0x8e, 0x13, 0xfa, 0x19, 0xe9, 0xc1, 0xbb, 0x02,
-	0x14, 0xcf, 0xb1, 0xb3, 0x3c, 0xc1, 0xc2, 0x1a, 0x27, 0xed, 0x70, 0x7f, 0xa5, 0x1d, 0x27, 0x9a,
-	0x9e, 0x92, 0xa3, 0xdb, 0x23, 0x8c, 0x8c, 0xbc, 0x01, 0xe1, 0xcb, 0x3c, 0xbc, 0x6d, 0x9b, 0xa0,
-	0x89, 0xfe, 0x41, 0x1e, 0xb9, 0x71, 0x31, 0x63, 0x14, 0x9f, 0x96, 0x06, 0xb4, 0x1f, 0xda, 0x97,
-	0x5b, 0xec, 0xc6, 0x8f, 0xc0, 0x4c, 0xa9, 0xe0, 0x27, 0x56, 0x84, 0x07, 0x16, 0xee, 0x62, 0x89,
-	0x36, 0xfc, 0xaf, 0x41, 0xe8, 0xe6, 0xee, 0x60, 0x5f, 0x34, 0x30, 0x15, 0xbf, 0x89, 0x66, 0x25,
-	0xa8, 0x85, 0x6f, 0x59, 0xc7, 0xe9, 0x5e, 0xa2, 0x8a, 0xce, 0xc8, 0x81, 0xed, 0x4b, 0xcc, 0x0c,
-	0xa4, 0x52, 0x71, 0xd0, 0xfd, 0xfa, 0x71, 0xe3, 0xa4, 0x73, 0xf6, 0x62, 0x8b, 0xd4, 0x2e, 0xdd,
-	0x0b, 0x32, 0x36, 0x90, 0xe3, 0x37, 0x02, 0x2d, 0x5e, 0x70, 0x50, 0x48, 0xb3, 0x08, 0x7b, 0x48,
-	0x70, 0xb9, 0xc4, 0xa7, 0x8c, 0x1c, 0x54, 0xe7, 0xe2, 0x0e, 0xc5, 0x75, 0xba, 0x73, 0x76, 0xbe,
-	0xfd, 0xa5, 0xf8, 0x23, 0xe9, 0x15, 0xeb, 0xa2, 0xc6, 0xcd, 0xcd, 0xb8, 0xc6, 0x29, 0xfa, 0xb9,
-	0xec, 0xa2, 0xe8, 0x56, 0x3a, 0x66, 0xca, 0x1a, 0x9a, 0xce, 0x80, 0xe2, 0x38, 0xa1, 0x33, 0x72,
-	0x54, 0x94, 0x2a, 0x7e, 0xc3, 0x34, 0x44, 0x46, 0x31, 0xa1, 0x59, 0x8c, 0xac, 0x76, 0x95, 0x3a,
-	0x67, 0xdf, 0x6d, 0x93, 0x99, 0x87, 0x99, 0xac, 0x50, 0xc2, 0xc3, 0x62, 0x53, 0x39, 0xfc, 0xab,
-	0x41, 0x0e, 0xef, 0x70, 0xa6, 0x3d, 0x52, 0x5f, 0x5e, 0x63, 0x9d, 0x27, 0xb4, 0x4f, 0xf6, 0x14,
-	0x0e, 0xbc, 0x04, 0xbb, 0xb5, 0xf5, 0xb0, 0x12, 0x69, 0x44, 0x9a, 0x86, 0xbd, 0x83, 0xaa, 0x7f,
-	0xe3, 0x87, 0x65, 0x19, 0x4c, 0x10, 0xeb, 0xb9, 0x30, 0x6a, 0x11, 0x3a, 0x5c, 0x24, 0x88, 0xa5,
-	0x36, 0xba, 0xbf, 0xf3, 0x5e, 0x08, 0x2e, 0x11, 0xcb, 0x13, 0x58, 0x5c, 0xfa, 0x29, 0xd9, 0x8f,
-	0x4b, 0xa5, 0x40, 0xc4, 0x8b, 0x28, 0x96, 0x09, 0xf8, 0xd3, 0xed, 0x56, 0xca, 0x4b, 0x99, 0xc0,
-	0xe0, 0x9c, 0x90, 0x55, 0x6a, 0x78, 0xfe, 0x37, 0x50, 0xed, 0x32, 0x7e, 0xd2, 0x23, 0xd2, 0x9c,
-	0xb3, 0x6c, 0xd9, 0x1e, 0x27, 0x3c, 0xab, 0x9f, 0xd7, 0x30, 0x72, 0xc5, 0xb9, 0x4d, 0xe4, 0xf0,
-	0x9f, 0x06, 0xd9, 0xbf, 0xb5, 0x63, 0x1b, 0x63, 0xd9, 0x48, 0xbd, 0xbe, 0x99, 0x3a, 0x3e, 0x2a,
-	0x52, 0xf1, 0x94, 0x0b, 0x96, 0x45, 0x85, 0xe2, 0x31, 0xd8, 0xd7, 0xb2, 0x1e, 0xee, 0x57, 0xda,
-	0x2b, 0x54, 0x22, 0x56, 0xc2, 0x75, 0x91, 0xb1, 0x85, 0xf7, 0xda, 0xb1, 0x5e, 0x5d, 0xaf, 0x74,
-	0x4e, 0x9c, 0x74, 0xb4, 0x91, 0xf1, 0x4d, 0xa4, 0x0d, 0x33, 0xee, 0xd9, 0xef, 0x6d, 0x75, 0xa6,
-	0xbe, 0x9e, 0xf5, 0x6b, 0x7d, 0x85, 0x80, 0xaf, 0x10, 0x2f, 0x24, 0x7a, 0xf9, 0x4d, 0x07, 0xa4,
-	0x35, 0x2b, 0x99, 0x30, 0xdc, 0x2c, 0xec, 0x44, 0x9a, 0xe1, 0x52, 0xa6, 0x5f, 0x10, 0xca, 0xe6,
-	0x8c, 0x67, 0x6c, 0x9a, 0x41, 0xb4, 0xf4, 0xda, 0xb3, 0x5e, 0x8f, 0x97, 0x96, 0x97, 0x95, 0xfb,
-	0xef, 0xe4, 0x80, 0x1b, 0xc8, 0xd7, 0xdf, 0xbe, 0xd6, 0x43, 0xde, 0xbe, 0x1e, 0xa2, 0xad, 0x9e,
-	0xbe, 0xef, 0xa3, 0x5f, 0x7f, 0xf3, 0x38, 0xa9, 0xcc, 0x98, 0x48, 0x03, 0xa9, 0xd2, 0x51, 0x0a,
-	0xc2, 0xfe, 0x0c, 0x8e, 0x9c, 0x89, 0x15, 0x5c, 0xdf, 0xe3, 0x0f, 0xcd, 0x37, 0x77, 0x19, 0xa7,
-	0xbb, 0x16, 0xe9, 0xc9, 0xff, 0x01, 0x00, 0x00, 0xff, 0xff, 0xa7, 0x7c, 0x3d, 0x2e, 0xd7, 0x09,
-	0x00, 0x00,
+	// 1003 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x56, 0x4d, 0x6f, 0x1b, 0x45,
+	0x18, 0x96, 0xd7, 0x71, 0x12, 0x8f, 0x13, 0xa7, 0x9d, 0x44, 0xc2, 0xb2, 0x40, 0x04, 0x23, 0xa4,
+	0xf4, 0xd0, 0xb5, 0x92, 0x8a, 0x12, 0x8a, 0x40, 0x4a, 0x4d, 0xa0, 0x3e, 0x20, 0xa5, 0x5b, 0xb7,
+	0x12, 0x48, 0xb0, 0x8c, 0x77, 0xdf, 0x6c, 0x47, 0xd9, 0xdd, 0x59, 0xcf, 0xcc, 0xba, 0xf5, 0x99,
+	0x7f, 0xc1, 0x09, 0x71, 0xe0, 0xc0, 0x09, 0xf1, 0x1b, 0xf8, 0x61, 0xe8, 0x9d, 0x99, 0xf5, 0x87,
+	0x9c, 0x43, 0xac, 0xf6, 0xb6, 0xef, 0xd7, 0xf3, 0xbc, 0x9f, 0x63, 0x93, 0x27, 0x89, 0x10, 0x49,
+	0x0a, 0xfd, 0x28, 0x15, 0x65, 0xdc, 0x97, 0x10, 0x89, 0x2c, 0x83, 0x3c, 0x66, 0x9a, 0x8b, 0x1c,
+	0xf2, 0x84, 0xe7, 0xd0, 0x9f, 0x9e, 0x8e, 0x41, 0xb3, 0xd3, 0x7e, 0xa9, 0x40, 0x86, 0x30, 0x85,
+	0x5c, 0xfb, 0x85, 0x14, 0x5a, 0xd0, 0x07, 0x36, 0xd6, 0x37, 0xb1, 0xfe, 0x6d, 0xb1, 0xbe, 0x8b,
+	0xed, 0x7e, 0xe8, 0x68, 0x58, 0xc1, 0xfb, 0x2c, 0xcf, 0x85, 0x36, 0x4e, 0xca, 0x02, 0x75, 0xbf,
+	0xb8, 0x7b, 0x12, 0x11, 0xd3, 0x2c, 0x15, 0x89, 0x0b, 0x7c, 0xbc, 0x41, 0xa0, 0xc8, 0x32, 0x91,
+	0xbb, 0xb8, 0x8f, 0x5d, 0x9c, 0x91, 0xc6, 0xe5, 0x75, 0x5f, 0xf3, 0x0c, 0x94, 0x66, 0x59, 0x61,
+	0x1d, 0x7a, 0xbf, 0xd5, 0x49, 0xf3, 0xa5, 0x02, 0x79, 0x89, 0xe5, 0xd2, 0x8f, 0x08, 0x31, 0x75,
+	0x87, 0x7a, 0x56, 0x40, 0xa7, 0x76, 0x5c, 0x3b, 0x69, 0x06, 0x4d, 0xa3, 0x19, 0xcd, 0x0a, 0xa0,
+	0x57, 0xa4, 0x69, 0x7a, 0xc3, 0xf3, 0x6b, 0xd1, 0xf1, 0x8e, 0x6b, 0x27, 0xad, 0xb3, 0x47, 0xfe,
+	0x9d, 0x7b, 0xe3, 0x23, 0xcf, 0x30, 0xbf, 0x16, 0xc1, 0x6e, 0xe9, 0xbe, 0xe8, 0x8f, 0x64, 0xcf,
+	0x12, 0xc6, 0xa0, 0x19, 0x4f, 0x3b, 0x75, 0x03, 0xfa, 0x78, 0x03, 0x50, 0x93, 0xf8, 0xb7, 0x26,
+	0x3a, 0x68, 0xc1, 0x42, 0xa0, 0x82, 0x1c, 0x15, 0x52, 0xc4, 0x65, 0xa4, 0xc3, 0x15, 0x8a, 0x2d,
+	0x43, 0xf1, 0xf5, 0x06, 0x14, 0x57, 0x16, 0x66, 0x99, 0x89, 0x16, 0x6b, 0x3a, 0xfa, 0xe5, 0xbc,
+	0x79, 0x3c, 0x83, 0x4e, 0xc3, 0xd0, 0x74, 0x2b, 0x9a, 0x6a, 0x00, 0xfe, 0xa8, 0x1a, 0x40, 0xd5,
+	0x58, 0x9e, 0x41, 0xef, 0x9f, 0x1a, 0xd9, 0xad, 0xba, 0x83, 0x43, 0x98, 0x72, 0xc5, 0xb5, 0x90,
+	0x21, 0x8f, 0xab, 0x21, 0x38, 0xcd, 0x30, 0xa6, 0x1f, 0x90, 0x1d, 0x3b, 0x84, 0xd8, 0x8c, 0xa0,
+	0x19, 0x6c, 0x9b, 0x6e, 0xc6, 0x18, 0xc7, 0x8b, 0x90, 0xc5, 0xb1, 0x04, 0xa5, 0x4c, 0x27, 0x9b,
+	0x41, 0x93, 0x17, 0x17, 0x56, 0x81, 0x66, 0x13, 0xc7, 0x12, 0xc8, 0xb5, 0xe9, 0x42, 0x33, 0x30,
+	0xe3, 0xbc, 0x40, 0x05, 0xf5, 0xc9, 0x61, 0xcc, 0x25, 0x44, 0x3a, 0x34, 0x5e, 0x12, 0x26, 0x25,
+	0x28, 0x6d, 0xca, 0xd8, 0x0d, 0xee, 0x5b, 0x13, 0xa6, 0x18, 0x58, 0x43, 0xef, 0x0f, 0x8f, 0xb4,
+	0x96, 0xab, 0xbf, 0x47, 0xea, 0xa5, 0xe4, 0x2e, 0x5d, 0xfc, 0xa4, 0x9f, 0x90, 0x3d, 0x09, 0xd7,
+	0x20, 0x25, 0xc8, 0x10, 0x4d, 0xdb, 0xc6, 0xd4, 0xaa, 0x74, 0x2f, 0x25, 0xa7, 0xc7, 0x64, 0xaf,
+	0x60, 0x09, 0x84, 0x53, 0x0e, 0x6f, 0x16, 0x05, 0x11, 0xd4, 0xbd, 0xe2, 0xf0, 0x66, 0x18, 0xd3,
+	0xcf, 0x48, 0x1b, 0xde, 0x16, 0x20, 0x79, 0x86, 0x9d, 0xe5, 0x31, 0x16, 0x56, 0x3f, 0x69, 0x06,
+	0xfb, 0x0b, 0xed, 0x30, 0x56, 0xf4, 0x94, 0x1c, 0xad, 0x8e, 0x30, 0xd4, 0xe2, 0x06, 0x72, 0x57,
+	0xe6, 0xe1, 0xaa, 0x6d, 0x84, 0x26, 0xfa, 0x2b, 0xb9, 0x67, 0xc7, 0xc5, 0xb4, 0x96, 0x7c, 0x5c,
+	0x6a, 0x50, 0x6e, 0x68, 0x9f, 0x6f, 0xb0, 0x1b, 0xdf, 0x01, 0xd3, 0xa5, 0x84, 0x1f, 0x58, 0x11,
+	0x1c, 0x18, 0xb8, 0x8b, 0x39, 0x5a, 0xef, 0xdf, 0x3a, 0xa1, 0xeb, 0xbb, 0x83, 0x7d, 0x51, 0xc0,
+	0x64, 0xf4, 0x3a, 0x9c, 0x94, 0x20, 0x67, 0xae, 0x65, 0x2d, 0xab, 0x7b, 0x8e, 0x2a, 0x3a, 0x21,
+	0x07, 0xa6, 0x2f, 0x11, 0xd3, 0x90, 0x08, 0xc9, 0x41, 0x75, 0xbc, 0xe3, 0xfa, 0x49, 0xeb, 0xec,
+	0xd9, 0x06, 0xa9, 0x0d, 0xec, 0x0b, 0x32, 0xd4, 0x90, 0xe1, 0x37, 0x02, 0xcd, 0x9e, 0x71, 0x90,
+	0x48, 0x33, 0x0b, 0xda, 0x48, 0x30, 0x98, 0xe3, 0x53, 0x46, 0x0e, 0xaa, 0x73, 0xb1, 0x87, 0x62,
+	0x3b, 0xdd, 0x3a, 0x3b, 0xdf, 0xfc, 0x52, 0xdc, 0x91, 0xb4, 0x8b, 0x65, 0x51, 0xe1, 0xe6, 0xa6,
+	0x5c, 0xe1, 0x14, 0xdd, 0x5c, 0xb6, 0x51, 0xb4, 0x2b, 0x1d, 0x31, 0x69, 0x0c, 0x0d, 0x6b, 0x40,
+	0x71, 0x18, 0xd3, 0x09, 0x39, 0x2a, 0x4a, 0x19, 0xbd, 0x66, 0x0a, 0x42, 0x2d, 0x59, 0xae, 0x58,
+	0x84, 0xac, 0x66, 0x95, 0x5a, 0x67, 0xdf, 0x6c, 0x92, 0x99, 0x83, 0x19, 0x2d, 0x50, 0x82, 0xc3,
+	0x62, 0x5d, 0xd9, 0xfb, 0xbd, 0x4e, 0x0e, 0x6f, 0x71, 0xa6, 0x6d, 0xe2, 0xcd, 0xaf, 0xd1, 0xe3,
+	0x31, 0xed, 0x90, 0x1d, 0x89, 0x03, 0x2f, 0xc1, 0x6c, 0xad, 0x17, 0x54, 0x22, 0x0d, 0x49, 0x43,
+	0xb3, 0xb7, 0x50, 0xf5, 0x6f, 0xf8, 0x6e, 0x59, 0xfa, 0x23, 0xc4, 0xba, 0xcc, 0xb5, 0x9c, 0x05,
+	0x16, 0x17, 0x09, 0x22, 0xa1, 0xb4, 0xea, 0x6c, 0xbd, 0x17, 0x82, 0x01, 0x62, 0x39, 0x02, 0x83,
+	0x4b, 0x3f, 0x25, 0xfb, 0x51, 0x29, 0x25, 0xe4, 0xd1, 0x2c, 0x8c, 0x44, 0x0c, 0xee, 0x74, 0xf7,
+	0x2a, 0xe5, 0x40, 0xc4, 0xd0, 0x3d, 0x27, 0x64, 0x91, 0x1a, 0x9e, 0xff, 0x0d, 0x54, 0xbb, 0x8c,
+	0x9f, 0xf4, 0x88, 0x34, 0xa6, 0x2c, 0x9d, 0xb7, 0xc7, 0x0a, 0x4f, 0xbc, 0xf3, 0x1a, 0x46, 0x2e,
+	0x38, 0x37, 0x89, 0xec, 0xfd, 0x55, 0x27, 0xfb, 0x2b, 0x3b, 0xb6, 0x36, 0x96, 0xb5, 0xd4, 0xbd,
+	0xf5, 0xd4, 0xf1, 0x51, 0x11, 0x92, 0x27, 0x3c, 0x67, 0x69, 0x58, 0x48, 0x1e, 0x81, 0x79, 0x2d,
+	0xbd, 0x60, 0xbf, 0xd2, 0x5e, 0xa1, 0x12, 0xb1, 0x62, 0xae, 0x8a, 0x94, 0xcd, 0x9c, 0xd7, 0x96,
+	0xf1, 0xda, 0x73, 0x4a, 0xeb, 0xc4, 0x49, 0x4b, 0x69, 0x11, 0xdd, 0x84, 0x4a, 0x33, 0x6d, 0x9f,
+	0xfd, 0xf6, 0x46, 0x67, 0xea, 0xea, 0x59, 0xbe, 0xd6, 0x17, 0x08, 0xf8, 0x02, 0xf1, 0x02, 0xa2,
+	0xe6, 0xdf, 0xb4, 0x4b, 0x76, 0x27, 0x25, 0xcb, 0x35, 0xd7, 0x33, 0x33, 0x91, 0x46, 0x30, 0x97,
+	0xe9, 0x43, 0x42, 0xd9, 0x94, 0xf1, 0x94, 0x8d, 0x53, 0x08, 0xe7, 0x5e, 0x3b, 0xc6, 0xeb, 0xfe,
+	0xdc, 0xf2, 0xbc, 0x72, 0xff, 0x85, 0x1c, 0x70, 0x0d, 0xd9, 0xf2, 0xdb, 0xb7, 0xfb, 0x2e, 0x6f,
+	0x5f, 0x1b, 0xd1, 0x16, 0x4f, 0xdf, 0xd3, 0xff, 0x6a, 0xe4, 0x61, 0x24, 0xb2, 0xbb, 0x83, 0x5d,
+	0xd5, 0x7e, 0xfa, 0xd9, 0x39, 0x27, 0x22, 0x65, 0x79, 0xe2, 0x0b, 0x99, 0xf4, 0x13, 0xc8, 0xcd,
+	0x0f, 0x67, 0xdf, 0x9a, 0x58, 0xc1, 0xd5, 0x1d, 0xfe, 0x02, 0x7d, 0x75, 0x9b, 0xf1, 0x4f, 0xaf,
+	0x11, 0x5c, 0x0e, 0x2e, 0x86, 0x7f, 0x7b, 0x0f, 0xbe, 0xb7, 0x3c, 0x03, 0x93, 0x54, 0xb0, 0xe2,
+	0x7b, 0x69, 0x93, 0x7a, 0x75, 0xfa, 0x14, 0x81, 0xc6, 0xdb, 0x86, 0xfd, 0xd1, 0xff, 0x01, 0x00,
+	0x00, 0xff, 0xff, 0x21, 0xdf, 0xae, 0xa5, 0x3d, 0x0a, 0x00, 0x00,
 }
diff --git a/googleapis/cloud/recommendationengine/v1beta1/user_event_service.pb.go b/googleapis/cloud/recommendationengine/v1beta1/user_event_service.pb.go
index 014336f..3369f60 100644
--- a/googleapis/cloud/recommendationengine/v1beta1/user_event_service.pb.go
+++ b/googleapis/cloud/recommendationengine/v1beta1/user_event_service.pb.go
@@ -506,62 +506,64 @@
 }
 
 var fileDescriptor_b2db17806dba696a = []byte{
-	// 868 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x56, 0xdd, 0x6e, 0x1c, 0x35,
-	0x14, 0xd6, 0x34, 0x6d, 0xd5, 0x75, 0xd4, 0x74, 0x31, 0x6d, 0xb2, 0x0c, 0x54, 0x54, 0x53, 0x81,
-	0xc2, 0x4a, 0x8c, 0xd5, 0x80, 0xb8, 0xd8, 0x0a, 0x89, 0xa4, 0x42, 0x02, 0xa9, 0x94, 0x6a, 0x36,
-	0x25, 0x08, 0xd1, 0x0e, 0xde, 0xd9, 0xb3, 0xd3, 0x81, 0x19, 0xdb, 0xd8, 0x9e, 0x84, 0x14, 0xf5,
-	0x06, 0x78, 0x03, 0x2e, 0x78, 0x0a, 0x5e, 0x83, 0x8b, 0x5e, 0x16, 0xf1, 0x06, 0xdc, 0x71, 0xc3,
-	0x23, 0x20, 0xff, 0xec, 0xee, 0x64, 0xbb, 0xa8, 0xbb, 0xc9, 0xde, 0x8d, 0xcf, 0xb1, 0x3f, 0x7f,
-	0xdf, 0xf1, 0x37, 0x3e, 0x46, 0x7b, 0x39, 0xe7, 0x79, 0x09, 0x24, 0x2b, 0x79, 0x3d, 0x24, 0x12,
-	0x32, 0x5e, 0x55, 0xc0, 0x86, 0x54, 0x17, 0x9c, 0x01, 0xcb, 0x0b, 0x06, 0xe4, 0xf0, 0xd6, 0x00,
-	0x34, 0xbd, 0x45, 0x6a, 0x05, 0x32, 0x85, 0x43, 0x60, 0x3a, 0x55, 0x20, 0x0f, 0x8b, 0x0c, 0x62,
-	0x21, 0xb9, 0xe6, 0xf8, 0x1d, 0x87, 0x11, 0x5b, 0x8c, 0x78, 0x1e, 0x46, 0xec, 0x31, 0xc2, 0x37,
-	0xfc, 0x76, 0x54, 0x14, 0x84, 0x32, 0xc6, 0xb5, 0x9d, 0xa4, 0x1c, 0x50, 0xb8, 0xd5, 0xc8, 0x66,
-	0x65, 0x01, 0x4c, 0xfb, 0xc4, 0x6b, 0x8d, 0xc4, 0x63, 0xad, 0xc5, 0x80, 0x0f, 0x8f, 0x7d, 0xea,
-	0x83, 0xc5, 0x05, 0x14, 0x95, 0xe0, 0x72, 0x0c, 0xd9, 0x3b, 0x8d, 0x70, 0xbf, 0xf6, 0xa6, 0x5f,
-	0x5b, 0x72, 0x96, 0xcb, 0x9a, 0xb1, 0x82, 0xe5, 0x84, 0x0b, 0x90, 0x27, 0xc4, 0xbc, 0xe9, 0x27,
-	0xd9, 0xd1, 0xa0, 0x1e, 0x11, 0x5d, 0x54, 0xa0, 0x34, 0xad, 0x84, 0x9f, 0xb0, 0xe9, 0x27, 0xe8,
-	0x63, 0x01, 0x64, 0x48, 0xb5, 0x2f, 0x67, 0xf4, 0x08, 0x6d, 0xde, 0xaf, 0x65, 0x0e, 0x0f, 0x14,
-	0xc8, 0x8f, 0xcd, 0xae, 0x2a, 0x81, 0xef, 0x6b, 0x50, 0x1a, 0x6f, 0xa2, 0x8b, 0x82, 0x4a, 0x60,
-	0xba, 0x13, 0xdc, 0x08, 0xb6, 0x5b, 0x89, 0x1f, 0x99, 0xf8, 0xa8, 0x28, 0x35, 0xc8, 0xce, 0x39,
-	0x17, 0x77, 0x23, 0x7c, 0x15, 0x5d, 0x18, 0x71, 0x99, 0x41, 0x67, 0xed, 0x46, 0xb0, 0x7d, 0x29,
-	0x71, 0x83, 0xe8, 0x29, 0xda, 0x9a, 0xc1, 0xff, 0x0c, 0x34, 0x1d, 0x52, 0x4d, 0xf1, 0x5b, 0x68,
-	0x63, 0xa2, 0x23, 0x65, 0xb4, 0x02, 0xbf, 0xd1, 0xe5, 0x49, 0xf4, 0x1e, 0xad, 0x00, 0xdf, 0x46,
-	0xeb, 0x99, 0x04, 0xaa, 0x21, 0x35, 0x9a, 0xec, 0xa6, 0xeb, 0x3b, 0x61, 0xec, 0x6d, 0x30, 0x16,
-	0x1c, 0xef, 0x8f, 0x05, 0x27, 0xc8, 0x4d, 0x37, 0x81, 0xe8, 0xf7, 0xe0, 0x85, 0xfd, 0x13, 0x50,
-	0x82, 0x33, 0x05, 0x38, 0x46, 0xaf, 0x0a, 0x93, 0x1a, 0xba, 0x72, 0xab, 0x34, 0xe3, 0xb5, 0x57,
-	0xbb, 0x96, 0xbc, 0xe2, 0x52, 0x6e, 0xc9, 0x1d, 0x93, 0xc0, 0x03, 0x84, 0xa7, 0x87, 0xa3, 0x52,
-	0x45, 0x2b, 0x51, 0x1a, 0x3e, 0x6b, 0xdb, 0xeb, 0x3b, 0xef, 0xc7, 0x0b, 0xdb, 0x32, 0x9e, 0x50,
-	0x49, 0xda, 0xf5, 0x84, 0x55, 0xdf, 0xa2, 0x45, 0xbf, 0x04, 0xe8, 0xda, 0x81, 0x2c, 0xf4, 0x94,
-	0xef, 0xcb, 0x8e, 0xa3, 0x8f, 0xd0, 0x94, 0x95, 0xaf, 0xce, 0xe9, 0xd8, 0xb4, 0x26, 0x6c, 0x22,
-	0x8d, 0xb6, 0xee, 0xf0, 0xb2, 0x84, 0x4c, 0x2f, 0xcc, 0xe3, 0xfa, 0x0b, 0x3c, 0x5a, 0x0d, 0x44,
-	0xdc, 0x46, 0x6b, 0xb5, 0x2c, 0xac, 0x37, 0x5a, 0x89, 0xf9, 0x34, 0x11, 0xd0, 0xaa, 0x73, 0xde,
-	0x96, 0xdb, 0x7c, 0x46, 0x3f, 0x07, 0xe8, 0xda, 0xdd, 0x42, 0xe9, 0xc5, 0xbd, 0xf8, 0x3a, 0x6a,
-	0x09, 0x9a, 0x43, 0xaa, 0x8a, 0x27, 0xce, 0x19, 0x17, 0x92, 0x4b, 0x26, 0xd0, 0x2f, 0x9e, 0x80,
-	0x61, 0x64, 0x93, 0x9a, 0x7f, 0x07, 0xcc, 0xef, 0x6c, 0xa7, 0xef, 0x9b, 0x40, 0xc3, 0xc7, 0xe7,
-	0x9b, 0x3e, 0x8e, 0x7e, 0x0b, 0xd0, 0xe6, 0x2c, 0x0b, 0xef, 0x98, 0x07, 0x68, 0xbd, 0xe1, 0x80,
-	0x4e, 0x70, 0x86, 0xa3, 0x47, 0xd3, 0xa3, 0xc7, 0x6f, 0xa3, 0x2b, 0x0c, 0x7e, 0xd0, 0x69, 0x83,
-	0xad, 0xab, 0xdf, 0x65, 0x13, 0xbe, 0x3f, 0x66, 0xbc, 0xf3, 0x47, 0x0b, 0xb5, 0x27, 0x08, 0x7d,
-	0x77, 0x2b, 0xe2, 0x7f, 0x03, 0xb4, 0x71, 0xd2, 0x31, 0xf8, 0xa3, 0x25, 0x18, 0xcd, 0x35, 0x5b,
-	0x78, 0x2a, 0x4d, 0xd1, 0xe8, 0xa7, 0x3f, 0xff, 0xfe, 0xf5, 0xdc, 0x37, 0x51, 0x32, 0xb9, 0xcc,
-	0x7e, 0x74, 0xe7, 0xf4, 0xa1, 0x90, 0xfc, 0x5b, 0xc8, 0xb4, 0x22, 0x5d, 0x52, 0xf2, 0xcc, 0xdd,
-	0x5c, 0xa4, 0x4b, 0x32, 0xaa, 0x69, 0xc9, 0x73, 0xf3, 0x69, 0x4b, 0xda, 0xd7, 0x5c, 0x82, 0x22,
-	0xdd, 0xa7, 0x64, 0x5a, 0x9d, 0xde, 0x91, 0x61, 0xd8, 0x6b, 0x98, 0x0b, 0x3f, 0x0b, 0x50, 0x7b,
-	0xd6, 0x9e, 0x78, 0x6f, 0x09, 0xca, 0xff, 0xe3, 0xed, 0xf0, 0xea, 0x18, 0x83, 0x8a, 0x22, 0xfe,
-	0x44, 0x6b, 0xb1, 0xc7, 0x87, 0xc7, 0xd1, 0xd7, 0x56, 0xd6, 0x17, 0x78, 0x7f, 0xa5, 0xb2, 0x32,
-	0xc7, 0x01, 0xff, 0x13, 0xa0, 0x8d, 0x93, 0x76, 0x5b, 0xea, 0xfc, 0xe6, 0xfe, 0x2f, 0xe1, 0xee,
-	0x19, 0x10, 0x9c, 0xd7, 0xa3, 0x7d, 0xab, 0xfa, 0x1e, 0xbe, 0xbb, 0x4a, 0xd5, 0xf8, 0x79, 0x80,
-	0xae, 0xcc, 0xdc, 0xc7, 0x78, 0x19, 0xb2, 0xf3, 0x7b, 0x55, 0x78, 0x7d, 0x0c, 0xd1, 0x68, 0x92,
-	0xf1, 0xe7, 0xe3, 0x36, 0x12, 0x3d, 0xb4, 0x5a, 0x0e, 0x56, 0x6c, 0x4c, 0xdb, 0x21, 0x7a, 0x41,
-	0x17, 0xff, 0x15, 0xa0, 0xf6, 0xa7, 0xb6, 0xdd, 0x37, 0x54, 0x2d, 0xe3, 0xc7, 0xd9, 0xc5, 0x0b,
-	0xca, 0x7a, 0x64, 0x65, 0x7d, 0x19, 0xf5, 0x57, 0x2a, 0xcb, 0x3d, 0x5c, 0x7a, 0x41, 0x37, 0x3c,
-	0x78, 0xb6, 0x7b, 0x73, 0x2e, 0x6f, 0xc7, 0x8a, 0x8a, 0x42, 0xc5, 0x19, 0xaf, 0x9e, 0xef, 0xc6,
-	0xe6, 0x99, 0xa4, 0x7a, 0x84, 0x1c, 0x1d, 0x1d, 0xcd, 0x24, 0x09, 0xad, 0xf5, 0x63, 0xf7, 0xee,
-	0x79, 0x57, 0x94, 0x54, 0x8f, 0xb8, 0xac, 0xf6, 0xd2, 0xaf, 0x1e, 0x7a, 0x61, 0x39, 0x2f, 0x29,
-	0xcb, 0x63, 0x2e, 0x73, 0x92, 0x03, 0xb3, 0xcd, 0x9c, 0x4c, 0x01, 0x16, 0x78, 0x2f, 0xdd, 0x9e,
-	0x97, 0x1c, 0x5c, 0xb4, 0x48, 0xef, 0xfd, 0x17, 0x00, 0x00, 0xff, 0xff, 0x94, 0xbd, 0x81, 0x22,
-	0x71, 0x0a, 0x00, 0x00,
+	// 909 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x56, 0x4f, 0x6f, 0x1b, 0x45,
+	0x14, 0xd7, 0x26, 0x6d, 0x55, 0x4f, 0xd4, 0xd4, 0x0c, 0x6d, 0x62, 0x0c, 0x15, 0xd5, 0x56, 0xa0,
+	0xd4, 0x52, 0x77, 0x94, 0x80, 0x38, 0xb8, 0x42, 0x22, 0x8e, 0x22, 0xa8, 0x54, 0x4a, 0xb4, 0x4e,
+	0x1b, 0x84, 0x68, 0xcd, 0x78, 0xfd, 0xbc, 0x5d, 0xd8, 0x9d, 0x19, 0x66, 0x66, 0x13, 0x52, 0xd4,
+	0x0b, 0xf0, 0x0d, 0x38, 0x70, 0xe7, 0x88, 0xc4, 0xb7, 0x40, 0x1c, 0x7a, 0x2c, 0xe2, 0x1b, 0x70,
+	0xe3, 0xc2, 0x47, 0x40, 0xf3, 0xc7, 0xf6, 0xc6, 0x35, 0xc2, 0x4e, 0x73, 0xf3, 0xbe, 0xf7, 0xe6,
+	0xf7, 0x7e, 0xbf, 0x37, 0x3f, 0xcf, 0x0c, 0xea, 0xa4, 0x9c, 0xa7, 0x39, 0x90, 0x24, 0xe7, 0xe5,
+	0x80, 0x48, 0x48, 0x78, 0x51, 0x00, 0x1b, 0x50, 0x9d, 0x71, 0x06, 0x2c, 0xcd, 0x18, 0x90, 0xc3,
+	0xcd, 0x3e, 0x68, 0xba, 0x49, 0x4a, 0x05, 0xb2, 0x07, 0x87, 0xc0, 0x74, 0x4f, 0x81, 0x3c, 0xcc,
+	0x12, 0x88, 0x84, 0xe4, 0x9a, 0xe3, 0x9b, 0x0e, 0x23, 0xb2, 0x18, 0xd1, 0x2c, 0x8c, 0xc8, 0x63,
+	0x34, 0xdf, 0xf0, 0xed, 0xa8, 0xc8, 0x08, 0x65, 0x8c, 0x6b, 0x5b, 0xa4, 0x1c, 0x50, 0x73, 0xbd,
+	0x92, 0x4d, 0xf2, 0x0c, 0x98, 0xf6, 0x89, 0xd7, 0x2a, 0x89, 0xc7, 0x5a, 0x8b, 0x3e, 0x1f, 0x1c,
+	0xfb, 0xd4, 0x7b, 0xf3, 0x0b, 0xc8, 0x0a, 0xc1, 0xe5, 0x08, 0xb2, 0x7d, 0x1a, 0xe1, 0x7e, 0xed,
+	0x0d, 0xbf, 0x36, 0xe7, 0x2c, 0x95, 0x25, 0x63, 0x19, 0x4b, 0x09, 0x17, 0x20, 0x4f, 0x88, 0x79,
+	0xd3, 0x17, 0xd9, 0xaf, 0x7e, 0x39, 0x24, 0x3a, 0x2b, 0x40, 0x69, 0x5a, 0x08, 0x5f, 0xb0, 0xe6,
+	0x0b, 0xf4, 0xb1, 0x00, 0x32, 0xa0, 0xda, 0x8f, 0x33, 0x7c, 0x84, 0xd6, 0xf6, 0x4a, 0x99, 0xc2,
+	0x7d, 0x05, 0x72, 0xd7, 0x74, 0x55, 0x31, 0x7c, 0x5d, 0x82, 0xd2, 0x78, 0x0d, 0x5d, 0x10, 0x54,
+	0x02, 0xd3, 0x8d, 0xe0, 0x7a, 0xb0, 0x51, 0x8b, 0xfd, 0x97, 0x89, 0x0f, 0xb3, 0x5c, 0x83, 0x6c,
+	0x2c, 0xb9, 0xb8, 0xfb, 0xc2, 0x57, 0xd0, 0xf9, 0x21, 0x97, 0x09, 0x34, 0x96, 0xaf, 0x07, 0x1b,
+	0x17, 0x63, 0xf7, 0x11, 0x3e, 0x45, 0xeb, 0x53, 0xf8, 0x1f, 0x83, 0xa6, 0x03, 0xaa, 0x29, 0x7e,
+	0x0b, 0xad, 0x8e, 0x75, 0xf4, 0x18, 0x2d, 0xc0, 0x37, 0xba, 0x34, 0x8e, 0xde, 0xa3, 0x05, 0xe0,
+	0xdb, 0x68, 0x25, 0x91, 0x40, 0x35, 0xf4, 0x8c, 0x26, 0xdb, 0x74, 0x65, 0xab, 0x19, 0x79, 0x1b,
+	0x8c, 0x04, 0x47, 0xfb, 0x23, 0xc1, 0x31, 0x72, 0xe5, 0x26, 0x10, 0xfe, 0x1a, 0xbc, 0xd0, 0x3f,
+	0x06, 0x25, 0x38, 0x53, 0x80, 0x23, 0xf4, 0xaa, 0x30, 0xa9, 0x81, 0x1b, 0xb7, 0xea, 0x25, 0xbc,
+	0xf4, 0x6a, 0x97, 0xe3, 0x57, 0x5c, 0xca, 0x2d, 0xd9, 0x31, 0x09, 0xdc, 0x47, 0x78, 0xb2, 0x39,
+	0xaa, 0xa7, 0x68, 0x21, 0x72, 0xc3, 0x67, 0x79, 0x63, 0x65, 0xeb, 0xdd, 0x68, 0x6e, 0x5b, 0x46,
+	0x63, 0x2a, 0x71, 0xbd, 0x1c, 0xb3, 0xea, 0x5a, 0xb4, 0xf0, 0x87, 0x00, 0x5d, 0x3d, 0x90, 0x99,
+	0x9e, 0xf0, 0xfd, 0xbf, 0xed, 0xe8, 0x22, 0x34, 0x61, 0xe5, 0xa7, 0x73, 0x3a, 0x36, 0xb5, 0x31,
+	0x9b, 0x50, 0xa3, 0xf5, 0x1d, 0x9e, 0xe7, 0x90, 0xe8, 0xb9, 0x79, 0x5c, 0x7b, 0x81, 0x47, 0xad,
+	0x82, 0x88, 0xeb, 0x68, 0xb9, 0x94, 0x99, 0xf5, 0x46, 0x2d, 0x36, 0x3f, 0x4d, 0x04, 0xb4, 0x6a,
+	0x9c, 0xb3, 0xe3, 0x36, 0x3f, 0xc3, 0xef, 0x03, 0x74, 0xf5, 0x6e, 0xa6, 0xf4, 0xfc, 0x5e, 0x7c,
+	0x1d, 0xd5, 0x04, 0x4d, 0xa1, 0xa7, 0xb2, 0x27, 0xce, 0x19, 0xe7, 0xe3, 0x8b, 0x26, 0xd0, 0xcd,
+	0x9e, 0x80, 0x61, 0x64, 0x93, 0x9a, 0x7f, 0x05, 0xcc, 0x77, 0xb6, 0xe5, 0xfb, 0x26, 0x50, 0xf1,
+	0xf1, 0xb9, 0xaa, 0x8f, 0xc3, 0x9f, 0x02, 0xb4, 0x36, 0xcd, 0xc2, 0x3b, 0xe6, 0x3e, 0x5a, 0xa9,
+	0x38, 0xa0, 0x11, 0xbc, 0xc4, 0xd6, 0xa3, 0xc9, 0xd6, 0xe3, 0xb7, 0xd1, 0x65, 0x06, 0xdf, 0xe8,
+	0x5e, 0x85, 0xad, 0x9b, 0xdf, 0x25, 0x13, 0xde, 0x1b, 0x31, 0xde, 0xfa, 0xbd, 0x86, 0xea, 0x63,
+	0x84, 0xae, 0x3b, 0x15, 0xf1, 0x3f, 0x01, 0x5a, 0x3d, 0xe9, 0x18, 0xfc, 0xc1, 0x02, 0x8c, 0x66,
+	0x9a, 0xad, 0x79, 0x2a, 0x4d, 0xe1, 0xf0, 0xbb, 0x3f, 0xfe, 0xfa, 0x71, 0xe9, 0x8b, 0x30, 0x1e,
+	0x1f, 0x66, 0xdf, 0xba, 0x7d, 0x7a, 0x5f, 0x48, 0xfe, 0x25, 0x24, 0x5a, 0x91, 0x16, 0xc9, 0x79,
+	0xe2, 0x4e, 0x2e, 0xd2, 0x22, 0x09, 0xd5, 0x34, 0xe7, 0xa9, 0xf9, 0x69, 0x47, 0xda, 0xd5, 0x5c,
+	0x82, 0x22, 0xad, 0xa7, 0x64, 0x32, 0x9d, 0xf6, 0x91, 0x61, 0xd8, 0xae, 0x98, 0x0b, 0x3f, 0x0b,
+	0x50, 0x7d, 0xda, 0x9e, 0xb8, 0xb3, 0x00, 0xe5, 0xff, 0xf0, 0x76, 0xf3, 0xca, 0x08, 0x83, 0x8a,
+	0x2c, 0xfa, 0x48, 0x6b, 0xd1, 0xe1, 0x83, 0xe3, 0xf0, 0x73, 0x2b, 0xeb, 0x01, 0xde, 0x3f, 0x53,
+	0x59, 0x89, 0xe3, 0x80, 0xff, 0x0e, 0xd0, 0xea, 0x49, 0xbb, 0x2d, 0xb4, 0x7f, 0x33, 0xff, 0x2f,
+	0xcd, 0xed, 0x97, 0x40, 0x70, 0x5e, 0x0f, 0xf7, 0xad, 0xea, 0x7b, 0xf8, 0xee, 0x59, 0xaa, 0xc6,
+	0xcf, 0x03, 0x74, 0x79, 0xea, 0x3c, 0xc6, 0x8b, 0x90, 0x9d, 0x7d, 0x57, 0x35, 0xaf, 0x8d, 0x20,
+	0x2a, 0x97, 0x64, 0xf4, 0xc9, 0xe8, 0x1a, 0x09, 0x1f, 0x5a, 0x2d, 0x07, 0x67, 0x6c, 0x4c, 0x7b,
+	0x43, 0xb4, 0x83, 0x16, 0xfe, 0x33, 0x40, 0xf5, 0x3b, 0xf6, 0xba, 0xaf, 0xa8, 0x5a, 0xc4, 0x8f,
+	0xd3, 0x8b, 0xe7, 0x94, 0xf5, 0xc8, 0xca, 0xfa, 0x34, 0xec, 0x9e, 0xa9, 0x2c, 0xf7, 0x70, 0x69,
+	0x07, 0xad, 0xe6, 0xc1, 0xb3, 0xed, 0x1b, 0x33, 0x79, 0x3b, 0x56, 0x54, 0x64, 0x2a, 0x4a, 0x78,
+	0xf1, 0x7c, 0x3b, 0x32, 0xcf, 0x24, 0xd5, 0x26, 0xe4, 0xe8, 0xe8, 0x68, 0x2a, 0x49, 0x68, 0xa9,
+	0x1f, 0xbb, 0x77, 0xcf, 0x2d, 0x91, 0x53, 0x3d, 0xe4, 0xb2, 0xe8, 0xfc, 0x16, 0xa0, 0x5b, 0x09,
+	0x2f, 0xe6, 0x9f, 0xd0, 0x5e, 0xf0, 0xd9, 0x43, 0x5f, 0x9c, 0xf2, 0x9c, 0xb2, 0x34, 0xe2, 0x32,
+	0x25, 0x29, 0x30, 0x7b, 0xfd, 0x93, 0x49, 0xcb, 0x39, 0x5e, 0x58, 0xb7, 0x67, 0x25, 0x7f, 0x5e,
+	0x3a, 0x1f, 0xef, 0xee, 0x6c, 0xdf, 0xf9, 0x65, 0xe9, 0xe6, 0x87, 0xae, 0xcf, 0x8e, 0x25, 0x15,
+	0x9f, 0xa8, 0xdd, 0x75, 0xa4, 0x1e, 0x6c, 0x76, 0x0c, 0x50, 0xff, 0x82, 0xed, 0xfe, 0xce, 0xbf,
+	0x01, 0x00, 0x00, 0xff, 0xff, 0xed, 0xb3, 0x11, 0x07, 0xd7, 0x0a, 0x00, 0x00,
 }
 
 // Reference imports to suppress errors if they are not otherwise used.
diff --git a/googleapis/cloud/talent/v4beta1/completion_service.pb.go b/googleapis/cloud/talent/v4beta1/completion_service.pb.go
index 544564c..1b725c6 100644
--- a/googleapis/cloud/talent/v4beta1/completion_service.pb.go
+++ b/googleapis/cloud/talent/v4beta1/completion_service.pb.go
@@ -67,20 +67,29 @@
 	CompleteQueryRequest_COMPLETION_TYPE_UNSPECIFIED CompleteQueryRequest_CompletionType = 0
 	// Suggest job titles for jobs autocomplete.
 	//
-	// For [CompletionType.JOB_TITLE][google.cloud.talent.v4beta1.CompleteQueryRequest.CompletionType.JOB_TITLE] type, only open jobs with the same
-	// [language_codes][google.cloud.talent.v4beta1.CompleteQueryRequest.language_codes] are returned.
+	// For
+	// [CompletionType.JOB_TITLE][google.cloud.talent.v4beta1.CompleteQueryRequest.CompletionType.JOB_TITLE]
+	// type, only open jobs with the same
+	// [language_codes][google.cloud.talent.v4beta1.CompleteQueryRequest.language_codes]
+	// are returned.
 	CompleteQueryRequest_JOB_TITLE CompleteQueryRequest_CompletionType = 1
 	// Suggest company names for jobs autocomplete.
 	//
-	// For [CompletionType.COMPANY_NAME][google.cloud.talent.v4beta1.CompleteQueryRequest.CompletionType.COMPANY_NAME] type,
-	// only companies having open jobs with the same [language_codes][google.cloud.talent.v4beta1.CompleteQueryRequest.language_codes] are
-	// returned.
+	// For
+	// [CompletionType.COMPANY_NAME][google.cloud.talent.v4beta1.CompleteQueryRequest.CompletionType.COMPANY_NAME]
+	// type, only companies having open jobs with the same
+	// [language_codes][google.cloud.talent.v4beta1.CompleteQueryRequest.language_codes]
+	// are returned.
 	CompleteQueryRequest_COMPANY_NAME CompleteQueryRequest_CompletionType = 2
 	// Suggest both job titles and company names for jobs autocomplete.
 	//
-	// For [CompletionType.COMBINED][google.cloud.talent.v4beta1.CompleteQueryRequest.CompletionType.COMBINED] type, only open jobs with the same
-	// [language_codes][google.cloud.talent.v4beta1.CompleteQueryRequest.language_codes] or companies having open jobs with the same
-	// [language_codes][google.cloud.talent.v4beta1.CompleteQueryRequest.language_codes] are returned.
+	// For
+	// [CompletionType.COMBINED][google.cloud.talent.v4beta1.CompleteQueryRequest.CompletionType.COMBINED]
+	// type, only open jobs with the same
+	// [language_codes][google.cloud.talent.v4beta1.CompleteQueryRequest.language_codes]
+	// or companies having open jobs with the same
+	// [language_codes][google.cloud.talent.v4beta1.CompleteQueryRequest.language_codes]
+	// are returned.
 	CompleteQueryRequest_COMBINED CompleteQueryRequest_CompletionType = 3
 )
 
diff --git a/googleapis/cloud/talent/v4beta1/job.pb.go b/googleapis/cloud/talent/v4beta1/job.pb.go
index d12315a..9f1f607 100644
--- a/googleapis/cloud/talent/v4beta1/job.pb.go
+++ b/googleapis/cloud/talent/v4beta1/job.pb.go
@@ -685,81 +685,81 @@
 }
 
 var fileDescriptor_c717d27462774c27 = []byte{
-	// 1206 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x56, 0x4b, 0x93, 0x1b, 0x35,
-	0x17, 0x2d, 0xdb, 0x99, 0x24, 0x96, 0x33, 0x1e, 0x8f, 0xf2, 0xea, 0x38, 0x2f, 0x7f, 0x1f, 0x15,
-	0x62, 0x02, 0xd8, 0x30, 0x3c, 0x8a, 0x0a, 0x2c, 0xb0, 0x9d, 0xa9, 0x22, 0x43, 0x8a, 0x0c, 0x3d,
-	0x43, 0x16, 0x61, 0xd1, 0xa5, 0xee, 0xbe, 0xe3, 0x91, 0xd3, 0x2d, 0x29, 0x92, 0xda, 0x85, 0x49,
-	0x85, 0x1f, 0x03, 0xff, 0x82, 0x5f, 0x93, 0x35, 0x6b, 0x56, 0xac, 0x28, 0x3d, 0x6c, 0x77, 0x9c,
-	0x94, 0x1d, 0x76, 0xd2, 0xd1, 0x39, 0x47, 0xb7, 0x6f, 0x4b, 0xf7, 0x0a, 0xdd, 0x19, 0x73, 0x3e,
-	0xce, 0xa0, 0x9f, 0x64, 0xbc, 0x48, 0xfb, 0x9a, 0x64, 0xc0, 0x74, 0x7f, 0xfa, 0x79, 0x0c, 0x9a,
-	0x7c, 0xda, 0x9f, 0xf0, 0xb8, 0x27, 0x24, 0xd7, 0x1c, 0x5f, 0x77, 0xb4, 0x9e, 0xa5, 0xf5, 0x1c,
-	0xad, 0xe7, 0x69, 0xed, 0xdb, 0xde, 0x83, 0x08, 0xda, 0x3f, 0xa1, 0x90, 0xa5, 0x51, 0x0c, 0xa7,
-	0x64, 0x4a, 0xb9, 0x74, 0xea, 0xf6, 0xb5, 0x12, 0x41, 0x82, 0xe2, 0x85, 0x4c, 0xc0, 0x2f, 0x75,
-	0xd7, 0xed, 0x9f, 0xf0, 0x3c, 0xe7, 0xcc, 0x33, 0xe7, 0xbb, 0xd8, 0x59, 0x5c, 0x9c, 0xf4, 0x35,
-	0xcd, 0x41, 0x69, 0x92, 0x0b, 0x4f, 0xe8, 0x78, 0x82, 0x9e, 0x09, 0xe8, 0x0b, 0xae, 0x34, 0xc9,
-	0x22, 0x92, 0xa6, 0x12, 0x94, 0xf2, 0x8c, 0x1b, 0xa5, 0x38, 0x08, 0x63, 0x5c, 0x13, 0x4d, 0x39,
-	0xf3, 0xab, 0xff, 0xff, 0xfb, 0x22, 0xaa, 0x1d, 0xf0, 0x18, 0x63, 0x74, 0x86, 0x91, 0x1c, 0x82,
-	0x4a, 0xa7, 0xd2, 0xad, 0x87, 0x76, 0x8c, 0x3f, 0x40, 0xe7, 0x12, 0x9e, 0x0b, 0xc2, 0x66, 0x41,
-	0xd5, 0xc0, 0xc3, 0x9d, 0x57, 0x83, 0xea, 0x3f, 0x83, 0x3a, 0x3a, 0x37, 0x72, 0x70, 0x38, 0x5f,
-	0xc7, 0xf7, 0x50, 0x53, 0xc2, 0xf3, 0x82, 0x2a, 0x6a, 0xcc, 0x23, 0x9a, 0x06, 0x35, 0xab, 0xa8,
-	0xbd, 0x1a, 0x54, 0xc3, 0xed, 0xd2, 0xd2, 0xc3, 0x14, 0x5f, 0x43, 0x5b, 0x9a, 0xea, 0x0c, 0x82,
-	0x33, 0x4b, 0x8a, 0x43, 0xf0, 0x1d, 0xd4, 0x48, 0x41, 0x25, 0x92, 0x0a, 0xc3, 0x0d, 0xb6, 0x96,
-	0x84, 0x32, 0x8e, 0x6f, 0xa0, 0xba, 0xff, 0x46, 0x50, 0xc1, 0xd9, 0x4e, 0xad, 0x5b, 0x0f, 0x97,
-	0x00, 0xfe, 0x19, 0xb5, 0x88, 0x10, 0x19, 0x4d, 0x88, 0x8b, 0x85, 0x9d, 0xf0, 0xe0, 0x5c, 0xa7,
-	0xd2, 0x6d, 0xec, 0x7d, 0xd2, 0x5b, 0xf3, 0x47, 0x7b, 0x07, 0x3c, 0xee, 0x0d, 0x96, 0xc2, 0x87,
-	0xec, 0x84, 0x87, 0x3b, 0xe4, 0x75, 0x00, 0x1f, 0xa0, 0x0b, 0x13, 0x1e, 0x47, 0x31, 0x30, 0x38,
-	0xa1, 0x5a, 0x05, 0xe7, 0x3b, 0xb5, 0x6e, 0x73, 0xef, 0xee, 0x26, 0xe3, 0xa1, 0xe3, 0x87, 0x8d,
-	0xc9, 0x62, 0xac, 0xf0, 0x53, 0xb4, 0x6b, 0xf2, 0x07, 0x4c, 0x95, 0x22, 0xad, 0xdb, 0x48, 0x3f,
-	0x5e, 0x6b, 0x38, 0x2a, 0xa9, 0x6c, 0x98, 0xad, 0x64, 0x05, 0xc1, 0x09, 0xda, 0x4d, 0x0a, 0xa5,
-	0x79, 0x1e, 0x11, 0xad, 0x25, 0x8d, 0x0b, 0x0d, 0x2a, 0x40, 0x9d, 0x5a, 0xb7, 0xb1, 0xf7, 0xe5,
-	0xc6, 0x2c, 0x8c, 0xac, 0x72, 0xb0, 0x10, 0xee, 0x33, 0x2d, 0x67, 0x61, 0x2b, 0x59, 0x81, 0x4d,
-	0x32, 0x52, 0x18, 0x4b, 0x80, 0xc8, 0x1c, 0x3f, 0x15, 0x34, 0xde, 0x21, 0x19, 0x0f, 0xac, 0xe0,
-	0x78, 0x26, 0xc0, 0xfc, 0xd3, 0xf9, 0x58, 0xe1, 0x5b, 0x08, 0xa5, 0x20, 0x88, 0xd4, 0x39, 0x30,
-	0x1d, 0x5c, 0xb0, 0xc7, 0xb0, 0x84, 0xe0, 0x27, 0xa8, 0x05, 0xb9, 0xc8, 0xf8, 0xcc, 0xcc, 0xfc,
-	0x7e, 0xdb, 0x76, 0xbf, 0x0f, 0xd7, 0xee, 0xb7, 0xbf, 0x10, 0xd9, 0x3d, 0x77, 0xe0, 0xb5, 0xb9,
-	0xdd, 0x97, 0xb2, 0x04, 0x98, 0xa6, 0x53, 0x50, 0x41, 0xd3, 0xed, 0xbb, 0x44, 0xf0, 0x7b, 0x68,
-	0x3b, 0x23, 0x6c, 0x5c, 0x90, 0x31, 0x44, 0x09, 0x4f, 0x21, 0xd8, 0xb1, 0x94, 0x0b, 0x73, 0x70,
-	0xc4, 0x53, 0xc0, 0x43, 0x54, 0x37, 0xa7, 0x22, 0x83, 0x29, 0x64, 0x41, 0xab, 0x53, 0xe9, 0x36,
-	0xf7, 0xee, 0x6c, 0xca, 0xf2, 0x23, 0x43, 0x0e, 0xcf, 0x4f, 0xfc, 0x08, 0xdf, 0x45, 0x3b, 0x42,
-	0xf2, 0x9c, 0xdb, 0xa3, 0x30, 0x25, 0x59, 0x01, 0xc1, 0x6e, 0xa7, 0xd2, 0xdd, 0x0a, 0x9b, 0x0b,
-	0xf8, 0x89, 0x41, 0xf1, 0xfb, 0xa8, 0xf9, 0xbc, 0x20, 0x19, 0x3d, 0xf1, 0xe7, 0x52, 0x05, 0xd8,
-	0x86, 0xb4, 0x82, 0xe2, 0x7b, 0xa8, 0x25, 0x41, 0x09, 0xce, 0x14, 0x8d, 0x69, 0x46, 0x35, 0x05,
-	0x15, 0x5c, 0xb4, 0xcc, 0x37, 0x70, 0xfc, 0x23, 0x6a, 0x9a, 0xe2, 0x41, 0xd9, 0x38, 0x92, 0x30,
-	0x36, 0x77, 0xef, 0x92, 0xfd, 0x8a, 0x7b, 0x6b, 0xbf, 0xe2, 0xd0, 0x49, 0x42, 0xab, 0x08, 0xb7,
-	0x45, 0x79, 0x8a, 0xbf, 0x47, 0x68, 0x4a, 0xfd, 0x16, 0xb3, 0xe0, 0xb2, 0xb5, 0x5b, 0x7f, 0x34,
-	0x9e, 0x2c, 0xe8, 0xc3, 0x6a, 0x50, 0x09, 0x4b, 0x72, 0xfc, 0x2d, 0x6a, 0x9a, 0x04, 0x2b, 0x4d,
-	0xa4, 0x8e, 0x4c, 0x0d, 0x0c, 0xae, 0xd8, 0x7b, 0xd2, 0x9e, 0x1b, 0xce, 0x0b, 0x64, 0xef, 0x78,
-	0x5e, 0x20, 0x43, 0x73, 0x51, 0x8f, 0x8c, 0xc0, 0x40, 0xf8, 0x1b, 0x77, 0x71, 0x81, 0xa5, 0x4e,
-	0x7f, 0x75, 0xa3, 0x1e, 0x4d, 0x78, 0xbc, 0xcf, 0x52, 0xab, 0x7e, 0x84, 0x2e, 0xcd, 0xf3, 0x23,
-	0x8a, 0x38, 0xa3, 0xea, 0xd4, 0xb9, 0x04, 0x1b, 0x5d, 0xb0, 0xd7, 0x1d, 0x3a, 0x99, 0x75, 0x3b,
-	0x40, 0x17, 0xe7, 0x6e, 0xf0, 0x8b, 0xa0, 0x12, 0x9c, 0xd9, 0xb5, 0x8d, 0x66, 0xbb, 0x5e, 0xb6,
-	0x6f, 0x55, 0xd6, 0xeb, 0xf1, 0xd2, 0x2b, 0x91, 0x40, 0xb4, 0xf7, 0x6a, 0x6f, 0xf2, 0x32, 0x65,
-	0xb5, 0xb6, 0x30, 0x1c, 0x59, 0xe9, 0xaa, 0x61, 0x21, 0xd2, 0x85, 0xe1, 0xf5, 0xff, 0x66, 0xf8,
-	0x93, 0x95, 0x5a, 0xc3, 0x2f, 0xd0, 0x25, 0xdf, 0x26, 0xa2, 0x94, 0x2a, 0x91, 0x91, 0x59, 0x64,
-	0x5b, 0xcd, 0x8d, 0x79, 0x75, 0xaf, 0x85, 0xd8, 0x13, 0x1e, 0xb8, 0xf5, 0x1f, 0x4c, 0xf7, 0x39,
-	0x36, 0xc5, 0x45, 0xd2, 0x29, 0xa4, 0xae, 0x30, 0xde, 0xb4, 0x01, 0x7c, 0xb4, 0xb1, 0x78, 0x3d,
-	0x70, 0x22, 0x53, 0x05, 0x9d, 0x79, 0x23, 0x5d, 0x22, 0x98, 0x20, 0x2c, 0x24, 0x4f, 0x40, 0x29,
-	0xf3, 0x81, 0x5c, 0xb8, 0x0b, 0x74, 0xcb, 0x7a, 0xef, 0x6d, 0xf4, 0x3e, 0x5c, 0x48, 0x1f, 0x3b,
-	0x65, 0xb8, 0x2b, 0x56, 0xa1, 0x76, 0x84, 0x76, 0x56, 0xda, 0x08, 0xbe, 0x82, 0xce, 0x42, 0x4e,
-	0x68, 0xa6, 0x82, 0x8a, 0xed, 0x56, 0x7e, 0x86, 0x3b, 0xa8, 0x41, 0x99, 0xd2, 0xb2, 0x48, 0x6c,
-	0xbf, 0xb3, 0x5d, 0x36, 0x2c, 0x43, 0xa6, 0x2f, 0x17, 0x92, 0xaa, 0xa0, 0x66, 0x75, 0x76, 0xdc,
-	0xfe, 0xa3, 0x82, 0x1a, 0xa5, 0xaf, 0xc4, 0x23, 0x54, 0xcf, 0xf8, 0xbc, 0x16, 0x54, 0x6c, 0x8d,
-	0x5f, 0x5f, 0x7d, 0x1e, 0x79, 0x76, 0xb8, 0xd4, 0xe1, 0xc7, 0xee, 0x86, 0x25, 0x44, 0xc3, 0x98,
-	0x4b, 0x53, 0x2b, 0x6a, 0xb6, 0xba, 0x76, 0x37, 0x25, 0x65, 0xe4, 0x14, 0xb3, 0x70, 0x7b, 0xb2,
-	0x98, 0x50, 0x50, 0xed, 0x3f, 0x2b, 0x68, 0xf7, 0x8d, 0x7c, 0xe1, 0x87, 0xe8, 0x7f, 0x29, 0x55,
-	0x24, 0xce, 0x20, 0x52, 0x5a, 0x02, 0xe8, 0xf9, 0x6b, 0x25, 0x32, 0x6f, 0xa4, 0xac, 0xb0, 0x79,
-	0x30, 0x8f, 0x90, 0xf3, 0xe1, 0x2d, 0x4f, 0x3c, 0xb2, 0xbc, 0x81, 0xa3, 0x85, 0x0b, 0x96, 0x69,
-	0x9f, 0xa7, 0x3a, 0xcf, 0x22, 0x45, 0x18, 0xd5, 0xf4, 0x57, 0xb2, 0x48, 0x61, 0x73, 0x43, 0xfb,
-	0xfc, 0x4e, 0xe7, 0xd9, 0x51, 0x49, 0x14, 0xb6, 0x4e, 0x57, 0x90, 0xf6, 0x73, 0x74, 0xf9, 0xad,
-	0x4d, 0x10, 0xb7, 0x50, 0xed, 0x19, 0xcc, 0xfc, 0x33, 0xc9, 0x0c, 0xf1, 0x10, 0x6d, 0xb9, 0x6a,
-	0x5d, 0x7d, 0x87, 0x03, 0xba, 0x62, 0x1a, 0x3a, 0xe9, 0xfd, 0xea, 0x57, 0x95, 0xfb, 0xcf, 0xfe,
-	0x1a, 0x9c, 0xa2, 0xab, 0x13, 0x1e, 0x2b, 0xef, 0x40, 0x04, 0x55, 0xbd, 0x84, 0xe7, 0x7d, 0xf3,
-	0x3e, 0xbb, 0x29, 0x24, 0x9f, 0x40, 0xa2, 0x55, 0xff, 0x85, 0x1f, 0xbd, 0x34, 0x2f, 0x55, 0xd5,
-	0x7f, 0x31, 0xe1, 0xf1, 0x4b, 0xdc, 0x7b, 0xcb, 0xb2, 0x06, 0x46, 0x98, 0x41, 0xdc, 0xa0, 0xcc,
-	0x1f, 0xfe, 0x86, 0x6e, 0x27, 0x3c, 0x5f, 0x17, 0xea, 0xb0, 0x75, 0xc0, 0xe3, 0xd0, 0xbf, 0x5b,
-	0x0f, 0xcd, 0x6d, 0x3f, 0xac, 0x3c, 0x1d, 0x78, 0xc1, 0x98, 0x9b, 0xf6, 0xd7, 0xe3, 0x72, 0xdc,
-	0x1f, 0x03, 0xb3, 0xb5, 0xa0, 0xbf, 0x0c, 0xfa, 0xad, 0xef, 0xda, 0xaf, 0xdd, 0xf4, 0xf7, 0x6a,
-	0x6d, 0x74, 0x7c, 0x14, 0x9f, 0xb5, 0x9a, 0xcf, 0xfe, 0x0d, 0x00, 0x00, 0xff, 0xff, 0x4e, 0xe7,
-	0x94, 0x40, 0x8a, 0x0b, 0x00, 0x00,
+	// 1212 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x56, 0xdd, 0x72, 0x1b, 0x35,
+	0x14, 0x1e, 0xdb, 0x4d, 0xdb, 0xc8, 0x8d, 0xe3, 0xa8, 0x69, 0xbb, 0x75, 0xff, 0x0c, 0x9d, 0x52,
+	0x4f, 0x01, 0x1b, 0xc2, 0xcf, 0x30, 0x05, 0x66, 0xb0, 0xdd, 0xcc, 0xd0, 0xd0, 0xa1, 0x61, 0x13,
+	0x7a, 0x51, 0x2e, 0x76, 0xb4, 0xbb, 0xc7, 0x8e, 0xdc, 0x5d, 0x69, 0x23, 0x69, 0x3d, 0x98, 0x4e,
+	0xb9, 0xe6, 0x39, 0xe0, 0x2d, 0x78, 0x9a, 0x5e, 0xf3, 0x08, 0x5c, 0x31, 0xfa, 0x59, 0x7b, 0xeb,
+	0x66, 0xec, 0x72, 0x27, 0x7d, 0xfb, 0x7d, 0xdf, 0x91, 0xce, 0x4a, 0xe7, 0x08, 0xdd, 0x1b, 0x73,
+	0x3e, 0x4e, 0xa0, 0x17, 0x25, 0x3c, 0x8f, 0x7b, 0x8a, 0x24, 0xc0, 0x54, 0x6f, 0xfa, 0x79, 0x08,
+	0x8a, 0x7c, 0xda, 0x9b, 0xf0, 0xb0, 0x9b, 0x09, 0xae, 0x38, 0xbe, 0x61, 0x69, 0x5d, 0x43, 0xeb,
+	0x5a, 0x5a, 0xd7, 0xd1, 0x5a, 0x77, 0x9c, 0x07, 0xc9, 0x68, 0x6f, 0x44, 0x21, 0x89, 0x83, 0x10,
+	0x4e, 0xc8, 0x94, 0x72, 0x61, 0xd5, 0xad, 0xeb, 0x25, 0x82, 0x00, 0xc9, 0x73, 0x11, 0x81, 0xfb,
+	0xd4, 0x59, 0x15, 0x3f, 0xe2, 0x69, 0xca, 0x99, 0x63, 0x16, 0x51, 0xcc, 0x2c, 0xcc, 0x47, 0x3d,
+	0x45, 0x53, 0x90, 0x8a, 0xa4, 0x99, 0x23, 0xb4, 0x1d, 0x41, 0xcd, 0x32, 0xe8, 0x65, 0x5c, 0x2a,
+	0x92, 0x04, 0x24, 0x8e, 0x05, 0x48, 0xe9, 0x18, 0x37, 0x4b, 0xeb, 0x20, 0x8c, 0x71, 0x45, 0x14,
+	0xe5, 0xcc, 0x7d, 0x7d, 0xff, 0x8f, 0x5d, 0x54, 0x3b, 0xe0, 0x21, 0xc6, 0xe8, 0x1c, 0x23, 0x29,
+	0x78, 0x95, 0x76, 0xa5, 0xb3, 0xe9, 0x9b, 0x31, 0xfe, 0x16, 0x5d, 0x88, 0x78, 0x9a, 0x11, 0x36,
+	0xf3, 0xaa, 0x1a, 0x1e, 0xdc, 0x7d, 0xdd, 0xaf, 0xfe, 0xdb, 0xbf, 0x85, 0x6e, 0x4c, 0x78, 0x28,
+	0xbb, 0xd6, 0x97, 0x64, 0x54, 0x76, 0x23, 0x9e, 0xf6, 0x86, 0x96, 0xea, 0x17, 0x1a, 0xfc, 0x00,
+	0x35, 0x04, 0x9c, 0xe6, 0x54, 0x52, 0x1d, 0x30, 0xa0, 0xb1, 0x57, 0x33, 0x2e, 0xb5, 0xd7, 0xfd,
+	0xaa, 0xbf, 0x55, 0xfa, 0xf4, 0x38, 0xc6, 0xd7, 0xd1, 0x86, 0xa2, 0x2a, 0x01, 0xef, 0xdc, 0x82,
+	0x62, 0x11, 0x7c, 0x0f, 0xd5, 0x63, 0x90, 0x91, 0xa0, 0x99, 0xe6, 0x7a, 0x1b, 0x0b, 0x42, 0x19,
+	0xc7, 0x37, 0xd1, 0xa6, 0xdb, 0x37, 0x48, 0xef, 0x7c, 0xbb, 0xd6, 0xd9, 0xf4, 0x17, 0x00, 0xfe,
+	0x05, 0x35, 0x49, 0x96, 0x25, 0x34, 0x22, 0x76, 0x2d, 0x6c, 0xc4, 0xbd, 0x0b, 0xed, 0x4a, 0xa7,
+	0xbe, 0xf7, 0x49, 0x77, 0xc5, 0x5f, 0xee, 0x1e, 0xf0, 0xb0, 0xdb, 0x5f, 0x08, 0x1f, 0xb3, 0x11,
+	0xf7, 0xb7, 0xc9, 0x9b, 0x00, 0x3e, 0x40, 0x97, 0x26, 0x3c, 0x0c, 0x42, 0x60, 0x30, 0xa2, 0x4a,
+	0x7a, 0x17, 0xdb, 0xb5, 0x4e, 0x63, 0xef, 0xfe, 0x3a, 0xe3, 0x81, 0xe5, 0xfb, 0xf5, 0xc9, 0x7c,
+	0x2c, 0xf1, 0x73, 0xb4, 0xa3, 0xf3, 0x07, 0x4c, 0x96, 0x56, 0xba, 0x69, 0x56, 0xfa, 0xf1, 0x4a,
+	0xc3, 0x61, 0x49, 0x65, 0x96, 0xd9, 0x8c, 0x96, 0x10, 0x1c, 0xa1, 0x9d, 0x28, 0x97, 0x8a, 0xa7,
+	0x01, 0x51, 0x4a, 0xd0, 0x30, 0x57, 0x20, 0x3d, 0xd4, 0xae, 0x75, 0xea, 0x7b, 0x5f, 0xae, 0xcd,
+	0xc2, 0xd0, 0x28, 0xfb, 0x73, 0xe1, 0x3e, 0x53, 0x62, 0xe6, 0x37, 0xa3, 0x25, 0x58, 0x27, 0x23,
+	0x86, 0xb1, 0x00, 0x08, 0xf4, 0x91, 0x94, 0x5e, 0xfd, 0x1d, 0x92, 0xf1, 0xc8, 0x08, 0x8e, 0x67,
+	0x19, 0xe8, 0x7f, 0x5a, 0x8c, 0x25, 0xbe, 0x8d, 0x50, 0x0c, 0x19, 0x11, 0x2a, 0x05, 0xa6, 0xbc,
+	0x4b, 0xe6, 0x68, 0x96, 0x10, 0xfc, 0x0c, 0x35, 0x21, 0xcd, 0x12, 0x3e, 0xd3, 0x33, 0x17, 0x6f,
+	0xcb, 0xc4, 0xfb, 0x70, 0x65, 0xbc, 0xfd, 0xb9, 0xc8, 0xc4, 0xdc, 0x86, 0x37, 0xe6, 0x26, 0x2e,
+	0x65, 0x11, 0x30, 0x45, 0xa7, 0x20, 0xbd, 0x86, 0x8d, 0xbb, 0x40, 0xf0, 0x5d, 0xb4, 0x95, 0x10,
+	0x36, 0xce, 0xc9, 0x18, 0x82, 0x88, 0xc7, 0xe0, 0x6d, 0x1b, 0xca, 0xa5, 0x02, 0x1c, 0xf2, 0x18,
+	0xf0, 0x00, 0x6d, 0xea, 0x53, 0x91, 0xc0, 0x14, 0x12, 0xaf, 0xd9, 0xae, 0x74, 0x1a, 0x7b, 0xf7,
+	0xd6, 0x65, 0xf9, 0x89, 0x26, 0xfb, 0x17, 0x27, 0x6e, 0x84, 0xef, 0xa3, 0xed, 0x4c, 0xf0, 0x94,
+	0x9b, 0xa3, 0x30, 0x25, 0x49, 0x0e, 0xde, 0x4e, 0xbb, 0xd2, 0xd9, 0xf0, 0x1b, 0x73, 0xf8, 0x99,
+	0x46, 0xf1, 0x07, 0xa8, 0x71, 0x9a, 0x93, 0x84, 0x8e, 0xdc, 0xb9, 0x94, 0x1e, 0x36, 0x4b, 0x5a,
+	0x42, 0xf1, 0x03, 0xd4, 0x14, 0x20, 0x33, 0xce, 0x24, 0x0d, 0x69, 0x42, 0x15, 0x05, 0xe9, 0x5d,
+	0x36, 0xcc, 0xb7, 0x70, 0xfc, 0x13, 0x6a, 0xe8, 0x82, 0x42, 0xd9, 0x38, 0x10, 0x30, 0xd6, 0x77,
+	0x6f, 0xd7, 0xec, 0xe2, 0xc1, 0xca, 0x5d, 0x1c, 0x5a, 0x89, 0x6f, 0x14, 0xfe, 0x56, 0x56, 0x9e,
+	0xe2, 0x1f, 0x10, 0x9a, 0x52, 0x17, 0x62, 0xe6, 0x5d, 0x31, 0x76, 0xab, 0x8f, 0xc6, 0xb3, 0x39,
+	0x7d, 0x50, 0xf5, 0x2a, 0x7e, 0x49, 0x8e, 0xbf, 0x43, 0x0d, 0x9d, 0x60, 0xa9, 0x88, 0x50, 0x81,
+	0xae, 0x8b, 0xde, 0x55, 0x73, 0x4f, 0x5a, 0x85, 0x61, 0x51, 0x34, 0xbb, 0xc7, 0x45, 0xd1, 0xf4,
+	0xf5, 0x45, 0x3d, 0xd2, 0x02, 0x0d, 0xe1, 0x6f, 0xec, 0xc5, 0x05, 0x16, 0x5b, 0xfd, 0xb5, 0xb5,
+	0x7a, 0x34, 0xe1, 0xe1, 0x3e, 0x8b, 0x8d, 0xfa, 0x09, 0xda, 0x2d, 0xf2, 0x93, 0xe5, 0x61, 0x42,
+	0xe5, 0x89, 0x75, 0xf1, 0xd6, 0xba, 0x60, 0xa7, 0x3b, 0xb4, 0x32, 0xe3, 0x76, 0x80, 0x2e, 0x17,
+	0x6e, 0xf0, 0x6b, 0x46, 0x05, 0x58, 0xb3, 0xeb, 0x6b, 0xcd, 0x76, 0x9c, 0x6c, 0xdf, 0xa8, 0x8c,
+	0xd7, 0xd3, 0x85, 0x57, 0x24, 0x80, 0x28, 0xe7, 0xd5, 0x5a, 0xe7, 0xa5, 0xcb, 0x6a, 0x6d, 0x6e,
+	0x38, 0x34, 0xd2, 0x65, 0xc3, 0x3c, 0x8b, 0xe7, 0x86, 0x37, 0xfe, 0x9f, 0xe1, 0xcf, 0x46, 0x6a,
+	0x0c, 0xbf, 0x40, 0xbb, 0xae, 0x4d, 0x04, 0x31, 0x95, 0x59, 0x42, 0x66, 0x81, 0x69, 0x3f, 0x37,
+	0x8b, 0xea, 0x5e, 0xf3, 0xb1, 0x23, 0x3c, 0xb2, 0xdf, 0x7f, 0xd4, 0x1d, 0xe9, 0x58, 0x17, 0x17,
+	0x41, 0xa7, 0x10, 0xdb, 0xc2, 0x78, 0xcb, 0x2c, 0xe0, 0xa3, 0xb5, 0xc5, 0xeb, 0x91, 0x15, 0xe9,
+	0x2a, 0x68, 0xcd, 0xeb, 0xf1, 0x02, 0xc1, 0x04, 0xe1, 0x4c, 0xf0, 0x08, 0xa4, 0xd4, 0x1b, 0xe4,
+	0x99, 0xbd, 0x40, 0xb7, 0x8d, 0xf7, 0xde, 0x5a, 0xef, 0xc3, 0xb9, 0xf4, 0xa9, 0x55, 0xfa, 0x3b,
+	0xd9, 0x32, 0xd4, 0x0a, 0xd0, 0xf6, 0x52, 0x1b, 0xc1, 0x57, 0xd1, 0x79, 0x48, 0x09, 0x4d, 0xa4,
+	0x57, 0x31, 0xdd, 0xca, 0xcd, 0x70, 0x1b, 0xd5, 0x29, 0x93, 0x4a, 0xe4, 0x91, 0xe9, 0x77, 0xa6,
+	0xf3, 0xfa, 0x65, 0x48, 0xf7, 0xea, 0x5c, 0x50, 0xe9, 0xd5, 0x8c, 0xce, 0x8c, 0x5b, 0x7f, 0x55,
+	0x50, 0xbd, 0xb4, 0x4b, 0x3c, 0x44, 0x9b, 0x09, 0x2f, 0x6a, 0x41, 0xc5, 0xd4, 0xf8, 0xd5, 0xd5,
+	0xe7, 0x89, 0x63, 0xfb, 0x0b, 0x1d, 0x7e, 0x6a, 0x6f, 0x58, 0x44, 0x14, 0x8c, 0xb9, 0xd0, 0xb5,
+	0xa2, 0x66, 0xaa, 0x6b, 0x67, 0x5d, 0x52, 0x86, 0x56, 0x31, 0xf3, 0xb7, 0x26, 0xf3, 0x09, 0x05,
+	0xd9, 0xfa, 0xbb, 0x82, 0x76, 0xde, 0xca, 0x17, 0x7e, 0x8c, 0xde, 0x8b, 0xa9, 0x24, 0x61, 0x02,
+	0x81, 0x54, 0x02, 0x40, 0x15, 0x2f, 0x98, 0x40, 0xbf, 0x9b, 0x92, 0xdc, 0xe4, 0x41, 0x3f, 0x4c,
+	0x2e, 0xfa, 0xb7, 0x1d, 0xf1, 0xc8, 0xf0, 0xfa, 0x96, 0xe6, 0xcf, 0x59, 0xba, 0x7d, 0x9e, 0xa8,
+	0x34, 0x09, 0x24, 0x61, 0x54, 0xd1, 0xdf, 0xc8, 0x3c, 0x85, 0x8d, 0x35, 0xed, 0xf3, 0x7b, 0x95,
+	0x26, 0x47, 0x25, 0x91, 0xdf, 0x3c, 0x59, 0x42, 0x5a, 0xa7, 0xe8, 0xca, 0x99, 0x4d, 0x10, 0x37,
+	0x51, 0xed, 0x05, 0xcc, 0xdc, 0xd3, 0x49, 0x0f, 0xf1, 0x00, 0x6d, 0xd8, 0x6a, 0x5d, 0x7d, 0x87,
+	0x03, 0xba, 0x64, 0xea, 0x5b, 0xe9, 0xc3, 0xea, 0x57, 0x95, 0x87, 0x2f, 0xfe, 0xe9, 0x9f, 0xa0,
+	0x6b, 0x67, 0xbd, 0xb6, 0xf4, 0x9b, 0xed, 0x56, 0x26, 0xf8, 0x04, 0x22, 0x25, 0x7b, 0x2f, 0xdd,
+	0xe8, 0x95, 0x7e, 0xbd, 0xca, 0xde, 0xcb, 0x09, 0x0f, 0x5f, 0xe1, 0xee, 0x19, 0x9f, 0x15, 0x30,
+	0xc2, 0x34, 0x62, 0x07, 0x65, 0xfe, 0xe0, 0x77, 0x74, 0x27, 0xe2, 0xe9, 0xaa, 0xa5, 0x0e, 0x9a,
+	0x07, 0x3c, 0xf4, 0xdd, 0x5b, 0xf6, 0x50, 0xdf, 0xf6, 0xc3, 0xca, 0xf3, 0xbe, 0x13, 0x8c, 0xb9,
+	0x6e, 0x7f, 0x5d, 0x2e, 0xc6, 0xbd, 0x31, 0x30, 0x53, 0x0b, 0x7a, 0x8b, 0x45, 0x9f, 0xf9, 0xd6,
+	0xfd, 0xda, 0x4e, 0xff, 0xac, 0xd6, 0x86, 0xc7, 0x47, 0xe1, 0x79, 0xa3, 0xf9, 0xec, 0xbf, 0x00,
+	0x00, 0x00, 0xff, 0xff, 0x7f, 0xb0, 0x3d, 0xad, 0x9e, 0x0b, 0x00, 0x00,
 }
diff --git a/googleapis/cloud/talent/v4beta1/job_service.pb.go b/googleapis/cloud/talent/v4beta1/job_service.pb.go
index 20d5c30..f540554 100644
--- a/googleapis/cloud/talent/v4beta1/job_service.pb.go
+++ b/googleapis/cloud/talent/v4beta1/job_service.pb.go
@@ -796,6 +796,8 @@
 	//
 	// The maximum allowed value is 5000. Otherwise an error is thrown.
 	//
+	// The maximum allowed value is 5000. Otherwise an error is thrown.
+	//
 	// For example, 0 means to  return results starting from the first matching
 	// job, and 10 means to return from the 11th job. This can be used for
 	// pagination, (for example, pageSize = 10 and offset = 10 means to return
@@ -1036,10 +1038,10 @@
 	//
 	// An error is thrown if not specified.
 	ImportanceLevel SearchJobsRequest_CustomRankingInfo_ImportanceLevel `protobuf:"varint,1,opt,name=importance_level,json=importanceLevel,proto3,enum=google.cloud.talent.v4beta1.SearchJobsRequest_CustomRankingInfo_ImportanceLevel" json:"importance_level,omitempty"`
-	// Required. Controls over how job documents get ranked on top of existing relevance
-	// score (determined by API algorithm). A combination of the ranking
-	// expression and relevance score is used to determine job's final ranking
-	// position.
+	// Required. Controls over how job documents get ranked on top of existing
+	// relevance score (determined by API algorithm). A combination of the
+	// ranking expression and relevance score is used to determine job's final
+	// ranking position.
 	//
 	// The syntax for this expression is a subset of Google SQL syntax.
 	//
diff --git a/googleapis/cloud/talent/v4beta1/profile_service.pb.go b/googleapis/cloud/talent/v4beta1/profile_service.pb.go
index 4194cee..7b1c20c 100644
--- a/googleapis/cloud/talent/v4beta1/profile_service.pb.go
+++ b/googleapis/cloud/talent/v4beta1/profile_service.pb.go
@@ -901,90 +901,90 @@
 }
 
 var fileDescriptor_d2b7b5f4d4d7ea55 = []byte{
-	// 1325 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x57, 0xcf, 0x6f, 0x13, 0x47,
-	0x14, 0xd6, 0xe6, 0x87, 0xe3, 0x4c, 0x70, 0x20, 0x93, 0x10, 0x16, 0x07, 0x44, 0xb4, 0x54, 0x28,
-	0x04, 0xf0, 0x12, 0x83, 0x44, 0x15, 0x5a, 0x84, 0x93, 0xfe, 0x42, 0x40, 0x9b, 0xae, 0x53, 0xa9,
-	0x42, 0x95, 0x56, 0xe3, 0xf5, 0xd8, 0x1e, 0xb2, 0xbb, 0xb3, 0xcc, 0x8c, 0x93, 0x9a, 0x0a, 0xa9,
-	0xed, 0xad, 0xe7, 0xaa, 0x6a, 0xd5, 0x4b, 0x25, 0xfe, 0x85, 0x8a, 0x5e, 0x7b, 0xef, 0xb1, 0xbd,
-	0xe5, 0xc4, 0xa1, 0x7f, 0x40, 0xcf, 0x3d, 0x55, 0x3b, 0x33, 0xeb, 0xd8, 0xeb, 0xd5, 0xc6, 0x41,
-	0xbd, 0x79, 0xde, 0x9b, 0x6f, 0xe6, 0x7b, 0xdf, 0x7b, 0x3b, 0xef, 0x19, 0x6c, 0xb4, 0x29, 0x6d,
-	0xfb, 0xd8, 0xf6, 0x7c, 0xda, 0x6d, 0xda, 0x02, 0xf9, 0x38, 0x14, 0xf6, 0xfe, 0xed, 0x06, 0x16,
-	0x68, 0xc3, 0x8e, 0x18, 0x6d, 0x11, 0x1f, 0xbb, 0x1c, 0xb3, 0x7d, 0xe2, 0xe1, 0x4a, 0xc4, 0xa8,
-	0xa0, 0x70, 0x45, 0x41, 0x2a, 0x12, 0x52, 0x51, 0x90, 0x8a, 0x86, 0x94, 0x2f, 0xe8, 0xf3, 0x50,
-	0x44, 0x6c, 0x14, 0x86, 0x54, 0x20, 0x41, 0x68, 0xc8, 0x15, 0xb4, 0x7c, 0x6e, 0xc0, 0xeb, 0xf9,
-	0x24, 0x06, 0x2a, 0xc7, 0xa5, 0x01, 0x47, 0x8b, 0x60, 0xbf, 0xe9, 0x36, 0x70, 0x07, 0xed, 0x13,
-	0xca, 0xf4, 0x86, 0xf3, 0x03, 0x1b, 0x18, 0xe6, 0xb4, 0xcb, 0x12, 0x3e, 0xe5, 0xb5, 0xbc, 0x10,
-	0x3c, 0x1a, 0x04, 0x34, 0xd4, 0x3b, 0xaf, 0xe6, 0xed, 0x6c, 0x11, 0x5f, 0x60, 0x96, 0x30, 0xbd,
-	0x96, 0xb7, 0xb5, 0x43, 0xb8, 0xa0, 0x6d, 0x86, 0x82, 0x71, 0xce, 0xd5, 0x22, 0xea, 0xad, 0x97,
-	0xf5, 0x56, 0x9f, 0x86, 0x6d, 0xd6, 0x0d, 0x43, 0x12, 0xb6, 0x6d, 0x1a, 0x61, 0x36, 0x24, 0x53,
-	0x12, 0xac, 0x5c, 0x35, 0xba, 0x2d, 0x1b, 0x85, 0x3d, 0xed, 0x5a, 0x49, 0xbb, 0x70, 0x10, 0x89,
-	0xc4, 0xb9, 0x9a, 0x76, 0x2a, 0x29, 0x03, 0xc4, 0xf7, 0x52, 0x09, 0x60, 0x91, 0x67, 0x73, 0x81,
-	0x44, 0x57, 0x5f, 0x69, 0xfd, 0x6e, 0x80, 0xc5, 0x47, 0x84, 0x8b, 0x1d, 0xc5, 0x96, 0x3b, 0xf8,
-	0x59, 0x17, 0x73, 0x01, 0x57, 0x40, 0x21, 0x42, 0x0c, 0x87, 0xc2, 0x34, 0x56, 0x8d, 0xb5, 0xd9,
-	0xad, 0xc9, 0xd7, 0xb5, 0x09, 0x47, 0x9b, 0xe0, 0x32, 0x28, 0x28, 0xd5, 0xcc, 0xe9, 0xd8, 0xe9,
-	0xe8, 0x15, 0xbc, 0x08, 0x40, 0x84, 0xda, 0xd8, 0x15, 0x74, 0x0f, 0x87, 0xe6, 0x84, 0xf4, 0xcd,
-	0xc6, 0x96, 0xdd, 0xd8, 0x00, 0x57, 0x80, 0x5c, 0xb8, 0x9c, 0x3c, 0xc7, 0xe6, 0xe4, 0xaa, 0xb1,
-	0x36, 0xed, 0x14, 0x63, 0x43, 0x9d, 0x3c, 0xc7, 0xf0, 0x0e, 0x98, 0x65, 0x18, 0x29, 0xd2, 0xe6,
-	0xd4, 0xaa, 0xb1, 0x36, 0x57, 0x2d, 0x57, 0x74, 0xc5, 0x25, 0x71, 0x55, 0x3e, 0x88, 0xe3, 0x7a,
-	0x8c, 0xf8, 0x9e, 0x53, 0x8c, 0x37, 0xc7, 0xbf, 0xac, 0xaf, 0x0d, 0xb0, 0x34, 0x1c, 0x01, 0x8f,
-	0x68, 0xc8, 0x31, 0xbc, 0x0f, 0x8a, 0x3a, 0x07, 0xdc, 0x34, 0x56, 0x27, 0xd7, 0xe6, 0xaa, 0x6f,
-	0x55, 0x72, 0x4a, 0xb8, 0xa2, 0x0f, 0x70, 0xfa, 0x28, 0x78, 0x05, 0x9c, 0x0e, 0xf1, 0x97, 0xc2,
-	0x1d, 0x09, 0xaa, 0x14, 0x9b, 0x77, 0x92, 0xc0, 0xac, 0x1f, 0x0d, 0xb0, 0xb4, 0xcd, 0x30, 0x12,
-	0x38, 0x39, 0x43, 0xab, 0xb8, 0x99, 0x52, 0xd1, 0x7a, 0x5d, 0x9b, 0xf8, 0xb7, 0x76, 0x01, 0x94,
-	0x9f, 0xd2, 0x06, 0xd7, 0x64, 0x50, 0x44, 0x78, 0xc5, 0xa3, 0x81, 0xbd, 0x8b, 0x43, 0x14, 0x8a,
-	0xbe, 0xc8, 0xdb, 0x60, 0x46, 0x13, 0x91, 0x97, 0x8e, 0xc9, 0x5e, 0x25, 0x2a, 0x41, 0x5a, 0x8f,
-	0xc0, 0xc2, 0x87, 0x58, 0xa4, 0x58, 0xdd, 0x01, 0x53, 0x21, 0x0a, 0xb0, 0xe6, 0x74, 0x59, 0x72,
-	0xba, 0x08, 0x56, 0xb2, 0x38, 0x25, 0x48, 0x09, 0xb0, 0x7e, 0x32, 0xc0, 0xd2, 0x67, 0x51, 0x73,
-	0x34, 0xce, 0x01, 0xae, 0xc6, 0x9b, 0x72, 0x85, 0x77, 0xc1, 0x5c, 0x57, 0x1e, 0xae, 0x6a, 0x60,
-	0xe2, 0xd8, 0x1a, 0x00, 0x6a, 0xbb, 0xac, 0x82, 0x4f, 0xc0, 0xd2, 0x7b, 0xd8, 0xc7, 0x23, 0xcc,
-	0xde, 0x38, 0xd6, 0x7f, 0xa6, 0xc0, 0xd9, 0x3a, 0x46, 0xcc, 0xeb, 0xa4, 0x3f, 0x8d, 0x2b, 0xa9,
-	0xa4, 0xce, 0xcb, 0x43, 0x8b, 0xa0, 0x90, 0x4a, 0xe0, 0x17, 0xe0, 0x0c, 0x53, 0x10, 0x37, 0xc0,
-	0x02, 0x35, 0x91, 0x40, 0x3a, 0xa8, 0xeb, 0xb9, 0xea, 0xe8, 0x7b, 0x1e, 0x6b, 0x8c, 0x52, 0xe9,
-	0x34, 0x1b, 0xb6, 0xc2, 0x8f, 0x41, 0x29, 0x79, 0xa6, 0x9f, 0x75, 0x31, 0xeb, 0xc9, 0x0f, 0x6a,
-	0xae, 0x7a, 0x75, 0x1c, 0xe1, 0x3f, 0x8d, 0x01, 0xce, 0xa9, 0x68, 0x60, 0x35, 0xfc, 0x71, 0x4e,
-	0xa5, 0x3e, 0xce, 0xe1, 0x0f, 0x7b, 0x3a, 0xfd, 0x61, 0x2f, 0x83, 0x02, 0x6d, 0xb5, 0x38, 0x16,
-	0x66, 0x41, 0x02, 0xf5, 0x0a, 0x56, 0xc0, 0x62, 0x93, 0x70, 0xd4, 0x88, 0x5b, 0x49, 0x84, 0x7d,
-	0xdf, 0xf5, 0x3a, 0xd8, 0xdb, 0x33, 0x67, 0x56, 0x8d, 0xb5, 0xa2, 0xb3, 0xa0, 0x5d, 0xf5, 0xd8,
-	0xb3, 0x1d, 0x3b, 0xe0, 0x79, 0x50, 0xa4, 0xac, 0x89, 0x99, 0xdb, 0xe8, 0x99, 0x45, 0x79, 0xc9,
-	0x8c, 0x5c, 0x6f, 0xf5, 0xe2, 0xa3, 0x3c, 0xc4, 0xe3, 0x96, 0x14, 0x72, 0x22, 0xc8, 0x3e, 0x76,
-	0x39, 0x65, 0xc2, 0x9c, 0x55, 0x47, 0xc5, 0xae, 0x7a, 0xe2, 0xa9, 0x53, 0x26, 0xe0, 0xe7, 0x60,
-	0xa1, 0xff, 0x5a, 0x4b, 0x81, 0x08, 0xe6, 0x26, 0x90, 0xaf, 0xc0, 0xb5, 0x5c, 0x89, 0x3e, 0x4a,
-	0x50, 0x4a, 0xa4, 0x33, 0x9d, 0xc1, 0x35, 0xc1, 0x1c, 0x5a, 0xa0, 0xc4, 0x30, 0xef, 0xfa, 0xc2,
-	0xe5, 0x58, 0xb8, 0xa4, 0x69, 0x9e, 0x92, 0x4c, 0xe7, 0x94, 0xb1, 0x8e, 0xc5, 0x83, 0x26, 0xbc,
-	0x0d, 0x96, 0xb9, 0x60, 0xc4, 0x13, 0xee, 0x1e, 0xee, 0x1d, 0x50, 0xd6, 0xe4, 0x2e, 0x97, 0xb5,
-	0x64, 0x96, 0x24, 0xe1, 0x25, 0xe5, 0x7d, 0xa8, 0x9d, 0xaa, 0xce, 0xac, 0xef, 0xa6, 0xc0, 0x72,
-	0xba, 0xe4, 0xf4, 0x5b, 0x76, 0x13, 0x2c, 0x61, 0x2e, 0x48, 0x80, 0x04, 0x6e, 0xba, 0x82, 0x0a,
-	0xe4, 0xab, 0x44, 0xc5, 0x15, 0x38, 0xe9, 0xc0, 0xbe, 0x6f, 0x37, 0x76, 0xc9, 0x94, 0x3d, 0x01,
-	0x67, 0xb4, 0xe6, 0x94, 0x31, 0xec, 0xc5, 0x6d, 0x46, 0x57, 0x9f, 0x9d, 0x1b, 0xbf, 0x4c, 0x07,
-	0x09, 0xdb, 0xdb, 0x7d, 0x98, 0x73, 0x5a, 0x1e, 0x74, 0x64, 0x80, 0x0f, 0x40, 0xb1, 0x5f, 0xd1,
-	0xaa, 0xec, 0x6e, 0x1c, 0x53, 0xd1, 0x2a, 0x8c, 0xa4, 0x78, 0x9d, 0x3e, 0x3c, 0xeb, 0x89, 0x9d,
-	0xca, 0x78, 0x62, 0x21, 0x01, 0xe7, 0x86, 0xf3, 0xd9, 0x73, 0x95, 0xe0, 0xdc, 0x9c, 0x96, 0x59,
-	0xdd, 0x38, 0x49, 0x56, 0x25, 0xd2, 0x39, 0xdb, 0xc9, 0xb0, 0x72, 0xe8, 0x82, 0x45, 0xde, 0x0d,
-	0x02, 0xc4, 0xc8, 0x73, 0xdc, 0x74, 0xfb, 0x2d, 0xa4, 0x20, 0xaf, 0xa9, 0xe4, 0x8b, 0xd7, 0xc7,
-	0x25, 0x8f, 0x09, 0xe4, 0x69, 0x53, 0x46, 0x05, 0xcd, 0x8c, 0x54, 0x90, 0xf5, 0x83, 0x01, 0x16,
-	0x46, 0x4e, 0xfb, 0x1f, 0x5a, 0xda, 0x3d, 0x30, 0xa3, 0x18, 0xf5, 0x4e, 0xd2, 0x55, 0x9c, 0x04,
-	0x54, 0xfd, 0x65, 0x16, 0xcc, 0x6b, 0x63, 0x5d, 0x4d, 0x87, 0xf0, 0x95, 0x01, 0x4e, 0x0d, 0x36,
-	0x60, 0x78, 0x33, 0xf7, 0xc8, 0x8c, 0x69, 0xa3, 0xbc, 0x71, 0x02, 0x84, 0x2a, 0x25, 0xeb, 0xfe,
-	0x61, 0x4d, 0x3f, 0xb4, 0xdf, 0xfe, 0xf5, 0xf7, 0xf7, 0x13, 0x1b, 0xd0, 0xee, 0x4f, 0x5e, 0x5f,
-	0x29, 0xfb, 0xbb, 0x11, 0xa3, 0x4f, 0xb1, 0x27, 0xb8, 0xbd, 0x6e, 0x0b, 0xf9, 0x34, 0x73, 0x7b,
-	0xfd, 0x85, 0xdd, 0x97, 0xe2, 0x95, 0x01, 0x4a, 0x43, 0x5d, 0x1b, 0xe6, 0xd3, 0xc8, 0xea, 0xf0,
-	0xe5, 0xb1, 0xe4, 0xb3, 0x1e, 0x1e, 0xd6, 0xe6, 0x15, 0xa9, 0xeb, 0xfa, 0x7a, 0x49, 0xfa, 0xb6,
-	0x75, 0x52, 0xd2, 0x9b, 0xc6, 0x3a, 0x7c, 0x69, 0x00, 0x70, 0xd4, 0xd4, 0x61, 0x7e, 0x45, 0x8e,
-	0x74, 0xff, 0x31, 0x19, 0xdf, 0x3b, 0xac, 0xc9, 0x3e, 0x38, 0x2a, 0x6e, 0x6c, 0xcd, 0x64, 0xd9,
-	0x27, 0x69, 0xaf, 0xbf, 0x80, 0xbf, 0x19, 0xa0, 0x34, 0x34, 0x2a, 0x1c, 0x23, 0x6e, 0xd6, 0x58,
-	0x31, 0x26, 0xd5, 0x47, 0x87, 0xb5, 0x99, 0x41, 0x55, 0xdf, 0xa9, 0xde, 0x19, 0x50, 0x55, 0x4f,
-	0xe1, 0x63, 0xb1, 0x8e, 0xd5, 0xfd, 0xd9, 0x00, 0xa5, 0xa1, 0x49, 0xe2, 0x18, 0xe2, 0x59, 0x53,
-	0x47, 0x79, 0x79, 0x64, 0x6a, 0x79, 0x3f, 0x1e, 0xd7, 0x53, 0xaa, 0xae, 0x9f, 0x58, 0xd5, 0x5f,
-	0x0d, 0x30, 0x3f, 0xdc, 0x21, 0x60, 0x35, 0xff, 0x41, 0xca, 0x9a, 0x60, 0xca, 0xb7, 0x4e, 0x84,
-	0xd1, 0x1f, 0xdc, 0xdb, 0x92, 0x74, 0xd5, 0xba, 0x31, 0x5e, 0xc9, 0x6e, 0xaa, 0x86, 0xb7, 0x69,
-	0xac, 0x97, 0xfd, 0x3f, 0x6a, 0x8b, 0x19, 0x03, 0xd7, 0x9f, 0xb5, 0x7a, 0x47, 0x88, 0x88, 0x6f,
-	0xda, 0xf6, 0xc1, 0xc1, 0x41, 0x7a, 0x1a, 0x43, 0x5d, 0xd1, 0x51, 0x7f, 0xac, 0x6e, 0x44, 0x3e,
-	0x12, 0x2d, 0xca, 0x82, 0xeb, 0xc7, 0x6d, 0x8f, 0x2f, 0xd9, 0xfa, 0xc6, 0x00, 0x97, 0x3c, 0x1a,
-	0xe4, 0x85, 0xb8, 0xb5, 0x38, 0xfc, 0x84, 0xed, 0xc4, 0x59, 0xda, 0x31, 0x9e, 0xd4, 0x34, 0xa6,
-	0x4d, 0x7d, 0x14, 0xb6, 0x2b, 0x94, 0xb5, 0xed, 0x36, 0x0e, 0x65, 0x0e, 0xed, 0xa3, 0xfb, 0x32,
-	0xff, 0xee, 0xdd, 0x55, 0xcb, 0x97, 0x13, 0x93, 0xdb, 0xbb, 0xf5, 0x46, 0x41, 0x62, 0x6e, 0xfd,
-	0x17, 0x00, 0x00, 0xff, 0xff, 0x33, 0x90, 0xcf, 0x08, 0x66, 0x0f, 0x00, 0x00,
+	// 1317 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x57, 0xcd, 0x6f, 0x1b, 0x45,
+	0x14, 0xd7, 0xe6, 0xd3, 0x99, 0xd4, 0x6d, 0x33, 0x49, 0xd3, 0xad, 0xd3, 0xaa, 0xd1, 0x16, 0xa1,
+	0x34, 0x6d, 0xbd, 0x8d, 0x5b, 0xa9, 0x28, 0x85, 0xaa, 0x4e, 0xf8, 0xaa, 0xda, 0x42, 0x58, 0x07,
+	0x09, 0x55, 0x48, 0xab, 0xf1, 0xfa, 0xd9, 0xde, 0x66, 0x77, 0x67, 0x3b, 0x33, 0x4e, 0x70, 0x51,
+	0x25, 0x40, 0x5c, 0x38, 0x23, 0x04, 0xe2, 0x82, 0xd4, 0x7f, 0x01, 0x95, 0x2b, 0x77, 0x8e, 0x70,
+	0xcb, 0xa9, 0x07, 0xfe, 0x0a, 0x4e, 0x68, 0x67, 0x66, 0x5d, 0x7f, 0xac, 0x36, 0x4e, 0xe1, 0xe6,
+	0x79, 0x6f, 0x7e, 0x33, 0xbf, 0xf7, 0x7b, 0x6f, 0xe7, 0x3d, 0xa3, 0x8d, 0x16, 0xa5, 0xad, 0x00,
+	0x6c, 0x2f, 0xa0, 0x9d, 0x86, 0x2d, 0x48, 0x00, 0x91, 0xb0, 0xf7, 0x6f, 0xd6, 0x41, 0x90, 0x0d,
+	0x3b, 0x66, 0xb4, 0xe9, 0x07, 0xe0, 0x72, 0x60, 0xfb, 0xbe, 0x07, 0xe5, 0x98, 0x51, 0x41, 0xf1,
+	0x8a, 0x82, 0x94, 0x25, 0xa4, 0xac, 0x20, 0x65, 0x0d, 0x29, 0x9d, 0xd7, 0xe7, 0x91, 0xd8, 0xb7,
+	0x49, 0x14, 0x51, 0x41, 0x84, 0x4f, 0x23, 0xae, 0xa0, 0xa5, 0xb3, 0x7d, 0x5e, 0x2f, 0xf0, 0x13,
+	0xa0, 0x72, 0x5c, 0xec, 0x73, 0x34, 0x7d, 0x08, 0x1a, 0x6e, 0x1d, 0xda, 0x64, 0xdf, 0xa7, 0x4c,
+	0x6f, 0x38, 0xd7, 0xb7, 0x81, 0x01, 0xa7, 0x1d, 0x96, 0xf2, 0x29, 0xad, 0xe5, 0x85, 0xe0, 0xd1,
+	0x30, 0xa4, 0x91, 0xde, 0x79, 0x39, 0x6f, 0x67, 0xd3, 0x0f, 0x04, 0xb0, 0x94, 0xe9, 0x95, 0xbc,
+	0xad, 0x6d, 0x9f, 0x0b, 0xda, 0x62, 0x24, 0x1c, 0xe7, 0x5c, 0x2d, 0xa2, 0xde, 0x7a, 0x49, 0x6f,
+	0x0d, 0x68, 0xd4, 0x62, 0x9d, 0x28, 0xf2, 0xa3, 0x96, 0x4d, 0x63, 0x60, 0x03, 0x32, 0xa5, 0xc1,
+	0xca, 0x55, 0xbd, 0xd3, 0xb4, 0x49, 0xd4, 0xd5, 0xae, 0x95, 0x61, 0x17, 0x84, 0xb1, 0x48, 0x9d,
+	0xab, 0xc3, 0x4e, 0x25, 0x65, 0x48, 0xf8, 0xde, 0x50, 0x02, 0x58, 0xec, 0xd9, 0x5c, 0x10, 0xd1,
+	0xd1, 0x57, 0x5a, 0xbf, 0x1b, 0x68, 0xf1, 0x81, 0xcf, 0xc5, 0x8e, 0x62, 0xcb, 0x1d, 0x78, 0xd2,
+	0x01, 0x2e, 0xf0, 0x0a, 0x9a, 0x89, 0x09, 0x83, 0x48, 0x98, 0xc6, 0xaa, 0xb1, 0x36, 0xb7, 0x35,
+	0xf9, 0xb2, 0x3a, 0xe1, 0x68, 0x13, 0x5e, 0x46, 0x33, 0x4a, 0x35, 0x73, 0x3a, 0x71, 0x3a, 0x7a,
+	0x85, 0x2f, 0x20, 0x14, 0x93, 0x16, 0xb8, 0x82, 0xee, 0x41, 0x64, 0x4e, 0x48, 0xdf, 0x5c, 0x62,
+	0xd9, 0x4d, 0x0c, 0x78, 0x05, 0xc9, 0x85, 0xcb, 0xfd, 0xa7, 0x60, 0x4e, 0xae, 0x1a, 0x6b, 0xd3,
+	0x4e, 0x21, 0x31, 0xd4, 0xfc, 0xa7, 0x80, 0x6f, 0xa1, 0x39, 0x06, 0x44, 0x91, 0x36, 0xa7, 0x56,
+	0x8d, 0xb5, 0xf9, 0x4a, 0xa9, 0xac, 0x2b, 0x2e, 0x8d, 0xab, 0xfc, 0x7e, 0x12, 0xd7, 0x43, 0xc2,
+	0xf7, 0x9c, 0x42, 0xb2, 0x39, 0xf9, 0x65, 0x7d, 0x65, 0xa0, 0xa5, 0xc1, 0x08, 0x78, 0x4c, 0x23,
+	0x0e, 0xf8, 0x2e, 0x2a, 0xe8, 0x1c, 0x70, 0xd3, 0x58, 0x9d, 0x5c, 0x9b, 0xaf, 0xbc, 0x51, 0xce,
+	0x29, 0xe1, 0xb2, 0x3e, 0xc0, 0xe9, 0xa1, 0xf0, 0x9b, 0xe8, 0x54, 0x04, 0x5f, 0x08, 0x77, 0x24,
+	0xa8, 0x62, 0x62, 0xde, 0x49, 0x03, 0xb3, 0x7e, 0x34, 0xd0, 0xd2, 0x36, 0x03, 0x22, 0x20, 0x3d,
+	0x43, 0xab, 0xb8, 0x39, 0xa4, 0xa2, 0xf5, 0xb2, 0x3a, 0xf1, 0x4f, 0xf5, 0x3c, 0x2a, 0x3d, 0xa6,
+	0x75, 0xae, 0xc9, 0x90, 0xd8, 0xe7, 0x65, 0x8f, 0x86, 0xf6, 0x2e, 0x44, 0x24, 0x12, 0x3d, 0x91,
+	0xb7, 0xd1, 0xac, 0x26, 0x22, 0x2f, 0x1d, 0x93, 0xbd, 0x4a, 0x54, 0x8a, 0xb4, 0x1e, 0xa0, 0x85,
+	0x0f, 0x40, 0x0c, 0xb1, 0xba, 0x85, 0xa6, 0x22, 0x12, 0x82, 0xe6, 0x74, 0x49, 0x72, 0xba, 0x80,
+	0x56, 0xb2, 0x38, 0xa5, 0x48, 0x09, 0xb0, 0x7e, 0x32, 0xd0, 0xd2, 0xa7, 0x71, 0x63, 0x34, 0xce,
+	0x3e, 0xae, 0xc6, 0xeb, 0x72, 0xc5, 0xb7, 0xd1, 0x7c, 0x47, 0x1e, 0xae, 0x6a, 0x60, 0xe2, 0xc8,
+	0x1a, 0x40, 0x6a, 0xbb, 0xac, 0x82, 0x8f, 0xd1, 0xd2, 0xbb, 0x10, 0xc0, 0x08, 0xb3, 0xd7, 0x8e,
+	0xf5, 0xdb, 0x69, 0x74, 0xa6, 0x06, 0x84, 0x79, 0xed, 0xe1, 0x4f, 0xe3, 0xbf, 0x24, 0xf5, 0x73,
+	0x74, 0x9a, 0xa9, 0x63, 0xdc, 0x10, 0x04, 0x69, 0x10, 0x41, 0x74, 0xa0, 0x57, 0x73, 0x15, 0xd3,
+	0x77, 0x3f, 0xd4, 0x18, 0xa5, 0xdc, 0x29, 0x36, 0x68, 0xc5, 0x1f, 0xa1, 0x62, 0xfa, 0x74, 0x3f,
+	0xe9, 0x00, 0xeb, 0xca, 0x8f, 0x6c, 0xbe, 0x72, 0x79, 0x9c, 0x64, 0x7c, 0x92, 0x00, 0x9c, 0x13,
+	0x71, 0xdf, 0x6a, 0xf0, 0x83, 0x9d, 0x1a, 0xfa, 0x60, 0x07, 0x3f, 0xf6, 0xe9, 0xe1, 0x8f, 0x7d,
+	0x19, 0xcd, 0xd0, 0x66, 0x93, 0x83, 0x30, 0x67, 0x24, 0x50, 0xaf, 0x70, 0x19, 0x2d, 0x36, 0x7c,
+	0x4e, 0xea, 0x49, 0x7b, 0x89, 0x21, 0x08, 0x5c, 0xaf, 0x0d, 0xde, 0x9e, 0x39, 0xbb, 0x6a, 0xac,
+	0x15, 0x9c, 0x05, 0xed, 0xaa, 0x25, 0x9e, 0xed, 0xc4, 0x81, 0xcf, 0xa1, 0x02, 0x65, 0x0d, 0x60,
+	0x6e, 0xbd, 0x6b, 0x16, 0xe4, 0x25, 0xb3, 0x72, 0xbd, 0xd5, 0x4d, 0x8e, 0xf2, 0x08, 0x4f, 0xda,
+	0x54, 0xc4, 0x7d, 0xe1, 0xef, 0x83, 0xcb, 0x29, 0x13, 0xe6, 0x9c, 0x3a, 0x2a, 0x71, 0xd5, 0x52,
+	0x4f, 0x8d, 0x32, 0x81, 0x3f, 0x43, 0x0b, 0xbd, 0x17, 0x5c, 0x0a, 0xe4, 0x03, 0x37, 0x91, 0x7c,
+	0x19, 0xae, 0xe4, 0x4a, 0xf4, 0x61, 0x8a, 0x52, 0x22, 0x9d, 0x6e, 0xf7, 0xaf, 0x7d, 0xe0, 0xd8,
+	0x42, 0x45, 0x06, 0xbc, 0x13, 0x08, 0x97, 0x83, 0x70, 0xfd, 0x86, 0x79, 0x42, 0x32, 0x9d, 0x57,
+	0xc6, 0x1a, 0x88, 0x7b, 0x0d, 0x7c, 0x13, 0x2d, 0x73, 0xc1, 0x7c, 0x4f, 0xb8, 0x7b, 0xd0, 0x3d,
+	0xa0, 0xac, 0xc1, 0x5d, 0x2e, 0xeb, 0xcb, 0x2c, 0x4a, 0xc2, 0x4b, 0xca, 0x7b, 0x5f, 0x3b, 0x55,
+	0xed, 0x59, 0xdf, 0x4d, 0xa1, 0xe5, 0xe1, 0x32, 0xd4, 0xef, 0xdb, 0x75, 0xb4, 0x04, 0x5c, 0xf8,
+	0x21, 0x11, 0xd0, 0x70, 0x05, 0x15, 0x24, 0x50, 0x89, 0x4a, 0xaa, 0x72, 0xd2, 0xc1, 0x3d, 0xdf,
+	0x6e, 0xe2, 0x92, 0x29, 0x7b, 0x84, 0x4e, 0x6b, 0xcd, 0x29, 0x63, 0xe0, 0x25, 0xad, 0x47, 0x57,
+	0x9f, 0x9d, 0x1b, 0xbf, 0x4c, 0x87, 0x1f, 0xb5, 0xb6, 0x7b, 0x30, 0xe7, 0x94, 0x3c, 0xe8, 0x95,
+	0x01, 0xdf, 0x43, 0x85, 0x5e, 0x45, 0xab, 0xb2, 0xbb, 0x76, 0x44, 0x45, 0xab, 0x30, 0xd2, 0xe2,
+	0x75, 0x7a, 0xf0, 0xac, 0x67, 0x77, 0x2a, 0xe3, 0xd9, 0xc5, 0x3e, 0x3a, 0x3b, 0x98, 0xcf, 0xae,
+	0xab, 0x04, 0xe7, 0xe6, 0xb4, 0xcc, 0xea, 0xc6, 0x71, 0xb2, 0x2a, 0x91, 0xce, 0x99, 0x76, 0x86,
+	0x95, 0x63, 0x17, 0x2d, 0xf2, 0x4e, 0x18, 0x12, 0xe6, 0x3f, 0x85, 0x86, 0xdb, 0x6b, 0x2b, 0x33,
+	0xf2, 0x9a, 0x72, 0xbe, 0x78, 0x3d, 0x5c, 0xfa, 0xc0, 0x60, 0x3e, 0x6c, 0xca, 0xa8, 0xa0, 0xd9,
+	0x91, 0x0a, 0xb2, 0x7e, 0x30, 0xd0, 0xc2, 0xc8, 0x69, 0xff, 0x43, 0x9b, 0xbb, 0x83, 0x66, 0x15,
+	0xa3, 0xee, 0x71, 0x3a, 0x8d, 0x93, 0x82, 0x2a, 0xbf, 0xcc, 0xa1, 0x93, 0xda, 0x58, 0x53, 0x13,
+	0x23, 0x7e, 0x61, 0xa0, 0x13, 0xfd, 0x4d, 0x19, 0x5f, 0xcf, 0x3d, 0x32, 0x63, 0x02, 0x29, 0x6d,
+	0x1c, 0x03, 0xa1, 0x4a, 0xc9, 0xba, 0x7b, 0x58, 0xd5, 0x0f, 0xed, 0x37, 0x7f, 0xfd, 0xfd, 0xfd,
+	0xc4, 0x06, 0xb6, 0x7b, 0xd3, 0xd8, 0x97, 0xca, 0xfe, 0x4e, 0xcc, 0xe8, 0x63, 0xf0, 0x04, 0xb7,
+	0xd7, 0x6d, 0x21, 0x9f, 0x66, 0x6e, 0xaf, 0x3f, 0xb3, 0x7b, 0x52, 0xbc, 0x30, 0x50, 0x71, 0xa0,
+	0x93, 0xe3, 0x7c, 0x1a, 0x59, 0x5d, 0xbf, 0x34, 0x96, 0x7c, 0xd6, 0xfd, 0xc3, 0xea, 0x49, 0x45,
+	0xea, 0xaa, 0xbe, 0x5e, 0x92, 0xbe, 0x69, 0x1d, 0x97, 0xf4, 0xa6, 0xb1, 0x8e, 0x9f, 0x1b, 0x08,
+	0xbd, 0x6a, 0xf4, 0x38, 0xbf, 0x22, 0x47, 0x26, 0x82, 0x31, 0x19, 0xdf, 0x39, 0xac, 0xca, 0xde,
+	0x38, 0x2a, 0x6e, 0x62, 0xcd, 0x64, 0xd9, 0x23, 0x69, 0xaf, 0x3f, 0xc3, 0xbf, 0x19, 0xa8, 0x38,
+	0x30, 0x3e, 0x1c, 0x21, 0x6e, 0xd6, 0xa8, 0x31, 0x26, 0xd5, 0x07, 0x87, 0xd5, 0xd9, 0x7e, 0x55,
+	0xdf, 0xae, 0xdc, 0xea, 0x53, 0x55, 0x4f, 0xe6, 0x63, 0xb1, 0x4e, 0xd4, 0xfd, 0xd9, 0x40, 0xc5,
+	0x81, 0xe9, 0xe2, 0x08, 0xe2, 0x59, 0x93, 0x48, 0x69, 0x79, 0x64, 0x92, 0x79, 0x2f, 0x19, 0xe1,
+	0x87, 0x54, 0x5d, 0x3f, 0xb6, 0xaa, 0xbf, 0x1a, 0xe8, 0xe4, 0x60, 0x87, 0xc0, 0x95, 0xfc, 0x07,
+	0x29, 0x6b, 0xaa, 0x29, 0xdd, 0x38, 0x16, 0x46, 0x7f, 0x70, 0x6f, 0x49, 0xd2, 0x15, 0xeb, 0xda,
+	0x78, 0x25, 0xbb, 0xa9, 0x1a, 0xde, 0xa6, 0xb1, 0x5e, 0x0a, 0xfe, 0xa8, 0x2e, 0x66, 0xcc, 0x4b,
+	0x7f, 0x56, 0x6b, 0x6d, 0x21, 0x62, 0xbe, 0x69, 0xdb, 0x07, 0x07, 0x07, 0xc3, 0xc3, 0x14, 0xe9,
+	0x88, 0xb6, 0xfa, 0xb3, 0x75, 0x2d, 0x0e, 0x88, 0x68, 0x52, 0x16, 0x5e, 0x3d, 0x6a, 0x7b, 0x72,
+	0xc9, 0xd6, 0xd7, 0x06, 0xba, 0xe8, 0xd1, 0x30, 0x2f, 0xc4, 0xad, 0xc5, 0xc1, 0x27, 0x6c, 0x27,
+	0xc9, 0xd2, 0x8e, 0xf1, 0xa8, 0xaa, 0x31, 0x2d, 0x1a, 0x90, 0xa8, 0x55, 0xa6, 0xac, 0x65, 0xb7,
+	0x20, 0x92, 0x39, 0xb4, 0x5f, 0xdd, 0x97, 0xf9, 0x17, 0xf0, 0xb6, 0x5a, 0x3e, 0x9f, 0x98, 0xdc,
+	0xde, 0xad, 0xd5, 0x67, 0x24, 0xe6, 0xc6, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, 0x4c, 0xb7, 0x04,
+	0x74, 0x7a, 0x0f, 0x00, 0x00,
 }
 
 // Reference imports to suppress errors if they are not otherwise used.
diff --git a/googleapis/maps/roads/v1op/roads.pb.go b/googleapis/maps/roads/v1op/roads.pb.go
new file mode 100644
index 0000000..317ccda
--- /dev/null
+++ b/googleapis/maps/roads/v1op/roads.pb.go
@@ -0,0 +1,520 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// source: google/maps/roads/v1op/roads.proto
+
+package roads
+
+import (
+	context "context"
+	fmt "fmt"
+	math "math"
+
+	proto "github.com/golang/protobuf/proto"
+	wrappers "github.com/golang/protobuf/ptypes/wrappers"
+	_ "google.golang.org/genproto/googleapis/api/annotations"
+	latlng "google.golang.org/genproto/googleapis/type/latlng"
+	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
+
+// An enum representing the mode of travel used for snapping.
+type TravelMode int32
+
+const (
+	TravelMode_TRAVEL_MODE_UNSPECIFIED TravelMode = 0
+	TravelMode_DRIVING                 TravelMode = 1
+	TravelMode_CYCLING                 TravelMode = 2
+	TravelMode_WALKING                 TravelMode = 3
+)
+
+var TravelMode_name = map[int32]string{
+	0: "TRAVEL_MODE_UNSPECIFIED",
+	1: "DRIVING",
+	2: "CYCLING",
+	3: "WALKING",
+}
+
+var TravelMode_value = map[string]int32{
+	"TRAVEL_MODE_UNSPECIFIED": 0,
+	"DRIVING":                 1,
+	"CYCLING":                 2,
+	"WALKING":                 3,
+}
+
+func (x TravelMode) String() string {
+	return proto.EnumName(TravelMode_name, int32(x))
+}
+
+func (TravelMode) EnumDescriptor() ([]byte, []int) {
+	return fileDescriptor_c8e70e24aafa772e, []int{0}
+}
+
+// A request to the SnapToRoads method, requesting that a sequence of points be
+// snapped to road segments.
+type SnapToRoadsRequest struct {
+	// The path to be snapped as a series of lat, lng points. Specified as
+	// a string of the format: lat,lng|lat,lng|...
+	Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
+	// Whether to interpolate the points to return full road geometry.
+	Interpolate bool `protobuf:"varint,2,opt,name=interpolate,proto3" json:"interpolate,omitempty"`
+	// The asset ID of the asset to which this path relates. This is used for
+	// abuse detection purposes for clients with asset-based SKUs.
+	AssetId string `protobuf:"bytes,3,opt,name=asset_id,json=assetId,proto3" json:"asset_id,omitempty"`
+	// The type of travel being tracked. This will constrain the paths we snap to.
+	TravelMode           TravelMode `protobuf:"varint,4,opt,name=travel_mode,json=travelMode,proto3,enum=google.maps.roads.v1op.TravelMode" json:"travel_mode,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
+	XXX_unrecognized     []byte     `json:"-"`
+	XXX_sizecache        int32      `json:"-"`
+}
+
+func (m *SnapToRoadsRequest) Reset()         { *m = SnapToRoadsRequest{} }
+func (m *SnapToRoadsRequest) String() string { return proto.CompactTextString(m) }
+func (*SnapToRoadsRequest) ProtoMessage()    {}
+func (*SnapToRoadsRequest) Descriptor() ([]byte, []int) {
+	return fileDescriptor_c8e70e24aafa772e, []int{0}
+}
+
+func (m *SnapToRoadsRequest) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_SnapToRoadsRequest.Unmarshal(m, b)
+}
+func (m *SnapToRoadsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_SnapToRoadsRequest.Marshal(b, m, deterministic)
+}
+func (m *SnapToRoadsRequest) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_SnapToRoadsRequest.Merge(m, src)
+}
+func (m *SnapToRoadsRequest) XXX_Size() int {
+	return xxx_messageInfo_SnapToRoadsRequest.Size(m)
+}
+func (m *SnapToRoadsRequest) XXX_DiscardUnknown() {
+	xxx_messageInfo_SnapToRoadsRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_SnapToRoadsRequest proto.InternalMessageInfo
+
+func (m *SnapToRoadsRequest) GetPath() string {
+	if m != nil {
+		return m.Path
+	}
+	return ""
+}
+
+func (m *SnapToRoadsRequest) GetInterpolate() bool {
+	if m != nil {
+		return m.Interpolate
+	}
+	return false
+}
+
+func (m *SnapToRoadsRequest) GetAssetId() string {
+	if m != nil {
+		return m.AssetId
+	}
+	return ""
+}
+
+func (m *SnapToRoadsRequest) GetTravelMode() TravelMode {
+	if m != nil {
+		return m.TravelMode
+	}
+	return TravelMode_TRAVEL_MODE_UNSPECIFIED
+}
+
+// A snapped point object, representing the result of snapping.
+type SnappedPoint struct {
+	// The lat,lng of the snapped location.
+	Location *latlng.LatLng `protobuf:"bytes,1,opt,name=location,proto3" json:"location,omitempty"`
+	// The index into the original path of the equivalent pre-snapped point.
+	// This allows for identification of points which have been interpolated if
+	// this index is missing.
+	OriginalIndex *wrappers.UInt32Value `protobuf:"bytes,2,opt,name=original_index,json=originalIndex,proto3" json:"original_index,omitempty"`
+	// The place ID for this snapped location (road segment). These are the same
+	// as are currently used by the Places API.
+	PlaceId              string   `protobuf:"bytes,3,opt,name=place_id,json=placeId,proto3" json:"place_id,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *SnappedPoint) Reset()         { *m = SnappedPoint{} }
+func (m *SnappedPoint) String() string { return proto.CompactTextString(m) }
+func (*SnappedPoint) ProtoMessage()    {}
+func (*SnappedPoint) Descriptor() ([]byte, []int) {
+	return fileDescriptor_c8e70e24aafa772e, []int{1}
+}
+
+func (m *SnappedPoint) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_SnappedPoint.Unmarshal(m, b)
+}
+func (m *SnappedPoint) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_SnappedPoint.Marshal(b, m, deterministic)
+}
+func (m *SnappedPoint) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_SnappedPoint.Merge(m, src)
+}
+func (m *SnappedPoint) XXX_Size() int {
+	return xxx_messageInfo_SnappedPoint.Size(m)
+}
+func (m *SnappedPoint) XXX_DiscardUnknown() {
+	xxx_messageInfo_SnappedPoint.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_SnappedPoint proto.InternalMessageInfo
+
+func (m *SnappedPoint) GetLocation() *latlng.LatLng {
+	if m != nil {
+		return m.Location
+	}
+	return nil
+}
+
+func (m *SnappedPoint) GetOriginalIndex() *wrappers.UInt32Value {
+	if m != nil {
+		return m.OriginalIndex
+	}
+	return nil
+}
+
+func (m *SnappedPoint) GetPlaceId() string {
+	if m != nil {
+		return m.PlaceId
+	}
+	return ""
+}
+
+// The response from the SnapToRoads method, returning a sequence of snapped
+// points.
+type SnapToRoadsResponse struct {
+	// A list of snapped points.
+	SnappedPoints []*SnappedPoint `protobuf:"bytes,1,rep,name=snapped_points,json=snappedPoints,proto3" json:"snapped_points,omitempty"`
+	// User-visible warning message, if any, which can be shown alongside a valid
+	// result.
+	WarningMessage       string   `protobuf:"bytes,2,opt,name=warning_message,json=warningMessage,proto3" json:"warning_message,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *SnapToRoadsResponse) Reset()         { *m = SnapToRoadsResponse{} }
+func (m *SnapToRoadsResponse) String() string { return proto.CompactTextString(m) }
+func (*SnapToRoadsResponse) ProtoMessage()    {}
+func (*SnapToRoadsResponse) Descriptor() ([]byte, []int) {
+	return fileDescriptor_c8e70e24aafa772e, []int{2}
+}
+
+func (m *SnapToRoadsResponse) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_SnapToRoadsResponse.Unmarshal(m, b)
+}
+func (m *SnapToRoadsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_SnapToRoadsResponse.Marshal(b, m, deterministic)
+}
+func (m *SnapToRoadsResponse) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_SnapToRoadsResponse.Merge(m, src)
+}
+func (m *SnapToRoadsResponse) XXX_Size() int {
+	return xxx_messageInfo_SnapToRoadsResponse.Size(m)
+}
+func (m *SnapToRoadsResponse) XXX_DiscardUnknown() {
+	xxx_messageInfo_SnapToRoadsResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_SnapToRoadsResponse proto.InternalMessageInfo
+
+func (m *SnapToRoadsResponse) GetSnappedPoints() []*SnappedPoint {
+	if m != nil {
+		return m.SnappedPoints
+	}
+	return nil
+}
+
+func (m *SnapToRoadsResponse) GetWarningMessage() string {
+	if m != nil {
+		return m.WarningMessage
+	}
+	return ""
+}
+
+// A request to the ListNearestRoads method, requesting that a sequence of
+// points be snapped individually to the road segment that each is closest to.
+type ListNearestRoadsRequest struct {
+	// The points to be snapped as a series of lat, lng points. Specified as
+	// a string of the format: lat,lng|lat,lng|...
+	Points string `protobuf:"bytes,1,opt,name=points,proto3" json:"points,omitempty"`
+	// The type of travel being tracked. This will constrain the roads we snap to.
+	TravelMode           TravelMode `protobuf:"varint,2,opt,name=travel_mode,json=travelMode,proto3,enum=google.maps.roads.v1op.TravelMode" json:"travel_mode,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
+	XXX_unrecognized     []byte     `json:"-"`
+	XXX_sizecache        int32      `json:"-"`
+}
+
+func (m *ListNearestRoadsRequest) Reset()         { *m = ListNearestRoadsRequest{} }
+func (m *ListNearestRoadsRequest) String() string { return proto.CompactTextString(m) }
+func (*ListNearestRoadsRequest) ProtoMessage()    {}
+func (*ListNearestRoadsRequest) Descriptor() ([]byte, []int) {
+	return fileDescriptor_c8e70e24aafa772e, []int{3}
+}
+
+func (m *ListNearestRoadsRequest) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_ListNearestRoadsRequest.Unmarshal(m, b)
+}
+func (m *ListNearestRoadsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_ListNearestRoadsRequest.Marshal(b, m, deterministic)
+}
+func (m *ListNearestRoadsRequest) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_ListNearestRoadsRequest.Merge(m, src)
+}
+func (m *ListNearestRoadsRequest) XXX_Size() int {
+	return xxx_messageInfo_ListNearestRoadsRequest.Size(m)
+}
+func (m *ListNearestRoadsRequest) XXX_DiscardUnknown() {
+	xxx_messageInfo_ListNearestRoadsRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ListNearestRoadsRequest proto.InternalMessageInfo
+
+func (m *ListNearestRoadsRequest) GetPoints() string {
+	if m != nil {
+		return m.Points
+	}
+	return ""
+}
+
+func (m *ListNearestRoadsRequest) GetTravelMode() TravelMode {
+	if m != nil {
+		return m.TravelMode
+	}
+	return TravelMode_TRAVEL_MODE_UNSPECIFIED
+}
+
+// The response from the ListNearestRoads method, returning a list of snapped
+// points.
+type ListNearestRoadsResponse struct {
+	// A list of snapped points.
+	SnappedPoints        []*SnappedPoint `protobuf:"bytes,1,rep,name=snapped_points,json=snappedPoints,proto3" json:"snapped_points,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
+	XXX_unrecognized     []byte          `json:"-"`
+	XXX_sizecache        int32           `json:"-"`
+}
+
+func (m *ListNearestRoadsResponse) Reset()         { *m = ListNearestRoadsResponse{} }
+func (m *ListNearestRoadsResponse) String() string { return proto.CompactTextString(m) }
+func (*ListNearestRoadsResponse) ProtoMessage()    {}
+func (*ListNearestRoadsResponse) Descriptor() ([]byte, []int) {
+	return fileDescriptor_c8e70e24aafa772e, []int{4}
+}
+
+func (m *ListNearestRoadsResponse) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_ListNearestRoadsResponse.Unmarshal(m, b)
+}
+func (m *ListNearestRoadsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_ListNearestRoadsResponse.Marshal(b, m, deterministic)
+}
+func (m *ListNearestRoadsResponse) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_ListNearestRoadsResponse.Merge(m, src)
+}
+func (m *ListNearestRoadsResponse) XXX_Size() int {
+	return xxx_messageInfo_ListNearestRoadsResponse.Size(m)
+}
+func (m *ListNearestRoadsResponse) XXX_DiscardUnknown() {
+	xxx_messageInfo_ListNearestRoadsResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ListNearestRoadsResponse proto.InternalMessageInfo
+
+func (m *ListNearestRoadsResponse) GetSnappedPoints() []*SnappedPoint {
+	if m != nil {
+		return m.SnappedPoints
+	}
+	return nil
+}
+
+func init() {
+	proto.RegisterEnum("google.maps.roads.v1op.TravelMode", TravelMode_name, TravelMode_value)
+	proto.RegisterType((*SnapToRoadsRequest)(nil), "google.maps.roads.v1op.SnapToRoadsRequest")
+	proto.RegisterType((*SnappedPoint)(nil), "google.maps.roads.v1op.SnappedPoint")
+	proto.RegisterType((*SnapToRoadsResponse)(nil), "google.maps.roads.v1op.SnapToRoadsResponse")
+	proto.RegisterType((*ListNearestRoadsRequest)(nil), "google.maps.roads.v1op.ListNearestRoadsRequest")
+	proto.RegisterType((*ListNearestRoadsResponse)(nil), "google.maps.roads.v1op.ListNearestRoadsResponse")
+}
+
+func init() { proto.RegisterFile("google/maps/roads/v1op/roads.proto", fileDescriptor_c8e70e24aafa772e) }
+
+var fileDescriptor_c8e70e24aafa772e = []byte{
+	// 609 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x54, 0x5f, 0x6f, 0xd3, 0x3e,
+	0x14, 0x5d, 0xba, 0x69, 0x7f, 0x6e, 0xb6, 0xfe, 0x26, 0xef, 0xa7, 0x35, 0x94, 0x09, 0x55, 0x11,
+	0x12, 0xd5, 0x90, 0x12, 0xe8, 0x1e, 0xf7, 0xb4, 0x75, 0x05, 0x45, 0xeb, 0x46, 0x95, 0xfd, 0x41,
+	0xf0, 0x12, 0x79, 0x8d, 0xf1, 0x2c, 0xa5, 0xb6, 0x89, 0xbd, 0x0e, 0xbe, 0x02, 0x7c, 0x08, 0xde,
+	0xf9, 0x28, 0x7c, 0x2a, 0x64, 0x27, 0xd9, 0xb2, 0x41, 0xd1, 0x84, 0xc4, 0x9b, 0x8f, 0xef, 0x39,
+	0x37, 0xe7, 0x9e, 0x2b, 0x07, 0x7c, 0x2a, 0x04, 0xcd, 0x48, 0x38, 0xc1, 0x52, 0x85, 0xb9, 0xc0,
+	0xa9, 0x0a, 0xa7, 0x2f, 0x85, 0x2c, 0x8e, 0x81, 0xcc, 0x85, 0x16, 0x68, 0xb3, 0xe0, 0x04, 0x86,
+	0x13, 0x14, 0x05, 0xc3, 0x69, 0x6f, 0x95, 0x5a, 0x2c, 0x59, 0x88, 0x39, 0x17, 0x1a, 0x6b, 0x26,
+	0x78, 0xa9, 0x6a, 0xb7, 0x6a, 0xd5, 0x71, 0xc6, 0x08, 0xd7, 0x65, 0xe1, 0x49, 0x59, 0xb0, 0xe8,
+	0xe2, 0xea, 0x43, 0x78, 0x9d, 0x63, 0x29, 0x49, 0x5e, 0x09, 0xbd, 0xb2, 0xae, 0x3f, 0x4b, 0x12,
+	0x66, 0x58, 0x67, 0x9c, 0x16, 0x15, 0xff, 0xbb, 0x03, 0xe8, 0x84, 0x63, 0x79, 0x2a, 0x62, 0xe3,
+	0x22, 0x26, 0x1f, 0xaf, 0x88, 0xd2, 0x08, 0xc1, 0x82, 0xc4, 0xfa, 0xd2, 0x73, 0x3a, 0x4e, 0x77,
+	0x25, 0xb6, 0x67, 0xd4, 0x01, 0x97, 0x71, 0x4d, 0x72, 0x29, 0x32, 0xac, 0x89, 0xd7, 0xe8, 0x38,
+	0xdd, 0xe5, 0xb8, 0x7e, 0x85, 0x1e, 0xc1, 0x32, 0x56, 0x8a, 0xe8, 0x84, 0xa5, 0xde, 0xbc, 0x55,
+	0x2e, 0x59, 0x1c, 0xa5, 0xa8, 0x0f, 0xae, 0xce, 0xf1, 0x94, 0x64, 0xc9, 0x44, 0xa4, 0xc4, 0x5b,
+	0xe8, 0x38, 0xdd, 0x66, 0xcf, 0x0f, 0x7e, 0x1f, 0x43, 0x70, 0x6a, 0xa9, 0x47, 0x22, 0x25, 0x31,
+	0xe8, 0x9b, 0xb3, 0xff, 0xcd, 0x81, 0x55, 0x63, 0x56, 0x92, 0x74, 0x24, 0x18, 0xd7, 0x28, 0x84,
+	0xe5, 0x4c, 0x8c, 0x6d, 0x46, 0xd6, 0xaa, 0xdb, 0xdb, 0xa8, 0x5a, 0x9a, 0x51, 0x83, 0x21, 0xd6,
+	0x43, 0x4e, 0xe3, 0x1b, 0x12, 0xea, 0x43, 0x53, 0xe4, 0x8c, 0x32, 0x8e, 0xb3, 0x84, 0xf1, 0x94,
+	0x7c, 0xb2, 0x63, 0xb8, 0xbd, 0xad, 0x4a, 0x56, 0x25, 0x18, 0x9c, 0x45, 0x5c, 0xef, 0xf4, 0xce,
+	0x71, 0x76, 0x45, 0xe2, 0xb5, 0x4a, 0x13, 0x19, 0x89, 0x19, 0x53, 0x66, 0x78, 0x4c, 0x6a, 0x63,
+	0x5a, 0x1c, 0xa5, 0xfe, 0x57, 0x07, 0x36, 0xee, 0xc4, 0xa9, 0xa4, 0xe0, 0x8a, 0xa0, 0x43, 0x68,
+	0xaa, 0xc2, 0x78, 0x22, 0x8d, 0x73, 0xe5, 0x39, 0x9d, 0xf9, 0xae, 0xdb, 0x7b, 0x3a, 0x2b, 0x81,
+	0xfa, 0x98, 0xf1, 0x9a, 0xaa, 0x21, 0x85, 0x9e, 0xc1, 0x7f, 0xd7, 0x38, 0xe7, 0x8c, 0xd3, 0x64,
+	0x42, 0x94, 0xc2, 0xb4, 0x58, 0xc6, 0x4a, 0xdc, 0x2c, 0xaf, 0x8f, 0x8a, 0x5b, 0x7f, 0x0a, 0xad,
+	0x21, 0x53, 0xfa, 0x98, 0xe0, 0x9c, 0x28, 0x7d, 0x67, 0xc1, 0x9b, 0xb0, 0x78, 0x63, 0xc4, 0x48,
+	0x4b, 0x74, 0x7f, 0x4f, 0x8d, 0xbf, 0xda, 0x13, 0x05, 0xef, 0xd7, 0xef, 0xfe, 0x83, 0x24, 0xb6,
+	0x47, 0x00, 0xb7, 0x16, 0xd0, 0x63, 0x68, 0x9d, 0xc6, 0x7b, 0xe7, 0x83, 0x61, 0x72, 0xf4, 0xe6,
+	0x60, 0x90, 0x9c, 0x1d, 0x9f, 0x8c, 0x06, 0xfd, 0xe8, 0x55, 0x34, 0x38, 0x58, 0x9f, 0x43, 0x2e,
+	0x2c, 0x1d, 0xc4, 0xd1, 0x79, 0x74, 0xfc, 0x7a, 0xdd, 0x31, 0xa0, 0xff, 0xae, 0x3f, 0x34, 0xa0,
+	0x61, 0xc0, 0xdb, 0xbd, 0xe1, 0xa1, 0x01, 0xf3, 0xbd, 0x2f, 0x0d, 0x58, 0xb5, 0x86, 0x4f, 0x48,
+	0x3e, 0x65, 0x63, 0x82, 0x2e, 0xc1, 0xad, 0x2d, 0x14, 0x6d, 0xff, 0xc9, 0xe6, 0xdd, 0x47, 0xd4,
+	0x7e, 0xfe, 0x20, 0x6e, 0x91, 0x8b, 0x3f, 0x87, 0xae, 0x61, 0xfd, 0x7e, 0x6a, 0x28, 0x9c, 0xd5,
+	0x62, 0xc6, 0x5e, 0xdb, 0x2f, 0x1e, 0x2e, 0xa8, 0x3e, 0xdc, 0x6e, 0xfd, 0xd8, 0xfb, 0xbf, 0x60,
+	0x16, 0x5a, 0x2c, 0x99, 0x0a, 0xc6, 0x62, 0xb2, 0x4f, 0xa1, 0x3d, 0x16, 0x93, 0x19, 0x1d, 0xf7,
+	0xc1, 0xf6, 0x19, 0x99, 0x07, 0x33, 0x72, 0xde, 0xef, 0x96, 0x2c, 0x2a, 0x32, 0xcc, 0x69, 0x20,
+	0x72, 0x1a, 0x52, 0xc2, 0xed, 0x73, 0x0a, 0x6f, 0xdb, 0xde, 0xff, 0x29, 0xee, 0xda, 0xe3, 0xc5,
+	0xa2, 0xe5, 0xed, 0xfc, 0x0c, 0x00, 0x00, 0xff, 0xff, 0xa8, 0xb6, 0x93, 0xe3, 0x3b, 0x05, 0x00,
+	0x00,
+}
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ context.Context
+var _ grpc.ClientConn
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the grpc package it is being compiled against.
+const _ = grpc.SupportPackageIsVersion4
+
+// RoadsServiceClient is the client API for RoadsService service.
+//
+// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
+type RoadsServiceClient interface {
+	// This method takes a sequence of latitude,longitude points and snaps them to
+	// the most likely road segments. Optionally returns additional points giving
+	// the full road geometry. Also returns a place ID for each snapped point.
+	SnapToRoads(ctx context.Context, in *SnapToRoadsRequest, opts ...grpc.CallOption) (*SnapToRoadsResponse, error)
+	// This method takes a list of latitude,longitude points and snaps them each
+	// to their nearest road. Also returns a place ID for each snapped point.
+	ListNearestRoads(ctx context.Context, in *ListNearestRoadsRequest, opts ...grpc.CallOption) (*ListNearestRoadsResponse, error)
+}
+
+type roadsServiceClient struct {
+	cc *grpc.ClientConn
+}
+
+func NewRoadsServiceClient(cc *grpc.ClientConn) RoadsServiceClient {
+	return &roadsServiceClient{cc}
+}
+
+func (c *roadsServiceClient) SnapToRoads(ctx context.Context, in *SnapToRoadsRequest, opts ...grpc.CallOption) (*SnapToRoadsResponse, error) {
+	out := new(SnapToRoadsResponse)
+	err := c.cc.Invoke(ctx, "/google.maps.roads.v1op.RoadsService/SnapToRoads", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *roadsServiceClient) ListNearestRoads(ctx context.Context, in *ListNearestRoadsRequest, opts ...grpc.CallOption) (*ListNearestRoadsResponse, error) {
+	out := new(ListNearestRoadsResponse)
+	err := c.cc.Invoke(ctx, "/google.maps.roads.v1op.RoadsService/ListNearestRoads", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+// RoadsServiceServer is the server API for RoadsService service.
+type RoadsServiceServer interface {
+	// This method takes a sequence of latitude,longitude points and snaps them to
+	// the most likely road segments. Optionally returns additional points giving
+	// the full road geometry. Also returns a place ID for each snapped point.
+	SnapToRoads(context.Context, *SnapToRoadsRequest) (*SnapToRoadsResponse, error)
+	// This method takes a list of latitude,longitude points and snaps them each
+	// to their nearest road. Also returns a place ID for each snapped point.
+	ListNearestRoads(context.Context, *ListNearestRoadsRequest) (*ListNearestRoadsResponse, error)
+}
+
+// UnimplementedRoadsServiceServer can be embedded to have forward compatible implementations.
+type UnimplementedRoadsServiceServer struct {
+}
+
+func (*UnimplementedRoadsServiceServer) SnapToRoads(ctx context.Context, req *SnapToRoadsRequest) (*SnapToRoadsResponse, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method SnapToRoads not implemented")
+}
+func (*UnimplementedRoadsServiceServer) ListNearestRoads(ctx context.Context, req *ListNearestRoadsRequest) (*ListNearestRoadsResponse, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method ListNearestRoads not implemented")
+}
+
+func RegisterRoadsServiceServer(s *grpc.Server, srv RoadsServiceServer) {
+	s.RegisterService(&_RoadsService_serviceDesc, srv)
+}
+
+func _RoadsService_SnapToRoads_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(SnapToRoadsRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(RoadsServiceServer).SnapToRoads(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/google.maps.roads.v1op.RoadsService/SnapToRoads",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(RoadsServiceServer).SnapToRoads(ctx, req.(*SnapToRoadsRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _RoadsService_ListNearestRoads_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(ListNearestRoadsRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(RoadsServiceServer).ListNearestRoads(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/google.maps.roads.v1op.RoadsService/ListNearestRoads",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(RoadsServiceServer).ListNearestRoads(ctx, req.(*ListNearestRoadsRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+var _RoadsService_serviceDesc = grpc.ServiceDesc{
+	ServiceName: "google.maps.roads.v1op.RoadsService",
+	HandlerType: (*RoadsServiceServer)(nil),
+	Methods: []grpc.MethodDesc{
+		{
+			MethodName: "SnapToRoads",
+			Handler:    _RoadsService_SnapToRoads_Handler,
+		},
+		{
+			MethodName: "ListNearestRoads",
+			Handler:    _RoadsService_ListNearestRoads_Handler,
+		},
+	},
+	Streams:  []grpc.StreamDesc{},
+	Metadata: "google/maps/roads/v1op/roads.proto",
+}
diff --git a/googleapis/maps/routes/v1/route.pb.go b/googleapis/maps/routes/v1/route.pb.go
index 026baa0..13b96a8 100644
--- a/googleapis/maps/routes/v1/route.pb.go
+++ b/googleapis/maps/routes/v1/route.pb.go
@@ -257,6 +257,8 @@
 	// Populated if this journey contains toll roads.
 	// This is an aggregation of the toll information for each RouteLeg into a
 	// single price per every relevant currency.
+	// If this field is set but the estimated_price subfield is not populated,
+	// we know that road contains tolls but we do not know the exact price.
 	TollInfo             *TollInfo `protobuf:"bytes,2,opt,name=toll_info,json=tollInfo,proto3" json:"toll_info,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
 	XXX_unrecognized     []byte    `json:"-"`
@@ -548,12 +550,14 @@
 	return nil
 }
 
+// Encapsulates toll information on a `Route` or on a `RouteLeg`.
 type TollInfo struct {
-	// The monetary amount for the corresponding leg of the journey or the amount
-	// for the entire journey (depending on whether TollInfo is hosted by
-	// RouteLegTravelAdvisory or RouteTravelAdvisory, respectively),
-	// for every relevant currency (multiple entries if paying in multiple
-	// currencies), set if known.
+	// The monetary amount of tolls for the corresponding Route or RouteLeg.
+	// This list contains a money amount for each currency that is expected
+	// to be charged by the toll stations. Typically this list will contain only
+	// one item for routes with tolls in one currency. For international trips,
+	// this list may contain multiple items to reflect tolls in different
+	// currencies.
 	EstimatedPrice       []*money.Money `protobuf:"bytes,2,rep,name=estimated_price,json=estimatedPrice,proto3" json:"estimated_price,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
 	XXX_unrecognized     []byte         `json:"-"`
diff --git a/googleapis/maps/routes/v1/route_service.pb.go b/googleapis/maps/routes/v1/route_service.pb.go
new file mode 100644
index 0000000..f170c1a
--- /dev/null
+++ b/googleapis/maps/routes/v1/route_service.pb.go
@@ -0,0 +1,204 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// source: google/maps/routes/v1/route_service.proto
+
+package routes
+
+import (
+	context "context"
+	fmt "fmt"
+	math "math"
+
+	proto "github.com/golang/protobuf/proto"
+	_ "google.golang.org/genproto/googleapis/api/annotations"
+	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
+
+func init() {
+	proto.RegisterFile("google/maps/routes/v1/route_service.proto", fileDescriptor_3616bef07f2cf21d)
+}
+
+var fileDescriptor_3616bef07f2cf21d = []byte{
+	// 322 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xd2, 0x4c, 0xcf, 0xcf, 0x4f,
+	0xcf, 0x49, 0xd5, 0xcf, 0x4d, 0x2c, 0x28, 0xd6, 0x2f, 0xca, 0x2f, 0x2d, 0x49, 0x2d, 0xd6, 0x2f,
+	0x33, 0x84, 0xb0, 0xe2, 0x8b, 0x53, 0x8b, 0xca, 0x32, 0x93, 0x53, 0xf5, 0x0a, 0x8a, 0xf2, 0x4b,
+	0xf2, 0x85, 0x44, 0x21, 0x4a, 0xf5, 0x40, 0x4a, 0xf5, 0x20, 0x4a, 0xf5, 0xca, 0x0c, 0xa5, 0x64,
+	0xa0, 0x26, 0x24, 0x16, 0x64, 0xea, 0x27, 0xe6, 0xe5, 0xe5, 0x97, 0x24, 0x96, 0x64, 0xe6, 0xe7,
+	0x15, 0x43, 0x34, 0x49, 0x19, 0x61, 0x37, 0x3f, 0x39, 0x3f, 0xb7, 0x00, 0x64, 0x03, 0x44, 0x24,
+	0xbe, 0x28, 0xb5, 0xb0, 0x34, 0xb5, 0xb8, 0x04, 0xaa, 0xc7, 0x98, 0x48, 0x3d, 0xc5, 0x05, 0xf9,
+	0x79, 0xc5, 0x50, 0xd7, 0x49, 0x89, 0x23, 0x39, 0x23, 0x39, 0x27, 0x33, 0x35, 0x0f, 0x6a, 0x9a,
+	0xd1, 0x7e, 0x46, 0x2e, 0xfe, 0x20, 0xb0, 0x96, 0x80, 0xa2, 0xd4, 0xb4, 0xd4, 0xa2, 0xa2, 0xd4,
+	0x14, 0xa1, 0x0e, 0x46, 0x2e, 0x5e, 0x67, 0x88, 0x71, 0x10, 0x29, 0x21, 0x6d, 0x3d, 0xac, 0xbe,
+	0xd3, 0x43, 0x51, 0x15, 0x04, 0x71, 0xa6, 0x94, 0x0e, 0x71, 0x8a, 0x21, 0xee, 0x53, 0x92, 0x69,
+	0xba, 0xfc, 0x64, 0x32, 0x93, 0x98, 0x92, 0xa0, 0x7e, 0x99, 0xa1, 0x55, 0x32, 0xb2, 0x12, 0x2b,
+	0x46, 0x2d, 0x29, 0xc5, 0x53, 0x8e, 0x72, 0x10, 0x13, 0x0a, 0x60, 0xce, 0x83, 0x9a, 0x9e, 0x58,
+	0x90, 0x59, 0xac, 0x97, 0x9c, 0x9f, 0xeb, 0xb4, 0x82, 0x91, 0x4b, 0x32, 0x39, 0x3f, 0x17, 0xbb,
+	0xa5, 0x4e, 0x42, 0x10, 0xb3, 0x82, 0x21, 0x71, 0x15, 0x00, 0xf2, 0x73, 0x00, 0x63, 0x94, 0x35,
+	0x54, 0x71, 0x7a, 0x7e, 0x4e, 0x62, 0x5e, 0xba, 0x5e, 0x7e, 0x51, 0xba, 0x7e, 0x7a, 0x6a, 0x1e,
+	0x38, 0x44, 0xf4, 0x11, 0xc6, 0xa3, 0x05, 0xb1, 0x35, 0x84, 0xf5, 0x83, 0x91, 0x71, 0x11, 0x13,
+	0x8b, 0xbb, 0x6f, 0x50, 0xf0, 0x2a, 0x26, 0x51, 0x77, 0x88, 0x39, 0xbe, 0x20, 0x4b, 0x21, 0x36,
+	0xe9, 0x85, 0x19, 0x9e, 0x82, 0x89, 0xc7, 0x80, 0xc4, 0x63, 0x20, 0xe2, 0x31, 0x61, 0x86, 0x49,
+	0x6c, 0x60, 0x1b, 0x8c, 0x01, 0x01, 0x00, 0x00, 0xff, 0xff, 0x63, 0x85, 0x3f, 0x66, 0x57, 0x02,
+	0x00, 0x00,
+}
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ context.Context
+var _ grpc.ClientConn
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the grpc package it is being compiled against.
+const _ = grpc.SupportPackageIsVersion4
+
+// RoutesPreferredClient is the client API for RoutesPreferred service.
+//
+// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
+type RoutesPreferredClient interface {
+	// Returns the primary route along with optional alternate routes, given a set
+	// of terminal and intermediate waypoints.
+	//
+	// **NOTE:** This method requires that you specify a response field mask in
+	// the input. You can provide the response field mask by using URL parameter
+	// `$fields` or `fields`, or by using an HTTP/gRPC header `X-Goog-FieldMask`
+	// (see the [available URL parameters and
+	// headers](https://cloud.google.com/apis/docs/system-parameters). The value
+	// is a comma separated list of field paths. See detailed documentation about
+	// [how to construct the field
+	// paths](https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto).
+	//
+	// For example, in this method:
+	//
+	// * Field mask of all available fields (for manual inspection):
+	//   `X-Goog-FieldMask: *`
+	// * Field mask of Route-level duration, distance, and polyline (an example
+	// production setup):
+	//   `X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.polyline`
+	//
+	// Google discourage the use of the wildcard (`*`) response field mask, or
+	// specifying the field mask at the top level (`routes`), because:
+	//
+	// * Selecting only the fields that you need helps our server save computation
+	// cycles, allowing us to return the result to you with a lower latency.
+	// * Selecting only the fields that you need
+	// in your production job ensures stable latency performance. We might add
+	// more response fields in the future, and those new fields might require
+	// extra computation time. If you select all fields, or if you select all
+	// fields at the top level, then you might experience performance degradation
+	// because any new field we add will be automatically included in the
+	// response.
+	// * Selecting only the fields that you need results in a smaller response
+	// size, and thus higher network throughput.
+	ComputeRoutes(ctx context.Context, in *ComputeRoutesRequest, opts ...grpc.CallOption) (*ComputeRoutesResponse, error)
+}
+
+type routesPreferredClient struct {
+	cc *grpc.ClientConn
+}
+
+func NewRoutesPreferredClient(cc *grpc.ClientConn) RoutesPreferredClient {
+	return &routesPreferredClient{cc}
+}
+
+func (c *routesPreferredClient) ComputeRoutes(ctx context.Context, in *ComputeRoutesRequest, opts ...grpc.CallOption) (*ComputeRoutesResponse, error) {
+	out := new(ComputeRoutesResponse)
+	err := c.cc.Invoke(ctx, "/google.maps.routes.v1.RoutesPreferred/ComputeRoutes", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+// RoutesPreferredServer is the server API for RoutesPreferred service.
+type RoutesPreferredServer interface {
+	// Returns the primary route along with optional alternate routes, given a set
+	// of terminal and intermediate waypoints.
+	//
+	// **NOTE:** This method requires that you specify a response field mask in
+	// the input. You can provide the response field mask by using URL parameter
+	// `$fields` or `fields`, or by using an HTTP/gRPC header `X-Goog-FieldMask`
+	// (see the [available URL parameters and
+	// headers](https://cloud.google.com/apis/docs/system-parameters). The value
+	// is a comma separated list of field paths. See detailed documentation about
+	// [how to construct the field
+	// paths](https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto).
+	//
+	// For example, in this method:
+	//
+	// * Field mask of all available fields (for manual inspection):
+	//   `X-Goog-FieldMask: *`
+	// * Field mask of Route-level duration, distance, and polyline (an example
+	// production setup):
+	//   `X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.polyline`
+	//
+	// Google discourage the use of the wildcard (`*`) response field mask, or
+	// specifying the field mask at the top level (`routes`), because:
+	//
+	// * Selecting only the fields that you need helps our server save computation
+	// cycles, allowing us to return the result to you with a lower latency.
+	// * Selecting only the fields that you need
+	// in your production job ensures stable latency performance. We might add
+	// more response fields in the future, and those new fields might require
+	// extra computation time. If you select all fields, or if you select all
+	// fields at the top level, then you might experience performance degradation
+	// because any new field we add will be automatically included in the
+	// response.
+	// * Selecting only the fields that you need results in a smaller response
+	// size, and thus higher network throughput.
+	ComputeRoutes(context.Context, *ComputeRoutesRequest) (*ComputeRoutesResponse, error)
+}
+
+// UnimplementedRoutesPreferredServer can be embedded to have forward compatible implementations.
+type UnimplementedRoutesPreferredServer struct {
+}
+
+func (*UnimplementedRoutesPreferredServer) ComputeRoutes(ctx context.Context, req *ComputeRoutesRequest) (*ComputeRoutesResponse, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method ComputeRoutes not implemented")
+}
+
+func RegisterRoutesPreferredServer(s *grpc.Server, srv RoutesPreferredServer) {
+	s.RegisterService(&_RoutesPreferred_serviceDesc, srv)
+}
+
+func _RoutesPreferred_ComputeRoutes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(ComputeRoutesRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(RoutesPreferredServer).ComputeRoutes(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/google.maps.routes.v1.RoutesPreferred/ComputeRoutes",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(RoutesPreferredServer).ComputeRoutes(ctx, req.(*ComputeRoutesRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+var _RoutesPreferred_serviceDesc = grpc.ServiceDesc{
+	ServiceName: "google.maps.routes.v1.RoutesPreferred",
+	HandlerType: (*RoutesPreferredServer)(nil),
+	Methods: []grpc.MethodDesc{
+		{
+			MethodName: "ComputeRoutes",
+			Handler:    _RoutesPreferred_ComputeRoutes_Handler,
+		},
+	},
+	Streams:  []grpc.StreamDesc{},
+	Metadata: "google/maps/routes/v1/route_service.proto",
+}
diff --git a/googleapis/rpc/code/code.pb.go b/googleapis/rpc/code/code.pb.go
index 9ff770b..723cd07 100644
--- a/googleapis/rpc/code/code.pb.go
+++ b/googleapis/rpc/code/code.pb.go
@@ -21,7 +21,7 @@
 // proto package needs to be updated.
 const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
 
-// The canonical error codes for Google APIs.
+// The canonical error codes for gRPC APIs.
 //
 //
 // Sometimes multiple error codes may apply.  Services should return
@@ -156,7 +156,8 @@
 	Code_INTERNAL Code = 13
 	// The service is currently unavailable.  This is most likely a
 	// transient condition, which can be corrected by retrying with
-	// a backoff.
+	// a backoff. Note that it is not always safe to retry
+	// non-idempotent operations.
 	//
 	// See the guidelines above for deciding between `FAILED_PRECONDITION`,
 	// `ABORTED`, and `UNAVAILABLE`.
diff --git a/googleapis/rpc/errdetails/error_details.pb.go b/googleapis/rpc/errdetails/error_details.pb.go
index 4e16542..5279807 100644
--- a/googleapis/rpc/errdetails/error_details.pb.go
+++ b/googleapis/rpc/errdetails/error_details.pb.go
@@ -33,7 +33,7 @@
 // receiving the error response before retrying.  If retrying requests also
 // fail, clients should use an exponential backoff scheme to gradually increase
 // the delay between retries based on `retry_delay`, until either a maximum
-// number of retires have been reached or a maximum retry delay cap has been
+// number of retries have been reached or a maximum retry delay cap has been
 // reached.
 type RetryInfo struct {
 	// Clients should wait at least this long between retrying the same request.
@@ -134,7 +134,7 @@
 // a service could respond with the project id and set `service_disabled`
 // to true.
 //
-// Also see RetryDetail and Help types for other details about handling a
+// Also see RetryInfo and Help types for other details about handling a
 // quota failure.
 type QuotaFailure struct {
 	// Describes all quota violations.
@@ -235,6 +235,100 @@
 	return ""
 }
 
+// Describes the cause of the error with structured details.
+//
+// Example of an error when contacting the "pubsub.googleapis.com" API when it
+// is not enabled:
+//     { "type":   "API_DISABLED"
+//       "domain": "googleapis.com"
+//       "metadata": {
+//         "resource": "projects/123",
+//         "service": "pubsub.googleapis.com"
+//       }
+//     }
+// This response indicates that the pubsub.googleapis.com API is not enabled.
+//
+// Example of an error that is returned when attempting to create a Spanner
+// instance in a region that is out of stock:
+//     { "type":   "STOCKOUT"
+//       "domain": "spanner.googleapis.com",
+//       "metadata": {
+//         "availableRegions": ""us-central1,us-east2"
+//       }
+//     }
+//
+type ErrorInfo struct {
+	// The type of the error. This is a constant value that identifies the
+	// proximate cause of the error. Error types are unique within a particular
+	// source of errors. This should be at most 63 characters and match
+	// /[A-Z0-9_]+/.
+	Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
+	// The logical grouping to which the "type" belongs.  Often "domain" will
+	// contain the registered service name of the tool or product that is the
+	// source of the error. Example: "pubsub.googleapis.com". If the error is
+	// common across many APIs, the first segment of the example above will be
+	// omitted.  The value will be, "googleapis.com".
+	Domain string `protobuf:"bytes,2,opt,name=domain,proto3" json:"domain,omitempty"`
+	// Additional structured details about this error.
+	//
+	// Keys should match /[a-zA-Z0-9-_]/ and be limited to 64 characters in
+	// length. When identifying the current value of an exceeded limit, the units
+	// should be contained in the key, not the value.  For example, rather than
+	// {"instanceLimit": "100/request"}, should be returned as,
+	// {"instanceLimitPerRequest": "100"}, if the client exceeds the number of
+	// instances that can be created in a single (batch) request.
+	Metadata             map[string]string `protobuf:"bytes,3,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
+	XXX_unrecognized     []byte            `json:"-"`
+	XXX_sizecache        int32             `json:"-"`
+}
+
+func (m *ErrorInfo) Reset()         { *m = ErrorInfo{} }
+func (m *ErrorInfo) String() string { return proto.CompactTextString(m) }
+func (*ErrorInfo) ProtoMessage()    {}
+func (*ErrorInfo) Descriptor() ([]byte, []int) {
+	return fileDescriptor_851816e4d6b6361a, []int{3}
+}
+
+func (m *ErrorInfo) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_ErrorInfo.Unmarshal(m, b)
+}
+func (m *ErrorInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_ErrorInfo.Marshal(b, m, deterministic)
+}
+func (m *ErrorInfo) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_ErrorInfo.Merge(m, src)
+}
+func (m *ErrorInfo) XXX_Size() int {
+	return xxx_messageInfo_ErrorInfo.Size(m)
+}
+func (m *ErrorInfo) XXX_DiscardUnknown() {
+	xxx_messageInfo_ErrorInfo.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ErrorInfo proto.InternalMessageInfo
+
+func (m *ErrorInfo) GetType() string {
+	if m != nil {
+		return m.Type
+	}
+	return ""
+}
+
+func (m *ErrorInfo) GetDomain() string {
+	if m != nil {
+		return m.Domain
+	}
+	return ""
+}
+
+func (m *ErrorInfo) GetMetadata() map[string]string {
+	if m != nil {
+		return m.Metadata
+	}
+	return nil
+}
+
 // Describes what preconditions have failed.
 //
 // For example, if an RPC failed because it required the Terms of Service to be
@@ -252,7 +346,7 @@
 func (m *PreconditionFailure) String() string { return proto.CompactTextString(m) }
 func (*PreconditionFailure) ProtoMessage()    {}
 func (*PreconditionFailure) Descriptor() ([]byte, []int) {
-	return fileDescriptor_851816e4d6b6361a, []int{3}
+	return fileDescriptor_851816e4d6b6361a, []int{4}
 }
 
 func (m *PreconditionFailure) XXX_Unmarshal(b []byte) error {
@@ -283,12 +377,12 @@
 // A message type used to describe a single precondition failure.
 type PreconditionFailure_Violation struct {
 	// The type of PreconditionFailure. We recommend using a service-specific
-	// enum type to define the supported precondition violation types. For
+	// enum type to define the supported precondition violation subjects. For
 	// example, "TOS" for "Terms of Service violation".
 	Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
 	// The subject, relative to the type, that failed.
-	// For example, "google.com/cloud" relative to the "TOS" type would
-	// indicate which terms of service is being referenced.
+	// For example, "google.com/cloud" relative to the "TOS" type would indicate
+	// which terms of service is being referenced.
 	Subject string `protobuf:"bytes,2,opt,name=subject,proto3" json:"subject,omitempty"`
 	// A description of how the precondition failed. Developers can use this
 	// description to understand how to fix the failure.
@@ -304,7 +398,7 @@
 func (m *PreconditionFailure_Violation) String() string { return proto.CompactTextString(m) }
 func (*PreconditionFailure_Violation) ProtoMessage()    {}
 func (*PreconditionFailure_Violation) Descriptor() ([]byte, []int) {
-	return fileDescriptor_851816e4d6b6361a, []int{3, 0}
+	return fileDescriptor_851816e4d6b6361a, []int{4, 0}
 }
 
 func (m *PreconditionFailure_Violation) XXX_Unmarshal(b []byte) error {
@@ -360,7 +454,7 @@
 func (m *BadRequest) String() string { return proto.CompactTextString(m) }
 func (*BadRequest) ProtoMessage()    {}
 func (*BadRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_851816e4d6b6361a, []int{4}
+	return fileDescriptor_851816e4d6b6361a, []int{5}
 }
 
 func (m *BadRequest) XXX_Unmarshal(b []byte) error {
@@ -405,7 +499,7 @@
 func (m *BadRequest_FieldViolation) String() string { return proto.CompactTextString(m) }
 func (*BadRequest_FieldViolation) ProtoMessage()    {}
 func (*BadRequest_FieldViolation) Descriptor() ([]byte, []int) {
-	return fileDescriptor_851816e4d6b6361a, []int{4, 0}
+	return fileDescriptor_851816e4d6b6361a, []int{5, 0}
 }
 
 func (m *BadRequest_FieldViolation) XXX_Unmarshal(b []byte) error {
@@ -458,7 +552,7 @@
 func (m *RequestInfo) String() string { return proto.CompactTextString(m) }
 func (*RequestInfo) ProtoMessage()    {}
 func (*RequestInfo) Descriptor() ([]byte, []int) {
-	return fileDescriptor_851816e4d6b6361a, []int{5}
+	return fileDescriptor_851816e4d6b6361a, []int{6}
 }
 
 func (m *RequestInfo) XXX_Unmarshal(b []byte) error {
@@ -501,8 +595,7 @@
 	ResourceType string `protobuf:"bytes,1,opt,name=resource_type,json=resourceType,proto3" json:"resource_type,omitempty"`
 	// The name of the resource being accessed.  For example, a shared calendar
 	// name: "example.com_4fghdhgsrgh@group.calendar.google.com", if the current
-	// error is
-	// [google.rpc.Code.PERMISSION_DENIED][google.rpc.Code.PERMISSION_DENIED].
+	// error is [google.rpc.Code.PERMISSION_DENIED][google.rpc.Code.PERMISSION_DENIED].
 	ResourceName string `protobuf:"bytes,2,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"`
 	// The owner of the resource (optional).
 	// For example, "user:<owner email>" or "project:<Google developer project
@@ -521,7 +614,7 @@
 func (m *ResourceInfo) String() string { return proto.CompactTextString(m) }
 func (*ResourceInfo) ProtoMessage()    {}
 func (*ResourceInfo) Descriptor() ([]byte, []int) {
-	return fileDescriptor_851816e4d6b6361a, []int{6}
+	return fileDescriptor_851816e4d6b6361a, []int{7}
 }
 
 func (m *ResourceInfo) XXX_Unmarshal(b []byte) error {
@@ -587,7 +680,7 @@
 func (m *Help) String() string { return proto.CompactTextString(m) }
 func (*Help) ProtoMessage()    {}
 func (*Help) Descriptor() ([]byte, []int) {
-	return fileDescriptor_851816e4d6b6361a, []int{7}
+	return fileDescriptor_851816e4d6b6361a, []int{8}
 }
 
 func (m *Help) XXX_Unmarshal(b []byte) error {
@@ -630,7 +723,7 @@
 func (m *Help_Link) String() string { return proto.CompactTextString(m) }
 func (*Help_Link) ProtoMessage()    {}
 func (*Help_Link) Descriptor() ([]byte, []int) {
-	return fileDescriptor_851816e4d6b6361a, []int{7, 0}
+	return fileDescriptor_851816e4d6b6361a, []int{8, 0}
 }
 
 func (m *Help_Link) XXX_Unmarshal(b []byte) error {
@@ -683,7 +776,7 @@
 func (m *LocalizedMessage) String() string { return proto.CompactTextString(m) }
 func (*LocalizedMessage) ProtoMessage()    {}
 func (*LocalizedMessage) Descriptor() ([]byte, []int) {
-	return fileDescriptor_851816e4d6b6361a, []int{8}
+	return fileDescriptor_851816e4d6b6361a, []int{9}
 }
 
 func (m *LocalizedMessage) XXX_Unmarshal(b []byte) error {
@@ -723,6 +816,8 @@
 	proto.RegisterType((*DebugInfo)(nil), "google.rpc.DebugInfo")
 	proto.RegisterType((*QuotaFailure)(nil), "google.rpc.QuotaFailure")
 	proto.RegisterType((*QuotaFailure_Violation)(nil), "google.rpc.QuotaFailure.Violation")
+	proto.RegisterType((*ErrorInfo)(nil), "google.rpc.ErrorInfo")
+	proto.RegisterMapType((map[string]string)(nil), "google.rpc.ErrorInfo.MetadataEntry")
 	proto.RegisterType((*PreconditionFailure)(nil), "google.rpc.PreconditionFailure")
 	proto.RegisterType((*PreconditionFailure_Violation)(nil), "google.rpc.PreconditionFailure.Violation")
 	proto.RegisterType((*BadRequest)(nil), "google.rpc.BadRequest")
@@ -737,43 +832,47 @@
 func init() { proto.RegisterFile("google/rpc/error_details.proto", fileDescriptor_851816e4d6b6361a) }
 
 var fileDescriptor_851816e4d6b6361a = []byte{
-	// 595 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x54, 0xcd, 0x6e, 0xd3, 0x4c,
-	0x14, 0x95, 0x9b, 0xb4, 0x9f, 0x7c, 0x93, 0xaf, 0x14, 0xf3, 0xa3, 0x10, 0x09, 0x14, 0x8c, 0x90,
-	0x8a, 0x90, 0x1c, 0xa9, 0xec, 0xca, 0x02, 0x29, 0xb8, 0x7f, 0x52, 0x81, 0x60, 0x21, 0x16, 0xb0,
-	0xb0, 0x26, 0xf6, 0x8d, 0x35, 0x74, 0xe2, 0x31, 0x33, 0xe3, 0xa2, 0xf0, 0x14, 0xec, 0xd9, 0xb1,
-	0xe2, 0x25, 0x78, 0x37, 0x34, 0x9e, 0x99, 0xc6, 0x6d, 0x0a, 0x62, 0x37, 0xe7, 0xcc, 0x99, 0xe3,
-	0x73, 0xaf, 0xae, 0x2f, 0x3c, 0x28, 0x38, 0x2f, 0x18, 0x8e, 0x45, 0x95, 0x8d, 0x51, 0x08, 0x2e,
-	0xd2, 0x1c, 0x15, 0xa1, 0x4c, 0x46, 0x95, 0xe0, 0x8a, 0x07, 0x60, 0xee, 0x23, 0x51, 0x65, 0x43,
-	0xa7, 0x6d, 0x6e, 0x66, 0xf5, 0x7c, 0x9c, 0xd7, 0x82, 0x28, 0xca, 0x4b, 0xa3, 0x0d, 0x8f, 0xc0,
-	0x4f, 0x50, 0x89, 0xe5, 0x49, 0x39, 0xe7, 0xc1, 0x3e, 0xf4, 0x84, 0x06, 0x69, 0x8e, 0x8c, 0x2c,
-	0x07, 0xde, 0xc8, 0xdb, 0xed, 0xed, 0xdd, 0x8b, 0xac, 0x9d, 0xb3, 0x88, 0x62, 0x6b, 0x91, 0x40,
-	0xa3, 0x8e, 0xb5, 0x38, 0x3c, 0x06, 0x3f, 0xc6, 0x59, 0x5d, 0x34, 0x46, 0x8f, 0xe0, 0x7f, 0xa9,
-	0x48, 0x76, 0x96, 0x62, 0xa9, 0x04, 0x45, 0x39, 0xf0, 0x46, 0x9d, 0x5d, 0x3f, 0xe9, 0x37, 0xe4,
-	0x81, 0xe1, 0x82, 0xbb, 0xb0, 0x65, 0x72, 0x0f, 0x36, 0x46, 0xde, 0xae, 0x9f, 0x58, 0x14, 0x7e,
-	0xf7, 0xa0, 0xff, 0xb6, 0xe6, 0x8a, 0x1c, 0x12, 0xca, 0x6a, 0x81, 0xc1, 0x04, 0xe0, 0x9c, 0x72,
-	0xd6, 0x7c, 0xd3, 0x58, 0xf5, 0xf6, 0xc2, 0x68, 0x55, 0x64, 0xd4, 0x56, 0x47, 0xef, 0x9d, 0x34,
-	0x69, 0xbd, 0x1a, 0x1e, 0x81, 0x7f, 0x71, 0x11, 0x0c, 0xe0, 0x3f, 0x59, 0xcf, 0x3e, 0x61, 0xa6,
-	0x9a, 0x1a, 0xfd, 0xc4, 0xc1, 0x60, 0x04, 0xbd, 0x1c, 0x65, 0x26, 0x68, 0xa5, 0x85, 0x36, 0x58,
-	0x9b, 0x0a, 0x7f, 0x79, 0x70, 0x6b, 0x2a, 0x30, 0xe3, 0x65, 0x4e, 0x35, 0xe1, 0x42, 0x9e, 0x5c,
-	0x13, 0xf2, 0x49, 0x3b, 0xe4, 0x35, 0x8f, 0xfe, 0x90, 0xf5, 0x63, 0x3b, 0x6b, 0x00, 0x5d, 0xb5,
-	0xac, 0xd0, 0x06, 0x6d, 0xce, 0xed, 0xfc, 0x1b, 0x7f, 0xcd, 0xdf, 0x59, 0xcf, 0xff, 0xd3, 0x03,
-	0x98, 0x90, 0x3c, 0xc1, 0xcf, 0x35, 0x4a, 0x15, 0x4c, 0x61, 0x67, 0x4e, 0x91, 0xe5, 0xe9, 0x5a,
-	0xf8, 0xc7, 0xed, 0xf0, 0xab, 0x17, 0xd1, 0xa1, 0x96, 0xaf, 0x82, 0xdf, 0x98, 0x5f, 0xc2, 0x72,
-	0x78, 0x0c, 0xdb, 0x97, 0x25, 0xc1, 0x6d, 0xd8, 0x6c, 0x44, 0xb6, 0x06, 0x03, 0xfe, 0xa1, 0xd5,
-	0x6f, 0xa0, 0x67, 0x3f, 0xda, 0x0c, 0xd5, 0x7d, 0x00, 0x61, 0x60, 0x4a, 0x9d, 0x97, 0x6f, 0x99,
-	0x93, 0x3c, 0x78, 0x08, 0x7d, 0x89, 0xe2, 0x9c, 0x96, 0x45, 0x9a, 0x13, 0x45, 0x9c, 0xa1, 0xe5,
-	0x62, 0xa2, 0x48, 0xf8, 0xcd, 0x83, 0x7e, 0x82, 0x92, 0xd7, 0x22, 0x43, 0x37, 0xa7, 0xc2, 0xe2,
-	0xb4, 0xd5, 0xe5, 0xbe, 0x23, 0xdf, 0xe9, 0x6e, 0xb7, 0x45, 0x25, 0x59, 0xa0, 0x75, 0xbe, 0x10,
-	0xbd, 0x26, 0x0b, 0xd4, 0x35, 0xf2, 0x2f, 0x25, 0x0a, 0xdb, 0x72, 0x03, 0xae, 0xd6, 0xd8, 0x5d,
-	0xaf, 0x91, 0x43, 0xf7, 0x18, 0x59, 0x15, 0x3c, 0x85, 0x4d, 0x46, 0xcb, 0x33, 0xd7, 0xfc, 0x3b,
-	0xed, 0xe6, 0x6b, 0x41, 0x74, 0x4a, 0xcb, 0xb3, 0xc4, 0x68, 0x86, 0xfb, 0xd0, 0xd5, 0xf0, 0xaa,
-	0xbd, 0xb7, 0x66, 0x1f, 0xec, 0x40, 0xa7, 0x16, 0xee, 0x07, 0xd3, 0xc7, 0x30, 0x86, 0x9d, 0x53,
-	0x9e, 0x11, 0x46, 0xbf, 0x62, 0xfe, 0x0a, 0xa5, 0x24, 0x05, 0xea, 0x3f, 0x91, 0x69, 0xce, 0xd5,
-	0x6f, 0x91, 0x9e, 0xb3, 0x85, 0x91, 0xb8, 0x39, 0xb3, 0x70, 0xc2, 0x60, 0x3b, 0xe3, 0x8b, 0x56,
-	0xc8, 0xc9, 0xcd, 0x03, 0xbd, 0x89, 0x62, 0xb3, 0x88, 0xa6, 0x7a, 0x55, 0x4c, 0xbd, 0x0f, 0x2f,
-	0xac, 0xa0, 0xe0, 0x8c, 0x94, 0x45, 0xc4, 0x45, 0x31, 0x2e, 0xb0, 0x6c, 0x16, 0xc9, 0xd8, 0x5c,
-	0x91, 0x8a, 0x4a, 0xb7, 0xc8, 0xec, 0x16, 0x7b, 0xbe, 0x3a, 0xfe, 0xd8, 0xe8, 0x24, 0xd3, 0x97,
-	0xb3, 0xad, 0xe6, 0xc5, 0xb3, 0xdf, 0x01, 0x00, 0x00, 0xff, 0xff, 0x90, 0x15, 0x46, 0x2d, 0xf9,
-	0x04, 0x00, 0x00,
+	// 669 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x54, 0x4d, 0x6f, 0xd3, 0x4a,
+	0x14, 0x95, 0x93, 0xb4, 0xef, 0xf9, 0x26, 0xed, 0xeb, 0xf3, 0x7b, 0xa0, 0x10, 0x09, 0x14, 0x5c,
+	0x21, 0x15, 0x21, 0x39, 0x52, 0xd9, 0xa0, 0x76, 0x51, 0x29, 0xa4, 0x5f, 0x52, 0x0b, 0xc1, 0x42,
+	0x2c, 0x60, 0x61, 0x4d, 0xec, 0x1b, 0x6b, 0x88, 0xe3, 0x31, 0xe3, 0x71, 0x51, 0xf8, 0x15, 0xec,
+	0xd9, 0xb1, 0xe2, 0x0f, 0xb0, 0xe4, 0xbf, 0xa1, 0xf9, 0x4a, 0xdc, 0xa6, 0x20, 0x76, 0x73, 0xee,
+	0x9c, 0x39, 0x73, 0xcf, 0xd1, 0x9d, 0x81, 0x07, 0x29, 0x63, 0x69, 0x86, 0x03, 0x5e, 0xc4, 0x03,
+	0xe4, 0x9c, 0xf1, 0x28, 0x41, 0x41, 0x68, 0x56, 0x06, 0x05, 0x67, 0x82, 0x79, 0xa0, 0xf7, 0x03,
+	0x5e, 0xc4, 0x3d, 0xcb, 0x55, 0x3b, 0x93, 0x6a, 0x3a, 0x48, 0x2a, 0x4e, 0x04, 0x65, 0xb9, 0xe6,
+	0xfa, 0xa7, 0xe0, 0x86, 0x28, 0xf8, 0xe2, 0x3c, 0x9f, 0x32, 0xef, 0x00, 0xda, 0x5c, 0x82, 0x28,
+	0xc1, 0x8c, 0x2c, 0xba, 0x4e, 0xdf, 0xd9, 0x6b, 0xef, 0xdf, 0x0b, 0x8c, 0x9c, 0x95, 0x08, 0x46,
+	0x46, 0x22, 0x04, 0xc5, 0x1e, 0x49, 0xb2, 0x7f, 0x06, 0xee, 0x08, 0x27, 0x55, 0xaa, 0x84, 0x76,
+	0x61, 0xab, 0x14, 0x24, 0x9e, 0x45, 0x98, 0x0b, 0x4e, 0xb1, 0xec, 0x3a, 0xfd, 0xe6, 0x9e, 0x1b,
+	0x76, 0x54, 0xf1, 0x58, 0xd7, 0xbc, 0xbb, 0xb0, 0xa9, 0xfb, 0xee, 0x36, 0xfa, 0xce, 0x9e, 0x1b,
+	0x1a, 0xe4, 0x7f, 0x71, 0xa0, 0xf3, 0xaa, 0x62, 0x82, 0x9c, 0x10, 0x9a, 0x55, 0x1c, 0xbd, 0x21,
+	0xc0, 0x15, 0x65, 0x99, 0xba, 0x53, 0x4b, 0xb5, 0xf7, 0xfd, 0x60, 0x65, 0x32, 0xa8, 0xb3, 0x83,
+	0x37, 0x96, 0x1a, 0xd6, 0x4e, 0xf5, 0x4e, 0xc1, 0x5d, 0x6e, 0x78, 0x5d, 0xf8, 0xab, 0xac, 0x26,
+	0xef, 0x31, 0x16, 0xca, 0xa3, 0x1b, 0x5a, 0xe8, 0xf5, 0xa1, 0x9d, 0x60, 0x19, 0x73, 0x5a, 0x48,
+	0xa2, 0x69, 0xac, 0x5e, 0xf2, 0xbf, 0x3b, 0xe0, 0x1e, 0xcb, 0xd0, 0x95, 0x51, 0x0f, 0x5a, 0x62,
+	0x51, 0xa0, 0x91, 0x51, 0x6b, 0xe5, 0x8b, 0xcd, 0x09, 0xcd, 0x97, 0xbe, 0x14, 0xf2, 0x8e, 0xe0,
+	0xef, 0x39, 0x0a, 0x92, 0x10, 0x41, 0xba, 0x4d, 0x65, 0x62, 0xb7, 0x6e, 0x62, 0x29, 0x1a, 0x5c,
+	0x1a, 0x96, 0x0c, 0x6a, 0x11, 0x2e, 0x0f, 0xf5, 0x0e, 0x61, 0xeb, 0xda, 0x96, 0xb7, 0x03, 0xcd,
+	0x19, 0x2e, 0xcc, 0xe5, 0x72, 0xe9, 0xfd, 0x0f, 0x1b, 0x57, 0x24, 0xab, 0xd0, 0x5c, 0xad, 0xc1,
+	0x41, 0xe3, 0x99, 0xe3, 0xff, 0x70, 0xe0, 0xbf, 0x31, 0xc7, 0x98, 0xe5, 0x09, 0x95, 0x46, 0x6c,
+	0xb8, 0xe7, 0xb7, 0x84, 0xfb, 0xb8, 0xde, 0xd7, 0x2d, 0x87, 0x7e, 0x91, 0xf1, 0xbb, 0x7a, 0xc6,
+	0xb7, 0x25, 0x53, 0xcb, 0xbd, 0xf1, 0xdb, 0xdc, 0x9b, 0xeb, 0xb9, 0x7f, 0x73, 0x00, 0x86, 0x24,
+	0x09, 0xf1, 0x43, 0x85, 0xa5, 0xf0, 0xc6, 0xb0, 0x33, 0xa5, 0x98, 0x25, 0xd1, 0x5a, 0xf3, 0x8f,
+	0xea, 0xcd, 0xaf, 0x4e, 0x04, 0x27, 0x92, 0xbe, 0x6a, 0xfc, 0x9f, 0xe9, 0x35, 0x5c, 0xf6, 0xce,
+	0x60, 0xfb, 0x3a, 0x45, 0x86, 0xa9, 0x48, 0xc6, 0x83, 0x06, 0x7f, 0x30, 0x22, 0x2f, 0xa1, 0x6d,
+	0x2e, 0x55, 0x33, 0x72, 0x1f, 0x80, 0x6b, 0x18, 0x51, 0xab, 0xe5, 0x9a, 0xca, 0x79, 0xe2, 0x3d,
+	0x84, 0x4e, 0x89, 0xfc, 0x8a, 0xe6, 0x69, 0xa4, 0x46, 0xc3, 0x08, 0x9a, 0xda, 0x88, 0x08, 0xe2,
+	0x7f, 0x76, 0xa0, 0x13, 0x62, 0xc9, 0x2a, 0x1e, 0xa3, 0x7d, 0x5f, 0xdc, 0xe0, 0xa8, 0x96, 0x72,
+	0xc7, 0x16, 0x5f, 0xcb, 0xb4, 0xeb, 0xa4, 0x9c, 0xcc, 0xed, 0x4c, 0x2c, 0x49, 0x2f, 0xc8, 0x1c,
+	0xa5, 0x47, 0xf6, 0x31, 0x47, 0x6e, 0x22, 0xd7, 0xe0, 0xa6, 0xc7, 0xd6, 0xba, 0x47, 0x06, 0xad,
+	0x33, 0xcc, 0x0a, 0xef, 0x09, 0x6c, 0x64, 0x34, 0x9f, 0xd9, 0xf0, 0xef, 0xd4, 0xc3, 0x97, 0x84,
+	0xe0, 0x82, 0xe6, 0xb3, 0x50, 0x73, 0x7a, 0x07, 0xd0, 0x92, 0xf0, 0xa6, 0xbc, 0xb3, 0x26, 0x2f,
+	0x27, 0xbb, 0xe2, 0xf6, 0x63, 0x90, 0x4b, 0x7f, 0x04, 0x3b, 0x17, 0x2c, 0x26, 0x19, 0xfd, 0x84,
+	0xc9, 0x25, 0x96, 0x25, 0x49, 0xd5, 0x4b, 0xcb, 0x64, 0xcd, 0xfa, 0x37, 0x48, 0xce, 0xd9, 0x5c,
+	0x53, 0xec, 0x9c, 0x19, 0x38, 0xcc, 0x60, 0x3b, 0x66, 0xf3, 0x5a, 0x93, 0xc3, 0x7f, 0xd5, 0xbb,
+	0x1b, 0xe9, 0x0f, 0x74, 0x2c, 0xbf, 0xb8, 0xb1, 0xf3, 0xf6, 0xc8, 0x10, 0x52, 0x96, 0x91, 0x3c,
+	0x0d, 0x18, 0x4f, 0x07, 0x29, 0xe6, 0xea, 0x03, 0x1c, 0xe8, 0x2d, 0x52, 0xd0, 0xd2, 0x7e, 0xc0,
+	0xe6, 0xf7, 0x3d, 0x5c, 0x2d, 0xbf, 0x36, 0x9a, 0xe1, 0xf8, 0xf9, 0x64, 0x53, 0x9d, 0x78, 0xfa,
+	0x33, 0x00, 0x00, 0xff, 0xff, 0xca, 0x69, 0x10, 0x7f, 0xb1, 0x05, 0x00, 0x00,
 }
diff --git a/googleapis/rpc/status/status.pb.go b/googleapis/rpc/status/status.pb.go
index 0b9907f..01db4cf 100644
--- a/googleapis/rpc/status/status.pb.go
+++ b/googleapis/rpc/status/status.pb.go
@@ -24,65 +24,17 @@
 
 // The `Status` type defines a logical error model that is suitable for
 // different programming environments, including REST APIs and RPC APIs. It is
-// used by [gRPC](https://github.com/grpc). The error model is designed to be:
+// used by [gRPC](https://github.com/grpc). Each `Status` message contains
+// three pieces of data: error code, error message, and error details.
 //
-// - Simple to use and understand for most users
-// - Flexible enough to meet unexpected needs
-//
-// # Overview
-//
-// The `Status` message contains three pieces of data: error code, error
-// message, and error details. The error code should be an enum value of
-// [google.rpc.Code][google.rpc.Code], but it may accept additional error codes
-// if needed.  The error message should be a developer-facing English message
-// that helps developers *understand* and *resolve* the error. If a localized
-// user-facing error message is needed, put the localized message in the error
-// details or localize it in the client. The optional error details may contain
-// arbitrary information about the error. There is a predefined set of error
-// detail types in the package `google.rpc` that can be used for common error
-// conditions.
-//
-// # Language mapping
-//
-// The `Status` message is the logical representation of the error model, but it
-// is not necessarily the actual wire format. When the `Status` message is
-// exposed in different client libraries and different wire protocols, it can be
-// mapped differently. For example, it will likely be mapped to some exceptions
-// in Java, but more likely mapped to some error codes in C.
-//
-// # Other uses
-//
-// The error model and the `Status` message can be used in a variety of
-// environments, either with or without APIs, to provide a
-// consistent developer experience across different environments.
-//
-// Example uses of this error model include:
-//
-// - Partial errors. If a service needs to return partial errors to the client,
-//     it may embed the `Status` in the normal response to indicate the partial
-//     errors.
-//
-// - Workflow errors. A typical workflow has multiple steps. Each step may
-//     have a `Status` message for error reporting.
-//
-// - Batch operations. If a client uses batch request and batch response, the
-//     `Status` message should be used directly inside batch response, one for
-//     each error sub-response.
-//
-// - Asynchronous operations. If an API call embeds asynchronous operation
-//     results in its response, the status of those operations should be
-//     represented directly using the `Status` message.
-//
-// - Logging. If some API errors are stored in logs, the message `Status` could
-//     be used directly after any stripping needed for security/privacy reasons.
+// You can find out more about this error model and how to work with it in the
+// [API Design Guide](https://cloud.google.com/apis/design/errors).
 type Status struct {
-	// The status code, which should be an enum value of
-	// [google.rpc.Code][google.rpc.Code].
+	// The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].
 	Code int32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"`
 	// A developer-facing error message, which should be in English. Any
 	// user-facing error message should be localized and sent in the
-	// [google.rpc.Status.details][google.rpc.Status.details] field, or localized
-	// by the client.
+	// [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client.
 	Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"`
 	// A list of messages that carry the error details.  There is a common set of
 	// message types for APIs to use.
@@ -145,7 +97,7 @@
 func init() { proto.RegisterFile("google/rpc/status.proto", fileDescriptor_24d244abaf643bfe) }
 
 var fileDescriptor_24d244abaf643bfe = []byte{
-	// 209 bytes of a gzipped FileDescriptorProto
+	// 212 bytes of a gzipped FileDescriptorProto
 	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x4f, 0xcf, 0xcf, 0x4f,
 	0xcf, 0x49, 0xd5, 0x2f, 0x2a, 0x48, 0xd6, 0x2f, 0x2e, 0x49, 0x2c, 0x29, 0x2d, 0xd6, 0x2b, 0x28,
 	0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x82, 0x48, 0xe8, 0x15, 0x15, 0x24, 0x4b, 0x49, 0x42, 0x15, 0x81,
@@ -154,10 +106,10 @@
 	0xc0, 0x6c, 0x21, 0x09, 0x2e, 0xf6, 0xdc, 0xd4, 0xe2, 0xe2, 0xc4, 0xf4, 0x54, 0x09, 0x26, 0x05,
 	0x46, 0x0d, 0xce, 0x20, 0x18, 0x57, 0x48, 0x8f, 0x8b, 0x3d, 0x25, 0xb5, 0x24, 0x31, 0x33, 0xa7,
 	0x58, 0x82, 0x59, 0x81, 0x59, 0x83, 0xdb, 0x48, 0x44, 0x0f, 0x6a, 0x21, 0xcc, 0x12, 0x3d, 0xc7,
-	0xbc, 0xca, 0x20, 0x98, 0x22, 0xa7, 0x38, 0x2e, 0xbe, 0xe4, 0xfc, 0x5c, 0x3d, 0x84, 0xa3, 0x9c,
+	0xbc, 0xca, 0x20, 0x98, 0x22, 0xa7, 0x44, 0x2e, 0xbe, 0xe4, 0xfc, 0x5c, 0x3d, 0x84, 0xa3, 0x9c,
 	0xb8, 0x21, 0xf6, 0x06, 0x80, 0x94, 0x07, 0x30, 0x46, 0x99, 0x43, 0xa5, 0xd2, 0xf3, 0x73, 0x12,
 	0xf3, 0xd2, 0xf5, 0xf2, 0x8b, 0xd2, 0xf5, 0xd3, 0x53, 0xf3, 0xc0, 0x86, 0xe9, 0x43, 0xa4, 0x12,
-	0x0b, 0x32, 0x8b, 0x91, 0xfc, 0x69, 0x0d, 0xa1, 0x16, 0x31, 0x31, 0x07, 0x05, 0x38, 0x27, 0xb1,
-	0x81, 0x55, 0x1a, 0x03, 0x02, 0x00, 0x00, 0xff, 0xff, 0xa4, 0x53, 0xf0, 0x7c, 0x10, 0x01, 0x00,
-	0x00,
+	0x0b, 0x32, 0x8b, 0x91, 0xfc, 0x69, 0x0d, 0xa1, 0x7e, 0x30, 0x32, 0x2e, 0x62, 0x62, 0x0e, 0x0a,
+	0x70, 0x4e, 0x62, 0x03, 0x2b, 0x36, 0x06, 0x04, 0x00, 0x00, 0xff, 0xff, 0xb9, 0x28, 0x45, 0xb1,
+	0x13, 0x01, 0x00, 0x00,
 }