diff --git a/ChangeLog b/ChangeLog index a48df5ebc..a4c358a9d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2.4.0 +===== +- Added support for Google Ads API v2.1. See release notes: + https://developers.google.com/google-ads/api/docs/release-notes#210_beta_2019-08-08 +- Added Channel Caching +- Fixed Partial failure support for Google.Ads.GoogleAds.Logging.LoggingInterceptor +- Updated Timeouts to align with server-side configuration +- Added ability to override call settings +- Increase grpc.max_metadata_size to 16MB and grpc.max_receive_message_length to 64MB +- LRO Credential bug fixed + 2.3.0 ===== - Added support for Google Ads API v2.0. See release notes: @@ -24,7 +35,7 @@ - Ported HttpUtilities and MediaUtilities from the AdWords API library. These utilities simplify code when working with Media assets. - + 2.1.0 ===== - Added support for Google Ads API v1.3. See release notes: @@ -41,7 +52,7 @@ https://ads-developers.googleblog.com/2019/03/upgrade-to-new-google-ads-api-to-get.html - Made a major version bump due to removal of support for v0. - Updated all nuget dependencies to the latest stable versions. - + 1.1.0 ===== - Added support for Google Ads API v1.1 See release notes: @@ -89,7 +100,7 @@ https://developers.google.com/google-ads/api/docs/release-notes#070_2019-01-30 -- AccountManagement/CreateCustomer.cs -- Planning/GenerateKeywordIdeas.cs -- Planning/AddKeywordPlan.cs - -- Planning/GenerateForecastMetrics.cs + -- Planning/GenerateForecastMetrics.cs - Fixed a file encoding issue with Targeting/AddCampaignTargetingCriteria.cs example. 0.7.0 diff --git a/examples/Authentication/AuthenticateInWebApplication/AuthenticateInWebApplication.csproj b/examples/Authentication/AuthenticateInWebApplication/AuthenticateInWebApplication.csproj index 78a3b79ba..650f43c6b 100644 --- a/examples/Authentication/AuthenticateInWebApplication/AuthenticateInWebApplication.csproj +++ b/examples/Authentication/AuthenticateInWebApplication/AuthenticateInWebApplication.csproj @@ -47,7 +47,7 @@ - + ..\..\..\packages\Google.Ads.GoogleAds.2.2.0\lib\net452\Google.Ads.GoogleAds.dll @@ -196,11 +196,11 @@ - - \ No newline at end of file + diff --git a/examples/Authentication/AuthenticateInWebApplication/packages.config b/examples/Authentication/AuthenticateInWebApplication/packages.config index b282ae264..a5b5cb978 100644 --- a/examples/Authentication/AuthenticateInWebApplication/packages.config +++ b/examples/Authentication/AuthenticateInWebApplication/packages.config @@ -1,6 +1,6 @@  - + @@ -51,4 +51,4 @@ - \ No newline at end of file + diff --git a/examples/Google.Ads.GoogleAds.Examples.csproj b/examples/Google.Ads.GoogleAds.Examples.csproj index a25e6dad7..637b8b711 100644 --- a/examples/Google.Ads.GoogleAds.Examples.csproj +++ b/examples/Google.Ads.GoogleAds.Examples.csproj @@ -21,7 +21,7 @@ - + @@ -36,4 +36,4 @@ Designer - \ No newline at end of file + diff --git a/src/Google.Ads.GoogleAds.csproj b/src/Google.Ads.GoogleAds.csproj index a1db34e7c..978148c72 100644 --- a/src/Google.Ads.GoogleAds.csproj +++ b/src/Google.Ads.GoogleAds.csproj @@ -3,7 +3,7 @@ Google Ads API Dotnet Client Library Google.Ads.GoogleAds - 2.3.0 + 2.4.0 This library provides you with functionality to access the Google Ads API. https://github.com/googleads/google-ads-dotnet/blob/master/ChangeLog GoogleAds Google @@ -31,8 +31,8 @@ true true true - 2.3.0.0 - 2.3.0.0 + 2.4.0.0 + 2.4.0.0 latest diff --git a/src/Util/Examples/ExampleRunner.cs b/src/Util/Examples/ExampleRunner.cs index 3f2dc7cb7..294dccf9d 100644 --- a/src/Util/Examples/ExampleRunner.cs +++ b/src/Util/Examples/ExampleRunner.cs @@ -41,12 +41,16 @@ public void LoadCodeExamples(Assembly assembly) { SystemType[] types = assembly.GetTypes(); + ExampleBase codeExample = null; foreach (SystemType type in types) { if (type.IsSubclassOf(typeof(ExampleBase))) { ExampleBase example = (ExampleBase) Activator.CreateInstance(type); - codeExampleMap.Add(example.Name, example); + if (!codeExampleMap.TryGetValue(example.Name, out codeExample)) + { + codeExampleMap.Add(example.Name, example); + } } } } diff --git a/src/V2/ServiceExtensions.cs b/src/V2/ServiceExtensions.cs index 0a45ca89d..a0c2ac594 100644 --- a/src/V2/ServiceExtensions.cs +++ b/src/V2/ServiceExtensions.cs @@ -110,6 +110,7 @@ public abstract partial class ParentalStatusViewServiceClient : GoogleAdsService public abstract partial class PaymentsAccountServiceClient : GoogleAdsServiceClientBase {} public abstract partial class ProductBiddingCategoryConstantServiceClient : GoogleAdsServiceClientBase {} public abstract partial class ProductGroupViewServiceClient : GoogleAdsServiceClientBase {} + public abstract partial class ReachPlanServiceClient : GoogleAdsServiceClientBase {} public abstract partial class RecommendationServiceClient : GoogleAdsServiceClientBase {} public abstract partial class RemarketingActionServiceClient : GoogleAdsServiceClientBase {} public abstract partial class SearchTermViewServiceClient : GoogleAdsServiceClientBase {} diff --git a/src/V2/Services.V2.cs b/src/V2/Services.V2.cs index 70c7a61dc..028d9942d 100644 --- a/src/V2/Services.V2.cs +++ b/src/V2/Services.V2.cs @@ -672,6 +672,13 @@ public class V2 public static readonly ServiceTemplate ProductGroupViewService; + /// + /// See https://developers.google.com/google-ads/api/reference/rpc/google.ads.googleads.v2.services#google.ads.googleads.v2.services.ReachPlanService + /// for details. + /// + public static readonly ServiceTemplate ReachPlanService; + + /// /// See https://developers.google.com/google-ads/api/reference/rpc/google.ads.googleads.v2.services#google.ads.googleads.v2.services.RecommendationService /// for details. diff --git a/src/V2/Stubs/AdTypeInfos.cs b/src/V2/Stubs/AdTypeInfos.cs index dc44e2dbf..741c5e023 100644 --- a/src/V2/Stubs/AdTypeInfos.cs +++ b/src/V2/Stubs/AdTypeInfos.cs @@ -63,164 +63,165 @@ static AdTypeInfosReflection() { "aW9uX2FjdGlvbhgJIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1", "ZRKAAQoaY29udmVyc2lvbl9yZXBvcnRpbmdfc3RhdGUYCiABKA4yXC5nb29n", "bGUuYWRzLmdvb2dsZWFkcy52Mi5lbnVtcy5DYWxsQ29udmVyc2lvblJlcG9y", - "dGluZ1N0YXRlRW51bS5DYWxsQ29udmVyc2lvblJlcG9ydGluZ1N0YXRlIlAK", - "G0V4cGFuZGVkRHluYW1pY1NlYXJjaEFkSW5mbxIxCgtkZXNjcmlwdGlvbhgB", - "IAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZSINCgtIb3RlbEFk", - "SW5mbyIVChNTaG9wcGluZ1NtYXJ0QWRJbmZvIhcKFVNob3BwaW5nUHJvZHVj", - "dEFkSW5mbyJRCh9TaG9wcGluZ0NvbXBhcmlzb25MaXN0aW5nQWRJbmZvEi4K", - "CGhlYWRsaW5lGAEgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVl", - "IqkECgtHbWFpbEFkSW5mbxI7CgZ0ZWFzZXIYASABKAsyKy5nb29nbGUuYWRz", - "Lmdvb2dsZWFkcy52Mi5jb21tb24uR21haWxUZWFzZXISMgoMaGVhZGVyX2lt", - "YWdlGAIgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlEjUKD21h", - "cmtldGluZ19pbWFnZRgDIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdW", - "YWx1ZRI+ChhtYXJrZXRpbmdfaW1hZ2VfaGVhZGxpbmUYBCABKAsyHC5nb29n", - "bGUucHJvdG9idWYuU3RyaW5nVmFsdWUSQQobbWFya2V0aW5nX2ltYWdlX2Rl", - "c2NyaXB0aW9uGAUgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVl", - "EmMKJm1hcmtldGluZ19pbWFnZV9kaXNwbGF5X2NhbGxfdG9fYWN0aW9uGAYg", - "ASgLMjMuZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuY29tbW9uLkRpc3BsYXlD", - "YWxsVG9BY3Rpb24SRAoOcHJvZHVjdF9pbWFnZXMYByADKAsyLC5nb29nbGUu", - "YWRzLmdvb2dsZWFkcy52Mi5jb21tb24uUHJvZHVjdEltYWdlEkQKDnByb2R1", - "Y3RfdmlkZW9zGAggAygLMiwuZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuY29t", - "bW9uLlByb2R1Y3RWaWRlbyLXAQoLR21haWxUZWFzZXISLgoIaGVhZGxpbmUY", - "ASABKAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWUSMQoLZGVzY3Jp", - "cHRpb24YAiABKAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWUSMwoN", - "YnVzaW5lc3NfbmFtZRgDIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdW", - "YWx1ZRIwCgpsb2dvX2ltYWdlGAQgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0", - "cmluZ1ZhbHVlIqwBChNEaXNwbGF5Q2FsbFRvQWN0aW9uEioKBHRleHQYASAB", - "KAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWUSMAoKdGV4dF9jb2xv", - "chgCIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRI3ChF1cmxf", - "Y29sbGVjdGlvbl9pZBgDIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdW", - "YWx1ZSLLAQoMUHJvZHVjdEltYWdlEjMKDXByb2R1Y3RfaW1hZ2UYASABKAsy", - "HC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWUSMQoLZGVzY3JpcHRpb24Y", - "AiABKAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWUSUwoWZGlzcGxh", - "eV9jYWxsX3RvX2FjdGlvbhgDIAEoCzIzLmdvb2dsZS5hZHMuZ29vZ2xlYWRz", - "LnYyLmNvbW1vbi5EaXNwbGF5Q2FsbFRvQWN0aW9uIkMKDFByb2R1Y3RWaWRl", - "bxIzCg1wcm9kdWN0X3ZpZGVvGAEgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0", - "cmluZ1ZhbHVlIvEECgtJbWFnZUFkSW5mbxIwCgtwaXhlbF93aWR0aBgEIAEo", - "CzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQ2NFZhbHVlEjEKDHBpeGVsX2hlaWdo", - "dBgFIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQ2NFZhbHVlEi8KCWltYWdl", - "X3VybBgGIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRI4ChNw", - "cmV2aWV3X3BpeGVsX3dpZHRoGAcgASgLMhsuZ29vZ2xlLnByb3RvYnVmLklu", - "dDY0VmFsdWUSOQoUcHJldmlld19waXhlbF9oZWlnaHQYCCABKAsyGy5nb29n", - "bGUucHJvdG9idWYuSW50NjRWYWx1ZRI3ChFwcmV2aWV3X2ltYWdlX3VybBgJ", - "IAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRJHCgltaW1lX3R5", - "cGUYCiABKA4yNC5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5lbnVtcy5NaW1l", - "VHlwZUVudW0uTWltZVR5cGUSKgoEbmFtZRgLIAEoCzIcLmdvb2dsZS5wcm90", - "b2J1Zi5TdHJpbmdWYWx1ZRIyCgptZWRpYV9maWxlGAEgASgLMhwuZ29vZ2xl", - "LnByb3RvYnVmLlN0cmluZ1ZhbHVlSAASKwoEZGF0YRgCIAEoCzIbLmdvb2ds", - "ZS5wcm90b2J1Zi5CeXRlc1ZhbHVlSAASPwoYYWRfaWRfdG9fY29weV9pbWFn", - "ZV9mcm9tGAMgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDY0VmFsdWVIAEIH", - "CgVpbWFnZSJTChlWaWRlb0J1bXBlckluU3RyZWFtQWRJbmZvEjYKEGNvbXBh", - "bmlvbl9iYW5uZXIYASABKAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFs", - "dWUiWQofVmlkZW9Ob25Ta2lwcGFibGVJblN0cmVhbUFkSW5mbxI2ChBjb21w", - "YW5pb25fYmFubmVyGAEgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1Zh", - "bHVlIscBChtWaWRlb1RydWVWaWV3SW5TdHJlYW1BZEluZm8SOQoTYWN0aW9u", - "X2J1dHRvbl9sYWJlbBgBIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdW", - "YWx1ZRI1Cg9hY3Rpb25faGVhZGxpbmUYAiABKAsyHC5nb29nbGUucHJvdG9i", - "dWYuU3RyaW5nVmFsdWUSNgoQY29tcGFuaW9uX2Jhbm5lchgDIAEoCzIcLmdv", - "b2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZSJ5ChRWaWRlb091dHN0cmVhbUFk", - "SW5mbxIuCghoZWFkbGluZRgBIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJp", - "bmdWYWx1ZRIxCgtkZXNjcmlwdGlvbhgCIAEoCzIcLmdvb2dsZS5wcm90b2J1", - "Zi5TdHJpbmdWYWx1ZSKOAwoLVmlkZW9BZEluZm8SMAoKbWVkaWFfZmlsZRgB", - "IAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRJQCglpbl9zdHJl", - "YW0YAiABKAsyOy5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5jb21tb24uVmlk", - "ZW9UcnVlVmlld0luU3RyZWFtQWRJbmZvSAASSwoGYnVtcGVyGAMgASgLMjku", - "Z29vZ2xlLmFkcy5nb29nbGVhZHMudjIuY29tbW9uLlZpZGVvQnVtcGVySW5T", - "dHJlYW1BZEluZm9IABJKCgpvdXRfc3RyZWFtGAQgASgLMjQuZ29vZ2xlLmFk", - "cy5nb29nbGVhZHMudjIuY29tbW9uLlZpZGVvT3V0c3RyZWFtQWRJbmZvSAAS", - "WAoNbm9uX3NraXBwYWJsZRgFIAEoCzI/Lmdvb2dsZS5hZHMuZ29vZ2xlYWRz", - "LnYyLmNvbW1vbi5WaWRlb05vblNraXBwYWJsZUluU3RyZWFtQWRJbmZvSABC", - "CAoGZm9ybWF0IvUBChZSZXNwb25zaXZlU2VhcmNoQWRJbmZvEj4KCWhlYWRs", - "aW5lcxgBIAMoCzIrLmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLmNvbW1vbi5B", - "ZFRleHRBc3NldBJBCgxkZXNjcmlwdGlvbnMYAiADKAsyKy5nb29nbGUuYWRz", - "Lmdvb2dsZWFkcy52Mi5jb21tb24uQWRUZXh0QXNzZXQSKwoFcGF0aDEYAyAB", - "KAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWUSKwoFcGF0aDIYBCAB", - "KAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWUi/QYKHUxlZ2FjeVJl", - "c3BvbnNpdmVEaXNwbGF5QWRJbmZvEjQKDnNob3J0X2hlYWRsaW5lGAEgASgL", - "MhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlEjMKDWxvbmdfaGVhZGxp", - "bmUYAiABKAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWUSMQoLZGVz", - "Y3JpcHRpb24YAyABKAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWUS", - "MwoNYnVzaW5lc3NfbmFtZRgEIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJp", - "bmdWYWx1ZRI4ChRhbGxvd19mbGV4aWJsZV9jb2xvchgFIAEoCzIaLmdvb2ds", - "ZS5wcm90b2J1Zi5Cb29sVmFsdWUSMgoMYWNjZW50X2NvbG9yGAYgASgLMhwu", - "Z29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlEjAKCm1haW5fY29sb3IYByAB", - "KAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWUSOQoTY2FsbF90b19h", - "Y3Rpb25fdGV4dBgIIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1", - "ZRIwCgpsb2dvX2ltYWdlGAkgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmlu", - "Z1ZhbHVlEjcKEXNxdWFyZV9sb2dvX2ltYWdlGAogASgLMhwuZ29vZ2xlLnBy", - "b3RvYnVmLlN0cmluZ1ZhbHVlEjUKD21hcmtldGluZ19pbWFnZRgLIAEoCzIc", - "Lmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRI8ChZzcXVhcmVfbWFya2V0", - "aW5nX2ltYWdlGAwgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVl", - "EmgKDmZvcm1hdF9zZXR0aW5nGA0gASgOMlAuZ29vZ2xlLmFkcy5nb29nbGVh", - "ZHMudjIuZW51bXMuRGlzcGxheUFkRm9ybWF0U2V0dGluZ0VudW0uRGlzcGxh", - "eUFkRm9ybWF0U2V0dGluZxIyCgxwcmljZV9wcmVmaXgYDiABKAsyHC5nb29n", - "bGUucHJvdG9idWYuU3RyaW5nVmFsdWUSMAoKcHJvbW9fdGV4dBgPIAEoCzIc", - "Lmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZSKrAwoJQXBwQWRJbmZvEkYK", - "EW1hbmRhdG9yeV9hZF90ZXh0GAEgASgLMisuZ29vZ2xlLmFkcy5nb29nbGVh", - "ZHMudjIuY29tbW9uLkFkVGV4dEFzc2V0Ej4KCWhlYWRsaW5lcxgCIAMoCzIr", - "Lmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLmNvbW1vbi5BZFRleHRBc3NldBJB", - "CgxkZXNjcmlwdGlvbnMYAyADKAsyKy5nb29nbGUuYWRzLmdvb2dsZWFkcy52", - "Mi5jb21tb24uQWRUZXh0QXNzZXQSPAoGaW1hZ2VzGAQgAygLMiwuZ29vZ2xl", - "LmFkcy5nb29nbGVhZHMudjIuY29tbW9uLkFkSW1hZ2VBc3NldBJECg55b3V0", - "dWJlX3ZpZGVvcxgFIAMoCzIsLmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLmNv", - "bW1vbi5BZFZpZGVvQXNzZXQSTwoTaHRtbDVfbWVkaWFfYnVuZGxlcxgGIAMo", - "CzIyLmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLmNvbW1vbi5BZE1lZGlhQnVu", - "ZGxlQXNzZXQilAIKE0FwcEVuZ2FnZW1lbnRBZEluZm8SPgoJaGVhZGxpbmVz", - "GAEgAygLMisuZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuY29tbW9uLkFkVGV4", - "dEFzc2V0EkEKDGRlc2NyaXB0aW9ucxgCIAMoCzIrLmdvb2dsZS5hZHMuZ29v", - "Z2xlYWRzLnYyLmNvbW1vbi5BZFRleHRBc3NldBI8CgZpbWFnZXMYAyADKAsy", + "dGluZ1N0YXRlRW51bS5DYWxsQ29udmVyc2lvblJlcG9ydGluZ1N0YXRlIoQB", + "ChtFeHBhbmRlZER5bmFtaWNTZWFyY2hBZEluZm8SMQoLZGVzY3JpcHRpb24Y", + "ASABKAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWUSMgoMZGVzY3Jp", + "cHRpb24yGAIgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlIg0K", + "C0hvdGVsQWRJbmZvIhUKE1Nob3BwaW5nU21hcnRBZEluZm8iFwoVU2hvcHBp", + "bmdQcm9kdWN0QWRJbmZvIlEKH1Nob3BwaW5nQ29tcGFyaXNvbkxpc3RpbmdB", + "ZEluZm8SLgoIaGVhZGxpbmUYASABKAsyHC5nb29nbGUucHJvdG9idWYuU3Ry", + "aW5nVmFsdWUiqQQKC0dtYWlsQWRJbmZvEjsKBnRlYXNlchgBIAEoCzIrLmdv", + "b2dsZS5hZHMuZ29vZ2xlYWRzLnYyLmNvbW1vbi5HbWFpbFRlYXNlchIyCgxo", + "ZWFkZXJfaW1hZ2UYAiABKAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFs", + "dWUSNQoPbWFya2V0aW5nX2ltYWdlGAMgASgLMhwuZ29vZ2xlLnByb3RvYnVm", + "LlN0cmluZ1ZhbHVlEj4KGG1hcmtldGluZ19pbWFnZV9oZWFkbGluZRgEIAEo", + "CzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRJBChttYXJrZXRpbmdf", + "aW1hZ2VfZGVzY3JpcHRpb24YBSABKAsyHC5nb29nbGUucHJvdG9idWYuU3Ry", + "aW5nVmFsdWUSYwombWFya2V0aW5nX2ltYWdlX2Rpc3BsYXlfY2FsbF90b19h", + "Y3Rpb24YBiABKAsyMy5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5jb21tb24u", + "RGlzcGxheUNhbGxUb0FjdGlvbhJECg5wcm9kdWN0X2ltYWdlcxgHIAMoCzIs", + "Lmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLmNvbW1vbi5Qcm9kdWN0SW1hZ2US", + "RAoOcHJvZHVjdF92aWRlb3MYCCADKAsyLC5nb29nbGUuYWRzLmdvb2dsZWFk", + "cy52Mi5jb21tb24uUHJvZHVjdFZpZGVvItcBCgtHbWFpbFRlYXNlchIuCgho", + "ZWFkbGluZRgBIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRIx", + "CgtkZXNjcmlwdGlvbhgCIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdW", + "YWx1ZRIzCg1idXNpbmVzc19uYW1lGAMgASgLMhwuZ29vZ2xlLnByb3RvYnVm", + "LlN0cmluZ1ZhbHVlEjAKCmxvZ29faW1hZ2UYBCABKAsyHC5nb29nbGUucHJv", + "dG9idWYuU3RyaW5nVmFsdWUirAEKE0Rpc3BsYXlDYWxsVG9BY3Rpb24SKgoE", + "dGV4dBgBIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRIwCgp0", + "ZXh0X2NvbG9yGAIgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVl", + "EjcKEXVybF9jb2xsZWN0aW9uX2lkGAMgASgLMhwuZ29vZ2xlLnByb3RvYnVm", + "LlN0cmluZ1ZhbHVlIssBCgxQcm9kdWN0SW1hZ2USMwoNcHJvZHVjdF9pbWFn", + "ZRgBIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRIxCgtkZXNj", + "cmlwdGlvbhgCIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRJT", + "ChZkaXNwbGF5X2NhbGxfdG9fYWN0aW9uGAMgASgLMjMuZ29vZ2xlLmFkcy5n", + "b29nbGVhZHMudjIuY29tbW9uLkRpc3BsYXlDYWxsVG9BY3Rpb24iQwoMUHJv", + "ZHVjdFZpZGVvEjMKDXByb2R1Y3RfdmlkZW8YASABKAsyHC5nb29nbGUucHJv", + "dG9idWYuU3RyaW5nVmFsdWUi8QQKC0ltYWdlQWRJbmZvEjAKC3BpeGVsX3dp", + "ZHRoGAQgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDY0VmFsdWUSMQoMcGl4", + "ZWxfaGVpZ2h0GAUgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDY0VmFsdWUS", + "LwoJaW1hZ2VfdXJsGAYgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1Zh", + "bHVlEjgKE3ByZXZpZXdfcGl4ZWxfd2lkdGgYByABKAsyGy5nb29nbGUucHJv", + "dG9idWYuSW50NjRWYWx1ZRI5ChRwcmV2aWV3X3BpeGVsX2hlaWdodBgIIAEo", + "CzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQ2NFZhbHVlEjcKEXByZXZpZXdfaW1h", + "Z2VfdXJsGAkgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlEkcK", + "CW1pbWVfdHlwZRgKIAEoDjI0Lmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLmVu", + "dW1zLk1pbWVUeXBlRW51bS5NaW1lVHlwZRIqCgRuYW1lGAsgASgLMhwuZ29v", + "Z2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlEjIKCm1lZGlhX2ZpbGUYASABKAsy", + "HC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWVIABIrCgRkYXRhGAIgASgL", + "MhsuZ29vZ2xlLnByb3RvYnVmLkJ5dGVzVmFsdWVIABI/ChhhZF9pZF90b19j", + "b3B5X2ltYWdlX2Zyb20YAyABKAsyGy5nb29nbGUucHJvdG9idWYuSW50NjRW", + "YWx1ZUgAQgcKBWltYWdlIlMKGVZpZGVvQnVtcGVySW5TdHJlYW1BZEluZm8S", + "NgoQY29tcGFuaW9uX2Jhbm5lchgBIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5T", + "dHJpbmdWYWx1ZSJZCh9WaWRlb05vblNraXBwYWJsZUluU3RyZWFtQWRJbmZv", + "EjYKEGNvbXBhbmlvbl9iYW5uZXIYASABKAsyHC5nb29nbGUucHJvdG9idWYu", + "U3RyaW5nVmFsdWUixwEKG1ZpZGVvVHJ1ZVZpZXdJblN0cmVhbUFkSW5mbxI5", + "ChNhY3Rpb25fYnV0dG9uX2xhYmVsGAEgASgLMhwuZ29vZ2xlLnByb3RvYnVm", + "LlN0cmluZ1ZhbHVlEjUKD2FjdGlvbl9oZWFkbGluZRgCIAEoCzIcLmdvb2ds", + "ZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRI2ChBjb21wYW5pb25fYmFubmVyGAMg", + "ASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlInkKFFZpZGVvT3V0", + "c3RyZWFtQWRJbmZvEi4KCGhlYWRsaW5lGAEgASgLMhwuZ29vZ2xlLnByb3Rv", + "YnVmLlN0cmluZ1ZhbHVlEjEKC2Rlc2NyaXB0aW9uGAIgASgLMhwuZ29vZ2xl", + "LnByb3RvYnVmLlN0cmluZ1ZhbHVlIo4DCgtWaWRlb0FkSW5mbxIwCgptZWRp", + "YV9maWxlGAEgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlElAK", + "CWluX3N0cmVhbRgCIAEoCzI7Lmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLmNv", + "bW1vbi5WaWRlb1RydWVWaWV3SW5TdHJlYW1BZEluZm9IABJLCgZidW1wZXIY", + "AyABKAsyOS5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5jb21tb24uVmlkZW9C", + "dW1wZXJJblN0cmVhbUFkSW5mb0gAEkoKCm91dF9zdHJlYW0YBCABKAsyNC5n", + "b29nbGUuYWRzLmdvb2dsZWFkcy52Mi5jb21tb24uVmlkZW9PdXRzdHJlYW1B", + "ZEluZm9IABJYCg1ub25fc2tpcHBhYmxlGAUgASgLMj8uZ29vZ2xlLmFkcy5n", + "b29nbGVhZHMudjIuY29tbW9uLlZpZGVvTm9uU2tpcHBhYmxlSW5TdHJlYW1B", + "ZEluZm9IAEIICgZmb3JtYXQi9QEKFlJlc3BvbnNpdmVTZWFyY2hBZEluZm8S", + "PgoJaGVhZGxpbmVzGAEgAygLMisuZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIu", + "Y29tbW9uLkFkVGV4dEFzc2V0EkEKDGRlc2NyaXB0aW9ucxgCIAMoCzIrLmdv", + "b2dsZS5hZHMuZ29vZ2xlYWRzLnYyLmNvbW1vbi5BZFRleHRBc3NldBIrCgVw", + "YXRoMRgDIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRIrCgVw", + "YXRoMhgEIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZSL9Bgod", + "TGVnYWN5UmVzcG9uc2l2ZURpc3BsYXlBZEluZm8SNAoOc2hvcnRfaGVhZGxp", + "bmUYASABKAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWUSMwoNbG9u", + "Z19oZWFkbGluZRgCIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1", + "ZRIxCgtkZXNjcmlwdGlvbhgDIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJp", + "bmdWYWx1ZRIzCg1idXNpbmVzc19uYW1lGAQgASgLMhwuZ29vZ2xlLnByb3Rv", + "YnVmLlN0cmluZ1ZhbHVlEjgKFGFsbG93X2ZsZXhpYmxlX2NvbG9yGAUgASgL", + "MhouZ29vZ2xlLnByb3RvYnVmLkJvb2xWYWx1ZRIyCgxhY2NlbnRfY29sb3IY", + "BiABKAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWUSMAoKbWFpbl9j", + "b2xvchgHIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRI5ChNj", + "YWxsX3RvX2FjdGlvbl90ZXh0GAggASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0", + "cmluZ1ZhbHVlEjAKCmxvZ29faW1hZ2UYCSABKAsyHC5nb29nbGUucHJvdG9i", + "dWYuU3RyaW5nVmFsdWUSNwoRc3F1YXJlX2xvZ29faW1hZ2UYCiABKAsyHC5n", + "b29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWUSNQoPbWFya2V0aW5nX2ltYWdl", + "GAsgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlEjwKFnNxdWFy", + "ZV9tYXJrZXRpbmdfaW1hZ2UYDCABKAsyHC5nb29nbGUucHJvdG9idWYuU3Ry", + "aW5nVmFsdWUSaAoOZm9ybWF0X3NldHRpbmcYDSABKA4yUC5nb29nbGUuYWRz", + "Lmdvb2dsZWFkcy52Mi5lbnVtcy5EaXNwbGF5QWRGb3JtYXRTZXR0aW5nRW51", + "bS5EaXNwbGF5QWRGb3JtYXRTZXR0aW5nEjIKDHByaWNlX3ByZWZpeBgOIAEo", + "CzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRIwCgpwcm9tb190ZXh0", + "GA8gASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlIqsDCglBcHBB", + "ZEluZm8SRgoRbWFuZGF0b3J5X2FkX3RleHQYASABKAsyKy5nb29nbGUuYWRz", + "Lmdvb2dsZWFkcy52Mi5jb21tb24uQWRUZXh0QXNzZXQSPgoJaGVhZGxpbmVz", + "GAIgAygLMisuZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuY29tbW9uLkFkVGV4", + "dEFzc2V0EkEKDGRlc2NyaXB0aW9ucxgDIAMoCzIrLmdvb2dsZS5hZHMuZ29v", + "Z2xlYWRzLnYyLmNvbW1vbi5BZFRleHRBc3NldBI8CgZpbWFnZXMYBCADKAsy", "LC5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5jb21tb24uQWRJbWFnZUFzc2V0", - "EjwKBnZpZGVvcxgEIAMoCzIsLmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLmNv", - "bW1vbi5BZFZpZGVvQXNzZXQiywIKFkxlZ2FjeUFwcEluc3RhbGxBZEluZm8S", - "LAoGYXBwX2lkGAEgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVl", - "EmsKCWFwcF9zdG9yZRgCIAEoDjJYLmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYy", - "LmVudW1zLkxlZ2FjeUFwcEluc3RhbGxBZEFwcFN0b3JlRW51bS5MZWdhY3lB", - "cHBJbnN0YWxsQWRBcHBTdG9yZRIuCghoZWFkbGluZRgDIAEoCzIcLmdvb2ds", - "ZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRIyCgxkZXNjcmlwdGlvbjEYBCABKAsy", - "HC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWUSMgoMZGVzY3JpcHRpb24y", - "GAUgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlIqoIChdSZXNw", - "b25zaXZlRGlzcGxheUFkSW5mbxJGChBtYXJrZXRpbmdfaW1hZ2VzGAEgAygL", - "MiwuZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuY29tbW9uLkFkSW1hZ2VBc3Nl", - "dBJNChdzcXVhcmVfbWFya2V0aW5nX2ltYWdlcxgCIAMoCzIsLmdvb2dsZS5h", - "ZHMuZ29vZ2xlYWRzLnYyLmNvbW1vbi5BZEltYWdlQXNzZXQSQQoLbG9nb19p", - "bWFnZXMYAyADKAsyLC5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5jb21tb24u", - "QWRJbWFnZUFzc2V0EkgKEnNxdWFyZV9sb2dvX2ltYWdlcxgEIAMoCzIsLmdv", - "b2dsZS5hZHMuZ29vZ2xlYWRzLnYyLmNvbW1vbi5BZEltYWdlQXNzZXQSPgoJ", - "aGVhZGxpbmVzGAUgAygLMisuZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuY29t", - "bW9uLkFkVGV4dEFzc2V0EkIKDWxvbmdfaGVhZGxpbmUYBiABKAsyKy5nb29n", - "bGUuYWRzLmdvb2dsZWFkcy52Mi5jb21tb24uQWRUZXh0QXNzZXQSQQoMZGVz", - "Y3JpcHRpb25zGAcgAygLMisuZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuY29t", - "bW9uLkFkVGV4dEFzc2V0EkQKDnlvdXR1YmVfdmlkZW9zGAggAygLMiwuZ29v", - "Z2xlLmFkcy5nb29nbGVhZHMudjIuY29tbW9uLkFkVmlkZW9Bc3NldBIzCg1i", - "dXNpbmVzc19uYW1lGAkgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1Zh", - "bHVlEjAKCm1haW5fY29sb3IYCiABKAsyHC5nb29nbGUucHJvdG9idWYuU3Ry", - "aW5nVmFsdWUSMgoMYWNjZW50X2NvbG9yGAsgASgLMhwuZ29vZ2xlLnByb3Rv", - "YnVmLlN0cmluZ1ZhbHVlEjgKFGFsbG93X2ZsZXhpYmxlX2NvbG9yGAwgASgL", - "MhouZ29vZ2xlLnByb3RvYnVmLkJvb2xWYWx1ZRI5ChNjYWxsX3RvX2FjdGlv", - "bl90ZXh0GA0gASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlEjIK", - "DHByaWNlX3ByZWZpeBgOIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdW", - "YWx1ZRIwCgpwcm9tb190ZXh0GA8gASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0", - "cmluZ1ZhbHVlEmgKDmZvcm1hdF9zZXR0aW5nGBAgASgOMlAuZ29vZ2xlLmFk", - "cy5nb29nbGVhZHMudjIuZW51bXMuRGlzcGxheUFkRm9ybWF0U2V0dGluZ0Vu", - "dW0uRGlzcGxheUFkRm9ybWF0U2V0dGluZyLrAQoTRGlzcGxheVVwbG9hZEFk", - "SW5mbxJ5ChtkaXNwbGF5X3VwbG9hZF9wcm9kdWN0X3R5cGUYASABKA4yVC5n", - "b29nbGUuYWRzLmdvb2dsZWFkcy52Mi5lbnVtcy5EaXNwbGF5VXBsb2FkUHJv", - "ZHVjdFR5cGVFbnVtLkRpc3BsYXlVcGxvYWRQcm9kdWN0VHlwZRJKCgxtZWRp", - "YV9idW5kbGUYAiABKAsyMi5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5jb21t", - "b24uQWRNZWRpYUJ1bmRsZUFzc2V0SABCDQoLbWVkaWFfYXNzZXRC6wEKImNv", - "bS5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5jb21tb25CEEFkVHlwZUluZm9z", - "UHJvdG9QAVpEZ29vZ2xlLmdvbGFuZy5vcmcvZ2VucHJvdG8vZ29vZ2xlYXBp", - "cy9hZHMvZ29vZ2xlYWRzL3YyL2NvbW1vbjtjb21tb26iAgNHQUGqAh5Hb29n", - "bGUuQWRzLkdvb2dsZUFkcy5WMi5Db21tb27KAh5Hb29nbGVcQWRzXEdvb2ds", - "ZUFkc1xWMlxDb21tb27qAiJHb29nbGU6OkFkczo6R29vZ2xlQWRzOjpWMjo6", - "Q29tbW9uYgZwcm90bzM=")); + "EkQKDnlvdXR1YmVfdmlkZW9zGAUgAygLMiwuZ29vZ2xlLmFkcy5nb29nbGVh", + "ZHMudjIuY29tbW9uLkFkVmlkZW9Bc3NldBJPChNodG1sNV9tZWRpYV9idW5k", + "bGVzGAYgAygLMjIuZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuY29tbW9uLkFk", + "TWVkaWFCdW5kbGVBc3NldCKUAgoTQXBwRW5nYWdlbWVudEFkSW5mbxI+Cglo", + "ZWFkbGluZXMYASADKAsyKy5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5jb21t", + "b24uQWRUZXh0QXNzZXQSQQoMZGVzY3JpcHRpb25zGAIgAygLMisuZ29vZ2xl", + "LmFkcy5nb29nbGVhZHMudjIuY29tbW9uLkFkVGV4dEFzc2V0EjwKBmltYWdl", + "cxgDIAMoCzIsLmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLmNvbW1vbi5BZElt", + "YWdlQXNzZXQSPAoGdmlkZW9zGAQgAygLMiwuZ29vZ2xlLmFkcy5nb29nbGVh", + "ZHMudjIuY29tbW9uLkFkVmlkZW9Bc3NldCLLAgoWTGVnYWN5QXBwSW5zdGFs", + "bEFkSW5mbxIsCgZhcHBfaWQYASABKAsyHC5nb29nbGUucHJvdG9idWYuU3Ry", + "aW5nVmFsdWUSawoJYXBwX3N0b3JlGAIgASgOMlguZ29vZ2xlLmFkcy5nb29n", + "bGVhZHMudjIuZW51bXMuTGVnYWN5QXBwSW5zdGFsbEFkQXBwU3RvcmVFbnVt", + "LkxlZ2FjeUFwcEluc3RhbGxBZEFwcFN0b3JlEi4KCGhlYWRsaW5lGAMgASgL", + "MhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlEjIKDGRlc2NyaXB0aW9u", + "MRgEIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRIyCgxkZXNj", + "cmlwdGlvbjIYBSABKAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWUi", + "qggKF1Jlc3BvbnNpdmVEaXNwbGF5QWRJbmZvEkYKEG1hcmtldGluZ19pbWFn", + "ZXMYASADKAsyLC5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5jb21tb24uQWRJ", + "bWFnZUFzc2V0Ek0KF3NxdWFyZV9tYXJrZXRpbmdfaW1hZ2VzGAIgAygLMiwu", + "Z29vZ2xlLmFkcy5nb29nbGVhZHMudjIuY29tbW9uLkFkSW1hZ2VBc3NldBJB", + "Cgtsb2dvX2ltYWdlcxgDIAMoCzIsLmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYy", + "LmNvbW1vbi5BZEltYWdlQXNzZXQSSAoSc3F1YXJlX2xvZ29faW1hZ2VzGAQg", + "AygLMiwuZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuY29tbW9uLkFkSW1hZ2VB", + "c3NldBI+CgloZWFkbGluZXMYBSADKAsyKy5nb29nbGUuYWRzLmdvb2dsZWFk", + "cy52Mi5jb21tb24uQWRUZXh0QXNzZXQSQgoNbG9uZ19oZWFkbGluZRgGIAEo", + "CzIrLmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLmNvbW1vbi5BZFRleHRBc3Nl", + "dBJBCgxkZXNjcmlwdGlvbnMYByADKAsyKy5nb29nbGUuYWRzLmdvb2dsZWFk", + "cy52Mi5jb21tb24uQWRUZXh0QXNzZXQSRAoOeW91dHViZV92aWRlb3MYCCAD", + "KAsyLC5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5jb21tb24uQWRWaWRlb0Fz", + "c2V0EjMKDWJ1c2luZXNzX25hbWUYCSABKAsyHC5nb29nbGUucHJvdG9idWYu", + "U3RyaW5nVmFsdWUSMAoKbWFpbl9jb2xvchgKIAEoCzIcLmdvb2dsZS5wcm90", + "b2J1Zi5TdHJpbmdWYWx1ZRIyCgxhY2NlbnRfY29sb3IYCyABKAsyHC5nb29n", + "bGUucHJvdG9idWYuU3RyaW5nVmFsdWUSOAoUYWxsb3dfZmxleGlibGVfY29s", + "b3IYDCABKAsyGi5nb29nbGUucHJvdG9idWYuQm9vbFZhbHVlEjkKE2NhbGxf", + "dG9fYWN0aW9uX3RleHQYDSABKAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5n", + "VmFsdWUSMgoMcHJpY2VfcHJlZml4GA4gASgLMhwuZ29vZ2xlLnByb3RvYnVm", + "LlN0cmluZ1ZhbHVlEjAKCnByb21vX3RleHQYDyABKAsyHC5nb29nbGUucHJv", + "dG9idWYuU3RyaW5nVmFsdWUSaAoOZm9ybWF0X3NldHRpbmcYECABKA4yUC5n", + "b29nbGUuYWRzLmdvb2dsZWFkcy52Mi5lbnVtcy5EaXNwbGF5QWRGb3JtYXRT", + "ZXR0aW5nRW51bS5EaXNwbGF5QWRGb3JtYXRTZXR0aW5nIusBChNEaXNwbGF5", + "VXBsb2FkQWRJbmZvEnkKG2Rpc3BsYXlfdXBsb2FkX3Byb2R1Y3RfdHlwZRgB", + "IAEoDjJULmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLmVudW1zLkRpc3BsYXlV", + "cGxvYWRQcm9kdWN0VHlwZUVudW0uRGlzcGxheVVwbG9hZFByb2R1Y3RUeXBl", + "EkoKDG1lZGlhX2J1bmRsZRgCIAEoCzIyLmdvb2dsZS5hZHMuZ29vZ2xlYWRz", + "LnYyLmNvbW1vbi5BZE1lZGlhQnVuZGxlQXNzZXRIAEINCgttZWRpYV9hc3Nl", + "dELrAQoiY29tLmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLmNvbW1vbkIQQWRU", + "eXBlSW5mb3NQcm90b1ABWkRnb29nbGUuZ29sYW5nLm9yZy9nZW5wcm90by9n", + "b29nbGVhcGlzL2Fkcy9nb29nbGVhZHMvdjIvY29tbW9uO2NvbW1vbqICA0dB", + "QaoCHkdvb2dsZS5BZHMuR29vZ2xlQWRzLlYyLkNvbW1vbsoCHkdvb2dsZVxB", + "ZHNcR29vZ2xlQWRzXFYyXENvbW1vbuoCIkdvb2dsZTo6QWRzOjpHb29nbGVB", + "ZHM6OlYyOjpDb21tb25iBnByb3RvMw==")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { global::Google.Ads.GoogleAds.V2.Common.AdAssetReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Enums.CallConversionReportingStateReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Enums.DisplayAdFormatSettingReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Enums.DisplayUploadProductTypeReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Enums.LegacyAppInstallAdAppStoreReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Enums.MimeTypeReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.WrappersReflection.Descriptor, global::Google.Api.AnnotationsReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Common.TextAdInfo), global::Google.Ads.GoogleAds.V2.Common.TextAdInfo.Parser, new[]{ "Headline", "Description1", "Description2" }, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Common.ExpandedTextAdInfo), global::Google.Ads.GoogleAds.V2.Common.ExpandedTextAdInfo.Parser, new[]{ "HeadlinePart1", "HeadlinePart2", "HeadlinePart3", "Description", "Description2", "Path1", "Path2" }, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Common.CallOnlyAdInfo), global::Google.Ads.GoogleAds.V2.Common.CallOnlyAdInfo.Parser, new[]{ "CountryCode", "PhoneNumber", "BusinessName", "Headline1", "Headline2", "Description1", "Description2", "CallTracked", "DisableCallConversion", "PhoneNumberVerificationUrl", "ConversionAction", "ConversionReportingState" }, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Common.ExpandedDynamicSearchAdInfo), global::Google.Ads.GoogleAds.V2.Common.ExpandedDynamicSearchAdInfo.Parser, new[]{ "Description" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Common.ExpandedDynamicSearchAdInfo), global::Google.Ads.GoogleAds.V2.Common.ExpandedDynamicSearchAdInfo.Parser, new[]{ "Description", "Description2" }, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Common.HotelAdInfo), global::Google.Ads.GoogleAds.V2.Common.HotelAdInfo.Parser, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Common.ShoppingSmartAdInfo), global::Google.Ads.GoogleAds.V2.Common.ShoppingSmartAdInfo.Parser, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Common.ShoppingProductAdInfo), global::Google.Ads.GoogleAds.V2.Common.ShoppingProductAdInfo.Parser, null, null, null, null), @@ -1405,6 +1406,7 @@ public ExpandedDynamicSearchAdInfo() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public ExpandedDynamicSearchAdInfo(ExpandedDynamicSearchAdInfo other) : this() { Description = other.Description; + Description2 = other.Description2; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -1429,6 +1431,22 @@ public string Description { } + /// Field number for the "description2" field. + public const int Description2FieldNumber = 2; + private static readonly pb::FieldCodec _single_description2_codec = pb::FieldCodec.ForClassWrapper(18); + private string description2_; + /// + /// The second description of the ad. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public string Description2 { + get { return description2_; } + set { + description2_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public override bool Equals(object other) { return Equals(other as ExpandedDynamicSearchAdInfo); @@ -1443,6 +1461,7 @@ public bool Equals(ExpandedDynamicSearchAdInfo other) { return true; } if (Description != other.Description) return false; + if (Description2 != other.Description2) return false; return Equals(_unknownFields, other._unknownFields); } @@ -1450,6 +1469,7 @@ public bool Equals(ExpandedDynamicSearchAdInfo other) { public override int GetHashCode() { int hash = 1; if (description_ != null) hash ^= Description.GetHashCode(); + if (description2_ != null) hash ^= Description2.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -1466,6 +1486,9 @@ public void WriteTo(pb::CodedOutputStream output) { if (description_ != null) { _single_description_codec.WriteTagAndValue(output, Description); } + if (description2_ != null) { + _single_description2_codec.WriteTagAndValue(output, Description2); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -1477,6 +1500,9 @@ public int CalculateSize() { if (description_ != null) { size += _single_description_codec.CalculateSizeWithTag(Description); } + if (description2_ != null) { + size += _single_description2_codec.CalculateSizeWithTag(Description2); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -1493,6 +1519,11 @@ public void MergeFrom(ExpandedDynamicSearchAdInfo other) { Description = other.Description; } } + if (other.description2_ != null) { + if (description2_ == null || other.Description2 != "") { + Description2 = other.Description2; + } + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -1511,6 +1542,13 @@ public void MergeFrom(pb::CodedInputStream input) { } break; } + case 18: { + string value = _single_description2_codec.Read(input); + if (description2_ == null || value != "") { + Description2 = value; + } + break; + } } } } diff --git a/src/V2/Stubs/AuthorizationError.cs b/src/V2/Stubs/AuthorizationError.cs index 714953aa2..4248a4cc4 100644 --- a/src/V2/Stubs/AuthorizationError.cs +++ b/src/V2/Stubs/AuthorizationError.cs @@ -26,21 +26,22 @@ static AuthorizationErrorReflection() { string.Concat( "Cjhnb29nbGUvYWRzL2dvb2dsZWFkcy92Mi9lcnJvcnMvYXV0aG9yaXphdGlv", "bl9lcnJvci5wcm90bxIeZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuZXJyb3Jz", - "Ghxnb29nbGUvYXBpL2Fubm90YXRpb25zLnByb3RvItsCChZBdXRob3JpemF0", - "aW9uRXJyb3JFbnVtIsACChJBdXRob3JpemF0aW9uRXJyb3ISDwoLVU5TUEVD", + "Ghxnb29nbGUvYXBpL2Fubm90YXRpb25zLnByb3RvIpoDChZBdXRob3JpemF0", + "aW9uRXJyb3JFbnVtIv8CChJBdXRob3JpemF0aW9uRXJyb3ISDwoLVU5TUEVD", "SUZJRUQQABILCgdVTktOT1dOEAESGgoWVVNFUl9QRVJNSVNTSU9OX0RFTklF", "RBACEiMKH0RFVkVMT1BFUl9UT0tFTl9OT1RfV0hJVEVMSVNURUQQAxIeChpE", "RVZFTE9QRVJfVE9LRU5fUFJPSElCSVRFRBAEEhQKEFBST0pFQ1RfRElTQUJM", "RUQQBRIXChNBVVRIT1JJWkFUSU9OX0VSUk9SEAYSGAoUQUNUSU9OX05PVF9Q", "RVJNSVRURUQQBxIVChFJTkNPTVBMRVRFX1NJR05VUBAIEhgKFENVU1RPTUVS", "X05PVF9FTkFCTEVEEBgSDwoLTUlTU0lOR19UT1MQCRIgChxERVZFTE9QRVJf", - "VE9LRU5fTk9UX0FQUFJPVkVEEApC8gEKImNvbS5nb29nbGUuYWRzLmdvb2ds", - "ZWFkcy52Mi5lcnJvcnNCF0F1dGhvcml6YXRpb25FcnJvclByb3RvUAFaRGdv", - "b2dsZS5nb2xhbmcub3JnL2dlbnByb3RvL2dvb2dsZWFwaXMvYWRzL2dvb2ds", - "ZWFkcy92Mi9lcnJvcnM7ZXJyb3JzogIDR0FBqgIeR29vZ2xlLkFkcy5Hb29n", - "bGVBZHMuVjIuRXJyb3JzygIeR29vZ2xlXEFkc1xHb29nbGVBZHNcVjJcRXJy", - "b3Jz6gIiR29vZ2xlOjpBZHM6Okdvb2dsZUFkczo6VjI6OkVycm9yc2IGcHJv", - "dG8z")); + "VE9LRU5fTk9UX0FQUFJPVkVEEAoSPQo5SU5WQUxJRF9MT0dJTl9DVVNUT01F", + "Ul9JRF9TRVJWSU5HX0NVU1RPTUVSX0lEX0NPTUJJTkFUSU9OEAtC8gEKImNv", + "bS5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5lcnJvcnNCF0F1dGhvcml6YXRp", + "b25FcnJvclByb3RvUAFaRGdvb2dsZS5nb2xhbmcub3JnL2dlbnByb3RvL2dv", + "b2dsZWFwaXMvYWRzL2dvb2dsZWFkcy92Mi9lcnJvcnM7ZXJyb3JzogIDR0FB", + "qgIeR29vZ2xlLkFkcy5Hb29nbGVBZHMuVjIuRXJyb3JzygIeR29vZ2xlXEFk", + "c1xHb29nbGVBZHNcVjJcRXJyb3Jz6gIiR29vZ2xlOjpBZHM6Okdvb2dsZUFk", + "czo6VjI6OkVycm9yc2IGcHJvdG8z")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { global::Google.Api.AnnotationsReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { @@ -216,6 +217,11 @@ public enum AuthorizationError { /// only be used with test accounts. /// [pbr::OriginalName("DEVELOPER_TOKEN_NOT_APPROVED")] DeveloperTokenNotApproved = 10, + /// + /// The login customer specified does not have access to the account + /// specified, so the request is invalid. + /// + [pbr::OriginalName("INVALID_LOGIN_CUSTOMER_ID_SERVING_CUSTOMER_ID_COMBINATION")] InvalidLoginCustomerIdServingCustomerIdCombination = 11, } } diff --git a/src/V2/Stubs/BillingSetup.cs b/src/V2/Stubs/BillingSetup.cs index 3591562f4..60852d5d5 100644 --- a/src/V2/Stubs/BillingSetup.cs +++ b/src/V2/Stubs/BillingSetup.cs @@ -68,9 +68,8 @@ static BillingSetupReflection() { } #region Messages /// - /// A billing setup across Ads and Payments systems; an association between a - /// Payments account and an advertiser. A billing setup is specific to one - /// advertiser. + /// A billing setup, which associates a payments account and an advertiser. A + /// billing setup is specific to one advertiser. /// public sealed partial class BillingSetup : pb::IMessage { private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new BillingSetup()); @@ -180,11 +179,11 @@ public long? Id { private static readonly pb::FieldCodec _single_paymentsAccount_codec = pb::FieldCodec.ForClassWrapper(90); private string paymentsAccount_; /// - /// The resource name of the Payments account associated with this billing + /// The resource name of the payments account associated with this billing /// setup. Payments resource names have the form: /// /// `customers/{customer_id}/paymentsAccounts/{payments_account_id}` - /// When setting up billing, this is used to signup with an existing Payments + /// When setting up billing, this is used to signup with an existing payments /// account (and then payments_account_info should not be set). /// When getting a billing setup, this and payments_account_info will be /// populated. @@ -202,8 +201,8 @@ public string PaymentsAccount { public const int PaymentsAccountInfoFieldNumber = 12; private global::Google.Ads.GoogleAds.V2.Resources.BillingSetup.Types.PaymentsAccountInfo paymentsAccountInfo_; /// - /// The Payments account information associated with this billing setup. - /// When setting up billing, this is used to signup with a new Payments account + /// The payments account information associated with this billing setup. + /// When setting up billing, this is used to signup with a new payments account /// (and then payments_account should not be set). /// When getting a billing setup, this and payments_account will be /// populated. @@ -552,7 +551,7 @@ public void MergeFrom(pb::CodedInputStream input) { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public static partial class Types { /// - /// Container of Payments account information for this billing. + /// Container of payments account information for this billing. /// public sealed partial class PaymentsAccountInfo : pb::IMessage { private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new PaymentsAccountInfo()); @@ -597,7 +596,7 @@ public PaymentsAccountInfo Clone() { private static readonly pb::FieldCodec _single_paymentsAccountId_codec = pb::FieldCodec.ForClassWrapper(10); private string paymentsAccountId_; /// - /// A 16 digit id used to identify the Payments account associated with the + /// A 16 digit id used to identify the payments account associated with the /// billing setup. /// /// This must be passed as a string with dashes, e.g. "1234-5678-9012-3456". @@ -616,9 +615,9 @@ public string PaymentsAccountId { private static readonly pb::FieldCodec _single_paymentsAccountName_codec = pb::FieldCodec.ForClassWrapper(18); private string paymentsAccountName_; /// - /// The name of the Payments account associated with the billing setup. + /// The name of the payments account associated with the billing setup. /// - /// This enables the user to specify a meaningful name for a Payments account + /// This enables the user to specify a meaningful name for a payments account /// to aid in reconciling monthly invoices. /// /// This name will be printed in the monthly invoices. @@ -637,7 +636,7 @@ public string PaymentsAccountName { private static readonly pb::FieldCodec _single_paymentsProfileId_codec = pb::FieldCodec.ForClassWrapper(26); private string paymentsProfileId_; /// - /// A 12 digit id used to identify the Payments profile associated with the + /// A 12 digit id used to identify the payments profile associated with the /// billing setup. /// /// This must be passed in as a string with dashes, e.g. "1234-5678-9012". @@ -656,7 +655,7 @@ public string PaymentsProfileId { private static readonly pb::FieldCodec _single_paymentsProfileName_codec = pb::FieldCodec.ForClassWrapper(34); private string paymentsProfileName_; /// - /// The name of the Payments profile associated with the billing setup. + /// The name of the payments profile associated with the billing setup. /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public string PaymentsProfileName { diff --git a/src/V2/Stubs/BillingSetupError.cs b/src/V2/Stubs/BillingSetupError.cs index e59ce7922..7f145e6ec 100644 --- a/src/V2/Stubs/BillingSetupError.cs +++ b/src/V2/Stubs/BillingSetupError.cs @@ -26,8 +26,8 @@ static BillingSetupErrorReflection() { string.Concat( "Cjhnb29nbGUvYWRzL2dvb2dsZWFkcy92Mi9lcnJvcnMvYmlsbGluZ19zZXR1", "cF9lcnJvci5wcm90bxIeZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuZXJyb3Jz", - "Ghxnb29nbGUvYXBpL2Fubm90YXRpb25zLnByb3RvIvsEChVCaWxsaW5nU2V0", - "dXBFcnJvckVudW0i4QQKEUJpbGxpbmdTZXR1cEVycm9yEg8KC1VOU1BFQ0lG", + "Ghxnb29nbGUvYXBpL2Fubm90YXRpb25zLnByb3RvIqEFChVCaWxsaW5nU2V0", + "dXBFcnJvckVudW0ihwUKEUJpbGxpbmdTZXR1cEVycm9yEg8KC1VOU1BFQ0lG", "SUVEEAASCwoHVU5LTk9XThABEicKI0NBTk5PVF9VU0VfRVhJU1RJTkdfQU5E", "X05FV19BQ0NPVU5UEAISJwojQ0FOTk9UX1JFTU9WRV9TVEFSVEVEX0JJTExJ", "TkdfU0VUVVAQAxIyCi5DQU5OT1RfQ0hBTkdFX0JJTExJTkdfVE9fU0FNRV9Q", @@ -40,13 +40,14 @@ static BillingSetupErrorReflection() { "SVNTSU9OEAsSIQodQ0hBTkdFX09GX0JJTExfVE9fSU5fUFJPR1JFU1MQDBIe", "ChpQQVlNRU5UU19QUk9GSUxFX05PVF9GT1VORBANEh4KGlBBWU1FTlRTX0FD", "Q09VTlRfTk9UX0ZPVU5EEA4SHwobUEFZTUVOVFNfUFJPRklMRV9JTkVMSUdJ", - "QkxFEA8SHwobUEFZTUVOVFNfQUNDT1VOVF9JTkVMSUdJQkxFEBBC8QEKImNv", - "bS5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5lcnJvcnNCFkJpbGxpbmdTZXR1", - "cEVycm9yUHJvdG9QAVpEZ29vZ2xlLmdvbGFuZy5vcmcvZ2VucHJvdG8vZ29v", - "Z2xlYXBpcy9hZHMvZ29vZ2xlYWRzL3YyL2Vycm9ycztlcnJvcnOiAgNHQUGq", - "Ah5Hb29nbGUuQWRzLkdvb2dsZUFkcy5WMi5FcnJvcnPKAh5Hb29nbGVcQWRz", - "XEdvb2dsZUFkc1xWMlxFcnJvcnPqAiJHb29nbGU6OkFkczo6R29vZ2xlQWRz", - "OjpWMjo6RXJyb3JzYgZwcm90bzM=")); + "QkxFEA8SHwobUEFZTUVOVFNfQUNDT1VOVF9JTkVMSUdJQkxFEBASJAogQ1VT", + "VE9NRVJfTkVFRFNfSU5URVJOQUxfQVBQUk9WQUwQEULxAQoiY29tLmdvb2ds", + "ZS5hZHMuZ29vZ2xlYWRzLnYyLmVycm9yc0IWQmlsbGluZ1NldHVwRXJyb3JQ", + "cm90b1ABWkRnb29nbGUuZ29sYW5nLm9yZy9nZW5wcm90by9nb29nbGVhcGlz", + "L2Fkcy9nb29nbGVhZHMvdjIvZXJyb3JzO2Vycm9yc6ICA0dBQaoCHkdvb2ds", + "ZS5BZHMuR29vZ2xlQWRzLlYyLkVycm9yc8oCHkdvb2dsZVxBZHNcR29vZ2xl", + "QWRzXFYyXEVycm9yc+oCIkdvb2dsZTo6QWRzOjpHb29nbGVBZHM6OlYyOjpF", + "cnJvcnNiBnByb3RvMw==")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { global::Google.Api.AnnotationsReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { @@ -176,26 +177,26 @@ public enum BillingSetupError { /// [pbr::OriginalName("UNKNOWN")] Unknown = 1, /// - /// Cannot use both an existing Payments account and a new Payments account - /// when setting up billing. + /// Cannot specify both an existing payments account and a new payments + /// account when setting up billing. /// [pbr::OriginalName("CANNOT_USE_EXISTING_AND_NEW_ACCOUNT")] CannotUseExistingAndNewAccount = 2, /// - /// Cannot cancel an APPROVED billing setup whose start time has passed. + /// Cannot cancel an approved billing setup whose start time has passed. /// [pbr::OriginalName("CANNOT_REMOVE_STARTED_BILLING_SETUP")] CannotRemoveStartedBillingSetup = 3, /// - /// Cannot perform a Change of Bill-To (CBT) to the same Payments account. + /// Cannot perform a Change of Bill-To (CBT) to the same payments account. /// [pbr::OriginalName("CANNOT_CHANGE_BILLING_TO_SAME_PAYMENTS_ACCOUNT")] CannotChangeBillingToSamePaymentsAccount = 4, /// - /// Billing Setups can only be used by customers with ENABLED or DRAFT + /// Billing setups can only be used by customers with ENABLED or DRAFT /// status. /// [pbr::OriginalName("BILLING_SETUP_NOT_PERMITTED_FOR_CUSTOMER_STATUS")] BillingSetupNotPermittedForCustomerStatus = 5, /// - /// Billing Setups must either include a correctly formatted existing - /// Payments account id, or a non-empty new Payments account name. + /// Billing setups must either include a correctly formatted existing + /// payments account id, or a non-empty new payments account name. /// [pbr::OriginalName("INVALID_PAYMENTS_ACCOUNT")] InvalidPaymentsAccount = 6, /// @@ -203,50 +204,51 @@ public enum BillingSetupError { /// [pbr::OriginalName("BILLING_SETUP_NOT_PERMITTED_FOR_CUSTOMER_CATEGORY")] BillingSetupNotPermittedForCustomerCategory = 7, /// - /// Billing Setup creations can only use NOW for start time type. + /// Billing setup creations can only use NOW for start time type. /// [pbr::OriginalName("INVALID_START_TIME_TYPE")] InvalidStartTimeType = 8, /// - /// Billing Setups can only be created for a third-party customer if they do + /// Billing setups can only be created for a third-party customer if they do /// not already have a setup. /// [pbr::OriginalName("THIRD_PARTY_ALREADY_HAS_BILLING")] ThirdPartyAlreadyHasBilling = 9, /// - /// Billing Setups cannot be created if there is already a pending billing in - /// progress, ie. a billing known to Payments. + /// Billing setups cannot be created if there is already a pending billing in + /// progress. /// [pbr::OriginalName("BILLING_SETUP_IN_PROGRESS")] BillingSetupInProgress = 10, /// - /// Billing Setups can only be created by customers who have permission to + /// Billing setups can only be created by customers who have permission to /// setup billings. Users can contact a representative for help setting up /// permissions. /// [pbr::OriginalName("NO_SIGNUP_PERMISSION")] NoSignupPermission = 11, /// - /// Billing Setups cannot be created if there is already a future-approved + /// Billing setups cannot be created if there is already a future-approved /// billing. /// [pbr::OriginalName("CHANGE_OF_BILL_TO_IN_PROGRESS")] ChangeOfBillToInProgress = 12, /// - /// Billing Setup creation failed because Payments could not find the - /// requested Payments profile. + /// Requested payments profile not found. /// [pbr::OriginalName("PAYMENTS_PROFILE_NOT_FOUND")] PaymentsProfileNotFound = 13, /// - /// Billing Setup creation failed because Payments could not find the - /// requested Payments account. + /// Requested payments account not found. /// [pbr::OriginalName("PAYMENTS_ACCOUNT_NOT_FOUND")] PaymentsAccountNotFound = 14, /// - /// Billing Setup creation failed because Payments considers requested - /// Payments profile ineligible. + /// Billing setup creation failed because the payments profile is ineligible. /// [pbr::OriginalName("PAYMENTS_PROFILE_INELIGIBLE")] PaymentsProfileIneligible = 15, /// - /// Billing Setup creation failed because Payments considers requested - /// Payments account ineligible. + /// Billing setup creation failed because the payments account is ineligible. /// [pbr::OriginalName("PAYMENTS_ACCOUNT_INELIGIBLE")] PaymentsAccountIneligible = 16, + /// + /// Billing setup creation failed because the payments profile needs internal + /// approval. + /// + [pbr::OriginalName("CUSTOMER_NEEDS_INTERNAL_APPROVAL")] CustomerNeedsInternalApproval = 17, } } diff --git a/src/V2/Stubs/BillingSetupServiceGrpc.cs b/src/V2/Stubs/BillingSetupServiceGrpc.cs index af1037592..dd8c0f2c2 100644 --- a/src/V2/Stubs/BillingSetupServiceGrpc.cs +++ b/src/V2/Stubs/BillingSetupServiceGrpc.cs @@ -27,8 +27,8 @@ namespace Google.Ads.GoogleAds.V2.Services { /// /// A service for designating the business entity responsible for accrued costs. /// - /// A billing setup is associated with a Payments account. Billing-related - /// activity for all billing setups associated with a particular Payments account + /// A billing setup is associated with a payments account. Billing-related + /// activity for all billing setups associated with a particular payments account /// will appear on a single invoice generated monthly. /// /// Mutates: diff --git a/src/V2/Stubs/Campaign.cs b/src/V2/Stubs/Campaign.cs index f501bb5c0..684470674 100644 --- a/src/V2/Stubs/Campaign.cs +++ b/src/V2/Stubs/Campaign.cs @@ -140,31 +140,31 @@ static CampaignReflection() { "HXRhcmdldF9wYXJ0bmVyX3NlYXJjaF9uZXR3b3JrGAQgASgLMhouZ29vZ2xl", "LnByb3RvYnVmLkJvb2xWYWx1ZRpIChBIb3RlbFNldHRpbmdJbmZvEjQKD2hv", "dGVsX2NlbnRlcl9pZBgBIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQ2NFZh", - "bHVlGkUKD1RyYWNraW5nU2V0dGluZxIyCgx0cmFja2luZ191cmwYASABKAsy", - "HC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWUa8wEKDFZhbml0eVBoYXJt", - "YRKAAQoedmFuaXR5X3BoYXJtYV9kaXNwbGF5X3VybF9tb2RlGAEgASgOMlgu", - "Z29vZ2xlLmFkcy5nb29nbGVhZHMudjIuZW51bXMuVmFuaXR5UGhhcm1hRGlz", - "cGxheVVybE1vZGVFbnVtLlZhbml0eVBoYXJtYURpc3BsYXlVcmxNb2RlEmAK", - "EnZhbml0eV9waGFybWFfdGV4dBgCIAEoDjJELmdvb2dsZS5hZHMuZ29vZ2xl", - "YWRzLnYyLmVudW1zLlZhbml0eVBoYXJtYVRleHRFbnVtLlZhbml0eVBoYXJt", - "YVRleHQa6gEKF0R5bmFtaWNTZWFyY2hBZHNTZXR0aW5nEjEKC2RvbWFpbl9u", - "YW1lGAEgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlEjMKDWxh", - "bmd1YWdlX2NvZGUYAiABKAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFs", - "dWUSOgoWdXNlX3N1cHBsaWVkX3VybHNfb25seRgDIAEoCzIaLmdvb2dsZS5w", - "cm90b2J1Zi5Cb29sVmFsdWUSKwoFZmVlZHMYBSADKAsyHC5nb29nbGUucHJv", - "dG9idWYuU3RyaW5nVmFsdWUaUQoVU2VsZWN0aXZlT3B0aW1pemF0aW9uEjgK", - "EmNvbnZlcnNpb25fYWN0aW9ucxgBIAMoCzIcLmdvb2dsZS5wcm90b2J1Zi5T", - "dHJpbmdWYWx1ZRriAQoPU2hvcHBpbmdTZXR0aW5nEjAKC21lcmNoYW50X2lk", - "GAEgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDY0VmFsdWUSMwoNc2FsZXNf", - "Y291bnRyeRgCIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRI2", - "ChFjYW1wYWlnbl9wcmlvcml0eRgDIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5J", - "bnQzMlZhbHVlEjAKDGVuYWJsZV9sb2NhbBgEIAEoCzIaLmdvb2dsZS5wcm90", - "b2J1Zi5Cb29sVmFsdWUa+gEKFEdlb1RhcmdldFR5cGVTZXR0aW5nEnAKGHBv", - "c2l0aXZlX2dlb190YXJnZXRfdHlwZRgBIAEoDjJOLmdvb2dsZS5hZHMuZ29v", - "Z2xlYWRzLnYyLmVudW1zLlBvc2l0aXZlR2VvVGFyZ2V0VHlwZUVudW0uUG9z", - "aXRpdmVHZW9UYXJnZXRUeXBlEnAKGG5lZ2F0aXZlX2dlb190YXJnZXRfdHlw", - "ZRgCIAEoDjJOLmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLmVudW1zLk5lZ2F0", - "aXZlR2VvVGFyZ2V0VHlwZUVudW0uTmVnYXRpdmVHZW9UYXJnZXRUeXBlGrAC", + "bHVlGuoBChdEeW5hbWljU2VhcmNoQWRzU2V0dGluZxIxCgtkb21haW5fbmFt", + "ZRgBIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRIzCg1sYW5n", + "dWFnZV9jb2RlGAIgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVl", + "EjoKFnVzZV9zdXBwbGllZF91cmxzX29ubHkYAyABKAsyGi5nb29nbGUucHJv", + "dG9idWYuQm9vbFZhbHVlEisKBWZlZWRzGAUgAygLMhwuZ29vZ2xlLnByb3Rv", + "YnVmLlN0cmluZ1ZhbHVlGuIBCg9TaG9wcGluZ1NldHRpbmcSMAoLbWVyY2hh", + "bnRfaWQYASABKAsyGy5nb29nbGUucHJvdG9idWYuSW50NjRWYWx1ZRIzCg1z", + "YWxlc19jb3VudHJ5GAIgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1Zh", + "bHVlEjYKEWNhbXBhaWduX3ByaW9yaXR5GAMgASgLMhsuZ29vZ2xlLnByb3Rv", + "YnVmLkludDMyVmFsdWUSMAoMZW5hYmxlX2xvY2FsGAQgASgLMhouZ29vZ2xl", + "LnByb3RvYnVmLkJvb2xWYWx1ZRpFCg9UcmFja2luZ1NldHRpbmcSMgoMdHJh", + "Y2tpbmdfdXJsGAEgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVl", + "GvMBCgxWYW5pdHlQaGFybWESgAEKHnZhbml0eV9waGFybWFfZGlzcGxheV91", + "cmxfbW9kZRgBIAEoDjJYLmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLmVudW1z", + "LlZhbml0eVBoYXJtYURpc3BsYXlVcmxNb2RlRW51bS5WYW5pdHlQaGFybWFE", + "aXNwbGF5VXJsTW9kZRJgChJ2YW5pdHlfcGhhcm1hX3RleHQYAiABKA4yRC5n", + "b29nbGUuYWRzLmdvb2dsZWFkcy52Mi5lbnVtcy5WYW5pdHlQaGFybWFUZXh0", + "RW51bS5WYW5pdHlQaGFybWFUZXh0GvoBChRHZW9UYXJnZXRUeXBlU2V0dGlu", + "ZxJwChhwb3NpdGl2ZV9nZW9fdGFyZ2V0X3R5cGUYASABKA4yTi5nb29nbGUu", + "YWRzLmdvb2dsZWFkcy52Mi5lbnVtcy5Qb3NpdGl2ZUdlb1RhcmdldFR5cGVF", + "bnVtLlBvc2l0aXZlR2VvVGFyZ2V0VHlwZRJwChhuZWdhdGl2ZV9nZW9fdGFy", + "Z2V0X3R5cGUYAiABKA4yTi5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5lbnVt", + "cy5OZWdhdGl2ZUdlb1RhcmdldFR5cGVFbnVtLk5lZ2F0aXZlR2VvVGFyZ2V0", + "VHlwZRpRChVTZWxlY3RpdmVPcHRpbWl6YXRpb24SOAoSY29udmVyc2lvbl9h", + "Y3Rpb25zGAEgAygLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlGrAC", "ChJBcHBDYW1wYWlnblNldHRpbmcSjAEKGmJpZGRpbmdfc3RyYXRlZ3lfZ29h", "bF90eXBlGAEgASgOMmguZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuZW51bXMu", "QXBwQ2FtcGFpZ25CaWRkaW5nU3RyYXRlZ3lHb2FsVHlwZUVudW0uQXBwQ2Ft", @@ -184,12 +184,12 @@ static CampaignReflection() { new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Resources.Campaign), global::Google.Ads.GoogleAds.V2.Resources.Campaign.Parser, new[]{ "ResourceName", "Id", "Name", "Status", "ServingStatus", "AdServingOptimizationStatus", "AdvertisingChannelType", "AdvertisingChannelSubType", "TrackingUrlTemplate", "UrlCustomParameters", "RealTimeBiddingSetting", "NetworkSettings", "HotelSetting", "DynamicSearchAdsSetting", "ShoppingSetting", "TargetingSetting", "GeoTargetTypeSetting", "AppCampaignSetting", "Labels", "ExperimentType", "BaseCampaign", "CampaignBudget", "BiddingStrategyType", "StartDate", "EndDate", "FinalUrlSuffix", "FrequencyCaps", "VideoBrandSafetySuitability", "VanityPharma", "SelectiveOptimization", "TrackingSetting", "PaymentMode", "BiddingStrategy", "Commission", "ManualCpc", "ManualCpm", "ManualCpv", "MaximizeConversions", "MaximizeConversionValue", "TargetCpa", "TargetImpressionShare", "TargetRoas", "TargetSpend", "PercentCpc", "TargetCpm" }, new[]{ "CampaignBiddingStrategy" }, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Resources.Campaign.Types.NetworkSettings), global::Google.Ads.GoogleAds.V2.Resources.Campaign.Types.NetworkSettings.Parser, new[]{ "TargetGoogleSearch", "TargetSearchNetwork", "TargetContentNetwork", "TargetPartnerSearchNetwork" }, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Resources.Campaign.Types.HotelSettingInfo), global::Google.Ads.GoogleAds.V2.Resources.Campaign.Types.HotelSettingInfo.Parser, new[]{ "HotelCenterId" }, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Resources.Campaign.Types.TrackingSetting), global::Google.Ads.GoogleAds.V2.Resources.Campaign.Types.TrackingSetting.Parser, new[]{ "TrackingUrl" }, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Resources.Campaign.Types.VanityPharma), global::Google.Ads.GoogleAds.V2.Resources.Campaign.Types.VanityPharma.Parser, new[]{ "VanityPharmaDisplayUrlMode", "VanityPharmaText" }, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Resources.Campaign.Types.DynamicSearchAdsSetting), global::Google.Ads.GoogleAds.V2.Resources.Campaign.Types.DynamicSearchAdsSetting.Parser, new[]{ "DomainName", "LanguageCode", "UseSuppliedUrlsOnly", "Feeds" }, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Resources.Campaign.Types.SelectiveOptimization), global::Google.Ads.GoogleAds.V2.Resources.Campaign.Types.SelectiveOptimization.Parser, new[]{ "ConversionActions" }, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Resources.Campaign.Types.ShoppingSetting), global::Google.Ads.GoogleAds.V2.Resources.Campaign.Types.ShoppingSetting.Parser, new[]{ "MerchantId", "SalesCountry", "CampaignPriority", "EnableLocal" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Resources.Campaign.Types.TrackingSetting), global::Google.Ads.GoogleAds.V2.Resources.Campaign.Types.TrackingSetting.Parser, new[]{ "TrackingUrl" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Resources.Campaign.Types.VanityPharma), global::Google.Ads.GoogleAds.V2.Resources.Campaign.Types.VanityPharma.Parser, new[]{ "VanityPharmaDisplayUrlMode", "VanityPharmaText" }, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Resources.Campaign.Types.GeoTargetTypeSetting), global::Google.Ads.GoogleAds.V2.Resources.Campaign.Types.GeoTargetTypeSetting.Parser, new[]{ "PositiveGeoTargetType", "NegativeGeoTargetType" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Resources.Campaign.Types.SelectiveOptimization), global::Google.Ads.GoogleAds.V2.Resources.Campaign.Types.SelectiveOptimization.Parser, new[]{ "ConversionActions" }, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Resources.Campaign.Types.AppCampaignSetting), global::Google.Ads.GoogleAds.V2.Resources.Campaign.Types.AppCampaignSetting.Parser, new[]{ "BiddingStrategyGoalType", "AppId", "AppStore" }, null, null, null)}) })); } @@ -2397,13 +2397,13 @@ public void MergeFrom(pb::CodedInputStream input) { } /// - /// Campaign level settings for tracking information. + /// The setting for controlling Dynamic Search Ads (DSA). /// - public sealed partial class TrackingSetting : pb::IMessage { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new TrackingSetting()); + public sealed partial class DynamicSearchAdsSetting : pb::IMessage { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new DynamicSearchAdsSetting()); private pb::UnknownFieldSet _unknownFields; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public static pb::MessageParser Parser { get { return _parser; } } + public static pb::MessageParser Parser { get { return _parser; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public static pbr::MessageDescriptor Descriptor { @@ -2416,60 +2416,115 @@ public sealed partial class TrackingSetting : pb::IMessage { } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public TrackingSetting() { + public DynamicSearchAdsSetting() { OnConstruction(); } partial void OnConstruction(); [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public TrackingSetting(TrackingSetting other) : this() { - TrackingUrl = other.TrackingUrl; + public DynamicSearchAdsSetting(DynamicSearchAdsSetting other) : this() { + DomainName = other.DomainName; + LanguageCode = other.LanguageCode; + UseSuppliedUrlsOnly = other.UseSuppliedUrlsOnly; + feeds_ = other.feeds_.Clone(); _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public TrackingSetting Clone() { - return new TrackingSetting(this); + public DynamicSearchAdsSetting Clone() { + return new DynamicSearchAdsSetting(this); } - /// Field number for the "tracking_url" field. - public const int TrackingUrlFieldNumber = 1; - private static readonly pb::FieldCodec _single_trackingUrl_codec = pb::FieldCodec.ForClassWrapper(10); - private string trackingUrl_; + /// Field number for the "domain_name" field. + public const int DomainNameFieldNumber = 1; + private static readonly pb::FieldCodec _single_domainName_codec = pb::FieldCodec.ForClassWrapper(10); + private string domainName_; /// - /// The url used for dynamic tracking. + /// The Internet domain name that this setting represents, e.g., "google.com" + /// or "www.google.com". /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public string TrackingUrl { - get { return trackingUrl_; } + public string DomainName { + get { return domainName_; } set { - trackingUrl_ = value; + domainName_ = value; + } + } + + + /// Field number for the "language_code" field. + public const int LanguageCodeFieldNumber = 2; + private static readonly pb::FieldCodec _single_languageCode_codec = pb::FieldCodec.ForClassWrapper(18); + private string languageCode_; + /// + /// The language code specifying the language of the domain, e.g., "en". + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public string LanguageCode { + get { return languageCode_; } + set { + languageCode_ = value; + } + } + + + /// Field number for the "use_supplied_urls_only" field. + public const int UseSuppliedUrlsOnlyFieldNumber = 3; + private static readonly pb::FieldCodec _single_useSuppliedUrlsOnly_codec = pb::FieldCodec.ForStructWrapper(26); + private bool? useSuppliedUrlsOnly_; + /// + /// Whether the campaign uses advertiser supplied URLs exclusively. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool? UseSuppliedUrlsOnly { + get { return useSuppliedUrlsOnly_; } + set { + useSuppliedUrlsOnly_ = value; } } + /// Field number for the "feeds" field. + public const int FeedsFieldNumber = 5; + private static readonly pb::FieldCodec _repeated_feeds_codec + = pb::FieldCodec.ForClassWrapper(42); + private readonly pbc::RepeatedField feeds_ = new pbc::RepeatedField(); + /// + /// The list of page feeds associated with the campaign. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField Feeds { + get { return feeds_; } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public override bool Equals(object other) { - return Equals(other as TrackingSetting); + return Equals(other as DynamicSearchAdsSetting); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public bool Equals(TrackingSetting other) { + public bool Equals(DynamicSearchAdsSetting other) { if (ReferenceEquals(other, null)) { return false; } if (ReferenceEquals(other, this)) { return true; } - if (TrackingUrl != other.TrackingUrl) return false; + if (DomainName != other.DomainName) return false; + if (LanguageCode != other.LanguageCode) return false; + if (UseSuppliedUrlsOnly != other.UseSuppliedUrlsOnly) return false; + if(!feeds_.Equals(other.feeds_)) return false; return Equals(_unknownFields, other._unknownFields); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public override int GetHashCode() { int hash = 1; - if (trackingUrl_ != null) hash ^= TrackingUrl.GetHashCode(); + if (domainName_ != null) hash ^= DomainName.GetHashCode(); + if (languageCode_ != null) hash ^= LanguageCode.GetHashCode(); + if (useSuppliedUrlsOnly_ != null) hash ^= UseSuppliedUrlsOnly.GetHashCode(); + hash ^= feeds_.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -2483,9 +2538,16 @@ public override string ToString() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public void WriteTo(pb::CodedOutputStream output) { - if (trackingUrl_ != null) { - _single_trackingUrl_codec.WriteTagAndValue(output, TrackingUrl); + if (domainName_ != null) { + _single_domainName_codec.WriteTagAndValue(output, DomainName); + } + if (languageCode_ != null) { + _single_languageCode_codec.WriteTagAndValue(output, LanguageCode); + } + if (useSuppliedUrlsOnly_ != null) { + _single_useSuppliedUrlsOnly_codec.WriteTagAndValue(output, UseSuppliedUrlsOnly); } + feeds_.WriteTo(output, _repeated_feeds_codec); if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -2494,9 +2556,16 @@ public void WriteTo(pb::CodedOutputStream output) { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public int CalculateSize() { int size = 0; - if (trackingUrl_ != null) { - size += _single_trackingUrl_codec.CalculateSizeWithTag(TrackingUrl); + if (domainName_ != null) { + size += _single_domainName_codec.CalculateSizeWithTag(DomainName); + } + if (languageCode_ != null) { + size += _single_languageCode_codec.CalculateSizeWithTag(LanguageCode); + } + if (useSuppliedUrlsOnly_ != null) { + size += _single_useSuppliedUrlsOnly_codec.CalculateSizeWithTag(UseSuppliedUrlsOnly); } + size += feeds_.CalculateSize(_repeated_feeds_codec); if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -2504,15 +2573,26 @@ public int CalculateSize() { } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public void MergeFrom(TrackingSetting other) { + public void MergeFrom(DynamicSearchAdsSetting other) { if (other == null) { return; } - if (other.trackingUrl_ != null) { - if (trackingUrl_ == null || other.TrackingUrl != "") { - TrackingUrl = other.TrackingUrl; + if (other.domainName_ != null) { + if (domainName_ == null || other.DomainName != "") { + DomainName = other.DomainName; + } + } + if (other.languageCode_ != null) { + if (languageCode_ == null || other.LanguageCode != "") { + LanguageCode = other.LanguageCode; + } + } + if (other.useSuppliedUrlsOnly_ != null) { + if (useSuppliedUrlsOnly_ == null || other.UseSuppliedUrlsOnly != false) { + UseSuppliedUrlsOnly = other.UseSuppliedUrlsOnly; } } + feeds_.Add(other.feeds_); _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -2525,12 +2605,30 @@ public void MergeFrom(pb::CodedInputStream input) { _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); break; case 10: { - string value = _single_trackingUrl_codec.Read(input); - if (trackingUrl_ == null || value != "") { - TrackingUrl = value; + string value = _single_domainName_codec.Read(input); + if (domainName_ == null || value != "") { + DomainName = value; + } + break; + } + case 18: { + string value = _single_languageCode_codec.Read(input); + if (languageCode_ == null || value != "") { + LanguageCode = value; + } + break; + } + case 26: { + bool? value = _single_useSuppliedUrlsOnly_codec.Read(input); + if (useSuppliedUrlsOnly_ == null || value != false) { + UseSuppliedUrlsOnly = value; } break; } + case 42: { + feeds_.AddEntriesFrom(input, _repeated_feeds_codec); + break; + } } } } @@ -2538,13 +2636,15 @@ public void MergeFrom(pb::CodedInputStream input) { } /// - /// Describes how unbranded pharma ads will be displayed. + /// The setting for Shopping campaigns. Defines the universe of products that + /// can be advertised by the campaign, and how this campaign interacts with + /// other Shopping campaigns. /// - public sealed partial class VanityPharma : pb::IMessage { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new VanityPharma()); + public sealed partial class ShoppingSetting : pb::IMessage { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new ShoppingSetting()); private pb::UnknownFieldSet _unknownFields; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public static pb::MessageParser Parser { get { return _parser; } } + public static pb::MessageParser Parser { get { return _parser; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public static pbr::MessageDescriptor Descriptor { @@ -2557,282 +2657,127 @@ public sealed partial class VanityPharma : pb::IMessage { } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public VanityPharma() { + public ShoppingSetting() { OnConstruction(); } partial void OnConstruction(); [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public VanityPharma(VanityPharma other) : this() { - vanityPharmaDisplayUrlMode_ = other.vanityPharmaDisplayUrlMode_; - vanityPharmaText_ = other.vanityPharmaText_; + public ShoppingSetting(ShoppingSetting other) : this() { + MerchantId = other.MerchantId; + SalesCountry = other.SalesCountry; + CampaignPriority = other.CampaignPriority; + EnableLocal = other.EnableLocal; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public VanityPharma Clone() { - return new VanityPharma(this); + public ShoppingSetting Clone() { + return new ShoppingSetting(this); } - /// Field number for the "vanity_pharma_display_url_mode" field. - public const int VanityPharmaDisplayUrlModeFieldNumber = 1; - private global::Google.Ads.GoogleAds.V2.Enums.VanityPharmaDisplayUrlModeEnum.Types.VanityPharmaDisplayUrlMode vanityPharmaDisplayUrlMode_ = 0; + /// Field number for the "merchant_id" field. + public const int MerchantIdFieldNumber = 1; + private static readonly pb::FieldCodec _single_merchantId_codec = pb::FieldCodec.ForStructWrapper(10); + private long? merchantId_; /// - /// The display mode for vanity pharma URLs. + /// ID of the Merchant Center account. + /// This field is required for create operations. This field is immutable for + /// Shopping campaigns. /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public global::Google.Ads.GoogleAds.V2.Enums.VanityPharmaDisplayUrlModeEnum.Types.VanityPharmaDisplayUrlMode VanityPharmaDisplayUrlMode { - get { return vanityPharmaDisplayUrlMode_; } + public long? MerchantId { + get { return merchantId_; } set { - vanityPharmaDisplayUrlMode_ = value; + merchantId_ = value; } } - /// Field number for the "vanity_pharma_text" field. - public const int VanityPharmaTextFieldNumber = 2; - private global::Google.Ads.GoogleAds.V2.Enums.VanityPharmaTextEnum.Types.VanityPharmaText vanityPharmaText_ = 0; + + /// Field number for the "sales_country" field. + public const int SalesCountryFieldNumber = 2; + private static readonly pb::FieldCodec _single_salesCountry_codec = pb::FieldCodec.ForClassWrapper(18); + private string salesCountry_; /// - /// The text that will be displayed in display URL of the text ad when - /// website description is the selected display mode for vanity pharma URLs. + /// Sales country of products to include in the campaign. + /// This field is required for Shopping campaigns. This field is immutable. + /// This field is optional for non-Shopping campaigns, but it must be equal + /// to 'ZZ' if set. /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public global::Google.Ads.GoogleAds.V2.Enums.VanityPharmaTextEnum.Types.VanityPharmaText VanityPharmaText { - get { return vanityPharmaText_; } + public string SalesCountry { + get { return salesCountry_; } set { - vanityPharmaText_ = value; + salesCountry_ = value; } } - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public override bool Equals(object other) { - return Equals(other as VanityPharma); - } + /// Field number for the "campaign_priority" field. + public const int CampaignPriorityFieldNumber = 3; + private static readonly pb::FieldCodec _single_campaignPriority_codec = pb::FieldCodec.ForStructWrapper(26); + private int? campaignPriority_; + /// + /// Priority of the campaign. Campaigns with numerically higher priorities + /// take precedence over those with lower priorities. + /// This field is required for Shopping campaigns, with values between 0 and + /// 2, inclusive. + /// This field is optional for Smart Shopping campaigns, but must be equal to + /// 3 if set. + /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public bool Equals(VanityPharma other) { - if (ReferenceEquals(other, null)) { - return false; - } - if (ReferenceEquals(other, this)) { - return true; + public int? CampaignPriority { + get { return campaignPriority_; } + set { + campaignPriority_ = value; } - if (VanityPharmaDisplayUrlMode != other.VanityPharmaDisplayUrlMode) return false; - if (VanityPharmaText != other.VanityPharmaText) return false; - return Equals(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public override int GetHashCode() { - int hash = 1; - if (VanityPharmaDisplayUrlMode != 0) hash ^= VanityPharmaDisplayUrlMode.GetHashCode(); - if (VanityPharmaText != 0) hash ^= VanityPharmaText.GetHashCode(); - if (_unknownFields != null) { - hash ^= _unknownFields.GetHashCode(); - } - return hash; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public override string ToString() { - return pb::JsonFormatter.ToDiagnosticString(this); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public void WriteTo(pb::CodedOutputStream output) { - if (VanityPharmaDisplayUrlMode != 0) { - output.WriteRawTag(8); - output.WriteEnum((int) VanityPharmaDisplayUrlMode); - } - if (VanityPharmaText != 0) { - output.WriteRawTag(16); - output.WriteEnum((int) VanityPharmaText); - } - if (_unknownFields != null) { - _unknownFields.WriteTo(output); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public int CalculateSize() { - int size = 0; - if (VanityPharmaDisplayUrlMode != 0) { - size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) VanityPharmaDisplayUrlMode); - } - if (VanityPharmaText != 0) { - size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) VanityPharmaText); - } - if (_unknownFields != null) { - size += _unknownFields.CalculateSize(); - } - return size; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public void MergeFrom(VanityPharma other) { - if (other == null) { - return; - } - if (other.VanityPharmaDisplayUrlMode != 0) { - VanityPharmaDisplayUrlMode = other.VanityPharmaDisplayUrlMode; - } - if (other.VanityPharmaText != 0) { - VanityPharmaText = other.VanityPharmaText; - } - _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public void MergeFrom(pb::CodedInputStream input) { - uint tag; - while ((tag = input.ReadTag()) != 0) { - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); - break; - case 8: { - VanityPharmaDisplayUrlMode = (global::Google.Ads.GoogleAds.V2.Enums.VanityPharmaDisplayUrlModeEnum.Types.VanityPharmaDisplayUrlMode) input.ReadEnum(); - break; - } - case 16: { - VanityPharmaText = (global::Google.Ads.GoogleAds.V2.Enums.VanityPharmaTextEnum.Types.VanityPharmaText) input.ReadEnum(); - break; - } - } - } - } - - } - - /// - /// The setting for controlling Dynamic Search Ads (DSA). - /// - public sealed partial class DynamicSearchAdsSetting : pb::IMessage { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new DynamicSearchAdsSetting()); - private pb::UnknownFieldSet _unknownFields; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public static pb::MessageParser Parser { get { return _parser; } } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public static pbr::MessageDescriptor Descriptor { - get { return global::Google.Ads.GoogleAds.V2.Resources.Campaign.Descriptor.NestedTypes[4]; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - pbr::MessageDescriptor pb::IMessage.Descriptor { - get { return Descriptor; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public DynamicSearchAdsSetting() { - OnConstruction(); } - partial void OnConstruction(); - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public DynamicSearchAdsSetting(DynamicSearchAdsSetting other) : this() { - DomainName = other.DomainName; - LanguageCode = other.LanguageCode; - UseSuppliedUrlsOnly = other.UseSuppliedUrlsOnly; - feeds_ = other.feeds_.Clone(); - _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public DynamicSearchAdsSetting Clone() { - return new DynamicSearchAdsSetting(this); - } - - /// Field number for the "domain_name" field. - public const int DomainNameFieldNumber = 1; - private static readonly pb::FieldCodec _single_domainName_codec = pb::FieldCodec.ForClassWrapper(10); - private string domainName_; - /// - /// The Internet domain name that this setting represents, e.g., "google.com" - /// or "www.google.com". - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public string DomainName { - get { return domainName_; } - set { - domainName_ = value; - } - } - - /// Field number for the "language_code" field. - public const int LanguageCodeFieldNumber = 2; - private static readonly pb::FieldCodec _single_languageCode_codec = pb::FieldCodec.ForClassWrapper(18); - private string languageCode_; - /// - /// The language code specifying the language of the domain, e.g., "en". - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public string LanguageCode { - get { return languageCode_; } - set { - languageCode_ = value; - } - } - - - /// Field number for the "use_supplied_urls_only" field. - public const int UseSuppliedUrlsOnlyFieldNumber = 3; - private static readonly pb::FieldCodec _single_useSuppliedUrlsOnly_codec = pb::FieldCodec.ForStructWrapper(26); - private bool? useSuppliedUrlsOnly_; + /// Field number for the "enable_local" field. + public const int EnableLocalFieldNumber = 4; + private static readonly pb::FieldCodec _single_enableLocal_codec = pb::FieldCodec.ForStructWrapper(34); + private bool? enableLocal_; /// - /// Whether the campaign uses advertiser supplied URLs exclusively. + /// Whether to include local products. /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public bool? UseSuppliedUrlsOnly { - get { return useSuppliedUrlsOnly_; } + public bool? EnableLocal { + get { return enableLocal_; } set { - useSuppliedUrlsOnly_ = value; + enableLocal_ = value; } } - /// Field number for the "feeds" field. - public const int FeedsFieldNumber = 5; - private static readonly pb::FieldCodec _repeated_feeds_codec - = pb::FieldCodec.ForClassWrapper(42); - private readonly pbc::RepeatedField feeds_ = new pbc::RepeatedField(); - /// - /// The list of page feeds associated with the campaign. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public pbc::RepeatedField Feeds { - get { return feeds_; } - } - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public override bool Equals(object other) { - return Equals(other as DynamicSearchAdsSetting); + return Equals(other as ShoppingSetting); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public bool Equals(DynamicSearchAdsSetting other) { + public bool Equals(ShoppingSetting other) { if (ReferenceEquals(other, null)) { return false; } if (ReferenceEquals(other, this)) { return true; } - if (DomainName != other.DomainName) return false; - if (LanguageCode != other.LanguageCode) return false; - if (UseSuppliedUrlsOnly != other.UseSuppliedUrlsOnly) return false; - if(!feeds_.Equals(other.feeds_)) return false; + if (MerchantId != other.MerchantId) return false; + if (SalesCountry != other.SalesCountry) return false; + if (CampaignPriority != other.CampaignPriority) return false; + if (EnableLocal != other.EnableLocal) return false; return Equals(_unknownFields, other._unknownFields); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public override int GetHashCode() { int hash = 1; - if (domainName_ != null) hash ^= DomainName.GetHashCode(); - if (languageCode_ != null) hash ^= LanguageCode.GetHashCode(); - if (useSuppliedUrlsOnly_ != null) hash ^= UseSuppliedUrlsOnly.GetHashCode(); - hash ^= feeds_.GetHashCode(); + if (merchantId_ != null) hash ^= MerchantId.GetHashCode(); + if (salesCountry_ != null) hash ^= SalesCountry.GetHashCode(); + if (campaignPriority_ != null) hash ^= CampaignPriority.GetHashCode(); + if (enableLocal_ != null) hash ^= EnableLocal.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -2846,16 +2791,18 @@ public override string ToString() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public void WriteTo(pb::CodedOutputStream output) { - if (domainName_ != null) { - _single_domainName_codec.WriteTagAndValue(output, DomainName); + if (merchantId_ != null) { + _single_merchantId_codec.WriteTagAndValue(output, MerchantId); } - if (languageCode_ != null) { - _single_languageCode_codec.WriteTagAndValue(output, LanguageCode); + if (salesCountry_ != null) { + _single_salesCountry_codec.WriteTagAndValue(output, SalesCountry); } - if (useSuppliedUrlsOnly_ != null) { - _single_useSuppliedUrlsOnly_codec.WriteTagAndValue(output, UseSuppliedUrlsOnly); + if (campaignPriority_ != null) { + _single_campaignPriority_codec.WriteTagAndValue(output, CampaignPriority); + } + if (enableLocal_ != null) { + _single_enableLocal_codec.WriteTagAndValue(output, EnableLocal); } - feeds_.WriteTo(output, _repeated_feeds_codec); if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -2864,16 +2811,18 @@ public void WriteTo(pb::CodedOutputStream output) { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public int CalculateSize() { int size = 0; - if (domainName_ != null) { - size += _single_domainName_codec.CalculateSizeWithTag(DomainName); + if (merchantId_ != null) { + size += _single_merchantId_codec.CalculateSizeWithTag(MerchantId); } - if (languageCode_ != null) { - size += _single_languageCode_codec.CalculateSizeWithTag(LanguageCode); + if (salesCountry_ != null) { + size += _single_salesCountry_codec.CalculateSizeWithTag(SalesCountry); } - if (useSuppliedUrlsOnly_ != null) { - size += _single_useSuppliedUrlsOnly_codec.CalculateSizeWithTag(UseSuppliedUrlsOnly); + if (campaignPriority_ != null) { + size += _single_campaignPriority_codec.CalculateSizeWithTag(CampaignPriority); + } + if (enableLocal_ != null) { + size += _single_enableLocal_codec.CalculateSizeWithTag(EnableLocal); } - size += feeds_.CalculateSize(_repeated_feeds_codec); if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -2881,26 +2830,30 @@ public int CalculateSize() { } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public void MergeFrom(DynamicSearchAdsSetting other) { + public void MergeFrom(ShoppingSetting other) { if (other == null) { return; } - if (other.domainName_ != null) { - if (domainName_ == null || other.DomainName != "") { - DomainName = other.DomainName; + if (other.merchantId_ != null) { + if (merchantId_ == null || other.MerchantId != 0L) { + MerchantId = other.MerchantId; } } - if (other.languageCode_ != null) { - if (languageCode_ == null || other.LanguageCode != "") { - LanguageCode = other.LanguageCode; + if (other.salesCountry_ != null) { + if (salesCountry_ == null || other.SalesCountry != "") { + SalesCountry = other.SalesCountry; } } - if (other.useSuppliedUrlsOnly_ != null) { - if (useSuppliedUrlsOnly_ == null || other.UseSuppliedUrlsOnly != false) { - UseSuppliedUrlsOnly = other.UseSuppliedUrlsOnly; + if (other.campaignPriority_ != null) { + if (campaignPriority_ == null || other.CampaignPriority != 0) { + CampaignPriority = other.CampaignPriority; + } + } + if (other.enableLocal_ != null) { + if (enableLocal_ == null || other.EnableLocal != false) { + EnableLocal = other.EnableLocal; } } - feeds_.Add(other.feeds_); _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -2913,28 +2866,31 @@ public void MergeFrom(pb::CodedInputStream input) { _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); break; case 10: { - string value = _single_domainName_codec.Read(input); - if (domainName_ == null || value != "") { - DomainName = value; + long? value = _single_merchantId_codec.Read(input); + if (merchantId_ == null || value != 0L) { + MerchantId = value; } break; } case 18: { - string value = _single_languageCode_codec.Read(input); - if (languageCode_ == null || value != "") { - LanguageCode = value; + string value = _single_salesCountry_codec.Read(input); + if (salesCountry_ == null || value != "") { + SalesCountry = value; } break; } case 26: { - bool? value = _single_useSuppliedUrlsOnly_codec.Read(input); - if (useSuppliedUrlsOnly_ == null || value != false) { - UseSuppliedUrlsOnly = value; + int? value = _single_campaignPriority_codec.Read(input); + if (campaignPriority_ == null || value != 0) { + CampaignPriority = value; } break; } - case 42: { - feeds_.AddEntriesFrom(input, _repeated_feeds_codec); + case 34: { + bool? value = _single_enableLocal_codec.Read(input); + if (enableLocal_ == null || value != false) { + EnableLocal = value; + } break; } } @@ -2944,18 +2900,17 @@ public void MergeFrom(pb::CodedInputStream input) { } /// - /// Selective optimization setting for this campaign, which includes a set of - /// conversion actions to optimize this campaign towards. + /// Campaign level settings for tracking information. /// - public sealed partial class SelectiveOptimization : pb::IMessage { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new SelectiveOptimization()); + public sealed partial class TrackingSetting : pb::IMessage { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new TrackingSetting()); private pb::UnknownFieldSet _unknownFields; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public static pb::MessageParser Parser { get { return _parser; } } + public static pb::MessageParser Parser { get { return _parser; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public static pbr::MessageDescriptor Descriptor { - get { return global::Google.Ads.GoogleAds.V2.Resources.Campaign.Descriptor.NestedTypes[5]; } + get { return global::Google.Ads.GoogleAds.V2.Resources.Campaign.Descriptor.NestedTypes[4]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -2964,57 +2919,60 @@ public sealed partial class SelectiveOptimization : pb::IMessageField number for the "conversion_actions" field. - public const int ConversionActionsFieldNumber = 1; - private static readonly pb::FieldCodec _repeated_conversionActions_codec - = pb::FieldCodec.ForClassWrapper(10); - private readonly pbc::RepeatedField conversionActions_ = new pbc::RepeatedField(); + /// Field number for the "tracking_url" field. + public const int TrackingUrlFieldNumber = 1; + private static readonly pb::FieldCodec _single_trackingUrl_codec = pb::FieldCodec.ForClassWrapper(10); + private string trackingUrl_; /// - /// The selected set of conversion actions for optimizing this campaign. + /// The url used for dynamic tracking. /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public pbc::RepeatedField ConversionActions { - get { return conversionActions_; } + public string TrackingUrl { + get { return trackingUrl_; } + set { + trackingUrl_ = value; + } } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public override bool Equals(object other) { - return Equals(other as SelectiveOptimization); + return Equals(other as TrackingSetting); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public bool Equals(SelectiveOptimization other) { + public bool Equals(TrackingSetting other) { if (ReferenceEquals(other, null)) { return false; } if (ReferenceEquals(other, this)) { return true; } - if(!conversionActions_.Equals(other.conversionActions_)) return false; + if (TrackingUrl != other.TrackingUrl) return false; return Equals(_unknownFields, other._unknownFields); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public override int GetHashCode() { int hash = 1; - hash ^= conversionActions_.GetHashCode(); + if (trackingUrl_ != null) hash ^= TrackingUrl.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -3028,7 +2986,9 @@ public override string ToString() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public void WriteTo(pb::CodedOutputStream output) { - conversionActions_.WriteTo(output, _repeated_conversionActions_codec); + if (trackingUrl_ != null) { + _single_trackingUrl_codec.WriteTagAndValue(output, TrackingUrl); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -3037,7 +2997,9 @@ public void WriteTo(pb::CodedOutputStream output) { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public int CalculateSize() { int size = 0; - size += conversionActions_.CalculateSize(_repeated_conversionActions_codec); + if (trackingUrl_ != null) { + size += _single_trackingUrl_codec.CalculateSizeWithTag(TrackingUrl); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -3045,11 +3007,15 @@ public int CalculateSize() { } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public void MergeFrom(SelectiveOptimization other) { + public void MergeFrom(TrackingSetting other) { if (other == null) { return; } - conversionActions_.Add(other.conversionActions_); + if (other.trackingUrl_ != null) { + if (trackingUrl_ == null || other.TrackingUrl != "") { + TrackingUrl = other.TrackingUrl; + } + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -3062,7 +3028,10 @@ public void MergeFrom(pb::CodedInputStream input) { _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); break; case 10: { - conversionActions_.AddEntriesFrom(input, _repeated_conversionActions_codec); + string value = _single_trackingUrl_codec.Read(input); + if (trackingUrl_ == null || value != "") { + TrackingUrl = value; + } break; } } @@ -3072,19 +3041,17 @@ public void MergeFrom(pb::CodedInputStream input) { } /// - /// The setting for Shopping campaigns. Defines the universe of products that - /// can be advertised by the campaign, and how this campaign interacts with - /// other Shopping campaigns. + /// Describes how unbranded pharma ads will be displayed. /// - public sealed partial class ShoppingSetting : pb::IMessage { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new ShoppingSetting()); + public sealed partial class VanityPharma : pb::IMessage { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new VanityPharma()); private pb::UnknownFieldSet _unknownFields; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public static pb::MessageParser Parser { get { return _parser; } } + public static pb::MessageParser Parser { get { return _parser; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public static pbr::MessageDescriptor Descriptor { - get { return global::Google.Ads.GoogleAds.V2.Resources.Campaign.Descriptor.NestedTypes[6]; } + get { return global::Google.Ads.GoogleAds.V2.Resources.Campaign.Descriptor.NestedTypes[5]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -3093,127 +3060,76 @@ public sealed partial class ShoppingSetting : pb::IMessage { } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public ShoppingSetting() { + public VanityPharma() { OnConstruction(); } partial void OnConstruction(); [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public ShoppingSetting(ShoppingSetting other) : this() { - MerchantId = other.MerchantId; - SalesCountry = other.SalesCountry; - CampaignPriority = other.CampaignPriority; - EnableLocal = other.EnableLocal; + public VanityPharma(VanityPharma other) : this() { + vanityPharmaDisplayUrlMode_ = other.vanityPharmaDisplayUrlMode_; + vanityPharmaText_ = other.vanityPharmaText_; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public ShoppingSetting Clone() { - return new ShoppingSetting(this); - } - - /// Field number for the "merchant_id" field. - public const int MerchantIdFieldNumber = 1; - private static readonly pb::FieldCodec _single_merchantId_codec = pb::FieldCodec.ForStructWrapper(10); - private long? merchantId_; - /// - /// ID of the Merchant Center account. - /// This field is required for create operations. This field is immutable for - /// Shopping campaigns. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public long? MerchantId { - get { return merchantId_; } - set { - merchantId_ = value; - } - } - - - /// Field number for the "sales_country" field. - public const int SalesCountryFieldNumber = 2; - private static readonly pb::FieldCodec _single_salesCountry_codec = pb::FieldCodec.ForClassWrapper(18); - private string salesCountry_; - /// - /// Sales country of products to include in the campaign. - /// This field is required for Shopping campaigns. This field is immutable. - /// This field is optional for non-Shopping campaigns, but it must be equal - /// to 'ZZ' if set. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public string SalesCountry { - get { return salesCountry_; } - set { - salesCountry_ = value; - } + public VanityPharma Clone() { + return new VanityPharma(this); } - - /// Field number for the "campaign_priority" field. - public const int CampaignPriorityFieldNumber = 3; - private static readonly pb::FieldCodec _single_campaignPriority_codec = pb::FieldCodec.ForStructWrapper(26); - private int? campaignPriority_; - /// - /// Priority of the campaign. Campaigns with numerically higher priorities - /// take precedence over those with lower priorities. - /// This field is required for Shopping campaigns, with values between 0 and - /// 2, inclusive. - /// This field is optional for Smart Shopping campaigns, but must be equal to - /// 3 if set. + /// Field number for the "vanity_pharma_display_url_mode" field. + public const int VanityPharmaDisplayUrlModeFieldNumber = 1; + private global::Google.Ads.GoogleAds.V2.Enums.VanityPharmaDisplayUrlModeEnum.Types.VanityPharmaDisplayUrlMode vanityPharmaDisplayUrlMode_ = 0; + /// + /// The display mode for vanity pharma URLs. /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public int? CampaignPriority { - get { return campaignPriority_; } + public global::Google.Ads.GoogleAds.V2.Enums.VanityPharmaDisplayUrlModeEnum.Types.VanityPharmaDisplayUrlMode VanityPharmaDisplayUrlMode { + get { return vanityPharmaDisplayUrlMode_; } set { - campaignPriority_ = value; + vanityPharmaDisplayUrlMode_ = value; } } - - /// Field number for the "enable_local" field. - public const int EnableLocalFieldNumber = 4; - private static readonly pb::FieldCodec _single_enableLocal_codec = pb::FieldCodec.ForStructWrapper(34); - private bool? enableLocal_; + /// Field number for the "vanity_pharma_text" field. + public const int VanityPharmaTextFieldNumber = 2; + private global::Google.Ads.GoogleAds.V2.Enums.VanityPharmaTextEnum.Types.VanityPharmaText vanityPharmaText_ = 0; /// - /// Whether to include local products. + /// The text that will be displayed in display URL of the text ad when + /// website description is the selected display mode for vanity pharma URLs. /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public bool? EnableLocal { - get { return enableLocal_; } + public global::Google.Ads.GoogleAds.V2.Enums.VanityPharmaTextEnum.Types.VanityPharmaText VanityPharmaText { + get { return vanityPharmaText_; } set { - enableLocal_ = value; + vanityPharmaText_ = value; } } - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public override bool Equals(object other) { - return Equals(other as ShoppingSetting); + return Equals(other as VanityPharma); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public bool Equals(ShoppingSetting other) { + public bool Equals(VanityPharma other) { if (ReferenceEquals(other, null)) { return false; } if (ReferenceEquals(other, this)) { return true; } - if (MerchantId != other.MerchantId) return false; - if (SalesCountry != other.SalesCountry) return false; - if (CampaignPriority != other.CampaignPriority) return false; - if (EnableLocal != other.EnableLocal) return false; + if (VanityPharmaDisplayUrlMode != other.VanityPharmaDisplayUrlMode) return false; + if (VanityPharmaText != other.VanityPharmaText) return false; return Equals(_unknownFields, other._unknownFields); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public override int GetHashCode() { int hash = 1; - if (merchantId_ != null) hash ^= MerchantId.GetHashCode(); - if (salesCountry_ != null) hash ^= SalesCountry.GetHashCode(); - if (campaignPriority_ != null) hash ^= CampaignPriority.GetHashCode(); - if (enableLocal_ != null) hash ^= EnableLocal.GetHashCode(); + if (VanityPharmaDisplayUrlMode != 0) hash ^= VanityPharmaDisplayUrlMode.GetHashCode(); + if (VanityPharmaText != 0) hash ^= VanityPharmaText.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -3227,17 +3143,13 @@ public override string ToString() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public void WriteTo(pb::CodedOutputStream output) { - if (merchantId_ != null) { - _single_merchantId_codec.WriteTagAndValue(output, MerchantId); - } - if (salesCountry_ != null) { - _single_salesCountry_codec.WriteTagAndValue(output, SalesCountry); - } - if (campaignPriority_ != null) { - _single_campaignPriority_codec.WriteTagAndValue(output, CampaignPriority); + if (VanityPharmaDisplayUrlMode != 0) { + output.WriteRawTag(8); + output.WriteEnum((int) VanityPharmaDisplayUrlMode); } - if (enableLocal_ != null) { - _single_enableLocal_codec.WriteTagAndValue(output, EnableLocal); + if (VanityPharmaText != 0) { + output.WriteRawTag(16); + output.WriteEnum((int) VanityPharmaText); } if (_unknownFields != null) { _unknownFields.WriteTo(output); @@ -3247,17 +3159,11 @@ public void WriteTo(pb::CodedOutputStream output) { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public int CalculateSize() { int size = 0; - if (merchantId_ != null) { - size += _single_merchantId_codec.CalculateSizeWithTag(MerchantId); - } - if (salesCountry_ != null) { - size += _single_salesCountry_codec.CalculateSizeWithTag(SalesCountry); - } - if (campaignPriority_ != null) { - size += _single_campaignPriority_codec.CalculateSizeWithTag(CampaignPriority); + if (VanityPharmaDisplayUrlMode != 0) { + size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) VanityPharmaDisplayUrlMode); } - if (enableLocal_ != null) { - size += _single_enableLocal_codec.CalculateSizeWithTag(EnableLocal); + if (VanityPharmaText != 0) { + size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) VanityPharmaText); } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); @@ -3266,29 +3172,15 @@ public int CalculateSize() { } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public void MergeFrom(ShoppingSetting other) { + public void MergeFrom(VanityPharma other) { if (other == null) { return; } - if (other.merchantId_ != null) { - if (merchantId_ == null || other.MerchantId != 0L) { - MerchantId = other.MerchantId; - } - } - if (other.salesCountry_ != null) { - if (salesCountry_ == null || other.SalesCountry != "") { - SalesCountry = other.SalesCountry; - } - } - if (other.campaignPriority_ != null) { - if (campaignPriority_ == null || other.CampaignPriority != 0) { - CampaignPriority = other.CampaignPriority; - } + if (other.VanityPharmaDisplayUrlMode != 0) { + VanityPharmaDisplayUrlMode = other.VanityPharmaDisplayUrlMode; } - if (other.enableLocal_ != null) { - if (enableLocal_ == null || other.EnableLocal != false) { - EnableLocal = other.EnableLocal; - } + if (other.VanityPharmaText != 0) { + VanityPharmaText = other.VanityPharmaText; } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -3301,32 +3193,12 @@ public void MergeFrom(pb::CodedInputStream input) { default: _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); break; - case 10: { - long? value = _single_merchantId_codec.Read(input); - if (merchantId_ == null || value != 0L) { - MerchantId = value; - } - break; - } - case 18: { - string value = _single_salesCountry_codec.Read(input); - if (salesCountry_ == null || value != "") { - SalesCountry = value; - } - break; - } - case 26: { - int? value = _single_campaignPriority_codec.Read(input); - if (campaignPriority_ == null || value != 0) { - CampaignPriority = value; - } + case 8: { + VanityPharmaDisplayUrlMode = (global::Google.Ads.GoogleAds.V2.Enums.VanityPharmaDisplayUrlModeEnum.Types.VanityPharmaDisplayUrlMode) input.ReadEnum(); break; } - case 34: { - bool? value = _single_enableLocal_codec.Read(input); - if (enableLocal_ == null || value != false) { - EnableLocal = value; - } + case 16: { + VanityPharmaText = (global::Google.Ads.GoogleAds.V2.Enums.VanityPharmaTextEnum.Types.VanityPharmaText) input.ReadEnum(); break; } } @@ -3346,7 +3218,7 @@ public sealed partial class GeoTargetTypeSetting : pb::IMessage + /// Selective optimization setting for this campaign, which includes a set of + /// conversion actions to optimize this campaign towards. + /// + public sealed partial class SelectiveOptimization : pb::IMessage { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new SelectiveOptimization()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pbr::MessageDescriptor Descriptor { + get { return global::Google.Ads.GoogleAds.V2.Resources.Campaign.Descriptor.NestedTypes[7]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public SelectiveOptimization() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public SelectiveOptimization(SelectiveOptimization other) : this() { + conversionActions_ = other.conversionActions_.Clone(); + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public SelectiveOptimization Clone() { + return new SelectiveOptimization(this); + } + + /// Field number for the "conversion_actions" field. + public const int ConversionActionsFieldNumber = 1; + private static readonly pb::FieldCodec _repeated_conversionActions_codec + = pb::FieldCodec.ForClassWrapper(10); + private readonly pbc::RepeatedField conversionActions_ = new pbc::RepeatedField(); + /// + /// The selected set of conversion actions for optimizing this campaign. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField ConversionActions { + get { return conversionActions_; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override bool Equals(object other) { + return Equals(other as SelectiveOptimization); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Equals(SelectiveOptimization other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if(!conversionActions_.Equals(other.conversionActions_)) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override int GetHashCode() { + int hash = 1; + hash ^= conversionActions_.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void WriteTo(pb::CodedOutputStream output) { + conversionActions_.WriteTo(output, _repeated_conversionActions_codec); + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CalculateSize() { + int size = 0; + size += conversionActions_.CalculateSize(_repeated_conversionActions_codec); + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(SelectiveOptimization other) { + if (other == null) { + return; + } + conversionActions_.Add(other.conversionActions_); + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(pb::CodedInputStream input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + conversionActions_.AddEntriesFrom(input, _repeated_conversionActions_codec); + break; + } + } + } + } + + } + /// /// Campaign level settings for App Campaigns. /// diff --git a/src/V2/Stubs/CampaignCriterion.cs b/src/V2/Stubs/CampaignCriterion.cs index 7df3ebd90..720ec0f0f 100644 --- a/src/V2/Stubs/CampaignCriterion.cs +++ b/src/V2/Stubs/CampaignCriterion.cs @@ -31,7 +31,7 @@ static CampaignCriterionReflection() { "Z25fY3JpdGVyaW9uX3N0YXR1cy5wcm90bxoyZ29vZ2xlL2Fkcy9nb29nbGVh", "ZHMvdjIvZW51bXMvY3JpdGVyaW9uX3R5cGUucHJvdG8aHmdvb2dsZS9wcm90", "b2J1Zi93cmFwcGVycy5wcm90bxocZ29vZ2xlL2FwaS9hbm5vdGF0aW9ucy5w", - "cm90byL1EQoRQ2FtcGFpZ25Dcml0ZXJpb24SFQoNcmVzb3VyY2VfbmFtZRgB", + "cm90byLEEgoRQ2FtcGFpZ25Dcml0ZXJpb24SFQoNcmVzb3VyY2VfbmFtZRgB", "IAEoCRIuCghjYW1wYWlnbhgEIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJp", "bmdWYWx1ZRIxCgxjcml0ZXJpb25faWQYBSABKAsyGy5nb29nbGUucHJvdG9i", "dWYuSW50NjRWYWx1ZRIxCgxiaWRfbW9kaWZpZXIYDiABKAsyGy5nb29nbGUu", @@ -81,18 +81,19 @@ static CampaignCriterionReflection() { "Z1N5c3RlbVZlcnNpb25JbmZvSAASSQoNbW9iaWxlX2RldmljZRghIAEoCzIw", "Lmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLmNvbW1vbi5Nb2JpbGVEZXZpY2VJ", "bmZvSAASSwoObG9jYXRpb25fZ3JvdXAYIiABKAsyMS5nb29nbGUuYWRzLmdv", - "b2dsZWFkcy52Mi5jb21tb24uTG9jYXRpb25Hcm91cEluZm9IAEILCgljcml0", - "ZXJpb25CgwIKJWNvbS5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5yZXNvdXJj", - "ZXNCFkNhbXBhaWduQ3JpdGVyaW9uUHJvdG9QAVpKZ29vZ2xlLmdvbGFuZy5v", - "cmcvZ2VucHJvdG8vZ29vZ2xlYXBpcy9hZHMvZ29vZ2xlYWRzL3YyL3Jlc291", - "cmNlcztyZXNvdXJjZXOiAgNHQUGqAiFHb29nbGUuQWRzLkdvb2dsZUFkcy5W", - "Mi5SZXNvdXJjZXPKAiFHb29nbGVcQWRzXEdvb2dsZUFkc1xWMlxSZXNvdXJj", - "ZXPqAiVHb29nbGU6OkFkczo6R29vZ2xlQWRzOjpWMjo6UmVzb3VyY2VzYgZw", - "cm90bzM=")); + "b2dsZWFkcy52Mi5jb21tb24uTG9jYXRpb25Hcm91cEluZm9IABJNCg9jdXN0", + "b21fYWZmaW5pdHkYJCABKAsyMi5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5j", + "b21tb24uQ3VzdG9tQWZmaW5pdHlJbmZvSABCCwoJY3JpdGVyaW9uQoMCCiVj", + "b20uZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIucmVzb3VyY2VzQhZDYW1wYWln", + "bkNyaXRlcmlvblByb3RvUAFaSmdvb2dsZS5nb2xhbmcub3JnL2dlbnByb3Rv", + "L2dvb2dsZWFwaXMvYWRzL2dvb2dsZWFkcy92Mi9yZXNvdXJjZXM7cmVzb3Vy", + "Y2VzogIDR0FBqgIhR29vZ2xlLkFkcy5Hb29nbGVBZHMuVjIuUmVzb3VyY2Vz", + "ygIhR29vZ2xlXEFkc1xHb29nbGVBZHNcVjJcUmVzb3VyY2Vz6gIlR29vZ2xl", + "OjpBZHM6Okdvb2dsZUFkczo6VjI6OlJlc291cmNlc2IGcHJvdG8z")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { global::Google.Ads.GoogleAds.V2.Common.CriteriaReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Enums.CampaignCriterionStatusReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Enums.CriterionTypeReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.WrappersReflection.Descriptor, global::Google.Api.AnnotationsReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { - new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Resources.CampaignCriterion), global::Google.Ads.GoogleAds.V2.Resources.CampaignCriterion.Parser, new[]{ "ResourceName", "Campaign", "CriterionId", "BidModifier", "Negative", "Type", "Status", "Keyword", "Placement", "MobileAppCategory", "MobileApplication", "Location", "Device", "AdSchedule", "AgeRange", "Gender", "IncomeRange", "ParentalStatus", "UserList", "YoutubeVideo", "YoutubeChannel", "Proximity", "Topic", "ListingScope", "Language", "IpBlock", "ContentLabel", "Carrier", "UserInterest", "Webpage", "OperatingSystemVersion", "MobileDevice", "LocationGroup" }, new[]{ "Criterion" }, null, null) + new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Resources.CampaignCriterion), global::Google.Ads.GoogleAds.V2.Resources.CampaignCriterion.Parser, new[]{ "ResourceName", "Campaign", "CriterionId", "BidModifier", "Negative", "Type", "Status", "Keyword", "Placement", "MobileAppCategory", "MobileApplication", "Location", "Device", "AdSchedule", "AgeRange", "Gender", "IncomeRange", "ParentalStatus", "UserList", "YoutubeVideo", "YoutubeChannel", "Proximity", "Topic", "ListingScope", "Language", "IpBlock", "ContentLabel", "Carrier", "UserInterest", "Webpage", "OperatingSystemVersion", "MobileDevice", "LocationGroup", "CustomAffinity" }, new[]{ "Criterion" }, null, null) })); } #endregion @@ -213,6 +214,9 @@ public CampaignCriterion(CampaignCriterion other) : this() { case CriterionOneofCase.LocationGroup: LocationGroup = other.LocationGroup.Clone(); break; + case CriterionOneofCase.CustomAffinity: + CustomAffinity = other.CustomAffinity.Clone(); + break; } _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); @@ -700,6 +704,20 @@ public bool? Negative { } } + /// Field number for the "custom_affinity" field. + public const int CustomAffinityFieldNumber = 36; + /// + /// Custom Affinity. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public global::Google.Ads.GoogleAds.V2.Common.CustomAffinityInfo CustomAffinity { + get { return criterionCase_ == CriterionOneofCase.CustomAffinity ? (global::Google.Ads.GoogleAds.V2.Common.CustomAffinityInfo) criterion_ : null; } + set { + criterion_ = value; + criterionCase_ = value == null ? CriterionOneofCase.None : CriterionOneofCase.CustomAffinity; + } + } + private object criterion_; /// Enum of possible cases for the "criterion" oneof. public enum CriterionOneofCase { @@ -730,6 +748,7 @@ public enum CriterionOneofCase { OperatingSystemVersion = 32, MobileDevice = 33, LocationGroup = 34, + CustomAffinity = 36, } private CriterionOneofCase criterionCase_ = CriterionOneofCase.None; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -789,6 +808,7 @@ public bool Equals(CampaignCriterion other) { if (!object.Equals(OperatingSystemVersion, other.OperatingSystemVersion)) return false; if (!object.Equals(MobileDevice, other.MobileDevice)) return false; if (!object.Equals(LocationGroup, other.LocationGroup)) return false; + if (!object.Equals(CustomAffinity, other.CustomAffinity)) return false; if (CriterionCase != other.CriterionCase) return false; return Equals(_unknownFields, other._unknownFields); } @@ -829,6 +849,7 @@ public override int GetHashCode() { if (criterionCase_ == CriterionOneofCase.OperatingSystemVersion) hash ^= OperatingSystemVersion.GetHashCode(); if (criterionCase_ == CriterionOneofCase.MobileDevice) hash ^= MobileDevice.GetHashCode(); if (criterionCase_ == CriterionOneofCase.LocationGroup) hash ^= LocationGroup.GetHashCode(); + if (criterionCase_ == CriterionOneofCase.CustomAffinity) hash ^= CustomAffinity.GetHashCode(); hash ^= (int) criterionCase_; if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); @@ -971,6 +992,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(152, 2); output.WriteEnum((int) Status); } + if (criterionCase_ == CriterionOneofCase.CustomAffinity) { + output.WriteRawTag(162, 2); + output.WriteMessage(CustomAffinity); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -1078,6 +1103,9 @@ public int CalculateSize() { if (criterionCase_ == CriterionOneofCase.LocationGroup) { size += 2 + pb::CodedOutputStream.ComputeMessageSize(LocationGroup); } + if (criterionCase_ == CriterionOneofCase.CustomAffinity) { + size += 2 + pb::CodedOutputStream.ComputeMessageSize(CustomAffinity); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -1275,6 +1303,12 @@ public void MergeFrom(CampaignCriterion other) { } LocationGroup.MergeFrom(other.LocationGroup); break; + case CriterionOneofCase.CustomAffinity: + if (CustomAffinity == null) { + CustomAffinity = new global::Google.Ads.GoogleAds.V2.Common.CustomAffinityInfo(); + } + CustomAffinity.MergeFrom(other.CustomAffinity); + break; } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); @@ -1562,6 +1596,15 @@ public void MergeFrom(pb::CodedInputStream input) { Status = (global::Google.Ads.GoogleAds.V2.Enums.CampaignCriterionStatusEnum.Types.CampaignCriterionStatus) input.ReadEnum(); break; } + case 290: { + global::Google.Ads.GoogleAds.V2.Common.CustomAffinityInfo subBuilder = new global::Google.Ads.GoogleAds.V2.Common.CustomAffinityInfo(); + if (criterionCase_ == CriterionOneofCase.CustomAffinity) { + subBuilder.MergeFrom(CustomAffinity); + } + input.ReadMessage(subBuilder); + CustomAffinity = subBuilder; + break; + } } } } diff --git a/src/V2/Stubs/CustomerClient.cs b/src/V2/Stubs/CustomerClient.cs index cc1ef8fcf..c914e1a3a 100644 --- a/src/V2/Stubs/CustomerClient.cs +++ b/src/V2/Stubs/CustomerClient.cs @@ -27,21 +27,27 @@ static CustomerClientReflection() { "Cjdnb29nbGUvYWRzL2dvb2dsZWFkcy92Mi9yZXNvdXJjZXMvY3VzdG9tZXJf", "Y2xpZW50LnByb3RvEiFnb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5yZXNvdXJj", "ZXMaHmdvb2dsZS9wcm90b2J1Zi93cmFwcGVycy5wcm90bxocZ29vZ2xlL2Fw", - "aS9hbm5vdGF0aW9ucy5wcm90byK2AQoOQ3VzdG9tZXJDbGllbnQSFQoNcmVz", + "aS9hbm5vdGF0aW9ucy5wcm90byLcAwoOQ3VzdG9tZXJDbGllbnQSFQoNcmVz", "b3VyY2VfbmFtZRgBIAEoCRI1Cg9jbGllbnRfY3VzdG9tZXIYAyABKAsyHC5n", "b29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWUSKgoGaGlkZGVuGAQgASgLMhou", "Z29vZ2xlLnByb3RvYnVmLkJvb2xWYWx1ZRIqCgVsZXZlbBgFIAEoCzIbLmdv", - "b2dsZS5wcm90b2J1Zi5JbnQ2NFZhbHVlQoACCiVjb20uZ29vZ2xlLmFkcy5n", - "b29nbGVhZHMudjIucmVzb3VyY2VzQhNDdXN0b21lckNsaWVudFByb3RvUAFa", - "Smdvb2dsZS5nb2xhbmcub3JnL2dlbnByb3RvL2dvb2dsZWFwaXMvYWRzL2dv", - "b2dsZWFkcy92Mi9yZXNvdXJjZXM7cmVzb3VyY2VzogIDR0FBqgIhR29vZ2xl", - "LkFkcy5Hb29nbGVBZHMuVjIuUmVzb3VyY2VzygIhR29vZ2xlXEFkc1xHb29n", - "bGVBZHNcVjJcUmVzb3VyY2Vz6gIlR29vZ2xlOjpBZHM6Okdvb2dsZUFkczo6", - "VjI6OlJlc291cmNlc2IGcHJvdG8z")); + "b2dsZS5wcm90b2J1Zi5JbnQ2NFZhbHVlEi8KCXRpbWVfem9uZRgGIAEoCzIc", + "Lmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRIwCgx0ZXN0X2FjY291bnQY", + "ByABKAsyGi5nb29nbGUucHJvdG9idWYuQm9vbFZhbHVlEisKB21hbmFnZXIY", + "CCABKAsyGi5nb29nbGUucHJvdG9idWYuQm9vbFZhbHVlEjYKEGRlc2NyaXB0", + "aXZlX25hbWUYCSABKAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWUS", + "MwoNY3VycmVuY3lfY29kZRgKIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJp", + "bmdWYWx1ZRInCgJpZBgLIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQ2NFZh", + "bHVlQoACCiVjb20uZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIucmVzb3VyY2Vz", + "QhNDdXN0b21lckNsaWVudFByb3RvUAFaSmdvb2dsZS5nb2xhbmcub3JnL2dl", + "bnByb3RvL2dvb2dsZWFwaXMvYWRzL2dvb2dsZWFkcy92Mi9yZXNvdXJjZXM7", + "cmVzb3VyY2VzogIDR0FBqgIhR29vZ2xlLkFkcy5Hb29nbGVBZHMuVjIuUmVz", + "b3VyY2VzygIhR29vZ2xlXEFkc1xHb29nbGVBZHNcVjJcUmVzb3VyY2Vz6gIl", + "R29vZ2xlOjpBZHM6Okdvb2dsZUFkczo6VjI6OlJlc291cmNlc2IGcHJvdG8z")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { global::Google.Protobuf.WellKnownTypes.WrappersReflection.Descriptor, global::Google.Api.AnnotationsReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { - new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Resources.CustomerClient), global::Google.Ads.GoogleAds.V2.Resources.CustomerClient.Parser, new[]{ "ResourceName", "ClientCustomer", "Hidden", "Level" }, null, null, null) + new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Resources.CustomerClient), global::Google.Ads.GoogleAds.V2.Resources.CustomerClient.Parser, new[]{ "ResourceName", "ClientCustomer", "Hidden", "Level", "TimeZone", "TestAccount", "Manager", "DescriptiveName", "CurrencyCode", "Id" }, null, null, null) })); } #endregion @@ -82,6 +88,12 @@ public CustomerClient(CustomerClient other) : this() { ClientCustomer = other.ClientCustomer; Hidden = other.Hidden; Level = other.Level; + TimeZone = other.TimeZone; + TestAccount = other.TestAccount; + Manager = other.Manager; + DescriptiveName = other.DescriptiveName; + CurrencyCode = other.CurrencyCode; + Id = other.Id; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -158,6 +170,103 @@ public long? Level { } + /// Field number for the "time_zone" field. + public const int TimeZoneFieldNumber = 6; + private static readonly pb::FieldCodec _single_timeZone_codec = pb::FieldCodec.ForClassWrapper(50); + private string timeZone_; + /// + /// Common Locale Data Repository (CLDR) string representation of the + /// time zone of the client, e.g. America/Los_Angeles. Read only. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public string TimeZone { + get { return timeZone_; } + set { + timeZone_ = value; + } + } + + + /// Field number for the "test_account" field. + public const int TestAccountFieldNumber = 7; + private static readonly pb::FieldCodec _single_testAccount_codec = pb::FieldCodec.ForStructWrapper(58); + private bool? testAccount_; + /// + /// Identifies if the client is a test account. Read only. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool? TestAccount { + get { return testAccount_; } + set { + testAccount_ = value; + } + } + + + /// Field number for the "manager" field. + public const int ManagerFieldNumber = 8; + private static readonly pb::FieldCodec _single_manager_codec = pb::FieldCodec.ForStructWrapper(66); + private bool? manager_; + /// + /// Identifies if the client is a manager. Read only. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool? Manager { + get { return manager_; } + set { + manager_ = value; + } + } + + + /// Field number for the "descriptive_name" field. + public const int DescriptiveNameFieldNumber = 9; + private static readonly pb::FieldCodec _single_descriptiveName_codec = pb::FieldCodec.ForClassWrapper(74); + private string descriptiveName_; + /// + /// Descriptive name for the client. Read only. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public string DescriptiveName { + get { return descriptiveName_; } + set { + descriptiveName_ = value; + } + } + + + /// Field number for the "currency_code" field. + public const int CurrencyCodeFieldNumber = 10; + private static readonly pb::FieldCodec _single_currencyCode_codec = pb::FieldCodec.ForClassWrapper(82); + private string currencyCode_; + /// + /// Currency code (e.g. 'USD', 'EUR') for the client. Read only. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public string CurrencyCode { + get { return currencyCode_; } + set { + currencyCode_ = value; + } + } + + + /// Field number for the "id" field. + public const int IdFieldNumber = 11; + private static readonly pb::FieldCodec _single_id_codec = pb::FieldCodec.ForStructWrapper(90); + private long? id_; + /// + /// The ID of the client customer. Read only. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public long? Id { + get { return id_; } + set { + id_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public override bool Equals(object other) { return Equals(other as CustomerClient); @@ -175,6 +284,12 @@ public bool Equals(CustomerClient other) { if (ClientCustomer != other.ClientCustomer) return false; if (Hidden != other.Hidden) return false; if (Level != other.Level) return false; + if (TimeZone != other.TimeZone) return false; + if (TestAccount != other.TestAccount) return false; + if (Manager != other.Manager) return false; + if (DescriptiveName != other.DescriptiveName) return false; + if (CurrencyCode != other.CurrencyCode) return false; + if (Id != other.Id) return false; return Equals(_unknownFields, other._unknownFields); } @@ -185,6 +300,12 @@ public override int GetHashCode() { if (clientCustomer_ != null) hash ^= ClientCustomer.GetHashCode(); if (hidden_ != null) hash ^= Hidden.GetHashCode(); if (level_ != null) hash ^= Level.GetHashCode(); + if (timeZone_ != null) hash ^= TimeZone.GetHashCode(); + if (testAccount_ != null) hash ^= TestAccount.GetHashCode(); + if (manager_ != null) hash ^= Manager.GetHashCode(); + if (descriptiveName_ != null) hash ^= DescriptiveName.GetHashCode(); + if (currencyCode_ != null) hash ^= CurrencyCode.GetHashCode(); + if (id_ != null) hash ^= Id.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -211,6 +332,24 @@ public void WriteTo(pb::CodedOutputStream output) { if (level_ != null) { _single_level_codec.WriteTagAndValue(output, Level); } + if (timeZone_ != null) { + _single_timeZone_codec.WriteTagAndValue(output, TimeZone); + } + if (testAccount_ != null) { + _single_testAccount_codec.WriteTagAndValue(output, TestAccount); + } + if (manager_ != null) { + _single_manager_codec.WriteTagAndValue(output, Manager); + } + if (descriptiveName_ != null) { + _single_descriptiveName_codec.WriteTagAndValue(output, DescriptiveName); + } + if (currencyCode_ != null) { + _single_currencyCode_codec.WriteTagAndValue(output, CurrencyCode); + } + if (id_ != null) { + _single_id_codec.WriteTagAndValue(output, Id); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -231,6 +370,24 @@ public int CalculateSize() { if (level_ != null) { size += _single_level_codec.CalculateSizeWithTag(Level); } + if (timeZone_ != null) { + size += _single_timeZone_codec.CalculateSizeWithTag(TimeZone); + } + if (testAccount_ != null) { + size += _single_testAccount_codec.CalculateSizeWithTag(TestAccount); + } + if (manager_ != null) { + size += _single_manager_codec.CalculateSizeWithTag(Manager); + } + if (descriptiveName_ != null) { + size += _single_descriptiveName_codec.CalculateSizeWithTag(DescriptiveName); + } + if (currencyCode_ != null) { + size += _single_currencyCode_codec.CalculateSizeWithTag(CurrencyCode); + } + if (id_ != null) { + size += _single_id_codec.CalculateSizeWithTag(Id); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -260,6 +417,36 @@ public void MergeFrom(CustomerClient other) { Level = other.Level; } } + if (other.timeZone_ != null) { + if (timeZone_ == null || other.TimeZone != "") { + TimeZone = other.TimeZone; + } + } + if (other.testAccount_ != null) { + if (testAccount_ == null || other.TestAccount != false) { + TestAccount = other.TestAccount; + } + } + if (other.manager_ != null) { + if (manager_ == null || other.Manager != false) { + Manager = other.Manager; + } + } + if (other.descriptiveName_ != null) { + if (descriptiveName_ == null || other.DescriptiveName != "") { + DescriptiveName = other.DescriptiveName; + } + } + if (other.currencyCode_ != null) { + if (currencyCode_ == null || other.CurrencyCode != "") { + CurrencyCode = other.CurrencyCode; + } + } + if (other.id_ != null) { + if (id_ == null || other.Id != 0L) { + Id = other.Id; + } + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -296,6 +483,48 @@ public void MergeFrom(pb::CodedInputStream input) { } break; } + case 50: { + string value = _single_timeZone_codec.Read(input); + if (timeZone_ == null || value != "") { + TimeZone = value; + } + break; + } + case 58: { + bool? value = _single_testAccount_codec.Read(input); + if (testAccount_ == null || value != false) { + TestAccount = value; + } + break; + } + case 66: { + bool? value = _single_manager_codec.Read(input); + if (manager_ == null || value != false) { + Manager = value; + } + break; + } + case 74: { + string value = _single_descriptiveName_codec.Read(input); + if (descriptiveName_ == null || value != "") { + DescriptiveName = value; + } + break; + } + case 82: { + string value = _single_currencyCode_codec.Read(input); + if (currencyCode_ == null || value != "") { + CurrencyCode = value; + } + break; + } + case 90: { + long? value = _single_id_codec.Read(input); + if (id_ == null || value != 0L) { + Id = value; + } + break; + } } } } diff --git a/src/V2/Stubs/Errors.cs b/src/V2/Stubs/Errors.cs index 63d5622e2..1097e5e4c 100644 --- a/src/V2/Stubs/Errors.cs +++ b/src/V2/Stubs/Errors.cs @@ -143,304 +143,308 @@ static ErrorsReflection() { "aW9uX2Vycm9yLnByb3RvGjBnb29nbGUvYWRzL2dvb2dsZWFkcy92Mi9lcnJv", "cnMvcXVlcnlfZXJyb3IucHJvdG8aMGdvb2dsZS9hZHMvZ29vZ2xlYWRzL3Yy", "L2Vycm9ycy9xdW90YV9lcnJvci5wcm90bxowZ29vZ2xlL2Fkcy9nb29nbGVh", - "ZHMvdjIvZXJyb3JzL3JhbmdlX2Vycm9yLnByb3RvGjlnb29nbGUvYWRzL2dv", - "b2dsZWFkcy92Mi9lcnJvcnMvcmVjb21tZW5kYXRpb25fZXJyb3IucHJvdG8a", - "Nmdvb2dsZS9hZHMvZ29vZ2xlYWRzL3YyL2Vycm9ycy9yZWdpb25fY29kZV9l", - "cnJvci5wcm90bxoyZ29vZ2xlL2Fkcy9nb29nbGVhZHMvdjIvZXJyb3JzL3Jl", - "cXVlc3RfZXJyb3IucHJvdG8aQWdvb2dsZS9hZHMvZ29vZ2xlYWRzL3YyL2Vy", - "cm9ycy9yZXNvdXJjZV9hY2Nlc3NfZGVuaWVkX2Vycm9yLnByb3RvGkhnb29n", - "bGUvYWRzL2dvb2dsZWFkcy92Mi9lcnJvcnMvcmVzb3VyY2VfY291bnRfbGlt", - "aXRfZXhjZWVkZWRfZXJyb3IucHJvdG8aMmdvb2dsZS9hZHMvZ29vZ2xlYWRz", - "L3YyL2Vycm9ycy9zZXR0aW5nX2Vycm9yLnByb3RvGjtnb29nbGUvYWRzL2dv", - "b2dsZWFkcy92Mi9lcnJvcnMvc2hhcmVkX2NyaXRlcmlvbl9lcnJvci5wcm90", - "bxo1Z29vZ2xlL2Fkcy9nb29nbGVhZHMvdjIvZXJyb3JzL3NoYXJlZF9zZXRf", + "ZHMvdjIvZXJyb3JzL3JhbmdlX2Vycm9yLnByb3RvGjVnb29nbGUvYWRzL2dv", + "b2dsZWFkcy92Mi9lcnJvcnMvcmVhY2hfcGxhbl9lcnJvci5wcm90bxo5Z29v", + "Z2xlL2Fkcy9nb29nbGVhZHMvdjIvZXJyb3JzL3JlY29tbWVuZGF0aW9uX2Vy", + "cm9yLnByb3RvGjZnb29nbGUvYWRzL2dvb2dsZWFkcy92Mi9lcnJvcnMvcmVn", + "aW9uX2NvZGVfZXJyb3IucHJvdG8aMmdvb2dsZS9hZHMvZ29vZ2xlYWRzL3Yy", + "L2Vycm9ycy9yZXF1ZXN0X2Vycm9yLnByb3RvGkFnb29nbGUvYWRzL2dvb2ds", + "ZWFkcy92Mi9lcnJvcnMvcmVzb3VyY2VfYWNjZXNzX2RlbmllZF9lcnJvci5w", + "cm90bxpIZ29vZ2xlL2Fkcy9nb29nbGVhZHMvdjIvZXJyb3JzL3Jlc291cmNl", + "X2NvdW50X2xpbWl0X2V4Y2VlZGVkX2Vycm9yLnByb3RvGjJnb29nbGUvYWRz", + "L2dvb2dsZWFkcy92Mi9lcnJvcnMvc2V0dGluZ19lcnJvci5wcm90bxo7Z29v", + "Z2xlL2Fkcy9nb29nbGVhZHMvdjIvZXJyb3JzL3NoYXJlZF9jcml0ZXJpb25f", "ZXJyb3IucHJvdG8aNWdvb2dsZS9hZHMvZ29vZ2xlYWRzL3YyL2Vycm9ycy9z", - "aXplX2xpbWl0X2Vycm9yLnByb3RvGjhnb29nbGUvYWRzL2dvb2dsZWFkcy92", - "Mi9lcnJvcnMvc3RyaW5nX2Zvcm1hdF9lcnJvci5wcm90bxo4Z29vZ2xlL2Fk", - "cy9nb29nbGVhZHMvdjIvZXJyb3JzL3N0cmluZ19sZW5ndGhfZXJyb3IucHJv", - "dG8aNGdvb2dsZS9hZHMvZ29vZ2xlYWRzL3YyL2Vycm9ycy91cmxfZmllbGRf", - "ZXJyb3IucHJvdG8aNGdvb2dsZS9hZHMvZ29vZ2xlYWRzL3YyL2Vycm9ycy91", - "c2VyX2xpc3RfZXJyb3IucHJvdG8aRWdvb2dsZS9hZHMvZ29vZ2xlYWRzL3Yy", - "L2Vycm9ycy95b3V0dWJlX3ZpZGVvX3JlZ2lzdHJhdGlvbl9lcnJvci5wcm90", - "bxoeZ29vZ2xlL3Byb3RvYnVmL3dyYXBwZXJzLnByb3RvGhxnb29nbGUvYXBp", - "L2Fubm90YXRpb25zLnByb3RvIlIKEEdvb2dsZUFkc0ZhaWx1cmUSPgoGZXJy", - "b3JzGAEgAygLMi4uZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuZXJyb3JzLkdv", - "b2dsZUFkc0Vycm9yIpgCCg5Hb29nbGVBZHNFcnJvchI9CgplcnJvcl9jb2Rl", - "GAEgASgLMikuZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuZXJyb3JzLkVycm9y", - "Q29kZRIPCgdtZXNzYWdlGAIgASgJEjYKB3RyaWdnZXIYAyABKAsyJS5nb29n", - "bGUuYWRzLmdvb2dsZWFkcy52Mi5jb21tb24uVmFsdWUSPwoIbG9jYXRpb24Y", - "BCABKAsyLS5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5lcnJvcnMuRXJyb3JM", - "b2NhdGlvbhI9CgdkZXRhaWxzGAUgASgLMiwuZ29vZ2xlLmFkcy5nb29nbGVh", - "ZHMudjIuZXJyb3JzLkVycm9yRGV0YWlscyKNVQoJRXJyb3JDb2RlElYKDXJl", - "cXVlc3RfZXJyb3IYASABKA4yPS5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5l", - "cnJvcnMuUmVxdWVzdEVycm9yRW51bS5SZXF1ZXN0RXJyb3JIABJvChZiaWRk", - "aW5nX3N0cmF0ZWd5X2Vycm9yGAIgASgOMk0uZ29vZ2xlLmFkcy5nb29nbGVh", - "ZHMudjIuZXJyb3JzLkJpZGRpbmdTdHJhdGVneUVycm9yRW51bS5CaWRkaW5n", - "U3RyYXRlZ3lFcnJvckgAEloKD3VybF9maWVsZF9lcnJvchgDIAEoDjI/Lmdv", - "b2dsZS5hZHMuZ29vZ2xlYWRzLnYyLmVycm9ycy5VcmxGaWVsZEVycm9yRW51", - "bS5VcmxGaWVsZEVycm9ySAASaQoUbGlzdF9vcGVyYXRpb25fZXJyb3IYBCAB", - "KA4ySS5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5lcnJvcnMuTGlzdE9wZXJh", - "dGlvbkVycm9yRW51bS5MaXN0T3BlcmF0aW9uRXJyb3JIABJQCgtxdWVyeV9l", - "cnJvchgFIAEoDjI5Lmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLmVycm9ycy5R", - "dWVyeUVycm9yRW51bS5RdWVyeUVycm9ySAASUwoMbXV0YXRlX2Vycm9yGAcg", - "ASgOMjsuZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuZXJyb3JzLk11dGF0ZUVy", - "cm9yRW51bS5NdXRhdGVFcnJvckgAEl0KEGZpZWxkX21hc2tfZXJyb3IYCCAB", - "KA4yQS5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5lcnJvcnMuRmllbGRNYXNr", - "RXJyb3JFbnVtLkZpZWxkTWFza0Vycm9ySAASaAoTYXV0aG9yaXphdGlvbl9l", - "cnJvchgJIAEoDjJJLmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLmVycm9ycy5B", - "dXRob3JpemF0aW9uRXJyb3JFbnVtLkF1dGhvcml6YXRpb25FcnJvckgAElkK", - "DmludGVybmFsX2Vycm9yGAogASgOMj8uZ29vZ2xlLmFkcy5nb29nbGVhZHMu", - "djIuZXJyb3JzLkludGVybmFsRXJyb3JFbnVtLkludGVybmFsRXJyb3JIABJQ", - "CgtxdW90YV9lcnJvchgLIAEoDjI5Lmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYy", - "LmVycm9ycy5RdW90YUVycm9yRW51bS5RdW90YUVycm9ySAASRwoIYWRfZXJy", - "b3IYDCABKA4yMy5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5lcnJvcnMuQWRF", - "cnJvckVudW0uQWRFcnJvckgAElcKDmFkX2dyb3VwX2Vycm9yGA0gASgOMj0u", - "Z29vZ2xlLmFkcy5nb29nbGVhZHMudjIuZXJyb3JzLkFkR3JvdXBFcnJvckVu", - "dW0uQWRHcm91cEVycm9ySAASbAoVY2FtcGFpZ25fYnVkZ2V0X2Vycm9yGA4g", - "ASgOMksuZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuZXJyb3JzLkNhbXBhaWdu", - "QnVkZ2V0RXJyb3JFbnVtLkNhbXBhaWduQnVkZ2V0RXJyb3JIABJZCg5jYW1w", - "YWlnbl9lcnJvchgPIAEoDjI/Lmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLmVy", - "cm9ycy5DYW1wYWlnbkVycm9yRW51bS5DYW1wYWlnbkVycm9ySAASawoUYXV0", - "aGVudGljYXRpb25fZXJyb3IYESABKA4ySy5nb29nbGUuYWRzLmdvb2dsZWFk", - "cy52Mi5lcnJvcnMuQXV0aGVudGljYXRpb25FcnJvckVudW0uQXV0aGVudGlj", - "YXRpb25FcnJvckgAEnMKGGFkX2dyb3VwX2NyaXRlcmlvbl9lcnJvchgSIAEo", - "DjJPLmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLmVycm9ycy5BZEdyb3VwQ3Jp", - "dGVyaW9uRXJyb3JFbnVtLkFkR3JvdXBDcml0ZXJpb25FcnJvckgAEmYKE2Fk", - "X2N1c3RvbWl6ZXJfZXJyb3IYEyABKA4yRy5nb29nbGUuYWRzLmdvb2dsZWFk", - "cy52Mi5lcnJvcnMuQWRDdXN0b21pemVyRXJyb3JFbnVtLkFkQ3VzdG9taXpl", - "ckVycm9ySAASXgoRYWRfZ3JvdXBfYWRfZXJyb3IYFSABKA4yQS5nb29nbGUu", - "YWRzLmdvb2dsZWFkcy52Mi5lcnJvcnMuQWRHcm91cEFkRXJyb3JFbnVtLkFk", - "R3JvdXBBZEVycm9ySAASXQoQYWRfc2hhcmluZ19lcnJvchgYIAEoDjJBLmdv", - "b2dsZS5hZHMuZ29vZ2xlYWRzLnYyLmVycm9ycy5BZFNoYXJpbmdFcnJvckVu", - "dW0uQWRTaGFyaW5nRXJyb3JIABJKCglhZHhfZXJyb3IYGSABKA4yNS5nb29n", - "bGUuYWRzLmdvb2dsZWFkcy52Mi5lcnJvcnMuQWR4RXJyb3JFbnVtLkFkeEVy", - "cm9ySAASUAoLYXNzZXRfZXJyb3IYayABKA4yOS5nb29nbGUuYWRzLmdvb2ds", - "ZWFkcy52Mi5lcnJvcnMuQXNzZXRFcnJvckVudW0uQXNzZXRFcnJvckgAElYK", - "DWJpZGRpbmdfZXJyb3IYGiABKA4yPS5nb29nbGUuYWRzLmdvb2dsZWFkcy52", - "Mi5lcnJvcnMuQmlkZGluZ0Vycm9yRW51bS5CaWRkaW5nRXJyb3JIABJ1Chhj", - "YW1wYWlnbl9jcml0ZXJpb25fZXJyb3IYHSABKA4yUS5nb29nbGUuYWRzLmdv", - "b2dsZWFkcy52Mi5lcnJvcnMuQ2FtcGFpZ25Dcml0ZXJpb25FcnJvckVudW0u", - "Q2FtcGFpZ25Dcml0ZXJpb25FcnJvckgAEmwKFWNvbGxlY3Rpb25fc2l6ZV9l", - "cnJvchgfIAEoDjJLLmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLmVycm9ycy5D", - "b2xsZWN0aW9uU2l6ZUVycm9yRW51bS5Db2xsZWN0aW9uU2l6ZUVycm9ySAAS", - "YwoSY291bnRyeV9jb2RlX2Vycm9yGG0gASgOMkUuZ29vZ2xlLmFkcy5nb29n", - "bGVhZHMudjIuZXJyb3JzLkNvdW50cnlDb2RlRXJyb3JFbnVtLkNvdW50cnlD", - "b2RlRXJyb3JIABJcCg9jcml0ZXJpb25fZXJyb3IYICABKA4yQS5nb29nbGUu", - "YWRzLmdvb2dsZWFkcy52Mi5lcnJvcnMuQ3JpdGVyaW9uRXJyb3JFbnVtLkNy", - "aXRlcmlvbkVycm9ySAASWQoOY3VzdG9tZXJfZXJyb3IYWiABKA4yPy5nb29n", - "bGUuYWRzLmdvb2dsZWFkcy52Mi5lcnJvcnMuQ3VzdG9tZXJFcnJvckVudW0u", - "Q3VzdG9tZXJFcnJvckgAEk0KCmRhdGVfZXJyb3IYISABKA4yNy5nb29nbGUu", - "YWRzLmdvb2dsZWFkcy52Mi5lcnJvcnMuRGF0ZUVycm9yRW51bS5EYXRlRXJy", - "b3JIABJdChBkYXRlX3JhbmdlX2Vycm9yGCIgASgOMkEuZ29vZ2xlLmFkcy5n", - "b29nbGVhZHMudjIuZXJyb3JzLkRhdGVSYW5nZUVycm9yRW51bS5EYXRlUmFu", - "Z2VFcnJvckgAElkKDmRpc3RpbmN0X2Vycm9yGCMgASgOMj8uZ29vZ2xlLmFk", - "cy5nb29nbGVhZHMudjIuZXJyb3JzLkRpc3RpbmN0RXJyb3JFbnVtLkRpc3Rp", - "bmN0RXJyb3JIABKFAQoeZmVlZF9hdHRyaWJ1dGVfcmVmZXJlbmNlX2Vycm9y", - "GCQgASgOMlsuZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuZXJyb3JzLkZlZWRB", - "dHRyaWJ1dGVSZWZlcmVuY2VFcnJvckVudW0uRmVlZEF0dHJpYnV0ZVJlZmVy", - "ZW5jZUVycm9ySAASWQoOZnVuY3Rpb25fZXJyb3IYJSABKA4yPy5nb29nbGUu", - "YWRzLmdvb2dsZWFkcy52Mi5lcnJvcnMuRnVuY3Rpb25FcnJvckVudW0uRnVu", - "Y3Rpb25FcnJvckgAEm8KFmZ1bmN0aW9uX3BhcnNpbmdfZXJyb3IYJiABKA4y", - "TS5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5lcnJvcnMuRnVuY3Rpb25QYXJz", - "aW5nRXJyb3JFbnVtLkZ1bmN0aW9uUGFyc2luZ0Vycm9ySAASRwoIaWRfZXJy", - "b3IYJyABKA4yMy5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5lcnJvcnMuSWRF", - "cnJvckVudW0uSWRFcnJvckgAElAKC2ltYWdlX2Vycm9yGCggASgOMjkuZ29v", - "Z2xlLmFkcy5nb29nbGVhZHMudjIuZXJyb3JzLkltYWdlRXJyb3JFbnVtLklt", - "YWdlRXJyb3JIABJmChNsYW5ndWFnZV9jb2RlX2Vycm9yGG4gASgOMkcuZ29v", - "Z2xlLmFkcy5nb29nbGVhZHMudjIuZXJyb3JzLkxhbmd1YWdlQ29kZUVycm9y", - "RW51bS5MYW5ndWFnZUNvZGVFcnJvckgAEmMKEm1lZGlhX2J1bmRsZV9lcnJv", - "chgqIAEoDjJFLmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLmVycm9ycy5NZWRp", - "YUJ1bmRsZUVycm9yRW51bS5NZWRpYUJ1bmRsZUVycm9ySAASYwoSbWVkaWFf", - "dXBsb2FkX2Vycm9yGHQgASgOMkUuZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIu", - "ZXJyb3JzLk1lZGlhVXBsb2FkRXJyb3JFbnVtLk1lZGlhVXBsb2FkRXJyb3JI", - "ABJdChBtZWRpYV9maWxlX2Vycm9yGFYgASgOMkEuZ29vZ2xlLmFkcy5nb29n", - "bGVhZHMudjIuZXJyb3JzLk1lZGlhRmlsZUVycm9yRW51bS5NZWRpYUZpbGVF", - "cnJvckgAEl8KEG11bHRpcGxpZXJfZXJyb3IYLCABKA4yQy5nb29nbGUuYWRz", - "Lmdvb2dsZWFkcy52Mi5lcnJvcnMuTXVsdGlwbGllckVycm9yRW51bS5NdWx0", - "aXBsaWVyRXJyb3JIABJ8ChtuZXdfcmVzb3VyY2VfY3JlYXRpb25fZXJyb3IY", - "LSABKA4yVS5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5lcnJvcnMuTmV3UmVz", - "b3VyY2VDcmVhdGlvbkVycm9yRW51bS5OZXdSZXNvdXJjZUNyZWF0aW9uRXJy", - "b3JIABJaCg9ub3RfZW1wdHlfZXJyb3IYLiABKA4yPy5nb29nbGUuYWRzLmdv", - "b2dsZWFkcy52Mi5lcnJvcnMuTm90RW1wdHlFcnJvckVudW0uTm90RW1wdHlF", - "cnJvckgAEk0KCm51bGxfZXJyb3IYLyABKA4yNy5nb29nbGUuYWRzLmdvb2ds", - "ZWFkcy52Mi5lcnJvcnMuTnVsbEVycm9yRW51bS5OdWxsRXJyb3JIABJZCg5v", - "cGVyYXRvcl9lcnJvchgwIAEoDjI/Lmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYy", - "LmVycm9ycy5PcGVyYXRvckVycm9yRW51bS5PcGVyYXRvckVycm9ySAASUAoL", - "cmFuZ2VfZXJyb3IYMSABKA4yOS5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5l", - "cnJvcnMuUmFuZ2VFcnJvckVudW0uUmFuZ2VFcnJvckgAEmsKFHJlY29tbWVu", - "ZGF0aW9uX2Vycm9yGDogASgOMksuZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIu", - "ZXJyb3JzLlJlY29tbWVuZGF0aW9uRXJyb3JFbnVtLlJlY29tbWVuZGF0aW9u", - "RXJyb3JIABJgChFyZWdpb25fY29kZV9lcnJvchgzIAEoDjJDLmdvb2dsZS5h", - "ZHMuZ29vZ2xlYWRzLnYyLmVycm9ycy5SZWdpb25Db2RlRXJyb3JFbnVtLlJl", - "Z2lvbkNvZGVFcnJvckgAElYKDXNldHRpbmdfZXJyb3IYNCABKA4yPS5nb29n", - "bGUuYWRzLmdvb2dsZWFkcy52Mi5lcnJvcnMuU2V0dGluZ0Vycm9yRW51bS5T", - "ZXR0aW5nRXJyb3JIABJmChNzdHJpbmdfZm9ybWF0X2Vycm9yGDUgASgOMkcu", - "Z29vZ2xlLmFkcy5nb29nbGVhZHMudjIuZXJyb3JzLlN0cmluZ0Zvcm1hdEVy", - "cm9yRW51bS5TdHJpbmdGb3JtYXRFcnJvckgAEmYKE3N0cmluZ19sZW5ndGhf", - "ZXJyb3IYNiABKA4yRy5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5lcnJvcnMu", - "U3RyaW5nTGVuZ3RoRXJyb3JFbnVtLlN0cmluZ0xlbmd0aEVycm9ySAASggEK", - "HW9wZXJhdGlvbl9hY2Nlc3NfZGVuaWVkX2Vycm9yGDcgASgOMlkuZ29vZ2xl", - "LmFkcy5nb29nbGVhZHMudjIuZXJyb3JzLk9wZXJhdGlvbkFjY2Vzc0Rlbmll", - "ZEVycm9yRW51bS5PcGVyYXRpb25BY2Nlc3NEZW5pZWRFcnJvckgAEn8KHHJl", - "c291cmNlX2FjY2Vzc19kZW5pZWRfZXJyb3IYOCABKA4yVy5nb29nbGUuYWRz", - "Lmdvb2dsZWFkcy52Mi5lcnJvcnMuUmVzb3VyY2VBY2Nlc3NEZW5pZWRFcnJv", - "ckVudW0uUmVzb3VyY2VBY2Nlc3NEZW5pZWRFcnJvckgAEpIBCiNyZXNvdXJj", - "ZV9jb3VudF9saW1pdF9leGNlZWRlZF9lcnJvchg5IAEoDjJjLmdvb2dsZS5h", - "ZHMuZ29vZ2xlYWRzLnYyLmVycm9ycy5SZXNvdXJjZUNvdW50TGltaXRFeGNl", - "ZWRlZEVycm9yRW51bS5SZXNvdXJjZUNvdW50TGltaXRFeGNlZWRlZEVycm9y", - "SAASiwEKIHlvdXR1YmVfdmlkZW9fcmVnaXN0cmF0aW9uX2Vycm9yGHUgASgO", - "Ml8uZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuZXJyb3JzLllvdXR1YmVWaWRl", - "b1JlZ2lzdHJhdGlvbkVycm9yRW51bS5Zb3V0dWJlVmlkZW9SZWdpc3RyYXRp", - "b25FcnJvckgAEnoKG2FkX2dyb3VwX2JpZF9tb2RpZmllcl9lcnJvchg7IAEo", - "DjJTLmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLmVycm9ycy5BZEdyb3VwQmlk", - "TW9kaWZpZXJFcnJvckVudW0uQWRHcm91cEJpZE1vZGlmaWVyRXJyb3JIABJW", - "Cg1jb250ZXh0X2Vycm9yGDwgASgOMj0uZ29vZ2xlLmFkcy5nb29nbGVhZHMu", - "djIuZXJyb3JzLkNvbnRleHRFcnJvckVudW0uQ29udGV4dEVycm9ySAASUAoL", - "ZmllbGRfZXJyb3IYPSABKA4yOS5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5l", - "cnJvcnMuRmllbGRFcnJvckVudW0uRmllbGRFcnJvckgAEl0KEHNoYXJlZF9z", - "ZXRfZXJyb3IYPiABKA4yQS5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5lcnJv", - "cnMuU2hhcmVkU2V0RXJyb3JFbnVtLlNoYXJlZFNldEVycm9ySAASbwoWc2hh", - "cmVkX2NyaXRlcmlvbl9lcnJvchg/IAEoDjJNLmdvb2dsZS5hZHMuZ29vZ2xl", - "YWRzLnYyLmVycm9ycy5TaGFyZWRDcml0ZXJpb25FcnJvckVudW0uU2hhcmVk", - "Q3JpdGVyaW9uRXJyb3JIABJ2ChljYW1wYWlnbl9zaGFyZWRfc2V0X2Vycm9y", - "GEAgASgOMlEuZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuZXJyb3JzLkNhbXBh", - "aWduU2hhcmVkU2V0RXJyb3JFbnVtLkNhbXBhaWduU2hhcmVkU2V0RXJyb3JI", - "ABJyChdjb252ZXJzaW9uX2FjdGlvbl9lcnJvchhBIAEoDjJPLmdvb2dsZS5h", - "ZHMuZ29vZ2xlYWRzLnYyLmVycm9ycy5Db252ZXJzaW9uQWN0aW9uRXJyb3JF", - "bnVtLkNvbnZlcnNpb25BY3Rpb25FcnJvckgAEpEBCiJjb252ZXJzaW9uX2Fk", - "anVzdG1lbnRfdXBsb2FkX2Vycm9yGHMgASgOMmMuZ29vZ2xlLmFkcy5nb29n", - "bGVhZHMudjIuZXJyb3JzLkNvbnZlcnNpb25BZGp1c3RtZW50VXBsb2FkRXJy", - "b3JFbnVtLkNvbnZlcnNpb25BZGp1c3RtZW50VXBsb2FkRXJyb3JIABJyChdj", - "b252ZXJzaW9uX3VwbG9hZF9lcnJvchhvIAEoDjJPLmdvb2dsZS5hZHMuZ29v", - "Z2xlYWRzLnYyLmVycm9ycy5Db252ZXJzaW9uVXBsb2FkRXJyb3JFbnVtLkNv", - "bnZlcnNpb25VcGxvYWRFcnJvckgAElMKDGhlYWRlcl9lcnJvchhCIAEoDjI7", - "Lmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLmVycm9ycy5IZWFkZXJFcnJvckVu", - "dW0uSGVhZGVyRXJyb3JIABJZCg5kYXRhYmFzZV9lcnJvchhDIAEoDjI/Lmdv", - "b2dsZS5hZHMuZ29vZ2xlYWRzLnYyLmVycm9ycy5EYXRhYmFzZUVycm9yRW51", - "bS5EYXRhYmFzZUVycm9ySAASaQoUcG9saWN5X2ZpbmRpbmdfZXJyb3IYRCAB", - "KA4ySS5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5lcnJvcnMuUG9saWN5Rmlu", - "ZGluZ0Vycm9yRW51bS5Qb2xpY3lGaW5kaW5nRXJyb3JIABJNCgplbnVtX2Vy", - "cm9yGEYgASgOMjcuZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuZXJyb3JzLkVu", - "dW1FcnJvckVudW0uRW51bUVycm9ySAASYwoSa2V5d29yZF9wbGFuX2Vycm9y", - "GEcgASgOMkUuZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuZXJyb3JzLktleXdv", - "cmRQbGFuRXJyb3JFbnVtLktleXdvcmRQbGFuRXJyb3JIABJ8ChtrZXl3b3Jk", - "X3BsYW5fY2FtcGFpZ25fZXJyb3IYSCABKA4yVS5nb29nbGUuYWRzLmdvb2ds", - "ZWFkcy52Mi5lcnJvcnMuS2V5d29yZFBsYW5DYW1wYWlnbkVycm9yRW51bS5L", - "ZXl3b3JkUGxhbkNhbXBhaWduRXJyb3JIABKSAQoja2V5d29yZF9wbGFuX25l", - "Z2F0aXZlX2tleXdvcmRfZXJyb3IYSSABKA4yYy5nb29nbGUuYWRzLmdvb2ds", - "ZWFkcy52Mi5lcnJvcnMuS2V5d29yZFBsYW5OZWdhdGl2ZUtleXdvcmRFcnJv", - "ckVudW0uS2V5d29yZFBsYW5OZWdhdGl2ZUtleXdvcmRFcnJvckgAEnoKG2tl", - "eXdvcmRfcGxhbl9hZF9ncm91cF9lcnJvchhKIAEoDjJTLmdvb2dsZS5hZHMu", - "Z29vZ2xlYWRzLnYyLmVycm9ycy5LZXl3b3JkUGxhbkFkR3JvdXBFcnJvckVu", - "dW0uS2V5d29yZFBsYW5BZEdyb3VwRXJyb3JIABJ5ChprZXl3b3JkX3BsYW5f", - "a2V5d29yZF9lcnJvchhLIAEoDjJTLmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYy", - "LmVycm9ycy5LZXl3b3JkUGxhbktleXdvcmRFcnJvckVudW0uS2V5d29yZFBs", - "YW5LZXl3b3JkRXJyb3JIABJwChdrZXl3b3JkX3BsYW5faWRlYV9lcnJvchhM", - "IAEoDjJNLmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLmVycm9ycy5LZXl3b3Jk", - "UGxhbklkZWFFcnJvckVudW0uS2V5d29yZFBsYW5JZGVhRXJyb3JIABKCAQod", - "YWNjb3VudF9idWRnZXRfcHJvcG9zYWxfZXJyb3IYTSABKA4yWS5nb29nbGUu", - "YWRzLmdvb2dsZWFkcy52Mi5lcnJvcnMuQWNjb3VudEJ1ZGdldFByb3Bvc2Fs", - "RXJyb3JFbnVtLkFjY291bnRCdWRnZXRQcm9wb3NhbEVycm9ySAASWgoPdXNl", - "cl9saXN0X2Vycm9yGE4gASgOMj8uZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIu", - "ZXJyb3JzLlVzZXJMaXN0RXJyb3JFbnVtLlVzZXJMaXN0RXJyb3JIABJmChNj", - "aGFuZ2Vfc3RhdHVzX2Vycm9yGE8gASgOMkcuZ29vZ2xlLmFkcy5nb29nbGVh", - "ZHMudjIuZXJyb3JzLkNoYW5nZVN0YXR1c0Vycm9yRW51bS5DaGFuZ2VTdGF0", - "dXNFcnJvckgAEk0KCmZlZWRfZXJyb3IYUCABKA4yNy5nb29nbGUuYWRzLmdv", - "b2dsZWFkcy52Mi5lcnJvcnMuRmVlZEVycm9yRW51bS5GZWVkRXJyb3JIABKV", - "AQokZ2VvX3RhcmdldF9jb25zdGFudF9zdWdnZXN0aW9uX2Vycm9yGFEgASgO", - "MmUuZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuZXJyb3JzLkdlb1RhcmdldENv", - "bnN0YW50U3VnZ2VzdGlvbkVycm9yRW51bS5HZW9UYXJnZXRDb25zdGFudFN1", - "Z2dlc3Rpb25FcnJvckgAEmkKFGNhbXBhaWduX2RyYWZ0X2Vycm9yGFIgASgO", - "MkkuZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuZXJyb3JzLkNhbXBhaWduRHJh", - "ZnRFcnJvckVudW0uQ2FtcGFpZ25EcmFmdEVycm9ySAASWgoPZmVlZF9pdGVt", - "X2Vycm9yGFMgASgOMj8uZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuZXJyb3Jz", - "LkZlZWRJdGVtRXJyb3JFbnVtLkZlZWRJdGVtRXJyb3JIABJQCgtsYWJlbF9l", - "cnJvchhUIAEoDjI5Lmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLmVycm9ycy5M", - "YWJlbEVycm9yRW51bS5MYWJlbEVycm9ySAASZgoTYmlsbGluZ19zZXR1cF9l", - "cnJvchhXIAEoDjJHLmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLmVycm9ycy5C", - "aWxsaW5nU2V0dXBFcnJvckVudW0uQmlsbGluZ1NldHVwRXJyb3JIABJ5Chpj", - "dXN0b21lcl9jbGllbnRfbGlua19lcnJvchhYIAEoDjJTLmdvb2dsZS5hZHMu", - "Z29vZ2xlYWRzLnYyLmVycm9ycy5DdXN0b21lckNsaWVudExpbmtFcnJvckVu", - "dW0uQ3VzdG9tZXJDbGllbnRMaW5rRXJyb3JIABJ8ChtjdXN0b21lcl9tYW5h", - "Z2VyX2xpbmtfZXJyb3IYWyABKA4yVS5nb29nbGUuYWRzLmdvb2dsZWFkcy52", - "Mi5lcnJvcnMuQ3VzdG9tZXJNYW5hZ2VyTGlua0Vycm9yRW51bS5DdXN0b21l", - "ck1hbmFnZXJMaW5rRXJyb3JIABJjChJmZWVkX21hcHBpbmdfZXJyb3IYXCAB", - "KA4yRS5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5lcnJvcnMuRmVlZE1hcHBp", - "bmdFcnJvckVudW0uRmVlZE1hcHBpbmdFcnJvckgAEmYKE2N1c3RvbWVyX2Zl", - "ZWRfZXJyb3IYXSABKA4yRy5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5lcnJv", - "cnMuQ3VzdG9tZXJGZWVkRXJyb3JFbnVtLkN1c3RvbWVyRmVlZEVycm9ySAAS", - "ZAoTYWRfZ3JvdXBfZmVlZF9lcnJvchheIAEoDjJFLmdvb2dsZS5hZHMuZ29v", - "Z2xlYWRzLnYyLmVycm9ycy5BZEdyb3VwRmVlZEVycm9yRW51bS5BZEdyb3Vw", - "RmVlZEVycm9ySAASZgoTY2FtcGFpZ25fZmVlZF9lcnJvchhgIAEoDjJHLmdv", - "b2dsZS5hZHMuZ29vZ2xlYWRzLnYyLmVycm9ycy5DYW1wYWlnbkZlZWRFcnJv", - "ckVudW0uQ2FtcGFpZ25GZWVkRXJyb3JIABJsChVjdXN0b21faW50ZXJlc3Rf", - "ZXJyb3IYYSABKA4ySy5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5lcnJvcnMu", - "Q3VzdG9tSW50ZXJlc3RFcnJvckVudW0uQ3VzdG9tSW50ZXJlc3RFcnJvckgA", - "EngKGWNhbXBhaWduX2V4cGVyaW1lbnRfZXJyb3IYYiABKA4yUy5nb29nbGUu", - "YWRzLmdvb2dsZWFkcy52Mi5lcnJvcnMuQ2FtcGFpZ25FeHBlcmltZW50RXJy", - "b3JFbnVtLkNhbXBhaWduRXhwZXJpbWVudEVycm9ySAASdgoZZXh0ZW5zaW9u", - "X2ZlZWRfaXRlbV9lcnJvchhkIAEoDjJRLmdvb2dsZS5hZHMuZ29vZ2xlYWRz", - "LnYyLmVycm9ycy5FeHRlbnNpb25GZWVkSXRlbUVycm9yRW51bS5FeHRlbnNp", - "b25GZWVkSXRlbUVycm9ySAASYwoSYWRfcGFyYW1ldGVyX2Vycm9yGGUgASgO", - "MkUuZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuZXJyb3JzLkFkUGFyYW1ldGVy", - "RXJyb3JFbnVtLkFkUGFyYW1ldGVyRXJyb3JIABJ5ChpmZWVkX2l0ZW1fdmFs", - "aWRhdGlvbl9lcnJvchhmIAEoDjJTLmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYy", - "LmVycm9ycy5GZWVkSXRlbVZhbGlkYXRpb25FcnJvckVudW0uRmVlZEl0ZW1W", - "YWxpZGF0aW9uRXJyb3JIABJyChdleHRlbnNpb25fc2V0dGluZ19lcnJvchhn", - "IAEoDjJPLmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLmVycm9ycy5FeHRlbnNp", - "b25TZXR0aW5nRXJyb3JFbnVtLkV4dGVuc2lvblNldHRpbmdFcnJvckgAEm0K", - "FmZlZWRfaXRlbV90YXJnZXRfZXJyb3IYaCABKA4ySy5nb29nbGUuYWRzLmdv", - "b2dsZWFkcy52Mi5lcnJvcnMuRmVlZEl0ZW1UYXJnZXRFcnJvckVudW0uRmVl", - "ZEl0ZW1UYXJnZXRFcnJvckgAEm8KFnBvbGljeV92aW9sYXRpb25fZXJyb3IY", - "aSABKA4yTS5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5lcnJvcnMuUG9saWN5", - "VmlvbGF0aW9uRXJyb3JFbnVtLlBvbGljeVZpb2xhdGlvbkVycm9ySAASXQoQ", - "bXV0YXRlX2pvYl9lcnJvchhsIAEoDjJBLmdvb2dsZS5hZHMuZ29vZ2xlYWRz", - "LnYyLmVycm9ycy5NdXRhdGVKb2JFcnJvckVudW0uTXV0YXRlSm9iRXJyb3JI", - "ABJsChVwYXJ0aWFsX2ZhaWx1cmVfZXJyb3IYcCABKA4ySy5nb29nbGUuYWRz", - "Lmdvb2dsZWFkcy52Mi5lcnJvcnMuUGFydGlhbEZhaWx1cmVFcnJvckVudW0u", - "UGFydGlhbEZhaWx1cmVFcnJvckgAEo4BCiFwb2xpY3lfdmFsaWRhdGlvbl9w", - "YXJhbWV0ZXJfZXJyb3IYciABKA4yYS5nb29nbGUuYWRzLmdvb2dsZWFkcy52", - "Mi5lcnJvcnMuUG9saWN5VmFsaWRhdGlvblBhcmFtZXRlckVycm9yRW51bS5Q", - "b2xpY3lWYWxpZGF0aW9uUGFyYW1ldGVyRXJyb3JIABJdChBzaXplX2xpbWl0", - "X2Vycm9yGHYgASgOMkEuZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuZXJyb3Jz", - "LlNpemVMaW1pdEVycm9yRW51bS5TaXplTGltaXRFcnJvckgAEmwKFW5vdF93", - "aGl0ZWxpc3RlZF9lcnJvchh4IAEoDjJLLmdvb2dsZS5hZHMuZ29vZ2xlYWRz", - "LnYyLmVycm9ycy5Ob3RXaGl0ZWxpc3RlZEVycm9yRW51bS5Ob3RXaGl0ZWxp", - "c3RlZEVycm9ySAASYwoSbWFuYWdlcl9saW5rX2Vycm9yGHkgASgOMkUuZ29v", - "Z2xlLmFkcy5nb29nbGVhZHMudjIuZXJyb3JzLk1hbmFnZXJMaW5rRXJyb3JF", - "bnVtLk1hbmFnZXJMaW5rRXJyb3JIABJmChNjdXJyZW5jeV9jb2RlX2Vycm9y", - "GHogASgOMkcuZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuZXJyb3JzLkN1cnJl", - "bmN5Q29kZUVycm9yRW51bS5DdXJyZW5jeUNvZGVFcnJvckgAEnIKF2FjY2Vz", - "c19pbnZpdGF0aW9uX2Vycm9yGHwgASgOMk8uZ29vZ2xlLmFkcy5nb29nbGVh", - "ZHMudjIuZXJyb3JzLkFjY2Vzc0ludml0YXRpb25FcnJvckVudW0uQWNjZXNz", - "SW52aXRhdGlvbkVycm9ySABCDAoKZXJyb3JfY29kZSLAAQoNRXJyb3JMb2Nh", - "dGlvbhJbChNmaWVsZF9wYXRoX2VsZW1lbnRzGAIgAygLMj4uZ29vZ2xlLmFk", - "cy5nb29nbGVhZHMudjIuZXJyb3JzLkVycm9yTG9jYXRpb24uRmllbGRQYXRo", - "RWxlbWVudBpSChBGaWVsZFBhdGhFbGVtZW50EhIKCmZpZWxkX25hbWUYASAB", - "KAkSKgoFaW5kZXgYAiABKAsyGy5nb29nbGUucHJvdG9idWYuSW50NjRWYWx1", - "ZSLeAQoMRXJyb3JEZXRhaWxzEh4KFnVucHVibGlzaGVkX2Vycm9yX2NvZGUY", - "ASABKAkSWAoYcG9saWN5X3Zpb2xhdGlvbl9kZXRhaWxzGAIgASgLMjYuZ29v", - "Z2xlLmFkcy5nb29nbGVhZHMudjIuZXJyb3JzLlBvbGljeVZpb2xhdGlvbkRl", - "dGFpbHMSVAoWcG9saWN5X2ZpbmRpbmdfZGV0YWlscxgDIAEoCzI0Lmdvb2ds", - "ZS5hZHMuZ29vZ2xlYWRzLnYyLmVycm9ycy5Qb2xpY3lGaW5kaW5nRGV0YWls", - "cyKzAQoWUG9saWN5VmlvbGF0aW9uRGV0YWlscxIjChtleHRlcm5hbF9wb2xp", - "Y3lfZGVzY3JpcHRpb24YAiABKAkSPwoDa2V5GAQgASgLMjIuZ29vZ2xlLmFk", - "cy5nb29nbGVhZHMudjIuY29tbW9uLlBvbGljeVZpb2xhdGlvbktleRIcChRl", - "eHRlcm5hbF9wb2xpY3lfbmFtZRgFIAEoCRIVCg1pc19leGVtcHRpYmxlGAYg", - "ASgIImYKFFBvbGljeUZpbmRpbmdEZXRhaWxzEk4KFHBvbGljeV90b3BpY19l", - "bnRyaWVzGAEgAygLMjAuZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuY29tbW9u", - "LlBvbGljeVRvcGljRW50cnlC5gEKImNvbS5nb29nbGUuYWRzLmdvb2dsZWFk", - "cy52Mi5lcnJvcnNCC0Vycm9yc1Byb3RvUAFaRGdvb2dsZS5nb2xhbmcub3Jn", - "L2dlbnByb3RvL2dvb2dsZWFwaXMvYWRzL2dvb2dsZWFkcy92Mi9lcnJvcnM7", - "ZXJyb3JzogIDR0FBqgIeR29vZ2xlLkFkcy5Hb29nbGVBZHMuVjIuRXJyb3Jz", - "ygIeR29vZ2xlXEFkc1xHb29nbGVBZHNcVjJcRXJyb3Jz6gIiR29vZ2xlOjpB", - "ZHM6Okdvb2dsZUFkczo6VjI6OkVycm9yc2IGcHJvdG8z")); + "aGFyZWRfc2V0X2Vycm9yLnByb3RvGjVnb29nbGUvYWRzL2dvb2dsZWFkcy92", + "Mi9lcnJvcnMvc2l6ZV9saW1pdF9lcnJvci5wcm90bxo4Z29vZ2xlL2Fkcy9n", + "b29nbGVhZHMvdjIvZXJyb3JzL3N0cmluZ19mb3JtYXRfZXJyb3IucHJvdG8a", + "OGdvb2dsZS9hZHMvZ29vZ2xlYWRzL3YyL2Vycm9ycy9zdHJpbmdfbGVuZ3Ro", + "X2Vycm9yLnByb3RvGjRnb29nbGUvYWRzL2dvb2dsZWFkcy92Mi9lcnJvcnMv", + "dXJsX2ZpZWxkX2Vycm9yLnByb3RvGjRnb29nbGUvYWRzL2dvb2dsZWFkcy92", + "Mi9lcnJvcnMvdXNlcl9saXN0X2Vycm9yLnByb3RvGkVnb29nbGUvYWRzL2dv", + "b2dsZWFkcy92Mi9lcnJvcnMveW91dHViZV92aWRlb19yZWdpc3RyYXRpb25f", + "ZXJyb3IucHJvdG8aHmdvb2dsZS9wcm90b2J1Zi93cmFwcGVycy5wcm90bxoc", + "Z29vZ2xlL2FwaS9hbm5vdGF0aW9ucy5wcm90byJSChBHb29nbGVBZHNGYWls", + "dXJlEj4KBmVycm9ycxgBIAMoCzIuLmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYy", + "LmVycm9ycy5Hb29nbGVBZHNFcnJvciKYAgoOR29vZ2xlQWRzRXJyb3ISPQoK", + "ZXJyb3JfY29kZRgBIAEoCzIpLmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLmVy", + "cm9ycy5FcnJvckNvZGUSDwoHbWVzc2FnZRgCIAEoCRI2Cgd0cmlnZ2VyGAMg", + "ASgLMiUuZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuY29tbW9uLlZhbHVlEj8K", + "CGxvY2F0aW9uGAQgASgLMi0uZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuZXJy", + "b3JzLkVycm9yTG9jYXRpb24SPQoHZGV0YWlscxgFIAEoCzIsLmdvb2dsZS5h", + "ZHMuZ29vZ2xlYWRzLnYyLmVycm9ycy5FcnJvckRldGFpbHMi7FUKCUVycm9y", + "Q29kZRJWCg1yZXF1ZXN0X2Vycm9yGAEgASgOMj0uZ29vZ2xlLmFkcy5nb29n", + "bGVhZHMudjIuZXJyb3JzLlJlcXVlc3RFcnJvckVudW0uUmVxdWVzdEVycm9y", + "SAASbwoWYmlkZGluZ19zdHJhdGVneV9lcnJvchgCIAEoDjJNLmdvb2dsZS5h", + "ZHMuZ29vZ2xlYWRzLnYyLmVycm9ycy5CaWRkaW5nU3RyYXRlZ3lFcnJvckVu", + "dW0uQmlkZGluZ1N0cmF0ZWd5RXJyb3JIABJaCg91cmxfZmllbGRfZXJyb3IY", + "AyABKA4yPy5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5lcnJvcnMuVXJsRmll", + "bGRFcnJvckVudW0uVXJsRmllbGRFcnJvckgAEmkKFGxpc3Rfb3BlcmF0aW9u", + "X2Vycm9yGAQgASgOMkkuZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuZXJyb3Jz", + "Lkxpc3RPcGVyYXRpb25FcnJvckVudW0uTGlzdE9wZXJhdGlvbkVycm9ySAAS", + "UAoLcXVlcnlfZXJyb3IYBSABKA4yOS5nb29nbGUuYWRzLmdvb2dsZWFkcy52", + "Mi5lcnJvcnMuUXVlcnlFcnJvckVudW0uUXVlcnlFcnJvckgAElMKDG11dGF0", + "ZV9lcnJvchgHIAEoDjI7Lmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLmVycm9y", + "cy5NdXRhdGVFcnJvckVudW0uTXV0YXRlRXJyb3JIABJdChBmaWVsZF9tYXNr", + "X2Vycm9yGAggASgOMkEuZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuZXJyb3Jz", + "LkZpZWxkTWFza0Vycm9yRW51bS5GaWVsZE1hc2tFcnJvckgAEmgKE2F1dGhv", + "cml6YXRpb25fZXJyb3IYCSABKA4ySS5nb29nbGUuYWRzLmdvb2dsZWFkcy52", + "Mi5lcnJvcnMuQXV0aG9yaXphdGlvbkVycm9yRW51bS5BdXRob3JpemF0aW9u", + "RXJyb3JIABJZCg5pbnRlcm5hbF9lcnJvchgKIAEoDjI/Lmdvb2dsZS5hZHMu", + "Z29vZ2xlYWRzLnYyLmVycm9ycy5JbnRlcm5hbEVycm9yRW51bS5JbnRlcm5h", + "bEVycm9ySAASUAoLcXVvdGFfZXJyb3IYCyABKA4yOS5nb29nbGUuYWRzLmdv", + "b2dsZWFkcy52Mi5lcnJvcnMuUXVvdGFFcnJvckVudW0uUXVvdGFFcnJvckgA", + "EkcKCGFkX2Vycm9yGAwgASgOMjMuZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIu", + "ZXJyb3JzLkFkRXJyb3JFbnVtLkFkRXJyb3JIABJXCg5hZF9ncm91cF9lcnJv", + "chgNIAEoDjI9Lmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLmVycm9ycy5BZEdy", + "b3VwRXJyb3JFbnVtLkFkR3JvdXBFcnJvckgAEmwKFWNhbXBhaWduX2J1ZGdl", + "dF9lcnJvchgOIAEoDjJLLmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLmVycm9y", + "cy5DYW1wYWlnbkJ1ZGdldEVycm9yRW51bS5DYW1wYWlnbkJ1ZGdldEVycm9y", + "SAASWQoOY2FtcGFpZ25fZXJyb3IYDyABKA4yPy5nb29nbGUuYWRzLmdvb2ds", + "ZWFkcy52Mi5lcnJvcnMuQ2FtcGFpZ25FcnJvckVudW0uQ2FtcGFpZ25FcnJv", + "ckgAEmsKFGF1dGhlbnRpY2F0aW9uX2Vycm9yGBEgASgOMksuZ29vZ2xlLmFk", + "cy5nb29nbGVhZHMudjIuZXJyb3JzLkF1dGhlbnRpY2F0aW9uRXJyb3JFbnVt", + "LkF1dGhlbnRpY2F0aW9uRXJyb3JIABJzChhhZF9ncm91cF9jcml0ZXJpb25f", + "ZXJyb3IYEiABKA4yTy5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5lcnJvcnMu", + "QWRHcm91cENyaXRlcmlvbkVycm9yRW51bS5BZEdyb3VwQ3JpdGVyaW9uRXJy", + "b3JIABJmChNhZF9jdXN0b21pemVyX2Vycm9yGBMgASgOMkcuZ29vZ2xlLmFk", + "cy5nb29nbGVhZHMudjIuZXJyb3JzLkFkQ3VzdG9taXplckVycm9yRW51bS5B", + "ZEN1c3RvbWl6ZXJFcnJvckgAEl4KEWFkX2dyb3VwX2FkX2Vycm9yGBUgASgO", + "MkEuZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuZXJyb3JzLkFkR3JvdXBBZEVy", + "cm9yRW51bS5BZEdyb3VwQWRFcnJvckgAEl0KEGFkX3NoYXJpbmdfZXJyb3IY", + "GCABKA4yQS5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5lcnJvcnMuQWRTaGFy", + "aW5nRXJyb3JFbnVtLkFkU2hhcmluZ0Vycm9ySAASSgoJYWR4X2Vycm9yGBkg", + "ASgOMjUuZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuZXJyb3JzLkFkeEVycm9y", + "RW51bS5BZHhFcnJvckgAElAKC2Fzc2V0X2Vycm9yGGsgASgOMjkuZ29vZ2xl", + "LmFkcy5nb29nbGVhZHMudjIuZXJyb3JzLkFzc2V0RXJyb3JFbnVtLkFzc2V0", + "RXJyb3JIABJWCg1iaWRkaW5nX2Vycm9yGBogASgOMj0uZ29vZ2xlLmFkcy5n", + "b29nbGVhZHMudjIuZXJyb3JzLkJpZGRpbmdFcnJvckVudW0uQmlkZGluZ0Vy", + "cm9ySAASdQoYY2FtcGFpZ25fY3JpdGVyaW9uX2Vycm9yGB0gASgOMlEuZ29v", + "Z2xlLmFkcy5nb29nbGVhZHMudjIuZXJyb3JzLkNhbXBhaWduQ3JpdGVyaW9u", + "RXJyb3JFbnVtLkNhbXBhaWduQ3JpdGVyaW9uRXJyb3JIABJsChVjb2xsZWN0", + "aW9uX3NpemVfZXJyb3IYHyABKA4ySy5nb29nbGUuYWRzLmdvb2dsZWFkcy52", + "Mi5lcnJvcnMuQ29sbGVjdGlvblNpemVFcnJvckVudW0uQ29sbGVjdGlvblNp", + "emVFcnJvckgAEmMKEmNvdW50cnlfY29kZV9lcnJvchhtIAEoDjJFLmdvb2ds", + "ZS5hZHMuZ29vZ2xlYWRzLnYyLmVycm9ycy5Db3VudHJ5Q29kZUVycm9yRW51", + "bS5Db3VudHJ5Q29kZUVycm9ySAASXAoPY3JpdGVyaW9uX2Vycm9yGCAgASgO", + "MkEuZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuZXJyb3JzLkNyaXRlcmlvbkVy", + "cm9yRW51bS5Dcml0ZXJpb25FcnJvckgAElkKDmN1c3RvbWVyX2Vycm9yGFog", + "ASgOMj8uZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuZXJyb3JzLkN1c3RvbWVy", + "RXJyb3JFbnVtLkN1c3RvbWVyRXJyb3JIABJNCgpkYXRlX2Vycm9yGCEgASgO", + "MjcuZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuZXJyb3JzLkRhdGVFcnJvckVu", + "dW0uRGF0ZUVycm9ySAASXQoQZGF0ZV9yYW5nZV9lcnJvchgiIAEoDjJBLmdv", + "b2dsZS5hZHMuZ29vZ2xlYWRzLnYyLmVycm9ycy5EYXRlUmFuZ2VFcnJvckVu", + "dW0uRGF0ZVJhbmdlRXJyb3JIABJZCg5kaXN0aW5jdF9lcnJvchgjIAEoDjI/", + "Lmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLmVycm9ycy5EaXN0aW5jdEVycm9y", + "RW51bS5EaXN0aW5jdEVycm9ySAAShQEKHmZlZWRfYXR0cmlidXRlX3JlZmVy", + "ZW5jZV9lcnJvchgkIAEoDjJbLmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLmVy", + "cm9ycy5GZWVkQXR0cmlidXRlUmVmZXJlbmNlRXJyb3JFbnVtLkZlZWRBdHRy", + "aWJ1dGVSZWZlcmVuY2VFcnJvckgAElkKDmZ1bmN0aW9uX2Vycm9yGCUgASgO", + "Mj8uZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuZXJyb3JzLkZ1bmN0aW9uRXJy", + "b3JFbnVtLkZ1bmN0aW9uRXJyb3JIABJvChZmdW5jdGlvbl9wYXJzaW5nX2Vy", + "cm9yGCYgASgOMk0uZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuZXJyb3JzLkZ1", + "bmN0aW9uUGFyc2luZ0Vycm9yRW51bS5GdW5jdGlvblBhcnNpbmdFcnJvckgA", + "EkcKCGlkX2Vycm9yGCcgASgOMjMuZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIu", + "ZXJyb3JzLklkRXJyb3JFbnVtLklkRXJyb3JIABJQCgtpbWFnZV9lcnJvchgo", + "IAEoDjI5Lmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLmVycm9ycy5JbWFnZUVy", + "cm9yRW51bS5JbWFnZUVycm9ySAASZgoTbGFuZ3VhZ2VfY29kZV9lcnJvchhu", + "IAEoDjJHLmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLmVycm9ycy5MYW5ndWFn", + "ZUNvZGVFcnJvckVudW0uTGFuZ3VhZ2VDb2RlRXJyb3JIABJjChJtZWRpYV9i", + "dW5kbGVfZXJyb3IYKiABKA4yRS5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5l", + "cnJvcnMuTWVkaWFCdW5kbGVFcnJvckVudW0uTWVkaWFCdW5kbGVFcnJvckgA", + "EmMKEm1lZGlhX3VwbG9hZF9lcnJvchh0IAEoDjJFLmdvb2dsZS5hZHMuZ29v", + "Z2xlYWRzLnYyLmVycm9ycy5NZWRpYVVwbG9hZEVycm9yRW51bS5NZWRpYVVw", + "bG9hZEVycm9ySAASXQoQbWVkaWFfZmlsZV9lcnJvchhWIAEoDjJBLmdvb2ds", + "ZS5hZHMuZ29vZ2xlYWRzLnYyLmVycm9ycy5NZWRpYUZpbGVFcnJvckVudW0u", + "TWVkaWFGaWxlRXJyb3JIABJfChBtdWx0aXBsaWVyX2Vycm9yGCwgASgOMkMu", + "Z29vZ2xlLmFkcy5nb29nbGVhZHMudjIuZXJyb3JzLk11bHRpcGxpZXJFcnJv", + "ckVudW0uTXVsdGlwbGllckVycm9ySAASfAobbmV3X3Jlc291cmNlX2NyZWF0", + "aW9uX2Vycm9yGC0gASgOMlUuZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuZXJy", + "b3JzLk5ld1Jlc291cmNlQ3JlYXRpb25FcnJvckVudW0uTmV3UmVzb3VyY2VD", + "cmVhdGlvbkVycm9ySAASWgoPbm90X2VtcHR5X2Vycm9yGC4gASgOMj8uZ29v", + "Z2xlLmFkcy5nb29nbGVhZHMudjIuZXJyb3JzLk5vdEVtcHR5RXJyb3JFbnVt", + "Lk5vdEVtcHR5RXJyb3JIABJNCgpudWxsX2Vycm9yGC8gASgOMjcuZ29vZ2xl", + "LmFkcy5nb29nbGVhZHMudjIuZXJyb3JzLk51bGxFcnJvckVudW0uTnVsbEVy", + "cm9ySAASWQoOb3BlcmF0b3JfZXJyb3IYMCABKA4yPy5nb29nbGUuYWRzLmdv", + "b2dsZWFkcy52Mi5lcnJvcnMuT3BlcmF0b3JFcnJvckVudW0uT3BlcmF0b3JF", + "cnJvckgAElAKC3JhbmdlX2Vycm9yGDEgASgOMjkuZ29vZ2xlLmFkcy5nb29n", + "bGVhZHMudjIuZXJyb3JzLlJhbmdlRXJyb3JFbnVtLlJhbmdlRXJyb3JIABJr", + "ChRyZWNvbW1lbmRhdGlvbl9lcnJvchg6IAEoDjJLLmdvb2dsZS5hZHMuZ29v", + "Z2xlYWRzLnYyLmVycm9ycy5SZWNvbW1lbmRhdGlvbkVycm9yRW51bS5SZWNv", + "bW1lbmRhdGlvbkVycm9ySAASYAoRcmVnaW9uX2NvZGVfZXJyb3IYMyABKA4y", + "Qy5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5lcnJvcnMuUmVnaW9uQ29kZUVy", + "cm9yRW51bS5SZWdpb25Db2RlRXJyb3JIABJWCg1zZXR0aW5nX2Vycm9yGDQg", + "ASgOMj0uZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuZXJyb3JzLlNldHRpbmdF", + "cnJvckVudW0uU2V0dGluZ0Vycm9ySAASZgoTc3RyaW5nX2Zvcm1hdF9lcnJv", + "chg1IAEoDjJHLmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLmVycm9ycy5TdHJp", + "bmdGb3JtYXRFcnJvckVudW0uU3RyaW5nRm9ybWF0RXJyb3JIABJmChNzdHJp", + "bmdfbGVuZ3RoX2Vycm9yGDYgASgOMkcuZ29vZ2xlLmFkcy5nb29nbGVhZHMu", + "djIuZXJyb3JzLlN0cmluZ0xlbmd0aEVycm9yRW51bS5TdHJpbmdMZW5ndGhF", + "cnJvckgAEoIBCh1vcGVyYXRpb25fYWNjZXNzX2RlbmllZF9lcnJvchg3IAEo", + "DjJZLmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLmVycm9ycy5PcGVyYXRpb25B", + "Y2Nlc3NEZW5pZWRFcnJvckVudW0uT3BlcmF0aW9uQWNjZXNzRGVuaWVkRXJy", + "b3JIABJ/ChxyZXNvdXJjZV9hY2Nlc3NfZGVuaWVkX2Vycm9yGDggASgOMlcu", + "Z29vZ2xlLmFkcy5nb29nbGVhZHMudjIuZXJyb3JzLlJlc291cmNlQWNjZXNz", + "RGVuaWVkRXJyb3JFbnVtLlJlc291cmNlQWNjZXNzRGVuaWVkRXJyb3JIABKS", + "AQojcmVzb3VyY2VfY291bnRfbGltaXRfZXhjZWVkZWRfZXJyb3IYOSABKA4y", + "Yy5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5lcnJvcnMuUmVzb3VyY2VDb3Vu", + "dExpbWl0RXhjZWVkZWRFcnJvckVudW0uUmVzb3VyY2VDb3VudExpbWl0RXhj", + "ZWVkZWRFcnJvckgAEosBCiB5b3V0dWJlX3ZpZGVvX3JlZ2lzdHJhdGlvbl9l", + "cnJvchh1IAEoDjJfLmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLmVycm9ycy5Z", + "b3V0dWJlVmlkZW9SZWdpc3RyYXRpb25FcnJvckVudW0uWW91dHViZVZpZGVv", + "UmVnaXN0cmF0aW9uRXJyb3JIABJ6ChthZF9ncm91cF9iaWRfbW9kaWZpZXJf", + "ZXJyb3IYOyABKA4yUy5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5lcnJvcnMu", + "QWRHcm91cEJpZE1vZGlmaWVyRXJyb3JFbnVtLkFkR3JvdXBCaWRNb2RpZmll", + "ckVycm9ySAASVgoNY29udGV4dF9lcnJvchg8IAEoDjI9Lmdvb2dsZS5hZHMu", + "Z29vZ2xlYWRzLnYyLmVycm9ycy5Db250ZXh0RXJyb3JFbnVtLkNvbnRleHRF", + "cnJvckgAElAKC2ZpZWxkX2Vycm9yGD0gASgOMjkuZ29vZ2xlLmFkcy5nb29n", + "bGVhZHMudjIuZXJyb3JzLkZpZWxkRXJyb3JFbnVtLkZpZWxkRXJyb3JIABJd", + "ChBzaGFyZWRfc2V0X2Vycm9yGD4gASgOMkEuZ29vZ2xlLmFkcy5nb29nbGVh", + "ZHMudjIuZXJyb3JzLlNoYXJlZFNldEVycm9yRW51bS5TaGFyZWRTZXRFcnJv", + "ckgAEm8KFnNoYXJlZF9jcml0ZXJpb25fZXJyb3IYPyABKA4yTS5nb29nbGUu", + "YWRzLmdvb2dsZWFkcy52Mi5lcnJvcnMuU2hhcmVkQ3JpdGVyaW9uRXJyb3JF", + "bnVtLlNoYXJlZENyaXRlcmlvbkVycm9ySAASdgoZY2FtcGFpZ25fc2hhcmVk", + "X3NldF9lcnJvchhAIAEoDjJRLmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLmVy", + "cm9ycy5DYW1wYWlnblNoYXJlZFNldEVycm9yRW51bS5DYW1wYWlnblNoYXJl", + "ZFNldEVycm9ySAAScgoXY29udmVyc2lvbl9hY3Rpb25fZXJyb3IYQSABKA4y", + "Ty5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5lcnJvcnMuQ29udmVyc2lvbkFj", + "dGlvbkVycm9yRW51bS5Db252ZXJzaW9uQWN0aW9uRXJyb3JIABKRAQoiY29u", + "dmVyc2lvbl9hZGp1c3RtZW50X3VwbG9hZF9lcnJvchhzIAEoDjJjLmdvb2ds", + "ZS5hZHMuZ29vZ2xlYWRzLnYyLmVycm9ycy5Db252ZXJzaW9uQWRqdXN0bWVu", + "dFVwbG9hZEVycm9yRW51bS5Db252ZXJzaW9uQWRqdXN0bWVudFVwbG9hZEVy", + "cm9ySAAScgoXY29udmVyc2lvbl91cGxvYWRfZXJyb3IYbyABKA4yTy5nb29n", + "bGUuYWRzLmdvb2dsZWFkcy52Mi5lcnJvcnMuQ29udmVyc2lvblVwbG9hZEVy", + "cm9yRW51bS5Db252ZXJzaW9uVXBsb2FkRXJyb3JIABJTCgxoZWFkZXJfZXJy", + "b3IYQiABKA4yOy5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5lcnJvcnMuSGVh", + "ZGVyRXJyb3JFbnVtLkhlYWRlckVycm9ySAASWQoOZGF0YWJhc2VfZXJyb3IY", + "QyABKA4yPy5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5lcnJvcnMuRGF0YWJh", + "c2VFcnJvckVudW0uRGF0YWJhc2VFcnJvckgAEmkKFHBvbGljeV9maW5kaW5n", + "X2Vycm9yGEQgASgOMkkuZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuZXJyb3Jz", + "LlBvbGljeUZpbmRpbmdFcnJvckVudW0uUG9saWN5RmluZGluZ0Vycm9ySAAS", + "TQoKZW51bV9lcnJvchhGIAEoDjI3Lmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYy", + "LmVycm9ycy5FbnVtRXJyb3JFbnVtLkVudW1FcnJvckgAEmMKEmtleXdvcmRf", + "cGxhbl9lcnJvchhHIAEoDjJFLmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLmVy", + "cm9ycy5LZXl3b3JkUGxhbkVycm9yRW51bS5LZXl3b3JkUGxhbkVycm9ySAAS", + "fAoba2V5d29yZF9wbGFuX2NhbXBhaWduX2Vycm9yGEggASgOMlUuZ29vZ2xl", + "LmFkcy5nb29nbGVhZHMudjIuZXJyb3JzLktleXdvcmRQbGFuQ2FtcGFpZ25F", + "cnJvckVudW0uS2V5d29yZFBsYW5DYW1wYWlnbkVycm9ySAASkgEKI2tleXdv", + "cmRfcGxhbl9uZWdhdGl2ZV9rZXl3b3JkX2Vycm9yGEkgASgOMmMuZ29vZ2xl", + "LmFkcy5nb29nbGVhZHMudjIuZXJyb3JzLktleXdvcmRQbGFuTmVnYXRpdmVL", + "ZXl3b3JkRXJyb3JFbnVtLktleXdvcmRQbGFuTmVnYXRpdmVLZXl3b3JkRXJy", + "b3JIABJ6ChtrZXl3b3JkX3BsYW5fYWRfZ3JvdXBfZXJyb3IYSiABKA4yUy5n", + "b29nbGUuYWRzLmdvb2dsZWFkcy52Mi5lcnJvcnMuS2V5d29yZFBsYW5BZEdy", + "b3VwRXJyb3JFbnVtLktleXdvcmRQbGFuQWRHcm91cEVycm9ySAASeQoaa2V5", + "d29yZF9wbGFuX2tleXdvcmRfZXJyb3IYSyABKA4yUy5nb29nbGUuYWRzLmdv", + "b2dsZWFkcy52Mi5lcnJvcnMuS2V5d29yZFBsYW5LZXl3b3JkRXJyb3JFbnVt", + "LktleXdvcmRQbGFuS2V5d29yZEVycm9ySAAScAoXa2V5d29yZF9wbGFuX2lk", + "ZWFfZXJyb3IYTCABKA4yTS5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5lcnJv", + "cnMuS2V5d29yZFBsYW5JZGVhRXJyb3JFbnVtLktleXdvcmRQbGFuSWRlYUVy", + "cm9ySAASggEKHWFjY291bnRfYnVkZ2V0X3Byb3Bvc2FsX2Vycm9yGE0gASgO", + "MlkuZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuZXJyb3JzLkFjY291bnRCdWRn", + "ZXRQcm9wb3NhbEVycm9yRW51bS5BY2NvdW50QnVkZ2V0UHJvcG9zYWxFcnJv", + "ckgAEloKD3VzZXJfbGlzdF9lcnJvchhOIAEoDjI/Lmdvb2dsZS5hZHMuZ29v", + "Z2xlYWRzLnYyLmVycm9ycy5Vc2VyTGlzdEVycm9yRW51bS5Vc2VyTGlzdEVy", + "cm9ySAASZgoTY2hhbmdlX3N0YXR1c19lcnJvchhPIAEoDjJHLmdvb2dsZS5h", + "ZHMuZ29vZ2xlYWRzLnYyLmVycm9ycy5DaGFuZ2VTdGF0dXNFcnJvckVudW0u", + "Q2hhbmdlU3RhdHVzRXJyb3JIABJNCgpmZWVkX2Vycm9yGFAgASgOMjcuZ29v", + "Z2xlLmFkcy5nb29nbGVhZHMudjIuZXJyb3JzLkZlZWRFcnJvckVudW0uRmVl", + "ZEVycm9ySAASlQEKJGdlb190YXJnZXRfY29uc3RhbnRfc3VnZ2VzdGlvbl9l", + "cnJvchhRIAEoDjJlLmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLmVycm9ycy5H", + "ZW9UYXJnZXRDb25zdGFudFN1Z2dlc3Rpb25FcnJvckVudW0uR2VvVGFyZ2V0", + "Q29uc3RhbnRTdWdnZXN0aW9uRXJyb3JIABJpChRjYW1wYWlnbl9kcmFmdF9l", + "cnJvchhSIAEoDjJJLmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLmVycm9ycy5D", + "YW1wYWlnbkRyYWZ0RXJyb3JFbnVtLkNhbXBhaWduRHJhZnRFcnJvckgAEloK", + "D2ZlZWRfaXRlbV9lcnJvchhTIAEoDjI/Lmdvb2dsZS5hZHMuZ29vZ2xlYWRz", + "LnYyLmVycm9ycy5GZWVkSXRlbUVycm9yRW51bS5GZWVkSXRlbUVycm9ySAAS", + "UAoLbGFiZWxfZXJyb3IYVCABKA4yOS5nb29nbGUuYWRzLmdvb2dsZWFkcy52", + "Mi5lcnJvcnMuTGFiZWxFcnJvckVudW0uTGFiZWxFcnJvckgAEmYKE2JpbGxp", + "bmdfc2V0dXBfZXJyb3IYVyABKA4yRy5nb29nbGUuYWRzLmdvb2dsZWFkcy52", + "Mi5lcnJvcnMuQmlsbGluZ1NldHVwRXJyb3JFbnVtLkJpbGxpbmdTZXR1cEVy", + "cm9ySAASeQoaY3VzdG9tZXJfY2xpZW50X2xpbmtfZXJyb3IYWCABKA4yUy5n", + "b29nbGUuYWRzLmdvb2dsZWFkcy52Mi5lcnJvcnMuQ3VzdG9tZXJDbGllbnRM", + "aW5rRXJyb3JFbnVtLkN1c3RvbWVyQ2xpZW50TGlua0Vycm9ySAASfAobY3Vz", + "dG9tZXJfbWFuYWdlcl9saW5rX2Vycm9yGFsgASgOMlUuZ29vZ2xlLmFkcy5n", + "b29nbGVhZHMudjIuZXJyb3JzLkN1c3RvbWVyTWFuYWdlckxpbmtFcnJvckVu", + "dW0uQ3VzdG9tZXJNYW5hZ2VyTGlua0Vycm9ySAASYwoSZmVlZF9tYXBwaW5n", + "X2Vycm9yGFwgASgOMkUuZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuZXJyb3Jz", + "LkZlZWRNYXBwaW5nRXJyb3JFbnVtLkZlZWRNYXBwaW5nRXJyb3JIABJmChNj", + "dXN0b21lcl9mZWVkX2Vycm9yGF0gASgOMkcuZ29vZ2xlLmFkcy5nb29nbGVh", + "ZHMudjIuZXJyb3JzLkN1c3RvbWVyRmVlZEVycm9yRW51bS5DdXN0b21lckZl", + "ZWRFcnJvckgAEmQKE2FkX2dyb3VwX2ZlZWRfZXJyb3IYXiABKA4yRS5nb29n", + "bGUuYWRzLmdvb2dsZWFkcy52Mi5lcnJvcnMuQWRHcm91cEZlZWRFcnJvckVu", + "dW0uQWRHcm91cEZlZWRFcnJvckgAEmYKE2NhbXBhaWduX2ZlZWRfZXJyb3IY", + "YCABKA4yRy5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5lcnJvcnMuQ2FtcGFp", + "Z25GZWVkRXJyb3JFbnVtLkNhbXBhaWduRmVlZEVycm9ySAASbAoVY3VzdG9t", + "X2ludGVyZXN0X2Vycm9yGGEgASgOMksuZ29vZ2xlLmFkcy5nb29nbGVhZHMu", + "djIuZXJyb3JzLkN1c3RvbUludGVyZXN0RXJyb3JFbnVtLkN1c3RvbUludGVy", + "ZXN0RXJyb3JIABJ4ChljYW1wYWlnbl9leHBlcmltZW50X2Vycm9yGGIgASgO", + "MlMuZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuZXJyb3JzLkNhbXBhaWduRXhw", + "ZXJpbWVudEVycm9yRW51bS5DYW1wYWlnbkV4cGVyaW1lbnRFcnJvckgAEnYK", + "GWV4dGVuc2lvbl9mZWVkX2l0ZW1fZXJyb3IYZCABKA4yUS5nb29nbGUuYWRz", + "Lmdvb2dsZWFkcy52Mi5lcnJvcnMuRXh0ZW5zaW9uRmVlZEl0ZW1FcnJvckVu", + "dW0uRXh0ZW5zaW9uRmVlZEl0ZW1FcnJvckgAEmMKEmFkX3BhcmFtZXRlcl9l", + "cnJvchhlIAEoDjJFLmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLmVycm9ycy5B", + "ZFBhcmFtZXRlckVycm9yRW51bS5BZFBhcmFtZXRlckVycm9ySAASeQoaZmVl", + "ZF9pdGVtX3ZhbGlkYXRpb25fZXJyb3IYZiABKA4yUy5nb29nbGUuYWRzLmdv", + "b2dsZWFkcy52Mi5lcnJvcnMuRmVlZEl0ZW1WYWxpZGF0aW9uRXJyb3JFbnVt", + "LkZlZWRJdGVtVmFsaWRhdGlvbkVycm9ySAAScgoXZXh0ZW5zaW9uX3NldHRp", + "bmdfZXJyb3IYZyABKA4yTy5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5lcnJv", + "cnMuRXh0ZW5zaW9uU2V0dGluZ0Vycm9yRW51bS5FeHRlbnNpb25TZXR0aW5n", + "RXJyb3JIABJtChZmZWVkX2l0ZW1fdGFyZ2V0X2Vycm9yGGggASgOMksuZ29v", + "Z2xlLmFkcy5nb29nbGVhZHMudjIuZXJyb3JzLkZlZWRJdGVtVGFyZ2V0RXJy", + "b3JFbnVtLkZlZWRJdGVtVGFyZ2V0RXJyb3JIABJvChZwb2xpY3lfdmlvbGF0", + "aW9uX2Vycm9yGGkgASgOMk0uZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuZXJy", + "b3JzLlBvbGljeVZpb2xhdGlvbkVycm9yRW51bS5Qb2xpY3lWaW9sYXRpb25F", + "cnJvckgAEl0KEG11dGF0ZV9qb2JfZXJyb3IYbCABKA4yQS5nb29nbGUuYWRz", + "Lmdvb2dsZWFkcy52Mi5lcnJvcnMuTXV0YXRlSm9iRXJyb3JFbnVtLk11dGF0", + "ZUpvYkVycm9ySAASbAoVcGFydGlhbF9mYWlsdXJlX2Vycm9yGHAgASgOMksu", + "Z29vZ2xlLmFkcy5nb29nbGVhZHMudjIuZXJyb3JzLlBhcnRpYWxGYWlsdXJl", + "RXJyb3JFbnVtLlBhcnRpYWxGYWlsdXJlRXJyb3JIABKOAQohcG9saWN5X3Zh", + "bGlkYXRpb25fcGFyYW1ldGVyX2Vycm9yGHIgASgOMmEuZ29vZ2xlLmFkcy5n", + "b29nbGVhZHMudjIuZXJyb3JzLlBvbGljeVZhbGlkYXRpb25QYXJhbWV0ZXJF", + "cnJvckVudW0uUG9saWN5VmFsaWRhdGlvblBhcmFtZXRlckVycm9ySAASXQoQ", + "c2l6ZV9saW1pdF9lcnJvchh2IAEoDjJBLmdvb2dsZS5hZHMuZ29vZ2xlYWRz", + "LnYyLmVycm9ycy5TaXplTGltaXRFcnJvckVudW0uU2l6ZUxpbWl0RXJyb3JI", + "ABJsChVub3Rfd2hpdGVsaXN0ZWRfZXJyb3IYeCABKA4ySy5nb29nbGUuYWRz", + "Lmdvb2dsZWFkcy52Mi5lcnJvcnMuTm90V2hpdGVsaXN0ZWRFcnJvckVudW0u", + "Tm90V2hpdGVsaXN0ZWRFcnJvckgAEmMKEm1hbmFnZXJfbGlua19lcnJvchh5", + "IAEoDjJFLmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLmVycm9ycy5NYW5hZ2Vy", + "TGlua0Vycm9yRW51bS5NYW5hZ2VyTGlua0Vycm9ySAASZgoTY3VycmVuY3lf", + "Y29kZV9lcnJvchh6IAEoDjJHLmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLmVy", + "cm9ycy5DdXJyZW5jeUNvZGVFcnJvckVudW0uQ3VycmVuY3lDb2RlRXJyb3JI", + "ABJyChdhY2Nlc3NfaW52aXRhdGlvbl9lcnJvchh8IAEoDjJPLmdvb2dsZS5h", + "ZHMuZ29vZ2xlYWRzLnYyLmVycm9ycy5BY2Nlc3NJbnZpdGF0aW9uRXJyb3JF", + "bnVtLkFjY2Vzc0ludml0YXRpb25FcnJvckgAEl0KEHJlYWNoX3BsYW5fZXJy", + "b3IYfSABKA4yQS5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5lcnJvcnMuUmVh", + "Y2hQbGFuRXJyb3JFbnVtLlJlYWNoUGxhbkVycm9ySABCDAoKZXJyb3JfY29k", + "ZSLAAQoNRXJyb3JMb2NhdGlvbhJbChNmaWVsZF9wYXRoX2VsZW1lbnRzGAIg", + "AygLMj4uZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuZXJyb3JzLkVycm9yTG9j", + "YXRpb24uRmllbGRQYXRoRWxlbWVudBpSChBGaWVsZFBhdGhFbGVtZW50EhIK", + "CmZpZWxkX25hbWUYASABKAkSKgoFaW5kZXgYAiABKAsyGy5nb29nbGUucHJv", + "dG9idWYuSW50NjRWYWx1ZSLeAQoMRXJyb3JEZXRhaWxzEh4KFnVucHVibGlz", + "aGVkX2Vycm9yX2NvZGUYASABKAkSWAoYcG9saWN5X3Zpb2xhdGlvbl9kZXRh", + "aWxzGAIgASgLMjYuZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuZXJyb3JzLlBv", + "bGljeVZpb2xhdGlvbkRldGFpbHMSVAoWcG9saWN5X2ZpbmRpbmdfZGV0YWls", + "cxgDIAEoCzI0Lmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLmVycm9ycy5Qb2xp", + "Y3lGaW5kaW5nRGV0YWlscyKzAQoWUG9saWN5VmlvbGF0aW9uRGV0YWlscxIj", + "ChtleHRlcm5hbF9wb2xpY3lfZGVzY3JpcHRpb24YAiABKAkSPwoDa2V5GAQg", + "ASgLMjIuZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuY29tbW9uLlBvbGljeVZp", + "b2xhdGlvbktleRIcChRleHRlcm5hbF9wb2xpY3lfbmFtZRgFIAEoCRIVCg1p", + "c19leGVtcHRpYmxlGAYgASgIImYKFFBvbGljeUZpbmRpbmdEZXRhaWxzEk4K", + "FHBvbGljeV90b3BpY19lbnRyaWVzGAEgAygLMjAuZ29vZ2xlLmFkcy5nb29n", + "bGVhZHMudjIuY29tbW9uLlBvbGljeVRvcGljRW50cnlC5gEKImNvbS5nb29n", + "bGUuYWRzLmdvb2dsZWFkcy52Mi5lcnJvcnNCC0Vycm9yc1Byb3RvUAFaRGdv", + "b2dsZS5nb2xhbmcub3JnL2dlbnByb3RvL2dvb2dsZWFwaXMvYWRzL2dvb2ds", + "ZWFkcy92Mi9lcnJvcnM7ZXJyb3JzogIDR0FBqgIeR29vZ2xlLkFkcy5Hb29n", + "bGVBZHMuVjIuRXJyb3JzygIeR29vZ2xlXEFkc1xHb29nbGVBZHNcVjJcRXJy", + "b3Jz6gIiR29vZ2xlOjpBZHM6Okdvb2dsZUFkczo6VjI6OkVycm9yc2IGcHJv", + "dG8z")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, - new pbr::FileDescriptor[] { global::Google.Ads.GoogleAds.V2.Common.PolicyReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Common.ValueReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.AccessInvitationErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.AccountBudgetProposalErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.AdCustomizerErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.AdErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.AdGroupAdErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.AdGroupBidModifierErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.AdGroupCriterionErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.AdGroupErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.AdGroupFeedErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.AdParameterErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.AdSharingErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.AdxErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.AssetErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.AuthenticationErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.AuthorizationErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.BiddingErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.BiddingStrategyErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.BillingSetupErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.CampaignBudgetErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.CampaignCriterionErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.CampaignDraftErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.CampaignErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.CampaignExperimentErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.CampaignFeedErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.CampaignSharedSetErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.ChangeStatusErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.CollectionSizeErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.ContextErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.ConversionActionErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.ConversionAdjustmentUploadErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.ConversionUploadErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.CountryCodeErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.CriterionErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.CurrencyCodeErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.CustomInterestErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.CustomerClientLinkErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.CustomerErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.CustomerFeedErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.CustomerManagerLinkErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.DatabaseErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.DateErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.DateRangeErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.DistinctErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.EnumErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.ExtensionFeedItemErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.ExtensionSettingErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.FeedAttributeReferenceErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.FeedErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.FeedItemErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.FeedItemTargetErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.FeedItemValidationErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.FeedMappingErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.FieldErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.FieldMaskErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.FunctionErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.FunctionParsingErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.GeoTargetConstantSuggestionErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.HeaderErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.IdErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.ImageErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.InternalErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.KeywordPlanAdGroupErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.KeywordPlanCampaignErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.KeywordPlanErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.KeywordPlanIdeaErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.KeywordPlanKeywordErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.KeywordPlanNegativeKeywordErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.LabelErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.LanguageCodeErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.ListOperationErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.ManagerLinkErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.MediaBundleErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.MediaFileErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.MediaUploadErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.MultiplierErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.MutateErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.MutateJobErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.NewResourceCreationErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.NotEmptyErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.NotWhitelistedErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.NullErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.OperationAccessDeniedErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.OperatorErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.PartialFailureErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.PolicyFindingErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.PolicyValidationParameterErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.PolicyViolationErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.QueryErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.QuotaErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.RangeErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.RecommendationErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.RegionCodeErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.RequestErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.ResourceAccessDeniedErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.ResourceCountLimitExceededErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.SettingErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.SharedCriterionErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.SharedSetErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.SizeLimitErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.StringFormatErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.StringLengthErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.UrlFieldErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.UserListErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.YoutubeVideoRegistrationErrorReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.WrappersReflection.Descriptor, global::Google.Api.AnnotationsReflection.Descriptor, }, + new pbr::FileDescriptor[] { global::Google.Ads.GoogleAds.V2.Common.PolicyReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Common.ValueReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.AccessInvitationErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.AccountBudgetProposalErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.AdCustomizerErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.AdErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.AdGroupAdErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.AdGroupBidModifierErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.AdGroupCriterionErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.AdGroupErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.AdGroupFeedErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.AdParameterErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.AdSharingErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.AdxErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.AssetErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.AuthenticationErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.AuthorizationErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.BiddingErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.BiddingStrategyErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.BillingSetupErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.CampaignBudgetErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.CampaignCriterionErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.CampaignDraftErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.CampaignErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.CampaignExperimentErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.CampaignFeedErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.CampaignSharedSetErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.ChangeStatusErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.CollectionSizeErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.ContextErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.ConversionActionErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.ConversionAdjustmentUploadErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.ConversionUploadErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.CountryCodeErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.CriterionErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.CurrencyCodeErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.CustomInterestErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.CustomerClientLinkErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.CustomerErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.CustomerFeedErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.CustomerManagerLinkErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.DatabaseErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.DateErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.DateRangeErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.DistinctErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.EnumErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.ExtensionFeedItemErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.ExtensionSettingErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.FeedAttributeReferenceErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.FeedErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.FeedItemErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.FeedItemTargetErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.FeedItemValidationErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.FeedMappingErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.FieldErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.FieldMaskErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.FunctionErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.FunctionParsingErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.GeoTargetConstantSuggestionErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.HeaderErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.IdErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.ImageErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.InternalErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.KeywordPlanAdGroupErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.KeywordPlanCampaignErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.KeywordPlanErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.KeywordPlanIdeaErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.KeywordPlanKeywordErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.KeywordPlanNegativeKeywordErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.LabelErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.LanguageCodeErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.ListOperationErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.ManagerLinkErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.MediaBundleErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.MediaFileErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.MediaUploadErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.MultiplierErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.MutateErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.MutateJobErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.NewResourceCreationErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.NotEmptyErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.NotWhitelistedErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.NullErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.OperationAccessDeniedErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.OperatorErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.PartialFailureErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.PolicyFindingErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.PolicyValidationParameterErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.PolicyViolationErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.QueryErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.QuotaErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.RangeErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.ReachPlanErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.RecommendationErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.RegionCodeErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.RequestErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.ResourceAccessDeniedErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.ResourceCountLimitExceededErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.SettingErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.SharedCriterionErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.SharedSetErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.SizeLimitErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.StringFormatErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.StringLengthErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.UrlFieldErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.UserListErrorReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Errors.YoutubeVideoRegistrationErrorReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.WrappersReflection.Descriptor, global::Google.Api.AnnotationsReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Errors.GoogleAdsFailure), global::Google.Ads.GoogleAds.V2.Errors.GoogleAdsFailure.Parser, new[]{ "Errors" }, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Errors.GoogleAdsError), global::Google.Ads.GoogleAds.V2.Errors.GoogleAdsError.Parser, new[]{ "ErrorCode", "Message", "Trigger", "Location", "Details" }, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Errors.ErrorCode), global::Google.Ads.GoogleAds.V2.Errors.ErrorCode.Parser, new[]{ "RequestError", "BiddingStrategyError", "UrlFieldError", "ListOperationError", "QueryError", "MutateError", "FieldMaskError", "AuthorizationError", "InternalError", "QuotaError", "AdError", "AdGroupError", "CampaignBudgetError", "CampaignError", "AuthenticationError", "AdGroupCriterionError", "AdCustomizerError", "AdGroupAdError", "AdSharingError", "AdxError", "AssetError", "BiddingError", "CampaignCriterionError", "CollectionSizeError", "CountryCodeError", "CriterionError", "CustomerError", "DateError", "DateRangeError", "DistinctError", "FeedAttributeReferenceError", "FunctionError", "FunctionParsingError", "IdError", "ImageError", "LanguageCodeError", "MediaBundleError", "MediaUploadError", "MediaFileError", "MultiplierError", "NewResourceCreationError", "NotEmptyError", "NullError", "OperatorError", "RangeError", "RecommendationError", "RegionCodeError", "SettingError", "StringFormatError", "StringLengthError", "OperationAccessDeniedError", "ResourceAccessDeniedError", "ResourceCountLimitExceededError", "YoutubeVideoRegistrationError", "AdGroupBidModifierError", "ContextError", "FieldError", "SharedSetError", "SharedCriterionError", "CampaignSharedSetError", "ConversionActionError", "ConversionAdjustmentUploadError", "ConversionUploadError", "HeaderError", "DatabaseError", "PolicyFindingError", "EnumError", "KeywordPlanError", "KeywordPlanCampaignError", "KeywordPlanNegativeKeywordError", "KeywordPlanAdGroupError", "KeywordPlanKeywordError", "KeywordPlanIdeaError", "AccountBudgetProposalError", "UserListError", "ChangeStatusError", "FeedError", "GeoTargetConstantSuggestionError", "CampaignDraftError", "FeedItemError", "LabelError", "BillingSetupError", "CustomerClientLinkError", "CustomerManagerLinkError", "FeedMappingError", "CustomerFeedError", "AdGroupFeedError", "CampaignFeedError", "CustomInterestError", "CampaignExperimentError", "ExtensionFeedItemError", "AdParameterError", "FeedItemValidationError", "ExtensionSettingError", "FeedItemTargetError", "PolicyViolationError", "MutateJobError", "PartialFailureError", "PolicyValidationParameterError", "SizeLimitError", "NotWhitelistedError", "ManagerLinkError", "CurrencyCodeError", "AccessInvitationError" }, new[]{ "ErrorCode" }, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Errors.ErrorCode), global::Google.Ads.GoogleAds.V2.Errors.ErrorCode.Parser, new[]{ "RequestError", "BiddingStrategyError", "UrlFieldError", "ListOperationError", "QueryError", "MutateError", "FieldMaskError", "AuthorizationError", "InternalError", "QuotaError", "AdError", "AdGroupError", "CampaignBudgetError", "CampaignError", "AuthenticationError", "AdGroupCriterionError", "AdCustomizerError", "AdGroupAdError", "AdSharingError", "AdxError", "AssetError", "BiddingError", "CampaignCriterionError", "CollectionSizeError", "CountryCodeError", "CriterionError", "CustomerError", "DateError", "DateRangeError", "DistinctError", "FeedAttributeReferenceError", "FunctionError", "FunctionParsingError", "IdError", "ImageError", "LanguageCodeError", "MediaBundleError", "MediaUploadError", "MediaFileError", "MultiplierError", "NewResourceCreationError", "NotEmptyError", "NullError", "OperatorError", "RangeError", "RecommendationError", "RegionCodeError", "SettingError", "StringFormatError", "StringLengthError", "OperationAccessDeniedError", "ResourceAccessDeniedError", "ResourceCountLimitExceededError", "YoutubeVideoRegistrationError", "AdGroupBidModifierError", "ContextError", "FieldError", "SharedSetError", "SharedCriterionError", "CampaignSharedSetError", "ConversionActionError", "ConversionAdjustmentUploadError", "ConversionUploadError", "HeaderError", "DatabaseError", "PolicyFindingError", "EnumError", "KeywordPlanError", "KeywordPlanCampaignError", "KeywordPlanNegativeKeywordError", "KeywordPlanAdGroupError", "KeywordPlanKeywordError", "KeywordPlanIdeaError", "AccountBudgetProposalError", "UserListError", "ChangeStatusError", "FeedError", "GeoTargetConstantSuggestionError", "CampaignDraftError", "FeedItemError", "LabelError", "BillingSetupError", "CustomerClientLinkError", "CustomerManagerLinkError", "FeedMappingError", "CustomerFeedError", "AdGroupFeedError", "CampaignFeedError", "CustomInterestError", "CampaignExperimentError", "ExtensionFeedItemError", "AdParameterError", "FeedItemValidationError", "ExtensionSettingError", "FeedItemTargetError", "PolicyViolationError", "MutateJobError", "PartialFailureError", "PolicyValidationParameterError", "SizeLimitError", "NotWhitelistedError", "ManagerLinkError", "CurrencyCodeError", "AccessInvitationError", "ReachPlanError" }, new[]{ "ErrorCode" }, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Errors.ErrorLocation), global::Google.Ads.GoogleAds.V2.Errors.ErrorLocation.Parser, new[]{ "FieldPathElements" }, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Errors.ErrorLocation.Types.FieldPathElement), global::Google.Ads.GoogleAds.V2.Errors.ErrorLocation.Types.FieldPathElement.Parser, new[]{ "FieldName", "Index" }, null, null, null)}), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Errors.ErrorDetails), global::Google.Ads.GoogleAds.V2.Errors.ErrorDetails.Parser, new[]{ "UnpublishedErrorCode", "PolicyViolationDetails", "PolicyFindingDetails" }, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Errors.PolicyViolationDetails), global::Google.Ads.GoogleAds.V2.Errors.PolicyViolationDetails.Parser, new[]{ "ExternalPolicyDescription", "Key", "ExternalPolicyName", "IsExemptible" }, null, null, null), @@ -1204,6 +1208,9 @@ public ErrorCode(ErrorCode other) : this() { case ErrorCodeOneofCase.AccessInvitationError: AccessInvitationError = other.AccessInvitationError; break; + case ErrorCodeOneofCase.ReachPlanError: + ReachPlanError = other.ReachPlanError; + break; } _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); @@ -2670,6 +2677,20 @@ public ErrorCode Clone() { } } + /// Field number for the "reach_plan_error" field. + public const int ReachPlanErrorFieldNumber = 125; + /// + /// The reasons for the reach plan error + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public global::Google.Ads.GoogleAds.V2.Errors.ReachPlanErrorEnum.Types.ReachPlanError ReachPlanError { + get { return errorCodeCase_ == ErrorCodeOneofCase.ReachPlanError ? (global::Google.Ads.GoogleAds.V2.Errors.ReachPlanErrorEnum.Types.ReachPlanError) errorCode_ : 0; } + set { + errorCode_ = value; + errorCodeCase_ = ErrorCodeOneofCase.ReachPlanError; + } + } + private object errorCode_; /// Enum of possible cases for the "error_code" oneof. public enum ErrorCodeOneofCase { @@ -2778,6 +2799,7 @@ public enum ErrorCodeOneofCase { ManagerLinkError = 121, CurrencyCodeError = 122, AccessInvitationError = 124, + ReachPlanError = 125, } private ErrorCodeOneofCase errorCodeCase_ = ErrorCodeOneofCase.None; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -2908,6 +2930,7 @@ public bool Equals(ErrorCode other) { if (ManagerLinkError != other.ManagerLinkError) return false; if (CurrencyCodeError != other.CurrencyCodeError) return false; if (AccessInvitationError != other.AccessInvitationError) return false; + if (ReachPlanError != other.ReachPlanError) return false; if (ErrorCodeCase != other.ErrorCodeCase) return false; return Equals(_unknownFields, other._unknownFields); } @@ -3019,6 +3042,7 @@ public override int GetHashCode() { if (errorCodeCase_ == ErrorCodeOneofCase.ManagerLinkError) hash ^= ManagerLinkError.GetHashCode(); if (errorCodeCase_ == ErrorCodeOneofCase.CurrencyCodeError) hash ^= CurrencyCodeError.GetHashCode(); if (errorCodeCase_ == ErrorCodeOneofCase.AccessInvitationError) hash ^= AccessInvitationError.GetHashCode(); + if (errorCodeCase_ == ErrorCodeOneofCase.ReachPlanError) hash ^= ReachPlanError.GetHashCode(); hash ^= (int) errorCodeCase_; if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); @@ -3449,6 +3473,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(224, 7); output.WriteEnum((int) AccessInvitationError); } + if (errorCodeCase_ == ErrorCodeOneofCase.ReachPlanError) { + output.WriteRawTag(232, 7); + output.WriteEnum((int) ReachPlanError); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -3769,6 +3797,9 @@ public int CalculateSize() { if (errorCodeCase_ == ErrorCodeOneofCase.AccessInvitationError) { size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) AccessInvitationError); } + if (errorCodeCase_ == ErrorCodeOneofCase.ReachPlanError) { + size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) ReachPlanError); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -4093,6 +4124,9 @@ public void MergeFrom(ErrorCode other) { case ErrorCodeOneofCase.AccessInvitationError: AccessInvitationError = other.AccessInvitationError; break; + case ErrorCodeOneofCase.ReachPlanError: + ReachPlanError = other.ReachPlanError; + break; } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); @@ -4626,6 +4660,11 @@ public void MergeFrom(pb::CodedInputStream input) { errorCodeCase_ = ErrorCodeOneofCase.AccessInvitationError; break; } + case 1000: { + errorCode_ = input.ReadEnum(); + errorCodeCase_ = ErrorCodeOneofCase.ReachPlanError; + break; + } } } } diff --git a/src/V2/Stubs/FeedItemValidationError.cs b/src/V2/Stubs/FeedItemValidationError.cs index 51c934a73..74cf33cec 100644 --- a/src/V2/Stubs/FeedItemValidationError.cs +++ b/src/V2/Stubs/FeedItemValidationError.cs @@ -26,8 +26,8 @@ static FeedItemValidationErrorReflection() { string.Concat( "Cj9nb29nbGUvYWRzL2dvb2dsZWFkcy92Mi9lcnJvcnMvZmVlZF9pdGVtX3Zh", "bGlkYXRpb25fZXJyb3IucHJvdG8SHmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYy", - "LmVycm9ycxocZ29vZ2xlL2FwaS9hbm5vdGF0aW9ucy5wcm90byK0GQobRmVl", - "ZEl0ZW1WYWxpZGF0aW9uRXJyb3JFbnVtIpQZChdGZWVkSXRlbVZhbGlkYXRp", + "LmVycm9ycxocZ29vZ2xlL2FwaS9hbm5vdGF0aW9ucy5wcm90byLnGQobRmVl", + "ZEl0ZW1WYWxpZGF0aW9uRXJyb3JFbnVtIscZChdGZWVkSXRlbVZhbGlkYXRp", "b25FcnJvchIPCgtVTlNQRUNJRklFRBAAEgsKB1VOS05PV04QARIUChBTVFJJ", "TkdfVE9PX1NIT1JUEAISEwoPU1RSSU5HX1RPT19MT05HEAMSFwoTVkFMVUVf", "Tk9UX1NQRUNJRklFRBAEEigKJElOVkFMSURfRE9NRVNUSUNfUEhPTkVfTlVN", @@ -99,12 +99,14 @@ static FeedItemValidationErrorReflection() { "VFVERV9WQUxVRRBbEhsKF0lOVkFMSURfTE9OR0lUVURFX1ZBTFVFEFwSEwoP", "VE9PX01BTllfTEFCRUxTEF0SFQoRSU5WQUxJRF9JTUFHRV9VUkwQXhIaChZN", "SVNTSU5HX0xBVElUVURFX1ZBTFVFEF8SGwoXTUlTU0lOR19MT05HSVRVREVf", - "VkFMVUUQYEL3AQoiY29tLmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLmVycm9y", - "c0IcRmVlZEl0ZW1WYWxpZGF0aW9uRXJyb3JQcm90b1ABWkRnb29nbGUuZ29s", - "YW5nLm9yZy9nZW5wcm90by9nb29nbGVhcGlzL2Fkcy9nb29nbGVhZHMvdjIv", - "ZXJyb3JzO2Vycm9yc6ICA0dBQaoCHkdvb2dsZS5BZHMuR29vZ2xlQWRzLlYy", - "LkVycm9yc8oCHkdvb2dsZVxBZHNcR29vZ2xlQWRzXFYyXEVycm9yc+oCIkdv", - "b2dsZTo6QWRzOjpHb29nbGVBZHM6OlYyOjpFcnJvcnNiBnByb3RvMw==")); + "VkFMVUUQYBIVChFBRERSRVNTX05PVF9GT1VORBBhEhoKFkFERFJFU1NfTk9U", + "X1RBUkdFVEFCTEUQYkL3AQoiY29tLmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYy", + "LmVycm9yc0IcRmVlZEl0ZW1WYWxpZGF0aW9uRXJyb3JQcm90b1ABWkRnb29n", + "bGUuZ29sYW5nLm9yZy9nZW5wcm90by9nb29nbGVhcGlzL2Fkcy9nb29nbGVh", + "ZHMvdjIvZXJyb3JzO2Vycm9yc6ICA0dBQaoCHkdvb2dsZS5BZHMuR29vZ2xl", + "QWRzLlYyLkVycm9yc8oCHkdvb2dsZVxBZHNcR29vZ2xlQWRzXFYyXEVycm9y", + "c+oCIkdvb2dsZTo6QWRzOjpHb29nbGVBZHM6OlYyOjpFcnJvcnNiBnByb3Rv", + "Mw==")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { global::Google.Api.AnnotationsReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { @@ -631,6 +633,14 @@ public enum FeedItemValidationError { /// Longitude value is missing. /// [pbr::OriginalName("MISSING_LONGITUDE_VALUE")] MissingLongitudeValue = 96, + /// + /// Unable to find address. + /// + [pbr::OriginalName("ADDRESS_NOT_FOUND")] AddressNotFound = 97, + /// + /// Cannot target provided address. + /// + [pbr::OriginalName("ADDRESS_NOT_TARGETABLE")] AddressNotTargetable = 98, } } diff --git a/src/V2/Stubs/InternalError.cs b/src/V2/Stubs/InternalError.cs index 6eafe138d..794ea7fbb 100644 --- a/src/V2/Stubs/InternalError.cs +++ b/src/V2/Stubs/InternalError.cs @@ -169,8 +169,8 @@ public enum InternalError { /// [pbr::OriginalName("INTERNAL_ERROR")] InternalError = 2, /// - /// The intended error code doesn't exist in any API version. This will be - /// fixed by adding a new error code as soon as possible. + /// The intended error code doesn't exist in specified API version. It will + /// be released in a future API version. /// [pbr::OriginalName("ERROR_CODE_NOT_PUBLISHED")] ErrorCodeNotPublished = 3, /// diff --git a/src/V2/Stubs/LabelService.cs b/src/V2/Stubs/LabelService.cs index a96f66ba5..146e933c6 100644 --- a/src/V2/Stubs/LabelService.cs +++ b/src/V2/Stubs/LabelService.cs @@ -28,39 +28,38 @@ static LabelServiceReflection() { "aWNlLnByb3RvEiBnb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5zZXJ2aWNlcxot", "Z29vZ2xlL2Fkcy9nb29nbGVhZHMvdjIvcmVzb3VyY2VzL2xhYmVsLnByb3Rv", "Ghxnb29nbGUvYXBpL2Fubm90YXRpb25zLnByb3RvGiBnb29nbGUvcHJvdG9i", - "dWYvZmllbGRfbWFzay5wcm90bxoeZ29vZ2xlL3Byb3RvYnVmL3dyYXBwZXJz", - "LnByb3RvGhdnb29nbGUvcnBjL3N0YXR1cy5wcm90bxoXZ29vZ2xlL2FwaS9j", - "bGllbnQucHJvdG8iKAoPR2V0TGFiZWxSZXF1ZXN0EhUKDXJlc291cmNlX25h", - "bWUYASABKAkioAEKE011dGF0ZUxhYmVsc1JlcXVlc3QSEwoLY3VzdG9tZXJf", - "aWQYASABKAkSRAoKb3BlcmF0aW9ucxgCIAMoCzIwLmdvb2dsZS5hZHMuZ29v", - "Z2xlYWRzLnYyLnNlcnZpY2VzLkxhYmVsT3BlcmF0aW9uEhcKD3BhcnRpYWxf", - "ZmFpbHVyZRgDIAEoCBIVCg12YWxpZGF0ZV9vbmx5GAQgASgIItgBCg5MYWJl", - "bE9wZXJhdGlvbhIvCgt1cGRhdGVfbWFzaxgEIAEoCzIaLmdvb2dsZS5wcm90", - "b2J1Zi5GaWVsZE1hc2sSOgoGY3JlYXRlGAEgASgLMiguZ29vZ2xlLmFkcy5n", - "b29nbGVhZHMudjIucmVzb3VyY2VzLkxhYmVsSAASOgoGdXBkYXRlGAIgASgL", - "MiguZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIucmVzb3VyY2VzLkxhYmVsSAAS", - "EAoGcmVtb3ZlGAMgASgJSABCCwoJb3BlcmF0aW9uIo8BChRNdXRhdGVMYWJl", - "bHNSZXNwb25zZRIxChVwYXJ0aWFsX2ZhaWx1cmVfZXJyb3IYAyABKAsyEi5n", - "b29nbGUucnBjLlN0YXR1cxJECgdyZXN1bHRzGAIgAygLMjMuZ29vZ2xlLmFk", - "cy5nb29nbGVhZHMudjIuc2VydmljZXMuTXV0YXRlTGFiZWxSZXN1bHQiKgoR", - "TXV0YXRlTGFiZWxSZXN1bHQSFQoNcmVzb3VyY2VfbmFtZRgBIAEoCTL/AgoM", - "TGFiZWxTZXJ2aWNlEpkBCghHZXRMYWJlbBIxLmdvb2dsZS5hZHMuZ29vZ2xl", - "YWRzLnYyLnNlcnZpY2VzLkdldExhYmVsUmVxdWVzdBooLmdvb2dsZS5hZHMu", - "Z29vZ2xlYWRzLnYyLnJlc291cmNlcy5MYWJlbCIwgtPkkwIqEigvdjIve3Jl", - "c291cmNlX25hbWU9Y3VzdG9tZXJzLyovbGFiZWxzLyp9ErUBCgxNdXRhdGVM", - "YWJlbHMSNS5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5zZXJ2aWNlcy5NdXRh", - "dGVMYWJlbHNSZXF1ZXN0GjYuZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuc2Vy", - "dmljZXMuTXV0YXRlTGFiZWxzUmVzcG9uc2UiNoLT5JMCMCIrL3YyL2N1c3Rv", - "bWVycy97Y3VzdG9tZXJfaWQ9Kn0vbGFiZWxzOm11dGF0ZToBKhobykEYZ29v", - "Z2xlYWRzLmdvb2dsZWFwaXMuY29tQvgBCiRjb20uZ29vZ2xlLmFkcy5nb29n", - "bGVhZHMudjIuc2VydmljZXNCEUxhYmVsU2VydmljZVByb3RvUAFaSGdvb2ds", - "ZS5nb2xhbmcub3JnL2dlbnByb3RvL2dvb2dsZWFwaXMvYWRzL2dvb2dsZWFk", - "cy92Mi9zZXJ2aWNlcztzZXJ2aWNlc6ICA0dBQaoCIEdvb2dsZS5BZHMuR29v", - "Z2xlQWRzLlYyLlNlcnZpY2VzygIgR29vZ2xlXEFkc1xHb29nbGVBZHNcVjJc", - "U2VydmljZXPqAiRHb29nbGU6OkFkczo6R29vZ2xlQWRzOjpWMjo6U2Vydmlj", - "ZXNiBnByb3RvMw==")); + "dWYvZmllbGRfbWFzay5wcm90bxoXZ29vZ2xlL3JwYy9zdGF0dXMucHJvdG8a", + "F2dvb2dsZS9hcGkvY2xpZW50LnByb3RvIigKD0dldExhYmVsUmVxdWVzdBIV", + "Cg1yZXNvdXJjZV9uYW1lGAEgASgJIqABChNNdXRhdGVMYWJlbHNSZXF1ZXN0", + "EhMKC2N1c3RvbWVyX2lkGAEgASgJEkQKCm9wZXJhdGlvbnMYAiADKAsyMC5n", + "b29nbGUuYWRzLmdvb2dsZWFkcy52Mi5zZXJ2aWNlcy5MYWJlbE9wZXJhdGlv", + "bhIXCg9wYXJ0aWFsX2ZhaWx1cmUYAyABKAgSFQoNdmFsaWRhdGVfb25seRgE", + "IAEoCCLYAQoOTGFiZWxPcGVyYXRpb24SLwoLdXBkYXRlX21hc2sYBCABKAsy", + "Gi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrEjoKBmNyZWF0ZRgBIAEoCzIo", + "Lmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLnJlc291cmNlcy5MYWJlbEgAEjoK", + "BnVwZGF0ZRgCIAEoCzIoLmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLnJlc291", + "cmNlcy5MYWJlbEgAEhAKBnJlbW92ZRgDIAEoCUgAQgsKCW9wZXJhdGlvbiKP", + "AQoUTXV0YXRlTGFiZWxzUmVzcG9uc2USMQoVcGFydGlhbF9mYWlsdXJlX2Vy", + "cm9yGAMgASgLMhIuZ29vZ2xlLnJwYy5TdGF0dXMSRAoHcmVzdWx0cxgCIAMo", + "CzIzLmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLnNlcnZpY2VzLk11dGF0ZUxh", + "YmVsUmVzdWx0IioKEU11dGF0ZUxhYmVsUmVzdWx0EhUKDXJlc291cmNlX25h", + "bWUYASABKAky/wIKDExhYmVsU2VydmljZRKZAQoIR2V0TGFiZWwSMS5nb29n", + "bGUuYWRzLmdvb2dsZWFkcy52Mi5zZXJ2aWNlcy5HZXRMYWJlbFJlcXVlc3Qa", + "KC5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5yZXNvdXJjZXMuTGFiZWwiMILT", + "5JMCKhIoL3YyL3tyZXNvdXJjZV9uYW1lPWN1c3RvbWVycy8qL2xhYmVscy8q", + "fRK1AQoMTXV0YXRlTGFiZWxzEjUuZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIu", + "c2VydmljZXMuTXV0YXRlTGFiZWxzUmVxdWVzdBo2Lmdvb2dsZS5hZHMuZ29v", + "Z2xlYWRzLnYyLnNlcnZpY2VzLk11dGF0ZUxhYmVsc1Jlc3BvbnNlIjaC0+ST", + "AjAiKy92Mi9jdXN0b21lcnMve2N1c3RvbWVyX2lkPSp9L2xhYmVsczptdXRh", + "dGU6ASoaG8pBGGdvb2dsZWFkcy5nb29nbGVhcGlzLmNvbUL4AQokY29tLmdv", + "b2dsZS5hZHMuZ29vZ2xlYWRzLnYyLnNlcnZpY2VzQhFMYWJlbFNlcnZpY2VQ", + "cm90b1ABWkhnb29nbGUuZ29sYW5nLm9yZy9nZW5wcm90by9nb29nbGVhcGlz", + "L2Fkcy9nb29nbGVhZHMvdjIvc2VydmljZXM7c2VydmljZXOiAgNHQUGqAiBH", + "b29nbGUuQWRzLkdvb2dsZUFkcy5WMi5TZXJ2aWNlc8oCIEdvb2dsZVxBZHNc", + "R29vZ2xlQWRzXFYyXFNlcnZpY2Vz6gIkR29vZ2xlOjpBZHM6Okdvb2dsZUFk", + "czo6VjI6OlNlcnZpY2VzYgZwcm90bzM=")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, - new pbr::FileDescriptor[] { global::Google.Ads.GoogleAds.V2.Resources.LabelReflection.Descriptor, global::Google.Api.AnnotationsReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.FieldMaskReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.WrappersReflection.Descriptor, global::Google.Rpc.StatusReflection.Descriptor, global::Google.Api.ClientReflection.Descriptor, }, + new pbr::FileDescriptor[] { global::Google.Ads.GoogleAds.V2.Resources.LabelReflection.Descriptor, global::Google.Api.AnnotationsReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.FieldMaskReflection.Descriptor, global::Google.Rpc.StatusReflection.Descriptor, global::Google.Api.ClientReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Services.GetLabelRequest), global::Google.Ads.GoogleAds.V2.Services.GetLabelRequest.Parser, new[]{ "ResourceName" }, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Services.MutateLabelsRequest), global::Google.Ads.GoogleAds.V2.Services.MutateLabelsRequest.Parser, new[]{ "CustomerId", "Operations", "PartialFailure", "ValidateOnly" }, null, null, null), diff --git a/src/V2/Stubs/MediaFileService.cs b/src/V2/Stubs/MediaFileService.cs index 261e9b2d2..482264375 100644 --- a/src/V2/Stubs/MediaFileService.cs +++ b/src/V2/Stubs/MediaFileService.cs @@ -27,38 +27,37 @@ static MediaFileServiceReflection() { "Cjlnb29nbGUvYWRzL2dvb2dsZWFkcy92Mi9zZXJ2aWNlcy9tZWRpYV9maWxl", "X3NlcnZpY2UucHJvdG8SIGdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLnNlcnZp", "Y2VzGjJnb29nbGUvYWRzL2dvb2dsZWFkcy92Mi9yZXNvdXJjZXMvbWVkaWFf", - "ZmlsZS5wcm90bxocZ29vZ2xlL2FwaS9hbm5vdGF0aW9ucy5wcm90bxoeZ29v", - "Z2xlL3Byb3RvYnVmL3dyYXBwZXJzLnByb3RvGhdnb29nbGUvcnBjL3N0YXR1", - "cy5wcm90bxoXZ29vZ2xlL2FwaS9jbGllbnQucHJvdG8iLAoTR2V0TWVkaWFG", - "aWxlUmVxdWVzdBIVCg1yZXNvdXJjZV9uYW1lGAEgASgJIqgBChdNdXRhdGVN", - "ZWRpYUZpbGVzUmVxdWVzdBITCgtjdXN0b21lcl9pZBgBIAEoCRJICgpvcGVy", - "YXRpb25zGAIgAygLMjQuZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuc2Vydmlj", - "ZXMuTWVkaWFGaWxlT3BlcmF0aW9uEhcKD3BhcnRpYWxfZmFpbHVyZRgDIAEo", - "CBIVCg12YWxpZGF0ZV9vbmx5GAQgASgIImEKEk1lZGlhRmlsZU9wZXJhdGlv", - "bhI+CgZjcmVhdGUYASABKAsyLC5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5y", - "ZXNvdXJjZXMuTWVkaWFGaWxlSABCCwoJb3BlcmF0aW9uIpcBChhNdXRhdGVN", - "ZWRpYUZpbGVzUmVzcG9uc2USMQoVcGFydGlhbF9mYWlsdXJlX2Vycm9yGAMg", - "ASgLMhIuZ29vZ2xlLnJwYy5TdGF0dXMSSAoHcmVzdWx0cxgCIAMoCzI3Lmdv", - "b2dsZS5hZHMuZ29vZ2xlYWRzLnYyLnNlcnZpY2VzLk11dGF0ZU1lZGlhRmls", - "ZVJlc3VsdCIuChVNdXRhdGVNZWRpYUZpbGVSZXN1bHQSFQoNcmVzb3VyY2Vf", - "bmFtZRgBIAEoCTKjAwoQTWVkaWFGaWxlU2VydmljZRKpAQoMR2V0TWVkaWFG", - "aWxlEjUuZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuc2VydmljZXMuR2V0TWVk", - "aWFGaWxlUmVxdWVzdBosLmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLnJlc291", - "cmNlcy5NZWRpYUZpbGUiNILT5JMCLhIsL3YyL3tyZXNvdXJjZV9uYW1lPWN1", - "c3RvbWVycy8qL21lZGlhRmlsZXMvKn0SxQEKEE11dGF0ZU1lZGlhRmlsZXMS", - "OS5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5zZXJ2aWNlcy5NdXRhdGVNZWRp", - "YUZpbGVzUmVxdWVzdBo6Lmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLnNlcnZp", - "Y2VzLk11dGF0ZU1lZGlhRmlsZXNSZXNwb25zZSI6gtPkkwI0Ii8vdjIvY3Vz", - "dG9tZXJzL3tjdXN0b21lcl9pZD0qfS9tZWRpYUZpbGVzOm11dGF0ZToBKhob", - "ykEYZ29vZ2xlYWRzLmdvb2dsZWFwaXMuY29tQvwBCiRjb20uZ29vZ2xlLmFk", - "cy5nb29nbGVhZHMudjIuc2VydmljZXNCFU1lZGlhRmlsZVNlcnZpY2VQcm90", - "b1ABWkhnb29nbGUuZ29sYW5nLm9yZy9nZW5wcm90by9nb29nbGVhcGlzL2Fk", - "cy9nb29nbGVhZHMvdjIvc2VydmljZXM7c2VydmljZXOiAgNHQUGqAiBHb29n", - "bGUuQWRzLkdvb2dsZUFkcy5WMi5TZXJ2aWNlc8oCIEdvb2dsZVxBZHNcR29v", - "Z2xlQWRzXFYyXFNlcnZpY2Vz6gIkR29vZ2xlOjpBZHM6Okdvb2dsZUFkczo6", - "VjI6OlNlcnZpY2VzYgZwcm90bzM=")); + "ZmlsZS5wcm90bxocZ29vZ2xlL2FwaS9hbm5vdGF0aW9ucy5wcm90bxoXZ29v", + "Z2xlL3JwYy9zdGF0dXMucHJvdG8aF2dvb2dsZS9hcGkvY2xpZW50LnByb3Rv", + "IiwKE0dldE1lZGlhRmlsZVJlcXVlc3QSFQoNcmVzb3VyY2VfbmFtZRgBIAEo", + "CSKoAQoXTXV0YXRlTWVkaWFGaWxlc1JlcXVlc3QSEwoLY3VzdG9tZXJfaWQY", + "ASABKAkSSAoKb3BlcmF0aW9ucxgCIAMoCzI0Lmdvb2dsZS5hZHMuZ29vZ2xl", + "YWRzLnYyLnNlcnZpY2VzLk1lZGlhRmlsZU9wZXJhdGlvbhIXCg9wYXJ0aWFs", + "X2ZhaWx1cmUYAyABKAgSFQoNdmFsaWRhdGVfb25seRgEIAEoCCJhChJNZWRp", + "YUZpbGVPcGVyYXRpb24SPgoGY3JlYXRlGAEgASgLMiwuZ29vZ2xlLmFkcy5n", + "b29nbGVhZHMudjIucmVzb3VyY2VzLk1lZGlhRmlsZUgAQgsKCW9wZXJhdGlv", + "biKXAQoYTXV0YXRlTWVkaWFGaWxlc1Jlc3BvbnNlEjEKFXBhcnRpYWxfZmFp", + "bHVyZV9lcnJvchgDIAEoCzISLmdvb2dsZS5ycGMuU3RhdHVzEkgKB3Jlc3Vs", + "dHMYAiADKAsyNy5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5zZXJ2aWNlcy5N", + "dXRhdGVNZWRpYUZpbGVSZXN1bHQiLgoVTXV0YXRlTWVkaWFGaWxlUmVzdWx0", + "EhUKDXJlc291cmNlX25hbWUYASABKAkyowMKEE1lZGlhRmlsZVNlcnZpY2US", + "qQEKDEdldE1lZGlhRmlsZRI1Lmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLnNl", + "cnZpY2VzLkdldE1lZGlhRmlsZVJlcXVlc3QaLC5nb29nbGUuYWRzLmdvb2ds", + "ZWFkcy52Mi5yZXNvdXJjZXMuTWVkaWFGaWxlIjSC0+STAi4SLC92Mi97cmVz", + "b3VyY2VfbmFtZT1jdXN0b21lcnMvKi9tZWRpYUZpbGVzLyp9EsUBChBNdXRh", + "dGVNZWRpYUZpbGVzEjkuZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuc2Vydmlj", + "ZXMuTXV0YXRlTWVkaWFGaWxlc1JlcXVlc3QaOi5nb29nbGUuYWRzLmdvb2ds", + "ZWFkcy52Mi5zZXJ2aWNlcy5NdXRhdGVNZWRpYUZpbGVzUmVzcG9uc2UiOoLT", + "5JMCNCIvL3YyL2N1c3RvbWVycy97Y3VzdG9tZXJfaWQ9Kn0vbWVkaWFGaWxl", + "czptdXRhdGU6ASoaG8pBGGdvb2dsZWFkcy5nb29nbGVhcGlzLmNvbUL8AQok", + "Y29tLmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLnNlcnZpY2VzQhVNZWRpYUZp", + "bGVTZXJ2aWNlUHJvdG9QAVpIZ29vZ2xlLmdvbGFuZy5vcmcvZ2VucHJvdG8v", + "Z29vZ2xlYXBpcy9hZHMvZ29vZ2xlYWRzL3YyL3NlcnZpY2VzO3NlcnZpY2Vz", + "ogIDR0FBqgIgR29vZ2xlLkFkcy5Hb29nbGVBZHMuVjIuU2VydmljZXPKAiBH", + "b29nbGVcQWRzXEdvb2dsZUFkc1xWMlxTZXJ2aWNlc+oCJEdvb2dsZTo6QWRz", + "OjpHb29nbGVBZHM6OlYyOjpTZXJ2aWNlc2IGcHJvdG8z")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, - new pbr::FileDescriptor[] { global::Google.Ads.GoogleAds.V2.Resources.MediaFileReflection.Descriptor, global::Google.Api.AnnotationsReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.WrappersReflection.Descriptor, global::Google.Rpc.StatusReflection.Descriptor, global::Google.Api.ClientReflection.Descriptor, }, + new pbr::FileDescriptor[] { global::Google.Ads.GoogleAds.V2.Resources.MediaFileReflection.Descriptor, global::Google.Api.AnnotationsReflection.Descriptor, global::Google.Rpc.StatusReflection.Descriptor, global::Google.Api.ClientReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Services.GetMediaFileRequest), global::Google.Ads.GoogleAds.V2.Services.GetMediaFileRequest.Parser, new[]{ "ResourceName" }, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Services.MutateMediaFilesRequest), global::Google.Ads.GoogleAds.V2.Services.MutateMediaFilesRequest.Parser, new[]{ "CustomerId", "Operations", "PartialFailure", "ValidateOnly" }, null, null, null), diff --git a/src/V2/Stubs/Metrics.cs b/src/V2/Stubs/Metrics.cs index e165381bd..e569240f8 100644 --- a/src/V2/Stubs/Metrics.cs +++ b/src/V2/Stubs/Metrics.cs @@ -29,7 +29,7 @@ static MetricsReflection() { "L2dvb2dsZWFkcy92Mi9lbnVtcy9pbnRlcmFjdGlvbl9ldmVudF90eXBlLnBy", "b3RvGjhnb29nbGUvYWRzL2dvb2dsZWFkcy92Mi9lbnVtcy9xdWFsaXR5X3Nj", "b3JlX2J1Y2tldC5wcm90bxoeZ29vZ2xlL3Byb3RvYnVmL3dyYXBwZXJzLnBy", - "b3RvGhxnb29nbGUvYXBpL2Fubm90YXRpb25zLnByb3RvIrM5CgdNZXRyaWNz", + "b3RvGhxnb29nbGUvYXBpL2Fubm90YXRpb25zLnByb3RvIv05CgdNZXRyaWNz", "EkgKImFic29sdXRlX3RvcF9pbXByZXNzaW9uX3BlcmNlbnRhZ2UYXyABKAsy", "HC5nb29nbGUucHJvdG9idWYuRG91YmxlVmFsdWUSNQoPYWN0aXZlX3ZpZXdf", "Y3BtGAEgASgLMhwuZ29vZ2xlLnByb3RvYnVmLkRvdWJsZVZhbHVlEjUKD2Fj", @@ -115,94 +115,96 @@ static MetricsReflection() { "YXRlGB8gASgLMhwuZ29vZ2xlLnByb3RvYnVmLkRvdWJsZVZhbHVlEjAKC2Vu", "Z2FnZW1lbnRzGCAgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDY0VmFsdWUS", "RQofaG90ZWxfYXZlcmFnZV9sZWFkX3ZhbHVlX21pY3JvcxhLIAEoCzIcLmdv", - "b2dsZS5wcm90b2J1Zi5Eb3VibGVWYWx1ZRJzCiFoaXN0b3JpY2FsX2NyZWF0", - "aXZlX3F1YWxpdHlfc2NvcmUYUCABKA4ySC5nb29nbGUuYWRzLmdvb2dsZWFk", - "cy52Mi5lbnVtcy5RdWFsaXR5U2NvcmVCdWNrZXRFbnVtLlF1YWxpdHlTY29y", - "ZUJ1Y2tldBJ3CiVoaXN0b3JpY2FsX2xhbmRpbmdfcGFnZV9xdWFsaXR5X3Nj", - "b3JlGFEgASgOMkguZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuZW51bXMuUXVh", - "bGl0eVNjb3JlQnVja2V0RW51bS5RdWFsaXR5U2NvcmVCdWNrZXQSPQoYaGlz", - "dG9yaWNhbF9xdWFsaXR5X3Njb3JlGFIgASgLMhsuZ29vZ2xlLnByb3RvYnVm", - "LkludDY0VmFsdWUScQofaGlzdG9yaWNhbF9zZWFyY2hfcHJlZGljdGVkX2N0", - "chhTIAEoDjJILmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLmVudW1zLlF1YWxp", - "dHlTY29yZUJ1Y2tldEVudW0uUXVhbGl0eVNjb3JlQnVja2V0EjMKDmdtYWls", - "X2ZvcndhcmRzGFUgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDY0VmFsdWUS", - "MAoLZ21haWxfc2F2ZXMYViABKAsyGy5nb29nbGUucHJvdG9idWYuSW50NjRW", - "YWx1ZRI7ChZnbWFpbF9zZWNvbmRhcnlfY2xpY2tzGFcgASgLMhsuZ29vZ2xl", - "LnByb3RvYnVmLkludDY0VmFsdWUSQQocaW1wcmVzc2lvbnNfZnJvbV9zdG9y", - "ZV9yZWFjaBh9IAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQ2NFZhbHVlEjAK", - "C2ltcHJlc3Npb25zGCUgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDY0VmFs", - "dWUSNgoQaW50ZXJhY3Rpb25fcmF0ZRgmIAEoCzIcLmdvb2dsZS5wcm90b2J1", - "Zi5Eb3VibGVWYWx1ZRIxCgxpbnRlcmFjdGlvbnMYJyABKAsyGy5nb29nbGUu", - "cHJvdG9idWYuSW50NjRWYWx1ZRJtChdpbnRlcmFjdGlvbl9ldmVudF90eXBl", - "cxhkIAMoDjJMLmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLmVudW1zLkludGVy", - "YWN0aW9uRXZlbnRUeXBlRW51bS5JbnRlcmFjdGlvbkV2ZW50VHlwZRI4ChJp", - "bnZhbGlkX2NsaWNrX3JhdGUYKCABKAsyHC5nb29nbGUucHJvdG9idWYuRG91", - "YmxlVmFsdWUSMwoOaW52YWxpZF9jbGlja3MYKSABKAsyGy5nb29nbGUucHJv", - "dG9idWYuSW50NjRWYWx1ZRIyCg1tZXNzYWdlX2NoYXRzGH4gASgLMhsuZ29v", - "Z2xlLnByb3RvYnVmLkludDY0VmFsdWUSOAoTbWVzc2FnZV9pbXByZXNzaW9u", - "cxh/IAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQ2NFZhbHVlEjgKEW1lc3Nh", - "Z2VfY2hhdF9yYXRlGIABIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5Eb3VibGVW", - "YWx1ZRJHCiFtb2JpbGVfZnJpZW5kbHlfY2xpY2tzX3BlcmNlbnRhZ2UYbSAB", - "KAsyHC5nb29nbGUucHJvdG9idWYuRG91YmxlVmFsdWUSMwoOb3JnYW5pY19j", - "bGlja3MYbiABKAsyGy5nb29nbGUucHJvdG9idWYuSW50NjRWYWx1ZRI+Chhv", - "cmdhbmljX2NsaWNrc19wZXJfcXVlcnkYbyABKAsyHC5nb29nbGUucHJvdG9i", - "dWYuRG91YmxlVmFsdWUSOAoTb3JnYW5pY19pbXByZXNzaW9ucxhwIAEoCzIb", - "Lmdvb2dsZS5wcm90b2J1Zi5JbnQ2NFZhbHVlEkMKHW9yZ2FuaWNfaW1wcmVz", - "c2lvbnNfcGVyX3F1ZXJ5GHEgASgLMhwuZ29vZ2xlLnByb3RvYnVmLkRvdWJs", - "ZVZhbHVlEjQKD29yZ2FuaWNfcXVlcmllcxhyIAEoCzIbLmdvb2dsZS5wcm90", - "b2J1Zi5JbnQ2NFZhbHVlEjoKFHBlcmNlbnRfbmV3X3Zpc2l0b3JzGCogASgL", - "MhwuZ29vZ2xlLnByb3RvYnVmLkRvdWJsZVZhbHVlEjAKC3Bob25lX2NhbGxz", - "GCsgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDY0VmFsdWUSNgoRcGhvbmVf", - "aW1wcmVzc2lvbnMYLCABKAsyGy5nb29nbGUucHJvdG9idWYuSW50NjRWYWx1", - "ZRI4ChJwaG9uZV90aHJvdWdoX3JhdGUYLSABKAsyHC5nb29nbGUucHJvdG9i", - "dWYuRG91YmxlVmFsdWUSMgoMcmVsYXRpdmVfY3RyGC4gASgLMhwuZ29vZ2xl", - "LnByb3RvYnVmLkRvdWJsZVZhbHVlEkoKJHNlYXJjaF9hYnNvbHV0ZV90b3Bf", - "aW1wcmVzc2lvbl9zaGFyZRhOIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5Eb3Vi", - "bGVWYWx1ZRJWCjBzZWFyY2hfYnVkZ2V0X2xvc3RfYWJzb2x1dGVfdG9wX2lt", - "cHJlc3Npb25fc2hhcmUYWCABKAsyHC5nb29nbGUucHJvdG9idWYuRG91Ymxl", - "VmFsdWUSSQojc2VhcmNoX2J1ZGdldF9sb3N0X2ltcHJlc3Npb25fc2hhcmUY", - "LyABKAsyHC5nb29nbGUucHJvdG9idWYuRG91YmxlVmFsdWUSTQonc2VhcmNo", - "X2J1ZGdldF9sb3N0X3RvcF9pbXByZXNzaW9uX3NoYXJlGFkgASgLMhwuZ29v", - "Z2xlLnByb3RvYnVmLkRvdWJsZVZhbHVlEjgKEnNlYXJjaF9jbGlja19zaGFy", - "ZRgwIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5Eb3VibGVWYWx1ZRJJCiNzZWFy", - "Y2hfZXhhY3RfbWF0Y2hfaW1wcmVzc2lvbl9zaGFyZRgxIAEoCzIcLmdvb2ds", - "ZS5wcm90b2J1Zi5Eb3VibGVWYWx1ZRI9ChdzZWFyY2hfaW1wcmVzc2lvbl9z", - "aGFyZRgyIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5Eb3VibGVWYWx1ZRJUCi5z", - "ZWFyY2hfcmFua19sb3N0X2Fic29sdXRlX3RvcF9pbXByZXNzaW9uX3NoYXJl", - "GFogASgLMhwuZ29vZ2xlLnByb3RvYnVmLkRvdWJsZVZhbHVlEkcKIXNlYXJj", - "aF9yYW5rX2xvc3RfaW1wcmVzc2lvbl9zaGFyZRgzIAEoCzIcLmdvb2dsZS5w", - "cm90b2J1Zi5Eb3VibGVWYWx1ZRJLCiVzZWFyY2hfcmFua19sb3N0X3RvcF9p", - "bXByZXNzaW9uX3NoYXJlGFsgASgLMhwuZ29vZ2xlLnByb3RvYnVmLkRvdWJs", - "ZVZhbHVlEkEKG3NlYXJjaF90b3BfaW1wcmVzc2lvbl9zaGFyZRhcIAEoCzIc", - "Lmdvb2dsZS5wcm90b2J1Zi5Eb3VibGVWYWx1ZRIwCgtzcGVlZF9zY29yZRhr", - "IAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQ2NFZhbHVlEj8KGXRvcF9pbXBy", - "ZXNzaW9uX3BlcmNlbnRhZ2UYXSABKAsyHC5nb29nbGUucHJvdG9idWYuRG91", - "YmxlVmFsdWUSVgowdmFsaWRfYWNjZWxlcmF0ZWRfbW9iaWxlX3BhZ2VzX2Ns", - "aWNrc19wZXJjZW50YWdlGGwgASgLMhwuZ29vZ2xlLnByb3RvYnVmLkRvdWJs", - "ZVZhbHVlEj8KGXZhbHVlX3Blcl9hbGxfY29udmVyc2lvbnMYNCABKAsyHC5n", - "b29nbGUucHJvdG9idWYuRG91YmxlVmFsdWUSOgoUdmFsdWVfcGVyX2NvbnZl", - "cnNpb24YNSABKAsyHC5nb29nbGUucHJvdG9idWYuRG91YmxlVmFsdWUSUwot", - "dmFsdWVfcGVyX2N1cnJlbnRfbW9kZWxfYXR0cmlidXRlZF9jb252ZXJzaW9u", - "GF4gASgLMhwuZ29vZ2xlLnByb3RvYnVmLkRvdWJsZVZhbHVlEj0KF3ZpZGVv", - "X3F1YXJ0aWxlXzEwMF9yYXRlGDYgASgLMhwuZ29vZ2xlLnByb3RvYnVmLkRv", - "dWJsZVZhbHVlEjwKFnZpZGVvX3F1YXJ0aWxlXzI1X3JhdGUYNyABKAsyHC5n", - "b29nbGUucHJvdG9idWYuRG91YmxlVmFsdWUSPAoWdmlkZW9fcXVhcnRpbGVf", - "NTBfcmF0ZRg4IAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5Eb3VibGVWYWx1ZRI8", - "ChZ2aWRlb19xdWFydGlsZV83NV9yYXRlGDkgASgLMhwuZ29vZ2xlLnByb3Rv", - "YnVmLkRvdWJsZVZhbHVlEjUKD3ZpZGVvX3ZpZXdfcmF0ZRg6IAEoCzIcLmdv", - "b2dsZS5wcm90b2J1Zi5Eb3VibGVWYWx1ZRIwCgt2aWRlb192aWV3cxg7IAEo", - "CzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQ2NFZhbHVlEj0KGHZpZXdfdGhyb3Vn", - "aF9jb252ZXJzaW9ucxg8IAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQ2NFZh", - "bHVlQucBCiJjb20uZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuY29tbW9uQgxN", - "ZXRyaWNzUHJvdG9QAVpEZ29vZ2xlLmdvbGFuZy5vcmcvZ2VucHJvdG8vZ29v", - "Z2xlYXBpcy9hZHMvZ29vZ2xlYWRzL3YyL2NvbW1vbjtjb21tb26iAgNHQUGq", - "Ah5Hb29nbGUuQWRzLkdvb2dsZUFkcy5WMi5Db21tb27KAh5Hb29nbGVcQWRz", - "XEdvb2dsZUFkc1xWMlxDb21tb27qAiJHb29nbGU6OkFkczo6R29vZ2xlQWRz", - "OjpWMjo6Q29tbW9uYgZwcm90bzM=")); + "b2dsZS5wcm90b2J1Zi5Eb3VibGVWYWx1ZRJICiFob3RlbF9wcmljZV9kaWZm", + "ZXJlbmNlX3BlcmNlbnRhZ2UYgQEgASgLMhwuZ29vZ2xlLnByb3RvYnVmLkRv", + "dWJsZVZhbHVlEnMKIWhpc3RvcmljYWxfY3JlYXRpdmVfcXVhbGl0eV9zY29y", + "ZRhQIAEoDjJILmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLmVudW1zLlF1YWxp", + "dHlTY29yZUJ1Y2tldEVudW0uUXVhbGl0eVNjb3JlQnVja2V0EncKJWhpc3Rv", + "cmljYWxfbGFuZGluZ19wYWdlX3F1YWxpdHlfc2NvcmUYUSABKA4ySC5nb29n", + "bGUuYWRzLmdvb2dsZWFkcy52Mi5lbnVtcy5RdWFsaXR5U2NvcmVCdWNrZXRF", + "bnVtLlF1YWxpdHlTY29yZUJ1Y2tldBI9ChhoaXN0b3JpY2FsX3F1YWxpdHlf", + "c2NvcmUYUiABKAsyGy5nb29nbGUucHJvdG9idWYuSW50NjRWYWx1ZRJxCh9o", + "aXN0b3JpY2FsX3NlYXJjaF9wcmVkaWN0ZWRfY3RyGFMgASgOMkguZ29vZ2xl", + "LmFkcy5nb29nbGVhZHMudjIuZW51bXMuUXVhbGl0eVNjb3JlQnVja2V0RW51", + "bS5RdWFsaXR5U2NvcmVCdWNrZXQSMwoOZ21haWxfZm9yd2FyZHMYVSABKAsy", + "Gy5nb29nbGUucHJvdG9idWYuSW50NjRWYWx1ZRIwCgtnbWFpbF9zYXZlcxhW", + "IAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQ2NFZhbHVlEjsKFmdtYWlsX3Nl", + "Y29uZGFyeV9jbGlja3MYVyABKAsyGy5nb29nbGUucHJvdG9idWYuSW50NjRW", + "YWx1ZRJBChxpbXByZXNzaW9uc19mcm9tX3N0b3JlX3JlYWNoGH0gASgLMhsu", + "Z29vZ2xlLnByb3RvYnVmLkludDY0VmFsdWUSMAoLaW1wcmVzc2lvbnMYJSAB", + "KAsyGy5nb29nbGUucHJvdG9idWYuSW50NjRWYWx1ZRI2ChBpbnRlcmFjdGlv", + "bl9yYXRlGCYgASgLMhwuZ29vZ2xlLnByb3RvYnVmLkRvdWJsZVZhbHVlEjEK", + "DGludGVyYWN0aW9ucxgnIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQ2NFZh", + "bHVlEm0KF2ludGVyYWN0aW9uX2V2ZW50X3R5cGVzGGQgAygOMkwuZ29vZ2xl", + "LmFkcy5nb29nbGVhZHMudjIuZW51bXMuSW50ZXJhY3Rpb25FdmVudFR5cGVF", + "bnVtLkludGVyYWN0aW9uRXZlbnRUeXBlEjgKEmludmFsaWRfY2xpY2tfcmF0", + "ZRgoIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5Eb3VibGVWYWx1ZRIzCg5pbnZh", + "bGlkX2NsaWNrcxgpIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQ2NFZhbHVl", + "EjIKDW1lc3NhZ2VfY2hhdHMYfiABKAsyGy5nb29nbGUucHJvdG9idWYuSW50", + "NjRWYWx1ZRI4ChNtZXNzYWdlX2ltcHJlc3Npb25zGH8gASgLMhsuZ29vZ2xl", + "LnByb3RvYnVmLkludDY0VmFsdWUSOAoRbWVzc2FnZV9jaGF0X3JhdGUYgAEg", + "ASgLMhwuZ29vZ2xlLnByb3RvYnVmLkRvdWJsZVZhbHVlEkcKIW1vYmlsZV9m", + "cmllbmRseV9jbGlja3NfcGVyY2VudGFnZRhtIAEoCzIcLmdvb2dsZS5wcm90", + "b2J1Zi5Eb3VibGVWYWx1ZRIzCg5vcmdhbmljX2NsaWNrcxhuIAEoCzIbLmdv", + "b2dsZS5wcm90b2J1Zi5JbnQ2NFZhbHVlEj4KGG9yZ2FuaWNfY2xpY2tzX3Bl", + "cl9xdWVyeRhvIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5Eb3VibGVWYWx1ZRI4", + "ChNvcmdhbmljX2ltcHJlc3Npb25zGHAgASgLMhsuZ29vZ2xlLnByb3RvYnVm", + "LkludDY0VmFsdWUSQwodb3JnYW5pY19pbXByZXNzaW9uc19wZXJfcXVlcnkY", + "cSABKAsyHC5nb29nbGUucHJvdG9idWYuRG91YmxlVmFsdWUSNAoPb3JnYW5p", + "Y19xdWVyaWVzGHIgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDY0VmFsdWUS", + "OgoUcGVyY2VudF9uZXdfdmlzaXRvcnMYKiABKAsyHC5nb29nbGUucHJvdG9i", + "dWYuRG91YmxlVmFsdWUSMAoLcGhvbmVfY2FsbHMYKyABKAsyGy5nb29nbGUu", + "cHJvdG9idWYuSW50NjRWYWx1ZRI2ChFwaG9uZV9pbXByZXNzaW9ucxgsIAEo", + "CzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQ2NFZhbHVlEjgKEnBob25lX3Rocm91", + "Z2hfcmF0ZRgtIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5Eb3VibGVWYWx1ZRIy", + "CgxyZWxhdGl2ZV9jdHIYLiABKAsyHC5nb29nbGUucHJvdG9idWYuRG91Ymxl", + "VmFsdWUSSgokc2VhcmNoX2Fic29sdXRlX3RvcF9pbXByZXNzaW9uX3NoYXJl", + "GE4gASgLMhwuZ29vZ2xlLnByb3RvYnVmLkRvdWJsZVZhbHVlElYKMHNlYXJj", + "aF9idWRnZXRfbG9zdF9hYnNvbHV0ZV90b3BfaW1wcmVzc2lvbl9zaGFyZRhY", + "IAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5Eb3VibGVWYWx1ZRJJCiNzZWFyY2hf", + "YnVkZ2V0X2xvc3RfaW1wcmVzc2lvbl9zaGFyZRgvIAEoCzIcLmdvb2dsZS5w", + "cm90b2J1Zi5Eb3VibGVWYWx1ZRJNCidzZWFyY2hfYnVkZ2V0X2xvc3RfdG9w", + "X2ltcHJlc3Npb25fc2hhcmUYWSABKAsyHC5nb29nbGUucHJvdG9idWYuRG91", + "YmxlVmFsdWUSOAoSc2VhcmNoX2NsaWNrX3NoYXJlGDAgASgLMhwuZ29vZ2xl", + "LnByb3RvYnVmLkRvdWJsZVZhbHVlEkkKI3NlYXJjaF9leGFjdF9tYXRjaF9p", + "bXByZXNzaW9uX3NoYXJlGDEgASgLMhwuZ29vZ2xlLnByb3RvYnVmLkRvdWJs", + "ZVZhbHVlEj0KF3NlYXJjaF9pbXByZXNzaW9uX3NoYXJlGDIgASgLMhwuZ29v", + "Z2xlLnByb3RvYnVmLkRvdWJsZVZhbHVlElQKLnNlYXJjaF9yYW5rX2xvc3Rf", + "YWJzb2x1dGVfdG9wX2ltcHJlc3Npb25fc2hhcmUYWiABKAsyHC5nb29nbGUu", + "cHJvdG9idWYuRG91YmxlVmFsdWUSRwohc2VhcmNoX3JhbmtfbG9zdF9pbXBy", + "ZXNzaW9uX3NoYXJlGDMgASgLMhwuZ29vZ2xlLnByb3RvYnVmLkRvdWJsZVZh", + "bHVlEksKJXNlYXJjaF9yYW5rX2xvc3RfdG9wX2ltcHJlc3Npb25fc2hhcmUY", + "WyABKAsyHC5nb29nbGUucHJvdG9idWYuRG91YmxlVmFsdWUSQQobc2VhcmNo", + "X3RvcF9pbXByZXNzaW9uX3NoYXJlGFwgASgLMhwuZ29vZ2xlLnByb3RvYnVm", + "LkRvdWJsZVZhbHVlEjAKC3NwZWVkX3Njb3JlGGsgASgLMhsuZ29vZ2xlLnBy", + "b3RvYnVmLkludDY0VmFsdWUSPwoZdG9wX2ltcHJlc3Npb25fcGVyY2VudGFn", + "ZRhdIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5Eb3VibGVWYWx1ZRJWCjB2YWxp", + "ZF9hY2NlbGVyYXRlZF9tb2JpbGVfcGFnZXNfY2xpY2tzX3BlcmNlbnRhZ2UY", + "bCABKAsyHC5nb29nbGUucHJvdG9idWYuRG91YmxlVmFsdWUSPwoZdmFsdWVf", + "cGVyX2FsbF9jb252ZXJzaW9ucxg0IAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5E", + "b3VibGVWYWx1ZRI6ChR2YWx1ZV9wZXJfY29udmVyc2lvbhg1IAEoCzIcLmdv", + "b2dsZS5wcm90b2J1Zi5Eb3VibGVWYWx1ZRJTCi12YWx1ZV9wZXJfY3VycmVu", + "dF9tb2RlbF9hdHRyaWJ1dGVkX2NvbnZlcnNpb24YXiABKAsyHC5nb29nbGUu", + "cHJvdG9idWYuRG91YmxlVmFsdWUSPQoXdmlkZW9fcXVhcnRpbGVfMTAwX3Jh", + "dGUYNiABKAsyHC5nb29nbGUucHJvdG9idWYuRG91YmxlVmFsdWUSPAoWdmlk", + "ZW9fcXVhcnRpbGVfMjVfcmF0ZRg3IAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5E", + "b3VibGVWYWx1ZRI8ChZ2aWRlb19xdWFydGlsZV81MF9yYXRlGDggASgLMhwu", + "Z29vZ2xlLnByb3RvYnVmLkRvdWJsZVZhbHVlEjwKFnZpZGVvX3F1YXJ0aWxl", + "Xzc1X3JhdGUYOSABKAsyHC5nb29nbGUucHJvdG9idWYuRG91YmxlVmFsdWUS", + "NQoPdmlkZW9fdmlld19yYXRlGDogASgLMhwuZ29vZ2xlLnByb3RvYnVmLkRv", + "dWJsZVZhbHVlEjAKC3ZpZGVvX3ZpZXdzGDsgASgLMhsuZ29vZ2xlLnByb3Rv", + "YnVmLkludDY0VmFsdWUSPQoYdmlld190aHJvdWdoX2NvbnZlcnNpb25zGDwg", + "ASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDY0VmFsdWVC5wEKImNvbS5nb29n", + "bGUuYWRzLmdvb2dsZWFkcy52Mi5jb21tb25CDE1ldHJpY3NQcm90b1ABWkRn", + "b29nbGUuZ29sYW5nLm9yZy9nZW5wcm90by9nb29nbGVhcGlzL2Fkcy9nb29n", + "bGVhZHMvdjIvY29tbW9uO2NvbW1vbqICA0dBQaoCHkdvb2dsZS5BZHMuR29v", + "Z2xlQWRzLlYyLkNvbW1vbsoCHkdvb2dsZVxBZHNcR29vZ2xlQWRzXFYyXENv", + "bW1vbuoCIkdvb2dsZTo6QWRzOjpHb29nbGVBZHM6OlYyOjpDb21tb25iBnBy", + "b3RvMw==")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { global::Google.Ads.GoogleAds.V2.Enums.InteractionEventTypeReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Enums.QualityScoreBucketReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.WrappersReflection.Descriptor, global::Google.Api.AnnotationsReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { - new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Common.Metrics), global::Google.Ads.GoogleAds.V2.Common.Metrics.Parser, new[]{ "AbsoluteTopImpressionPercentage", "ActiveViewCpm", "ActiveViewCtr", "ActiveViewImpressions", "ActiveViewMeasurability", "ActiveViewMeasurableCostMicros", "ActiveViewMeasurableImpressions", "ActiveViewViewability", "AllConversionsFromInteractionsRate", "AllConversionsValue", "AllConversions", "AllConversionsValuePerCost", "AllConversionsFromClickToCall", "AllConversionsFromDirections", "AllConversionsFromInteractionsValuePerInteraction", "AllConversionsFromMenu", "AllConversionsFromOrder", "AllConversionsFromOtherEngagement", "AllConversionsFromStoreVisit", "AllConversionsFromStoreWebsite", "AverageCost", "AverageCpc", "AverageCpe", "AverageCpm", "AverageCpv", "AveragePageViews", "AverageTimeOnSite", "BenchmarkAverageMaxCpc", "BenchmarkCtr", "BounceRate", "Clicks", "CombinedClicks", "CombinedClicksPerQuery", "CombinedQueries", "ContentBudgetLostImpressionShare", "ContentImpressionShare", "ConversionLastReceivedRequestDateTime", "ConversionLastConversionDate", "ContentRankLostImpressionShare", "ConversionsFromInteractionsRate", "ConversionsValue", "ConversionsValuePerCost", "ConversionsFromInteractionsValuePerInteraction", "Conversions", "CostMicros", "CostPerAllConversions", "CostPerConversion", "CostPerCurrentModelAttributedConversion", "CrossDeviceConversions", "Ctr", "CurrentModelAttributedConversions", "CurrentModelAttributedConversionsFromInteractionsRate", "CurrentModelAttributedConversionsFromInteractionsValuePerInteraction", "CurrentModelAttributedConversionsValue", "CurrentModelAttributedConversionsValuePerCost", "EngagementRate", "Engagements", "HotelAverageLeadValueMicros", "HistoricalCreativeQualityScore", "HistoricalLandingPageQualityScore", "HistoricalQualityScore", "HistoricalSearchPredictedCtr", "GmailForwards", "GmailSaves", "GmailSecondaryClicks", "ImpressionsFromStoreReach", "Impressions", "InteractionRate", "Interactions", "InteractionEventTypes", "InvalidClickRate", "InvalidClicks", "MessageChats", "MessageImpressions", "MessageChatRate", "MobileFriendlyClicksPercentage", "OrganicClicks", "OrganicClicksPerQuery", "OrganicImpressions", "OrganicImpressionsPerQuery", "OrganicQueries", "PercentNewVisitors", "PhoneCalls", "PhoneImpressions", "PhoneThroughRate", "RelativeCtr", "SearchAbsoluteTopImpressionShare", "SearchBudgetLostAbsoluteTopImpressionShare", "SearchBudgetLostImpressionShare", "SearchBudgetLostTopImpressionShare", "SearchClickShare", "SearchExactMatchImpressionShare", "SearchImpressionShare", "SearchRankLostAbsoluteTopImpressionShare", "SearchRankLostImpressionShare", "SearchRankLostTopImpressionShare", "SearchTopImpressionShare", "SpeedScore", "TopImpressionPercentage", "ValidAcceleratedMobilePagesClicksPercentage", "ValuePerAllConversions", "ValuePerConversion", "ValuePerCurrentModelAttributedConversion", "VideoQuartile100Rate", "VideoQuartile25Rate", "VideoQuartile50Rate", "VideoQuartile75Rate", "VideoViewRate", "VideoViews", "ViewThroughConversions" }, null, null, null) + new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Common.Metrics), global::Google.Ads.GoogleAds.V2.Common.Metrics.Parser, new[]{ "AbsoluteTopImpressionPercentage", "ActiveViewCpm", "ActiveViewCtr", "ActiveViewImpressions", "ActiveViewMeasurability", "ActiveViewMeasurableCostMicros", "ActiveViewMeasurableImpressions", "ActiveViewViewability", "AllConversionsFromInteractionsRate", "AllConversionsValue", "AllConversions", "AllConversionsValuePerCost", "AllConversionsFromClickToCall", "AllConversionsFromDirections", "AllConversionsFromInteractionsValuePerInteraction", "AllConversionsFromMenu", "AllConversionsFromOrder", "AllConversionsFromOtherEngagement", "AllConversionsFromStoreVisit", "AllConversionsFromStoreWebsite", "AverageCost", "AverageCpc", "AverageCpe", "AverageCpm", "AverageCpv", "AveragePageViews", "AverageTimeOnSite", "BenchmarkAverageMaxCpc", "BenchmarkCtr", "BounceRate", "Clicks", "CombinedClicks", "CombinedClicksPerQuery", "CombinedQueries", "ContentBudgetLostImpressionShare", "ContentImpressionShare", "ConversionLastReceivedRequestDateTime", "ConversionLastConversionDate", "ContentRankLostImpressionShare", "ConversionsFromInteractionsRate", "ConversionsValue", "ConversionsValuePerCost", "ConversionsFromInteractionsValuePerInteraction", "Conversions", "CostMicros", "CostPerAllConversions", "CostPerConversion", "CostPerCurrentModelAttributedConversion", "CrossDeviceConversions", "Ctr", "CurrentModelAttributedConversions", "CurrentModelAttributedConversionsFromInteractionsRate", "CurrentModelAttributedConversionsFromInteractionsValuePerInteraction", "CurrentModelAttributedConversionsValue", "CurrentModelAttributedConversionsValuePerCost", "EngagementRate", "Engagements", "HotelAverageLeadValueMicros", "HotelPriceDifferencePercentage", "HistoricalCreativeQualityScore", "HistoricalLandingPageQualityScore", "HistoricalQualityScore", "HistoricalSearchPredictedCtr", "GmailForwards", "GmailSaves", "GmailSecondaryClicks", "ImpressionsFromStoreReach", "Impressions", "InteractionRate", "Interactions", "InteractionEventTypes", "InvalidClickRate", "InvalidClicks", "MessageChats", "MessageImpressions", "MessageChatRate", "MobileFriendlyClicksPercentage", "OrganicClicks", "OrganicClicksPerQuery", "OrganicImpressions", "OrganicImpressionsPerQuery", "OrganicQueries", "PercentNewVisitors", "PhoneCalls", "PhoneImpressions", "PhoneThroughRate", "RelativeCtr", "SearchAbsoluteTopImpressionShare", "SearchBudgetLostAbsoluteTopImpressionShare", "SearchBudgetLostImpressionShare", "SearchBudgetLostTopImpressionShare", "SearchClickShare", "SearchExactMatchImpressionShare", "SearchImpressionShare", "SearchRankLostAbsoluteTopImpressionShare", "SearchRankLostImpressionShare", "SearchRankLostTopImpressionShare", "SearchTopImpressionShare", "SpeedScore", "TopImpressionPercentage", "ValidAcceleratedMobilePagesClicksPercentage", "ValuePerAllConversions", "ValuePerConversion", "ValuePerCurrentModelAttributedConversion", "VideoQuartile100Rate", "VideoQuartile25Rate", "VideoQuartile50Rate", "VideoQuartile75Rate", "VideoViewRate", "VideoViews", "ViewThroughConversions" }, null, null, null) })); } #endregion @@ -295,6 +297,7 @@ public Metrics(Metrics other) : this() { EngagementRate = other.EngagementRate; Engagements = other.Engagements; HotelAverageLeadValueMicros = other.HotelAverageLeadValueMicros; + HotelPriceDifferencePercentage = other.HotelPriceDifferencePercentage; historicalCreativeQualityScore_ = other.historicalCreativeQualityScore_; historicalLandingPageQualityScore_ = other.historicalLandingPageQualityScore_; HistoricalQualityScore = other.HistoricalQualityScore; @@ -1368,6 +1371,23 @@ public double? HotelAverageLeadValueMicros { } + /// Field number for the "hotel_price_difference_percentage" field. + public const int HotelPriceDifferencePercentageFieldNumber = 129; + private static readonly pb::FieldCodec _single_hotelPriceDifferencePercentage_codec = pb::FieldCodec.ForStructWrapper(1034); + private double? hotelPriceDifferencePercentage_; + /// + /// The average price difference between the price offered by reporting hotel + /// advertiser and the cheapest price offered by the competing advertiser. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double? HotelPriceDifferencePercentage { + get { return hotelPriceDifferencePercentage_; } + set { + hotelPriceDifferencePercentage_ = value; + } + } + + /// Field number for the "historical_creative_quality_score" field. public const int HistoricalCreativeQualityScoreFieldNumber = 80; private global::Google.Ads.GoogleAds.V2.Enums.QualityScoreBucketEnum.Types.QualityScoreBucket historicalCreativeQualityScore_ = 0; @@ -2340,6 +2360,7 @@ public bool Equals(Metrics other) { if (!pbc::ProtobufEqualityComparers.BitwiseNullableDoubleEqualityComparer.Equals(EngagementRate, other.EngagementRate)) return false; if (Engagements != other.Engagements) return false; if (!pbc::ProtobufEqualityComparers.BitwiseNullableDoubleEqualityComparer.Equals(HotelAverageLeadValueMicros, other.HotelAverageLeadValueMicros)) return false; + if (!pbc::ProtobufEqualityComparers.BitwiseNullableDoubleEqualityComparer.Equals(HotelPriceDifferencePercentage, other.HotelPriceDifferencePercentage)) return false; if (HistoricalCreativeQualityScore != other.HistoricalCreativeQualityScore) return false; if (HistoricalLandingPageQualityScore != other.HistoricalLandingPageQualityScore) return false; if (HistoricalQualityScore != other.HistoricalQualityScore) return false; @@ -2456,6 +2477,7 @@ public override int GetHashCode() { if (engagementRate_ != null) hash ^= pbc::ProtobufEqualityComparers.BitwiseNullableDoubleEqualityComparer.GetHashCode(EngagementRate); if (engagements_ != null) hash ^= Engagements.GetHashCode(); if (hotelAverageLeadValueMicros_ != null) hash ^= pbc::ProtobufEqualityComparers.BitwiseNullableDoubleEqualityComparer.GetHashCode(HotelAverageLeadValueMicros); + if (hotelPriceDifferencePercentage_ != null) hash ^= pbc::ProtobufEqualityComparers.BitwiseNullableDoubleEqualityComparer.GetHashCode(HotelPriceDifferencePercentage); if (HistoricalCreativeQualityScore != 0) hash ^= HistoricalCreativeQualityScore.GetHashCode(); if (HistoricalLandingPageQualityScore != 0) hash ^= HistoricalLandingPageQualityScore.GetHashCode(); if (historicalQualityScore_ != null) hash ^= HistoricalQualityScore.GetHashCode(); @@ -2852,6 +2874,9 @@ public void WriteTo(pb::CodedOutputStream output) { if (messageChatRate_ != null) { _single_messageChatRate_codec.WriteTagAndValue(output, MessageChatRate); } + if (hotelPriceDifferencePercentage_ != null) { + _single_hotelPriceDifferencePercentage_codec.WriteTagAndValue(output, HotelPriceDifferencePercentage); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -3034,6 +3059,9 @@ public int CalculateSize() { if (hotelAverageLeadValueMicros_ != null) { size += _single_hotelAverageLeadValueMicros_codec.CalculateSizeWithTag(HotelAverageLeadValueMicros); } + if (hotelPriceDifferencePercentage_ != null) { + size += _single_hotelPriceDifferencePercentage_codec.CalculateSizeWithTag(HotelPriceDifferencePercentage); + } if (HistoricalCreativeQualityScore != 0) { size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) HistoricalCreativeQualityScore); } @@ -3489,6 +3517,11 @@ public void MergeFrom(Metrics other) { HotelAverageLeadValueMicros = other.HotelAverageLeadValueMicros; } } + if (other.hotelPriceDifferencePercentage_ != null) { + if (hotelPriceDifferencePercentage_ == null || other.HotelPriceDifferencePercentage != 0D) { + HotelPriceDifferencePercentage = other.HotelPriceDifferencePercentage; + } + } if (other.HistoricalCreativeQualityScore != 0) { HistoricalCreativeQualityScore = other.HistoricalCreativeQualityScore; } @@ -4509,6 +4542,13 @@ public void MergeFrom(pb::CodedInputStream input) { } break; } + case 1034: { + double? value = _single_hotelPriceDifferencePercentage_codec.Read(input); + if (hotelPriceDifferencePercentage_ == null || value != 0D) { + HotelPriceDifferencePercentage = value; + } + break; + } } } } diff --git a/src/V2/Stubs/PaymentsAccount.cs b/src/V2/Stubs/PaymentsAccount.cs index 82d3c3680..623992884 100644 --- a/src/V2/Stubs/PaymentsAccount.cs +++ b/src/V2/Stubs/PaymentsAccount.cs @@ -52,7 +52,7 @@ static PaymentsAccountReflection() { } #region Messages /// - /// A Payments account, which can be used to set up billing for an Ads customer. + /// A payments account, which can be used to set up billing for an Ads customer. /// public sealed partial class PaymentsAccount : pb::IMessage { private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new PaymentsAccount()); @@ -97,7 +97,7 @@ public PaymentsAccount Clone() { public const int ResourceNameFieldNumber = 1; private string resourceName_ = ""; /// - /// The resource name of the Payments account. + /// The resource name of the payments account. /// PaymentsAccount resource names have the form: /// /// `customers/{customer_id}/paymentsAccounts/{payments_account_id}` @@ -115,7 +115,7 @@ public string ResourceName { private static readonly pb::FieldCodec _single_paymentsAccountId_codec = pb::FieldCodec.ForClassWrapper(18); private string paymentsAccountId_; /// - /// A 16 digit ID used to identify a Payments account. + /// A 16 digit ID used to identify a payments account. /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public string PaymentsAccountId { @@ -131,7 +131,7 @@ public string PaymentsAccountId { private static readonly pb::FieldCodec _single_name_codec = pb::FieldCodec.ForClassWrapper(26); private string name_; /// - /// The name of the Payments account. + /// The name of the payments account. /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public string Name { @@ -147,7 +147,7 @@ public string Name { private static readonly pb::FieldCodec _single_currencyCode_codec = pb::FieldCodec.ForClassWrapper(34); private string currencyCode_; /// - /// The currency code of the Payments account. + /// The currency code of the payments account. /// A subset of the currency codes derived from the ISO 4217 standard is /// supported. /// @@ -165,8 +165,8 @@ public string CurrencyCode { private static readonly pb::FieldCodec _single_paymentsProfileId_codec = pb::FieldCodec.ForClassWrapper(42); private string paymentsProfileId_; /// - /// A 12 digit ID used to identify the Payments profile associated with the - /// Payments account. + /// A 12 digit ID used to identify the payments profile associated with the + /// payments account. /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public string PaymentsProfileId { @@ -182,7 +182,7 @@ public string PaymentsProfileId { private static readonly pb::FieldCodec _single_secondaryPaymentsProfileId_codec = pb::FieldCodec.ForClassWrapper(50); private string secondaryPaymentsProfileId_; /// - /// A secondary Payments profile ID present in uncommon situations, e.g. + /// A secondary payments profile ID present in uncommon situations, e.g. /// when a sequential liability agreement has been arranged. /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] diff --git a/src/V2/Stubs/PaymentsAccountService.cs b/src/V2/Stubs/PaymentsAccountService.cs index 50249aefc..e6baf15fe 100644 --- a/src/V2/Stubs/PaymentsAccountService.cs +++ b/src/V2/Stubs/PaymentsAccountService.cs @@ -57,7 +57,7 @@ static PaymentsAccountServiceReflection() { } #region Messages /// - /// Request message for fetching all accessible Payments accounts. + /// Request message for fetching all accessible payments accounts. /// public sealed partial class ListPaymentsAccountsRequest : pb::IMessage { private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new ListPaymentsAccountsRequest()); @@ -234,7 +234,7 @@ public ListPaymentsAccountsResponse Clone() { = pb::FieldCodec.ForMessage(10, global::Google.Ads.GoogleAds.V2.Resources.PaymentsAccount.Parser); private readonly pbc::RepeatedField paymentsAccounts_ = new pbc::RepeatedField(); /// - /// The list of accessible Payments accounts. + /// The list of accessible payments accounts. /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public pbc::RepeatedField PaymentsAccounts { diff --git a/src/V2/Stubs/PaymentsAccountServiceClient.cs b/src/V2/Stubs/PaymentsAccountServiceClient.cs index f500c07a9..8dbfe3e92 100644 --- a/src/V2/Stubs/PaymentsAccountServiceClient.cs +++ b/src/V2/Stubs/PaymentsAccountServiceClient.cs @@ -347,7 +347,7 @@ public virtual PaymentsAccountService.PaymentsAccountServiceClient GrpcClient } /// - /// Returns all Payments accounts associated with all managers + /// Returns all payments accounts associated with all managers /// between the login customer ID and specified serving customer in the /// hierarchy, inclusive. /// @@ -370,7 +370,7 @@ public virtual PaymentsAccountService.PaymentsAccountServiceClient GrpcClient callSettings); /// - /// Returns all Payments accounts associated with all managers + /// Returns all payments accounts associated with all managers /// between the login customer ID and specified serving customer in the /// hierarchy, inclusive. /// @@ -390,7 +390,7 @@ public virtual PaymentsAccountService.PaymentsAccountServiceClient GrpcClient gaxgrpc::CallSettings.FromCancellationToken(cancellationToken)); /// - /// Returns all Payments accounts associated with all managers + /// Returns all payments accounts associated with all managers /// between the login customer ID and specified serving customer in the /// hierarchy, inclusive. /// @@ -413,7 +413,7 @@ public virtual ListPaymentsAccountsResponse ListPaymentsAccounts( callSettings); /// - /// Returns all Payments accounts associated with all managers + /// Returns all payments accounts associated with all managers /// between the login customer ID and specified serving customer in the /// hierarchy, inclusive. /// @@ -434,7 +434,7 @@ public virtual ListPaymentsAccountsResponse ListPaymentsAccounts( } /// - /// Returns all Payments accounts associated with all managers + /// Returns all payments accounts associated with all managers /// between the login customer ID and specified serving customer in the /// hierarchy, inclusive. /// @@ -454,7 +454,7 @@ public virtual ListPaymentsAccountsResponse ListPaymentsAccounts( gaxgrpc::CallSettings.FromCancellationToken(cancellationToken)); /// - /// Returns all Payments accounts associated with all managers + /// Returns all payments accounts associated with all managers /// between the login customer ID and specified serving customer in the /// hierarchy, inclusive. /// @@ -525,7 +525,7 @@ partial void Modify_ApiCall(ref gaxgrpc::ApiCall - /// Returns all Payments accounts associated with all managers + /// Returns all payments accounts associated with all managers /// between the login customer ID and specified serving customer in the /// hierarchy, inclusive. /// @@ -547,7 +547,7 @@ partial void Modify_ApiCall(ref gaxgrpc::ApiCall - /// Returns all Payments accounts associated with all managers + /// Returns all payments accounts associated with all managers /// between the login customer ID and specified serving customer in the /// hierarchy, inclusive. /// diff --git a/src/V2/Stubs/PaymentsAccountServiceGrpc.cs b/src/V2/Stubs/PaymentsAccountServiceGrpc.cs index 3e038a3f3..88fd04ad7 100644 --- a/src/V2/Stubs/PaymentsAccountServiceGrpc.cs +++ b/src/V2/Stubs/PaymentsAccountServiceGrpc.cs @@ -25,7 +25,7 @@ namespace Google.Ads.GoogleAds.V2.Services { /// - /// Service to provide Payments accounts that can be used to set up consolidated + /// Service to provide payments accounts that can be used to set up consolidated /// billing. /// public static partial class PaymentsAccountService @@ -52,7 +52,7 @@ public static partial class PaymentsAccountService public abstract partial class PaymentsAccountServiceBase { /// - /// Returns all Payments accounts associated with all managers + /// Returns all payments accounts associated with all managers /// between the login customer ID and specified serving customer in the /// hierarchy, inclusive. /// @@ -90,7 +90,7 @@ protected PaymentsAccountServiceClient(ClientBaseConfiguration configuration) : } /// - /// Returns all Payments accounts associated with all managers + /// Returns all payments accounts associated with all managers /// between the login customer ID and specified serving customer in the /// hierarchy, inclusive. /// @@ -104,7 +104,7 @@ protected PaymentsAccountServiceClient(ClientBaseConfiguration configuration) : return ListPaymentsAccounts(request, new grpc::CallOptions(headers, deadline, cancellationToken)); } /// - /// Returns all Payments accounts associated with all managers + /// Returns all payments accounts associated with all managers /// between the login customer ID and specified serving customer in the /// hierarchy, inclusive. /// @@ -116,7 +116,7 @@ protected PaymentsAccountServiceClient(ClientBaseConfiguration configuration) : return CallInvoker.BlockingUnaryCall(__Method_ListPaymentsAccounts, null, options, request); } /// - /// Returns all Payments accounts associated with all managers + /// Returns all payments accounts associated with all managers /// between the login customer ID and specified serving customer in the /// hierarchy, inclusive. /// @@ -130,7 +130,7 @@ protected PaymentsAccountServiceClient(ClientBaseConfiguration configuration) : return ListPaymentsAccountsAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken)); } /// - /// Returns all Payments accounts associated with all managers + /// Returns all payments accounts associated with all managers /// between the login customer ID and specified serving customer in the /// hierarchy, inclusive. /// diff --git a/src/V2/Stubs/PolicyReviewStatus.cs b/src/V2/Stubs/PolicyReviewStatus.cs index 3ed559c10..86f00aa86 100644 --- a/src/V2/Stubs/PolicyReviewStatus.cs +++ b/src/V2/Stubs/PolicyReviewStatus.cs @@ -26,16 +26,16 @@ static PolicyReviewStatusReflection() { string.Concat( "Cjhnb29nbGUvYWRzL2dvb2dsZWFkcy92Mi9lbnVtcy9wb2xpY3lfcmV2aWV3", "X3N0YXR1cy5wcm90bxIdZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuZW51bXMa", - "HGdvb2dsZS9hcGkvYW5ub3RhdGlvbnMucHJvdG8ihAEKFlBvbGljeVJldmll", - "d1N0YXR1c0VudW0iagoSUG9saWN5UmV2aWV3U3RhdHVzEg8KC1VOU1BFQ0lG", - "SUVEEAASCwoHVU5LTk9XThABEhYKElJFVklFV19JTl9QUk9HUkVTUxACEgwK", - "CFJFVklFV0VEEAMSEAoMVU5ERVJfQVBQRUFMEARC7AEKIWNvbS5nb29nbGUu", - "YWRzLmdvb2dsZWFkcy52Mi5lbnVtc0IXUG9saWN5UmV2aWV3U3RhdHVzUHJv", - "dG9QAVpCZ29vZ2xlLmdvbGFuZy5vcmcvZ2VucHJvdG8vZ29vZ2xlYXBpcy9h", - "ZHMvZ29vZ2xlYWRzL3YyL2VudW1zO2VudW1zogIDR0FBqgIdR29vZ2xlLkFk", - "cy5Hb29nbGVBZHMuVjIuRW51bXPKAh1Hb29nbGVcQWRzXEdvb2dsZUFkc1xW", - "MlxFbnVtc+oCIUdvb2dsZTo6QWRzOjpHb29nbGVBZHM6OlYyOjpFbnVtc2IG", - "cHJvdG8z")); + "HGdvb2dsZS9hcGkvYW5ub3RhdGlvbnMucHJvdG8inQEKFlBvbGljeVJldmll", + "d1N0YXR1c0VudW0iggEKElBvbGljeVJldmlld1N0YXR1cxIPCgtVTlNQRUNJ", + "RklFRBAAEgsKB1VOS05PV04QARIWChJSRVZJRVdfSU5fUFJPR1JFU1MQAhIM", + "CghSRVZJRVdFRBADEhAKDFVOREVSX0FQUEVBTBAEEhYKEkVMSUdJQkxFX01B", + "WV9TRVJWRRAFQuwBCiFjb20uZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuZW51", + "bXNCF1BvbGljeVJldmlld1N0YXR1c1Byb3RvUAFaQmdvb2dsZS5nb2xhbmcu", + "b3JnL2dlbnByb3RvL2dvb2dsZWFwaXMvYWRzL2dvb2dsZWFkcy92Mi9lbnVt", + "cztlbnVtc6ICA0dBQaoCHUdvb2dsZS5BZHMuR29vZ2xlQWRzLlYyLkVudW1z", + "ygIdR29vZ2xlXEFkc1xHb29nbGVBZHNcVjJcRW51bXPqAiFHb29nbGU6OkFk", + "czo6R29vZ2xlQWRzOjpWMjo6RW51bXNiBnByb3RvMw==")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { global::Google.Api.AnnotationsReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { @@ -179,6 +179,11 @@ public enum PolicyReviewStatus { /// been appealed. /// [pbr::OriginalName("UNDER_APPEAL")] UnderAppeal = 4, + /// + /// The resource is eligible and may be serving but could still undergo + /// further review. + /// + [pbr::OriginalName("ELIGIBLE_MAY_SERVE")] EligibleMayServe = 5, } } diff --git a/src/V2/Stubs/ReachPlanAdLength.cs b/src/V2/Stubs/ReachPlanAdLength.cs new file mode 100644 index 000000000..1222f10c4 --- /dev/null +++ b/src/V2/Stubs/ReachPlanAdLength.cs @@ -0,0 +1,190 @@ +// +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/ads/googleads/v2/enums/reach_plan_ad_length.proto +// +#pragma warning disable 1591, 0612, 3021 +#region Designer generated code + +using pb = global::Google.Protobuf; +using pbc = global::Google.Protobuf.Collections; +using pbr = global::Google.Protobuf.Reflection; +using scg = global::System.Collections.Generic; +namespace Google.Ads.GoogleAds.V2.Enums { + + /// Holder for reflection information generated from google/ads/googleads/v2/enums/reach_plan_ad_length.proto + public static partial class ReachPlanAdLengthReflection { + + #region Descriptor + /// File descriptor for google/ads/googleads/v2/enums/reach_plan_ad_length.proto + public static pbr::FileDescriptor Descriptor { + get { return descriptor; } + } + private static pbr::FileDescriptor descriptor; + + static ReachPlanAdLengthReflection() { + byte[] descriptorData = global::System.Convert.FromBase64String( + string.Concat( + "Cjhnb29nbGUvYWRzL2dvb2dsZWFkcy92Mi9lbnVtcy9yZWFjaF9wbGFuX2Fk", + "X2xlbmd0aC5wcm90bxIdZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuZW51bXMa", + "HGdvb2dsZS9hcGkvYW5ub3RhdGlvbnMucHJvdG8ilgEKFVJlYWNoUGxhbkFk", + "TGVuZ3RoRW51bSJ9ChFSZWFjaFBsYW5BZExlbmd0aBIPCgtVTlNQRUNJRklF", + "RBAAEgsKB1VOS05PV04QARIPCgtTSVhfU0VDT05EUxACEh0KGUZJRlRFRU5f", + "T1JfVFdFTlRZX1NFQ09ORFMQAxIaChZUV0VOVFlfU0VDT05EU19PUl9NT1JF", + "EARC6wEKIWNvbS5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5lbnVtc0IWUmVh", + "Y2hQbGFuQWRMZW5ndGhQcm90b1ABWkJnb29nbGUuZ29sYW5nLm9yZy9nZW5w", + "cm90by9nb29nbGVhcGlzL2Fkcy9nb29nbGVhZHMvdjIvZW51bXM7ZW51bXOi", + "AgNHQUGqAh1Hb29nbGUuQWRzLkdvb2dsZUFkcy5WMi5FbnVtc8oCHUdvb2ds", + "ZVxBZHNcR29vZ2xlQWRzXFYyXEVudW1z6gIhR29vZ2xlOjpBZHM6Okdvb2ds", + "ZUFkczo6VjI6OkVudW1zYgZwcm90bzM=")); + descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, + new pbr::FileDescriptor[] { global::Google.Api.AnnotationsReflection.Descriptor, }, + new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { + new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Enums.ReachPlanAdLengthEnum), global::Google.Ads.GoogleAds.V2.Enums.ReachPlanAdLengthEnum.Parser, null, null, new[]{ typeof(global::Google.Ads.GoogleAds.V2.Enums.ReachPlanAdLengthEnum.Types.ReachPlanAdLength) }, null) + })); + } + #endregion + + } + #region Messages + /// + /// Message describing length of a plannable video ad. + /// + public sealed partial class ReachPlanAdLengthEnum : pb::IMessage { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new ReachPlanAdLengthEnum()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pbr::MessageDescriptor Descriptor { + get { return global::Google.Ads.GoogleAds.V2.Enums.ReachPlanAdLengthReflection.Descriptor.MessageTypes[0]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public ReachPlanAdLengthEnum() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public ReachPlanAdLengthEnum(ReachPlanAdLengthEnum other) : this() { + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public ReachPlanAdLengthEnum Clone() { + return new ReachPlanAdLengthEnum(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override bool Equals(object other) { + return Equals(other as ReachPlanAdLengthEnum); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Equals(ReachPlanAdLengthEnum other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override int GetHashCode() { + int hash = 1; + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void WriteTo(pb::CodedOutputStream output) { + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CalculateSize() { + int size = 0; + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(ReachPlanAdLengthEnum other) { + if (other == null) { + return; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(pb::CodedInputStream input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + } + } + } + + #region Nested types + /// Container for nested types declared in the ReachPlanAdLengthEnum message type. + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static partial class Types { + /// + /// Possible ad length values. + /// + public enum ReachPlanAdLength { + /// + /// Not specified. + /// + [pbr::OriginalName("UNSPECIFIED")] Unspecified = 0, + /// + /// The value is unknown in this version. + /// + [pbr::OriginalName("UNKNOWN")] Unknown = 1, + /// + /// 6 seconds long ad. + /// + [pbr::OriginalName("SIX_SECONDS")] SixSeconds = 2, + /// + /// 15 or 20 seconds long ad. + /// + [pbr::OriginalName("FIFTEEN_OR_TWENTY_SECONDS")] FifteenOrTwentySeconds = 3, + /// + /// More than 20 seconds long ad. + /// + [pbr::OriginalName("TWENTY_SECONDS_OR_MORE")] TwentySecondsOrMore = 4, + } + + } + #endregion + + } + + #endregion + +} + +#endregion Designer generated code diff --git a/src/V2/Stubs/ReachPlanAgeRange.cs b/src/V2/Stubs/ReachPlanAgeRange.cs new file mode 100644 index 000000000..ccb3129af --- /dev/null +++ b/src/V2/Stubs/ReachPlanAgeRange.cs @@ -0,0 +1,293 @@ +// +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/ads/googleads/v2/enums/reach_plan_age_range.proto +// +#pragma warning disable 1591, 0612, 3021 +#region Designer generated code + +using pb = global::Google.Protobuf; +using pbc = global::Google.Protobuf.Collections; +using pbr = global::Google.Protobuf.Reflection; +using scg = global::System.Collections.Generic; +namespace Google.Ads.GoogleAds.V2.Enums { + + /// Holder for reflection information generated from google/ads/googleads/v2/enums/reach_plan_age_range.proto + public static partial class ReachPlanAgeRangeReflection { + + #region Descriptor + /// File descriptor for google/ads/googleads/v2/enums/reach_plan_age_range.proto + public static pbr::FileDescriptor Descriptor { + get { return descriptor; } + } + private static pbr::FileDescriptor descriptor; + + static ReachPlanAgeRangeReflection() { + byte[] descriptorData = global::System.Convert.FromBase64String( + string.Concat( + "Cjhnb29nbGUvYWRzL2dvb2dsZWFkcy92Mi9lbnVtcy9yZWFjaF9wbGFuX2Fn", + "ZV9yYW5nZS5wcm90bxIdZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuZW51bXMa", + "HGdvb2dsZS9hcGkvYW5ub3RhdGlvbnMucHJvdG8iiwUKFVJlYWNoUGxhbkFn", + "ZVJhbmdlRW51bSLxBAoRUmVhY2hQbGFuQWdlUmFuZ2USDwoLVU5TUEVDSUZJ", + "RUQQABILCgdVTktOT1dOEAESFQoPQUdFX1JBTkdFXzE4XzI0ENnZHhITCg9B", + "R0VfUkFOR0VfMThfMzQQAhITCg9BR0VfUkFOR0VfMThfNDQQAxITCg9BR0Vf", + "UkFOR0VfMThfNDkQBBITCg9BR0VfUkFOR0VfMThfNTQQBRITCg9BR0VfUkFO", + "R0VfMThfNjQQBhIWChJBR0VfUkFOR0VfMThfNjVfVVAQBxITCg9BR0VfUkFO", + "R0VfMjFfMzQQCBIVCg9BR0VfUkFOR0VfMjVfMzQQ2tkeEhMKD0FHRV9SQU5H", + "RV8yNV80NBAJEhMKD0FHRV9SQU5HRV8yNV80ORAKEhMKD0FHRV9SQU5HRV8y", + "NV81NBALEhMKD0FHRV9SQU5HRV8yNV82NBAMEhYKEkFHRV9SQU5HRV8yNV82", + "NV9VUBANEhUKD0FHRV9SQU5HRV8zNV80NBDb2R4SEwoPQUdFX1JBTkdFXzM1", + "XzQ5EA4SEwoPQUdFX1JBTkdFXzM1XzU0EA8SEwoPQUdFX1JBTkdFXzM1XzY0", + "EBASFgoSQUdFX1JBTkdFXzM1XzY1X1VQEBESFQoPQUdFX1JBTkdFXzQ1XzU0", + "ENzZHhITCg9BR0VfUkFOR0VfNDVfNjQQEhIWChJBR0VfUkFOR0VfNDVfNjVf", + "VVAQExIWChJBR0VfUkFOR0VfNTBfNjVfVVAQFBIVCg9BR0VfUkFOR0VfNTVf", + "NjQQ3dkeEhYKEkFHRV9SQU5HRV81NV82NV9VUBAVEhUKD0FHRV9SQU5HRV82", + "NV9VUBDe2R5C6wEKIWNvbS5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5lbnVt", + "c0IWUmVhY2hQbGFuQWdlUmFuZ2VQcm90b1ABWkJnb29nbGUuZ29sYW5nLm9y", + "Zy9nZW5wcm90by9nb29nbGVhcGlzL2Fkcy9nb29nbGVhZHMvdjIvZW51bXM7", + "ZW51bXOiAgNHQUGqAh1Hb29nbGUuQWRzLkdvb2dsZUFkcy5WMi5FbnVtc8oC", + "HUdvb2dsZVxBZHNcR29vZ2xlQWRzXFYyXEVudW1z6gIhR29vZ2xlOjpBZHM6", + "Okdvb2dsZUFkczo6VjI6OkVudW1zYgZwcm90bzM=")); + descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, + new pbr::FileDescriptor[] { global::Google.Api.AnnotationsReflection.Descriptor, }, + new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { + new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Enums.ReachPlanAgeRangeEnum), global::Google.Ads.GoogleAds.V2.Enums.ReachPlanAgeRangeEnum.Parser, null, null, new[]{ typeof(global::Google.Ads.GoogleAds.V2.Enums.ReachPlanAgeRangeEnum.Types.ReachPlanAgeRange) }, null) + })); + } + #endregion + + } + #region Messages + /// + /// Message describing plannable age ranges. + /// + public sealed partial class ReachPlanAgeRangeEnum : pb::IMessage { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new ReachPlanAgeRangeEnum()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pbr::MessageDescriptor Descriptor { + get { return global::Google.Ads.GoogleAds.V2.Enums.ReachPlanAgeRangeReflection.Descriptor.MessageTypes[0]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public ReachPlanAgeRangeEnum() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public ReachPlanAgeRangeEnum(ReachPlanAgeRangeEnum other) : this() { + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public ReachPlanAgeRangeEnum Clone() { + return new ReachPlanAgeRangeEnum(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override bool Equals(object other) { + return Equals(other as ReachPlanAgeRangeEnum); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Equals(ReachPlanAgeRangeEnum other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override int GetHashCode() { + int hash = 1; + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void WriteTo(pb::CodedOutputStream output) { + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CalculateSize() { + int size = 0; + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(ReachPlanAgeRangeEnum other) { + if (other == null) { + return; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(pb::CodedInputStream input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + } + } + } + + #region Nested types + /// Container for nested types declared in the ReachPlanAgeRangeEnum message type. + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static partial class Types { + /// + /// Possible plannable age range values. + /// + public enum ReachPlanAgeRange { + /// + /// Not specified. + /// + [pbr::OriginalName("UNSPECIFIED")] Unspecified = 0, + /// + /// The value is unknown in this version. + /// + [pbr::OriginalName("UNKNOWN")] Unknown = 1, + /// + /// Between 18 and 24 years old. + /// + [pbr::OriginalName("AGE_RANGE_18_24")] AgeRange1824 = 503001, + /// + /// Between 18 and 34 years old. + /// + [pbr::OriginalName("AGE_RANGE_18_34")] AgeRange1834 = 2, + /// + /// Between 18 and 44 years old. + /// + [pbr::OriginalName("AGE_RANGE_18_44")] AgeRange1844 = 3, + /// + /// Between 18 and 49 years old. + /// + [pbr::OriginalName("AGE_RANGE_18_49")] AgeRange1849 = 4, + /// + /// Between 18 and 54 years old. + /// + [pbr::OriginalName("AGE_RANGE_18_54")] AgeRange1854 = 5, + /// + /// Between 18 and 64 years old. + /// + [pbr::OriginalName("AGE_RANGE_18_64")] AgeRange1864 = 6, + /// + /// Between 18 and 65+ years old. + /// + [pbr::OriginalName("AGE_RANGE_18_65_UP")] AgeRange1865Up = 7, + /// + /// Between 21 and 34 years old. + /// + [pbr::OriginalName("AGE_RANGE_21_34")] AgeRange2134 = 8, + /// + /// Between 25 and 34 years old. + /// + [pbr::OriginalName("AGE_RANGE_25_34")] AgeRange2534 = 503002, + /// + /// Between 25 and 44 years old. + /// + [pbr::OriginalName("AGE_RANGE_25_44")] AgeRange2544 = 9, + /// + /// Between 25 and 49 years old. + /// + [pbr::OriginalName("AGE_RANGE_25_49")] AgeRange2549 = 10, + /// + /// Between 25 and 54 years old. + /// + [pbr::OriginalName("AGE_RANGE_25_54")] AgeRange2554 = 11, + /// + /// Between 25 and 64 years old. + /// + [pbr::OriginalName("AGE_RANGE_25_64")] AgeRange2564 = 12, + /// + /// Between 25 and 65+ years old. + /// + [pbr::OriginalName("AGE_RANGE_25_65_UP")] AgeRange2565Up = 13, + /// + /// Between 35 and 44 years old. + /// + [pbr::OriginalName("AGE_RANGE_35_44")] AgeRange3544 = 503003, + /// + /// Between 35 and 49 years old. + /// + [pbr::OriginalName("AGE_RANGE_35_49")] AgeRange3549 = 14, + /// + /// Between 35 and 54 years old. + /// + [pbr::OriginalName("AGE_RANGE_35_54")] AgeRange3554 = 15, + /// + /// Between 35 and 64 years old. + /// + [pbr::OriginalName("AGE_RANGE_35_64")] AgeRange3564 = 16, + /// + /// Between 35 and 65+ years old. + /// + [pbr::OriginalName("AGE_RANGE_35_65_UP")] AgeRange3565Up = 17, + /// + /// Between 45 and 54 years old. + /// + [pbr::OriginalName("AGE_RANGE_45_54")] AgeRange4554 = 503004, + /// + /// Between 45 and 64 years old. + /// + [pbr::OriginalName("AGE_RANGE_45_64")] AgeRange4564 = 18, + /// + /// Between 45 and 65+ years old. + /// + [pbr::OriginalName("AGE_RANGE_45_65_UP")] AgeRange4565Up = 19, + /// + /// Between 50 and 65+ years old. + /// + [pbr::OriginalName("AGE_RANGE_50_65_UP")] AgeRange5065Up = 20, + /// + /// Between 55 and 64 years old. + /// + [pbr::OriginalName("AGE_RANGE_55_64")] AgeRange5564 = 503005, + /// + /// Between 55 and 65+ years old. + /// + [pbr::OriginalName("AGE_RANGE_55_65_UP")] AgeRange5565Up = 21, + /// + /// 65 years old and beyond. + /// + [pbr::OriginalName("AGE_RANGE_65_UP")] AgeRange65Up = 503006, + } + + } + #endregion + + } + + #endregion + +} + +#endregion Designer generated code diff --git a/src/V2/Stubs/ReachPlanError.cs b/src/V2/Stubs/ReachPlanError.cs new file mode 100644 index 000000000..267a16377 --- /dev/null +++ b/src/V2/Stubs/ReachPlanError.cs @@ -0,0 +1,177 @@ +// +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/ads/googleads/v2/errors/reach_plan_error.proto +// +#pragma warning disable 1591, 0612, 3021 +#region Designer generated code + +using pb = global::Google.Protobuf; +using pbc = global::Google.Protobuf.Collections; +using pbr = global::Google.Protobuf.Reflection; +using scg = global::System.Collections.Generic; +namespace Google.Ads.GoogleAds.V2.Errors { + + /// Holder for reflection information generated from google/ads/googleads/v2/errors/reach_plan_error.proto + public static partial class ReachPlanErrorReflection { + + #region Descriptor + /// File descriptor for google/ads/googleads/v2/errors/reach_plan_error.proto + public static pbr::FileDescriptor Descriptor { + get { return descriptor; } + } + private static pbr::FileDescriptor descriptor; + + static ReachPlanErrorReflection() { + byte[] descriptorData = global::System.Convert.FromBase64String( + string.Concat( + "CjVnb29nbGUvYWRzL2dvb2dsZWFkcy92Mi9lcnJvcnMvcmVhY2hfcGxhbl9l", + "cnJvci5wcm90bxIeZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuZXJyb3JzGhxn", + "b29nbGUvYXBpL2Fubm90YXRpb25zLnByb3RvIkQKElJlYWNoUGxhbkVycm9y", + "RW51bSIuCg5SZWFjaFBsYW5FcnJvchIPCgtVTlNQRUNJRklFRBAAEgsKB1VO", + "S05PV04QAULuAQoiY29tLmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLmVycm9y", + "c0ITUmVhY2hQbGFuRXJyb3JQcm90b1ABWkRnb29nbGUuZ29sYW5nLm9yZy9n", + "ZW5wcm90by9nb29nbGVhcGlzL2Fkcy9nb29nbGVhZHMvdjIvZXJyb3JzO2Vy", + "cm9yc6ICA0dBQaoCHkdvb2dsZS5BZHMuR29vZ2xlQWRzLlYyLkVycm9yc8oC", + "Hkdvb2dsZVxBZHNcR29vZ2xlQWRzXFYyXEVycm9yc+oCIkdvb2dsZTo6QWRz", + "OjpHb29nbGVBZHM6OlYyOjpFcnJvcnNiBnByb3RvMw==")); + descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, + new pbr::FileDescriptor[] { global::Google.Api.AnnotationsReflection.Descriptor, }, + new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { + new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Errors.ReachPlanErrorEnum), global::Google.Ads.GoogleAds.V2.Errors.ReachPlanErrorEnum.Parser, null, null, new[]{ typeof(global::Google.Ads.GoogleAds.V2.Errors.ReachPlanErrorEnum.Types.ReachPlanError) }, null) + })); + } + #endregion + + } + #region Messages + /// + /// Container for enum describing possible errors returned from + /// the ReachPlanService. + /// + public sealed partial class ReachPlanErrorEnum : pb::IMessage { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new ReachPlanErrorEnum()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pbr::MessageDescriptor Descriptor { + get { return global::Google.Ads.GoogleAds.V2.Errors.ReachPlanErrorReflection.Descriptor.MessageTypes[0]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public ReachPlanErrorEnum() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public ReachPlanErrorEnum(ReachPlanErrorEnum other) : this() { + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public ReachPlanErrorEnum Clone() { + return new ReachPlanErrorEnum(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override bool Equals(object other) { + return Equals(other as ReachPlanErrorEnum); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Equals(ReachPlanErrorEnum other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override int GetHashCode() { + int hash = 1; + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void WriteTo(pb::CodedOutputStream output) { + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CalculateSize() { + int size = 0; + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(ReachPlanErrorEnum other) { + if (other == null) { + return; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(pb::CodedInputStream input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + } + } + } + + #region Nested types + /// Container for nested types declared in the ReachPlanErrorEnum message type. + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static partial class Types { + /// + /// Enum describing possible errors from ReachPlanService. + /// + public enum ReachPlanError { + /// + /// Enum unspecified. + /// + [pbr::OriginalName("UNSPECIFIED")] Unspecified = 0, + /// + /// The received error code is not known in this version. + /// + [pbr::OriginalName("UNKNOWN")] Unknown = 1, + } + + } + #endregion + + } + + #endregion + +} + +#endregion Designer generated code diff --git a/src/V2/Stubs/ReachPlanService.cs b/src/V2/Stubs/ReachPlanService.cs new file mode 100644 index 000000000..5a0cfd27b --- /dev/null +++ b/src/V2/Stubs/ReachPlanService.cs @@ -0,0 +1,3989 @@ +// +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/ads/googleads/v2/services/reach_plan_service.proto +// +#pragma warning disable 1591, 0612, 3021 +#region Designer generated code + +using pb = global::Google.Protobuf; +using pbc = global::Google.Protobuf.Collections; +using pbr = global::Google.Protobuf.Reflection; +using scg = global::System.Collections.Generic; +namespace Google.Ads.GoogleAds.V2.Services { + + /// Holder for reflection information generated from google/ads/googleads/v2/services/reach_plan_service.proto + public static partial class ReachPlanServiceReflection { + + #region Descriptor + /// File descriptor for google/ads/googleads/v2/services/reach_plan_service.proto + public static pbr::FileDescriptor Descriptor { + get { return descriptor; } + } + private static pbr::FileDescriptor descriptor; + + static ReachPlanServiceReflection() { + byte[] descriptorData = global::System.Convert.FromBase64String( + string.Concat( + "Cjlnb29nbGUvYWRzL2dvb2dsZWFkcy92Mi9zZXJ2aWNlcy9yZWFjaF9wbGFu", + "X3NlcnZpY2UucHJvdG8SIGdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLnNlcnZp", + "Y2VzGi1nb29nbGUvYWRzL2dvb2dsZWFkcy92Mi9jb21tb24vY3JpdGVyaWEu", + "cHJvdG8aOGdvb2dsZS9hZHMvZ29vZ2xlYWRzL3YyL2VudW1zL3JlYWNoX3Bs", + "YW5fYWRfbGVuZ3RoLnByb3RvGjhnb29nbGUvYWRzL2dvb2dsZWFkcy92Mi9l", + "bnVtcy9yZWFjaF9wbGFuX2FnZV9yYW5nZS5wcm90bxocZ29vZ2xlL2FwaS9h", + "bm5vdGF0aW9ucy5wcm90bxoeZ29vZ2xlL3Byb3RvYnVmL3dyYXBwZXJzLnBy", + "b3RvGhdnb29nbGUvYXBpL2NsaWVudC5wcm90byIfCh1MaXN0UGxhbm5hYmxl", + "TG9jYXRpb25zUmVxdWVzdCJyCh5MaXN0UGxhbm5hYmxlTG9jYXRpb25zUmVz", + "cG9uc2USUAoTcGxhbm5hYmxlX2xvY2F0aW9ucxgBIAMoCzIzLmdvb2dsZS5h", + "ZHMuZ29vZ2xlYWRzLnYyLnNlcnZpY2VzLlBsYW5uYWJsZUxvY2F0aW9uIqEB", + "ChFQbGFubmFibGVMb2NhdGlvbhIoCgJpZBgBIAEoCzIcLmdvb2dsZS5wcm90", + "b2J1Zi5TdHJpbmdWYWx1ZRIqCgRuYW1lGAIgASgLMhwuZ29vZ2xlLnByb3Rv", + "YnVmLlN0cmluZ1ZhbHVlEjYKEXBhcmVudF9jb3VudHJ5X2lkGAMgASgLMhsu", + "Z29vZ2xlLnByb3RvYnVmLkludDY0VmFsdWUiWwocTGlzdFBsYW5uYWJsZVBy", + "b2R1Y3RzUmVxdWVzdBI7ChVwbGFubmFibGVfbG9jYXRpb25faWQYASABKAsy", + "HC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWUibAodTGlzdFBsYW5uYWJs", + "ZVByb2R1Y3RzUmVzcG9uc2USSwoQcHJvZHVjdF9tZXRhZGF0YRgBIAMoCzIx", + "Lmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLnNlcnZpY2VzLlByb2R1Y3RNZXRh", + "ZGF0YSKiAQoPUHJvZHVjdE1ldGFkYXRhEjwKFnBsYW5uYWJsZV9wcm9kdWN0", + "X2NvZGUYASABKAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWUSUQoT", + "cGxhbm5hYmxlX3RhcmdldGluZxgCIAEoCzI0Lmdvb2dsZS5hZHMuZ29vZ2xl", + "YWRzLnYyLnNlcnZpY2VzLlBsYW5uYWJsZVRhcmdldGluZyLqAQoSUGxhbm5h", + "YmxlVGFyZ2V0aW5nEloKCmFnZV9yYW5nZXMYASADKA4yRi5nb29nbGUuYWRz", + "Lmdvb2dsZWFkcy52Mi5lbnVtcy5SZWFjaFBsYW5BZ2VSYW5nZUVudW0uUmVh", + "Y2hQbGFuQWdlUmFuZ2USOwoHZ2VuZGVycxgCIAMoCzIqLmdvb2dsZS5hZHMu", + "Z29vZ2xlYWRzLnYyLmNvbW1vbi5HZW5kZXJJbmZvEjsKB2RldmljZXMYAyAD", + "KAsyKi5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5jb21tb24uRGV2aWNlSW5m", + "byKfAgoeR2VuZXJhdGVQcm9kdWN0TWl4SWRlYXNSZXF1ZXN0EhMKC2N1c3Rv", + "bWVyX2lkGAEgASgJEjsKFXBsYW5uYWJsZV9sb2NhdGlvbl9pZBgCIAEoCzIc", + "Lmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRIzCg1jdXJyZW5jeV9jb2Rl", + "GAMgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlEjIKDWJ1ZGdl", + "dF9taWNyb3MYBCABKAsyGy5nb29nbGUucHJvdG9idWYuSW50NjRWYWx1ZRJC", + "CgtwcmVmZXJlbmNlcxgFIAEoCzItLmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYy", + "LnNlcnZpY2VzLlByZWZlcmVuY2VzIsECCgtQcmVmZXJlbmNlcxIwCgxpc19z", + "a2lwcGFibGUYASABKAsyGi5nb29nbGUucHJvdG9idWYuQm9vbFZhbHVlEjUK", + "EXN0YXJ0c193aXRoX3NvdW5kGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLkJv", + "b2xWYWx1ZRJZCglhZF9sZW5ndGgYAyABKA4yRi5nb29nbGUuYWRzLmdvb2ds", + "ZWFkcy52Mi5lbnVtcy5SZWFjaFBsYW5BZExlbmd0aEVudW0uUmVhY2hQbGFu", + "QWRMZW5ndGgSNAoQdG9wX2NvbnRlbnRfb25seRgEIAEoCzIaLmdvb2dsZS5w", + "cm90b2J1Zi5Cb29sVmFsdWUSOAoUaGFzX2d1YXJhbnRlZWRfcHJpY2UYBSAB", + "KAsyGi5nb29nbGUucHJvdG9idWYuQm9vbFZhbHVlInIKH0dlbmVyYXRlUHJv", + "ZHVjdE1peElkZWFzUmVzcG9uc2USTwoScHJvZHVjdF9hbGxvY2F0aW9uGAEg", + "AygLMjMuZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuc2VydmljZXMuUHJvZHVj", + "dEFsbG9jYXRpb24ihQEKEVByb2R1Y3RBbGxvY2F0aW9uEjwKFnBsYW5uYWJs", + "ZV9wcm9kdWN0X2NvZGUYASABKAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5n", + "VmFsdWUSMgoNYnVkZ2V0X21pY3JvcxgCIAEoCzIbLmdvb2dsZS5wcm90b2J1", + "Zi5JbnQ2NFZhbHVlIrwDChxHZW5lcmF0ZVJlYWNoRm9yZWNhc3RSZXF1ZXN0", + "EhMKC2N1c3RvbWVyX2lkGAEgASgJEjMKDWN1cnJlbmN5X2NvZGUYAiABKAsy", + "HC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWUSTQoRY2FtcGFpZ25fZHVy", + "YXRpb24YAyABKAsyMi5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5zZXJ2aWNl", + "cy5DYW1wYWlnbkR1cmF0aW9uEjkKFGNvb2tpZV9mcmVxdWVuY3lfY2FwGAQg", + "ASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDMyVmFsdWUSPAoXbWluX2VmZmVj", + "dGl2ZV9mcmVxdWVuY3kYBSABKAsyGy5nb29nbGUucHJvdG9idWYuSW50MzJW", + "YWx1ZRI+Cgl0YXJnZXRpbmcYBiABKAsyKy5nb29nbGUuYWRzLmdvb2dsZWFk", + "cy52Mi5zZXJ2aWNlcy5UYXJnZXRpbmcSSgoQcGxhbm5lZF9wcm9kdWN0cxgH", + "IAMoCzIwLmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLnNlcnZpY2VzLlBsYW5u", + "ZWRQcm9kdWN0Ip0CCglUYXJnZXRpbmcSOwoVcGxhbm5hYmxlX2xvY2F0aW9u", + "X2lkGAEgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlElkKCWFn", + "ZV9yYW5nZRgCIAEoDjJGLmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLmVudW1z", + "LlJlYWNoUGxhbkFnZVJhbmdlRW51bS5SZWFjaFBsYW5BZ2VSYW5nZRI7Cgdn", + "ZW5kZXJzGAMgAygLMiouZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuY29tbW9u", + "LkdlbmRlckluZm8SOwoHZGV2aWNlcxgEIAMoCzIqLmdvb2dsZS5hZHMuZ29v", + "Z2xlYWRzLnYyLmNvbW1vbi5EZXZpY2VJbmZvIkkKEENhbXBhaWduRHVyYXRp", + "b24SNQoQZHVyYXRpb25faW5fZGF5cxgBIAEoCzIbLmdvb2dsZS5wcm90b2J1", + "Zi5JbnQzMlZhbHVlIoIBCg5QbGFubmVkUHJvZHVjdBI8ChZwbGFubmFibGVf", + "cHJvZHVjdF9jb2RlGAEgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1Zh", + "bHVlEjIKDWJ1ZGdldF9taWNyb3MYAiABKAsyGy5nb29nbGUucHJvdG9idWYu", + "SW50NjRWYWx1ZSLBAQodR2VuZXJhdGVSZWFjaEZvcmVjYXN0UmVzcG9uc2US", + "XQoab25fdGFyZ2V0X2F1ZGllbmNlX21ldHJpY3MYASABKAsyOS5nb29nbGUu", + "YWRzLmdvb2dsZWFkcy52Mi5zZXJ2aWNlcy5PblRhcmdldEF1ZGllbmNlTWV0", + "cmljcxJBCgtyZWFjaF9jdXJ2ZRgCIAEoCzIsLmdvb2dsZS5hZHMuZ29vZ2xl", + "YWRzLnYyLnNlcnZpY2VzLlJlYWNoQ3VydmUiVgoKUmVhY2hDdXJ2ZRJICg9y", + "ZWFjaF9mb3JlY2FzdHMYASADKAsyLy5nb29nbGUuYWRzLmdvb2dsZWFkcy52", + "Mi5zZXJ2aWNlcy5SZWFjaEZvcmVjYXN0ItwBCg1SZWFjaEZvcmVjYXN0EjAK", + "C2Nvc3RfbWljcm9zGAEgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDY0VmFs", + "dWUSPAoIZm9yZWNhc3QYAiABKAsyKi5nb29nbGUuYWRzLmdvb2dsZWFkcy52", + "Mi5zZXJ2aWNlcy5Gb3JlY2FzdBJbCh5mb3JlY2FzdGVkX3Byb2R1Y3RfYWxs", + "b2NhdGlvbnMYAyADKAsyMy5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5zZXJ2", + "aWNlcy5Qcm9kdWN0QWxsb2NhdGlvbiLmAQoIRm9yZWNhc3QSNAoPb25fdGFy", + "Z2V0X3JlYWNoGAEgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDY0VmFsdWUS", + "MAoLdG90YWxfcmVhY2gYAiABKAsyGy5nb29nbGUucHJvdG9idWYuSW50NjRW", + "YWx1ZRI6ChVvbl90YXJnZXRfaW1wcmVzc2lvbnMYAyABKAsyGy5nb29nbGUu", + "cHJvdG9idWYuSW50NjRWYWx1ZRI2ChF0b3RhbF9pbXByZXNzaW9ucxgEIAEo", + "CzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQ2NFZhbHVlIpABChdPblRhcmdldEF1", + "ZGllbmNlTWV0cmljcxI6ChV5b3V0dWJlX2F1ZGllbmNlX3NpemUYASABKAsy", + "Gy5nb29nbGUucHJvdG9idWYuSW50NjRWYWx1ZRI5ChRjZW5zdXNfYXVkaWVu", + "Y2Vfc2l6ZRgCIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQ2NFZhbHVlMvMG", + "ChBSZWFjaFBsYW5TZXJ2aWNlEsIBChZMaXN0UGxhbm5hYmxlTG9jYXRpb25z", + "Ej8uZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuc2VydmljZXMuTGlzdFBsYW5u", + "YWJsZUxvY2F0aW9uc1JlcXVlc3QaQC5nb29nbGUuYWRzLmdvb2dsZWFkcy52", + "Mi5zZXJ2aWNlcy5MaXN0UGxhbm5hYmxlTG9jYXRpb25zUmVzcG9uc2UiJYLT", + "5JMCHyIaL3YyOmxpc3RQbGFubmFibGVMb2NhdGlvbnM6ASoSvgEKFUxpc3RQ", + "bGFubmFibGVQcm9kdWN0cxI+Lmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLnNl", + "cnZpY2VzLkxpc3RQbGFubmFibGVQcm9kdWN0c1JlcXVlc3QaPy5nb29nbGUu", + "YWRzLmdvb2dsZWFkcy52Mi5zZXJ2aWNlcy5MaXN0UGxhbm5hYmxlUHJvZHVj", + "dHNSZXNwb25zZSIkgtPkkwIeIhkvdjI6bGlzdFBsYW5uYWJsZVByb2R1Y3Rz", + "OgEqEuABChdHZW5lcmF0ZVByb2R1Y3RNaXhJZGVhcxJALmdvb2dsZS5hZHMu", + "Z29vZ2xlYWRzLnYyLnNlcnZpY2VzLkdlbmVyYXRlUHJvZHVjdE1peElkZWFz", + "UmVxdWVzdBpBLmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLnNlcnZpY2VzLkdl", + "bmVyYXRlUHJvZHVjdE1peElkZWFzUmVzcG9uc2UiQILT5JMCOiI1L3YyL2N1", + "c3RvbWVycy97Y3VzdG9tZXJfaWQ9Kn06Z2VuZXJhdGVQcm9kdWN0TWl4SWRl", + "YXM6ASoS2AEKFUdlbmVyYXRlUmVhY2hGb3JlY2FzdBI+Lmdvb2dsZS5hZHMu", + "Z29vZ2xlYWRzLnYyLnNlcnZpY2VzLkdlbmVyYXRlUmVhY2hGb3JlY2FzdFJl", + "cXVlc3QaPy5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5zZXJ2aWNlcy5HZW5l", + "cmF0ZVJlYWNoRm9yZWNhc3RSZXNwb25zZSI+gtPkkwI4IjMvdjIvY3VzdG9t", + "ZXJzL3tjdXN0b21lcl9pZD0qfTpnZW5lcmF0ZVJlYWNoRm9yZWNhc3Q6ASoa", + "G8pBGGdvb2dsZWFkcy5nb29nbGVhcGlzLmNvbUL8AQokY29tLmdvb2dsZS5h", + "ZHMuZ29vZ2xlYWRzLnYyLnNlcnZpY2VzQhVSZWFjaFBsYW5TZXJ2aWNlUHJv", + "dG9QAVpIZ29vZ2xlLmdvbGFuZy5vcmcvZ2VucHJvdG8vZ29vZ2xlYXBpcy9h", + "ZHMvZ29vZ2xlYWRzL3YyL3NlcnZpY2VzO3NlcnZpY2VzogIDR0FBqgIgR29v", + "Z2xlLkFkcy5Hb29nbGVBZHMuVjIuU2VydmljZXPKAiBHb29nbGVcQWRzXEdv", + "b2dsZUFkc1xWMlxTZXJ2aWNlc+oCJEdvb2dsZTo6QWRzOjpHb29nbGVBZHM6", + "OlYyOjpTZXJ2aWNlc2IGcHJvdG8z")); + descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, + new pbr::FileDescriptor[] { global::Google.Ads.GoogleAds.V2.Common.CriteriaReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Enums.ReachPlanAdLengthReflection.Descriptor, global::Google.Ads.GoogleAds.V2.Enums.ReachPlanAgeRangeReflection.Descriptor, global::Google.Api.AnnotationsReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.WrappersReflection.Descriptor, global::Google.Api.ClientReflection.Descriptor, }, + new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { + new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Services.ListPlannableLocationsRequest), global::Google.Ads.GoogleAds.V2.Services.ListPlannableLocationsRequest.Parser, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Services.ListPlannableLocationsResponse), global::Google.Ads.GoogleAds.V2.Services.ListPlannableLocationsResponse.Parser, new[]{ "PlannableLocations" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Services.PlannableLocation), global::Google.Ads.GoogleAds.V2.Services.PlannableLocation.Parser, new[]{ "Id", "Name", "ParentCountryId" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Services.ListPlannableProductsRequest), global::Google.Ads.GoogleAds.V2.Services.ListPlannableProductsRequest.Parser, new[]{ "PlannableLocationId" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Services.ListPlannableProductsResponse), global::Google.Ads.GoogleAds.V2.Services.ListPlannableProductsResponse.Parser, new[]{ "ProductMetadata" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Services.ProductMetadata), global::Google.Ads.GoogleAds.V2.Services.ProductMetadata.Parser, new[]{ "PlannableProductCode", "PlannableTargeting" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Services.PlannableTargeting), global::Google.Ads.GoogleAds.V2.Services.PlannableTargeting.Parser, new[]{ "AgeRanges", "Genders", "Devices" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Services.GenerateProductMixIdeasRequest), global::Google.Ads.GoogleAds.V2.Services.GenerateProductMixIdeasRequest.Parser, new[]{ "CustomerId", "PlannableLocationId", "CurrencyCode", "BudgetMicros", "Preferences" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Services.Preferences), global::Google.Ads.GoogleAds.V2.Services.Preferences.Parser, new[]{ "IsSkippable", "StartsWithSound", "AdLength", "TopContentOnly", "HasGuaranteedPrice" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Services.GenerateProductMixIdeasResponse), global::Google.Ads.GoogleAds.V2.Services.GenerateProductMixIdeasResponse.Parser, new[]{ "ProductAllocation" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Services.ProductAllocation), global::Google.Ads.GoogleAds.V2.Services.ProductAllocation.Parser, new[]{ "PlannableProductCode", "BudgetMicros" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Services.GenerateReachForecastRequest), global::Google.Ads.GoogleAds.V2.Services.GenerateReachForecastRequest.Parser, new[]{ "CustomerId", "CurrencyCode", "CampaignDuration", "CookieFrequencyCap", "MinEffectiveFrequency", "Targeting", "PlannedProducts" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Services.Targeting), global::Google.Ads.GoogleAds.V2.Services.Targeting.Parser, new[]{ "PlannableLocationId", "AgeRange", "Genders", "Devices" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Services.CampaignDuration), global::Google.Ads.GoogleAds.V2.Services.CampaignDuration.Parser, new[]{ "DurationInDays" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Services.PlannedProduct), global::Google.Ads.GoogleAds.V2.Services.PlannedProduct.Parser, new[]{ "PlannableProductCode", "BudgetMicros" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Services.GenerateReachForecastResponse), global::Google.Ads.GoogleAds.V2.Services.GenerateReachForecastResponse.Parser, new[]{ "OnTargetAudienceMetrics", "ReachCurve" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Services.ReachCurve), global::Google.Ads.GoogleAds.V2.Services.ReachCurve.Parser, new[]{ "ReachForecasts" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Services.ReachForecast), global::Google.Ads.GoogleAds.V2.Services.ReachForecast.Parser, new[]{ "CostMicros", "Forecast", "ForecastedProductAllocations" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Services.Forecast), global::Google.Ads.GoogleAds.V2.Services.Forecast.Parser, new[]{ "OnTargetReach", "TotalReach", "OnTargetImpressions", "TotalImpressions" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Services.OnTargetAudienceMetrics), global::Google.Ads.GoogleAds.V2.Services.OnTargetAudienceMetrics.Parser, new[]{ "YoutubeAudienceSize", "CensusAudienceSize" }, null, null, null) + })); + } + #endregion + + } + #region Messages + /// + /// Request message for [ReachForecastService.ListPlannableLocations][] + /// + public sealed partial class ListPlannableLocationsRequest : pb::IMessage { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new ListPlannableLocationsRequest()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pbr::MessageDescriptor Descriptor { + get { return global::Google.Ads.GoogleAds.V2.Services.ReachPlanServiceReflection.Descriptor.MessageTypes[0]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public ListPlannableLocationsRequest() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public ListPlannableLocationsRequest(ListPlannableLocationsRequest other) : this() { + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public ListPlannableLocationsRequest Clone() { + return new ListPlannableLocationsRequest(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override bool Equals(object other) { + return Equals(other as ListPlannableLocationsRequest); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Equals(ListPlannableLocationsRequest other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override int GetHashCode() { + int hash = 1; + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void WriteTo(pb::CodedOutputStream output) { + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CalculateSize() { + int size = 0; + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(ListPlannableLocationsRequest other) { + if (other == null) { + return; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(pb::CodedInputStream input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + } + } + } + + } + + /// + /// The list of plannable locations. + /// + public sealed partial class ListPlannableLocationsResponse : pb::IMessage { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new ListPlannableLocationsResponse()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pbr::MessageDescriptor Descriptor { + get { return global::Google.Ads.GoogleAds.V2.Services.ReachPlanServiceReflection.Descriptor.MessageTypes[1]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public ListPlannableLocationsResponse() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public ListPlannableLocationsResponse(ListPlannableLocationsResponse other) : this() { + plannableLocations_ = other.plannableLocations_.Clone(); + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public ListPlannableLocationsResponse Clone() { + return new ListPlannableLocationsResponse(this); + } + + /// Field number for the "plannable_locations" field. + public const int PlannableLocationsFieldNumber = 1; + private static readonly pb::FieldCodec _repeated_plannableLocations_codec + = pb::FieldCodec.ForMessage(10, global::Google.Ads.GoogleAds.V2.Services.PlannableLocation.Parser); + private readonly pbc::RepeatedField plannableLocations_ = new pbc::RepeatedField(); + /// + /// The list of locations available for planning (Countries, DMAs, + /// sub-countries). + /// For locations like Countries, DMAs see + /// https://developers.google.com/adwords/api/docs/appendix/geotargeting for + /// more information. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField PlannableLocations { + get { return plannableLocations_; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override bool Equals(object other) { + return Equals(other as ListPlannableLocationsResponse); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Equals(ListPlannableLocationsResponse other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if(!plannableLocations_.Equals(other.plannableLocations_)) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override int GetHashCode() { + int hash = 1; + hash ^= plannableLocations_.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void WriteTo(pb::CodedOutputStream output) { + plannableLocations_.WriteTo(output, _repeated_plannableLocations_codec); + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CalculateSize() { + int size = 0; + size += plannableLocations_.CalculateSize(_repeated_plannableLocations_codec); + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(ListPlannableLocationsResponse other) { + if (other == null) { + return; + } + plannableLocations_.Add(other.plannableLocations_); + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(pb::CodedInputStream input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + plannableLocations_.AddEntriesFrom(input, _repeated_plannableLocations_codec); + break; + } + } + } + } + + } + + /// + /// A plannable location: a country, a DMA, a metro region, a tv region, + /// a province. + /// + public sealed partial class PlannableLocation : pb::IMessage { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new PlannableLocation()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pbr::MessageDescriptor Descriptor { + get { return global::Google.Ads.GoogleAds.V2.Services.ReachPlanServiceReflection.Descriptor.MessageTypes[2]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public PlannableLocation() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public PlannableLocation(PlannableLocation other) : this() { + Id = other.Id; + Name = other.Name; + ParentCountryId = other.ParentCountryId; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public PlannableLocation Clone() { + return new PlannableLocation(this); + } + + /// Field number for the "id" field. + public const int IdFieldNumber = 1; + private static readonly pb::FieldCodec _single_id_codec = pb::FieldCodec.ForClassWrapper(10); + private string id_; + /// + /// The location identifier. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public string Id { + get { return id_; } + set { + id_ = value; + } + } + + + /// Field number for the "name" field. + public const int NameFieldNumber = 2; + private static readonly pb::FieldCodec _single_name_codec = pb::FieldCodec.ForClassWrapper(18); + private string name_; + /// + /// The unique location name in english. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public string Name { + get { return name_; } + set { + name_ = value; + } + } + + + /// Field number for the "parent_country_id" field. + public const int ParentCountryIdFieldNumber = 3; + private static readonly pb::FieldCodec _single_parentCountryId_codec = pb::FieldCodec.ForStructWrapper(26); + private long? parentCountryId_; + /// + /// The parent country code, not present if location is a country. + /// If present will always be a criterion id: additional information, such as + /// country name are returned both via ListPlannableLocations or directly by + /// accessing GeoTargetConstantService with the criterion id. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public long? ParentCountryId { + get { return parentCountryId_; } + set { + parentCountryId_ = value; + } + } + + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override bool Equals(object other) { + return Equals(other as PlannableLocation); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Equals(PlannableLocation other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (Id != other.Id) return false; + if (Name != other.Name) return false; + if (ParentCountryId != other.ParentCountryId) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override int GetHashCode() { + int hash = 1; + if (id_ != null) hash ^= Id.GetHashCode(); + if (name_ != null) hash ^= Name.GetHashCode(); + if (parentCountryId_ != null) hash ^= ParentCountryId.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void WriteTo(pb::CodedOutputStream output) { + if (id_ != null) { + _single_id_codec.WriteTagAndValue(output, Id); + } + if (name_ != null) { + _single_name_codec.WriteTagAndValue(output, Name); + } + if (parentCountryId_ != null) { + _single_parentCountryId_codec.WriteTagAndValue(output, ParentCountryId); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CalculateSize() { + int size = 0; + if (id_ != null) { + size += _single_id_codec.CalculateSizeWithTag(Id); + } + if (name_ != null) { + size += _single_name_codec.CalculateSizeWithTag(Name); + } + if (parentCountryId_ != null) { + size += _single_parentCountryId_codec.CalculateSizeWithTag(ParentCountryId); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(PlannableLocation other) { + if (other == null) { + return; + } + if (other.id_ != null) { + if (id_ == null || other.Id != "") { + Id = other.Id; + } + } + if (other.name_ != null) { + if (name_ == null || other.Name != "") { + Name = other.Name; + } + } + if (other.parentCountryId_ != null) { + if (parentCountryId_ == null || other.ParentCountryId != 0L) { + ParentCountryId = other.ParentCountryId; + } + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(pb::CodedInputStream input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + string value = _single_id_codec.Read(input); + if (id_ == null || value != "") { + Id = value; + } + break; + } + case 18: { + string value = _single_name_codec.Read(input); + if (name_ == null || value != "") { + Name = value; + } + break; + } + case 26: { + long? value = _single_parentCountryId_codec.Read(input); + if (parentCountryId_ == null || value != 0L) { + ParentCountryId = value; + } + break; + } + } + } + } + + } + + /// + /// Request to list available products in a given location. + /// + public sealed partial class ListPlannableProductsRequest : pb::IMessage { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new ListPlannableProductsRequest()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pbr::MessageDescriptor Descriptor { + get { return global::Google.Ads.GoogleAds.V2.Services.ReachPlanServiceReflection.Descriptor.MessageTypes[3]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public ListPlannableProductsRequest() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public ListPlannableProductsRequest(ListPlannableProductsRequest other) : this() { + PlannableLocationId = other.PlannableLocationId; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public ListPlannableProductsRequest Clone() { + return new ListPlannableProductsRequest(this); + } + + /// Field number for the "plannable_location_id" field. + public const int PlannableLocationIdFieldNumber = 1; + private static readonly pb::FieldCodec _single_plannableLocationId_codec = pb::FieldCodec.ForClassWrapper(10); + private string plannableLocationId_; + /// + /// The ID of the selected location for planning. To list the available + /// plannable location ids use ListPlannableLocations. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public string PlannableLocationId { + get { return plannableLocationId_; } + set { + plannableLocationId_ = value; + } + } + + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override bool Equals(object other) { + return Equals(other as ListPlannableProductsRequest); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Equals(ListPlannableProductsRequest other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (PlannableLocationId != other.PlannableLocationId) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override int GetHashCode() { + int hash = 1; + if (plannableLocationId_ != null) hash ^= PlannableLocationId.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void WriteTo(pb::CodedOutputStream output) { + if (plannableLocationId_ != null) { + _single_plannableLocationId_codec.WriteTagAndValue(output, PlannableLocationId); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CalculateSize() { + int size = 0; + if (plannableLocationId_ != null) { + size += _single_plannableLocationId_codec.CalculateSizeWithTag(PlannableLocationId); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(ListPlannableProductsRequest other) { + if (other == null) { + return; + } + if (other.plannableLocationId_ != null) { + if (plannableLocationId_ == null || other.PlannableLocationId != "") { + PlannableLocationId = other.PlannableLocationId; + } + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(pb::CodedInputStream input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + string value = _single_plannableLocationId_codec.Read(input); + if (plannableLocationId_ == null || value != "") { + PlannableLocationId = value; + } + break; + } + } + } + } + + } + + /// + /// A response with all available products. + /// + public sealed partial class ListPlannableProductsResponse : pb::IMessage { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new ListPlannableProductsResponse()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pbr::MessageDescriptor Descriptor { + get { return global::Google.Ads.GoogleAds.V2.Services.ReachPlanServiceReflection.Descriptor.MessageTypes[4]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public ListPlannableProductsResponse() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public ListPlannableProductsResponse(ListPlannableProductsResponse other) : this() { + productMetadata_ = other.productMetadata_.Clone(); + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public ListPlannableProductsResponse Clone() { + return new ListPlannableProductsResponse(this); + } + + /// Field number for the "product_metadata" field. + public const int ProductMetadataFieldNumber = 1; + private static readonly pb::FieldCodec _repeated_productMetadata_codec + = pb::FieldCodec.ForMessage(10, global::Google.Ads.GoogleAds.V2.Services.ProductMetadata.Parser); + private readonly pbc::RepeatedField productMetadata_ = new pbc::RepeatedField(); + /// + /// The list of products available for planning and related targeting metadata. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField ProductMetadata { + get { return productMetadata_; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override bool Equals(object other) { + return Equals(other as ListPlannableProductsResponse); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Equals(ListPlannableProductsResponse other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if(!productMetadata_.Equals(other.productMetadata_)) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override int GetHashCode() { + int hash = 1; + hash ^= productMetadata_.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void WriteTo(pb::CodedOutputStream output) { + productMetadata_.WriteTo(output, _repeated_productMetadata_codec); + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CalculateSize() { + int size = 0; + size += productMetadata_.CalculateSize(_repeated_productMetadata_codec); + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(ListPlannableProductsResponse other) { + if (other == null) { + return; + } + productMetadata_.Add(other.productMetadata_); + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(pb::CodedInputStream input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + productMetadata_.AddEntriesFrom(input, _repeated_productMetadata_codec); + break; + } + } + } + } + + } + + /// + /// The metadata associated with an available plannable product. + /// + public sealed partial class ProductMetadata : pb::IMessage { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new ProductMetadata()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pbr::MessageDescriptor Descriptor { + get { return global::Google.Ads.GoogleAds.V2.Services.ReachPlanServiceReflection.Descriptor.MessageTypes[5]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public ProductMetadata() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public ProductMetadata(ProductMetadata other) : this() { + PlannableProductCode = other.PlannableProductCode; + plannableTargeting_ = other.plannableTargeting_ != null ? other.plannableTargeting_.Clone() : null; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public ProductMetadata Clone() { + return new ProductMetadata(this); + } + + /// Field number for the "plannable_product_code" field. + public const int PlannableProductCodeFieldNumber = 1; + private static readonly pb::FieldCodec _single_plannableProductCode_codec = pb::FieldCodec.ForClassWrapper(10); + private string plannableProductCode_; + /// + /// The code associated with the ad product. E.g. Trueview, Bumper + /// To list the available plannable product codes use ListPlannableProducts. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public string PlannableProductCode { + get { return plannableProductCode_; } + set { + plannableProductCode_ = value; + } + } + + + /// Field number for the "plannable_targeting" field. + public const int PlannableTargetingFieldNumber = 2; + private global::Google.Ads.GoogleAds.V2.Services.PlannableTargeting plannableTargeting_; + /// + /// The allowed plannable targeting for this product. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public global::Google.Ads.GoogleAds.V2.Services.PlannableTargeting PlannableTargeting { + get { return plannableTargeting_; } + set { + plannableTargeting_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override bool Equals(object other) { + return Equals(other as ProductMetadata); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Equals(ProductMetadata other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (PlannableProductCode != other.PlannableProductCode) return false; + if (!object.Equals(PlannableTargeting, other.PlannableTargeting)) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override int GetHashCode() { + int hash = 1; + if (plannableProductCode_ != null) hash ^= PlannableProductCode.GetHashCode(); + if (plannableTargeting_ != null) hash ^= PlannableTargeting.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void WriteTo(pb::CodedOutputStream output) { + if (plannableProductCode_ != null) { + _single_plannableProductCode_codec.WriteTagAndValue(output, PlannableProductCode); + } + if (plannableTargeting_ != null) { + output.WriteRawTag(18); + output.WriteMessage(PlannableTargeting); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CalculateSize() { + int size = 0; + if (plannableProductCode_ != null) { + size += _single_plannableProductCode_codec.CalculateSizeWithTag(PlannableProductCode); + } + if (plannableTargeting_ != null) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(PlannableTargeting); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(ProductMetadata other) { + if (other == null) { + return; + } + if (other.plannableProductCode_ != null) { + if (plannableProductCode_ == null || other.PlannableProductCode != "") { + PlannableProductCode = other.PlannableProductCode; + } + } + if (other.plannableTargeting_ != null) { + if (plannableTargeting_ == null) { + PlannableTargeting = new global::Google.Ads.GoogleAds.V2.Services.PlannableTargeting(); + } + PlannableTargeting.MergeFrom(other.PlannableTargeting); + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(pb::CodedInputStream input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + string value = _single_plannableProductCode_codec.Read(input); + if (plannableProductCode_ == null || value != "") { + PlannableProductCode = value; + } + break; + } + case 18: { + if (plannableTargeting_ == null) { + PlannableTargeting = new global::Google.Ads.GoogleAds.V2.Services.PlannableTargeting(); + } + input.ReadMessage(PlannableTargeting); + break; + } + } + } + } + + } + + /// + /// The targeting for which traffic metrics will be reported. + /// + public sealed partial class PlannableTargeting : pb::IMessage { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new PlannableTargeting()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pbr::MessageDescriptor Descriptor { + get { return global::Google.Ads.GoogleAds.V2.Services.ReachPlanServiceReflection.Descriptor.MessageTypes[6]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public PlannableTargeting() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public PlannableTargeting(PlannableTargeting other) : this() { + ageRanges_ = other.ageRanges_.Clone(); + genders_ = other.genders_.Clone(); + devices_ = other.devices_.Clone(); + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public PlannableTargeting Clone() { + return new PlannableTargeting(this); + } + + /// Field number for the "age_ranges" field. + public const int AgeRangesFieldNumber = 1; + private static readonly pb::FieldCodec _repeated_ageRanges_codec + = pb::FieldCodec.ForEnum(10, x => (int) x, x => (global::Google.Ads.GoogleAds.V2.Enums.ReachPlanAgeRangeEnum.Types.ReachPlanAgeRange) x); + private readonly pbc::RepeatedField ageRanges_ = new pbc::RepeatedField(); + /// + /// Allowed plannable age ranges for the product for which metrics will be + /// reported. Actual targeting is computed by mapping this age range onto + /// standard Google common.AgeRangeInfo values. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField AgeRanges { + get { return ageRanges_; } + } + + /// Field number for the "genders" field. + public const int GendersFieldNumber = 2; + private static readonly pb::FieldCodec _repeated_genders_codec + = pb::FieldCodec.ForMessage(18, global::Google.Ads.GoogleAds.V2.Common.GenderInfo.Parser); + private readonly pbc::RepeatedField genders_ = new pbc::RepeatedField(); + /// + /// Targetable genders for the ad product. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField Genders { + get { return genders_; } + } + + /// Field number for the "devices" field. + public const int DevicesFieldNumber = 3; + private static readonly pb::FieldCodec _repeated_devices_codec + = pb::FieldCodec.ForMessage(26, global::Google.Ads.GoogleAds.V2.Common.DeviceInfo.Parser); + private readonly pbc::RepeatedField devices_ = new pbc::RepeatedField(); + /// + /// Targetable devices for the ad product. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField Devices { + get { return devices_; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override bool Equals(object other) { + return Equals(other as PlannableTargeting); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Equals(PlannableTargeting other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if(!ageRanges_.Equals(other.ageRanges_)) return false; + if(!genders_.Equals(other.genders_)) return false; + if(!devices_.Equals(other.devices_)) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override int GetHashCode() { + int hash = 1; + hash ^= ageRanges_.GetHashCode(); + hash ^= genders_.GetHashCode(); + hash ^= devices_.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void WriteTo(pb::CodedOutputStream output) { + ageRanges_.WriteTo(output, _repeated_ageRanges_codec); + genders_.WriteTo(output, _repeated_genders_codec); + devices_.WriteTo(output, _repeated_devices_codec); + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CalculateSize() { + int size = 0; + size += ageRanges_.CalculateSize(_repeated_ageRanges_codec); + size += genders_.CalculateSize(_repeated_genders_codec); + size += devices_.CalculateSize(_repeated_devices_codec); + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(PlannableTargeting other) { + if (other == null) { + return; + } + ageRanges_.Add(other.ageRanges_); + genders_.Add(other.genders_); + devices_.Add(other.devices_); + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(pb::CodedInputStream input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: + case 8: { + ageRanges_.AddEntriesFrom(input, _repeated_ageRanges_codec); + break; + } + case 18: { + genders_.AddEntriesFrom(input, _repeated_genders_codec); + break; + } + case 26: { + devices_.AddEntriesFrom(input, _repeated_devices_codec); + break; + } + } + } + } + + } + + /// + /// Request message for [ReachForecastService.GenerateProductMixIdeas][]. + /// + public sealed partial class GenerateProductMixIdeasRequest : pb::IMessage { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new GenerateProductMixIdeasRequest()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pbr::MessageDescriptor Descriptor { + get { return global::Google.Ads.GoogleAds.V2.Services.ReachPlanServiceReflection.Descriptor.MessageTypes[7]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public GenerateProductMixIdeasRequest() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public GenerateProductMixIdeasRequest(GenerateProductMixIdeasRequest other) : this() { + customerId_ = other.customerId_; + PlannableLocationId = other.PlannableLocationId; + CurrencyCode = other.CurrencyCode; + BudgetMicros = other.BudgetMicros; + preferences_ = other.preferences_ != null ? other.preferences_.Clone() : null; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public GenerateProductMixIdeasRequest Clone() { + return new GenerateProductMixIdeasRequest(this); + } + + /// Field number for the "customer_id" field. + public const int CustomerIdFieldNumber = 1; + private string customerId_ = ""; + /// + /// The ID of the customer. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public string CustomerId { + get { return customerId_; } + set { + customerId_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "plannable_location_id" field. + public const int PlannableLocationIdFieldNumber = 2; + private static readonly pb::FieldCodec _single_plannableLocationId_codec = pb::FieldCodec.ForClassWrapper(18); + private string plannableLocationId_; + /// + /// Required. The ID of the location, this is one of the ids returned by + /// ListPlannableLocations. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public string PlannableLocationId { + get { return plannableLocationId_; } + set { + plannableLocationId_ = value; + } + } + + + /// Field number for the "currency_code" field. + public const int CurrencyCodeFieldNumber = 3; + private static readonly pb::FieldCodec _single_currencyCode_codec = pb::FieldCodec.ForClassWrapper(26); + private string currencyCode_; + /// + /// Required. Currency code. + /// Three-character ISO 4217 currency code. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public string CurrencyCode { + get { return currencyCode_; } + set { + currencyCode_ = value; + } + } + + + /// Field number for the "budget_micros" field. + public const int BudgetMicrosFieldNumber = 4; + private static readonly pb::FieldCodec _single_budgetMicros_codec = pb::FieldCodec.ForStructWrapper(34); + private long? budgetMicros_; + /// + /// Required. Total budget. + /// Amount in micros. One million is equivalent to one unit. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public long? BudgetMicros { + get { return budgetMicros_; } + set { + budgetMicros_ = value; + } + } + + + /// Field number for the "preferences" field. + public const int PreferencesFieldNumber = 5; + private global::Google.Ads.GoogleAds.V2.Services.Preferences preferences_; + /// + /// The preferences of the suggested product mix. + /// An unset preference is interpreted as all possible values are allowed, + /// unless explicitly specified. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public global::Google.Ads.GoogleAds.V2.Services.Preferences Preferences { + get { return preferences_; } + set { + preferences_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override bool Equals(object other) { + return Equals(other as GenerateProductMixIdeasRequest); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Equals(GenerateProductMixIdeasRequest other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (CustomerId != other.CustomerId) return false; + if (PlannableLocationId != other.PlannableLocationId) return false; + if (CurrencyCode != other.CurrencyCode) return false; + if (BudgetMicros != other.BudgetMicros) return false; + if (!object.Equals(Preferences, other.Preferences)) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override int GetHashCode() { + int hash = 1; + if (CustomerId.Length != 0) hash ^= CustomerId.GetHashCode(); + if (plannableLocationId_ != null) hash ^= PlannableLocationId.GetHashCode(); + if (currencyCode_ != null) hash ^= CurrencyCode.GetHashCode(); + if (budgetMicros_ != null) hash ^= BudgetMicros.GetHashCode(); + if (preferences_ != null) hash ^= Preferences.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void WriteTo(pb::CodedOutputStream output) { + if (CustomerId.Length != 0) { + output.WriteRawTag(10); + output.WriteString(CustomerId); + } + if (plannableLocationId_ != null) { + _single_plannableLocationId_codec.WriteTagAndValue(output, PlannableLocationId); + } + if (currencyCode_ != null) { + _single_currencyCode_codec.WriteTagAndValue(output, CurrencyCode); + } + if (budgetMicros_ != null) { + _single_budgetMicros_codec.WriteTagAndValue(output, BudgetMicros); + } + if (preferences_ != null) { + output.WriteRawTag(42); + output.WriteMessage(Preferences); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CalculateSize() { + int size = 0; + if (CustomerId.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(CustomerId); + } + if (plannableLocationId_ != null) { + size += _single_plannableLocationId_codec.CalculateSizeWithTag(PlannableLocationId); + } + if (currencyCode_ != null) { + size += _single_currencyCode_codec.CalculateSizeWithTag(CurrencyCode); + } + if (budgetMicros_ != null) { + size += _single_budgetMicros_codec.CalculateSizeWithTag(BudgetMicros); + } + if (preferences_ != null) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(Preferences); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(GenerateProductMixIdeasRequest other) { + if (other == null) { + return; + } + if (other.CustomerId.Length != 0) { + CustomerId = other.CustomerId; + } + if (other.plannableLocationId_ != null) { + if (plannableLocationId_ == null || other.PlannableLocationId != "") { + PlannableLocationId = other.PlannableLocationId; + } + } + if (other.currencyCode_ != null) { + if (currencyCode_ == null || other.CurrencyCode != "") { + CurrencyCode = other.CurrencyCode; + } + } + if (other.budgetMicros_ != null) { + if (budgetMicros_ == null || other.BudgetMicros != 0L) { + BudgetMicros = other.BudgetMicros; + } + } + if (other.preferences_ != null) { + if (preferences_ == null) { + Preferences = new global::Google.Ads.GoogleAds.V2.Services.Preferences(); + } + Preferences.MergeFrom(other.Preferences); + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(pb::CodedInputStream input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + CustomerId = input.ReadString(); + break; + } + case 18: { + string value = _single_plannableLocationId_codec.Read(input); + if (plannableLocationId_ == null || value != "") { + PlannableLocationId = value; + } + break; + } + case 26: { + string value = _single_currencyCode_codec.Read(input); + if (currencyCode_ == null || value != "") { + CurrencyCode = value; + } + break; + } + case 34: { + long? value = _single_budgetMicros_codec.Read(input); + if (budgetMicros_ == null || value != 0L) { + BudgetMicros = value; + } + break; + } + case 42: { + if (preferences_ == null) { + Preferences = new global::Google.Ads.GoogleAds.V2.Services.Preferences(); + } + input.ReadMessage(Preferences); + break; + } + } + } + } + + } + + /// + /// Set of preferences about the planned mix. + /// + public sealed partial class Preferences : pb::IMessage { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Preferences()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pbr::MessageDescriptor Descriptor { + get { return global::Google.Ads.GoogleAds.V2.Services.ReachPlanServiceReflection.Descriptor.MessageTypes[8]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public Preferences() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public Preferences(Preferences other) : this() { + IsSkippable = other.IsSkippable; + StartsWithSound = other.StartsWithSound; + adLength_ = other.adLength_; + TopContentOnly = other.TopContentOnly; + HasGuaranteedPrice = other.HasGuaranteedPrice; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public Preferences Clone() { + return new Preferences(this); + } + + /// Field number for the "is_skippable" field. + public const int IsSkippableFieldNumber = 1; + private static readonly pb::FieldCodec _single_isSkippable_codec = pb::FieldCodec.ForStructWrapper(10); + private bool? isSkippable_; + /// + /// True if ad skippable. + /// If not set, default is any value. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool? IsSkippable { + get { return isSkippable_; } + set { + isSkippable_ = value; + } + } + + + /// Field number for the "starts_with_sound" field. + public const int StartsWithSoundFieldNumber = 2; + private static readonly pb::FieldCodec _single_startsWithSound_codec = pb::FieldCodec.ForStructWrapper(18); + private bool? startsWithSound_; + /// + /// True if ad start with sound. + /// If not set, default is any value. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool? StartsWithSound { + get { return startsWithSound_; } + set { + startsWithSound_ = value; + } + } + + + /// Field number for the "ad_length" field. + public const int AdLengthFieldNumber = 3; + private global::Google.Ads.GoogleAds.V2.Enums.ReachPlanAdLengthEnum.Types.ReachPlanAdLength adLength_ = 0; + /// + /// The length of the ad. + /// If not set, default is any value. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public global::Google.Ads.GoogleAds.V2.Enums.ReachPlanAdLengthEnum.Types.ReachPlanAdLength AdLength { + get { return adLength_; } + set { + adLength_ = value; + } + } + + /// Field number for the "top_content_only" field. + public const int TopContentOnlyFieldNumber = 4; + private static readonly pb::FieldCodec _single_topContentOnly_codec = pb::FieldCodec.ForStructWrapper(34); + private bool? topContentOnly_; + /// + /// True if ad will only show on the top content. + /// If not set, default is false. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool? TopContentOnly { + get { return topContentOnly_; } + set { + topContentOnly_ = value; + } + } + + + /// Field number for the "has_guaranteed_price" field. + public const int HasGuaranteedPriceFieldNumber = 5; + private static readonly pb::FieldCodec _single_hasGuaranteedPrice_codec = pb::FieldCodec.ForStructWrapper(42); + private bool? hasGuaranteedPrice_; + /// + /// True if the price guaranteed. The cost of serving the ad is agreed upfront + /// and not subject to an auction. + /// If not set, default is any value. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool? HasGuaranteedPrice { + get { return hasGuaranteedPrice_; } + set { + hasGuaranteedPrice_ = value; + } + } + + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override bool Equals(object other) { + return Equals(other as Preferences); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Equals(Preferences other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (IsSkippable != other.IsSkippable) return false; + if (StartsWithSound != other.StartsWithSound) return false; + if (AdLength != other.AdLength) return false; + if (TopContentOnly != other.TopContentOnly) return false; + if (HasGuaranteedPrice != other.HasGuaranteedPrice) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override int GetHashCode() { + int hash = 1; + if (isSkippable_ != null) hash ^= IsSkippable.GetHashCode(); + if (startsWithSound_ != null) hash ^= StartsWithSound.GetHashCode(); + if (AdLength != 0) hash ^= AdLength.GetHashCode(); + if (topContentOnly_ != null) hash ^= TopContentOnly.GetHashCode(); + if (hasGuaranteedPrice_ != null) hash ^= HasGuaranteedPrice.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void WriteTo(pb::CodedOutputStream output) { + if (isSkippable_ != null) { + _single_isSkippable_codec.WriteTagAndValue(output, IsSkippable); + } + if (startsWithSound_ != null) { + _single_startsWithSound_codec.WriteTagAndValue(output, StartsWithSound); + } + if (AdLength != 0) { + output.WriteRawTag(24); + output.WriteEnum((int) AdLength); + } + if (topContentOnly_ != null) { + _single_topContentOnly_codec.WriteTagAndValue(output, TopContentOnly); + } + if (hasGuaranteedPrice_ != null) { + _single_hasGuaranteedPrice_codec.WriteTagAndValue(output, HasGuaranteedPrice); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CalculateSize() { + int size = 0; + if (isSkippable_ != null) { + size += _single_isSkippable_codec.CalculateSizeWithTag(IsSkippable); + } + if (startsWithSound_ != null) { + size += _single_startsWithSound_codec.CalculateSizeWithTag(StartsWithSound); + } + if (AdLength != 0) { + size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) AdLength); + } + if (topContentOnly_ != null) { + size += _single_topContentOnly_codec.CalculateSizeWithTag(TopContentOnly); + } + if (hasGuaranteedPrice_ != null) { + size += _single_hasGuaranteedPrice_codec.CalculateSizeWithTag(HasGuaranteedPrice); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(Preferences other) { + if (other == null) { + return; + } + if (other.isSkippable_ != null) { + if (isSkippable_ == null || other.IsSkippable != false) { + IsSkippable = other.IsSkippable; + } + } + if (other.startsWithSound_ != null) { + if (startsWithSound_ == null || other.StartsWithSound != false) { + StartsWithSound = other.StartsWithSound; + } + } + if (other.AdLength != 0) { + AdLength = other.AdLength; + } + if (other.topContentOnly_ != null) { + if (topContentOnly_ == null || other.TopContentOnly != false) { + TopContentOnly = other.TopContentOnly; + } + } + if (other.hasGuaranteedPrice_ != null) { + if (hasGuaranteedPrice_ == null || other.HasGuaranteedPrice != false) { + HasGuaranteedPrice = other.HasGuaranteedPrice; + } + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(pb::CodedInputStream input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + bool? value = _single_isSkippable_codec.Read(input); + if (isSkippable_ == null || value != false) { + IsSkippable = value; + } + break; + } + case 18: { + bool? value = _single_startsWithSound_codec.Read(input); + if (startsWithSound_ == null || value != false) { + StartsWithSound = value; + } + break; + } + case 24: { + AdLength = (global::Google.Ads.GoogleAds.V2.Enums.ReachPlanAdLengthEnum.Types.ReachPlanAdLength) input.ReadEnum(); + break; + } + case 34: { + bool? value = _single_topContentOnly_codec.Read(input); + if (topContentOnly_ == null || value != false) { + TopContentOnly = value; + } + break; + } + case 42: { + bool? value = _single_hasGuaranteedPrice_codec.Read(input); + if (hasGuaranteedPrice_ == null || value != false) { + HasGuaranteedPrice = value; + } + break; + } + } + } + } + + } + + /// + /// The suggested product mix. + /// + public sealed partial class GenerateProductMixIdeasResponse : pb::IMessage { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new GenerateProductMixIdeasResponse()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pbr::MessageDescriptor Descriptor { + get { return global::Google.Ads.GoogleAds.V2.Services.ReachPlanServiceReflection.Descriptor.MessageTypes[9]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public GenerateProductMixIdeasResponse() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public GenerateProductMixIdeasResponse(GenerateProductMixIdeasResponse other) : this() { + productAllocation_ = other.productAllocation_.Clone(); + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public GenerateProductMixIdeasResponse Clone() { + return new GenerateProductMixIdeasResponse(this); + } + + /// Field number for the "product_allocation" field. + public const int ProductAllocationFieldNumber = 1; + private static readonly pb::FieldCodec _repeated_productAllocation_codec + = pb::FieldCodec.ForMessage(10, global::Google.Ads.GoogleAds.V2.Services.ProductAllocation.Parser); + private readonly pbc::RepeatedField productAllocation_ = new pbc::RepeatedField(); + /// + /// A list of products (ad formats) and the associated budget allocation idea. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField ProductAllocation { + get { return productAllocation_; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override bool Equals(object other) { + return Equals(other as GenerateProductMixIdeasResponse); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Equals(GenerateProductMixIdeasResponse other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if(!productAllocation_.Equals(other.productAllocation_)) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override int GetHashCode() { + int hash = 1; + hash ^= productAllocation_.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void WriteTo(pb::CodedOutputStream output) { + productAllocation_.WriteTo(output, _repeated_productAllocation_codec); + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CalculateSize() { + int size = 0; + size += productAllocation_.CalculateSize(_repeated_productAllocation_codec); + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(GenerateProductMixIdeasResponse other) { + if (other == null) { + return; + } + productAllocation_.Add(other.productAllocation_); + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(pb::CodedInputStream input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + productAllocation_.AddEntriesFrom(input, _repeated_productAllocation_codec); + break; + } + } + } + } + + } + + /// + /// An allocation of a part of the budget on a given product. + /// + public sealed partial class ProductAllocation : pb::IMessage { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new ProductAllocation()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pbr::MessageDescriptor Descriptor { + get { return global::Google.Ads.GoogleAds.V2.Services.ReachPlanServiceReflection.Descriptor.MessageTypes[10]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public ProductAllocation() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public ProductAllocation(ProductAllocation other) : this() { + PlannableProductCode = other.PlannableProductCode; + BudgetMicros = other.BudgetMicros; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public ProductAllocation Clone() { + return new ProductAllocation(this); + } + + /// Field number for the "plannable_product_code" field. + public const int PlannableProductCodeFieldNumber = 1; + private static readonly pb::FieldCodec _single_plannableProductCode_codec = pb::FieldCodec.ForClassWrapper(10); + private string plannableProductCode_; + /// + /// Selected product for planning. The product codes returned are within the + /// set of the ones returned by ListPlannableProducts when using the same + /// location id. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public string PlannableProductCode { + get { return plannableProductCode_; } + set { + plannableProductCode_ = value; + } + } + + + /// Field number for the "budget_micros" field. + public const int BudgetMicrosFieldNumber = 2; + private static readonly pb::FieldCodec _single_budgetMicros_codec = pb::FieldCodec.ForStructWrapper(18); + private long? budgetMicros_; + /// + /// The value to be allocated for the suggested product in requested currency. + /// Amount in micros. One million is equivalent to one unit. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public long? BudgetMicros { + get { return budgetMicros_; } + set { + budgetMicros_ = value; + } + } + + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override bool Equals(object other) { + return Equals(other as ProductAllocation); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Equals(ProductAllocation other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (PlannableProductCode != other.PlannableProductCode) return false; + if (BudgetMicros != other.BudgetMicros) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override int GetHashCode() { + int hash = 1; + if (plannableProductCode_ != null) hash ^= PlannableProductCode.GetHashCode(); + if (budgetMicros_ != null) hash ^= BudgetMicros.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void WriteTo(pb::CodedOutputStream output) { + if (plannableProductCode_ != null) { + _single_plannableProductCode_codec.WriteTagAndValue(output, PlannableProductCode); + } + if (budgetMicros_ != null) { + _single_budgetMicros_codec.WriteTagAndValue(output, BudgetMicros); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CalculateSize() { + int size = 0; + if (plannableProductCode_ != null) { + size += _single_plannableProductCode_codec.CalculateSizeWithTag(PlannableProductCode); + } + if (budgetMicros_ != null) { + size += _single_budgetMicros_codec.CalculateSizeWithTag(BudgetMicros); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(ProductAllocation other) { + if (other == null) { + return; + } + if (other.plannableProductCode_ != null) { + if (plannableProductCode_ == null || other.PlannableProductCode != "") { + PlannableProductCode = other.PlannableProductCode; + } + } + if (other.budgetMicros_ != null) { + if (budgetMicros_ == null || other.BudgetMicros != 0L) { + BudgetMicros = other.BudgetMicros; + } + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(pb::CodedInputStream input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + string value = _single_plannableProductCode_codec.Read(input); + if (plannableProductCode_ == null || value != "") { + PlannableProductCode = value; + } + break; + } + case 18: { + long? value = _single_budgetMicros_codec.Read(input); + if (budgetMicros_ == null || value != 0L) { + BudgetMicros = value; + } + break; + } + } + } + } + + } + + /// + /// Request message for [ReachPlanService.GenerateReachForecast][google.ads.googleads.v2.services.ReachPlanService.GenerateReachForecast]. + /// + public sealed partial class GenerateReachForecastRequest : pb::IMessage { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new GenerateReachForecastRequest()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pbr::MessageDescriptor Descriptor { + get { return global::Google.Ads.GoogleAds.V2.Services.ReachPlanServiceReflection.Descriptor.MessageTypes[11]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public GenerateReachForecastRequest() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public GenerateReachForecastRequest(GenerateReachForecastRequest other) : this() { + customerId_ = other.customerId_; + CurrencyCode = other.CurrencyCode; + campaignDuration_ = other.campaignDuration_ != null ? other.campaignDuration_.Clone() : null; + CookieFrequencyCap = other.CookieFrequencyCap; + MinEffectiveFrequency = other.MinEffectiveFrequency; + targeting_ = other.targeting_ != null ? other.targeting_.Clone() : null; + plannedProducts_ = other.plannedProducts_.Clone(); + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public GenerateReachForecastRequest Clone() { + return new GenerateReachForecastRequest(this); + } + + /// Field number for the "customer_id" field. + public const int CustomerIdFieldNumber = 1; + private string customerId_ = ""; + /// + /// The ID of the customer. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public string CustomerId { + get { return customerId_; } + set { + customerId_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "currency_code" field. + public const int CurrencyCodeFieldNumber = 2; + private static readonly pb::FieldCodec _single_currencyCode_codec = pb::FieldCodec.ForClassWrapper(18); + private string currencyCode_; + /// + /// Required. The currency code. + /// Three-character ISO 4217 currency code. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public string CurrencyCode { + get { return currencyCode_; } + set { + currencyCode_ = value; + } + } + + + /// Field number for the "campaign_duration" field. + public const int CampaignDurationFieldNumber = 3; + private global::Google.Ads.GoogleAds.V2.Services.CampaignDuration campaignDuration_; + /// + /// Campaign duration. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public global::Google.Ads.GoogleAds.V2.Services.CampaignDuration CampaignDuration { + get { return campaignDuration_; } + set { + campaignDuration_ = value; + } + } + + /// Field number for the "cookie_frequency_cap" field. + public const int CookieFrequencyCapFieldNumber = 4; + private static readonly pb::FieldCodec _single_cookieFrequencyCap_codec = pb::FieldCodec.ForStructWrapper(34); + private int? cookieFrequencyCap_; + /// + /// Desired cookie frequency cap that will be applied to each planned product. + /// This is equivalent to the frequency cap exposed in Google Ads when creating + /// a campaign, it represents the maximum number of times an ad can be shown to + /// the same user. + /// If not specified no cap is applied. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int? CookieFrequencyCap { + get { return cookieFrequencyCap_; } + set { + cookieFrequencyCap_ = value; + } + } + + + /// Field number for the "min_effective_frequency" field. + public const int MinEffectiveFrequencyFieldNumber = 5; + private static readonly pb::FieldCodec _single_minEffectiveFrequency_codec = pb::FieldCodec.ForStructWrapper(42); + private int? minEffectiveFrequency_; + /// + /// Desired minimum effective frequency (the number of times a person was + /// exposed to the ad) for the reported reach metrics [1-10]. + /// This won't affect the targeting, but just the reporting. + /// If not specified, a default of 1 is applied. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int? MinEffectiveFrequency { + get { return minEffectiveFrequency_; } + set { + minEffectiveFrequency_ = value; + } + } + + + /// Field number for the "targeting" field. + public const int TargetingFieldNumber = 6; + private global::Google.Ads.GoogleAds.V2.Services.Targeting targeting_; + /// + /// The targeting to be applied to all products selected in the product mix. + /// + /// This is planned targeting: execution details might vary based on the + /// advertising product, please consult an implementation specialist. + /// + /// If no targeting dimensions are specified, then campaigns will target + /// everywhere and everyone. + /// + /// See specific metrics for details on how targeting affects them. + /// + /// In some cases, targeting may be overridden using the + /// PlannedProduct.advanced_product_targeting field. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public global::Google.Ads.GoogleAds.V2.Services.Targeting Targeting { + get { return targeting_; } + set { + targeting_ = value; + } + } + + /// Field number for the "planned_products" field. + public const int PlannedProductsFieldNumber = 7; + private static readonly pb::FieldCodec _repeated_plannedProducts_codec + = pb::FieldCodec.ForMessage(58, global::Google.Ads.GoogleAds.V2.Services.PlannedProduct.Parser); + private readonly pbc::RepeatedField plannedProducts_ = new pbc::RepeatedField(); + /// + /// The product to be planned. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField PlannedProducts { + get { return plannedProducts_; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override bool Equals(object other) { + return Equals(other as GenerateReachForecastRequest); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Equals(GenerateReachForecastRequest other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (CustomerId != other.CustomerId) return false; + if (CurrencyCode != other.CurrencyCode) return false; + if (!object.Equals(CampaignDuration, other.CampaignDuration)) return false; + if (CookieFrequencyCap != other.CookieFrequencyCap) return false; + if (MinEffectiveFrequency != other.MinEffectiveFrequency) return false; + if (!object.Equals(Targeting, other.Targeting)) return false; + if(!plannedProducts_.Equals(other.plannedProducts_)) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override int GetHashCode() { + int hash = 1; + if (CustomerId.Length != 0) hash ^= CustomerId.GetHashCode(); + if (currencyCode_ != null) hash ^= CurrencyCode.GetHashCode(); + if (campaignDuration_ != null) hash ^= CampaignDuration.GetHashCode(); + if (cookieFrequencyCap_ != null) hash ^= CookieFrequencyCap.GetHashCode(); + if (minEffectiveFrequency_ != null) hash ^= MinEffectiveFrequency.GetHashCode(); + if (targeting_ != null) hash ^= Targeting.GetHashCode(); + hash ^= plannedProducts_.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void WriteTo(pb::CodedOutputStream output) { + if (CustomerId.Length != 0) { + output.WriteRawTag(10); + output.WriteString(CustomerId); + } + if (currencyCode_ != null) { + _single_currencyCode_codec.WriteTagAndValue(output, CurrencyCode); + } + if (campaignDuration_ != null) { + output.WriteRawTag(26); + output.WriteMessage(CampaignDuration); + } + if (cookieFrequencyCap_ != null) { + _single_cookieFrequencyCap_codec.WriteTagAndValue(output, CookieFrequencyCap); + } + if (minEffectiveFrequency_ != null) { + _single_minEffectiveFrequency_codec.WriteTagAndValue(output, MinEffectiveFrequency); + } + if (targeting_ != null) { + output.WriteRawTag(50); + output.WriteMessage(Targeting); + } + plannedProducts_.WriteTo(output, _repeated_plannedProducts_codec); + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CalculateSize() { + int size = 0; + if (CustomerId.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(CustomerId); + } + if (currencyCode_ != null) { + size += _single_currencyCode_codec.CalculateSizeWithTag(CurrencyCode); + } + if (campaignDuration_ != null) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(CampaignDuration); + } + if (cookieFrequencyCap_ != null) { + size += _single_cookieFrequencyCap_codec.CalculateSizeWithTag(CookieFrequencyCap); + } + if (minEffectiveFrequency_ != null) { + size += _single_minEffectiveFrequency_codec.CalculateSizeWithTag(MinEffectiveFrequency); + } + if (targeting_ != null) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(Targeting); + } + size += plannedProducts_.CalculateSize(_repeated_plannedProducts_codec); + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(GenerateReachForecastRequest other) { + if (other == null) { + return; + } + if (other.CustomerId.Length != 0) { + CustomerId = other.CustomerId; + } + if (other.currencyCode_ != null) { + if (currencyCode_ == null || other.CurrencyCode != "") { + CurrencyCode = other.CurrencyCode; + } + } + if (other.campaignDuration_ != null) { + if (campaignDuration_ == null) { + CampaignDuration = new global::Google.Ads.GoogleAds.V2.Services.CampaignDuration(); + } + CampaignDuration.MergeFrom(other.CampaignDuration); + } + if (other.cookieFrequencyCap_ != null) { + if (cookieFrequencyCap_ == null || other.CookieFrequencyCap != 0) { + CookieFrequencyCap = other.CookieFrequencyCap; + } + } + if (other.minEffectiveFrequency_ != null) { + if (minEffectiveFrequency_ == null || other.MinEffectiveFrequency != 0) { + MinEffectiveFrequency = other.MinEffectiveFrequency; + } + } + if (other.targeting_ != null) { + if (targeting_ == null) { + Targeting = new global::Google.Ads.GoogleAds.V2.Services.Targeting(); + } + Targeting.MergeFrom(other.Targeting); + } + plannedProducts_.Add(other.plannedProducts_); + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(pb::CodedInputStream input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + CustomerId = input.ReadString(); + break; + } + case 18: { + string value = _single_currencyCode_codec.Read(input); + if (currencyCode_ == null || value != "") { + CurrencyCode = value; + } + break; + } + case 26: { + if (campaignDuration_ == null) { + CampaignDuration = new global::Google.Ads.GoogleAds.V2.Services.CampaignDuration(); + } + input.ReadMessage(CampaignDuration); + break; + } + case 34: { + int? value = _single_cookieFrequencyCap_codec.Read(input); + if (cookieFrequencyCap_ == null || value != 0) { + CookieFrequencyCap = value; + } + break; + } + case 42: { + int? value = _single_minEffectiveFrequency_codec.Read(input); + if (minEffectiveFrequency_ == null || value != 0) { + MinEffectiveFrequency = value; + } + break; + } + case 50: { + if (targeting_ == null) { + Targeting = new global::Google.Ads.GoogleAds.V2.Services.Targeting(); + } + input.ReadMessage(Targeting); + break; + } + case 58: { + plannedProducts_.AddEntriesFrom(input, _repeated_plannedProducts_codec); + break; + } + } + } + } + + } + + /// + /// The targeting for which traffic metrics will be reported. + /// + public sealed partial class Targeting : pb::IMessage { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Targeting()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pbr::MessageDescriptor Descriptor { + get { return global::Google.Ads.GoogleAds.V2.Services.ReachPlanServiceReflection.Descriptor.MessageTypes[12]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public Targeting() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public Targeting(Targeting other) : this() { + PlannableLocationId = other.PlannableLocationId; + ageRange_ = other.ageRange_; + genders_ = other.genders_.Clone(); + devices_ = other.devices_.Clone(); + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public Targeting Clone() { + return new Targeting(this); + } + + /// Field number for the "plannable_location_id" field. + public const int PlannableLocationIdFieldNumber = 1; + private static readonly pb::FieldCodec _single_plannableLocationId_codec = pb::FieldCodec.ForClassWrapper(10); + private string plannableLocationId_; + /// + /// Required. The ID of the selected location. + /// Plannable locations ID can be obtained from ListPlannableLocations. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public string PlannableLocationId { + get { return plannableLocationId_; } + set { + plannableLocationId_ = value; + } + } + + + /// Field number for the "age_range" field. + public const int AgeRangeFieldNumber = 2; + private global::Google.Ads.GoogleAds.V2.Enums.ReachPlanAgeRangeEnum.Types.ReachPlanAgeRange ageRange_ = 0; + /// + /// Required + /// Selected age range to be planned on. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public global::Google.Ads.GoogleAds.V2.Enums.ReachPlanAgeRangeEnum.Types.ReachPlanAgeRange AgeRange { + get { return ageRange_; } + set { + ageRange_ = value; + } + } + + /// Field number for the "genders" field. + public const int GendersFieldNumber = 3; + private static readonly pb::FieldCodec _repeated_genders_codec + = pb::FieldCodec.ForMessage(26, global::Google.Ads.GoogleAds.V2.Common.GenderInfo.Parser); + private readonly pbc::RepeatedField genders_ = new pbc::RepeatedField(); + /// + /// Targetable genders for the ad product. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField Genders { + get { return genders_; } + } + + /// Field number for the "devices" field. + public const int DevicesFieldNumber = 4; + private static readonly pb::FieldCodec _repeated_devices_codec + = pb::FieldCodec.ForMessage(34, global::Google.Ads.GoogleAds.V2.Common.DeviceInfo.Parser); + private readonly pbc::RepeatedField devices_ = new pbc::RepeatedField(); + /// + /// Targetable devices for the ad product. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField Devices { + get { return devices_; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override bool Equals(object other) { + return Equals(other as Targeting); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Equals(Targeting other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (PlannableLocationId != other.PlannableLocationId) return false; + if (AgeRange != other.AgeRange) return false; + if(!genders_.Equals(other.genders_)) return false; + if(!devices_.Equals(other.devices_)) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override int GetHashCode() { + int hash = 1; + if (plannableLocationId_ != null) hash ^= PlannableLocationId.GetHashCode(); + if (AgeRange != 0) hash ^= AgeRange.GetHashCode(); + hash ^= genders_.GetHashCode(); + hash ^= devices_.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void WriteTo(pb::CodedOutputStream output) { + if (plannableLocationId_ != null) { + _single_plannableLocationId_codec.WriteTagAndValue(output, PlannableLocationId); + } + if (AgeRange != 0) { + output.WriteRawTag(16); + output.WriteEnum((int) AgeRange); + } + genders_.WriteTo(output, _repeated_genders_codec); + devices_.WriteTo(output, _repeated_devices_codec); + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CalculateSize() { + int size = 0; + if (plannableLocationId_ != null) { + size += _single_plannableLocationId_codec.CalculateSizeWithTag(PlannableLocationId); + } + if (AgeRange != 0) { + size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) AgeRange); + } + size += genders_.CalculateSize(_repeated_genders_codec); + size += devices_.CalculateSize(_repeated_devices_codec); + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(Targeting other) { + if (other == null) { + return; + } + if (other.plannableLocationId_ != null) { + if (plannableLocationId_ == null || other.PlannableLocationId != "") { + PlannableLocationId = other.PlannableLocationId; + } + } + if (other.AgeRange != 0) { + AgeRange = other.AgeRange; + } + genders_.Add(other.genders_); + devices_.Add(other.devices_); + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(pb::CodedInputStream input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + string value = _single_plannableLocationId_codec.Read(input); + if (plannableLocationId_ == null || value != "") { + PlannableLocationId = value; + } + break; + } + case 16: { + AgeRange = (global::Google.Ads.GoogleAds.V2.Enums.ReachPlanAgeRangeEnum.Types.ReachPlanAgeRange) input.ReadEnum(); + break; + } + case 26: { + genders_.AddEntriesFrom(input, _repeated_genders_codec); + break; + } + case 34: { + devices_.AddEntriesFrom(input, _repeated_devices_codec); + break; + } + } + } + } + + } + + /// + /// The duration of a planned campaign. + /// + public sealed partial class CampaignDuration : pb::IMessage { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new CampaignDuration()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pbr::MessageDescriptor Descriptor { + get { return global::Google.Ads.GoogleAds.V2.Services.ReachPlanServiceReflection.Descriptor.MessageTypes[13]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public CampaignDuration() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public CampaignDuration(CampaignDuration other) : this() { + DurationInDays = other.DurationInDays; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public CampaignDuration Clone() { + return new CampaignDuration(this); + } + + /// Field number for the "duration_in_days" field. + public const int DurationInDaysFieldNumber = 1; + private static readonly pb::FieldCodec _single_durationInDays_codec = pb::FieldCodec.ForStructWrapper(10); + private int? durationInDays_; + /// + /// The duration value in days. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int? DurationInDays { + get { return durationInDays_; } + set { + durationInDays_ = value; + } + } + + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override bool Equals(object other) { + return Equals(other as CampaignDuration); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Equals(CampaignDuration other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (DurationInDays != other.DurationInDays) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override int GetHashCode() { + int hash = 1; + if (durationInDays_ != null) hash ^= DurationInDays.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void WriteTo(pb::CodedOutputStream output) { + if (durationInDays_ != null) { + _single_durationInDays_codec.WriteTagAndValue(output, DurationInDays); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CalculateSize() { + int size = 0; + if (durationInDays_ != null) { + size += _single_durationInDays_codec.CalculateSizeWithTag(DurationInDays); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(CampaignDuration other) { + if (other == null) { + return; + } + if (other.durationInDays_ != null) { + if (durationInDays_ == null || other.DurationInDays != 0) { + DurationInDays = other.DurationInDays; + } + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(pb::CodedInputStream input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + int? value = _single_durationInDays_codec.Read(input); + if (durationInDays_ == null || value != 0) { + DurationInDays = value; + } + break; + } + } + } + } + + } + + /// + /// A product being planned for reach. + /// + public sealed partial class PlannedProduct : pb::IMessage { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new PlannedProduct()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pbr::MessageDescriptor Descriptor { + get { return global::Google.Ads.GoogleAds.V2.Services.ReachPlanServiceReflection.Descriptor.MessageTypes[14]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public PlannedProduct() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public PlannedProduct(PlannedProduct other) : this() { + PlannableProductCode = other.PlannableProductCode; + BudgetMicros = other.BudgetMicros; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public PlannedProduct Clone() { + return new PlannedProduct(this); + } + + /// Field number for the "plannable_product_code" field. + public const int PlannableProductCodeFieldNumber = 1; + private static readonly pb::FieldCodec _single_plannableProductCode_codec = pb::FieldCodec.ForClassWrapper(10); + private string plannableProductCode_; + /// + /// Required. Selected product for planning. + /// Plannable products codes can be obtained from ListPlannableProducts. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public string PlannableProductCode { + get { return plannableProductCode_; } + set { + plannableProductCode_ = value; + } + } + + + /// Field number for the "budget_micros" field. + public const int BudgetMicrosFieldNumber = 2; + private static readonly pb::FieldCodec _single_budgetMicros_codec = pb::FieldCodec.ForStructWrapper(18); + private long? budgetMicros_; + /// + /// Required. Maximum budget allocation in micros for the selected product. + /// The value is specified in the selected planning currency_code. + /// E.g. 1 000 000$ = 1 000 000 000 000 micros. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public long? BudgetMicros { + get { return budgetMicros_; } + set { + budgetMicros_ = value; + } + } + + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override bool Equals(object other) { + return Equals(other as PlannedProduct); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Equals(PlannedProduct other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (PlannableProductCode != other.PlannableProductCode) return false; + if (BudgetMicros != other.BudgetMicros) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override int GetHashCode() { + int hash = 1; + if (plannableProductCode_ != null) hash ^= PlannableProductCode.GetHashCode(); + if (budgetMicros_ != null) hash ^= BudgetMicros.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void WriteTo(pb::CodedOutputStream output) { + if (plannableProductCode_ != null) { + _single_plannableProductCode_codec.WriteTagAndValue(output, PlannableProductCode); + } + if (budgetMicros_ != null) { + _single_budgetMicros_codec.WriteTagAndValue(output, BudgetMicros); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CalculateSize() { + int size = 0; + if (plannableProductCode_ != null) { + size += _single_plannableProductCode_codec.CalculateSizeWithTag(PlannableProductCode); + } + if (budgetMicros_ != null) { + size += _single_budgetMicros_codec.CalculateSizeWithTag(BudgetMicros); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(PlannedProduct other) { + if (other == null) { + return; + } + if (other.plannableProductCode_ != null) { + if (plannableProductCode_ == null || other.PlannableProductCode != "") { + PlannableProductCode = other.PlannableProductCode; + } + } + if (other.budgetMicros_ != null) { + if (budgetMicros_ == null || other.BudgetMicros != 0L) { + BudgetMicros = other.BudgetMicros; + } + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(pb::CodedInputStream input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + string value = _single_plannableProductCode_codec.Read(input); + if (plannableProductCode_ == null || value != "") { + PlannableProductCode = value; + } + break; + } + case 18: { + long? value = _single_budgetMicros_codec.Read(input); + if (budgetMicros_ == null || value != 0L) { + BudgetMicros = value; + } + break; + } + } + } + } + + } + + /// + /// Response message containing the generated reach curve. + /// + public sealed partial class GenerateReachForecastResponse : pb::IMessage { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new GenerateReachForecastResponse()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pbr::MessageDescriptor Descriptor { + get { return global::Google.Ads.GoogleAds.V2.Services.ReachPlanServiceReflection.Descriptor.MessageTypes[15]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public GenerateReachForecastResponse() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public GenerateReachForecastResponse(GenerateReachForecastResponse other) : this() { + onTargetAudienceMetrics_ = other.onTargetAudienceMetrics_ != null ? other.onTargetAudienceMetrics_.Clone() : null; + reachCurve_ = other.reachCurve_ != null ? other.reachCurve_.Clone() : null; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public GenerateReachForecastResponse Clone() { + return new GenerateReachForecastResponse(this); + } + + /// Field number for the "on_target_audience_metrics" field. + public const int OnTargetAudienceMetricsFieldNumber = 1; + private global::Google.Ads.GoogleAds.V2.Services.OnTargetAudienceMetrics onTargetAudienceMetrics_; + /// + /// Reference on target audiences for this curve. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public global::Google.Ads.GoogleAds.V2.Services.OnTargetAudienceMetrics OnTargetAudienceMetrics { + get { return onTargetAudienceMetrics_; } + set { + onTargetAudienceMetrics_ = value; + } + } + + /// Field number for the "reach_curve" field. + public const int ReachCurveFieldNumber = 2; + private global::Google.Ads.GoogleAds.V2.Services.ReachCurve reachCurve_; + /// + /// The generated reach curve for the planned product mix. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public global::Google.Ads.GoogleAds.V2.Services.ReachCurve ReachCurve { + get { return reachCurve_; } + set { + reachCurve_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override bool Equals(object other) { + return Equals(other as GenerateReachForecastResponse); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Equals(GenerateReachForecastResponse other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (!object.Equals(OnTargetAudienceMetrics, other.OnTargetAudienceMetrics)) return false; + if (!object.Equals(ReachCurve, other.ReachCurve)) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override int GetHashCode() { + int hash = 1; + if (onTargetAudienceMetrics_ != null) hash ^= OnTargetAudienceMetrics.GetHashCode(); + if (reachCurve_ != null) hash ^= ReachCurve.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void WriteTo(pb::CodedOutputStream output) { + if (onTargetAudienceMetrics_ != null) { + output.WriteRawTag(10); + output.WriteMessage(OnTargetAudienceMetrics); + } + if (reachCurve_ != null) { + output.WriteRawTag(18); + output.WriteMessage(ReachCurve); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CalculateSize() { + int size = 0; + if (onTargetAudienceMetrics_ != null) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(OnTargetAudienceMetrics); + } + if (reachCurve_ != null) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(ReachCurve); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(GenerateReachForecastResponse other) { + if (other == null) { + return; + } + if (other.onTargetAudienceMetrics_ != null) { + if (onTargetAudienceMetrics_ == null) { + OnTargetAudienceMetrics = new global::Google.Ads.GoogleAds.V2.Services.OnTargetAudienceMetrics(); + } + OnTargetAudienceMetrics.MergeFrom(other.OnTargetAudienceMetrics); + } + if (other.reachCurve_ != null) { + if (reachCurve_ == null) { + ReachCurve = new global::Google.Ads.GoogleAds.V2.Services.ReachCurve(); + } + ReachCurve.MergeFrom(other.ReachCurve); + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(pb::CodedInputStream input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + if (onTargetAudienceMetrics_ == null) { + OnTargetAudienceMetrics = new global::Google.Ads.GoogleAds.V2.Services.OnTargetAudienceMetrics(); + } + input.ReadMessage(OnTargetAudienceMetrics); + break; + } + case 18: { + if (reachCurve_ == null) { + ReachCurve = new global::Google.Ads.GoogleAds.V2.Services.ReachCurve(); + } + input.ReadMessage(ReachCurve); + break; + } + } + } + } + + } + + /// + /// The reach curve for the planned products. + /// + public sealed partial class ReachCurve : pb::IMessage { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new ReachCurve()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pbr::MessageDescriptor Descriptor { + get { return global::Google.Ads.GoogleAds.V2.Services.ReachPlanServiceReflection.Descriptor.MessageTypes[16]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public ReachCurve() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public ReachCurve(ReachCurve other) : this() { + reachForecasts_ = other.reachForecasts_.Clone(); + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public ReachCurve Clone() { + return new ReachCurve(this); + } + + /// Field number for the "reach_forecasts" field. + public const int ReachForecastsFieldNumber = 1; + private static readonly pb::FieldCodec _repeated_reachForecasts_codec + = pb::FieldCodec.ForMessage(10, global::Google.Ads.GoogleAds.V2.Services.ReachForecast.Parser); + private readonly pbc::RepeatedField reachForecasts_ = new pbc::RepeatedField(); + /// + /// All points on the reach curve. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField ReachForecasts { + get { return reachForecasts_; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override bool Equals(object other) { + return Equals(other as ReachCurve); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Equals(ReachCurve other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if(!reachForecasts_.Equals(other.reachForecasts_)) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override int GetHashCode() { + int hash = 1; + hash ^= reachForecasts_.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void WriteTo(pb::CodedOutputStream output) { + reachForecasts_.WriteTo(output, _repeated_reachForecasts_codec); + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CalculateSize() { + int size = 0; + size += reachForecasts_.CalculateSize(_repeated_reachForecasts_codec); + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(ReachCurve other) { + if (other == null) { + return; + } + reachForecasts_.Add(other.reachForecasts_); + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(pb::CodedInputStream input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + reachForecasts_.AddEntriesFrom(input, _repeated_reachForecasts_codec); + break; + } + } + } + } + + } + + /// + /// A point on reach curve. + /// + public sealed partial class ReachForecast : pb::IMessage { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new ReachForecast()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pbr::MessageDescriptor Descriptor { + get { return global::Google.Ads.GoogleAds.V2.Services.ReachPlanServiceReflection.Descriptor.MessageTypes[17]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public ReachForecast() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public ReachForecast(ReachForecast other) : this() { + CostMicros = other.CostMicros; + forecast_ = other.forecast_ != null ? other.forecast_.Clone() : null; + forecastedProductAllocations_ = other.forecastedProductAllocations_.Clone(); + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public ReachForecast Clone() { + return new ReachForecast(this); + } + + /// Field number for the "cost_micros" field. + public const int CostMicrosFieldNumber = 1; + private static readonly pb::FieldCodec _single_costMicros_codec = pb::FieldCodec.ForStructWrapper(10); + private long? costMicros_; + /// + /// The cost in micros. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public long? CostMicros { + get { return costMicros_; } + set { + costMicros_ = value; + } + } + + + /// Field number for the "forecast" field. + public const int ForecastFieldNumber = 2; + private global::Google.Ads.GoogleAds.V2.Services.Forecast forecast_; + /// + /// Forecasted traffic metrics for this point. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public global::Google.Ads.GoogleAds.V2.Services.Forecast Forecast { + get { return forecast_; } + set { + forecast_ = value; + } + } + + /// Field number for the "forecasted_product_allocations" field. + public const int ForecastedProductAllocationsFieldNumber = 3; + private static readonly pb::FieldCodec _repeated_forecastedProductAllocations_codec + = pb::FieldCodec.ForMessage(26, global::Google.Ads.GoogleAds.V2.Services.ProductAllocation.Parser); + private readonly pbc::RepeatedField forecastedProductAllocations_ = new pbc::RepeatedField(); + /// + /// The forecasted allocation. This differs from the input allocation if one + /// or more product cannot fulfill the budget because of limited inventory. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField ForecastedProductAllocations { + get { return forecastedProductAllocations_; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override bool Equals(object other) { + return Equals(other as ReachForecast); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Equals(ReachForecast other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (CostMicros != other.CostMicros) return false; + if (!object.Equals(Forecast, other.Forecast)) return false; + if(!forecastedProductAllocations_.Equals(other.forecastedProductAllocations_)) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override int GetHashCode() { + int hash = 1; + if (costMicros_ != null) hash ^= CostMicros.GetHashCode(); + if (forecast_ != null) hash ^= Forecast.GetHashCode(); + hash ^= forecastedProductAllocations_.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void WriteTo(pb::CodedOutputStream output) { + if (costMicros_ != null) { + _single_costMicros_codec.WriteTagAndValue(output, CostMicros); + } + if (forecast_ != null) { + output.WriteRawTag(18); + output.WriteMessage(Forecast); + } + forecastedProductAllocations_.WriteTo(output, _repeated_forecastedProductAllocations_codec); + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CalculateSize() { + int size = 0; + if (costMicros_ != null) { + size += _single_costMicros_codec.CalculateSizeWithTag(CostMicros); + } + if (forecast_ != null) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(Forecast); + } + size += forecastedProductAllocations_.CalculateSize(_repeated_forecastedProductAllocations_codec); + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(ReachForecast other) { + if (other == null) { + return; + } + if (other.costMicros_ != null) { + if (costMicros_ == null || other.CostMicros != 0L) { + CostMicros = other.CostMicros; + } + } + if (other.forecast_ != null) { + if (forecast_ == null) { + Forecast = new global::Google.Ads.GoogleAds.V2.Services.Forecast(); + } + Forecast.MergeFrom(other.Forecast); + } + forecastedProductAllocations_.Add(other.forecastedProductAllocations_); + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(pb::CodedInputStream input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + long? value = _single_costMicros_codec.Read(input); + if (costMicros_ == null || value != 0L) { + CostMicros = value; + } + break; + } + case 18: { + if (forecast_ == null) { + Forecast = new global::Google.Ads.GoogleAds.V2.Services.Forecast(); + } + input.ReadMessage(Forecast); + break; + } + case 26: { + forecastedProductAllocations_.AddEntriesFrom(input, _repeated_forecastedProductAllocations_codec); + break; + } + } + } + } + + } + + /// + /// Forecasted traffic metrics for the planned products and targeting. + /// + public sealed partial class Forecast : pb::IMessage { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Forecast()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pbr::MessageDescriptor Descriptor { + get { return global::Google.Ads.GoogleAds.V2.Services.ReachPlanServiceReflection.Descriptor.MessageTypes[18]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public Forecast() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public Forecast(Forecast other) : this() { + OnTargetReach = other.OnTargetReach; + TotalReach = other.TotalReach; + OnTargetImpressions = other.OnTargetImpressions; + TotalImpressions = other.TotalImpressions; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public Forecast Clone() { + return new Forecast(this); + } + + /// Field number for the "on_target_reach" field. + public const int OnTargetReachFieldNumber = 1; + private static readonly pb::FieldCodec _single_onTargetReach_codec = pb::FieldCodec.ForStructWrapper(10); + private long? onTargetReach_; + /// + /// Number of unique people reached at least + /// GenerateReachForecastRequest.min_effective_frequency times that exactly + /// matches the Targeting. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public long? OnTargetReach { + get { return onTargetReach_; } + set { + onTargetReach_ = value; + } + } + + + /// Field number for the "total_reach" field. + public const int TotalReachFieldNumber = 2; + private static readonly pb::FieldCodec _single_totalReach_codec = pb::FieldCodec.ForStructWrapper(18); + private long? totalReach_; + /// + /// Total number of unique people reached at least + /// GenerateReachForecastRequest.min_effective_frequency times. This includes + /// people that may fall outside the specified Targeting. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public long? TotalReach { + get { return totalReach_; } + set { + totalReach_ = value; + } + } + + + /// Field number for the "on_target_impressions" field. + public const int OnTargetImpressionsFieldNumber = 3; + private static readonly pb::FieldCodec _single_onTargetImpressions_codec = pb::FieldCodec.ForStructWrapper(26); + private long? onTargetImpressions_; + /// + /// Number of ad impressions that exactly matches the Targeting. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public long? OnTargetImpressions { + get { return onTargetImpressions_; } + set { + onTargetImpressions_ = value; + } + } + + + /// Field number for the "total_impressions" field. + public const int TotalImpressionsFieldNumber = 4; + private static readonly pb::FieldCodec _single_totalImpressions_codec = pb::FieldCodec.ForStructWrapper(34); + private long? totalImpressions_; + /// + /// Total number of ad impressions. This includes impressions that may fall + /// outside the specified Targeting, due to insufficent information on + /// signed-in users. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public long? TotalImpressions { + get { return totalImpressions_; } + set { + totalImpressions_ = value; + } + } + + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override bool Equals(object other) { + return Equals(other as Forecast); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Equals(Forecast other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (OnTargetReach != other.OnTargetReach) return false; + if (TotalReach != other.TotalReach) return false; + if (OnTargetImpressions != other.OnTargetImpressions) return false; + if (TotalImpressions != other.TotalImpressions) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override int GetHashCode() { + int hash = 1; + if (onTargetReach_ != null) hash ^= OnTargetReach.GetHashCode(); + if (totalReach_ != null) hash ^= TotalReach.GetHashCode(); + if (onTargetImpressions_ != null) hash ^= OnTargetImpressions.GetHashCode(); + if (totalImpressions_ != null) hash ^= TotalImpressions.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void WriteTo(pb::CodedOutputStream output) { + if (onTargetReach_ != null) { + _single_onTargetReach_codec.WriteTagAndValue(output, OnTargetReach); + } + if (totalReach_ != null) { + _single_totalReach_codec.WriteTagAndValue(output, TotalReach); + } + if (onTargetImpressions_ != null) { + _single_onTargetImpressions_codec.WriteTagAndValue(output, OnTargetImpressions); + } + if (totalImpressions_ != null) { + _single_totalImpressions_codec.WriteTagAndValue(output, TotalImpressions); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CalculateSize() { + int size = 0; + if (onTargetReach_ != null) { + size += _single_onTargetReach_codec.CalculateSizeWithTag(OnTargetReach); + } + if (totalReach_ != null) { + size += _single_totalReach_codec.CalculateSizeWithTag(TotalReach); + } + if (onTargetImpressions_ != null) { + size += _single_onTargetImpressions_codec.CalculateSizeWithTag(OnTargetImpressions); + } + if (totalImpressions_ != null) { + size += _single_totalImpressions_codec.CalculateSizeWithTag(TotalImpressions); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(Forecast other) { + if (other == null) { + return; + } + if (other.onTargetReach_ != null) { + if (onTargetReach_ == null || other.OnTargetReach != 0L) { + OnTargetReach = other.OnTargetReach; + } + } + if (other.totalReach_ != null) { + if (totalReach_ == null || other.TotalReach != 0L) { + TotalReach = other.TotalReach; + } + } + if (other.onTargetImpressions_ != null) { + if (onTargetImpressions_ == null || other.OnTargetImpressions != 0L) { + OnTargetImpressions = other.OnTargetImpressions; + } + } + if (other.totalImpressions_ != null) { + if (totalImpressions_ == null || other.TotalImpressions != 0L) { + TotalImpressions = other.TotalImpressions; + } + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(pb::CodedInputStream input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + long? value = _single_onTargetReach_codec.Read(input); + if (onTargetReach_ == null || value != 0L) { + OnTargetReach = value; + } + break; + } + case 18: { + long? value = _single_totalReach_codec.Read(input); + if (totalReach_ == null || value != 0L) { + TotalReach = value; + } + break; + } + case 26: { + long? value = _single_onTargetImpressions_codec.Read(input); + if (onTargetImpressions_ == null || value != 0L) { + OnTargetImpressions = value; + } + break; + } + case 34: { + long? value = _single_totalImpressions_codec.Read(input); + if (totalImpressions_ == null || value != 0L) { + TotalImpressions = value; + } + break; + } + } + } + } + + } + + /// + /// Audience metrics for the planned products. + /// These metrics consider the following targeting dimensions: + /// + /// - Location + /// - PlannableAgeRange + /// - Gender + /// + public sealed partial class OnTargetAudienceMetrics : pb::IMessage { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new OnTargetAudienceMetrics()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pbr::MessageDescriptor Descriptor { + get { return global::Google.Ads.GoogleAds.V2.Services.ReachPlanServiceReflection.Descriptor.MessageTypes[19]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public OnTargetAudienceMetrics() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public OnTargetAudienceMetrics(OnTargetAudienceMetrics other) : this() { + YoutubeAudienceSize = other.YoutubeAudienceSize; + CensusAudienceSize = other.CensusAudienceSize; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public OnTargetAudienceMetrics Clone() { + return new OnTargetAudienceMetrics(this); + } + + /// Field number for the "youtube_audience_size" field. + public const int YoutubeAudienceSizeFieldNumber = 1; + private static readonly pb::FieldCodec _single_youtubeAudienceSize_codec = pb::FieldCodec.ForStructWrapper(10); + private long? youtubeAudienceSize_; + /// + /// Reference audience size matching the considered targeting for YouTube. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public long? YoutubeAudienceSize { + get { return youtubeAudienceSize_; } + set { + youtubeAudienceSize_ = value; + } + } + + + /// Field number for the "census_audience_size" field. + public const int CensusAudienceSizeFieldNumber = 2; + private static readonly pb::FieldCodec _single_censusAudienceSize_codec = pb::FieldCodec.ForStructWrapper(18); + private long? censusAudienceSize_; + /// + /// Reference audience size matching the considered targeting for Census. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public long? CensusAudienceSize { + get { return censusAudienceSize_; } + set { + censusAudienceSize_ = value; + } + } + + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override bool Equals(object other) { + return Equals(other as OnTargetAudienceMetrics); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Equals(OnTargetAudienceMetrics other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (YoutubeAudienceSize != other.YoutubeAudienceSize) return false; + if (CensusAudienceSize != other.CensusAudienceSize) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override int GetHashCode() { + int hash = 1; + if (youtubeAudienceSize_ != null) hash ^= YoutubeAudienceSize.GetHashCode(); + if (censusAudienceSize_ != null) hash ^= CensusAudienceSize.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void WriteTo(pb::CodedOutputStream output) { + if (youtubeAudienceSize_ != null) { + _single_youtubeAudienceSize_codec.WriteTagAndValue(output, YoutubeAudienceSize); + } + if (censusAudienceSize_ != null) { + _single_censusAudienceSize_codec.WriteTagAndValue(output, CensusAudienceSize); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CalculateSize() { + int size = 0; + if (youtubeAudienceSize_ != null) { + size += _single_youtubeAudienceSize_codec.CalculateSizeWithTag(YoutubeAudienceSize); + } + if (censusAudienceSize_ != null) { + size += _single_censusAudienceSize_codec.CalculateSizeWithTag(CensusAudienceSize); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(OnTargetAudienceMetrics other) { + if (other == null) { + return; + } + if (other.youtubeAudienceSize_ != null) { + if (youtubeAudienceSize_ == null || other.YoutubeAudienceSize != 0L) { + YoutubeAudienceSize = other.YoutubeAudienceSize; + } + } + if (other.censusAudienceSize_ != null) { + if (censusAudienceSize_ == null || other.CensusAudienceSize != 0L) { + CensusAudienceSize = other.CensusAudienceSize; + } + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(pb::CodedInputStream input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + long? value = _single_youtubeAudienceSize_codec.Read(input); + if (youtubeAudienceSize_ == null || value != 0L) { + YoutubeAudienceSize = value; + } + break; + } + case 18: { + long? value = _single_censusAudienceSize_codec.Read(input); + if (censusAudienceSize_ == null || value != 0L) { + CensusAudienceSize = value; + } + break; + } + } + } + } + + } + + #endregion + +} + +#endregion Designer generated code diff --git a/src/V2/Stubs/ReachPlanServiceClient.cs b/src/V2/Stubs/ReachPlanServiceClient.cs new file mode 100644 index 000000000..2468acf33 --- /dev/null +++ b/src/V2/Stubs/ReachPlanServiceClient.cs @@ -0,0 +1,980 @@ +// Copyright 2019 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Generated code. DO NOT EDIT! + +using gax = Google.Api.Gax; +using gaxgrpc = Google.Api.Gax.Grpc; +using pb = Google.Protobuf; +using pbwkt = Google.Protobuf.WellKnownTypes; +using grpccore = Grpc.Core; +using sys = System; +using sc = System.Collections; +using scg = System.Collections.Generic; +using sco = System.Collections.ObjectModel; +using st = System.Threading; +using stt = System.Threading.Tasks; + +namespace Google.Ads.GoogleAds.V2.Services +{ + /// + /// Settings for a . + /// + public sealed partial class ReachPlanServiceSettings : gaxgrpc::ServiceSettingsBase + { + /// + /// Get a new instance of the default . + /// + /// + /// A new instance of the default . + /// + public static ReachPlanServiceSettings GetDefault() => new ReachPlanServiceSettings(); + + /// + /// Constructs a new object with default settings. + /// + public ReachPlanServiceSettings() { } + + private ReachPlanServiceSettings(ReachPlanServiceSettings existing) : base(existing) + { + gax::GaxPreconditions.CheckNotNull(existing, nameof(existing)); + ListPlannableLocationsSettings = existing.ListPlannableLocationsSettings; + ListPlannableProductsSettings = existing.ListPlannableProductsSettings; + GenerateProductMixIdeasSettings = existing.GenerateProductMixIdeasSettings; + GenerateReachForecastSettings = existing.GenerateReachForecastSettings; + OnCopy(existing); + } + + partial void OnCopy(ReachPlanServiceSettings existing); + + /// + /// The filter specifying which RPC s are eligible for retry + /// for "Idempotent" RPC methods. + /// + /// + /// The eligible RPC s for retry for "Idempotent" RPC methods are: + /// + /// + /// + /// + /// + public static sys::Predicate IdempotentRetryFilter { get; } = + gaxgrpc::RetrySettings.FilterForStatusCodes(grpccore::StatusCode.DeadlineExceeded, grpccore::StatusCode.Unavailable); + + /// + /// The filter specifying which RPC s are eligible for retry + /// for "NonIdempotent" RPC methods. + /// + /// + /// There are no RPC s eligible for retry for "NonIdempotent" RPC methods. + /// + public static sys::Predicate NonIdempotentRetryFilter { get; } = + gaxgrpc::RetrySettings.FilterForStatusCodes(); + + /// + /// "Default" retry backoff for RPC methods. + /// + /// + /// The "Default" retry backoff for RPC methods. + /// + /// + /// The "Default" retry backoff for RPC methods is defined as: + /// + /// Initial delay: 5000 milliseconds + /// Maximum delay: 60000 milliseconds + /// Delay multiplier: 1.3 + /// + /// + public static gaxgrpc::BackoffSettings GetDefaultRetryBackoff() => new gaxgrpc::BackoffSettings( + delay: sys::TimeSpan.FromMilliseconds(5000), + maxDelay: sys::TimeSpan.FromMilliseconds(60000), + delayMultiplier: 1.3 + ); + + /// + /// "Default" timeout backoff for RPC methods. + /// + /// + /// The "Default" timeout backoff for RPC methods. + /// + /// + /// The "Default" timeout backoff for RPC methods is defined as: + /// + /// Initial timeout: 3600000 milliseconds + /// Timeout multiplier: 1.0 + /// Maximum timeout: 3600000 milliseconds + /// + /// + public static gaxgrpc::BackoffSettings GetDefaultTimeoutBackoff() => new gaxgrpc::BackoffSettings( + delay: sys::TimeSpan.FromMilliseconds(3600000), + maxDelay: sys::TimeSpan.FromMilliseconds(3600000), + delayMultiplier: 1.0 + ); + + /// + /// for synchronous and asynchronous calls to + /// ReachPlanServiceClient.ListPlannableLocations and ReachPlanServiceClient.ListPlannableLocationsAsync. + /// + /// + /// The default ReachPlanServiceClient.ListPlannableLocations and + /// ReachPlanServiceClient.ListPlannableLocationsAsync are: + /// + /// Initial retry delay: 5000 milliseconds + /// Retry delay multiplier: 1.3 + /// Retry maximum delay: 60000 milliseconds + /// Initial timeout: 3600000 milliseconds + /// Timeout multiplier: 1.0 + /// Timeout maximum delay: 3600000 milliseconds + /// + /// Retry will be attempted on the following response status codes: + /// + /// No status codes + /// + /// Default RPC expiration is 3600000 milliseconds. + /// + public gaxgrpc::CallSettings ListPlannableLocationsSettings { get; set; } = gaxgrpc::CallSettings.FromCallTiming( + gaxgrpc::CallTiming.FromRetry(new gaxgrpc::RetrySettings( + retryBackoff: GetDefaultRetryBackoff(), + timeoutBackoff: GetDefaultTimeoutBackoff(), + totalExpiration: gax::Expiration.FromTimeout(sys::TimeSpan.FromMilliseconds(3600000)), + retryFilter: NonIdempotentRetryFilter + ))); + + /// + /// for synchronous and asynchronous calls to + /// ReachPlanServiceClient.ListPlannableProducts and ReachPlanServiceClient.ListPlannableProductsAsync. + /// + /// + /// The default ReachPlanServiceClient.ListPlannableProducts and + /// ReachPlanServiceClient.ListPlannableProductsAsync are: + /// + /// Initial retry delay: 5000 milliseconds + /// Retry delay multiplier: 1.3 + /// Retry maximum delay: 60000 milliseconds + /// Initial timeout: 3600000 milliseconds + /// Timeout multiplier: 1.0 + /// Timeout maximum delay: 3600000 milliseconds + /// + /// Retry will be attempted on the following response status codes: + /// + /// No status codes + /// + /// Default RPC expiration is 3600000 milliseconds. + /// + public gaxgrpc::CallSettings ListPlannableProductsSettings { get; set; } = gaxgrpc::CallSettings.FromCallTiming( + gaxgrpc::CallTiming.FromRetry(new gaxgrpc::RetrySettings( + retryBackoff: GetDefaultRetryBackoff(), + timeoutBackoff: GetDefaultTimeoutBackoff(), + totalExpiration: gax::Expiration.FromTimeout(sys::TimeSpan.FromMilliseconds(3600000)), + retryFilter: NonIdempotentRetryFilter + ))); + + /// + /// for synchronous and asynchronous calls to + /// ReachPlanServiceClient.GenerateProductMixIdeas and ReachPlanServiceClient.GenerateProductMixIdeasAsync. + /// + /// + /// The default ReachPlanServiceClient.GenerateProductMixIdeas and + /// ReachPlanServiceClient.GenerateProductMixIdeasAsync are: + /// + /// Initial retry delay: 5000 milliseconds + /// Retry delay multiplier: 1.3 + /// Retry maximum delay: 60000 milliseconds + /// Initial timeout: 3600000 milliseconds + /// Timeout multiplier: 1.0 + /// Timeout maximum delay: 3600000 milliseconds + /// + /// Retry will be attempted on the following response status codes: + /// + /// No status codes + /// + /// Default RPC expiration is 3600000 milliseconds. + /// + public gaxgrpc::CallSettings GenerateProductMixIdeasSettings { get; set; } = gaxgrpc::CallSettings.FromCallTiming( + gaxgrpc::CallTiming.FromRetry(new gaxgrpc::RetrySettings( + retryBackoff: GetDefaultRetryBackoff(), + timeoutBackoff: GetDefaultTimeoutBackoff(), + totalExpiration: gax::Expiration.FromTimeout(sys::TimeSpan.FromMilliseconds(3600000)), + retryFilter: NonIdempotentRetryFilter + ))); + + /// + /// for synchronous and asynchronous calls to + /// ReachPlanServiceClient.GenerateReachForecast and ReachPlanServiceClient.GenerateReachForecastAsync. + /// + /// + /// The default ReachPlanServiceClient.GenerateReachForecast and + /// ReachPlanServiceClient.GenerateReachForecastAsync are: + /// + /// Initial retry delay: 5000 milliseconds + /// Retry delay multiplier: 1.3 + /// Retry maximum delay: 60000 milliseconds + /// Initial timeout: 3600000 milliseconds + /// Timeout multiplier: 1.0 + /// Timeout maximum delay: 3600000 milliseconds + /// + /// Retry will be attempted on the following response status codes: + /// + /// No status codes + /// + /// Default RPC expiration is 3600000 milliseconds. + /// + public gaxgrpc::CallSettings GenerateReachForecastSettings { get; set; } = gaxgrpc::CallSettings.FromCallTiming( + gaxgrpc::CallTiming.FromRetry(new gaxgrpc::RetrySettings( + retryBackoff: GetDefaultRetryBackoff(), + timeoutBackoff: GetDefaultTimeoutBackoff(), + totalExpiration: gax::Expiration.FromTimeout(sys::TimeSpan.FromMilliseconds(3600000)), + retryFilter: NonIdempotentRetryFilter + ))); + + /// + /// Creates a deep clone of this object, with all the same property values. + /// + /// A deep clone of this object. + public ReachPlanServiceSettings Clone() => new ReachPlanServiceSettings(this); + } + + /// + /// Builder class for to provide simple configuration of credentials, endpoint etc. + /// + public sealed partial class ReachPlanServiceClientBuilder : gaxgrpc::ClientBuilderBase + { + /// + /// The settings to use for RPCs, or null for the default settings. + /// + public ReachPlanServiceSettings Settings { get; set; } + + /// + public override ReachPlanServiceClient Build() + { + Validate(); + grpccore::CallInvoker callInvoker = CreateCallInvoker(); + return ReachPlanServiceClient.Create(callInvoker, Settings); + } + + /// + public override async stt::Task BuildAsync(st::CancellationToken cancellationToken = default) + { + Validate(); + grpccore::CallInvoker callInvoker = await CreateCallInvokerAsync(cancellationToken).ConfigureAwait(false); + return ReachPlanServiceClient.Create(callInvoker, Settings); + } + + /// + protected override gaxgrpc::ServiceEndpoint GetDefaultEndpoint() => ReachPlanServiceClient.DefaultEndpoint; + + /// + protected override scg::IReadOnlyList GetDefaultScopes() => ReachPlanServiceClient.DefaultScopes; + + /// + protected override gaxgrpc::ChannelPool GetChannelPool() => ReachPlanServiceClient.ChannelPool; + } + + /// + /// ReachPlanService client wrapper, for convenient use. + /// + public abstract partial class ReachPlanServiceClient + { + /// + /// The default endpoint for the ReachPlanService service, which is a host of "googleads.googleapis.com" and a port of 443. + /// + public static gaxgrpc::ServiceEndpoint DefaultEndpoint { get; } = new gaxgrpc::ServiceEndpoint("googleads.googleapis.com", 443); + + /// + /// The default ReachPlanService scopes. + /// + /// + /// The default ReachPlanService scopes are: + /// + /// + /// + public static scg::IReadOnlyList DefaultScopes { get; } = new sco::ReadOnlyCollection(new string[] { + }); + + private static readonly gaxgrpc::ChannelPool s_channelPool = new gaxgrpc::ChannelPool(DefaultScopes); + + internal static gaxgrpc::ChannelPool ChannelPool => s_channelPool; + + /// + /// Asynchronously creates a , applying defaults for all unspecified settings, + /// and creating a channel connecting to the given endpoint with application default credentials where + /// necessary. See the example for how to use custom credentials. + /// + /// + /// This sample shows how to create a client using default credentials: + /// + /// using Google.Ads.GoogleAds.V2.Services; + /// ... + /// // When running on Google Cloud Platform this will use the project Compute Credential. + /// // Or set the GOOGLE_APPLICATION_CREDENTIALS environment variable to the path of a JSON + /// // credential file to use that credential. + /// ReachPlanServiceClient client = await ReachPlanServiceClient.CreateAsync(); + /// + /// This sample shows how to create a client using credentials loaded from a JSON file: + /// + /// using Google.Ads.GoogleAds.V2.Services; + /// using Google.Apis.Auth.OAuth2; + /// using Grpc.Auth; + /// using Grpc.Core; + /// ... + /// GoogleCredential cred = GoogleCredential.FromFile("/path/to/credentials.json"); + /// Channel channel = new Channel( + /// ReachPlanServiceClient.DefaultEndpoint.Host, ReachPlanServiceClient.DefaultEndpoint.Port, cred.ToChannelCredentials()); + /// ReachPlanServiceClient client = ReachPlanServiceClient.Create(channel); + /// ... + /// // Shutdown the channel when it is no longer required. + /// await channel.ShutdownAsync(); + /// + /// + /// Optional . + /// Optional . + /// The task representing the created . + public static async stt::Task CreateAsync(gaxgrpc::ServiceEndpoint endpoint = null, ReachPlanServiceSettings settings = null) + { + grpccore::Channel channel = await s_channelPool.GetChannelAsync(endpoint ?? DefaultEndpoint).ConfigureAwait(false); + return Create(channel, settings); + } + + /// + /// Synchronously creates a , applying defaults for all unspecified settings, + /// and creating a channel connecting to the given endpoint with application default credentials where + /// necessary. See the example for how to use custom credentials. + /// + /// + /// This sample shows how to create a client using default credentials: + /// + /// using Google.Ads.GoogleAds.V2.Services; + /// ... + /// // When running on Google Cloud Platform this will use the project Compute Credential. + /// // Or set the GOOGLE_APPLICATION_CREDENTIALS environment variable to the path of a JSON + /// // credential file to use that credential. + /// ReachPlanServiceClient client = ReachPlanServiceClient.Create(); + /// + /// This sample shows how to create a client using credentials loaded from a JSON file: + /// + /// using Google.Ads.GoogleAds.V2.Services; + /// using Google.Apis.Auth.OAuth2; + /// using Grpc.Auth; + /// using Grpc.Core; + /// ... + /// GoogleCredential cred = GoogleCredential.FromFile("/path/to/credentials.json"); + /// Channel channel = new Channel( + /// ReachPlanServiceClient.DefaultEndpoint.Host, ReachPlanServiceClient.DefaultEndpoint.Port, cred.ToChannelCredentials()); + /// ReachPlanServiceClient client = ReachPlanServiceClient.Create(channel); + /// ... + /// // Shutdown the channel when it is no longer required. + /// channel.ShutdownAsync().Wait(); + /// + /// + /// Optional . + /// Optional . + /// The created . + public static ReachPlanServiceClient Create(gaxgrpc::ServiceEndpoint endpoint = null, ReachPlanServiceSettings settings = null) + { + grpccore::Channel channel = s_channelPool.GetChannel(endpoint ?? DefaultEndpoint); + return Create(channel, settings); + } + + /// + /// Creates a which uses the specified channel for remote operations. + /// + /// The for remote operations. Must not be null. + /// Optional . + /// The created . + public static ReachPlanServiceClient Create(grpccore::Channel channel, ReachPlanServiceSettings settings = null) + { + gax::GaxPreconditions.CheckNotNull(channel, nameof(channel)); + return Create(new grpccore::DefaultCallInvoker(channel), settings); + } + + /// + /// Creates a which uses the specified call invoker for remote operations. + /// + /// The for remote operations. Must not be null. + /// Optional . + /// The created . + public static ReachPlanServiceClient Create(grpccore::CallInvoker callInvoker, ReachPlanServiceSettings settings = null) + { + gax::GaxPreconditions.CheckNotNull(callInvoker, nameof(callInvoker)); + grpccore::Interceptors.Interceptor interceptor = settings?.Interceptor; + if (interceptor != null) + { + callInvoker = grpccore::Interceptors.CallInvokerExtensions.Intercept(callInvoker, interceptor); + } + ReachPlanService.ReachPlanServiceClient grpcClient = new ReachPlanService.ReachPlanServiceClient(callInvoker); + return new ReachPlanServiceClientImpl(grpcClient, settings); + } + + /// + /// Shuts down any channels automatically created by + /// and . Channels which weren't automatically + /// created are not affected. + /// + /// After calling this method, further calls to + /// and will create new channels, which could + /// in turn be shut down by another call to this method. + /// A task representing the asynchronous shutdown operation. + public static stt::Task ShutdownDefaultChannelsAsync() => s_channelPool.ShutdownChannelsAsync(); + + /// + /// The underlying gRPC ReachPlanService client. + /// + public virtual ReachPlanService.ReachPlanServiceClient GrpcClient + { + get { throw new sys::NotImplementedException(); } + } + + /// + /// Returns the list of plannable locations (e.g. countries, DMAs). + /// + /// + /// The request object containing all of the parameters for the API call. + /// + /// + /// If not null, applies overrides to this RPC call. + /// + /// + /// A Task containing the RPC response. + /// + public virtual stt::Task ListPlannableLocationsAsync( + ListPlannableLocationsRequest request, + gaxgrpc::CallSettings callSettings = null) + { + throw new sys::NotImplementedException(); + } + + /// + /// Returns the list of plannable locations (e.g. countries, DMAs). + /// + /// + /// The request object containing all of the parameters for the API call. + /// + /// + /// A to use for this RPC. + /// + /// + /// A Task containing the RPC response. + /// + public virtual stt::Task ListPlannableLocationsAsync( + ListPlannableLocationsRequest request, + st::CancellationToken cancellationToken) => ListPlannableLocationsAsync( + request, + gaxgrpc::CallSettings.FromCancellationToken(cancellationToken)); + + /// + /// Returns the list of plannable locations (e.g. countries, DMAs). + /// + /// + /// The request object containing all of the parameters for the API call. + /// + /// + /// If not null, applies overrides to this RPC call. + /// + /// + /// The RPC response. + /// + public virtual ListPlannableLocationsResponse ListPlannableLocations( + ListPlannableLocationsRequest request, + gaxgrpc::CallSettings callSettings = null) + { + throw new sys::NotImplementedException(); + } + + /// + /// Returns the list of per-location plannable YouTube ad formats with allowed + /// targeting. + /// + /// + /// The ID of the selected location for planning. To list the available + /// plannable location ids use ListPlannableLocations. + /// + /// + /// If not null, applies overrides to this RPC call. + /// + /// + /// A Task containing the RPC response. + /// + public virtual stt::Task ListPlannableProductsAsync( + string plannableLocationId, + gaxgrpc::CallSettings callSettings = null) => ListPlannableProductsAsync( + new ListPlannableProductsRequest + { + PlannableLocationId = gax::GaxPreconditions.CheckNotNullOrEmpty(plannableLocationId, nameof(plannableLocationId)), + }, + callSettings); + + /// + /// Returns the list of per-location plannable YouTube ad formats with allowed + /// targeting. + /// + /// + /// The ID of the selected location for planning. To list the available + /// plannable location ids use ListPlannableLocations. + /// + /// + /// A to use for this RPC. + /// + /// + /// A Task containing the RPC response. + /// + public virtual stt::Task ListPlannableProductsAsync( + string plannableLocationId, + st::CancellationToken cancellationToken) => ListPlannableProductsAsync( + plannableLocationId, + gaxgrpc::CallSettings.FromCancellationToken(cancellationToken)); + + /// + /// Returns the list of per-location plannable YouTube ad formats with allowed + /// targeting. + /// + /// + /// The ID of the selected location for planning. To list the available + /// plannable location ids use ListPlannableLocations. + /// + /// + /// If not null, applies overrides to this RPC call. + /// + /// + /// The RPC response. + /// + public virtual ListPlannableProductsResponse ListPlannableProducts( + string plannableLocationId, + gaxgrpc::CallSettings callSettings = null) => ListPlannableProducts( + new ListPlannableProductsRequest + { + PlannableLocationId = gax::GaxPreconditions.CheckNotNullOrEmpty(plannableLocationId, nameof(plannableLocationId)), + }, + callSettings); + + /// + /// Returns the list of per-location plannable YouTube ad formats with allowed + /// targeting. + /// + /// + /// The request object containing all of the parameters for the API call. + /// + /// + /// If not null, applies overrides to this RPC call. + /// + /// + /// A Task containing the RPC response. + /// + public virtual stt::Task ListPlannableProductsAsync( + ListPlannableProductsRequest request, + gaxgrpc::CallSettings callSettings = null) + { + throw new sys::NotImplementedException(); + } + + /// + /// Returns the list of per-location plannable YouTube ad formats with allowed + /// targeting. + /// + /// + /// The request object containing all of the parameters for the API call. + /// + /// + /// A to use for this RPC. + /// + /// + /// A Task containing the RPC response. + /// + public virtual stt::Task ListPlannableProductsAsync( + ListPlannableProductsRequest request, + st::CancellationToken cancellationToken) => ListPlannableProductsAsync( + request, + gaxgrpc::CallSettings.FromCancellationToken(cancellationToken)); + + /// + /// Returns the list of per-location plannable YouTube ad formats with allowed + /// targeting. + /// + /// + /// The request object containing all of the parameters for the API call. + /// + /// + /// If not null, applies overrides to this RPC call. + /// + /// + /// The RPC response. + /// + public virtual ListPlannableProductsResponse ListPlannableProducts( + ListPlannableProductsRequest request, + gaxgrpc::CallSettings callSettings = null) + { + throw new sys::NotImplementedException(); + } + + /// + /// Generates a product mix ideas given a set of preferences. This method + /// helps the advertiser to obtain a good mix of ad formats and budget + /// allocations based on its preferences. + /// + /// + /// The request object containing all of the parameters for the API call. + /// + /// + /// If not null, applies overrides to this RPC call. + /// + /// + /// A Task containing the RPC response. + /// + public virtual stt::Task GenerateProductMixIdeasAsync( + GenerateProductMixIdeasRequest request, + gaxgrpc::CallSettings callSettings = null) + { + throw new sys::NotImplementedException(); + } + + /// + /// Generates a product mix ideas given a set of preferences. This method + /// helps the advertiser to obtain a good mix of ad formats and budget + /// allocations based on its preferences. + /// + /// + /// The request object containing all of the parameters for the API call. + /// + /// + /// A to use for this RPC. + /// + /// + /// A Task containing the RPC response. + /// + public virtual stt::Task GenerateProductMixIdeasAsync( + GenerateProductMixIdeasRequest request, + st::CancellationToken cancellationToken) => GenerateProductMixIdeasAsync( + request, + gaxgrpc::CallSettings.FromCancellationToken(cancellationToken)); + + /// + /// Generates a product mix ideas given a set of preferences. This method + /// helps the advertiser to obtain a good mix of ad formats and budget + /// allocations based on its preferences. + /// + /// + /// The request object containing all of the parameters for the API call. + /// + /// + /// If not null, applies overrides to this RPC call. + /// + /// + /// The RPC response. + /// + public virtual GenerateProductMixIdeasResponse GenerateProductMixIdeas( + GenerateProductMixIdeasRequest request, + gaxgrpc::CallSettings callSettings = null) + { + throw new sys::NotImplementedException(); + } + + /// + /// Generates a reach forecast for a given targeting / product mix. + /// + /// + /// The request object containing all of the parameters for the API call. + /// + /// + /// If not null, applies overrides to this RPC call. + /// + /// + /// A Task containing the RPC response. + /// + public virtual stt::Task GenerateReachForecastAsync( + GenerateReachForecastRequest request, + gaxgrpc::CallSettings callSettings = null) + { + throw new sys::NotImplementedException(); + } + + /// + /// Generates a reach forecast for a given targeting / product mix. + /// + /// + /// The request object containing all of the parameters for the API call. + /// + /// + /// A to use for this RPC. + /// + /// + /// A Task containing the RPC response. + /// + public virtual stt::Task GenerateReachForecastAsync( + GenerateReachForecastRequest request, + st::CancellationToken cancellationToken) => GenerateReachForecastAsync( + request, + gaxgrpc::CallSettings.FromCancellationToken(cancellationToken)); + + /// + /// Generates a reach forecast for a given targeting / product mix. + /// + /// + /// The request object containing all of the parameters for the API call. + /// + /// + /// If not null, applies overrides to this RPC call. + /// + /// + /// The RPC response. + /// + public virtual GenerateReachForecastResponse GenerateReachForecast( + GenerateReachForecastRequest request, + gaxgrpc::CallSettings callSettings = null) + { + throw new sys::NotImplementedException(); + } + + } + + /// + /// ReachPlanService client wrapper implementation, for convenient use. + /// + public sealed partial class ReachPlanServiceClientImpl : ReachPlanServiceClient + { + private readonly gaxgrpc::ApiCall _callListPlannableLocations; + private readonly gaxgrpc::ApiCall _callListPlannableProducts; + private readonly gaxgrpc::ApiCall _callGenerateProductMixIdeas; + private readonly gaxgrpc::ApiCall _callGenerateReachForecast; + + /// + /// Constructs a client wrapper for the ReachPlanService service, with the specified gRPC client and settings. + /// + /// The underlying gRPC client. + /// The base used within this client + public ReachPlanServiceClientImpl(ReachPlanService.ReachPlanServiceClient grpcClient, ReachPlanServiceSettings settings) + { + GrpcClient = grpcClient; + ReachPlanServiceSettings effectiveSettings = settings ?? ReachPlanServiceSettings.GetDefault(); + gaxgrpc::ClientHelper clientHelper = new gaxgrpc::ClientHelper(effectiveSettings); + _callListPlannableLocations = clientHelper.BuildApiCall( + GrpcClient.ListPlannableLocationsAsync, GrpcClient.ListPlannableLocations, effectiveSettings.ListPlannableLocationsSettings); + _callListPlannableProducts = clientHelper.BuildApiCall( + GrpcClient.ListPlannableProductsAsync, GrpcClient.ListPlannableProducts, effectiveSettings.ListPlannableProductsSettings); + _callGenerateProductMixIdeas = clientHelper.BuildApiCall( + GrpcClient.GenerateProductMixIdeasAsync, GrpcClient.GenerateProductMixIdeas, effectiveSettings.GenerateProductMixIdeasSettings) + .WithCallSettingsOverlay(request => gaxgrpc::CallSettings.FromHeader("x-goog-request-params", $"customer_id={request.CustomerId}")); + _callGenerateReachForecast = clientHelper.BuildApiCall( + GrpcClient.GenerateReachForecastAsync, GrpcClient.GenerateReachForecast, effectiveSettings.GenerateReachForecastSettings) + .WithCallSettingsOverlay(request => gaxgrpc::CallSettings.FromHeader("x-goog-request-params", $"customer_id={request.CustomerId}")); + Modify_ApiCall(ref _callListPlannableLocations); + Modify_ListPlannableLocationsApiCall(ref _callListPlannableLocations); + Modify_ApiCall(ref _callListPlannableProducts); + Modify_ListPlannableProductsApiCall(ref _callListPlannableProducts); + Modify_ApiCall(ref _callGenerateProductMixIdeas); + Modify_GenerateProductMixIdeasApiCall(ref _callGenerateProductMixIdeas); + Modify_ApiCall(ref _callGenerateReachForecast); + Modify_GenerateReachForecastApiCall(ref _callGenerateReachForecast); + OnConstruction(grpcClient, effectiveSettings, clientHelper); + } + + // Partial methods are named to (mostly) ensure there cannot be conflicts with RPC method names. + + // Partial methods called for every ApiCall on construction. + // Allows modification of all the underlying ApiCall objects. + partial void Modify_ApiCall(ref gaxgrpc::ApiCall call) + where TRequest : class, pb::IMessage + where TResponse : class, pb::IMessage; + + // Partial methods called for each ApiCall on construction. + // Allows per-RPC-method modification of the underlying ApiCall object. + partial void Modify_ListPlannableLocationsApiCall(ref gaxgrpc::ApiCall call); + partial void Modify_ListPlannableProductsApiCall(ref gaxgrpc::ApiCall call); + partial void Modify_GenerateProductMixIdeasApiCall(ref gaxgrpc::ApiCall call); + partial void Modify_GenerateReachForecastApiCall(ref gaxgrpc::ApiCall call); + partial void OnConstruction(ReachPlanService.ReachPlanServiceClient grpcClient, ReachPlanServiceSettings effectiveSettings, gaxgrpc::ClientHelper clientHelper); + + /// + /// The underlying gRPC ReachPlanService client. + /// + public override ReachPlanService.ReachPlanServiceClient GrpcClient { get; } + + // Partial methods called on each request. + // Allows per-RPC-call modification to the request and CallSettings objects, + // before the underlying RPC is performed. + partial void Modify_ListPlannableLocationsRequest(ref ListPlannableLocationsRequest request, ref gaxgrpc::CallSettings settings); + partial void Modify_ListPlannableProductsRequest(ref ListPlannableProductsRequest request, ref gaxgrpc::CallSettings settings); + partial void Modify_GenerateProductMixIdeasRequest(ref GenerateProductMixIdeasRequest request, ref gaxgrpc::CallSettings settings); + partial void Modify_GenerateReachForecastRequest(ref GenerateReachForecastRequest request, ref gaxgrpc::CallSettings settings); + + /// + /// Returns the list of plannable locations (e.g. countries, DMAs). + /// + /// + /// The request object containing all of the parameters for the API call. + /// + /// + /// If not null, applies overrides to this RPC call. + /// + /// + /// A Task containing the RPC response. + /// + public override stt::Task ListPlannableLocationsAsync( + ListPlannableLocationsRequest request, + gaxgrpc::CallSettings callSettings = null) + { + Modify_ListPlannableLocationsRequest(ref request, ref callSettings); + return _callListPlannableLocations.Async(request, callSettings); + } + + /// + /// Returns the list of plannable locations (e.g. countries, DMAs). + /// + /// + /// The request object containing all of the parameters for the API call. + /// + /// + /// If not null, applies overrides to this RPC call. + /// + /// + /// The RPC response. + /// + public override ListPlannableLocationsResponse ListPlannableLocations( + ListPlannableLocationsRequest request, + gaxgrpc::CallSettings callSettings = null) + { + Modify_ListPlannableLocationsRequest(ref request, ref callSettings); + return _callListPlannableLocations.Sync(request, callSettings); + } + + /// + /// Returns the list of per-location plannable YouTube ad formats with allowed + /// targeting. + /// + /// + /// The request object containing all of the parameters for the API call. + /// + /// + /// If not null, applies overrides to this RPC call. + /// + /// + /// A Task containing the RPC response. + /// + public override stt::Task ListPlannableProductsAsync( + ListPlannableProductsRequest request, + gaxgrpc::CallSettings callSettings = null) + { + Modify_ListPlannableProductsRequest(ref request, ref callSettings); + return _callListPlannableProducts.Async(request, callSettings); + } + + /// + /// Returns the list of per-location plannable YouTube ad formats with allowed + /// targeting. + /// + /// + /// The request object containing all of the parameters for the API call. + /// + /// + /// If not null, applies overrides to this RPC call. + /// + /// + /// The RPC response. + /// + public override ListPlannableProductsResponse ListPlannableProducts( + ListPlannableProductsRequest request, + gaxgrpc::CallSettings callSettings = null) + { + Modify_ListPlannableProductsRequest(ref request, ref callSettings); + return _callListPlannableProducts.Sync(request, callSettings); + } + + /// + /// Generates a product mix ideas given a set of preferences. This method + /// helps the advertiser to obtain a good mix of ad formats and budget + /// allocations based on its preferences. + /// + /// + /// The request object containing all of the parameters for the API call. + /// + /// + /// If not null, applies overrides to this RPC call. + /// + /// + /// A Task containing the RPC response. + /// + public override stt::Task GenerateProductMixIdeasAsync( + GenerateProductMixIdeasRequest request, + gaxgrpc::CallSettings callSettings = null) + { + Modify_GenerateProductMixIdeasRequest(ref request, ref callSettings); + return _callGenerateProductMixIdeas.Async(request, callSettings); + } + + /// + /// Generates a product mix ideas given a set of preferences. This method + /// helps the advertiser to obtain a good mix of ad formats and budget + /// allocations based on its preferences. + /// + /// + /// The request object containing all of the parameters for the API call. + /// + /// + /// If not null, applies overrides to this RPC call. + /// + /// + /// The RPC response. + /// + public override GenerateProductMixIdeasResponse GenerateProductMixIdeas( + GenerateProductMixIdeasRequest request, + gaxgrpc::CallSettings callSettings = null) + { + Modify_GenerateProductMixIdeasRequest(ref request, ref callSettings); + return _callGenerateProductMixIdeas.Sync(request, callSettings); + } + + /// + /// Generates a reach forecast for a given targeting / product mix. + /// + /// + /// The request object containing all of the parameters for the API call. + /// + /// + /// If not null, applies overrides to this RPC call. + /// + /// + /// A Task containing the RPC response. + /// + public override stt::Task GenerateReachForecastAsync( + GenerateReachForecastRequest request, + gaxgrpc::CallSettings callSettings = null) + { + Modify_GenerateReachForecastRequest(ref request, ref callSettings); + return _callGenerateReachForecast.Async(request, callSettings); + } + + /// + /// Generates a reach forecast for a given targeting / product mix. + /// + /// + /// The request object containing all of the parameters for the API call. + /// + /// + /// If not null, applies overrides to this RPC call. + /// + /// + /// The RPC response. + /// + public override GenerateReachForecastResponse GenerateReachForecast( + GenerateReachForecastRequest request, + gaxgrpc::CallSettings callSettings = null) + { + Modify_GenerateReachForecastRequest(ref request, ref callSettings); + return _callGenerateReachForecast.Sync(request, callSettings); + } + + } + + // Partial classes to enable page-streaming + + +} diff --git a/src/V2/Stubs/ReachPlanServiceClientExceptionCustomization.cs b/src/V2/Stubs/ReachPlanServiceClientExceptionCustomization.cs new file mode 100644 index 000000000..228608c74 --- /dev/null +++ b/src/V2/Stubs/ReachPlanServiceClientExceptionCustomization.cs @@ -0,0 +1,28 @@ +// Copyright 2019 Google LLC. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// Generated code - do not edit +using Google.Api.Gax.Grpc; +using Google.Protobuf; +using Google.Ads.GoogleAds.V2.Errors; +namespace Google.Ads.GoogleAds.V2.Services +{ + public partial class ReachPlanServiceClientImpl + { + // Modify every API call on construction to use GoogleAdsException + partial void Modify_ApiCall(ref ApiCall call) + where TRequest : class, IMessage + where TResponse : class, IMessage => + call = call.WithExceptionCustomizer(GoogleAdsException.Create); + } +} diff --git a/src/V2/Stubs/ReachPlanServiceGrpc.cs b/src/V2/Stubs/ReachPlanServiceGrpc.cs new file mode 100644 index 000000000..56a2fbd07 --- /dev/null +++ b/src/V2/Stubs/ReachPlanServiceGrpc.cs @@ -0,0 +1,376 @@ +// +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/ads/googleads/v2/services/reach_plan_service.proto +// +// Original file comments: +// Copyright 2019 Google LLC. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +#pragma warning disable 0414, 1591 +#region Designer generated code + +using grpc = global::Grpc.Core; + +namespace Google.Ads.GoogleAds.V2.Services { + /// + /// Reach Plan Service gives users information about audience size that can + /// be reached through advertisement on YouTube. In particular, + /// GenerateReachForecast provides estimated number of people of specified + /// demographics that can be reached by an ad in a given market by a campaign of + /// certain duration with a defined budget. + /// + public static partial class ReachPlanService + { + static readonly string __ServiceName = "google.ads.googleads.v2.services.ReachPlanService"; + + static readonly grpc::Marshaller __Marshaller_google_ads_googleads_v2_services_ListPlannableLocationsRequest = grpc::Marshallers.Create((arg) => global::Google.Protobuf.MessageExtensions.ToByteArray(arg), global::Google.Ads.GoogleAds.V2.Services.ListPlannableLocationsRequest.Parser.ParseFrom); + static readonly grpc::Marshaller __Marshaller_google_ads_googleads_v2_services_ListPlannableLocationsResponse = grpc::Marshallers.Create((arg) => global::Google.Protobuf.MessageExtensions.ToByteArray(arg), global::Google.Ads.GoogleAds.V2.Services.ListPlannableLocationsResponse.Parser.ParseFrom); + static readonly grpc::Marshaller __Marshaller_google_ads_googleads_v2_services_ListPlannableProductsRequest = grpc::Marshallers.Create((arg) => global::Google.Protobuf.MessageExtensions.ToByteArray(arg), global::Google.Ads.GoogleAds.V2.Services.ListPlannableProductsRequest.Parser.ParseFrom); + static readonly grpc::Marshaller __Marshaller_google_ads_googleads_v2_services_ListPlannableProductsResponse = grpc::Marshallers.Create((arg) => global::Google.Protobuf.MessageExtensions.ToByteArray(arg), global::Google.Ads.GoogleAds.V2.Services.ListPlannableProductsResponse.Parser.ParseFrom); + static readonly grpc::Marshaller __Marshaller_google_ads_googleads_v2_services_GenerateProductMixIdeasRequest = grpc::Marshallers.Create((arg) => global::Google.Protobuf.MessageExtensions.ToByteArray(arg), global::Google.Ads.GoogleAds.V2.Services.GenerateProductMixIdeasRequest.Parser.ParseFrom); + static readonly grpc::Marshaller __Marshaller_google_ads_googleads_v2_services_GenerateProductMixIdeasResponse = grpc::Marshallers.Create((arg) => global::Google.Protobuf.MessageExtensions.ToByteArray(arg), global::Google.Ads.GoogleAds.V2.Services.GenerateProductMixIdeasResponse.Parser.ParseFrom); + static readonly grpc::Marshaller __Marshaller_google_ads_googleads_v2_services_GenerateReachForecastRequest = grpc::Marshallers.Create((arg) => global::Google.Protobuf.MessageExtensions.ToByteArray(arg), global::Google.Ads.GoogleAds.V2.Services.GenerateReachForecastRequest.Parser.ParseFrom); + static readonly grpc::Marshaller __Marshaller_google_ads_googleads_v2_services_GenerateReachForecastResponse = grpc::Marshallers.Create((arg) => global::Google.Protobuf.MessageExtensions.ToByteArray(arg), global::Google.Ads.GoogleAds.V2.Services.GenerateReachForecastResponse.Parser.ParseFrom); + + static readonly grpc::Method __Method_ListPlannableLocations = new grpc::Method( + grpc::MethodType.Unary, + __ServiceName, + "ListPlannableLocations", + __Marshaller_google_ads_googleads_v2_services_ListPlannableLocationsRequest, + __Marshaller_google_ads_googleads_v2_services_ListPlannableLocationsResponse); + + static readonly grpc::Method __Method_ListPlannableProducts = new grpc::Method( + grpc::MethodType.Unary, + __ServiceName, + "ListPlannableProducts", + __Marshaller_google_ads_googleads_v2_services_ListPlannableProductsRequest, + __Marshaller_google_ads_googleads_v2_services_ListPlannableProductsResponse); + + static readonly grpc::Method __Method_GenerateProductMixIdeas = new grpc::Method( + grpc::MethodType.Unary, + __ServiceName, + "GenerateProductMixIdeas", + __Marshaller_google_ads_googleads_v2_services_GenerateProductMixIdeasRequest, + __Marshaller_google_ads_googleads_v2_services_GenerateProductMixIdeasResponse); + + static readonly grpc::Method __Method_GenerateReachForecast = new grpc::Method( + grpc::MethodType.Unary, + __ServiceName, + "GenerateReachForecast", + __Marshaller_google_ads_googleads_v2_services_GenerateReachForecastRequest, + __Marshaller_google_ads_googleads_v2_services_GenerateReachForecastResponse); + + /// Service descriptor + public static global::Google.Protobuf.Reflection.ServiceDescriptor Descriptor + { + get { return global::Google.Ads.GoogleAds.V2.Services.ReachPlanServiceReflection.Descriptor.Services[0]; } + } + + /// Base class for server-side implementations of ReachPlanService + public abstract partial class ReachPlanServiceBase + { + /// + /// Returns the list of plannable locations (e.g. countries, DMAs). + /// + /// The request received from the client. + /// The context of the server-side call handler being invoked. + /// The response to send back to the client (wrapped by a task). + public virtual global::System.Threading.Tasks.Task ListPlannableLocations(global::Google.Ads.GoogleAds.V2.Services.ListPlannableLocationsRequest request, grpc::ServerCallContext context) + { + throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, "")); + } + + /// + /// Returns the list of per-location plannable YouTube ad formats with allowed + /// targeting. + /// + /// The request received from the client. + /// The context of the server-side call handler being invoked. + /// The response to send back to the client (wrapped by a task). + public virtual global::System.Threading.Tasks.Task ListPlannableProducts(global::Google.Ads.GoogleAds.V2.Services.ListPlannableProductsRequest request, grpc::ServerCallContext context) + { + throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, "")); + } + + /// + /// Generates a product mix ideas given a set of preferences. This method + /// helps the advertiser to obtain a good mix of ad formats and budget + /// allocations based on its preferences. + /// + /// The request received from the client. + /// The context of the server-side call handler being invoked. + /// The response to send back to the client (wrapped by a task). + public virtual global::System.Threading.Tasks.Task GenerateProductMixIdeas(global::Google.Ads.GoogleAds.V2.Services.GenerateProductMixIdeasRequest request, grpc::ServerCallContext context) + { + throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, "")); + } + + /// + /// Generates a reach forecast for a given targeting / product mix. + /// + /// The request received from the client. + /// The context of the server-side call handler being invoked. + /// The response to send back to the client (wrapped by a task). + public virtual global::System.Threading.Tasks.Task GenerateReachForecast(global::Google.Ads.GoogleAds.V2.Services.GenerateReachForecastRequest request, grpc::ServerCallContext context) + { + throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, "")); + } + + } + + /// Client for ReachPlanService + public partial class ReachPlanServiceClient : grpc::ClientBase + { + /// Creates a new client for ReachPlanService + /// The channel to use to make remote calls. + public ReachPlanServiceClient(grpc::Channel channel) : base(channel) + { + } + /// Creates a new client for ReachPlanService that uses a custom CallInvoker. + /// The callInvoker to use to make remote calls. + public ReachPlanServiceClient(grpc::CallInvoker callInvoker) : base(callInvoker) + { + } + /// Protected parameterless constructor to allow creation of test doubles. + protected ReachPlanServiceClient() : base() + { + } + /// Protected constructor to allow creation of configured clients. + /// The client configuration. + protected ReachPlanServiceClient(ClientBaseConfiguration configuration) : base(configuration) + { + } + + /// + /// Returns the list of plannable locations (e.g. countries, DMAs). + /// + /// The request to send to the server. + /// The initial metadata to send with the call. This parameter is optional. + /// An optional deadline for the call. The call will be cancelled if deadline is hit. + /// An optional token for canceling the call. + /// The response received from the server. + public virtual global::Google.Ads.GoogleAds.V2.Services.ListPlannableLocationsResponse ListPlannableLocations(global::Google.Ads.GoogleAds.V2.Services.ListPlannableLocationsRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken)) + { + return ListPlannableLocations(request, new grpc::CallOptions(headers, deadline, cancellationToken)); + } + /// + /// Returns the list of plannable locations (e.g. countries, DMAs). + /// + /// The request to send to the server. + /// The options for the call. + /// The response received from the server. + public virtual global::Google.Ads.GoogleAds.V2.Services.ListPlannableLocationsResponse ListPlannableLocations(global::Google.Ads.GoogleAds.V2.Services.ListPlannableLocationsRequest request, grpc::CallOptions options) + { + return CallInvoker.BlockingUnaryCall(__Method_ListPlannableLocations, null, options, request); + } + /// + /// Returns the list of plannable locations (e.g. countries, DMAs). + /// + /// The request to send to the server. + /// The initial metadata to send with the call. This parameter is optional. + /// An optional deadline for the call. The call will be cancelled if deadline is hit. + /// An optional token for canceling the call. + /// The call object. + public virtual grpc::AsyncUnaryCall ListPlannableLocationsAsync(global::Google.Ads.GoogleAds.V2.Services.ListPlannableLocationsRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken)) + { + return ListPlannableLocationsAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken)); + } + /// + /// Returns the list of plannable locations (e.g. countries, DMAs). + /// + /// The request to send to the server. + /// The options for the call. + /// The call object. + public virtual grpc::AsyncUnaryCall ListPlannableLocationsAsync(global::Google.Ads.GoogleAds.V2.Services.ListPlannableLocationsRequest request, grpc::CallOptions options) + { + return CallInvoker.AsyncUnaryCall(__Method_ListPlannableLocations, null, options, request); + } + /// + /// Returns the list of per-location plannable YouTube ad formats with allowed + /// targeting. + /// + /// The request to send to the server. + /// The initial metadata to send with the call. This parameter is optional. + /// An optional deadline for the call. The call will be cancelled if deadline is hit. + /// An optional token for canceling the call. + /// The response received from the server. + public virtual global::Google.Ads.GoogleAds.V2.Services.ListPlannableProductsResponse ListPlannableProducts(global::Google.Ads.GoogleAds.V2.Services.ListPlannableProductsRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken)) + { + return ListPlannableProducts(request, new grpc::CallOptions(headers, deadline, cancellationToken)); + } + /// + /// Returns the list of per-location plannable YouTube ad formats with allowed + /// targeting. + /// + /// The request to send to the server. + /// The options for the call. + /// The response received from the server. + public virtual global::Google.Ads.GoogleAds.V2.Services.ListPlannableProductsResponse ListPlannableProducts(global::Google.Ads.GoogleAds.V2.Services.ListPlannableProductsRequest request, grpc::CallOptions options) + { + return CallInvoker.BlockingUnaryCall(__Method_ListPlannableProducts, null, options, request); + } + /// + /// Returns the list of per-location plannable YouTube ad formats with allowed + /// targeting. + /// + /// The request to send to the server. + /// The initial metadata to send with the call. This parameter is optional. + /// An optional deadline for the call. The call will be cancelled if deadline is hit. + /// An optional token for canceling the call. + /// The call object. + public virtual grpc::AsyncUnaryCall ListPlannableProductsAsync(global::Google.Ads.GoogleAds.V2.Services.ListPlannableProductsRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken)) + { + return ListPlannableProductsAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken)); + } + /// + /// Returns the list of per-location plannable YouTube ad formats with allowed + /// targeting. + /// + /// The request to send to the server. + /// The options for the call. + /// The call object. + public virtual grpc::AsyncUnaryCall ListPlannableProductsAsync(global::Google.Ads.GoogleAds.V2.Services.ListPlannableProductsRequest request, grpc::CallOptions options) + { + return CallInvoker.AsyncUnaryCall(__Method_ListPlannableProducts, null, options, request); + } + /// + /// Generates a product mix ideas given a set of preferences. This method + /// helps the advertiser to obtain a good mix of ad formats and budget + /// allocations based on its preferences. + /// + /// The request to send to the server. + /// The initial metadata to send with the call. This parameter is optional. + /// An optional deadline for the call. The call will be cancelled if deadline is hit. + /// An optional token for canceling the call. + /// The response received from the server. + public virtual global::Google.Ads.GoogleAds.V2.Services.GenerateProductMixIdeasResponse GenerateProductMixIdeas(global::Google.Ads.GoogleAds.V2.Services.GenerateProductMixIdeasRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken)) + { + return GenerateProductMixIdeas(request, new grpc::CallOptions(headers, deadline, cancellationToken)); + } + /// + /// Generates a product mix ideas given a set of preferences. This method + /// helps the advertiser to obtain a good mix of ad formats and budget + /// allocations based on its preferences. + /// + /// The request to send to the server. + /// The options for the call. + /// The response received from the server. + public virtual global::Google.Ads.GoogleAds.V2.Services.GenerateProductMixIdeasResponse GenerateProductMixIdeas(global::Google.Ads.GoogleAds.V2.Services.GenerateProductMixIdeasRequest request, grpc::CallOptions options) + { + return CallInvoker.BlockingUnaryCall(__Method_GenerateProductMixIdeas, null, options, request); + } + /// + /// Generates a product mix ideas given a set of preferences. This method + /// helps the advertiser to obtain a good mix of ad formats and budget + /// allocations based on its preferences. + /// + /// The request to send to the server. + /// The initial metadata to send with the call. This parameter is optional. + /// An optional deadline for the call. The call will be cancelled if deadline is hit. + /// An optional token for canceling the call. + /// The call object. + public virtual grpc::AsyncUnaryCall GenerateProductMixIdeasAsync(global::Google.Ads.GoogleAds.V2.Services.GenerateProductMixIdeasRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken)) + { + return GenerateProductMixIdeasAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken)); + } + /// + /// Generates a product mix ideas given a set of preferences. This method + /// helps the advertiser to obtain a good mix of ad formats and budget + /// allocations based on its preferences. + /// + /// The request to send to the server. + /// The options for the call. + /// The call object. + public virtual grpc::AsyncUnaryCall GenerateProductMixIdeasAsync(global::Google.Ads.GoogleAds.V2.Services.GenerateProductMixIdeasRequest request, grpc::CallOptions options) + { + return CallInvoker.AsyncUnaryCall(__Method_GenerateProductMixIdeas, null, options, request); + } + /// + /// Generates a reach forecast for a given targeting / product mix. + /// + /// The request to send to the server. + /// The initial metadata to send with the call. This parameter is optional. + /// An optional deadline for the call. The call will be cancelled if deadline is hit. + /// An optional token for canceling the call. + /// The response received from the server. + public virtual global::Google.Ads.GoogleAds.V2.Services.GenerateReachForecastResponse GenerateReachForecast(global::Google.Ads.GoogleAds.V2.Services.GenerateReachForecastRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken)) + { + return GenerateReachForecast(request, new grpc::CallOptions(headers, deadline, cancellationToken)); + } + /// + /// Generates a reach forecast for a given targeting / product mix. + /// + /// The request to send to the server. + /// The options for the call. + /// The response received from the server. + public virtual global::Google.Ads.GoogleAds.V2.Services.GenerateReachForecastResponse GenerateReachForecast(global::Google.Ads.GoogleAds.V2.Services.GenerateReachForecastRequest request, grpc::CallOptions options) + { + return CallInvoker.BlockingUnaryCall(__Method_GenerateReachForecast, null, options, request); + } + /// + /// Generates a reach forecast for a given targeting / product mix. + /// + /// The request to send to the server. + /// The initial metadata to send with the call. This parameter is optional. + /// An optional deadline for the call. The call will be cancelled if deadline is hit. + /// An optional token for canceling the call. + /// The call object. + public virtual grpc::AsyncUnaryCall GenerateReachForecastAsync(global::Google.Ads.GoogleAds.V2.Services.GenerateReachForecastRequest request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken)) + { + return GenerateReachForecastAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken)); + } + /// + /// Generates a reach forecast for a given targeting / product mix. + /// + /// The request to send to the server. + /// The options for the call. + /// The call object. + public virtual grpc::AsyncUnaryCall GenerateReachForecastAsync(global::Google.Ads.GoogleAds.V2.Services.GenerateReachForecastRequest request, grpc::CallOptions options) + { + return CallInvoker.AsyncUnaryCall(__Method_GenerateReachForecast, null, options, request); + } + /// Creates a new instance of client from given ClientBaseConfiguration. + protected override ReachPlanServiceClient NewInstance(ClientBaseConfiguration configuration) + { + return new ReachPlanServiceClient(configuration); + } + } + + /// Creates service definition that can be registered with a server + /// An object implementing the server-side handling logic. + public static grpc::ServerServiceDefinition BindService(ReachPlanServiceBase serviceImpl) + { + return grpc::ServerServiceDefinition.CreateBuilder() + .AddMethod(__Method_ListPlannableLocations, serviceImpl.ListPlannableLocations) + .AddMethod(__Method_ListPlannableProducts, serviceImpl.ListPlannableProducts) + .AddMethod(__Method_GenerateProductMixIdeas, serviceImpl.GenerateProductMixIdeas) + .AddMethod(__Method_GenerateReachForecast, serviceImpl.GenerateReachForecast).Build(); + } + + /// Register service method implementations with a service binder. Useful when customizing the service binding logic. + /// Note: this method is part of an experimental API that can change or be removed without any prior notice. + /// Service methods will be bound by calling AddMethod on this object. + /// An object implementing the server-side handling logic. + public static void BindService(grpc::ServiceBinderBase serviceBinder, ReachPlanServiceBase serviceImpl) + { + serviceBinder.AddMethod(__Method_ListPlannableLocations, serviceImpl.ListPlannableLocations); + serviceBinder.AddMethod(__Method_ListPlannableProducts, serviceImpl.ListPlannableProducts); + serviceBinder.AddMethod(__Method_GenerateProductMixIdeas, serviceImpl.GenerateProductMixIdeas); + serviceBinder.AddMethod(__Method_GenerateReachForecast, serviceImpl.GenerateReachForecast); + } + + } +} +#endregion diff --git a/src/V2/Stubs/Recommendation.cs b/src/V2/Stubs/Recommendation.cs index 04e698a9f..a963af467 100644 --- a/src/V2/Stubs/Recommendation.cs +++ b/src/V2/Stubs/Recommendation.cs @@ -108,49 +108,49 @@ static RecommendationReflection() { "SW1wYWN0GpYBChVLZXl3b3JkUmVjb21tZW5kYXRpb24SPAoHa2V5d29yZBgB", "IAEoCzIrLmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLmNvbW1vbi5LZXl3b3Jk", "SW5mbxI/ChpyZWNvbW1lbmRlZF9jcGNfYmlkX21pY3JvcxgCIAEoCzIbLmdv", - "b2dsZS5wcm90b2J1Zi5JbnQ2NFZhbHVlGmoKIU1heGltaXplQ2xpY2tzT3B0", - "SW5SZWNvbW1lbmRhdGlvbhJFCiByZWNvbW1lbmRlZF9idWRnZXRfYW1vdW50", - "X21pY3JvcxgBIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQ2NFZhbHVlGnMK", - "H1NpdGVsaW5rRXh0ZW5zaW9uUmVjb21tZW5kYXRpb24SUAoWcmVjb21tZW5k", - "ZWRfZXh0ZW5zaW9ucxgBIAMoCzIwLmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYy", - "LmNvbW1vbi5TaXRlbGlua0ZlZWRJdGVtGrUBChRUZXh0QWRSZWNvbW1lbmRh", - "dGlvbhIxCgJhZBgBIAEoCzIlLmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLnJl", - "c291cmNlcy5BZBIzCg1jcmVhdGlvbl9kYXRlGAIgASgLMhwuZ29vZ2xlLnBy", - "b3RvYnVmLlN0cmluZ1ZhbHVlEjUKD2F1dG9fYXBwbHlfZGF0ZRgDIAEoCzIc", - "Lmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRrfBAocVGFyZ2V0Q3BhT3B0", - "SW5SZWNvbW1lbmRhdGlvbhKCAQoHb3B0aW9ucxgBIAMoCzJxLmdvb2dsZS5h", - "ZHMuZ29vZ2xlYWRzLnYyLnJlc291cmNlcy5SZWNvbW1lbmRhdGlvbi5UYXJn", - "ZXRDcGFPcHRJblJlY29tbWVuZGF0aW9uLlRhcmdldENwYU9wdEluUmVjb21t", - "ZW5kYXRpb25PcHRpb24SQgodcmVjb21tZW5kZWRfdGFyZ2V0X2NwYV9taWNy", - "b3MYAiABKAsyGy5nb29nbGUucHJvdG9idWYuSW50NjRWYWx1ZRr1AgoiVGFy", - "Z2V0Q3BhT3B0SW5SZWNvbW1lbmRhdGlvbk9wdGlvbhJyCgRnb2FsGAEgASgO", - "MmQuZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuZW51bXMuVGFyZ2V0Q3BhT3B0", - "SW5SZWNvbW1lbmRhdGlvbkdvYWxFbnVtLlRhcmdldENwYU9wdEluUmVjb21t", - "ZW5kYXRpb25Hb2FsEjYKEXRhcmdldF9jcGFfbWljcm9zGAIgASgLMhsuZ29v", - "Z2xlLnByb3RvYnVmLkludDY0VmFsdWUSSwomcmVxdWlyZWRfY2FtcGFpZ25f", - "YnVkZ2V0X2Ftb3VudF9taWNyb3MYAyABKAsyGy5nb29nbGUucHJvdG9idWYu", - "SW50NjRWYWx1ZRJWCgZpbXBhY3QYBCABKAsyRi5nb29nbGUuYWRzLmdvb2ds", - "ZWFkcy52Mi5yZXNvdXJjZXMuUmVjb21tZW5kYXRpb24uUmVjb21tZW5kYXRp", - "b25JbXBhY3QabwomTWF4aW1pemVDb252ZXJzaW9uc09wdEluUmVjb21tZW5k", + "b2dsZS5wcm90b2J1Zi5JbnQ2NFZhbHVlGnMKH1NpdGVsaW5rRXh0ZW5zaW9u", + "UmVjb21tZW5kYXRpb24SUAoWcmVjb21tZW5kZWRfZXh0ZW5zaW9ucxgBIAMo", + "CzIwLmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLmNvbW1vbi5TaXRlbGlua0Zl", + "ZWRJdGVtGrUBChRUZXh0QWRSZWNvbW1lbmRhdGlvbhIxCgJhZBgBIAEoCzIl", + "Lmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLnJlc291cmNlcy5BZBIzCg1jcmVh", + "dGlvbl9kYXRlGAIgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVl", + "EjUKD2F1dG9fYXBwbHlfZGF0ZRgDIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5T", + "dHJpbmdWYWx1ZRojCiFTZWFyY2hQYXJ0bmVyc09wdEluUmVjb21tZW5kYXRp", + "b24a3wQKHFRhcmdldENwYU9wdEluUmVjb21tZW5kYXRpb24SggEKB29wdGlv", + "bnMYASADKAsycS5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5yZXNvdXJjZXMu", + "UmVjb21tZW5kYXRpb24uVGFyZ2V0Q3BhT3B0SW5SZWNvbW1lbmRhdGlvbi5U", + "YXJnZXRDcGFPcHRJblJlY29tbWVuZGF0aW9uT3B0aW9uEkIKHXJlY29tbWVu", + "ZGVkX3RhcmdldF9jcGFfbWljcm9zGAIgASgLMhsuZ29vZ2xlLnByb3RvYnVm", + "LkludDY0VmFsdWUa9QIKIlRhcmdldENwYU9wdEluUmVjb21tZW5kYXRpb25P", + "cHRpb24ScgoEZ29hbBgBIAEoDjJkLmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYy", + "LmVudW1zLlRhcmdldENwYU9wdEluUmVjb21tZW5kYXRpb25Hb2FsRW51bS5U", + "YXJnZXRDcGFPcHRJblJlY29tbWVuZGF0aW9uR29hbBI2ChF0YXJnZXRfY3Bh", + "X21pY3JvcxgCIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQ2NFZhbHVlEksK", + "JnJlcXVpcmVkX2NhbXBhaWduX2J1ZGdldF9hbW91bnRfbWljcm9zGAMgASgL", + "MhsuZ29vZ2xlLnByb3RvYnVmLkludDY0VmFsdWUSVgoGaW1wYWN0GAQgASgL", + "MkYuZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIucmVzb3VyY2VzLlJlY29tbWVu", + "ZGF0aW9uLlJlY29tbWVuZGF0aW9uSW1wYWN0Gm8KJk1heGltaXplQ29udmVy", + "c2lvbnNPcHRJblJlY29tbWVuZGF0aW9uEkUKIHJlY29tbWVuZGVkX2J1ZGdl", + "dF9hbW91bnRfbWljcm9zGAEgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDY0", + "VmFsdWUazQEKHk1vdmVVbnVzZWRCdWRnZXRSZWNvbW1lbmRhdGlvbhI8ChZl", + "eGNlc3NfY2FtcGFpZ25fYnVkZ2V0GAEgASgLMhwuZ29vZ2xlLnByb3RvYnVm", + "LlN0cmluZ1ZhbHVlEm0KFWJ1ZGdldF9yZWNvbW1lbmRhdGlvbhgCIAEoCzJO", + "Lmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLnJlc291cmNlcy5SZWNvbW1lbmRh", + "dGlvbi5DYW1wYWlnbkJ1ZGdldFJlY29tbWVuZGF0aW9uGiIKIE9wdGltaXpl", + "QWRSb3RhdGlvblJlY29tbWVuZGF0aW9uGiAKHkVuaGFuY2VkQ3BjT3B0SW5S", + "ZWNvbW1lbmRhdGlvbhpqCiFNYXhpbWl6ZUNsaWNrc09wdEluUmVjb21tZW5k", "YXRpb24SRQogcmVjb21tZW5kZWRfYnVkZ2V0X2Ftb3VudF9taWNyb3MYASAB", - "KAsyGy5nb29nbGUucHJvdG9idWYuSW50NjRWYWx1ZRogCh5FbmhhbmNlZENw", - "Y09wdEluUmVjb21tZW5kYXRpb24aIwohU2VhcmNoUGFydG5lcnNPcHRJblJl", - "Y29tbWVuZGF0aW9uGiIKIE9wdGltaXplQWRSb3RhdGlvblJlY29tbWVuZGF0", - "aW9uGnEKHkNhbGxvdXRFeHRlbnNpb25SZWNvbW1lbmRhdGlvbhJPChZyZWNv", - "bW1lbmRlZF9leHRlbnNpb25zGAEgAygLMi8uZ29vZ2xlLmFkcy5nb29nbGVh", - "ZHMudjIuY29tbW9uLkNhbGxvdXRGZWVkSXRlbRprChtDYWxsRXh0ZW5zaW9u", - "UmVjb21tZW5kYXRpb24STAoWcmVjb21tZW5kZWRfZXh0ZW5zaW9ucxgBIAMo", - "CzIsLmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLmNvbW1vbi5DYWxsRmVlZEl0", - "ZW0axAEKHktleXdvcmRNYXRjaFR5cGVSZWNvbW1lbmRhdGlvbhI8CgdrZXl3", - "b3JkGAEgASgLMisuZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuY29tbW9uLktl", - "eXdvcmRJbmZvEmQKFnJlY29tbWVuZGVkX21hdGNoX3R5cGUYAiABKA4yRC5n", - "b29nbGUuYWRzLmdvb2dsZWFkcy52Mi5lbnVtcy5LZXl3b3JkTWF0Y2hUeXBl", - "RW51bS5LZXl3b3JkTWF0Y2hUeXBlGs0BCh5Nb3ZlVW51c2VkQnVkZ2V0UmVj", - "b21tZW5kYXRpb24SPAoWZXhjZXNzX2NhbXBhaWduX2J1ZGdldBgBIAEoCzIc", - "Lmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRJtChVidWRnZXRfcmVjb21t", - "ZW5kYXRpb24YAiABKAsyTi5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5yZXNv", - "dXJjZXMuUmVjb21tZW5kYXRpb24uQ2FtcGFpZ25CdWRnZXRSZWNvbW1lbmRh", - "dGlvbkIQCg5yZWNvbW1lbmRhdGlvbkKAAgolY29tLmdvb2dsZS5hZHMuZ29v", + "KAsyGy5nb29nbGUucHJvdG9idWYuSW50NjRWYWx1ZRpxCh5DYWxsb3V0RXh0", + "ZW5zaW9uUmVjb21tZW5kYXRpb24STwoWcmVjb21tZW5kZWRfZXh0ZW5zaW9u", + "cxgBIAMoCzIvLmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLmNvbW1vbi5DYWxs", + "b3V0RmVlZEl0ZW0aawobQ2FsbEV4dGVuc2lvblJlY29tbWVuZGF0aW9uEkwK", + "FnJlY29tbWVuZGVkX2V4dGVuc2lvbnMYASADKAsyLC5nb29nbGUuYWRzLmdv", + "b2dsZWFkcy52Mi5jb21tb24uQ2FsbEZlZWRJdGVtGsQBCh5LZXl3b3JkTWF0", + "Y2hUeXBlUmVjb21tZW5kYXRpb24SPAoHa2V5d29yZBgBIAEoCzIrLmdvb2ds", + "ZS5hZHMuZ29vZ2xlYWRzLnYyLmNvbW1vbi5LZXl3b3JkSW5mbxJkChZyZWNv", + "bW1lbmRlZF9tYXRjaF90eXBlGAIgASgOMkQuZ29vZ2xlLmFkcy5nb29nbGVh", + "ZHMudjIuZW51bXMuS2V5d29yZE1hdGNoVHlwZUVudW0uS2V5d29yZE1hdGNo", + "VHlwZUIQCg5yZWNvbW1lbmRhdGlvbkKAAgolY29tLmdvb2dsZS5hZHMuZ29v", "Z2xlYWRzLnYyLnJlc291cmNlc0ITUmVjb21tZW5kYXRpb25Qcm90b1ABWkpn", "b29nbGUuZ29sYW5nLm9yZy9nZW5wcm90by9nb29nbGVhcGlzL2Fkcy9nb29n", "bGVhZHMvdjIvcmVzb3VyY2VzO3Jlc291cmNlc6ICA0dBQaoCIUdvb2dsZS5B", @@ -164,18 +164,18 @@ static RecommendationReflection() { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Resources.Recommendation.Types.RecommendationMetrics), global::Google.Ads.GoogleAds.V2.Resources.Recommendation.Types.RecommendationMetrics.Parser, new[]{ "Impressions", "Clicks", "CostMicros", "Conversions", "VideoViews" }, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Resources.Recommendation.Types.CampaignBudgetRecommendation), global::Google.Ads.GoogleAds.V2.Resources.Recommendation.Types.CampaignBudgetRecommendation.Parser, new[]{ "CurrentBudgetAmountMicros", "RecommendedBudgetAmountMicros", "BudgetOptions" }, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Resources.Recommendation.Types.CampaignBudgetRecommendation.Types.CampaignBudgetRecommendationOption), global::Google.Ads.GoogleAds.V2.Resources.Recommendation.Types.CampaignBudgetRecommendation.Types.CampaignBudgetRecommendationOption.Parser, new[]{ "BudgetAmountMicros", "Impact" }, null, null, null)}), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Resources.Recommendation.Types.KeywordRecommendation), global::Google.Ads.GoogleAds.V2.Resources.Recommendation.Types.KeywordRecommendation.Parser, new[]{ "Keyword", "RecommendedCpcBidMicros" }, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Resources.Recommendation.Types.MaximizeClicksOptInRecommendation), global::Google.Ads.GoogleAds.V2.Resources.Recommendation.Types.MaximizeClicksOptInRecommendation.Parser, new[]{ "RecommendedBudgetAmountMicros" }, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Resources.Recommendation.Types.SitelinkExtensionRecommendation), global::Google.Ads.GoogleAds.V2.Resources.Recommendation.Types.SitelinkExtensionRecommendation.Parser, new[]{ "RecommendedExtensions" }, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Resources.Recommendation.Types.TextAdRecommendation), global::Google.Ads.GoogleAds.V2.Resources.Recommendation.Types.TextAdRecommendation.Parser, new[]{ "Ad", "CreationDate", "AutoApplyDate" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Resources.Recommendation.Types.SearchPartnersOptInRecommendation), global::Google.Ads.GoogleAds.V2.Resources.Recommendation.Types.SearchPartnersOptInRecommendation.Parser, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Resources.Recommendation.Types.TargetCpaOptInRecommendation), global::Google.Ads.GoogleAds.V2.Resources.Recommendation.Types.TargetCpaOptInRecommendation.Parser, new[]{ "Options", "RecommendedTargetCpaMicros" }, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Resources.Recommendation.Types.TargetCpaOptInRecommendation.Types.TargetCpaOptInRecommendationOption), global::Google.Ads.GoogleAds.V2.Resources.Recommendation.Types.TargetCpaOptInRecommendation.Types.TargetCpaOptInRecommendationOption.Parser, new[]{ "Goal", "TargetCpaMicros", "RequiredCampaignBudgetAmountMicros", "Impact" }, null, null, null)}), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Resources.Recommendation.Types.MaximizeConversionsOptInRecommendation), global::Google.Ads.GoogleAds.V2.Resources.Recommendation.Types.MaximizeConversionsOptInRecommendation.Parser, new[]{ "RecommendedBudgetAmountMicros" }, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Resources.Recommendation.Types.EnhancedCpcOptInRecommendation), global::Google.Ads.GoogleAds.V2.Resources.Recommendation.Types.EnhancedCpcOptInRecommendation.Parser, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Resources.Recommendation.Types.SearchPartnersOptInRecommendation), global::Google.Ads.GoogleAds.V2.Resources.Recommendation.Types.SearchPartnersOptInRecommendation.Parser, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Resources.Recommendation.Types.MoveUnusedBudgetRecommendation), global::Google.Ads.GoogleAds.V2.Resources.Recommendation.Types.MoveUnusedBudgetRecommendation.Parser, new[]{ "ExcessCampaignBudget", "BudgetRecommendation" }, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Resources.Recommendation.Types.OptimizeAdRotationRecommendation), global::Google.Ads.GoogleAds.V2.Resources.Recommendation.Types.OptimizeAdRotationRecommendation.Parser, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Resources.Recommendation.Types.EnhancedCpcOptInRecommendation), global::Google.Ads.GoogleAds.V2.Resources.Recommendation.Types.EnhancedCpcOptInRecommendation.Parser, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Resources.Recommendation.Types.MaximizeClicksOptInRecommendation), global::Google.Ads.GoogleAds.V2.Resources.Recommendation.Types.MaximizeClicksOptInRecommendation.Parser, new[]{ "RecommendedBudgetAmountMicros" }, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Resources.Recommendation.Types.CalloutExtensionRecommendation), global::Google.Ads.GoogleAds.V2.Resources.Recommendation.Types.CalloutExtensionRecommendation.Parser, new[]{ "RecommendedExtensions" }, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Resources.Recommendation.Types.CallExtensionRecommendation), global::Google.Ads.GoogleAds.V2.Resources.Recommendation.Types.CallExtensionRecommendation.Parser, new[]{ "RecommendedExtensions" }, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Resources.Recommendation.Types.KeywordMatchTypeRecommendation), global::Google.Ads.GoogleAds.V2.Resources.Recommendation.Types.KeywordMatchTypeRecommendation.Parser, new[]{ "Keyword", "RecommendedMatchType" }, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Resources.Recommendation.Types.MoveUnusedBudgetRecommendation), global::Google.Ads.GoogleAds.V2.Resources.Recommendation.Types.MoveUnusedBudgetRecommendation.Parser, new[]{ "ExcessCampaignBudget", "BudgetRecommendation" }, null, null, null)}) + new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Resources.Recommendation.Types.KeywordMatchTypeRecommendation), global::Google.Ads.GoogleAds.V2.Resources.Recommendation.Types.KeywordMatchTypeRecommendation.Parser, new[]{ "Keyword", "RecommendedMatchType" }, null, null, null)}) })); } #endregion @@ -2201,148 +2201,6 @@ public void MergeFrom(pb::CodedInputStream input) { } - /// - /// The Maximize Clicks opt-in recommendation. - /// - public sealed partial class MaximizeClicksOptInRecommendation : pb::IMessage { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new MaximizeClicksOptInRecommendation()); - private pb::UnknownFieldSet _unknownFields; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public static pb::MessageParser Parser { get { return _parser; } } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public static pbr::MessageDescriptor Descriptor { - get { return global::Google.Ads.GoogleAds.V2.Resources.Recommendation.Descriptor.NestedTypes[4]; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - pbr::MessageDescriptor pb::IMessage.Descriptor { - get { return Descriptor; } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public MaximizeClicksOptInRecommendation() { - OnConstruction(); - } - - partial void OnConstruction(); - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public MaximizeClicksOptInRecommendation(MaximizeClicksOptInRecommendation other) : this() { - RecommendedBudgetAmountMicros = other.RecommendedBudgetAmountMicros; - _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public MaximizeClicksOptInRecommendation Clone() { - return new MaximizeClicksOptInRecommendation(this); - } - - /// Field number for the "recommended_budget_amount_micros" field. - public const int RecommendedBudgetAmountMicrosFieldNumber = 1; - private static readonly pb::FieldCodec _single_recommendedBudgetAmountMicros_codec = pb::FieldCodec.ForStructWrapper(10); - private long? recommendedBudgetAmountMicros_; - /// - /// The recommended new budget amount. - /// Only set if the current budget is too high. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public long? RecommendedBudgetAmountMicros { - get { return recommendedBudgetAmountMicros_; } - set { - recommendedBudgetAmountMicros_ = value; - } - } - - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public override bool Equals(object other) { - return Equals(other as MaximizeClicksOptInRecommendation); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public bool Equals(MaximizeClicksOptInRecommendation other) { - if (ReferenceEquals(other, null)) { - return false; - } - if (ReferenceEquals(other, this)) { - return true; - } - if (RecommendedBudgetAmountMicros != other.RecommendedBudgetAmountMicros) return false; - return Equals(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public override int GetHashCode() { - int hash = 1; - if (recommendedBudgetAmountMicros_ != null) hash ^= RecommendedBudgetAmountMicros.GetHashCode(); - if (_unknownFields != null) { - hash ^= _unknownFields.GetHashCode(); - } - return hash; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public override string ToString() { - return pb::JsonFormatter.ToDiagnosticString(this); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public void WriteTo(pb::CodedOutputStream output) { - if (recommendedBudgetAmountMicros_ != null) { - _single_recommendedBudgetAmountMicros_codec.WriteTagAndValue(output, RecommendedBudgetAmountMicros); - } - if (_unknownFields != null) { - _unknownFields.WriteTo(output); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public int CalculateSize() { - int size = 0; - if (recommendedBudgetAmountMicros_ != null) { - size += _single_recommendedBudgetAmountMicros_codec.CalculateSizeWithTag(RecommendedBudgetAmountMicros); - } - if (_unknownFields != null) { - size += _unknownFields.CalculateSize(); - } - return size; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public void MergeFrom(MaximizeClicksOptInRecommendation other) { - if (other == null) { - return; - } - if (other.recommendedBudgetAmountMicros_ != null) { - if (recommendedBudgetAmountMicros_ == null || other.RecommendedBudgetAmountMicros != 0L) { - RecommendedBudgetAmountMicros = other.RecommendedBudgetAmountMicros; - } - } - _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public void MergeFrom(pb::CodedInputStream input) { - uint tag; - while ((tag = input.ReadTag()) != 0) { - switch(tag) { - default: - _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); - break; - case 10: { - long? value = _single_recommendedBudgetAmountMicros_codec.Read(input); - if (recommendedBudgetAmountMicros_ == null || value != 0L) { - RecommendedBudgetAmountMicros = value; - } - break; - } - } - } - } - - } - /// /// The Sitelink extension recommendation. /// @@ -2354,7 +2212,7 @@ public sealed partial class SitelinkExtensionRecommendation : pb::IMessage + /// The Search Partners Opt-In recommendation. + /// + public sealed partial class SearchPartnersOptInRecommendation : pb::IMessage { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new SearchPartnersOptInRecommendation()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pbr::MessageDescriptor Descriptor { + get { return global::Google.Ads.GoogleAds.V2.Resources.Recommendation.Descriptor.NestedTypes[6]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public SearchPartnersOptInRecommendation() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public SearchPartnersOptInRecommendation(SearchPartnersOptInRecommendation other) : this() { + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public SearchPartnersOptInRecommendation Clone() { + return new SearchPartnersOptInRecommendation(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override bool Equals(object other) { + return Equals(other as SearchPartnersOptInRecommendation); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Equals(SearchPartnersOptInRecommendation other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override int GetHashCode() { + int hash = 1; + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void WriteTo(pb::CodedOutputStream output) { + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CalculateSize() { + int size = 0; + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(SearchPartnersOptInRecommendation other) { + if (other == null) { + return; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(pb::CodedInputStream input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + } + } + } + + } + /// /// The Target CPA opt-in recommendation. /// @@ -3251,13 +3213,13 @@ public void MergeFrom(pb::CodedInputStream input) { } /// - /// The Enhanced Cost-Per-Click Opt-In recommendation. + /// The move unused budget recommendation. /// - public sealed partial class EnhancedCpcOptInRecommendation : pb::IMessage { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new EnhancedCpcOptInRecommendation()); + public sealed partial class MoveUnusedBudgetRecommendation : pb::IMessage { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new MoveUnusedBudgetRecommendation()); private pb::UnknownFieldSet _unknownFields; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public static pb::MessageParser Parser { get { return _parser; } } + public static pb::MessageParser Parser { get { return _parser; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public static pbr::MessageDescriptor Descriptor { @@ -3270,41 +3232,77 @@ public sealed partial class EnhancedCpcOptInRecommendation : pb::IMessageField number for the "excess_campaign_budget" field. + public const int ExcessCampaignBudgetFieldNumber = 1; + private static readonly pb::FieldCodec _single_excessCampaignBudget_codec = pb::FieldCodec.ForClassWrapper(10); + private string excessCampaignBudget_; + /// + /// The excess budget's resource_name. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public string ExcessCampaignBudget { + get { return excessCampaignBudget_; } + set { + excessCampaignBudget_ = value; + } + } + + + /// Field number for the "budget_recommendation" field. + public const int BudgetRecommendationFieldNumber = 2; + private global::Google.Ads.GoogleAds.V2.Resources.Recommendation.Types.CampaignBudgetRecommendation budgetRecommendation_; + /// + /// The recommendation for the constrained budget to increase. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public global::Google.Ads.GoogleAds.V2.Resources.Recommendation.Types.CampaignBudgetRecommendation BudgetRecommendation { + get { return budgetRecommendation_; } + set { + budgetRecommendation_ = value; + } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public override bool Equals(object other) { - return Equals(other as EnhancedCpcOptInRecommendation); + return Equals(other as MoveUnusedBudgetRecommendation); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public bool Equals(EnhancedCpcOptInRecommendation other) { + public bool Equals(MoveUnusedBudgetRecommendation other) { if (ReferenceEquals(other, null)) { return false; } if (ReferenceEquals(other, this)) { return true; } + if (ExcessCampaignBudget != other.ExcessCampaignBudget) return false; + if (!object.Equals(BudgetRecommendation, other.BudgetRecommendation)) return false; return Equals(_unknownFields, other._unknownFields); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public override int GetHashCode() { int hash = 1; + if (excessCampaignBudget_ != null) hash ^= ExcessCampaignBudget.GetHashCode(); + if (budgetRecommendation_ != null) hash ^= BudgetRecommendation.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -3318,6 +3316,13 @@ public override string ToString() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public void WriteTo(pb::CodedOutputStream output) { + if (excessCampaignBudget_ != null) { + _single_excessCampaignBudget_codec.WriteTagAndValue(output, ExcessCampaignBudget); + } + if (budgetRecommendation_ != null) { + output.WriteRawTag(18); + output.WriteMessage(BudgetRecommendation); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -3326,6 +3331,12 @@ public void WriteTo(pb::CodedOutputStream output) { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public int CalculateSize() { int size = 0; + if (excessCampaignBudget_ != null) { + size += _single_excessCampaignBudget_codec.CalculateSizeWithTag(ExcessCampaignBudget); + } + if (budgetRecommendation_ != null) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(BudgetRecommendation); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -3333,10 +3344,21 @@ public int CalculateSize() { } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public void MergeFrom(EnhancedCpcOptInRecommendation other) { + public void MergeFrom(MoveUnusedBudgetRecommendation other) { if (other == null) { return; } + if (other.excessCampaignBudget_ != null) { + if (excessCampaignBudget_ == null || other.ExcessCampaignBudget != "") { + ExcessCampaignBudget = other.ExcessCampaignBudget; + } + } + if (other.budgetRecommendation_ != null) { + if (budgetRecommendation_ == null) { + BudgetRecommendation = new global::Google.Ads.GoogleAds.V2.Resources.Recommendation.Types.CampaignBudgetRecommendation(); + } + BudgetRecommendation.MergeFrom(other.BudgetRecommendation); + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -3348,6 +3370,20 @@ public void MergeFrom(pb::CodedInputStream input) { default: _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); break; + case 10: { + string value = _single_excessCampaignBudget_codec.Read(input); + if (excessCampaignBudget_ == null || value != "") { + ExcessCampaignBudget = value; + } + break; + } + case 18: { + if (budgetRecommendation_ == null) { + BudgetRecommendation = new global::Google.Ads.GoogleAds.V2.Resources.Recommendation.Types.CampaignBudgetRecommendation(); + } + input.ReadMessage(BudgetRecommendation); + break; + } } } } @@ -3355,13 +3391,13 @@ public void MergeFrom(pb::CodedInputStream input) { } /// - /// The Search Partners Opt-In recommendation. + /// The Optimize Ad Rotation recommendation. /// - public sealed partial class SearchPartnersOptInRecommendation : pb::IMessage { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new SearchPartnersOptInRecommendation()); + public sealed partial class OptimizeAdRotationRecommendation : pb::IMessage { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new OptimizeAdRotationRecommendation()); private pb::UnknownFieldSet _unknownFields; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public static pb::MessageParser Parser { get { return _parser; } } + public static pb::MessageParser Parser { get { return _parser; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public static pbr::MessageDescriptor Descriptor { @@ -3374,29 +3410,29 @@ public sealed partial class SearchPartnersOptInRecommendation : pb::IMessage - /// The Optimize Ad Rotation recommendation. + /// The Enhanced Cost-Per-Click Opt-In recommendation. /// - public sealed partial class OptimizeAdRotationRecommendation : pb::IMessage { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new OptimizeAdRotationRecommendation()); + public sealed partial class EnhancedCpcOptInRecommendation : pb::IMessage { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new EnhancedCpcOptInRecommendation()); private pb::UnknownFieldSet _unknownFields; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public static pb::MessageParser Parser { get { return _parser; } } + public static pb::MessageParser Parser { get { return _parser; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public static pbr::MessageDescriptor Descriptor { @@ -3478,29 +3514,29 @@ public sealed partial class OptimizeAdRotationRecommendation : pb::IMessage - /// The Callout extension recommendation. + /// The Maximize Clicks opt-in recommendation. /// - public sealed partial class CalloutExtensionRecommendation : pb::IMessage { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new CalloutExtensionRecommendation()); + public sealed partial class MaximizeClicksOptInRecommendation : pb::IMessage { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new MaximizeClicksOptInRecommendation()); private pb::UnknownFieldSet _unknownFields; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public static pb::MessageParser Parser { get { return _parser; } } + public static pb::MessageParser Parser { get { return _parser; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public static pbr::MessageDescriptor Descriptor { @@ -3582,57 +3618,61 @@ public sealed partial class CalloutExtensionRecommendation : pb::IMessageField number for the "recommended_extensions" field. - public const int RecommendedExtensionsFieldNumber = 1; - private static readonly pb::FieldCodec _repeated_recommendedExtensions_codec - = pb::FieldCodec.ForMessage(10, global::Google.Ads.GoogleAds.V2.Common.CalloutFeedItem.Parser); - private readonly pbc::RepeatedField recommendedExtensions_ = new pbc::RepeatedField(); + /// Field number for the "recommended_budget_amount_micros" field. + public const int RecommendedBudgetAmountMicrosFieldNumber = 1; + private static readonly pb::FieldCodec _single_recommendedBudgetAmountMicros_codec = pb::FieldCodec.ForStructWrapper(10); + private long? recommendedBudgetAmountMicros_; /// - /// Callout extensions recommended to be added. + /// The recommended new budget amount. + /// Only set if the current budget is too high. /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public pbc::RepeatedField RecommendedExtensions { - get { return recommendedExtensions_; } + public long? RecommendedBudgetAmountMicros { + get { return recommendedBudgetAmountMicros_; } + set { + recommendedBudgetAmountMicros_ = value; + } } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public override bool Equals(object other) { - return Equals(other as CalloutExtensionRecommendation); + return Equals(other as MaximizeClicksOptInRecommendation); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public bool Equals(CalloutExtensionRecommendation other) { + public bool Equals(MaximizeClicksOptInRecommendation other) { if (ReferenceEquals(other, null)) { return false; } if (ReferenceEquals(other, this)) { return true; } - if(!recommendedExtensions_.Equals(other.recommendedExtensions_)) return false; + if (RecommendedBudgetAmountMicros != other.RecommendedBudgetAmountMicros) return false; return Equals(_unknownFields, other._unknownFields); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public override int GetHashCode() { int hash = 1; - hash ^= recommendedExtensions_.GetHashCode(); + if (recommendedBudgetAmountMicros_ != null) hash ^= RecommendedBudgetAmountMicros.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -3646,7 +3686,9 @@ public override string ToString() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public void WriteTo(pb::CodedOutputStream output) { - recommendedExtensions_.WriteTo(output, _repeated_recommendedExtensions_codec); + if (recommendedBudgetAmountMicros_ != null) { + _single_recommendedBudgetAmountMicros_codec.WriteTagAndValue(output, RecommendedBudgetAmountMicros); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -3655,7 +3697,9 @@ public void WriteTo(pb::CodedOutputStream output) { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public int CalculateSize() { int size = 0; - size += recommendedExtensions_.CalculateSize(_repeated_recommendedExtensions_codec); + if (recommendedBudgetAmountMicros_ != null) { + size += _single_recommendedBudgetAmountMicros_codec.CalculateSizeWithTag(RecommendedBudgetAmountMicros); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -3663,11 +3707,15 @@ public int CalculateSize() { } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public void MergeFrom(CalloutExtensionRecommendation other) { + public void MergeFrom(MaximizeClicksOptInRecommendation other) { if (other == null) { return; } - recommendedExtensions_.Add(other.recommendedExtensions_); + if (other.recommendedBudgetAmountMicros_ != null) { + if (recommendedBudgetAmountMicros_ == null || other.RecommendedBudgetAmountMicros != 0L) { + RecommendedBudgetAmountMicros = other.RecommendedBudgetAmountMicros; + } + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -3680,7 +3728,10 @@ public void MergeFrom(pb::CodedInputStream input) { _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); break; case 10: { - recommendedExtensions_.AddEntriesFrom(input, _repeated_recommendedExtensions_codec); + long? value = _single_recommendedBudgetAmountMicros_codec.Read(input); + if (recommendedBudgetAmountMicros_ == null || value != 0L) { + RecommendedBudgetAmountMicros = value; + } break; } } @@ -3690,13 +3741,13 @@ public void MergeFrom(pb::CodedInputStream input) { } /// - /// The Call extension recommendation. + /// The Callout extension recommendation. /// - public sealed partial class CallExtensionRecommendation : pb::IMessage { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new CallExtensionRecommendation()); + public sealed partial class CalloutExtensionRecommendation : pb::IMessage { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new CalloutExtensionRecommendation()); private pb::UnknownFieldSet _unknownFields; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public static pb::MessageParser Parser { get { return _parser; } } + public static pb::MessageParser Parser { get { return _parser; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public static pbr::MessageDescriptor Descriptor { @@ -3709,43 +3760,43 @@ public sealed partial class CallExtensionRecommendation : pb::IMessageField number for the "recommended_extensions" field. public const int RecommendedExtensionsFieldNumber = 1; - private static readonly pb::FieldCodec _repeated_recommendedExtensions_codec - = pb::FieldCodec.ForMessage(10, global::Google.Ads.GoogleAds.V2.Common.CallFeedItem.Parser); - private readonly pbc::RepeatedField recommendedExtensions_ = new pbc::RepeatedField(); + private static readonly pb::FieldCodec _repeated_recommendedExtensions_codec + = pb::FieldCodec.ForMessage(10, global::Google.Ads.GoogleAds.V2.Common.CalloutFeedItem.Parser); + private readonly pbc::RepeatedField recommendedExtensions_ = new pbc::RepeatedField(); /// - /// Call extensions recommended to be added. + /// Callout extensions recommended to be added. /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public pbc::RepeatedField RecommendedExtensions { + public pbc::RepeatedField RecommendedExtensions { get { return recommendedExtensions_; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public override bool Equals(object other) { - return Equals(other as CallExtensionRecommendation); + return Equals(other as CalloutExtensionRecommendation); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public bool Equals(CallExtensionRecommendation other) { + public bool Equals(CalloutExtensionRecommendation other) { if (ReferenceEquals(other, null)) { return false; } @@ -3790,7 +3841,7 @@ public int CalculateSize() { } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public void MergeFrom(CallExtensionRecommendation other) { + public void MergeFrom(CalloutExtensionRecommendation other) { if (other == null) { return; } @@ -3817,13 +3868,13 @@ public void MergeFrom(pb::CodedInputStream input) { } /// - /// The keyword match type recommendation. + /// The Call extension recommendation. /// - public sealed partial class KeywordMatchTypeRecommendation : pb::IMessage { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new KeywordMatchTypeRecommendation()); + public sealed partial class CallExtensionRecommendation : pb::IMessage { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new CallExtensionRecommendation()); private pb::UnknownFieldSet _unknownFields; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public static pb::MessageParser Parser { get { return _parser; } } + public static pb::MessageParser Parser { get { return _parser; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public static pbr::MessageDescriptor Descriptor { @@ -3836,75 +3887,57 @@ public sealed partial class KeywordMatchTypeRecommendation : pb::IMessageField number for the "keyword" field. - public const int KeywordFieldNumber = 1; - private global::Google.Ads.GoogleAds.V2.Common.KeywordInfo keyword_; - /// - /// The existing keyword where the match type should be more broad. - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public global::Google.Ads.GoogleAds.V2.Common.KeywordInfo Keyword { - get { return keyword_; } - set { - keyword_ = value; - } + public CallExtensionRecommendation Clone() { + return new CallExtensionRecommendation(this); } - /// Field number for the "recommended_match_type" field. - public const int RecommendedMatchTypeFieldNumber = 2; - private global::Google.Ads.GoogleAds.V2.Enums.KeywordMatchTypeEnum.Types.KeywordMatchType recommendedMatchType_ = 0; + /// Field number for the "recommended_extensions" field. + public const int RecommendedExtensionsFieldNumber = 1; + private static readonly pb::FieldCodec _repeated_recommendedExtensions_codec + = pb::FieldCodec.ForMessage(10, global::Google.Ads.GoogleAds.V2.Common.CallFeedItem.Parser); + private readonly pbc::RepeatedField recommendedExtensions_ = new pbc::RepeatedField(); /// - /// The recommended new match type. + /// Call extensions recommended to be added. /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public global::Google.Ads.GoogleAds.V2.Enums.KeywordMatchTypeEnum.Types.KeywordMatchType RecommendedMatchType { - get { return recommendedMatchType_; } - set { - recommendedMatchType_ = value; - } + public pbc::RepeatedField RecommendedExtensions { + get { return recommendedExtensions_; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public override bool Equals(object other) { - return Equals(other as KeywordMatchTypeRecommendation); + return Equals(other as CallExtensionRecommendation); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public bool Equals(KeywordMatchTypeRecommendation other) { + public bool Equals(CallExtensionRecommendation other) { if (ReferenceEquals(other, null)) { return false; } if (ReferenceEquals(other, this)) { return true; } - if (!object.Equals(Keyword, other.Keyword)) return false; - if (RecommendedMatchType != other.RecommendedMatchType) return false; + if(!recommendedExtensions_.Equals(other.recommendedExtensions_)) return false; return Equals(_unknownFields, other._unknownFields); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public override int GetHashCode() { int hash = 1; - if (keyword_ != null) hash ^= Keyword.GetHashCode(); - if (RecommendedMatchType != 0) hash ^= RecommendedMatchType.GetHashCode(); + hash ^= recommendedExtensions_.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -3918,14 +3951,7 @@ public override string ToString() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public void WriteTo(pb::CodedOutputStream output) { - if (keyword_ != null) { - output.WriteRawTag(10); - output.WriteMessage(Keyword); - } - if (RecommendedMatchType != 0) { - output.WriteRawTag(16); - output.WriteEnum((int) RecommendedMatchType); - } + recommendedExtensions_.WriteTo(output, _repeated_recommendedExtensions_codec); if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -3934,12 +3960,7 @@ public void WriteTo(pb::CodedOutputStream output) { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public int CalculateSize() { int size = 0; - if (keyword_ != null) { - size += 1 + pb::CodedOutputStream.ComputeMessageSize(Keyword); - } - if (RecommendedMatchType != 0) { - size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) RecommendedMatchType); - } + size += recommendedExtensions_.CalculateSize(_repeated_recommendedExtensions_codec); if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -3947,19 +3968,11 @@ public int CalculateSize() { } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public void MergeFrom(KeywordMatchTypeRecommendation other) { + public void MergeFrom(CallExtensionRecommendation other) { if (other == null) { return; } - if (other.keyword_ != null) { - if (keyword_ == null) { - Keyword = new global::Google.Ads.GoogleAds.V2.Common.KeywordInfo(); - } - Keyword.MergeFrom(other.Keyword); - } - if (other.RecommendedMatchType != 0) { - RecommendedMatchType = other.RecommendedMatchType; - } + recommendedExtensions_.Add(other.recommendedExtensions_); _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -3972,14 +3985,7 @@ public void MergeFrom(pb::CodedInputStream input) { _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); break; case 10: { - if (keyword_ == null) { - Keyword = new global::Google.Ads.GoogleAds.V2.Common.KeywordInfo(); - } - input.ReadMessage(Keyword); - break; - } - case 16: { - RecommendedMatchType = (global::Google.Ads.GoogleAds.V2.Enums.KeywordMatchTypeEnum.Types.KeywordMatchType) input.ReadEnum(); + recommendedExtensions_.AddEntriesFrom(input, _repeated_recommendedExtensions_codec); break; } } @@ -3989,13 +3995,13 @@ public void MergeFrom(pb::CodedInputStream input) { } /// - /// The move unused budget recommendation. + /// The keyword match type recommendation. /// - public sealed partial class MoveUnusedBudgetRecommendation : pb::IMessage { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new MoveUnusedBudgetRecommendation()); + public sealed partial class KeywordMatchTypeRecommendation : pb::IMessage { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new KeywordMatchTypeRecommendation()); private pb::UnknownFieldSet _unknownFields; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public static pb::MessageParser Parser { get { return _parser; } } + public static pb::MessageParser Parser { get { return _parser; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public static pbr::MessageDescriptor Descriptor { @@ -4008,77 +4014,75 @@ public sealed partial class MoveUnusedBudgetRecommendation : pb::IMessageField number for the "excess_campaign_budget" field. - public const int ExcessCampaignBudgetFieldNumber = 1; - private static readonly pb::FieldCodec _single_excessCampaignBudget_codec = pb::FieldCodec.ForClassWrapper(10); - private string excessCampaignBudget_; + /// Field number for the "keyword" field. + public const int KeywordFieldNumber = 1; + private global::Google.Ads.GoogleAds.V2.Common.KeywordInfo keyword_; /// - /// The excess budget's resource_name. + /// The existing keyword where the match type should be more broad. /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public string ExcessCampaignBudget { - get { return excessCampaignBudget_; } + public global::Google.Ads.GoogleAds.V2.Common.KeywordInfo Keyword { + get { return keyword_; } set { - excessCampaignBudget_ = value; + keyword_ = value; } } - - /// Field number for the "budget_recommendation" field. - public const int BudgetRecommendationFieldNumber = 2; - private global::Google.Ads.GoogleAds.V2.Resources.Recommendation.Types.CampaignBudgetRecommendation budgetRecommendation_; + /// Field number for the "recommended_match_type" field. + public const int RecommendedMatchTypeFieldNumber = 2; + private global::Google.Ads.GoogleAds.V2.Enums.KeywordMatchTypeEnum.Types.KeywordMatchType recommendedMatchType_ = 0; /// - /// The recommendation for the constrained budget to increase. + /// The recommended new match type. /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public global::Google.Ads.GoogleAds.V2.Resources.Recommendation.Types.CampaignBudgetRecommendation BudgetRecommendation { - get { return budgetRecommendation_; } + public global::Google.Ads.GoogleAds.V2.Enums.KeywordMatchTypeEnum.Types.KeywordMatchType RecommendedMatchType { + get { return recommendedMatchType_; } set { - budgetRecommendation_ = value; + recommendedMatchType_ = value; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public override bool Equals(object other) { - return Equals(other as MoveUnusedBudgetRecommendation); + return Equals(other as KeywordMatchTypeRecommendation); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public bool Equals(MoveUnusedBudgetRecommendation other) { + public bool Equals(KeywordMatchTypeRecommendation other) { if (ReferenceEquals(other, null)) { return false; } if (ReferenceEquals(other, this)) { return true; } - if (ExcessCampaignBudget != other.ExcessCampaignBudget) return false; - if (!object.Equals(BudgetRecommendation, other.BudgetRecommendation)) return false; + if (!object.Equals(Keyword, other.Keyword)) return false; + if (RecommendedMatchType != other.RecommendedMatchType) return false; return Equals(_unknownFields, other._unknownFields); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public override int GetHashCode() { int hash = 1; - if (excessCampaignBudget_ != null) hash ^= ExcessCampaignBudget.GetHashCode(); - if (budgetRecommendation_ != null) hash ^= BudgetRecommendation.GetHashCode(); + if (keyword_ != null) hash ^= Keyword.GetHashCode(); + if (RecommendedMatchType != 0) hash ^= RecommendedMatchType.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -4092,12 +4096,13 @@ public override string ToString() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public void WriteTo(pb::CodedOutputStream output) { - if (excessCampaignBudget_ != null) { - _single_excessCampaignBudget_codec.WriteTagAndValue(output, ExcessCampaignBudget); + if (keyword_ != null) { + output.WriteRawTag(10); + output.WriteMessage(Keyword); } - if (budgetRecommendation_ != null) { - output.WriteRawTag(18); - output.WriteMessage(BudgetRecommendation); + if (RecommendedMatchType != 0) { + output.WriteRawTag(16); + output.WriteEnum((int) RecommendedMatchType); } if (_unknownFields != null) { _unknownFields.WriteTo(output); @@ -4107,11 +4112,11 @@ public void WriteTo(pb::CodedOutputStream output) { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public int CalculateSize() { int size = 0; - if (excessCampaignBudget_ != null) { - size += _single_excessCampaignBudget_codec.CalculateSizeWithTag(ExcessCampaignBudget); + if (keyword_ != null) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(Keyword); } - if (budgetRecommendation_ != null) { - size += 1 + pb::CodedOutputStream.ComputeMessageSize(BudgetRecommendation); + if (RecommendedMatchType != 0) { + size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) RecommendedMatchType); } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); @@ -4120,20 +4125,18 @@ public int CalculateSize() { } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public void MergeFrom(MoveUnusedBudgetRecommendation other) { + public void MergeFrom(KeywordMatchTypeRecommendation other) { if (other == null) { return; } - if (other.excessCampaignBudget_ != null) { - if (excessCampaignBudget_ == null || other.ExcessCampaignBudget != "") { - ExcessCampaignBudget = other.ExcessCampaignBudget; + if (other.keyword_ != null) { + if (keyword_ == null) { + Keyword = new global::Google.Ads.GoogleAds.V2.Common.KeywordInfo(); } + Keyword.MergeFrom(other.Keyword); } - if (other.budgetRecommendation_ != null) { - if (budgetRecommendation_ == null) { - BudgetRecommendation = new global::Google.Ads.GoogleAds.V2.Resources.Recommendation.Types.CampaignBudgetRecommendation(); - } - BudgetRecommendation.MergeFrom(other.BudgetRecommendation); + if (other.RecommendedMatchType != 0) { + RecommendedMatchType = other.RecommendedMatchType; } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -4147,17 +4150,14 @@ public void MergeFrom(pb::CodedInputStream input) { _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); break; case 10: { - string value = _single_excessCampaignBudget_codec.Read(input); - if (excessCampaignBudget_ == null || value != "") { - ExcessCampaignBudget = value; + if (keyword_ == null) { + Keyword = new global::Google.Ads.GoogleAds.V2.Common.KeywordInfo(); } + input.ReadMessage(Keyword); break; } - case 18: { - if (budgetRecommendation_ == null) { - BudgetRecommendation = new global::Google.Ads.GoogleAds.V2.Resources.Recommendation.Types.CampaignBudgetRecommendation(); - } - input.ReadMessage(BudgetRecommendation); + case 16: { + RecommendedMatchType = (global::Google.Ads.GoogleAds.V2.Enums.KeywordMatchTypeEnum.Types.KeywordMatchType) input.ReadEnum(); break; } } diff --git a/src/V2/Stubs/RemarketingActionService.cs b/src/V2/Stubs/RemarketingActionService.cs index dc0260435..fcfbdd9bb 100644 --- a/src/V2/Stubs/RemarketingActionService.cs +++ b/src/V2/Stubs/RemarketingActionService.cs @@ -29,43 +29,42 @@ static RemarketingActionServiceReflection() { "djIuc2VydmljZXMaOmdvb2dsZS9hZHMvZ29vZ2xlYWRzL3YyL3Jlc291cmNl", "cy9yZW1hcmtldGluZ19hY3Rpb24ucHJvdG8aHGdvb2dsZS9hcGkvYW5ub3Rh", "dGlvbnMucHJvdG8aIGdvb2dsZS9wcm90b2J1Zi9maWVsZF9tYXNrLnByb3Rv", - "Gh5nb29nbGUvcHJvdG9idWYvd3JhcHBlcnMucHJvdG8aF2dvb2dsZS9ycGMv", - "c3RhdHVzLnByb3RvGhdnb29nbGUvYXBpL2NsaWVudC5wcm90byI0ChtHZXRS", - "ZW1hcmtldGluZ0FjdGlvblJlcXVlc3QSFQoNcmVzb3VyY2VfbmFtZRgBIAEo", - "CSK4AQofTXV0YXRlUmVtYXJrZXRpbmdBY3Rpb25zUmVxdWVzdBITCgtjdXN0", - "b21lcl9pZBgBIAEoCRJQCgpvcGVyYXRpb25zGAIgAygLMjwuZ29vZ2xlLmFk", - "cy5nb29nbGVhZHMudjIuc2VydmljZXMuUmVtYXJrZXRpbmdBY3Rpb25PcGVy", - "YXRpb24SFwoPcGFydGlhbF9mYWlsdXJlGAMgASgIEhUKDXZhbGlkYXRlX29u", - "bHkYBCABKAgi6gEKGlJlbWFya2V0aW5nQWN0aW9uT3BlcmF0aW9uEi8KC3Vw", - "ZGF0ZV9tYXNrGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLkZpZWxkTWFzaxJG", - "CgZjcmVhdGUYASABKAsyNC5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5yZXNv", - "dXJjZXMuUmVtYXJrZXRpbmdBY3Rpb25IABJGCgZ1cGRhdGUYAiABKAsyNC5n", - "b29nbGUuYWRzLmdvb2dsZWFkcy52Mi5yZXNvdXJjZXMuUmVtYXJrZXRpbmdB", - "Y3Rpb25IAEILCglvcGVyYXRpb24ipwEKIE11dGF0ZVJlbWFya2V0aW5nQWN0", - "aW9uc1Jlc3BvbnNlEjEKFXBhcnRpYWxfZmFpbHVyZV9lcnJvchgDIAEoCzIS", - "Lmdvb2dsZS5ycGMuU3RhdHVzElAKB3Jlc3VsdHMYAiADKAsyPy5nb29nbGUu", - "YWRzLmdvb2dsZWFkcy52Mi5zZXJ2aWNlcy5NdXRhdGVSZW1hcmtldGluZ0Fj", - "dGlvblJlc3VsdCI2Ch1NdXRhdGVSZW1hcmtldGluZ0FjdGlvblJlc3VsdBIV", - "Cg1yZXNvdXJjZV9uYW1lGAEgASgJMusDChhSZW1hcmtldGluZ0FjdGlvblNl", - "cnZpY2USyQEKFEdldFJlbWFya2V0aW5nQWN0aW9uEj0uZ29vZ2xlLmFkcy5n", - "b29nbGVhZHMudjIuc2VydmljZXMuR2V0UmVtYXJrZXRpbmdBY3Rpb25SZXF1", - "ZXN0GjQuZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIucmVzb3VyY2VzLlJlbWFy", - "a2V0aW5nQWN0aW9uIjyC0+STAjYSNC92Mi97cmVzb3VyY2VfbmFtZT1jdXN0", - "b21lcnMvKi9yZW1hcmtldGluZ0FjdGlvbnMvKn0S5QEKGE11dGF0ZVJlbWFy", - "a2V0aW5nQWN0aW9ucxJBLmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLnNlcnZp", - "Y2VzLk11dGF0ZVJlbWFya2V0aW5nQWN0aW9uc1JlcXVlc3QaQi5nb29nbGUu", - "YWRzLmdvb2dsZWFkcy52Mi5zZXJ2aWNlcy5NdXRhdGVSZW1hcmtldGluZ0Fj", - "dGlvbnNSZXNwb25zZSJCgtPkkwI8IjcvdjIvY3VzdG9tZXJzL3tjdXN0b21l", - "cl9pZD0qfS9yZW1hcmtldGluZ0FjdGlvbnM6bXV0YXRlOgEqGhvKQRhnb29n", - "bGVhZHMuZ29vZ2xlYXBpcy5jb21ChAIKJGNvbS5nb29nbGUuYWRzLmdvb2ds", - "ZWFkcy52Mi5zZXJ2aWNlc0IdUmVtYXJrZXRpbmdBY3Rpb25TZXJ2aWNlUHJv", - "dG9QAVpIZ29vZ2xlLmdvbGFuZy5vcmcvZ2VucHJvdG8vZ29vZ2xlYXBpcy9h", - "ZHMvZ29vZ2xlYWRzL3YyL3NlcnZpY2VzO3NlcnZpY2VzogIDR0FBqgIgR29v", - "Z2xlLkFkcy5Hb29nbGVBZHMuVjIuU2VydmljZXPKAiBHb29nbGVcQWRzXEdv", - "b2dsZUFkc1xWMlxTZXJ2aWNlc+oCJEdvb2dsZTo6QWRzOjpHb29nbGVBZHM6", - "OlYyOjpTZXJ2aWNlc2IGcHJvdG8z")); + "Ghdnb29nbGUvcnBjL3N0YXR1cy5wcm90bxoXZ29vZ2xlL2FwaS9jbGllbnQu", + "cHJvdG8iNAobR2V0UmVtYXJrZXRpbmdBY3Rpb25SZXF1ZXN0EhUKDXJlc291", + "cmNlX25hbWUYASABKAkiuAEKH011dGF0ZVJlbWFya2V0aW5nQWN0aW9uc1Jl", + "cXVlc3QSEwoLY3VzdG9tZXJfaWQYASABKAkSUAoKb3BlcmF0aW9ucxgCIAMo", + "CzI8Lmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLnNlcnZpY2VzLlJlbWFya2V0", + "aW5nQWN0aW9uT3BlcmF0aW9uEhcKD3BhcnRpYWxfZmFpbHVyZRgDIAEoCBIV", + "Cg12YWxpZGF0ZV9vbmx5GAQgASgIIuoBChpSZW1hcmtldGluZ0FjdGlvbk9w", + "ZXJhdGlvbhIvCgt1cGRhdGVfbWFzaxgEIAEoCzIaLmdvb2dsZS5wcm90b2J1", + "Zi5GaWVsZE1hc2sSRgoGY3JlYXRlGAEgASgLMjQuZ29vZ2xlLmFkcy5nb29n", + "bGVhZHMudjIucmVzb3VyY2VzLlJlbWFya2V0aW5nQWN0aW9uSAASRgoGdXBk", + "YXRlGAIgASgLMjQuZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIucmVzb3VyY2Vz", + "LlJlbWFya2V0aW5nQWN0aW9uSABCCwoJb3BlcmF0aW9uIqcBCiBNdXRhdGVS", + "ZW1hcmtldGluZ0FjdGlvbnNSZXNwb25zZRIxChVwYXJ0aWFsX2ZhaWx1cmVf", + "ZXJyb3IYAyABKAsyEi5nb29nbGUucnBjLlN0YXR1cxJQCgdyZXN1bHRzGAIg", + "AygLMj8uZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuc2VydmljZXMuTXV0YXRl", + "UmVtYXJrZXRpbmdBY3Rpb25SZXN1bHQiNgodTXV0YXRlUmVtYXJrZXRpbmdB", + "Y3Rpb25SZXN1bHQSFQoNcmVzb3VyY2VfbmFtZRgBIAEoCTLrAwoYUmVtYXJr", + "ZXRpbmdBY3Rpb25TZXJ2aWNlEskBChRHZXRSZW1hcmtldGluZ0FjdGlvbhI9", + "Lmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLnNlcnZpY2VzLkdldFJlbWFya2V0", + "aW5nQWN0aW9uUmVxdWVzdBo0Lmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLnJl", + "c291cmNlcy5SZW1hcmtldGluZ0FjdGlvbiI8gtPkkwI2EjQvdjIve3Jlc291", + "cmNlX25hbWU9Y3VzdG9tZXJzLyovcmVtYXJrZXRpbmdBY3Rpb25zLyp9EuUB", + "ChhNdXRhdGVSZW1hcmtldGluZ0FjdGlvbnMSQS5nb29nbGUuYWRzLmdvb2ds", + "ZWFkcy52Mi5zZXJ2aWNlcy5NdXRhdGVSZW1hcmtldGluZ0FjdGlvbnNSZXF1", + "ZXN0GkIuZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuc2VydmljZXMuTXV0YXRl", + "UmVtYXJrZXRpbmdBY3Rpb25zUmVzcG9uc2UiQoLT5JMCPCI3L3YyL2N1c3Rv", + "bWVycy97Y3VzdG9tZXJfaWQ9Kn0vcmVtYXJrZXRpbmdBY3Rpb25zOm11dGF0", + "ZToBKhobykEYZ29vZ2xlYWRzLmdvb2dsZWFwaXMuY29tQoQCCiRjb20uZ29v", + "Z2xlLmFkcy5nb29nbGVhZHMudjIuc2VydmljZXNCHVJlbWFya2V0aW5nQWN0", + "aW9uU2VydmljZVByb3RvUAFaSGdvb2dsZS5nb2xhbmcub3JnL2dlbnByb3Rv", + "L2dvb2dsZWFwaXMvYWRzL2dvb2dsZWFkcy92Mi9zZXJ2aWNlcztzZXJ2aWNl", + "c6ICA0dBQaoCIEdvb2dsZS5BZHMuR29vZ2xlQWRzLlYyLlNlcnZpY2VzygIg", + "R29vZ2xlXEFkc1xHb29nbGVBZHNcVjJcU2VydmljZXPqAiRHb29nbGU6OkFk", + "czo6R29vZ2xlQWRzOjpWMjo6U2VydmljZXNiBnByb3RvMw==")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, - new pbr::FileDescriptor[] { global::Google.Ads.GoogleAds.V2.Resources.RemarketingActionReflection.Descriptor, global::Google.Api.AnnotationsReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.FieldMaskReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.WrappersReflection.Descriptor, global::Google.Rpc.StatusReflection.Descriptor, global::Google.Api.ClientReflection.Descriptor, }, + new pbr::FileDescriptor[] { global::Google.Ads.GoogleAds.V2.Resources.RemarketingActionReflection.Descriptor, global::Google.Api.AnnotationsReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.FieldMaskReflection.Descriptor, global::Google.Rpc.StatusReflection.Descriptor, global::Google.Api.ClientReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Services.GetRemarketingActionRequest), global::Google.Ads.GoogleAds.V2.Services.GetRemarketingActionRequest.Parser, new[]{ "ResourceName" }, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Services.MutateRemarketingActionsRequest), global::Google.Ads.GoogleAds.V2.Services.MutateRemarketingActionsRequest.Parser, new[]{ "CustomerId", "Operations", "PartialFailure", "ValidateOnly" }, null, null, null), diff --git a/src/V2/Stubs/SharedCriterionService.cs b/src/V2/Stubs/SharedCriterionService.cs index ad99a928c..e0643ca82 100644 --- a/src/V2/Stubs/SharedCriterionService.cs +++ b/src/V2/Stubs/SharedCriterionService.cs @@ -28,40 +28,39 @@ static SharedCriterionServiceReflection() { "dGVyaW9uX3NlcnZpY2UucHJvdG8SIGdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYy", "LnNlcnZpY2VzGjhnb29nbGUvYWRzL2dvb2dsZWFkcy92Mi9yZXNvdXJjZXMv", "c2hhcmVkX2NyaXRlcmlvbi5wcm90bxocZ29vZ2xlL2FwaS9hbm5vdGF0aW9u", - "cy5wcm90bxoeZ29vZ2xlL3Byb3RvYnVmL3dyYXBwZXJzLnByb3RvGhdnb29n", - "bGUvcnBjL3N0YXR1cy5wcm90bxoXZ29vZ2xlL2FwaS9jbGllbnQucHJvdG8i", - "MgoZR2V0U2hhcmVkQ3JpdGVyaW9uUmVxdWVzdBIVCg1yZXNvdXJjZV9uYW1l", - "GAEgASgJIrIBChtNdXRhdGVTaGFyZWRDcml0ZXJpYVJlcXVlc3QSEwoLY3Vz", - "dG9tZXJfaWQYASABKAkSTgoKb3BlcmF0aW9ucxgCIAMoCzI6Lmdvb2dsZS5h", - "ZHMuZ29vZ2xlYWRzLnYyLnNlcnZpY2VzLlNoYXJlZENyaXRlcmlvbk9wZXJh", - "dGlvbhIXCg9wYXJ0aWFsX2ZhaWx1cmUYAyABKAgSFQoNdmFsaWRhdGVfb25s", - "eRgEIAEoCCJ/ChhTaGFyZWRDcml0ZXJpb25PcGVyYXRpb24SRAoGY3JlYXRl", - "GAEgASgLMjIuZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIucmVzb3VyY2VzLlNo", - "YXJlZENyaXRlcmlvbkgAEhAKBnJlbW92ZRgDIAEoCUgAQgsKCW9wZXJhdGlv", - "biKhAQocTXV0YXRlU2hhcmVkQ3JpdGVyaWFSZXNwb25zZRIxChVwYXJ0aWFs", - "X2ZhaWx1cmVfZXJyb3IYAyABKAsyEi5nb29nbGUucnBjLlN0YXR1cxJOCgdy", - "ZXN1bHRzGAIgAygLMj0uZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuc2Vydmlj", - "ZXMuTXV0YXRlU2hhcmVkQ3JpdGVyaW9uUmVzdWx0IjQKG011dGF0ZVNoYXJl", - "ZENyaXRlcmlvblJlc3VsdBIVCg1yZXNvdXJjZV9uYW1lGAEgASgJMs8DChZT", - "aGFyZWRDcml0ZXJpb25TZXJ2aWNlEr8BChJHZXRTaGFyZWRDcml0ZXJpb24S", - "Oy5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5zZXJ2aWNlcy5HZXRTaGFyZWRD", - "cml0ZXJpb25SZXF1ZXN0GjIuZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIucmVz", - "b3VyY2VzLlNoYXJlZENyaXRlcmlvbiI4gtPkkwIyEjAvdjIve3Jlc291cmNl", - "X25hbWU9Y3VzdG9tZXJzLyovc2hhcmVkQ3JpdGVyaWEvKn0S1QEKFE11dGF0", - "ZVNoYXJlZENyaXRlcmlhEj0uZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuc2Vy", - "dmljZXMuTXV0YXRlU2hhcmVkQ3JpdGVyaWFSZXF1ZXN0Gj4uZ29vZ2xlLmFk", - "cy5nb29nbGVhZHMudjIuc2VydmljZXMuTXV0YXRlU2hhcmVkQ3JpdGVyaWFS", - "ZXNwb25zZSI+gtPkkwI4IjMvdjIvY3VzdG9tZXJzL3tjdXN0b21lcl9pZD0q", - "fS9zaGFyZWRDcml0ZXJpYTptdXRhdGU6ASoaG8pBGGdvb2dsZWFkcy5nb29n", - "bGVhcGlzLmNvbUKCAgokY29tLmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLnNl", - "cnZpY2VzQhtTaGFyZWRDcml0ZXJpb25TZXJ2aWNlUHJvdG9QAVpIZ29vZ2xl", - "LmdvbGFuZy5vcmcvZ2VucHJvdG8vZ29vZ2xlYXBpcy9hZHMvZ29vZ2xlYWRz", - "L3YyL3NlcnZpY2VzO3NlcnZpY2VzogIDR0FBqgIgR29vZ2xlLkFkcy5Hb29n", - "bGVBZHMuVjIuU2VydmljZXPKAiBHb29nbGVcQWRzXEdvb2dsZUFkc1xWMlxT", - "ZXJ2aWNlc+oCJEdvb2dsZTo6QWRzOjpHb29nbGVBZHM6OlYyOjpTZXJ2aWNl", - "c2IGcHJvdG8z")); + "cy5wcm90bxoXZ29vZ2xlL3JwYy9zdGF0dXMucHJvdG8aF2dvb2dsZS9hcGkv", + "Y2xpZW50LnByb3RvIjIKGUdldFNoYXJlZENyaXRlcmlvblJlcXVlc3QSFQoN", + "cmVzb3VyY2VfbmFtZRgBIAEoCSKyAQobTXV0YXRlU2hhcmVkQ3JpdGVyaWFS", + "ZXF1ZXN0EhMKC2N1c3RvbWVyX2lkGAEgASgJEk4KCm9wZXJhdGlvbnMYAiAD", + "KAsyOi5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5zZXJ2aWNlcy5TaGFyZWRD", + "cml0ZXJpb25PcGVyYXRpb24SFwoPcGFydGlhbF9mYWlsdXJlGAMgASgIEhUK", + "DXZhbGlkYXRlX29ubHkYBCABKAgifwoYU2hhcmVkQ3JpdGVyaW9uT3BlcmF0", + "aW9uEkQKBmNyZWF0ZRgBIAEoCzIyLmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYy", + "LnJlc291cmNlcy5TaGFyZWRDcml0ZXJpb25IABIQCgZyZW1vdmUYAyABKAlI", + "AEILCglvcGVyYXRpb24ioQEKHE11dGF0ZVNoYXJlZENyaXRlcmlhUmVzcG9u", + "c2USMQoVcGFydGlhbF9mYWlsdXJlX2Vycm9yGAMgASgLMhIuZ29vZ2xlLnJw", + "Yy5TdGF0dXMSTgoHcmVzdWx0cxgCIAMoCzI9Lmdvb2dsZS5hZHMuZ29vZ2xl", + "YWRzLnYyLnNlcnZpY2VzLk11dGF0ZVNoYXJlZENyaXRlcmlvblJlc3VsdCI0", + "ChtNdXRhdGVTaGFyZWRDcml0ZXJpb25SZXN1bHQSFQoNcmVzb3VyY2VfbmFt", + "ZRgBIAEoCTLPAwoWU2hhcmVkQ3JpdGVyaW9uU2VydmljZRK/AQoSR2V0U2hh", + "cmVkQ3JpdGVyaW9uEjsuZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuc2Vydmlj", + "ZXMuR2V0U2hhcmVkQ3JpdGVyaW9uUmVxdWVzdBoyLmdvb2dsZS5hZHMuZ29v", + "Z2xlYWRzLnYyLnJlc291cmNlcy5TaGFyZWRDcml0ZXJpb24iOILT5JMCMhIw", + "L3YyL3tyZXNvdXJjZV9uYW1lPWN1c3RvbWVycy8qL3NoYXJlZENyaXRlcmlh", + "Lyp9EtUBChRNdXRhdGVTaGFyZWRDcml0ZXJpYRI9Lmdvb2dsZS5hZHMuZ29v", + "Z2xlYWRzLnYyLnNlcnZpY2VzLk11dGF0ZVNoYXJlZENyaXRlcmlhUmVxdWVz", + "dBo+Lmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLnNlcnZpY2VzLk11dGF0ZVNo", + "YXJlZENyaXRlcmlhUmVzcG9uc2UiPoLT5JMCOCIzL3YyL2N1c3RvbWVycy97", + "Y3VzdG9tZXJfaWQ9Kn0vc2hhcmVkQ3JpdGVyaWE6bXV0YXRlOgEqGhvKQRhn", + "b29nbGVhZHMuZ29vZ2xlYXBpcy5jb21CggIKJGNvbS5nb29nbGUuYWRzLmdv", + "b2dsZWFkcy52Mi5zZXJ2aWNlc0IbU2hhcmVkQ3JpdGVyaW9uU2VydmljZVBy", + "b3RvUAFaSGdvb2dsZS5nb2xhbmcub3JnL2dlbnByb3RvL2dvb2dsZWFwaXMv", + "YWRzL2dvb2dsZWFkcy92Mi9zZXJ2aWNlcztzZXJ2aWNlc6ICA0dBQaoCIEdv", + "b2dsZS5BZHMuR29vZ2xlQWRzLlYyLlNlcnZpY2VzygIgR29vZ2xlXEFkc1xH", + "b29nbGVBZHNcVjJcU2VydmljZXPqAiRHb29nbGU6OkFkczo6R29vZ2xlQWRz", + "OjpWMjo6U2VydmljZXNiBnByb3RvMw==")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, - new pbr::FileDescriptor[] { global::Google.Ads.GoogleAds.V2.Resources.SharedCriterionReflection.Descriptor, global::Google.Api.AnnotationsReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.WrappersReflection.Descriptor, global::Google.Rpc.StatusReflection.Descriptor, global::Google.Api.ClientReflection.Descriptor, }, + new pbr::FileDescriptor[] { global::Google.Ads.GoogleAds.V2.Resources.SharedCriterionReflection.Descriptor, global::Google.Api.AnnotationsReflection.Descriptor, global::Google.Rpc.StatusReflection.Descriptor, global::Google.Api.ClientReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Services.GetSharedCriterionRequest), global::Google.Ads.GoogleAds.V2.Services.GetSharedCriterionRequest.Parser, new[]{ "ResourceName" }, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Services.MutateSharedCriteriaRequest), global::Google.Ads.GoogleAds.V2.Services.MutateSharedCriteriaRequest.Parser, new[]{ "CustomerId", "Operations", "PartialFailure", "ValidateOnly" }, null, null, null), diff --git a/src/V2/Stubs/SharedSetService.cs b/src/V2/Stubs/SharedSetService.cs index 239b8df9b..393b1cc75 100644 --- a/src/V2/Stubs/SharedSetService.cs +++ b/src/V2/Stubs/SharedSetService.cs @@ -28,41 +28,40 @@ static SharedSetServiceReflection() { "X3NlcnZpY2UucHJvdG8SIGdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLnNlcnZp", "Y2VzGjJnb29nbGUvYWRzL2dvb2dsZWFkcy92Mi9yZXNvdXJjZXMvc2hhcmVk", "X3NldC5wcm90bxocZ29vZ2xlL2FwaS9hbm5vdGF0aW9ucy5wcm90bxogZ29v", - "Z2xlL3Byb3RvYnVmL2ZpZWxkX21hc2sucHJvdG8aHmdvb2dsZS9wcm90b2J1", - "Zi93cmFwcGVycy5wcm90bxoXZ29vZ2xlL3JwYy9zdGF0dXMucHJvdG8aF2dv", - "b2dsZS9hcGkvY2xpZW50LnByb3RvIiwKE0dldFNoYXJlZFNldFJlcXVlc3QS", - "FQoNcmVzb3VyY2VfbmFtZRgBIAEoCSKoAQoXTXV0YXRlU2hhcmVkU2V0c1Jl", - "cXVlc3QSEwoLY3VzdG9tZXJfaWQYASABKAkSSAoKb3BlcmF0aW9ucxgCIAMo", - "CzI0Lmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLnNlcnZpY2VzLlNoYXJlZFNl", - "dE9wZXJhdGlvbhIXCg9wYXJ0aWFsX2ZhaWx1cmUYAyABKAgSFQoNdmFsaWRh", - "dGVfb25seRgEIAEoCCLkAQoSU2hhcmVkU2V0T3BlcmF0aW9uEi8KC3VwZGF0", - "ZV9tYXNrGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLkZpZWxkTWFzaxI+CgZj", - "cmVhdGUYASABKAsyLC5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5yZXNvdXJj", - "ZXMuU2hhcmVkU2V0SAASPgoGdXBkYXRlGAIgASgLMiwuZ29vZ2xlLmFkcy5n", - "b29nbGVhZHMudjIucmVzb3VyY2VzLlNoYXJlZFNldEgAEhAKBnJlbW92ZRgD", - "IAEoCUgAQgsKCW9wZXJhdGlvbiKXAQoYTXV0YXRlU2hhcmVkU2V0c1Jlc3Bv", - "bnNlEjEKFXBhcnRpYWxfZmFpbHVyZV9lcnJvchgDIAEoCzISLmdvb2dsZS5y", - "cGMuU3RhdHVzEkgKB3Jlc3VsdHMYAiADKAsyNy5nb29nbGUuYWRzLmdvb2ds", - "ZWFkcy52Mi5zZXJ2aWNlcy5NdXRhdGVTaGFyZWRTZXRSZXN1bHQiLgoVTXV0", - "YXRlU2hhcmVkU2V0UmVzdWx0EhUKDXJlc291cmNlX25hbWUYASABKAkyowMK", - "EFNoYXJlZFNldFNlcnZpY2USqQEKDEdldFNoYXJlZFNldBI1Lmdvb2dsZS5h", - "ZHMuZ29vZ2xlYWRzLnYyLnNlcnZpY2VzLkdldFNoYXJlZFNldFJlcXVlc3Qa", - "LC5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5yZXNvdXJjZXMuU2hhcmVkU2V0", - "IjSC0+STAi4SLC92Mi97cmVzb3VyY2VfbmFtZT1jdXN0b21lcnMvKi9zaGFy", - "ZWRTZXRzLyp9EsUBChBNdXRhdGVTaGFyZWRTZXRzEjkuZ29vZ2xlLmFkcy5n", - "b29nbGVhZHMudjIuc2VydmljZXMuTXV0YXRlU2hhcmVkU2V0c1JlcXVlc3Qa", - "Oi5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5zZXJ2aWNlcy5NdXRhdGVTaGFy", - "ZWRTZXRzUmVzcG9uc2UiOoLT5JMCNCIvL3YyL2N1c3RvbWVycy97Y3VzdG9t", - "ZXJfaWQ9Kn0vc2hhcmVkU2V0czptdXRhdGU6ASoaG8pBGGdvb2dsZWFkcy5n", - "b29nbGVhcGlzLmNvbUL8AQokY29tLmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYy", - "LnNlcnZpY2VzQhVTaGFyZWRTZXRTZXJ2aWNlUHJvdG9QAVpIZ29vZ2xlLmdv", - "bGFuZy5vcmcvZ2VucHJvdG8vZ29vZ2xlYXBpcy9hZHMvZ29vZ2xlYWRzL3Yy", - "L3NlcnZpY2VzO3NlcnZpY2VzogIDR0FBqgIgR29vZ2xlLkFkcy5Hb29nbGVB", - "ZHMuVjIuU2VydmljZXPKAiBHb29nbGVcQWRzXEdvb2dsZUFkc1xWMlxTZXJ2", - "aWNlc+oCJEdvb2dsZTo6QWRzOjpHb29nbGVBZHM6OlYyOjpTZXJ2aWNlc2IG", - "cHJvdG8z")); + "Z2xlL3Byb3RvYnVmL2ZpZWxkX21hc2sucHJvdG8aF2dvb2dsZS9ycGMvc3Rh", + "dHVzLnByb3RvGhdnb29nbGUvYXBpL2NsaWVudC5wcm90byIsChNHZXRTaGFy", + "ZWRTZXRSZXF1ZXN0EhUKDXJlc291cmNlX25hbWUYASABKAkiqAEKF011dGF0", + "ZVNoYXJlZFNldHNSZXF1ZXN0EhMKC2N1c3RvbWVyX2lkGAEgASgJEkgKCm9w", + "ZXJhdGlvbnMYAiADKAsyNC5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5zZXJ2", + "aWNlcy5TaGFyZWRTZXRPcGVyYXRpb24SFwoPcGFydGlhbF9mYWlsdXJlGAMg", + "ASgIEhUKDXZhbGlkYXRlX29ubHkYBCABKAgi5AEKElNoYXJlZFNldE9wZXJh", + "dGlvbhIvCgt1cGRhdGVfbWFzaxgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5G", + "aWVsZE1hc2sSPgoGY3JlYXRlGAEgASgLMiwuZ29vZ2xlLmFkcy5nb29nbGVh", + "ZHMudjIucmVzb3VyY2VzLlNoYXJlZFNldEgAEj4KBnVwZGF0ZRgCIAEoCzIs", + "Lmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLnJlc291cmNlcy5TaGFyZWRTZXRI", + "ABIQCgZyZW1vdmUYAyABKAlIAEILCglvcGVyYXRpb24ilwEKGE11dGF0ZVNo", + "YXJlZFNldHNSZXNwb25zZRIxChVwYXJ0aWFsX2ZhaWx1cmVfZXJyb3IYAyAB", + "KAsyEi5nb29nbGUucnBjLlN0YXR1cxJICgdyZXN1bHRzGAIgAygLMjcuZ29v", + "Z2xlLmFkcy5nb29nbGVhZHMudjIuc2VydmljZXMuTXV0YXRlU2hhcmVkU2V0", + "UmVzdWx0Ii4KFU11dGF0ZVNoYXJlZFNldFJlc3VsdBIVCg1yZXNvdXJjZV9u", + "YW1lGAEgASgJMqMDChBTaGFyZWRTZXRTZXJ2aWNlEqkBCgxHZXRTaGFyZWRT", + "ZXQSNS5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5zZXJ2aWNlcy5HZXRTaGFy", + "ZWRTZXRSZXF1ZXN0GiwuZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIucmVzb3Vy", + "Y2VzLlNoYXJlZFNldCI0gtPkkwIuEiwvdjIve3Jlc291cmNlX25hbWU9Y3Vz", + "dG9tZXJzLyovc2hhcmVkU2V0cy8qfRLFAQoQTXV0YXRlU2hhcmVkU2V0cxI5", + "Lmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLnNlcnZpY2VzLk11dGF0ZVNoYXJl", + "ZFNldHNSZXF1ZXN0GjouZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuc2Vydmlj", + "ZXMuTXV0YXRlU2hhcmVkU2V0c1Jlc3BvbnNlIjqC0+STAjQiLy92Mi9jdXN0", + "b21lcnMve2N1c3RvbWVyX2lkPSp9L3NoYXJlZFNldHM6bXV0YXRlOgEqGhvK", + "QRhnb29nbGVhZHMuZ29vZ2xlYXBpcy5jb21C/AEKJGNvbS5nb29nbGUuYWRz", + "Lmdvb2dsZWFkcy52Mi5zZXJ2aWNlc0IVU2hhcmVkU2V0U2VydmljZVByb3Rv", + "UAFaSGdvb2dsZS5nb2xhbmcub3JnL2dlbnByb3RvL2dvb2dsZWFwaXMvYWRz", + "L2dvb2dsZWFkcy92Mi9zZXJ2aWNlcztzZXJ2aWNlc6ICA0dBQaoCIEdvb2ds", + "ZS5BZHMuR29vZ2xlQWRzLlYyLlNlcnZpY2VzygIgR29vZ2xlXEFkc1xHb29n", + "bGVBZHNcVjJcU2VydmljZXPqAiRHb29nbGU6OkFkczo6R29vZ2xlQWRzOjpW", + "Mjo6U2VydmljZXNiBnByb3RvMw==")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, - new pbr::FileDescriptor[] { global::Google.Ads.GoogleAds.V2.Resources.SharedSetReflection.Descriptor, global::Google.Api.AnnotationsReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.FieldMaskReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.WrappersReflection.Descriptor, global::Google.Rpc.StatusReflection.Descriptor, global::Google.Api.ClientReflection.Descriptor, }, + new pbr::FileDescriptor[] { global::Google.Ads.GoogleAds.V2.Resources.SharedSetReflection.Descriptor, global::Google.Api.AnnotationsReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.FieldMaskReflection.Descriptor, global::Google.Rpc.StatusReflection.Descriptor, global::Google.Api.ClientReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Services.GetSharedSetRequest), global::Google.Ads.GoogleAds.V2.Services.GetSharedSetRequest.Parser, new[]{ "ResourceName" }, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Services.MutateSharedSetsRequest), global::Google.Ads.GoogleAds.V2.Services.MutateSharedSetsRequest.Parser, new[]{ "CustomerId", "Operations", "PartialFailure", "ValidateOnly" }, null, null, null), diff --git a/src/V2/Stubs/UserListService.cs b/src/V2/Stubs/UserListService.cs index 2cf28588d..12053dc8d 100644 --- a/src/V2/Stubs/UserListService.cs +++ b/src/V2/Stubs/UserListService.cs @@ -28,40 +28,39 @@ static UserListServiceReflection() { "c2VydmljZS5wcm90bxIgZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuc2Vydmlj", "ZXMaMWdvb2dsZS9hZHMvZ29vZ2xlYWRzL3YyL3Jlc291cmNlcy91c2VyX2xp", "c3QucHJvdG8aHGdvb2dsZS9hcGkvYW5ub3RhdGlvbnMucHJvdG8aIGdvb2ds", - "ZS9wcm90b2J1Zi9maWVsZF9tYXNrLnByb3RvGh5nb29nbGUvcHJvdG9idWYv", - "d3JhcHBlcnMucHJvdG8aF2dvb2dsZS9ycGMvc3RhdHVzLnByb3RvGhdnb29n", - "bGUvYXBpL2NsaWVudC5wcm90byIrChJHZXRVc2VyTGlzdFJlcXVlc3QSFQoN", - "cmVzb3VyY2VfbmFtZRgBIAEoCSKmAQoWTXV0YXRlVXNlckxpc3RzUmVxdWVz", - "dBITCgtjdXN0b21lcl9pZBgBIAEoCRJHCgpvcGVyYXRpb25zGAIgAygLMjMu", - "Z29vZ2xlLmFkcy5nb29nbGVhZHMudjIuc2VydmljZXMuVXNlckxpc3RPcGVy", - "YXRpb24SFwoPcGFydGlhbF9mYWlsdXJlGAMgASgIEhUKDXZhbGlkYXRlX29u", - "bHkYBCABKAgi4QEKEVVzZXJMaXN0T3BlcmF0aW9uEi8KC3VwZGF0ZV9tYXNr", - "GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLkZpZWxkTWFzaxI9CgZjcmVhdGUY", - "ASABKAsyKy5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5yZXNvdXJjZXMuVXNl", - "ckxpc3RIABI9CgZ1cGRhdGUYAiABKAsyKy5nb29nbGUuYWRzLmdvb2dsZWFk", - "cy52Mi5yZXNvdXJjZXMuVXNlckxpc3RIABIQCgZyZW1vdmUYAyABKAlIAEIL", - "CglvcGVyYXRpb24ilQEKF011dGF0ZVVzZXJMaXN0c1Jlc3BvbnNlEjEKFXBh", - "cnRpYWxfZmFpbHVyZV9lcnJvchgDIAEoCzISLmdvb2dsZS5ycGMuU3RhdHVz", - "EkcKB3Jlc3VsdHMYAiADKAsyNi5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5z", - "ZXJ2aWNlcy5NdXRhdGVVc2VyTGlzdFJlc3VsdCItChRNdXRhdGVVc2VyTGlz", - "dFJlc3VsdBIVCg1yZXNvdXJjZV9uYW1lGAEgASgJMpoDCg9Vc2VyTGlzdFNl", - "cnZpY2USpQEKC0dldFVzZXJMaXN0EjQuZ29vZ2xlLmFkcy5nb29nbGVhZHMu", - "djIuc2VydmljZXMuR2V0VXNlckxpc3RSZXF1ZXN0GisuZ29vZ2xlLmFkcy5n", - "b29nbGVhZHMudjIucmVzb3VyY2VzLlVzZXJMaXN0IjOC0+STAi0SKy92Mi97", - "cmVzb3VyY2VfbmFtZT1jdXN0b21lcnMvKi91c2VyTGlzdHMvKn0SwQEKD011", - "dGF0ZVVzZXJMaXN0cxI4Lmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLnNlcnZp", - "Y2VzLk11dGF0ZVVzZXJMaXN0c1JlcXVlc3QaOS5nb29nbGUuYWRzLmdvb2ds", - "ZWFkcy52Mi5zZXJ2aWNlcy5NdXRhdGVVc2VyTGlzdHNSZXNwb25zZSI5gtPk", - "kwIzIi4vdjIvY3VzdG9tZXJzL3tjdXN0b21lcl9pZD0qfS91c2VyTGlzdHM6", - "bXV0YXRlOgEqGhvKQRhnb29nbGVhZHMuZ29vZ2xlYXBpcy5jb21C+wEKJGNv", - "bS5nb29nbGUuYWRzLmdvb2dsZWFkcy52Mi5zZXJ2aWNlc0IUVXNlckxpc3RT", - "ZXJ2aWNlUHJvdG9QAVpIZ29vZ2xlLmdvbGFuZy5vcmcvZ2VucHJvdG8vZ29v", - "Z2xlYXBpcy9hZHMvZ29vZ2xlYWRzL3YyL3NlcnZpY2VzO3NlcnZpY2VzogID", - "R0FBqgIgR29vZ2xlLkFkcy5Hb29nbGVBZHMuVjIuU2VydmljZXPKAiBHb29n", - "bGVcQWRzXEdvb2dsZUFkc1xWMlxTZXJ2aWNlc+oCJEdvb2dsZTo6QWRzOjpH", - "b29nbGVBZHM6OlYyOjpTZXJ2aWNlc2IGcHJvdG8z")); + "ZS9wcm90b2J1Zi9maWVsZF9tYXNrLnByb3RvGhdnb29nbGUvcnBjL3N0YXR1", + "cy5wcm90bxoXZ29vZ2xlL2FwaS9jbGllbnQucHJvdG8iKwoSR2V0VXNlckxp", + "c3RSZXF1ZXN0EhUKDXJlc291cmNlX25hbWUYASABKAkipgEKFk11dGF0ZVVz", + "ZXJMaXN0c1JlcXVlc3QSEwoLY3VzdG9tZXJfaWQYASABKAkSRwoKb3BlcmF0", + "aW9ucxgCIAMoCzIzLmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLnNlcnZpY2Vz", + "LlVzZXJMaXN0T3BlcmF0aW9uEhcKD3BhcnRpYWxfZmFpbHVyZRgDIAEoCBIV", + "Cg12YWxpZGF0ZV9vbmx5GAQgASgIIuEBChFVc2VyTGlzdE9wZXJhdGlvbhIv", + "Cgt1cGRhdGVfbWFzaxgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE1h", + "c2sSPQoGY3JlYXRlGAEgASgLMisuZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIu", + "cmVzb3VyY2VzLlVzZXJMaXN0SAASPQoGdXBkYXRlGAIgASgLMisuZ29vZ2xl", + "LmFkcy5nb29nbGVhZHMudjIucmVzb3VyY2VzLlVzZXJMaXN0SAASEAoGcmVt", + "b3ZlGAMgASgJSABCCwoJb3BlcmF0aW9uIpUBChdNdXRhdGVVc2VyTGlzdHNS", + "ZXNwb25zZRIxChVwYXJ0aWFsX2ZhaWx1cmVfZXJyb3IYAyABKAsyEi5nb29n", + "bGUucnBjLlN0YXR1cxJHCgdyZXN1bHRzGAIgAygLMjYuZ29vZ2xlLmFkcy5n", + "b29nbGVhZHMudjIuc2VydmljZXMuTXV0YXRlVXNlckxpc3RSZXN1bHQiLQoU", + "TXV0YXRlVXNlckxpc3RSZXN1bHQSFQoNcmVzb3VyY2VfbmFtZRgBIAEoCTKa", + "AwoPVXNlckxpc3RTZXJ2aWNlEqUBCgtHZXRVc2VyTGlzdBI0Lmdvb2dsZS5h", + "ZHMuZ29vZ2xlYWRzLnYyLnNlcnZpY2VzLkdldFVzZXJMaXN0UmVxdWVzdBor", + "Lmdvb2dsZS5hZHMuZ29vZ2xlYWRzLnYyLnJlc291cmNlcy5Vc2VyTGlzdCIz", + "gtPkkwItEisvdjIve3Jlc291cmNlX25hbWU9Y3VzdG9tZXJzLyovdXNlckxp", + "c3RzLyp9EsEBCg9NdXRhdGVVc2VyTGlzdHMSOC5nb29nbGUuYWRzLmdvb2ds", + "ZWFkcy52Mi5zZXJ2aWNlcy5NdXRhdGVVc2VyTGlzdHNSZXF1ZXN0GjkuZ29v", + "Z2xlLmFkcy5nb29nbGVhZHMudjIuc2VydmljZXMuTXV0YXRlVXNlckxpc3Rz", + "UmVzcG9uc2UiOYLT5JMCMyIuL3YyL2N1c3RvbWVycy97Y3VzdG9tZXJfaWQ9", + "Kn0vdXNlckxpc3RzOm11dGF0ZToBKhobykEYZ29vZ2xlYWRzLmdvb2dsZWFw", + "aXMuY29tQvsBCiRjb20uZ29vZ2xlLmFkcy5nb29nbGVhZHMudjIuc2Vydmlj", + "ZXNCFFVzZXJMaXN0U2VydmljZVByb3RvUAFaSGdvb2dsZS5nb2xhbmcub3Jn", + "L2dlbnByb3RvL2dvb2dsZWFwaXMvYWRzL2dvb2dsZWFkcy92Mi9zZXJ2aWNl", + "cztzZXJ2aWNlc6ICA0dBQaoCIEdvb2dsZS5BZHMuR29vZ2xlQWRzLlYyLlNl", + "cnZpY2VzygIgR29vZ2xlXEFkc1xHb29nbGVBZHNcVjJcU2VydmljZXPqAiRH", + "b29nbGU6OkFkczo6R29vZ2xlQWRzOjpWMjo6U2VydmljZXNiBnByb3RvMw==")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, - new pbr::FileDescriptor[] { global::Google.Ads.GoogleAds.V2.Resources.UserListReflection.Descriptor, global::Google.Api.AnnotationsReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.FieldMaskReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.WrappersReflection.Descriptor, global::Google.Rpc.StatusReflection.Descriptor, global::Google.Api.ClientReflection.Descriptor, }, + new pbr::FileDescriptor[] { global::Google.Ads.GoogleAds.V2.Resources.UserListReflection.Descriptor, global::Google.Api.AnnotationsReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.FieldMaskReflection.Descriptor, global::Google.Rpc.StatusReflection.Descriptor, global::Google.Api.ClientReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Services.GetUserListRequest), global::Google.Ads.GoogleAds.V2.Services.GetUserListRequest.Parser, new[]{ "ResourceName" }, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Ads.GoogleAds.V2.Services.MutateUserListsRequest), global::Google.Ads.GoogleAds.V2.Services.MutateUserListsRequest.Parser, new[]{ "CustomerId", "Operations", "PartialFailure", "ValidateOnly" }, null, null, null), diff --git a/tests/Google.Ads.GoogleAds.Tests.csproj b/tests/Google.Ads.GoogleAds.Tests.csproj index 5e06a21fb..b0b83625b 100644 --- a/tests/Google.Ads.GoogleAds.Tests.csproj +++ b/tests/Google.Ads.GoogleAds.Tests.csproj @@ -19,7 +19,7 @@ - + diff --git a/tests/V1/Services/GeoTargetConstantServiceClientTest.g.cs b/tests/V1/Services/GeoTargetConstantServiceClientTest.g.cs index 7d1f54951..6f5e05a31 100644 --- a/tests/V1/Services/GeoTargetConstantServiceClientTest.g.cs +++ b/tests/V1/Services/GeoTargetConstantServiceClientTest.g.cs @@ -120,17 +120,17 @@ public async Task GetGeoTargetConstantAsync2() public void SuggestGeoTargetConstants() { Mock mockGrpcClient = new Mock(MockBehavior.Strict); + string locale = "en"; + string countryCode = "US"; SuggestGeoTargetConstantsRequest expectedRequest = new SuggestGeoTargetConstantsRequest { - Locale = null, - CountryCode = null, + Locale = locale, + CountryCode = countryCode, }; SuggestGeoTargetConstantsResponse expectedResponse = new SuggestGeoTargetConstantsResponse(); mockGrpcClient.Setup(x => x.SuggestGeoTargetConstants(expectedRequest, It.IsAny())) .Returns(expectedResponse); GeoTargetConstantServiceClient client = new GeoTargetConstantServiceClientImpl(mockGrpcClient.Object, null); - string locale = null; - string countryCode = null; SuggestGeoTargetConstantsResponse response = client.SuggestGeoTargetConstants(locale, countryCode); Assert.AreEqual(expectedResponse, response); mockGrpcClient.VerifyAll(); @@ -140,17 +140,17 @@ public void SuggestGeoTargetConstants() public async Task SuggestGeoTargetConstantsAsync() { Mock mockGrpcClient = new Mock(MockBehavior.Strict); + string locale = "en"; + string countryCode = "US"; SuggestGeoTargetConstantsRequest expectedRequest = new SuggestGeoTargetConstantsRequest { - Locale = null, - CountryCode = null, + Locale = locale, + CountryCode = countryCode, }; SuggestGeoTargetConstantsResponse expectedResponse = new SuggestGeoTargetConstantsResponse(); mockGrpcClient.Setup(x => x.SuggestGeoTargetConstantsAsync(expectedRequest, It.IsAny())) .Returns(new Grpc.Core.AsyncUnaryCall(Task.FromResult(expectedResponse), null, null, null, null)); GeoTargetConstantServiceClient client = new GeoTargetConstantServiceClientImpl(mockGrpcClient.Object, null); - string locale = null; - string countryCode = null; SuggestGeoTargetConstantsResponse response = await client.SuggestGeoTargetConstantsAsync(locale, countryCode); Assert.AreEqual(expectedResponse, response); mockGrpcClient.VerifyAll(); diff --git a/tests/V1/Services/KeywordPlanIdeaServiceClientTest.g.cs b/tests/V1/Services/KeywordPlanIdeaServiceClientTest.g.cs index b2907dd66..fbe5e73a2 100644 --- a/tests/V1/Services/KeywordPlanIdeaServiceClientTest.g.cs +++ b/tests/V1/Services/KeywordPlanIdeaServiceClientTest.g.cs @@ -38,10 +38,11 @@ public class GeneratedKeywordPlanIdeaServiceClientTest public void GenerateKeywordIdeas() { Mock mockGrpcClient = new Mock(MockBehavior.Strict); + string language = "English"; GenerateKeywordIdeasRequest expectedRequest = new GenerateKeywordIdeasRequest { CustomerId = "customerId-1772061412", - Language = null, + Language = language, GeoTargetConstants = { }, KeywordPlanNetwork = KeywordPlanNetworkEnum.Types.KeywordPlanNetwork.Unspecified, }; @@ -50,7 +51,6 @@ public void GenerateKeywordIdeas() .Returns(expectedResponse); KeywordPlanIdeaServiceClient client = new KeywordPlanIdeaServiceClientImpl(mockGrpcClient.Object, null); string customerId = "customerId-1772061412"; - string language = null; IEnumerable geoTargetConstants = new List(); KeywordPlanNetworkEnum.Types.KeywordPlanNetwork keywordPlanNetwork = KeywordPlanNetworkEnum.Types.KeywordPlanNetwork.Unspecified; GenerateKeywordIdeaResponse response = client.GenerateKeywordIdeas(customerId, language, geoTargetConstants, keywordPlanNetwork); @@ -62,10 +62,11 @@ public void GenerateKeywordIdeas() public async Task GenerateKeywordIdeasAsync() { Mock mockGrpcClient = new Mock(MockBehavior.Strict); + string language = "English"; GenerateKeywordIdeasRequest expectedRequest = new GenerateKeywordIdeasRequest { CustomerId = "customerId-1772061412", - Language = null, + Language = language, GeoTargetConstants = { }, KeywordPlanNetwork = KeywordPlanNetworkEnum.Types.KeywordPlanNetwork.Unspecified, }; @@ -74,7 +75,6 @@ public async Task GenerateKeywordIdeasAsync() .Returns(new Grpc.Core.AsyncUnaryCall(Task.FromResult(expectedResponse), null, null, null, null)); KeywordPlanIdeaServiceClient client = new KeywordPlanIdeaServiceClientImpl(mockGrpcClient.Object, null); string customerId = "customerId-1772061412"; - string language = null; IEnumerable geoTargetConstants = new List(); KeywordPlanNetworkEnum.Types.KeywordPlanNetwork keywordPlanNetwork = KeywordPlanNetworkEnum.Types.KeywordPlanNetwork.Unspecified; GenerateKeywordIdeaResponse response = await client.GenerateKeywordIdeasAsync(customerId, language, geoTargetConstants, keywordPlanNetwork); diff --git a/tests/V2/Services/CustomerServiceClientTest.g.cs b/tests/V2/Services/CustomerServiceClientTest.g.cs index 20e39cd71..e5391eea5 100644 --- a/tests/V2/Services/CustomerServiceClientTest.g.cs +++ b/tests/V2/Services/CustomerServiceClientTest.g.cs @@ -272,7 +272,9 @@ public void CreateCustomerClient() CreateCustomerClientRequest expectedRequest = new CreateCustomerClientRequest { CustomerId = "customerId-1772061412", - CustomerClient = new Customer() + CustomerClient = new Customer(), + EmailAddress = null, + AccessRole = AccessRoleEnum.Types.AccessRole.Unspecified, }; CreateCustomerClientResponse expectedResponse = new CreateCustomerClientResponse { @@ -283,7 +285,9 @@ public void CreateCustomerClient() CustomerServiceClient client = new CustomerServiceClientImpl(mockGrpcClient.Object, null); string customerId = "customerId-1772061412"; Customer customerClient = new Customer(); - CreateCustomerClientResponse response = client.CreateCustomerClient(customerId, customerClient); + string emailAddress = null; + AccessRoleEnum.Types.AccessRole accessRole = AccessRoleEnum.Types.AccessRole.Unspecified; + CreateCustomerClientResponse response = client.CreateCustomerClient(customerId, customerClient, emailAddress, accessRole); Assert.AreEqual(expectedResponse, response); mockGrpcClient.VerifyAll(); } @@ -317,14 +321,58 @@ public async Task CreateCustomerClientAsync() [Test] public void CreateCustomerClient2() + { + Mock mockGrpcClient = new Mock(MockBehavior.Strict); + CreateCustomerClientRequest expectedRequest = new CreateCustomerClientRequest + { + CustomerId = "customerId-1772061412", + CustomerClient = new Customer(), + }; + CreateCustomerClientResponse expectedResponse = new CreateCustomerClientResponse + { + ResourceName = "resourceName979421212", + }; + mockGrpcClient.Setup(x => x.CreateCustomerClient(expectedRequest, It.IsAny())) + .Returns(expectedResponse); + CustomerServiceClient client = new CustomerServiceClientImpl(mockGrpcClient.Object, null); + string customerId = "customerId-1772061412"; + Customer customerClient = new Customer(); + CreateCustomerClientResponse response = client.CreateCustomerClient(customerId, customerClient); + Assert.AreEqual(expectedResponse, response); + mockGrpcClient.VerifyAll(); + } + + [Test] + public async Task CreateCustomerClientAsync2() + { + Mock mockGrpcClient = new Mock(MockBehavior.Strict); + CreateCustomerClientRequest expectedRequest = new CreateCustomerClientRequest + { + CustomerId = "customerId-1772061412", + CustomerClient = new Customer(), + }; + CreateCustomerClientResponse expectedResponse = new CreateCustomerClientResponse + { + ResourceName = "resourceName979421212", + }; + mockGrpcClient.Setup(x => x.CreateCustomerClientAsync(expectedRequest, It.IsAny())) + .Returns(new Grpc.Core.AsyncUnaryCall(Task.FromResult(expectedResponse), null, null, null, null)); + CustomerServiceClient client = new CustomerServiceClientImpl(mockGrpcClient.Object, null); + string customerId = "customerId-1772061412"; + Customer customerClient = new Customer(); + CreateCustomerClientResponse response = await client.CreateCustomerClientAsync(customerId, customerClient); + Assert.AreEqual(expectedResponse, response); + mockGrpcClient.VerifyAll(); + } + + [Test] + public void CreateCustomerClient3() { Mock mockGrpcClient = new Mock(MockBehavior.Strict); CreateCustomerClientRequest request = new CreateCustomerClientRequest { CustomerId = "customerId-1772061412", CustomerClient = new Customer(), - EmailAddress = null, - AccessRole = AccessRoleEnum.Types.AccessRole.Unspecified, }; CreateCustomerClientResponse expectedResponse = new CreateCustomerClientResponse { @@ -339,15 +387,13 @@ public void CreateCustomerClient2() } [Test] - public async Task CreateCustomerClientAsync2() + public async Task CreateCustomerClientAsync3() { Mock mockGrpcClient = new Mock(MockBehavior.Strict); CreateCustomerClientRequest request = new CreateCustomerClientRequest { CustomerId = "customerId-1772061412", CustomerClient = new Customer(), - EmailAddress = null, - AccessRole = AccessRoleEnum.Types.AccessRole.Unspecified, }; CreateCustomerClientResponse expectedResponse = new CreateCustomerClientResponse { diff --git a/tests/V2/Services/ExtensionFeedItemServiceClientTest.g.cs b/tests/V2/Services/ExtensionFeedItemServiceClientTest.g.cs index 318d615e2..13a55ac59 100644 --- a/tests/V2/Services/ExtensionFeedItemServiceClientTest.g.cs +++ b/tests/V2/Services/ExtensionFeedItemServiceClientTest.g.cs @@ -124,6 +124,7 @@ public void MutateExtensionFeedItems() { CustomerId = "customerId-1772061412", Operations = { }, + PartialFailure = true, ValidateOnly = false, }; MutateExtensionFeedItemsResponse expectedResponse = new MutateExtensionFeedItemsResponse(); @@ -132,7 +133,9 @@ public void MutateExtensionFeedItems() ExtensionFeedItemServiceClient client = new ExtensionFeedItemServiceClientImpl(mockGrpcClient.Object, null); string customerId = "customerId-1772061412"; IEnumerable operations = new List(); - MutateExtensionFeedItemsResponse response = client.MutateExtensionFeedItems(customerId, operations); + bool partialFailure = true; + bool validateOnly = false; + MutateExtensionFeedItemsResponse response = client.MutateExtensionFeedItems(customerId, operations, partialFailure, validateOnly); Assert.AreEqual(expectedResponse, response); mockGrpcClient.VerifyAll(); } @@ -145,6 +148,7 @@ public async Task MutateExtensionFeedItemsAsync() { CustomerId = "customerId-1772061412", Operations = { }, + PartialFailure = true, ValidateOnly = false, }; MutateExtensionFeedItemsResponse expectedResponse = new MutateExtensionFeedItemsResponse(); @@ -153,7 +157,9 @@ public async Task MutateExtensionFeedItemsAsync() ExtensionFeedItemServiceClient client = new ExtensionFeedItemServiceClientImpl(mockGrpcClient.Object, null); string customerId = "customerId-1772061412"; IEnumerable operations = new List(); - MutateExtensionFeedItemsResponse response = await client.MutateExtensionFeedItemsAsync(customerId, operations); + bool partialFailure = true; + bool validateOnly = false; + MutateExtensionFeedItemsResponse response = await client.MutateExtensionFeedItemsAsync(customerId, operations, partialFailure, validateOnly); Assert.AreEqual(expectedResponse, response); mockGrpcClient.VerifyAll(); } diff --git a/tests/V2/Services/GeoTargetConstantServiceClientTest.g.cs b/tests/V2/Services/GeoTargetConstantServiceClientTest.g.cs index 98934110d..76998cf38 100644 --- a/tests/V2/Services/GeoTargetConstantServiceClientTest.g.cs +++ b/tests/V2/Services/GeoTargetConstantServiceClientTest.g.cs @@ -120,17 +120,17 @@ public async Task GetGeoTargetConstantAsync2() public void SuggestGeoTargetConstants() { Mock mockGrpcClient = new Mock(MockBehavior.Strict); + string locale = "en"; + string countryCode = "US"; SuggestGeoTargetConstantsRequest expectedRequest = new SuggestGeoTargetConstantsRequest { - Locale = null, - CountryCode = null, + Locale = locale, + CountryCode = countryCode, }; SuggestGeoTargetConstantsResponse expectedResponse = new SuggestGeoTargetConstantsResponse(); mockGrpcClient.Setup(x => x.SuggestGeoTargetConstants(expectedRequest, It.IsAny())) .Returns(expectedResponse); GeoTargetConstantServiceClient client = new GeoTargetConstantServiceClientImpl(mockGrpcClient.Object, null); - string locale = null; - string countryCode = null; SuggestGeoTargetConstantsResponse response = client.SuggestGeoTargetConstants(locale, countryCode); Assert.AreEqual(expectedResponse, response); mockGrpcClient.VerifyAll(); @@ -140,17 +140,17 @@ public void SuggestGeoTargetConstants() public async Task SuggestGeoTargetConstantsAsync() { Mock mockGrpcClient = new Mock(MockBehavior.Strict); + string locale = "en"; + string countryCode = "US"; SuggestGeoTargetConstantsRequest expectedRequest = new SuggestGeoTargetConstantsRequest { - Locale = null, - CountryCode = null, + Locale = locale, + CountryCode = countryCode, }; SuggestGeoTargetConstantsResponse expectedResponse = new SuggestGeoTargetConstantsResponse(); mockGrpcClient.Setup(x => x.SuggestGeoTargetConstantsAsync(expectedRequest, It.IsAny())) .Returns(new Grpc.Core.AsyncUnaryCall(Task.FromResult(expectedResponse), null, null, null, null)); GeoTargetConstantServiceClient client = new GeoTargetConstantServiceClientImpl(mockGrpcClient.Object, null); - string locale = null; - string countryCode = null; SuggestGeoTargetConstantsResponse response = await client.SuggestGeoTargetConstantsAsync(locale, countryCode); Assert.AreEqual(expectedResponse, response); mockGrpcClient.VerifyAll(); diff --git a/tests/V2/Services/KeywordPlanIdeaServiceClientTest.g.cs b/tests/V2/Services/KeywordPlanIdeaServiceClientTest.g.cs index 970243fc0..e878b7506 100644 --- a/tests/V2/Services/KeywordPlanIdeaServiceClientTest.g.cs +++ b/tests/V2/Services/KeywordPlanIdeaServiceClientTest.g.cs @@ -38,10 +38,12 @@ public class GeneratedKeywordPlanIdeaServiceClientTest public void GenerateKeywordIdeas() { Mock mockGrpcClient = new Mock(MockBehavior.Strict); + string customerId = "customerId-1772061412"; + string language = "en"; GenerateKeywordIdeasRequest expectedRequest = new GenerateKeywordIdeasRequest { - CustomerId = "customerId-1772061412", - Language = null, + CustomerId = customerId, + Language = language, GeoTargetConstants = { }, KeywordPlanNetwork = KeywordPlanNetworkEnum.Types.KeywordPlanNetwork.Unspecified, }; @@ -49,8 +51,6 @@ public void GenerateKeywordIdeas() mockGrpcClient.Setup(x => x.GenerateKeywordIdeas(expectedRequest, It.IsAny())) .Returns(expectedResponse); KeywordPlanIdeaServiceClient client = new KeywordPlanIdeaServiceClientImpl(mockGrpcClient.Object, null); - string customerId = "customerId-1772061412"; - string language = null; IEnumerable geoTargetConstants = new List(); KeywordPlanNetworkEnum.Types.KeywordPlanNetwork keywordPlanNetwork = KeywordPlanNetworkEnum.Types.KeywordPlanNetwork.Unspecified; GenerateKeywordIdeaResponse response = client.GenerateKeywordIdeas(customerId, language, geoTargetConstants, keywordPlanNetwork); @@ -62,10 +62,12 @@ public void GenerateKeywordIdeas() public async Task GenerateKeywordIdeasAsync() { Mock mockGrpcClient = new Mock(MockBehavior.Strict); + string customerId = "customerId-1772061412"; + string language = "en"; GenerateKeywordIdeasRequest expectedRequest = new GenerateKeywordIdeasRequest { - CustomerId = "customerId-1772061412", - Language = null, + CustomerId = customerId, + Language = language, GeoTargetConstants = { }, KeywordPlanNetwork = KeywordPlanNetworkEnum.Types.KeywordPlanNetwork.Unspecified, }; @@ -73,8 +75,6 @@ public async Task GenerateKeywordIdeasAsync() mockGrpcClient.Setup(x => x.GenerateKeywordIdeasAsync(expectedRequest, It.IsAny())) .Returns(new Grpc.Core.AsyncUnaryCall(Task.FromResult(expectedResponse), null, null, null, null)); KeywordPlanIdeaServiceClient client = new KeywordPlanIdeaServiceClientImpl(mockGrpcClient.Object, null); - string customerId = "customerId-1772061412"; - string language = null; IEnumerable geoTargetConstants = new List(); KeywordPlanNetworkEnum.Types.KeywordPlanNetwork keywordPlanNetwork = KeywordPlanNetworkEnum.Types.KeywordPlanNetwork.Unspecified; GenerateKeywordIdeaResponse response = await client.GenerateKeywordIdeasAsync(customerId, language, geoTargetConstants, keywordPlanNetwork); diff --git a/tests/V2/Services/ReachPlanServiceClientTest.g.cs b/tests/V2/Services/ReachPlanServiceClientTest.g.cs new file mode 100644 index 000000000..5d37f1fa3 --- /dev/null +++ b/tests/V2/Services/ReachPlanServiceClientTest.g.cs @@ -0,0 +1,223 @@ +// Copyright 2019 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Generated code. DO NOT EDIT! + +namespace Google.Ads.GoogleAds.V2.Services.Tests +{ + using apis = Google.Ads.GoogleAds.V2.Services; + using Google.Api.Gax; + using Google.Api.Gax.Grpc; + using Google.Protobuf.WellKnownTypes; + using Grpc.Core; + using Moq; + using System; + using System.Collections; + using System.Collections.Generic; + using System.Collections.ObjectModel; + using System.Threading; + using System.Threading.Tasks; + using NUnit.Framework; + + /// Generated unit tests + public class GeneratedReachPlanServiceClientTest + { + [Test] + public void ListPlannableLocations() + { + Mock mockGrpcClient = new Mock(MockBehavior.Strict); + ListPlannableLocationsRequest request = new ListPlannableLocationsRequest(); + ListPlannableLocationsResponse expectedResponse = new ListPlannableLocationsResponse(); + mockGrpcClient.Setup(x => x.ListPlannableLocations(request, It.IsAny())) + .Returns(expectedResponse); + ReachPlanServiceClient client = new ReachPlanServiceClientImpl(mockGrpcClient.Object, null); + ListPlannableLocationsResponse response = client.ListPlannableLocations(request); + Assert.AreEqual(expectedResponse, response); + mockGrpcClient.VerifyAll(); + } + + [Test] + public async Task ListPlannableLocationsAsync() + { + Mock mockGrpcClient = new Mock(MockBehavior.Strict); + ListPlannableLocationsRequest request = new ListPlannableLocationsRequest(); + ListPlannableLocationsResponse expectedResponse = new ListPlannableLocationsResponse(); + mockGrpcClient.Setup(x => x.ListPlannableLocationsAsync(request, It.IsAny())) + .Returns(new Grpc.Core.AsyncUnaryCall(Task.FromResult(expectedResponse), null, null, null, null)); + ReachPlanServiceClient client = new ReachPlanServiceClientImpl(mockGrpcClient.Object, null); + ListPlannableLocationsResponse response = await client.ListPlannableLocationsAsync(request); + Assert.AreEqual(expectedResponse, response); + mockGrpcClient.VerifyAll(); + } + + [Test] + public void ListPlannableProducts() + { + Mock mockGrpcClient = new Mock(MockBehavior.Strict); + string plannableLocationId = "1"; + ListPlannableProductsRequest expectedRequest = new ListPlannableProductsRequest + { + PlannableLocationId = plannableLocationId, + }; + ListPlannableProductsResponse expectedResponse = new ListPlannableProductsResponse(); + mockGrpcClient.Setup(x => x.ListPlannableProducts(expectedRequest, It.IsAny())) + .Returns(expectedResponse); + ReachPlanServiceClient client = new ReachPlanServiceClientImpl(mockGrpcClient.Object, null); + ListPlannableProductsResponse response = client.ListPlannableProducts(plannableLocationId); + Assert.AreEqual(expectedResponse, response); + mockGrpcClient.VerifyAll(); + } + + [Test] + public async Task ListPlannableProductsAsync() + { + Mock mockGrpcClient = new Mock(MockBehavior.Strict); + string plannableLocationId = "1"; + ListPlannableProductsRequest expectedRequest = new ListPlannableProductsRequest + { + PlannableLocationId = plannableLocationId, + }; + ListPlannableProductsResponse expectedResponse = new ListPlannableProductsResponse(); + mockGrpcClient.Setup(x => x.ListPlannableProductsAsync(expectedRequest, It.IsAny())) + .Returns(new Grpc.Core.AsyncUnaryCall(Task.FromResult(expectedResponse), null, null, null, null)); + ReachPlanServiceClient client = new ReachPlanServiceClientImpl(mockGrpcClient.Object, null); + ListPlannableProductsResponse response = await client.ListPlannableProductsAsync(plannableLocationId); + Assert.AreEqual(expectedResponse, response); + mockGrpcClient.VerifyAll(); + } + + [Test] + public void ListPlannableProducts2() + { + Mock mockGrpcClient = new Mock(MockBehavior.Strict); + ListPlannableProductsRequest request = new ListPlannableProductsRequest + { + PlannableLocationId = null, + }; + ListPlannableProductsResponse expectedResponse = new ListPlannableProductsResponse(); + mockGrpcClient.Setup(x => x.ListPlannableProducts(request, It.IsAny())) + .Returns(expectedResponse); + ReachPlanServiceClient client = new ReachPlanServiceClientImpl(mockGrpcClient.Object, null); + ListPlannableProductsResponse response = client.ListPlannableProducts(request); + Assert.AreEqual(expectedResponse, response); + mockGrpcClient.VerifyAll(); + } + + [Test] + public async Task ListPlannableProductsAsync2() + { + Mock mockGrpcClient = new Mock(MockBehavior.Strict); + ListPlannableProductsRequest request = new ListPlannableProductsRequest + { + PlannableLocationId = null, + }; + ListPlannableProductsResponse expectedResponse = new ListPlannableProductsResponse(); + mockGrpcClient.Setup(x => x.ListPlannableProductsAsync(request, It.IsAny())) + .Returns(new Grpc.Core.AsyncUnaryCall(Task.FromResult(expectedResponse), null, null, null, null)); + ReachPlanServiceClient client = new ReachPlanServiceClientImpl(mockGrpcClient.Object, null); + ListPlannableProductsResponse response = await client.ListPlannableProductsAsync(request); + Assert.AreEqual(expectedResponse, response); + mockGrpcClient.VerifyAll(); + } + + [Test] + public void GenerateProductMixIdeas() + { + Mock mockGrpcClient = new Mock(MockBehavior.Strict); + GenerateProductMixIdeasRequest request = new GenerateProductMixIdeasRequest + { + CustomerId = "customerId-1772061412", + PlannableLocationId = null, + CurrencyCode = null, + BudgetMicros = null, + Preferences = new Preferences(), + }; + GenerateProductMixIdeasResponse expectedResponse = new GenerateProductMixIdeasResponse(); + mockGrpcClient.Setup(x => x.GenerateProductMixIdeas(request, It.IsAny())) + .Returns(expectedResponse); + ReachPlanServiceClient client = new ReachPlanServiceClientImpl(mockGrpcClient.Object, null); + GenerateProductMixIdeasResponse response = client.GenerateProductMixIdeas(request); + Assert.AreEqual(expectedResponse, response); + mockGrpcClient.VerifyAll(); + } + + [Test] + public async Task GenerateProductMixIdeasAsync() + { + Mock mockGrpcClient = new Mock(MockBehavior.Strict); + GenerateProductMixIdeasRequest request = new GenerateProductMixIdeasRequest + { + CustomerId = "customerId-1772061412", + PlannableLocationId = null, + CurrencyCode = null, + BudgetMicros = null, + Preferences = new Preferences(), + }; + GenerateProductMixIdeasResponse expectedResponse = new GenerateProductMixIdeasResponse(); + mockGrpcClient.Setup(x => x.GenerateProductMixIdeasAsync(request, It.IsAny())) + .Returns(new Grpc.Core.AsyncUnaryCall(Task.FromResult(expectedResponse), null, null, null, null)); + ReachPlanServiceClient client = new ReachPlanServiceClientImpl(mockGrpcClient.Object, null); + GenerateProductMixIdeasResponse response = await client.GenerateProductMixIdeasAsync(request); + Assert.AreEqual(expectedResponse, response); + mockGrpcClient.VerifyAll(); + } + + [Test] + public void GenerateReachForecast() + { + Mock mockGrpcClient = new Mock(MockBehavior.Strict); + GenerateReachForecastRequest request = new GenerateReachForecastRequest + { + CustomerId = "customerId-1772061412", + CurrencyCode = null, + CampaignDuration = new CampaignDuration(), + CookieFrequencyCap = null, + MinEffectiveFrequency = null, + Targeting = new Targeting(), + PlannedProducts = { }, + }; + GenerateReachForecastResponse expectedResponse = new GenerateReachForecastResponse(); + mockGrpcClient.Setup(x => x.GenerateReachForecast(request, It.IsAny())) + .Returns(expectedResponse); + ReachPlanServiceClient client = new ReachPlanServiceClientImpl(mockGrpcClient.Object, null); + GenerateReachForecastResponse response = client.GenerateReachForecast(request); + Assert.AreEqual(expectedResponse, response); + mockGrpcClient.VerifyAll(); + } + + [Test] + public async Task GenerateReachForecastAsync() + { + Mock mockGrpcClient = new Mock(MockBehavior.Strict); + GenerateReachForecastRequest request = new GenerateReachForecastRequest + { + CustomerId = "customerId-1772061412", + CurrencyCode = null, + CampaignDuration = new CampaignDuration(), + CookieFrequencyCap = null, + MinEffectiveFrequency = null, + Targeting = new Targeting(), + PlannedProducts = { }, + }; + GenerateReachForecastResponse expectedResponse = new GenerateReachForecastResponse(); + mockGrpcClient.Setup(x => x.GenerateReachForecastAsync(request, It.IsAny())) + .Returns(new Grpc.Core.AsyncUnaryCall(Task.FromResult(expectedResponse), null, null, null, null)); + ReachPlanServiceClient client = new ReachPlanServiceClientImpl(mockGrpcClient.Object, null); + GenerateReachForecastResponse response = await client.GenerateReachForecastAsync(request); + Assert.AreEqual(expectedResponse, response); + mockGrpcClient.VerifyAll(); + } + + } +}