1// Copyright 2020 Google LLC 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14 15// Code generated by protoc-gen-go. DO NOT EDIT. 16// versions: 17// protoc-gen-go v1.25.0 18// protoc v3.13.0 19// source: google/ads/googleads/v3/common/ad_type_infos.proto 20 21package common 22 23import ( 24 reflect "reflect" 25 sync "sync" 26 27 proto "github.com/golang/protobuf/proto" 28 enums "google.golang.org/genproto/googleapis/ads/googleads/v3/enums" 29 _ "google.golang.org/genproto/googleapis/api/annotations" 30 protoreflect "google.golang.org/protobuf/reflect/protoreflect" 31 protoimpl "google.golang.org/protobuf/runtime/protoimpl" 32 wrapperspb "google.golang.org/protobuf/types/known/wrapperspb" 33) 34 35const ( 36 // Verify that this generated code is sufficiently up-to-date. 37 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) 38 // Verify that runtime/protoimpl is sufficiently up-to-date. 39 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) 40) 41 42// This is a compile-time assertion that a sufficiently up-to-date version 43// of the legacy proto package is being used. 44const _ = proto.ProtoPackageIsVersion4 45 46// A text ad. 47type TextAdInfo struct { 48 state protoimpl.MessageState 49 sizeCache protoimpl.SizeCache 50 unknownFields protoimpl.UnknownFields 51 52 // The headline of the ad. 53 Headline *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=headline,proto3" json:"headline,omitempty"` 54 // The first line of the ad's description. 55 Description1 *wrapperspb.StringValue `protobuf:"bytes,2,opt,name=description1,proto3" json:"description1,omitempty"` 56 // The second line of the ad's description. 57 Description2 *wrapperspb.StringValue `protobuf:"bytes,3,opt,name=description2,proto3" json:"description2,omitempty"` 58} 59 60func (x *TextAdInfo) Reset() { 61 *x = TextAdInfo{} 62 if protoimpl.UnsafeEnabled { 63 mi := &file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[0] 64 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 65 ms.StoreMessageInfo(mi) 66 } 67} 68 69func (x *TextAdInfo) String() string { 70 return protoimpl.X.MessageStringOf(x) 71} 72 73func (*TextAdInfo) ProtoMessage() {} 74 75func (x *TextAdInfo) ProtoReflect() protoreflect.Message { 76 mi := &file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[0] 77 if protoimpl.UnsafeEnabled && x != nil { 78 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 79 if ms.LoadMessageInfo() == nil { 80 ms.StoreMessageInfo(mi) 81 } 82 return ms 83 } 84 return mi.MessageOf(x) 85} 86 87// Deprecated: Use TextAdInfo.ProtoReflect.Descriptor instead. 88func (*TextAdInfo) Descriptor() ([]byte, []int) { 89 return file_google_ads_googleads_v3_common_ad_type_infos_proto_rawDescGZIP(), []int{0} 90} 91 92func (x *TextAdInfo) GetHeadline() *wrapperspb.StringValue { 93 if x != nil { 94 return x.Headline 95 } 96 return nil 97} 98 99func (x *TextAdInfo) GetDescription1() *wrapperspb.StringValue { 100 if x != nil { 101 return x.Description1 102 } 103 return nil 104} 105 106func (x *TextAdInfo) GetDescription2() *wrapperspb.StringValue { 107 if x != nil { 108 return x.Description2 109 } 110 return nil 111} 112 113// An expanded text ad. 114type ExpandedTextAdInfo struct { 115 state protoimpl.MessageState 116 sizeCache protoimpl.SizeCache 117 unknownFields protoimpl.UnknownFields 118 119 // The first part of the ad's headline. 120 HeadlinePart1 *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=headline_part1,json=headlinePart1,proto3" json:"headline_part1,omitempty"` 121 // The second part of the ad's headline. 122 HeadlinePart2 *wrapperspb.StringValue `protobuf:"bytes,2,opt,name=headline_part2,json=headlinePart2,proto3" json:"headline_part2,omitempty"` 123 // The third part of the ad's headline. 124 HeadlinePart3 *wrapperspb.StringValue `protobuf:"bytes,6,opt,name=headline_part3,json=headlinePart3,proto3" json:"headline_part3,omitempty"` 125 // The description of the ad. 126 Description *wrapperspb.StringValue `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` 127 // The second description of the ad. 128 Description2 *wrapperspb.StringValue `protobuf:"bytes,7,opt,name=description2,proto3" json:"description2,omitempty"` 129 // The text that can appear alongside the ad's displayed URL. 130 Path1 *wrapperspb.StringValue `protobuf:"bytes,4,opt,name=path1,proto3" json:"path1,omitempty"` 131 // Additional text that can appear alongside the ad's displayed URL. 132 Path2 *wrapperspb.StringValue `protobuf:"bytes,5,opt,name=path2,proto3" json:"path2,omitempty"` 133} 134 135func (x *ExpandedTextAdInfo) Reset() { 136 *x = ExpandedTextAdInfo{} 137 if protoimpl.UnsafeEnabled { 138 mi := &file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[1] 139 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 140 ms.StoreMessageInfo(mi) 141 } 142} 143 144func (x *ExpandedTextAdInfo) String() string { 145 return protoimpl.X.MessageStringOf(x) 146} 147 148func (*ExpandedTextAdInfo) ProtoMessage() {} 149 150func (x *ExpandedTextAdInfo) ProtoReflect() protoreflect.Message { 151 mi := &file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[1] 152 if protoimpl.UnsafeEnabled && x != nil { 153 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 154 if ms.LoadMessageInfo() == nil { 155 ms.StoreMessageInfo(mi) 156 } 157 return ms 158 } 159 return mi.MessageOf(x) 160} 161 162// Deprecated: Use ExpandedTextAdInfo.ProtoReflect.Descriptor instead. 163func (*ExpandedTextAdInfo) Descriptor() ([]byte, []int) { 164 return file_google_ads_googleads_v3_common_ad_type_infos_proto_rawDescGZIP(), []int{1} 165} 166 167func (x *ExpandedTextAdInfo) GetHeadlinePart1() *wrapperspb.StringValue { 168 if x != nil { 169 return x.HeadlinePart1 170 } 171 return nil 172} 173 174func (x *ExpandedTextAdInfo) GetHeadlinePart2() *wrapperspb.StringValue { 175 if x != nil { 176 return x.HeadlinePart2 177 } 178 return nil 179} 180 181func (x *ExpandedTextAdInfo) GetHeadlinePart3() *wrapperspb.StringValue { 182 if x != nil { 183 return x.HeadlinePart3 184 } 185 return nil 186} 187 188func (x *ExpandedTextAdInfo) GetDescription() *wrapperspb.StringValue { 189 if x != nil { 190 return x.Description 191 } 192 return nil 193} 194 195func (x *ExpandedTextAdInfo) GetDescription2() *wrapperspb.StringValue { 196 if x != nil { 197 return x.Description2 198 } 199 return nil 200} 201 202func (x *ExpandedTextAdInfo) GetPath1() *wrapperspb.StringValue { 203 if x != nil { 204 return x.Path1 205 } 206 return nil 207} 208 209func (x *ExpandedTextAdInfo) GetPath2() *wrapperspb.StringValue { 210 if x != nil { 211 return x.Path2 212 } 213 return nil 214} 215 216// A call-only ad. 217type CallOnlyAdInfo struct { 218 state protoimpl.MessageState 219 sizeCache protoimpl.SizeCache 220 unknownFields protoimpl.UnknownFields 221 222 // The country code in the ad. 223 CountryCode *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=country_code,json=countryCode,proto3" json:"country_code,omitempty"` 224 // The phone number in the ad. 225 PhoneNumber *wrapperspb.StringValue `protobuf:"bytes,2,opt,name=phone_number,json=phoneNumber,proto3" json:"phone_number,omitempty"` 226 // The business name in the ad. 227 BusinessName *wrapperspb.StringValue `protobuf:"bytes,3,opt,name=business_name,json=businessName,proto3" json:"business_name,omitempty"` 228 // First headline in the ad. 229 Headline1 *wrapperspb.StringValue `protobuf:"bytes,11,opt,name=headline1,proto3" json:"headline1,omitempty"` 230 // Second headline in the ad. 231 Headline2 *wrapperspb.StringValue `protobuf:"bytes,12,opt,name=headline2,proto3" json:"headline2,omitempty"` 232 // The first line of the ad's description. 233 Description1 *wrapperspb.StringValue `protobuf:"bytes,4,opt,name=description1,proto3" json:"description1,omitempty"` 234 // The second line of the ad's description. 235 Description2 *wrapperspb.StringValue `protobuf:"bytes,5,opt,name=description2,proto3" json:"description2,omitempty"` 236 // Whether to enable call tracking for the creative. Enabling call 237 // tracking also enables call conversions. 238 CallTracked *wrapperspb.BoolValue `protobuf:"bytes,6,opt,name=call_tracked,json=callTracked,proto3" json:"call_tracked,omitempty"` 239 // Whether to disable call conversion for the creative. 240 // If set to `true`, disables call conversions even when `call_tracked` is 241 // `true`. 242 // If `call_tracked` is `false`, this field is ignored. 243 DisableCallConversion *wrapperspb.BoolValue `protobuf:"bytes,7,opt,name=disable_call_conversion,json=disableCallConversion,proto3" json:"disable_call_conversion,omitempty"` 244 // The URL to be used for phone number verification. 245 PhoneNumberVerificationUrl *wrapperspb.StringValue `protobuf:"bytes,8,opt,name=phone_number_verification_url,json=phoneNumberVerificationUrl,proto3" json:"phone_number_verification_url,omitempty"` 246 // The conversion action to attribute a call conversion to. If not set a 247 // default conversion action is used. This field only has effect if 248 // call_tracked is set to true. Otherwise this field is ignored. 249 ConversionAction *wrapperspb.StringValue `protobuf:"bytes,9,opt,name=conversion_action,json=conversionAction,proto3" json:"conversion_action,omitempty"` 250 // The call conversion behavior of this call only ad. It can use its own call 251 // conversion setting, inherit the account level setting, or be disabled. 252 ConversionReportingState enums.CallConversionReportingStateEnum_CallConversionReportingState `protobuf:"varint,10,opt,name=conversion_reporting_state,json=conversionReportingState,proto3,enum=google.ads.googleads.v3.enums.CallConversionReportingStateEnum_CallConversionReportingState" json:"conversion_reporting_state,omitempty"` 253} 254 255func (x *CallOnlyAdInfo) Reset() { 256 *x = CallOnlyAdInfo{} 257 if protoimpl.UnsafeEnabled { 258 mi := &file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[2] 259 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 260 ms.StoreMessageInfo(mi) 261 } 262} 263 264func (x *CallOnlyAdInfo) String() string { 265 return protoimpl.X.MessageStringOf(x) 266} 267 268func (*CallOnlyAdInfo) ProtoMessage() {} 269 270func (x *CallOnlyAdInfo) ProtoReflect() protoreflect.Message { 271 mi := &file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[2] 272 if protoimpl.UnsafeEnabled && x != nil { 273 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 274 if ms.LoadMessageInfo() == nil { 275 ms.StoreMessageInfo(mi) 276 } 277 return ms 278 } 279 return mi.MessageOf(x) 280} 281 282// Deprecated: Use CallOnlyAdInfo.ProtoReflect.Descriptor instead. 283func (*CallOnlyAdInfo) Descriptor() ([]byte, []int) { 284 return file_google_ads_googleads_v3_common_ad_type_infos_proto_rawDescGZIP(), []int{2} 285} 286 287func (x *CallOnlyAdInfo) GetCountryCode() *wrapperspb.StringValue { 288 if x != nil { 289 return x.CountryCode 290 } 291 return nil 292} 293 294func (x *CallOnlyAdInfo) GetPhoneNumber() *wrapperspb.StringValue { 295 if x != nil { 296 return x.PhoneNumber 297 } 298 return nil 299} 300 301func (x *CallOnlyAdInfo) GetBusinessName() *wrapperspb.StringValue { 302 if x != nil { 303 return x.BusinessName 304 } 305 return nil 306} 307 308func (x *CallOnlyAdInfo) GetHeadline1() *wrapperspb.StringValue { 309 if x != nil { 310 return x.Headline1 311 } 312 return nil 313} 314 315func (x *CallOnlyAdInfo) GetHeadline2() *wrapperspb.StringValue { 316 if x != nil { 317 return x.Headline2 318 } 319 return nil 320} 321 322func (x *CallOnlyAdInfo) GetDescription1() *wrapperspb.StringValue { 323 if x != nil { 324 return x.Description1 325 } 326 return nil 327} 328 329func (x *CallOnlyAdInfo) GetDescription2() *wrapperspb.StringValue { 330 if x != nil { 331 return x.Description2 332 } 333 return nil 334} 335 336func (x *CallOnlyAdInfo) GetCallTracked() *wrapperspb.BoolValue { 337 if x != nil { 338 return x.CallTracked 339 } 340 return nil 341} 342 343func (x *CallOnlyAdInfo) GetDisableCallConversion() *wrapperspb.BoolValue { 344 if x != nil { 345 return x.DisableCallConversion 346 } 347 return nil 348} 349 350func (x *CallOnlyAdInfo) GetPhoneNumberVerificationUrl() *wrapperspb.StringValue { 351 if x != nil { 352 return x.PhoneNumberVerificationUrl 353 } 354 return nil 355} 356 357func (x *CallOnlyAdInfo) GetConversionAction() *wrapperspb.StringValue { 358 if x != nil { 359 return x.ConversionAction 360 } 361 return nil 362} 363 364func (x *CallOnlyAdInfo) GetConversionReportingState() enums.CallConversionReportingStateEnum_CallConversionReportingState { 365 if x != nil { 366 return x.ConversionReportingState 367 } 368 return enums.CallConversionReportingStateEnum_UNSPECIFIED 369} 370 371// An expanded dynamic search ad. 372type ExpandedDynamicSearchAdInfo struct { 373 state protoimpl.MessageState 374 sizeCache protoimpl.SizeCache 375 unknownFields protoimpl.UnknownFields 376 377 // The description of the ad. 378 Description *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=description,proto3" json:"description,omitempty"` 379 // The second description of the ad. 380 Description2 *wrapperspb.StringValue `protobuf:"bytes,2,opt,name=description2,proto3" json:"description2,omitempty"` 381} 382 383func (x *ExpandedDynamicSearchAdInfo) Reset() { 384 *x = ExpandedDynamicSearchAdInfo{} 385 if protoimpl.UnsafeEnabled { 386 mi := &file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[3] 387 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 388 ms.StoreMessageInfo(mi) 389 } 390} 391 392func (x *ExpandedDynamicSearchAdInfo) String() string { 393 return protoimpl.X.MessageStringOf(x) 394} 395 396func (*ExpandedDynamicSearchAdInfo) ProtoMessage() {} 397 398func (x *ExpandedDynamicSearchAdInfo) ProtoReflect() protoreflect.Message { 399 mi := &file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[3] 400 if protoimpl.UnsafeEnabled && x != nil { 401 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 402 if ms.LoadMessageInfo() == nil { 403 ms.StoreMessageInfo(mi) 404 } 405 return ms 406 } 407 return mi.MessageOf(x) 408} 409 410// Deprecated: Use ExpandedDynamicSearchAdInfo.ProtoReflect.Descriptor instead. 411func (*ExpandedDynamicSearchAdInfo) Descriptor() ([]byte, []int) { 412 return file_google_ads_googleads_v3_common_ad_type_infos_proto_rawDescGZIP(), []int{3} 413} 414 415func (x *ExpandedDynamicSearchAdInfo) GetDescription() *wrapperspb.StringValue { 416 if x != nil { 417 return x.Description 418 } 419 return nil 420} 421 422func (x *ExpandedDynamicSearchAdInfo) GetDescription2() *wrapperspb.StringValue { 423 if x != nil { 424 return x.Description2 425 } 426 return nil 427} 428 429// A hotel ad. 430type HotelAdInfo struct { 431 state protoimpl.MessageState 432 sizeCache protoimpl.SizeCache 433 unknownFields protoimpl.UnknownFields 434} 435 436func (x *HotelAdInfo) Reset() { 437 *x = HotelAdInfo{} 438 if protoimpl.UnsafeEnabled { 439 mi := &file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[4] 440 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 441 ms.StoreMessageInfo(mi) 442 } 443} 444 445func (x *HotelAdInfo) String() string { 446 return protoimpl.X.MessageStringOf(x) 447} 448 449func (*HotelAdInfo) ProtoMessage() {} 450 451func (x *HotelAdInfo) ProtoReflect() protoreflect.Message { 452 mi := &file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[4] 453 if protoimpl.UnsafeEnabled && x != nil { 454 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 455 if ms.LoadMessageInfo() == nil { 456 ms.StoreMessageInfo(mi) 457 } 458 return ms 459 } 460 return mi.MessageOf(x) 461} 462 463// Deprecated: Use HotelAdInfo.ProtoReflect.Descriptor instead. 464func (*HotelAdInfo) Descriptor() ([]byte, []int) { 465 return file_google_ads_googleads_v3_common_ad_type_infos_proto_rawDescGZIP(), []int{4} 466} 467 468// A Smart Shopping ad. 469type ShoppingSmartAdInfo struct { 470 state protoimpl.MessageState 471 sizeCache protoimpl.SizeCache 472 unknownFields protoimpl.UnknownFields 473} 474 475func (x *ShoppingSmartAdInfo) Reset() { 476 *x = ShoppingSmartAdInfo{} 477 if protoimpl.UnsafeEnabled { 478 mi := &file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[5] 479 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 480 ms.StoreMessageInfo(mi) 481 } 482} 483 484func (x *ShoppingSmartAdInfo) String() string { 485 return protoimpl.X.MessageStringOf(x) 486} 487 488func (*ShoppingSmartAdInfo) ProtoMessage() {} 489 490func (x *ShoppingSmartAdInfo) ProtoReflect() protoreflect.Message { 491 mi := &file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[5] 492 if protoimpl.UnsafeEnabled && x != nil { 493 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 494 if ms.LoadMessageInfo() == nil { 495 ms.StoreMessageInfo(mi) 496 } 497 return ms 498 } 499 return mi.MessageOf(x) 500} 501 502// Deprecated: Use ShoppingSmartAdInfo.ProtoReflect.Descriptor instead. 503func (*ShoppingSmartAdInfo) Descriptor() ([]byte, []int) { 504 return file_google_ads_googleads_v3_common_ad_type_infos_proto_rawDescGZIP(), []int{5} 505} 506 507// A standard Shopping ad. 508type ShoppingProductAdInfo struct { 509 state protoimpl.MessageState 510 sizeCache protoimpl.SizeCache 511 unknownFields protoimpl.UnknownFields 512} 513 514func (x *ShoppingProductAdInfo) Reset() { 515 *x = ShoppingProductAdInfo{} 516 if protoimpl.UnsafeEnabled { 517 mi := &file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[6] 518 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 519 ms.StoreMessageInfo(mi) 520 } 521} 522 523func (x *ShoppingProductAdInfo) String() string { 524 return protoimpl.X.MessageStringOf(x) 525} 526 527func (*ShoppingProductAdInfo) ProtoMessage() {} 528 529func (x *ShoppingProductAdInfo) ProtoReflect() protoreflect.Message { 530 mi := &file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[6] 531 if protoimpl.UnsafeEnabled && x != nil { 532 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 533 if ms.LoadMessageInfo() == nil { 534 ms.StoreMessageInfo(mi) 535 } 536 return ms 537 } 538 return mi.MessageOf(x) 539} 540 541// Deprecated: Use ShoppingProductAdInfo.ProtoReflect.Descriptor instead. 542func (*ShoppingProductAdInfo) Descriptor() ([]byte, []int) { 543 return file_google_ads_googleads_v3_common_ad_type_infos_proto_rawDescGZIP(), []int{6} 544} 545 546// A Shopping Comparison Listing ad. 547type ShoppingComparisonListingAdInfo struct { 548 state protoimpl.MessageState 549 sizeCache protoimpl.SizeCache 550 unknownFields protoimpl.UnknownFields 551 552 // Headline of the ad. This field is required. Allowed length is between 25 553 // and 45 characters. 554 Headline *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=headline,proto3" json:"headline,omitempty"` 555} 556 557func (x *ShoppingComparisonListingAdInfo) Reset() { 558 *x = ShoppingComparisonListingAdInfo{} 559 if protoimpl.UnsafeEnabled { 560 mi := &file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[7] 561 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 562 ms.StoreMessageInfo(mi) 563 } 564} 565 566func (x *ShoppingComparisonListingAdInfo) String() string { 567 return protoimpl.X.MessageStringOf(x) 568} 569 570func (*ShoppingComparisonListingAdInfo) ProtoMessage() {} 571 572func (x *ShoppingComparisonListingAdInfo) ProtoReflect() protoreflect.Message { 573 mi := &file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[7] 574 if protoimpl.UnsafeEnabled && x != nil { 575 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 576 if ms.LoadMessageInfo() == nil { 577 ms.StoreMessageInfo(mi) 578 } 579 return ms 580 } 581 return mi.MessageOf(x) 582} 583 584// Deprecated: Use ShoppingComparisonListingAdInfo.ProtoReflect.Descriptor instead. 585func (*ShoppingComparisonListingAdInfo) Descriptor() ([]byte, []int) { 586 return file_google_ads_googleads_v3_common_ad_type_infos_proto_rawDescGZIP(), []int{7} 587} 588 589func (x *ShoppingComparisonListingAdInfo) GetHeadline() *wrapperspb.StringValue { 590 if x != nil { 591 return x.Headline 592 } 593 return nil 594} 595 596// A Gmail ad. 597type GmailAdInfo struct { 598 state protoimpl.MessageState 599 sizeCache protoimpl.SizeCache 600 unknownFields protoimpl.UnknownFields 601 602 // The Gmail teaser. 603 Teaser *GmailTeaser `protobuf:"bytes,1,opt,name=teaser,proto3" json:"teaser,omitempty"` 604 // The MediaFile resource name of the header image. Valid image types are GIF, 605 // JPEG and PNG. The minimum size is 300x100 pixels and the aspect ratio must 606 // be between 3:1 and 5:1 (+-1%). 607 HeaderImage *wrapperspb.StringValue `protobuf:"bytes,2,opt,name=header_image,json=headerImage,proto3" json:"header_image,omitempty"` 608 // The MediaFile resource name of the marketing image. Valid image types are 609 // GIF, JPEG and PNG. The image must either be landscape with a minimum size 610 // of 600x314 pixels and aspect ratio of 600:314 (+-1%) or square with a 611 // minimum size of 300x300 pixels and aspect ratio of 1:1 (+-1%) 612 MarketingImage *wrapperspb.StringValue `protobuf:"bytes,3,opt,name=marketing_image,json=marketingImage,proto3" json:"marketing_image,omitempty"` 613 // Headline of the marketing image. 614 MarketingImageHeadline *wrapperspb.StringValue `protobuf:"bytes,4,opt,name=marketing_image_headline,json=marketingImageHeadline,proto3" json:"marketing_image_headline,omitempty"` 615 // Description of the marketing image. 616 MarketingImageDescription *wrapperspb.StringValue `protobuf:"bytes,5,opt,name=marketing_image_description,json=marketingImageDescription,proto3" json:"marketing_image_description,omitempty"` 617 // Display-call-to-action of the marketing image. 618 MarketingImageDisplayCallToAction *DisplayCallToAction `protobuf:"bytes,6,opt,name=marketing_image_display_call_to_action,json=marketingImageDisplayCallToAction,proto3" json:"marketing_image_display_call_to_action,omitempty"` 619 // Product images. Up to 15 images are supported. 620 ProductImages []*ProductImage `protobuf:"bytes,7,rep,name=product_images,json=productImages,proto3" json:"product_images,omitempty"` 621 // Product videos. Up to 7 videos are supported. At least one product video 622 // or a marketing image must be specified. 623 ProductVideos []*ProductVideo `protobuf:"bytes,8,rep,name=product_videos,json=productVideos,proto3" json:"product_videos,omitempty"` 624} 625 626func (x *GmailAdInfo) Reset() { 627 *x = GmailAdInfo{} 628 if protoimpl.UnsafeEnabled { 629 mi := &file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[8] 630 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 631 ms.StoreMessageInfo(mi) 632 } 633} 634 635func (x *GmailAdInfo) String() string { 636 return protoimpl.X.MessageStringOf(x) 637} 638 639func (*GmailAdInfo) ProtoMessage() {} 640 641func (x *GmailAdInfo) ProtoReflect() protoreflect.Message { 642 mi := &file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[8] 643 if protoimpl.UnsafeEnabled && x != nil { 644 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 645 if ms.LoadMessageInfo() == nil { 646 ms.StoreMessageInfo(mi) 647 } 648 return ms 649 } 650 return mi.MessageOf(x) 651} 652 653// Deprecated: Use GmailAdInfo.ProtoReflect.Descriptor instead. 654func (*GmailAdInfo) Descriptor() ([]byte, []int) { 655 return file_google_ads_googleads_v3_common_ad_type_infos_proto_rawDescGZIP(), []int{8} 656} 657 658func (x *GmailAdInfo) GetTeaser() *GmailTeaser { 659 if x != nil { 660 return x.Teaser 661 } 662 return nil 663} 664 665func (x *GmailAdInfo) GetHeaderImage() *wrapperspb.StringValue { 666 if x != nil { 667 return x.HeaderImage 668 } 669 return nil 670} 671 672func (x *GmailAdInfo) GetMarketingImage() *wrapperspb.StringValue { 673 if x != nil { 674 return x.MarketingImage 675 } 676 return nil 677} 678 679func (x *GmailAdInfo) GetMarketingImageHeadline() *wrapperspb.StringValue { 680 if x != nil { 681 return x.MarketingImageHeadline 682 } 683 return nil 684} 685 686func (x *GmailAdInfo) GetMarketingImageDescription() *wrapperspb.StringValue { 687 if x != nil { 688 return x.MarketingImageDescription 689 } 690 return nil 691} 692 693func (x *GmailAdInfo) GetMarketingImageDisplayCallToAction() *DisplayCallToAction { 694 if x != nil { 695 return x.MarketingImageDisplayCallToAction 696 } 697 return nil 698} 699 700func (x *GmailAdInfo) GetProductImages() []*ProductImage { 701 if x != nil { 702 return x.ProductImages 703 } 704 return nil 705} 706 707func (x *GmailAdInfo) GetProductVideos() []*ProductVideo { 708 if x != nil { 709 return x.ProductVideos 710 } 711 return nil 712} 713 714// Gmail teaser data. The teaser is a small header that acts as an invitation 715// to view the rest of the ad (the body). 716type GmailTeaser struct { 717 state protoimpl.MessageState 718 sizeCache protoimpl.SizeCache 719 unknownFields protoimpl.UnknownFields 720 721 // Headline of the teaser. 722 Headline *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=headline,proto3" json:"headline,omitempty"` 723 // Description of the teaser. 724 Description *wrapperspb.StringValue `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` 725 // Business name of the advertiser. 726 BusinessName *wrapperspb.StringValue `protobuf:"bytes,3,opt,name=business_name,json=businessName,proto3" json:"business_name,omitempty"` 727 // The MediaFile resource name of the logo image. Valid image types are GIF, 728 // JPEG and PNG. The minimum size is 144x144 pixels and the aspect ratio must 729 // be 1:1 (+-1%). 730 LogoImage *wrapperspb.StringValue `protobuf:"bytes,4,opt,name=logo_image,json=logoImage,proto3" json:"logo_image,omitempty"` 731} 732 733func (x *GmailTeaser) Reset() { 734 *x = GmailTeaser{} 735 if protoimpl.UnsafeEnabled { 736 mi := &file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[9] 737 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 738 ms.StoreMessageInfo(mi) 739 } 740} 741 742func (x *GmailTeaser) String() string { 743 return protoimpl.X.MessageStringOf(x) 744} 745 746func (*GmailTeaser) ProtoMessage() {} 747 748func (x *GmailTeaser) ProtoReflect() protoreflect.Message { 749 mi := &file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[9] 750 if protoimpl.UnsafeEnabled && x != nil { 751 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 752 if ms.LoadMessageInfo() == nil { 753 ms.StoreMessageInfo(mi) 754 } 755 return ms 756 } 757 return mi.MessageOf(x) 758} 759 760// Deprecated: Use GmailTeaser.ProtoReflect.Descriptor instead. 761func (*GmailTeaser) Descriptor() ([]byte, []int) { 762 return file_google_ads_googleads_v3_common_ad_type_infos_proto_rawDescGZIP(), []int{9} 763} 764 765func (x *GmailTeaser) GetHeadline() *wrapperspb.StringValue { 766 if x != nil { 767 return x.Headline 768 } 769 return nil 770} 771 772func (x *GmailTeaser) GetDescription() *wrapperspb.StringValue { 773 if x != nil { 774 return x.Description 775 } 776 return nil 777} 778 779func (x *GmailTeaser) GetBusinessName() *wrapperspb.StringValue { 780 if x != nil { 781 return x.BusinessName 782 } 783 return nil 784} 785 786func (x *GmailTeaser) GetLogoImage() *wrapperspb.StringValue { 787 if x != nil { 788 return x.LogoImage 789 } 790 return nil 791} 792 793// Data for display call to action. The call to action is a piece of the ad 794// that prompts the user to do something. Like clicking a link or making a phone 795// call. 796type DisplayCallToAction struct { 797 state protoimpl.MessageState 798 sizeCache protoimpl.SizeCache 799 unknownFields protoimpl.UnknownFields 800 801 // Text for the display-call-to-action. 802 Text *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=text,proto3" json:"text,omitempty"` 803 // Text color for the display-call-to-action in hexadecimal, e.g. #ffffff for 804 // white. 805 TextColor *wrapperspb.StringValue `protobuf:"bytes,2,opt,name=text_color,json=textColor,proto3" json:"text_color,omitempty"` 806 // Identifies the url collection in the ad.url_collections field. If not set 807 // the url defaults to final_url. 808 UrlCollectionId *wrapperspb.StringValue `protobuf:"bytes,3,opt,name=url_collection_id,json=urlCollectionId,proto3" json:"url_collection_id,omitempty"` 809} 810 811func (x *DisplayCallToAction) Reset() { 812 *x = DisplayCallToAction{} 813 if protoimpl.UnsafeEnabled { 814 mi := &file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[10] 815 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 816 ms.StoreMessageInfo(mi) 817 } 818} 819 820func (x *DisplayCallToAction) String() string { 821 return protoimpl.X.MessageStringOf(x) 822} 823 824func (*DisplayCallToAction) ProtoMessage() {} 825 826func (x *DisplayCallToAction) ProtoReflect() protoreflect.Message { 827 mi := &file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[10] 828 if protoimpl.UnsafeEnabled && x != nil { 829 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 830 if ms.LoadMessageInfo() == nil { 831 ms.StoreMessageInfo(mi) 832 } 833 return ms 834 } 835 return mi.MessageOf(x) 836} 837 838// Deprecated: Use DisplayCallToAction.ProtoReflect.Descriptor instead. 839func (*DisplayCallToAction) Descriptor() ([]byte, []int) { 840 return file_google_ads_googleads_v3_common_ad_type_infos_proto_rawDescGZIP(), []int{10} 841} 842 843func (x *DisplayCallToAction) GetText() *wrapperspb.StringValue { 844 if x != nil { 845 return x.Text 846 } 847 return nil 848} 849 850func (x *DisplayCallToAction) GetTextColor() *wrapperspb.StringValue { 851 if x != nil { 852 return x.TextColor 853 } 854 return nil 855} 856 857func (x *DisplayCallToAction) GetUrlCollectionId() *wrapperspb.StringValue { 858 if x != nil { 859 return x.UrlCollectionId 860 } 861 return nil 862} 863 864// Product image specific data. 865type ProductImage struct { 866 state protoimpl.MessageState 867 sizeCache protoimpl.SizeCache 868 unknownFields protoimpl.UnknownFields 869 870 // The MediaFile resource name of the product image. Valid image types are 871 // GIF, JPEG and PNG. The minimum size is 300x300 pixels and the aspect ratio 872 // must be 1:1 (+-1%). 873 ProductImage *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=product_image,json=productImage,proto3" json:"product_image,omitempty"` 874 // Description of the product. 875 Description *wrapperspb.StringValue `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` 876 // Display-call-to-action of the product image. 877 DisplayCallToAction *DisplayCallToAction `protobuf:"bytes,3,opt,name=display_call_to_action,json=displayCallToAction,proto3" json:"display_call_to_action,omitempty"` 878} 879 880func (x *ProductImage) Reset() { 881 *x = ProductImage{} 882 if protoimpl.UnsafeEnabled { 883 mi := &file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[11] 884 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 885 ms.StoreMessageInfo(mi) 886 } 887} 888 889func (x *ProductImage) String() string { 890 return protoimpl.X.MessageStringOf(x) 891} 892 893func (*ProductImage) ProtoMessage() {} 894 895func (x *ProductImage) ProtoReflect() protoreflect.Message { 896 mi := &file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[11] 897 if protoimpl.UnsafeEnabled && x != nil { 898 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 899 if ms.LoadMessageInfo() == nil { 900 ms.StoreMessageInfo(mi) 901 } 902 return ms 903 } 904 return mi.MessageOf(x) 905} 906 907// Deprecated: Use ProductImage.ProtoReflect.Descriptor instead. 908func (*ProductImage) Descriptor() ([]byte, []int) { 909 return file_google_ads_googleads_v3_common_ad_type_infos_proto_rawDescGZIP(), []int{11} 910} 911 912func (x *ProductImage) GetProductImage() *wrapperspb.StringValue { 913 if x != nil { 914 return x.ProductImage 915 } 916 return nil 917} 918 919func (x *ProductImage) GetDescription() *wrapperspb.StringValue { 920 if x != nil { 921 return x.Description 922 } 923 return nil 924} 925 926func (x *ProductImage) GetDisplayCallToAction() *DisplayCallToAction { 927 if x != nil { 928 return x.DisplayCallToAction 929 } 930 return nil 931} 932 933// Product video specific data. 934type ProductVideo struct { 935 state protoimpl.MessageState 936 sizeCache protoimpl.SizeCache 937 unknownFields protoimpl.UnknownFields 938 939 // The MediaFile resource name of a video which must be hosted on YouTube. 940 ProductVideo *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=product_video,json=productVideo,proto3" json:"product_video,omitempty"` 941} 942 943func (x *ProductVideo) Reset() { 944 *x = ProductVideo{} 945 if protoimpl.UnsafeEnabled { 946 mi := &file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[12] 947 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 948 ms.StoreMessageInfo(mi) 949 } 950} 951 952func (x *ProductVideo) String() string { 953 return protoimpl.X.MessageStringOf(x) 954} 955 956func (*ProductVideo) ProtoMessage() {} 957 958func (x *ProductVideo) ProtoReflect() protoreflect.Message { 959 mi := &file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[12] 960 if protoimpl.UnsafeEnabled && x != nil { 961 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 962 if ms.LoadMessageInfo() == nil { 963 ms.StoreMessageInfo(mi) 964 } 965 return ms 966 } 967 return mi.MessageOf(x) 968} 969 970// Deprecated: Use ProductVideo.ProtoReflect.Descriptor instead. 971func (*ProductVideo) Descriptor() ([]byte, []int) { 972 return file_google_ads_googleads_v3_common_ad_type_infos_proto_rawDescGZIP(), []int{12} 973} 974 975func (x *ProductVideo) GetProductVideo() *wrapperspb.StringValue { 976 if x != nil { 977 return x.ProductVideo 978 } 979 return nil 980} 981 982// An image ad. 983type ImageAdInfo struct { 984 state protoimpl.MessageState 985 sizeCache protoimpl.SizeCache 986 unknownFields protoimpl.UnknownFields 987 988 // Width in pixels of the full size image. 989 PixelWidth *wrapperspb.Int64Value `protobuf:"bytes,4,opt,name=pixel_width,json=pixelWidth,proto3" json:"pixel_width,omitempty"` 990 // Height in pixels of the full size image. 991 PixelHeight *wrapperspb.Int64Value `protobuf:"bytes,5,opt,name=pixel_height,json=pixelHeight,proto3" json:"pixel_height,omitempty"` 992 // URL of the full size image. 993 ImageUrl *wrapperspb.StringValue `protobuf:"bytes,6,opt,name=image_url,json=imageUrl,proto3" json:"image_url,omitempty"` 994 // Width in pixels of the preview size image. 995 PreviewPixelWidth *wrapperspb.Int64Value `protobuf:"bytes,7,opt,name=preview_pixel_width,json=previewPixelWidth,proto3" json:"preview_pixel_width,omitempty"` 996 // Height in pixels of the preview size image. 997 PreviewPixelHeight *wrapperspb.Int64Value `protobuf:"bytes,8,opt,name=preview_pixel_height,json=previewPixelHeight,proto3" json:"preview_pixel_height,omitempty"` 998 // URL of the preview size image. 999 PreviewImageUrl *wrapperspb.StringValue `protobuf:"bytes,9,opt,name=preview_image_url,json=previewImageUrl,proto3" json:"preview_image_url,omitempty"` 1000 // The mime type of the image. 1001 MimeType enums.MimeTypeEnum_MimeType `protobuf:"varint,10,opt,name=mime_type,json=mimeType,proto3,enum=google.ads.googleads.v3.enums.MimeTypeEnum_MimeType" json:"mime_type,omitempty"` 1002 // The name of the image. If the image was created from a MediaFile, this is 1003 // the MediaFile's name. If the image was created from bytes, this is empty. 1004 Name *wrapperspb.StringValue `protobuf:"bytes,11,opt,name=name,proto3" json:"name,omitempty"` 1005 // The image to create the ImageAd from. This can be specified in one of 1006 // two ways. 1007 // 1. An existing MediaFile resource. 1008 // 2. The raw image data as bytes. 1009 // 1010 // Types that are assignable to Image: 1011 // *ImageAdInfo_MediaFile 1012 // *ImageAdInfo_Data 1013 // *ImageAdInfo_AdIdToCopyImageFrom 1014 Image isImageAdInfo_Image `protobuf_oneof:"image"` 1015} 1016 1017func (x *ImageAdInfo) Reset() { 1018 *x = ImageAdInfo{} 1019 if protoimpl.UnsafeEnabled { 1020 mi := &file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[13] 1021 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1022 ms.StoreMessageInfo(mi) 1023 } 1024} 1025 1026func (x *ImageAdInfo) String() string { 1027 return protoimpl.X.MessageStringOf(x) 1028} 1029 1030func (*ImageAdInfo) ProtoMessage() {} 1031 1032func (x *ImageAdInfo) ProtoReflect() protoreflect.Message { 1033 mi := &file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[13] 1034 if protoimpl.UnsafeEnabled && x != nil { 1035 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1036 if ms.LoadMessageInfo() == nil { 1037 ms.StoreMessageInfo(mi) 1038 } 1039 return ms 1040 } 1041 return mi.MessageOf(x) 1042} 1043 1044// Deprecated: Use ImageAdInfo.ProtoReflect.Descriptor instead. 1045func (*ImageAdInfo) Descriptor() ([]byte, []int) { 1046 return file_google_ads_googleads_v3_common_ad_type_infos_proto_rawDescGZIP(), []int{13} 1047} 1048 1049func (x *ImageAdInfo) GetPixelWidth() *wrapperspb.Int64Value { 1050 if x != nil { 1051 return x.PixelWidth 1052 } 1053 return nil 1054} 1055 1056func (x *ImageAdInfo) GetPixelHeight() *wrapperspb.Int64Value { 1057 if x != nil { 1058 return x.PixelHeight 1059 } 1060 return nil 1061} 1062 1063func (x *ImageAdInfo) GetImageUrl() *wrapperspb.StringValue { 1064 if x != nil { 1065 return x.ImageUrl 1066 } 1067 return nil 1068} 1069 1070func (x *ImageAdInfo) GetPreviewPixelWidth() *wrapperspb.Int64Value { 1071 if x != nil { 1072 return x.PreviewPixelWidth 1073 } 1074 return nil 1075} 1076 1077func (x *ImageAdInfo) GetPreviewPixelHeight() *wrapperspb.Int64Value { 1078 if x != nil { 1079 return x.PreviewPixelHeight 1080 } 1081 return nil 1082} 1083 1084func (x *ImageAdInfo) GetPreviewImageUrl() *wrapperspb.StringValue { 1085 if x != nil { 1086 return x.PreviewImageUrl 1087 } 1088 return nil 1089} 1090 1091func (x *ImageAdInfo) GetMimeType() enums.MimeTypeEnum_MimeType { 1092 if x != nil { 1093 return x.MimeType 1094 } 1095 return enums.MimeTypeEnum_UNSPECIFIED 1096} 1097 1098func (x *ImageAdInfo) GetName() *wrapperspb.StringValue { 1099 if x != nil { 1100 return x.Name 1101 } 1102 return nil 1103} 1104 1105func (m *ImageAdInfo) GetImage() isImageAdInfo_Image { 1106 if m != nil { 1107 return m.Image 1108 } 1109 return nil 1110} 1111 1112func (x *ImageAdInfo) GetMediaFile() *wrapperspb.StringValue { 1113 if x, ok := x.GetImage().(*ImageAdInfo_MediaFile); ok { 1114 return x.MediaFile 1115 } 1116 return nil 1117} 1118 1119func (x *ImageAdInfo) GetData() *wrapperspb.BytesValue { 1120 if x, ok := x.GetImage().(*ImageAdInfo_Data); ok { 1121 return x.Data 1122 } 1123 return nil 1124} 1125 1126func (x *ImageAdInfo) GetAdIdToCopyImageFrom() *wrapperspb.Int64Value { 1127 if x, ok := x.GetImage().(*ImageAdInfo_AdIdToCopyImageFrom); ok { 1128 return x.AdIdToCopyImageFrom 1129 } 1130 return nil 1131} 1132 1133type isImageAdInfo_Image interface { 1134 isImageAdInfo_Image() 1135} 1136 1137type ImageAdInfo_MediaFile struct { 1138 // The MediaFile resource to use for the image. 1139 MediaFile *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=media_file,json=mediaFile,proto3,oneof"` 1140} 1141 1142type ImageAdInfo_Data struct { 1143 // Raw image data as bytes. 1144 Data *wrapperspb.BytesValue `protobuf:"bytes,2,opt,name=data,proto3,oneof"` 1145} 1146 1147type ImageAdInfo_AdIdToCopyImageFrom struct { 1148 // An ad ID to copy the image from. 1149 AdIdToCopyImageFrom *wrapperspb.Int64Value `protobuf:"bytes,3,opt,name=ad_id_to_copy_image_from,json=adIdToCopyImageFrom,proto3,oneof"` 1150} 1151 1152func (*ImageAdInfo_MediaFile) isImageAdInfo_Image() {} 1153 1154func (*ImageAdInfo_Data) isImageAdInfo_Image() {} 1155 1156func (*ImageAdInfo_AdIdToCopyImageFrom) isImageAdInfo_Image() {} 1157 1158// Representation of video bumper in-stream ad format (very short in-stream 1159// non-skippable video ad). 1160type VideoBumperInStreamAdInfo struct { 1161 state protoimpl.MessageState 1162 sizeCache protoimpl.SizeCache 1163 unknownFields protoimpl.UnknownFields 1164 1165 // The MediaFile resource name of the companion banner used with the ad. 1166 CompanionBanner *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=companion_banner,json=companionBanner,proto3" json:"companion_banner,omitempty"` 1167} 1168 1169func (x *VideoBumperInStreamAdInfo) Reset() { 1170 *x = VideoBumperInStreamAdInfo{} 1171 if protoimpl.UnsafeEnabled { 1172 mi := &file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[14] 1173 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1174 ms.StoreMessageInfo(mi) 1175 } 1176} 1177 1178func (x *VideoBumperInStreamAdInfo) String() string { 1179 return protoimpl.X.MessageStringOf(x) 1180} 1181 1182func (*VideoBumperInStreamAdInfo) ProtoMessage() {} 1183 1184func (x *VideoBumperInStreamAdInfo) ProtoReflect() protoreflect.Message { 1185 mi := &file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[14] 1186 if protoimpl.UnsafeEnabled && x != nil { 1187 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1188 if ms.LoadMessageInfo() == nil { 1189 ms.StoreMessageInfo(mi) 1190 } 1191 return ms 1192 } 1193 return mi.MessageOf(x) 1194} 1195 1196// Deprecated: Use VideoBumperInStreamAdInfo.ProtoReflect.Descriptor instead. 1197func (*VideoBumperInStreamAdInfo) Descriptor() ([]byte, []int) { 1198 return file_google_ads_googleads_v3_common_ad_type_infos_proto_rawDescGZIP(), []int{14} 1199} 1200 1201func (x *VideoBumperInStreamAdInfo) GetCompanionBanner() *wrapperspb.StringValue { 1202 if x != nil { 1203 return x.CompanionBanner 1204 } 1205 return nil 1206} 1207 1208// Representation of video non-skippable in-stream ad format (15 second 1209// in-stream non-skippable video ad). 1210type VideoNonSkippableInStreamAdInfo struct { 1211 state protoimpl.MessageState 1212 sizeCache protoimpl.SizeCache 1213 unknownFields protoimpl.UnknownFields 1214 1215 // The MediaFile resource name of the companion banner used with the ad. 1216 CompanionBanner *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=companion_banner,json=companionBanner,proto3" json:"companion_banner,omitempty"` 1217} 1218 1219func (x *VideoNonSkippableInStreamAdInfo) Reset() { 1220 *x = VideoNonSkippableInStreamAdInfo{} 1221 if protoimpl.UnsafeEnabled { 1222 mi := &file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[15] 1223 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1224 ms.StoreMessageInfo(mi) 1225 } 1226} 1227 1228func (x *VideoNonSkippableInStreamAdInfo) String() string { 1229 return protoimpl.X.MessageStringOf(x) 1230} 1231 1232func (*VideoNonSkippableInStreamAdInfo) ProtoMessage() {} 1233 1234func (x *VideoNonSkippableInStreamAdInfo) ProtoReflect() protoreflect.Message { 1235 mi := &file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[15] 1236 if protoimpl.UnsafeEnabled && x != nil { 1237 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1238 if ms.LoadMessageInfo() == nil { 1239 ms.StoreMessageInfo(mi) 1240 } 1241 return ms 1242 } 1243 return mi.MessageOf(x) 1244} 1245 1246// Deprecated: Use VideoNonSkippableInStreamAdInfo.ProtoReflect.Descriptor instead. 1247func (*VideoNonSkippableInStreamAdInfo) Descriptor() ([]byte, []int) { 1248 return file_google_ads_googleads_v3_common_ad_type_infos_proto_rawDescGZIP(), []int{15} 1249} 1250 1251func (x *VideoNonSkippableInStreamAdInfo) GetCompanionBanner() *wrapperspb.StringValue { 1252 if x != nil { 1253 return x.CompanionBanner 1254 } 1255 return nil 1256} 1257 1258// Representation of video TrueView in-stream ad format (ad shown during video 1259// playback, often at beginning, which displays a skip button a few seconds into 1260// the video). 1261type VideoTrueViewInStreamAdInfo struct { 1262 state protoimpl.MessageState 1263 sizeCache protoimpl.SizeCache 1264 unknownFields protoimpl.UnknownFields 1265 1266 // Label on the CTA (call-to-action) button taking the user to the video ad's 1267 // final URL. 1268 // Required for TrueView for action campaigns, optional otherwise. 1269 ActionButtonLabel *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=action_button_label,json=actionButtonLabel,proto3" json:"action_button_label,omitempty"` 1270 // Additional text displayed with the CTA (call-to-action) button to give 1271 // context and encourage clicking on the button. 1272 ActionHeadline *wrapperspb.StringValue `protobuf:"bytes,2,opt,name=action_headline,json=actionHeadline,proto3" json:"action_headline,omitempty"` 1273 // The MediaFile resource name of the companion banner used with the ad. 1274 CompanionBanner *wrapperspb.StringValue `protobuf:"bytes,3,opt,name=companion_banner,json=companionBanner,proto3" json:"companion_banner,omitempty"` 1275} 1276 1277func (x *VideoTrueViewInStreamAdInfo) Reset() { 1278 *x = VideoTrueViewInStreamAdInfo{} 1279 if protoimpl.UnsafeEnabled { 1280 mi := &file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[16] 1281 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1282 ms.StoreMessageInfo(mi) 1283 } 1284} 1285 1286func (x *VideoTrueViewInStreamAdInfo) String() string { 1287 return protoimpl.X.MessageStringOf(x) 1288} 1289 1290func (*VideoTrueViewInStreamAdInfo) ProtoMessage() {} 1291 1292func (x *VideoTrueViewInStreamAdInfo) ProtoReflect() protoreflect.Message { 1293 mi := &file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[16] 1294 if protoimpl.UnsafeEnabled && x != nil { 1295 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1296 if ms.LoadMessageInfo() == nil { 1297 ms.StoreMessageInfo(mi) 1298 } 1299 return ms 1300 } 1301 return mi.MessageOf(x) 1302} 1303 1304// Deprecated: Use VideoTrueViewInStreamAdInfo.ProtoReflect.Descriptor instead. 1305func (*VideoTrueViewInStreamAdInfo) Descriptor() ([]byte, []int) { 1306 return file_google_ads_googleads_v3_common_ad_type_infos_proto_rawDescGZIP(), []int{16} 1307} 1308 1309func (x *VideoTrueViewInStreamAdInfo) GetActionButtonLabel() *wrapperspb.StringValue { 1310 if x != nil { 1311 return x.ActionButtonLabel 1312 } 1313 return nil 1314} 1315 1316func (x *VideoTrueViewInStreamAdInfo) GetActionHeadline() *wrapperspb.StringValue { 1317 if x != nil { 1318 return x.ActionHeadline 1319 } 1320 return nil 1321} 1322 1323func (x *VideoTrueViewInStreamAdInfo) GetCompanionBanner() *wrapperspb.StringValue { 1324 if x != nil { 1325 return x.CompanionBanner 1326 } 1327 return nil 1328} 1329 1330// Representation of video out-stream ad format (ad shown alongside a feed 1331// with automatic playback, without sound). 1332type VideoOutstreamAdInfo struct { 1333 state protoimpl.MessageState 1334 sizeCache protoimpl.SizeCache 1335 unknownFields protoimpl.UnknownFields 1336 1337 // The headline of the ad. 1338 Headline *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=headline,proto3" json:"headline,omitempty"` 1339 // The description line. 1340 Description *wrapperspb.StringValue `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` 1341} 1342 1343func (x *VideoOutstreamAdInfo) Reset() { 1344 *x = VideoOutstreamAdInfo{} 1345 if protoimpl.UnsafeEnabled { 1346 mi := &file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[17] 1347 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1348 ms.StoreMessageInfo(mi) 1349 } 1350} 1351 1352func (x *VideoOutstreamAdInfo) String() string { 1353 return protoimpl.X.MessageStringOf(x) 1354} 1355 1356func (*VideoOutstreamAdInfo) ProtoMessage() {} 1357 1358func (x *VideoOutstreamAdInfo) ProtoReflect() protoreflect.Message { 1359 mi := &file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[17] 1360 if protoimpl.UnsafeEnabled && x != nil { 1361 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1362 if ms.LoadMessageInfo() == nil { 1363 ms.StoreMessageInfo(mi) 1364 } 1365 return ms 1366 } 1367 return mi.MessageOf(x) 1368} 1369 1370// Deprecated: Use VideoOutstreamAdInfo.ProtoReflect.Descriptor instead. 1371func (*VideoOutstreamAdInfo) Descriptor() ([]byte, []int) { 1372 return file_google_ads_googleads_v3_common_ad_type_infos_proto_rawDescGZIP(), []int{17} 1373} 1374 1375func (x *VideoOutstreamAdInfo) GetHeadline() *wrapperspb.StringValue { 1376 if x != nil { 1377 return x.Headline 1378 } 1379 return nil 1380} 1381 1382func (x *VideoOutstreamAdInfo) GetDescription() *wrapperspb.StringValue { 1383 if x != nil { 1384 return x.Description 1385 } 1386 return nil 1387} 1388 1389// Representation of video TrueView discovery ad format. 1390type VideoTrueViewDiscoveryAdInfo struct { 1391 state protoimpl.MessageState 1392 sizeCache protoimpl.SizeCache 1393 unknownFields protoimpl.UnknownFields 1394 1395 // The headline of the ad. 1396 Headline *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=headline,proto3" json:"headline,omitempty"` 1397 // First text line for a TrueView video discovery ad. 1398 Description1 *wrapperspb.StringValue `protobuf:"bytes,2,opt,name=description1,proto3" json:"description1,omitempty"` 1399 // Second text line for a TrueView video discovery ad. 1400 Description2 *wrapperspb.StringValue `protobuf:"bytes,3,opt,name=description2,proto3" json:"description2,omitempty"` 1401} 1402 1403func (x *VideoTrueViewDiscoveryAdInfo) Reset() { 1404 *x = VideoTrueViewDiscoveryAdInfo{} 1405 if protoimpl.UnsafeEnabled { 1406 mi := &file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[18] 1407 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1408 ms.StoreMessageInfo(mi) 1409 } 1410} 1411 1412func (x *VideoTrueViewDiscoveryAdInfo) String() string { 1413 return protoimpl.X.MessageStringOf(x) 1414} 1415 1416func (*VideoTrueViewDiscoveryAdInfo) ProtoMessage() {} 1417 1418func (x *VideoTrueViewDiscoveryAdInfo) ProtoReflect() protoreflect.Message { 1419 mi := &file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[18] 1420 if protoimpl.UnsafeEnabled && x != nil { 1421 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1422 if ms.LoadMessageInfo() == nil { 1423 ms.StoreMessageInfo(mi) 1424 } 1425 return ms 1426 } 1427 return mi.MessageOf(x) 1428} 1429 1430// Deprecated: Use VideoTrueViewDiscoveryAdInfo.ProtoReflect.Descriptor instead. 1431func (*VideoTrueViewDiscoveryAdInfo) Descriptor() ([]byte, []int) { 1432 return file_google_ads_googleads_v3_common_ad_type_infos_proto_rawDescGZIP(), []int{18} 1433} 1434 1435func (x *VideoTrueViewDiscoveryAdInfo) GetHeadline() *wrapperspb.StringValue { 1436 if x != nil { 1437 return x.Headline 1438 } 1439 return nil 1440} 1441 1442func (x *VideoTrueViewDiscoveryAdInfo) GetDescription1() *wrapperspb.StringValue { 1443 if x != nil { 1444 return x.Description1 1445 } 1446 return nil 1447} 1448 1449func (x *VideoTrueViewDiscoveryAdInfo) GetDescription2() *wrapperspb.StringValue { 1450 if x != nil { 1451 return x.Description2 1452 } 1453 return nil 1454} 1455 1456// A video ad. 1457type VideoAdInfo struct { 1458 state protoimpl.MessageState 1459 sizeCache protoimpl.SizeCache 1460 unknownFields protoimpl.UnknownFields 1461 1462 // The MediaFile resource to use for the video. 1463 MediaFile *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=media_file,json=mediaFile,proto3" json:"media_file,omitempty"` 1464 // Format-specific schema for the different video formats. 1465 // 1466 // Types that are assignable to Format: 1467 // *VideoAdInfo_InStream 1468 // *VideoAdInfo_Bumper 1469 // *VideoAdInfo_OutStream 1470 // *VideoAdInfo_NonSkippable 1471 // *VideoAdInfo_Discovery 1472 Format isVideoAdInfo_Format `protobuf_oneof:"format"` 1473} 1474 1475func (x *VideoAdInfo) Reset() { 1476 *x = VideoAdInfo{} 1477 if protoimpl.UnsafeEnabled { 1478 mi := &file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[19] 1479 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1480 ms.StoreMessageInfo(mi) 1481 } 1482} 1483 1484func (x *VideoAdInfo) String() string { 1485 return protoimpl.X.MessageStringOf(x) 1486} 1487 1488func (*VideoAdInfo) ProtoMessage() {} 1489 1490func (x *VideoAdInfo) ProtoReflect() protoreflect.Message { 1491 mi := &file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[19] 1492 if protoimpl.UnsafeEnabled && x != nil { 1493 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1494 if ms.LoadMessageInfo() == nil { 1495 ms.StoreMessageInfo(mi) 1496 } 1497 return ms 1498 } 1499 return mi.MessageOf(x) 1500} 1501 1502// Deprecated: Use VideoAdInfo.ProtoReflect.Descriptor instead. 1503func (*VideoAdInfo) Descriptor() ([]byte, []int) { 1504 return file_google_ads_googleads_v3_common_ad_type_infos_proto_rawDescGZIP(), []int{19} 1505} 1506 1507func (x *VideoAdInfo) GetMediaFile() *wrapperspb.StringValue { 1508 if x != nil { 1509 return x.MediaFile 1510 } 1511 return nil 1512} 1513 1514func (m *VideoAdInfo) GetFormat() isVideoAdInfo_Format { 1515 if m != nil { 1516 return m.Format 1517 } 1518 return nil 1519} 1520 1521func (x *VideoAdInfo) GetInStream() *VideoTrueViewInStreamAdInfo { 1522 if x, ok := x.GetFormat().(*VideoAdInfo_InStream); ok { 1523 return x.InStream 1524 } 1525 return nil 1526} 1527 1528func (x *VideoAdInfo) GetBumper() *VideoBumperInStreamAdInfo { 1529 if x, ok := x.GetFormat().(*VideoAdInfo_Bumper); ok { 1530 return x.Bumper 1531 } 1532 return nil 1533} 1534 1535func (x *VideoAdInfo) GetOutStream() *VideoOutstreamAdInfo { 1536 if x, ok := x.GetFormat().(*VideoAdInfo_OutStream); ok { 1537 return x.OutStream 1538 } 1539 return nil 1540} 1541 1542func (x *VideoAdInfo) GetNonSkippable() *VideoNonSkippableInStreamAdInfo { 1543 if x, ok := x.GetFormat().(*VideoAdInfo_NonSkippable); ok { 1544 return x.NonSkippable 1545 } 1546 return nil 1547} 1548 1549func (x *VideoAdInfo) GetDiscovery() *VideoTrueViewDiscoveryAdInfo { 1550 if x, ok := x.GetFormat().(*VideoAdInfo_Discovery); ok { 1551 return x.Discovery 1552 } 1553 return nil 1554} 1555 1556type isVideoAdInfo_Format interface { 1557 isVideoAdInfo_Format() 1558} 1559 1560type VideoAdInfo_InStream struct { 1561 // Video TrueView in-stream ad format. 1562 InStream *VideoTrueViewInStreamAdInfo `protobuf:"bytes,2,opt,name=in_stream,json=inStream,proto3,oneof"` 1563} 1564 1565type VideoAdInfo_Bumper struct { 1566 // Video bumper in-stream ad format. 1567 Bumper *VideoBumperInStreamAdInfo `protobuf:"bytes,3,opt,name=bumper,proto3,oneof"` 1568} 1569 1570type VideoAdInfo_OutStream struct { 1571 // Video out-stream ad format. 1572 OutStream *VideoOutstreamAdInfo `protobuf:"bytes,4,opt,name=out_stream,json=outStream,proto3,oneof"` 1573} 1574 1575type VideoAdInfo_NonSkippable struct { 1576 // Video non-skippable in-stream ad format. 1577 NonSkippable *VideoNonSkippableInStreamAdInfo `protobuf:"bytes,5,opt,name=non_skippable,json=nonSkippable,proto3,oneof"` 1578} 1579 1580type VideoAdInfo_Discovery struct { 1581 // Video TrueView discovery ad format. 1582 Discovery *VideoTrueViewDiscoveryAdInfo `protobuf:"bytes,6,opt,name=discovery,proto3,oneof"` 1583} 1584 1585func (*VideoAdInfo_InStream) isVideoAdInfo_Format() {} 1586 1587func (*VideoAdInfo_Bumper) isVideoAdInfo_Format() {} 1588 1589func (*VideoAdInfo_OutStream) isVideoAdInfo_Format() {} 1590 1591func (*VideoAdInfo_NonSkippable) isVideoAdInfo_Format() {} 1592 1593func (*VideoAdInfo_Discovery) isVideoAdInfo_Format() {} 1594 1595// A responsive search ad. 1596// 1597// Responsive search ads let you create an ad that adapts to show more text, and 1598// more relevant messages, to your customers. Enter multiple headlines and 1599// descriptions when creating a responsive search ad, and over time, Google Ads 1600// will automatically test different combinations and learn which combinations 1601// perform best. By adapting your ad's content to more closely match potential 1602// customers' search terms, responsive search ads may improve your campaign's 1603// performance. 1604// 1605// More information at https://support.google.com/google-ads/answer/7684791 1606type ResponsiveSearchAdInfo struct { 1607 state protoimpl.MessageState 1608 sizeCache protoimpl.SizeCache 1609 unknownFields protoimpl.UnknownFields 1610 1611 // List of text assets for headlines. When the ad serves the headlines will 1612 // be selected from this list. 1613 Headlines []*AdTextAsset `protobuf:"bytes,1,rep,name=headlines,proto3" json:"headlines,omitempty"` 1614 // List of text assets for descriptions. When the ad serves the descriptions 1615 // will be selected from this list. 1616 Descriptions []*AdTextAsset `protobuf:"bytes,2,rep,name=descriptions,proto3" json:"descriptions,omitempty"` 1617 // First part of text that may appear appended to the url displayed in the ad. 1618 Path1 *wrapperspb.StringValue `protobuf:"bytes,3,opt,name=path1,proto3" json:"path1,omitempty"` 1619 // Second part of text that may appear appended to the url displayed in the 1620 // ad. This field can only be set when path1 is also set. 1621 Path2 *wrapperspb.StringValue `protobuf:"bytes,4,opt,name=path2,proto3" json:"path2,omitempty"` 1622} 1623 1624func (x *ResponsiveSearchAdInfo) Reset() { 1625 *x = ResponsiveSearchAdInfo{} 1626 if protoimpl.UnsafeEnabled { 1627 mi := &file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[20] 1628 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1629 ms.StoreMessageInfo(mi) 1630 } 1631} 1632 1633func (x *ResponsiveSearchAdInfo) String() string { 1634 return protoimpl.X.MessageStringOf(x) 1635} 1636 1637func (*ResponsiveSearchAdInfo) ProtoMessage() {} 1638 1639func (x *ResponsiveSearchAdInfo) ProtoReflect() protoreflect.Message { 1640 mi := &file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[20] 1641 if protoimpl.UnsafeEnabled && x != nil { 1642 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1643 if ms.LoadMessageInfo() == nil { 1644 ms.StoreMessageInfo(mi) 1645 } 1646 return ms 1647 } 1648 return mi.MessageOf(x) 1649} 1650 1651// Deprecated: Use ResponsiveSearchAdInfo.ProtoReflect.Descriptor instead. 1652func (*ResponsiveSearchAdInfo) Descriptor() ([]byte, []int) { 1653 return file_google_ads_googleads_v3_common_ad_type_infos_proto_rawDescGZIP(), []int{20} 1654} 1655 1656func (x *ResponsiveSearchAdInfo) GetHeadlines() []*AdTextAsset { 1657 if x != nil { 1658 return x.Headlines 1659 } 1660 return nil 1661} 1662 1663func (x *ResponsiveSearchAdInfo) GetDescriptions() []*AdTextAsset { 1664 if x != nil { 1665 return x.Descriptions 1666 } 1667 return nil 1668} 1669 1670func (x *ResponsiveSearchAdInfo) GetPath1() *wrapperspb.StringValue { 1671 if x != nil { 1672 return x.Path1 1673 } 1674 return nil 1675} 1676 1677func (x *ResponsiveSearchAdInfo) GetPath2() *wrapperspb.StringValue { 1678 if x != nil { 1679 return x.Path2 1680 } 1681 return nil 1682} 1683 1684// A legacy responsive display ad. Ads of this type are labeled 'Responsive ads' 1685// in the Google Ads UI. 1686type LegacyResponsiveDisplayAdInfo struct { 1687 state protoimpl.MessageState 1688 sizeCache protoimpl.SizeCache 1689 unknownFields protoimpl.UnknownFields 1690 1691 // The short version of the ad's headline. 1692 ShortHeadline *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=short_headline,json=shortHeadline,proto3" json:"short_headline,omitempty"` 1693 // The long version of the ad's headline. 1694 LongHeadline *wrapperspb.StringValue `protobuf:"bytes,2,opt,name=long_headline,json=longHeadline,proto3" json:"long_headline,omitempty"` 1695 // The description of the ad. 1696 Description *wrapperspb.StringValue `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` 1697 // The business name in the ad. 1698 BusinessName *wrapperspb.StringValue `protobuf:"bytes,4,opt,name=business_name,json=businessName,proto3" json:"business_name,omitempty"` 1699 // Advertiser's consent to allow flexible color. When true, the ad may be 1700 // served with different color if necessary. When false, the ad will be served 1701 // with the specified colors or a neutral color. 1702 // The default value is true. 1703 // Must be true if main_color and accent_color are not set. 1704 AllowFlexibleColor *wrapperspb.BoolValue `protobuf:"bytes,5,opt,name=allow_flexible_color,json=allowFlexibleColor,proto3" json:"allow_flexible_color,omitempty"` 1705 // The accent color of the ad in hexadecimal, e.g. #ffffff for white. 1706 // If one of main_color and accent_color is set, the other is required as 1707 // well. 1708 AccentColor *wrapperspb.StringValue `protobuf:"bytes,6,opt,name=accent_color,json=accentColor,proto3" json:"accent_color,omitempty"` 1709 // The main color of the ad in hexadecimal, e.g. #ffffff for white. 1710 // If one of main_color and accent_color is set, the other is required as 1711 // well. 1712 MainColor *wrapperspb.StringValue `protobuf:"bytes,7,opt,name=main_color,json=mainColor,proto3" json:"main_color,omitempty"` 1713 // The call-to-action text for the ad. 1714 CallToActionText *wrapperspb.StringValue `protobuf:"bytes,8,opt,name=call_to_action_text,json=callToActionText,proto3" json:"call_to_action_text,omitempty"` 1715 // The MediaFile resource name of the logo image used in the ad. 1716 LogoImage *wrapperspb.StringValue `protobuf:"bytes,9,opt,name=logo_image,json=logoImage,proto3" json:"logo_image,omitempty"` 1717 // The MediaFile resource name of the square logo image used in the ad. 1718 SquareLogoImage *wrapperspb.StringValue `protobuf:"bytes,10,opt,name=square_logo_image,json=squareLogoImage,proto3" json:"square_logo_image,omitempty"` 1719 // The MediaFile resource name of the marketing image used in the ad. 1720 MarketingImage *wrapperspb.StringValue `protobuf:"bytes,11,opt,name=marketing_image,json=marketingImage,proto3" json:"marketing_image,omitempty"` 1721 // The MediaFile resource name of the square marketing image used in the ad. 1722 SquareMarketingImage *wrapperspb.StringValue `protobuf:"bytes,12,opt,name=square_marketing_image,json=squareMarketingImage,proto3" json:"square_marketing_image,omitempty"` 1723 // Specifies which format the ad will be served in. Default is ALL_FORMATS. 1724 FormatSetting enums.DisplayAdFormatSettingEnum_DisplayAdFormatSetting `protobuf:"varint,13,opt,name=format_setting,json=formatSetting,proto3,enum=google.ads.googleads.v3.enums.DisplayAdFormatSettingEnum_DisplayAdFormatSetting" json:"format_setting,omitempty"` 1725 // Prefix before price. E.g. 'as low as'. 1726 PricePrefix *wrapperspb.StringValue `protobuf:"bytes,14,opt,name=price_prefix,json=pricePrefix,proto3" json:"price_prefix,omitempty"` 1727 // Promotion text used for dyanmic formats of responsive ads. For example 1728 // 'Free two-day shipping'. 1729 PromoText *wrapperspb.StringValue `protobuf:"bytes,15,opt,name=promo_text,json=promoText,proto3" json:"promo_text,omitempty"` 1730} 1731 1732func (x *LegacyResponsiveDisplayAdInfo) Reset() { 1733 *x = LegacyResponsiveDisplayAdInfo{} 1734 if protoimpl.UnsafeEnabled { 1735 mi := &file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[21] 1736 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1737 ms.StoreMessageInfo(mi) 1738 } 1739} 1740 1741func (x *LegacyResponsiveDisplayAdInfo) String() string { 1742 return protoimpl.X.MessageStringOf(x) 1743} 1744 1745func (*LegacyResponsiveDisplayAdInfo) ProtoMessage() {} 1746 1747func (x *LegacyResponsiveDisplayAdInfo) ProtoReflect() protoreflect.Message { 1748 mi := &file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[21] 1749 if protoimpl.UnsafeEnabled && x != nil { 1750 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1751 if ms.LoadMessageInfo() == nil { 1752 ms.StoreMessageInfo(mi) 1753 } 1754 return ms 1755 } 1756 return mi.MessageOf(x) 1757} 1758 1759// Deprecated: Use LegacyResponsiveDisplayAdInfo.ProtoReflect.Descriptor instead. 1760func (*LegacyResponsiveDisplayAdInfo) Descriptor() ([]byte, []int) { 1761 return file_google_ads_googleads_v3_common_ad_type_infos_proto_rawDescGZIP(), []int{21} 1762} 1763 1764func (x *LegacyResponsiveDisplayAdInfo) GetShortHeadline() *wrapperspb.StringValue { 1765 if x != nil { 1766 return x.ShortHeadline 1767 } 1768 return nil 1769} 1770 1771func (x *LegacyResponsiveDisplayAdInfo) GetLongHeadline() *wrapperspb.StringValue { 1772 if x != nil { 1773 return x.LongHeadline 1774 } 1775 return nil 1776} 1777 1778func (x *LegacyResponsiveDisplayAdInfo) GetDescription() *wrapperspb.StringValue { 1779 if x != nil { 1780 return x.Description 1781 } 1782 return nil 1783} 1784 1785func (x *LegacyResponsiveDisplayAdInfo) GetBusinessName() *wrapperspb.StringValue { 1786 if x != nil { 1787 return x.BusinessName 1788 } 1789 return nil 1790} 1791 1792func (x *LegacyResponsiveDisplayAdInfo) GetAllowFlexibleColor() *wrapperspb.BoolValue { 1793 if x != nil { 1794 return x.AllowFlexibleColor 1795 } 1796 return nil 1797} 1798 1799func (x *LegacyResponsiveDisplayAdInfo) GetAccentColor() *wrapperspb.StringValue { 1800 if x != nil { 1801 return x.AccentColor 1802 } 1803 return nil 1804} 1805 1806func (x *LegacyResponsiveDisplayAdInfo) GetMainColor() *wrapperspb.StringValue { 1807 if x != nil { 1808 return x.MainColor 1809 } 1810 return nil 1811} 1812 1813func (x *LegacyResponsiveDisplayAdInfo) GetCallToActionText() *wrapperspb.StringValue { 1814 if x != nil { 1815 return x.CallToActionText 1816 } 1817 return nil 1818} 1819 1820func (x *LegacyResponsiveDisplayAdInfo) GetLogoImage() *wrapperspb.StringValue { 1821 if x != nil { 1822 return x.LogoImage 1823 } 1824 return nil 1825} 1826 1827func (x *LegacyResponsiveDisplayAdInfo) GetSquareLogoImage() *wrapperspb.StringValue { 1828 if x != nil { 1829 return x.SquareLogoImage 1830 } 1831 return nil 1832} 1833 1834func (x *LegacyResponsiveDisplayAdInfo) GetMarketingImage() *wrapperspb.StringValue { 1835 if x != nil { 1836 return x.MarketingImage 1837 } 1838 return nil 1839} 1840 1841func (x *LegacyResponsiveDisplayAdInfo) GetSquareMarketingImage() *wrapperspb.StringValue { 1842 if x != nil { 1843 return x.SquareMarketingImage 1844 } 1845 return nil 1846} 1847 1848func (x *LegacyResponsiveDisplayAdInfo) GetFormatSetting() enums.DisplayAdFormatSettingEnum_DisplayAdFormatSetting { 1849 if x != nil { 1850 return x.FormatSetting 1851 } 1852 return enums.DisplayAdFormatSettingEnum_UNSPECIFIED 1853} 1854 1855func (x *LegacyResponsiveDisplayAdInfo) GetPricePrefix() *wrapperspb.StringValue { 1856 if x != nil { 1857 return x.PricePrefix 1858 } 1859 return nil 1860} 1861 1862func (x *LegacyResponsiveDisplayAdInfo) GetPromoText() *wrapperspb.StringValue { 1863 if x != nil { 1864 return x.PromoText 1865 } 1866 return nil 1867} 1868 1869// An app ad. 1870type AppAdInfo struct { 1871 state protoimpl.MessageState 1872 sizeCache protoimpl.SizeCache 1873 unknownFields protoimpl.UnknownFields 1874 1875 // Mandatory ad text. 1876 MandatoryAdText *AdTextAsset `protobuf:"bytes,1,opt,name=mandatory_ad_text,json=mandatoryAdText,proto3" json:"mandatory_ad_text,omitempty"` 1877 // List of text assets for headlines. When the ad serves the headlines will 1878 // be selected from this list. 1879 Headlines []*AdTextAsset `protobuf:"bytes,2,rep,name=headlines,proto3" json:"headlines,omitempty"` 1880 // List of text assets for descriptions. When the ad serves the descriptions 1881 // will be selected from this list. 1882 Descriptions []*AdTextAsset `protobuf:"bytes,3,rep,name=descriptions,proto3" json:"descriptions,omitempty"` 1883 // List of image assets that may be displayed with the ad. 1884 Images []*AdImageAsset `protobuf:"bytes,4,rep,name=images,proto3" json:"images,omitempty"` 1885 // List of YouTube video assets that may be displayed with the ad. 1886 YoutubeVideos []*AdVideoAsset `protobuf:"bytes,5,rep,name=youtube_videos,json=youtubeVideos,proto3" json:"youtube_videos,omitempty"` 1887 // List of media bundle assets that may be used with the ad. 1888 Html5MediaBundles []*AdMediaBundleAsset `protobuf:"bytes,6,rep,name=html5_media_bundles,json=html5MediaBundles,proto3" json:"html5_media_bundles,omitempty"` 1889} 1890 1891func (x *AppAdInfo) Reset() { 1892 *x = AppAdInfo{} 1893 if protoimpl.UnsafeEnabled { 1894 mi := &file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[22] 1895 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1896 ms.StoreMessageInfo(mi) 1897 } 1898} 1899 1900func (x *AppAdInfo) String() string { 1901 return protoimpl.X.MessageStringOf(x) 1902} 1903 1904func (*AppAdInfo) ProtoMessage() {} 1905 1906func (x *AppAdInfo) ProtoReflect() protoreflect.Message { 1907 mi := &file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[22] 1908 if protoimpl.UnsafeEnabled && x != nil { 1909 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1910 if ms.LoadMessageInfo() == nil { 1911 ms.StoreMessageInfo(mi) 1912 } 1913 return ms 1914 } 1915 return mi.MessageOf(x) 1916} 1917 1918// Deprecated: Use AppAdInfo.ProtoReflect.Descriptor instead. 1919func (*AppAdInfo) Descriptor() ([]byte, []int) { 1920 return file_google_ads_googleads_v3_common_ad_type_infos_proto_rawDescGZIP(), []int{22} 1921} 1922 1923func (x *AppAdInfo) GetMandatoryAdText() *AdTextAsset { 1924 if x != nil { 1925 return x.MandatoryAdText 1926 } 1927 return nil 1928} 1929 1930func (x *AppAdInfo) GetHeadlines() []*AdTextAsset { 1931 if x != nil { 1932 return x.Headlines 1933 } 1934 return nil 1935} 1936 1937func (x *AppAdInfo) GetDescriptions() []*AdTextAsset { 1938 if x != nil { 1939 return x.Descriptions 1940 } 1941 return nil 1942} 1943 1944func (x *AppAdInfo) GetImages() []*AdImageAsset { 1945 if x != nil { 1946 return x.Images 1947 } 1948 return nil 1949} 1950 1951func (x *AppAdInfo) GetYoutubeVideos() []*AdVideoAsset { 1952 if x != nil { 1953 return x.YoutubeVideos 1954 } 1955 return nil 1956} 1957 1958func (x *AppAdInfo) GetHtml5MediaBundles() []*AdMediaBundleAsset { 1959 if x != nil { 1960 return x.Html5MediaBundles 1961 } 1962 return nil 1963} 1964 1965// App engagement ads allow you to write text encouraging a specific action in 1966// the app, like checking in, making a purchase, or booking a flight. 1967// They allow you to send users to a specific part of your app where they can 1968// find what they're looking for easier and faster. 1969type AppEngagementAdInfo struct { 1970 state protoimpl.MessageState 1971 sizeCache protoimpl.SizeCache 1972 unknownFields protoimpl.UnknownFields 1973 1974 // List of text assets for headlines. When the ad serves the headlines will 1975 // be selected from this list. 1976 Headlines []*AdTextAsset `protobuf:"bytes,1,rep,name=headlines,proto3" json:"headlines,omitempty"` 1977 // List of text assets for descriptions. When the ad serves the descriptions 1978 // will be selected from this list. 1979 Descriptions []*AdTextAsset `protobuf:"bytes,2,rep,name=descriptions,proto3" json:"descriptions,omitempty"` 1980 // List of image assets that may be displayed with the ad. 1981 Images []*AdImageAsset `protobuf:"bytes,3,rep,name=images,proto3" json:"images,omitempty"` 1982 // List of video assets that may be displayed with the ad. 1983 Videos []*AdVideoAsset `protobuf:"bytes,4,rep,name=videos,proto3" json:"videos,omitempty"` 1984} 1985 1986func (x *AppEngagementAdInfo) Reset() { 1987 *x = AppEngagementAdInfo{} 1988 if protoimpl.UnsafeEnabled { 1989 mi := &file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[23] 1990 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1991 ms.StoreMessageInfo(mi) 1992 } 1993} 1994 1995func (x *AppEngagementAdInfo) String() string { 1996 return protoimpl.X.MessageStringOf(x) 1997} 1998 1999func (*AppEngagementAdInfo) ProtoMessage() {} 2000 2001func (x *AppEngagementAdInfo) ProtoReflect() protoreflect.Message { 2002 mi := &file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[23] 2003 if protoimpl.UnsafeEnabled && x != nil { 2004 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2005 if ms.LoadMessageInfo() == nil { 2006 ms.StoreMessageInfo(mi) 2007 } 2008 return ms 2009 } 2010 return mi.MessageOf(x) 2011} 2012 2013// Deprecated: Use AppEngagementAdInfo.ProtoReflect.Descriptor instead. 2014func (*AppEngagementAdInfo) Descriptor() ([]byte, []int) { 2015 return file_google_ads_googleads_v3_common_ad_type_infos_proto_rawDescGZIP(), []int{23} 2016} 2017 2018func (x *AppEngagementAdInfo) GetHeadlines() []*AdTextAsset { 2019 if x != nil { 2020 return x.Headlines 2021 } 2022 return nil 2023} 2024 2025func (x *AppEngagementAdInfo) GetDescriptions() []*AdTextAsset { 2026 if x != nil { 2027 return x.Descriptions 2028 } 2029 return nil 2030} 2031 2032func (x *AppEngagementAdInfo) GetImages() []*AdImageAsset { 2033 if x != nil { 2034 return x.Images 2035 } 2036 return nil 2037} 2038 2039func (x *AppEngagementAdInfo) GetVideos() []*AdVideoAsset { 2040 if x != nil { 2041 return x.Videos 2042 } 2043 return nil 2044} 2045 2046// A legacy app install ad that only can be used by a few select customers. 2047type LegacyAppInstallAdInfo struct { 2048 state protoimpl.MessageState 2049 sizeCache protoimpl.SizeCache 2050 unknownFields protoimpl.UnknownFields 2051 2052 // The id of the mobile app. 2053 AppId *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=app_id,json=appId,proto3" json:"app_id,omitempty"` 2054 // The app store the mobile app is available in. 2055 AppStore enums.LegacyAppInstallAdAppStoreEnum_LegacyAppInstallAdAppStore `protobuf:"varint,2,opt,name=app_store,json=appStore,proto3,enum=google.ads.googleads.v3.enums.LegacyAppInstallAdAppStoreEnum_LegacyAppInstallAdAppStore" json:"app_store,omitempty"` 2056 // The headline of the ad. 2057 Headline *wrapperspb.StringValue `protobuf:"bytes,3,opt,name=headline,proto3" json:"headline,omitempty"` 2058 // The first description line of the ad. 2059 Description1 *wrapperspb.StringValue `protobuf:"bytes,4,opt,name=description1,proto3" json:"description1,omitempty"` 2060 // The second description line of the ad. 2061 Description2 *wrapperspb.StringValue `protobuf:"bytes,5,opt,name=description2,proto3" json:"description2,omitempty"` 2062} 2063 2064func (x *LegacyAppInstallAdInfo) Reset() { 2065 *x = LegacyAppInstallAdInfo{} 2066 if protoimpl.UnsafeEnabled { 2067 mi := &file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[24] 2068 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2069 ms.StoreMessageInfo(mi) 2070 } 2071} 2072 2073func (x *LegacyAppInstallAdInfo) String() string { 2074 return protoimpl.X.MessageStringOf(x) 2075} 2076 2077func (*LegacyAppInstallAdInfo) ProtoMessage() {} 2078 2079func (x *LegacyAppInstallAdInfo) ProtoReflect() protoreflect.Message { 2080 mi := &file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[24] 2081 if protoimpl.UnsafeEnabled && x != nil { 2082 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2083 if ms.LoadMessageInfo() == nil { 2084 ms.StoreMessageInfo(mi) 2085 } 2086 return ms 2087 } 2088 return mi.MessageOf(x) 2089} 2090 2091// Deprecated: Use LegacyAppInstallAdInfo.ProtoReflect.Descriptor instead. 2092func (*LegacyAppInstallAdInfo) Descriptor() ([]byte, []int) { 2093 return file_google_ads_googleads_v3_common_ad_type_infos_proto_rawDescGZIP(), []int{24} 2094} 2095 2096func (x *LegacyAppInstallAdInfo) GetAppId() *wrapperspb.StringValue { 2097 if x != nil { 2098 return x.AppId 2099 } 2100 return nil 2101} 2102 2103func (x *LegacyAppInstallAdInfo) GetAppStore() enums.LegacyAppInstallAdAppStoreEnum_LegacyAppInstallAdAppStore { 2104 if x != nil { 2105 return x.AppStore 2106 } 2107 return enums.LegacyAppInstallAdAppStoreEnum_UNSPECIFIED 2108} 2109 2110func (x *LegacyAppInstallAdInfo) GetHeadline() *wrapperspb.StringValue { 2111 if x != nil { 2112 return x.Headline 2113 } 2114 return nil 2115} 2116 2117func (x *LegacyAppInstallAdInfo) GetDescription1() *wrapperspb.StringValue { 2118 if x != nil { 2119 return x.Description1 2120 } 2121 return nil 2122} 2123 2124func (x *LegacyAppInstallAdInfo) GetDescription2() *wrapperspb.StringValue { 2125 if x != nil { 2126 return x.Description2 2127 } 2128 return nil 2129} 2130 2131// A responsive display ad. 2132type ResponsiveDisplayAdInfo struct { 2133 state protoimpl.MessageState 2134 sizeCache protoimpl.SizeCache 2135 unknownFields protoimpl.UnknownFields 2136 2137 // Marketing images to be used in the ad. Valid image types are GIF, 2138 // JPEG, and PNG. The minimum size is 600x314 and the aspect ratio must 2139 // be 1.91:1 (+-1%). At least one marketing_image is required. Combined with 2140 // square_marketing_images the maximum is 15. 2141 MarketingImages []*AdImageAsset `protobuf:"bytes,1,rep,name=marketing_images,json=marketingImages,proto3" json:"marketing_images,omitempty"` 2142 // Square marketing images to be used in the ad. Valid image types are GIF, 2143 // JPEG, and PNG. The minimum size is 300x300 and the aspect ratio must 2144 // be 1:1 (+-1%). At least one square marketing_image is required. Combined 2145 // with marketing_images the maximum is 15. 2146 SquareMarketingImages []*AdImageAsset `protobuf:"bytes,2,rep,name=square_marketing_images,json=squareMarketingImages,proto3" json:"square_marketing_images,omitempty"` 2147 // Logo images to be used in the ad. Valid image types are GIF, 2148 // JPEG, and PNG. The minimum size is 512x128 and the aspect ratio must 2149 // be 4:1 (+-1%). Combined with square_logo_images the maximum is 5. 2150 LogoImages []*AdImageAsset `protobuf:"bytes,3,rep,name=logo_images,json=logoImages,proto3" json:"logo_images,omitempty"` 2151 // Square logo images to be used in the ad. Valid image types are GIF, 2152 // JPEG, and PNG. The minimum size is 128x128 and the aspect ratio must 2153 // be 1:1 (+-1%). Combined with square_logo_images the maximum is 5. 2154 SquareLogoImages []*AdImageAsset `protobuf:"bytes,4,rep,name=square_logo_images,json=squareLogoImages,proto3" json:"square_logo_images,omitempty"` 2155 // Short format headlines for the ad. The maximum length is 30 characters. 2156 // At least 1 and max 5 headlines can be specified. 2157 Headlines []*AdTextAsset `protobuf:"bytes,5,rep,name=headlines,proto3" json:"headlines,omitempty"` 2158 // A required long format headline. The maximum length is 90 characters. 2159 LongHeadline *AdTextAsset `protobuf:"bytes,6,opt,name=long_headline,json=longHeadline,proto3" json:"long_headline,omitempty"` 2160 // Descriptive texts for the ad. The maximum length is 90 characters. At 2161 // least 1 and max 5 headlines can be specified. 2162 Descriptions []*AdTextAsset `protobuf:"bytes,7,rep,name=descriptions,proto3" json:"descriptions,omitempty"` 2163 // Optional YouTube videos for the ad. A maximum of 5 videos can be specified. 2164 YoutubeVideos []*AdVideoAsset `protobuf:"bytes,8,rep,name=youtube_videos,json=youtubeVideos,proto3" json:"youtube_videos,omitempty"` 2165 // The advertiser/brand name. Maximum display width is 25. 2166 BusinessName *wrapperspb.StringValue `protobuf:"bytes,9,opt,name=business_name,json=businessName,proto3" json:"business_name,omitempty"` 2167 // The main color of the ad in hexadecimal, e.g. #ffffff for white. 2168 // If one of main_color and accent_color is set, the other is required as 2169 // well. 2170 MainColor *wrapperspb.StringValue `protobuf:"bytes,10,opt,name=main_color,json=mainColor,proto3" json:"main_color,omitempty"` 2171 // The accent color of the ad in hexadecimal, e.g. #ffffff for white. 2172 // If one of main_color and accent_color is set, the other is required as 2173 // well. 2174 AccentColor *wrapperspb.StringValue `protobuf:"bytes,11,opt,name=accent_color,json=accentColor,proto3" json:"accent_color,omitempty"` 2175 // Advertiser's consent to allow flexible color. When true, the ad may be 2176 // served with different color if necessary. When false, the ad will be served 2177 // with the specified colors or a neutral color. 2178 // The default value is true. 2179 // Must be true if main_color and accent_color are not set. 2180 AllowFlexibleColor *wrapperspb.BoolValue `protobuf:"bytes,12,opt,name=allow_flexible_color,json=allowFlexibleColor,proto3" json:"allow_flexible_color,omitempty"` 2181 // The call-to-action text for the ad. Maximum display width is 30. 2182 CallToActionText *wrapperspb.StringValue `protobuf:"bytes,13,opt,name=call_to_action_text,json=callToActionText,proto3" json:"call_to_action_text,omitempty"` 2183 // Prefix before price. E.g. 'as low as'. 2184 PricePrefix *wrapperspb.StringValue `protobuf:"bytes,14,opt,name=price_prefix,json=pricePrefix,proto3" json:"price_prefix,omitempty"` 2185 // Promotion text used for dyanmic formats of responsive ads. For example 2186 // 'Free two-day shipping'. 2187 PromoText *wrapperspb.StringValue `protobuf:"bytes,15,opt,name=promo_text,json=promoText,proto3" json:"promo_text,omitempty"` 2188 // Specifies which format the ad will be served in. Default is ALL_FORMATS. 2189 FormatSetting enums.DisplayAdFormatSettingEnum_DisplayAdFormatSetting `protobuf:"varint,16,opt,name=format_setting,json=formatSetting,proto3,enum=google.ads.googleads.v3.enums.DisplayAdFormatSettingEnum_DisplayAdFormatSetting" json:"format_setting,omitempty"` 2190} 2191 2192func (x *ResponsiveDisplayAdInfo) Reset() { 2193 *x = ResponsiveDisplayAdInfo{} 2194 if protoimpl.UnsafeEnabled { 2195 mi := &file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[25] 2196 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2197 ms.StoreMessageInfo(mi) 2198 } 2199} 2200 2201func (x *ResponsiveDisplayAdInfo) String() string { 2202 return protoimpl.X.MessageStringOf(x) 2203} 2204 2205func (*ResponsiveDisplayAdInfo) ProtoMessage() {} 2206 2207func (x *ResponsiveDisplayAdInfo) ProtoReflect() protoreflect.Message { 2208 mi := &file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[25] 2209 if protoimpl.UnsafeEnabled && x != nil { 2210 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2211 if ms.LoadMessageInfo() == nil { 2212 ms.StoreMessageInfo(mi) 2213 } 2214 return ms 2215 } 2216 return mi.MessageOf(x) 2217} 2218 2219// Deprecated: Use ResponsiveDisplayAdInfo.ProtoReflect.Descriptor instead. 2220func (*ResponsiveDisplayAdInfo) Descriptor() ([]byte, []int) { 2221 return file_google_ads_googleads_v3_common_ad_type_infos_proto_rawDescGZIP(), []int{25} 2222} 2223 2224func (x *ResponsiveDisplayAdInfo) GetMarketingImages() []*AdImageAsset { 2225 if x != nil { 2226 return x.MarketingImages 2227 } 2228 return nil 2229} 2230 2231func (x *ResponsiveDisplayAdInfo) GetSquareMarketingImages() []*AdImageAsset { 2232 if x != nil { 2233 return x.SquareMarketingImages 2234 } 2235 return nil 2236} 2237 2238func (x *ResponsiveDisplayAdInfo) GetLogoImages() []*AdImageAsset { 2239 if x != nil { 2240 return x.LogoImages 2241 } 2242 return nil 2243} 2244 2245func (x *ResponsiveDisplayAdInfo) GetSquareLogoImages() []*AdImageAsset { 2246 if x != nil { 2247 return x.SquareLogoImages 2248 } 2249 return nil 2250} 2251 2252func (x *ResponsiveDisplayAdInfo) GetHeadlines() []*AdTextAsset { 2253 if x != nil { 2254 return x.Headlines 2255 } 2256 return nil 2257} 2258 2259func (x *ResponsiveDisplayAdInfo) GetLongHeadline() *AdTextAsset { 2260 if x != nil { 2261 return x.LongHeadline 2262 } 2263 return nil 2264} 2265 2266func (x *ResponsiveDisplayAdInfo) GetDescriptions() []*AdTextAsset { 2267 if x != nil { 2268 return x.Descriptions 2269 } 2270 return nil 2271} 2272 2273func (x *ResponsiveDisplayAdInfo) GetYoutubeVideos() []*AdVideoAsset { 2274 if x != nil { 2275 return x.YoutubeVideos 2276 } 2277 return nil 2278} 2279 2280func (x *ResponsiveDisplayAdInfo) GetBusinessName() *wrapperspb.StringValue { 2281 if x != nil { 2282 return x.BusinessName 2283 } 2284 return nil 2285} 2286 2287func (x *ResponsiveDisplayAdInfo) GetMainColor() *wrapperspb.StringValue { 2288 if x != nil { 2289 return x.MainColor 2290 } 2291 return nil 2292} 2293 2294func (x *ResponsiveDisplayAdInfo) GetAccentColor() *wrapperspb.StringValue { 2295 if x != nil { 2296 return x.AccentColor 2297 } 2298 return nil 2299} 2300 2301func (x *ResponsiveDisplayAdInfo) GetAllowFlexibleColor() *wrapperspb.BoolValue { 2302 if x != nil { 2303 return x.AllowFlexibleColor 2304 } 2305 return nil 2306} 2307 2308func (x *ResponsiveDisplayAdInfo) GetCallToActionText() *wrapperspb.StringValue { 2309 if x != nil { 2310 return x.CallToActionText 2311 } 2312 return nil 2313} 2314 2315func (x *ResponsiveDisplayAdInfo) GetPricePrefix() *wrapperspb.StringValue { 2316 if x != nil { 2317 return x.PricePrefix 2318 } 2319 return nil 2320} 2321 2322func (x *ResponsiveDisplayAdInfo) GetPromoText() *wrapperspb.StringValue { 2323 if x != nil { 2324 return x.PromoText 2325 } 2326 return nil 2327} 2328 2329func (x *ResponsiveDisplayAdInfo) GetFormatSetting() enums.DisplayAdFormatSettingEnum_DisplayAdFormatSetting { 2330 if x != nil { 2331 return x.FormatSetting 2332 } 2333 return enums.DisplayAdFormatSettingEnum_UNSPECIFIED 2334} 2335 2336// A generic type of display ad. The exact ad format is controlled by the 2337// display_upload_product_type field, which determines what kinds of data 2338// need to be included with the ad. 2339type DisplayUploadAdInfo struct { 2340 state protoimpl.MessageState 2341 sizeCache protoimpl.SizeCache 2342 unknownFields protoimpl.UnknownFields 2343 2344 // The product type of this ad. See comments on the enum for details. 2345 DisplayUploadProductType enums.DisplayUploadProductTypeEnum_DisplayUploadProductType `protobuf:"varint,1,opt,name=display_upload_product_type,json=displayUploadProductType,proto3,enum=google.ads.googleads.v3.enums.DisplayUploadProductTypeEnum_DisplayUploadProductType" json:"display_upload_product_type,omitempty"` 2346 // The asset data that makes up the ad. 2347 // 2348 // Types that are assignable to MediaAsset: 2349 // *DisplayUploadAdInfo_MediaBundle 2350 MediaAsset isDisplayUploadAdInfo_MediaAsset `protobuf_oneof:"media_asset"` 2351} 2352 2353func (x *DisplayUploadAdInfo) Reset() { 2354 *x = DisplayUploadAdInfo{} 2355 if protoimpl.UnsafeEnabled { 2356 mi := &file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[26] 2357 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2358 ms.StoreMessageInfo(mi) 2359 } 2360} 2361 2362func (x *DisplayUploadAdInfo) String() string { 2363 return protoimpl.X.MessageStringOf(x) 2364} 2365 2366func (*DisplayUploadAdInfo) ProtoMessage() {} 2367 2368func (x *DisplayUploadAdInfo) ProtoReflect() protoreflect.Message { 2369 mi := &file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[26] 2370 if protoimpl.UnsafeEnabled && x != nil { 2371 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2372 if ms.LoadMessageInfo() == nil { 2373 ms.StoreMessageInfo(mi) 2374 } 2375 return ms 2376 } 2377 return mi.MessageOf(x) 2378} 2379 2380// Deprecated: Use DisplayUploadAdInfo.ProtoReflect.Descriptor instead. 2381func (*DisplayUploadAdInfo) Descriptor() ([]byte, []int) { 2382 return file_google_ads_googleads_v3_common_ad_type_infos_proto_rawDescGZIP(), []int{26} 2383} 2384 2385func (x *DisplayUploadAdInfo) GetDisplayUploadProductType() enums.DisplayUploadProductTypeEnum_DisplayUploadProductType { 2386 if x != nil { 2387 return x.DisplayUploadProductType 2388 } 2389 return enums.DisplayUploadProductTypeEnum_UNSPECIFIED 2390} 2391 2392func (m *DisplayUploadAdInfo) GetMediaAsset() isDisplayUploadAdInfo_MediaAsset { 2393 if m != nil { 2394 return m.MediaAsset 2395 } 2396 return nil 2397} 2398 2399func (x *DisplayUploadAdInfo) GetMediaBundle() *AdMediaBundleAsset { 2400 if x, ok := x.GetMediaAsset().(*DisplayUploadAdInfo_MediaBundle); ok { 2401 return x.MediaBundle 2402 } 2403 return nil 2404} 2405 2406type isDisplayUploadAdInfo_MediaAsset interface { 2407 isDisplayUploadAdInfo_MediaAsset() 2408} 2409 2410type DisplayUploadAdInfo_MediaBundle struct { 2411 // A media bundle asset to be used in the ad. For information about the 2412 // media bundle for HTML5_UPLOAD_AD see 2413 // https://support.google.com/google-ads/answer/1722096 2414 // Media bundles that are part of dynamic product types use a special format 2415 // that needs to be created through the Google Web Designer. See 2416 // https://support.google.com/webdesigner/answer/7543898 for more 2417 // information. 2418 MediaBundle *AdMediaBundleAsset `protobuf:"bytes,2,opt,name=media_bundle,json=mediaBundle,proto3,oneof"` 2419} 2420 2421func (*DisplayUploadAdInfo_MediaBundle) isDisplayUploadAdInfo_MediaAsset() {} 2422 2423var File_google_ads_googleads_v3_common_ad_type_infos_proto protoreflect.FileDescriptor 2424 2425var file_google_ads_googleads_v3_common_ad_type_infos_proto_rawDesc = []byte{ 2426 0x0a, 0x32, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x64, 0x73, 0x2f, 0x67, 0x6f, 0x6f, 2427 0x67, 0x6c, 0x65, 0x61, 0x64, 0x73, 0x2f, 0x76, 0x33, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 2428 0x2f, 0x61, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x2e, 0x70, 2429 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x64, 0x73, 2430 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x64, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x63, 0x6f, 2431 0x6d, 0x6d, 0x6f, 0x6e, 0x1a, 0x2d, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x64, 0x73, 2432 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x64, 0x73, 0x2f, 0x76, 0x33, 0x2f, 0x63, 0x6f, 2433 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x61, 0x64, 0x5f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x70, 0x72, 2434 0x6f, 0x74, 0x6f, 0x1a, 0x43, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x64, 0x73, 0x2f, 2435 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x64, 0x73, 0x2f, 0x76, 0x33, 0x2f, 0x65, 0x6e, 0x75, 2436 0x6d, 0x73, 0x2f, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x69, 2437 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x74, 0x61, 2438 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x3d, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 2439 0x2f, 0x61, 0x64, 0x73, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x64, 0x73, 0x2f, 0x76, 2440 0x33, 0x2f, 0x65, 0x6e, 0x75, 0x6d, 0x73, 0x2f, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 2441 0x61, 0x64, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 2442 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x3f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 2443 0x61, 0x64, 0x73, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x64, 0x73, 0x2f, 0x76, 0x33, 2444 0x2f, 0x65, 0x6e, 0x75, 0x6d, 0x73, 0x2f, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x75, 2445 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x74, 0x79, 2446 0x70, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x43, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 2447 0x2f, 0x61, 0x64, 0x73, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x64, 0x73, 0x2f, 0x76, 2448 0x33, 0x2f, 0x65, 0x6e, 0x75, 0x6d, 0x73, 0x2f, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x61, 2449 0x70, 0x70, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x5f, 0x61, 0x64, 0x5f, 0x61, 0x70, 2450 0x70, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2d, 0x67, 2451 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x64, 0x73, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 2452 0x61, 0x64, 0x73, 0x2f, 0x76, 0x33, 0x2f, 0x65, 0x6e, 0x75, 0x6d, 0x73, 0x2f, 0x6d, 0x69, 0x6d, 2453 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 2454 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, 2455 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 2456 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 2457 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xca, 0x01, 0x0a, 0x0a, 0x54, 2458 0x65, 0x78, 0x74, 0x41, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x38, 0x0a, 0x08, 0x68, 0x65, 0x61, 2459 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 2460 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 2461 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x68, 0x65, 0x61, 0x64, 0x6c, 2462 0x69, 0x6e, 0x65, 0x12, 0x40, 0x0a, 0x0c, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 2463 0x6f, 0x6e, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 2464 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 2465 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 2466 0x74, 0x69, 0x6f, 0x6e, 0x31, 0x12, 0x40, 0x0a, 0x0c, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 2467 0x74, 0x69, 0x6f, 0x6e, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 2468 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 2469 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x64, 0x65, 0x73, 0x63, 0x72, 2470 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x32, 0x22, 0xcd, 0x03, 0x0a, 0x12, 0x45, 0x78, 0x70, 0x61, 2471 0x6e, 0x64, 0x65, 0x64, 0x54, 0x65, 0x78, 0x74, 0x41, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x43, 2472 0x0a, 0x0e, 0x68, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x31, 2473 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 2474 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 2475 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x68, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x61, 2476 0x72, 0x74, 0x31, 0x12, 0x43, 0x0a, 0x0e, 0x68, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 2477 0x70, 0x61, 0x72, 0x74, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 2478 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 2479 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x68, 0x65, 0x61, 0x64, 0x6c, 2480 0x69, 0x6e, 0x65, 0x50, 0x61, 0x72, 0x74, 0x32, 0x12, 0x43, 0x0a, 0x0e, 0x68, 0x65, 0x61, 0x64, 2481 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x33, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 2482 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 2483 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 2484 0x68, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x61, 0x72, 0x74, 0x33, 0x12, 0x3e, 0x0a, 2485 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 2486 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 2487 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 2488 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 2489 0x0c, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x32, 0x18, 0x07, 0x20, 2490 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 2491 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 2492 0x65, 0x52, 0x0c, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x32, 0x12, 2493 0x32, 0x0a, 0x05, 0x70, 0x61, 0x74, 0x68, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 2494 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 2495 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x70, 0x61, 2496 0x74, 0x68, 0x31, 0x12, 0x32, 0x0a, 0x05, 0x70, 0x61, 0x74, 0x68, 0x32, 0x18, 0x05, 0x20, 0x01, 2497 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 2498 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 2499 0x52, 0x05, 0x70, 0x61, 0x74, 0x68, 0x32, 0x22, 0xad, 0x07, 0x0a, 0x0e, 0x43, 0x61, 0x6c, 0x6c, 2500 0x4f, 0x6e, 0x6c, 0x79, 0x41, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3f, 0x0a, 0x0c, 0x63, 0x6f, 2501 0x75, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 2502 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 2503 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 2504 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x3f, 0x0a, 0x0c, 0x70, 2505 0x68, 0x6f, 0x6e, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 2506 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 2507 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 2508 0x0b, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x41, 0x0a, 0x0d, 2509 0x62, 0x75, 0x73, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 2510 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 2511 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 2512 0x65, 0x52, 0x0c, 0x62, 0x75, 0x73, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, 2513 0x3a, 0x0a, 0x09, 0x68, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x31, 0x18, 0x0b, 0x20, 0x01, 2514 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 2515 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 2516 0x52, 0x09, 0x68, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x31, 0x12, 0x3a, 0x0a, 0x09, 0x68, 2517 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x32, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 2518 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 2519 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x68, 0x65, 2520 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x32, 0x12, 0x40, 0x0a, 0x0c, 0x64, 0x65, 0x73, 0x63, 0x72, 2521 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 2522 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 2523 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x64, 0x65, 0x73, 2524 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x31, 0x12, 0x40, 0x0a, 0x0c, 0x64, 0x65, 0x73, 2525 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 2526 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 2527 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x64, 2528 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x32, 0x12, 0x3d, 0x0a, 0x0c, 0x63, 2529 0x61, 0x6c, 0x6c, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 2530 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 2531 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x63, 2532 0x61, 0x6c, 0x6c, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x12, 0x52, 0x0a, 0x17, 0x64, 0x69, 2533 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x76, 0x65, 2534 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 2535 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 2536 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x15, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 2537 0x43, 0x61, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x5f, 2538 0x0a, 0x1d, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x76, 2539 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x75, 0x72, 0x6c, 0x18, 2540 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 2541 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 2542 0x6c, 0x75, 0x65, 0x52, 0x1a, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 2543 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x12, 2544 0x49, 0x0a, 0x11, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x63, 2545 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 2546 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 2547 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 2548 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x9a, 0x01, 0x0a, 0x1a, 0x63, 2549 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 2550 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 2551 0x5c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x64, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 2552 0x67, 0x6c, 0x65, 0x61, 0x64, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x65, 0x6e, 0x75, 0x6d, 0x73, 0x2e, 2553 0x43, 0x61, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 2554 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x75, 0x6d, 2555 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 2556 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x18, 0x63, 2557 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 2558 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x9f, 0x01, 0x0a, 0x1b, 0x45, 0x78, 0x70, 0x61, 2559 0x6e, 0x64, 0x65, 0x64, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x53, 0x65, 0x61, 0x72, 0x63, 2560 0x68, 0x41, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3e, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 2561 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 2562 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 2563 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 2564 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x0c, 0x64, 0x65, 0x73, 0x63, 0x72, 2565 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 2566 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 2567 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x64, 0x65, 0x73, 2568 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x32, 0x22, 0x0d, 0x0a, 0x0b, 0x48, 0x6f, 0x74, 2569 0x65, 0x6c, 0x41, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x15, 0x0a, 0x13, 0x53, 0x68, 0x6f, 0x70, 2570 0x70, 0x69, 0x6e, 0x67, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x41, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x22, 2571 0x17, 0x0a, 0x15, 0x53, 0x68, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x64, 0x75, 2572 0x63, 0x74, 0x41, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x5b, 0x0a, 0x1f, 0x53, 0x68, 0x6f, 0x70, 2573 0x70, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x4c, 0x69, 2574 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x38, 0x0a, 0x08, 0x68, 2575 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 2576 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 2577 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x68, 0x65, 0x61, 2578 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x22, 0xc3, 0x05, 0x0a, 0x0b, 0x47, 0x6d, 0x61, 0x69, 0x6c, 0x41, 2579 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x43, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x73, 0x65, 0x72, 0x18, 2580 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 2581 0x64, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x64, 0x73, 0x2e, 0x76, 0x33, 0x2e, 2582 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x47, 0x6d, 0x61, 0x69, 0x6c, 0x54, 0x65, 0x61, 0x73, 2583 0x65, 0x72, 0x52, 0x06, 0x74, 0x65, 0x61, 0x73, 0x65, 0x72, 0x12, 0x3f, 0x0a, 0x0c, 0x68, 0x65, 2584 0x61, 0x64, 0x65, 0x72, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 2585 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 2586 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 2587 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x45, 0x0a, 0x0f, 0x6d, 2588 0x61, 0x72, 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x03, 2589 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 2590 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 2591 0x75, 0x65, 0x52, 0x0e, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6d, 0x61, 2592 0x67, 0x65, 0x12, 0x56, 0x0a, 0x18, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x5f, 2593 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x04, 2594 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 2595 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 2596 0x75, 0x65, 0x52, 0x16, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6d, 0x61, 2597 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x5c, 0x0a, 0x1b, 0x6d, 0x61, 2598 0x72, 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x64, 0x65, 2599 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 2600 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 2601 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x19, 0x6d, 2602 0x61, 0x72, 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x44, 0x65, 0x73, 2603 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x86, 0x01, 0x0a, 0x26, 0x6d, 0x61, 0x72, 2604 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x64, 0x69, 0x73, 2605 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x74, 0x6f, 0x5f, 0x61, 0x63, 0x74, 2606 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 2607 0x6c, 0x65, 0x2e, 0x61, 0x64, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x64, 0x73, 2608 0x2e, 0x76, 0x33, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x44, 0x69, 0x73, 0x70, 0x6c, 2609 0x61, 0x79, 0x43, 0x61, 0x6c, 0x6c, 0x54, 0x6f, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x21, 2610 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x44, 0x69, 2611 0x73, 0x70, 0x6c, 0x61, 0x79, 0x43, 0x61, 0x6c, 0x6c, 0x54, 0x6f, 0x41, 0x63, 0x74, 0x69, 0x6f, 2612 0x6e, 0x12, 0x53, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x69, 0x6d, 0x61, 2613 0x67, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 2614 0x6c, 0x65, 0x2e, 0x61, 0x64, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x64, 0x73, 2615 0x2e, 0x76, 0x33, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 2616 0x63, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x0d, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 2617 0x49, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x12, 0x53, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 2618 0x74, 0x5f, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 2619 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x64, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 2620 0x6c, 0x65, 0x61, 0x64, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 2621 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x0d, 0x70, 0x72, 2622 0x6f, 0x64, 0x75, 0x63, 0x74, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x73, 0x22, 0x87, 0x02, 0x0a, 0x0b, 2623 0x47, 0x6d, 0x61, 0x69, 0x6c, 0x54, 0x65, 0x61, 0x73, 0x65, 0x72, 0x12, 0x38, 0x0a, 0x08, 0x68, 2624 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 2625 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 2626 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x68, 0x65, 0x61, 2627 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x3e, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 2628 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 2629 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 2630 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 2631 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x0d, 0x62, 0x75, 0x73, 0x69, 0x6e, 0x65, 0x73, 2632 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 2633 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 2634 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x62, 0x75, 0x73, 0x69, 2635 0x6e, 0x65, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x0a, 0x6c, 0x6f, 0x67, 0x6f, 2636 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 2637 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 2638 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x6c, 0x6f, 0x67, 0x6f, 2639 0x49, 0x6d, 0x61, 0x67, 0x65, 0x22, 0xce, 0x01, 0x0a, 0x13, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 2640 0x79, 0x43, 0x61, 0x6c, 0x6c, 0x54, 0x6f, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 2641 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 2642 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 2643 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x12, 2644 0x3b, 0x0a, 0x0a, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x02, 0x20, 2645 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 2646 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 2647 0x65, 0x52, 0x09, 0x74, 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x48, 0x0a, 0x11, 2648 0x75, 0x72, 0x6c, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 2649 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 2650 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 2651 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x75, 0x72, 0x6c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 2652 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0xfb, 0x01, 0x0a, 0x0c, 0x50, 0x72, 0x6f, 0x64, 0x75, 2653 0x63, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x41, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x64, 0x75, 2654 0x63, 0x74, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 2655 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 2656 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x70, 0x72, 2657 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x3e, 0x0a, 0x0b, 0x64, 0x65, 2658 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 2659 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 2660 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x64, 2661 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x68, 0x0a, 0x16, 0x64, 0x69, 2662 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x74, 0x6f, 0x5f, 0x61, 0x63, 2663 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 2664 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x64, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x64, 2665 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x44, 0x69, 0x73, 0x70, 2666 0x6c, 0x61, 0x79, 0x43, 0x61, 0x6c, 0x6c, 0x54, 0x6f, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 2667 0x13, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x43, 0x61, 0x6c, 0x6c, 0x54, 0x6f, 0x41, 0x63, 2668 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x51, 0x0a, 0x0c, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x56, 2669 0x69, 0x64, 0x65, 0x6f, 0x12, 0x41, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 2670 0x76, 0x69, 0x64, 0x65, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 2671 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 2672 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x64, 0x75, 2673 0x63, 0x74, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x22, 0x82, 0x06, 0x0a, 0x0b, 0x49, 0x6d, 0x61, 0x67, 2674 0x65, 0x41, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3c, 0x0a, 0x0b, 0x70, 0x69, 0x78, 0x65, 0x6c, 2675 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 2676 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 2677 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x70, 0x69, 0x78, 0x65, 0x6c, 2678 0x57, 0x69, 0x64, 0x74, 0x68, 0x12, 0x3e, 0x0a, 0x0c, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x5f, 0x68, 2679 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 2680 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 2681 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x48, 2682 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x39, 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x75, 2683 0x72, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 2684 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 2685 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 2686 0x12, 0x4b, 0x0a, 0x13, 0x70, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x70, 0x69, 0x78, 0x65, 2687 0x6c, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 2688 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 2689 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x11, 0x70, 0x72, 0x65, 0x76, 2690 0x69, 0x65, 0x77, 0x50, 0x69, 0x78, 0x65, 0x6c, 0x57, 0x69, 0x64, 0x74, 0x68, 0x12, 0x4d, 0x0a, 2691 0x14, 0x70, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x5f, 0x68, 2692 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 2693 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 2694 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x12, 0x70, 0x72, 0x65, 0x76, 0x69, 0x65, 2695 0x77, 0x50, 0x69, 0x78, 0x65, 0x6c, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x48, 0x0a, 0x11, 2696 0x70, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x75, 0x72, 2697 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 2698 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 2699 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x70, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x49, 0x6d, 2700 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x51, 0x0a, 0x09, 0x6d, 0x69, 0x6d, 0x65, 0x5f, 0x74, 2701 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 2702 0x6c, 0x65, 0x2e, 0x61, 0x64, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x64, 0x73, 2703 0x2e, 0x76, 0x33, 0x2e, 0x65, 0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x4d, 0x69, 0x6d, 0x65, 0x54, 0x79, 2704 0x70, 0x65, 0x45, 0x6e, 0x75, 0x6d, 0x2e, 0x4d, 0x69, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 2705 0x08, 0x6d, 0x69, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x30, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 2706 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 2707 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 2708 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3d, 0x0a, 0x0a, 0x6d, 2709 0x65, 0x64, 0x69, 0x61, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 2710 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 2711 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 2712 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x31, 0x0a, 0x04, 0x64, 0x61, 2713 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 2714 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 2715 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x54, 0x0a, 2716 0x18, 0x61, 0x64, 0x5f, 0x69, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x6f, 0x70, 0x79, 0x5f, 0x69, 2717 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 2718 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 2719 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x13, 2720 0x61, 0x64, 0x49, 0x64, 0x54, 0x6f, 0x43, 0x6f, 0x70, 0x79, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x46, 2721 0x72, 0x6f, 0x6d, 0x42, 0x07, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x22, 0x64, 0x0a, 0x19, 2722 0x56, 0x69, 0x64, 0x65, 0x6f, 0x42, 0x75, 0x6d, 0x70, 0x65, 0x72, 0x49, 0x6e, 0x53, 0x74, 0x72, 2723 0x65, 0x61, 0x6d, 0x41, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x47, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 2724 0x70, 0x61, 0x6e, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 2725 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 2726 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 2727 0x65, 0x52, 0x0f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x6e, 0x6e, 2728 0x65, 0x72, 0x22, 0x6a, 0x0a, 0x1f, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x6f, 0x6e, 0x53, 0x6b, 2729 0x69, 0x70, 0x70, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x6e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x41, 2730 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x47, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x69, 2731 0x6f, 0x6e, 0x5f, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 2732 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 2733 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x63, 2734 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x22, 0xfb, 2735 0x01, 0x0a, 0x1b, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x65, 0x56, 0x69, 0x65, 0x77, 2736 0x49, 0x6e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x41, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4c, 2737 0x0a, 0x13, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x5f, 2738 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 2739 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 2740 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x11, 0x61, 0x63, 0x74, 0x69, 0x6f, 2741 0x6e, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x45, 0x0a, 0x0f, 2742 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x18, 2743 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 2744 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 2745 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x6c, 2746 0x69, 0x6e, 0x65, 0x12, 0x47, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x69, 0x6f, 0x6e, 2747 0x5f, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 2748 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 2749 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x63, 0x6f, 0x6d, 2750 0x70, 0x61, 0x6e, 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x22, 0x90, 0x01, 0x0a, 2751 0x14, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4f, 0x75, 0x74, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x41, 2752 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x38, 0x0a, 0x08, 0x68, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 2753 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 2754 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 2755 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x68, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x12, 2756 0x3e, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 2757 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 2758 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 2759 0x75, 0x65, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 2760 0xdc, 0x01, 0x0a, 0x1c, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x65, 0x56, 0x69, 0x65, 2761 0x77, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x41, 0x64, 0x49, 0x6e, 0x66, 0x6f, 2762 0x12, 0x38, 0x0a, 0x08, 0x68, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, 2763 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 2764 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 2765 0x52, 0x08, 0x68, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x40, 0x0a, 0x0c, 0x64, 0x65, 2766 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 2767 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 2768 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 2769 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x31, 0x12, 0x40, 0x0a, 0x0c, 2770 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x32, 0x18, 0x03, 0x20, 0x01, 2771 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 2772 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 2773 0x52, 0x0c, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x32, 0x22, 0xa2, 2774 0x04, 0x0a, 0x0b, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x41, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3b, 2775 0x0a, 0x0a, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 2776 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 2777 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 2778 0x52, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x5a, 0x0a, 0x09, 0x69, 2779 0x6e, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 2780 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x64, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 2781 0x6c, 0x65, 0x61, 0x64, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 2782 0x56, 0x69, 0x64, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x65, 0x56, 0x69, 0x65, 0x77, 0x49, 0x6e, 0x53, 2783 0x74, 0x72, 0x65, 0x61, 0x6d, 0x41, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x08, 0x69, 2784 0x6e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x53, 0x0a, 0x06, 0x62, 0x75, 0x6d, 0x70, 0x65, 2785 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 2786 0x2e, 0x61, 0x64, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x64, 0x73, 0x2e, 0x76, 2787 0x33, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x42, 0x75, 2788 0x6d, 0x70, 0x65, 0x72, 0x49, 0x6e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x41, 0x64, 0x49, 0x6e, 2789 0x66, 0x6f, 0x48, 0x00, 0x52, 0x06, 0x62, 0x75, 0x6d, 0x70, 0x65, 0x72, 0x12, 0x55, 0x0a, 0x0a, 2790 0x6f, 0x75, 0x74, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 2791 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x64, 0x73, 0x2e, 0x67, 0x6f, 2792 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x64, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 2793 0x6e, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4f, 0x75, 0x74, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 2794 0x41, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x09, 0x6f, 0x75, 0x74, 0x53, 0x74, 0x72, 2795 0x65, 0x61, 0x6d, 0x12, 0x66, 0x0a, 0x0d, 0x6e, 0x6f, 0x6e, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x70, 2796 0x61, 0x62, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 2797 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x64, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x64, 2798 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x56, 0x69, 0x64, 0x65, 2799 0x6f, 0x4e, 0x6f, 0x6e, 0x53, 0x6b, 0x69, 0x70, 0x70, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x6e, 0x53, 2800 0x74, 0x72, 0x65, 0x61, 0x6d, 0x41, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x0c, 0x6e, 2801 0x6f, 0x6e, 0x53, 0x6b, 0x69, 0x70, 0x70, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x5c, 0x0a, 0x09, 0x64, 2802 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 2803 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x64, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 2804 0x6c, 0x65, 0x61, 0x64, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 2805 0x56, 0x69, 0x64, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x65, 0x56, 0x69, 0x65, 0x77, 0x44, 0x69, 0x73, 2806 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x41, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x09, 2807 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x42, 0x08, 0x0a, 0x06, 0x66, 0x6f, 0x72, 2808 0x6d, 0x61, 0x74, 0x22, 0x9c, 0x02, 0x0a, 0x16, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x69, 2809 0x76, 0x65, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x41, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x49, 2810 0x0a, 0x09, 0x68, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 2811 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x64, 0x73, 0x2e, 0x67, 2812 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x64, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 2813 0x6f, 0x6e, 0x2e, 0x41, 0x64, 0x54, 0x65, 0x78, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x09, 2814 0x68, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x12, 0x4f, 0x0a, 0x0c, 0x64, 0x65, 0x73, 2815 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 2816 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x64, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 2817 0x67, 0x6c, 0x65, 0x61, 0x64, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 2818 0x2e, 0x41, 0x64, 0x54, 0x65, 0x78, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x0c, 0x64, 0x65, 2819 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x32, 0x0a, 0x05, 0x70, 0x61, 2820 0x74, 0x68, 0x31, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 2821 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 2822 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x70, 0x61, 0x74, 0x68, 0x31, 0x12, 0x32, 2823 0x0a, 0x05, 0x70, 0x61, 0x74, 0x68, 0x32, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 2824 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 2825 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x70, 0x61, 0x74, 2826 0x68, 0x32, 0x22, 0xdc, 0x08, 0x0a, 0x1d, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x52, 0x65, 0x73, 2827 0x70, 0x6f, 0x6e, 0x73, 0x69, 0x76, 0x65, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x41, 0x64, 2828 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x43, 0x0a, 0x0e, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x5f, 0x68, 0x65, 2829 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 2830 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 2831 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x73, 0x68, 0x6f, 0x72, 2832 0x74, 0x48, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x41, 0x0a, 0x0d, 0x6c, 0x6f, 0x6e, 2833 0x67, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 2834 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 2835 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 2836 0x6c, 0x6f, 0x6e, 0x67, 0x48, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x3e, 0x0a, 0x0b, 2837 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 2838 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 2839 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 2840 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x0d, 2841 0x62, 0x75, 0x73, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 2842 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 2843 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 2844 0x65, 0x52, 0x0c, 0x62, 0x75, 0x73, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, 2845 0x4c, 0x0a, 0x14, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x66, 0x6c, 0x65, 0x78, 0x69, 0x62, 0x6c, 2846 0x65, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 2847 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 2848 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x12, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 2849 0x46, 0x6c, 0x65, 0x78, 0x69, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x3f, 0x0a, 2850 0x0c, 0x61, 0x63, 0x63, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x06, 0x20, 2851 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 2852 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 2853 0x65, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x3b, 2854 0x0a, 0x0a, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x07, 0x20, 0x01, 2855 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 2856 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 2857 0x52, 0x09, 0x6d, 0x61, 0x69, 0x6e, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x4b, 0x0a, 0x13, 0x63, 2858 0x61, 0x6c, 0x6c, 0x5f, 0x74, 0x6f, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x65, 2859 0x78, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 2860 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 2861 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x10, 0x63, 0x61, 0x6c, 0x6c, 0x54, 0x6f, 0x41, 0x63, 2862 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x65, 0x78, 0x74, 0x12, 0x3b, 0x0a, 0x0a, 0x6c, 0x6f, 0x67, 0x6f, 2863 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 2864 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 2865 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x6c, 0x6f, 0x67, 0x6f, 2866 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x48, 0x0a, 0x11, 0x73, 0x71, 0x75, 0x61, 0x72, 0x65, 0x5f, 2867 0x6c, 0x6f, 0x67, 0x6f, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 2868 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 2869 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 2870 0x73, 0x71, 0x75, 0x61, 0x72, 0x65, 0x4c, 0x6f, 0x67, 0x6f, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 2871 0x45, 0x0a, 0x0f, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6d, 0x61, 2872 0x67, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 2873 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 2874 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x69, 0x6e, 2875 0x67, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x52, 0x0a, 0x16, 0x73, 0x71, 0x75, 0x61, 0x72, 0x65, 2876 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 2877 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 2878 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 2879 0x61, 0x6c, 0x75, 0x65, 0x52, 0x14, 0x73, 0x71, 0x75, 0x61, 0x72, 0x65, 0x4d, 0x61, 0x72, 0x6b, 2880 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x77, 0x0a, 0x0e, 0x66, 0x6f, 2881 0x72, 0x6d, 0x61, 0x74, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x0d, 0x20, 0x01, 2882 0x28, 0x0e, 0x32, 0x50, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x64, 0x73, 0x2e, 2883 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x64, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x65, 0x6e, 0x75, 2884 0x6d, 0x73, 0x2e, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x41, 0x64, 0x46, 0x6f, 0x72, 0x6d, 2885 0x61, 0x74, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x75, 0x6d, 0x2e, 0x44, 0x69, 2886 0x73, 0x70, 0x6c, 0x61, 0x79, 0x41, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x53, 0x65, 0x74, 2887 0x74, 0x69, 0x6e, 0x67, 0x52, 0x0d, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x53, 0x65, 0x74, 0x74, 2888 0x69, 0x6e, 0x67, 0x12, 0x3f, 0x0a, 0x0c, 0x70, 0x72, 0x69, 0x63, 0x65, 0x5f, 0x70, 0x72, 0x65, 2889 0x66, 0x69, 0x78, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 2890 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 2891 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x70, 0x72, 0x69, 0x63, 0x65, 0x50, 0x72, 2892 0x65, 0x66, 0x69, 0x78, 0x12, 0x3b, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x5f, 0x74, 0x65, 2893 0x78, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 2894 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 2895 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x54, 0x65, 0x78, 2896 0x74, 0x22, 0xff, 0x03, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x41, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 2897 0x57, 0x0a, 0x11, 0x6d, 0x61, 0x6e, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x61, 0x64, 0x5f, 2898 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 2899 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x64, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x64, 2900 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x41, 0x64, 0x54, 0x65, 2901 0x78, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x0f, 0x6d, 0x61, 0x6e, 0x64, 0x61, 0x74, 0x6f, 2902 0x72, 0x79, 0x41, 0x64, 0x54, 0x65, 0x78, 0x74, 0x12, 0x49, 0x0a, 0x09, 0x68, 0x65, 0x61, 0x64, 2903 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 2904 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x64, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 2905 0x64, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x41, 0x64, 0x54, 2906 0x65, 0x78, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x09, 0x68, 0x65, 0x61, 0x64, 0x6c, 0x69, 2907 0x6e, 0x65, 0x73, 0x12, 0x4f, 0x0a, 0x0c, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 2908 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 2909 0x6c, 0x65, 0x2e, 0x61, 0x64, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x64, 0x73, 2910 0x2e, 0x76, 0x33, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x41, 0x64, 0x54, 0x65, 0x78, 2911 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x0c, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 2912 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x44, 0x0a, 0x06, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x18, 0x04, 2913 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x64, 2914 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x64, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x63, 2915 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x41, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x41, 0x73, 0x73, 2916 0x65, 0x74, 0x52, 0x06, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x12, 0x53, 0x0a, 0x0e, 0x79, 0x6f, 2917 0x75, 0x74, 0x75, 0x62, 0x65, 0x5f, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x73, 0x18, 0x05, 0x20, 0x03, 2918 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x64, 0x73, 0x2e, 2919 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x64, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x63, 0x6f, 0x6d, 2920 0x6d, 0x6f, 0x6e, 0x2e, 0x41, 0x64, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x41, 0x73, 0x73, 0x65, 0x74, 2921 0x52, 0x0d, 0x79, 0x6f, 0x75, 0x74, 0x75, 0x62, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x73, 0x12, 2922 0x62, 0x0a, 0x13, 0x68, 0x74, 0x6d, 0x6c, 0x35, 0x5f, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x5f, 0x62, 2923 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 2924 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x64, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 2925 0x61, 0x64, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x41, 0x64, 2926 0x4d, 0x65, 0x64, 0x69, 0x61, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 2927 0x52, 0x11, 0x68, 0x74, 0x6d, 0x6c, 0x35, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x42, 0x75, 0x6e, 0x64, 2928 0x6c, 0x65, 0x73, 0x22, 0xbd, 0x02, 0x0a, 0x13, 0x41, 0x70, 0x70, 0x45, 0x6e, 0x67, 0x61, 0x67, 2929 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x49, 0x0a, 0x09, 0x68, 2930 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 2931 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x64, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 2932 0x6c, 0x65, 0x61, 0x64, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 2933 0x41, 0x64, 0x54, 0x65, 0x78, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x09, 0x68, 0x65, 0x61, 2934 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x12, 0x4f, 0x0a, 0x0c, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 2935 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 2936 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x64, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 2937 0x61, 0x64, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x41, 0x64, 2938 0x54, 0x65, 0x78, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x0c, 0x64, 0x65, 0x73, 0x63, 0x72, 2939 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x44, 0x0a, 0x06, 0x69, 0x6d, 0x61, 0x67, 0x65, 2940 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 2941 0x2e, 0x61, 0x64, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x64, 0x73, 0x2e, 0x76, 2942 0x33, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x41, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 2943 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x06, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x12, 0x44, 0x0a, 2944 0x06, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 2945 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x64, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 2946 0x65, 0x61, 0x64, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x41, 2947 0x64, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x06, 0x76, 0x69, 0x64, 2948 0x65, 0x6f, 0x73, 0x22, 0x82, 0x03, 0x0a, 0x16, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x41, 0x70, 2949 0x70, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x41, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x33, 2950 0x0a, 0x06, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 2951 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 2952 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x61, 0x70, 2953 0x70, 0x49, 0x64, 0x12, 0x75, 0x0a, 0x09, 0x61, 0x70, 0x70, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x65, 2954 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x58, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 2955 0x61, 0x64, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x64, 0x73, 0x2e, 0x76, 0x33, 2956 0x2e, 0x65, 0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x41, 0x70, 0x70, 2957 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x41, 0x64, 0x41, 0x70, 0x70, 0x53, 0x74, 0x6f, 0x72, 2958 0x65, 0x45, 0x6e, 0x75, 0x6d, 0x2e, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x41, 0x70, 0x70, 0x49, 2959 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x41, 0x64, 0x41, 0x70, 0x70, 0x53, 0x74, 0x6f, 0x72, 0x65, 2960 0x52, 0x08, 0x61, 0x70, 0x70, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x38, 0x0a, 0x08, 0x68, 0x65, 2961 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 2962 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 2963 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x68, 0x65, 0x61, 0x64, 2964 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x40, 0x0a, 0x0c, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 2965 0x69, 0x6f, 0x6e, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 2966 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 2967 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 2968 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x31, 0x12, 0x40, 0x0a, 0x0c, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 2969 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 2970 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 2971 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x64, 0x65, 0x73, 0x63, 2972 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x32, 0x22, 0x99, 0x0a, 0x0a, 0x17, 0x52, 0x65, 0x73, 2973 0x70, 0x6f, 0x6e, 0x73, 0x69, 0x76, 0x65, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x41, 0x64, 2974 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x57, 0x0a, 0x10, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x69, 0x6e, 2975 0x67, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 2976 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x64, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 2977 0x6c, 0x65, 0x61, 0x64, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 2978 0x41, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x0f, 0x6d, 0x61, 2979 0x72, 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x12, 0x64, 0x0a, 2980 0x17, 0x73, 0x71, 0x75, 0x61, 0x72, 0x65, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x69, 0x6e, 2981 0x67, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 2982 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x64, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 2983 0x6c, 0x65, 0x61, 0x64, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 2984 0x41, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x15, 0x73, 0x71, 2985 0x75, 0x61, 0x72, 0x65, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6d, 0x61, 2986 0x67, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x0b, 0x6c, 0x6f, 0x67, 0x6f, 0x5f, 0x69, 0x6d, 0x61, 0x67, 2987 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 2988 0x65, 0x2e, 0x61, 0x64, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x64, 0x73, 0x2e, 2989 0x76, 0x33, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x41, 0x64, 0x49, 0x6d, 0x61, 0x67, 2990 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x0a, 0x6c, 0x6f, 0x67, 0x6f, 0x49, 0x6d, 0x61, 0x67, 2991 0x65, 0x73, 0x12, 0x5a, 0x0a, 0x12, 0x73, 0x71, 0x75, 0x61, 0x72, 0x65, 0x5f, 0x6c, 0x6f, 0x67, 2992 0x6f, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 2993 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x64, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 2994 0x6c, 0x65, 0x61, 0x64, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 2995 0x41, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x10, 0x73, 0x71, 2996 0x75, 0x61, 0x72, 0x65, 0x4c, 0x6f, 0x67, 0x6f, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x12, 0x49, 2997 0x0a, 0x09, 0x68, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 2998 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x64, 0x73, 0x2e, 0x67, 2999 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x64, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 3000 0x6f, 0x6e, 0x2e, 0x41, 0x64, 0x54, 0x65, 0x78, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x09, 3001 0x68, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x12, 0x50, 0x0a, 0x0d, 0x6c, 0x6f, 0x6e, 3002 0x67, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 3003 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x64, 0x73, 0x2e, 0x67, 0x6f, 3004 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x64, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 3005 0x6e, 0x2e, 0x41, 0x64, 0x54, 0x65, 0x78, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x0c, 0x6c, 3006 0x6f, 0x6e, 0x67, 0x48, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x4f, 0x0a, 0x0c, 0x64, 3007 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 3008 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x64, 0x73, 0x2e, 0x67, 3009 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x64, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 3010 0x6f, 0x6e, 0x2e, 0x41, 0x64, 0x54, 0x65, 0x78, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x0c, 3011 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x53, 0x0a, 0x0e, 3012 0x79, 0x6f, 0x75, 0x74, 0x75, 0x62, 0x65, 0x5f, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x73, 0x18, 0x08, 3013 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x64, 3014 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x64, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x63, 3015 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x41, 0x64, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x41, 0x73, 0x73, 3016 0x65, 0x74, 0x52, 0x0d, 0x79, 0x6f, 0x75, 0x74, 0x75, 0x62, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 3017 0x73, 0x12, 0x41, 0x0a, 0x0d, 0x62, 0x75, 0x73, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x6e, 0x61, 3018 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 3019 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 3020 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x62, 0x75, 0x73, 0x69, 0x6e, 0x65, 0x73, 0x73, 3021 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x0a, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x63, 0x6f, 0x6c, 3022 0x6f, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 3023 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 3024 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x6d, 0x61, 0x69, 0x6e, 0x43, 0x6f, 0x6c, 0x6f, 3025 0x72, 0x12, 0x3f, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 3026 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 3027 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 3028 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6c, 3029 0x6f, 0x72, 0x12, 0x4c, 0x0a, 0x14, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x66, 0x6c, 0x65, 0x78, 3030 0x69, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 3031 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 3032 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x12, 0x61, 0x6c, 3033 0x6c, 0x6f, 0x77, 0x46, 0x6c, 0x65, 0x78, 0x69, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 3034 0x12, 0x4b, 0x0a, 0x13, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x74, 0x6f, 0x5f, 0x61, 0x63, 0x74, 0x69, 3035 0x6f, 0x6e, 0x5f, 0x74, 0x65, 0x78, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 3036 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 3037 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x10, 0x63, 0x61, 0x6c, 3038 0x6c, 0x54, 0x6f, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x65, 0x78, 0x74, 0x12, 0x3f, 0x0a, 3039 0x0c, 0x70, 0x72, 0x69, 0x63, 0x65, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x0e, 0x20, 3040 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 3041 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 3042 0x65, 0x52, 0x0b, 0x70, 0x72, 0x69, 0x63, 0x65, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x3b, 3043 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x5f, 0x74, 0x65, 0x78, 0x74, 0x18, 0x0f, 0x20, 0x01, 3044 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 3045 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 3046 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x54, 0x65, 0x78, 0x74, 0x12, 0x77, 0x0a, 0x0e, 0x66, 3047 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x10, 0x20, 3048 0x01, 0x28, 0x0e, 0x32, 0x50, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x64, 0x73, 3049 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x64, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x65, 0x6e, 3050 0x75, 0x6d, 0x73, 0x2e, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x41, 0x64, 0x46, 0x6f, 0x72, 3051 0x6d, 0x61, 0x74, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x75, 0x6d, 0x2e, 0x44, 3052 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x41, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x53, 0x65, 3053 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x0d, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x53, 0x65, 0x74, 3054 0x74, 0x69, 0x6e, 0x67, 0x22, 0x93, 0x02, 0x0a, 0x13, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 3055 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x93, 0x01, 0x0a, 3056 0x1b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 3057 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 3058 0x28, 0x0e, 0x32, 0x54, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x64, 0x73, 0x2e, 3059 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x64, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x65, 0x6e, 0x75, 3060 0x6d, 0x73, 0x2e, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 3061 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x45, 0x6e, 0x75, 0x6d, 0x2e, 3062 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x72, 0x6f, 3063 0x64, 0x75, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x18, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 3064 0x79, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x54, 0x79, 3065 0x70, 0x65, 0x12, 0x57, 0x0a, 0x0c, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x5f, 0x62, 0x75, 0x6e, 0x64, 3066 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 3067 0x65, 0x2e, 0x61, 0x64, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x64, 0x73, 0x2e, 3068 0x76, 0x33, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x41, 0x64, 0x4d, 0x65, 0x64, 0x69, 3069 0x61, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x48, 0x00, 0x52, 0x0b, 3070 0x6d, 0x65, 0x64, 0x69, 0x61, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x6d, 3071 0x65, 0x64, 0x69, 0x61, 0x5f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x42, 0xeb, 0x01, 0x0a, 0x22, 0x63, 3072 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x64, 0x73, 0x2e, 0x67, 0x6f, 3073 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x64, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 3074 0x6e, 0x42, 0x10, 0x41, 0x64, 0x54, 0x79, 0x70, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x50, 0x72, 3075 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x44, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 3076 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 3077 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x61, 0x64, 0x73, 3078 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x64, 0x73, 0x2f, 0x76, 0x33, 0x2f, 0x63, 0x6f, 3079 0x6d, 0x6d, 0x6f, 0x6e, 0x3b, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0xa2, 0x02, 0x03, 0x47, 0x41, 3080 0x41, 0xaa, 0x02, 0x1e, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x41, 0x64, 0x73, 0x2e, 0x47, 3081 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x41, 0x64, 0x73, 0x2e, 0x56, 0x33, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 3082 0x6f, 0x6e, 0xca, 0x02, 0x1e, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x41, 0x64, 0x73, 0x5c, 3083 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x41, 0x64, 0x73, 0x5c, 0x56, 0x33, 0x5c, 0x43, 0x6f, 0x6d, 3084 0x6d, 0x6f, 0x6e, 0xea, 0x02, 0x22, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x41, 0x64, 3085 0x73, 0x3a, 0x3a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x41, 0x64, 0x73, 0x3a, 0x3a, 0x56, 0x33, 3086 0x3a, 0x3a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 3087} 3088 3089var ( 3090 file_google_ads_googleads_v3_common_ad_type_infos_proto_rawDescOnce sync.Once 3091 file_google_ads_googleads_v3_common_ad_type_infos_proto_rawDescData = file_google_ads_googleads_v3_common_ad_type_infos_proto_rawDesc 3092) 3093 3094func file_google_ads_googleads_v3_common_ad_type_infos_proto_rawDescGZIP() []byte { 3095 file_google_ads_googleads_v3_common_ad_type_infos_proto_rawDescOnce.Do(func() { 3096 file_google_ads_googleads_v3_common_ad_type_infos_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_ads_googleads_v3_common_ad_type_infos_proto_rawDescData) 3097 }) 3098 return file_google_ads_googleads_v3_common_ad_type_infos_proto_rawDescData 3099} 3100 3101var file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes = make([]protoimpl.MessageInfo, 27) 3102var file_google_ads_googleads_v3_common_ad_type_infos_proto_goTypes = []interface{}{ 3103 (*TextAdInfo)(nil), // 0: google.ads.googleads.v3.common.TextAdInfo 3104 (*ExpandedTextAdInfo)(nil), // 1: google.ads.googleads.v3.common.ExpandedTextAdInfo 3105 (*CallOnlyAdInfo)(nil), // 2: google.ads.googleads.v3.common.CallOnlyAdInfo 3106 (*ExpandedDynamicSearchAdInfo)(nil), // 3: google.ads.googleads.v3.common.ExpandedDynamicSearchAdInfo 3107 (*HotelAdInfo)(nil), // 4: google.ads.googleads.v3.common.HotelAdInfo 3108 (*ShoppingSmartAdInfo)(nil), // 5: google.ads.googleads.v3.common.ShoppingSmartAdInfo 3109 (*ShoppingProductAdInfo)(nil), // 6: google.ads.googleads.v3.common.ShoppingProductAdInfo 3110 (*ShoppingComparisonListingAdInfo)(nil), // 7: google.ads.googleads.v3.common.ShoppingComparisonListingAdInfo 3111 (*GmailAdInfo)(nil), // 8: google.ads.googleads.v3.common.GmailAdInfo 3112 (*GmailTeaser)(nil), // 9: google.ads.googleads.v3.common.GmailTeaser 3113 (*DisplayCallToAction)(nil), // 10: google.ads.googleads.v3.common.DisplayCallToAction 3114 (*ProductImage)(nil), // 11: google.ads.googleads.v3.common.ProductImage 3115 (*ProductVideo)(nil), // 12: google.ads.googleads.v3.common.ProductVideo 3116 (*ImageAdInfo)(nil), // 13: google.ads.googleads.v3.common.ImageAdInfo 3117 (*VideoBumperInStreamAdInfo)(nil), // 14: google.ads.googleads.v3.common.VideoBumperInStreamAdInfo 3118 (*VideoNonSkippableInStreamAdInfo)(nil), // 15: google.ads.googleads.v3.common.VideoNonSkippableInStreamAdInfo 3119 (*VideoTrueViewInStreamAdInfo)(nil), // 16: google.ads.googleads.v3.common.VideoTrueViewInStreamAdInfo 3120 (*VideoOutstreamAdInfo)(nil), // 17: google.ads.googleads.v3.common.VideoOutstreamAdInfo 3121 (*VideoTrueViewDiscoveryAdInfo)(nil), // 18: google.ads.googleads.v3.common.VideoTrueViewDiscoveryAdInfo 3122 (*VideoAdInfo)(nil), // 19: google.ads.googleads.v3.common.VideoAdInfo 3123 (*ResponsiveSearchAdInfo)(nil), // 20: google.ads.googleads.v3.common.ResponsiveSearchAdInfo 3124 (*LegacyResponsiveDisplayAdInfo)(nil), // 21: google.ads.googleads.v3.common.LegacyResponsiveDisplayAdInfo 3125 (*AppAdInfo)(nil), // 22: google.ads.googleads.v3.common.AppAdInfo 3126 (*AppEngagementAdInfo)(nil), // 23: google.ads.googleads.v3.common.AppEngagementAdInfo 3127 (*LegacyAppInstallAdInfo)(nil), // 24: google.ads.googleads.v3.common.LegacyAppInstallAdInfo 3128 (*ResponsiveDisplayAdInfo)(nil), // 25: google.ads.googleads.v3.common.ResponsiveDisplayAdInfo 3129 (*DisplayUploadAdInfo)(nil), // 26: google.ads.googleads.v3.common.DisplayUploadAdInfo 3130 (*wrapperspb.StringValue)(nil), // 27: google.protobuf.StringValue 3131 (*wrapperspb.BoolValue)(nil), // 28: google.protobuf.BoolValue 3132 (enums.CallConversionReportingStateEnum_CallConversionReportingState)(0), // 29: google.ads.googleads.v3.enums.CallConversionReportingStateEnum.CallConversionReportingState 3133 (*wrapperspb.Int64Value)(nil), // 30: google.protobuf.Int64Value 3134 (enums.MimeTypeEnum_MimeType)(0), // 31: google.ads.googleads.v3.enums.MimeTypeEnum.MimeType 3135 (*wrapperspb.BytesValue)(nil), // 32: google.protobuf.BytesValue 3136 (*AdTextAsset)(nil), // 33: google.ads.googleads.v3.common.AdTextAsset 3137 (enums.DisplayAdFormatSettingEnum_DisplayAdFormatSetting)(0), // 34: google.ads.googleads.v3.enums.DisplayAdFormatSettingEnum.DisplayAdFormatSetting 3138 (*AdImageAsset)(nil), // 35: google.ads.googleads.v3.common.AdImageAsset 3139 (*AdVideoAsset)(nil), // 36: google.ads.googleads.v3.common.AdVideoAsset 3140 (*AdMediaBundleAsset)(nil), // 37: google.ads.googleads.v3.common.AdMediaBundleAsset 3141 (enums.LegacyAppInstallAdAppStoreEnum_LegacyAppInstallAdAppStore)(0), // 38: google.ads.googleads.v3.enums.LegacyAppInstallAdAppStoreEnum.LegacyAppInstallAdAppStore 3142 (enums.DisplayUploadProductTypeEnum_DisplayUploadProductType)(0), // 39: google.ads.googleads.v3.enums.DisplayUploadProductTypeEnum.DisplayUploadProductType 3143} 3144var file_google_ads_googleads_v3_common_ad_type_infos_proto_depIdxs = []int32{ 3145 27, // 0: google.ads.googleads.v3.common.TextAdInfo.headline:type_name -> google.protobuf.StringValue 3146 27, // 1: google.ads.googleads.v3.common.TextAdInfo.description1:type_name -> google.protobuf.StringValue 3147 27, // 2: google.ads.googleads.v3.common.TextAdInfo.description2:type_name -> google.protobuf.StringValue 3148 27, // 3: google.ads.googleads.v3.common.ExpandedTextAdInfo.headline_part1:type_name -> google.protobuf.StringValue 3149 27, // 4: google.ads.googleads.v3.common.ExpandedTextAdInfo.headline_part2:type_name -> google.protobuf.StringValue 3150 27, // 5: google.ads.googleads.v3.common.ExpandedTextAdInfo.headline_part3:type_name -> google.protobuf.StringValue 3151 27, // 6: google.ads.googleads.v3.common.ExpandedTextAdInfo.description:type_name -> google.protobuf.StringValue 3152 27, // 7: google.ads.googleads.v3.common.ExpandedTextAdInfo.description2:type_name -> google.protobuf.StringValue 3153 27, // 8: google.ads.googleads.v3.common.ExpandedTextAdInfo.path1:type_name -> google.protobuf.StringValue 3154 27, // 9: google.ads.googleads.v3.common.ExpandedTextAdInfo.path2:type_name -> google.protobuf.StringValue 3155 27, // 10: google.ads.googleads.v3.common.CallOnlyAdInfo.country_code:type_name -> google.protobuf.StringValue 3156 27, // 11: google.ads.googleads.v3.common.CallOnlyAdInfo.phone_number:type_name -> google.protobuf.StringValue 3157 27, // 12: google.ads.googleads.v3.common.CallOnlyAdInfo.business_name:type_name -> google.protobuf.StringValue 3158 27, // 13: google.ads.googleads.v3.common.CallOnlyAdInfo.headline1:type_name -> google.protobuf.StringValue 3159 27, // 14: google.ads.googleads.v3.common.CallOnlyAdInfo.headline2:type_name -> google.protobuf.StringValue 3160 27, // 15: google.ads.googleads.v3.common.CallOnlyAdInfo.description1:type_name -> google.protobuf.StringValue 3161 27, // 16: google.ads.googleads.v3.common.CallOnlyAdInfo.description2:type_name -> google.protobuf.StringValue 3162 28, // 17: google.ads.googleads.v3.common.CallOnlyAdInfo.call_tracked:type_name -> google.protobuf.BoolValue 3163 28, // 18: google.ads.googleads.v3.common.CallOnlyAdInfo.disable_call_conversion:type_name -> google.protobuf.BoolValue 3164 27, // 19: google.ads.googleads.v3.common.CallOnlyAdInfo.phone_number_verification_url:type_name -> google.protobuf.StringValue 3165 27, // 20: google.ads.googleads.v3.common.CallOnlyAdInfo.conversion_action:type_name -> google.protobuf.StringValue 3166 29, // 21: google.ads.googleads.v3.common.CallOnlyAdInfo.conversion_reporting_state:type_name -> google.ads.googleads.v3.enums.CallConversionReportingStateEnum.CallConversionReportingState 3167 27, // 22: google.ads.googleads.v3.common.ExpandedDynamicSearchAdInfo.description:type_name -> google.protobuf.StringValue 3168 27, // 23: google.ads.googleads.v3.common.ExpandedDynamicSearchAdInfo.description2:type_name -> google.protobuf.StringValue 3169 27, // 24: google.ads.googleads.v3.common.ShoppingComparisonListingAdInfo.headline:type_name -> google.protobuf.StringValue 3170 9, // 25: google.ads.googleads.v3.common.GmailAdInfo.teaser:type_name -> google.ads.googleads.v3.common.GmailTeaser 3171 27, // 26: google.ads.googleads.v3.common.GmailAdInfo.header_image:type_name -> google.protobuf.StringValue 3172 27, // 27: google.ads.googleads.v3.common.GmailAdInfo.marketing_image:type_name -> google.protobuf.StringValue 3173 27, // 28: google.ads.googleads.v3.common.GmailAdInfo.marketing_image_headline:type_name -> google.protobuf.StringValue 3174 27, // 29: google.ads.googleads.v3.common.GmailAdInfo.marketing_image_description:type_name -> google.protobuf.StringValue 3175 10, // 30: google.ads.googleads.v3.common.GmailAdInfo.marketing_image_display_call_to_action:type_name -> google.ads.googleads.v3.common.DisplayCallToAction 3176 11, // 31: google.ads.googleads.v3.common.GmailAdInfo.product_images:type_name -> google.ads.googleads.v3.common.ProductImage 3177 12, // 32: google.ads.googleads.v3.common.GmailAdInfo.product_videos:type_name -> google.ads.googleads.v3.common.ProductVideo 3178 27, // 33: google.ads.googleads.v3.common.GmailTeaser.headline:type_name -> google.protobuf.StringValue 3179 27, // 34: google.ads.googleads.v3.common.GmailTeaser.description:type_name -> google.protobuf.StringValue 3180 27, // 35: google.ads.googleads.v3.common.GmailTeaser.business_name:type_name -> google.protobuf.StringValue 3181 27, // 36: google.ads.googleads.v3.common.GmailTeaser.logo_image:type_name -> google.protobuf.StringValue 3182 27, // 37: google.ads.googleads.v3.common.DisplayCallToAction.text:type_name -> google.protobuf.StringValue 3183 27, // 38: google.ads.googleads.v3.common.DisplayCallToAction.text_color:type_name -> google.protobuf.StringValue 3184 27, // 39: google.ads.googleads.v3.common.DisplayCallToAction.url_collection_id:type_name -> google.protobuf.StringValue 3185 27, // 40: google.ads.googleads.v3.common.ProductImage.product_image:type_name -> google.protobuf.StringValue 3186 27, // 41: google.ads.googleads.v3.common.ProductImage.description:type_name -> google.protobuf.StringValue 3187 10, // 42: google.ads.googleads.v3.common.ProductImage.display_call_to_action:type_name -> google.ads.googleads.v3.common.DisplayCallToAction 3188 27, // 43: google.ads.googleads.v3.common.ProductVideo.product_video:type_name -> google.protobuf.StringValue 3189 30, // 44: google.ads.googleads.v3.common.ImageAdInfo.pixel_width:type_name -> google.protobuf.Int64Value 3190 30, // 45: google.ads.googleads.v3.common.ImageAdInfo.pixel_height:type_name -> google.protobuf.Int64Value 3191 27, // 46: google.ads.googleads.v3.common.ImageAdInfo.image_url:type_name -> google.protobuf.StringValue 3192 30, // 47: google.ads.googleads.v3.common.ImageAdInfo.preview_pixel_width:type_name -> google.protobuf.Int64Value 3193 30, // 48: google.ads.googleads.v3.common.ImageAdInfo.preview_pixel_height:type_name -> google.protobuf.Int64Value 3194 27, // 49: google.ads.googleads.v3.common.ImageAdInfo.preview_image_url:type_name -> google.protobuf.StringValue 3195 31, // 50: google.ads.googleads.v3.common.ImageAdInfo.mime_type:type_name -> google.ads.googleads.v3.enums.MimeTypeEnum.MimeType 3196 27, // 51: google.ads.googleads.v3.common.ImageAdInfo.name:type_name -> google.protobuf.StringValue 3197 27, // 52: google.ads.googleads.v3.common.ImageAdInfo.media_file:type_name -> google.protobuf.StringValue 3198 32, // 53: google.ads.googleads.v3.common.ImageAdInfo.data:type_name -> google.protobuf.BytesValue 3199 30, // 54: google.ads.googleads.v3.common.ImageAdInfo.ad_id_to_copy_image_from:type_name -> google.protobuf.Int64Value 3200 27, // 55: google.ads.googleads.v3.common.VideoBumperInStreamAdInfo.companion_banner:type_name -> google.protobuf.StringValue 3201 27, // 56: google.ads.googleads.v3.common.VideoNonSkippableInStreamAdInfo.companion_banner:type_name -> google.protobuf.StringValue 3202 27, // 57: google.ads.googleads.v3.common.VideoTrueViewInStreamAdInfo.action_button_label:type_name -> google.protobuf.StringValue 3203 27, // 58: google.ads.googleads.v3.common.VideoTrueViewInStreamAdInfo.action_headline:type_name -> google.protobuf.StringValue 3204 27, // 59: google.ads.googleads.v3.common.VideoTrueViewInStreamAdInfo.companion_banner:type_name -> google.protobuf.StringValue 3205 27, // 60: google.ads.googleads.v3.common.VideoOutstreamAdInfo.headline:type_name -> google.protobuf.StringValue 3206 27, // 61: google.ads.googleads.v3.common.VideoOutstreamAdInfo.description:type_name -> google.protobuf.StringValue 3207 27, // 62: google.ads.googleads.v3.common.VideoTrueViewDiscoveryAdInfo.headline:type_name -> google.protobuf.StringValue 3208 27, // 63: google.ads.googleads.v3.common.VideoTrueViewDiscoveryAdInfo.description1:type_name -> google.protobuf.StringValue 3209 27, // 64: google.ads.googleads.v3.common.VideoTrueViewDiscoveryAdInfo.description2:type_name -> google.protobuf.StringValue 3210 27, // 65: google.ads.googleads.v3.common.VideoAdInfo.media_file:type_name -> google.protobuf.StringValue 3211 16, // 66: google.ads.googleads.v3.common.VideoAdInfo.in_stream:type_name -> google.ads.googleads.v3.common.VideoTrueViewInStreamAdInfo 3212 14, // 67: google.ads.googleads.v3.common.VideoAdInfo.bumper:type_name -> google.ads.googleads.v3.common.VideoBumperInStreamAdInfo 3213 17, // 68: google.ads.googleads.v3.common.VideoAdInfo.out_stream:type_name -> google.ads.googleads.v3.common.VideoOutstreamAdInfo 3214 15, // 69: google.ads.googleads.v3.common.VideoAdInfo.non_skippable:type_name -> google.ads.googleads.v3.common.VideoNonSkippableInStreamAdInfo 3215 18, // 70: google.ads.googleads.v3.common.VideoAdInfo.discovery:type_name -> google.ads.googleads.v3.common.VideoTrueViewDiscoveryAdInfo 3216 33, // 71: google.ads.googleads.v3.common.ResponsiveSearchAdInfo.headlines:type_name -> google.ads.googleads.v3.common.AdTextAsset 3217 33, // 72: google.ads.googleads.v3.common.ResponsiveSearchAdInfo.descriptions:type_name -> google.ads.googleads.v3.common.AdTextAsset 3218 27, // 73: google.ads.googleads.v3.common.ResponsiveSearchAdInfo.path1:type_name -> google.protobuf.StringValue 3219 27, // 74: google.ads.googleads.v3.common.ResponsiveSearchAdInfo.path2:type_name -> google.protobuf.StringValue 3220 27, // 75: google.ads.googleads.v3.common.LegacyResponsiveDisplayAdInfo.short_headline:type_name -> google.protobuf.StringValue 3221 27, // 76: google.ads.googleads.v3.common.LegacyResponsiveDisplayAdInfo.long_headline:type_name -> google.protobuf.StringValue 3222 27, // 77: google.ads.googleads.v3.common.LegacyResponsiveDisplayAdInfo.description:type_name -> google.protobuf.StringValue 3223 27, // 78: google.ads.googleads.v3.common.LegacyResponsiveDisplayAdInfo.business_name:type_name -> google.protobuf.StringValue 3224 28, // 79: google.ads.googleads.v3.common.LegacyResponsiveDisplayAdInfo.allow_flexible_color:type_name -> google.protobuf.BoolValue 3225 27, // 80: google.ads.googleads.v3.common.LegacyResponsiveDisplayAdInfo.accent_color:type_name -> google.protobuf.StringValue 3226 27, // 81: google.ads.googleads.v3.common.LegacyResponsiveDisplayAdInfo.main_color:type_name -> google.protobuf.StringValue 3227 27, // 82: google.ads.googleads.v3.common.LegacyResponsiveDisplayAdInfo.call_to_action_text:type_name -> google.protobuf.StringValue 3228 27, // 83: google.ads.googleads.v3.common.LegacyResponsiveDisplayAdInfo.logo_image:type_name -> google.protobuf.StringValue 3229 27, // 84: google.ads.googleads.v3.common.LegacyResponsiveDisplayAdInfo.square_logo_image:type_name -> google.protobuf.StringValue 3230 27, // 85: google.ads.googleads.v3.common.LegacyResponsiveDisplayAdInfo.marketing_image:type_name -> google.protobuf.StringValue 3231 27, // 86: google.ads.googleads.v3.common.LegacyResponsiveDisplayAdInfo.square_marketing_image:type_name -> google.protobuf.StringValue 3232 34, // 87: google.ads.googleads.v3.common.LegacyResponsiveDisplayAdInfo.format_setting:type_name -> google.ads.googleads.v3.enums.DisplayAdFormatSettingEnum.DisplayAdFormatSetting 3233 27, // 88: google.ads.googleads.v3.common.LegacyResponsiveDisplayAdInfo.price_prefix:type_name -> google.protobuf.StringValue 3234 27, // 89: google.ads.googleads.v3.common.LegacyResponsiveDisplayAdInfo.promo_text:type_name -> google.protobuf.StringValue 3235 33, // 90: google.ads.googleads.v3.common.AppAdInfo.mandatory_ad_text:type_name -> google.ads.googleads.v3.common.AdTextAsset 3236 33, // 91: google.ads.googleads.v3.common.AppAdInfo.headlines:type_name -> google.ads.googleads.v3.common.AdTextAsset 3237 33, // 92: google.ads.googleads.v3.common.AppAdInfo.descriptions:type_name -> google.ads.googleads.v3.common.AdTextAsset 3238 35, // 93: google.ads.googleads.v3.common.AppAdInfo.images:type_name -> google.ads.googleads.v3.common.AdImageAsset 3239 36, // 94: google.ads.googleads.v3.common.AppAdInfo.youtube_videos:type_name -> google.ads.googleads.v3.common.AdVideoAsset 3240 37, // 95: google.ads.googleads.v3.common.AppAdInfo.html5_media_bundles:type_name -> google.ads.googleads.v3.common.AdMediaBundleAsset 3241 33, // 96: google.ads.googleads.v3.common.AppEngagementAdInfo.headlines:type_name -> google.ads.googleads.v3.common.AdTextAsset 3242 33, // 97: google.ads.googleads.v3.common.AppEngagementAdInfo.descriptions:type_name -> google.ads.googleads.v3.common.AdTextAsset 3243 35, // 98: google.ads.googleads.v3.common.AppEngagementAdInfo.images:type_name -> google.ads.googleads.v3.common.AdImageAsset 3244 36, // 99: google.ads.googleads.v3.common.AppEngagementAdInfo.videos:type_name -> google.ads.googleads.v3.common.AdVideoAsset 3245 27, // 100: google.ads.googleads.v3.common.LegacyAppInstallAdInfo.app_id:type_name -> google.protobuf.StringValue 3246 38, // 101: google.ads.googleads.v3.common.LegacyAppInstallAdInfo.app_store:type_name -> google.ads.googleads.v3.enums.LegacyAppInstallAdAppStoreEnum.LegacyAppInstallAdAppStore 3247 27, // 102: google.ads.googleads.v3.common.LegacyAppInstallAdInfo.headline:type_name -> google.protobuf.StringValue 3248 27, // 103: google.ads.googleads.v3.common.LegacyAppInstallAdInfo.description1:type_name -> google.protobuf.StringValue 3249 27, // 104: google.ads.googleads.v3.common.LegacyAppInstallAdInfo.description2:type_name -> google.protobuf.StringValue 3250 35, // 105: google.ads.googleads.v3.common.ResponsiveDisplayAdInfo.marketing_images:type_name -> google.ads.googleads.v3.common.AdImageAsset 3251 35, // 106: google.ads.googleads.v3.common.ResponsiveDisplayAdInfo.square_marketing_images:type_name -> google.ads.googleads.v3.common.AdImageAsset 3252 35, // 107: google.ads.googleads.v3.common.ResponsiveDisplayAdInfo.logo_images:type_name -> google.ads.googleads.v3.common.AdImageAsset 3253 35, // 108: google.ads.googleads.v3.common.ResponsiveDisplayAdInfo.square_logo_images:type_name -> google.ads.googleads.v3.common.AdImageAsset 3254 33, // 109: google.ads.googleads.v3.common.ResponsiveDisplayAdInfo.headlines:type_name -> google.ads.googleads.v3.common.AdTextAsset 3255 33, // 110: google.ads.googleads.v3.common.ResponsiveDisplayAdInfo.long_headline:type_name -> google.ads.googleads.v3.common.AdTextAsset 3256 33, // 111: google.ads.googleads.v3.common.ResponsiveDisplayAdInfo.descriptions:type_name -> google.ads.googleads.v3.common.AdTextAsset 3257 36, // 112: google.ads.googleads.v3.common.ResponsiveDisplayAdInfo.youtube_videos:type_name -> google.ads.googleads.v3.common.AdVideoAsset 3258 27, // 113: google.ads.googleads.v3.common.ResponsiveDisplayAdInfo.business_name:type_name -> google.protobuf.StringValue 3259 27, // 114: google.ads.googleads.v3.common.ResponsiveDisplayAdInfo.main_color:type_name -> google.protobuf.StringValue 3260 27, // 115: google.ads.googleads.v3.common.ResponsiveDisplayAdInfo.accent_color:type_name -> google.protobuf.StringValue 3261 28, // 116: google.ads.googleads.v3.common.ResponsiveDisplayAdInfo.allow_flexible_color:type_name -> google.protobuf.BoolValue 3262 27, // 117: google.ads.googleads.v3.common.ResponsiveDisplayAdInfo.call_to_action_text:type_name -> google.protobuf.StringValue 3263 27, // 118: google.ads.googleads.v3.common.ResponsiveDisplayAdInfo.price_prefix:type_name -> google.protobuf.StringValue 3264 27, // 119: google.ads.googleads.v3.common.ResponsiveDisplayAdInfo.promo_text:type_name -> google.protobuf.StringValue 3265 34, // 120: google.ads.googleads.v3.common.ResponsiveDisplayAdInfo.format_setting:type_name -> google.ads.googleads.v3.enums.DisplayAdFormatSettingEnum.DisplayAdFormatSetting 3266 39, // 121: google.ads.googleads.v3.common.DisplayUploadAdInfo.display_upload_product_type:type_name -> google.ads.googleads.v3.enums.DisplayUploadProductTypeEnum.DisplayUploadProductType 3267 37, // 122: google.ads.googleads.v3.common.DisplayUploadAdInfo.media_bundle:type_name -> google.ads.googleads.v3.common.AdMediaBundleAsset 3268 123, // [123:123] is the sub-list for method output_type 3269 123, // [123:123] is the sub-list for method input_type 3270 123, // [123:123] is the sub-list for extension type_name 3271 123, // [123:123] is the sub-list for extension extendee 3272 0, // [0:123] is the sub-list for field type_name 3273} 3274 3275func init() { file_google_ads_googleads_v3_common_ad_type_infos_proto_init() } 3276func file_google_ads_googleads_v3_common_ad_type_infos_proto_init() { 3277 if File_google_ads_googleads_v3_common_ad_type_infos_proto != nil { 3278 return 3279 } 3280 file_google_ads_googleads_v3_common_ad_asset_proto_init() 3281 if !protoimpl.UnsafeEnabled { 3282 file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { 3283 switch v := v.(*TextAdInfo); i { 3284 case 0: 3285 return &v.state 3286 case 1: 3287 return &v.sizeCache 3288 case 2: 3289 return &v.unknownFields 3290 default: 3291 return nil 3292 } 3293 } 3294 file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { 3295 switch v := v.(*ExpandedTextAdInfo); i { 3296 case 0: 3297 return &v.state 3298 case 1: 3299 return &v.sizeCache 3300 case 2: 3301 return &v.unknownFields 3302 default: 3303 return nil 3304 } 3305 } 3306 file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { 3307 switch v := v.(*CallOnlyAdInfo); i { 3308 case 0: 3309 return &v.state 3310 case 1: 3311 return &v.sizeCache 3312 case 2: 3313 return &v.unknownFields 3314 default: 3315 return nil 3316 } 3317 } 3318 file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { 3319 switch v := v.(*ExpandedDynamicSearchAdInfo); i { 3320 case 0: 3321 return &v.state 3322 case 1: 3323 return &v.sizeCache 3324 case 2: 3325 return &v.unknownFields 3326 default: 3327 return nil 3328 } 3329 } 3330 file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { 3331 switch v := v.(*HotelAdInfo); i { 3332 case 0: 3333 return &v.state 3334 case 1: 3335 return &v.sizeCache 3336 case 2: 3337 return &v.unknownFields 3338 default: 3339 return nil 3340 } 3341 } 3342 file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { 3343 switch v := v.(*ShoppingSmartAdInfo); i { 3344 case 0: 3345 return &v.state 3346 case 1: 3347 return &v.sizeCache 3348 case 2: 3349 return &v.unknownFields 3350 default: 3351 return nil 3352 } 3353 } 3354 file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { 3355 switch v := v.(*ShoppingProductAdInfo); i { 3356 case 0: 3357 return &v.state 3358 case 1: 3359 return &v.sizeCache 3360 case 2: 3361 return &v.unknownFields 3362 default: 3363 return nil 3364 } 3365 } 3366 file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { 3367 switch v := v.(*ShoppingComparisonListingAdInfo); i { 3368 case 0: 3369 return &v.state 3370 case 1: 3371 return &v.sizeCache 3372 case 2: 3373 return &v.unknownFields 3374 default: 3375 return nil 3376 } 3377 } 3378 file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { 3379 switch v := v.(*GmailAdInfo); i { 3380 case 0: 3381 return &v.state 3382 case 1: 3383 return &v.sizeCache 3384 case 2: 3385 return &v.unknownFields 3386 default: 3387 return nil 3388 } 3389 } 3390 file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { 3391 switch v := v.(*GmailTeaser); i { 3392 case 0: 3393 return &v.state 3394 case 1: 3395 return &v.sizeCache 3396 case 2: 3397 return &v.unknownFields 3398 default: 3399 return nil 3400 } 3401 } 3402 file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { 3403 switch v := v.(*DisplayCallToAction); i { 3404 case 0: 3405 return &v.state 3406 case 1: 3407 return &v.sizeCache 3408 case 2: 3409 return &v.unknownFields 3410 default: 3411 return nil 3412 } 3413 } 3414 file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { 3415 switch v := v.(*ProductImage); i { 3416 case 0: 3417 return &v.state 3418 case 1: 3419 return &v.sizeCache 3420 case 2: 3421 return &v.unknownFields 3422 default: 3423 return nil 3424 } 3425 } 3426 file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { 3427 switch v := v.(*ProductVideo); i { 3428 case 0: 3429 return &v.state 3430 case 1: 3431 return &v.sizeCache 3432 case 2: 3433 return &v.unknownFields 3434 default: 3435 return nil 3436 } 3437 } 3438 file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { 3439 switch v := v.(*ImageAdInfo); i { 3440 case 0: 3441 return &v.state 3442 case 1: 3443 return &v.sizeCache 3444 case 2: 3445 return &v.unknownFields 3446 default: 3447 return nil 3448 } 3449 } 3450 file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { 3451 switch v := v.(*VideoBumperInStreamAdInfo); i { 3452 case 0: 3453 return &v.state 3454 case 1: 3455 return &v.sizeCache 3456 case 2: 3457 return &v.unknownFields 3458 default: 3459 return nil 3460 } 3461 } 3462 file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { 3463 switch v := v.(*VideoNonSkippableInStreamAdInfo); i { 3464 case 0: 3465 return &v.state 3466 case 1: 3467 return &v.sizeCache 3468 case 2: 3469 return &v.unknownFields 3470 default: 3471 return nil 3472 } 3473 } 3474 file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { 3475 switch v := v.(*VideoTrueViewInStreamAdInfo); i { 3476 case 0: 3477 return &v.state 3478 case 1: 3479 return &v.sizeCache 3480 case 2: 3481 return &v.unknownFields 3482 default: 3483 return nil 3484 } 3485 } 3486 file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { 3487 switch v := v.(*VideoOutstreamAdInfo); i { 3488 case 0: 3489 return &v.state 3490 case 1: 3491 return &v.sizeCache 3492 case 2: 3493 return &v.unknownFields 3494 default: 3495 return nil 3496 } 3497 } 3498 file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { 3499 switch v := v.(*VideoTrueViewDiscoveryAdInfo); i { 3500 case 0: 3501 return &v.state 3502 case 1: 3503 return &v.sizeCache 3504 case 2: 3505 return &v.unknownFields 3506 default: 3507 return nil 3508 } 3509 } 3510 file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { 3511 switch v := v.(*VideoAdInfo); i { 3512 case 0: 3513 return &v.state 3514 case 1: 3515 return &v.sizeCache 3516 case 2: 3517 return &v.unknownFields 3518 default: 3519 return nil 3520 } 3521 } 3522 file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { 3523 switch v := v.(*ResponsiveSearchAdInfo); i { 3524 case 0: 3525 return &v.state 3526 case 1: 3527 return &v.sizeCache 3528 case 2: 3529 return &v.unknownFields 3530 default: 3531 return nil 3532 } 3533 } 3534 file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { 3535 switch v := v.(*LegacyResponsiveDisplayAdInfo); i { 3536 case 0: 3537 return &v.state 3538 case 1: 3539 return &v.sizeCache 3540 case 2: 3541 return &v.unknownFields 3542 default: 3543 return nil 3544 } 3545 } 3546 file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { 3547 switch v := v.(*AppAdInfo); i { 3548 case 0: 3549 return &v.state 3550 case 1: 3551 return &v.sizeCache 3552 case 2: 3553 return &v.unknownFields 3554 default: 3555 return nil 3556 } 3557 } 3558 file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { 3559 switch v := v.(*AppEngagementAdInfo); i { 3560 case 0: 3561 return &v.state 3562 case 1: 3563 return &v.sizeCache 3564 case 2: 3565 return &v.unknownFields 3566 default: 3567 return nil 3568 } 3569 } 3570 file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { 3571 switch v := v.(*LegacyAppInstallAdInfo); i { 3572 case 0: 3573 return &v.state 3574 case 1: 3575 return &v.sizeCache 3576 case 2: 3577 return &v.unknownFields 3578 default: 3579 return nil 3580 } 3581 } 3582 file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { 3583 switch v := v.(*ResponsiveDisplayAdInfo); i { 3584 case 0: 3585 return &v.state 3586 case 1: 3587 return &v.sizeCache 3588 case 2: 3589 return &v.unknownFields 3590 default: 3591 return nil 3592 } 3593 } 3594 file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { 3595 switch v := v.(*DisplayUploadAdInfo); i { 3596 case 0: 3597 return &v.state 3598 case 1: 3599 return &v.sizeCache 3600 case 2: 3601 return &v.unknownFields 3602 default: 3603 return nil 3604 } 3605 } 3606 } 3607 file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[13].OneofWrappers = []interface{}{ 3608 (*ImageAdInfo_MediaFile)(nil), 3609 (*ImageAdInfo_Data)(nil), 3610 (*ImageAdInfo_AdIdToCopyImageFrom)(nil), 3611 } 3612 file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[19].OneofWrappers = []interface{}{ 3613 (*VideoAdInfo_InStream)(nil), 3614 (*VideoAdInfo_Bumper)(nil), 3615 (*VideoAdInfo_OutStream)(nil), 3616 (*VideoAdInfo_NonSkippable)(nil), 3617 (*VideoAdInfo_Discovery)(nil), 3618 } 3619 file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes[26].OneofWrappers = []interface{}{ 3620 (*DisplayUploadAdInfo_MediaBundle)(nil), 3621 } 3622 type x struct{} 3623 out := protoimpl.TypeBuilder{ 3624 File: protoimpl.DescBuilder{ 3625 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 3626 RawDescriptor: file_google_ads_googleads_v3_common_ad_type_infos_proto_rawDesc, 3627 NumEnums: 0, 3628 NumMessages: 27, 3629 NumExtensions: 0, 3630 NumServices: 0, 3631 }, 3632 GoTypes: file_google_ads_googleads_v3_common_ad_type_infos_proto_goTypes, 3633 DependencyIndexes: file_google_ads_googleads_v3_common_ad_type_infos_proto_depIdxs, 3634 MessageInfos: file_google_ads_googleads_v3_common_ad_type_infos_proto_msgTypes, 3635 }.Build() 3636 File_google_ads_googleads_v3_common_ad_type_infos_proto = out.File 3637 file_google_ads_googleads_v3_common_ad_type_infos_proto_rawDesc = nil 3638 file_google_ads_googleads_v3_common_ad_type_infos_proto_goTypes = nil 3639 file_google_ads_googleads_v3_common_ad_type_infos_proto_depIdxs = nil 3640} 3641