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