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