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