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