From fe5b4111f9bd66079d17642cf5433415ba80e2e4 Mon Sep 17 00:00:00 2001 From: Amanda Tarafa Mas Date: Mon, 20 Apr 2026 08:05:20 +0000 Subject: [PATCH 01/40] feat: Generate Google.Apis.Aiplatform.v1 version 1.73.0.4121 --- DiscoveryJson/aiplatform.v1.json | 56 +++++++++++++++-- .../Google.Apis.Aiplatform.v1.cs | 60 ++++++++++++++++++- .../Google.Apis.Aiplatform.v1.csproj | 2 +- 3 files changed, 110 insertions(+), 8 deletions(-) diff --git a/DiscoveryJson/aiplatform.v1.json b/DiscoveryJson/aiplatform.v1.json index 12b68c8da52..a680fd6aa24 100644 --- a/DiscoveryJson/aiplatform.v1.json +++ b/DiscoveryJson/aiplatform.v1.json @@ -31925,7 +31925,7 @@ } } }, - "revision": "20260410", + "revision": "20260414", "rootUrl": "https://aiplatform.googleapis.com/", "schemas": { "CloudAiLargeModelsVisionGenerateVideoExperiments": { @@ -31956,6 +31956,10 @@ "$ref": "CloudAiLargeModelsVisionPromptInputs", "description": "Prompt chunks for \"ProModel\" prompting. If set, the prompt will not be rewritten, and top-level prompt ignored." }, + "requestOriginTag": { + "description": "Optional tag for tracking the source of this request. Allowed values: \"colab\", \"comfyui\", \"curl\", \"flowresearch\", \"vertexstudio\". Unrecognized tags are recorded as \"unknown\" in metrics. Tags do not affect video generation behavior. Up to 16 characters, ASCII alphanumeric, hyphens, and underscores only.", + "type": "string" + }, "videoTransformMaskGcsUri": { "description": "GCS URI of the grayscale video mask for Differential Diffusion. Maps to sdedit_video_tmax_scale_map ", "type": "string" @@ -32064,10 +32068,12 @@ "id": "CloudAiLargeModelsVisionHumanPose", "properties": { "bodyLandmarksGcsUri": { + "deprecated": true, "description": "GCS URI of the human pose video to condition video generation.", "type": "string" }, "faceLandmarksGcsUri": { + "deprecated": true, "description": "GCS URI of the face landmarks video to condition video generation.", "type": "string" }, @@ -43115,13 +43121,15 @@ "MODALITY_UNSPECIFIED", "TEXT", "IMAGE", - "AUDIO" + "AUDIO", + "VIDEO" ], "enumDescriptions": [ "Unspecified modality. Will be processed as text.", "Text modality.", "Image modality.", - "Audio modality." + "Audio modality.", + "Video modality." ], "type": "string" }, @@ -47103,7 +47111,8 @@ }, "dataLabelingDataset": { "$ref": "GoogleCloudAiplatformV1MigratableResourceDataLabelingDataset", - "description": "Output only. Represents one Dataset in datalabeling.googleapis.com.", + "deprecated": true, + "description": "Output only. Deprecated: Data Labeling Dataset migration is no longer supported. Represents one Dataset in datalabeling.googleapis.com.", "readOnly": true }, "lastMigrateTime": { @@ -53850,7 +53859,7 @@ "type": "integer" }, "minInstances": { - "description": "Optional. The minimum number of application instances that will be kept running at all times. Defaults to 1. Range: [0, 10].", + "description": "Optional. The minimum number of application instances that will be kept running at all times. Defaults to 1. Range: [0, 75].", "format": "int32", "type": "integer" }, @@ -55180,10 +55189,27 @@ "format": "google-datetime", "type": "string" }, + "latestSandboxEnvironmentSnapshot": { + "description": "Output only. The resource name of the latest snapshot taken for this SandboxEnvironment.", + "readOnly": true, + "type": "string" + }, "name": { "description": "Identifier. The name of the SandboxEnvironment.", "type": "string" }, + "owner": { + "description": "Optional. Owner information for this sandbox environment. A Sandbox can only be restored from a snapshot that belongs to the same owner. If not set, sandbox will be created as the default owner.", + "type": "string" + }, + "sandboxEnvironmentSnapshot": { + "description": "Optional. The resource name of the SandboxEnvironmentSnapshot to use for creating this SandboxEnvironment. Format: `projects/{project}/locations/{location}/reasoningEngines/{reasoning_engine}/sandboxEnvironmentSnapshots/{sandbox_environment_snapshot}`", + "type": "string" + }, + "sandboxEnvironmentTemplate": { + "description": "Optional. The name of the SandboxEnvironmentTemplate specified in the parent Agent Engine resource that this SandboxEnvironment is created from. Only one of `sandbox_environment_template` and `spec` should be set.", + "type": "string" + }, "spec": { "$ref": "GoogleCloudAiplatformV1SandboxEnvironmentSpec", "description": "Optional. The configuration of the SandboxEnvironment." @@ -55237,6 +55263,11 @@ "readOnly": true, "type": "string" }, + "routingToken": { + "description": "Output only. The routing token for the SandboxEnvironment.", + "readOnly": true, + "type": "string" + }, "sandboxHostname": { "description": "Output only. The hostname of the SandboxEnvironment.", "readOnly": true, @@ -55386,6 +55417,10 @@ "description": "Required. The display name of the SandboxEnvironmentTemplate.", "type": "string" }, + "egressControlConfig": { + "$ref": "GoogleCloudAiplatformV1SandboxEnvironmentTemplateEgressControlConfig", + "description": "Optional. The configuration for egress control of this template." + }, "name": { "description": "Identifier. The resource name of the SandboxEnvironmentTemplate. Format: `projects/{project}/locations/{location}/reasoningEngines/{reasoning_engine}/sandboxEnvironmentTemplates/{sandbox_environment_template}`", "type": "string" @@ -55476,6 +55511,17 @@ }, "type": "object" }, + "GoogleCloudAiplatformV1SandboxEnvironmentTemplateEgressControlConfig": { + "description": "Configuration for egress control of sandbox instances.", + "id": "GoogleCloudAiplatformV1SandboxEnvironmentTemplateEgressControlConfig", + "properties": { + "internetAccess": { + "description": "Optional. Whether to allow internet access.", + "type": "boolean" + } + }, + "type": "object" + }, "GoogleCloudAiplatformV1SandboxEnvironmentTemplateNetworkPort": { "description": "Represents a network port in a container.", "id": "GoogleCloudAiplatformV1SandboxEnvironmentTemplateNetworkPort", diff --git a/Src/Generated/Google.Apis.Aiplatform.v1/Google.Apis.Aiplatform.v1.cs b/Src/Generated/Google.Apis.Aiplatform.v1/Google.Apis.Aiplatform.v1.cs index 3927e8fc290..a3f8436a13e 100644 --- a/Src/Generated/Google.Apis.Aiplatform.v1/Google.Apis.Aiplatform.v1.cs +++ b/Src/Generated/Google.Apis.Aiplatform.v1/Google.Apis.Aiplatform.v1.cs @@ -73869,6 +73869,14 @@ public class CloudAiLargeModelsVisionGenerateVideoExperiments : Google.Apis.Requ [Newtonsoft.Json.JsonPropertyAttribute("promptInputs")] public virtual CloudAiLargeModelsVisionPromptInputs PromptInputs { get; set; } + /// + /// Optional tag for tracking the source of this request. Allowed values: "colab", "comfyui", "curl", + /// "flowresearch", "vertexstudio". Unrecognized tags are recorded as "unknown" in metrics. Tags do not affect + /// video generation behavior. Up to 16 characters, ASCII alphanumeric, hyphens, and underscores only. + /// + [Newtonsoft.Json.JsonPropertyAttribute("requestOriginTag")] + public virtual string RequestOriginTag { get; set; } + /// /// GCS URI of the grayscale video mask for Differential Diffusion. Maps to sdedit_video_tmax_scale_map /// @@ -92623,7 +92631,10 @@ public class GoogleCloudAiplatformV1MigratableResource : Google.Apis.Requests.ID [Newtonsoft.Json.JsonPropertyAttribute("automlModel")] public virtual GoogleCloudAiplatformV1MigratableResourceAutomlModel AutomlModel { get; set; } - /// Output only. Represents one Dataset in datalabeling.googleapis.com. + /// + /// Output only. Deprecated: Data Labeling Dataset migration is no longer supported. Represents one Dataset in + /// datalabeling.googleapis.com. + /// [Newtonsoft.Json.JsonPropertyAttribute("dataLabelingDataset")] public virtual GoogleCloudAiplatformV1MigratableResourceDataLabelingDataset DataLabelingDataset { get; set; } @@ -100919,7 +100930,7 @@ public class GoogleCloudAiplatformV1ReasoningEngineSpecDeploymentSpec : Google.A /// /// Optional. The minimum number of application instances that will be kept running at all times. Defaults to 1. - /// Range: [0, 10]. + /// Range: [0, 75]. /// [Newtonsoft.Json.JsonPropertyAttribute("minInstances")] public virtual System.Nullable MinInstances { get; set; } @@ -102256,10 +102267,36 @@ public virtual System.DateTimeOffset? ExpireTimeDateTimeOffset set => ExpireTimeRaw = Google.Apis.Util.DiscoveryFormat.FormatDateTimeOffsetToGoogleDateTime(value); } + /// Output only. The resource name of the latest snapshot taken for this SandboxEnvironment. + [Newtonsoft.Json.JsonPropertyAttribute("latestSandboxEnvironmentSnapshot")] + public virtual string LatestSandboxEnvironmentSnapshot { get; set; } + /// Identifier. The name of the SandboxEnvironment. [Newtonsoft.Json.JsonPropertyAttribute("name")] public virtual string Name { get; set; } + /// + /// Optional. Owner information for this sandbox environment. A Sandbox can only be restored from a snapshot + /// that belongs to the same owner. If not set, sandbox will be created as the default owner. + /// + [Newtonsoft.Json.JsonPropertyAttribute("owner")] + public virtual string Owner { get; set; } + + /// + /// Optional. The resource name of the SandboxEnvironmentSnapshot to use for creating this SandboxEnvironment. + /// Format: + /// `projects/{project}/locations/{location}/reasoningEngines/{reasoning_engine}/sandboxEnvironmentSnapshots/{sandbox_environment_snapshot}` + /// + [Newtonsoft.Json.JsonPropertyAttribute("sandboxEnvironmentSnapshot")] + public virtual string SandboxEnvironmentSnapshot { get; set; } + + /// + /// Optional. The name of the SandboxEnvironmentTemplate specified in the parent Agent Engine resource that this + /// SandboxEnvironment is created from. Only one of `sandbox_environment_template` and `spec` should be set. + /// + [Newtonsoft.Json.JsonPropertyAttribute("sandboxEnvironmentTemplate")] + public virtual string SandboxEnvironmentTemplate { get; set; } + /// Optional. The configuration of the SandboxEnvironment. [Newtonsoft.Json.JsonPropertyAttribute("spec")] public virtual GoogleCloudAiplatformV1SandboxEnvironmentSpec Spec { get; set; } @@ -102326,6 +102363,10 @@ public class GoogleCloudAiplatformV1SandboxEnvironmentConnectionInfo : Google.Ap [Newtonsoft.Json.JsonPropertyAttribute("loadBalancerIp")] public virtual string LoadBalancerIp { get; set; } + /// Output only. The routing token for the SandboxEnvironment. + [Newtonsoft.Json.JsonPropertyAttribute("routingToken")] + public virtual string RoutingToken { get; set; } + /// Output only. The hostname of the SandboxEnvironment. [Newtonsoft.Json.JsonPropertyAttribute("sandboxHostname")] public virtual string SandboxHostname { get; set; } @@ -102590,6 +102631,10 @@ public virtual System.DateTimeOffset? CreateTimeDateTimeOffset [Newtonsoft.Json.JsonPropertyAttribute("displayName")] public virtual string DisplayName { get; set; } + /// Optional. The configuration for egress control of this template. + [Newtonsoft.Json.JsonPropertyAttribute("egressControlConfig")] + public virtual GoogleCloudAiplatformV1SandboxEnvironmentTemplateEgressControlConfig EgressControlConfig { get; set; } + /// /// Identifier. The resource name of the SandboxEnvironmentTemplate. Format: /// `projects/{project}/locations/{location}/reasoningEngines/{reasoning_engine}/sandboxEnvironmentTemplates/{sandbox_environment_template}` @@ -102693,6 +102738,17 @@ public class GoogleCloudAiplatformV1SandboxEnvironmentTemplateDefaultContainerEn public virtual string ETag { get; set; } } + /// Configuration for egress control of sandbox instances. + public class GoogleCloudAiplatformV1SandboxEnvironmentTemplateEgressControlConfig : Google.Apis.Requests.IDirectResponseSchema + { + /// Optional. Whether to allow internet access. + [Newtonsoft.Json.JsonPropertyAttribute("internetAccess")] + public virtual System.Nullable InternetAccess { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + /// Represents a network port in a container. public class GoogleCloudAiplatformV1SandboxEnvironmentTemplateNetworkPort : Google.Apis.Requests.IDirectResponseSchema { diff --git a/Src/Generated/Google.Apis.Aiplatform.v1/Google.Apis.Aiplatform.v1.csproj b/Src/Generated/Google.Apis.Aiplatform.v1/Google.Apis.Aiplatform.v1.csproj index 6830500ed6e..f94d5fd1a45 100644 --- a/Src/Generated/Google.Apis.Aiplatform.v1/Google.Apis.Aiplatform.v1.csproj +++ b/Src/Generated/Google.Apis.Aiplatform.v1/Google.Apis.Aiplatform.v1.csproj @@ -3,7 +3,7 @@ Google.Apis.Aiplatform.v1 Client Library - 1.73.0.4117 + 1.73.0.4121 Google LLC Copyright 2026 Google LLC Google From bbaea21803c5b0392a40537afd3a5aed5e02e1f4 Mon Sep 17 00:00:00 2001 From: Amanda Tarafa Mas Date: Mon, 20 Apr 2026 08:05:22 +0000 Subject: [PATCH 02/40] feat: Generate Google.Apis.AndroidPublisher.v3 version 1.73.0.4123 --- DiscoveryJson/androidpublisher.v3.json | 4 ++-- .../Google.Apis.AndroidPublisher.v3.cs | 2 +- .../Google.Apis.AndroidPublisher.v3.csproj | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/DiscoveryJson/androidpublisher.v3.json b/DiscoveryJson/androidpublisher.v3.json index b602d13304b..50122f84261 100644 --- a/DiscoveryJson/androidpublisher.v3.json +++ b/DiscoveryJson/androidpublisher.v3.json @@ -5637,7 +5637,7 @@ } } }, - "revision": "20260318", + "revision": "20260416", "rootUrl": "https://androidpublisher.googleapis.com/", "schemas": { "Abi": { @@ -11716,7 +11716,7 @@ "type": "array" }, "description": { - "description": "The description of this subscription in the language of this listing. Maximum length - 80 characters. Plain text.", + "description": "The description of this subscription in the language of this listing. Maximum length - 200 characters. Plain text.", "type": "string" }, "languageCode": { diff --git a/Src/Generated/Google.Apis.AndroidPublisher.v3/Google.Apis.AndroidPublisher.v3.cs b/Src/Generated/Google.Apis.AndroidPublisher.v3/Google.Apis.AndroidPublisher.v3.cs index b54bb4e43e0..f33f1e0b9c6 100644 --- a/Src/Generated/Google.Apis.AndroidPublisher.v3/Google.Apis.AndroidPublisher.v3.cs +++ b/Src/Generated/Google.Apis.AndroidPublisher.v3/Google.Apis.AndroidPublisher.v3.cs @@ -20584,7 +20584,7 @@ public class SubscriptionListing : Google.Apis.Requests.IDirectResponseSchema public virtual System.Collections.Generic.IList Benefits { get; set; } /// - /// The description of this subscription in the language of this listing. Maximum length - 80 characters. Plain + /// The description of this subscription in the language of this listing. Maximum length - 200 characters. Plain /// text. /// [Newtonsoft.Json.JsonPropertyAttribute("description")] diff --git a/Src/Generated/Google.Apis.AndroidPublisher.v3/Google.Apis.AndroidPublisher.v3.csproj b/Src/Generated/Google.Apis.AndroidPublisher.v3/Google.Apis.AndroidPublisher.v3.csproj index bd58215f3f9..a5094deebf3 100644 --- a/Src/Generated/Google.Apis.AndroidPublisher.v3/Google.Apis.AndroidPublisher.v3.csproj +++ b/Src/Generated/Google.Apis.AndroidPublisher.v3/Google.Apis.AndroidPublisher.v3.csproj @@ -3,7 +3,7 @@ Google.Apis.AndroidPublisher.v3 Client Library - 1.73.0.4094 + 1.73.0.4123 Google LLC Copyright 2026 Google LLC Google From 902c0ccd1fd3651c1aa65727c35f88a6c2b27d55 Mon Sep 17 00:00:00 2001 From: Amanda Tarafa Mas Date: Mon, 20 Apr 2026 08:05:25 +0000 Subject: [PATCH 03/40] feat: Generate Google.Apis.BigQueryReservation.v1 version 1.73.0.4117 --- DiscoveryJson/bigqueryreservation.v1.json | 6 +++--- .../Google.Apis.BigQueryReservation.v1.cs | 3 ++- .../Google.Apis.BigQueryReservation.v1.csproj | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/DiscoveryJson/bigqueryreservation.v1.json b/DiscoveryJson/bigqueryreservation.v1.json index 2f026ab401e..de3e7990571 100644 --- a/DiscoveryJson/bigqueryreservation.v1.json +++ b/DiscoveryJson/bigqueryreservation.v1.json @@ -1282,7 +1282,7 @@ } } }, - "revision": "20260305", + "revision": "20260410", "rootUrl": "https://bigqueryreservation.googleapis.com/", "schemas": { "Assignment": { @@ -1330,7 +1330,7 @@ "type": "string" }, "principal": { - "description": "Optional. Represents the principal for this assignment. If not empty, jobs run by this principal will utilize the associated reservation. Otherwise, jobs will fall back to using the reservation assigned to the project, folder, or organization (in that order). If no reservation is assigned at any of these levels, on-demand capacity will be used. The supported formats are: * `principal://goog/subject/USER_EMAIL_ADDRESS` for users, * `principal://iam.googleapis.com/projects/-/serviceAccounts/SA_EMAIL_ADDRESS` for service accounts, * `principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/SUBJECT_ID` for workload identity pool identities.", + "description": "Optional. Represents the principal for this assignment. If not empty, jobs run by this principal will utilize the associated reservation. Otherwise, jobs will fall back to using the reservation assigned to the project, folder, or organization (in that order). If no reservation is assigned at any of these levels, on-demand capacity will be used. The supported formats are: * `principal://goog/subject/USER_EMAIL_ADDRESS` for users, * `principal://iam.googleapis.com/projects/-/serviceAccounts/SA_EMAIL_ADDRESS` for service accounts, * `principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/SUBJECT_ID` for workload identity pool identities. * The special value `unknown_or_deleted_user` represents principals which cannot be read from the user info service, for example deleted users.", "type": "string" }, "schedulingPolicy": { @@ -1935,7 +1935,7 @@ "enumDescriptions": [ "Default value of ScalingMode.", "The reservation will scale up only using slots from autoscaling. It will not use any idle slots even if there may be some available. The upper limit that autoscaling can scale up to will be max_slots - baseline. For example, if max_slots is 1000, baseline is 200 and customer sets ScalingMode to AUTOSCALE_ONLY, then autoscalerg will scale up to 800 slots and no idle slots will be used. Please note, in this mode, the ignore_idle_slots field must be set to true. Otherwise the request will be rejected with error code `google.rpc.Code.INVALID_ARGUMENT`.", - "The reservation will scale up using only idle slots contributed by other reservations or from unassigned commitments. If no idle slots are available it will not scale up further. If the idle slots which it is using are reclaimed by the contributing reservation(s) it may be forced to scale down. The max idle slots the reservation can be max_slots - baseline capacity. For example, if max_slots is 1000, baseline is 200 and customer sets ScalingMode to IDLE_SLOTS_ONLY, 1. if there are 1000 idle slots available in other reservations, the reservation will scale up to 1000 slots with 200 baseline and 800 idle slots. 2. if there are 500 idle slots available in other reservations, the reservation will scale up to 700 slots with 200 baseline and 300 idle slots. Please note, in this mode, the reservation might not be able to scale up to max_slots. Please note, in this mode, the ignore_idle_slots field must be set to false. Otherwise the request will be rejected with error code `google.rpc.Code.INVALID_ARGUMENT`.", + "The reservation will scale up using only idle slots contributed by other reservations or from unassigned commitments. If no idle slots are available it will not scale up further. If the idle slots which it is using are reclaimed by the contributing reservation(s) it may be forced to scale down. The max idle slots the reservation can be max_slots - baseline capacity. For example, if max_slots is 1000, baseline is 200 and customer sets ScalingMode to IDLE_SLOTS_ONLY, 1. if there are 1000 idle slots available in other reservations, the reservation will scale up to 1000 slots with 200 baseline and 800 idle slots. 2. if there are 500 idle slots available in other reservations, the reservation will scale up to 700 slots with 200 baseline and 500 idle slots. Please note, in this mode, the reservation might not be able to scale up to max_slots. Please note, in this mode, the ignore_idle_slots field must be set to false. Otherwise the request will be rejected with error code `google.rpc.Code.INVALID_ARGUMENT`.", "The reservation will scale up using all slots available to it. It will use idle slots contributed by other reservations or from unassigned commitments first. If no idle slots are available it will scale up using autoscaling. For example, if max_slots is 1000, baseline is 200 and customer sets ScalingMode to ALL_SLOTS, 1. if there are 800 idle slots available in other reservations, the reservation will scale up to 1000 slots with 200 baseline and 800 idle slots. 2. if there are 500 idle slots available in other reservations, the reservation will scale up to 1000 slots with 200 baseline, 500 idle slots and 300 autoscaling slots. 3. if there are no idle slots available in other reservations, it will scale up to 1000 slots with 200 baseline and 800 autoscaling slots. Please note, in this mode, the ignore_idle_slots field must be set to false. Otherwise the request will be rejected with error code `google.rpc.Code.INVALID_ARGUMENT`." ], "type": "string" diff --git a/Src/Generated/Google.Apis.BigQueryReservation.v1/Google.Apis.BigQueryReservation.v1.cs b/Src/Generated/Google.Apis.BigQueryReservation.v1/Google.Apis.BigQueryReservation.v1.cs index 55fb3027145..dd6b1a01874 100644 --- a/Src/Generated/Google.Apis.BigQueryReservation.v1/Google.Apis.BigQueryReservation.v1.cs +++ b/Src/Generated/Google.Apis.BigQueryReservation.v1/Google.Apis.BigQueryReservation.v1.cs @@ -2786,7 +2786,8 @@ public class Assignment : Google.Apis.Requests.IDirectResponseSchema /// for users, * `principal://iam.googleapis.com/projects/-/serviceAccounts/SA_EMAIL_ADDRESS` for service /// accounts, * /// `principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/SUBJECT_ID` - /// for workload identity pool identities. + /// for workload identity pool identities. * The special value `unknown_or_deleted_user` represents principals + /// which cannot be read from the user info service, for example deleted users. /// [Newtonsoft.Json.JsonPropertyAttribute("principal")] public virtual string Principal { get; set; } diff --git a/Src/Generated/Google.Apis.BigQueryReservation.v1/Google.Apis.BigQueryReservation.v1.csproj b/Src/Generated/Google.Apis.BigQueryReservation.v1/Google.Apis.BigQueryReservation.v1.csproj index 95502f45b4c..57696ae8b27 100644 --- a/Src/Generated/Google.Apis.BigQueryReservation.v1/Google.Apis.BigQueryReservation.v1.csproj +++ b/Src/Generated/Google.Apis.BigQueryReservation.v1/Google.Apis.BigQueryReservation.v1.csproj @@ -3,7 +3,7 @@ Google.Apis.BigQueryReservation.v1 Client Library - 1.73.0.4081 + 1.73.0.4117 Google LLC Copyright 2026 Google LLC Google From 3e154c397ce07b3b026eb131d39ff8242c141ccf Mon Sep 17 00:00:00 2001 From: Amanda Tarafa Mas Date: Mon, 20 Apr 2026 08:05:27 +0000 Subject: [PATCH 04/40] feat: Generate Google.Apis.BusinessProfilePerformance.v1 version 1.73.0.4122 --- .../businessprofileperformance.v1.json | 8 ++++---- ...ogle.Apis.BusinessProfilePerformance.v1.cs | 19 +++++++++++-------- ....Apis.BusinessProfilePerformance.v1.csproj | 6 +++--- 3 files changed, 18 insertions(+), 15 deletions(-) diff --git a/DiscoveryJson/businessprofileperformance.v1.json b/DiscoveryJson/businessprofileperformance.v1.json index a3cad61acb5..137e2c45d6e 100644 --- a/DiscoveryJson/businessprofileperformance.v1.json +++ b/DiscoveryJson/businessprofileperformance.v1.json @@ -99,7 +99,7 @@ "locations": { "methods": { "fetchMultiDailyMetricsTimeSeries": { - "description": " Returns the values for each date from a given time range and optionally the sub entity type, where applicable, that are associated with the specific daily metrics. Example request: `GET https://businessprofileperformance.googleapis.com/v1/locations/12345:fetchMultiDailyMetricsTimeSeries?dailyMetrics=WEBSITE_CLICKS&dailyMetrics=CALL_CLICKS&daily_range.start_date.year=2022&daily_range.start_date.month=1&daily_range.start_date.day=1&daily_range.end_date.year=2022&daily_range.end_date.month=3&daily_range.end_date.day=31`", + "description": " Returns the values for each date from a given time range that are associated with the specific daily metrics. Note: Only daily data is available. Hourly metrics are not supported. Example request: `GET https://businessprofileperformance.googleapis.com/v1/locations/12345:fetchMultiDailyMetricsTimeSeries?dailyMetrics=WEBSITE_CLICKS&dailyMetrics=CALL_CLICKS&daily_range.start_date.year=2022&daily_range.start_date.month=1&daily_range.start_date.day=1&daily_range.end_date.year=2022&daily_range.end_date.month=3&daily_range.end_date.day=31`", "flatPath": "v1/locations/{locationsId}:fetchMultiDailyMetricsTimeSeries", "httpMethod": "GET", "id": "businessprofileperformance.locations.fetchMultiDailyMetricsTimeSeries", @@ -205,7 +205,7 @@ } }, "getDailyMetricsTimeSeries": { - "description": " Returns the values for each date from a given time range that are associated with the specific daily metric. Example request: `GET https://businessprofileperformance.googleapis.com/v1/locations/12345:getDailyMetricsTimeSeries?dailyMetric=WEBSITE_CLICKS&daily_range.start_date.year=2022&daily_range.start_date.month=1&daily_range.start_date.day=1&daily_range.end_date.year=2022&daily_range.end_date.month=3&daily_range.end_date.day=31`", + "description": " Returns the values for each date from a given time range that are associated with the specific daily metric. Note: Only daily data is available. Hourly metrics are not supported. Example request: `GET https://businessprofileperformance.googleapis.com/v1/locations/12345:getDailyMetricsTimeSeries?dailyMetric=WEBSITE_CLICKS&daily_range.start_date.year=2022&daily_range.start_date.month=1&daily_range.start_date.day=1&daily_range.end_date.year=2022&daily_range.end_date.month=3&daily_range.end_date.day=31`", "flatPath": "v1/locations/{locationsId}:getDailyMetricsTimeSeries", "httpMethod": "GET", "id": "businessprofileperformance.locations.getDailyMetricsTimeSeries", @@ -445,7 +445,7 @@ } } }, - "revision": "20251026", + "revision": "20260415", "rootUrl": "https://businessprofileperformance.googleapis.com/", "schemas": { "DailyMetricTimeSeries": { @@ -510,7 +510,7 @@ "type": "object" }, "DailySubEntityType": { - "description": "Represents all possible subentity types that are associated with DailyMetrics.", + "description": "Represents all possible subentity types that are associated with DailyMetrics. Note: Currently, all metrics are returned as daily aggregates and sub-entity breakdowns are not supported.", "id": "DailySubEntityType", "properties": { "dayOfWeek": { diff --git a/Src/Generated/Google.Apis.BusinessProfilePerformance.v1/Google.Apis.BusinessProfilePerformance.v1.cs b/Src/Generated/Google.Apis.BusinessProfilePerformance.v1/Google.Apis.BusinessProfilePerformance.v1.cs index 2b2a28e4789..1f8b3f454a7 100644 --- a/Src/Generated/Google.Apis.BusinessProfilePerformance.v1/Google.Apis.BusinessProfilePerformance.v1.cs +++ b/Src/Generated/Google.Apis.BusinessProfilePerformance.v1/Google.Apis.BusinessProfilePerformance.v1.cs @@ -1,4 +1,4 @@ -// Copyright 2025 Google LLC +// Copyright 2026 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -486,8 +486,8 @@ protected override void InitParameters() } /// - /// Returns the values for each date from a given time range and optionally the sub entity type, where - /// applicable, that are associated with the specific daily metrics. Example request: `GET + /// Returns the values for each date from a given time range that are associated with the specific daily + /// metrics. Note: Only daily data is available. Hourly metrics are not supported. Example request: `GET /// https://businessprofileperformance.googleapis.com/v1/locations/12345:fetchMultiDailyMetricsTimeSeries?dailyMetrics=WEBSITE_CLICKS&amp;dailyMetrics=CALL_CLICKS&amp;daily_range.start_date.year=2022&amp;daily_range.start_date.month=1&amp;daily_range.start_date.day=1&amp;daily_range.end_date.year=2022&amp;daily_range.end_date.month=3&amp;daily_range.end_date.day=31` /// /// @@ -500,8 +500,8 @@ public virtual FetchMultiDailyMetricsTimeSeriesRequest FetchMultiDailyMetricsTim } /// - /// Returns the values for each date from a given time range and optionally the sub entity type, where - /// applicable, that are associated with the specific daily metrics. Example request: `GET + /// Returns the values for each date from a given time range that are associated with the specific daily + /// metrics. Note: Only daily data is available. Hourly metrics are not supported. Example request: `GET /// https://businessprofileperformance.googleapis.com/v1/locations/12345:fetchMultiDailyMetricsTimeSeries?dailyMetrics=WEBSITE_CLICKS&amp;dailyMetrics=CALL_CLICKS&amp;daily_range.start_date.year=2022&amp;daily_range.start_date.month=1&amp;daily_range.start_date.day=1&amp;daily_range.end_date.year=2022&amp;daily_range.end_date.month=3&amp;daily_range.end_date.day=31` /// public class FetchMultiDailyMetricsTimeSeriesRequest : BusinessProfilePerformanceBaseServiceRequest @@ -719,7 +719,7 @@ protected override void InitParameters() /// /// Returns the values for each date from a given time range that are associated with the specific daily - /// metric. Example request: `GET + /// metric. Note: Only daily data is available. Hourly metrics are not supported. Example request: `GET /// https://businessprofileperformance.googleapis.com/v1/locations/12345:getDailyMetricsTimeSeries?dailyMetric=WEBSITE_CLICKS&amp;daily_range.start_date.year=2022&amp;daily_range.start_date.month=1&amp;daily_range.start_date.day=1&amp;daily_range.end_date.year=2022&amp;daily_range.end_date.month=3&amp;daily_range.end_date.day=31` /// /// @@ -733,7 +733,7 @@ public virtual GetDailyMetricsTimeSeriesRequest GetDailyMetricsTimeSeries(string /// /// Returns the values for each date from a given time range that are associated with the specific daily - /// metric. Example request: `GET + /// metric. Note: Only daily data is available. Hourly metrics are not supported. Example request: `GET /// https://businessprofileperformance.googleapis.com/v1/locations/12345:getDailyMetricsTimeSeries?dailyMetric=WEBSITE_CLICKS&amp;daily_range.start_date.year=2022&amp;daily_range.start_date.month=1&amp;daily_range.start_date.day=1&amp;daily_range.end_date.year=2022&amp;daily_range.end_date.month=3&amp;daily_range.end_date.day=31` /// public class GetDailyMetricsTimeSeriesRequest : BusinessProfilePerformanceBaseServiceRequest @@ -1068,7 +1068,10 @@ public class DailyMetricTimeSeries : Google.Apis.Requests.IDirectResponseSchema public virtual string ETag { get; set; } } - /// Represents all possible subentity types that are associated with DailyMetrics. + /// + /// Represents all possible subentity types that are associated with DailyMetrics. Note: Currently, all metrics are + /// returned as daily aggregates and sub-entity breakdowns are not supported. + /// public class DailySubEntityType : Google.Apis.Requests.IDirectResponseSchema { /// Represents the day of the week. Eg: MONDAY. Currently supported DailyMetrics = NONE. diff --git a/Src/Generated/Google.Apis.BusinessProfilePerformance.v1/Google.Apis.BusinessProfilePerformance.v1.csproj b/Src/Generated/Google.Apis.BusinessProfilePerformance.v1/Google.Apis.BusinessProfilePerformance.v1.csproj index 1c55c794d79..f1e0b2acb23 100644 --- a/Src/Generated/Google.Apis.BusinessProfilePerformance.v1/Google.Apis.BusinessProfilePerformance.v1.csproj +++ b/Src/Generated/Google.Apis.BusinessProfilePerformance.v1/Google.Apis.BusinessProfilePerformance.v1.csproj @@ -3,9 +3,9 @@ Google.Apis.BusinessProfilePerformance.v1 Client Library - 1.72.0.3951 + 1.73.0.4122 Google LLC - Copyright 2025 Google LLC + Copyright 2026 Google LLC Google https://github.com/google/google-api-dotnet-client Apache-2.0 @@ -59,7 +59,7 @@ - + From e12ff742efe7b93fbe33d65a53c29bb5bee4bb67 Mon Sep 17 00:00:00 2001 From: Amanda Tarafa Mas Date: Mon, 20 Apr 2026 08:05:29 +0000 Subject: [PATCH 05/40] feat: Generate Google.Apis.ChromeManagement.v1 version 1.73.0.4124 --- DiscoveryJson/chromemanagement.v1.json | 599 ++++++++++++++- .../Google.Apis.ChromeManagement.v1.cs | 707 ++++++++++++++++++ .../Google.Apis.ChromeManagement.v1.csproj | 2 +- 3 files changed, 1306 insertions(+), 2 deletions(-) diff --git a/DiscoveryJson/chromemanagement.v1.json b/DiscoveryJson/chromemanagement.v1.json index a2499a1d76e..86c11955c0a 100644 --- a/DiscoveryJson/chromemanagement.v1.json +++ b/DiscoveryJson/chromemanagement.v1.json @@ -504,6 +504,122 @@ } } }, + "connectorConfigs": { + "methods": { + "create": { + "description": "Creates a connector config.", + "flatPath": "v1/customers/{customersId}/connectorConfigs", + "httpMethod": "POST", + "id": "chromemanagement.customers.connectorConfigs.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "connectorConfigId": { + "description": "Optional. ID to use for the connector config, which becomes the final component of the connector config's resource name. If provided, the ID must be 1-63 characters long, and contain only lowercase letters, digits, and hyphens. It must start with a letter, and end with a letter or number. If not provided, the connector config will be assigned a random UUID.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Format: customers/{customer}", + "location": "path", + "pattern": "^customers/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/connectorConfigs", + "request": { + "$ref": "GoogleChromeManagementVersionsV1ConnectorConfig" + }, + "response": { + "$ref": "GoogleChromeManagementVersionsV1ConnectorConfig" + } + }, + "delete": { + "description": "Deletes a connector config.", + "flatPath": "v1/customers/{customersId}/connectorConfigs/{connectorConfigsId}", + "httpMethod": "DELETE", + "id": "chromemanagement.customers.connectorConfigs.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "etag": { + "description": "Optional. The etag of the connector config. If an etag is provided and does not match the current etag of the connector config, deletion will be blocked and an ABORTED error will be returned.", + "location": "query", + "type": "string" + }, + "name": { + "description": "Required. Format: customers/{customer}/connectorConfigs/{connector_config}", + "location": "path", + "pattern": "^customers/[^/]+/connectorConfigs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleProtobufEmpty" + } + }, + "get": { + "description": "Gets a connector config with customer ID and config ID.", + "flatPath": "v1/customers/{customersId}/connectorConfigs/{connectorConfigsId}", + "httpMethod": "GET", + "id": "chromemanagement.customers.connectorConfigs.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Format: customers/{customer}/connectorConfigs/{connector_config}", + "location": "path", + "pattern": "^customers/[^/]+/connectorConfigs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleChromeManagementVersionsV1ConnectorConfig" + } + }, + "list": { + "description": "Lists connector configs of a customer.", + "flatPath": "v1/customers/{customersId}/connectorConfigs", + "httpMethod": "GET", + "id": "chromemanagement.customers.connectorConfigs.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Optional. The maximum number of connector configs to return. The default page size is 50 if page_size is unspecified, and the maximum page size allowed is 100. Values above 100 will be capped at 100.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. A page token, received from a previous `ListConnectorConfigs` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListConnectorConfigs` must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Format: customers/{customer}", + "location": "path", + "pattern": "^customers/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/connectorConfigs", + "response": { + "$ref": "GoogleChromeManagementVersionsV1ListConnectorConfigsResponse" + } + } + } + }, "profiles": { "methods": { "delete": { @@ -1786,7 +1902,7 @@ } } }, - "revision": "20260123", + "revision": "20260417", "rootUrl": "https://chromemanagement.googleapis.com/", "schemas": { "GoogleChromeManagementV1AndroidAppInfo": { @@ -1830,6 +1946,14 @@ "readOnly": true, "type": "string" }, + "categoryIds": { + "description": "Output only. The category IDs of the app, which are the same as stored in the Web Store item. It's expected that there is only one category ID.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, "chromeAppInfo": { "$ref": "GoogleChromeManagementV1ChromeAppInfo", "description": "Output only. Chrome Web Store app information.", @@ -6187,6 +6311,190 @@ "properties": {}, "type": "object" }, + "GoogleChromeManagementVersionsV1ConnectorConfig": { + "description": "A representation of a connector config.", + "id": "GoogleChromeManagementVersionsV1ConnectorConfig", + "properties": { + "details": { + "$ref": "GoogleChromeManagementVersionsV1ConnectorConfigDetails", + "description": "Required. The details of the connector config." + }, + "displayName": { + "description": "Required. The display name of the config.", + "type": "string" + }, + "etag": { + "description": "Optional. This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.", + "type": "string" + }, + "name": { + "description": "Identifier. Format: customers/{customer}/connectorConfigs/{connector_config}", + "type": "string" + }, + "status": { + "$ref": "GoogleChromeManagementVersionsV1ConnectorConfigStatus", + "description": "Output only. The status of the connector config.", + "readOnly": true + }, + "type": { + "description": "Required. The type of the connector.", + "enum": [ + "CONNECTOR_TYPE_UNSPECIFIED", + "REPORTING", + "DEVICE_TRUST", + "XDR", + "IDENTITY_BASED_ENROLLMENT", + "CERTIFICATE_AUTHORITY", + "ROOT_STORE" + ], + "enumDescriptions": [ + "Default value. This value is unused.", + "Reporting connector.", + "Device trust connector.", + "XDR connector.", + "Authentication connector.", + "Certificate authority connector. Not yet supported in the API.", + "Root certificate connector." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleChromeManagementVersionsV1ConnectorConfigDetails": { + "description": "The details of the connector config. LINT.IfChange", + "id": "GoogleChromeManagementVersionsV1ConnectorConfigDetails", + "properties": { + "crowdStrikeConfig": { + "$ref": "GoogleChromeManagementVersionsV1CrowdStrikeConfig", + "description": "CrowdStrike connector config." + }, + "crowdStrikeFalconNextGenConfig": { + "$ref": "GoogleChromeManagementVersionsV1CrowdStrikeFalconNextGenConfig", + "description": "CrowdStrike Falcon Next Gen connector config." + }, + "crowdStrikeXdrConfig": { + "$ref": "GoogleChromeManagementVersionsV1CrowdStrikeXdrConfig", + "description": "CrowdStrike XDR connector config." + }, + "deviceTrustConfig": { + "$ref": "GoogleChromeManagementVersionsV1DeviceTrustConfig", + "description": "Device trust connector config." + }, + "googleSecOpsConfig": { + "$ref": "GoogleChromeManagementVersionsV1GoogleSecOpsConfig", + "description": "Google SecOps connector config." + }, + "paloAltoNetworksConfig": { + "$ref": "GoogleChromeManagementVersionsV1PaloAltoNetworksConfig", + "description": "Palo Alto Networks connector config." + }, + "pubSubConfig": { + "$ref": "GoogleChromeManagementVersionsV1PubSubConfig", + "description": "Pub/Sub connector config." + }, + "pubSubXdrConfig": { + "$ref": "GoogleChromeManagementVersionsV1PubSubXdrConfig", + "description": "Pub/Sub XDR connector config." + }, + "splunkConfig": { + "$ref": "GoogleChromeManagementVersionsV1SplunkConfig", + "description": "Splunk connector config." + } + }, + "type": "object" + }, + "GoogleChromeManagementVersionsV1ConnectorConfigStatus": { + "description": "The status of the connector config.", + "id": "GoogleChromeManagementVersionsV1ConnectorConfigStatus", + "properties": { + "failureStartTime": { + "description": "Output only. Field recording time of the earliest failure since the last success event. This field is only set when the state is `DISABLED_BY_FAILURES`.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "state": { + "description": "Output only. The state of the connector config. The connector state is disabled if the connector has not successfully sent an event in the last 24 hours.", + "enum": [ + "CONFIG_STATE_UNKNOWN", + "ENABLED", + "DISABLED_BY_FAILURES" + ], + "enumDescriptions": [ + "Default value.", + "The connector config is enabled.", + "The connector config is transiently disabled due to failures." + ], + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. Field recording time of most recent modification of the status. For ENABLED, this is the time the status was changed to ENABLED. For DISABLED_BY_FAILURES, this is the time of the most recent failed attempt to send an event to this config.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleChromeManagementVersionsV1CrowdStrikeConfig": { + "description": "CrowdStrike connector config.", + "id": "GoogleChromeManagementVersionsV1CrowdStrikeConfig", + "properties": { + "apiKey": { + "description": "Required. Input only. API key to use on the ingestion API.", + "type": "string" + }, + "host": { + "description": "Required. Host to identify the customer specific server to receive the events.", + "type": "string" + }, + "reportingSettings": { + "$ref": "GoogleChromeManagementVersionsV1ReportingSettings", + "description": "Required. The reporting settings for the CrowdStrike config." + } + }, + "type": "object" + }, + "GoogleChromeManagementVersionsV1CrowdStrikeFalconNextGenConfig": { + "description": "CrowdStrike Falcon Next Gen connector config.", + "id": "GoogleChromeManagementVersionsV1CrowdStrikeFalconNextGenConfig", + "properties": { + "apiKey": { + "description": "Required. Input only. API key to use on the ingestion API.", + "type": "string" + }, + "host": { + "description": "Required. Host to identify the customer specific server to receive the events.", + "type": "string" + }, + "reportingSettings": { + "$ref": "GoogleChromeManagementVersionsV1ReportingSettings", + "description": "Required. The reporting settings for the CrowdStrike Falcon Next Gen config." + } + }, + "type": "object" + }, + "GoogleChromeManagementVersionsV1CrowdStrikeXdrConfig": { + "description": "CrowdStrike XDR connector config.", + "id": "GoogleChromeManagementVersionsV1CrowdStrikeXdrConfig", + "properties": { + "apiKey": { + "description": "Required. Input only. API key to use on the ingestion API.", + "type": "string" + }, + "host": { + "description": "Required. Host to identify the customer specific server to receive the events.", + "type": "string" + }, + "xdrSettings": { + "$ref": "GoogleChromeManagementVersionsV1XdrSettings", + "description": "Required. The XDR settings for the CrowdStrike XDR config." + } + }, + "type": "object" + }, "GoogleChromeManagementVersionsV1DeviceInfo": { "description": "Information of a device that runs a Chrome browser profile.", "id": "GoogleChromeManagementVersionsV1DeviceInfo", @@ -6222,6 +6530,69 @@ }, "type": "object" }, + "GoogleChromeManagementVersionsV1DeviceTrustConfig": { + "description": "Device trust config for device trust connectors.", + "id": "GoogleChromeManagementVersionsV1DeviceTrustConfig", + "properties": { + "scope": { + "description": "Required. The scope at which this configuration will be applied. Note that this only applies to Chrome browser, as in ChromeOS it's always applied.", + "enum": [ + "BROWSER_ENFORCEMENT_SCOPE_UNSPECIFIED", + "BROWSERS_ONLY", + "PROFILES_ONLY", + "BROWSERS_AND_PROFILES" + ], + "enumDescriptions": [ + "Default value. This value is unused.", + "Only browsers are enforced.", + "Only profiles are enforced.", + "Both browsers and profiles are enforced." + ], + "type": "string" + }, + "serviceAccounts": { + "description": "Required. A list of email addresses of the service accounts which are allowed to call the Verified Access API with full access.", + "items": { + "type": "string" + }, + "type": "array" + }, + "serviceProvider": { + "description": "Optional. The service provider for the device trust connector.", + "enum": [ + "SERVICE_PROVIDER_UNSPECIFIED", + "UNIVERSAL_DEVICE_TRUST", + "OKTA", + "PING_IDENTITY", + "ONELOGIN", + "DUO", + "ZSCALER", + "OMNISSA", + "JUMPCLOUD" + ], + "enumDescriptions": [ + "Default value.", + "Universal device trust connector.", + "Okta service provider.", + "Ping Identity service provider.", + "OneLogin service provider.", + "Duo service provider.", + "Zscaler service provider.", + "Omnissa service provider.", + "JumpCloud service provider." + ], + "type": "string" + }, + "urlMatchers": { + "description": "Required. List of URLs allowed to be part of the attestation flow to get the set of signals from the machine. URLs must have HTTPS scheme, e.g. \"https://example.com\". Wildcards, *, are allowed. For detailed information on valid URL patterns, please see https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleChromeManagementVersionsV1GenericCaConnection": { "description": "Describes a generic Certificate Authority Connection.", "id": "GoogleChromeManagementVersionsV1GenericCaConnection", @@ -6246,6 +6617,25 @@ }, "type": "object" }, + "GoogleChromeManagementVersionsV1GoogleSecOpsConfig": { + "description": "Google SecOps connector config.", + "id": "GoogleChromeManagementVersionsV1GoogleSecOpsConfig", + "properties": { + "apiKey": { + "description": "Required. Input only. API key to use on the ingestion API.", + "type": "string" + }, + "host": { + "description": "Required. Host of ingestion API endpoint. Allows customer to upload events to servers in specific geographical regions. Existing configs that don't have this setting default to US.", + "type": "string" + }, + "reportingSettings": { + "$ref": "GoogleChromeManagementVersionsV1ReportingSettings", + "description": "Required. The reporting settings for the Google SecOps config." + } + }, + "type": "object" + }, "GoogleChromeManagementVersionsV1ListChromeBrowserProfileCommandsResponse": { "description": "Response to ListChromeBrowserProfileCommands method.", "id": "GoogleChromeManagementVersionsV1ListChromeBrowserProfileCommandsResponse", @@ -6292,6 +6682,29 @@ }, "type": "object" }, + "GoogleChromeManagementVersionsV1ListConnectorConfigsResponse": { + "description": "Response to ListConnectorConfigs method.", + "id": "GoogleChromeManagementVersionsV1ListConnectorConfigsResponse", + "properties": { + "connectorConfigs": { + "description": "The list of connector configs returned.", + "items": { + "$ref": "GoogleChromeManagementVersionsV1ConnectorConfig" + }, + "type": "array" + }, + "nextPageToken": { + "description": "The page token used to retrieve the next page of the listing request. If the token is empty, there are no more pages to retrieve.", + "type": "string" + }, + "totalSize": { + "description": "The total size of the connector configs list.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "GoogleChromeManagementVersionsV1MoveThirdPartyProfileUserRequest": { "description": "Request to MoveThirdPartyProfileUser method.", "id": "GoogleChromeManagementVersionsV1MoveThirdPartyProfileUserRequest", @@ -6315,6 +6728,55 @@ }, "type": "object" }, + "GoogleChromeManagementVersionsV1PaloAltoNetworksConfig": { + "description": "Palo Alto Networks connector config.", + "id": "GoogleChromeManagementVersionsV1PaloAltoNetworksConfig", + "properties": { + "apiKey": { + "description": "Required. Input only. API key to use on the ingestion API.", + "type": "string" + }, + "host": { + "description": "Required. Host to identify the customer specific server to receive the events.", + "type": "string" + }, + "reportingSettings": { + "$ref": "GoogleChromeManagementVersionsV1ReportingSettings", + "description": "Required. The reporting settings for the Palo Alto Networks config." + } + }, + "type": "object" + }, + "GoogleChromeManagementVersionsV1PubSubConfig": { + "description": "Pub/Sub connector config.", + "id": "GoogleChromeManagementVersionsV1PubSubConfig", + "properties": { + "reportingSettings": { + "$ref": "GoogleChromeManagementVersionsV1ReportingSettings", + "description": "Required. The reporting settings for the Pub/Sub config." + }, + "topicFullPath": { + "description": "Required. The full path to the topic to send the event to.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleChromeManagementVersionsV1PubSubXdrConfig": { + "description": "Pub/Sub XDR connector config.", + "id": "GoogleChromeManagementVersionsV1PubSubXdrConfig", + "properties": { + "topicFullPath": { + "description": "Required. The full path to the topic to send the event to.", + "type": "string" + }, + "xdrSettings": { + "$ref": "GoogleChromeManagementVersionsV1XdrSettings", + "description": "Required. The XDR settings for the Pub/Sub XDR config." + } + }, + "type": "object" + }, "GoogleChromeManagementVersionsV1ReportingData": { "description": "Reporting data of a Chrome browser profile.", "id": "GoogleChromeManagementVersionsV1ReportingData", @@ -6563,6 +7025,98 @@ }, "type": "object" }, + "GoogleChromeManagementVersionsV1ReportingSettings": { + "description": "Reporting settings for connector configs.", + "id": "GoogleChromeManagementVersionsV1ReportingSettings", + "properties": { + "enabledDefaultEvents": { + "description": "Optional. The list of user and browser events that are enabled for this connector. An empty list disables all default events, and using `ALL_DEFAULT_EVENTS` will enable all default events.", + "items": { + "enum": [ + "DEFAULT_EVENT_UNSPECIFIED", + "ALL_DEFAULT_EVENTS", + "BROWSER_CRASH_EVENT", + "BROWSER_EXTENSION_INSTALL_EVENT", + "CONTENT_TRANSFER_EVENT", + "CONTENT_UNSCANNED_EVENT", + "DATA_ACCESS_CONTROL_EVENT", + "MALWARE_TRANSFER_EVENT", + "PASSWORD_CHANGED_EVENT", + "PASSWORD_REUSE_EVENT", + "SENSITIVE_DATA_TRANSFER_EVENT", + "SUSPICIOUS_URL_EVENT", + "UNSAFE_SITE_VISIT_EVENT", + "URL_FILTERING_INTERSTITIAL_EVENT" + ], + "enumDescriptions": [ + "Default value. This value is unused.", + "All default events.", + "Browser crash event.", + "Browser extension install event.", + "Content transfer event.", + "Content unscanned event.", + "Data access control event.", + "Malware transfer event.", + "Password changed event.", + "Password reuse event.", + "Sensitive data transfer event.", + "Suspicious URL event.", + "Unsafe site visit event.", + "URL filtering interstitial event." + ], + "type": "string" + }, + "type": "array" + }, + "enabledDeviceEvents": { + "description": "Optional. The list of device events that are enabled for this config. An empty list disables all device events, and using `ALL_DEVICE_EVENTS` will enable all device events.", + "items": { + "enum": [ + "DEVICE_EVENT_UNSPECIFIED", + "ALL_DEVICE_EVENTS", + "ADD_REMOVE_USER_EVENT", + "LOGIN_LOGOUT_EVENT", + "CRD_EVENT", + "PERIPHERAL_EVENT" + ], + "enumDescriptions": [ + "Default value. This value is unused.", + "All device events.", + "Add/remove user event.", + "Login/logout event.", + "CRD event.", + "Peripheral event." + ], + "type": "string" + }, + "type": "array" + }, + "enabledOptInEvents": { + "description": "Optional. The list of opt-in events that are enabled for this config. An empty list disables all opt-in events, and using `ALL_OPT_IN_EVENTS` will enable all opt-in events.", + "items": { + "enum": [ + "OPT_IN_EVENT_UNSPECIFIED", + "ALL_OPT_IN_EVENTS", + "LOGIN_EVENT", + "PASSWORD_BREACH_EVENT", + "URL_NAVIGATION_EVENT", + "EXTENSION_TELEMETRY_EVENT" + ], + "enumDescriptions": [ + "Default value. This value is unused.", + "All opt-in events.", + "Login event.", + "Password breach event.", + "URL navigation event.", + "Extension telemetry event." + ], + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleChromeManagementVersionsV1ScepCaConnection": { "description": "Describes a SCEP Certificate Authority Connection.", "id": "GoogleChromeManagementVersionsV1ScepCaConnection", @@ -6714,6 +7268,38 @@ }, "type": "object" }, + "GoogleChromeManagementVersionsV1SplunkConfig": { + "description": "Splunk connector config.", + "id": "GoogleChromeManagementVersionsV1SplunkConfig", + "properties": { + "hecToken": { + "description": "Required. Input only. The data input's HTTP Event Collector token to use as an Authorization header.", + "type": "string" + }, + "host": { + "description": "Required. Host to identify the customer specific server to receive the events.", + "type": "string" + }, + "portNumber": { + "description": "Optional. The port number to use. If not set, the default Splunk port is used.", + "format": "int32", + "type": "integer" + }, + "reportingSettings": { + "$ref": "GoogleChromeManagementVersionsV1ReportingSettings", + "description": "Required. The reporting settings for the Splunk config." + }, + "source": { + "description": "Optional. Optional source name to override the default one set in the Splunk admin console.", + "type": "string" + }, + "unsecureScheme": { + "description": "Optional. Whether to use an unsecure HTTP scheme. Defaults to false (HTTPS).", + "type": "boolean" + } + }, + "type": "object" + }, "GoogleChromeManagementVersionsV1SubjectAltName": { "description": "Describes a subject alternative name.", "id": "GoogleChromeManagementVersionsV1SubjectAltName", @@ -6778,6 +7364,17 @@ "properties": {}, "type": "object" }, + "GoogleChromeManagementVersionsV1XdrSettings": { + "description": "XDR settings for connector configs.", + "id": "GoogleChromeManagementVersionsV1XdrSettings", + "properties": { + "enableAllXdrEvents": { + "description": "Required. Whether to enable all XDR events.", + "type": "boolean" + } + }, + "type": "object" + }, "GoogleLongrunningCancelOperationRequest": { "description": "The request message for Operations.CancelOperation.", "id": "GoogleLongrunningCancelOperationRequest", diff --git a/Src/Generated/Google.Apis.ChromeManagement.v1/Google.Apis.ChromeManagement.v1.cs b/Src/Generated/Google.Apis.ChromeManagement.v1/Google.Apis.ChromeManagement.v1.cs index 60e900e9bb2..c8004b8d66e 100644 --- a/Src/Generated/Google.Apis.ChromeManagement.v1/Google.Apis.ChromeManagement.v1.cs +++ b/Src/Generated/Google.Apis.ChromeManagement.v1/Google.Apis.ChromeManagement.v1.cs @@ -316,6 +316,7 @@ public CustomersResource(Google.Apis.Services.IClientService service) this.service = service; Apps = new AppsResource(service); CertificateProvisioningProcesses = new CertificateProvisioningProcessesResource(service); + ConnectorConfigs = new ConnectorConfigsResource(service); Profiles = new ProfilesResource(service); Reports = new ReportsResource(service); Telemetry = new TelemetryResource(service); @@ -1280,6 +1281,276 @@ protected override void InitParameters() } } + /// Gets the ConnectorConfigs resource. + public virtual ConnectorConfigsResource ConnectorConfigs { get; } + + /// The "connectorConfigs" collection of methods. + public class ConnectorConfigsResource + { + private const string Resource = "connectorConfigs"; + + /// The service which this resource belongs to. + private readonly Google.Apis.Services.IClientService service; + + /// Constructs a new resource. + public ConnectorConfigsResource(Google.Apis.Services.IClientService service) + { + this.service = service; + } + + /// Creates a connector config. + /// The body of the request. + /// Required. Format: customers/{customer} + public virtual CreateRequest Create(Google.Apis.ChromeManagement.v1.Data.GoogleChromeManagementVersionsV1ConnectorConfig body, string parent) + { + return new CreateRequest(this.service, body, parent); + } + + /// Creates a connector config. + public class CreateRequest : ChromeManagementBaseServiceRequest + { + /// Constructs a new Create request. + public CreateRequest(Google.Apis.Services.IClientService service, Google.Apis.ChromeManagement.v1.Data.GoogleChromeManagementVersionsV1ConnectorConfig body, string parent) : base(service) + { + Parent = parent; + Body = body; + InitParameters(); + } + + /// Required. Format: customers/{customer} + [Google.Apis.Util.RequestParameterAttribute("parent", Google.Apis.Util.RequestParameterType.Path)] + public virtual string Parent { get; private set; } + + /// + /// Optional. ID to use for the connector config, which becomes the final component of the connector + /// config's resource name. If provided, the ID must be 1-63 characters long, and contain only lowercase + /// letters, digits, and hyphens. It must start with a letter, and end with a letter or number. If not + /// provided, the connector config will be assigned a random UUID. + /// + [Google.Apis.Util.RequestParameterAttribute("connectorConfigId", Google.Apis.Util.RequestParameterType.Query)] + public virtual string ConnectorConfigId { get; set; } + + /// Gets or sets the body of this request. + Google.Apis.ChromeManagement.v1.Data.GoogleChromeManagementVersionsV1ConnectorConfig Body { get; set; } + + /// Returns the body of the request. + protected override object GetBody() => Body; + + /// Gets the method name. + public override string MethodName => "create"; + + /// Gets the HTTP method. + public override string HttpMethod => "POST"; + + /// Gets the REST path. + public override string RestPath => "v1/{+parent}/connectorConfigs"; + + /// Initializes Create parameter list. + protected override void InitParameters() + { + base.InitParameters(); + RequestParameters.Add("parent", new Google.Apis.Discovery.Parameter + { + Name = "parent", + IsRequired = true, + ParameterType = "path", + DefaultValue = null, + Pattern = @"^customers/[^/]+$", + }); + RequestParameters.Add("connectorConfigId", new Google.Apis.Discovery.Parameter + { + Name = "connectorConfigId", + IsRequired = false, + ParameterType = "query", + DefaultValue = null, + Pattern = null, + }); + } + } + + /// Deletes a connector config. + /// Required. Format: customers/{customer}/connectorConfigs/{connector_config} + public virtual DeleteRequest Delete(string name) + { + return new DeleteRequest(this.service, name); + } + + /// Deletes a connector config. + public class DeleteRequest : ChromeManagementBaseServiceRequest + { + /// Constructs a new Delete request. + public DeleteRequest(Google.Apis.Services.IClientService service, string name) : base(service) + { + Name = name; + InitParameters(); + } + + /// Required. Format: customers/{customer}/connectorConfigs/{connector_config} + [Google.Apis.Util.RequestParameterAttribute("name", Google.Apis.Util.RequestParameterType.Path)] + public virtual string Name { get; private set; } + + /// + /// Optional. The etag of the connector config. If an etag is provided and does not match the current + /// etag of the connector config, deletion will be blocked and an ABORTED error will be returned. + /// + [Google.Apis.Util.RequestParameterAttribute("etag", Google.Apis.Util.RequestParameterType.Query)] + public virtual string Etag { get; set; } + + /// Gets the method name. + public override string MethodName => "delete"; + + /// Gets the HTTP method. + public override string HttpMethod => "DELETE"; + + /// Gets the REST path. + public override string RestPath => "v1/{+name}"; + + /// Initializes Delete parameter list. + protected override void InitParameters() + { + base.InitParameters(); + RequestParameters.Add("name", new Google.Apis.Discovery.Parameter + { + Name = "name", + IsRequired = true, + ParameterType = "path", + DefaultValue = null, + Pattern = @"^customers/[^/]+/connectorConfigs/[^/]+$", + }); + RequestParameters.Add("etag", new Google.Apis.Discovery.Parameter + { + Name = "etag", + IsRequired = false, + ParameterType = "query", + DefaultValue = null, + Pattern = null, + }); + } + } + + /// Gets a connector config with customer ID and config ID. + /// Required. Format: customers/{customer}/connectorConfigs/{connector_config} + public virtual GetRequest Get(string name) + { + return new GetRequest(this.service, name); + } + + /// Gets a connector config with customer ID and config ID. + public class GetRequest : ChromeManagementBaseServiceRequest + { + /// Constructs a new Get request. + public GetRequest(Google.Apis.Services.IClientService service, string name) : base(service) + { + Name = name; + InitParameters(); + } + + /// Required. Format: customers/{customer}/connectorConfigs/{connector_config} + [Google.Apis.Util.RequestParameterAttribute("name", Google.Apis.Util.RequestParameterType.Path)] + public virtual string Name { get; private set; } + + /// Gets the method name. + public override string MethodName => "get"; + + /// Gets the HTTP method. + public override string HttpMethod => "GET"; + + /// Gets the REST path. + public override string RestPath => "v1/{+name}"; + + /// Initializes Get parameter list. + protected override void InitParameters() + { + base.InitParameters(); + RequestParameters.Add("name", new Google.Apis.Discovery.Parameter + { + Name = "name", + IsRequired = true, + ParameterType = "path", + DefaultValue = null, + Pattern = @"^customers/[^/]+/connectorConfigs/[^/]+$", + }); + } + } + + /// Lists connector configs of a customer. + /// Required. Format: customers/{customer} + public virtual ListRequest List(string parent) + { + return new ListRequest(this.service, parent); + } + + /// Lists connector configs of a customer. + public class ListRequest : ChromeManagementBaseServiceRequest + { + /// Constructs a new List request. + public ListRequest(Google.Apis.Services.IClientService service, string parent) : base(service) + { + Parent = parent; + InitParameters(); + } + + /// Required. Format: customers/{customer} + [Google.Apis.Util.RequestParameterAttribute("parent", Google.Apis.Util.RequestParameterType.Path)] + public virtual string Parent { get; private set; } + + /// + /// Optional. The maximum number of connector configs to return. The default page size is 50 if + /// page_size is unspecified, and the maximum page size allowed is 100. Values above 100 will be capped + /// at 100. + /// + [Google.Apis.Util.RequestParameterAttribute("pageSize", Google.Apis.Util.RequestParameterType.Query)] + public virtual System.Nullable PageSize { get; set; } + + /// + /// Optional. A page token, received from a previous `ListConnectorConfigs` call. Provide this to + /// retrieve the subsequent page. When paginating, all other parameters provided to + /// `ListConnectorConfigs` must match the call that provided the page token. + /// + [Google.Apis.Util.RequestParameterAttribute("pageToken", Google.Apis.Util.RequestParameterType.Query)] + public virtual string PageToken { get; set; } + + /// Gets the method name. + public override string MethodName => "list"; + + /// Gets the HTTP method. + public override string HttpMethod => "GET"; + + /// Gets the REST path. + public override string RestPath => "v1/{+parent}/connectorConfigs"; + + /// Initializes List parameter list. + protected override void InitParameters() + { + base.InitParameters(); + RequestParameters.Add("parent", new Google.Apis.Discovery.Parameter + { + Name = "parent", + IsRequired = true, + ParameterType = "path", + DefaultValue = null, + Pattern = @"^customers/[^/]+$", + }); + RequestParameters.Add("pageSize", new Google.Apis.Discovery.Parameter + { + Name = "pageSize", + IsRequired = false, + ParameterType = "query", + DefaultValue = null, + Pattern = null, + }); + RequestParameters.Add("pageToken", new Google.Apis.Discovery.Parameter + { + Name = "pageToken", + IsRequired = false, + ParameterType = "query", + DefaultValue = null, + Pattern = null, + }); + } + } + } + /// Gets the Profiles resource. public virtual ProfilesResource Profiles { get; } @@ -4290,6 +4561,13 @@ public class GoogleChromeManagementV1AppDetails : Google.Apis.Requests.IDirectRe [Newtonsoft.Json.JsonPropertyAttribute("appId")] public virtual string AppId { get; set; } + /// + /// Output only. The category IDs of the app, which are the same as stored in the Web Store item. It's expected + /// that there is only one category ID. + /// + [Newtonsoft.Json.JsonPropertyAttribute("categoryIds")] + public virtual System.Collections.Generic.IList CategoryIds { get; set; } + /// Output only. Chrome Web Store app information. [Newtonsoft.Json.JsonPropertyAttribute("chromeAppInfo")] public virtual GoogleChromeManagementV1ChromeAppInfo ChromeAppInfo { get; set; } @@ -8753,6 +9031,234 @@ public class GoogleChromeManagementVersionsV1ClaimCertificateProvisioningProcess public virtual string ETag { get; set; } } + /// A representation of a connector config. + public class GoogleChromeManagementVersionsV1ConnectorConfig : Google.Apis.Requests.IDirectResponseSchema + { + /// Required. The details of the connector config. + [Newtonsoft.Json.JsonPropertyAttribute("details")] + public virtual GoogleChromeManagementVersionsV1ConnectorConfigDetails Details { get; set; } + + /// Required. The display name of the config. + [Newtonsoft.Json.JsonPropertyAttribute("displayName")] + public virtual string DisplayName { get; set; } + + /// + /// Optional. This checksum is computed by the server based on the value of other fields, and may be sent on + /// update and delete requests to ensure the client has an up-to-date value before proceeding. + /// + [Newtonsoft.Json.JsonPropertyAttribute("etag")] + public virtual string ETag { get; set; } + + /// Identifier. Format: customers/{customer}/connectorConfigs/{connector_config} + [Newtonsoft.Json.JsonPropertyAttribute("name")] + public virtual string Name { get; set; } + + /// Output only. The status of the connector config. + [Newtonsoft.Json.JsonPropertyAttribute("status")] + public virtual GoogleChromeManagementVersionsV1ConnectorConfigStatus Status { get; set; } + + /// Required. The type of the connector. + [Newtonsoft.Json.JsonPropertyAttribute("type")] + public virtual string Type { get; set; } + } + + /// The details of the connector config. LINT.IfChange + public class GoogleChromeManagementVersionsV1ConnectorConfigDetails : Google.Apis.Requests.IDirectResponseSchema + { + /// CrowdStrike connector config. + [Newtonsoft.Json.JsonPropertyAttribute("crowdStrikeConfig")] + public virtual GoogleChromeManagementVersionsV1CrowdStrikeConfig CrowdStrikeConfig { get; set; } + + /// CrowdStrike Falcon Next Gen connector config. + [Newtonsoft.Json.JsonPropertyAttribute("crowdStrikeFalconNextGenConfig")] + public virtual GoogleChromeManagementVersionsV1CrowdStrikeFalconNextGenConfig CrowdStrikeFalconNextGenConfig { get; set; } + + /// CrowdStrike XDR connector config. + [Newtonsoft.Json.JsonPropertyAttribute("crowdStrikeXdrConfig")] + public virtual GoogleChromeManagementVersionsV1CrowdStrikeXdrConfig CrowdStrikeXdrConfig { get; set; } + + /// Device trust connector config. + [Newtonsoft.Json.JsonPropertyAttribute("deviceTrustConfig")] + public virtual GoogleChromeManagementVersionsV1DeviceTrustConfig DeviceTrustConfig { get; set; } + + /// Google SecOps connector config. + [Newtonsoft.Json.JsonPropertyAttribute("googleSecOpsConfig")] + public virtual GoogleChromeManagementVersionsV1GoogleSecOpsConfig GoogleSecOpsConfig { get; set; } + + /// Palo Alto Networks connector config. + [Newtonsoft.Json.JsonPropertyAttribute("paloAltoNetworksConfig")] + public virtual GoogleChromeManagementVersionsV1PaloAltoNetworksConfig PaloAltoNetworksConfig { get; set; } + + /// Pub/Sub connector config. + [Newtonsoft.Json.JsonPropertyAttribute("pubSubConfig")] + public virtual GoogleChromeManagementVersionsV1PubSubConfig PubSubConfig { get; set; } + + /// Pub/Sub XDR connector config. + [Newtonsoft.Json.JsonPropertyAttribute("pubSubXdrConfig")] + public virtual GoogleChromeManagementVersionsV1PubSubXdrConfig PubSubXdrConfig { get; set; } + + /// Splunk connector config. + [Newtonsoft.Json.JsonPropertyAttribute("splunkConfig")] + public virtual GoogleChromeManagementVersionsV1SplunkConfig SplunkConfig { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// The status of the connector config. + public class GoogleChromeManagementVersionsV1ConnectorConfigStatus : Google.Apis.Requests.IDirectResponseSchema + { + private string _failureStartTimeRaw; + + private object _failureStartTime; + + /// + /// Output only. Field recording time of the earliest failure since the last success event. This field is only + /// set when the state is `DISABLED_BY_FAILURES`. + /// + [Newtonsoft.Json.JsonPropertyAttribute("failureStartTime")] + public virtual string FailureStartTimeRaw + { + get => _failureStartTimeRaw; + set + { + _failureStartTime = Google.Apis.Util.Utilities.DeserializeForGoogleFormat(value); + _failureStartTimeRaw = value; + } + } + + /// representation of . + [Newtonsoft.Json.JsonIgnoreAttribute] + [System.ObsoleteAttribute("This property is obsolete and may behave unexpectedly; please use FailureStartTimeDateTimeOffset instead.")] + public virtual object FailureStartTime + { + get => _failureStartTime; + set + { + _failureStartTimeRaw = Google.Apis.Util.Utilities.SerializeForGoogleFormat(value); + _failureStartTime = value; + } + } + + /// + /// representation of . + /// + [Newtonsoft.Json.JsonIgnoreAttribute] + public virtual System.DateTimeOffset? FailureStartTimeDateTimeOffset + { + get => Google.Apis.Util.DiscoveryFormat.ParseGoogleDateTimeToDateTimeOffset(FailureStartTimeRaw); + set => FailureStartTimeRaw = Google.Apis.Util.DiscoveryFormat.FormatDateTimeOffsetToGoogleDateTime(value); + } + + /// + /// Output only. The state of the connector config. The connector state is disabled if the connector has not + /// successfully sent an event in the last 24 hours. + /// + [Newtonsoft.Json.JsonPropertyAttribute("state")] + public virtual string State { get; set; } + + private string _updateTimeRaw; + + private object _updateTime; + + /// + /// Output only. Field recording time of most recent modification of the status. For ENABLED, this is the time + /// the status was changed to ENABLED. For DISABLED_BY_FAILURES, this is the time of the most recent failed + /// attempt to send an event to this config. + /// + [Newtonsoft.Json.JsonPropertyAttribute("updateTime")] + public virtual string UpdateTimeRaw + { + get => _updateTimeRaw; + set + { + _updateTime = Google.Apis.Util.Utilities.DeserializeForGoogleFormat(value); + _updateTimeRaw = value; + } + } + + /// representation of . + [Newtonsoft.Json.JsonIgnoreAttribute] + [System.ObsoleteAttribute("This property is obsolete and may behave unexpectedly; please use UpdateTimeDateTimeOffset instead.")] + public virtual object UpdateTime + { + get => _updateTime; + set + { + _updateTimeRaw = Google.Apis.Util.Utilities.SerializeForGoogleFormat(value); + _updateTime = value; + } + } + + /// representation of . + [Newtonsoft.Json.JsonIgnoreAttribute] + public virtual System.DateTimeOffset? UpdateTimeDateTimeOffset + { + get => Google.Apis.Util.DiscoveryFormat.ParseGoogleDateTimeToDateTimeOffset(UpdateTimeRaw); + set => UpdateTimeRaw = Google.Apis.Util.DiscoveryFormat.FormatDateTimeOffsetToGoogleDateTime(value); + } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// CrowdStrike connector config. + public class GoogleChromeManagementVersionsV1CrowdStrikeConfig : Google.Apis.Requests.IDirectResponseSchema + { + /// Required. Input only. API key to use on the ingestion API. + [Newtonsoft.Json.JsonPropertyAttribute("apiKey")] + public virtual string ApiKey { get; set; } + + /// Required. Host to identify the customer specific server to receive the events. + [Newtonsoft.Json.JsonPropertyAttribute("host")] + public virtual string Host { get; set; } + + /// Required. The reporting settings for the CrowdStrike config. + [Newtonsoft.Json.JsonPropertyAttribute("reportingSettings")] + public virtual GoogleChromeManagementVersionsV1ReportingSettings ReportingSettings { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// CrowdStrike Falcon Next Gen connector config. + public class GoogleChromeManagementVersionsV1CrowdStrikeFalconNextGenConfig : Google.Apis.Requests.IDirectResponseSchema + { + /// Required. Input only. API key to use on the ingestion API. + [Newtonsoft.Json.JsonPropertyAttribute("apiKey")] + public virtual string ApiKey { get; set; } + + /// Required. Host to identify the customer specific server to receive the events. + [Newtonsoft.Json.JsonPropertyAttribute("host")] + public virtual string Host { get; set; } + + /// Required. The reporting settings for the CrowdStrike Falcon Next Gen config. + [Newtonsoft.Json.JsonPropertyAttribute("reportingSettings")] + public virtual GoogleChromeManagementVersionsV1ReportingSettings ReportingSettings { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// CrowdStrike XDR connector config. + public class GoogleChromeManagementVersionsV1CrowdStrikeXdrConfig : Google.Apis.Requests.IDirectResponseSchema + { + /// Required. Input only. API key to use on the ingestion API. + [Newtonsoft.Json.JsonPropertyAttribute("apiKey")] + public virtual string ApiKey { get; set; } + + /// Required. Host to identify the customer specific server to receive the events. + [Newtonsoft.Json.JsonPropertyAttribute("host")] + public virtual string Host { get; set; } + + /// Required. The XDR settings for the CrowdStrike XDR config. + [Newtonsoft.Json.JsonPropertyAttribute("xdrSettings")] + public virtual GoogleChromeManagementVersionsV1XdrSettings XdrSettings { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + /// Information of a device that runs a Chrome browser profile. public class GoogleChromeManagementVersionsV1DeviceInfo : Google.Apis.Requests.IDirectResponseSchema { @@ -8784,6 +9290,40 @@ public class GoogleChromeManagementVersionsV1DeviceInfo : Google.Apis.Requests.I public virtual string ETag { get; set; } } + /// Device trust config for device trust connectors. + public class GoogleChromeManagementVersionsV1DeviceTrustConfig : Google.Apis.Requests.IDirectResponseSchema + { + /// + /// Required. The scope at which this configuration will be applied. Note that this only applies to Chrome + /// browser, as in ChromeOS it's always applied. + /// + [Newtonsoft.Json.JsonPropertyAttribute("scope")] + public virtual string Scope { get; set; } + + /// + /// Required. A list of email addresses of the service accounts which are allowed to call the Verified Access + /// API with full access. + /// + [Newtonsoft.Json.JsonPropertyAttribute("serviceAccounts")] + public virtual System.Collections.Generic.IList ServiceAccounts { get; set; } + + /// Optional. The service provider for the device trust connector. + [Newtonsoft.Json.JsonPropertyAttribute("serviceProvider")] + public virtual string ServiceProvider { get; set; } + + /// + /// Required. List of URLs allowed to be part of the attestation flow to get the set of signals from the + /// machine. URLs must have HTTPS scheme, e.g. "https://example.com". Wildcards, *, are allowed. For detailed + /// information on valid URL patterns, please see + /// https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns. + /// + [Newtonsoft.Json.JsonPropertyAttribute("urlMatchers")] + public virtual System.Collections.Generic.IList UrlMatchers { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + /// Describes a generic Certificate Authority Connection. public class GoogleChromeManagementVersionsV1GenericCaConnection : Google.Apis.Requests.IDirectResponseSchema { @@ -8812,6 +9352,28 @@ public class GoogleChromeManagementVersionsV1GenericProfile : Google.Apis.Reques public virtual string ETag { get; set; } } + /// Google SecOps connector config. + public class GoogleChromeManagementVersionsV1GoogleSecOpsConfig : Google.Apis.Requests.IDirectResponseSchema + { + /// Required. Input only. API key to use on the ingestion API. + [Newtonsoft.Json.JsonPropertyAttribute("apiKey")] + public virtual string ApiKey { get; set; } + + /// + /// Required. Host of ingestion API endpoint. Allows customer to upload events to servers in specific + /// geographical regions. Existing configs that don't have this setting default to US. + /// + [Newtonsoft.Json.JsonPropertyAttribute("host")] + public virtual string Host { get; set; } + + /// Required. The reporting settings for the Google SecOps config. + [Newtonsoft.Json.JsonPropertyAttribute("reportingSettings")] + public virtual GoogleChromeManagementVersionsV1ReportingSettings ReportingSettings { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + /// Response to ListChromeBrowserProfileCommands method. public class GoogleChromeManagementVersionsV1ListChromeBrowserProfileCommandsResponse : Google.Apis.Requests.IDirectResponseSchema { @@ -8853,6 +9415,28 @@ public class GoogleChromeManagementVersionsV1ListChromeBrowserProfilesResponse : public virtual string ETag { get; set; } } + /// Response to ListConnectorConfigs method. + public class GoogleChromeManagementVersionsV1ListConnectorConfigsResponse : Google.Apis.Requests.IDirectResponseSchema + { + /// The list of connector configs returned. + [Newtonsoft.Json.JsonPropertyAttribute("connectorConfigs")] + public virtual System.Collections.Generic.IList ConnectorConfigs { get; set; } + + /// + /// The page token used to retrieve the next page of the listing request. If the token is empty, there are no + /// more pages to retrieve. + /// + [Newtonsoft.Json.JsonPropertyAttribute("nextPageToken")] + public virtual string NextPageToken { get; set; } + + /// The total size of the connector configs list. + [Newtonsoft.Json.JsonPropertyAttribute("totalSize")] + public virtual System.Nullable TotalSize { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + /// Request to MoveThirdPartyProfileUser method. public class GoogleChromeManagementVersionsV1MoveThirdPartyProfileUserRequest : Google.Apis.Requests.IDirectResponseSchema { @@ -8877,6 +9461,55 @@ public class GoogleChromeManagementVersionsV1MoveThirdPartyProfileUserResponse : public virtual string ETag { get; set; } } + /// Palo Alto Networks connector config. + public class GoogleChromeManagementVersionsV1PaloAltoNetworksConfig : Google.Apis.Requests.IDirectResponseSchema + { + /// Required. Input only. API key to use on the ingestion API. + [Newtonsoft.Json.JsonPropertyAttribute("apiKey")] + public virtual string ApiKey { get; set; } + + /// Required. Host to identify the customer specific server to receive the events. + [Newtonsoft.Json.JsonPropertyAttribute("host")] + public virtual string Host { get; set; } + + /// Required. The reporting settings for the Palo Alto Networks config. + [Newtonsoft.Json.JsonPropertyAttribute("reportingSettings")] + public virtual GoogleChromeManagementVersionsV1ReportingSettings ReportingSettings { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// Pub/Sub connector config. + public class GoogleChromeManagementVersionsV1PubSubConfig : Google.Apis.Requests.IDirectResponseSchema + { + /// Required. The reporting settings for the Pub/Sub config. + [Newtonsoft.Json.JsonPropertyAttribute("reportingSettings")] + public virtual GoogleChromeManagementVersionsV1ReportingSettings ReportingSettings { get; set; } + + /// Required. The full path to the topic to send the event to. + [Newtonsoft.Json.JsonPropertyAttribute("topicFullPath")] + public virtual string TopicFullPath { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// Pub/Sub XDR connector config. + public class GoogleChromeManagementVersionsV1PubSubXdrConfig : Google.Apis.Requests.IDirectResponseSchema + { + /// Required. The full path to the topic to send the event to. + [Newtonsoft.Json.JsonPropertyAttribute("topicFullPath")] + public virtual string TopicFullPath { get; set; } + + /// Required. The XDR settings for the Pub/Sub XDR config. + [Newtonsoft.Json.JsonPropertyAttribute("xdrSettings")] + public virtual GoogleChromeManagementVersionsV1XdrSettings XdrSettings { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + /// Reporting data of a Chrome browser profile. public class GoogleChromeManagementVersionsV1ReportingData : Google.Apis.Requests.IDirectResponseSchema { @@ -9021,6 +9654,34 @@ public class GoogleChromeManagementVersionsV1ReportingDataPolicyData : Google.Ap public virtual string ETag { get; set; } } + /// Reporting settings for connector configs. + public class GoogleChromeManagementVersionsV1ReportingSettings : Google.Apis.Requests.IDirectResponseSchema + { + /// + /// Optional. The list of user and browser events that are enabled for this connector. An empty list disables + /// all default events, and using `ALL_DEFAULT_EVENTS` will enable all default events. + /// + [Newtonsoft.Json.JsonPropertyAttribute("enabledDefaultEvents")] + public virtual System.Collections.Generic.IList EnabledDefaultEvents { get; set; } + + /// + /// Optional. The list of device events that are enabled for this config. An empty list disables all device + /// events, and using `ALL_DEVICE_EVENTS` will enable all device events. + /// + [Newtonsoft.Json.JsonPropertyAttribute("enabledDeviceEvents")] + public virtual System.Collections.Generic.IList EnabledDeviceEvents { get; set; } + + /// + /// Optional. The list of opt-in events that are enabled for this config. An empty list disables all opt-in + /// events, and using `ALL_OPT_IN_EVENTS` will enable all opt-in events. + /// + [Newtonsoft.Json.JsonPropertyAttribute("enabledOptInEvents")] + public virtual System.Collections.Generic.IList EnabledOptInEvents { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + /// Describes a SCEP Certificate Authority Connection. public class GoogleChromeManagementVersionsV1ScepCaConnection : Google.Apis.Requests.IDirectResponseSchema { @@ -9181,6 +9842,41 @@ public class GoogleChromeManagementVersionsV1SignDataResponse : Google.Apis.Requ public virtual string ETag { get; set; } } + /// Splunk connector config. + public class GoogleChromeManagementVersionsV1SplunkConfig : Google.Apis.Requests.IDirectResponseSchema + { + /// + /// Required. Input only. The data input's HTTP Event Collector token to use as an Authorization header. + /// + [Newtonsoft.Json.JsonPropertyAttribute("hecToken")] + public virtual string HecToken { get; set; } + + /// Required. Host to identify the customer specific server to receive the events. + [Newtonsoft.Json.JsonPropertyAttribute("host")] + public virtual string Host { get; set; } + + /// Optional. The port number to use. If not set, the default Splunk port is used. + [Newtonsoft.Json.JsonPropertyAttribute("portNumber")] + public virtual System.Nullable PortNumber { get; set; } + + /// Required. The reporting settings for the Splunk config. + [Newtonsoft.Json.JsonPropertyAttribute("reportingSettings")] + public virtual GoogleChromeManagementVersionsV1ReportingSettings ReportingSettings { get; set; } + + /// + /// Optional. Optional source name to override the default one set in the Splunk admin console. + /// + [Newtonsoft.Json.JsonPropertyAttribute("source")] + public virtual string Source { get; set; } + + /// Optional. Whether to use an unsecure HTTP scheme. Defaults to false (HTTPS). + [Newtonsoft.Json.JsonPropertyAttribute("unsecureScheme")] + public virtual System.Nullable UnsecureScheme { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + /// Describes a subject alternative name. public class GoogleChromeManagementVersionsV1SubjectAltName : Google.Apis.Requests.IDirectResponseSchema { @@ -9233,6 +9929,17 @@ public class GoogleChromeManagementVersionsV1UploadCertificateResponse : Google. public virtual string ETag { get; set; } } + /// XDR settings for connector configs. + public class GoogleChromeManagementVersionsV1XdrSettings : Google.Apis.Requests.IDirectResponseSchema + { + /// Required. Whether to enable all XDR events. + [Newtonsoft.Json.JsonPropertyAttribute("enableAllXdrEvents")] + public virtual System.Nullable EnableAllXdrEvents { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + /// The request message for Operations.CancelOperation. public class GoogleLongrunningCancelOperationRequest : Google.Apis.Requests.IDirectResponseSchema { diff --git a/Src/Generated/Google.Apis.ChromeManagement.v1/Google.Apis.ChromeManagement.v1.csproj b/Src/Generated/Google.Apis.ChromeManagement.v1/Google.Apis.ChromeManagement.v1.csproj index 2bc7d96f1d6..1c60f5b94dd 100644 --- a/Src/Generated/Google.Apis.ChromeManagement.v1/Google.Apis.ChromeManagement.v1.csproj +++ b/Src/Generated/Google.Apis.ChromeManagement.v1/Google.Apis.ChromeManagement.v1.csproj @@ -3,7 +3,7 @@ Google.Apis.ChromeManagement.v1 Client Library - 1.73.0.4040 + 1.73.0.4124 Google LLC Copyright 2026 Google LLC Google From cb8bf666835c1491d033b167692c059f13cd8371 Mon Sep 17 00:00:00 2001 From: Amanda Tarafa Mas Date: Mon, 20 Apr 2026 08:05:32 +0000 Subject: [PATCH 06/40] feat: Generate Google.Apis.Classroom.v1 version 1.73.0.4121 --- DiscoveryJson/classroom.v1.json | 4 ++-- .../Google.Apis.Classroom.v1.cs | 12 ++++++------ .../Google.Apis.Classroom.v1.csproj | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/DiscoveryJson/classroom.v1.json b/DiscoveryJson/classroom.v1.json index a9425d5ff1b..a78828276b2 100644 --- a/DiscoveryJson/classroom.v1.json +++ b/DiscoveryJson/classroom.v1.json @@ -275,7 +275,7 @@ "parameterOrder": [], "parameters": { "courseStates": { - "description": "Restricts returned courses to those in one of the specified states The default value is ACTIVE, ARCHIVED, PROVISIONED, DECLINED.", + "description": "Restricts returned courses to those in one of the specified states. If unspecified, Courses in any state are returned.", "enum": [ "COURSE_STATE_UNSPECIFIED", "ACTIVE", @@ -4366,7 +4366,7 @@ } } }, - "revision": "20260407", + "revision": "20260414", "rootUrl": "https://classroom.googleapis.com/", "schemas": { "AddOnAttachment": { diff --git a/Src/Generated/Google.Apis.Classroom.v1/Google.Apis.Classroom.v1.cs b/Src/Generated/Google.Apis.Classroom.v1/Google.Apis.Classroom.v1.cs index 7305ac65fda..4b327518795 100644 --- a/Src/Generated/Google.Apis.Classroom.v1/Google.Apis.Classroom.v1.cs +++ b/Src/Generated/Google.Apis.Classroom.v1/Google.Apis.Classroom.v1.cs @@ -9405,8 +9405,8 @@ public ListRequest(Google.Apis.Services.IClientService service) : base(service) } /// - /// Restricts returned courses to those in one of the specified states The default value is ACTIVE, - /// ARCHIVED, PROVISIONED, DECLINED. + /// Restricts returned courses to those in one of the specified states. If unspecified, Courses in any state + /// are returned. /// /// /// Use this property to set a single value for the parameter, or to set @@ -9416,8 +9416,8 @@ public ListRequest(Google.Apis.Services.IClientService service) : base(service) public virtual System.Nullable CourseStates { get; set; } /// - /// Restricts returned courses to those in one of the specified states The default value is ACTIVE, - /// ARCHIVED, PROVISIONED, DECLINED. + /// Restricts returned courses to those in one of the specified states. If unspecified, Courses in any state + /// are returned. /// /// /// Use this property to set one or more values for the parameter. Do not set both this property and @@ -9427,8 +9427,8 @@ public ListRequest(Google.Apis.Services.IClientService service) : base(service) public virtual Google.Apis.Util.Repeatable CourseStatesList { get; set; } /// - /// Restricts returned courses to those in one of the specified states The default value is ACTIVE, - /// ARCHIVED, PROVISIONED, DECLINED. + /// Restricts returned courses to those in one of the specified states. If unspecified, Courses in any state + /// are returned. /// public enum CourseStatesEnum { diff --git a/Src/Generated/Google.Apis.Classroom.v1/Google.Apis.Classroom.v1.csproj b/Src/Generated/Google.Apis.Classroom.v1/Google.Apis.Classroom.v1.csproj index 96d4b35e356..14db6018490 100644 --- a/Src/Generated/Google.Apis.Classroom.v1/Google.Apis.Classroom.v1.csproj +++ b/Src/Generated/Google.Apis.Classroom.v1/Google.Apis.Classroom.v1.csproj @@ -3,7 +3,7 @@ Google.Apis.Classroom.v1 Client Library - 1.73.0.4114 + 1.73.0.4121 Google LLC Copyright 2026 Google LLC Google From 24502392a0a4e16c40d89e2ac517b746f97de8d2 Mon Sep 17 00:00:00 2001 From: Amanda Tarafa Mas Date: Mon, 20 Apr 2026 08:05:34 +0000 Subject: [PATCH 07/40] feat: Generate Google.Apis.CloudAsset.v1 version 1.73.0.4124 --- DiscoveryJson/cloudasset.v1.json | 10 +++++----- .../Google.Apis.CloudAsset.v1.cs | 12 ++++++------ .../Google.Apis.CloudAsset.v1.csproj | 2 +- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/DiscoveryJson/cloudasset.v1.json b/DiscoveryJson/cloudasset.v1.json index 03e73845f57..53365700201 100644 --- a/DiscoveryJson/cloudasset.v1.json +++ b/DiscoveryJson/cloudasset.v1.json @@ -1095,7 +1095,7 @@ } } }, - "revision": "20260314", + "revision": "20260417", "rootUrl": "https://cloudasset.googleapis.com/", "schemas": { "AccessSelector": { @@ -1836,7 +1836,7 @@ "id": "GcsDestination", "properties": { "uri": { - "description": "The URI of the Cloud Storage object. It's the same URI that is used by gsutil. Example: \"gs://bucket_name/object_name\". See [Viewing and Editing Object Metadata](https://cloud.google.com/storage/docs/viewing-editing-metadata) for more information. If the specified Cloud Storage object already exists and there is no [hold](https://cloud.google.com/storage/docs/object-holds), it will be overwritten with the exported result.", + "description": "The URI of the Cloud Storage object. It's the same URI that is used by gcloud storage. Example: \"gs://bucket_name/object_name\". See [Viewing and Editing Object Metadata](https://cloud.google.com/storage/docs/viewing-editing-metadata) for more information. If the specified Cloud Storage object already exists and there is no [hold](https://cloud.google.com/storage/docs/object-holds), it will be overwritten with the exported result.", "type": "string" }, "uriPrefix": { @@ -2163,7 +2163,7 @@ "id": "GoogleCloudAssetV1GcsDestination", "properties": { "uri": { - "description": "Required. The URI of the Cloud Storage object. It's the same URI that is used by gsutil. Example: \"gs://bucket_name/object_name\". See [Viewing and Editing Object Metadata](https://cloud.google.com/storage/docs/viewing-editing-metadata) for more information. If the specified Cloud Storage object already exists and there is no [hold](https://cloud.google.com/storage/docs/object-holds), it will be overwritten with the analysis result.", + "description": "Required. The URI of the Cloud Storage object. It's the same URI that is used by gcloud storage. Example: \"gs://bucket_name/object_name\". See [Viewing and Editing Object Metadata](https://cloud.google.com/storage/docs/viewing-editing-metadata) for more information. If the specified Cloud Storage object already exists and there is no [hold](https://cloud.google.com/storage/docs/object-holds), it will be overwritten with the analysis result.", "type": "string" } }, @@ -2844,7 +2844,7 @@ "id": "GoogleIdentityAccesscontextmanagerV1EgressFrom", "properties": { "identities": { - "description": "A list of identities that are allowed access through [EgressPolicy]. Identities can be an individual user, service account, Google group, or third-party identity. For the list of supported identity types, see https://docs.cloud.google.com/vpc-service-controls/docs/supported-identities.", + "description": "A list of identities that are allowed access through [EgressPolicy]. Identities can be an individual user, service account, Google group, third-party identity, or agent identity. For the list of supported identity types, see https://docs.cloud.google.com/vpc-service-controls/docs/supported-identities.", "items": { "type": "string" }, @@ -2964,7 +2964,7 @@ "id": "GoogleIdentityAccesscontextmanagerV1IngressFrom", "properties": { "identities": { - "description": "A list of identities that are allowed access through [IngressPolicy]. Identities can be an individual user, service account, Google group, or third-party identity. For the list of supported identity types, see https://docs.cloud.google.com/vpc-service-controls/docs/supported-identities.", + "description": "A list of identities that are allowed access through [IngressPolicy]. Identities can be an individual user, service account, Google group, third-party identity, or agent identity. For the list of supported identity types, see https://docs.cloud.google.com/vpc-service-controls/docs/supported-identities.", "items": { "type": "string" }, diff --git a/Src/Generated/Google.Apis.CloudAsset.v1/Google.Apis.CloudAsset.v1.cs b/Src/Generated/Google.Apis.CloudAsset.v1/Google.Apis.CloudAsset.v1.cs index 97ebb72f108..301d0ddbf7b 100644 --- a/Src/Generated/Google.Apis.CloudAsset.v1/Google.Apis.CloudAsset.v1.cs +++ b/Src/Generated/Google.Apis.CloudAsset.v1/Google.Apis.CloudAsset.v1.cs @@ -4144,7 +4144,7 @@ public class FeedOutputConfig : Google.Apis.Requests.IDirectResponseSchema public class GcsDestination : Google.Apis.Requests.IDirectResponseSchema { /// - /// The URI of the Cloud Storage object. It's the same URI that is used by gsutil. Example: + /// The URI of the Cloud Storage object. It's the same URI that is used by gcloud storage. Example: /// "gs://bucket_name/object_name". See [Viewing and Editing Object /// Metadata](https://cloud.google.com/storage/docs/viewing-editing-metadata) for more information. If the /// specified Cloud Storage object already exists and there is no @@ -4535,7 +4535,7 @@ public class GoogleCloudAssetV1Edge : Google.Apis.Requests.IDirectResponseSchema public class GoogleCloudAssetV1GcsDestination : Google.Apis.Requests.IDirectResponseSchema { /// - /// Required. The URI of the Cloud Storage object. It's the same URI that is used by gsutil. Example: + /// Required. The URI of the Cloud Storage object. It's the same URI that is used by gcloud storage. Example: /// "gs://bucket_name/object_name". See [Viewing and Editing Object /// Metadata](https://cloud.google.com/storage/docs/viewing-editing-metadata) for more information. If the /// specified Cloud Storage object already exists and there is no @@ -5533,8 +5533,8 @@ public class GoogleIdentityAccesscontextmanagerV1EgressFrom : Google.Apis.Reques { /// /// A list of identities that are allowed access through [EgressPolicy]. Identities can be an individual user, - /// service account, Google group, or third-party identity. For the list of supported identity types, see - /// https://docs.cloud.google.com/vpc-service-controls/docs/supported-identities. + /// service account, Google group, third-party identity, or agent identity. For the list of supported identity + /// types, see https://docs.cloud.google.com/vpc-service-controls/docs/supported-identities. /// [Newtonsoft.Json.JsonPropertyAttribute("identities")] public virtual System.Collections.Generic.IList Identities { get; set; } @@ -5682,8 +5682,8 @@ public class GoogleIdentityAccesscontextmanagerV1IngressFrom : Google.Apis.Reque { /// /// A list of identities that are allowed access through [IngressPolicy]. Identities can be an individual user, - /// service account, Google group, or third-party identity. For the list of supported identity types, see - /// https://docs.cloud.google.com/vpc-service-controls/docs/supported-identities. + /// service account, Google group, third-party identity, or agent identity. For the list of supported identity + /// types, see https://docs.cloud.google.com/vpc-service-controls/docs/supported-identities. /// [Newtonsoft.Json.JsonPropertyAttribute("identities")] public virtual System.Collections.Generic.IList Identities { get; set; } diff --git a/Src/Generated/Google.Apis.CloudAsset.v1/Google.Apis.CloudAsset.v1.csproj b/Src/Generated/Google.Apis.CloudAsset.v1/Google.Apis.CloudAsset.v1.csproj index 80898ace717..aeb5384c0bb 100644 --- a/Src/Generated/Google.Apis.CloudAsset.v1/Google.Apis.CloudAsset.v1.csproj +++ b/Src/Generated/Google.Apis.CloudAsset.v1/Google.Apis.CloudAsset.v1.csproj @@ -3,7 +3,7 @@ Google.Apis.CloudAsset.v1 Client Library - 1.73.0.4090 + 1.73.0.4124 Google LLC Copyright 2026 Google LLC Google From bd459bdd59d21d6978cbe5fdf8efdce173f1247c Mon Sep 17 00:00:00 2001 From: Amanda Tarafa Mas Date: Mon, 20 Apr 2026 08:05:36 +0000 Subject: [PATCH 08/40] feat: Generate Google.Apis.CloudAsset.v1beta1 version 1.73.0.4124 --- DiscoveryJson/cloudasset.v1beta1.json | 6 +++--- .../Google.Apis.CloudAsset.v1beta1.cs | 8 ++++---- .../Google.Apis.CloudAsset.v1beta1.csproj | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/DiscoveryJson/cloudasset.v1beta1.json b/DiscoveryJson/cloudasset.v1beta1.json index 6a8d53a1a9c..8ee1f334fe7 100644 --- a/DiscoveryJson/cloudasset.v1beta1.json +++ b/DiscoveryJson/cloudasset.v1beta1.json @@ -411,7 +411,7 @@ } } }, - "revision": "20260314", + "revision": "20260417", "rootUrl": "https://cloudasset.googleapis.com/", "schemas": { "AnalyzeIamPolicyLongrunningMetadata": { @@ -1124,7 +1124,7 @@ "id": "GoogleIdentityAccesscontextmanagerV1EgressFrom", "properties": { "identities": { - "description": "A list of identities that are allowed access through [EgressPolicy]. Identities can be an individual user, service account, Google group, or third-party identity. For the list of supported identity types, see https://docs.cloud.google.com/vpc-service-controls/docs/supported-identities.", + "description": "A list of identities that are allowed access through [EgressPolicy]. Identities can be an individual user, service account, Google group, third-party identity, or agent identity. For the list of supported identity types, see https://docs.cloud.google.com/vpc-service-controls/docs/supported-identities.", "items": { "type": "string" }, @@ -1244,7 +1244,7 @@ "id": "GoogleIdentityAccesscontextmanagerV1IngressFrom", "properties": { "identities": { - "description": "A list of identities that are allowed access through [IngressPolicy]. Identities can be an individual user, service account, Google group, or third-party identity. For the list of supported identity types, see https://docs.cloud.google.com/vpc-service-controls/docs/supported-identities.", + "description": "A list of identities that are allowed access through [IngressPolicy]. Identities can be an individual user, service account, Google group, third-party identity, or agent identity. For the list of supported identity types, see https://docs.cloud.google.com/vpc-service-controls/docs/supported-identities.", "items": { "type": "string" }, diff --git a/Src/Generated/Google.Apis.CloudAsset.v1beta1/Google.Apis.CloudAsset.v1beta1.cs b/Src/Generated/Google.Apis.CloudAsset.v1beta1/Google.Apis.CloudAsset.v1beta1.cs index 758509b7490..6c8654e1281 100644 --- a/Src/Generated/Google.Apis.CloudAsset.v1beta1/Google.Apis.CloudAsset.v1beta1.cs +++ b/Src/Generated/Google.Apis.CloudAsset.v1beta1/Google.Apis.CloudAsset.v1beta1.cs @@ -2246,8 +2246,8 @@ public class GoogleIdentityAccesscontextmanagerV1EgressFrom : Google.Apis.Reques { /// /// A list of identities that are allowed access through [EgressPolicy]. Identities can be an individual user, - /// service account, Google group, or third-party identity. For the list of supported identity types, see - /// https://docs.cloud.google.com/vpc-service-controls/docs/supported-identities. + /// service account, Google group, third-party identity, or agent identity. For the list of supported identity + /// types, see https://docs.cloud.google.com/vpc-service-controls/docs/supported-identities. /// [Newtonsoft.Json.JsonPropertyAttribute("identities")] public virtual System.Collections.Generic.IList Identities { get; set; } @@ -2395,8 +2395,8 @@ public class GoogleIdentityAccesscontextmanagerV1IngressFrom : Google.Apis.Reque { /// /// A list of identities that are allowed access through [IngressPolicy]. Identities can be an individual user, - /// service account, Google group, or third-party identity. For the list of supported identity types, see - /// https://docs.cloud.google.com/vpc-service-controls/docs/supported-identities. + /// service account, Google group, third-party identity, or agent identity. For the list of supported identity + /// types, see https://docs.cloud.google.com/vpc-service-controls/docs/supported-identities. /// [Newtonsoft.Json.JsonPropertyAttribute("identities")] public virtual System.Collections.Generic.IList Identities { get; set; } diff --git a/Src/Generated/Google.Apis.CloudAsset.v1beta1/Google.Apis.CloudAsset.v1beta1.csproj b/Src/Generated/Google.Apis.CloudAsset.v1beta1/Google.Apis.CloudAsset.v1beta1.csproj index e5361f4832f..520e47fa5db 100644 --- a/Src/Generated/Google.Apis.CloudAsset.v1beta1/Google.Apis.CloudAsset.v1beta1.csproj +++ b/Src/Generated/Google.Apis.CloudAsset.v1beta1/Google.Apis.CloudAsset.v1beta1.csproj @@ -3,7 +3,7 @@ Google.Apis.CloudAsset.v1beta1 Client Library - 1.73.0.4090 + 1.73.0.4124 Google LLC Copyright 2026 Google LLC Google From bcc73991a653246f6d3f4b720d0a96fd0e3a31ed Mon Sep 17 00:00:00 2001 From: Amanda Tarafa Mas Date: Mon, 20 Apr 2026 08:05:39 +0000 Subject: [PATCH 09/40] feat: Generate Google.Apis.CloudAsset.v1p1beta1 version 1.73.0.4124 --- DiscoveryJson/cloudasset.v1p1beta1.json | 6 +++--- .../Google.Apis.CloudAsset.v1p1beta1.cs | 8 ++++---- .../Google.Apis.CloudAsset.v1p1beta1.csproj | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/DiscoveryJson/cloudasset.v1p1beta1.json b/DiscoveryJson/cloudasset.v1p1beta1.json index c3413037152..8b30295fe68 100644 --- a/DiscoveryJson/cloudasset.v1p1beta1.json +++ b/DiscoveryJson/cloudasset.v1p1beta1.json @@ -207,7 +207,7 @@ } } }, - "revision": "20260314", + "revision": "20260417", "rootUrl": "https://cloudasset.googleapis.com/", "schemas": { "AnalyzeIamPolicyLongrunningMetadata": { @@ -826,7 +826,7 @@ "id": "GoogleIdentityAccesscontextmanagerV1EgressFrom", "properties": { "identities": { - "description": "A list of identities that are allowed access through [EgressPolicy]. Identities can be an individual user, service account, Google group, or third-party identity. For the list of supported identity types, see https://docs.cloud.google.com/vpc-service-controls/docs/supported-identities.", + "description": "A list of identities that are allowed access through [EgressPolicy]. Identities can be an individual user, service account, Google group, third-party identity, or agent identity. For the list of supported identity types, see https://docs.cloud.google.com/vpc-service-controls/docs/supported-identities.", "items": { "type": "string" }, @@ -946,7 +946,7 @@ "id": "GoogleIdentityAccesscontextmanagerV1IngressFrom", "properties": { "identities": { - "description": "A list of identities that are allowed access through [IngressPolicy]. Identities can be an individual user, service account, Google group, or third-party identity. For the list of supported identity types, see https://docs.cloud.google.com/vpc-service-controls/docs/supported-identities.", + "description": "A list of identities that are allowed access through [IngressPolicy]. Identities can be an individual user, service account, Google group, third-party identity, or agent identity. For the list of supported identity types, see https://docs.cloud.google.com/vpc-service-controls/docs/supported-identities.", "items": { "type": "string" }, diff --git a/Src/Generated/Google.Apis.CloudAsset.v1p1beta1/Google.Apis.CloudAsset.v1p1beta1.cs b/Src/Generated/Google.Apis.CloudAsset.v1p1beta1/Google.Apis.CloudAsset.v1p1beta1.cs index 85c8917e29e..8b8da9978d2 100644 --- a/Src/Generated/Google.Apis.CloudAsset.v1p1beta1/Google.Apis.CloudAsset.v1p1beta1.cs +++ b/Src/Generated/Google.Apis.CloudAsset.v1p1beta1/Google.Apis.CloudAsset.v1p1beta1.cs @@ -1521,8 +1521,8 @@ public class GoogleIdentityAccesscontextmanagerV1EgressFrom : Google.Apis.Reques { /// /// A list of identities that are allowed access through [EgressPolicy]. Identities can be an individual user, - /// service account, Google group, or third-party identity. For the list of supported identity types, see - /// https://docs.cloud.google.com/vpc-service-controls/docs/supported-identities. + /// service account, Google group, third-party identity, or agent identity. For the list of supported identity + /// types, see https://docs.cloud.google.com/vpc-service-controls/docs/supported-identities. /// [Newtonsoft.Json.JsonPropertyAttribute("identities")] public virtual System.Collections.Generic.IList Identities { get; set; } @@ -1670,8 +1670,8 @@ public class GoogleIdentityAccesscontextmanagerV1IngressFrom : Google.Apis.Reque { /// /// A list of identities that are allowed access through [IngressPolicy]. Identities can be an individual user, - /// service account, Google group, or third-party identity. For the list of supported identity types, see - /// https://docs.cloud.google.com/vpc-service-controls/docs/supported-identities. + /// service account, Google group, third-party identity, or agent identity. For the list of supported identity + /// types, see https://docs.cloud.google.com/vpc-service-controls/docs/supported-identities. /// [Newtonsoft.Json.JsonPropertyAttribute("identities")] public virtual System.Collections.Generic.IList Identities { get; set; } diff --git a/Src/Generated/Google.Apis.CloudAsset.v1p1beta1/Google.Apis.CloudAsset.v1p1beta1.csproj b/Src/Generated/Google.Apis.CloudAsset.v1p1beta1/Google.Apis.CloudAsset.v1p1beta1.csproj index 7ea80e9ca52..f474ea1f773 100644 --- a/Src/Generated/Google.Apis.CloudAsset.v1p1beta1/Google.Apis.CloudAsset.v1p1beta1.csproj +++ b/Src/Generated/Google.Apis.CloudAsset.v1p1beta1/Google.Apis.CloudAsset.v1p1beta1.csproj @@ -3,7 +3,7 @@ Google.Apis.CloudAsset.v1p1beta1 Client Library - 1.73.0.4090 + 1.73.0.4124 Google LLC Copyright 2026 Google LLC Google From 8b8a860a7ae0bcac0585a078078e376b6317cde9 Mon Sep 17 00:00:00 2001 From: Amanda Tarafa Mas Date: Mon, 20 Apr 2026 08:05:41 +0000 Subject: [PATCH 10/40] feat: Generate Google.Apis.CloudAsset.v1p5beta1 version 1.73.0.4124 --- DiscoveryJson/cloudasset.v1p5beta1.json | 6 +++--- .../Google.Apis.CloudAsset.v1p5beta1.cs | 8 ++++---- .../Google.Apis.CloudAsset.v1p5beta1.csproj | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/DiscoveryJson/cloudasset.v1p5beta1.json b/DiscoveryJson/cloudasset.v1p5beta1.json index c9709a4ff67..b2055c4b354 100644 --- a/DiscoveryJson/cloudasset.v1p5beta1.json +++ b/DiscoveryJson/cloudasset.v1p5beta1.json @@ -177,7 +177,7 @@ } } }, - "revision": "20260314", + "revision": "20260417", "rootUrl": "https://cloudasset.googleapis.com/", "schemas": { "AnalyzeIamPolicyLongrunningMetadata": { @@ -831,7 +831,7 @@ "id": "GoogleIdentityAccesscontextmanagerV1EgressFrom", "properties": { "identities": { - "description": "A list of identities that are allowed access through [EgressPolicy]. Identities can be an individual user, service account, Google group, or third-party identity. For the list of supported identity types, see https://docs.cloud.google.com/vpc-service-controls/docs/supported-identities.", + "description": "A list of identities that are allowed access through [EgressPolicy]. Identities can be an individual user, service account, Google group, third-party identity, or agent identity. For the list of supported identity types, see https://docs.cloud.google.com/vpc-service-controls/docs/supported-identities.", "items": { "type": "string" }, @@ -951,7 +951,7 @@ "id": "GoogleIdentityAccesscontextmanagerV1IngressFrom", "properties": { "identities": { - "description": "A list of identities that are allowed access through [IngressPolicy]. Identities can be an individual user, service account, Google group, or third-party identity. For the list of supported identity types, see https://docs.cloud.google.com/vpc-service-controls/docs/supported-identities.", + "description": "A list of identities that are allowed access through [IngressPolicy]. Identities can be an individual user, service account, Google group, third-party identity, or agent identity. For the list of supported identity types, see https://docs.cloud.google.com/vpc-service-controls/docs/supported-identities.", "items": { "type": "string" }, diff --git a/Src/Generated/Google.Apis.CloudAsset.v1p5beta1/Google.Apis.CloudAsset.v1p5beta1.cs b/Src/Generated/Google.Apis.CloudAsset.v1p5beta1/Google.Apis.CloudAsset.v1p5beta1.cs index 9080f3d0c59..dab2d1b45e2 100644 --- a/Src/Generated/Google.Apis.CloudAsset.v1p5beta1/Google.Apis.CloudAsset.v1p5beta1.cs +++ b/Src/Generated/Google.Apis.CloudAsset.v1p5beta1/Google.Apis.CloudAsset.v1p5beta1.cs @@ -1497,8 +1497,8 @@ public class GoogleIdentityAccesscontextmanagerV1EgressFrom : Google.Apis.Reques { /// /// A list of identities that are allowed access through [EgressPolicy]. Identities can be an individual user, - /// service account, Google group, or third-party identity. For the list of supported identity types, see - /// https://docs.cloud.google.com/vpc-service-controls/docs/supported-identities. + /// service account, Google group, third-party identity, or agent identity. For the list of supported identity + /// types, see https://docs.cloud.google.com/vpc-service-controls/docs/supported-identities. /// [Newtonsoft.Json.JsonPropertyAttribute("identities")] public virtual System.Collections.Generic.IList Identities { get; set; } @@ -1646,8 +1646,8 @@ public class GoogleIdentityAccesscontextmanagerV1IngressFrom : Google.Apis.Reque { /// /// A list of identities that are allowed access through [IngressPolicy]. Identities can be an individual user, - /// service account, Google group, or third-party identity. For the list of supported identity types, see - /// https://docs.cloud.google.com/vpc-service-controls/docs/supported-identities. + /// service account, Google group, third-party identity, or agent identity. For the list of supported identity + /// types, see https://docs.cloud.google.com/vpc-service-controls/docs/supported-identities. /// [Newtonsoft.Json.JsonPropertyAttribute("identities")] public virtual System.Collections.Generic.IList Identities { get; set; } diff --git a/Src/Generated/Google.Apis.CloudAsset.v1p5beta1/Google.Apis.CloudAsset.v1p5beta1.csproj b/Src/Generated/Google.Apis.CloudAsset.v1p5beta1/Google.Apis.CloudAsset.v1p5beta1.csproj index 82cb0b52d84..04182dd04be 100644 --- a/Src/Generated/Google.Apis.CloudAsset.v1p5beta1/Google.Apis.CloudAsset.v1p5beta1.csproj +++ b/Src/Generated/Google.Apis.CloudAsset.v1p5beta1/Google.Apis.CloudAsset.v1p5beta1.csproj @@ -3,7 +3,7 @@ Google.Apis.CloudAsset.v1p5beta1 Client Library - 1.73.0.4090 + 1.73.0.4124 Google LLC Copyright 2026 Google LLC Google From 7f2ab1668f5b6d82f45d6e6ea41b577c3b046aa9 Mon Sep 17 00:00:00 2001 From: Amanda Tarafa Mas Date: Mon, 20 Apr 2026 08:05:43 +0000 Subject: [PATCH 11/40] feat: Generate Google.Apis.CloudAsset.v1p7beta1 version 1.73.0.4124 --- DiscoveryJson/cloudasset.v1p7beta1.json | 6 +++--- .../Google.Apis.CloudAsset.v1p7beta1.cs | 8 ++++---- .../Google.Apis.CloudAsset.v1p7beta1.csproj | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/DiscoveryJson/cloudasset.v1p7beta1.json b/DiscoveryJson/cloudasset.v1p7beta1.json index e8854302071..ab7e901dc59 100644 --- a/DiscoveryJson/cloudasset.v1p7beta1.json +++ b/DiscoveryJson/cloudasset.v1p7beta1.json @@ -167,7 +167,7 @@ } } }, - "revision": "20260314", + "revision": "20260417", "rootUrl": "https://cloudasset.googleapis.com/", "schemas": { "AnalyzeIamPolicyLongrunningMetadata": { @@ -900,7 +900,7 @@ "id": "GoogleIdentityAccesscontextmanagerV1EgressFrom", "properties": { "identities": { - "description": "A list of identities that are allowed access through [EgressPolicy]. Identities can be an individual user, service account, Google group, or third-party identity. For the list of supported identity types, see https://docs.cloud.google.com/vpc-service-controls/docs/supported-identities.", + "description": "A list of identities that are allowed access through [EgressPolicy]. Identities can be an individual user, service account, Google group, third-party identity, or agent identity. For the list of supported identity types, see https://docs.cloud.google.com/vpc-service-controls/docs/supported-identities.", "items": { "type": "string" }, @@ -1020,7 +1020,7 @@ "id": "GoogleIdentityAccesscontextmanagerV1IngressFrom", "properties": { "identities": { - "description": "A list of identities that are allowed access through [IngressPolicy]. Identities can be an individual user, service account, Google group, or third-party identity. For the list of supported identity types, see https://docs.cloud.google.com/vpc-service-controls/docs/supported-identities.", + "description": "A list of identities that are allowed access through [IngressPolicy]. Identities can be an individual user, service account, Google group, third-party identity, or agent identity. For the list of supported identity types, see https://docs.cloud.google.com/vpc-service-controls/docs/supported-identities.", "items": { "type": "string" }, diff --git a/Src/Generated/Google.Apis.CloudAsset.v1p7beta1/Google.Apis.CloudAsset.v1p7beta1.cs b/Src/Generated/Google.Apis.CloudAsset.v1p7beta1/Google.Apis.CloudAsset.v1p7beta1.cs index 67614a3e334..02a2326d332 100644 --- a/Src/Generated/Google.Apis.CloudAsset.v1p7beta1/Google.Apis.CloudAsset.v1p7beta1.cs +++ b/Src/Generated/Google.Apis.CloudAsset.v1p7beta1/Google.Apis.CloudAsset.v1p7beta1.cs @@ -1584,8 +1584,8 @@ public class GoogleIdentityAccesscontextmanagerV1EgressFrom : Google.Apis.Reques { /// /// A list of identities that are allowed access through [EgressPolicy]. Identities can be an individual user, - /// service account, Google group, or third-party identity. For the list of supported identity types, see - /// https://docs.cloud.google.com/vpc-service-controls/docs/supported-identities. + /// service account, Google group, third-party identity, or agent identity. For the list of supported identity + /// types, see https://docs.cloud.google.com/vpc-service-controls/docs/supported-identities. /// [Newtonsoft.Json.JsonPropertyAttribute("identities")] public virtual System.Collections.Generic.IList Identities { get; set; } @@ -1733,8 +1733,8 @@ public class GoogleIdentityAccesscontextmanagerV1IngressFrom : Google.Apis.Reque { /// /// A list of identities that are allowed access through [IngressPolicy]. Identities can be an individual user, - /// service account, Google group, or third-party identity. For the list of supported identity types, see - /// https://docs.cloud.google.com/vpc-service-controls/docs/supported-identities. + /// service account, Google group, third-party identity, or agent identity. For the list of supported identity + /// types, see https://docs.cloud.google.com/vpc-service-controls/docs/supported-identities. /// [Newtonsoft.Json.JsonPropertyAttribute("identities")] public virtual System.Collections.Generic.IList Identities { get; set; } diff --git a/Src/Generated/Google.Apis.CloudAsset.v1p7beta1/Google.Apis.CloudAsset.v1p7beta1.csproj b/Src/Generated/Google.Apis.CloudAsset.v1p7beta1/Google.Apis.CloudAsset.v1p7beta1.csproj index 262afabcb5a..2bd8ec3372f 100644 --- a/Src/Generated/Google.Apis.CloudAsset.v1p7beta1/Google.Apis.CloudAsset.v1p7beta1.csproj +++ b/Src/Generated/Google.Apis.CloudAsset.v1p7beta1/Google.Apis.CloudAsset.v1p7beta1.csproj @@ -3,7 +3,7 @@ Google.Apis.CloudAsset.v1p7beta1 Client Library - 1.73.0.4090 + 1.73.0.4124 Google LLC Copyright 2026 Google LLC Google From 2bada0e636be1a16074e47ad7fd4696a2fb743f8 Mon Sep 17 00:00:00 2001 From: Amanda Tarafa Mas Date: Mon, 20 Apr 2026 08:05:45 +0000 Subject: [PATCH 12/40] feat: Generate Google.Apis.CloudKMS.v1 version 1.73.0.4116 --- DiscoveryJson/cloudkms.v1.json | 6 +++++- .../Google.Apis.CloudKMS.v1/Google.Apis.CloudKMS.v1.cs | 7 +++++++ .../Google.Apis.CloudKMS.v1/Google.Apis.CloudKMS.v1.csproj | 2 +- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/DiscoveryJson/cloudkms.v1.json b/DiscoveryJson/cloudkms.v1.json index e9e40d0c15b..f32cb715867 100644 --- a/DiscoveryJson/cloudkms.v1.json +++ b/DiscoveryJson/cloudkms.v1.json @@ -2948,7 +2948,7 @@ } } }, - "revision": "20260319", + "revision": "20260409", "rootUrl": "https://cloudkms.googleapis.com/", "schemas": { "AddQuorumMember": { @@ -5770,6 +5770,10 @@ "readOnly": true, "type": "string" }, + "keyPortabilityEnabled": { + "description": "Optional. Immutable. Indicates whether key portability is enabled for the SingleTenantHsmInstance. This can only be set at creation time. Key portability features are disabled by default and not yet available in GA.", + "type": "boolean" + }, "name": { "description": "Identifier. The resource name for this SingleTenantHsmInstance in the format `projects/*/locations/*/singleTenantHsmInstances/*`.", "type": "string" diff --git a/Src/Generated/Google.Apis.CloudKMS.v1/Google.Apis.CloudKMS.v1.cs b/Src/Generated/Google.Apis.CloudKMS.v1/Google.Apis.CloudKMS.v1.cs index 33f7fa102a6..140dbd9d798 100644 --- a/Src/Generated/Google.Apis.CloudKMS.v1/Google.Apis.CloudKMS.v1.cs +++ b/Src/Generated/Google.Apis.CloudKMS.v1/Google.Apis.CloudKMS.v1.cs @@ -9862,6 +9862,13 @@ public virtual System.DateTimeOffset? DisableTimeDateTimeOffset set => DisableTimeRaw = Google.Apis.Util.DiscoveryFormat.FormatDateTimeOffsetToGoogleDateTime(value); } + /// + /// Optional. Immutable. Indicates whether key portability is enabled for the SingleTenantHsmInstance. This can + /// only be set at creation time. Key portability features are disabled by default and not yet available in GA. + /// + [Newtonsoft.Json.JsonPropertyAttribute("keyPortabilityEnabled")] + public virtual System.Nullable KeyPortabilityEnabled { get; set; } + /// /// Identifier. The resource name for this SingleTenantHsmInstance in the format /// `projects/*/locations/*/singleTenantHsmInstances/*`. diff --git a/Src/Generated/Google.Apis.CloudKMS.v1/Google.Apis.CloudKMS.v1.csproj b/Src/Generated/Google.Apis.CloudKMS.v1/Google.Apis.CloudKMS.v1.csproj index d7f9965e39c..b1f75b11cdd 100644 --- a/Src/Generated/Google.Apis.CloudKMS.v1/Google.Apis.CloudKMS.v1.csproj +++ b/Src/Generated/Google.Apis.CloudKMS.v1/Google.Apis.CloudKMS.v1.csproj @@ -3,7 +3,7 @@ Google.Apis.CloudKMS.v1 Client Library - 1.73.0.4095 + 1.73.0.4116 Google LLC Copyright 2026 Google LLC Google From 377ed3897d80b14e772e980bcc582fe0286fdc59 Mon Sep 17 00:00:00 2001 From: Amanda Tarafa Mas Date: Mon, 20 Apr 2026 08:05:48 +0000 Subject: [PATCH 13/40] feat: Generate Google.Apis.Contactcenterinsights.v1 version 1.73.0.4117 --- DiscoveryJson/contactcenterinsights.v1.json | 2496 ++++++++++++++-- .../Google.Apis.Contactcenterinsights.v1.cs | 2631 +++++++++++++++-- ...oogle.Apis.Contactcenterinsights.v1.csproj | 2 +- 3 files changed, 4639 insertions(+), 490 deletions(-) diff --git a/DiscoveryJson/contactcenterinsights.v1.json b/DiscoveryJson/contactcenterinsights.v1.json index 4ed6d036ad4..134c77b8438 100644 --- a/DiscoveryJson/contactcenterinsights.v1.json +++ b/DiscoveryJson/contactcenterinsights.v1.json @@ -193,6 +193,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "diagnoseConversations": { + "description": "Analyzes conversation data using specialized agentic workflows, such as ReAct, to diagnose issues and provide insights.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}:diagnoseConversations", + "httpMethod": "POST", + "id": "contactcenterinsights.projects.locations.diagnoseConversations", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent resource where the analysis will be performed.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}:diagnoseConversations", + "request": { + "$ref": "GoogleCloudContactcenterinsightsV1DiagnoseConversationsRequest" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "generativeInsights": { "description": "Natural language based Insights which powers the next generation of dashboards in Insights. Next generation of QueryMetrics.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}:generativeInsights", @@ -4479,6 +4507,101 @@ } } }, + "diagnostics": { + "methods": { + "delete": { + "description": "Deletes a diagnostic.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/diagnostics/{diagnosticsId}", + "httpMethod": "DELETE", + "id": "contactcenterinsights.projects.locations.diagnostics.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the diagnostic to delete.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/diagnostics/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleProtobufEmpty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets a diagnostic.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/diagnostics/{diagnosticsId}", + "httpMethod": "GET", + "id": "contactcenterinsights.projects.locations.diagnostics.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the diagnostic to retrieve.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/diagnostics/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleCloudContactcenterinsightsV1Diagnostic" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists diagnostics.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/diagnostics", + "httpMethod": "GET", + "id": "contactcenterinsights.projects.locations.diagnostics.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. A filter to apply to the list (e.g. `create_time > \"2023-01-01T00:00:00Z\"`).", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. The maximum number of diagnostics to return. The service may return fewer than this value. If unspecified, at most 100 diagnostics will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. A page token, received from a previous `ListDiagnostics` call. Provide this to retrieve the subsequent page.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent resource of the diagnostics.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/diagnostics", + "response": { + "$ref": "GoogleCloudContactcenterinsightsV1ListDiagnosticsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "encryptionSpec": { "methods": { "initialize": { @@ -6101,151 +6224,194 @@ } } }, - "revision": "20260401", + "revision": "20260410", "rootUrl": "https://contactcenterinsights.googleapis.com/", "schemas": { - "GoogleCloudContactcenterinsightsV1Analysis": { - "description": "The analysis resource.", - "id": "GoogleCloudContactcenterinsightsV1Analysis", + "GoogleCloudCesV1mainAgentTransfer": { + "description": "Represents an event indicating the transfer of a conversation to a different agent.", + "id": "GoogleCloudCesV1mainAgentTransfer", "properties": { - "analysisResult": { - "$ref": "GoogleCloudContactcenterinsightsV1AnalysisResult", - "description": "Output only. The result of the analysis, which is populated when the analysis finishes.", - "readOnly": true - }, - "annotatorSelector": { - "$ref": "GoogleCloudContactcenterinsightsV1AnnotatorSelector", - "description": "To select the annotators to run and the phrase matchers to use (if any). If not specified, all annotators will be run." - }, - "createTime": { - "description": "Output only. The time at which the analysis was created, which occurs when the long-running operation completes.", - "format": "google-datetime", + "displayName": { + "description": "Output only. Display name of the agent.", "readOnly": true, "type": "string" }, - "name": { - "description": "Immutable. The resource name of the analysis. Format: projects/{project}/locations/{location}/conversations/{conversation}/analyses/{analysis}", - "type": "string" - }, - "requestTime": { - "description": "Output only. The time at which the analysis was requested.", - "format": "google-datetime", - "readOnly": true, + "targetAgent": { + "description": "Required. The agent to which the conversation is being transferred. The agent will handle the conversation from this point forward. Format: `projects/{project}/locations/{location}/apps/{app}/agents/{agent}`", "type": "string" } }, "type": "object" }, - "GoogleCloudContactcenterinsightsV1AnalysisResult": { - "description": "The result of an analysis.", - "id": "GoogleCloudContactcenterinsightsV1AnalysisResult", + "GoogleCloudCesV1mainBlob": { + "description": "Represents a blob input or output in the conversation.", + "id": "GoogleCloudCesV1mainBlob", "properties": { - "callAnalysisMetadata": { - "$ref": "GoogleCloudContactcenterinsightsV1AnalysisResultCallAnalysisMetadata", - "description": "Call-specific metadata created by the analysis." + "data": { + "description": "Required. Raw bytes of the blob.", + "format": "byte", + "type": "string" }, - "endTime": { - "description": "The time at which the analysis ended.", - "format": "google-datetime", + "mimeType": { + "description": "Required. The IANA standard MIME type of the source data.", "type": "string" } }, "type": "object" }, - "GoogleCloudContactcenterinsightsV1AnalysisResultCallAnalysisMetadata": { - "description": "Call-specific metadata created during analysis.", - "id": "GoogleCloudContactcenterinsightsV1AnalysisResultCallAnalysisMetadata", + "GoogleCloudCesV1mainChunk": { + "description": "A chunk of content within a message.", + "id": "GoogleCloudCesV1mainChunk", "properties": { - "annotations": { - "description": "A list of call annotations that apply to this call.", - "items": { - "$ref": "GoogleCloudContactcenterinsightsV1CallAnnotation" - }, - "type": "array" + "agentTransfer": { + "$ref": "GoogleCloudCesV1mainAgentTransfer", + "description": "Optional. Agent transfer event." }, - "entities": { + "blob": { + "$ref": "GoogleCloudCesV1mainBlob", + "description": "Optional. Blob data." + }, + "defaultVariables": { "additionalProperties": { - "$ref": "GoogleCloudContactcenterinsightsV1Entity" + "description": "Properties of the object.", + "type": "any" }, - "description": "All the entities in the call.", + "description": "A struct represents default variables at the start of the conversation, keyed by variable names.", "type": "object" }, - "intents": { + "image": { + "$ref": "GoogleCloudCesV1mainImage", + "description": "Optional. Image data." + }, + "payload": { "additionalProperties": { - "$ref": "GoogleCloudContactcenterinsightsV1Intent" + "description": "Properties of the object.", + "type": "any" }, - "description": "All the matched intents in the call.", + "description": "Optional. Custom payload data.", "type": "object" }, - "issueModelResult": { - "$ref": "GoogleCloudContactcenterinsightsV1IssueModelResult", - "description": "Overall conversation-level issue modeling result." + "text": { + "description": "Optional. Text data.", + "type": "string" }, - "phraseMatchers": { + "toolCall": { + "$ref": "GoogleCloudCesV1mainToolCall", + "description": "Optional. Tool execution request." + }, + "toolResponse": { + "$ref": "GoogleCloudCesV1mainToolResponse", + "description": "Optional. Tool execution response." + }, + "transcript": { + "description": "Optional. Transcript associated with the audio.", + "type": "string" + }, + "updatedVariables": { "additionalProperties": { - "$ref": "GoogleCloudContactcenterinsightsV1PhraseMatchData" + "description": "Properties of the object.", + "type": "any" }, - "description": "All the matched phrase matchers in the call.", + "description": "A struct represents variables that were updated in the conversation, keyed by variable names.", "type": "object" - }, - "qaScorecardResults": { - "description": "Results of scoring QaScorecards.", - "items": { - "$ref": "GoogleCloudContactcenterinsightsV1QaScorecardResult" + } + }, + "type": "object" + }, + "GoogleCloudCesV1mainEndSession": { + "description": "Indicates the session has terminated, due to either successful completion (e.g. user says \"Good bye!\" ) or an agent escalation. The agent will not process any further inputs after session is terminated and the client should half-close and disconnect after receiving all remaining responses from the agent.", + "id": "GoogleCloudCesV1mainEndSession", + "properties": { + "metadata": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" }, - "type": "array" + "description": "Optional. Provides additional information about the end session signal, such as the reason for ending the session.", + "type": "object" + } + }, + "type": "object" + }, + "GoogleCloudCesV1mainImage": { + "description": "Represents an image input or output in the conversation.", + "id": "GoogleCloudCesV1mainImage", + "properties": { + "data": { + "description": "Required. Raw bytes of the image.", + "format": "byte", + "type": "string" }, - "sentiments": { - "description": "Overall conversation-level sentiment for each channel of the call.", + "mimeType": { + "description": "Required. The IANA standard MIME type of the source data. Supported image types includes: * image/png * image/jpeg * image/webp", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudCesV1mainMessage": { + "description": "A message within a conversation.", + "id": "GoogleCloudCesV1mainMessage", + "properties": { + "chunks": { + "description": "Optional. Content of the message as a series of chunks.", "items": { - "$ref": "GoogleCloudContactcenterinsightsV1ConversationLevelSentiment" + "$ref": "GoogleCloudCesV1mainChunk" }, "type": "array" }, - "silence": { - "$ref": "GoogleCloudContactcenterinsightsV1ConversationLevelSilence", - "description": "Overall conversation-level silence during the call." + "eventTime": { + "description": "Optional. Timestamp when the message was sent or received. Should not be used if the message is part of an example.", + "format": "google-datetime", + "type": "string" + }, + "role": { + "description": "Optional. The role within the conversation, e.g., user, agent.", + "type": "string" } }, "type": "object" }, - "GoogleCloudContactcenterinsightsV1AnalysisRule": { - "description": "The CCAI Insights project wide analysis rule. This rule will be applied to all conversations that match the filter defined in the rule. For a conversation matches the filter, the annotators specified in the rule will be run. If a conversation matches multiple rules, a union of all the annotators will be run. One project can have multiple analysis rules.", - "id": "GoogleCloudContactcenterinsightsV1AnalysisRule", + "GoogleCloudCesV1mainSpan": { + "description": "A span is a unit of work or a single operation during the request processing.", + "id": "GoogleCloudCesV1mainSpan", "properties": { - "active": { - "description": "If true, apply this rule to conversations. Otherwise, this rule is inactive and saved as a draft.", - "type": "boolean" - }, - "analysisPercentage": { - "description": "Percentage of conversations that we should apply this analysis setting automatically, between [0, 1]. For example, 0.1 means 10%. Conversations are sampled in a determenestic way. The original runtime_percentage & upload percentage will be replaced by defining filters on the conversation.", - "format": "double", - "type": "number" + "attributes": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Output only. Key-value attributes associated with the span.", + "readOnly": true, + "type": "object" }, - "annotatorSelector": { - "$ref": "GoogleCloudContactcenterinsightsV1AnnotatorSelector", - "description": "Selector of annotators to run and the phrase matchers to use for conversations that matches the conversation_filter. If not specified, NO annotators will be run." + "childSpans": { + "description": "Output only. The child spans that are nested under this span.", + "items": { + "$ref": "GoogleCloudCesV1mainSpan" + }, + "readOnly": true, + "type": "array" }, - "conversationFilter": { - "description": "Filter for the conversations that should apply this analysis rule. An empty filter means this analysis rule applies to all conversations. Refer to https://cloud.google.com/contact-center/insights/docs/filtering for details.", + "duration": { + "description": "Output only. The duration of the span.", + "format": "google-duration", + "readOnly": true, "type": "string" }, - "createTime": { - "description": "Output only. The time at which this analysis rule was created.", + "endTime": { + "description": "Output only. The end time of the span.", "format": "google-datetime", "readOnly": true, "type": "string" }, - "displayName": { - "description": "Display Name of the analysis rule.", - "type": "string" - }, "name": { - "description": "Identifier. The resource name of the analysis rule. Format: projects/{project}/locations/{location}/analysisRules/{analysis_rule}", + "description": "Output only. The name of the span.", + "readOnly": true, "type": "string" }, - "updateTime": { - "description": "Output only. The most recent time at which this analysis rule was updated.", + "startTime": { + "description": "Output only. The start time of the span.", "format": "google-datetime", "readOnly": true, "type": "string" @@ -6253,16 +6419,244 @@ }, "type": "object" }, - "GoogleCloudContactcenterinsightsV1AnnotationBoundary": { - "description": "A point in a conversation that marks the start or the end of an annotation.", - "id": "GoogleCloudContactcenterinsightsV1AnnotationBoundary", + "GoogleCloudCesV1mainToolCall": { + "description": "Request for the client or the agent to execute the specified tool.", + "id": "GoogleCloudCesV1mainToolCall", "properties": { - "transcriptIndex": { - "description": "The index in the sequence of transcribed pieces of the conversation where the boundary is located. This index starts at zero.", - "format": "int32", - "type": "integer" - }, - "wordIndex": { + "args": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Optional. The input parameters and values for the tool in JSON object format.", + "type": "object" + }, + "displayName": { + "description": "Output only. Display name of the tool.", + "readOnly": true, + "type": "string" + }, + "id": { + "description": "Optional. The unique identifier of the tool call. If populated, the client should return the execution result with the matching ID in ToolResponse.", + "type": "string" + }, + "tool": { + "description": "Optional. The name of the tool to execute. Format: `projects/{project}/locations/{location}/apps/{app}/tools/{tool}`", + "type": "string" + }, + "toolsetTool": { + "$ref": "GoogleCloudCesV1mainToolsetTool", + "description": "Optional. The toolset tool to execute." + } + }, + "type": "object" + }, + "GoogleCloudCesV1mainToolResponse": { + "description": "The execution result of a specific tool from the client or the agent.", + "id": "GoogleCloudCesV1mainToolResponse", + "properties": { + "displayName": { + "description": "Output only. Display name of the tool.", + "readOnly": true, + "type": "string" + }, + "id": { + "description": "Optional. The matching ID of the tool call the response is for.", + "type": "string" + }, + "response": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Required. The tool execution result in JSON object format. Use \"output\" key to specify tool response and \"error\" key to specify error details (if any). If \"output\" and \"error\" keys are not specified, then whole \"response\" is treated as tool execution result.", + "type": "object" + }, + "tool": { + "description": "Optional. The name of the tool to execute. Format: `projects/{project}/locations/{location}/apps/{app}/tools/{tool}`", + "type": "string" + }, + "toolsetTool": { + "$ref": "GoogleCloudCesV1mainToolsetTool", + "description": "Optional. The toolset tool that got executed." + } + }, + "type": "object" + }, + "GoogleCloudCesV1mainToolsetTool": { + "description": "A tool that is created from a toolset.", + "id": "GoogleCloudCesV1mainToolsetTool", + "properties": { + "toolId": { + "description": "Optional. The tool ID to filter the tools to retrieve the schema for.", + "type": "string" + }, + "toolset": { + "description": "Required. The resource name of the Toolset from which this tool is derived. Format: `projects/{project}/locations/{location}/apps/{app}/toolsets/{toolset}`", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1Analysis": { + "description": "The analysis resource.", + "id": "GoogleCloudContactcenterinsightsV1Analysis", + "properties": { + "analysisResult": { + "$ref": "GoogleCloudContactcenterinsightsV1AnalysisResult", + "description": "Output only. The result of the analysis, which is populated when the analysis finishes.", + "readOnly": true + }, + "annotatorSelector": { + "$ref": "GoogleCloudContactcenterinsightsV1AnnotatorSelector", + "description": "To select the annotators to run and the phrase matchers to use (if any). If not specified, all annotators will be run." + }, + "createTime": { + "description": "Output only. The time at which the analysis was created, which occurs when the long-running operation completes.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Immutable. The resource name of the analysis. Format: projects/{project}/locations/{location}/conversations/{conversation}/analyses/{analysis}", + "type": "string" + }, + "requestTime": { + "description": "Output only. The time at which the analysis was requested.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1AnalysisResult": { + "description": "The result of an analysis.", + "id": "GoogleCloudContactcenterinsightsV1AnalysisResult", + "properties": { + "callAnalysisMetadata": { + "$ref": "GoogleCloudContactcenterinsightsV1AnalysisResultCallAnalysisMetadata", + "description": "Call-specific metadata created by the analysis." + }, + "endTime": { + "description": "The time at which the analysis ended.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1AnalysisResultCallAnalysisMetadata": { + "description": "Call-specific metadata created during analysis.", + "id": "GoogleCloudContactcenterinsightsV1AnalysisResultCallAnalysisMetadata", + "properties": { + "annotations": { + "description": "A list of call annotations that apply to this call.", + "items": { + "$ref": "GoogleCloudContactcenterinsightsV1CallAnnotation" + }, + "type": "array" + }, + "entities": { + "additionalProperties": { + "$ref": "GoogleCloudContactcenterinsightsV1Entity" + }, + "description": "All the entities in the call.", + "type": "object" + }, + "intents": { + "additionalProperties": { + "$ref": "GoogleCloudContactcenterinsightsV1Intent" + }, + "description": "All the matched intents in the call.", + "type": "object" + }, + "issueModelResult": { + "$ref": "GoogleCloudContactcenterinsightsV1IssueModelResult", + "description": "Overall conversation-level issue modeling result." + }, + "phraseMatchers": { + "additionalProperties": { + "$ref": "GoogleCloudContactcenterinsightsV1PhraseMatchData" + }, + "description": "All the matched phrase matchers in the call.", + "type": "object" + }, + "qaScorecardResults": { + "description": "Results of scoring QaScorecards.", + "items": { + "$ref": "GoogleCloudContactcenterinsightsV1QaScorecardResult" + }, + "type": "array" + }, + "sentiments": { + "description": "Overall conversation-level sentiment for each channel of the call.", + "items": { + "$ref": "GoogleCloudContactcenterinsightsV1ConversationLevelSentiment" + }, + "type": "array" + }, + "silence": { + "$ref": "GoogleCloudContactcenterinsightsV1ConversationLevelSilence", + "description": "Overall conversation-level silence during the call." + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1AnalysisRule": { + "description": "The CCAI Insights project wide analysis rule. This rule will be applied to all conversations that match the filter defined in the rule. For a conversation matches the filter, the annotators specified in the rule will be run. If a conversation matches multiple rules, a union of all the annotators will be run. One project can have multiple analysis rules.", + "id": "GoogleCloudContactcenterinsightsV1AnalysisRule", + "properties": { + "active": { + "description": "If true, apply this rule to conversations. Otherwise, this rule is inactive and saved as a draft.", + "type": "boolean" + }, + "analysisPercentage": { + "description": "Percentage of conversations that we should apply this analysis setting automatically, between [0, 1]. For example, 0.1 means 10%. Conversations are sampled in a determenestic way. The original runtime_percentage & upload percentage will be replaced by defining filters on the conversation.", + "format": "double", + "type": "number" + }, + "annotatorSelector": { + "$ref": "GoogleCloudContactcenterinsightsV1AnnotatorSelector", + "description": "Selector of annotators to run and the phrase matchers to use for conversations that matches the conversation_filter. If not specified, NO annotators will be run." + }, + "conversationFilter": { + "description": "Filter for the conversations that should apply this analysis rule. An empty filter means this analysis rule applies to all conversations. Refer to https://cloud.google.com/contact-center/insights/docs/filtering for details.", + "type": "string" + }, + "createTime": { + "description": "Output only. The time at which this analysis rule was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "displayName": { + "description": "Display Name of the analysis rule.", + "type": "string" + }, + "name": { + "description": "Identifier. The resource name of the analysis rule. Format: projects/{project}/locations/{location}/analysisRules/{analysis_rule}", + "type": "string" + }, + "updateTime": { + "description": "Output only. The most recent time at which this analysis rule was updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1AnnotationBoundary": { + "description": "A point in a conversation that marks the start or the end of an annotation.", + "id": "GoogleCloudContactcenterinsightsV1AnnotationBoundary", + "properties": { + "transcriptIndex": { + "description": "The index in the sequence of transcribed pieces of the conversation where the boundary is located. This index starts at zero.", + "format": "int32", + "type": "integer" + }, + "wordIndex": { "description": "The word index of this boundary with respect to the first word in the transcript piece. This index starts at zero.", "format": "int32", "type": "integer" @@ -7281,6 +7675,35 @@ }, "type": "object" }, + "GoogleCloudContactcenterinsightsV1CesEndSessionAnnotation": { + "description": "The CES end session annotation.", + "id": "GoogleCloudContactcenterinsightsV1CesEndSessionAnnotation", + "properties": { + "endSession": { + "$ref": "GoogleCloudCesV1mainEndSession", + "description": "End session signal from CES." + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1CesTurnAnnotation": { + "description": "The CES diagnostic information.", + "id": "GoogleCloudContactcenterinsightsV1CesTurnAnnotation", + "properties": { + "messages": { + "description": "The messages in the turn.", + "items": { + "$ref": "GoogleCloudCesV1mainMessage" + }, + "type": "array" + }, + "rootSpan": { + "$ref": "GoogleCloudCesV1mainSpan", + "description": "The root span of the action processing." + } + }, + "type": "object" + }, "GoogleCloudContactcenterinsightsV1Chart": { "description": "Configurable dashboard's widget that displays data as a chart.", "id": "GoogleCloudContactcenterinsightsV1Chart", @@ -8533,33 +8956,304 @@ "properties": {}, "type": "object" }, - "GoogleCloudContactcenterinsightsV1DialogflowIntent": { - "description": "The data for a Dialogflow intent. Represents a detected intent in the conversation, e.g. MAKES_PROMISE.", - "id": "GoogleCloudContactcenterinsightsV1DialogflowIntent", + "GoogleCloudContactcenterinsightsV1DiagnoseConversationsMetadata": { + "description": "Metadata for a DiagnoseConversations operation.", + "id": "GoogleCloudContactcenterinsightsV1DiagnoseConversationsMetadata", "properties": { - "displayName": { - "description": "The human-readable name of the intent.", + "createTime": { + "description": "Output only. The time the operation was created.", + "format": "google-datetime", + "readOnly": true, "type": "string" - } - }, - "type": "object" - }, - "GoogleCloudContactcenterinsightsV1DialogflowInteractionData": { - "description": "Dialogflow interaction data.", - "id": "GoogleCloudContactcenterinsightsV1DialogflowInteractionData", - "properties": { - "confidence": { - "description": "The confidence of the match ranging from 0.0 (completely uncertain) to 1.0 (completely certain).", - "format": "float", - "type": "number" }, - "dialogflowIntentId": { - "description": "The Dialogflow intent resource path. Format: projects/{project}/agent/{agent}/intents/{intent}", + "diagnosticReport": { + "$ref": "GoogleCloudContactcenterinsightsV1DiagnosticReport", + "description": "Output only. The diagnostic report containing metrics and intent breakdowns.", + "readOnly": true + }, + "endTime": { + "description": "Output only. The time the operation finished running.", + "format": "google-datetime", + "readOnly": true, "type": "string" - } - }, - "type": "object" - }, + }, + "fullReport": { + "description": "Output only. If true, the agent generated a full diagnostic report for all sub-agents.", + "readOnly": true, + "type": "boolean" + }, + "latestStep": { + "$ref": "GoogleCloudContactcenterinsightsV1SherlockStep", + "description": "Output only. The most recent thought or action from the agent.", + "readOnly": true + }, + "metricType": { + "description": "Output only. The type of metric being diagnosed.", + "enum": [ + "DIAGNOSTIC_METRIC_TYPE_UNSPECIFIED", + "ESCALATION", + "CONTAINMENT" + ], + "enumDescriptions": [ + "Metric type is unspecified.", + "Escalation rate.", + "Containment rate." + ], + "readOnly": true, + "type": "string" + }, + "partialTrajectories": { + "deprecated": true, + "description": "Output only. Deprecated: Use partial_trajectory_steps instead. The intermediate trajectory updates (partial trajectory).", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "partialTrajectorySteps": { + "description": "Output only. The intermediate trajectory updates. This can be used for live progress tracking of the agent's thoughts and actions as it works through the analysis.", + "items": { + "$ref": "GoogleCloudContactcenterinsightsV1SherlockStep" + }, + "readOnly": true, + "type": "array" + }, + "request": { + "$ref": "GoogleCloudContactcenterinsightsV1DiagnoseConversationsRequest", + "description": "Output only. The request that created the operation.", + "readOnly": true + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1DiagnoseConversationsRequest": { + "description": "The request to analyze conversation data using agentic workflows. This RPC triggers a complex analysis process that may involve several steps of reasoning and tool execution.", + "id": "GoogleCloudContactcenterinsightsV1DiagnoseConversationsRequest", + "properties": { + "dryRun": { + "description": "Optional. If true, the request will be validated and a simulation of the analysis will be performed without actually executing the task.", + "type": "boolean" + }, + "filter": { + "description": "Optional. AIP-160 compliant filter for selecting target conversations.", + "type": "string" + }, + "fullReport": { + "description": "Optional. If true, the agent will generate a full diagnostic report for all sub-agents.", + "type": "boolean" + }, + "instructions": { + "description": "Optional. Specific instructions for the agent.", + "type": "string" + }, + "maxSteps": { + "description": "Optional. The maximum number of steps the agent can take during the execution of the task. Defaults to 10.", + "format": "int32", + "type": "integer" + }, + "metricType": { + "description": "Optional. The type of metric being diagnosed.", + "enum": [ + "DIAGNOSTIC_METRIC_TYPE_UNSPECIFIED", + "ESCALATION", + "CONTAINMENT" + ], + "enumDescriptions": [ + "Metric type is unspecified.", + "Escalation rate.", + "Containment rate." + ], + "type": "string" + }, + "outputConfig": { + "$ref": "GoogleCloudContactcenterinsightsV1OutputConfig", + "description": "Optional. The configuration for the output of the task." + }, + "parent": { + "description": "Required. The parent resource where the analysis will be performed.", + "type": "string" + }, + "requestId": { + "description": "Optional. Required. A unique ID that identifies the request. If the service receives two `DiagnoseConversationsRequest`s with the same `request_id`, then the second request will be ignored; instead, the response of the first request will be returned. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), and hyphens (-). The maximum length is 40 characters.", + "type": "string" + }, + "taskQuery": { + "description": "Optional. A natural language description of the analysis goal or question.", + "type": "string" + }, + "validateOnly": { + "description": "Optional. If true, the request will only be validated (permissions, filter syntax, etc.) without actually triggering the analysis.", + "type": "boolean" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1DiagnoseConversationsResponse": { + "description": "The response from a DiagnoseConversations request.", + "id": "GoogleCloudContactcenterinsightsV1DiagnoseConversationsResponse", + "properties": { + "answer": { + "description": "Output only. The final, high-level answer or diagnostic summary returned by the Sherlock worker.", + "readOnly": true, + "type": "string" + }, + "exportUri": { + "description": "Output only. If an external destination was requested, the URI of the exported data.", + "readOnly": true, + "type": "string" + }, + "fullTrajectories": { + "deprecated": true, + "description": "Output only. Deprecated: Use full_trajectory_steps instead. The complete sequence of thoughts and actions (full trajectory).", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "fullTrajectorySteps": { + "description": "Output only. The complete sequence of thoughts and actions taken by the agent.", + "items": { + "$ref": "GoogleCloudContactcenterinsightsV1SherlockStep" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1Diagnostic": { + "description": "The diagnostic resource.", + "id": "GoogleCloudContactcenterinsightsV1Diagnostic", + "properties": { + "analysisSummary": { + "description": "Output only. The complete sequence of thoughts and actions taken by the agent.", + "readOnly": true, + "type": "string" + }, + "conversationFilter": { + "description": "Output only. The filter used to select the conversations that were included in the diagnostic.", + "readOnly": true, + "type": "string" + }, + "createTime": { + "description": "Output only. The time at which the diagnostic was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Immutable. Identifier. The resource name of the diagnostic.", + "type": "string" + }, + "report": { + "$ref": "GoogleCloudContactcenterinsightsV1DiagnosticReport", + "description": "Output only. The report containing the findings of the diagnostic.", + "readOnly": true + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1DiagnosticReport": { + "description": "A diagnostic report containing aggregate metrics and intent breakdowns.", + "id": "GoogleCloudContactcenterinsightsV1DiagnosticReport", + "properties": { + "intentStats": { + "description": "Output only. A breakdown of metrics grouped by intent.", + "items": { + "$ref": "GoogleCloudContactcenterinsightsV1DiagnosticReportIntentStats" + }, + "readOnly": true, + "type": "array" + }, + "lossPatterns": { + "description": "Output only. A list of loss patterns identified for the entire project/dataset.", + "items": { + "$ref": "GoogleCloudContactcenterinsightsV1LossPattern" + }, + "readOnly": true, + "type": "array" + }, + "metrics": { + "additionalProperties": { + "$ref": "GoogleCloudContactcenterinsightsV1MetricValue" + }, + "deprecated": true, + "description": "Output only. Deprecated: The type of the metric. Metrics for Outcome Based Insights derived from QueryMetrics.", + "readOnly": true, + "type": "object" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1DiagnosticReportIntentStats": { + "description": "A breakdown of metrics grouped by intent.", + "id": "GoogleCloudContactcenterinsightsV1DiagnosticReportIntentStats", + "properties": { + "conversationCount": { + "description": "Output only. The number of conversations associated with this intent.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "intentDisplayName": { + "description": "Output only. The display name of the intent.", + "readOnly": true, + "type": "string" + }, + "intentId": { + "description": "Output only. The unique identifier for the intent (from Discovery Engine).", + "readOnly": true, + "type": "string" + }, + "lossPatterns": { + "description": "Output only. A list of loss patterns identified for this intent.", + "items": { + "$ref": "GoogleCloudContactcenterinsightsV1LossPattern" + }, + "readOnly": true, + "type": "array" + }, + "metrics": { + "additionalProperties": { + "$ref": "GoogleCloudContactcenterinsightsV1MetricValue" + }, + "deprecated": true, + "description": "Output only. Deprecated: The type of the metric. Metrics for Outcome Based Insights derived from QueryMetrics.", + "readOnly": true, + "type": "object" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1DialogflowIntent": { + "description": "The data for a Dialogflow intent. Represents a detected intent in the conversation, e.g. MAKES_PROMISE.", + "id": "GoogleCloudContactcenterinsightsV1DialogflowIntent", + "properties": { + "displayName": { + "description": "The human-readable name of the intent.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1DialogflowInteractionData": { + "description": "Dialogflow interaction data.", + "id": "GoogleCloudContactcenterinsightsV1DialogflowInteractionData", + "properties": { + "confidence": { + "description": "The confidence of the match ranging from 0.0 (completely uncertain) to 1.0 (completely certain).", + "format": "float", + "type": "number" + }, + "dialogflowIntentId": { + "description": "The Dialogflow intent resource path. Format: projects/{project}/agent/{agent}/intents/{intent}", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudContactcenterinsightsV1DialogflowSource": { "description": "A Dialogflow source of conversation data.", "id": "GoogleCloudContactcenterinsightsV1DialogflowSource", @@ -10563,6 +11257,24 @@ }, "type": "object" }, + "GoogleCloudContactcenterinsightsV1ListDiagnosticsResponse": { + "description": "The response from a ListDiagnostics request.", + "id": "GoogleCloudContactcenterinsightsV1ListDiagnosticsResponse", + "properties": { + "diagnostics": { + "description": "Optional. The diagnostics that match the request.", + "items": { + "$ref": "GoogleCloudContactcenterinsightsV1Diagnostic" + }, + "type": "array" + }, + "nextPageToken": { + "description": "Optional. A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudContactcenterinsightsV1ListFeedbackLabelsResponse": { "description": "The response for listing feedback labels.", "id": "GoogleCloudContactcenterinsightsV1ListFeedbackLabelsResponse", @@ -10735,69 +11447,191 @@ }, "type": "object" }, - "GoogleCloudContactcenterinsightsV1Note": { - "description": "The conversation assessment note resource.", - "id": "GoogleCloudContactcenterinsightsV1Note", + "GoogleCloudContactcenterinsightsV1LossPattern": { + "description": "A loss pattern of a virtual agent and suggested fixes.", + "id": "GoogleCloudContactcenterinsightsV1LossPattern", "properties": { - "assessmentNote": { - "$ref": "GoogleCloudContactcenterinsightsV1NoteAssessmentNote", - "description": "The note is associated to the entire parent assessment." + "conversationIds": { + "description": "Output only. A list of conversation IDs that match this loss pattern.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" }, - "content": { - "description": "The note content.", + "description": { + "description": "Output only. A markdown description of the loss pattern.", + "readOnly": true, "type": "string" }, - "conversationTurnNote": { - "$ref": "GoogleCloudContactcenterinsightsV1NoteConversationTurnNote", - "description": "The note is associated with a conversation turn." - }, - "createTime": { - "description": "Output only. The time at which the note was created.", - "format": "google-datetime", + "displayName": { + "description": "Output only. The display name of the loss pattern.", "readOnly": true, "type": "string" }, - "name": { - "description": "Identifier. The resource name of the note. Format: projects/{project}/locations/{location}/conversations/{conversation}/assessments/{assessment}/notes/{note}", + "examples": { + "description": "Output only. A markdown of loss pattern examples.", + "readOnly": true, "type": "string" }, - "noteCreator": { - "$ref": "GoogleCloudContactcenterinsightsV1UserInfo", - "description": "Output only. The user that created the note.", - "readOnly": true + "id": { + "description": "Output only. The unique identifier for the loss pattern.", + "readOnly": true, + "type": "string" }, - "qaQuestionNote": { - "$ref": "GoogleCloudContactcenterinsightsV1NoteQaQuestionNote", - "description": "The note is associated with a QA question in one of the conversation's scorecard results." + "percentage": { + "description": "Output only. The percentage of conversations that match this loss pattern.", + "format": "double", + "readOnly": true, + "type": "number" }, - "updateTime": { - "description": "Output only. The time at which the note was last updated.", - "format": "google-datetime", + "suggestedFixes": { + "description": "Output only. A markdown description of the suggested fixes.", "readOnly": true, "type": "string" } }, "type": "object" }, - "GoogleCloudContactcenterinsightsV1NoteAssessmentNote": { - "description": "A note about the entire parent assessment.", - "id": "GoogleCloudContactcenterinsightsV1NoteAssessmentNote", - "properties": {}, - "type": "object" - }, - "GoogleCloudContactcenterinsightsV1NoteConversationTurnNote": { - "description": "A note about a conversation turn.", - "id": "GoogleCloudContactcenterinsightsV1NoteConversationTurnNote", + "GoogleCloudContactcenterinsightsV1MetricDefinition": { + "description": "A definition for a metric to be calculated during analysis.", + "id": "GoogleCloudContactcenterinsightsV1MetricDefinition", "properties": { - "turnIndex": { - "description": "The conversation turn index that the note is associated with.", - "format": "int32", - "type": "integer" + "displayName": { + "description": "Output only. The user-visible name of the metric (e.g., \"Containment Rate\").", + "readOnly": true, + "type": "string" + }, + "sourceId": { + "description": "Output only. The resource name of the underlying Insights primitive (e.g., Tag or QaQuestion) used to calculate this metric.", + "readOnly": true, + "type": "string" } }, "type": "object" }, - "GoogleCloudContactcenterinsightsV1NoteQaQuestionNote": { + "GoogleCloudContactcenterinsightsV1MetricValue": { + "deprecated": true, + "description": "Deprecated: MetricValue is no longer used for diagnostics.", + "id": "GoogleCloudContactcenterinsightsV1MetricValue", + "properties": { + "conversations": { + "description": "Output only. The list of conversation names that contributed to this metric (hits). Format: `projects/{project}/locations/{location}/conversations/{conversation}`", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "displayName": { + "description": "Output only. The user-visible name of the metric (e.g., \"Containment Rate\").", + "readOnly": true, + "type": "string" + }, + "hitCount": { + "description": "Output only. The number of positive matches (hits) for this metric.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "metricType": { + "description": "Output only. Deprecated: The type of the metric. Metrics for Outcome Based Insights derived from QueryMetrics.", + "enum": [ + "METRIC_TYPE_UNSPECIFIED", + "ESCALATION", + "CONTAINMENT" + ], + "enumDescriptions": [ + "Metric type is unspecified.", + "Escalation rate.", + "Containment rate." + ], + "readOnly": true, + "type": "string" + }, + "sourceId": { + "description": "Output only. The resource name of the underlying Insights primitive (e.g., Tag or QaQuestion) used to calculate this metric.", + "readOnly": true, + "type": "string" + }, + "totalCount": { + "description": "Output only. The total number of items evaluated for this metric.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "value": { + "description": "Output only. The calculated value of the metric (usually a ratio or rate 0.0 - 1.0).", + "format": "double", + "readOnly": true, + "type": "number" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1Note": { + "description": "The conversation assessment note resource.", + "id": "GoogleCloudContactcenterinsightsV1Note", + "properties": { + "assessmentNote": { + "$ref": "GoogleCloudContactcenterinsightsV1NoteAssessmentNote", + "description": "The note is associated to the entire parent assessment." + }, + "content": { + "description": "The note content.", + "type": "string" + }, + "conversationTurnNote": { + "$ref": "GoogleCloudContactcenterinsightsV1NoteConversationTurnNote", + "description": "The note is associated with a conversation turn." + }, + "createTime": { + "description": "Output only. The time at which the note was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Identifier. The resource name of the note. Format: projects/{project}/locations/{location}/conversations/{conversation}/assessments/{assessment}/notes/{note}", + "type": "string" + }, + "noteCreator": { + "$ref": "GoogleCloudContactcenterinsightsV1UserInfo", + "description": "Output only. The user that created the note.", + "readOnly": true + }, + "qaQuestionNote": { + "$ref": "GoogleCloudContactcenterinsightsV1NoteQaQuestionNote", + "description": "The note is associated with a QA question in one of the conversation's scorecard results." + }, + "updateTime": { + "description": "Output only. The time at which the note was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1NoteAssessmentNote": { + "description": "A note about the entire parent assessment.", + "id": "GoogleCloudContactcenterinsightsV1NoteAssessmentNote", + "properties": {}, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1NoteConversationTurnNote": { + "description": "A note about a conversation turn.", + "id": "GoogleCloudContactcenterinsightsV1NoteConversationTurnNote", + "properties": { + "turnIndex": { + "description": "The conversation turn index that the note is associated with.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1NoteQaQuestionNote": { "description": "A note about a QA question.", "id": "GoogleCloudContactcenterinsightsV1NoteQaQuestionNote", "properties": { @@ -10808,6 +11642,70 @@ }, "type": "object" }, + "GoogleCloudContactcenterinsightsV1OutputConfig": { + "description": "Configuration for where to export or return the analysis findings.", + "id": "GoogleCloudContactcenterinsightsV1OutputConfig", + "properties": { + "bigqueryDestination": { + "$ref": "GoogleCloudContactcenterinsightsV1OutputConfigBigQueryDestination", + "description": "Optional. Export to BigQuery." + }, + "gcsDestination": { + "$ref": "GoogleCloudContactcenterinsightsV1OutputConfigGcsDestination", + "description": "Optional. Export to a Cloud Storage bucket." + }, + "googleSheetsDestination": { + "$ref": "GoogleCloudContactcenterinsightsV1OutputConfigGoogleSheetsDestination", + "description": "Optional. Export directly to a Google Sheet." + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1OutputConfigBigQueryDestination": { + "description": "BigQuery destination configuration.", + "id": "GoogleCloudContactcenterinsightsV1OutputConfigBigQueryDestination", + "properties": { + "dataset": { + "description": "Required. The name of the BigQuery dataset.", + "type": "string" + }, + "projectId": { + "description": "Optional. A project ID or number.", + "type": "string" + }, + "table": { + "description": "Required. The BigQuery table name.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1OutputConfigGcsDestination": { + "description": "Cloud Storage destination configuration.", + "id": "GoogleCloudContactcenterinsightsV1OutputConfigGcsDestination", + "properties": { + "uri": { + "description": "Required. The Cloud Storage URI to export the results to.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1OutputConfigGoogleSheetsDestination": { + "description": "Google Sheets destination configuration.", + "id": "GoogleCloudContactcenterinsightsV1OutputConfigGoogleSheetsDestination", + "properties": { + "sheet": { + "description": "Optional. The sheet name.", + "type": "string" + }, + "spreadsheetId": { + "description": "Optional. An existing Google Sheets ID.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudContactcenterinsightsV1PhraseMatchData": { "description": "The data for a matched phrase matcher. Represents information identifying a phrase matcher for a given match.", "id": "GoogleCloudContactcenterinsightsV1PhraseMatchData", @@ -12175,6 +13073,14 @@ "$ref": "GoogleCloudContactcenterinsightsV1ArticleSuggestionData", "description": "Agent Assist Article Suggestion data." }, + "cesEndSessionAnnotation": { + "$ref": "GoogleCloudContactcenterinsightsV1CesEndSessionAnnotation", + "description": "The CES end session annotation." + }, + "cesTurnAnnotation": { + "$ref": "GoogleCloudContactcenterinsightsV1CesTurnAnnotation", + "description": "The CES turn annotation." + }, "conversationSummarizationSuggestion": { "$ref": "GoogleCloudContactcenterinsightsV1ConversationSummarizationSuggestionData", "description": "Conversation summarization suggestion data." @@ -12429,6 +13335,10 @@ "readOnly": true, "type": "string" }, + "diagnosticMetricConfig": { + "$ref": "GoogleCloudContactcenterinsightsV1SettingsDiagnosticMetricConfig", + "description": "Optional. Configuration for diagnostic metrics." + }, "languageCode": { "description": "A language code to be applied to each transcript segment unless the segment already specifies a language code. Language code defaults to \"en-US\" if it is neither specified on the segment nor here.", "type": "string" @@ -12490,6 +13400,57 @@ }, "type": "object" }, + "GoogleCloudContactcenterinsightsV1SettingsDiagnosticMetricConfig": { + "description": "Configuration for diagnostic metrics.", + "id": "GoogleCloudContactcenterinsightsV1SettingsDiagnosticMetricConfig", + "properties": { + "metrics": { + "additionalProperties": { + "$ref": "GoogleCloudContactcenterinsightsV1MetricDefinition" + }, + "description": "Optional. A map of diagnostic metrics. The key is a unique identifier for the metric (e.g., \"containment\").", + "type": "object" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1SherlockStep": { + "description": "A step in the agent's reasoning process (Trajectory Step).", + "id": "GoogleCloudContactcenterinsightsV1SherlockStep", + "properties": { + "textInput": { + "description": "Output only. Natural language input stimulus.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "thought": { + "description": "Output only. The reasoning or internal monologue of the agent.", + "readOnly": true, + "type": "string" + }, + "toolCalls": { + "description": "Output only. The tool call issued by the agent.", + "items": { + "$ref": "GoogleCloudContactcenterinsightsV1ToolCall" + }, + "readOnly": true, + "type": "array" + }, + "toolOutput": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Output only. The output response from the tool execution.", + "readOnly": true, + "type": "object" + } + }, + "type": "object" + }, "GoogleCloudContactcenterinsightsV1SignedAudioUris": { "description": "Signed audio URIs for a conversation.", "id": "GoogleCloudContactcenterinsightsV1SignedAudioUris", @@ -12762,6 +13723,27 @@ }, "type": "object" }, + "GoogleCloudContactcenterinsightsV1ToolCall": { + "description": "A tool call from the agent.", + "id": "GoogleCloudContactcenterinsightsV1ToolCall", + "properties": { + "input": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Output only. The input arguments to the tool.", + "readOnly": true, + "type": "object" + }, + "toolName": { + "description": "Output only. The name of the tool being called.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudContactcenterinsightsV1TuneQaScorecardRevisionRequest": { "description": "Request for TuneQaScorecardRevision endpoint.", "id": "GoogleCloudContactcenterinsightsV1TuneQaScorecardRevisionRequest", @@ -13549,6 +14531,35 @@ }, "type": "object" }, + "GoogleCloudContactcenterinsightsV1alpha1CesEndSessionAnnotation": { + "description": "The CES end session annotation.", + "id": "GoogleCloudContactcenterinsightsV1alpha1CesEndSessionAnnotation", + "properties": { + "endSession": { + "$ref": "GoogleCloudCesV1mainEndSession", + "description": "End session signal from CES." + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1CesTurnAnnotation": { + "description": "The CES diagnostic information.", + "id": "GoogleCloudContactcenterinsightsV1alpha1CesTurnAnnotation", + "properties": { + "messages": { + "description": "The messages in the turn.", + "items": { + "$ref": "GoogleCloudCesV1mainMessage" + }, + "type": "array" + }, + "rootSpan": { + "$ref": "GoogleCloudCesV1mainSpan", + "description": "The root span of the action processing." + } + }, + "type": "object" + }, "GoogleCloudContactcenterinsightsV1alpha1ConstraintEvaluationResult": { "description": "The result of testing a constraint expression on a pair of conversations.", "id": "GoogleCloudContactcenterinsightsV1alpha1ConstraintEvaluationResult", @@ -14453,6 +15464,245 @@ "properties": {}, "type": "object" }, + "GoogleCloudContactcenterinsightsV1alpha1DiagnoseConversationsMetadata": { + "description": "Metadata for a DiagnoseConversations operation.", + "id": "GoogleCloudContactcenterinsightsV1alpha1DiagnoseConversationsMetadata", + "properties": { + "createTime": { + "description": "Output only. The time the operation was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "diagnosticReport": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1DiagnosticReport", + "description": "Output only. The diagnostic report containing metrics and intent breakdowns.", + "readOnly": true + }, + "endTime": { + "description": "Output only. The time the operation finished running.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "fullReport": { + "description": "Output only. If true, the agent generated a full diagnostic report for all sub-agents.", + "readOnly": true, + "type": "boolean" + }, + "latestStep": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1SherlockStep", + "description": "Output only. The most recent thought or action from the agent.", + "readOnly": true + }, + "metricType": { + "description": "Output only. The type of metric being diagnosed.", + "enum": [ + "DIAGNOSTIC_METRIC_TYPE_UNSPECIFIED", + "ESCALATION", + "CONTAINMENT" + ], + "enumDescriptions": [ + "Metric type is unspecified.", + "Escalation rate.", + "Containment rate." + ], + "readOnly": true, + "type": "string" + }, + "partialTrajectories": { + "deprecated": true, + "description": "Output only. Deprecated: Use partial_trajectory_steps instead. The intermediate trajectory updates (partial trajectory).", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "partialTrajectorySteps": { + "description": "Output only. The intermediate trajectory updates. This can be used for live progress tracking of the agent's thoughts and actions as it works through the analysis.", + "items": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1SherlockStep" + }, + "readOnly": true, + "type": "array" + }, + "request": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1DiagnoseConversationsRequest", + "description": "Output only. The request that created the operation.", + "readOnly": true + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1DiagnoseConversationsRequest": { + "description": "The request to analyze conversation data using agentic workflows. This RPC triggers a complex analysis process that may involve several steps of reasoning and tool execution.", + "id": "GoogleCloudContactcenterinsightsV1alpha1DiagnoseConversationsRequest", + "properties": { + "dryRun": { + "description": "Optional. If true, the request will be validated and a simulation of the analysis will be performed without actually executing the task.", + "type": "boolean" + }, + "filter": { + "description": "Optional. AIP-160 compliant filter for selecting target conversations.", + "type": "string" + }, + "fullReport": { + "description": "Optional. If true, the agent will generate a full diagnostic report for all sub-agents.", + "type": "boolean" + }, + "instructions": { + "description": "Optional. Specific instructions for the agent.", + "type": "string" + }, + "maxSteps": { + "description": "Optional. The maximum number of steps the agent can take during the execution of the task. Defaults to 10.", + "format": "int32", + "type": "integer" + }, + "metricType": { + "description": "Optional. The type of metric being diagnosed.", + "enum": [ + "DIAGNOSTIC_METRIC_TYPE_UNSPECIFIED", + "ESCALATION", + "CONTAINMENT" + ], + "enumDescriptions": [ + "Metric type is unspecified.", + "Escalation rate.", + "Containment rate." + ], + "type": "string" + }, + "outputConfig": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1OutputConfig", + "description": "Optional. The configuration for the output of the task." + }, + "parent": { + "description": "Required. The parent resource where the analysis will be performed.", + "type": "string" + }, + "requestId": { + "description": "Optional. Required. A unique ID that identifies the request. If the service receives two `DiagnoseConversationsRequest`s with the same `request_id`, then the second request will be ignored; instead, the response of the first request will be returned. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), and hyphens (-). The maximum length is 40 characters.", + "type": "string" + }, + "taskQuery": { + "description": "Optional. A natural language description of the analysis goal or question.", + "type": "string" + }, + "validateOnly": { + "description": "Optional. If true, the request will only be validated (permissions, filter syntax, etc.) without actually triggering the analysis.", + "type": "boolean" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1DiagnoseConversationsResponse": { + "description": "The response from a DiagnoseConversations request.", + "id": "GoogleCloudContactcenterinsightsV1alpha1DiagnoseConversationsResponse", + "properties": { + "answer": { + "description": "Output only. The final, high-level answer or diagnostic summary returned by the Sherlock worker.", + "readOnly": true, + "type": "string" + }, + "exportUri": { + "description": "Output only. If an external destination was requested, the URI of the exported data.", + "readOnly": true, + "type": "string" + }, + "fullTrajectories": { + "deprecated": true, + "description": "Output only. Deprecated: Use full_trajectory_steps instead. The complete sequence of thoughts and actions (full trajectory).", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "fullTrajectorySteps": { + "description": "Output only. The complete sequence of thoughts and actions taken by the agent.", + "items": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1SherlockStep" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1DiagnosticReport": { + "description": "A diagnostic report containing aggregate metrics and intent breakdowns.", + "id": "GoogleCloudContactcenterinsightsV1alpha1DiagnosticReport", + "properties": { + "intentStats": { + "description": "Output only. A breakdown of metrics grouped by intent.", + "items": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1DiagnosticReportIntentStats" + }, + "readOnly": true, + "type": "array" + }, + "lossPatterns": { + "description": "Output only. A list of loss patterns identified for the entire project/dataset.", + "items": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1LossPattern" + }, + "readOnly": true, + "type": "array" + }, + "metrics": { + "additionalProperties": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1MetricValue" + }, + "deprecated": true, + "description": "Output only. Deprecated: The type of the metric. Metrics for Outcome Based Insights derived from QueryMetrics.", + "readOnly": true, + "type": "object" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1DiagnosticReportIntentStats": { + "description": "A breakdown of metrics grouped by intent.", + "id": "GoogleCloudContactcenterinsightsV1alpha1DiagnosticReportIntentStats", + "properties": { + "conversationCount": { + "description": "Output only. The number of conversations associated with this intent.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "intentDisplayName": { + "description": "Output only. The display name of the intent.", + "readOnly": true, + "type": "string" + }, + "intentId": { + "description": "Output only. The unique identifier for the intent (from Discovery Engine).", + "readOnly": true, + "type": "string" + }, + "lossPatterns": { + "description": "Output only. A list of loss patterns identified for this intent.", + "items": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1LossPattern" + }, + "readOnly": true, + "type": "array" + }, + "metrics": { + "additionalProperties": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1MetricValue" + }, + "deprecated": true, + "description": "Output only. Deprecated: The type of the metric. Metrics for Outcome Based Insights derived from QueryMetrics.", + "readOnly": true, + "type": "object" + } + }, + "type": "object" + }, "GoogleCloudContactcenterinsightsV1alpha1DialogflowIntent": { "description": "The data for a Dialogflow intent. Represents a detected intent in the conversation, e.g. MAKES_PROMISE.", "id": "GoogleCloudContactcenterinsightsV1alpha1DialogflowIntent", @@ -16008,47 +17258,216 @@ "description": "Issue model that generates the result. Format: projects/{project}/locations/{location}/issueModels/{issue_model}", "type": "string" }, - "issues": { - "description": "All the matched issues.", - "items": { - "$ref": "GoogleCloudContactcenterinsightsV1alpha1IssueAssignment" - }, - "type": "array" + "issues": { + "description": "All the matched issues.", + "items": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1IssueAssignment" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1ListAllFeedbackLabelsResponse": { + "description": "The response for listing all feedback labels.", + "id": "GoogleCloudContactcenterinsightsV1alpha1ListAllFeedbackLabelsResponse", + "properties": { + "feedbackLabels": { + "description": "The feedback labels that match the request.", + "items": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1FeedbackLabel" + }, + "type": "array" + }, + "nextPageToken": { + "description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1ListFeedbackLabelsResponse": { + "description": "The response for listing feedback labels.", + "id": "GoogleCloudContactcenterinsightsV1alpha1ListFeedbackLabelsResponse", + "properties": { + "feedbackLabels": { + "description": "The feedback labels that match the request.", + "items": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1FeedbackLabel" + }, + "type": "array" + }, + "nextPageToken": { + "description": "The next page token.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1LossPattern": { + "description": "A loss pattern of a virtual agent and suggested fixes.", + "id": "GoogleCloudContactcenterinsightsV1alpha1LossPattern", + "properties": { + "conversationIds": { + "description": "Output only. A list of conversation IDs that match this loss pattern.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "description": { + "description": "Output only. A markdown description of the loss pattern.", + "readOnly": true, + "type": "string" + }, + "displayName": { + "description": "Output only. The display name of the loss pattern.", + "readOnly": true, + "type": "string" + }, + "examples": { + "description": "Output only. A markdown of loss pattern examples.", + "readOnly": true, + "type": "string" + }, + "id": { + "description": "Output only. The unique identifier for the loss pattern.", + "readOnly": true, + "type": "string" + }, + "percentage": { + "description": "Output only. The percentage of conversations that match this loss pattern.", + "format": "double", + "readOnly": true, + "type": "number" + }, + "suggestedFixes": { + "description": "Output only. A markdown description of the suggested fixes.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1MetricValue": { + "deprecated": true, + "description": "Deprecated: MetricValue is no longer used for diagnostics.", + "id": "GoogleCloudContactcenterinsightsV1alpha1MetricValue", + "properties": { + "conversations": { + "description": "Output only. The list of conversation names that contributed to this metric (hits). Format: `projects/{project}/locations/{location}/conversations/{conversation}`", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "displayName": { + "description": "Output only. The user-visible name of the metric (e.g., \"Containment Rate\").", + "readOnly": true, + "type": "string" + }, + "hitCount": { + "description": "Output only. The number of positive matches (hits) for this metric.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "metricType": { + "description": "Output only. Deprecated: The type of the metric. Metrics for Outcome Based Insights derived from QueryMetrics.", + "enum": [ + "METRIC_TYPE_UNSPECIFIED", + "ESCALATION", + "CONTAINMENT" + ], + "enumDescriptions": [ + "Metric type is unspecified.", + "Escalation rate.", + "Containment rate." + ], + "readOnly": true, + "type": "string" + }, + "sourceId": { + "description": "Output only. The resource name of the underlying Insights primitive (e.g., Tag or QaQuestion) used to calculate this metric.", + "readOnly": true, + "type": "string" + }, + "totalCount": { + "description": "Output only. The total number of items evaluated for this metric.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "value": { + "description": "Output only. The calculated value of the metric (usually a ratio or rate 0.0 - 1.0).", + "format": "double", + "readOnly": true, + "type": "number" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1OutputConfig": { + "description": "Configuration for where to export or return the analysis findings.", + "id": "GoogleCloudContactcenterinsightsV1alpha1OutputConfig", + "properties": { + "bigqueryDestination": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1OutputConfigBigQueryDestination", + "description": "Optional. Export to BigQuery." + }, + "gcsDestination": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1OutputConfigGcsDestination", + "description": "Optional. Export to a Cloud Storage bucket." + }, + "googleSheetsDestination": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1OutputConfigGoogleSheetsDestination", + "description": "Optional. Export directly to a Google Sheet." + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1OutputConfigBigQueryDestination": { + "description": "BigQuery destination configuration.", + "id": "GoogleCloudContactcenterinsightsV1alpha1OutputConfigBigQueryDestination", + "properties": { + "dataset": { + "description": "Required. The name of the BigQuery dataset.", + "type": "string" + }, + "projectId": { + "description": "Optional. A project ID or number.", + "type": "string" + }, + "table": { + "description": "Required. The BigQuery table name.", + "type": "string" } }, "type": "object" }, - "GoogleCloudContactcenterinsightsV1alpha1ListAllFeedbackLabelsResponse": { - "description": "The response for listing all feedback labels.", - "id": "GoogleCloudContactcenterinsightsV1alpha1ListAllFeedbackLabelsResponse", + "GoogleCloudContactcenterinsightsV1alpha1OutputConfigGcsDestination": { + "description": "Cloud Storage destination configuration.", + "id": "GoogleCloudContactcenterinsightsV1alpha1OutputConfigGcsDestination", "properties": { - "feedbackLabels": { - "description": "The feedback labels that match the request.", - "items": { - "$ref": "GoogleCloudContactcenterinsightsV1alpha1FeedbackLabel" - }, - "type": "array" - }, - "nextPageToken": { - "description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", + "uri": { + "description": "Required. The Cloud Storage URI to export the results to.", "type": "string" } }, "type": "object" }, - "GoogleCloudContactcenterinsightsV1alpha1ListFeedbackLabelsResponse": { - "description": "The response for listing feedback labels.", - "id": "GoogleCloudContactcenterinsightsV1alpha1ListFeedbackLabelsResponse", + "GoogleCloudContactcenterinsightsV1alpha1OutputConfigGoogleSheetsDestination": { + "description": "Google Sheets destination configuration.", + "id": "GoogleCloudContactcenterinsightsV1alpha1OutputConfigGoogleSheetsDestination", "properties": { - "feedbackLabels": { - "description": "The feedback labels that match the request.", - "items": { - "$ref": "GoogleCloudContactcenterinsightsV1alpha1FeedbackLabel" - }, - "type": "array" + "sheet": { + "description": "Optional. The sheet name.", + "type": "string" }, - "nextPageToken": { - "description": "The next page token.", + "spreadsheetId": { + "description": "Optional. An existing Google Sheets ID.", "type": "string" } }, @@ -16840,6 +18259,14 @@ "$ref": "GoogleCloudContactcenterinsightsV1alpha1ArticleSuggestionData", "description": "Agent Assist Article Suggestion data." }, + "cesEndSessionAnnotation": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1CesEndSessionAnnotation", + "description": "The CES end session annotation." + }, + "cesTurnAnnotation": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1CesTurnAnnotation", + "description": "The CES turn annotation." + }, "conversationSummarizationSuggestion": { "$ref": "GoogleCloudContactcenterinsightsV1alpha1ConversationSummarizationSuggestionData", "description": "Conversation summarization suggestion data." @@ -17032,6 +18459,43 @@ }, "type": "object" }, + "GoogleCloudContactcenterinsightsV1alpha1SherlockStep": { + "description": "A step in the agent's reasoning process (Trajectory Step).", + "id": "GoogleCloudContactcenterinsightsV1alpha1SherlockStep", + "properties": { + "textInput": { + "description": "Output only. Natural language input stimulus.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "thought": { + "description": "Output only. The reasoning or internal monologue of the agent.", + "readOnly": true, + "type": "string" + }, + "toolCalls": { + "description": "Output only. The tool call issued by the agent.", + "items": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1ToolCall" + }, + "readOnly": true, + "type": "array" + }, + "toolOutput": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Output only. The output response from the tool execution.", + "readOnly": true, + "type": "object" + } + }, + "type": "object" + }, "GoogleCloudContactcenterinsightsV1alpha1SilenceData": { "description": "The data for a silence annotation.", "id": "GoogleCloudContactcenterinsightsV1alpha1SilenceData", @@ -17218,6 +18682,27 @@ }, "type": "object" }, + "GoogleCloudContactcenterinsightsV1alpha1ToolCall": { + "description": "A tool call from the agent.", + "id": "GoogleCloudContactcenterinsightsV1alpha1ToolCall", + "properties": { + "input": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Output only. The input arguments to the tool.", + "readOnly": true, + "type": "object" + }, + "toolName": { + "description": "Output only. The name of the tool being called.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudContactcenterinsightsV1alpha1UndeployIssueModelMetadata": { "description": "Metadata for undeploying an issue model.", "id": "GoogleCloudContactcenterinsightsV1alpha1UndeployIssueModelMetadata", @@ -18099,6 +19584,35 @@ }, "type": "object" }, + "GoogleCloudContactcenterinsightsV1mainCesEndSessionAnnotation": { + "description": "The CES end session annotation.", + "id": "GoogleCloudContactcenterinsightsV1mainCesEndSessionAnnotation", + "properties": { + "endSession": { + "$ref": "GoogleCloudCesV1mainEndSession", + "description": "End session signal from CES." + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1mainCesTurnAnnotation": { + "description": "The CES diagnostic information.", + "id": "GoogleCloudContactcenterinsightsV1mainCesTurnAnnotation", + "properties": { + "messages": { + "description": "The messages in the turn.", + "items": { + "$ref": "GoogleCloudCesV1mainMessage" + }, + "type": "array" + }, + "rootSpan": { + "$ref": "GoogleCloudCesV1mainSpan", + "description": "The root span of the action processing." + } + }, + "type": "object" + }, "GoogleCloudContactcenterinsightsV1mainConstraintEvaluationResult": { "description": "The result of testing a constraint expression on a pair of conversations.", "id": "GoogleCloudContactcenterinsightsV1mainConstraintEvaluationResult", @@ -18910,99 +20424,338 @@ "readOnly": true, "type": "string" }, - "request": { - "$ref": "GoogleCloudContactcenterinsightsV1mainDeleteIssueModelRequest", - "description": "The original request for deletion." - } - }, - "type": "object" - }, - "GoogleCloudContactcenterinsightsV1mainDeleteIssueModelRequest": { - "description": "The request to delete an issue model.", - "id": "GoogleCloudContactcenterinsightsV1mainDeleteIssueModelRequest", - "properties": { - "name": { - "description": "Required. The name of the issue model to delete.", + "request": { + "$ref": "GoogleCloudContactcenterinsightsV1mainDeleteIssueModelRequest", + "description": "The original request for deletion." + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1mainDeleteIssueModelRequest": { + "description": "The request to delete an issue model.", + "id": "GoogleCloudContactcenterinsightsV1mainDeleteIssueModelRequest", + "properties": { + "name": { + "description": "Required. The name of the issue model to delete.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1mainDeleteQaQuestionTagMetadata": { + "description": "The metadata for deleting a QaQuestionTag Resource.", + "id": "GoogleCloudContactcenterinsightsV1mainDeleteQaQuestionTagMetadata", + "properties": { + "createTime": { + "description": "Output only. The time the operation was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "endTime": { + "description": "Output only. The time the operation finished running.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "request": { + "$ref": "GoogleCloudContactcenterinsightsV1mainDeleteQaQuestionTagRequest", + "description": "Output only. The original request.", + "readOnly": true + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1mainDeleteQaQuestionTagRequest": { + "description": "The request for deleting a QaQuestionTag.", + "id": "GoogleCloudContactcenterinsightsV1mainDeleteQaQuestionTagRequest", + "properties": { + "name": { + "description": "Required. The name of the QaQuestionTag to delete.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1mainDeployIssueModelMetadata": { + "description": "Metadata for deploying an issue model.", + "id": "GoogleCloudContactcenterinsightsV1mainDeployIssueModelMetadata", + "properties": { + "createTime": { + "description": "Output only. The time the operation was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "endTime": { + "description": "Output only. The time the operation finished running.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "request": { + "$ref": "GoogleCloudContactcenterinsightsV1mainDeployIssueModelRequest", + "description": "The original request for deployment." + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1mainDeployIssueModelRequest": { + "description": "The request to deploy an issue model.", + "id": "GoogleCloudContactcenterinsightsV1mainDeployIssueModelRequest", + "properties": { + "name": { + "description": "Required. The issue model to deploy.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1mainDeployIssueModelResponse": { + "description": "The response to deploy an issue model.", + "id": "GoogleCloudContactcenterinsightsV1mainDeployIssueModelResponse", + "properties": {}, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1mainDiagnoseConversationsMetadata": { + "description": "Metadata for a DiagnoseConversations operation.", + "id": "GoogleCloudContactcenterinsightsV1mainDiagnoseConversationsMetadata", + "properties": { + "createTime": { + "description": "Output only. The time the operation was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "diagnosticReport": { + "$ref": "GoogleCloudContactcenterinsightsV1mainDiagnosticReport", + "description": "Output only. The diagnostic report containing metrics and intent breakdowns.", + "readOnly": true + }, + "endTime": { + "description": "Output only. The time the operation finished running.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "fullReport": { + "description": "Output only. If true, the agent generated a full diagnostic report for all sub-agents.", + "readOnly": true, + "type": "boolean" + }, + "latestStep": { + "$ref": "GoogleCloudContactcenterinsightsV1mainSherlockStep", + "description": "Output only. The most recent thought or action from the agent.", + "readOnly": true + }, + "metricType": { + "description": "Output only. The type of metric being diagnosed.", + "enum": [ + "DIAGNOSTIC_METRIC_TYPE_UNSPECIFIED", + "ESCALATION", + "CONTAINMENT" + ], + "enumDescriptions": [ + "Metric type is unspecified.", + "Escalation rate.", + "Containment rate." + ], + "readOnly": true, + "type": "string" + }, + "partialTrajectories": { + "deprecated": true, + "description": "Output only. Deprecated: Use partial_trajectory_steps instead. The intermediate trajectory updates (partial trajectory).", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "partialTrajectorySteps": { + "description": "Output only. The intermediate trajectory updates. This can be used for live progress tracking of the agent's thoughts and actions as it works through the analysis.", + "items": { + "$ref": "GoogleCloudContactcenterinsightsV1mainSherlockStep" + }, + "readOnly": true, + "type": "array" + }, + "request": { + "$ref": "GoogleCloudContactcenterinsightsV1mainDiagnoseConversationsRequest", + "description": "Output only. The request that created the operation.", + "readOnly": true + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1mainDiagnoseConversationsRequest": { + "description": "The request to analyze conversation data using agentic workflows. This RPC triggers a complex analysis process that may involve several steps of reasoning and tool execution.", + "id": "GoogleCloudContactcenterinsightsV1mainDiagnoseConversationsRequest", + "properties": { + "dryRun": { + "description": "Optional. If true, the request will be validated and a simulation of the analysis will be performed without actually executing the task.", + "type": "boolean" + }, + "filter": { + "description": "Optional. AIP-160 compliant filter for selecting target conversations.", + "type": "string" + }, + "fullReport": { + "description": "Optional. If true, the agent will generate a full diagnostic report for all sub-agents.", + "type": "boolean" + }, + "instructions": { + "description": "Optional. Specific instructions for the agent.", + "type": "string" + }, + "maxSteps": { + "description": "Optional. The maximum number of steps the agent can take during the execution of the task. Defaults to 10.", + "format": "int32", + "type": "integer" + }, + "metricType": { + "description": "Optional. The type of metric being diagnosed.", + "enum": [ + "DIAGNOSTIC_METRIC_TYPE_UNSPECIFIED", + "ESCALATION", + "CONTAINMENT" + ], + "enumDescriptions": [ + "Metric type is unspecified.", + "Escalation rate.", + "Containment rate." + ], + "type": "string" + }, + "outputConfig": { + "$ref": "GoogleCloudContactcenterinsightsV1mainOutputConfig", + "description": "Optional. The configuration for the output of the task." + }, + "parent": { + "description": "Required. The parent resource where the analysis will be performed.", + "type": "string" + }, + "requestId": { + "description": "Optional. Required. A unique ID that identifies the request. If the service receives two `DiagnoseConversationsRequest`s with the same `request_id`, then the second request will be ignored; instead, the response of the first request will be returned. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), and hyphens (-). The maximum length is 40 characters.", + "type": "string" + }, + "taskQuery": { + "description": "Optional. A natural language description of the analysis goal or question.", "type": "string" + }, + "validateOnly": { + "description": "Optional. If true, the request will only be validated (permissions, filter syntax, etc.) without actually triggering the analysis.", + "type": "boolean" } }, "type": "object" }, - "GoogleCloudContactcenterinsightsV1mainDeleteQaQuestionTagMetadata": { - "description": "The metadata for deleting a QaQuestionTag Resource.", - "id": "GoogleCloudContactcenterinsightsV1mainDeleteQaQuestionTagMetadata", + "GoogleCloudContactcenterinsightsV1mainDiagnoseConversationsResponse": { + "description": "The response from a DiagnoseConversations request.", + "id": "GoogleCloudContactcenterinsightsV1mainDiagnoseConversationsResponse", "properties": { - "createTime": { - "description": "Output only. The time the operation was created.", - "format": "google-datetime", + "answer": { + "description": "Output only. The final, high-level answer or diagnostic summary returned by the Sherlock worker.", "readOnly": true, "type": "string" }, - "endTime": { - "description": "Output only. The time the operation finished running.", - "format": "google-datetime", + "exportUri": { + "description": "Output only. If an external destination was requested, the URI of the exported data.", "readOnly": true, "type": "string" }, - "request": { - "$ref": "GoogleCloudContactcenterinsightsV1mainDeleteQaQuestionTagRequest", - "description": "Output only. The original request.", - "readOnly": true + "fullTrajectories": { + "deprecated": true, + "description": "Output only. Deprecated: Use full_trajectory_steps instead. The complete sequence of thoughts and actions (full trajectory).", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "fullTrajectorySteps": { + "description": "Output only. The complete sequence of thoughts and actions taken by the agent.", + "items": { + "$ref": "GoogleCloudContactcenterinsightsV1mainSherlockStep" + }, + "readOnly": true, + "type": "array" } }, "type": "object" }, - "GoogleCloudContactcenterinsightsV1mainDeleteQaQuestionTagRequest": { - "description": "The request for deleting a QaQuestionTag.", - "id": "GoogleCloudContactcenterinsightsV1mainDeleteQaQuestionTagRequest", + "GoogleCloudContactcenterinsightsV1mainDiagnosticReport": { + "description": "A diagnostic report containing aggregate metrics and intent breakdowns.", + "id": "GoogleCloudContactcenterinsightsV1mainDiagnosticReport", "properties": { - "name": { - "description": "Required. The name of the QaQuestionTag to delete.", - "type": "string" + "intentStats": { + "description": "Output only. A breakdown of metrics grouped by intent.", + "items": { + "$ref": "GoogleCloudContactcenterinsightsV1mainDiagnosticReportIntentStats" + }, + "readOnly": true, + "type": "array" + }, + "lossPatterns": { + "description": "Output only. A list of loss patterns identified for the entire project/dataset.", + "items": { + "$ref": "GoogleCloudContactcenterinsightsV1mainLossPattern" + }, + "readOnly": true, + "type": "array" + }, + "metrics": { + "additionalProperties": { + "$ref": "GoogleCloudContactcenterinsightsV1mainMetricValue" + }, + "deprecated": true, + "description": "Output only. Deprecated: The type of the metric. Metrics for Outcome Based Insights derived from QueryMetrics.", + "readOnly": true, + "type": "object" } }, "type": "object" }, - "GoogleCloudContactcenterinsightsV1mainDeployIssueModelMetadata": { - "description": "Metadata for deploying an issue model.", - "id": "GoogleCloudContactcenterinsightsV1mainDeployIssueModelMetadata", + "GoogleCloudContactcenterinsightsV1mainDiagnosticReportIntentStats": { + "description": "A breakdown of metrics grouped by intent.", + "id": "GoogleCloudContactcenterinsightsV1mainDiagnosticReportIntentStats", "properties": { - "createTime": { - "description": "Output only. The time the operation was created.", - "format": "google-datetime", + "conversationCount": { + "description": "Output only. The number of conversations associated with this intent.", + "format": "int32", "readOnly": true, - "type": "string" + "type": "integer" }, - "endTime": { - "description": "Output only. The time the operation finished running.", - "format": "google-datetime", + "intentDisplayName": { + "description": "Output only. The display name of the intent.", "readOnly": true, "type": "string" }, - "request": { - "$ref": "GoogleCloudContactcenterinsightsV1mainDeployIssueModelRequest", - "description": "The original request for deployment." - } - }, - "type": "object" - }, - "GoogleCloudContactcenterinsightsV1mainDeployIssueModelRequest": { - "description": "The request to deploy an issue model.", - "id": "GoogleCloudContactcenterinsightsV1mainDeployIssueModelRequest", - "properties": { - "name": { - "description": "Required. The issue model to deploy.", + "intentId": { + "description": "Output only. The unique identifier for the intent (from Discovery Engine).", + "readOnly": true, "type": "string" + }, + "lossPatterns": { + "description": "Output only. A list of loss patterns identified for this intent.", + "items": { + "$ref": "GoogleCloudContactcenterinsightsV1mainLossPattern" + }, + "readOnly": true, + "type": "array" + }, + "metrics": { + "additionalProperties": { + "$ref": "GoogleCloudContactcenterinsightsV1mainMetricValue" + }, + "deprecated": true, + "description": "Output only. Deprecated: The type of the metric. Metrics for Outcome Based Insights derived from QueryMetrics.", + "readOnly": true, + "type": "object" } }, "type": "object" }, - "GoogleCloudContactcenterinsightsV1mainDeployIssueModelResponse": { - "description": "The response to deploy an issue model.", - "id": "GoogleCloudContactcenterinsightsV1mainDeployIssueModelResponse", - "properties": {}, - "type": "object" - }, "GoogleCloudContactcenterinsightsV1mainDialogflowIntent": { "description": "The data for a Dialogflow intent. Represents a detected intent in the conversation, e.g. MAKES_PROMISE.", "id": "GoogleCloudContactcenterinsightsV1mainDialogflowIntent", @@ -20604,6 +22357,175 @@ }, "type": "object" }, + "GoogleCloudContactcenterinsightsV1mainLossPattern": { + "description": "A loss pattern of a virtual agent and suggested fixes.", + "id": "GoogleCloudContactcenterinsightsV1mainLossPattern", + "properties": { + "conversationIds": { + "description": "Output only. A list of conversation IDs that match this loss pattern.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "description": { + "description": "Output only. A markdown description of the loss pattern.", + "readOnly": true, + "type": "string" + }, + "displayName": { + "description": "Output only. The display name of the loss pattern.", + "readOnly": true, + "type": "string" + }, + "examples": { + "description": "Output only. A markdown of loss pattern examples.", + "readOnly": true, + "type": "string" + }, + "id": { + "description": "Output only. The unique identifier for the loss pattern.", + "readOnly": true, + "type": "string" + }, + "percentage": { + "description": "Output only. The percentage of conversations that match this loss pattern.", + "format": "double", + "readOnly": true, + "type": "number" + }, + "suggestedFixes": { + "description": "Output only. A markdown description of the suggested fixes.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1mainMetricValue": { + "deprecated": true, + "description": "Deprecated: MetricValue is no longer used for diagnostics.", + "id": "GoogleCloudContactcenterinsightsV1mainMetricValue", + "properties": { + "conversations": { + "description": "Output only. The list of conversation names that contributed to this metric (hits). Format: `projects/{project}/locations/{location}/conversations/{conversation}`", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "displayName": { + "description": "Output only. The user-visible name of the metric (e.g., \"Containment Rate\").", + "readOnly": true, + "type": "string" + }, + "hitCount": { + "description": "Output only. The number of positive matches (hits) for this metric.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "metricType": { + "description": "Output only. Deprecated: The type of the metric. Metrics for Outcome Based Insights derived from QueryMetrics.", + "enum": [ + "METRIC_TYPE_UNSPECIFIED", + "ESCALATION", + "CONTAINMENT" + ], + "enumDescriptions": [ + "Metric type is unspecified.", + "Escalation rate.", + "Containment rate." + ], + "readOnly": true, + "type": "string" + }, + "sourceId": { + "description": "Output only. The resource name of the underlying Insights primitive (e.g., Tag or QaQuestion) used to calculate this metric.", + "readOnly": true, + "type": "string" + }, + "totalCount": { + "description": "Output only. The total number of items evaluated for this metric.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "value": { + "description": "Output only. The calculated value of the metric (usually a ratio or rate 0.0 - 1.0).", + "format": "double", + "readOnly": true, + "type": "number" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1mainOutputConfig": { + "description": "Configuration for where to export or return the analysis findings.", + "id": "GoogleCloudContactcenterinsightsV1mainOutputConfig", + "properties": { + "bigqueryDestination": { + "$ref": "GoogleCloudContactcenterinsightsV1mainOutputConfigBigQueryDestination", + "description": "Optional. Export to BigQuery." + }, + "gcsDestination": { + "$ref": "GoogleCloudContactcenterinsightsV1mainOutputConfigGcsDestination", + "description": "Optional. Export to a Cloud Storage bucket." + }, + "googleSheetsDestination": { + "$ref": "GoogleCloudContactcenterinsightsV1mainOutputConfigGoogleSheetsDestination", + "description": "Optional. Export directly to a Google Sheet." + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1mainOutputConfigBigQueryDestination": { + "description": "BigQuery destination configuration.", + "id": "GoogleCloudContactcenterinsightsV1mainOutputConfigBigQueryDestination", + "properties": { + "dataset": { + "description": "Required. The name of the BigQuery dataset.", + "type": "string" + }, + "projectId": { + "description": "Optional. A project ID or number.", + "type": "string" + }, + "table": { + "description": "Required. The BigQuery table name.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1mainOutputConfigGcsDestination": { + "description": "Cloud Storage destination configuration.", + "id": "GoogleCloudContactcenterinsightsV1mainOutputConfigGcsDestination", + "properties": { + "uri": { + "description": "Required. The Cloud Storage URI to export the results to.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1mainOutputConfigGoogleSheetsDestination": { + "description": "Google Sheets destination configuration.", + "id": "GoogleCloudContactcenterinsightsV1mainOutputConfigGoogleSheetsDestination", + "properties": { + "sheet": { + "description": "Optional. The sheet name.", + "type": "string" + }, + "spreadsheetId": { + "description": "Optional. An existing Google Sheets ID.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudContactcenterinsightsV1mainPhraseMatchData": { "description": "The data for a matched phrase matcher. Represents information identifying a phrase matcher for a given match.", "id": "GoogleCloudContactcenterinsightsV1mainPhraseMatchData", @@ -21390,6 +23312,14 @@ "$ref": "GoogleCloudContactcenterinsightsV1mainArticleSuggestionData", "description": "Agent Assist Article Suggestion data." }, + "cesEndSessionAnnotation": { + "$ref": "GoogleCloudContactcenterinsightsV1mainCesEndSessionAnnotation", + "description": "The CES end session annotation." + }, + "cesTurnAnnotation": { + "$ref": "GoogleCloudContactcenterinsightsV1mainCesTurnAnnotation", + "description": "The CES turn annotation." + }, "conversationSummarizationSuggestion": { "$ref": "GoogleCloudContactcenterinsightsV1mainConversationSummarizationSuggestionData", "description": "Conversation summarization suggestion data." @@ -21582,6 +23512,43 @@ }, "type": "object" }, + "GoogleCloudContactcenterinsightsV1mainSherlockStep": { + "description": "A step in the agent's reasoning process (Trajectory Step).", + "id": "GoogleCloudContactcenterinsightsV1mainSherlockStep", + "properties": { + "textInput": { + "description": "Output only. Natural language input stimulus.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "thought": { + "description": "Output only. The reasoning or internal monologue of the agent.", + "readOnly": true, + "type": "string" + }, + "toolCalls": { + "description": "Output only. The tool call issued by the agent.", + "items": { + "$ref": "GoogleCloudContactcenterinsightsV1mainToolCall" + }, + "readOnly": true, + "type": "array" + }, + "toolOutput": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Output only. The output response from the tool execution.", + "readOnly": true, + "type": "object" + } + }, + "type": "object" + }, "GoogleCloudContactcenterinsightsV1mainSilenceData": { "description": "The data for a silence annotation.", "id": "GoogleCloudContactcenterinsightsV1mainSilenceData", @@ -21768,6 +23735,27 @@ }, "type": "object" }, + "GoogleCloudContactcenterinsightsV1mainToolCall": { + "description": "A tool call from the agent.", + "id": "GoogleCloudContactcenterinsightsV1mainToolCall", + "properties": { + "input": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Output only. The input arguments to the tool.", + "readOnly": true, + "type": "object" + }, + "toolName": { + "description": "Output only. The name of the tool being called.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudContactcenterinsightsV1mainUndeployIssueModelMetadata": { "description": "Metadata for undeploying an issue model.", "id": "GoogleCloudContactcenterinsightsV1mainUndeployIssueModelMetadata", diff --git a/Src/Generated/Google.Apis.Contactcenterinsights.v1/Google.Apis.Contactcenterinsights.v1.cs b/Src/Generated/Google.Apis.Contactcenterinsights.v1/Google.Apis.Contactcenterinsights.v1.cs index 73773b9d536..dba5ce0ed46 100644 --- a/Src/Generated/Google.Apis.Contactcenterinsights.v1/Google.Apis.Contactcenterinsights.v1.cs +++ b/Src/Generated/Google.Apis.Contactcenterinsights.v1/Google.Apis.Contactcenterinsights.v1.cs @@ -299,6 +299,7 @@ public LocationsResource(Google.Apis.Services.IClientService service) Conversations = new ConversationsResource(service); Dashboards = new DashboardsResource(service); Datasets = new DatasetsResource(service); + Diagnostics = new DiagnosticsResource(service); EncryptionSpec = new EncryptionSpecResource(service); Insightsdata = new InsightsdataResource(service); IssueModels = new IssueModelsResource(service); @@ -8789,6 +8790,204 @@ protected override void InitParameters() } } + /// Gets the Diagnostics resource. + public virtual DiagnosticsResource Diagnostics { get; } + + /// The "diagnostics" collection of methods. + public class DiagnosticsResource + { + private const string Resource = "diagnostics"; + + /// The service which this resource belongs to. + private readonly Google.Apis.Services.IClientService service; + + /// Constructs a new resource. + public DiagnosticsResource(Google.Apis.Services.IClientService service) + { + this.service = service; + } + + /// Deletes a diagnostic. + /// Required. The name of the diagnostic to delete. + public virtual DeleteRequest Delete(string name) + { + return new DeleteRequest(this.service, name); + } + + /// Deletes a diagnostic. + public class DeleteRequest : ContactcenterinsightsBaseServiceRequest + { + /// Constructs a new Delete request. + public DeleteRequest(Google.Apis.Services.IClientService service, string name) : base(service) + { + Name = name; + InitParameters(); + } + + /// Required. The name of the diagnostic to delete. + [Google.Apis.Util.RequestParameterAttribute("name", Google.Apis.Util.RequestParameterType.Path)] + public virtual string Name { get; private set; } + + /// Gets the method name. + public override string MethodName => "delete"; + + /// Gets the HTTP method. + public override string HttpMethod => "DELETE"; + + /// Gets the REST path. + public override string RestPath => "v1/{+name}"; + + /// Initializes Delete parameter list. + protected override void InitParameters() + { + base.InitParameters(); + RequestParameters.Add("name", new Google.Apis.Discovery.Parameter + { + Name = "name", + IsRequired = true, + ParameterType = "path", + DefaultValue = null, + Pattern = @"^projects/[^/]+/locations/[^/]+/diagnostics/[^/]+$", + }); + } + } + + /// Gets a diagnostic. + /// Required. The name of the diagnostic to retrieve. + public virtual GetRequest Get(string name) + { + return new GetRequest(this.service, name); + } + + /// Gets a diagnostic. + public class GetRequest : ContactcenterinsightsBaseServiceRequest + { + /// Constructs a new Get request. + public GetRequest(Google.Apis.Services.IClientService service, string name) : base(service) + { + Name = name; + InitParameters(); + } + + /// Required. The name of the diagnostic to retrieve. + [Google.Apis.Util.RequestParameterAttribute("name", Google.Apis.Util.RequestParameterType.Path)] + public virtual string Name { get; private set; } + + /// Gets the method name. + public override string MethodName => "get"; + + /// Gets the HTTP method. + public override string HttpMethod => "GET"; + + /// Gets the REST path. + public override string RestPath => "v1/{+name}"; + + /// Initializes Get parameter list. + protected override void InitParameters() + { + base.InitParameters(); + RequestParameters.Add("name", new Google.Apis.Discovery.Parameter + { + Name = "name", + IsRequired = true, + ParameterType = "path", + DefaultValue = null, + Pattern = @"^projects/[^/]+/locations/[^/]+/diagnostics/[^/]+$", + }); + } + } + + /// Lists diagnostics. + /// Required. The parent resource of the diagnostics. + public virtual ListRequest List(string parent) + { + return new ListRequest(this.service, parent); + } + + /// Lists diagnostics. + public class ListRequest : ContactcenterinsightsBaseServiceRequest + { + /// Constructs a new List request. + public ListRequest(Google.Apis.Services.IClientService service, string parent) : base(service) + { + Parent = parent; + InitParameters(); + } + + /// Required. The parent resource of the diagnostics. + [Google.Apis.Util.RequestParameterAttribute("parent", Google.Apis.Util.RequestParameterType.Path)] + public virtual string Parent { get; private set; } + + /// + /// Optional. A filter to apply to the list (e.g. `create_time &gt; "2023-01-01T00:00:00Z"`). + /// + [Google.Apis.Util.RequestParameterAttribute("filter", Google.Apis.Util.RequestParameterType.Query)] + public virtual string Filter { get; set; } + + /// + /// Optional. The maximum number of diagnostics to return. The service may return fewer than this + /// value. If unspecified, at most 100 diagnostics will be returned. The maximum value is 1000; + /// values above 1000 will be coerced to 1000. + /// + [Google.Apis.Util.RequestParameterAttribute("pageSize", Google.Apis.Util.RequestParameterType.Query)] + public virtual System.Nullable PageSize { get; set; } + + /// + /// Optional. A page token, received from a previous `ListDiagnostics` call. Provide this to + /// retrieve the subsequent page. + /// + [Google.Apis.Util.RequestParameterAttribute("pageToken", Google.Apis.Util.RequestParameterType.Query)] + public virtual string PageToken { get; set; } + + /// Gets the method name. + public override string MethodName => "list"; + + /// Gets the HTTP method. + public override string HttpMethod => "GET"; + + /// Gets the REST path. + public override string RestPath => "v1/{+parent}/diagnostics"; + + /// Initializes List parameter list. + protected override void InitParameters() + { + base.InitParameters(); + RequestParameters.Add("parent", new Google.Apis.Discovery.Parameter + { + Name = "parent", + IsRequired = true, + ParameterType = "path", + DefaultValue = null, + Pattern = @"^projects/[^/]+/locations/[^/]+$", + }); + RequestParameters.Add("filter", new Google.Apis.Discovery.Parameter + { + Name = "filter", + IsRequired = false, + ParameterType = "query", + DefaultValue = null, + Pattern = null, + }); + RequestParameters.Add("pageSize", new Google.Apis.Discovery.Parameter + { + Name = "pageSize", + IsRequired = false, + ParameterType = "query", + DefaultValue = null, + Pattern = null, + }); + RequestParameters.Add("pageToken", new Google.Apis.Discovery.Parameter + { + Name = "pageToken", + IsRequired = false, + ParameterType = "query", + DefaultValue = null, + Pattern = null, + }); + } + } + } + /// Gets the EncryptionSpec resource. public virtual EncryptionSpecResource EncryptionSpec { get; } @@ -12376,6 +12575,65 @@ protected override void InitParameters() } } + /// + /// Analyzes conversation data using specialized agentic workflows, such as ReAct, to diagnose issues and + /// provide insights. + /// + /// The body of the request. + /// Required. The parent resource where the analysis will be performed. + public virtual DiagnoseConversationsRequest DiagnoseConversations(Google.Apis.Contactcenterinsights.v1.Data.GoogleCloudContactcenterinsightsV1DiagnoseConversationsRequest body, string parent) + { + return new DiagnoseConversationsRequest(this.service, body, parent); + } + + /// + /// Analyzes conversation data using specialized agentic workflows, such as ReAct, to diagnose issues and + /// provide insights. + /// + public class DiagnoseConversationsRequest : ContactcenterinsightsBaseServiceRequest + { + /// Constructs a new DiagnoseConversations request. + public DiagnoseConversationsRequest(Google.Apis.Services.IClientService service, Google.Apis.Contactcenterinsights.v1.Data.GoogleCloudContactcenterinsightsV1DiagnoseConversationsRequest body, string parent) : base(service) + { + Parent = parent; + Body = body; + InitParameters(); + } + + /// Required. The parent resource where the analysis will be performed. + [Google.Apis.Util.RequestParameterAttribute("parent", Google.Apis.Util.RequestParameterType.Path)] + public virtual string Parent { get; private set; } + + /// Gets or sets the body of this request. + Google.Apis.Contactcenterinsights.v1.Data.GoogleCloudContactcenterinsightsV1DiagnoseConversationsRequest Body { get; set; } + + /// Returns the body of the request. + protected override object GetBody() => Body; + + /// Gets the method name. + public override string MethodName => "diagnoseConversations"; + + /// Gets the HTTP method. + public override string HttpMethod => "POST"; + + /// Gets the REST path. + public override string RestPath => "v1/{+parent}:diagnoseConversations"; + + /// Initializes DiagnoseConversations parameter list. + protected override void InitParameters() + { + base.InitParameters(); + RequestParameters.Add("parent", new Google.Apis.Discovery.Parameter + { + Name = "parent", + IsRequired = true, + ParameterType = "path", + DefaultValue = null, + Pattern = @"^projects/[^/]+/locations/[^/]+$", + }); + } + } + /// /// Natural language based Insights which powers the next generation of dashboards in Insights. Next /// generation of QueryMetrics. @@ -12999,6 +13257,363 @@ protected override void InitParameters() } namespace Google.Apis.Contactcenterinsights.v1.Data { + /// Represents an event indicating the transfer of a conversation to a different agent. + public class GoogleCloudCesV1mainAgentTransfer : Google.Apis.Requests.IDirectResponseSchema + { + /// Output only. Display name of the agent. + [Newtonsoft.Json.JsonPropertyAttribute("displayName")] + public virtual string DisplayName { get; set; } + + /// + /// Required. The agent to which the conversation is being transferred. The agent will handle the conversation + /// from this point forward. Format: `projects/{project}/locations/{location}/apps/{app}/agents/{agent}` + /// + [Newtonsoft.Json.JsonPropertyAttribute("targetAgent")] + public virtual string TargetAgent { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// Represents a blob input or output in the conversation. + public class GoogleCloudCesV1mainBlob : Google.Apis.Requests.IDirectResponseSchema + { + /// Required. Raw bytes of the blob. + [Newtonsoft.Json.JsonPropertyAttribute("data")] + public virtual string Data { get; set; } + + /// Required. The IANA standard MIME type of the source data. + [Newtonsoft.Json.JsonPropertyAttribute("mimeType")] + public virtual string MimeType { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// A chunk of content within a message. + public class GoogleCloudCesV1mainChunk : Google.Apis.Requests.IDirectResponseSchema + { + /// Optional. Agent transfer event. + [Newtonsoft.Json.JsonPropertyAttribute("agentTransfer")] + public virtual GoogleCloudCesV1mainAgentTransfer AgentTransfer { get; set; } + + /// Optional. Blob data. + [Newtonsoft.Json.JsonPropertyAttribute("blob")] + public virtual GoogleCloudCesV1mainBlob Blob { get; set; } + + /// + /// A struct represents default variables at the start of the conversation, keyed by variable names. + /// + [Newtonsoft.Json.JsonPropertyAttribute("defaultVariables")] + public virtual System.Collections.Generic.IDictionary DefaultVariables { get; set; } + + /// Optional. Image data. + [Newtonsoft.Json.JsonPropertyAttribute("image")] + public virtual GoogleCloudCesV1mainImage Image { get; set; } + + /// Optional. Custom payload data. + [Newtonsoft.Json.JsonPropertyAttribute("payload")] + public virtual System.Collections.Generic.IDictionary Payload { get; set; } + + /// Optional. Text data. + [Newtonsoft.Json.JsonPropertyAttribute("text")] + public virtual string Text { get; set; } + + /// Optional. Tool execution request. + [Newtonsoft.Json.JsonPropertyAttribute("toolCall")] + public virtual GoogleCloudCesV1mainToolCall ToolCall { get; set; } + + /// Optional. Tool execution response. + [Newtonsoft.Json.JsonPropertyAttribute("toolResponse")] + public virtual GoogleCloudCesV1mainToolResponse ToolResponse { get; set; } + + /// Optional. Transcript associated with the audio. + [Newtonsoft.Json.JsonPropertyAttribute("transcript")] + public virtual string Transcript { get; set; } + + /// + /// A struct represents variables that were updated in the conversation, keyed by variable names. + /// + [Newtonsoft.Json.JsonPropertyAttribute("updatedVariables")] + public virtual System.Collections.Generic.IDictionary UpdatedVariables { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// + /// Indicates the session has terminated, due to either successful completion (e.g. user says "Good bye!" ) or an + /// agent escalation. The agent will not process any further inputs after session is terminated and the client + /// should half-close and disconnect after receiving all remaining responses from the agent. + /// + public class GoogleCloudCesV1mainEndSession : Google.Apis.Requests.IDirectResponseSchema + { + /// + /// Optional. Provides additional information about the end session signal, such as the reason for ending the + /// session. + /// + [Newtonsoft.Json.JsonPropertyAttribute("metadata")] + public virtual System.Collections.Generic.IDictionary Metadata { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// Represents an image input or output in the conversation. + public class GoogleCloudCesV1mainImage : Google.Apis.Requests.IDirectResponseSchema + { + /// Required. Raw bytes of the image. + [Newtonsoft.Json.JsonPropertyAttribute("data")] + public virtual string Data { get; set; } + + /// + /// Required. The IANA standard MIME type of the source data. Supported image types includes: * image/png * + /// image/jpeg * image/webp + /// + [Newtonsoft.Json.JsonPropertyAttribute("mimeType")] + public virtual string MimeType { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// A message within a conversation. + public class GoogleCloudCesV1mainMessage : Google.Apis.Requests.IDirectResponseSchema + { + /// Optional. Content of the message as a series of chunks. + [Newtonsoft.Json.JsonPropertyAttribute("chunks")] + public virtual System.Collections.Generic.IList Chunks { get; set; } + + private string _eventTimeRaw; + + private object _eventTime; + + /// + /// Optional. Timestamp when the message was sent or received. Should not be used if the message is part of an + /// example. + /// + [Newtonsoft.Json.JsonPropertyAttribute("eventTime")] + public virtual string EventTimeRaw + { + get => _eventTimeRaw; + set + { + _eventTime = Google.Apis.Util.Utilities.DeserializeForGoogleFormat(value); + _eventTimeRaw = value; + } + } + + /// representation of . + [Newtonsoft.Json.JsonIgnoreAttribute] + [System.ObsoleteAttribute("This property is obsolete and may behave unexpectedly; please use EventTimeDateTimeOffset instead.")] + public virtual object EventTime + { + get => _eventTime; + set + { + _eventTimeRaw = Google.Apis.Util.Utilities.SerializeForGoogleFormat(value); + _eventTime = value; + } + } + + /// representation of . + [Newtonsoft.Json.JsonIgnoreAttribute] + public virtual System.DateTimeOffset? EventTimeDateTimeOffset + { + get => Google.Apis.Util.DiscoveryFormat.ParseGoogleDateTimeToDateTimeOffset(EventTimeRaw); + set => EventTimeRaw = Google.Apis.Util.DiscoveryFormat.FormatDateTimeOffsetToGoogleDateTime(value); + } + + /// Optional. The role within the conversation, e.g., user, agent. + [Newtonsoft.Json.JsonPropertyAttribute("role")] + public virtual string Role { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// A span is a unit of work or a single operation during the request processing. + public class GoogleCloudCesV1mainSpan : Google.Apis.Requests.IDirectResponseSchema + { + /// Output only. Key-value attributes associated with the span. + [Newtonsoft.Json.JsonPropertyAttribute("attributes")] + public virtual System.Collections.Generic.IDictionary Attributes { get; set; } + + /// Output only. The child spans that are nested under this span. + [Newtonsoft.Json.JsonPropertyAttribute("childSpans")] + public virtual System.Collections.Generic.IList ChildSpans { get; set; } + + /// Output only. The duration of the span. + [Newtonsoft.Json.JsonPropertyAttribute("duration")] + public virtual object Duration { get; set; } + + private string _endTimeRaw; + + private object _endTime; + + /// Output only. The end time of the span. + [Newtonsoft.Json.JsonPropertyAttribute("endTime")] + public virtual string EndTimeRaw + { + get => _endTimeRaw; + set + { + _endTime = Google.Apis.Util.Utilities.DeserializeForGoogleFormat(value); + _endTimeRaw = value; + } + } + + /// representation of . + [Newtonsoft.Json.JsonIgnoreAttribute] + [System.ObsoleteAttribute("This property is obsolete and may behave unexpectedly; please use EndTimeDateTimeOffset instead.")] + public virtual object EndTime + { + get => _endTime; + set + { + _endTimeRaw = Google.Apis.Util.Utilities.SerializeForGoogleFormat(value); + _endTime = value; + } + } + + /// representation of . + [Newtonsoft.Json.JsonIgnoreAttribute] + public virtual System.DateTimeOffset? EndTimeDateTimeOffset + { + get => Google.Apis.Util.DiscoveryFormat.ParseGoogleDateTimeToDateTimeOffset(EndTimeRaw); + set => EndTimeRaw = Google.Apis.Util.DiscoveryFormat.FormatDateTimeOffsetToGoogleDateTime(value); + } + + /// Output only. The name of the span. + [Newtonsoft.Json.JsonPropertyAttribute("name")] + public virtual string Name { get; set; } + + private string _startTimeRaw; + + private object _startTime; + + /// Output only. The start time of the span. + [Newtonsoft.Json.JsonPropertyAttribute("startTime")] + public virtual string StartTimeRaw + { + get => _startTimeRaw; + set + { + _startTime = Google.Apis.Util.Utilities.DeserializeForGoogleFormat(value); + _startTimeRaw = value; + } + } + + /// representation of . + [Newtonsoft.Json.JsonIgnoreAttribute] + [System.ObsoleteAttribute("This property is obsolete and may behave unexpectedly; please use StartTimeDateTimeOffset instead.")] + public virtual object StartTime + { + get => _startTime; + set + { + _startTimeRaw = Google.Apis.Util.Utilities.SerializeForGoogleFormat(value); + _startTime = value; + } + } + + /// representation of . + [Newtonsoft.Json.JsonIgnoreAttribute] + public virtual System.DateTimeOffset? StartTimeDateTimeOffset + { + get => Google.Apis.Util.DiscoveryFormat.ParseGoogleDateTimeToDateTimeOffset(StartTimeRaw); + set => StartTimeRaw = Google.Apis.Util.DiscoveryFormat.FormatDateTimeOffsetToGoogleDateTime(value); + } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// Request for the client or the agent to execute the specified tool. + public class GoogleCloudCesV1mainToolCall : Google.Apis.Requests.IDirectResponseSchema + { + /// Optional. The input parameters and values for the tool in JSON object format. + [Newtonsoft.Json.JsonPropertyAttribute("args")] + public virtual System.Collections.Generic.IDictionary Args { get; set; } + + /// Output only. Display name of the tool. + [Newtonsoft.Json.JsonPropertyAttribute("displayName")] + public virtual string DisplayName { get; set; } + + /// + /// Optional. The unique identifier of the tool call. If populated, the client should return the execution + /// result with the matching ID in ToolResponse. + /// + [Newtonsoft.Json.JsonPropertyAttribute("id")] + public virtual string Id { get; set; } + + /// + /// Optional. The name of the tool to execute. Format: + /// `projects/{project}/locations/{location}/apps/{app}/tools/{tool}` + /// + [Newtonsoft.Json.JsonPropertyAttribute("tool")] + public virtual string Tool { get; set; } + + /// Optional. The toolset tool to execute. + [Newtonsoft.Json.JsonPropertyAttribute("toolsetTool")] + public virtual GoogleCloudCesV1mainToolsetTool ToolsetTool { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// The execution result of a specific tool from the client or the agent. + public class GoogleCloudCesV1mainToolResponse : Google.Apis.Requests.IDirectResponseSchema + { + /// Output only. Display name of the tool. + [Newtonsoft.Json.JsonPropertyAttribute("displayName")] + public virtual string DisplayName { get; set; } + + /// Optional. The matching ID of the tool call the response is for. + [Newtonsoft.Json.JsonPropertyAttribute("id")] + public virtual string Id { get; set; } + + /// + /// Required. The tool execution result in JSON object format. Use "output" key to specify tool response and + /// "error" key to specify error details (if any). If "output" and "error" keys are not specified, then whole + /// "response" is treated as tool execution result. + /// + [Newtonsoft.Json.JsonPropertyAttribute("response")] + public virtual System.Collections.Generic.IDictionary Response { get; set; } + + /// + /// Optional. The name of the tool to execute. Format: + /// `projects/{project}/locations/{location}/apps/{app}/tools/{tool}` + /// + [Newtonsoft.Json.JsonPropertyAttribute("tool")] + public virtual string Tool { get; set; } + + /// Optional. The toolset tool that got executed. + [Newtonsoft.Json.JsonPropertyAttribute("toolsetTool")] + public virtual GoogleCloudCesV1mainToolsetTool ToolsetTool { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// A tool that is created from a toolset. + public class GoogleCloudCesV1mainToolsetTool : Google.Apis.Requests.IDirectResponseSchema + { + /// Optional. The tool ID to filter the tools to retrieve the schema for. + [Newtonsoft.Json.JsonPropertyAttribute("toolId")] + public virtual string ToolId { get; set; } + + /// + /// Required. The resource name of the Toolset from which this tool is derived. Format: + /// `projects/{project}/locations/{location}/apps/{app}/toolsets/{toolset}` + /// + [Newtonsoft.Json.JsonPropertyAttribute("toolset")] + public virtual string Toolset { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + /// The analysis resource. public class GoogleCloudContactcenterinsightsV1Analysis : Google.Apis.Requests.IDirectResponseSchema { @@ -14889,6 +15504,32 @@ public class GoogleCloudContactcenterinsightsV1CallAnnotation : Google.Apis.Requ public virtual string ETag { get; set; } } + /// The CES end session annotation. + public class GoogleCloudContactcenterinsightsV1CesEndSessionAnnotation : Google.Apis.Requests.IDirectResponseSchema + { + /// End session signal from CES. + [Newtonsoft.Json.JsonPropertyAttribute("endSession")] + public virtual GoogleCloudCesV1mainEndSession EndSession { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// The CES diagnostic information. + public class GoogleCloudContactcenterinsightsV1CesTurnAnnotation : Google.Apis.Requests.IDirectResponseSchema + { + /// The messages in the turn. + [Newtonsoft.Json.JsonPropertyAttribute("messages")] + public virtual System.Collections.Generic.IList Messages { get; set; } + + /// The root span of the action processing. + [Newtonsoft.Json.JsonPropertyAttribute("rootSpan")] + public virtual GoogleCloudCesV1mainSpan RootSpan { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + /// Configurable dashboard's widget that displays data as a chart. public class GoogleCloudContactcenterinsightsV1Chart : Google.Apis.Requests.IDirectResponseSchema { @@ -16589,129 +17230,459 @@ public virtual System.DateTimeOffset? EndTimeDateTimeOffset set => EndTimeRaw = Google.Apis.Util.DiscoveryFormat.FormatDateTimeOffsetToGoogleDateTime(value); } - /// The original request for deletion. - [Newtonsoft.Json.JsonPropertyAttribute("request")] - public virtual GoogleCloudContactcenterinsightsV1DeleteIssueModelRequest Request { get; set; } + /// The original request for deletion. + [Newtonsoft.Json.JsonPropertyAttribute("request")] + public virtual GoogleCloudContactcenterinsightsV1DeleteIssueModelRequest Request { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// The request to delete an issue model. + public class GoogleCloudContactcenterinsightsV1DeleteIssueModelRequest : Google.Apis.Requests.IDirectResponseSchema + { + /// Required. The name of the issue model to delete. + [Newtonsoft.Json.JsonPropertyAttribute("name")] + public virtual string Name { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// The metadata for deleting a QaQuestionTag Resource. + public class GoogleCloudContactcenterinsightsV1DeleteQaQuestionTagMetadata : Google.Apis.Requests.IDirectResponseSchema + { + private string _createTimeRaw; + + private object _createTime; + + /// Output only. The time the operation was created. + [Newtonsoft.Json.JsonPropertyAttribute("createTime")] + public virtual string CreateTimeRaw + { + get => _createTimeRaw; + set + { + _createTime = Google.Apis.Util.Utilities.DeserializeForGoogleFormat(value); + _createTimeRaw = value; + } + } + + /// representation of . + [Newtonsoft.Json.JsonIgnoreAttribute] + [System.ObsoleteAttribute("This property is obsolete and may behave unexpectedly; please use CreateTimeDateTimeOffset instead.")] + public virtual object CreateTime + { + get => _createTime; + set + { + _createTimeRaw = Google.Apis.Util.Utilities.SerializeForGoogleFormat(value); + _createTime = value; + } + } + + /// representation of . + [Newtonsoft.Json.JsonIgnoreAttribute] + public virtual System.DateTimeOffset? CreateTimeDateTimeOffset + { + get => Google.Apis.Util.DiscoveryFormat.ParseGoogleDateTimeToDateTimeOffset(CreateTimeRaw); + set => CreateTimeRaw = Google.Apis.Util.DiscoveryFormat.FormatDateTimeOffsetToGoogleDateTime(value); + } + + private string _endTimeRaw; + + private object _endTime; + + /// Output only. The time the operation finished running. + [Newtonsoft.Json.JsonPropertyAttribute("endTime")] + public virtual string EndTimeRaw + { + get => _endTimeRaw; + set + { + _endTime = Google.Apis.Util.Utilities.DeserializeForGoogleFormat(value); + _endTimeRaw = value; + } + } + + /// representation of . + [Newtonsoft.Json.JsonIgnoreAttribute] + [System.ObsoleteAttribute("This property is obsolete and may behave unexpectedly; please use EndTimeDateTimeOffset instead.")] + public virtual object EndTime + { + get => _endTime; + set + { + _endTimeRaw = Google.Apis.Util.Utilities.SerializeForGoogleFormat(value); + _endTime = value; + } + } + + /// representation of . + [Newtonsoft.Json.JsonIgnoreAttribute] + public virtual System.DateTimeOffset? EndTimeDateTimeOffset + { + get => Google.Apis.Util.DiscoveryFormat.ParseGoogleDateTimeToDateTimeOffset(EndTimeRaw); + set => EndTimeRaw = Google.Apis.Util.DiscoveryFormat.FormatDateTimeOffsetToGoogleDateTime(value); + } + + /// Output only. The original request. + [Newtonsoft.Json.JsonPropertyAttribute("request")] + public virtual GoogleCloudContactcenterinsightsV1DeleteQaQuestionTagRequest Request { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// The request for deleting a QaQuestionTag. + public class GoogleCloudContactcenterinsightsV1DeleteQaQuestionTagRequest : Google.Apis.Requests.IDirectResponseSchema + { + /// Required. The name of the QaQuestionTag to delete. + [Newtonsoft.Json.JsonPropertyAttribute("name")] + public virtual string Name { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// Metadata for deploying an issue model. + public class GoogleCloudContactcenterinsightsV1DeployIssueModelMetadata : Google.Apis.Requests.IDirectResponseSchema + { + private string _createTimeRaw; + + private object _createTime; + + /// Output only. The time the operation was created. + [Newtonsoft.Json.JsonPropertyAttribute("createTime")] + public virtual string CreateTimeRaw + { + get => _createTimeRaw; + set + { + _createTime = Google.Apis.Util.Utilities.DeserializeForGoogleFormat(value); + _createTimeRaw = value; + } + } + + /// representation of . + [Newtonsoft.Json.JsonIgnoreAttribute] + [System.ObsoleteAttribute("This property is obsolete and may behave unexpectedly; please use CreateTimeDateTimeOffset instead.")] + public virtual object CreateTime + { + get => _createTime; + set + { + _createTimeRaw = Google.Apis.Util.Utilities.SerializeForGoogleFormat(value); + _createTime = value; + } + } + + /// representation of . + [Newtonsoft.Json.JsonIgnoreAttribute] + public virtual System.DateTimeOffset? CreateTimeDateTimeOffset + { + get => Google.Apis.Util.DiscoveryFormat.ParseGoogleDateTimeToDateTimeOffset(CreateTimeRaw); + set => CreateTimeRaw = Google.Apis.Util.DiscoveryFormat.FormatDateTimeOffsetToGoogleDateTime(value); + } + + private string _endTimeRaw; + + private object _endTime; + + /// Output only. The time the operation finished running. + [Newtonsoft.Json.JsonPropertyAttribute("endTime")] + public virtual string EndTimeRaw + { + get => _endTimeRaw; + set + { + _endTime = Google.Apis.Util.Utilities.DeserializeForGoogleFormat(value); + _endTimeRaw = value; + } + } + + /// representation of . + [Newtonsoft.Json.JsonIgnoreAttribute] + [System.ObsoleteAttribute("This property is obsolete and may behave unexpectedly; please use EndTimeDateTimeOffset instead.")] + public virtual object EndTime + { + get => _endTime; + set + { + _endTimeRaw = Google.Apis.Util.Utilities.SerializeForGoogleFormat(value); + _endTime = value; + } + } + + /// representation of . + [Newtonsoft.Json.JsonIgnoreAttribute] + public virtual System.DateTimeOffset? EndTimeDateTimeOffset + { + get => Google.Apis.Util.DiscoveryFormat.ParseGoogleDateTimeToDateTimeOffset(EndTimeRaw); + set => EndTimeRaw = Google.Apis.Util.DiscoveryFormat.FormatDateTimeOffsetToGoogleDateTime(value); + } + + /// The original request for deployment. + [Newtonsoft.Json.JsonPropertyAttribute("request")] + public virtual GoogleCloudContactcenterinsightsV1DeployIssueModelRequest Request { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// The request to deploy an issue model. + public class GoogleCloudContactcenterinsightsV1DeployIssueModelRequest : Google.Apis.Requests.IDirectResponseSchema + { + /// Required. The issue model to deploy. + [Newtonsoft.Json.JsonPropertyAttribute("name")] + public virtual string Name { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// The response to deploy an issue model. + public class GoogleCloudContactcenterinsightsV1DeployIssueModelResponse : Google.Apis.Requests.IDirectResponseSchema + { + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// The request to deploy a QaScorecardRevision + public class GoogleCloudContactcenterinsightsV1DeployQaScorecardRevisionRequest : Google.Apis.Requests.IDirectResponseSchema + { + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// Metadata for a DiagnoseConversations operation. + public class GoogleCloudContactcenterinsightsV1DiagnoseConversationsMetadata : Google.Apis.Requests.IDirectResponseSchema + { + private string _createTimeRaw; + + private object _createTime; + + /// Output only. The time the operation was created. + [Newtonsoft.Json.JsonPropertyAttribute("createTime")] + public virtual string CreateTimeRaw + { + get => _createTimeRaw; + set + { + _createTime = Google.Apis.Util.Utilities.DeserializeForGoogleFormat(value); + _createTimeRaw = value; + } + } + + /// representation of . + [Newtonsoft.Json.JsonIgnoreAttribute] + [System.ObsoleteAttribute("This property is obsolete and may behave unexpectedly; please use CreateTimeDateTimeOffset instead.")] + public virtual object CreateTime + { + get => _createTime; + set + { + _createTimeRaw = Google.Apis.Util.Utilities.SerializeForGoogleFormat(value); + _createTime = value; + } + } + + /// representation of . + [Newtonsoft.Json.JsonIgnoreAttribute] + public virtual System.DateTimeOffset? CreateTimeDateTimeOffset + { + get => Google.Apis.Util.DiscoveryFormat.ParseGoogleDateTimeToDateTimeOffset(CreateTimeRaw); + set => CreateTimeRaw = Google.Apis.Util.DiscoveryFormat.FormatDateTimeOffsetToGoogleDateTime(value); + } + + /// Output only. The diagnostic report containing metrics and intent breakdowns. + [Newtonsoft.Json.JsonPropertyAttribute("diagnosticReport")] + public virtual GoogleCloudContactcenterinsightsV1DiagnosticReport DiagnosticReport { get; set; } + + private string _endTimeRaw; + + private object _endTime; + + /// Output only. The time the operation finished running. + [Newtonsoft.Json.JsonPropertyAttribute("endTime")] + public virtual string EndTimeRaw + { + get => _endTimeRaw; + set + { + _endTime = Google.Apis.Util.Utilities.DeserializeForGoogleFormat(value); + _endTimeRaw = value; + } + } + + /// representation of . + [Newtonsoft.Json.JsonIgnoreAttribute] + [System.ObsoleteAttribute("This property is obsolete and may behave unexpectedly; please use EndTimeDateTimeOffset instead.")] + public virtual object EndTime + { + get => _endTime; + set + { + _endTimeRaw = Google.Apis.Util.Utilities.SerializeForGoogleFormat(value); + _endTime = value; + } + } + + /// representation of . + [Newtonsoft.Json.JsonIgnoreAttribute] + public virtual System.DateTimeOffset? EndTimeDateTimeOffset + { + get => Google.Apis.Util.DiscoveryFormat.ParseGoogleDateTimeToDateTimeOffset(EndTimeRaw); + set => EndTimeRaw = Google.Apis.Util.DiscoveryFormat.FormatDateTimeOffsetToGoogleDateTime(value); + } + + /// Output only. If true, the agent generated a full diagnostic report for all sub-agents. + [Newtonsoft.Json.JsonPropertyAttribute("fullReport")] + public virtual System.Nullable FullReport { get; set; } - /// The ETag of the item. - public virtual string ETag { get; set; } - } + /// Output only. The most recent thought or action from the agent. + [Newtonsoft.Json.JsonPropertyAttribute("latestStep")] + public virtual GoogleCloudContactcenterinsightsV1SherlockStep LatestStep { get; set; } - /// The request to delete an issue model. - public class GoogleCloudContactcenterinsightsV1DeleteIssueModelRequest : Google.Apis.Requests.IDirectResponseSchema - { - /// Required. The name of the issue model to delete. - [Newtonsoft.Json.JsonPropertyAttribute("name")] - public virtual string Name { get; set; } + /// Output only. The type of metric being diagnosed. + [Newtonsoft.Json.JsonPropertyAttribute("metricType")] + public virtual string MetricType { get; set; } + + /// + /// Output only. Deprecated: Use partial_trajectory_steps instead. The intermediate trajectory updates (partial + /// trajectory). + /// + [Newtonsoft.Json.JsonPropertyAttribute("partialTrajectories")] + public virtual System.Collections.Generic.IList PartialTrajectories { get; set; } + + /// + /// Output only. The intermediate trajectory updates. This can be used for live progress tracking of the agent's + /// thoughts and actions as it works through the analysis. + /// + [Newtonsoft.Json.JsonPropertyAttribute("partialTrajectorySteps")] + public virtual System.Collections.Generic.IList PartialTrajectorySteps { get; set; } + + /// Output only. The request that created the operation. + [Newtonsoft.Json.JsonPropertyAttribute("request")] + public virtual GoogleCloudContactcenterinsightsV1DiagnoseConversationsRequest Request { get; set; } /// The ETag of the item. public virtual string ETag { get; set; } } - /// The metadata for deleting a QaQuestionTag Resource. - public class GoogleCloudContactcenterinsightsV1DeleteQaQuestionTagMetadata : Google.Apis.Requests.IDirectResponseSchema + /// + /// The request to analyze conversation data using agentic workflows. This RPC triggers a complex analysis process + /// that may involve several steps of reasoning and tool execution. + /// + public class GoogleCloudContactcenterinsightsV1DiagnoseConversationsRequest : Google.Apis.Requests.IDirectResponseSchema { - private string _createTimeRaw; + /// + /// Optional. If true, the request will be validated and a simulation of the analysis will be performed without + /// actually executing the task. + /// + [Newtonsoft.Json.JsonPropertyAttribute("dryRun")] + public virtual System.Nullable DryRun { get; set; } - private object _createTime; + /// Optional. AIP-160 compliant filter for selecting target conversations. + [Newtonsoft.Json.JsonPropertyAttribute("filter")] + public virtual string Filter { get; set; } - /// Output only. The time the operation was created. - [Newtonsoft.Json.JsonPropertyAttribute("createTime")] - public virtual string CreateTimeRaw - { - get => _createTimeRaw; - set - { - _createTime = Google.Apis.Util.Utilities.DeserializeForGoogleFormat(value); - _createTimeRaw = value; - } - } + /// Optional. If true, the agent will generate a full diagnostic report for all sub-agents. + [Newtonsoft.Json.JsonPropertyAttribute("fullReport")] + public virtual System.Nullable FullReport { get; set; } - /// representation of . - [Newtonsoft.Json.JsonIgnoreAttribute] - [System.ObsoleteAttribute("This property is obsolete and may behave unexpectedly; please use CreateTimeDateTimeOffset instead.")] - public virtual object CreateTime - { - get => _createTime; - set - { - _createTimeRaw = Google.Apis.Util.Utilities.SerializeForGoogleFormat(value); - _createTime = value; - } - } + /// Optional. Specific instructions for the agent. + [Newtonsoft.Json.JsonPropertyAttribute("instructions")] + public virtual string Instructions { get; set; } - /// representation of . - [Newtonsoft.Json.JsonIgnoreAttribute] - public virtual System.DateTimeOffset? CreateTimeDateTimeOffset - { - get => Google.Apis.Util.DiscoveryFormat.ParseGoogleDateTimeToDateTimeOffset(CreateTimeRaw); - set => CreateTimeRaw = Google.Apis.Util.DiscoveryFormat.FormatDateTimeOffsetToGoogleDateTime(value); - } + /// + /// Optional. The maximum number of steps the agent can take during the execution of the task. Defaults to 10. + /// + [Newtonsoft.Json.JsonPropertyAttribute("maxSteps")] + public virtual System.Nullable MaxSteps { get; set; } - private string _endTimeRaw; + /// Optional. The type of metric being diagnosed. + [Newtonsoft.Json.JsonPropertyAttribute("metricType")] + public virtual string MetricType { get; set; } - private object _endTime; + /// Optional. The configuration for the output of the task. + [Newtonsoft.Json.JsonPropertyAttribute("outputConfig")] + public virtual GoogleCloudContactcenterinsightsV1OutputConfig OutputConfig { get; set; } - /// Output only. The time the operation finished running. - [Newtonsoft.Json.JsonPropertyAttribute("endTime")] - public virtual string EndTimeRaw - { - get => _endTimeRaw; - set - { - _endTime = Google.Apis.Util.Utilities.DeserializeForGoogleFormat(value); - _endTimeRaw = value; - } - } + /// Required. The parent resource where the analysis will be performed. + [Newtonsoft.Json.JsonPropertyAttribute("parent")] + public virtual string Parent { get; set; } - /// representation of . - [Newtonsoft.Json.JsonIgnoreAttribute] - [System.ObsoleteAttribute("This property is obsolete and may behave unexpectedly; please use EndTimeDateTimeOffset instead.")] - public virtual object EndTime - { - get => _endTime; - set - { - _endTimeRaw = Google.Apis.Util.Utilities.SerializeForGoogleFormat(value); - _endTime = value; - } - } + /// + /// Optional. Required. A unique ID that identifies the request. If the service receives two + /// `DiagnoseConversationsRequest`s with the same `request_id`, then the second request will be ignored; + /// instead, the response of the first request will be returned. The ID must contain only letters (a-z, A-Z), + /// numbers (0-9), underscores (_), and hyphens (-). The maximum length is 40 characters. + /// + [Newtonsoft.Json.JsonPropertyAttribute("requestId")] + public virtual string RequestId { get; set; } - /// representation of . - [Newtonsoft.Json.JsonIgnoreAttribute] - public virtual System.DateTimeOffset? EndTimeDateTimeOffset - { - get => Google.Apis.Util.DiscoveryFormat.ParseGoogleDateTimeToDateTimeOffset(EndTimeRaw); - set => EndTimeRaw = Google.Apis.Util.DiscoveryFormat.FormatDateTimeOffsetToGoogleDateTime(value); - } + /// Optional. A natural language description of the analysis goal or question. + [Newtonsoft.Json.JsonPropertyAttribute("taskQuery")] + public virtual string TaskQuery { get; set; } - /// Output only. The original request. - [Newtonsoft.Json.JsonPropertyAttribute("request")] - public virtual GoogleCloudContactcenterinsightsV1DeleteQaQuestionTagRequest Request { get; set; } + /// + /// Optional. If true, the request will only be validated (permissions, filter syntax, etc.) without actually + /// triggering the analysis. + /// + [Newtonsoft.Json.JsonPropertyAttribute("validateOnly")] + public virtual System.Nullable ValidateOnly { get; set; } /// The ETag of the item. public virtual string ETag { get; set; } } - /// The request for deleting a QaQuestionTag. - public class GoogleCloudContactcenterinsightsV1DeleteQaQuestionTagRequest : Google.Apis.Requests.IDirectResponseSchema + /// The response from a DiagnoseConversations request. + public class GoogleCloudContactcenterinsightsV1DiagnoseConversationsResponse : Google.Apis.Requests.IDirectResponseSchema { - /// Required. The name of the QaQuestionTag to delete. - [Newtonsoft.Json.JsonPropertyAttribute("name")] - public virtual string Name { get; set; } + /// + /// Output only. The final, high-level answer or diagnostic summary returned by the Sherlock worker. + /// + [Newtonsoft.Json.JsonPropertyAttribute("answer")] + public virtual string Answer { get; set; } + + /// Output only. If an external destination was requested, the URI of the exported data. + [Newtonsoft.Json.JsonPropertyAttribute("exportUri")] + public virtual string ExportUri { get; set; } + + /// + /// Output only. Deprecated: Use full_trajectory_steps instead. The complete sequence of thoughts and actions + /// (full trajectory). + /// + [Newtonsoft.Json.JsonPropertyAttribute("fullTrajectories")] + public virtual System.Collections.Generic.IList FullTrajectories { get; set; } + + /// Output only. The complete sequence of thoughts and actions taken by the agent. + [Newtonsoft.Json.JsonPropertyAttribute("fullTrajectorySteps")] + public virtual System.Collections.Generic.IList FullTrajectorySteps { get; set; } /// The ETag of the item. public virtual string ETag { get; set; } } - /// Metadata for deploying an issue model. - public class GoogleCloudContactcenterinsightsV1DeployIssueModelMetadata : Google.Apis.Requests.IDirectResponseSchema + /// The diagnostic resource. + public class GoogleCloudContactcenterinsightsV1Diagnostic : Google.Apis.Requests.IDirectResponseSchema { + /// Output only. The complete sequence of thoughts and actions taken by the agent. + [Newtonsoft.Json.JsonPropertyAttribute("analysisSummary")] + public virtual string AnalysisSummary { get; set; } + + /// + /// Output only. The filter used to select the conversations that were included in the diagnostic. + /// + [Newtonsoft.Json.JsonPropertyAttribute("conversationFilter")] + public virtual string ConversationFilter { get; set; } + private string _createTimeRaw; private object _createTime; - /// Output only. The time the operation was created. + /// Output only. The time at which the diagnostic was created. [Newtonsoft.Json.JsonPropertyAttribute("createTime")] public virtual string CreateTimeRaw { @@ -16744,72 +17715,66 @@ public virtual System.DateTimeOffset? CreateTimeDateTimeOffset set => CreateTimeRaw = Google.Apis.Util.DiscoveryFormat.FormatDateTimeOffsetToGoogleDateTime(value); } - private string _endTimeRaw; - - private object _endTime; - - /// Output only. The time the operation finished running. - [Newtonsoft.Json.JsonPropertyAttribute("endTime")] - public virtual string EndTimeRaw - { - get => _endTimeRaw; - set - { - _endTime = Google.Apis.Util.Utilities.DeserializeForGoogleFormat(value); - _endTimeRaw = value; - } - } - - /// representation of . - [Newtonsoft.Json.JsonIgnoreAttribute] - [System.ObsoleteAttribute("This property is obsolete and may behave unexpectedly; please use EndTimeDateTimeOffset instead.")] - public virtual object EndTime - { - get => _endTime; - set - { - _endTimeRaw = Google.Apis.Util.Utilities.SerializeForGoogleFormat(value); - _endTime = value; - } - } - - /// representation of . - [Newtonsoft.Json.JsonIgnoreAttribute] - public virtual System.DateTimeOffset? EndTimeDateTimeOffset - { - get => Google.Apis.Util.DiscoveryFormat.ParseGoogleDateTimeToDateTimeOffset(EndTimeRaw); - set => EndTimeRaw = Google.Apis.Util.DiscoveryFormat.FormatDateTimeOffsetToGoogleDateTime(value); - } + /// Immutable. Identifier. The resource name of the diagnostic. + [Newtonsoft.Json.JsonPropertyAttribute("name")] + public virtual string Name { get; set; } - /// The original request for deployment. - [Newtonsoft.Json.JsonPropertyAttribute("request")] - public virtual GoogleCloudContactcenterinsightsV1DeployIssueModelRequest Request { get; set; } + /// Output only. The report containing the findings of the diagnostic. + [Newtonsoft.Json.JsonPropertyAttribute("report")] + public virtual GoogleCloudContactcenterinsightsV1DiagnosticReport Report { get; set; } /// The ETag of the item. public virtual string ETag { get; set; } } - /// The request to deploy an issue model. - public class GoogleCloudContactcenterinsightsV1DeployIssueModelRequest : Google.Apis.Requests.IDirectResponseSchema + /// A diagnostic report containing aggregate metrics and intent breakdowns. + public class GoogleCloudContactcenterinsightsV1DiagnosticReport : Google.Apis.Requests.IDirectResponseSchema { - /// Required. The issue model to deploy. - [Newtonsoft.Json.JsonPropertyAttribute("name")] - public virtual string Name { get; set; } + /// Output only. A breakdown of metrics grouped by intent. + [Newtonsoft.Json.JsonPropertyAttribute("intentStats")] + public virtual System.Collections.Generic.IList IntentStats { get; set; } - /// The ETag of the item. - public virtual string ETag { get; set; } - } + /// Output only. A list of loss patterns identified for the entire project/dataset. + [Newtonsoft.Json.JsonPropertyAttribute("lossPatterns")] + public virtual System.Collections.Generic.IList LossPatterns { get; set; } + + /// + /// Output only. Deprecated: The type of the metric. Metrics for Outcome Based Insights derived from + /// QueryMetrics. + /// + [Newtonsoft.Json.JsonPropertyAttribute("metrics")] + public virtual System.Collections.Generic.IDictionary Metrics { get; set; } - /// The response to deploy an issue model. - public class GoogleCloudContactcenterinsightsV1DeployIssueModelResponse : Google.Apis.Requests.IDirectResponseSchema - { /// The ETag of the item. public virtual string ETag { get; set; } } - /// The request to deploy a QaScorecardRevision - public class GoogleCloudContactcenterinsightsV1DeployQaScorecardRevisionRequest : Google.Apis.Requests.IDirectResponseSchema + /// A breakdown of metrics grouped by intent. + public class GoogleCloudContactcenterinsightsV1DiagnosticReportIntentStats : Google.Apis.Requests.IDirectResponseSchema { + /// Output only. The number of conversations associated with this intent. + [Newtonsoft.Json.JsonPropertyAttribute("conversationCount")] + public virtual System.Nullable ConversationCount { get; set; } + + /// Output only. The display name of the intent. + [Newtonsoft.Json.JsonPropertyAttribute("intentDisplayName")] + public virtual string IntentDisplayName { get; set; } + + /// Output only. The unique identifier for the intent (from Discovery Engine). + [Newtonsoft.Json.JsonPropertyAttribute("intentId")] + public virtual string IntentId { get; set; } + + /// Output only. A list of loss patterns identified for this intent. + [Newtonsoft.Json.JsonPropertyAttribute("lossPatterns")] + public virtual System.Collections.Generic.IList LossPatterns { get; set; } + + /// + /// Output only. Deprecated: The type of the metric. Metrics for Outcome Based Insights derived from + /// QueryMetrics. + /// + [Newtonsoft.Json.JsonPropertyAttribute("metrics")] + public virtual System.Collections.Generic.IDictionary Metrics { get; set; } + /// The ETag of the item. public virtual string ETag { get; set; } } @@ -19420,6 +20385,24 @@ public class GoogleCloudContactcenterinsightsV1ListDatasetsResponse : Google.Api public virtual string ETag { get; set; } } + /// The response from a ListDiagnostics request. + public class GoogleCloudContactcenterinsightsV1ListDiagnosticsResponse : Google.Apis.Requests.IDirectResponseSchema + { + /// Optional. The diagnostics that match the request. + [Newtonsoft.Json.JsonPropertyAttribute("diagnostics")] + public virtual System.Collections.Generic.IList Diagnostics { get; set; } + + /// + /// Optional. A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, + /// there are no subsequent pages. + /// + [Newtonsoft.Json.JsonPropertyAttribute("nextPageToken")] + public virtual string NextPageToken { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + /// The response for listing feedback labels. public class GoogleCloudContactcenterinsightsV1ListFeedbackLabelsResponse : Google.Apis.Requests.IDirectResponseSchema { @@ -19583,6 +20566,103 @@ public class GoogleCloudContactcenterinsightsV1ListViewsResponse : Google.Apis.R public virtual string ETag { get; set; } } + /// A loss pattern of a virtual agent and suggested fixes. + public class GoogleCloudContactcenterinsightsV1LossPattern : Google.Apis.Requests.IDirectResponseSchema + { + /// Output only. A list of conversation IDs that match this loss pattern. + [Newtonsoft.Json.JsonPropertyAttribute("conversationIds")] + public virtual System.Collections.Generic.IList ConversationIds { get; set; } + + /// Output only. A markdown description of the loss pattern. + [Newtonsoft.Json.JsonPropertyAttribute("description")] + public virtual string Description { get; set; } + + /// Output only. The display name of the loss pattern. + [Newtonsoft.Json.JsonPropertyAttribute("displayName")] + public virtual string DisplayName { get; set; } + + /// Output only. A markdown of loss pattern examples. + [Newtonsoft.Json.JsonPropertyAttribute("examples")] + public virtual string Examples { get; set; } + + /// Output only. The unique identifier for the loss pattern. + [Newtonsoft.Json.JsonPropertyAttribute("id")] + public virtual string Id { get; set; } + + /// Output only. The percentage of conversations that match this loss pattern. + [Newtonsoft.Json.JsonPropertyAttribute("percentage")] + public virtual System.Nullable Percentage { get; set; } + + /// Output only. A markdown description of the suggested fixes. + [Newtonsoft.Json.JsonPropertyAttribute("suggestedFixes")] + public virtual string SuggestedFixes { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// A definition for a metric to be calculated during analysis. + public class GoogleCloudContactcenterinsightsV1MetricDefinition : Google.Apis.Requests.IDirectResponseSchema + { + /// Output only. The user-visible name of the metric (e.g., "Containment Rate"). + [Newtonsoft.Json.JsonPropertyAttribute("displayName")] + public virtual string DisplayName { get; set; } + + /// + /// Output only. The resource name of the underlying Insights primitive (e.g., Tag or QaQuestion) used to + /// calculate this metric. + /// + [Newtonsoft.Json.JsonPropertyAttribute("sourceId")] + public virtual string SourceId { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// Deprecated: MetricValue is no longer used for diagnostics. + public class GoogleCloudContactcenterinsightsV1MetricValue : Google.Apis.Requests.IDirectResponseSchema + { + /// + /// Output only. The list of conversation names that contributed to this metric (hits). Format: + /// `projects/{project}/locations/{location}/conversations/{conversation}` + /// + [Newtonsoft.Json.JsonPropertyAttribute("conversations")] + public virtual System.Collections.Generic.IList Conversations { get; set; } + + /// Output only. The user-visible name of the metric (e.g., "Containment Rate"). + [Newtonsoft.Json.JsonPropertyAttribute("displayName")] + public virtual string DisplayName { get; set; } + + /// Output only. The number of positive matches (hits) for this metric. + [Newtonsoft.Json.JsonPropertyAttribute("hitCount")] + public virtual System.Nullable HitCount { get; set; } + + /// + /// Output only. Deprecated: The type of the metric. Metrics for Outcome Based Insights derived from + /// QueryMetrics. + /// + [Newtonsoft.Json.JsonPropertyAttribute("metricType")] + public virtual string MetricType { get; set; } + + /// + /// Output only. The resource name of the underlying Insights primitive (e.g., Tag or QaQuestion) used to + /// calculate this metric. + /// + [Newtonsoft.Json.JsonPropertyAttribute("sourceId")] + public virtual string SourceId { get; set; } + + /// Output only. The total number of items evaluated for this metric. + [Newtonsoft.Json.JsonPropertyAttribute("totalCount")] + public virtual System.Nullable TotalCount { get; set; } + + /// Output only. The calculated value of the metric (usually a ratio or rate 0.0 - 1.0). + [Newtonsoft.Json.JsonPropertyAttribute("value")] + public virtual System.Nullable Value { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + /// The conversation assessment note resource. public class GoogleCloudContactcenterinsightsV1Note : Google.Apis.Requests.IDirectResponseSchema { @@ -19720,6 +20800,70 @@ public class GoogleCloudContactcenterinsightsV1NoteQaQuestionNote : Google.Apis. public virtual string ETag { get; set; } } + /// Configuration for where to export or return the analysis findings. + public class GoogleCloudContactcenterinsightsV1OutputConfig : Google.Apis.Requests.IDirectResponseSchema + { + /// Optional. Export to BigQuery. + [Newtonsoft.Json.JsonPropertyAttribute("bigqueryDestination")] + public virtual GoogleCloudContactcenterinsightsV1OutputConfigBigQueryDestination BigqueryDestination { get; set; } + + /// Optional. Export to a Cloud Storage bucket. + [Newtonsoft.Json.JsonPropertyAttribute("gcsDestination")] + public virtual GoogleCloudContactcenterinsightsV1OutputConfigGcsDestination GcsDestination { get; set; } + + /// Optional. Export directly to a Google Sheet. + [Newtonsoft.Json.JsonPropertyAttribute("googleSheetsDestination")] + public virtual GoogleCloudContactcenterinsightsV1OutputConfigGoogleSheetsDestination GoogleSheetsDestination { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// BigQuery destination configuration. + public class GoogleCloudContactcenterinsightsV1OutputConfigBigQueryDestination : Google.Apis.Requests.IDirectResponseSchema + { + /// Required. The name of the BigQuery dataset. + [Newtonsoft.Json.JsonPropertyAttribute("dataset")] + public virtual string Dataset { get; set; } + + /// Optional. A project ID or number. + [Newtonsoft.Json.JsonPropertyAttribute("projectId")] + public virtual string ProjectId { get; set; } + + /// Required. The BigQuery table name. + [Newtonsoft.Json.JsonPropertyAttribute("table")] + public virtual string Table { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// Cloud Storage destination configuration. + public class GoogleCloudContactcenterinsightsV1OutputConfigGcsDestination : Google.Apis.Requests.IDirectResponseSchema + { + /// Required. The Cloud Storage URI to export the results to. + [Newtonsoft.Json.JsonPropertyAttribute("uri")] + public virtual string Uri { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// Google Sheets destination configuration. + public class GoogleCloudContactcenterinsightsV1OutputConfigGoogleSheetsDestination : Google.Apis.Requests.IDirectResponseSchema + { + /// Optional. The sheet name. + [Newtonsoft.Json.JsonPropertyAttribute("sheet")] + public virtual string Sheet { get; set; } + + /// Optional. An existing Google Sheets ID. + [Newtonsoft.Json.JsonPropertyAttribute("spreadsheetId")] + public virtual string SpreadsheetId { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + /// /// The data for a matched phrase matcher. Represents information identifying a phrase matcher for a given match. /// @@ -21513,6 +22657,14 @@ public class GoogleCloudContactcenterinsightsV1RuntimeAnnotation : Google.Apis.R [Newtonsoft.Json.JsonPropertyAttribute("articleSuggestion")] public virtual GoogleCloudContactcenterinsightsV1ArticleSuggestionData ArticleSuggestion { get; set; } + /// The CES end session annotation. + [Newtonsoft.Json.JsonPropertyAttribute("cesEndSessionAnnotation")] + public virtual GoogleCloudContactcenterinsightsV1CesEndSessionAnnotation CesEndSessionAnnotation { get; set; } + + /// The CES turn annotation. + [Newtonsoft.Json.JsonPropertyAttribute("cesTurnAnnotation")] + public virtual GoogleCloudContactcenterinsightsV1CesTurnAnnotation CesTurnAnnotation { get; set; } + /// Conversation summarization suggestion data. [Newtonsoft.Json.JsonPropertyAttribute("conversationSummarizationSuggestion")] public virtual GoogleCloudContactcenterinsightsV1ConversationSummarizationSuggestionData ConversationSummarizationSuggestion { get; set; } @@ -21971,6 +23123,10 @@ public virtual System.DateTimeOffset? CreateTimeDateTimeOffset set => CreateTimeRaw = Google.Apis.Util.DiscoveryFormat.FormatDateTimeOffsetToGoogleDateTime(value); } + /// Optional. Configuration for diagnostic metrics. + [Newtonsoft.Json.JsonPropertyAttribute("diagnosticMetricConfig")] + public virtual GoogleCloudContactcenterinsightsV1SettingsDiagnosticMetricConfig DiagnosticMetricConfig { get; set; } + /// /// A language code to be applied to each transcript segment unless the segment already specifies a language /// code. Language code defaults to "en-US" if it is neither specified on the segment nor here. @@ -22103,6 +23259,42 @@ public class GoogleCloudContactcenterinsightsV1SettingsAnalysisConfig : Google.A public virtual string ETag { get; set; } } + /// Configuration for diagnostic metrics. + public class GoogleCloudContactcenterinsightsV1SettingsDiagnosticMetricConfig : Google.Apis.Requests.IDirectResponseSchema + { + /// + /// Optional. A map of diagnostic metrics. The key is a unique identifier for the metric (e.g., "containment"). + /// + [Newtonsoft.Json.JsonPropertyAttribute("metrics")] + public virtual System.Collections.Generic.IDictionary Metrics { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// A step in the agent's reasoning process (Trajectory Step). + public class GoogleCloudContactcenterinsightsV1SherlockStep : Google.Apis.Requests.IDirectResponseSchema + { + /// Output only. Natural language input stimulus. + [Newtonsoft.Json.JsonPropertyAttribute("textInput")] + public virtual System.Collections.Generic.IList TextInput { get; set; } + + /// Output only. The reasoning or internal monologue of the agent. + [Newtonsoft.Json.JsonPropertyAttribute("thought")] + public virtual string Thought { get; set; } + + /// Output only. The tool call issued by the agent. + [Newtonsoft.Json.JsonPropertyAttribute("toolCalls")] + public virtual System.Collections.Generic.IList ToolCalls { get; set; } + + /// Output only. The output response from the tool execution. + [Newtonsoft.Json.JsonPropertyAttribute("toolOutput")] + public virtual System.Collections.Generic.IDictionary ToolOutput { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + /// Signed audio URIs for a conversation. public class GoogleCloudContactcenterinsightsV1SignedAudioUris : Google.Apis.Requests.IDirectResponseSchema { @@ -22411,6 +23603,21 @@ public class GoogleCloudContactcenterinsightsV1TestCorrelationConfigResponseDeta public virtual string ETag { get; set; } } + /// A tool call from the agent. + public class GoogleCloudContactcenterinsightsV1ToolCall : Google.Apis.Requests.IDirectResponseSchema + { + /// Output only. The input arguments to the tool. + [Newtonsoft.Json.JsonPropertyAttribute("input")] + public virtual System.Collections.Generic.IDictionary Input { get; set; } + + /// Output only. The name of the tool being called. + [Newtonsoft.Json.JsonPropertyAttribute("toolName")] + public virtual string ToolName { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + /// Request for TuneQaScorecardRevision endpoint. public class GoogleCloudContactcenterinsightsV1TuneQaScorecardRevisionRequest : Google.Apis.Requests.IDirectResponseSchema { @@ -23685,6 +24892,32 @@ public class GoogleCloudContactcenterinsightsV1alpha1CallAnnotation : Google.Api public virtual string ETag { get; set; } } + /// The CES end session annotation. + public class GoogleCloudContactcenterinsightsV1alpha1CesEndSessionAnnotation : Google.Apis.Requests.IDirectResponseSchema + { + /// End session signal from CES. + [Newtonsoft.Json.JsonPropertyAttribute("endSession")] + public virtual GoogleCloudCesV1mainEndSession EndSession { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// The CES diagnostic information. + public class GoogleCloudContactcenterinsightsV1alpha1CesTurnAnnotation : Google.Apis.Requests.IDirectResponseSchema + { + /// The messages in the turn. + [Newtonsoft.Json.JsonPropertyAttribute("messages")] + public virtual System.Collections.Generic.IList Messages { get; set; } + + /// The root span of the action processing. + [Newtonsoft.Json.JsonPropertyAttribute("rootSpan")] + public virtual GoogleCloudCesV1mainSpan RootSpan { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + /// The result of testing a constraint expression on a pair of conversations. public class GoogleCloudContactcenterinsightsV1alpha1ConstraintEvaluationResult : Google.Apis.Requests.IDirectResponseSchema { @@ -24897,18 +26130,210 @@ public virtual System.DateTimeOffset? EndTimeDateTimeOffset set => EndTimeRaw = Google.Apis.Util.DiscoveryFormat.FormatDateTimeOffsetToGoogleDateTime(value); } - /// The original request for deletion. + /// The original request for deletion. + [Newtonsoft.Json.JsonPropertyAttribute("request")] + public virtual GoogleCloudContactcenterinsightsV1alpha1DeleteIssueModelRequest Request { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// The request to delete an issue model. + public class GoogleCloudContactcenterinsightsV1alpha1DeleteIssueModelRequest : Google.Apis.Requests.IDirectResponseSchema + { + /// Required. The name of the issue model to delete. + [Newtonsoft.Json.JsonPropertyAttribute("name")] + public virtual string Name { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// The metadata for deleting a QaQuestionTag Resource. + public class GoogleCloudContactcenterinsightsV1alpha1DeleteQaQuestionTagMetadata : Google.Apis.Requests.IDirectResponseSchema + { + private string _createTimeRaw; + + private object _createTime; + + /// Output only. The time the operation was created. + [Newtonsoft.Json.JsonPropertyAttribute("createTime")] + public virtual string CreateTimeRaw + { + get => _createTimeRaw; + set + { + _createTime = Google.Apis.Util.Utilities.DeserializeForGoogleFormat(value); + _createTimeRaw = value; + } + } + + /// representation of . + [Newtonsoft.Json.JsonIgnoreAttribute] + [System.ObsoleteAttribute("This property is obsolete and may behave unexpectedly; please use CreateTimeDateTimeOffset instead.")] + public virtual object CreateTime + { + get => _createTime; + set + { + _createTimeRaw = Google.Apis.Util.Utilities.SerializeForGoogleFormat(value); + _createTime = value; + } + } + + /// representation of . + [Newtonsoft.Json.JsonIgnoreAttribute] + public virtual System.DateTimeOffset? CreateTimeDateTimeOffset + { + get => Google.Apis.Util.DiscoveryFormat.ParseGoogleDateTimeToDateTimeOffset(CreateTimeRaw); + set => CreateTimeRaw = Google.Apis.Util.DiscoveryFormat.FormatDateTimeOffsetToGoogleDateTime(value); + } + + private string _endTimeRaw; + + private object _endTime; + + /// Output only. The time the operation finished running. + [Newtonsoft.Json.JsonPropertyAttribute("endTime")] + public virtual string EndTimeRaw + { + get => _endTimeRaw; + set + { + _endTime = Google.Apis.Util.Utilities.DeserializeForGoogleFormat(value); + _endTimeRaw = value; + } + } + + /// representation of . + [Newtonsoft.Json.JsonIgnoreAttribute] + [System.ObsoleteAttribute("This property is obsolete and may behave unexpectedly; please use EndTimeDateTimeOffset instead.")] + public virtual object EndTime + { + get => _endTime; + set + { + _endTimeRaw = Google.Apis.Util.Utilities.SerializeForGoogleFormat(value); + _endTime = value; + } + } + + /// representation of . + [Newtonsoft.Json.JsonIgnoreAttribute] + public virtual System.DateTimeOffset? EndTimeDateTimeOffset + { + get => Google.Apis.Util.DiscoveryFormat.ParseGoogleDateTimeToDateTimeOffset(EndTimeRaw); + set => EndTimeRaw = Google.Apis.Util.DiscoveryFormat.FormatDateTimeOffsetToGoogleDateTime(value); + } + + /// Output only. The original request. + [Newtonsoft.Json.JsonPropertyAttribute("request")] + public virtual GoogleCloudContactcenterinsightsV1alpha1DeleteQaQuestionTagRequest Request { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// The request for deleting a QaQuestionTag. + public class GoogleCloudContactcenterinsightsV1alpha1DeleteQaQuestionTagRequest : Google.Apis.Requests.IDirectResponseSchema + { + /// Required. The name of the QaQuestionTag to delete. + [Newtonsoft.Json.JsonPropertyAttribute("name")] + public virtual string Name { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// Metadata for deploying an issue model. + public class GoogleCloudContactcenterinsightsV1alpha1DeployIssueModelMetadata : Google.Apis.Requests.IDirectResponseSchema + { + private string _createTimeRaw; + + private object _createTime; + + /// Output only. The time the operation was created. + [Newtonsoft.Json.JsonPropertyAttribute("createTime")] + public virtual string CreateTimeRaw + { + get => _createTimeRaw; + set + { + _createTime = Google.Apis.Util.Utilities.DeserializeForGoogleFormat(value); + _createTimeRaw = value; + } + } + + /// representation of . + [Newtonsoft.Json.JsonIgnoreAttribute] + [System.ObsoleteAttribute("This property is obsolete and may behave unexpectedly; please use CreateTimeDateTimeOffset instead.")] + public virtual object CreateTime + { + get => _createTime; + set + { + _createTimeRaw = Google.Apis.Util.Utilities.SerializeForGoogleFormat(value); + _createTime = value; + } + } + + /// representation of . + [Newtonsoft.Json.JsonIgnoreAttribute] + public virtual System.DateTimeOffset? CreateTimeDateTimeOffset + { + get => Google.Apis.Util.DiscoveryFormat.ParseGoogleDateTimeToDateTimeOffset(CreateTimeRaw); + set => CreateTimeRaw = Google.Apis.Util.DiscoveryFormat.FormatDateTimeOffsetToGoogleDateTime(value); + } + + private string _endTimeRaw; + + private object _endTime; + + /// Output only. The time the operation finished running. + [Newtonsoft.Json.JsonPropertyAttribute("endTime")] + public virtual string EndTimeRaw + { + get => _endTimeRaw; + set + { + _endTime = Google.Apis.Util.Utilities.DeserializeForGoogleFormat(value); + _endTimeRaw = value; + } + } + + /// representation of . + [Newtonsoft.Json.JsonIgnoreAttribute] + [System.ObsoleteAttribute("This property is obsolete and may behave unexpectedly; please use EndTimeDateTimeOffset instead.")] + public virtual object EndTime + { + get => _endTime; + set + { + _endTimeRaw = Google.Apis.Util.Utilities.SerializeForGoogleFormat(value); + _endTime = value; + } + } + + /// representation of . + [Newtonsoft.Json.JsonIgnoreAttribute] + public virtual System.DateTimeOffset? EndTimeDateTimeOffset + { + get => Google.Apis.Util.DiscoveryFormat.ParseGoogleDateTimeToDateTimeOffset(EndTimeRaw); + set => EndTimeRaw = Google.Apis.Util.DiscoveryFormat.FormatDateTimeOffsetToGoogleDateTime(value); + } + + /// The original request for deployment. [Newtonsoft.Json.JsonPropertyAttribute("request")] - public virtual GoogleCloudContactcenterinsightsV1alpha1DeleteIssueModelRequest Request { get; set; } + public virtual GoogleCloudContactcenterinsightsV1alpha1DeployIssueModelRequest Request { get; set; } /// The ETag of the item. public virtual string ETag { get; set; } } - /// The request to delete an issue model. - public class GoogleCloudContactcenterinsightsV1alpha1DeleteIssueModelRequest : Google.Apis.Requests.IDirectResponseSchema + /// The request to deploy an issue model. + public class GoogleCloudContactcenterinsightsV1alpha1DeployIssueModelRequest : Google.Apis.Requests.IDirectResponseSchema { - /// Required. The name of the issue model to delete. + /// Required. The issue model to deploy. [Newtonsoft.Json.JsonPropertyAttribute("name")] public virtual string Name { get; set; } @@ -24916,8 +26341,15 @@ public class GoogleCloudContactcenterinsightsV1alpha1DeleteIssueModelRequest : G public virtual string ETag { get; set; } } - /// The metadata for deleting a QaQuestionTag Resource. - public class GoogleCloudContactcenterinsightsV1alpha1DeleteQaQuestionTagMetadata : Google.Apis.Requests.IDirectResponseSchema + /// The response to deploy an issue model. + public class GoogleCloudContactcenterinsightsV1alpha1DeployIssueModelResponse : Google.Apis.Requests.IDirectResponseSchema + { + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// Metadata for a DiagnoseConversations operation. + public class GoogleCloudContactcenterinsightsV1alpha1DiagnoseConversationsMetadata : Google.Apis.Requests.IDirectResponseSchema { private string _createTimeRaw; @@ -24956,6 +26388,10 @@ public virtual System.DateTimeOffset? CreateTimeDateTimeOffset set => CreateTimeRaw = Google.Apis.Util.DiscoveryFormat.FormatDateTimeOffsetToGoogleDateTime(value); } + /// Output only. The diagnostic report containing metrics and intent breakdowns. + [Newtonsoft.Json.JsonPropertyAttribute("diagnosticReport")] + public virtual GoogleCloudContactcenterinsightsV1alpha1DiagnosticReport DiagnosticReport { get; set; } + private string _endTimeRaw; private object _endTime; @@ -24993,124 +26429,183 @@ public virtual System.DateTimeOffset? EndTimeDateTimeOffset set => EndTimeRaw = Google.Apis.Util.DiscoveryFormat.FormatDateTimeOffsetToGoogleDateTime(value); } - /// Output only. The original request. + /// Output only. If true, the agent generated a full diagnostic report for all sub-agents. + [Newtonsoft.Json.JsonPropertyAttribute("fullReport")] + public virtual System.Nullable FullReport { get; set; } + + /// Output only. The most recent thought or action from the agent. + [Newtonsoft.Json.JsonPropertyAttribute("latestStep")] + public virtual GoogleCloudContactcenterinsightsV1alpha1SherlockStep LatestStep { get; set; } + + /// Output only. The type of metric being diagnosed. + [Newtonsoft.Json.JsonPropertyAttribute("metricType")] + public virtual string MetricType { get; set; } + + /// + /// Output only. Deprecated: Use partial_trajectory_steps instead. The intermediate trajectory updates (partial + /// trajectory). + /// + [Newtonsoft.Json.JsonPropertyAttribute("partialTrajectories")] + public virtual System.Collections.Generic.IList PartialTrajectories { get; set; } + + /// + /// Output only. The intermediate trajectory updates. This can be used for live progress tracking of the agent's + /// thoughts and actions as it works through the analysis. + /// + [Newtonsoft.Json.JsonPropertyAttribute("partialTrajectorySteps")] + public virtual System.Collections.Generic.IList PartialTrajectorySteps { get; set; } + + /// Output only. The request that created the operation. [Newtonsoft.Json.JsonPropertyAttribute("request")] - public virtual GoogleCloudContactcenterinsightsV1alpha1DeleteQaQuestionTagRequest Request { get; set; } + public virtual GoogleCloudContactcenterinsightsV1alpha1DiagnoseConversationsRequest Request { get; set; } /// The ETag of the item. public virtual string ETag { get; set; } } - /// The request for deleting a QaQuestionTag. - public class GoogleCloudContactcenterinsightsV1alpha1DeleteQaQuestionTagRequest : Google.Apis.Requests.IDirectResponseSchema + /// + /// The request to analyze conversation data using agentic workflows. This RPC triggers a complex analysis process + /// that may involve several steps of reasoning and tool execution. + /// + public class GoogleCloudContactcenterinsightsV1alpha1DiagnoseConversationsRequest : Google.Apis.Requests.IDirectResponseSchema { - /// Required. The name of the QaQuestionTag to delete. - [Newtonsoft.Json.JsonPropertyAttribute("name")] - public virtual string Name { get; set; } + /// + /// Optional. If true, the request will be validated and a simulation of the analysis will be performed without + /// actually executing the task. + /// + [Newtonsoft.Json.JsonPropertyAttribute("dryRun")] + public virtual System.Nullable DryRun { get; set; } - /// The ETag of the item. - public virtual string ETag { get; set; } - } + /// Optional. AIP-160 compliant filter for selecting target conversations. + [Newtonsoft.Json.JsonPropertyAttribute("filter")] + public virtual string Filter { get; set; } - /// Metadata for deploying an issue model. - public class GoogleCloudContactcenterinsightsV1alpha1DeployIssueModelMetadata : Google.Apis.Requests.IDirectResponseSchema - { - private string _createTimeRaw; + /// Optional. If true, the agent will generate a full diagnostic report for all sub-agents. + [Newtonsoft.Json.JsonPropertyAttribute("fullReport")] + public virtual System.Nullable FullReport { get; set; } - private object _createTime; + /// Optional. Specific instructions for the agent. + [Newtonsoft.Json.JsonPropertyAttribute("instructions")] + public virtual string Instructions { get; set; } - /// Output only. The time the operation was created. - [Newtonsoft.Json.JsonPropertyAttribute("createTime")] - public virtual string CreateTimeRaw - { - get => _createTimeRaw; - set - { - _createTime = Google.Apis.Util.Utilities.DeserializeForGoogleFormat(value); - _createTimeRaw = value; - } - } + /// + /// Optional. The maximum number of steps the agent can take during the execution of the task. Defaults to 10. + /// + [Newtonsoft.Json.JsonPropertyAttribute("maxSteps")] + public virtual System.Nullable MaxSteps { get; set; } - /// representation of . - [Newtonsoft.Json.JsonIgnoreAttribute] - [System.ObsoleteAttribute("This property is obsolete and may behave unexpectedly; please use CreateTimeDateTimeOffset instead.")] - public virtual object CreateTime - { - get => _createTime; - set - { - _createTimeRaw = Google.Apis.Util.Utilities.SerializeForGoogleFormat(value); - _createTime = value; - } - } + /// Optional. The type of metric being diagnosed. + [Newtonsoft.Json.JsonPropertyAttribute("metricType")] + public virtual string MetricType { get; set; } - /// representation of . - [Newtonsoft.Json.JsonIgnoreAttribute] - public virtual System.DateTimeOffset? CreateTimeDateTimeOffset - { - get => Google.Apis.Util.DiscoveryFormat.ParseGoogleDateTimeToDateTimeOffset(CreateTimeRaw); - set => CreateTimeRaw = Google.Apis.Util.DiscoveryFormat.FormatDateTimeOffsetToGoogleDateTime(value); - } + /// Optional. The configuration for the output of the task. + [Newtonsoft.Json.JsonPropertyAttribute("outputConfig")] + public virtual GoogleCloudContactcenterinsightsV1alpha1OutputConfig OutputConfig { get; set; } - private string _endTimeRaw; + /// Required. The parent resource where the analysis will be performed. + [Newtonsoft.Json.JsonPropertyAttribute("parent")] + public virtual string Parent { get; set; } - private object _endTime; + /// + /// Optional. Required. A unique ID that identifies the request. If the service receives two + /// `DiagnoseConversationsRequest`s with the same `request_id`, then the second request will be ignored; + /// instead, the response of the first request will be returned. The ID must contain only letters (a-z, A-Z), + /// numbers (0-9), underscores (_), and hyphens (-). The maximum length is 40 characters. + /// + [Newtonsoft.Json.JsonPropertyAttribute("requestId")] + public virtual string RequestId { get; set; } - /// Output only. The time the operation finished running. - [Newtonsoft.Json.JsonPropertyAttribute("endTime")] - public virtual string EndTimeRaw - { - get => _endTimeRaw; - set - { - _endTime = Google.Apis.Util.Utilities.DeserializeForGoogleFormat(value); - _endTimeRaw = value; - } - } + /// Optional. A natural language description of the analysis goal or question. + [Newtonsoft.Json.JsonPropertyAttribute("taskQuery")] + public virtual string TaskQuery { get; set; } - /// representation of . - [Newtonsoft.Json.JsonIgnoreAttribute] - [System.ObsoleteAttribute("This property is obsolete and may behave unexpectedly; please use EndTimeDateTimeOffset instead.")] - public virtual object EndTime - { - get => _endTime; - set - { - _endTimeRaw = Google.Apis.Util.Utilities.SerializeForGoogleFormat(value); - _endTime = value; - } - } + /// + /// Optional. If true, the request will only be validated (permissions, filter syntax, etc.) without actually + /// triggering the analysis. + /// + [Newtonsoft.Json.JsonPropertyAttribute("validateOnly")] + public virtual System.Nullable ValidateOnly { get; set; } - /// representation of . - [Newtonsoft.Json.JsonIgnoreAttribute] - public virtual System.DateTimeOffset? EndTimeDateTimeOffset - { - get => Google.Apis.Util.DiscoveryFormat.ParseGoogleDateTimeToDateTimeOffset(EndTimeRaw); - set => EndTimeRaw = Google.Apis.Util.DiscoveryFormat.FormatDateTimeOffsetToGoogleDateTime(value); - } + /// The ETag of the item. + public virtual string ETag { get; set; } + } - /// The original request for deployment. - [Newtonsoft.Json.JsonPropertyAttribute("request")] - public virtual GoogleCloudContactcenterinsightsV1alpha1DeployIssueModelRequest Request { get; set; } + /// The response from a DiagnoseConversations request. + public class GoogleCloudContactcenterinsightsV1alpha1DiagnoseConversationsResponse : Google.Apis.Requests.IDirectResponseSchema + { + /// + /// Output only. The final, high-level answer or diagnostic summary returned by the Sherlock worker. + /// + [Newtonsoft.Json.JsonPropertyAttribute("answer")] + public virtual string Answer { get; set; } + + /// Output only. If an external destination was requested, the URI of the exported data. + [Newtonsoft.Json.JsonPropertyAttribute("exportUri")] + public virtual string ExportUri { get; set; } + + /// + /// Output only. Deprecated: Use full_trajectory_steps instead. The complete sequence of thoughts and actions + /// (full trajectory). + /// + [Newtonsoft.Json.JsonPropertyAttribute("fullTrajectories")] + public virtual System.Collections.Generic.IList FullTrajectories { get; set; } + + /// Output only. The complete sequence of thoughts and actions taken by the agent. + [Newtonsoft.Json.JsonPropertyAttribute("fullTrajectorySteps")] + public virtual System.Collections.Generic.IList FullTrajectorySteps { get; set; } /// The ETag of the item. public virtual string ETag { get; set; } } - /// The request to deploy an issue model. - public class GoogleCloudContactcenterinsightsV1alpha1DeployIssueModelRequest : Google.Apis.Requests.IDirectResponseSchema + /// A diagnostic report containing aggregate metrics and intent breakdowns. + public class GoogleCloudContactcenterinsightsV1alpha1DiagnosticReport : Google.Apis.Requests.IDirectResponseSchema { - /// Required. The issue model to deploy. - [Newtonsoft.Json.JsonPropertyAttribute("name")] - public virtual string Name { get; set; } + /// Output only. A breakdown of metrics grouped by intent. + [Newtonsoft.Json.JsonPropertyAttribute("intentStats")] + public virtual System.Collections.Generic.IList IntentStats { get; set; } + + /// Output only. A list of loss patterns identified for the entire project/dataset. + [Newtonsoft.Json.JsonPropertyAttribute("lossPatterns")] + public virtual System.Collections.Generic.IList LossPatterns { get; set; } + + /// + /// Output only. Deprecated: The type of the metric. Metrics for Outcome Based Insights derived from + /// QueryMetrics. + /// + [Newtonsoft.Json.JsonPropertyAttribute("metrics")] + public virtual System.Collections.Generic.IDictionary Metrics { get; set; } /// The ETag of the item. public virtual string ETag { get; set; } } - /// The response to deploy an issue model. - public class GoogleCloudContactcenterinsightsV1alpha1DeployIssueModelResponse : Google.Apis.Requests.IDirectResponseSchema + /// A breakdown of metrics grouped by intent. + public class GoogleCloudContactcenterinsightsV1alpha1DiagnosticReportIntentStats : Google.Apis.Requests.IDirectResponseSchema { + /// Output only. The number of conversations associated with this intent. + [Newtonsoft.Json.JsonPropertyAttribute("conversationCount")] + public virtual System.Nullable ConversationCount { get; set; } + + /// Output only. The display name of the intent. + [Newtonsoft.Json.JsonPropertyAttribute("intentDisplayName")] + public virtual string IntentDisplayName { get; set; } + + /// Output only. The unique identifier for the intent (from Discovery Engine). + [Newtonsoft.Json.JsonPropertyAttribute("intentId")] + public virtual string IntentId { get; set; } + + /// Output only. A list of loss patterns identified for this intent. + [Newtonsoft.Json.JsonPropertyAttribute("lossPatterns")] + public virtual System.Collections.Generic.IList LossPatterns { get; set; } + + /// + /// Output only. Deprecated: The type of the metric. Metrics for Outcome Based Insights derived from + /// QueryMetrics. + /// + [Newtonsoft.Json.JsonPropertyAttribute("metrics")] + public virtual System.Collections.Generic.IDictionary Metrics { get; set; } + /// The ETag of the item. public virtual string ETag { get; set; } } @@ -27192,6 +28687,149 @@ public class GoogleCloudContactcenterinsightsV1alpha1ListFeedbackLabelsResponse public virtual string ETag { get; set; } } + /// A loss pattern of a virtual agent and suggested fixes. + public class GoogleCloudContactcenterinsightsV1alpha1LossPattern : Google.Apis.Requests.IDirectResponseSchema + { + /// Output only. A list of conversation IDs that match this loss pattern. + [Newtonsoft.Json.JsonPropertyAttribute("conversationIds")] + public virtual System.Collections.Generic.IList ConversationIds { get; set; } + + /// Output only. A markdown description of the loss pattern. + [Newtonsoft.Json.JsonPropertyAttribute("description")] + public virtual string Description { get; set; } + + /// Output only. The display name of the loss pattern. + [Newtonsoft.Json.JsonPropertyAttribute("displayName")] + public virtual string DisplayName { get; set; } + + /// Output only. A markdown of loss pattern examples. + [Newtonsoft.Json.JsonPropertyAttribute("examples")] + public virtual string Examples { get; set; } + + /// Output only. The unique identifier for the loss pattern. + [Newtonsoft.Json.JsonPropertyAttribute("id")] + public virtual string Id { get; set; } + + /// Output only. The percentage of conversations that match this loss pattern. + [Newtonsoft.Json.JsonPropertyAttribute("percentage")] + public virtual System.Nullable Percentage { get; set; } + + /// Output only. A markdown description of the suggested fixes. + [Newtonsoft.Json.JsonPropertyAttribute("suggestedFixes")] + public virtual string SuggestedFixes { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// Deprecated: MetricValue is no longer used for diagnostics. + public class GoogleCloudContactcenterinsightsV1alpha1MetricValue : Google.Apis.Requests.IDirectResponseSchema + { + /// + /// Output only. The list of conversation names that contributed to this metric (hits). Format: + /// `projects/{project}/locations/{location}/conversations/{conversation}` + /// + [Newtonsoft.Json.JsonPropertyAttribute("conversations")] + public virtual System.Collections.Generic.IList Conversations { get; set; } + + /// Output only. The user-visible name of the metric (e.g., "Containment Rate"). + [Newtonsoft.Json.JsonPropertyAttribute("displayName")] + public virtual string DisplayName { get; set; } + + /// Output only. The number of positive matches (hits) for this metric. + [Newtonsoft.Json.JsonPropertyAttribute("hitCount")] + public virtual System.Nullable HitCount { get; set; } + + /// + /// Output only. Deprecated: The type of the metric. Metrics for Outcome Based Insights derived from + /// QueryMetrics. + /// + [Newtonsoft.Json.JsonPropertyAttribute("metricType")] + public virtual string MetricType { get; set; } + + /// + /// Output only. The resource name of the underlying Insights primitive (e.g., Tag or QaQuestion) used to + /// calculate this metric. + /// + [Newtonsoft.Json.JsonPropertyAttribute("sourceId")] + public virtual string SourceId { get; set; } + + /// Output only. The total number of items evaluated for this metric. + [Newtonsoft.Json.JsonPropertyAttribute("totalCount")] + public virtual System.Nullable TotalCount { get; set; } + + /// Output only. The calculated value of the metric (usually a ratio or rate 0.0 - 1.0). + [Newtonsoft.Json.JsonPropertyAttribute("value")] + public virtual System.Nullable Value { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// Configuration for where to export or return the analysis findings. + public class GoogleCloudContactcenterinsightsV1alpha1OutputConfig : Google.Apis.Requests.IDirectResponseSchema + { + /// Optional. Export to BigQuery. + [Newtonsoft.Json.JsonPropertyAttribute("bigqueryDestination")] + public virtual GoogleCloudContactcenterinsightsV1alpha1OutputConfigBigQueryDestination BigqueryDestination { get; set; } + + /// Optional. Export to a Cloud Storage bucket. + [Newtonsoft.Json.JsonPropertyAttribute("gcsDestination")] + public virtual GoogleCloudContactcenterinsightsV1alpha1OutputConfigGcsDestination GcsDestination { get; set; } + + /// Optional. Export directly to a Google Sheet. + [Newtonsoft.Json.JsonPropertyAttribute("googleSheetsDestination")] + public virtual GoogleCloudContactcenterinsightsV1alpha1OutputConfigGoogleSheetsDestination GoogleSheetsDestination { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// BigQuery destination configuration. + public class GoogleCloudContactcenterinsightsV1alpha1OutputConfigBigQueryDestination : Google.Apis.Requests.IDirectResponseSchema + { + /// Required. The name of the BigQuery dataset. + [Newtonsoft.Json.JsonPropertyAttribute("dataset")] + public virtual string Dataset { get; set; } + + /// Optional. A project ID or number. + [Newtonsoft.Json.JsonPropertyAttribute("projectId")] + public virtual string ProjectId { get; set; } + + /// Required. The BigQuery table name. + [Newtonsoft.Json.JsonPropertyAttribute("table")] + public virtual string Table { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// Cloud Storage destination configuration. + public class GoogleCloudContactcenterinsightsV1alpha1OutputConfigGcsDestination : Google.Apis.Requests.IDirectResponseSchema + { + /// Required. The Cloud Storage URI to export the results to. + [Newtonsoft.Json.JsonPropertyAttribute("uri")] + public virtual string Uri { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// Google Sheets destination configuration. + public class GoogleCloudContactcenterinsightsV1alpha1OutputConfigGoogleSheetsDestination : Google.Apis.Requests.IDirectResponseSchema + { + /// Optional. The sheet name. + [Newtonsoft.Json.JsonPropertyAttribute("sheet")] + public virtual string Sheet { get; set; } + + /// Optional. An existing Google Sheets ID. + [Newtonsoft.Json.JsonPropertyAttribute("spreadsheetId")] + public virtual string SpreadsheetId { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + /// /// The data for a matched phrase matcher. Represents information identifying a phrase matcher for a given match. /// @@ -28138,6 +29776,14 @@ public class GoogleCloudContactcenterinsightsV1alpha1RuntimeAnnotation : Google. [Newtonsoft.Json.JsonPropertyAttribute("articleSuggestion")] public virtual GoogleCloudContactcenterinsightsV1alpha1ArticleSuggestionData ArticleSuggestion { get; set; } + /// The CES end session annotation. + [Newtonsoft.Json.JsonPropertyAttribute("cesEndSessionAnnotation")] + public virtual GoogleCloudContactcenterinsightsV1alpha1CesEndSessionAnnotation CesEndSessionAnnotation { get; set; } + + /// The CES turn annotation. + [Newtonsoft.Json.JsonPropertyAttribute("cesTurnAnnotation")] + public virtual GoogleCloudContactcenterinsightsV1alpha1CesTurnAnnotation CesTurnAnnotation { get; set; } + /// Conversation summarization suggestion data. [Newtonsoft.Json.JsonPropertyAttribute("conversationSummarizationSuggestion")] public virtual GoogleCloudContactcenterinsightsV1alpha1ConversationSummarizationSuggestionData ConversationSummarizationSuggestion { get; set; } @@ -28421,6 +30067,29 @@ public class GoogleCloudContactcenterinsightsV1alpha1SentimentData : Google.Apis public virtual string ETag { get; set; } } + /// A step in the agent's reasoning process (Trajectory Step). + public class GoogleCloudContactcenterinsightsV1alpha1SherlockStep : Google.Apis.Requests.IDirectResponseSchema + { + /// Output only. Natural language input stimulus. + [Newtonsoft.Json.JsonPropertyAttribute("textInput")] + public virtual System.Collections.Generic.IList TextInput { get; set; } + + /// Output only. The reasoning or internal monologue of the agent. + [Newtonsoft.Json.JsonPropertyAttribute("thought")] + public virtual string Thought { get; set; } + + /// Output only. The tool call issued by the agent. + [Newtonsoft.Json.JsonPropertyAttribute("toolCalls")] + public virtual System.Collections.Generic.IList ToolCalls { get; set; } + + /// Output only. The output response from the tool execution. + [Newtonsoft.Json.JsonPropertyAttribute("toolOutput")] + public virtual System.Collections.Generic.IDictionary ToolOutput { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + /// The data for a silence annotation. public class GoogleCloudContactcenterinsightsV1alpha1SilenceData : Google.Apis.Requests.IDirectResponseSchema { @@ -28643,6 +30312,21 @@ public class GoogleCloudContactcenterinsightsV1alpha1TestCorrelationConfigRespon public virtual string ETag { get; set; } } + /// A tool call from the agent. + public class GoogleCloudContactcenterinsightsV1alpha1ToolCall : Google.Apis.Requests.IDirectResponseSchema + { + /// Output only. The input arguments to the tool. + [Newtonsoft.Json.JsonPropertyAttribute("input")] + public virtual System.Collections.Generic.IDictionary Input { get; set; } + + /// Output only. The name of the tool being called. + [Newtonsoft.Json.JsonPropertyAttribute("toolName")] + public virtual string ToolName { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + /// Metadata for undeploying an issue model. public class GoogleCloudContactcenterinsightsV1alpha1UndeployIssueModelMetadata : Google.Apis.Requests.IDirectResponseSchema { @@ -29991,6 +31675,32 @@ public class GoogleCloudContactcenterinsightsV1mainCallAnnotation : Google.Apis. public virtual string ETag { get; set; } } + /// The CES end session annotation. + public class GoogleCloudContactcenterinsightsV1mainCesEndSessionAnnotation : Google.Apis.Requests.IDirectResponseSchema + { + /// End session signal from CES. + [Newtonsoft.Json.JsonPropertyAttribute("endSession")] + public virtual GoogleCloudCesV1mainEndSession EndSession { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// The CES diagnostic information. + public class GoogleCloudContactcenterinsightsV1mainCesTurnAnnotation : Google.Apis.Requests.IDirectResponseSchema + { + /// The messages in the turn. + [Newtonsoft.Json.JsonPropertyAttribute("messages")] + public virtual System.Collections.Generic.IList Messages { get; set; } + + /// The root span of the action processing. + [Newtonsoft.Json.JsonPropertyAttribute("rootSpan")] + public virtual GoogleCloudCesV1mainSpan RootSpan { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + /// The result of testing a constraint expression on a pair of conversations. public class GoogleCloudContactcenterinsightsV1mainConstraintEvaluationResult : Google.Apis.Requests.IDirectResponseSchema { @@ -31421,6 +33131,268 @@ public class GoogleCloudContactcenterinsightsV1mainDeployIssueModelResponse : Go public virtual string ETag { get; set; } } + /// Metadata for a DiagnoseConversations operation. + public class GoogleCloudContactcenterinsightsV1mainDiagnoseConversationsMetadata : Google.Apis.Requests.IDirectResponseSchema + { + private string _createTimeRaw; + + private object _createTime; + + /// Output only. The time the operation was created. + [Newtonsoft.Json.JsonPropertyAttribute("createTime")] + public virtual string CreateTimeRaw + { + get => _createTimeRaw; + set + { + _createTime = Google.Apis.Util.Utilities.DeserializeForGoogleFormat(value); + _createTimeRaw = value; + } + } + + /// representation of . + [Newtonsoft.Json.JsonIgnoreAttribute] + [System.ObsoleteAttribute("This property is obsolete and may behave unexpectedly; please use CreateTimeDateTimeOffset instead.")] + public virtual object CreateTime + { + get => _createTime; + set + { + _createTimeRaw = Google.Apis.Util.Utilities.SerializeForGoogleFormat(value); + _createTime = value; + } + } + + /// representation of . + [Newtonsoft.Json.JsonIgnoreAttribute] + public virtual System.DateTimeOffset? CreateTimeDateTimeOffset + { + get => Google.Apis.Util.DiscoveryFormat.ParseGoogleDateTimeToDateTimeOffset(CreateTimeRaw); + set => CreateTimeRaw = Google.Apis.Util.DiscoveryFormat.FormatDateTimeOffsetToGoogleDateTime(value); + } + + /// Output only. The diagnostic report containing metrics and intent breakdowns. + [Newtonsoft.Json.JsonPropertyAttribute("diagnosticReport")] + public virtual GoogleCloudContactcenterinsightsV1mainDiagnosticReport DiagnosticReport { get; set; } + + private string _endTimeRaw; + + private object _endTime; + + /// Output only. The time the operation finished running. + [Newtonsoft.Json.JsonPropertyAttribute("endTime")] + public virtual string EndTimeRaw + { + get => _endTimeRaw; + set + { + _endTime = Google.Apis.Util.Utilities.DeserializeForGoogleFormat(value); + _endTimeRaw = value; + } + } + + /// representation of . + [Newtonsoft.Json.JsonIgnoreAttribute] + [System.ObsoleteAttribute("This property is obsolete and may behave unexpectedly; please use EndTimeDateTimeOffset instead.")] + public virtual object EndTime + { + get => _endTime; + set + { + _endTimeRaw = Google.Apis.Util.Utilities.SerializeForGoogleFormat(value); + _endTime = value; + } + } + + /// representation of . + [Newtonsoft.Json.JsonIgnoreAttribute] + public virtual System.DateTimeOffset? EndTimeDateTimeOffset + { + get => Google.Apis.Util.DiscoveryFormat.ParseGoogleDateTimeToDateTimeOffset(EndTimeRaw); + set => EndTimeRaw = Google.Apis.Util.DiscoveryFormat.FormatDateTimeOffsetToGoogleDateTime(value); + } + + /// Output only. If true, the agent generated a full diagnostic report for all sub-agents. + [Newtonsoft.Json.JsonPropertyAttribute("fullReport")] + public virtual System.Nullable FullReport { get; set; } + + /// Output only. The most recent thought or action from the agent. + [Newtonsoft.Json.JsonPropertyAttribute("latestStep")] + public virtual GoogleCloudContactcenterinsightsV1mainSherlockStep LatestStep { get; set; } + + /// Output only. The type of metric being diagnosed. + [Newtonsoft.Json.JsonPropertyAttribute("metricType")] + public virtual string MetricType { get; set; } + + /// + /// Output only. Deprecated: Use partial_trajectory_steps instead. The intermediate trajectory updates (partial + /// trajectory). + /// + [Newtonsoft.Json.JsonPropertyAttribute("partialTrajectories")] + public virtual System.Collections.Generic.IList PartialTrajectories { get; set; } + + /// + /// Output only. The intermediate trajectory updates. This can be used for live progress tracking of the agent's + /// thoughts and actions as it works through the analysis. + /// + [Newtonsoft.Json.JsonPropertyAttribute("partialTrajectorySteps")] + public virtual System.Collections.Generic.IList PartialTrajectorySteps { get; set; } + + /// Output only. The request that created the operation. + [Newtonsoft.Json.JsonPropertyAttribute("request")] + public virtual GoogleCloudContactcenterinsightsV1mainDiagnoseConversationsRequest Request { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// + /// The request to analyze conversation data using agentic workflows. This RPC triggers a complex analysis process + /// that may involve several steps of reasoning and tool execution. + /// + public class GoogleCloudContactcenterinsightsV1mainDiagnoseConversationsRequest : Google.Apis.Requests.IDirectResponseSchema + { + /// + /// Optional. If true, the request will be validated and a simulation of the analysis will be performed without + /// actually executing the task. + /// + [Newtonsoft.Json.JsonPropertyAttribute("dryRun")] + public virtual System.Nullable DryRun { get; set; } + + /// Optional. AIP-160 compliant filter for selecting target conversations. + [Newtonsoft.Json.JsonPropertyAttribute("filter")] + public virtual string Filter { get; set; } + + /// Optional. If true, the agent will generate a full diagnostic report for all sub-agents. + [Newtonsoft.Json.JsonPropertyAttribute("fullReport")] + public virtual System.Nullable FullReport { get; set; } + + /// Optional. Specific instructions for the agent. + [Newtonsoft.Json.JsonPropertyAttribute("instructions")] + public virtual string Instructions { get; set; } + + /// + /// Optional. The maximum number of steps the agent can take during the execution of the task. Defaults to 10. + /// + [Newtonsoft.Json.JsonPropertyAttribute("maxSteps")] + public virtual System.Nullable MaxSteps { get; set; } + + /// Optional. The type of metric being diagnosed. + [Newtonsoft.Json.JsonPropertyAttribute("metricType")] + public virtual string MetricType { get; set; } + + /// Optional. The configuration for the output of the task. + [Newtonsoft.Json.JsonPropertyAttribute("outputConfig")] + public virtual GoogleCloudContactcenterinsightsV1mainOutputConfig OutputConfig { get; set; } + + /// Required. The parent resource where the analysis will be performed. + [Newtonsoft.Json.JsonPropertyAttribute("parent")] + public virtual string Parent { get; set; } + + /// + /// Optional. Required. A unique ID that identifies the request. If the service receives two + /// `DiagnoseConversationsRequest`s with the same `request_id`, then the second request will be ignored; + /// instead, the response of the first request will be returned. The ID must contain only letters (a-z, A-Z), + /// numbers (0-9), underscores (_), and hyphens (-). The maximum length is 40 characters. + /// + [Newtonsoft.Json.JsonPropertyAttribute("requestId")] + public virtual string RequestId { get; set; } + + /// Optional. A natural language description of the analysis goal or question. + [Newtonsoft.Json.JsonPropertyAttribute("taskQuery")] + public virtual string TaskQuery { get; set; } + + /// + /// Optional. If true, the request will only be validated (permissions, filter syntax, etc.) without actually + /// triggering the analysis. + /// + [Newtonsoft.Json.JsonPropertyAttribute("validateOnly")] + public virtual System.Nullable ValidateOnly { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// The response from a DiagnoseConversations request. + public class GoogleCloudContactcenterinsightsV1mainDiagnoseConversationsResponse : Google.Apis.Requests.IDirectResponseSchema + { + /// + /// Output only. The final, high-level answer or diagnostic summary returned by the Sherlock worker. + /// + [Newtonsoft.Json.JsonPropertyAttribute("answer")] + public virtual string Answer { get; set; } + + /// Output only. If an external destination was requested, the URI of the exported data. + [Newtonsoft.Json.JsonPropertyAttribute("exportUri")] + public virtual string ExportUri { get; set; } + + /// + /// Output only. Deprecated: Use full_trajectory_steps instead. The complete sequence of thoughts and actions + /// (full trajectory). + /// + [Newtonsoft.Json.JsonPropertyAttribute("fullTrajectories")] + public virtual System.Collections.Generic.IList FullTrajectories { get; set; } + + /// Output only. The complete sequence of thoughts and actions taken by the agent. + [Newtonsoft.Json.JsonPropertyAttribute("fullTrajectorySteps")] + public virtual System.Collections.Generic.IList FullTrajectorySteps { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// A diagnostic report containing aggregate metrics and intent breakdowns. + public class GoogleCloudContactcenterinsightsV1mainDiagnosticReport : Google.Apis.Requests.IDirectResponseSchema + { + /// Output only. A breakdown of metrics grouped by intent. + [Newtonsoft.Json.JsonPropertyAttribute("intentStats")] + public virtual System.Collections.Generic.IList IntentStats { get; set; } + + /// Output only. A list of loss patterns identified for the entire project/dataset. + [Newtonsoft.Json.JsonPropertyAttribute("lossPatterns")] + public virtual System.Collections.Generic.IList LossPatterns { get; set; } + + /// + /// Output only. Deprecated: The type of the metric. Metrics for Outcome Based Insights derived from + /// QueryMetrics. + /// + [Newtonsoft.Json.JsonPropertyAttribute("metrics")] + public virtual System.Collections.Generic.IDictionary Metrics { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// A breakdown of metrics grouped by intent. + public class GoogleCloudContactcenterinsightsV1mainDiagnosticReportIntentStats : Google.Apis.Requests.IDirectResponseSchema + { + /// Output only. The number of conversations associated with this intent. + [Newtonsoft.Json.JsonPropertyAttribute("conversationCount")] + public virtual System.Nullable ConversationCount { get; set; } + + /// Output only. The display name of the intent. + [Newtonsoft.Json.JsonPropertyAttribute("intentDisplayName")] + public virtual string IntentDisplayName { get; set; } + + /// Output only. The unique identifier for the intent (from Discovery Engine). + [Newtonsoft.Json.JsonPropertyAttribute("intentId")] + public virtual string IntentId { get; set; } + + /// Output only. A list of loss patterns identified for this intent. + [Newtonsoft.Json.JsonPropertyAttribute("lossPatterns")] + public virtual System.Collections.Generic.IList LossPatterns { get; set; } + + /// + /// Output only. Deprecated: The type of the metric. Metrics for Outcome Based Insights derived from + /// QueryMetrics. + /// + [Newtonsoft.Json.JsonPropertyAttribute("metrics")] + public virtual System.Collections.Generic.IDictionary Metrics { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + /// /// The data for a Dialogflow intent. Represents a detected intent in the conversation, e.g. MAKES_PROMISE. /// @@ -33498,6 +35470,149 @@ public class GoogleCloudContactcenterinsightsV1mainListFeedbackLabelsResponse : public virtual string ETag { get; set; } } + /// A loss pattern of a virtual agent and suggested fixes. + public class GoogleCloudContactcenterinsightsV1mainLossPattern : Google.Apis.Requests.IDirectResponseSchema + { + /// Output only. A list of conversation IDs that match this loss pattern. + [Newtonsoft.Json.JsonPropertyAttribute("conversationIds")] + public virtual System.Collections.Generic.IList ConversationIds { get; set; } + + /// Output only. A markdown description of the loss pattern. + [Newtonsoft.Json.JsonPropertyAttribute("description")] + public virtual string Description { get; set; } + + /// Output only. The display name of the loss pattern. + [Newtonsoft.Json.JsonPropertyAttribute("displayName")] + public virtual string DisplayName { get; set; } + + /// Output only. A markdown of loss pattern examples. + [Newtonsoft.Json.JsonPropertyAttribute("examples")] + public virtual string Examples { get; set; } + + /// Output only. The unique identifier for the loss pattern. + [Newtonsoft.Json.JsonPropertyAttribute("id")] + public virtual string Id { get; set; } + + /// Output only. The percentage of conversations that match this loss pattern. + [Newtonsoft.Json.JsonPropertyAttribute("percentage")] + public virtual System.Nullable Percentage { get; set; } + + /// Output only. A markdown description of the suggested fixes. + [Newtonsoft.Json.JsonPropertyAttribute("suggestedFixes")] + public virtual string SuggestedFixes { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// Deprecated: MetricValue is no longer used for diagnostics. + public class GoogleCloudContactcenterinsightsV1mainMetricValue : Google.Apis.Requests.IDirectResponseSchema + { + /// + /// Output only. The list of conversation names that contributed to this metric (hits). Format: + /// `projects/{project}/locations/{location}/conversations/{conversation}` + /// + [Newtonsoft.Json.JsonPropertyAttribute("conversations")] + public virtual System.Collections.Generic.IList Conversations { get; set; } + + /// Output only. The user-visible name of the metric (e.g., "Containment Rate"). + [Newtonsoft.Json.JsonPropertyAttribute("displayName")] + public virtual string DisplayName { get; set; } + + /// Output only. The number of positive matches (hits) for this metric. + [Newtonsoft.Json.JsonPropertyAttribute("hitCount")] + public virtual System.Nullable HitCount { get; set; } + + /// + /// Output only. Deprecated: The type of the metric. Metrics for Outcome Based Insights derived from + /// QueryMetrics. + /// + [Newtonsoft.Json.JsonPropertyAttribute("metricType")] + public virtual string MetricType { get; set; } + + /// + /// Output only. The resource name of the underlying Insights primitive (e.g., Tag or QaQuestion) used to + /// calculate this metric. + /// + [Newtonsoft.Json.JsonPropertyAttribute("sourceId")] + public virtual string SourceId { get; set; } + + /// Output only. The total number of items evaluated for this metric. + [Newtonsoft.Json.JsonPropertyAttribute("totalCount")] + public virtual System.Nullable TotalCount { get; set; } + + /// Output only. The calculated value of the metric (usually a ratio or rate 0.0 - 1.0). + [Newtonsoft.Json.JsonPropertyAttribute("value")] + public virtual System.Nullable Value { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// Configuration for where to export or return the analysis findings. + public class GoogleCloudContactcenterinsightsV1mainOutputConfig : Google.Apis.Requests.IDirectResponseSchema + { + /// Optional. Export to BigQuery. + [Newtonsoft.Json.JsonPropertyAttribute("bigqueryDestination")] + public virtual GoogleCloudContactcenterinsightsV1mainOutputConfigBigQueryDestination BigqueryDestination { get; set; } + + /// Optional. Export to a Cloud Storage bucket. + [Newtonsoft.Json.JsonPropertyAttribute("gcsDestination")] + public virtual GoogleCloudContactcenterinsightsV1mainOutputConfigGcsDestination GcsDestination { get; set; } + + /// Optional. Export directly to a Google Sheet. + [Newtonsoft.Json.JsonPropertyAttribute("googleSheetsDestination")] + public virtual GoogleCloudContactcenterinsightsV1mainOutputConfigGoogleSheetsDestination GoogleSheetsDestination { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// BigQuery destination configuration. + public class GoogleCloudContactcenterinsightsV1mainOutputConfigBigQueryDestination : Google.Apis.Requests.IDirectResponseSchema + { + /// Required. The name of the BigQuery dataset. + [Newtonsoft.Json.JsonPropertyAttribute("dataset")] + public virtual string Dataset { get; set; } + + /// Optional. A project ID or number. + [Newtonsoft.Json.JsonPropertyAttribute("projectId")] + public virtual string ProjectId { get; set; } + + /// Required. The BigQuery table name. + [Newtonsoft.Json.JsonPropertyAttribute("table")] + public virtual string Table { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// Cloud Storage destination configuration. + public class GoogleCloudContactcenterinsightsV1mainOutputConfigGcsDestination : Google.Apis.Requests.IDirectResponseSchema + { + /// Required. The Cloud Storage URI to export the results to. + [Newtonsoft.Json.JsonPropertyAttribute("uri")] + public virtual string Uri { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// Google Sheets destination configuration. + public class GoogleCloudContactcenterinsightsV1mainOutputConfigGoogleSheetsDestination : Google.Apis.Requests.IDirectResponseSchema + { + /// Optional. The sheet name. + [Newtonsoft.Json.JsonPropertyAttribute("sheet")] + public virtual string Sheet { get; set; } + + /// Optional. An existing Google Sheets ID. + [Newtonsoft.Json.JsonPropertyAttribute("spreadsheetId")] + public virtual string SpreadsheetId { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + /// /// The data for a matched phrase matcher. Represents information identifying a phrase matcher for a given match. /// @@ -34444,6 +36559,14 @@ public class GoogleCloudContactcenterinsightsV1mainRuntimeAnnotation : Google.Ap [Newtonsoft.Json.JsonPropertyAttribute("articleSuggestion")] public virtual GoogleCloudContactcenterinsightsV1mainArticleSuggestionData ArticleSuggestion { get; set; } + /// The CES end session annotation. + [Newtonsoft.Json.JsonPropertyAttribute("cesEndSessionAnnotation")] + public virtual GoogleCloudContactcenterinsightsV1mainCesEndSessionAnnotation CesEndSessionAnnotation { get; set; } + + /// The CES turn annotation. + [Newtonsoft.Json.JsonPropertyAttribute("cesTurnAnnotation")] + public virtual GoogleCloudContactcenterinsightsV1mainCesTurnAnnotation CesTurnAnnotation { get; set; } + /// Conversation summarization suggestion data. [Newtonsoft.Json.JsonPropertyAttribute("conversationSummarizationSuggestion")] public virtual GoogleCloudContactcenterinsightsV1mainConversationSummarizationSuggestionData ConversationSummarizationSuggestion { get; set; } @@ -34727,6 +36850,29 @@ public class GoogleCloudContactcenterinsightsV1mainSentimentData : Google.Apis.R public virtual string ETag { get; set; } } + /// A step in the agent's reasoning process (Trajectory Step). + public class GoogleCloudContactcenterinsightsV1mainSherlockStep : Google.Apis.Requests.IDirectResponseSchema + { + /// Output only. Natural language input stimulus. + [Newtonsoft.Json.JsonPropertyAttribute("textInput")] + public virtual System.Collections.Generic.IList TextInput { get; set; } + + /// Output only. The reasoning or internal monologue of the agent. + [Newtonsoft.Json.JsonPropertyAttribute("thought")] + public virtual string Thought { get; set; } + + /// Output only. The tool call issued by the agent. + [Newtonsoft.Json.JsonPropertyAttribute("toolCalls")] + public virtual System.Collections.Generic.IList ToolCalls { get; set; } + + /// Output only. The output response from the tool execution. + [Newtonsoft.Json.JsonPropertyAttribute("toolOutput")] + public virtual System.Collections.Generic.IDictionary ToolOutput { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + /// The data for a silence annotation. public class GoogleCloudContactcenterinsightsV1mainSilenceData : Google.Apis.Requests.IDirectResponseSchema { @@ -34949,6 +37095,21 @@ public class GoogleCloudContactcenterinsightsV1mainTestCorrelationConfigResponse public virtual string ETag { get; set; } } + /// A tool call from the agent. + public class GoogleCloudContactcenterinsightsV1mainToolCall : Google.Apis.Requests.IDirectResponseSchema + { + /// Output only. The input arguments to the tool. + [Newtonsoft.Json.JsonPropertyAttribute("input")] + public virtual System.Collections.Generic.IDictionary Input { get; set; } + + /// Output only. The name of the tool being called. + [Newtonsoft.Json.JsonPropertyAttribute("toolName")] + public virtual string ToolName { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + /// Metadata for undeploying an issue model. public class GoogleCloudContactcenterinsightsV1mainUndeployIssueModelMetadata : Google.Apis.Requests.IDirectResponseSchema { diff --git a/Src/Generated/Google.Apis.Contactcenterinsights.v1/Google.Apis.Contactcenterinsights.v1.csproj b/Src/Generated/Google.Apis.Contactcenterinsights.v1/Google.Apis.Contactcenterinsights.v1.csproj index 4a859c55805..48ae8a6aa22 100644 --- a/Src/Generated/Google.Apis.Contactcenterinsights.v1/Google.Apis.Contactcenterinsights.v1.csproj +++ b/Src/Generated/Google.Apis.Contactcenterinsights.v1/Google.Apis.Contactcenterinsights.v1.csproj @@ -3,7 +3,7 @@ Google.Apis.Contactcenterinsights.v1 Client Library - 1.73.0.4108 + 1.73.0.4117 Google LLC Copyright 2026 Google LLC Google From 24c71ea2686b1e5c5c49cb294a153bba2d888157 Mon Sep 17 00:00:00 2001 From: Amanda Tarafa Mas Date: Mon, 20 Apr 2026 08:05:50 +0000 Subject: [PATCH 14/40] feat: Generate Google.Apis.Container.v1 version 1.73.0.4114 --- DiscoveryJson/container.v1.json | 17 ++++++++++++++++- .../Google.Apis.Container.v1.cs | 17 +++++++++++++++++ .../Google.Apis.Container.v1.csproj | 2 +- 3 files changed, 34 insertions(+), 2 deletions(-) diff --git a/DiscoveryJson/container.v1.json b/DiscoveryJson/container.v1.json index ad6c955604a..387a1d2ffc2 100644 --- a/DiscoveryJson/container.v1.json +++ b/DiscoveryJson/container.v1.json @@ -2660,7 +2660,7 @@ } } }, - "revision": "20260331", + "revision": "20260407", "rootUrl": "https://container.googleapis.com/", "schemas": { "AcceleratorConfig": { @@ -2867,6 +2867,10 @@ "$ref": "SliceControllerConfig", "description": "Optional. Configuration for the slice controller add-on." }, + "slurmOperatorConfig": { + "$ref": "SlurmOperatorConfig", + "description": "Configuration for the Slurm Operator." + }, "statefulHaConfig": { "$ref": "StatefulHAConfig", "description": "Optional. Configuration for the StatefulHA add-on." @@ -9083,6 +9087,17 @@ }, "type": "object" }, + "SlurmOperatorConfig": { + "description": "Configuration for the Slurm Operator.", + "id": "SlurmOperatorConfig", + "properties": { + "enabled": { + "description": "When enabled, it runs a Slurm Operator that manages the set of compute pods for Slurm Cluster.", + "type": "boolean" + } + }, + "type": "object" + }, "SoleTenantConfig": { "description": "SoleTenantConfig contains the NodeAffinities to specify what shared sole tenant node groups should back the node pool.", "id": "SoleTenantConfig", diff --git a/Src/Generated/Google.Apis.Container.v1/Google.Apis.Container.v1.cs b/Src/Generated/Google.Apis.Container.v1/Google.Apis.Container.v1.cs index 4f8c09a7fe9..39305466416 100644 --- a/Src/Generated/Google.Apis.Container.v1/Google.Apis.Container.v1.cs +++ b/Src/Generated/Google.Apis.Container.v1/Google.Apis.Container.v1.cs @@ -6701,6 +6701,10 @@ public class AddonsConfig : Google.Apis.Requests.IDirectResponseSchema [Newtonsoft.Json.JsonPropertyAttribute("sliceControllerConfig")] public virtual SliceControllerConfig SliceControllerConfig { get; set; } + /// Configuration for the Slurm Operator. + [Newtonsoft.Json.JsonPropertyAttribute("slurmOperatorConfig")] + public virtual SlurmOperatorConfig SlurmOperatorConfig { get; set; } + /// Optional. Configuration for the StatefulHA add-on. [Newtonsoft.Json.JsonPropertyAttribute("statefulHaConfig")] public virtual StatefulHAConfig StatefulHaConfig { get; set; } @@ -13202,6 +13206,19 @@ public class SliceControllerConfig : Google.Apis.Requests.IDirectResponseSchema public virtual string ETag { get; set; } } + /// Configuration for the Slurm Operator. + public class SlurmOperatorConfig : Google.Apis.Requests.IDirectResponseSchema + { + /// + /// When enabled, it runs a Slurm Operator that manages the set of compute pods for Slurm Cluster. + /// + [Newtonsoft.Json.JsonPropertyAttribute("enabled")] + public virtual System.Nullable Enabled { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + /// /// SoleTenantConfig contains the NodeAffinities to specify what shared sole tenant node groups should back the node /// pool. diff --git a/Src/Generated/Google.Apis.Container.v1/Google.Apis.Container.v1.csproj b/Src/Generated/Google.Apis.Container.v1/Google.Apis.Container.v1.csproj index a5aaa365965..fd7d8a39273 100644 --- a/Src/Generated/Google.Apis.Container.v1/Google.Apis.Container.v1.csproj +++ b/Src/Generated/Google.Apis.Container.v1/Google.Apis.Container.v1.csproj @@ -3,7 +3,7 @@ Google.Apis.Container.v1 Client Library - 1.73.0.4107 + 1.73.0.4114 Google LLC Copyright 2026 Google LLC Google From 734069e6183e0e47c82266276a6a79e9d8e8c293 Mon Sep 17 00:00:00 2001 From: Amanda Tarafa Mas Date: Mon, 20 Apr 2026 08:05:53 +0000 Subject: [PATCH 15/40] feat: Generate Google.Apis.Container.v1beta1 version 1.73.0.4114 --- DiscoveryJson/container.v1beta1.json | 17 ++++++++++++++++- .../Google.Apis.Container.v1beta1.cs | 15 +++++++++++++++ .../Google.Apis.Container.v1beta1.csproj | 2 +- 3 files changed, 32 insertions(+), 2 deletions(-) diff --git a/DiscoveryJson/container.v1beta1.json b/DiscoveryJson/container.v1beta1.json index b5be2324606..5883dfa7be6 100644 --- a/DiscoveryJson/container.v1beta1.json +++ b/DiscoveryJson/container.v1beta1.json @@ -2741,7 +2741,7 @@ } } }, - "revision": "20260331", + "revision": "20260407", "rootUrl": "https://container.googleapis.com/", "schemas": { "AcceleratorConfig": { @@ -2968,6 +2968,10 @@ "$ref": "SliceControllerConfig", "description": "Optional. Configuration for the slice controller add-on." }, + "slurmOperatorConfig": { + "$ref": "SlurmOperatorConfig", + "description": "Configuration for the Slurm Operator." + }, "statefulHaConfig": { "$ref": "StatefulHAConfig", "description": "Optional. Configuration for the StatefulHA add-on." @@ -9733,6 +9737,17 @@ }, "type": "object" }, + "SlurmOperatorConfig": { + "description": "Configuration for the Slurm Operator.", + "id": "SlurmOperatorConfig", + "properties": { + "enabled": { + "description": "Whether the Slurm Operator is enabled in the cluster.", + "type": "boolean" + } + }, + "type": "object" + }, "SoleTenantConfig": { "description": "SoleTenantConfig contains the NodeAffinities to specify what shared sole tenant node groups should back the node pool.", "id": "SoleTenantConfig", diff --git a/Src/Generated/Google.Apis.Container.v1beta1/Google.Apis.Container.v1beta1.cs b/Src/Generated/Google.Apis.Container.v1beta1/Google.Apis.Container.v1beta1.cs index dad70a3cccd..80bf0b10784 100644 --- a/Src/Generated/Google.Apis.Container.v1beta1/Google.Apis.Container.v1beta1.cs +++ b/Src/Generated/Google.Apis.Container.v1beta1/Google.Apis.Container.v1beta1.cs @@ -6897,6 +6897,10 @@ public class AddonsConfig : Google.Apis.Requests.IDirectResponseSchema [Newtonsoft.Json.JsonPropertyAttribute("sliceControllerConfig")] public virtual SliceControllerConfig SliceControllerConfig { get; set; } + /// Configuration for the Slurm Operator. + [Newtonsoft.Json.JsonPropertyAttribute("slurmOperatorConfig")] + public virtual SlurmOperatorConfig SlurmOperatorConfig { get; set; } + /// Optional. Configuration for the StatefulHA add-on. [Newtonsoft.Json.JsonPropertyAttribute("statefulHaConfig")] public virtual StatefulHAConfig StatefulHaConfig { get; set; } @@ -13990,6 +13994,17 @@ public class SliceControllerConfig : Google.Apis.Requests.IDirectResponseSchema public virtual string ETag { get; set; } } + /// Configuration for the Slurm Operator. + public class SlurmOperatorConfig : Google.Apis.Requests.IDirectResponseSchema + { + /// Whether the Slurm Operator is enabled in the cluster. + [Newtonsoft.Json.JsonPropertyAttribute("enabled")] + public virtual System.Nullable Enabled { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + /// /// SoleTenantConfig contains the NodeAffinities to specify what shared sole tenant node groups should back the node /// pool. diff --git a/Src/Generated/Google.Apis.Container.v1beta1/Google.Apis.Container.v1beta1.csproj b/Src/Generated/Google.Apis.Container.v1beta1/Google.Apis.Container.v1beta1.csproj index 6f97736267a..ec0bda310b2 100644 --- a/Src/Generated/Google.Apis.Container.v1beta1/Google.Apis.Container.v1beta1.csproj +++ b/Src/Generated/Google.Apis.Container.v1beta1/Google.Apis.Container.v1beta1.csproj @@ -3,7 +3,7 @@ Google.Apis.Container.v1beta1 Client Library - 1.73.0.4107 + 1.73.0.4114 Google LLC Copyright 2026 Google LLC Google From 949dbc73dfd33b5a8e066e70d056b8ec6528b408 Mon Sep 17 00:00:00 2001 From: Amanda Tarafa Mas Date: Mon, 20 Apr 2026 08:05:55 +0000 Subject: [PATCH 16/40] feat: Generate Google.Apis.Dataform.v1 version 1.73.0.4116 --- DiscoveryJson/dataform.v1.json | 40 +++++++++++------- .../Google.Apis.Dataform.v1.cs | 41 ++++++++++--------- .../Google.Apis.Dataform.v1.csproj | 2 +- 3 files changed, 48 insertions(+), 35 deletions(-) diff --git a/DiscoveryJson/dataform.v1.json b/DiscoveryJson/dataform.v1.json index 102b3d3d5e1..2ca697ca6ba 100644 --- a/DiscoveryJson/dataform.v1.json +++ b/DiscoveryJson/dataform.v1.json @@ -123,6 +123,11 @@ "endpointUrl": "https://dataform.europe-west3.rep.googleapis.com/", "location": "europe-west3" }, + { + "description": "Regional Endpoint", + "endpointUrl": "https://dataform.europe-west4.rep.googleapis.com/", + "location": "europe-west4" + }, { "description": "Regional Endpoint", "endpointUrl": "https://dataform.europe-west6.rep.googleapis.com/", @@ -188,6 +193,11 @@ "endpointUrl": "https://dataform.us-east1.rep.googleapis.com/", "location": "us-east1" }, + { + "description": "Regional Endpoint", + "endpointUrl": "https://dataform.us-east4.rep.googleapis.com/", + "location": "us-east4" + }, { "description": "Regional Endpoint", "endpointUrl": "https://dataform.us-east5.rep.googleapis.com/", @@ -428,19 +438,19 @@ ], "parameters": { "filter": { - "description": "Optional. Optional filtering for the returned list. Filtering is currently only supported on the `display_name` field. Example: - `filter=\"display_name=\"MyFolder\"\"`", + "description": "Optional. Optional filtering for the returned list. Filtering is currently only supported on the `display_name` field. Example: * `filter=\"display_name=\"MyFolder\"\"`", "location": "query", "type": "string" }, "location": { - "description": "Required. Location of the user root folder whose contents to list. Format: projects/*/locations/*", + "description": "Required. Location of the user root folder to list contents for. Format: projects/*/locations/*", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, "type": "string" }, "orderBy": { - "description": "Optional. Field to additionally sort results by. Will order Folders before Repositories, and then by `order_by` in ascending order. Supported keywords: display_name (default), created_at, last_modified_at. Examples: - `orderBy=\"display_name\"` - `orderBy=\"display_name desc\"`", + "description": "Optional. Field to additionally sort results by. Will order Folders before Repositories, and then by `order_by` in ascending order. Supported keywords: display_name (default), created_at, last_modified_at. Examples: * `orderBy=\"display_name\"` * `orderBy=\"display_name desc\"`", "location": "query", "type": "string" }, @@ -720,19 +730,19 @@ ], "parameters": { "filter": { - "description": "Optional. Optional filtering for the returned list. Filtering is currently only supported on the `display_name` field. Example: - `filter=\"display_name=\"MyFolder\"\"`", + "description": "Optional. Optional filtering for the returned list. Filtering is currently only supported on the `display_name` field. Example: * `filter=\"display_name=\"MyFolder\"\"`", "location": "query", "type": "string" }, "folder": { - "description": "Required. Name of the folder whose contents to list. Format: projects/*/locations/*/folders/*", + "description": "Required. Resource name of the Folder to list contents for. Format: projects/*/locations/*/folders/*", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/folders/[^/]+$", "required": true, "type": "string" }, "orderBy": { - "description": "Optional. Field to additionally sort results by. Will order Folders before Repositories, and then by `order_by` in ascending order. Supported keywords: display_name (default), create_time, last_modified_time. Examples: - `orderBy=\"display_name\"` - `orderBy=\"display_name desc\"`", + "description": "Optional. Field to additionally sort results by. Will order Folders before Repositories, and then by `order_by` in ascending order. Supported keywords: display_name (default), create_time, last_modified_time. Examples: * `orderBy=\"display_name\"` * `orderBy=\"display_name desc\"`", "location": "query", "type": "string" }, @@ -2607,7 +2617,7 @@ "DIRECTORY_CONTENTS_VIEW_METADATA" ], "enumDescriptions": [ - "The default / unset value. Defaults to DIRECTORY_CONTENTS_VIEW_BASIC.", + "The default unset value. Defaults to DIRECTORY_CONTENTS_VIEW_BASIC.", "Includes only the file or directory name. This is the default behavior.", "Includes all metadata for each file or directory. Currently not supported by CMEK-protected workspaces." ], @@ -3076,12 +3086,12 @@ ], "parameters": { "filter": { - "description": "Optional. Optional filtering for the returned list. Filtering is currently only supported on the `display_name` field. Example: - `filter=\"display_name=\"MyFolder\"\"`", + "description": "Optional. Optional filtering for the returned list. Filtering is currently only supported on the `display_name` field. Example: * `filter=\"display_name=\"MyFolder\"\"`", "location": "query", "type": "string" }, "orderBy": { - "description": "Optional. Field to additionally sort results by. Will order Folders before Repositories, and then by `order_by` in ascending order. Supported keywords: `display_name` (default), `create_time`, last_modified_time. Examples: - `orderBy=\"display_name\"` - `orderBy=\"display_name desc\"`", + "description": "Optional. Field to additionally sort results by. Will order Folders before Repositories, and then by `order_by` in ascending order. Supported keywords: `display_name` (default), `create_time`, last_modified_time. Examples: * `orderBy=\"display_name\"` * `orderBy=\"display_name desc\"`", "location": "query", "type": "string" }, @@ -3097,7 +3107,7 @@ "type": "string" }, "teamFolder": { - "description": "Required. Name of the team_folder whose contents to list. Format: `projects/*/locations/*/teamFolders/*`.", + "description": "Required. Resource name of the TeamFolder to list contents for. Format: `projects/*/locations/*/teamFolders/*`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/teamFolders/[^/]+$", "required": true, @@ -3123,7 +3133,7 @@ ], "parameters": { "filter": { - "description": "Optional. Optional filtering for the returned list. Filtering is currently only supported on the `display_name` field. Example: - `filter=\"display_name=\"MyFolder\"\"`", + "description": "Optional. Optional filtering for the returned list. Filtering is currently only supported on the `display_name` field. Example: * `filter=\"display_name=\"MyFolder\"\"`", "location": "query", "type": "string" }, @@ -3135,7 +3145,7 @@ "type": "string" }, "orderBy": { - "description": "Optional. Field to additionally sort results by. Supported keywords: `display_name` (default), `create_time`, `last_modified_time`. Examples: - `orderBy=\"display_name\"` - `orderBy=\"display_name desc\"`", + "description": "Optional. Field to additionally sort results by. Supported keywords: `display_name` (default), `create_time`, `last_modified_time`. Examples: * `orderBy=\"display_name\"` * `orderBy=\"display_name desc\"`", "location": "query", "type": "string" }, @@ -3225,7 +3235,7 @@ } } }, - "revision": "20260326", + "revision": "20260409", "rootUrl": "https://dataform.googleapis.com/", "schemas": { "ActionErrorTable": { @@ -4082,7 +4092,7 @@ "id": "Folder", "properties": { "containingFolder": { - "description": "Optional. The containing Folder resource name. This should take the format: projects/{project}/locations/{location}/folders/{folder}, projects/{project}/locations/{location}/teamFolders/{teamFolder}, or just projects/{project}/locations/{location} if this is a root Folder. This field can only be updated through MoveFolder.", + "description": "Optional. The containing Folder resource name. This should take the format: projects/{project}/locations/{location}/folders/{folder}, projects/{project}/locations/{location}/teamFolders/{teamFolder}, or just \"\" if this is a root Folder. This field can only be updated through MoveFolder.", "type": "string" }, "createTime": { @@ -4147,7 +4157,7 @@ "type": "string" }, "defaultBranch": { - "description": "Required. The Git remote's default branch name.", + "description": "Required. The Git remote's default branch name. If not set, `main` will be used and stored for the repository.", "type": "string" }, "sshAuthenticationConfig": { diff --git a/Src/Generated/Google.Apis.Dataform.v1/Google.Apis.Dataform.v1.cs b/Src/Generated/Google.Apis.Dataform.v1/Google.Apis.Dataform.v1.cs index aad7d71d836..3950d143e6e 100644 --- a/Src/Generated/Google.Apis.Dataform.v1/Google.Apis.Dataform.v1.cs +++ b/Src/Generated/Google.Apis.Dataform.v1/Google.Apis.Dataform.v1.cs @@ -741,7 +741,7 @@ protected override void InitParameters() /// Returns the contents of a given Folder. /// - /// Required. Name of the folder whose contents to list. Format: projects/*/locations/*/folders/* + /// Required. Resource name of the Folder to list contents for. Format: projects/*/locations/*/folders/* /// public virtual QueryFolderContentsRequest QueryFolderContents(string folder) { @@ -759,14 +759,15 @@ public QueryFolderContentsRequest(Google.Apis.Services.IClientService service, s } /// - /// Required. Name of the folder whose contents to list. Format: projects/*/locations/*/folders/* + /// Required. Resource name of the Folder to list contents for. Format: + /// projects/*/locations/*/folders/* /// [Google.Apis.Util.RequestParameterAttribute("folder", Google.Apis.Util.RequestParameterType.Path)] public virtual string Folder { get; private set; } /// /// Optional. Optional filtering for the returned list. Filtering is currently only supported on the - /// `display_name` field. Example: - `filter="display_name="MyFolder""` + /// `display_name` field. Example: * `filter="display_name="MyFolder""` /// [Google.Apis.Util.RequestParameterAttribute("filter", Google.Apis.Util.RequestParameterType.Query)] public virtual string Filter { get; set; } @@ -774,7 +775,7 @@ public QueryFolderContentsRequest(Google.Apis.Services.IClientService service, s /// /// Optional. Field to additionally sort results by. Will order Folders before Repositories, and /// then by `order_by` in ascending order. Supported keywords: display_name (default), create_time, - /// last_modified_time. Examples: - `orderBy="display_name"` - `orderBy="display_name desc"` + /// last_modified_time. Examples: * `orderBy="display_name"` * `orderBy="display_name desc"` /// [Google.Apis.Util.RequestParameterAttribute("orderBy", Google.Apis.Util.RequestParameterType.Query)] public virtual string OrderBy { get; set; } @@ -3695,7 +3696,7 @@ public QueryDirectoryContentsRequest(Google.Apis.Services.IClientService service /// public enum ViewEnum { - /// The default / unset value. Defaults to DIRECTORY_CONTENTS_VIEW_BASIC. + /// The default unset value. Defaults to DIRECTORY_CONTENTS_VIEW_BASIC. [Google.Apis.Util.StringValueAttribute("DIRECTORY_CONTENTS_VIEW_UNSPECIFIED")] DIRECTORYCONTENTSVIEWUNSPECIFIED = 0, @@ -5734,7 +5735,7 @@ protected override void InitParameters() /// Returns the contents of a given TeamFolder. /// - /// Required. Name of the team_folder whose contents to list. Format: + /// Required. Resource name of the TeamFolder to list contents for. Format: /// `projects/*/locations/*/teamFolders/*`. /// public virtual QueryContentsRequest QueryContents(string teamFolder) @@ -5753,7 +5754,7 @@ public QueryContentsRequest(Google.Apis.Services.IClientService service, string } /// - /// Required. Name of the team_folder whose contents to list. Format: + /// Required. Resource name of the TeamFolder to list contents for. Format: /// `projects/*/locations/*/teamFolders/*`. /// [Google.Apis.Util.RequestParameterAttribute("teamFolder", Google.Apis.Util.RequestParameterType.Path)] @@ -5761,7 +5762,7 @@ public QueryContentsRequest(Google.Apis.Services.IClientService service, string /// /// Optional. Optional filtering for the returned list. Filtering is currently only supported on the - /// `display_name` field. Example: - `filter="display_name="MyFolder""` + /// `display_name` field. Example: * `filter="display_name="MyFolder""` /// [Google.Apis.Util.RequestParameterAttribute("filter", Google.Apis.Util.RequestParameterType.Query)] public virtual string Filter { get; set; } @@ -5769,7 +5770,7 @@ public QueryContentsRequest(Google.Apis.Services.IClientService service, string /// /// Optional. Field to additionally sort results by. Will order Folders before Repositories, and /// then by `order_by` in ascending order. Supported keywords: `display_name` (default), - /// `create_time`, last_modified_time. Examples: - `orderBy="display_name"` - `orderBy="display_name + /// `create_time`, last_modified_time. Examples: * `orderBy="display_name"` * `orderBy="display_name /// desc"` /// [Google.Apis.Util.RequestParameterAttribute("orderBy", Google.Apis.Util.RequestParameterType.Query)] @@ -5880,14 +5881,14 @@ public SearchRequest(Google.Apis.Services.IClientService service, string locatio /// /// Optional. Optional filtering for the returned list. Filtering is currently only supported on the - /// `display_name` field. Example: - `filter="display_name="MyFolder""` + /// `display_name` field. Example: * `filter="display_name="MyFolder""` /// [Google.Apis.Util.RequestParameterAttribute("filter", Google.Apis.Util.RequestParameterType.Query)] public virtual string Filter { get; set; } /// /// Optional. Field to additionally sort results by. Supported keywords: `display_name` (default), - /// `create_time`, `last_modified_time`. Examples: - `orderBy="display_name"` - + /// `create_time`, `last_modified_time`. Examples: * `orderBy="display_name"` * /// `orderBy="display_name desc"` /// [Google.Apis.Util.RequestParameterAttribute("orderBy", Google.Apis.Util.RequestParameterType.Query)] @@ -6320,7 +6321,7 @@ protected override void InitParameters() /// resources that are created by the user and not contained in any other folder. /// /// - /// Required. Location of the user root folder whose contents to list. Format: projects/*/locations/* + /// Required. Location of the user root folder to list contents for. Format: projects/*/locations/* /// public virtual QueryUserRootContentsRequest QueryUserRootContents(string location) { @@ -6341,14 +6342,14 @@ public QueryUserRootContentsRequest(Google.Apis.Services.IClientService service, } /// - /// Required. Location of the user root folder whose contents to list. Format: projects/*/locations/* + /// Required. Location of the user root folder to list contents for. Format: projects/*/locations/* /// [Google.Apis.Util.RequestParameterAttribute("location", Google.Apis.Util.RequestParameterType.Path)] public virtual string Location { get; private set; } /// /// Optional. Optional filtering for the returned list. Filtering is currently only supported on the - /// `display_name` field. Example: - `filter="display_name="MyFolder""` + /// `display_name` field. Example: * `filter="display_name="MyFolder""` /// [Google.Apis.Util.RequestParameterAttribute("filter", Google.Apis.Util.RequestParameterType.Query)] public virtual string Filter { get; set; } @@ -6356,7 +6357,7 @@ public QueryUserRootContentsRequest(Google.Apis.Services.IClientService service, /// /// Optional. Field to additionally sort results by. Will order Folders before Repositories, and then by /// `order_by` in ascending order. Supported keywords: display_name (default), created_at, - /// last_modified_at. Examples: - `orderBy="display_name"` - `orderBy="display_name desc"` + /// last_modified_at. Examples: * `orderBy="display_name"` * `orderBy="display_name desc"` /// [Google.Apis.Util.RequestParameterAttribute("orderBy", Google.Apis.Util.RequestParameterType.Query)] public virtual string OrderBy { get; set; } @@ -7562,9 +7563,8 @@ public class Folder : Google.Apis.Requests.IDirectResponseSchema /// /// Optional. The containing Folder resource name. This should take the format: /// projects/{project}/locations/{location}/folders/{folder}, - /// projects/{project}/locations/{location}/teamFolders/{teamFolder}, or just - /// projects/{project}/locations/{location} if this is a root Folder. This field can only be updated through - /// MoveFolder. + /// projects/{project}/locations/{location}/teamFolders/{teamFolder}, or just "" if this is a root Folder. This + /// field can only be updated through MoveFolder. /// [Newtonsoft.Json.JsonPropertyAttribute("containingFolder")] public virtual string ContainingFolder { get; set; } @@ -7699,7 +7699,10 @@ public class GitRemoteSettings : Google.Apis.Requests.IDirectResponseSchema [Newtonsoft.Json.JsonPropertyAttribute("authenticationTokenSecretVersion")] public virtual string AuthenticationTokenSecretVersion { get; set; } - /// Required. The Git remote's default branch name. + /// + /// Required. The Git remote's default branch name. If not set, `main` will be used and stored for the + /// repository. + /// [Newtonsoft.Json.JsonPropertyAttribute("defaultBranch")] public virtual string DefaultBranch { get; set; } diff --git a/Src/Generated/Google.Apis.Dataform.v1/Google.Apis.Dataform.v1.csproj b/Src/Generated/Google.Apis.Dataform.v1/Google.Apis.Dataform.v1.csproj index eeeb533e614..90f1e71b8fc 100644 --- a/Src/Generated/Google.Apis.Dataform.v1/Google.Apis.Dataform.v1.csproj +++ b/Src/Generated/Google.Apis.Dataform.v1/Google.Apis.Dataform.v1.csproj @@ -3,7 +3,7 @@ Google.Apis.Dataform.v1 Client Library - 1.73.0.4102 + 1.73.0.4116 Google LLC Copyright 2026 Google LLC Google From f113ab9ecdd561e7a09caadd0497e6e953d72197 Mon Sep 17 00:00:00 2001 From: Amanda Tarafa Mas Date: Mon, 20 Apr 2026 08:05:57 +0000 Subject: [PATCH 17/40] feat: Generate Google.Apis.Dataform.v1beta1 version 1.73.0.4116 --- DiscoveryJson/dataform.v1beta1.json | 40 +++++++++++------- .../Google.Apis.Dataform.v1beta1.cs | 41 ++++++++++--------- .../Google.Apis.Dataform.v1beta1.csproj | 2 +- 3 files changed, 48 insertions(+), 35 deletions(-) diff --git a/DiscoveryJson/dataform.v1beta1.json b/DiscoveryJson/dataform.v1beta1.json index d5d481292bf..91bdeef1401 100644 --- a/DiscoveryJson/dataform.v1beta1.json +++ b/DiscoveryJson/dataform.v1beta1.json @@ -123,6 +123,11 @@ "endpointUrl": "https://dataform.europe-west3.rep.googleapis.com/", "location": "europe-west3" }, + { + "description": "Regional Endpoint", + "endpointUrl": "https://dataform.europe-west4.rep.googleapis.com/", + "location": "europe-west4" + }, { "description": "Regional Endpoint", "endpointUrl": "https://dataform.europe-west6.rep.googleapis.com/", @@ -188,6 +193,11 @@ "endpointUrl": "https://dataform.us-east1.rep.googleapis.com/", "location": "us-east1" }, + { + "description": "Regional Endpoint", + "endpointUrl": "https://dataform.us-east4.rep.googleapis.com/", + "location": "us-east4" + }, { "description": "Regional Endpoint", "endpointUrl": "https://dataform.us-east5.rep.googleapis.com/", @@ -428,19 +438,19 @@ ], "parameters": { "filter": { - "description": "Optional. Optional filtering for the returned list. Filtering is currently only supported on the `display_name` field. Example: - `filter=\"display_name=\"MyFolder\"\"`", + "description": "Optional. Optional filtering for the returned list. Filtering is currently only supported on the `display_name` field. Example: * `filter=\"display_name=\"MyFolder\"\"`", "location": "query", "type": "string" }, "location": { - "description": "Required. Location of the user root folder whose contents to list. Format: projects/*/locations/*", + "description": "Required. Location of the user root folder to list contents for. Format: projects/*/locations/*", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, "type": "string" }, "orderBy": { - "description": "Optional. Field to additionally sort results by. Will order Folders before Repositories, and then by `order_by` in ascending order. Supported keywords: display_name (default), created_at, last_modified_at. Examples: - `orderBy=\"display_name\"` - `orderBy=\"display_name desc\"`", + "description": "Optional. Field to additionally sort results by. Will order Folders before Repositories, and then by `order_by` in ascending order. Supported keywords: display_name (default), created_at, last_modified_at. Examples: * `orderBy=\"display_name\"` * `orderBy=\"display_name desc\"`", "location": "query", "type": "string" }, @@ -726,19 +736,19 @@ ], "parameters": { "filter": { - "description": "Optional. Optional filtering for the returned list. Filtering is currently only supported on the `display_name` field. Example: - `filter=\"display_name=\"MyFolder\"\"`", + "description": "Optional. Optional filtering for the returned list. Filtering is currently only supported on the `display_name` field. Example: * `filter=\"display_name=\"MyFolder\"\"`", "location": "query", "type": "string" }, "folder": { - "description": "Required. Name of the folder whose contents to list. Format: projects/*/locations/*/folders/*", + "description": "Required. Resource name of the Folder to list contents for. Format: projects/*/locations/*/folders/*", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/folders/[^/]+$", "required": true, "type": "string" }, "orderBy": { - "description": "Optional. Field to additionally sort results by. Will order Folders before Repositories, and then by `order_by` in ascending order. Supported keywords: display_name (default), create_time, last_modified_time. Examples: - `orderBy=\"display_name\"` - `orderBy=\"display_name desc\"`", + "description": "Optional. Field to additionally sort results by. Will order Folders before Repositories, and then by `order_by` in ascending order. Supported keywords: display_name (default), create_time, last_modified_time. Examples: * `orderBy=\"display_name\"` * `orderBy=\"display_name desc\"`", "location": "query", "type": "string" }, @@ -2613,7 +2623,7 @@ "DIRECTORY_CONTENTS_VIEW_METADATA" ], "enumDescriptions": [ - "The default / unset value. Defaults to DIRECTORY_CONTENTS_VIEW_BASIC.", + "The default unset value. Defaults to DIRECTORY_CONTENTS_VIEW_BASIC.", "Includes only the file or directory name. This is the default behavior.", "Includes all metadata for each file or directory. Currently not supported by CMEK-protected workspaces." ], @@ -3088,12 +3098,12 @@ ], "parameters": { "filter": { - "description": "Optional. Optional filtering for the returned list. Filtering is currently only supported on the `display_name` field. Example: - `filter=\"display_name=\"MyFolder\"\"`", + "description": "Optional. Optional filtering for the returned list. Filtering is currently only supported on the `display_name` field. Example: * `filter=\"display_name=\"MyFolder\"\"`", "location": "query", "type": "string" }, "orderBy": { - "description": "Optional. Field to additionally sort results by. Will order Folders before Repositories, and then by `order_by` in ascending order. Supported keywords: `display_name` (default), `create_time`, last_modified_time. Examples: - `orderBy=\"display_name\"` - `orderBy=\"display_name desc\"`", + "description": "Optional. Field to additionally sort results by. Will order Folders before Repositories, and then by `order_by` in ascending order. Supported keywords: `display_name` (default), `create_time`, last_modified_time. Examples: * `orderBy=\"display_name\"` * `orderBy=\"display_name desc\"`", "location": "query", "type": "string" }, @@ -3109,7 +3119,7 @@ "type": "string" }, "teamFolder": { - "description": "Required. Name of the team_folder whose contents to list. Format: `projects/*/locations/*/teamFolders/*`.", + "description": "Required. Resource name of the TeamFolder to list contents for. Format: `projects/*/locations/*/teamFolders/*`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/teamFolders/[^/]+$", "required": true, @@ -3135,7 +3145,7 @@ ], "parameters": { "filter": { - "description": "Optional. Optional filtering for the returned list. Filtering is currently only supported on the `display_name` field. Example: - `filter=\"display_name=\"MyFolder\"\"`", + "description": "Optional. Optional filtering for the returned list. Filtering is currently only supported on the `display_name` field. Example: * `filter=\"display_name=\"MyFolder\"\"`", "location": "query", "type": "string" }, @@ -3147,7 +3157,7 @@ "type": "string" }, "orderBy": { - "description": "Optional. Field to additionally sort results by. Supported keywords: `display_name` (default), `create_time`, `last_modified_time`. Examples: - `orderBy=\"display_name\"` - `orderBy=\"display_name desc\"`", + "description": "Optional. Field to additionally sort results by. Supported keywords: `display_name` (default), `create_time`, `last_modified_time`. Examples: * `orderBy=\"display_name\"` * `orderBy=\"display_name desc\"`", "location": "query", "type": "string" }, @@ -3237,7 +3247,7 @@ } } }, - "revision": "20260326", + "revision": "20260409", "rootUrl": "https://dataform.googleapis.com/", "schemas": { "ActionErrorTable": { @@ -4094,7 +4104,7 @@ "id": "Folder", "properties": { "containingFolder": { - "description": "Optional. The containing Folder resource name. This should take the format: projects/{project}/locations/{location}/folders/{folder}, projects/{project}/locations/{location}/teamFolders/{teamFolder}, or just projects/{project}/locations/{location} if this is a root Folder. This field can only be updated through MoveFolder.", + "description": "Optional. The containing Folder resource name. This should take the format: projects/{project}/locations/{location}/folders/{folder}, projects/{project}/locations/{location}/teamFolders/{teamFolder}, or just \"\" if this is a root Folder. This field can only be updated through MoveFolder.", "type": "string" }, "createTime": { @@ -4159,7 +4169,7 @@ "type": "string" }, "defaultBranch": { - "description": "Required. The Git remote's default branch name.", + "description": "Required. The Git remote's default branch name. If not set, `main` will be used and stored for the repository.", "type": "string" }, "sshAuthenticationConfig": { diff --git a/Src/Generated/Google.Apis.Dataform.v1beta1/Google.Apis.Dataform.v1beta1.cs b/Src/Generated/Google.Apis.Dataform.v1beta1/Google.Apis.Dataform.v1beta1.cs index 643e61f2035..7a7646b630f 100644 --- a/Src/Generated/Google.Apis.Dataform.v1beta1/Google.Apis.Dataform.v1beta1.cs +++ b/Src/Generated/Google.Apis.Dataform.v1beta1/Google.Apis.Dataform.v1beta1.cs @@ -756,7 +756,7 @@ protected override void InitParameters() /// Returns the contents of a given Folder. /// - /// Required. Name of the folder whose contents to list. Format: projects/*/locations/*/folders/* + /// Required. Resource name of the Folder to list contents for. Format: projects/*/locations/*/folders/* /// public virtual QueryFolderContentsRequest QueryFolderContents(string folder) { @@ -774,14 +774,15 @@ public QueryFolderContentsRequest(Google.Apis.Services.IClientService service, s } /// - /// Required. Name of the folder whose contents to list. Format: projects/*/locations/*/folders/* + /// Required. Resource name of the Folder to list contents for. Format: + /// projects/*/locations/*/folders/* /// [Google.Apis.Util.RequestParameterAttribute("folder", Google.Apis.Util.RequestParameterType.Path)] public virtual string Folder { get; private set; } /// /// Optional. Optional filtering for the returned list. Filtering is currently only supported on the - /// `display_name` field. Example: - `filter="display_name="MyFolder""` + /// `display_name` field. Example: * `filter="display_name="MyFolder""` /// [Google.Apis.Util.RequestParameterAttribute("filter", Google.Apis.Util.RequestParameterType.Query)] public virtual string Filter { get; set; } @@ -789,7 +790,7 @@ public QueryFolderContentsRequest(Google.Apis.Services.IClientService service, s /// /// Optional. Field to additionally sort results by. Will order Folders before Repositories, and /// then by `order_by` in ascending order. Supported keywords: display_name (default), create_time, - /// last_modified_time. Examples: - `orderBy="display_name"` - `orderBy="display_name desc"` + /// last_modified_time. Examples: * `orderBy="display_name"` * `orderBy="display_name desc"` /// [Google.Apis.Util.RequestParameterAttribute("orderBy", Google.Apis.Util.RequestParameterType.Query)] public virtual string OrderBy { get; set; } @@ -3710,7 +3711,7 @@ public QueryDirectoryContentsRequest(Google.Apis.Services.IClientService service /// public enum ViewEnum { - /// The default / unset value. Defaults to DIRECTORY_CONTENTS_VIEW_BASIC. + /// The default unset value. Defaults to DIRECTORY_CONTENTS_VIEW_BASIC. [Google.Apis.Util.StringValueAttribute("DIRECTORY_CONTENTS_VIEW_UNSPECIFIED")] DIRECTORYCONTENTSVIEWUNSPECIFIED = 0, @@ -5764,7 +5765,7 @@ protected override void InitParameters() /// Returns the contents of a given TeamFolder. /// - /// Required. Name of the team_folder whose contents to list. Format: + /// Required. Resource name of the TeamFolder to list contents for. Format: /// `projects/*/locations/*/teamFolders/*`. /// public virtual QueryContentsRequest QueryContents(string teamFolder) @@ -5783,7 +5784,7 @@ public QueryContentsRequest(Google.Apis.Services.IClientService service, string } /// - /// Required. Name of the team_folder whose contents to list. Format: + /// Required. Resource name of the TeamFolder to list contents for. Format: /// `projects/*/locations/*/teamFolders/*`. /// [Google.Apis.Util.RequestParameterAttribute("teamFolder", Google.Apis.Util.RequestParameterType.Path)] @@ -5791,7 +5792,7 @@ public QueryContentsRequest(Google.Apis.Services.IClientService service, string /// /// Optional. Optional filtering for the returned list. Filtering is currently only supported on the - /// `display_name` field. Example: - `filter="display_name="MyFolder""` + /// `display_name` field. Example: * `filter="display_name="MyFolder""` /// [Google.Apis.Util.RequestParameterAttribute("filter", Google.Apis.Util.RequestParameterType.Query)] public virtual string Filter { get; set; } @@ -5799,7 +5800,7 @@ public QueryContentsRequest(Google.Apis.Services.IClientService service, string /// /// Optional. Field to additionally sort results by. Will order Folders before Repositories, and /// then by `order_by` in ascending order. Supported keywords: `display_name` (default), - /// `create_time`, last_modified_time. Examples: - `orderBy="display_name"` - `orderBy="display_name + /// `create_time`, last_modified_time. Examples: * `orderBy="display_name"` * `orderBy="display_name /// desc"` /// [Google.Apis.Util.RequestParameterAttribute("orderBy", Google.Apis.Util.RequestParameterType.Query)] @@ -5910,14 +5911,14 @@ public SearchRequest(Google.Apis.Services.IClientService service, string locatio /// /// Optional. Optional filtering for the returned list. Filtering is currently only supported on the - /// `display_name` field. Example: - `filter="display_name="MyFolder""` + /// `display_name` field. Example: * `filter="display_name="MyFolder""` /// [Google.Apis.Util.RequestParameterAttribute("filter", Google.Apis.Util.RequestParameterType.Query)] public virtual string Filter { get; set; } /// /// Optional. Field to additionally sort results by. Supported keywords: `display_name` (default), - /// `create_time`, `last_modified_time`. Examples: - `orderBy="display_name"` - + /// `create_time`, `last_modified_time`. Examples: * `orderBy="display_name"` * /// `orderBy="display_name desc"` /// [Google.Apis.Util.RequestParameterAttribute("orderBy", Google.Apis.Util.RequestParameterType.Query)] @@ -6350,7 +6351,7 @@ protected override void InitParameters() /// resources that are created by the user and not contained in any other folder. /// /// - /// Required. Location of the user root folder whose contents to list. Format: projects/*/locations/* + /// Required. Location of the user root folder to list contents for. Format: projects/*/locations/* /// public virtual QueryUserRootContentsRequest QueryUserRootContents(string location) { @@ -6371,14 +6372,14 @@ public QueryUserRootContentsRequest(Google.Apis.Services.IClientService service, } /// - /// Required. Location of the user root folder whose contents to list. Format: projects/*/locations/* + /// Required. Location of the user root folder to list contents for. Format: projects/*/locations/* /// [Google.Apis.Util.RequestParameterAttribute("location", Google.Apis.Util.RequestParameterType.Path)] public virtual string Location { get; private set; } /// /// Optional. Optional filtering for the returned list. Filtering is currently only supported on the - /// `display_name` field. Example: - `filter="display_name="MyFolder""` + /// `display_name` field. Example: * `filter="display_name="MyFolder""` /// [Google.Apis.Util.RequestParameterAttribute("filter", Google.Apis.Util.RequestParameterType.Query)] public virtual string Filter { get; set; } @@ -6386,7 +6387,7 @@ public QueryUserRootContentsRequest(Google.Apis.Services.IClientService service, /// /// Optional. Field to additionally sort results by. Will order Folders before Repositories, and then by /// `order_by` in ascending order. Supported keywords: display_name (default), created_at, - /// last_modified_at. Examples: - `orderBy="display_name"` - `orderBy="display_name desc"` + /// last_modified_at. Examples: * `orderBy="display_name"` * `orderBy="display_name desc"` /// [Google.Apis.Util.RequestParameterAttribute("orderBy", Google.Apis.Util.RequestParameterType.Query)] public virtual string OrderBy { get; set; } @@ -7592,9 +7593,8 @@ public class Folder : Google.Apis.Requests.IDirectResponseSchema /// /// Optional. The containing Folder resource name. This should take the format: /// projects/{project}/locations/{location}/folders/{folder}, - /// projects/{project}/locations/{location}/teamFolders/{teamFolder}, or just - /// projects/{project}/locations/{location} if this is a root Folder. This field can only be updated through - /// MoveFolder. + /// projects/{project}/locations/{location}/teamFolders/{teamFolder}, or just "" if this is a root Folder. This + /// field can only be updated through MoveFolder. /// [Newtonsoft.Json.JsonPropertyAttribute("containingFolder")] public virtual string ContainingFolder { get; set; } @@ -7729,7 +7729,10 @@ public class GitRemoteSettings : Google.Apis.Requests.IDirectResponseSchema [Newtonsoft.Json.JsonPropertyAttribute("authenticationTokenSecretVersion")] public virtual string AuthenticationTokenSecretVersion { get; set; } - /// Required. The Git remote's default branch name. + /// + /// Required. The Git remote's default branch name. If not set, `main` will be used and stored for the + /// repository. + /// [Newtonsoft.Json.JsonPropertyAttribute("defaultBranch")] public virtual string DefaultBranch { get; set; } diff --git a/Src/Generated/Google.Apis.Dataform.v1beta1/Google.Apis.Dataform.v1beta1.csproj b/Src/Generated/Google.Apis.Dataform.v1beta1/Google.Apis.Dataform.v1beta1.csproj index f76c8b611a7..458f68dc156 100644 --- a/Src/Generated/Google.Apis.Dataform.v1beta1/Google.Apis.Dataform.v1beta1.csproj +++ b/Src/Generated/Google.Apis.Dataform.v1beta1/Google.Apis.Dataform.v1beta1.csproj @@ -3,7 +3,7 @@ Google.Apis.Dataform.v1beta1 Client Library - 1.73.0.4102 + 1.73.0.4116 Google LLC Copyright 2026 Google LLC Google From 5d548c88358f8ad47bc68069157797ca81e823ac Mon Sep 17 00:00:00 2001 From: Amanda Tarafa Mas Date: Mon, 20 Apr 2026 08:06:00 +0000 Subject: [PATCH 18/40] feat: Generate Google.Apis.DataManager.v1 version 1.73.0.4124 --- DiscoveryJson/datamanager.v1.json | 39 +++++++++++++++++-- .../Google.Apis.DataManager.v1.csproj | 2 +- 2 files changed, 37 insertions(+), 4 deletions(-) diff --git a/DiscoveryJson/datamanager.v1.json b/DiscoveryJson/datamanager.v1.json index 97d7d34a291..49ed3f599d0 100644 --- a/DiscoveryJson/datamanager.v1.json +++ b/DiscoveryJson/datamanager.v1.json @@ -814,7 +814,7 @@ } } }, - "revision": "20260321", + "revision": "20260417", "rootUrl": "https://datamanager.googleapis.com/", "schemas": { "AdIdentifiers": { @@ -1167,7 +1167,39 @@ "PROCESSING_ERROR_REASON_KEK_PERMISSION_DENIED", "PROCESSING_ERROR_REASON_AWS_AUTH_FAILED", "PROCESSING_ERROR_REASON_USER_IDENTIFIER_DECRYPTION_ERROR", - "PROCESSING_ERROR_OPERATING_ACCOUNT_MISMATCH_FOR_AD_IDENTIFIER" + "PROCESSING_ERROR_OPERATING_ACCOUNT_MISMATCH_FOR_AD_IDENTIFIER", + "PROCESSING_ERROR_REASON_ONE_PER_CLICK_CONVERSION_ACTION_NOT_PERMITTED_WITH_BRAID" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + true ], "enumDescriptions": [ "The processing error reason is unknown.", @@ -1197,7 +1229,8 @@ "The system did not have the permissions needed to access the KEK.", "The system failed to authenticate with AWS.", "Failed to decrypt the UserIdentifier data using the DEK.", - "The user attempted to ingest events with an ad identifier that isn't from the operating account's ads." + "The user attempted to ingest events with an ad identifier that isn't from the operating account's ads.", + "One-per-click conversion actions cannot be used with BRAIDs." ], "type": "string" }, diff --git a/Src/Generated/Google.Apis.DataManager.v1/Google.Apis.DataManager.v1.csproj b/Src/Generated/Google.Apis.DataManager.v1/Google.Apis.DataManager.v1.csproj index d91b04884d1..ade067a9deb 100644 --- a/Src/Generated/Google.Apis.DataManager.v1/Google.Apis.DataManager.v1.csproj +++ b/Src/Generated/Google.Apis.DataManager.v1/Google.Apis.DataManager.v1.csproj @@ -3,7 +3,7 @@ Google.Apis.DataManager.v1 Client Library - 1.73.0.4097 + 1.73.0.4124 Google LLC Copyright 2026 Google LLC Google From 2aedd956ca9994b3cd3382cf687cd569da2fe695 Mon Sep 17 00:00:00 2001 From: Amanda Tarafa Mas Date: Mon, 20 Apr 2026 08:06:02 +0000 Subject: [PATCH 19/40] feat: Generate Google.Apis.DeveloperKnowledge.v1alpha version 1.73.0.4120 --- DiscoveryJson/developerknowledge.v1alpha.json | 412 ++++++++++++++++++ EnumStorage/developerknowledge.v1alpha.json | 12 + .../Google.Apis.DeveloperKnowledge.v1alpha.cs | 342 +++++++++++++-- ...gle.Apis.DeveloperKnowledge.v1alpha.csproj | 2 +- 4 files changed, 736 insertions(+), 32 deletions(-) create mode 100644 DiscoveryJson/developerknowledge.v1alpha.json diff --git a/DiscoveryJson/developerknowledge.v1alpha.json b/DiscoveryJson/developerknowledge.v1alpha.json new file mode 100644 index 00000000000..24012eef37b --- /dev/null +++ b/DiscoveryJson/developerknowledge.v1alpha.json @@ -0,0 +1,412 @@ +{ + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/cloud-platform": { + "description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." + } + } + } + }, + "basePath": "", + "baseUrl": "https://developerknowledge.googleapis.com/", + "batchPath": "batch", + "canonicalName": "Developer Knowledge", + "description": "The Developer Knowledge API provides access to Google's developer knowledge.", + "discoveryVersion": "v1", + "documentationLink": "https://developers.google.com/knowledge", + "fullyEncodeReservedExpansion": true, + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "id": "developerknowledge:v1alpha", + "kind": "discovery#restDescription", + "mtlsRootUrl": "https://developerknowledge.mtls.googleapis.com/", + "name": "developerknowledge", + "ownerDomain": "google.com", + "ownerName": "Google", + "parameters": { + "$.xgafv": { + "description": "V1 error format.", + "enum": [ + "1", + "2" + ], + "enumDescriptions": [ + "v1 error format", + "v2 error format" + ], + "location": "query", + "type": "string" + }, + "access_token": { + "description": "OAuth access token.", + "location": "query", + "type": "string" + }, + "alt": { + "default": "json", + "description": "Data format for response.", + "enum": [ + "json", + "media", + "proto" + ], + "enumDescriptions": [ + "Responses with Content-Type of application/json", + "Media download with context-dependent Content-Type", + "Responses with Content-Type of application/x-protobuf" + ], + "location": "query", + "type": "string" + }, + "callback": { + "description": "JSONP", + "location": "query", + "type": "string" + }, + "fields": { + "description": "Selector specifying which fields to include in a partial response.", + "location": "query", + "type": "string" + }, + "key": { + "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", + "location": "query", + "type": "string" + }, + "oauth_token": { + "description": "OAuth 2.0 token for the current user.", + "location": "query", + "type": "string" + }, + "prettyPrint": { + "default": "true", + "description": "Returns response with indentations and line breaks.", + "location": "query", + "type": "boolean" + }, + "quotaUser": { + "description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.", + "location": "query", + "type": "string" + }, + "uploadType": { + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", + "location": "query", + "type": "string" + }, + "upload_protocol": { + "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", + "location": "query", + "type": "string" + } + }, + "protocol": "rest", + "resources": { + "documents": { + "methods": { + "batchGet": { + "description": "Retrieves multiple documents, each with its full Markdown content.", + "flatPath": "v1alpha/documents:batchGet", + "httpMethod": "GET", + "id": "developerknowledge.documents.batchGet", + "parameterOrder": [], + "parameters": { + "names": { + "description": "Required. Specifies the names of the documents to retrieve. A maximum of 20 documents can be retrieved in a batch. The documents are returned in the same order as the `names` in the request. Format: `documents/{uri_without_scheme}` Example: `documents/docs.cloud.google.com/storage/docs/creating-buckets`", + "location": "query", + "repeated": true, + "type": "string" + }, + "view": { + "description": "Optional. Specifies the DocumentView of the document. If unspecified, DeveloperKnowledge.BatchGetDocuments defaults to `DOCUMENT_VIEW_CONTENT`.", + "enum": [ + "DOCUMENT_VIEW_UNSPECIFIED", + "DOCUMENT_VIEW_BASIC", + "DOCUMENT_VIEW_FULL", + "DOCUMENT_VIEW_CONTENT" + ], + "enumDescriptions": [ + "The default / unset value. See each API method for its default value if DocumentView is not specified.", + "Includes only the basic metadata fields: - `name` - `uri` - `data_source` - `title` - `description` - `update_time` - `view` This is the default of view for DeveloperKnowledge.SearchDocumentChunks.", + "Includes all Document fields.", + "Includes the `DOCUMENT_VIEW_BASIC` fields and the `content` field. This is the default of view for DeveloperKnowledge.GetDocument and DeveloperKnowledge.BatchGetDocuments." + ], + "location": "query", + "type": "string" + } + }, + "path": "v1alpha/documents:batchGet", + "response": { + "$ref": "BatchGetDocumentsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Retrieves a single document with its full Markdown content.", + "flatPath": "v1alpha/documents/{documentsId}", + "httpMethod": "GET", + "id": "developerknowledge.documents.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Specifies the name of the document to retrieve. Format: `documents/{uri_without_scheme}` Example: `documents/docs.cloud.google.com/storage/docs/creating-buckets`", + "location": "path", + "pattern": "^documents/.*$", + "required": true, + "type": "string" + }, + "view": { + "description": "Optional. Specifies the DocumentView of the document. If unspecified, DeveloperKnowledge.GetDocument defaults to `DOCUMENT_VIEW_CONTENT`.", + "enum": [ + "DOCUMENT_VIEW_UNSPECIFIED", + "DOCUMENT_VIEW_BASIC", + "DOCUMENT_VIEW_FULL", + "DOCUMENT_VIEW_CONTENT" + ], + "enumDescriptions": [ + "The default / unset value. See each API method for its default value if DocumentView is not specified.", + "Includes only the basic metadata fields: - `name` - `uri` - `data_source` - `title` - `description` - `update_time` - `view` This is the default of view for DeveloperKnowledge.SearchDocumentChunks.", + "Includes all Document fields.", + "Includes the `DOCUMENT_VIEW_BASIC` fields and the `content` field. This is the default of view for DeveloperKnowledge.GetDocument and DeveloperKnowledge.BatchGetDocuments." + ], + "location": "query", + "type": "string" + } + }, + "path": "v1alpha/{+name}", + "response": { + "$ref": "Document" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "searchDocumentChunks": { + "description": "Searches for developer knowledge across Google's developer documentation. Returns DocumentChunks based on the user's query. There may be many chunks from the same Document. To retrieve full documents, use DeveloperKnowledge.GetDocument or DeveloperKnowledge.BatchGetDocuments with the DocumentChunk.parent returned in the SearchDocumentChunksResponse.results.", + "flatPath": "v1alpha/documents:searchDocumentChunks", + "httpMethod": "GET", + "id": "developerknowledge.documents.searchDocumentChunks", + "parameterOrder": [], + "parameters": { + "filter": { + "description": "Optional. Applies a strict filter to the search results. The expression supports a subset of the syntax described at https://google.aip.dev/160. While `SearchDocumentChunks` returns DocumentChunks, the filter is applied to `DocumentChunk.document` fields. Supported fields for filtering: * `data_source` (STRING): The source of the document, e.g. `docs.cloud.google.com`. See https://developers.google.com/knowledge/reference/corpus-reference for the complete list of data sources in the corpus. * `update_time` (TIMESTAMP): The timestamp of when the document was last meaningfully updated. A meaningful update is one that changes document's markdown content or metadata. * `uri` (STRING): The document URI, e.g. `https://docs.cloud.google.com/bigquery/docs/tables`. STRING fields support `=` (equals) and `!=` (not equals) operators for **exact match** on the whole string. Partial match, prefix match, and regexp match are not supported. TIMESTAMP fields support `=`, `<`, `<=`, `>`, and `>=` operators. Timestamps must be in RFC-3339 format, e.g., `\"2025-01-01T00:00:00Z\"`. You can combine expressions using `AND`, `OR`, and `NOT` (or `-`) logical operators. `OR` has higher precedence than `AND`. Use parentheses for explicit precedence grouping. Examples: * `data_source = \"docs.cloud.google.com\" OR data_source = \"firebase.google.com\"` * `data_source != \"firebase.google.com\"` * `update_time < \"2024-01-01T00:00:00Z\"` * `update_time >= \"2025-01-22T00:00:00Z\" AND (data_source = \"developer.chrome.com\" OR data_source = \"web.dev\")` * `uri = \"https://docs.cloud.google.com/release-notes\"` The `filter` string must not exceed 500 characters; values longer than 500 characters will result in an `INVALID_ARGUMENT` error.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. Specifies the maximum number of results to return. The service may return fewer than this value. If unspecified, at most 5 results will be returned. The maximum value is 20; values above 20 will result in an INVALID_ARGUMENT error.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. Contains a page token, received from a previous `SearchDocumentChunks` call. Provide this to retrieve the subsequent page.", + "location": "query", + "type": "string" + }, + "query": { + "description": "Required. Provides the raw query string provided by the user, such as \"How to create a Cloud Storage bucket?\".", + "location": "query", + "type": "string" + } + }, + "path": "v1alpha/documents:searchDocumentChunks", + "response": { + "$ref": "SearchDocumentChunksResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "v1alpha": { + "methods": { + "answerQuery": { + "description": "Answers a query using grounded generation.", + "flatPath": "v1alpha:answerQuery", + "httpMethod": "POST", + "id": "developerknowledge.answerQuery", + "parameterOrder": [], + "parameters": {}, + "path": "v1alpha:answerQuery", + "request": { + "$ref": "AnswerQueryRequest" + }, + "response": { + "$ref": "AnswerQueryResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + }, + "revision": "20260413", + "rootUrl": "https://developerknowledge.googleapis.com/", + "schemas": { + "Answer": { + "description": "An answer to a query.", + "id": "Answer", + "properties": { + "answerText": { + "description": "The text of the answer.", + "type": "string" + } + }, + "type": "object" + }, + "AnswerQueryRequest": { + "description": "Request message for DeveloperKnowledge.AnswerQuery.", + "id": "AnswerQueryRequest", + "properties": { + "query": { + "description": "Required. The query to answer.", + "type": "string" + } + }, + "type": "object" + }, + "AnswerQueryResponse": { + "description": "Response message for DeveloperKnowledge.AnswerQuery.", + "id": "AnswerQueryResponse", + "properties": { + "answer": { + "$ref": "Answer", + "description": "The answer to the query." + } + }, + "type": "object" + }, + "BatchGetDocumentsResponse": { + "description": "Response message for DeveloperKnowledge.BatchGetDocuments.", + "id": "BatchGetDocumentsResponse", + "properties": { + "documents": { + "description": "Contains the documents requested.", + "items": { + "$ref": "Document" + }, + "type": "array" + } + }, + "type": "object" + }, + "Document": { + "description": "A Document represents a piece of content from the Developer Knowledge corpus.", + "id": "Document", + "properties": { + "content": { + "description": "Output only. Contains the full content of the document in Markdown format.", + "readOnly": true, + "type": "string" + }, + "dataSource": { + "description": "Output only. Specifies the data source of the document. Example data source: `firebase.google.com`", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "Output only. Provides a description of the document.", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Identifier. Contains the resource name of the document. Format: `documents/{uri_without_scheme}` Example: `documents/docs.cloud.google.com/storage/docs/creating-buckets`", + "type": "string" + }, + "title": { + "description": "Output only. Provides the title of the document.", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. Represents the timestamp when the content or metadata of the document was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "uri": { + "description": "Output only. Provides the URI of the content, such as `docs.cloud.google.com/storage/docs/creating-buckets`.", + "readOnly": true, + "type": "string" + }, + "view": { + "description": "Output only. Specifies the DocumentView of the document.", + "enum": [ + "DOCUMENT_VIEW_UNSPECIFIED", + "DOCUMENT_VIEW_BASIC", + "DOCUMENT_VIEW_FULL", + "DOCUMENT_VIEW_CONTENT" + ], + "enumDescriptions": [ + "The default / unset value. See each API method for its default value if DocumentView is not specified.", + "Includes only the basic metadata fields: - `name` - `uri` - `data_source` - `title` - `description` - `update_time` - `view` This is the default of view for DeveloperKnowledge.SearchDocumentChunks.", + "Includes all Document fields.", + "Includes the `DOCUMENT_VIEW_BASIC` fields and the `content` field. This is the default of view for DeveloperKnowledge.GetDocument and DeveloperKnowledge.BatchGetDocuments." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "DocumentChunk": { + "description": "A DocumentChunk represents a piece of content from a Document in the DeveloperKnowledge corpus. To fetch the entire document content, pass the `parent` to DeveloperKnowledge.GetDocument or DeveloperKnowledge.BatchGetDocuments.", + "id": "DocumentChunk", + "properties": { + "content": { + "description": "Output only. Contains the content of the document chunk.", + "readOnly": true, + "type": "string" + }, + "document": { + "$ref": "Document", + "description": "Output only. Represents metadata about the Document this chunk is from. The DocumentView of this Document message will be set to `DOCUMENT_VIEW_BASIC`. It is included here for convenience so that clients do not need to call DeveloperKnowledge.GetDocument or DeveloperKnowledge.BatchGetDocuments if they only need the metadata fields. Otherwise, clients should use DeveloperKnowledge.GetDocument or DeveloperKnowledge.BatchGetDocuments to fetch the full document content.", + "readOnly": true + }, + "id": { + "description": "Output only. Specifies the ID of this chunk within the document. The chunk ID is unique within a document, but not globally unique across documents. The chunk ID is not stable and may change over time.", + "readOnly": true, + "type": "string" + }, + "parent": { + "description": "Output only. Contains the resource name of the document this chunk is from. Format: `documents/{uri_without_scheme}` Example: `documents/docs.cloud.google.com/storage/docs/creating-buckets`", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "SearchDocumentChunksResponse": { + "description": "Response message for DeveloperKnowledge.SearchDocumentChunks.", + "id": "SearchDocumentChunksResponse", + "properties": { + "nextPageToken": { + "description": "Optional. Provides a token that can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", + "type": "string" + }, + "results": { + "description": "Contains the search results for the given query. Each DocumentChunk in this list contains a snippet of content relevant to the search query. Use the DocumentChunk.parent field of each result with DeveloperKnowledge.GetDocument or DeveloperKnowledge.BatchGetDocuments to retrieve the full document content.", + "items": { + "$ref": "DocumentChunk" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "servicePath": "", + "title": "Developer Knowledge API", + "version": "v1alpha", + "version_module": true +} \ No newline at end of file diff --git a/EnumStorage/developerknowledge.v1alpha.json b/EnumStorage/developerknowledge.v1alpha.json index 7fcfae03af1..6dc1f4109c3 100644 --- a/EnumStorage/developerknowledge.v1alpha.json +++ b/EnumStorage/developerknowledge.v1alpha.json @@ -7,5 +7,17 @@ "Google.Apis.DeveloperKnowledge.v1alpha.DeveloperKnowledgeBaseServiceRequest<>.XgafvEnum": [ "1", "2" + ], + "Google.Apis.DeveloperKnowledge.v1alpha.DocumentsResource+BatchGetRequest.ViewEnum": [ + "DOCUMENT_VIEW_UNSPECIFIED", + "DOCUMENT_VIEW_BASIC", + "DOCUMENT_VIEW_FULL", + "DOCUMENT_VIEW_CONTENT" + ], + "Google.Apis.DeveloperKnowledge.v1alpha.DocumentsResource+GetRequest.ViewEnum": [ + "DOCUMENT_VIEW_UNSPECIFIED", + "DOCUMENT_VIEW_BASIC", + "DOCUMENT_VIEW_FULL", + "DOCUMENT_VIEW_CONTENT" ] } \ No newline at end of file diff --git a/Src/Generated/Google.Apis.DeveloperKnowledge.v1alpha/Google.Apis.DeveloperKnowledge.v1alpha.cs b/Src/Generated/Google.Apis.DeveloperKnowledge.v1alpha/Google.Apis.DeveloperKnowledge.v1alpha.cs index 30034224569..13d9615b812 100644 --- a/Src/Generated/Google.Apis.DeveloperKnowledge.v1alpha/Google.Apis.DeveloperKnowledge.v1alpha.cs +++ b/Src/Generated/Google.Apis.DeveloperKnowledge.v1alpha/Google.Apis.DeveloperKnowledge.v1alpha.cs @@ -35,6 +35,7 @@ public DeveloperKnowledgeService() : this(new Google.Apis.Services.BaseClientSer public DeveloperKnowledgeService(Google.Apis.Services.BaseClientService.Initializer initializer) : base(initializer) { Documents = new DocumentsResource(this); + V1alpha = new V1alphaResource(this); BaseUri = GetEffectiveUri(BaseUriOverride, "https://developerknowledge.googleapis.com/"); BatchUri = GetEffectiveUri(null, "https://developerknowledge.googleapis.com/batch"); } @@ -79,6 +80,9 @@ public static class ScopeConstants /// Gets the Documents resource. public virtual DocumentsResource Documents { get; } + + /// Gets the V1alpha resource. + public virtual V1alphaResource V1alpha { get; } } /// A base abstract class for DeveloperKnowledge requests. @@ -292,14 +296,53 @@ public BatchGetRequest(Google.Apis.Services.IClientService service) : base(servi } /// - /// Required. The names of the documents to retrieve. A maximum of 20 documents can be retrieved in a batch. - /// The documents are returned in the same order as the `names` in the request. Format: + /// Required. Specifies the names of the documents to retrieve. A maximum of 20 documents can be retrieved + /// in a batch. The documents are returned in the same order as the `names` in the request. Format: /// `documents/{uri_without_scheme}` Example: /// `documents/docs.cloud.google.com/storage/docs/creating-buckets` /// [Google.Apis.Util.RequestParameterAttribute("names", Google.Apis.Util.RequestParameterType.Query)] public virtual Google.Apis.Util.Repeatable Names { get; set; } + /// + /// Optional. Specifies the DocumentView of the document. If unspecified, + /// DeveloperKnowledge.BatchGetDocuments defaults to `DOCUMENT_VIEW_CONTENT`. + /// + [Google.Apis.Util.RequestParameterAttribute("view", Google.Apis.Util.RequestParameterType.Query)] + public virtual System.Nullable View { get; set; } + + /// + /// Optional. Specifies the DocumentView of the document. If unspecified, + /// DeveloperKnowledge.BatchGetDocuments defaults to `DOCUMENT_VIEW_CONTENT`. + /// + public enum ViewEnum + { + /// + /// The default / unset value. See each API method for its default value if DocumentView is not + /// specified. + /// + [Google.Apis.Util.StringValueAttribute("DOCUMENT_VIEW_UNSPECIFIED")] + DOCUMENTVIEWUNSPECIFIED = 0, + + /// + /// Includes only the basic metadata fields: - `name` - `uri` - `data_source` - `title` - `description` + /// - `update_time` - `view` This is the default of view for DeveloperKnowledge.SearchDocumentChunks. + /// + [Google.Apis.Util.StringValueAttribute("DOCUMENT_VIEW_BASIC")] + DOCUMENTVIEWBASIC = 1, + + /// Includes all Document fields. + [Google.Apis.Util.StringValueAttribute("DOCUMENT_VIEW_FULL")] + DOCUMENTVIEWFULL = 2, + + /// + /// Includes the `DOCUMENT_VIEW_BASIC` fields and the `content` field. This is the default of view for + /// DeveloperKnowledge.GetDocument and DeveloperKnowledge.BatchGetDocuments. + /// + [Google.Apis.Util.StringValueAttribute("DOCUMENT_VIEW_CONTENT")] + DOCUMENTVIEWCONTENT = 3, + } + /// Gets the method name. public override string MethodName => "batchGet"; @@ -321,12 +364,20 @@ protected override void InitParameters() DefaultValue = null, Pattern = null, }); + RequestParameters.Add("view", new Google.Apis.Discovery.Parameter + { + Name = "view", + IsRequired = false, + ParameterType = "query", + DefaultValue = null, + Pattern = null, + }); } } /// Retrieves a single document with its full Markdown content. /// - /// Required. The name of the document to retrieve. Format: `documents/{uri_without_scheme}` Example: + /// Required. Specifies the name of the document to retrieve. Format: `documents/{uri_without_scheme}` Example: /// `documents/docs.cloud.google.com/storage/docs/creating-buckets` /// public virtual GetRequest Get(string name) @@ -345,12 +396,51 @@ public GetRequest(Google.Apis.Services.IClientService service, string name) : ba } /// - /// Required. The name of the document to retrieve. Format: `documents/{uri_without_scheme}` Example: - /// `documents/docs.cloud.google.com/storage/docs/creating-buckets` + /// Required. Specifies the name of the document to retrieve. Format: `documents/{uri_without_scheme}` + /// Example: `documents/docs.cloud.google.com/storage/docs/creating-buckets` /// [Google.Apis.Util.RequestParameterAttribute("name", Google.Apis.Util.RequestParameterType.Path)] public virtual string Name { get; private set; } + /// + /// Optional. Specifies the DocumentView of the document. If unspecified, DeveloperKnowledge.GetDocument + /// defaults to `DOCUMENT_VIEW_CONTENT`. + /// + [Google.Apis.Util.RequestParameterAttribute("view", Google.Apis.Util.RequestParameterType.Query)] + public virtual System.Nullable View { get; set; } + + /// + /// Optional. Specifies the DocumentView of the document. If unspecified, DeveloperKnowledge.GetDocument + /// defaults to `DOCUMENT_VIEW_CONTENT`. + /// + public enum ViewEnum + { + /// + /// The default / unset value. See each API method for its default value if DocumentView is not + /// specified. + /// + [Google.Apis.Util.StringValueAttribute("DOCUMENT_VIEW_UNSPECIFIED")] + DOCUMENTVIEWUNSPECIFIED = 0, + + /// + /// Includes only the basic metadata fields: - `name` - `uri` - `data_source` - `title` - `description` + /// - `update_time` - `view` This is the default of view for DeveloperKnowledge.SearchDocumentChunks. + /// + [Google.Apis.Util.StringValueAttribute("DOCUMENT_VIEW_BASIC")] + DOCUMENTVIEWBASIC = 1, + + /// Includes all Document fields. + [Google.Apis.Util.StringValueAttribute("DOCUMENT_VIEW_FULL")] + DOCUMENTVIEWFULL = 2, + + /// + /// Includes the `DOCUMENT_VIEW_BASIC` fields and the `content` field. This is the default of view for + /// DeveloperKnowledge.GetDocument and DeveloperKnowledge.BatchGetDocuments. + /// + [Google.Apis.Util.StringValueAttribute("DOCUMENT_VIEW_CONTENT")] + DOCUMENTVIEWCONTENT = 3, + } + /// Gets the method name. public override string MethodName => "get"; @@ -372,13 +462,21 @@ protected override void InitParameters() DefaultValue = null, Pattern = @"^documents/.*$", }); + RequestParameters.Add("view", new Google.Apis.Discovery.Parameter + { + Name = "view", + IsRequired = false, + ParameterType = "query", + DefaultValue = null, + Pattern = null, + }); } } /// - /// Searches for developer knowledge across Google's developer documentation. This method returns document - /// chunks based on the user's query. There can be many chunks of the same Document. To retrieve full documents, - /// use DeveloperKnowledge.GetDocument or DeveloperKnowledge.BatchGetDocuments with the DocumentChunk.parent + /// Searches for developer knowledge across Google's developer documentation. Returns DocumentChunks based on + /// the user's query. There may be many chunks from the same Document. To retrieve full documents, use + /// DeveloperKnowledge.GetDocument or DeveloperKnowledge.BatchGetDocuments with the DocumentChunk.parent /// returned in the SearchDocumentChunksResponse.results. /// public virtual SearchDocumentChunksRequest SearchDocumentChunks() @@ -387,9 +485,9 @@ public virtual SearchDocumentChunksRequest SearchDocumentChunks() } /// - /// Searches for developer knowledge across Google's developer documentation. This method returns document - /// chunks based on the user's query. There can be many chunks of the same Document. To retrieve full documents, - /// use DeveloperKnowledge.GetDocument or DeveloperKnowledge.BatchGetDocuments with the DocumentChunk.parent + /// Searches for developer knowledge across Google's developer documentation. Returns DocumentChunks based on + /// the user's query. There may be many chunks from the same Document. To retrieve full documents, use + /// DeveloperKnowledge.GetDocument or DeveloperKnowledge.BatchGetDocuments with the DocumentChunk.parent /// returned in the SearchDocumentChunksResponse.results. /// public class SearchDocumentChunksRequest : DeveloperKnowledgeBaseServiceRequest @@ -401,22 +499,46 @@ public SearchDocumentChunksRequest(Google.Apis.Services.IClientService service) } /// - /// Optional. The maximum number of results to return. The service may return fewer than this value. If - /// unspecified, at most 5 results will be returned. The maximum value is 20; values above 20 will result in - /// an INVALID_ARGUMENT error. + /// Optional. Applies a strict filter to the search results. The expression supports a subset of the syntax + /// described at https://google.aip.dev/160. While `SearchDocumentChunks` returns DocumentChunks, the filter + /// is applied to `DocumentChunk.document` fields. Supported fields for filtering: * `data_source` (STRING): + /// The source of the document, e.g. `docs.cloud.google.com`. See + /// https://developers.google.com/knowledge/reference/corpus-reference for the complete list of data sources + /// in the corpus. * `update_time` (TIMESTAMP): The timestamp of when the document was last meaningfully + /// updated. A meaningful update is one that changes document's markdown content or metadata. * `uri` + /// (STRING): The document URI, e.g. `https://docs.cloud.google.com/bigquery/docs/tables`. STRING fields + /// support `=` (equals) and `!=` (not equals) operators for **exact match** on the whole string. Partial + /// match, prefix match, and regexp match are not supported. TIMESTAMP fields support `=`, `&lt;`, + /// `&lt;=`, `&gt;`, and `&gt;=` operators. Timestamps must be in RFC-3339 format, e.g., + /// `"2025-01-01T00:00:00Z"`. You can combine expressions using `AND`, `OR`, and `NOT` (or `-`) logical + /// operators. `OR` has higher precedence than `AND`. Use parentheses for explicit precedence grouping. + /// Examples: * `data_source = "docs.cloud.google.com" OR data_source = "firebase.google.com"` * + /// `data_source != "firebase.google.com"` * `update_time &lt; "2024-01-01T00:00:00Z"` * `update_time + /// &gt;= "2025-01-22T00:00:00Z" AND (data_source = "developer.chrome.com" OR data_source = "web.dev")` + /// * `uri = "https://docs.cloud.google.com/release-notes"` The `filter` string must not exceed 500 + /// characters; values longer than 500 characters will result in an `INVALID_ARGUMENT` error. + /// + [Google.Apis.Util.RequestParameterAttribute("filter", Google.Apis.Util.RequestParameterType.Query)] + public virtual string Filter { get; set; } + + /// + /// Optional. Specifies the maximum number of results to return. The service may return fewer than this + /// value. If unspecified, at most 5 results will be returned. The maximum value is 20; values above 20 will + /// result in an INVALID_ARGUMENT error. /// [Google.Apis.Util.RequestParameterAttribute("pageSize", Google.Apis.Util.RequestParameterType.Query)] public virtual System.Nullable PageSize { get; set; } /// - /// Optional. A page token, received from a previous `SearchDocumentChunks` call. Provide this to retrieve - /// the subsequent page. + /// Optional. Contains a page token, received from a previous `SearchDocumentChunks` call. Provide this to + /// retrieve the subsequent page. /// [Google.Apis.Util.RequestParameterAttribute("pageToken", Google.Apis.Util.RequestParameterType.Query)] public virtual string PageToken { get; set; } /// - /// Required. The raw query string provided by the user, such as "How to create a Cloud Storage bucket?". + /// Required. Provides the raw query string provided by the user, such as "How to create a Cloud Storage + /// bucket?". /// [Google.Apis.Util.RequestParameterAttribute("query", Google.Apis.Util.RequestParameterType.Query)] public virtual string Query { get; set; } @@ -434,6 +556,14 @@ public SearchDocumentChunksRequest(Google.Apis.Services.IClientService service) protected override void InitParameters() { base.InitParameters(); + RequestParameters.Add("filter", new Google.Apis.Discovery.Parameter + { + Name = "filter", + IsRequired = false, + ParameterType = "query", + DefaultValue = null, + Pattern = null, + }); RequestParameters.Add("pageSize", new Google.Apis.Discovery.Parameter { Name = "pageSize", @@ -461,13 +591,100 @@ protected override void InitParameters() } } } + + /// The "v1alpha" collection of methods. + public class V1alphaResource + { + private const string Resource = "v1alpha"; + + /// The service which this resource belongs to. + private readonly Google.Apis.Services.IClientService service; + + /// Constructs a new resource. + public V1alphaResource(Google.Apis.Services.IClientService service) + { + this.service = service; + } + + /// Answers a query using grounded generation. + /// The body of the request. + public virtual AnswerQueryRequest AnswerQuery(Google.Apis.DeveloperKnowledge.v1alpha.Data.AnswerQueryRequest body) + { + return new AnswerQueryRequest(this.service, body); + } + + /// Answers a query using grounded generation. + public class AnswerQueryRequest : DeveloperKnowledgeBaseServiceRequest + { + /// Constructs a new AnswerQuery request. + public AnswerQueryRequest(Google.Apis.Services.IClientService service, Google.Apis.DeveloperKnowledge.v1alpha.Data.AnswerQueryRequest body) : base(service) + { + Body = body; + InitParameters(); + } + + /// Gets or sets the body of this request. + Google.Apis.DeveloperKnowledge.v1alpha.Data.AnswerQueryRequest Body { get; set; } + + /// Returns the body of the request. + protected override object GetBody() => Body; + + /// Gets the method name. + public override string MethodName => "answerQuery"; + + /// Gets the HTTP method. + public override string HttpMethod => "POST"; + + /// Gets the REST path. + public override string RestPath => "v1alpha:answerQuery"; + + /// Initializes AnswerQuery parameter list. + protected override void InitParameters() + { + base.InitParameters(); + } + } + } } namespace Google.Apis.DeveloperKnowledge.v1alpha.Data { + /// An answer to a query. + public class Answer : Google.Apis.Requests.IDirectResponseSchema + { + /// The text of the answer. + [Newtonsoft.Json.JsonPropertyAttribute("answerText")] + public virtual string AnswerText { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// Request message for DeveloperKnowledge.AnswerQuery. + public class AnswerQueryRequest : Google.Apis.Requests.IDirectResponseSchema + { + /// Required. The query to answer. + [Newtonsoft.Json.JsonPropertyAttribute("query")] + public virtual string Query { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// Response message for DeveloperKnowledge.AnswerQuery. + public class AnswerQueryResponse : Google.Apis.Requests.IDirectResponseSchema + { + /// The answer to the query. + [Newtonsoft.Json.JsonPropertyAttribute("answer")] + public virtual Answer Answer { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + /// Response message for DeveloperKnowledge.BatchGetDocuments. public class BatchGetDocumentsResponse : Google.Apis.Requests.IDirectResponseSchema { - /// Documents requested. + /// Contains the documents requested. [Newtonsoft.Json.JsonPropertyAttribute("documents")] public virtual System.Collections.Generic.IList Documents { get; set; } @@ -478,27 +695,80 @@ public class BatchGetDocumentsResponse : Google.Apis.Requests.IDirectResponseSch /// A Document represents a piece of content from the Developer Knowledge corpus. public class Document : Google.Apis.Requests.IDirectResponseSchema { - /// Output only. The full content of the document in Markdown format. + /// Output only. Contains the full content of the document in Markdown format. [Newtonsoft.Json.JsonPropertyAttribute("content")] public virtual string Content { get; set; } - /// Output only. A description of the document. + /// + /// Output only. Specifies the data source of the document. Example data source: `firebase.google.com` + /// + [Newtonsoft.Json.JsonPropertyAttribute("dataSource")] + public virtual string DataSource { get; set; } + + /// Output only. Provides a description of the document. [Newtonsoft.Json.JsonPropertyAttribute("description")] public virtual string Description { get; set; } /// - /// Identifier. The resource name of the document. Format: `documents/{uri_without_scheme}` Example: + /// Identifier. Contains the resource name of the document. Format: `documents/{uri_without_scheme}` Example: /// `documents/docs.cloud.google.com/storage/docs/creating-buckets` /// [Newtonsoft.Json.JsonPropertyAttribute("name")] public virtual string Name { get; set; } + /// Output only. Provides the title of the document. + [Newtonsoft.Json.JsonPropertyAttribute("title")] + public virtual string Title { get; set; } + + private string _updateTimeRaw; + + private object _updateTime; + + /// + /// Output only. Represents the timestamp when the content or metadata of the document was last updated. + /// + [Newtonsoft.Json.JsonPropertyAttribute("updateTime")] + public virtual string UpdateTimeRaw + { + get => _updateTimeRaw; + set + { + _updateTime = Google.Apis.Util.Utilities.DeserializeForGoogleFormat(value); + _updateTimeRaw = value; + } + } + + /// representation of . + [Newtonsoft.Json.JsonIgnoreAttribute] + [System.ObsoleteAttribute("This property is obsolete and may behave unexpectedly; please use UpdateTimeDateTimeOffset instead.")] + public virtual object UpdateTime + { + get => _updateTime; + set + { + _updateTimeRaw = Google.Apis.Util.Utilities.SerializeForGoogleFormat(value); + _updateTime = value; + } + } + + /// representation of . + [Newtonsoft.Json.JsonIgnoreAttribute] + public virtual System.DateTimeOffset? UpdateTimeDateTimeOffset + { + get => Google.Apis.Util.DiscoveryFormat.ParseGoogleDateTimeToDateTimeOffset(UpdateTimeRaw); + set => UpdateTimeRaw = Google.Apis.Util.DiscoveryFormat.FormatDateTimeOffsetToGoogleDateTime(value); + } + /// - /// Output only. The URI of the content, such as `docs.cloud.google.com/storage/docs/creating-buckets`. + /// Output only. Provides the URI of the content, such as `docs.cloud.google.com/storage/docs/creating-buckets`. /// [Newtonsoft.Json.JsonPropertyAttribute("uri")] public virtual string Uri { get; set; } + /// Output only. Specifies the DocumentView of the document. + [Newtonsoft.Json.JsonPropertyAttribute("view")] + public virtual string View { get; set; } + /// The ETag of the item. public virtual string ETag { get; set; } } @@ -510,20 +780,30 @@ public class Document : Google.Apis.Requests.IDirectResponseSchema /// public class DocumentChunk : Google.Apis.Requests.IDirectResponseSchema { - /// Output only. The content of the document chunk. + /// Output only. Contains the content of the document chunk. [Newtonsoft.Json.JsonPropertyAttribute("content")] public virtual string Content { get; set; } /// - /// Output only. The ID of this chunk within the document. The chunk ID is unique within a document, but not - /// globally unique across documents. The chunk ID is not stable and may change over time. + /// Output only. Represents metadata about the Document this chunk is from. The DocumentView of this Document + /// message will be set to `DOCUMENT_VIEW_BASIC`. It is included here for convenience so that clients do not + /// need to call DeveloperKnowledge.GetDocument or DeveloperKnowledge.BatchGetDocuments if they only need the + /// metadata fields. Otherwise, clients should use DeveloperKnowledge.GetDocument or + /// DeveloperKnowledge.BatchGetDocuments to fetch the full document content. + /// + [Newtonsoft.Json.JsonPropertyAttribute("document")] + public virtual Document Document { get; set; } + + /// + /// Output only. Specifies the ID of this chunk within the document. The chunk ID is unique within a document, + /// but not globally unique across documents. The chunk ID is not stable and may change over time. /// [Newtonsoft.Json.JsonPropertyAttribute("id")] public virtual string Id { get; set; } /// - /// Output only. The resource name of the document this chunk is from. Format: `documents/{uri_without_scheme}` - /// Example: `documents/docs.cloud.google.com/storage/docs/creating-buckets` + /// Output only. Contains the resource name of the document this chunk is from. Format: + /// `documents/{uri_without_scheme}` Example: `documents/docs.cloud.google.com/storage/docs/creating-buckets` /// [Newtonsoft.Json.JsonPropertyAttribute("parent")] public virtual string Parent { get; set; } @@ -536,15 +816,15 @@ public class DocumentChunk : Google.Apis.Requests.IDirectResponseSchema public class SearchDocumentChunksResponse : Google.Apis.Requests.IDirectResponseSchema { /// - /// Optional. A token that can be sent as `page_token` to retrieve the next page. If this field is omitted, - /// there are no subsequent pages. + /// Optional. Provides a token that can be sent as `page_token` to retrieve the next page. If this field is + /// omitted, there are no subsequent pages. /// [Newtonsoft.Json.JsonPropertyAttribute("nextPageToken")] public virtual string NextPageToken { get; set; } /// - /// The search results for the given query. Each DocumentChunk in this list contains a snippet of content - /// relevant to the search query. Use the DocumentChunk.parent field of each result with + /// Contains the search results for the given query. Each DocumentChunk in this list contains a snippet of + /// content relevant to the search query. Use the DocumentChunk.parent field of each result with /// DeveloperKnowledge.GetDocument or DeveloperKnowledge.BatchGetDocuments to retrieve the full document /// content. /// diff --git a/Src/Generated/Google.Apis.DeveloperKnowledge.v1alpha/Google.Apis.DeveloperKnowledge.v1alpha.csproj b/Src/Generated/Google.Apis.DeveloperKnowledge.v1alpha/Google.Apis.DeveloperKnowledge.v1alpha.csproj index d2f9cf4cdb5..28a31044bdf 100644 --- a/Src/Generated/Google.Apis.DeveloperKnowledge.v1alpha/Google.Apis.DeveloperKnowledge.v1alpha.csproj +++ b/Src/Generated/Google.Apis.DeveloperKnowledge.v1alpha/Google.Apis.DeveloperKnowledge.v1alpha.csproj @@ -3,7 +3,7 @@ Google.Apis.DeveloperKnowledge.v1alpha Client Library - 1.73.0.4071 + 1.73.0.4120 Google LLC Copyright 2026 Google LLC Google From aa5a6c4dd013ae355f4dacf1b251f12d8483e549 Mon Sep 17 00:00:00 2001 From: Amanda Tarafa Mas Date: Mon, 20 Apr 2026 08:06:04 +0000 Subject: [PATCH 20/40] feat: Generate Google.Apis.Docs.v1 version 1.73.0.4122 --- DiscoveryJson/docs.v1.json | 26 +++++++++++++++- .../Google.Apis.Docs.v1.cs | 31 +++++++++++++++++++ .../Google.Apis.Docs.v1.csproj | 2 +- 3 files changed, 57 insertions(+), 2 deletions(-) diff --git a/DiscoveryJson/docs.v1.json b/DiscoveryJson/docs.v1.json index 9d377e5ddce..c87ab7c4c82 100644 --- a/DiscoveryJson/docs.v1.json +++ b/DiscoveryJson/docs.v1.json @@ -221,7 +221,7 @@ } } }, - "revision": "20260408", + "revision": "20260415", "rootUrl": "https://docs.googleapis.com/", "schemas": { "AddDocumentTabRequest": { @@ -3401,6 +3401,10 @@ "$ref": "UpdateDocumentTabPropertiesRequest", "description": "Updates the properties of a document tab." }, + "updateNamedStyle": { + "$ref": "UpdateNamedStyleRequest", + "description": "Updates a named style." + }, "updateParagraphStyle": { "$ref": "UpdateParagraphStyleRequest", "description": "Updates the paragraph style at the specified range." @@ -4736,6 +4740,26 @@ }, "type": "object" }, + "UpdateNamedStyleRequest": { + "description": "Updates a named style.", + "id": "UpdateNamedStyleRequest", + "properties": { + "fields": { + "description": "The NamedStyle fields that should be updated. At least `named_style_type must be specified. The root `named_style` is implied and should not be specified. A single `\"*\"` can be used as short-hand for listing every field. For example, to update the text style to bold, set `fields` to include `\"text_style\"` and `\"text_style.bold\"`. To update the paragraph style's alignment property, set `fields` to include `\"paragraph_style\"` and `\"paragraph_style.alignment\"`. To reset a property to its default value, include its field name in the field mask but leave the field itself unset. Specifying `\"text_style\"` or `\"paragraph_style\"` with an empty TextStyle or ParagraphStyle will reset all of its nested fields.", + "format": "google-fieldmask", + "type": "string" + }, + "namedStyle": { + "$ref": "NamedStyle", + "description": "The document style to update." + }, + "tabId": { + "description": "The document tab to update. By default, the update is applied to the first tab.", + "type": "string" + } + }, + "type": "object" + }, "UpdateParagraphStyleRequest": { "description": "Update the styling of all paragraphs that overlap with the given range.", "id": "UpdateParagraphStyleRequest", diff --git a/Src/Generated/Google.Apis.Docs.v1/Google.Apis.Docs.v1.cs b/Src/Generated/Google.Apis.Docs.v1/Google.Apis.Docs.v1.cs index f4baac82a04..2a26ef63bbb 100644 --- a/Src/Generated/Google.Apis.Docs.v1/Google.Apis.Docs.v1.cs +++ b/Src/Generated/Google.Apis.Docs.v1/Google.Apis.Docs.v1.cs @@ -4002,6 +4002,10 @@ public class Request : Google.Apis.Requests.IDirectResponseSchema [Newtonsoft.Json.JsonPropertyAttribute("updateDocumentTabProperties")] public virtual UpdateDocumentTabPropertiesRequest UpdateDocumentTabProperties { get; set; } + /// Updates a named style. + [Newtonsoft.Json.JsonPropertyAttribute("updateNamedStyle")] + public virtual UpdateNamedStyleRequest UpdateNamedStyle { get; set; } + /// Updates the paragraph style at the specified range. [Newtonsoft.Json.JsonPropertyAttribute("updateParagraphStyle")] public virtual UpdateParagraphStyleRequest UpdateParagraphStyle { get; set; } @@ -5469,6 +5473,33 @@ public class UpdateDocumentTabPropertiesRequest : Google.Apis.Requests.IDirectRe public virtual string ETag { get; set; } } + /// Updates a named style. + public class UpdateNamedStyleRequest : Google.Apis.Requests.IDirectResponseSchema + { + /// + /// The NamedStyle fields that should be updated. At least `named_style_type must be specified. The root + /// `named_style` is implied and should not be specified. A single `"*"` can be used as short-hand for listing + /// every field. For example, to update the text style to bold, set `fields` to include `"text_style"` and + /// `"text_style.bold"`. To update the paragraph style's alignment property, set `fields` to include + /// `"paragraph_style"` and `"paragraph_style.alignment"`. To reset a property to its default value, include its + /// field name in the field mask but leave the field itself unset. Specifying `"text_style"` or + /// `"paragraph_style"` with an empty TextStyle or ParagraphStyle will reset all of its nested fields. + /// + [Newtonsoft.Json.JsonPropertyAttribute("fields")] + public virtual object Fields { get; set; } + + /// The document style to update. + [Newtonsoft.Json.JsonPropertyAttribute("namedStyle")] + public virtual NamedStyle NamedStyle { get; set; } + + /// The document tab to update. By default, the update is applied to the first tab. + [Newtonsoft.Json.JsonPropertyAttribute("tabId")] + public virtual string TabId { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + /// Update the styling of all paragraphs that overlap with the given range. public class UpdateParagraphStyleRequest : Google.Apis.Requests.IDirectResponseSchema { diff --git a/Src/Generated/Google.Apis.Docs.v1/Google.Apis.Docs.v1.csproj b/Src/Generated/Google.Apis.Docs.v1/Google.Apis.Docs.v1.csproj index 57d8a0ac1ce..f257a8a6661 100644 --- a/Src/Generated/Google.Apis.Docs.v1/Google.Apis.Docs.v1.csproj +++ b/Src/Generated/Google.Apis.Docs.v1/Google.Apis.Docs.v1.csproj @@ -3,7 +3,7 @@ Google.Apis.Docs.v1 Client Library - 1.73.0.4115 + 1.73.0.4122 Google LLC Copyright 2026 Google LLC Google From 4fcb20be45e6997b138dfc1762da7a8c473ad0ca Mon Sep 17 00:00:00 2001 From: Amanda Tarafa Mas Date: Mon, 20 Apr 2026 08:06:07 +0000 Subject: [PATCH 21/40] feat: Generate Google.Apis.Gmail.v1 version 1.73.0.4120 --- DiscoveryJson/gmail.v1.json | 6 +++--- .../Google.Apis.Gmail.v1/Google.Apis.Gmail.v1.cs | 10 +++++----- .../Google.Apis.Gmail.v1/Google.Apis.Gmail.v1.csproj | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/DiscoveryJson/gmail.v1.json b/DiscoveryJson/gmail.v1.json index 73d6ab03ad3..291eb78bf06 100644 --- a/DiscoveryJson/gmail.v1.json +++ b/DiscoveryJson/gmail.v1.json @@ -3077,7 +3077,7 @@ } } }, - "revision": "20260112", + "revision": "20260413", "rootUrl": "https://gmail.googleapis.com/", "schemas": { "AutoForwarding": { @@ -3729,11 +3729,11 @@ "id": "LabelColor", "properties": { "backgroundColor": { - "description": "The background color represented as hex string #RRGGBB (ex #000000). This field is required in order to set the color of a label. Only the following predefined set of color values are allowed: \\#000000, #434343, #666666, #999999, #cccccc, #efefef, #f3f3f3, #ffffff, \\#fb4c2f, #ffad47, #fad165, #16a766, #43d692, #4a86e8, #a479e2, #f691b3, \\#f6c5be, #ffe6c7, #fef1d1, #b9e4d0, #c6f3de, #c9daf8, #e4d7f5, #fcdee8, \\#efa093, #ffd6a2, #fce8b3, #89d3b2, #a0eac9, #a4c2f4, #d0bcf1, #fbc8d9, \\#e66550, #ffbc6b, #fcda83, #44b984, #68dfa9, #6d9eeb, #b694e8, #f7a7c0, \\#cc3a21, #eaa041, #f2c960, #149e60, #3dc789, #3c78d8, #8e63ce, #e07798, \\#ac2b16, #cf8933, #d5ae49, #0b804b, #2a9c68, #285bac, #653e9b, #b65775, \\#822111, #a46a21, #aa8831, #076239, #1a764d, #1c4587, #41236d, #83334c \\#464646, #e7e7e7, #0d3472, #b6cff5, #0d3b44, #98d7e4, #3d188e, #e3d7ff, \\#711a36, #fbd3e0, #8a1c0a, #f2b2a8, #7a2e0b, #ffc8af, #7a4706, #ffdeb5, \\#594c05, #fbe983, #684e07, #fdedc1, #0b4f30, #b3efd3, #04502e, #a2dcc1, \\#c2c2c2, #4986e7, #2da2bb, #b99aff, #994a64, #f691b2, #ff7537, #ffad46, \\#662e37, #ebdbde, #cca6ac, #094228, #42d692, #16a765", + "description": "The background color represented as hex string #RRGGBB (ex #000000). This field is required in order to set the color of a label. Only the following predefined set of color values are allowed: \\#000000, #434343, #666666, #999999, #cccccc, #efefef, #f3f3f3, #ffffff, \\#fb4c2f, #ffad47, #fad165, #16a766, #43d692, #4a86e8, #a479e2, #f691b3, \\#f6c5be, #ffe6c7, #fef1d1, #b9e4d0, #c6f3de, #c9daf8, #e4d7f5, #fcdee8, \\#efa093, #ffd6a2, #fce8b3, #89d3b2, #a0eac9, #a4c2f4, #d0bcf1, #fbc8d9, \\#e66550, #ffbc6b, #fcda83, #44b984, #68dfa9, #6d9eeb, #b694e8, #f7a7c0, \\#cc3a21, #eaa041, #f2c960, #149e60, #3dc789, #3c78d8, #8e63ce, #e07798, \\#ac2b16, #cf8933, #d5ae49, #0b804b, #2a9c68, #285bac, #653e9b, #b65775, \\#822111, #a46a21, #aa8831, #076239, #1a764d, #1c4587, #41236d, #83334c, \\#464646, #e7e7e7, #0d3472, #b6cff5, #0d3b44, #98d7e4, #3d188e, #e3d7ff, \\#711a36, #fbd3e0, #8a1c0a, #f2b2a8, #7a2e0b, #ffc8af, #7a4706, #ffdeb5, \\#594c05, #fbe983, #684e07, #fdedc1, #0b4f30, #b3efd3, #04502e, #a2dcc1, \\#c2c2c2, #4986e7, #2da2bb, #b99aff, #994a64, #f691b2, #ff7537, #ffad46, \\#662e37, #ebdbde, #cca6ac, #094228, #42d692, #16a765", "type": "string" }, "textColor": { - "description": "The text color of the label, represented as hex string. This field is required in order to set the color of a label. Only the following predefined set of color values are allowed: \\#000000, #434343, #666666, #999999, #cccccc, #efefef, #f3f3f3, #ffffff, \\#fb4c2f, #ffad47, #fad165, #16a766, #43d692, #4a86e8, #a479e2, #f691b3, \\#f6c5be, #ffe6c7, #fef1d1, #b9e4d0, #c6f3de, #c9daf8, #e4d7f5, #fcdee8, \\#efa093, #ffd6a2, #fce8b3, #89d3b2, #a0eac9, #a4c2f4, #d0bcf1, #fbc8d9, \\#e66550, #ffbc6b, #fcda83, #44b984, #68dfa9, #6d9eeb, #b694e8, #f7a7c0, \\#cc3a21, #eaa041, #f2c960, #149e60, #3dc789, #3c78d8, #8e63ce, #e07798, \\#ac2b16, #cf8933, #d5ae49, #0b804b, #2a9c68, #285bac, #653e9b, #b65775, \\#822111, #a46a21, #aa8831, #076239, #1a764d, #1c4587, #41236d, #83334c \\#464646, #e7e7e7, #0d3472, #b6cff5, #0d3b44, #98d7e4, #3d188e, #e3d7ff, \\#711a36, #fbd3e0, #8a1c0a, #f2b2a8, #7a2e0b, #ffc8af, #7a4706, #ffdeb5, \\#594c05, #fbe983, #684e07, #fdedc1, #0b4f30, #b3efd3, #04502e, #a2dcc1, \\#c2c2c2, #4986e7, #2da2bb, #b99aff, #994a64, #f691b2, #ff7537, #ffad46, \\#662e37, #ebdbde, #cca6ac, #094228, #42d692, #16a765", + "description": "The text color of the label, represented as hex string. This field is required in order to set the color of a label. Only the following predefined set of color values are allowed: \\#000000, #434343, #666666, #999999, #cccccc, #efefef, #f3f3f3, #ffffff, \\#fb4c2f, #ffad47, #fad165, #16a766, #43d692, #4a86e8, #a479e2, #f691b3, \\#f6c5be, #ffe6c7, #fef1d1, #b9e4d0, #c6f3de, #c9daf8, #e4d7f5, #fcdee8, \\#efa093, #ffd6a2, #fce8b3, #89d3b2, #a0eac9, #a4c2f4, #d0bcf1, #fbc8d9, \\#e66550, #ffbc6b, #fcda83, #44b984, #68dfa9, #6d9eeb, #b694e8, #f7a7c0, \\#cc3a21, #eaa041, #f2c960, #149e60, #3dc789, #3c78d8, #8e63ce, #e07798, \\#ac2b16, #cf8933, #d5ae49, #0b804b, #2a9c68, #285bac, #653e9b, #b65775, \\#822111, #a46a21, #aa8831, #076239, #1a764d, #1c4587, #41236d, #83334c, \\#464646, #e7e7e7, #0d3472, #b6cff5, #0d3b44, #98d7e4, #3d188e, #e3d7ff, \\#711a36, #fbd3e0, #8a1c0a, #f2b2a8, #7a2e0b, #ffc8af, #7a4706, #ffdeb5, \\#594c05, #fbe983, #684e07, #fdedc1, #0b4f30, #b3efd3, #04502e, #a2dcc1, \\#c2c2c2, #4986e7, #2da2bb, #b99aff, #994a64, #f691b2, #ff7537, #ffad46, \\#662e37, #ebdbde, #cca6ac, #094228, #42d692, #16a765", "type": "string" } }, diff --git a/Src/Generated/Google.Apis.Gmail.v1/Google.Apis.Gmail.v1.cs b/Src/Generated/Google.Apis.Gmail.v1/Google.Apis.Gmail.v1.cs index 879b5619fa4..fdb832d888a 100644 --- a/Src/Generated/Google.Apis.Gmail.v1/Google.Apis.Gmail.v1.cs +++ b/Src/Generated/Google.Apis.Gmail.v1/Google.Apis.Gmail.v1.cs @@ -8091,7 +8091,7 @@ public class LabelColor : Google.Apis.Requests.IDirectResponseSchema /// #ffd6a2, #fce8b3, #89d3b2, #a0eac9, #a4c2f4, #d0bcf1, #fbc8d9, \#e66550, #ffbc6b, #fcda83, #44b984, #68dfa9, /// #6d9eeb, #b694e8, #f7a7c0, \#cc3a21, #eaa041, #f2c960, #149e60, #3dc789, #3c78d8, #8e63ce, #e07798, /// \#ac2b16, #cf8933, #d5ae49, #0b804b, #2a9c68, #285bac, #653e9b, #b65775, \#822111, #a46a21, #aa8831, - /// #076239, #1a764d, #1c4587, #41236d, #83334c \#464646, #e7e7e7, #0d3472, #b6cff5, #0d3b44, #98d7e4, #3d188e, + /// #076239, #1a764d, #1c4587, #41236d, #83334c, \#464646, #e7e7e7, #0d3472, #b6cff5, #0d3b44, #98d7e4, #3d188e, /// #e3d7ff, \#711a36, #fbd3e0, #8a1c0a, #f2b2a8, #7a2e0b, #ffc8af, #7a4706, #ffdeb5, \#594c05, #fbe983, /// #684e07, #fdedc1, #0b4f30, #b3efd3, #04502e, #a2dcc1, \#c2c2c2, #4986e7, #2da2bb, #b99aff, #994a64, #f691b2, /// #ff7537, #ffad46, \#662e37, #ebdbde, #cca6ac, #094228, #42d692, #16a765 @@ -8107,10 +8107,10 @@ public class LabelColor : Google.Apis.Requests.IDirectResponseSchema /// #89d3b2, #a0eac9, #a4c2f4, #d0bcf1, #fbc8d9, \#e66550, #ffbc6b, #fcda83, #44b984, #68dfa9, #6d9eeb, #b694e8, /// #f7a7c0, \#cc3a21, #eaa041, #f2c960, #149e60, #3dc789, #3c78d8, #8e63ce, #e07798, \#ac2b16, #cf8933, /// #d5ae49, #0b804b, #2a9c68, #285bac, #653e9b, #b65775, \#822111, #a46a21, #aa8831, #076239, #1a764d, #1c4587, - /// #41236d, #83334c \#464646, #e7e7e7, #0d3472, #b6cff5, #0d3b44, #98d7e4, #3d188e, #e3d7ff, \#711a36, #fbd3e0, - /// #8a1c0a, #f2b2a8, #7a2e0b, #ffc8af, #7a4706, #ffdeb5, \#594c05, #fbe983, #684e07, #fdedc1, #0b4f30, #b3efd3, - /// #04502e, #a2dcc1, \#c2c2c2, #4986e7, #2da2bb, #b99aff, #994a64, #f691b2, #ff7537, #ffad46, \#662e37, - /// #ebdbde, #cca6ac, #094228, #42d692, #16a765 + /// #41236d, #83334c, \#464646, #e7e7e7, #0d3472, #b6cff5, #0d3b44, #98d7e4, #3d188e, #e3d7ff, \#711a36, + /// #fbd3e0, #8a1c0a, #f2b2a8, #7a2e0b, #ffc8af, #7a4706, #ffdeb5, \#594c05, #fbe983, #684e07, #fdedc1, #0b4f30, + /// #b3efd3, #04502e, #a2dcc1, \#c2c2c2, #4986e7, #2da2bb, #b99aff, #994a64, #f691b2, #ff7537, #ffad46, + /// \#662e37, #ebdbde, #cca6ac, #094228, #42d692, #16a765 /// [Newtonsoft.Json.JsonPropertyAttribute("textColor")] public virtual string TextColor { get; set; } diff --git a/Src/Generated/Google.Apis.Gmail.v1/Google.Apis.Gmail.v1.csproj b/Src/Generated/Google.Apis.Gmail.v1/Google.Apis.Gmail.v1.csproj index 66a2af3cd6b..60c4d46f942 100644 --- a/Src/Generated/Google.Apis.Gmail.v1/Google.Apis.Gmail.v1.csproj +++ b/Src/Generated/Google.Apis.Gmail.v1/Google.Apis.Gmail.v1.csproj @@ -3,7 +3,7 @@ Google.Apis.Gmail.v1 Client Library - 1.73.0.4029 + 1.73.0.4120 Google LLC Copyright 2026 Google LLC Google From 264601d7b2ef0a9688032c0b3ff6c32167f2b39e Mon Sep 17 00:00:00 2001 From: Amanda Tarafa Mas Date: Mon, 20 Apr 2026 08:06:09 +0000 Subject: [PATCH 22/40] feat: Generate Google.Apis.GoogleHealthAPI.v4 version 1.73.0.4123 --- DiscoveryJson/health.v4.json | 458 +++++++++- .../Google.Apis.GoogleHealthAPI.v4.cs | 815 ++++++++++++++++++ .../Google.Apis.GoogleHealthAPI.v4.csproj | 3 +- 3 files changed, 1274 insertions(+), 2 deletions(-) diff --git a/DiscoveryJson/health.v4.json b/DiscoveryJson/health.v4.json index 06436fac8fd..8cf03b4601d 100644 --- a/DiscoveryJson/health.v4.json +++ b/DiscoveryJson/health.v4.json @@ -1,4 +1,13 @@ { + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/cloud-platform": { + "description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." + } + } + } + }, "basePath": "", "baseUrl": "https://health.googleapis.com/", "batchPath": "batch", @@ -96,6 +105,147 @@ }, "protocol": "rest", "resources": { + "projects": { + "resources": { + "subscribers": { + "methods": { + "create": { + "description": "Registers a new subscriber endpoint to receive notifications. A subscriber represents an application or service that wishes to receive data change notifications for users who have granted consent. **Endpoint Verification:** For a subscriber to be successfully created, the provided `endpoint_uri` must be a valid HTTPS endpoint and must pass an automated verification check. The backend will send two HTTP POST requests to the `endpoint_uri`: 1. **Verification with Authorization:** * **Headers:** Includes `Content-Type: application/json` and `Authorization` (with the exact value from `CreateSubscriberPayload.endpoint_authorization.secret`). * **Body:** `{\"type\": \"verification\"}` * **Expected Response:** HTTP `201 Created`. 2. **Verification without Authorization:** * **Headers:** Includes `Content-Type: application/json`. The `Authorization` header is OMITTED. * **Body:** `{\"type\": \"verification\"}` * **Expected Response:** HTTP `401 Unauthorized` or `403 Forbidden`. Both tests must pass for the subscriber creation to succeed. If verification fails, the operation will not be completed and an error will be returned. This process ensures the endpoint is reachable and correctly validates the `Authorization` header.", + "flatPath": "v4/projects/{projectsId}/subscribers", + "httpMethod": "POST", + "id": "health.projects.subscribers.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent resource where this subscriber will be created. Format: projects/{project} Example: projects/my-project-123", + "location": "path", + "pattern": "^projects/[^/]+$", + "required": true, + "type": "string" + }, + "subscriberId": { + "description": "Optional. The ID to use for the subscriber, which will become the final component of the subscriber's resource name. This value should be 4-36 characters, and valid characters are /[a-z]([a-z0-9-]{2,34}[a-z0-9])/.", + "location": "query", + "type": "string" + } + }, + "path": "v4/{+parent}/subscribers", + "request": { + "$ref": "CreateSubscriberPayload" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a subscriber registration. This will stop all notifications to the subscriber's endpoint.", + "flatPath": "v4/projects/{projectsId}/subscribers/{subscribersId}", + "httpMethod": "DELETE", + "id": "health.projects.subscribers.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "force": { + "description": "Optional. If set to true, any child resources (e.g., subscriptions) will also be deleted. If false (default) and child resources exist, the request will fail.", + "location": "query", + "type": "boolean" + }, + "name": { + "description": "Required. The name of the subscriber to delete. Format: projects/{project}/subscribers/{subscriber} Example: projects/my-project/subscribers/my-subscriber-123 The {subscriber} ID is user-settable (4-36 characters, matching /[a-z]([a-z0-9-]{2,34}[a-z0-9])/) or system-generated if not provided during creation.", + "location": "path", + "pattern": "^projects/[^/]+/subscribers/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v4/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists all subscribers registered within the owned Google Cloud Project.", + "flatPath": "v4/projects/{projectsId}/subscribers", + "httpMethod": "GET", + "id": "health.projects.subscribers.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Optional. The maximum number of subscribers to return. The service may return fewer than this value. If unspecified, at most 50 subscribers will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. A page token, received from a previous `ListSubscribers` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListSubscribers` must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent, which owns this collection of subscribers. Format: projects/{project}", + "location": "path", + "pattern": "^projects/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v4/{+parent}/subscribers", + "response": { + "$ref": "ListSubscribersResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates the configuration of an existing subscriber, such as the endpoint URI or the data types it's interested in. **Endpoint Verification:** If the `endpoint_uri` or `endpoint_authorization` field is included in the `update_mask`, the backend will re-verify the endpoint. The verification process is the same as described in `CreateSubscriber`: 1. **Verification with Authorization:** POST to the new or existing `endpoint_uri` with the new or existing `Authorization` secret. Expects HTTP `201 Created`. 2. **Verification without Authorization:** POST to the `endpoint_uri` without the `Authorization` header. Expects HTTP `401 Unauthorized` or `403 Forbidden`. Both tests must pass using the potentially updated values for the subscriber update to succeed. If verification fails, the update will not be applied, and an error will be returned.", + "flatPath": "v4/projects/{projectsId}/subscribers/{subscribersId}", + "httpMethod": "PATCH", + "id": "health.projects.subscribers.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Identifier. The resource name of the Subscriber. Format: projects/{project}/subscribers/{subscriber} The {project} ID is a Google Cloud Project ID or Project Number. The {subscriber} ID is user-settable (4-36 characters, matching /[a-z]([a-z0-9-]{2,34}[a-z0-9])/) if provided during creation, or system-generated otherwise (e.g., a UUID). Example (User-settable subscriber ID): projects/my-project/subscribers/my-sub-123 Example (System-generated subscriber ID): projects/my-project/subscribers/a1b2c3d4-e5f6-7890-1234-567890abcdef", + "location": "path", + "pattern": "^projects/[^/]+/subscribers/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Optional. A field mask that specifies which fields of the Subscriber message are to be updated. This allows for partial updates. Supported fields: - endpoint_uri - subscriber_configs - endpoint_authorization", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v4/{+name}", + "request": { + "$ref": "Subscriber" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } + }, "users": { "methods": { "getIdentity": { @@ -336,6 +486,28 @@ "supportsMediaDownload": true, "useMediaDownloadService": true }, + "get": { + "description": "Get a single identifyable data point.", + "flatPath": "v4/users/{usersId}/dataTypes/{dataTypesId}/dataPoints/{dataPointsId}", + "httpMethod": "GET", + "id": "health.users.dataTypes.dataPoints.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the data point to retrieve. Format: `users/{user}/dataTypes/{data_type}/dataPoints/{data_point}` See DataPoint.name for examples and possible values.", + "location": "path", + "pattern": "^users/[^/]+/dataTypes/[^/]+/dataPoints/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v4/{+name}", + "response": { + "$ref": "DataPoint" + } + }, "list": { "description": "Query user health and fitness data points.", "flatPath": "v4/users/{usersId}/dataTypes/{dataTypesId}/dataPoints", @@ -474,7 +646,7 @@ } } }, - "revision": "20260405", + "revision": "20260416", "rootUrl": "https://health.googleapis.com/", "schemas": { "ActiveMinutes": { @@ -858,6 +1030,28 @@ }, "type": "object" }, + "CreateSubscriberPayload": { + "description": "Payload for creating a subscriber.", + "id": "CreateSubscriberPayload", + "properties": { + "endpointAuthorization": { + "$ref": "EndpointAuthorization", + "description": "Required. Authorization mechanism for the subscriber endpoint. The `secret` within this message is crucial for endpoint verification and for securing webhook notifications." + }, + "endpointUri": { + "description": "Required. The full HTTPS URI where update notifications will be sent. The URI must be a valid URL and use HTTPS as the scheme. This endpoint will be verified during the `CreateSubscriber` call. See CreateSubscriber RPC documentation for verification details.", + "type": "string" + }, + "subscriberConfigs": { + "description": "Optional. Configuration for the subscriber.", + "items": { + "$ref": "SubscriberConfig" + }, + "type": "array" + } + }, + "type": "object" + }, "DailyHeartRateVariability": { "description": "Represents the daily heart rate variability data type. At least one of the following fields must be set: - `average_heart_rate_variability_milliseconds` - `non_rem_heart_rate_beats_per_minute` - `entropy` - `deep_sleep_root_mean_square_of_successive_differences_milliseconds`", "id": "DailyHeartRateVariability", @@ -1110,6 +1304,10 @@ "$ref": "StepsRollupValue", "description": "Returned by default when rolling up data points from the `steps` data type, or when requested explicitly using the `steps` rollup type identifier." }, + "swimLengthsData": { + "$ref": "SwimLengthsDataRollupValue", + "description": "Returned by default when rolling up data points from the `swim-lengths-data` data type, or when requested explicitly using the `swim-lengths-data` rollup type identifier." + }, "timeInHeartRateZone": { "$ref": "TimeInHeartRateZoneRollupValue", "description": "Returned by default when rolling up data points from the `time-in-heart-rate-zone` data type, or when requested explicitly using the `time-in-heart-rate-zone` rollup type identifier." @@ -1274,6 +1472,10 @@ "$ref": "HeartRateVariability", "description": "Optional. Data for points in the `heart-rate-variability` sample data type collection." }, + "height": { + "$ref": "Height", + "description": "Optional. Data for points in the `height` sample data type collection." + }, "hydrationLog": { "$ref": "HydrationLog", "description": "Optional. Data for points in the `hydration-log` session data type collection." @@ -1306,6 +1508,10 @@ "$ref": "Steps", "description": "Optional. Data for points in the `steps` interval data type collection." }, + "swimLengthsData": { + "$ref": "SwimLengthsData", + "description": "Optional. Data for points in the `swim-lengths-data` interval data type collection." + }, "timeInHeartRateZone": { "$ref": "TimeInHeartRateZone", "description": "Optional. Data for points in the `time-in-heart-rate-zone` interval data type collection." @@ -1528,6 +1734,22 @@ }, "type": "object" }, + "EndpointAuthorization": { + "description": "Authorization mechanism for a subscriber endpoint. For all requests sent by the Webhooks service, the JSON payload is cryptographically signed. The signature is delivered in the `X-HEALTHAPI-SIGNATURE` HTTP header. This is an ECDSA (NIST P256) signature of the JSON payload. Clients must verify this signature using Google Health API's public key to confirm the payload was sent by the Health API.", + "id": "EndpointAuthorization", + "properties": { + "secret": { + "description": "Required. Input only. Provides a client-provided secret that will be sent with each notification to the subscriber endpoint using the \"Authorization\" header. The value must include the authorization scheme, e.g., \"Bearer \" or \"Basic \", as it will be used as the full Authorization header value. This secret is used by the API to test the endpoint during `CreateSubscriber` and `UpdateSubscriber` calls, and will be sent in the `Authorization` header for all subsequent webhook notifications to this endpoint.", + "type": "string" + }, + "secretSet": { + "description": "Output only. Whether the secret is set.", + "readOnly": true, + "type": "boolean" + } + }, + "type": "object" + }, "Exercise": { "description": "An exercise that stores information about a physical activity.", "id": "Exercise", @@ -1890,6 +2112,65 @@ }, "type": "object" }, + "Height": { + "description": "Body height measurement.", + "id": "Height", + "properties": { + "heightMillimeters": { + "description": "Required. Height of the user in millimeters.", + "format": "int64", + "type": "string" + }, + "sampleTime": { + "$ref": "ObservationSampleTime", + "description": "Required. The time at which the height was recorded." + } + }, + "type": "object" + }, + "HttpHeader": { + "description": "Represents an HTTP header.", + "id": "HttpHeader", + "properties": { + "key": { + "description": "The HTTP header key. It is case insensitive.", + "type": "string" + }, + "value": { + "description": "The HTTP header value.", + "type": "string" + } + }, + "type": "object" + }, + "HttpResponse": { + "description": "Represents an HTTP response.", + "id": "HttpResponse", + "properties": { + "body": { + "description": "The HTTP response body. If the body is not expected, it should be empty.", + "format": "byte", + "type": "string" + }, + "headers": { + "description": "The HTTP response headers. The ordering of the headers is significant. Multiple headers with the same key may present for the response.", + "items": { + "$ref": "HttpHeader" + }, + "type": "array" + }, + "reason": { + "description": "The HTTP reason phrase, such as \"OK\" or \"Not Found\".", + "type": "string" + }, + "status": { + "description": "The HTTP status code, such as 200 or 404.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "HydrationLog": { "description": "Holds information about a user logged hydration.", "id": "HydrationLog", @@ -1972,6 +2253,29 @@ }, "type": "object" }, + "ListSubscribersResponse": { + "description": "Response message for ListSubscribers.", + "id": "ListSubscribersResponse", + "properties": { + "nextPageToken": { + "description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", + "type": "string" + }, + "subscribers": { + "description": "Subscribers from the specified project.", + "items": { + "$ref": "Subscriber" + }, + "type": "array" + }, + "totalSize": { + "description": "The total number of subscribers matching the request.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "MetricsSummary": { "description": "Summary metrics for an exercise.", "id": "MetricsSummary", @@ -2343,6 +2647,10 @@ "$ref": "HeartRateVariability", "description": "Data for points in the `heart-rate-variability` sample data type collection." }, + "height": { + "$ref": "Height", + "description": "Data for points in the `height` sample data type collection." + }, "hydrationLog": { "$ref": "HydrationLog", "description": "Data for points in the `hydration-log` session data type collection." @@ -2371,6 +2679,10 @@ "$ref": "Steps", "description": "Data for points in the `steps` interval data type collection." }, + "swimLengthsData": { + "$ref": "SwimLengthsData", + "description": "Data for points in the `swim-lengths-data` interval data type collection." + }, "timeInHeartRateZone": { "$ref": "TimeInHeartRateZone", "description": "Data for points in the `time-in-heart-rate-zone` interval data type collection." @@ -2565,6 +2877,10 @@ "$ref": "StepsRollupValue", "description": "Returned by default when rolling up data points from the `steps` data type, or when requested explicitly using the `steps` rollup type identifier." }, + "swimLengthsData": { + "$ref": "SwimLengthsDataRollupValue", + "description": "Returned by default when rolling up data points from the `swim-lengths-data` data type, or when requested explicitly using the `swim-lengths-data` rollup type identifier." + }, "timeInHeartRateZone": { "$ref": "TimeInHeartRateZoneRollupValue", "description": "Returned by default when rolling up data points from the `time-in-heart-rate-zone` data type, or when requested explicitly using the `time-in-heart-rate-zone` rollup type identifier." @@ -3213,6 +3529,135 @@ }, "type": "object" }, + "Subscriber": { + "description": "-- Resource Messages -- A subscriber receives notifications from Google Health API.", + "id": "Subscriber", + "properties": { + "createTime": { + "description": "Output only. The time at which the subscriber was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "endpointAuthorization": { + "$ref": "EndpointAuthorization", + "description": "Required. Authorization mechanism for a subscriber endpoint. This is required to ensure the endpoint can be verified." + }, + "endpointUri": { + "description": "Required. The full HTTPS URI where update notifications will be sent. The URI must be a valid URL and use HTTPS as the scheme. This endpoint will be verified during CreateSubscriber and UpdateSubscriber calls. See RPC documentation for verification details.", + "type": "string" + }, + "name": { + "description": "Identifier. The resource name of the Subscriber. Format: projects/{project}/subscribers/{subscriber} The {project} ID is a Google Cloud Project ID or Project Number. The {subscriber} ID is user-settable (4-36 characters, matching /[a-z]([a-z0-9-]{2,34}[a-z0-9])/) if provided during creation, or system-generated otherwise (e.g., a UUID). Example (User-settable subscriber ID): projects/my-project/subscribers/my-sub-123 Example (System-generated subscriber ID): projects/my-project/subscribers/a1b2c3d4-e5f6-7890-1234-567890abcdef", + "type": "string" + }, + "state": { + "description": "Output only. The state of the subscriber.", + "enum": [ + "STATE_UNSPECIFIED", + "UNVERIFIED", + "ACTIVE", + "INACTIVE" + ], + "enumDescriptions": [ + "Represents an unspecified subscriber state.", + "Represents an unverified subscriber. This is the initial state of the subscriber when it is created. The backend will verify the subscriber's endpoint_uri.", + "Represents an active subscriber. The endpoint has been verified.", + "Represents an inactive subscriber." + ], + "readOnly": true, + "type": "string" + }, + "subscriberConfigs": { + "description": "Optional. Configuration for the subscriber.", + "items": { + "$ref": "SubscriberConfig" + }, + "type": "array" + }, + "updateTime": { + "description": "Output only. The time at which the subscriber was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "SubscriberConfig": { + "description": "Configuration for a subscriber. A notification is sent to a subscription ONLY if the subscriber has a config for the data type.", + "id": "SubscriberConfig", + "properties": { + "dataTypes": { + "description": "Required. Supported data types are: \"altitude\", \"distance\", \"floors\", \"sleep\", \"steps\", \"weight\". Values should be in kebab-case.", + "items": { + "type": "string" + }, + "type": "array" + }, + "subscriptionCreatePolicy": { + "description": "Required. Policy for subscription creation.", + "enum": [ + "SUBSCRIPTION_CREATE_POLICY_UNSPECIFIED", + "AUTOMATIC", + "MANUAL" + ], + "enumDescriptions": [ + "Represents an unspecified policy.", + "When using `AUTOMATIC`, individual subscriptions are not created or stored. Instead, eligibility for notifications is computed dynamically. When a data update occurs for a given data type, notifications are sent to all subscribers with an `AUTOMATIC` policy for that data type, provided the user has granted the necessary consents. This means you do not need to call `CreateSubscription` for each user; notifications are managed automatically based on user consents. As `Subscription` resources are not stored, they cannot be retrieved or managed through `GetSubscription`, `ListSubscriptions`, `UpdateSubscription`, or `DeleteSubscription`.", + "Requires subscriptions to be created manually for new users. The developer needs to call CreateSubscription for new users." + ], + "type": "string" + } + }, + "type": "object" + }, + "SwimLengthsData": { + "description": "Swim lengths data over the time interval.", + "id": "SwimLengthsData", + "properties": { + "interval": { + "$ref": "ObservationTimeInterval", + "description": "Required. Observed interval." + }, + "strokeCount": { + "description": "Required. Number of strokes in the lap.", + "format": "int64", + "type": "string" + }, + "swimStrokeType": { + "description": "Required. Swim stroke type.", + "enum": [ + "SWIM_STROKE_TYPE_UNSPECIFIED", + "FREESTYLE", + "BACKSTROKE", + "BREASTSTROKE", + "BUTTERFLY" + ], + "enumDescriptions": [ + "Swim stroke type is unspecified.", + "Freestyle swim stroke type.", + "Backstroke swim stroke type.", + "Breaststroke swim stroke type.", + "Butterfly swim stroke type." + ], + "type": "string" + } + }, + "type": "object" + }, + "SwimLengthsDataRollupValue": { + "description": "Represents the result of the rollup of the swim lengths data type.", + "id": "SwimLengthsDataRollupValue", + "properties": { + "strokeCountSum": { + "description": "Total number of swim strokes in the interval.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, "TimeInHeartRateZone": { "description": "Time in heart rate zone record. It's an interval spent in specific heart rate zone.", "id": "TimeInHeartRateZone", @@ -3491,6 +3936,17 @@ }, "type": "object" }, + "WebhookNotificationCloudLog": { + "description": "Log message for a webhook notification sent by the Google Health API to a subscriber's endpoint. Includes the HTTP response received from the endpoint.", + "id": "WebhookNotificationCloudLog", + "properties": { + "httpResponse": { + "$ref": "HttpResponse", + "description": "Required. Represents the HTTP response. This message includes the status code, reason phrase, headers, and body." + } + }, + "type": "object" + }, "Weight": { "description": "Body weight measurement.", "id": "Weight", diff --git a/Src/Generated/Google.Apis.GoogleHealthAPI.v4/Google.Apis.GoogleHealthAPI.v4.cs b/Src/Generated/Google.Apis.GoogleHealthAPI.v4/Google.Apis.GoogleHealthAPI.v4.cs index b8c3416a601..bf0f6a1d509 100644 --- a/Src/Generated/Google.Apis.GoogleHealthAPI.v4/Google.Apis.GoogleHealthAPI.v4.cs +++ b/Src/Generated/Google.Apis.GoogleHealthAPI.v4/Google.Apis.GoogleHealthAPI.v4.cs @@ -34,6 +34,7 @@ public GoogleHealthAPIService() : this(new Google.Apis.Services.BaseClientServic /// The service initializer. public GoogleHealthAPIService(Google.Apis.Services.BaseClientService.Initializer initializer) : base(initializer) { + Projects = new ProjectsResource(this); Users = new UsersResource(this); BaseUri = GetEffectiveUri(BaseUriOverride, "https://health.googleapis.com/"); BatchUri = GetEffectiveUri(null, "https://health.googleapis.com/batch"); @@ -57,6 +58,29 @@ public GoogleHealthAPIService(Google.Apis.Services.BaseClientService.Initializer /// Gets the batch base path; null if unspecified. public override string BatchPath => "batch"; + /// Available OAuth 2.0 scopes for use with the Google Health API. + public class Scope + { + /// + /// See, edit, configure, and delete your Google Cloud data and see the email address for your Google + /// Account. + /// + public static string CloudPlatform = "https://www.googleapis.com/auth/cloud-platform"; + } + + /// Available OAuth 2.0 scope constants for use with the Google Health API. + public static class ScopeConstants + { + /// + /// See, edit, configure, and delete your Google Cloud data and see the email address for your Google + /// Account. + /// + public const string CloudPlatform = "https://www.googleapis.com/auth/cloud-platform"; + } + + /// Gets the Projects resource. + public virtual ProjectsResource Projects { get; } + /// Gets the Users resource. public virtual UsersResource Users { get; } } @@ -242,6 +266,401 @@ protected override void InitParameters() } } + /// The "projects" collection of methods. + public class ProjectsResource + { + private const string Resource = "projects"; + + /// The service which this resource belongs to. + private readonly Google.Apis.Services.IClientService service; + + /// Constructs a new resource. + public ProjectsResource(Google.Apis.Services.IClientService service) + { + this.service = service; + Subscribers = new SubscribersResource(service); + } + + /// Gets the Subscribers resource. + public virtual SubscribersResource Subscribers { get; } + + /// The "subscribers" collection of methods. + public class SubscribersResource + { + private const string Resource = "subscribers"; + + /// The service which this resource belongs to. + private readonly Google.Apis.Services.IClientService service; + + /// Constructs a new resource. + public SubscribersResource(Google.Apis.Services.IClientService service) + { + this.service = service; + } + + /// + /// Registers a new subscriber endpoint to receive notifications. A subscriber represents an application or + /// service that wishes to receive data change notifications for users who have granted consent. **Endpoint + /// Verification:** For a subscriber to be successfully created, the provided `endpoint_uri` must be a valid + /// HTTPS endpoint and must pass an automated verification check. The backend will send two HTTP POST + /// requests to the `endpoint_uri`: 1. **Verification with Authorization:** * **Headers:** Includes + /// `Content-Type: application/json` and `Authorization` (with the exact value from + /// `CreateSubscriberPayload.endpoint_authorization.secret`). * **Body:** `{"type": "verification"}` * + /// **Expected Response:** HTTP `201 Created`. 2. **Verification without Authorization:** * **Headers:** + /// Includes `Content-Type: application/json`. The `Authorization` header is OMITTED. * **Body:** `{"type": + /// "verification"}` * **Expected Response:** HTTP `401 Unauthorized` or `403 Forbidden`. Both tests must + /// pass for the subscriber creation to succeed. If verification fails, the operation will not be completed + /// and an error will be returned. This process ensures the endpoint is reachable and correctly validates + /// the `Authorization` header. + /// + /// The body of the request. + /// + /// Required. The parent resource where this subscriber will be created. Format: projects/{project} Example: + /// projects/my-project-123 + /// + public virtual CreateRequest Create(Google.Apis.GoogleHealthAPI.v4.Data.CreateSubscriberPayload body, string parent) + { + return new CreateRequest(this.service, body, parent); + } + + /// + /// Registers a new subscriber endpoint to receive notifications. A subscriber represents an application or + /// service that wishes to receive data change notifications for users who have granted consent. **Endpoint + /// Verification:** For a subscriber to be successfully created, the provided `endpoint_uri` must be a valid + /// HTTPS endpoint and must pass an automated verification check. The backend will send two HTTP POST + /// requests to the `endpoint_uri`: 1. **Verification with Authorization:** * **Headers:** Includes + /// `Content-Type: application/json` and `Authorization` (with the exact value from + /// `CreateSubscriberPayload.endpoint_authorization.secret`). * **Body:** `{"type": "verification"}` * + /// **Expected Response:** HTTP `201 Created`. 2. **Verification without Authorization:** * **Headers:** + /// Includes `Content-Type: application/json`. The `Authorization` header is OMITTED. * **Body:** `{"type": + /// "verification"}` * **Expected Response:** HTTP `401 Unauthorized` or `403 Forbidden`. Both tests must + /// pass for the subscriber creation to succeed. If verification fails, the operation will not be completed + /// and an error will be returned. This process ensures the endpoint is reachable and correctly validates + /// the `Authorization` header. + /// + public class CreateRequest : GoogleHealthAPIBaseServiceRequest + { + /// Constructs a new Create request. + public CreateRequest(Google.Apis.Services.IClientService service, Google.Apis.GoogleHealthAPI.v4.Data.CreateSubscriberPayload body, string parent) : base(service) + { + Parent = parent; + Body = body; + InitParameters(); + } + + /// + /// Required. The parent resource where this subscriber will be created. Format: projects/{project} + /// Example: projects/my-project-123 + /// + [Google.Apis.Util.RequestParameterAttribute("parent", Google.Apis.Util.RequestParameterType.Path)] + public virtual string Parent { get; private set; } + + /// + /// Optional. The ID to use for the subscriber, which will become the final component of the + /// subscriber's resource name. This value should be 4-36 characters, and valid characters are + /// /[a-z]([a-z0-9-]{2,34}[a-z0-9])/. + /// + [Google.Apis.Util.RequestParameterAttribute("subscriberId", Google.Apis.Util.RequestParameterType.Query)] + public virtual string SubscriberId { get; set; } + + /// Gets or sets the body of this request. + Google.Apis.GoogleHealthAPI.v4.Data.CreateSubscriberPayload Body { get; set; } + + /// Returns the body of the request. + protected override object GetBody() => Body; + + /// Gets the method name. + public override string MethodName => "create"; + + /// Gets the HTTP method. + public override string HttpMethod => "POST"; + + /// Gets the REST path. + public override string RestPath => "v4/{+parent}/subscribers"; + + /// Initializes Create parameter list. + protected override void InitParameters() + { + base.InitParameters(); + RequestParameters.Add("parent", new Google.Apis.Discovery.Parameter + { + Name = "parent", + IsRequired = true, + ParameterType = "path", + DefaultValue = null, + Pattern = @"^projects/[^/]+$", + }); + RequestParameters.Add("subscriberId", new Google.Apis.Discovery.Parameter + { + Name = "subscriberId", + IsRequired = false, + ParameterType = "query", + DefaultValue = null, + Pattern = null, + }); + } + } + + /// + /// Deletes a subscriber registration. This will stop all notifications to the subscriber's endpoint. + /// + /// + /// Required. The name of the subscriber to delete. Format: projects/{project}/subscribers/{subscriber} + /// Example: projects/my-project/subscribers/my-subscriber-123 The {subscriber} ID is user-settable (4-36 + /// characters, matching /[a-z]([a-z0-9-]{2,34}[a-z0-9])/) or system-generated if not provided during + /// creation. + /// + public virtual DeleteRequest Delete(string name) + { + return new DeleteRequest(this.service, name); + } + + /// + /// Deletes a subscriber registration. This will stop all notifications to the subscriber's endpoint. + /// + public class DeleteRequest : GoogleHealthAPIBaseServiceRequest + { + /// Constructs a new Delete request. + public DeleteRequest(Google.Apis.Services.IClientService service, string name) : base(service) + { + Name = name; + InitParameters(); + } + + /// + /// Required. The name of the subscriber to delete. Format: projects/{project}/subscribers/{subscriber} + /// Example: projects/my-project/subscribers/my-subscriber-123 The {subscriber} ID is user-settable + /// (4-36 characters, matching /[a-z]([a-z0-9-]{2,34}[a-z0-9])/) or system-generated if not provided + /// during creation. + /// + [Google.Apis.Util.RequestParameterAttribute("name", Google.Apis.Util.RequestParameterType.Path)] + public virtual string Name { get; private set; } + + /// + /// Optional. If set to true, any child resources (e.g., subscriptions) will also be deleted. If false + /// (default) and child resources exist, the request will fail. + /// + [Google.Apis.Util.RequestParameterAttribute("force", Google.Apis.Util.RequestParameterType.Query)] + public virtual System.Nullable Force { get; set; } + + /// Gets the method name. + public override string MethodName => "delete"; + + /// Gets the HTTP method. + public override string HttpMethod => "DELETE"; + + /// Gets the REST path. + public override string RestPath => "v4/{+name}"; + + /// Initializes Delete parameter list. + protected override void InitParameters() + { + base.InitParameters(); + RequestParameters.Add("name", new Google.Apis.Discovery.Parameter + { + Name = "name", + IsRequired = true, + ParameterType = "path", + DefaultValue = null, + Pattern = @"^projects/[^/]+/subscribers/[^/]+$", + }); + RequestParameters.Add("force", new Google.Apis.Discovery.Parameter + { + Name = "force", + IsRequired = false, + ParameterType = "query", + DefaultValue = null, + Pattern = null, + }); + } + } + + /// Lists all subscribers registered within the owned Google Cloud Project. + /// + /// Required. The parent, which owns this collection of subscribers. Format: projects/{project} + /// + public virtual ListRequest List(string parent) + { + return new ListRequest(this.service, parent); + } + + /// Lists all subscribers registered within the owned Google Cloud Project. + public class ListRequest : GoogleHealthAPIBaseServiceRequest + { + /// Constructs a new List request. + public ListRequest(Google.Apis.Services.IClientService service, string parent) : base(service) + { + Parent = parent; + InitParameters(); + } + + /// + /// Required. The parent, which owns this collection of subscribers. Format: projects/{project} + /// + [Google.Apis.Util.RequestParameterAttribute("parent", Google.Apis.Util.RequestParameterType.Path)] + public virtual string Parent { get; private set; } + + /// + /// Optional. The maximum number of subscribers to return. The service may return fewer than this value. + /// If unspecified, at most 50 subscribers will be returned. The maximum value is 1000; values above + /// 1000 will be coerced to 1000. + /// + [Google.Apis.Util.RequestParameterAttribute("pageSize", Google.Apis.Util.RequestParameterType.Query)] + public virtual System.Nullable PageSize { get; set; } + + /// + /// Optional. A page token, received from a previous `ListSubscribers` call. Provide this to retrieve + /// the subsequent page. When paginating, all other parameters provided to `ListSubscribers` must match + /// the call that provided the page token. + /// + [Google.Apis.Util.RequestParameterAttribute("pageToken", Google.Apis.Util.RequestParameterType.Query)] + public virtual string PageToken { get; set; } + + /// Gets the method name. + public override string MethodName => "list"; + + /// Gets the HTTP method. + public override string HttpMethod => "GET"; + + /// Gets the REST path. + public override string RestPath => "v4/{+parent}/subscribers"; + + /// Initializes List parameter list. + protected override void InitParameters() + { + base.InitParameters(); + RequestParameters.Add("parent", new Google.Apis.Discovery.Parameter + { + Name = "parent", + IsRequired = true, + ParameterType = "path", + DefaultValue = null, + Pattern = @"^projects/[^/]+$", + }); + RequestParameters.Add("pageSize", new Google.Apis.Discovery.Parameter + { + Name = "pageSize", + IsRequired = false, + ParameterType = "query", + DefaultValue = null, + Pattern = null, + }); + RequestParameters.Add("pageToken", new Google.Apis.Discovery.Parameter + { + Name = "pageToken", + IsRequired = false, + ParameterType = "query", + DefaultValue = null, + Pattern = null, + }); + } + } + + /// + /// Updates the configuration of an existing subscriber, such as the endpoint URI or the data types it's + /// interested in. **Endpoint Verification:** If the `endpoint_uri` or `endpoint_authorization` field is + /// included in the `update_mask`, the backend will re-verify the endpoint. The verification process is the + /// same as described in `CreateSubscriber`: 1. **Verification with Authorization:** POST to the new or + /// existing `endpoint_uri` with the new or existing `Authorization` secret. Expects HTTP `201 Created`. 2. + /// **Verification without Authorization:** POST to the `endpoint_uri` without the `Authorization` header. + /// Expects HTTP `401 Unauthorized` or `403 Forbidden`. Both tests must pass using the potentially updated + /// values for the subscriber update to succeed. If verification fails, the update will not be applied, and + /// an error will be returned. + /// + /// The body of the request. + /// + /// Identifier. The resource name of the Subscriber. Format: projects/{project}/subscribers/{subscriber} The + /// {project} ID is a Google Cloud Project ID or Project Number. The {subscriber} ID is user-settable (4-36 + /// characters, matching /[a-z]([a-z0-9-]{2,34}[a-z0-9])/) if provided during creation, or system-generated + /// otherwise (e.g., a UUID). Example (User-settable subscriber ID): + /// projects/my-project/subscribers/my-sub-123 Example (System-generated subscriber ID): + /// projects/my-project/subscribers/a1b2c3d4-e5f6-7890-1234-567890abcdef + /// + public virtual PatchRequest Patch(Google.Apis.GoogleHealthAPI.v4.Data.Subscriber body, string name) + { + return new PatchRequest(this.service, body, name); + } + + /// + /// Updates the configuration of an existing subscriber, such as the endpoint URI or the data types it's + /// interested in. **Endpoint Verification:** If the `endpoint_uri` or `endpoint_authorization` field is + /// included in the `update_mask`, the backend will re-verify the endpoint. The verification process is the + /// same as described in `CreateSubscriber`: 1. **Verification with Authorization:** POST to the new or + /// existing `endpoint_uri` with the new or existing `Authorization` secret. Expects HTTP `201 Created`. 2. + /// **Verification without Authorization:** POST to the `endpoint_uri` without the `Authorization` header. + /// Expects HTTP `401 Unauthorized` or `403 Forbidden`. Both tests must pass using the potentially updated + /// values for the subscriber update to succeed. If verification fails, the update will not be applied, and + /// an error will be returned. + /// + public class PatchRequest : GoogleHealthAPIBaseServiceRequest + { + /// Constructs a new Patch request. + public PatchRequest(Google.Apis.Services.IClientService service, Google.Apis.GoogleHealthAPI.v4.Data.Subscriber body, string name) : base(service) + { + Name = name; + Body = body; + InitParameters(); + } + + /// + /// Identifier. The resource name of the Subscriber. Format: projects/{project}/subscribers/{subscriber} + /// The {project} ID is a Google Cloud Project ID or Project Number. The {subscriber} ID is + /// user-settable (4-36 characters, matching /[a-z]([a-z0-9-]{2,34}[a-z0-9])/) if provided during + /// creation, or system-generated otherwise (e.g., a UUID). Example (User-settable subscriber ID): + /// projects/my-project/subscribers/my-sub-123 Example (System-generated subscriber ID): + /// projects/my-project/subscribers/a1b2c3d4-e5f6-7890-1234-567890abcdef + /// + [Google.Apis.Util.RequestParameterAttribute("name", Google.Apis.Util.RequestParameterType.Path)] + public virtual string Name { get; private set; } + + /// + /// Optional. A field mask that specifies which fields of the Subscriber message are to be updated. This + /// allows for partial updates. Supported fields: - endpoint_uri - subscriber_configs - + /// endpoint_authorization + /// + [Google.Apis.Util.RequestParameterAttribute("updateMask", Google.Apis.Util.RequestParameterType.Query)] + public virtual object UpdateMask { get; set; } + + /// Gets or sets the body of this request. + Google.Apis.GoogleHealthAPI.v4.Data.Subscriber Body { get; set; } + + /// Returns the body of the request. + protected override object GetBody() => Body; + + /// Gets the method name. + public override string MethodName => "patch"; + + /// Gets the HTTP method. + public override string HttpMethod => "PATCH"; + + /// Gets the REST path. + public override string RestPath => "v4/{+name}"; + + /// Initializes Patch parameter list. + protected override void InitParameters() + { + base.InitParameters(); + RequestParameters.Add("name", new Google.Apis.Discovery.Parameter + { + Name = "name", + IsRequired = true, + ParameterType = "path", + DefaultValue = null, + Pattern = @"^projects/[^/]+/subscribers/[^/]+$", + }); + RequestParameters.Add("updateMask", new Google.Apis.Discovery.Parameter + { + Name = "updateMask", + IsRequired = false, + ParameterType = "query", + DefaultValue = null, + Pattern = null, + }); + } + } + } + } + /// The "users" collection of methods. public class UsersResource { @@ -655,6 +1074,59 @@ public virtual Google.Apis.Download.IDownloadProgress DownloadRange(System.IO.St } } + /// Get a single identifyable data point. + /// + /// Required. The name of the data point to retrieve. Format: + /// `users/{user}/dataTypes/{data_type}/dataPoints/{data_point}` See DataPoint.name for examples and + /// possible values. + /// + public virtual GetRequest Get(string name) + { + return new GetRequest(this.service, name); + } + + /// Get a single identifyable data point. + public class GetRequest : GoogleHealthAPIBaseServiceRequest + { + /// Constructs a new Get request. + public GetRequest(Google.Apis.Services.IClientService service, string name) : base(service) + { + Name = name; + InitParameters(); + } + + /// + /// Required. The name of the data point to retrieve. Format: + /// `users/{user}/dataTypes/{data_type}/dataPoints/{data_point}` See DataPoint.name for examples and + /// possible values. + /// + [Google.Apis.Util.RequestParameterAttribute("name", Google.Apis.Util.RequestParameterType.Path)] + public virtual string Name { get; private set; } + + /// Gets the method name. + public override string MethodName => "get"; + + /// Gets the HTTP method. + public override string HttpMethod => "GET"; + + /// Gets the REST path. + public override string RestPath => "v4/{+name}"; + + /// Initializes Get parameter list. + protected override void InitParameters() + { + base.InitParameters(); + RequestParameters.Add("name", new Google.Apis.Discovery.Parameter + { + Name = "name", + IsRequired = true, + ParameterType = "path", + DefaultValue = null, + Pattern = @"^users/[^/]+/dataTypes/[^/]+/dataPoints/[^/]+$", + }); + } + } + /// Query user health and fitness data points. /// /// Required. Parent data type of the Data Point collection. Format: `users/me/dataTypes/{data_type}`, @@ -1647,6 +2119,32 @@ public class CivilTimeInterval : Google.Apis.Requests.IDirectResponseSchema public virtual string ETag { get; set; } } + /// Payload for creating a subscriber. + public class CreateSubscriberPayload : Google.Apis.Requests.IDirectResponseSchema + { + /// + /// Required. Authorization mechanism for the subscriber endpoint. The `secret` within this message is crucial + /// for endpoint verification and for securing webhook notifications. + /// + [Newtonsoft.Json.JsonPropertyAttribute("endpointAuthorization")] + public virtual EndpointAuthorization EndpointAuthorization { get; set; } + + /// + /// Required. The full HTTPS URI where update notifications will be sent. The URI must be a valid URL and use + /// HTTPS as the scheme. This endpoint will be verified during the `CreateSubscriber` call. See CreateSubscriber + /// RPC documentation for verification details. + /// + [Newtonsoft.Json.JsonPropertyAttribute("endpointUri")] + public virtual string EndpointUri { get; set; } + + /// Optional. Configuration for the subscriber. + [Newtonsoft.Json.JsonPropertyAttribute("subscriberConfigs")] + public virtual System.Collections.Generic.IList SubscriberConfigs { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + /// /// Represents the daily heart rate variability data type. At least one of the following fields must be set: - /// `average_heart_rate_variability_milliseconds` - `non_rem_heart_rate_beats_per_minute` - `entropy` - @@ -1955,6 +2453,13 @@ public class DailyRollupDataPoint : Google.Apis.Requests.IDirectResponseSchema [Newtonsoft.Json.JsonPropertyAttribute("steps")] public virtual StepsRollupValue Steps { get; set; } + /// + /// Returned by default when rolling up data points from the `swim-lengths-data` data type, or when requested + /// explicitly using the `swim-lengths-data` rollup type identifier. + /// + [Newtonsoft.Json.JsonPropertyAttribute("swimLengthsData")] + public virtual SwimLengthsDataRollupValue SwimLengthsData { get; set; } + /// /// Returned by default when rolling up data points from the `time-in-heart-rate-zone` data type, or when /// requested explicitly using the `time-in-heart-rate-zone` rollup type identifier. @@ -2131,6 +2636,10 @@ public class DataPoint : Google.Apis.Requests.IDirectResponseSchema [Newtonsoft.Json.JsonPropertyAttribute("heartRateVariability")] public virtual HeartRateVariability HeartRateVariability { get; set; } + /// Optional. Data for points in the `height` sample data type collection. + [Newtonsoft.Json.JsonPropertyAttribute("height")] + public virtual Height Height { get; set; } + /// Optional. Data for points in the `hydration-log` session data type collection. [Newtonsoft.Json.JsonPropertyAttribute("hydrationLog")] public virtual HydrationLog HydrationLog { get; set; } @@ -2175,6 +2684,10 @@ public class DataPoint : Google.Apis.Requests.IDirectResponseSchema [Newtonsoft.Json.JsonPropertyAttribute("steps")] public virtual Steps Steps { get; set; } + /// Optional. Data for points in the `swim-lengths-data` interval data type collection. + [Newtonsoft.Json.JsonPropertyAttribute("swimLengthsData")] + public virtual SwimLengthsData SwimLengthsData { get; set; } + /// Optional. Data for points in the `time-in-heart-rate-zone` interval data type collection. [Newtonsoft.Json.JsonPropertyAttribute("timeInHeartRateZone")] public virtual TimeInHeartRateZone TimeInHeartRateZone { get; set; } @@ -2367,6 +2880,32 @@ public class DistanceRollupValue : Google.Apis.Requests.IDirectResponseSchema public virtual string ETag { get; set; } } + /// + /// Authorization mechanism for a subscriber endpoint. For all requests sent by the Webhooks service, the JSON + /// payload is cryptographically signed. The signature is delivered in the `X-HEALTHAPI-SIGNATURE` HTTP header. This + /// is an ECDSA (NIST P256) signature of the JSON payload. Clients must verify this signature using Google Health + /// API's public key to confirm the payload was sent by the Health API. + /// + public class EndpointAuthorization : Google.Apis.Requests.IDirectResponseSchema + { + /// + /// Required. Input only. Provides a client-provided secret that will be sent with each notification to the + /// subscriber endpoint using the "Authorization" header. The value must include the authorization scheme, e.g., + /// "Bearer " or "Basic ", as it will be used as the full Authorization header value. This secret is used by the + /// API to test the endpoint during `CreateSubscriber` and `UpdateSubscriber` calls, and will be sent in the + /// `Authorization` header for all subsequent webhook notifications to this endpoint. + /// + [Newtonsoft.Json.JsonPropertyAttribute("secret")] + public virtual string Secret { get; set; } + + /// Output only. Whether the secret is set. + [Newtonsoft.Json.JsonPropertyAttribute("secretSet")] + public virtual System.Nullable SecretSet { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + /// An exercise that stores information about a physical activity. public class Exercise : Google.Apis.Requests.IDirectResponseSchema { @@ -2732,6 +3271,62 @@ public class HeartRateZone : Google.Apis.Requests.IDirectResponseSchema public virtual string ETag { get; set; } } + /// Body height measurement. + public class Height : Google.Apis.Requests.IDirectResponseSchema + { + /// Required. Height of the user in millimeters. + [Newtonsoft.Json.JsonPropertyAttribute("heightMillimeters")] + public virtual System.Nullable HeightMillimeters { get; set; } + + /// Required. The time at which the height was recorded. + [Newtonsoft.Json.JsonPropertyAttribute("sampleTime")] + public virtual ObservationSampleTime SampleTime { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// Represents an HTTP header. + public class HttpHeader : Google.Apis.Requests.IDirectResponseSchema + { + /// The HTTP header key. It is case insensitive. + [Newtonsoft.Json.JsonPropertyAttribute("key")] + public virtual string Key { get; set; } + + /// The HTTP header value. + [Newtonsoft.Json.JsonPropertyAttribute("value")] + public virtual string Value { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// Represents an HTTP response. + public class HttpResponse : Google.Apis.Requests.IDirectResponseSchema + { + /// The HTTP response body. If the body is not expected, it should be empty. + [Newtonsoft.Json.JsonPropertyAttribute("body")] + public virtual string Body { get; set; } + + /// + /// The HTTP response headers. The ordering of the headers is significant. Multiple headers with the same key + /// may present for the response. + /// + [Newtonsoft.Json.JsonPropertyAttribute("headers")] + public virtual System.Collections.Generic.IList Headers { get; set; } + + /// The HTTP reason phrase, such as "OK" or "Not Found". + [Newtonsoft.Json.JsonPropertyAttribute("reason")] + public virtual string Reason { get; set; } + + /// The HTTP status code, such as 200 or 404. + [Newtonsoft.Json.JsonPropertyAttribute("status")] + public virtual System.Nullable Status { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + /// Holds information about a user logged hydration. public class HydrationLog : Google.Apis.Requests.IDirectResponseSchema { @@ -2893,6 +3488,28 @@ public class ListDataPointsResponse : Google.Apis.Requests.IDirectResponseSchema public virtual string ETag { get; set; } } + /// Response message for ListSubscribers. + public class ListSubscribersResponse : Google.Apis.Requests.IDirectResponseSchema + { + /// + /// A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no + /// subsequent pages. + /// + [Newtonsoft.Json.JsonPropertyAttribute("nextPageToken")] + public virtual string NextPageToken { get; set; } + + /// Subscribers from the specified project. + [Newtonsoft.Json.JsonPropertyAttribute("subscribers")] + public virtual System.Collections.Generic.IList Subscribers { get; set; } + + /// The total number of subscribers matching the request. + [Newtonsoft.Json.JsonPropertyAttribute("totalSize")] + public virtual System.Nullable TotalSize { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + /// Summary metrics for an exercise. public class MetricsSummary : Google.Apis.Requests.IDirectResponseSchema { @@ -3477,6 +4094,10 @@ public class ReconciledDataPoint : Google.Apis.Requests.IDirectResponseSchema [Newtonsoft.Json.JsonPropertyAttribute("heartRateVariability")] public virtual HeartRateVariability HeartRateVariability { get; set; } + /// Data for points in the `height` sample data type collection. + [Newtonsoft.Json.JsonPropertyAttribute("height")] + public virtual Height Height { get; set; } + /// Data for points in the `hydration-log` session data type collection. [Newtonsoft.Json.JsonPropertyAttribute("hydrationLog")] public virtual HydrationLog HydrationLog { get; set; } @@ -3505,6 +4126,10 @@ public class ReconciledDataPoint : Google.Apis.Requests.IDirectResponseSchema [Newtonsoft.Json.JsonPropertyAttribute("steps")] public virtual Steps Steps { get; set; } + /// Data for points in the `swim-lengths-data` interval data type collection. + [Newtonsoft.Json.JsonPropertyAttribute("swimLengthsData")] + public virtual SwimLengthsData SwimLengthsData { get; set; } + /// Data for points in the `time-in-heart-rate-zone` interval data type collection. [Newtonsoft.Json.JsonPropertyAttribute("timeInHeartRateZone")] public virtual TimeInHeartRateZone TimeInHeartRateZone { get; set; } @@ -3814,6 +4439,13 @@ public virtual System.DateTimeOffset? StartTimeDateTimeOffset [Newtonsoft.Json.JsonPropertyAttribute("steps")] public virtual StepsRollupValue Steps { get; set; } + /// + /// Returned by default when rolling up data points from the `swim-lengths-data` data type, or when requested + /// explicitly using the `swim-lengths-data` rollup type identifier. + /// + [Newtonsoft.Json.JsonPropertyAttribute("swimLengthsData")] + public virtual SwimLengthsDataRollupValue SwimLengthsData { get; set; } + /// /// Returned by default when rolling up data points from the `time-in-heart-rate-zone` data type, or when /// requested explicitly using the `time-in-heart-rate-zone` rollup type identifier. @@ -4621,6 +5253,172 @@ public class StepsRollupValue : Google.Apis.Requests.IDirectResponseSchema public virtual string ETag { get; set; } } + /// -- Resource Messages -- A subscriber receives notifications from Google Health API. + public class Subscriber : Google.Apis.Requests.IDirectResponseSchema + { + private string _createTimeRaw; + + private object _createTime; + + /// Output only. The time at which the subscriber was created. + [Newtonsoft.Json.JsonPropertyAttribute("createTime")] + public virtual string CreateTimeRaw + { + get => _createTimeRaw; + set + { + _createTime = Google.Apis.Util.Utilities.DeserializeForGoogleFormat(value); + _createTimeRaw = value; + } + } + + /// representation of . + [Newtonsoft.Json.JsonIgnoreAttribute] + [System.ObsoleteAttribute("This property is obsolete and may behave unexpectedly; please use CreateTimeDateTimeOffset instead.")] + public virtual object CreateTime + { + get => _createTime; + set + { + _createTimeRaw = Google.Apis.Util.Utilities.SerializeForGoogleFormat(value); + _createTime = value; + } + } + + /// representation of . + [Newtonsoft.Json.JsonIgnoreAttribute] + public virtual System.DateTimeOffset? CreateTimeDateTimeOffset + { + get => Google.Apis.Util.DiscoveryFormat.ParseGoogleDateTimeToDateTimeOffset(CreateTimeRaw); + set => CreateTimeRaw = Google.Apis.Util.DiscoveryFormat.FormatDateTimeOffsetToGoogleDateTime(value); + } + + /// + /// Required. Authorization mechanism for a subscriber endpoint. This is required to ensure the endpoint can be + /// verified. + /// + [Newtonsoft.Json.JsonPropertyAttribute("endpointAuthorization")] + public virtual EndpointAuthorization EndpointAuthorization { get; set; } + + /// + /// Required. The full HTTPS URI where update notifications will be sent. The URI must be a valid URL and use + /// HTTPS as the scheme. This endpoint will be verified during CreateSubscriber and UpdateSubscriber calls. See + /// RPC documentation for verification details. + /// + [Newtonsoft.Json.JsonPropertyAttribute("endpointUri")] + public virtual string EndpointUri { get; set; } + + /// + /// Identifier. The resource name of the Subscriber. Format: projects/{project}/subscribers/{subscriber} The + /// {project} ID is a Google Cloud Project ID or Project Number. The {subscriber} ID is user-settable (4-36 + /// characters, matching /[a-z]([a-z0-9-]{2,34}[a-z0-9])/) if provided during creation, or system-generated + /// otherwise (e.g., a UUID). Example (User-settable subscriber ID): projects/my-project/subscribers/my-sub-123 + /// Example (System-generated subscriber ID): + /// projects/my-project/subscribers/a1b2c3d4-e5f6-7890-1234-567890abcdef + /// + [Newtonsoft.Json.JsonPropertyAttribute("name")] + public virtual string Name { get; set; } + + /// Output only. The state of the subscriber. + [Newtonsoft.Json.JsonPropertyAttribute("state")] + public virtual string State { get; set; } + + /// Optional. Configuration for the subscriber. + [Newtonsoft.Json.JsonPropertyAttribute("subscriberConfigs")] + public virtual System.Collections.Generic.IList SubscriberConfigs { get; set; } + + private string _updateTimeRaw; + + private object _updateTime; + + /// Output only. The time at which the subscriber was last updated. + [Newtonsoft.Json.JsonPropertyAttribute("updateTime")] + public virtual string UpdateTimeRaw + { + get => _updateTimeRaw; + set + { + _updateTime = Google.Apis.Util.Utilities.DeserializeForGoogleFormat(value); + _updateTimeRaw = value; + } + } + + /// representation of . + [Newtonsoft.Json.JsonIgnoreAttribute] + [System.ObsoleteAttribute("This property is obsolete and may behave unexpectedly; please use UpdateTimeDateTimeOffset instead.")] + public virtual object UpdateTime + { + get => _updateTime; + set + { + _updateTimeRaw = Google.Apis.Util.Utilities.SerializeForGoogleFormat(value); + _updateTime = value; + } + } + + /// representation of . + [Newtonsoft.Json.JsonIgnoreAttribute] + public virtual System.DateTimeOffset? UpdateTimeDateTimeOffset + { + get => Google.Apis.Util.DiscoveryFormat.ParseGoogleDateTimeToDateTimeOffset(UpdateTimeRaw); + set => UpdateTimeRaw = Google.Apis.Util.DiscoveryFormat.FormatDateTimeOffsetToGoogleDateTime(value); + } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// + /// Configuration for a subscriber. A notification is sent to a subscription ONLY if the subscriber has a config for + /// the data type. + /// + public class SubscriberConfig : Google.Apis.Requests.IDirectResponseSchema + { + /// + /// Required. Supported data types are: "altitude", "distance", "floors", "sleep", "steps", "weight". Values + /// should be in kebab-case. + /// + [Newtonsoft.Json.JsonPropertyAttribute("dataTypes")] + public virtual System.Collections.Generic.IList DataTypes { get; set; } + + /// Required. Policy for subscription creation. + [Newtonsoft.Json.JsonPropertyAttribute("subscriptionCreatePolicy")] + public virtual string SubscriptionCreatePolicy { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// Swim lengths data over the time interval. + public class SwimLengthsData : Google.Apis.Requests.IDirectResponseSchema + { + /// Required. Observed interval. + [Newtonsoft.Json.JsonPropertyAttribute("interval")] + public virtual ObservationTimeInterval Interval { get; set; } + + /// Required. Number of strokes in the lap. + [Newtonsoft.Json.JsonPropertyAttribute("strokeCount")] + public virtual System.Nullable StrokeCount { get; set; } + + /// Required. Swim stroke type. + [Newtonsoft.Json.JsonPropertyAttribute("swimStrokeType")] + public virtual string SwimStrokeType { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// Represents the result of the rollup of the swim lengths data type. + public class SwimLengthsDataRollupValue : Google.Apis.Requests.IDirectResponseSchema + { + /// Total number of swim strokes in the interval. + [Newtonsoft.Json.JsonPropertyAttribute("strokeCountSum")] + public virtual System.Nullable StrokeCountSum { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + /// Time in heart rate zone record. It's an interval spent in specific heart rate zone. public class TimeInHeartRateZone : Google.Apis.Requests.IDirectResponseSchema { @@ -4795,6 +5593,23 @@ public class VolumeQuantityRollup : Google.Apis.Requests.IDirectResponseSchema public virtual string ETag { get; set; } } + /// + /// Log message for a webhook notification sent by the Google Health API to a subscriber's endpoint. Includes the + /// HTTP response received from the endpoint. + /// + public class WebhookNotificationCloudLog : Google.Apis.Requests.IDirectResponseSchema + { + /// + /// Required. Represents the HTTP response. This message includes the status code, reason phrase, headers, and + /// body. + /// + [Newtonsoft.Json.JsonPropertyAttribute("httpResponse")] + public virtual HttpResponse HttpResponse { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + /// Body weight measurement. public class Weight : Google.Apis.Requests.IDirectResponseSchema { diff --git a/Src/Generated/Google.Apis.GoogleHealthAPI.v4/Google.Apis.GoogleHealthAPI.v4.csproj b/Src/Generated/Google.Apis.GoogleHealthAPI.v4/Google.Apis.GoogleHealthAPI.v4.csproj index 965f833a13d..fe98b865e44 100644 --- a/Src/Generated/Google.Apis.GoogleHealthAPI.v4/Google.Apis.GoogleHealthAPI.v4.csproj +++ b/Src/Generated/Google.Apis.GoogleHealthAPI.v4/Google.Apis.GoogleHealthAPI.v4.csproj @@ -3,7 +3,7 @@ Google.Apis.GoogleHealthAPI.v4 Client Library - 1.73.0.4112 + 1.73.0.4123 Google LLC Copyright 2026 Google LLC Google @@ -60,6 +60,7 @@ + From 187043c96a331e51e79105c6e6dcc762bbcc1f6f Mon Sep 17 00:00:00 2001 From: Amanda Tarafa Mas Date: Mon, 20 Apr 2026 08:06:11 +0000 Subject: [PATCH 23/40] feat: Generate Google.Apis.HomeGraphService.v1 version 1.73.0.4121 --- DiscoveryJson/homegraph.v1.json | 127 +++++++++++++++- .../Google.Apis.HomeGraphService.v1.cs | 136 +++++++++++++++++- .../Google.Apis.HomeGraphService.v1.csproj | 8 +- 3 files changed, 265 insertions(+), 6 deletions(-) diff --git a/DiscoveryJson/homegraph.v1.json b/DiscoveryJson/homegraph.v1.json index f5bbd1705ee..aee9d62d941 100644 --- a/DiscoveryJson/homegraph.v1.json +++ b/DiscoveryJson/homegraph.v1.json @@ -216,7 +216,7 @@ } } }, - "revision": "20250716", + "revision": "20260414", "rootUrl": "https://homegraph.googleapis.com/", "schemas": { "AgentDeviceId": { @@ -245,6 +245,24 @@ }, "type": "object" }, + "ComponentTraitUpdates": { + "description": "Contains the set of updates for a component.", + "id": "ComponentTraitUpdates", + "properties": { + "componentId": { + "description": "Required. ID of the component from the device provider.", + "type": "string" + }, + "traitData": { + "description": "Required. The updated trait data for the component.", + "items": { + "$ref": "TraitData" + }, + "type": "array" + } + }, + "type": "object" + }, "Device": { "description": "Third-party device definition.", "id": "Device", @@ -368,6 +386,84 @@ "properties": {}, "type": "object" }, + "EventData": { + "description": "Contains the details for a single event.", + "id": "EventData", + "properties": { + "event": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "description": "Required. The actual event payload.", + "type": "object" + }, + "eventId": { + "description": "Required. The unique event ID from the device provider.", + "type": "string" + }, + "eventTime": { + "description": "Required. The timestamp of the event.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "Events": { + "description": "Contains a set of events for a specific component.", + "id": "Events", + "properties": { + "componentId": { + "description": "Optional. The ID of the provider component if the events are associated with a specific component. Optional for WHDM events, required for UDDM events.", + "type": "string" + }, + "events": { + "description": "Required. List of events associated with the component.", + "items": { + "$ref": "EventData" + }, + "type": "array" + } + }, + "type": "object" + }, + "HomeEvents": { + "description": "Contains the set of events for an item.", + "id": "HomeEvents", + "properties": { + "deviceId": { + "description": "Required. / Unique identifier for the device.", + "type": "string" + }, + "events": { + "description": "Required. List of events for the item.", + "items": { + "$ref": "Events" + }, + "type": "array" + } + }, + "type": "object" + }, + "HomeTraitUpdates": { + "description": "Contains the set of updates for a device.", + "id": "HomeTraitUpdates", + "properties": { + "components": { + "description": "Required. Trait updates for each component.", + "items": { + "$ref": "ComponentTraitUpdates" + }, + "type": "array" + }, + "deviceId": { + "description": "Required. Unique identifier for the device.", + "type": "string" + } + }, + "type": "object" + }, "QueryRequest": { "description": "Request type for the [`Query`](#google.home.graph.v1.HomeGraphApiService.Query) call.", "id": "QueryRequest", @@ -452,6 +548,20 @@ "description": "The states and notifications specific to a device.", "id": "ReportStateAndNotificationDevice", "properties": { + "homeEvents": { + "description": "Optional. UDDM/WHDM trait events", + "items": { + "$ref": "HomeEvents" + }, + "type": "array" + }, + "homeTraits": { + "description": "Optional. UDDM/WHDM trait updates.", + "items": { + "$ref": "HomeTraitUpdates" + }, + "type": "array" + }, "notifications": { "additionalProperties": { "description": "Properties of the object.", @@ -589,6 +699,21 @@ } }, "type": "object" + }, + "TraitData": { + "description": "Contains the trait payload for a single trait.", + "id": "TraitData", + "properties": { + "trait": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "description": "Optional. The Home API trait payload.", + "type": "object" + } + }, + "type": "object" } }, "servicePath": "", diff --git a/Src/Generated/Google.Apis.HomeGraphService.v1/Google.Apis.HomeGraphService.v1.cs b/Src/Generated/Google.Apis.HomeGraphService.v1/Google.Apis.HomeGraphService.v1.cs index 31f03e163e2..bcd98260f1f 100644 --- a/Src/Generated/Google.Apis.HomeGraphService.v1/Google.Apis.HomeGraphService.v1.cs +++ b/Src/Generated/Google.Apis.HomeGraphService.v1/Google.Apis.HomeGraphService.v1.cs @@ -1,4 +1,4 @@ -// Copyright 2025 Google LLC +// Copyright 2026 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -589,6 +589,21 @@ public class AgentOtherDeviceId : Google.Apis.Requests.IDirectResponseSchema public virtual string ETag { get; set; } } + /// Contains the set of updates for a component. + public class ComponentTraitUpdates : Google.Apis.Requests.IDirectResponseSchema + { + /// Required. ID of the component from the device provider. + [Newtonsoft.Json.JsonPropertyAttribute("componentId")] + public virtual string ComponentId { get; set; } + + /// Required. The updated trait data for the component. + [Newtonsoft.Json.JsonPropertyAttribute("traitData")] + public virtual System.Collections.Generic.IList TraitData { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + /// Third-party device definition. public class Device : Google.Apis.Requests.IDirectResponseSchema { @@ -730,6 +745,106 @@ public class Empty : Google.Apis.Requests.IDirectResponseSchema public virtual string ETag { get; set; } } + /// Contains the details for a single event. + public class EventData : Google.Apis.Requests.IDirectResponseSchema + { + /// Required. The actual event payload. + [Newtonsoft.Json.JsonPropertyAttribute("event")] + public virtual System.Collections.Generic.IDictionary Event__ { get; set; } + + /// Required. The unique event ID from the device provider. + [Newtonsoft.Json.JsonPropertyAttribute("eventId")] + public virtual string EventId { get; set; } + + private string _eventTimeRaw; + + private object _eventTime; + + /// Required. The timestamp of the event. + [Newtonsoft.Json.JsonPropertyAttribute("eventTime")] + public virtual string EventTimeRaw + { + get => _eventTimeRaw; + set + { + _eventTime = Google.Apis.Util.Utilities.DeserializeForGoogleFormat(value); + _eventTimeRaw = value; + } + } + + /// representation of . + [Newtonsoft.Json.JsonIgnoreAttribute] + [System.ObsoleteAttribute("This property is obsolete and may behave unexpectedly; please use EventTimeDateTimeOffset instead.")] + public virtual object EventTime + { + get => _eventTime; + set + { + _eventTimeRaw = Google.Apis.Util.Utilities.SerializeForGoogleFormat(value); + _eventTime = value; + } + } + + /// representation of . + [Newtonsoft.Json.JsonIgnoreAttribute] + public virtual System.DateTimeOffset? EventTimeDateTimeOffset + { + get => Google.Apis.Util.DiscoveryFormat.ParseGoogleDateTimeToDateTimeOffset(EventTimeRaw); + set => EventTimeRaw = Google.Apis.Util.DiscoveryFormat.FormatDateTimeOffsetToGoogleDateTime(value); + } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// Contains a set of events for a specific component. + public class Events : Google.Apis.Requests.IDirectResponseSchema + { + /// + /// Optional. The ID of the provider component if the events are associated with a specific component. Optional + /// for WHDM events, required for UDDM events. + /// + [Newtonsoft.Json.JsonPropertyAttribute("componentId")] + public virtual string ComponentId { get; set; } + + /// Required. List of events associated with the component. + [Newtonsoft.Json.JsonPropertyAttribute("events")] + public virtual System.Collections.Generic.IList EventsValue { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// Contains the set of events for an item. + public class HomeEvents : Google.Apis.Requests.IDirectResponseSchema + { + /// Required. / Unique identifier for the device. + [Newtonsoft.Json.JsonPropertyAttribute("deviceId")] + public virtual string DeviceId { get; set; } + + /// Required. List of events for the item. + [Newtonsoft.Json.JsonPropertyAttribute("events")] + public virtual System.Collections.Generic.IList Events { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// Contains the set of updates for a device. + public class HomeTraitUpdates : Google.Apis.Requests.IDirectResponseSchema + { + /// Required. Trait updates for each component. + [Newtonsoft.Json.JsonPropertyAttribute("components")] + public virtual System.Collections.Generic.IList Components { get; set; } + + /// Required. Unique identifier for the device. + [Newtonsoft.Json.JsonPropertyAttribute("deviceId")] + public virtual string DeviceId { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + /// Request type for the [`Query`](#google.home.graph.v1.HomeGraphApiService.Query) call. public class QueryRequest : Google.Apis.Requests.IDirectResponseSchema { @@ -809,6 +924,14 @@ public class QueryResponsePayload : Google.Apis.Requests.IDirectResponseSchema /// The states and notifications specific to a device. public class ReportStateAndNotificationDevice : Google.Apis.Requests.IDirectResponseSchema { + /// Optional. UDDM/WHDM trait events + [Newtonsoft.Json.JsonPropertyAttribute("homeEvents")] + public virtual System.Collections.Generic.IList HomeEvents { get; set; } + + /// Optional. UDDM/WHDM trait updates. + [Newtonsoft.Json.JsonPropertyAttribute("homeTraits")] + public virtual System.Collections.Generic.IList HomeTraits { get; set; } + /// /// Notifications metadata for devices. See the **Device NOTIFICATIONS** section of the individual trait /// [reference guides](https://developers.home.google.com/cloud-to-cloud/traits). @@ -976,4 +1099,15 @@ public class SyncResponsePayload : Google.Apis.Requests.IDirectResponseSchema /// The ETag of the item. public virtual string ETag { get; set; } } + + /// Contains the trait payload for a single trait. + public class TraitData : Google.Apis.Requests.IDirectResponseSchema + { + /// Optional. The Home API trait payload. + [Newtonsoft.Json.JsonPropertyAttribute("trait")] + public virtual System.Collections.Generic.IDictionary Trait { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } } diff --git a/Src/Generated/Google.Apis.HomeGraphService.v1/Google.Apis.HomeGraphService.v1.csproj b/Src/Generated/Google.Apis.HomeGraphService.v1/Google.Apis.HomeGraphService.v1.csproj index a571f11831a..952fb8564c2 100644 --- a/Src/Generated/Google.Apis.HomeGraphService.v1/Google.Apis.HomeGraphService.v1.csproj +++ b/Src/Generated/Google.Apis.HomeGraphService.v1/Google.Apis.HomeGraphService.v1.csproj @@ -3,9 +3,9 @@ Google.Apis.HomeGraphService.v1 Client Library - 1.70.0.3849 + 1.73.0.4121 Google LLC - Copyright 2025 Google LLC + Copyright 2026 Google LLC Google https://github.com/google/google-api-dotnet-client Apache-2.0 @@ -59,8 +59,8 @@ - - + + From 43987df86341da4bbfabfd858a3874a29235de71 Mon Sep 17 00:00:00 2001 From: Amanda Tarafa Mas Date: Mon, 20 Apr 2026 08:06:13 +0000 Subject: [PATCH 24/40] feat: Generate Google.Apis.ManagedKafka.v1 version 1.73.0.4116 --- DiscoveryJson/managedkafka.v1.json | 4 ++-- .../Google.Apis.ManagedKafka.v1.cs | 4 ++-- .../Google.Apis.ManagedKafka.v1.csproj | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/DiscoveryJson/managedkafka.v1.json b/DiscoveryJson/managedkafka.v1.json index c8a11fe8c07..b42a98f170f 100644 --- a/DiscoveryJson/managedkafka.v1.json +++ b/DiscoveryJson/managedkafka.v1.json @@ -3186,7 +3186,7 @@ } } }, - "revision": "20260319", + "revision": "20260409", "rootUrl": "https://managedkafka.googleapis.com/", "schemas": { "AccessConfig": { @@ -3510,7 +3510,7 @@ "additionalProperties": { "type": "string" }, - "description": "Optional. Configurations for the worker that are overridden from the defaults. The key of the map is a Kafka Connect worker property name, for example: `exactly.once.source.support`.", + "description": "Optional. Reserved for future use. This field is meant for worker config overrides, but is unsupported for now.", "type": "object" }, "createTime": { diff --git a/Src/Generated/Google.Apis.ManagedKafka.v1/Google.Apis.ManagedKafka.v1.cs b/Src/Generated/Google.Apis.ManagedKafka.v1/Google.Apis.ManagedKafka.v1.cs index a3acc295cbb..3a6799128e3 100644 --- a/Src/Generated/Google.Apis.ManagedKafka.v1/Google.Apis.ManagedKafka.v1.cs +++ b/Src/Generated/Google.Apis.ManagedKafka.v1/Google.Apis.ManagedKafka.v1.cs @@ -7541,8 +7541,8 @@ public class ConnectCluster : Google.Apis.Requests.IDirectResponseSchema public virtual CapacityConfig CapacityConfig { get; set; } /// - /// Optional. Configurations for the worker that are overridden from the defaults. The key of the map is a Kafka - /// Connect worker property name, for example: `exactly.once.source.support`. + /// Optional. Reserved for future use. This field is meant for worker config overrides, but is unsupported for + /// now. /// [Newtonsoft.Json.JsonPropertyAttribute("config")] public virtual System.Collections.Generic.IDictionary Config { get; set; } diff --git a/Src/Generated/Google.Apis.ManagedKafka.v1/Google.Apis.ManagedKafka.v1.csproj b/Src/Generated/Google.Apis.ManagedKafka.v1/Google.Apis.ManagedKafka.v1.csproj index f1108991b80..c3274e49f78 100644 --- a/Src/Generated/Google.Apis.ManagedKafka.v1/Google.Apis.ManagedKafka.v1.csproj +++ b/Src/Generated/Google.Apis.ManagedKafka.v1/Google.Apis.ManagedKafka.v1.csproj @@ -3,7 +3,7 @@ Google.Apis.ManagedKafka.v1 Client Library - 1.73.0.4095 + 1.73.0.4116 Google LLC Copyright 2026 Google LLC Google From 5070effbbb31f9c99d456a98ebe4926a13fa0694 Mon Sep 17 00:00:00 2001 From: Amanda Tarafa Mas Date: Mon, 20 Apr 2026 08:06:16 +0000 Subject: [PATCH 25/40] feat: Generate Google.Apis.Merchant.accounts_v1 version 1.73.0.4122 --- DiscoveryJson/merchantapi.accounts_v1.json | 6 +++--- .../Google.Apis.Merchant.accounts_v1.cs | 14 +++++++------- .../Google.Apis.Merchant.accounts_v1.csproj | 2 +- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/DiscoveryJson/merchantapi.accounts_v1.json b/DiscoveryJson/merchantapi.accounts_v1.json index 4a272604c92..d6f0e777948 100644 --- a/DiscoveryJson/merchantapi.accounts_v1.json +++ b/DiscoveryJson/merchantapi.accounts_v1.json @@ -2438,7 +2438,7 @@ } } }, - "revision": "20260411", + "revision": "20260415", "rootUrl": "https://merchantapi.googleapis.com/", "schemas": { "About": { @@ -2502,7 +2502,7 @@ "type": "object" }, "Account": { - "description": "The `Account` message represents a business's account within Shopping Ads. It's the primary entity for managing product data, settings, and interactions with Google's services and external providers. Accounts can operate as standalone entities or be part of a advanced account structure. In an advanced account setup the parent account manages multiple sub-accounts. Establishing an account involves configuring attributes like the account name, time zone, and language preferences. The `Account` message is the parent entity for many other resources, for example, `AccountRelationship`, `Homepage`, `BusinessInfo` and so on.", + "description": "The `Account` message represents a business's account within Merchant Center. It's the primary entity for managing product data, settings, and interactions with Google's services and external providers. Accounts can operate as standalone entities or be part of a advanced account structure. In an advanced account setup the parent account manages multiple sub-accounts. Establishing an account involves configuring attributes like the account name, time zone, and language preferences. The `Account` message is the parent entity for many other resources, for example, `AccountRelationship`, `Homepage`, `BusinessInfo` and so on.", "id": "Account", "properties": { "accountId": { @@ -4907,7 +4907,7 @@ "type": "object" }, "Program": { - "description": "Defines participation in a given program for the specified account. Programs provide a mechanism for adding functionality to a Merchant Center accounts. A typical example of this is the [Free product listings](https://support.google.com/merchants/answer/13889434) program, which enables products from a business's store to be shown across Google for free. The following list is the available set of program resource IDs accessible through the API: * `checkout` * `free-listings` * `product-ratings` * `shopping-ads` * `youtube-shopping-checkout`", + "description": "Defines participation in a given program for the specified account. Programs provide a mechanism for adding functionality to a Merchant Center accounts. A typical example of this is the [Free product listings](https://support.google.com/merchants/answer/13889434) program, which enables products from a business's store to be shown across Google for free. The following list is the available set of program resource IDs accessible through the API: * `checkout` * `free-listings` * `product-ratings` * `shopping-ads` * `youtube-affiliate` * `youtube-shopping-checkout`", "id": "Program", "properties": { "activeRegionCodes": { diff --git a/Src/Generated/Google.Apis.Merchant.accounts_v1/Google.Apis.Merchant.accounts_v1.cs b/Src/Generated/Google.Apis.Merchant.accounts_v1/Google.Apis.Merchant.accounts_v1.cs index 16ada2b5796..c06062d0451 100644 --- a/Src/Generated/Google.Apis.Merchant.accounts_v1/Google.Apis.Merchant.accounts_v1.cs +++ b/Src/Generated/Google.Apis.Merchant.accounts_v1/Google.Apis.Merchant.accounts_v1.cs @@ -5668,12 +5668,12 @@ public class Accepted : Google.Apis.Requests.IDirectResponseSchema } /// - /// The `Account` message represents a business's account within Shopping Ads. It's the primary entity for managing - /// product data, settings, and interactions with Google's services and external providers. Accounts can operate as - /// standalone entities or be part of a advanced account structure. In an advanced account setup the parent account - /// manages multiple sub-accounts. Establishing an account involves configuring attributes like the account name, - /// time zone, and language preferences. The `Account` message is the parent entity for many other resources, for - /// example, `AccountRelationship`, `Homepage`, `BusinessInfo` and so on. + /// The `Account` message represents a business's account within Merchant Center. It's the primary entity for + /// managing product data, settings, and interactions with Google's services and external providers. Accounts can + /// operate as standalone entities or be part of a advanced account structure. In an advanced account setup the + /// parent account manages multiple sub-accounts. Establishing an account involves configuring attributes like the + /// account name, time zone, and language preferences. The `Account` message is the parent entity for many other + /// resources, for example, `AccountRelationship`, `Homepage`, `BusinessInfo` and so on. /// public class Account : Google.Apis.Requests.IDirectResponseSchema { @@ -8144,7 +8144,7 @@ public class ProductsManagement : Google.Apis.Requests.IDirectResponseSchema /// listings](https://support.google.com/merchants/answer/13889434) program, which enables products from a /// business's store to be shown across Google for free. The following list is the available set of program resource /// IDs accessible through the API: * `checkout` * `free-listings` * `product-ratings` * `shopping-ads` * - /// `youtube-shopping-checkout` + /// `youtube-affiliate` * `youtube-shopping-checkout` /// public class Program : Google.Apis.Requests.IDirectResponseSchema { diff --git a/Src/Generated/Google.Apis.Merchant.accounts_v1/Google.Apis.Merchant.accounts_v1.csproj b/Src/Generated/Google.Apis.Merchant.accounts_v1/Google.Apis.Merchant.accounts_v1.csproj index 5d81c55ffd7..dd92e7ac41b 100644 --- a/Src/Generated/Google.Apis.Merchant.accounts_v1/Google.Apis.Merchant.accounts_v1.csproj +++ b/Src/Generated/Google.Apis.Merchant.accounts_v1/Google.Apis.Merchant.accounts_v1.csproj @@ -3,7 +3,7 @@ Google.Apis.Merchant.accounts_v1 Client Library - 1.73.0.4118 + 1.73.0.4122 Google LLC Copyright 2026 Google LLC Google From 059cac7eb99f293ade432b1de209f55400beba9a Mon Sep 17 00:00:00 2001 From: Amanda Tarafa Mas Date: Mon, 20 Apr 2026 08:06:18 +0000 Subject: [PATCH 26/40] feat: Generate Google.Apis.Merchant.accounts_v1beta version 1.73.0.4122 --- DiscoveryJson/merchantapi.accounts_v1beta.json | 6 +++--- .../Google.Apis.Merchant.accounts_v1beta.cs | 14 +++++++------- .../Google.Apis.Merchant.accounts_v1beta.csproj | 2 +- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/DiscoveryJson/merchantapi.accounts_v1beta.json b/DiscoveryJson/merchantapi.accounts_v1beta.json index 26649d61b81..96e40796e0f 100644 --- a/DiscoveryJson/merchantapi.accounts_v1beta.json +++ b/DiscoveryJson/merchantapi.accounts_v1beta.json @@ -2388,7 +2388,7 @@ } } }, - "revision": "20260411", + "revision": "20260415", "rootUrl": "https://merchantapi.googleapis.com/", "schemas": { "About": { @@ -2452,7 +2452,7 @@ "type": "object" }, "Account": { - "description": "The `Account` message represents a business's account within Shopping Ads. It's the primary entity for managing product data, settings, and interactions with Google's services and external providers. Accounts can operate as standalone entities or be part of a advanced account structure. In an advanced account setup the parent account manages multiple sub-accounts. Establishing an account involves configuring attributes like the account name, time zone, and language preferences. The `Account` message is the parent entity for many other resources, for example, `AccountRelationship`, `Homepage`, `BusinessInfo` and so on.", + "description": "The `Account` message represents a business's account within Merchant Center. It's the primary entity for managing product data, settings, and interactions with Google's services and external providers. Accounts can operate as standalone entities or be part of a advanced account structure. In an advanced account setup the parent account manages multiple sub-accounts. Establishing an account involves configuring attributes like the account name, time zone, and language preferences. The `Account` message is the parent entity for many other resources, for example, `AccountRelationship`, `Homepage`, `BusinessInfo` and so on.", "id": "Account", "properties": { "accountId": { @@ -4784,7 +4784,7 @@ "type": "object" }, "Program": { - "description": "Defines participation in a given program for the specified account. Programs provide a mechanism for adding functionality to a Merchant Center accounts. A typical example of this is the [Free product listings](https://support.google.com/merchants/answer/13889434) program, which enables products from a business's store to be shown across Google for free. The following list is the available set of program resource IDs accessible through the API: * `checkout` * `free-listings` * `product-ratings` * `shopping-ads` * `youtube-shopping-checkout`", + "description": "Defines participation in a given program for the specified account. Programs provide a mechanism for adding functionality to a Merchant Center accounts. A typical example of this is the [Free product listings](https://support.google.com/merchants/answer/13889434) program, which enables products from a business's store to be shown across Google for free. The following list is the available set of program resource IDs accessible through the API: * `checkout` * `free-listings` * `product-ratings` * `shopping-ads` * `youtube-affiliate` * `youtube-shopping-checkout`", "id": "Program", "properties": { "activeRegionCodes": { diff --git a/Src/Generated/Google.Apis.Merchant.accounts_v1beta/Google.Apis.Merchant.accounts_v1beta.cs b/Src/Generated/Google.Apis.Merchant.accounts_v1beta/Google.Apis.Merchant.accounts_v1beta.cs index ea40230835c..f1f28d0f5ff 100644 --- a/Src/Generated/Google.Apis.Merchant.accounts_v1beta/Google.Apis.Merchant.accounts_v1beta.cs +++ b/Src/Generated/Google.Apis.Merchant.accounts_v1beta/Google.Apis.Merchant.accounts_v1beta.cs @@ -5553,12 +5553,12 @@ public class Accepted : Google.Apis.Requests.IDirectResponseSchema } /// - /// The `Account` message represents a business's account within Shopping Ads. It's the primary entity for managing - /// product data, settings, and interactions with Google's services and external providers. Accounts can operate as - /// standalone entities or be part of a advanced account structure. In an advanced account setup the parent account - /// manages multiple sub-accounts. Establishing an account involves configuring attributes like the account name, - /// time zone, and language preferences. The `Account` message is the parent entity for many other resources, for - /// example, `AccountRelationship`, `Homepage`, `BusinessInfo` and so on. + /// The `Account` message represents a business's account within Merchant Center. It's the primary entity for + /// managing product data, settings, and interactions with Google's services and external providers. Accounts can + /// operate as standalone entities or be part of a advanced account structure. In an advanced account setup the + /// parent account manages multiple sub-accounts. Establishing an account involves configuring attributes like the + /// account name, time zone, and language preferences. The `Account` message is the parent entity for many other + /// resources, for example, `AccountRelationship`, `Homepage`, `BusinessInfo` and so on. /// public class Account : Google.Apis.Requests.IDirectResponseSchema { @@ -7966,7 +7966,7 @@ public class ProductsManagement : Google.Apis.Requests.IDirectResponseSchema /// listings](https://support.google.com/merchants/answer/13889434) program, which enables products from a /// business's store to be shown across Google for free. The following list is the available set of program resource /// IDs accessible through the API: * `checkout` * `free-listings` * `product-ratings` * `shopping-ads` * - /// `youtube-shopping-checkout` + /// `youtube-affiliate` * `youtube-shopping-checkout` /// public class Program : Google.Apis.Requests.IDirectResponseSchema { diff --git a/Src/Generated/Google.Apis.Merchant.accounts_v1beta/Google.Apis.Merchant.accounts_v1beta.csproj b/Src/Generated/Google.Apis.Merchant.accounts_v1beta/Google.Apis.Merchant.accounts_v1beta.csproj index 38119e4ba7a..3be9d098028 100644 --- a/Src/Generated/Google.Apis.Merchant.accounts_v1beta/Google.Apis.Merchant.accounts_v1beta.csproj +++ b/Src/Generated/Google.Apis.Merchant.accounts_v1beta/Google.Apis.Merchant.accounts_v1beta.csproj @@ -3,7 +3,7 @@ Google.Apis.Merchant.accounts_v1beta Client Library - 1.73.0.4118 + 1.73.0.4122 Google LLC Copyright 2026 Google LLC Google From 06b88195093f713aca2cf6a9c0f97d424610fc14 Mon Sep 17 00:00:00 2001 From: Amanda Tarafa Mas Date: Mon, 20 Apr 2026 08:06:20 +0000 Subject: [PATCH 27/40] feat: Generate Google.Apis.Merchant.products_v1 version 1.73.0.4122 --- DiscoveryJson/merchantapi.products_v1.json | 18 +++++++++++++++--- .../Google.Apis.Merchant.products_v1.cs | 18 +++++++++++++++--- .../Google.Apis.Merchant.products_v1.csproj | 2 +- 3 files changed, 31 insertions(+), 7 deletions(-) diff --git a/DiscoveryJson/merchantapi.products_v1.json b/DiscoveryJson/merchantapi.products_v1.json index d870a366629..19a6abaf2b7 100644 --- a/DiscoveryJson/merchantapi.products_v1.json +++ b/DiscoveryJson/merchantapi.products_v1.json @@ -281,7 +281,7 @@ } } }, - "revision": "20260408", + "revision": "20260415", "rootUrl": "https://merchantapi.googleapis.com/", "schemas": { "AutomatedDiscounts": { @@ -1386,7 +1386,7 @@ "type": "string" }, "gtins": { - "description": "Global Trade Item Numbers ([GTIN](https://support.google.com/merchants/answer/188494#gtin)) of the item. You can provide up to 10 GTINs.", + "description": "Global Trade Item Numbers ([GTIN](https://support.google.com/merchants/answer/6324461)) of the item. You can provide up to 10 GTINs.", "items": { "type": "string" }, @@ -1569,7 +1569,7 @@ "type": "string" }, "mpn": { - "description": "Manufacturer Part Number ([MPN](https://support.google.com/merchants/answer/188494#mpn)) of the item.", + "description": "Manufacturer Part Number ([MPN](https://support.google.com/merchants/answer/6324482)) of the item.", "type": "string" }, "multipack": { @@ -1848,6 +1848,13 @@ "$ref": "UnitPricingMeasure", "description": "The measure and dimension of an item." }, + "videoLinks": { + "description": "Optional. A list of video URLs for the item. Use this attribute to provide more visuals for your product beyond your image attributes. See the [Help Center article](https://support.google.com/merchants/answer/15216925) for more information.", + "items": { + "type": "string" + }, + "type": "array" + }, "virtualModelLink": { "description": "URL of the 3D image of the item. See the [Help Center article](https://support.google.com/merchants/answer/13674896) for more information.", "type": "string" @@ -2100,6 +2107,11 @@ "$ref": "Price", "description": "The amount the buyer has to pay per month." }, + "annualPercentageRate": { + "description": "Optional. Annual percentage rate for `credit_type` finance", + "format": "double", + "type": "number" + }, "creditType": { "description": "Type of installment payments.", "enum": [ diff --git a/Src/Generated/Google.Apis.Merchant.products_v1/Google.Apis.Merchant.products_v1.cs b/Src/Generated/Google.Apis.Merchant.products_v1/Google.Apis.Merchant.products_v1.cs index fbb4543ac8e..79b9bd1794a 100644 --- a/Src/Generated/Google.Apis.Merchant.products_v1/Google.Apis.Merchant.products_v1.cs +++ b/Src/Generated/Google.Apis.Merchant.products_v1/Google.Apis.Merchant.products_v1.cs @@ -1816,8 +1816,8 @@ public virtual System.DateTimeOffset? ExpirationDateDateTimeOffset public virtual string GoogleProductCategory { get; set; } /// - /// Global Trade Item Numbers ([GTIN](https://support.google.com/merchants/answer/188494#gtin)) of the item. You - /// can provide up to 10 GTINs. + /// Global Trade Item Numbers ([GTIN](https://support.google.com/merchants/answer/6324461)) of the item. You can + /// provide up to 10 GTINs. /// [Newtonsoft.Json.JsonPropertyAttribute("gtins")] public virtual System.Collections.Generic.IList Gtins { get; set; } @@ -1937,7 +1937,7 @@ public virtual System.DateTimeOffset? ExpirationDateDateTimeOffset public virtual string MobileLinkTemplate { get; set; } /// - /// Manufacturer Part Number ([MPN](https://support.google.com/merchants/answer/188494#mpn)) of the item. + /// Manufacturer Part Number ([MPN](https://support.google.com/merchants/answer/6324482)) of the item. /// [Newtonsoft.Json.JsonPropertyAttribute("mpn")] public virtual string Mpn { get; set; } @@ -2156,6 +2156,14 @@ public virtual System.DateTimeOffset? ExpirationDateDateTimeOffset [Newtonsoft.Json.JsonPropertyAttribute("unitPricingMeasure")] public virtual UnitPricingMeasure UnitPricingMeasure { get; set; } + /// + /// Optional. A list of video URLs for the item. Use this attribute to provide more visuals for your product + /// beyond your image attributes. See the [Help Center + /// article](https://support.google.com/merchants/answer/15216925) for more information. + /// + [Newtonsoft.Json.JsonPropertyAttribute("videoLinks")] + public virtual System.Collections.Generic.IList VideoLinks { get; set; } + /// /// URL of the 3D image of the item. See the [Help Center /// article](https://support.google.com/merchants/answer/13674896) for more information. @@ -2409,6 +2417,10 @@ public class ProductInstallment : Google.Apis.Requests.IDirectResponseSchema [Newtonsoft.Json.JsonPropertyAttribute("amount")] public virtual Price Amount { get; set; } + /// Optional. Annual percentage rate for `credit_type` finance + [Newtonsoft.Json.JsonPropertyAttribute("annualPercentageRate")] + public virtual System.Nullable AnnualPercentageRate { get; set; } + /// Type of installment payments. [Newtonsoft.Json.JsonPropertyAttribute("creditType")] public virtual string CreditType { get; set; } diff --git a/Src/Generated/Google.Apis.Merchant.products_v1/Google.Apis.Merchant.products_v1.csproj b/Src/Generated/Google.Apis.Merchant.products_v1/Google.Apis.Merchant.products_v1.csproj index 1ea4cc79f58..c43cfd2f046 100644 --- a/Src/Generated/Google.Apis.Merchant.products_v1/Google.Apis.Merchant.products_v1.csproj +++ b/Src/Generated/Google.Apis.Merchant.products_v1/Google.Apis.Merchant.products_v1.csproj @@ -3,7 +3,7 @@ Google.Apis.Merchant.products_v1 Client Library - 1.73.0.4115 + 1.73.0.4122 Google LLC Copyright 2026 Google LLC Google From ae0202975825043fee8dda14fde6edc08eb13516 Mon Sep 17 00:00:00 2001 From: Amanda Tarafa Mas Date: Mon, 20 Apr 2026 08:06:23 +0000 Subject: [PATCH 28/40] feat: Generate Google.Apis.Merchant.products_v1beta version 1.73.0.4122 --- DiscoveryJson/merchantapi.products_v1beta.json | 8 ++++---- .../Google.Apis.Merchant.products_v1beta.cs | 8 ++++---- .../Google.Apis.Merchant.products_v1beta.csproj | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/DiscoveryJson/merchantapi.products_v1beta.json b/DiscoveryJson/merchantapi.products_v1beta.json index b3514aef5dc..6d7ec0218b2 100644 --- a/DiscoveryJson/merchantapi.products_v1beta.json +++ b/DiscoveryJson/merchantapi.products_v1beta.json @@ -281,7 +281,7 @@ } } }, - "revision": "20260408", + "revision": "20260415", "rootUrl": "https://merchantapi.googleapis.com/", "schemas": { "Attributes": { @@ -455,14 +455,14 @@ }, "gtin": { "deprecated": true, - "description": "Global Trade Item Numbers ([GTIN](https://support.google.com/merchants/answer/188494#gtin)) of the item. You can provide up to 10 GTINs. Deprecated: Use `gtins` instead.", + "description": "Global Trade Item Numbers ([GTIN](https://support.google.com/merchants/answer/6324461)) of the item. You can provide up to 10 GTINs. Deprecated: Use `gtins` instead.", "items": { "type": "string" }, "type": "array" }, "gtins": { - "description": "A list of Global Trade Item Numbers ([GTIN](https://support.google.com/merchants/answer/188494#gtin)) of the item. You can provide up to 10 GTINs.", + "description": "A list of Global Trade Item Numbers ([GTIN](https://support.google.com/merchants/answer/6324461)) of the item. You can provide up to 10 GTINs.", "items": { "type": "string" }, @@ -556,7 +556,7 @@ "type": "string" }, "mpn": { - "description": "Manufacturer Part Number ([MPN](https://support.google.com/merchants/answer/188494#mpn)) of the item.", + "description": "Manufacturer Part Number ([MPN](https://support.google.com/merchants/answer/6324482)) of the item.", "type": "string" }, "multipack": { diff --git a/Src/Generated/Google.Apis.Merchant.products_v1beta/Google.Apis.Merchant.products_v1beta.cs b/Src/Generated/Google.Apis.Merchant.products_v1beta/Google.Apis.Merchant.products_v1beta.cs index c23e4ef89fa..46e754b1885 100644 --- a/Src/Generated/Google.Apis.Merchant.products_v1beta/Google.Apis.Merchant.products_v1beta.cs +++ b/Src/Generated/Google.Apis.Merchant.products_v1beta/Google.Apis.Merchant.products_v1beta.cs @@ -1149,14 +1149,14 @@ public virtual System.DateTimeOffset? ExpirationDateDateTimeOffset public virtual string GoogleProductCategory { get; set; } /// - /// Global Trade Item Numbers ([GTIN](https://support.google.com/merchants/answer/188494#gtin)) of the item. You - /// can provide up to 10 GTINs. Deprecated: Use `gtins` instead. + /// Global Trade Item Numbers ([GTIN](https://support.google.com/merchants/answer/6324461)) of the item. You can + /// provide up to 10 GTINs. Deprecated: Use `gtins` instead. /// [Newtonsoft.Json.JsonPropertyAttribute("gtin")] public virtual System.Collections.Generic.IList Gtin { get; set; } /// - /// A list of Global Trade Item Numbers ([GTIN](https://support.google.com/merchants/answer/188494#gtin)) of the + /// A list of Global Trade Item Numbers ([GTIN](https://support.google.com/merchants/answer/6324461)) of the /// item. You can provide up to 10 GTINs. /// [Newtonsoft.Json.JsonPropertyAttribute("gtins")] @@ -1268,7 +1268,7 @@ public virtual System.DateTimeOffset? ExpirationDateDateTimeOffset public virtual string MobileLinkTemplate { get; set; } /// - /// Manufacturer Part Number ([MPN](https://support.google.com/merchants/answer/188494#mpn)) of the item. + /// Manufacturer Part Number ([MPN](https://support.google.com/merchants/answer/6324482)) of the item. /// [Newtonsoft.Json.JsonPropertyAttribute("mpn")] public virtual string Mpn { get; set; } diff --git a/Src/Generated/Google.Apis.Merchant.products_v1beta/Google.Apis.Merchant.products_v1beta.csproj b/Src/Generated/Google.Apis.Merchant.products_v1beta/Google.Apis.Merchant.products_v1beta.csproj index 26756a37d53..a803ae91174 100644 --- a/Src/Generated/Google.Apis.Merchant.products_v1beta/Google.Apis.Merchant.products_v1beta.csproj +++ b/Src/Generated/Google.Apis.Merchant.products_v1beta/Google.Apis.Merchant.products_v1beta.csproj @@ -3,7 +3,7 @@ Google.Apis.Merchant.products_v1beta Client Library - 1.73.0.4115 + 1.73.0.4122 Google LLC Copyright 2026 Google LLC Google From e3f7a97938538589376f4cb8d0346695fd66e216 Mon Sep 17 00:00:00 2001 From: Amanda Tarafa Mas Date: Mon, 20 Apr 2026 08:06:25 +0000 Subject: [PATCH 29/40] feat: Generate Google.Apis.MyBusinessVerifications.v1 version 1.73.0.4122 --- DiscoveryJson/mybusinessverifications.v1.json | 8 +------- .../Google.Apis.MyBusinessVerifications.v1.cs | 2 +- .../Google.Apis.MyBusinessVerifications.v1.csproj | 6 +++--- 3 files changed, 5 insertions(+), 11 deletions(-) diff --git a/DiscoveryJson/mybusinessverifications.v1.json b/DiscoveryJson/mybusinessverifications.v1.json index b6c300cdfa4..9ff18f88758 100644 --- a/DiscoveryJson/mybusinessverifications.v1.json +++ b/DiscoveryJson/mybusinessverifications.v1.json @@ -256,7 +256,7 @@ } } }, - "revision": "20250804", + "revision": "20260415", "rootUrl": "https://mybusinessverifications.googleapis.com/", "schemas": { "AddressVerificationData": { @@ -541,7 +541,6 @@ "PHONE_CALL", "SMS", "AUTO", - "VETTED_PARTNER", "TRUSTED_PARTNER" ], "enumDescriptions": [ @@ -551,7 +550,6 @@ "Make a phone call with a verification PIN to a specific phone number. The PIN is used to complete verification with Google.", "Send an SMS with a verification PIN to a specific phone number. The PIN is used to complete verification with Google.", "Verify the location without additional user action. This option may not be available for all locations.", - "This option may not be available for all locations.", "Verify the location via a trusted partner." ], "type": "string" @@ -608,7 +606,6 @@ "PHONE_CALL", "SMS", "AUTO", - "VETTED_PARTNER", "TRUSTED_PARTNER" ], "enumDescriptions": [ @@ -618,7 +615,6 @@ "Make a phone call with a verification PIN to a specific phone number. The PIN is used to complete verification with Google.", "Send an SMS with a verification PIN to a specific phone number. The PIN is used to complete verification with Google.", "Verify the location without additional user action. This option may not be available for all locations.", - "This option may not be available for all locations.", "Verify the location via a trusted partner." ], "type": "string" @@ -677,7 +673,6 @@ "PHONE_CALL", "SMS", "AUTO", - "VETTED_PARTNER", "TRUSTED_PARTNER" ], "enumDescriptions": [ @@ -687,7 +682,6 @@ "Make a phone call with a verification PIN to a specific phone number. The PIN is used to complete verification with Google.", "Send an SMS with a verification PIN to a specific phone number. The PIN is used to complete verification with Google.", "Verify the location without additional user action. This option may not be available for all locations.", - "This option may not be available for all locations.", "Verify the location via a trusted partner." ], "type": "string" diff --git a/Src/Generated/Google.Apis.MyBusinessVerifications.v1/Google.Apis.MyBusinessVerifications.v1.cs b/Src/Generated/Google.Apis.MyBusinessVerifications.v1/Google.Apis.MyBusinessVerifications.v1.cs index 4929c797534..5dd2d4f1c14 100644 --- a/Src/Generated/Google.Apis.MyBusinessVerifications.v1/Google.Apis.MyBusinessVerifications.v1.cs +++ b/Src/Generated/Google.Apis.MyBusinessVerifications.v1/Google.Apis.MyBusinessVerifications.v1.cs @@ -1,4 +1,4 @@ -// Copyright 2025 Google LLC +// Copyright 2026 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/Src/Generated/Google.Apis.MyBusinessVerifications.v1/Google.Apis.MyBusinessVerifications.v1.csproj b/Src/Generated/Google.Apis.MyBusinessVerifications.v1/Google.Apis.MyBusinessVerifications.v1.csproj index 4d662069f2f..adefbc1caf5 100644 --- a/Src/Generated/Google.Apis.MyBusinessVerifications.v1/Google.Apis.MyBusinessVerifications.v1.csproj +++ b/Src/Generated/Google.Apis.MyBusinessVerifications.v1/Google.Apis.MyBusinessVerifications.v1.csproj @@ -3,9 +3,9 @@ Google.Apis.MyBusinessVerifications.v1 Client Library - 1.70.0.3868 + 1.73.0.4122 Google LLC - Copyright 2025 Google LLC + Copyright 2026 Google LLC Google https://github.com/google/google-api-dotnet-client Apache-2.0 @@ -59,7 +59,7 @@ - + From 1c4a2871eea21ea5d1717601ac1237be91ee302c Mon Sep 17 00:00:00 2001 From: Amanda Tarafa Mas Date: Mon, 20 Apr 2026 08:06:27 +0000 Subject: [PATCH 30/40] feat: Generate Google.Apis.NetworkManagement.v1 version 1.73.0.4121 --- DiscoveryJson/networkmanagement.v1.json | 8 ++++---- .../Google.Apis.NetworkManagement.v1.cs | 19 ++++++++++--------- .../Google.Apis.NetworkManagement.v1.csproj | 2 +- 3 files changed, 15 insertions(+), 14 deletions(-) diff --git a/DiscoveryJson/networkmanagement.v1.json b/DiscoveryJson/networkmanagement.v1.json index cf3f24a6c65..f432d739394 100644 --- a/DiscoveryJson/networkmanagement.v1.json +++ b/DiscoveryJson/networkmanagement.v1.json @@ -135,7 +135,7 @@ ] }, "list": { - "description": "Lists information about the supported locations for this service. This method lists locations based on the resource scope provided in the [ListLocationsRequest.name] field: * **Global locations**: If `name` is empty, the method lists the public locations available to all projects. * **Project-specific locations**: If `name` follows the format `projects/{project}`, the method lists locations visible to that specific project. This includes public, private, or other project-specific locations enabled for the project. For gRPC and client library implementations, the resource name is passed as the `name` field. For direct service calls, the resource name is incorporated into the request path based on the specific service implementation and version.", + "description": "Lists information about the supported locations for this service. This method lists locations based on the resource scope provided in the ListLocationsRequest.name field: * **Global locations**: If `name` is empty, the method lists the public locations available to all projects. * **Project-specific locations**: If `name` follows the format `projects/{project}`, the method lists locations visible to that specific project. This includes public, private, or other project-specific locations enabled for the project. For gRPC and client library implementations, the resource name is passed as the `name` field. For direct service calls, the resource name is incorporated into the request path based on the specific service implementation and version.", "flatPath": "v1/organizations/{organizationsId}/locations", "httpMethod": "GET", "id": "networkmanagement.organizations.locations.list", @@ -516,7 +516,7 @@ ] }, "list": { - "description": "Lists information about the supported locations for this service. This method lists locations based on the resource scope provided in the [ListLocationsRequest.name] field: * **Global locations**: If `name` is empty, the method lists the public locations available to all projects. * **Project-specific locations**: If `name` follows the format `projects/{project}`, the method lists locations visible to that specific project. This includes public, private, or other project-specific locations enabled for the project. For gRPC and client library implementations, the resource name is passed as the `name` field. For direct service calls, the resource name is incorporated into the request path based on the specific service implementation and version.", + "description": "Lists information about the supported locations for this service. This method lists locations based on the resource scope provided in the ListLocationsRequest.name field: * **Global locations**: If `name` is empty, the method lists the public locations available to all projects. * **Project-specific locations**: If `name` follows the format `projects/{project}`, the method lists locations visible to that specific project. This includes public, private, or other project-specific locations enabled for the project. For gRPC and client library implementations, the resource name is passed as the `name` field. For direct service calls, the resource name is incorporated into the request path based on the specific service implementation and version.", "flatPath": "v1/projects/{projectsId}/locations", "httpMethod": "GET", "id": "networkmanagement.projects.locations.list", @@ -1237,7 +1237,7 @@ } } }, - "revision": "20260327", + "revision": "20260414", "rootUrl": "https://networkmanagement.googleapis.com/", "schemas": { "AbortInfo": { @@ -3883,7 +3883,7 @@ "type": "array" }, "region": { - "description": "Region of the route. DYNAMIC, PEERING_DYNAMIC, POLICY_BASED and ADVERTISED routes only. If set for POLICY_BASED route, this is a region of VLAN attachments for Cloud Interconnect the route applies to.", + "description": "Region of the route. DYNAMIC, PEERING_DYNAMIC, POLICY_BASED and ADVERTISED routes only. If set for POLICY_BASED route, this is a region of VLAN attachments for Cloud Interconnect the route applies to. If set to \"all\" for POLICY_BASED route, the route applies to VLAN attachments of Cloud Interconnect in all regions.", "type": "string" }, "routeScope": { diff --git a/Src/Generated/Google.Apis.NetworkManagement.v1/Google.Apis.NetworkManagement.v1.cs b/Src/Generated/Google.Apis.NetworkManagement.v1/Google.Apis.NetworkManagement.v1.cs index 9ab76ef92ba..e83edeef845 100644 --- a/Src/Generated/Google.Apis.NetworkManagement.v1/Google.Apis.NetworkManagement.v1.cs +++ b/Src/Generated/Google.Apis.NetworkManagement.v1/Google.Apis.NetworkManagement.v1.cs @@ -1083,8 +1083,8 @@ protected override void InitParameters() /// /// Lists information about the supported locations for this service. This method lists locations based on - /// the resource scope provided in the [ListLocationsRequest.name] field: * **Global locations**: If `name` - /// is empty, the method lists the public locations available to all projects. * **Project-specific + /// the resource scope provided in the ListLocationsRequest.name field: * **Global locations**: If `name` is + /// empty, the method lists the public locations available to all projects. * **Project-specific /// locations**: If `name` follows the format `projects/{project}`, the method lists locations visible to /// that specific project. This includes public, private, or other project-specific locations enabled for /// the project. For gRPC and client library implementations, the resource name is passed as the `name` @@ -1099,8 +1099,8 @@ public virtual ListRequest List(string name) /// /// Lists information about the supported locations for this service. This method lists locations based on - /// the resource scope provided in the [ListLocationsRequest.name] field: * **Global locations**: If `name` - /// is empty, the method lists the public locations available to all projects. * **Project-specific + /// the resource scope provided in the ListLocationsRequest.name field: * **Global locations**: If `name` is + /// empty, the method lists the public locations available to all projects. * **Project-specific /// locations**: If `name` follows the format `projects/{project}`, the method lists locations visible to /// that specific project. This includes public, private, or other project-specific locations enabled for /// the project. For gRPC and client library implementations, the resource name is passed as the `name` @@ -2941,8 +2941,8 @@ protected override void InitParameters() /// /// Lists information about the supported locations for this service. This method lists locations based on - /// the resource scope provided in the [ListLocationsRequest.name] field: * **Global locations**: If `name` - /// is empty, the method lists the public locations available to all projects. * **Project-specific + /// the resource scope provided in the ListLocationsRequest.name field: * **Global locations**: If `name` is + /// empty, the method lists the public locations available to all projects. * **Project-specific /// locations**: If `name` follows the format `projects/{project}`, the method lists locations visible to /// that specific project. This includes public, private, or other project-specific locations enabled for /// the project. For gRPC and client library implementations, the resource name is passed as the `name` @@ -2957,8 +2957,8 @@ public virtual ListRequest List(string name) /// /// Lists information about the supported locations for this service. This method lists locations based on - /// the resource scope provided in the [ListLocationsRequest.name] field: * **Global locations**: If `name` - /// is empty, the method lists the public locations available to all projects. * **Project-specific + /// the resource scope provided in the ListLocationsRequest.name field: * **Global locations**: If `name` is + /// empty, the method lists the public locations available to all projects. * **Project-specific /// locations**: If `name` follows the format `projects/{project}`, the method lists locations visible to /// that specific project. This includes public, private, or other project-specific locations enabled for /// the project. For gRPC and client library implementations, the resource name is passed as the `name` @@ -5310,7 +5310,8 @@ public class RouteInfo : Google.Apis.Requests.IDirectResponseSchema /// /// Region of the route. DYNAMIC, PEERING_DYNAMIC, POLICY_BASED and ADVERTISED routes only. If set for - /// POLICY_BASED route, this is a region of VLAN attachments for Cloud Interconnect the route applies to. + /// POLICY_BASED route, this is a region of VLAN attachments for Cloud Interconnect the route applies to. If set + /// to "all" for POLICY_BASED route, the route applies to VLAN attachments of Cloud Interconnect in all regions. /// [Newtonsoft.Json.JsonPropertyAttribute("region")] public virtual string Region { get; set; } diff --git a/Src/Generated/Google.Apis.NetworkManagement.v1/Google.Apis.NetworkManagement.v1.csproj b/Src/Generated/Google.Apis.NetworkManagement.v1/Google.Apis.NetworkManagement.v1.csproj index 14fc81ee8cf..67be8b43579 100644 --- a/Src/Generated/Google.Apis.NetworkManagement.v1/Google.Apis.NetworkManagement.v1.csproj +++ b/Src/Generated/Google.Apis.NetworkManagement.v1/Google.Apis.NetworkManagement.v1.csproj @@ -3,7 +3,7 @@ Google.Apis.NetworkManagement.v1 Client Library - 1.73.0.4103 + 1.73.0.4121 Google LLC Copyright 2026 Google LLC Google From 49b768e7a59478336c9ee8f27b8060db47f196c1 Mon Sep 17 00:00:00 2001 From: Amanda Tarafa Mas Date: Mon, 20 Apr 2026 08:06:30 +0000 Subject: [PATCH 31/40] feat: Generate Google.Apis.NetworkManagement.v1beta1 version 1.73.0.4121 --- DiscoveryJson/networkmanagement.v1beta1.json | 16 ++++++--- .../Google.Apis.NetworkManagement.v1beta1.cs | 35 ++++++++++++++----- ...ogle.Apis.NetworkManagement.v1beta1.csproj | 2 +- 3 files changed, 39 insertions(+), 14 deletions(-) diff --git a/DiscoveryJson/networkmanagement.v1beta1.json b/DiscoveryJson/networkmanagement.v1beta1.json index 2e98695fa37..dce25ce363c 100644 --- a/DiscoveryJson/networkmanagement.v1beta1.json +++ b/DiscoveryJson/networkmanagement.v1beta1.json @@ -135,7 +135,7 @@ ] }, "list": { - "description": "Lists information about the supported locations for this service. This method lists locations based on the resource scope provided in the [ListLocationsRequest.name] field: * **Global locations**: If `name` is empty, the method lists the public locations available to all projects. * **Project-specific locations**: If `name` follows the format `projects/{project}`, the method lists locations visible to that specific project. This includes public, private, or other project-specific locations enabled for the project. For gRPC and client library implementations, the resource name is passed as the `name` field. For direct service calls, the resource name is incorporated into the request path based on the specific service implementation and version.", + "description": "Lists information about the supported locations for this service. This method lists locations based on the resource scope provided in the ListLocationsRequest.name field: * **Global locations**: If `name` is empty, the method lists the public locations available to all projects. * **Project-specific locations**: If `name` follows the format `projects/{project}`, the method lists locations visible to that specific project. This includes public, private, or other project-specific locations enabled for the project. For gRPC and client library implementations, the resource name is passed as the `name` field. For direct service calls, the resource name is incorporated into the request path based on the specific service implementation and version.", "flatPath": "v1beta1/organizations/{organizationsId}/locations", "httpMethod": "GET", "id": "networkmanagement.organizations.locations.list", @@ -516,7 +516,7 @@ ] }, "list": { - "description": "Lists information about the supported locations for this service. This method lists locations based on the resource scope provided in the [ListLocationsRequest.name] field: * **Global locations**: If `name` is empty, the method lists the public locations available to all projects. * **Project-specific locations**: If `name` follows the format `projects/{project}`, the method lists locations visible to that specific project. This includes public, private, or other project-specific locations enabled for the project. For gRPC and client library implementations, the resource name is passed as the `name` field. For direct service calls, the resource name is incorporated into the request path based on the specific service implementation and version.", + "description": "Lists information about the supported locations for this service. This method lists locations based on the resource scope provided in the ListLocationsRequest.name field: * **Global locations**: If `name` is empty, the method lists the public locations available to all projects. * **Project-specific locations**: If `name` follows the format `projects/{project}`, the method lists locations visible to that specific project. This includes public, private, or other project-specific locations enabled for the project. For gRPC and client library implementations, the resource name is passed as the `name` field. For direct service calls, the resource name is incorporated into the request path based on the specific service implementation and version.", "flatPath": "v1beta1/projects/{projectsId}/locations", "httpMethod": "GET", "id": "networkmanagement.projects.locations.list", @@ -1237,7 +1237,7 @@ } } }, - "revision": "20260327", + "revision": "20260414", "rootUrl": "https://networkmanagement.googleapis.com/", "schemas": { "AbortInfo": { @@ -2233,6 +2233,14 @@ "description": "A [Cloud SQL](https://cloud.google.com/sql) instance URI.", "type": "string" }, + "datastreamPrivateConnection": { + "description": "A [Datastream Private Connection](https://docs.cloud.google.com/datastream/docs/reference/rest/v1/projects.locations.privateConnections) name format: projects/{project}/locations/{location}/privateConnections/{privateConnection}.", + "type": "string" + }, + "dmsPrivateConnection": { + "description": "A [DMS Private Connection](https://docs.cloud.google.com/database-migration/docs/reference/rest/v1/projects.locations.privateConnections) name format: projects/{project}/locations/{location}/privateConnections/{privateConnection}.", + "type": "string" + }, "forwardingRule": { "description": "A forwarding rule and its corresponding IP address represent the frontend configuration of a Google Cloud load balancer. Forwarding rules are also used for protocol forwarding, Private Service Connect and other network services to provide forwarding information in the control plane. Applicable only to destination endpoint. Format: `projects/{project}/global/forwardingRules/{id}` or `projects/{project}/regions/{region}/forwardingRules/{id}`", "type": "string" @@ -3883,7 +3891,7 @@ "type": "array" }, "region": { - "description": "Region of the route. DYNAMIC, PEERING_DYNAMIC, POLICY_BASED and ADVERTISED routes only. If set for POLICY_BASED route, this is a region of VLAN attachments for Cloud Interconnect the route applies to.", + "description": "Region of the route. DYNAMIC, PEERING_DYNAMIC, POLICY_BASED and ADVERTISED routes only. If set for POLICY_BASED route, this is a region of VLAN attachments for Cloud Interconnect the route applies to. If set to \"all\" for POLICY_BASED route, the route applies to VLAN attachments of Cloud Interconnect in all regions.", "type": "string" }, "routeScope": { diff --git a/Src/Generated/Google.Apis.NetworkManagement.v1beta1/Google.Apis.NetworkManagement.v1beta1.cs b/Src/Generated/Google.Apis.NetworkManagement.v1beta1/Google.Apis.NetworkManagement.v1beta1.cs index 6dfd1ce88c0..272198f4c3b 100644 --- a/Src/Generated/Google.Apis.NetworkManagement.v1beta1/Google.Apis.NetworkManagement.v1beta1.cs +++ b/Src/Generated/Google.Apis.NetworkManagement.v1beta1/Google.Apis.NetworkManagement.v1beta1.cs @@ -1083,8 +1083,8 @@ protected override void InitParameters() /// /// Lists information about the supported locations for this service. This method lists locations based on - /// the resource scope provided in the [ListLocationsRequest.name] field: * **Global locations**: If `name` - /// is empty, the method lists the public locations available to all projects. * **Project-specific + /// the resource scope provided in the ListLocationsRequest.name field: * **Global locations**: If `name` is + /// empty, the method lists the public locations available to all projects. * **Project-specific /// locations**: If `name` follows the format `projects/{project}`, the method lists locations visible to /// that specific project. This includes public, private, or other project-specific locations enabled for /// the project. For gRPC and client library implementations, the resource name is passed as the `name` @@ -1099,8 +1099,8 @@ public virtual ListRequest List(string name) /// /// Lists information about the supported locations for this service. This method lists locations based on - /// the resource scope provided in the [ListLocationsRequest.name] field: * **Global locations**: If `name` - /// is empty, the method lists the public locations available to all projects. * **Project-specific + /// the resource scope provided in the ListLocationsRequest.name field: * **Global locations**: If `name` is + /// empty, the method lists the public locations available to all projects. * **Project-specific /// locations**: If `name` follows the format `projects/{project}`, the method lists locations visible to /// that specific project. This includes public, private, or other project-specific locations enabled for /// the project. For gRPC and client library implementations, the resource name is passed as the `name` @@ -2941,8 +2941,8 @@ protected override void InitParameters() /// /// Lists information about the supported locations for this service. This method lists locations based on - /// the resource scope provided in the [ListLocationsRequest.name] field: * **Global locations**: If `name` - /// is empty, the method lists the public locations available to all projects. * **Project-specific + /// the resource scope provided in the ListLocationsRequest.name field: * **Global locations**: If `name` is + /// empty, the method lists the public locations available to all projects. * **Project-specific /// locations**: If `name` follows the format `projects/{project}`, the method lists locations visible to /// that specific project. This includes public, private, or other project-specific locations enabled for /// the project. For gRPC and client library implementations, the resource name is passed as the `name` @@ -2957,8 +2957,8 @@ public virtual ListRequest List(string name) /// /// Lists information about the supported locations for this service. This method lists locations based on - /// the resource scope provided in the [ListLocationsRequest.name] field: * **Global locations**: If `name` - /// is empty, the method lists the public locations available to all projects. * **Project-specific + /// the resource scope provided in the ListLocationsRequest.name field: * **Global locations**: If `name` is + /// empty, the method lists the public locations available to all projects. * **Project-specific /// locations**: If `name` follows the format `projects/{project}`, the method lists locations visible to /// that specific project. This includes public, private, or other project-specific locations enabled for /// the project. For gRPC and client library implementations, the resource name is passed as the `name` @@ -3771,6 +3771,22 @@ public class Endpoint : Google.Apis.Requests.IDirectResponseSchema [Newtonsoft.Json.JsonPropertyAttribute("cloudSqlInstance")] public virtual string CloudSqlInstance { get; set; } + /// + /// A [Datastream Private + /// Connection](https://docs.cloud.google.com/datastream/docs/reference/rest/v1/projects.locations.privateConnections) + /// name format: projects/{project}/locations/{location}/privateConnections/{privateConnection}. + /// + [Newtonsoft.Json.JsonPropertyAttribute("datastreamPrivateConnection")] + public virtual string DatastreamPrivateConnection { get; set; } + + /// + /// A [DMS Private + /// Connection](https://docs.cloud.google.com/database-migration/docs/reference/rest/v1/projects.locations.privateConnections) + /// name format: projects/{project}/locations/{location}/privateConnections/{privateConnection}. + /// + [Newtonsoft.Json.JsonPropertyAttribute("dmsPrivateConnection")] + public virtual string DmsPrivateConnection { get; set; } + /// /// A forwarding rule and its corresponding IP address represent the frontend configuration of a Google Cloud /// load balancer. Forwarding rules are also used for protocol forwarding, Private Service Connect and other @@ -5310,7 +5326,8 @@ public class RouteInfo : Google.Apis.Requests.IDirectResponseSchema /// /// Region of the route. DYNAMIC, PEERING_DYNAMIC, POLICY_BASED and ADVERTISED routes only. If set for - /// POLICY_BASED route, this is a region of VLAN attachments for Cloud Interconnect the route applies to. + /// POLICY_BASED route, this is a region of VLAN attachments for Cloud Interconnect the route applies to. If set + /// to "all" for POLICY_BASED route, the route applies to VLAN attachments of Cloud Interconnect in all regions. /// [Newtonsoft.Json.JsonPropertyAttribute("region")] public virtual string Region { get; set; } diff --git a/Src/Generated/Google.Apis.NetworkManagement.v1beta1/Google.Apis.NetworkManagement.v1beta1.csproj b/Src/Generated/Google.Apis.NetworkManagement.v1beta1/Google.Apis.NetworkManagement.v1beta1.csproj index 2cbce2cdeae..4a0d247b497 100644 --- a/Src/Generated/Google.Apis.NetworkManagement.v1beta1/Google.Apis.NetworkManagement.v1beta1.csproj +++ b/Src/Generated/Google.Apis.NetworkManagement.v1beta1/Google.Apis.NetworkManagement.v1beta1.csproj @@ -3,7 +3,7 @@ Google.Apis.NetworkManagement.v1beta1 Client Library - 1.73.0.4103 + 1.73.0.4121 Google LLC Copyright 2026 Google LLC Google From 9ce62848402450fabb0988f911ad8ae03f4fcfd3 Mon Sep 17 00:00:00 2001 From: Amanda Tarafa Mas Date: Mon, 20 Apr 2026 08:06:32 +0000 Subject: [PATCH 32/40] feat: Generate Google.Apis.CloudObservability.v1 version 1.73.0.4116 --- DiscoveryJson/observability.v1.json | 132 +++++++++++++++++- .../Google.Apis.CloudObservability.v1.csproj | 2 +- 2 files changed, 132 insertions(+), 2 deletions(-) diff --git a/DiscoveryJson/observability.v1.json b/DiscoveryJson/observability.v1.json index 1d63a3d87bb..c711d2a1989 100644 --- a/DiscoveryJson/observability.v1.json +++ b/DiscoveryJson/observability.v1.json @@ -16,11 +16,141 @@ "discoveryVersion": "v1", "documentationLink": "https://cloud.google.com/stackdriver/docs/", "endpoints": [ + { + "description": "Regional Endpoint", + "endpointUrl": "https://observability.africa-south1.rep.googleapis.com/", + "location": "africa-south1" + }, + { + "description": "Regional Endpoint", + "endpointUrl": "https://observability.asia-east1.rep.googleapis.com/", + "location": "asia-east1" + }, + { + "description": "Regional Endpoint", + "endpointUrl": "https://observability.asia-east2.rep.googleapis.com/", + "location": "asia-east2" + }, + { + "description": "Regional Endpoint", + "endpointUrl": "https://observability.asia-northeast2.rep.googleapis.com/", + "location": "asia-northeast2" + }, + { + "description": "Regional Endpoint", + "endpointUrl": "https://observability.asia-northeast3.rep.googleapis.com/", + "location": "asia-northeast3" + }, + { + "description": "Regional Endpoint", + "endpointUrl": "https://observability.asia-south1.rep.googleapis.com/", + "location": "asia-south1" + }, + { + "description": "Regional Endpoint", + "endpointUrl": "https://observability.asia-south2.rep.googleapis.com/", + "location": "asia-south2" + }, + { + "description": "Regional Endpoint", + "endpointUrl": "https://observability.asia-southeast2.rep.googleapis.com/", + "location": "asia-southeast2" + }, + { + "description": "Regional Endpoint", + "endpointUrl": "https://observability.asia-southeast3.rep.googleapis.com/", + "location": "asia-southeast3" + }, + { + "description": "Regional Endpoint", + "endpointUrl": "https://observability.australia-southeast2.rep.googleapis.com/", + "location": "australia-southeast2" + }, + { + "description": "Regional Endpoint", + "endpointUrl": "https://observability.europe-north2.rep.googleapis.com/", + "location": "europe-north2" + }, + { + "description": "Regional Endpoint", + "endpointUrl": "https://observability.europe-west1.rep.googleapis.com/", + "location": "europe-west1" + }, + { + "description": "Regional Endpoint", + "endpointUrl": "https://observability.europe-west3.rep.googleapis.com/", + "location": "europe-west3" + }, + { + "description": "Regional Endpoint", + "endpointUrl": "https://observability.europe-west4.rep.googleapis.com/", + "location": "europe-west4" + }, + { + "description": "Regional Endpoint", + "endpointUrl": "https://observability.europe-west6.rep.googleapis.com/", + "location": "europe-west6" + }, + { + "description": "Regional Endpoint", + "endpointUrl": "https://observability.europe-west8.rep.googleapis.com/", + "location": "europe-west8" + }, + { + "description": "Regional Endpoint", + "endpointUrl": "https://observability.me-central1.rep.googleapis.com/", + "location": "me-central1" + }, + { + "description": "Regional Endpoint", + "endpointUrl": "https://observability.northamerica-northeast2.rep.googleapis.com/", + "location": "northamerica-northeast2" + }, + { + "description": "Regional Endpoint", + "endpointUrl": "https://observability.northamerica-south1.rep.googleapis.com/", + "location": "northamerica-south1" + }, + { + "description": "Regional Endpoint", + "endpointUrl": "https://observability.southamerica-west1.rep.googleapis.com/", + "location": "southamerica-west1" + }, { "description": "Regional Endpoint", "endpointUrl": "https://observability.us-central1.rep.googleapis.com/", "location": "us-central1" }, + { + "description": "Regional Endpoint", + "endpointUrl": "https://observability.us-east1.rep.googleapis.com/", + "location": "us-east1" + }, + { + "description": "Regional Endpoint", + "endpointUrl": "https://observability.us-east5.rep.googleapis.com/", + "location": "us-east5" + }, + { + "description": "Regional Endpoint", + "endpointUrl": "https://observability.us-south1.rep.googleapis.com/", + "location": "us-south1" + }, + { + "description": "Regional Endpoint", + "endpointUrl": "https://observability.us-west1.rep.googleapis.com/", + "location": "us-west1" + }, + { + "description": "Regional Endpoint", + "endpointUrl": "https://observability.us-west2.rep.googleapis.com/", + "location": "us-west2" + }, + { + "description": "Regional Endpoint", + "endpointUrl": "https://observability.us-west3.rep.googleapis.com/", + "location": "us-west3" + }, { "description": "Regional Endpoint", "endpointUrl": "https://observability.us.rep.googleapis.com/", @@ -1516,7 +1646,7 @@ } } }, - "revision": "20260319", + "revision": "20260409", "rootUrl": "https://observability.googleapis.com/", "schemas": { "Bucket": { diff --git a/Src/Generated/Google.Apis.CloudObservability.v1/Google.Apis.CloudObservability.v1.csproj b/Src/Generated/Google.Apis.CloudObservability.v1/Google.Apis.CloudObservability.v1.csproj index b9c75e9b4c1..4f493a69a18 100644 --- a/Src/Generated/Google.Apis.CloudObservability.v1/Google.Apis.CloudObservability.v1.csproj +++ b/Src/Generated/Google.Apis.CloudObservability.v1/Google.Apis.CloudObservability.v1.csproj @@ -3,7 +3,7 @@ Google.Apis.CloudObservability.v1 Client Library - 1.73.0.4095 + 1.73.0.4116 Google LLC Copyright 2026 Google LLC Google From 97a4e8448d1433e3a5fe20606149ae32eca4ade3 Mon Sep 17 00:00:00 2001 From: Amanda Tarafa Mas Date: Mon, 20 Apr 2026 08:06:34 +0000 Subject: [PATCH 33/40] feat: Generate Google.Apis.OracleDatabase.v1 version 1.73.0.4122 --- DiscoveryJson/oracledatabase.v1.json | 4 ++-- .../Google.Apis.OracleDatabase.v1.cs | 8 ++++---- .../Google.Apis.OracleDatabase.v1.csproj | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/DiscoveryJson/oracledatabase.v1.json b/DiscoveryJson/oracledatabase.v1.json index 70837d679dc..15c30c2b4ee 100644 --- a/DiscoveryJson/oracledatabase.v1.json +++ b/DiscoveryJson/oracledatabase.v1.json @@ -167,7 +167,7 @@ ] }, "list": { - "description": "Lists information about the supported locations for this service. This method lists locations based on the resource scope provided in the [ListLocationsRequest.name] field: * **Global locations**: If `name` is empty, the method lists the public locations available to all projects. * **Project-specific locations**: If `name` follows the format `projects/{project}`, the method lists locations visible to that specific project. This includes public, private, or other project-specific locations enabled for the project. For gRPC and client library implementations, the resource name is passed as the `name` field. For direct service calls, the resource name is incorporated into the request path based on the specific service implementation and version.", + "description": "Lists information about the supported locations for this service. This method lists locations based on the resource scope provided in the ListLocationsRequest.name field: * **Global locations**: If `name` is empty, the method lists the public locations available to all projects. * **Project-specific locations**: If `name` follows the format `projects/{project}`, the method lists locations visible to that specific project. This includes public, private, or other project-specific locations enabled for the project. For gRPC and client library implementations, the resource name is passed as the `name` field. For direct service calls, the resource name is incorporated into the request path based on the specific service implementation and version.", "flatPath": "v1/projects/{projectsId}/locations", "httpMethod": "GET", "id": "oracledatabase.projects.locations.list", @@ -2504,7 +2504,7 @@ } } }, - "revision": "20260402", + "revision": "20260415", "rootUrl": "https://oracledatabase.googleapis.com/", "schemas": { "AllConnectionStrings": { diff --git a/Src/Generated/Google.Apis.OracleDatabase.v1/Google.Apis.OracleDatabase.v1.cs b/Src/Generated/Google.Apis.OracleDatabase.v1/Google.Apis.OracleDatabase.v1.cs index c3de896ecd0..e727464e6d8 100644 --- a/Src/Generated/Google.Apis.OracleDatabase.v1/Google.Apis.OracleDatabase.v1.cs +++ b/Src/Generated/Google.Apis.OracleDatabase.v1/Google.Apis.OracleDatabase.v1.cs @@ -5752,8 +5752,8 @@ protected override void InitParameters() /// /// Lists information about the supported locations for this service. This method lists locations based on - /// the resource scope provided in the [ListLocationsRequest.name] field: * **Global locations**: If `name` - /// is empty, the method lists the public locations available to all projects. * **Project-specific + /// the resource scope provided in the ListLocationsRequest.name field: * **Global locations**: If `name` is + /// empty, the method lists the public locations available to all projects. * **Project-specific /// locations**: If `name` follows the format `projects/{project}`, the method lists locations visible to /// that specific project. This includes public, private, or other project-specific locations enabled for /// the project. For gRPC and client library implementations, the resource name is passed as the `name` @@ -5768,8 +5768,8 @@ public virtual ListRequest List(string name) /// /// Lists information about the supported locations for this service. This method lists locations based on - /// the resource scope provided in the [ListLocationsRequest.name] field: * **Global locations**: If `name` - /// is empty, the method lists the public locations available to all projects. * **Project-specific + /// the resource scope provided in the ListLocationsRequest.name field: * **Global locations**: If `name` is + /// empty, the method lists the public locations available to all projects. * **Project-specific /// locations**: If `name` follows the format `projects/{project}`, the method lists locations visible to /// that specific project. This includes public, private, or other project-specific locations enabled for /// the project. For gRPC and client library implementations, the resource name is passed as the `name` diff --git a/Src/Generated/Google.Apis.OracleDatabase.v1/Google.Apis.OracleDatabase.v1.csproj b/Src/Generated/Google.Apis.OracleDatabase.v1/Google.Apis.OracleDatabase.v1.csproj index 2a731fa7e28..f9bcfb92963 100644 --- a/Src/Generated/Google.Apis.OracleDatabase.v1/Google.Apis.OracleDatabase.v1.csproj +++ b/Src/Generated/Google.Apis.OracleDatabase.v1/Google.Apis.OracleDatabase.v1.csproj @@ -3,7 +3,7 @@ Google.Apis.OracleDatabase.v1 Client Library - 1.73.0.4109 + 1.73.0.4122 Google LLC Copyright 2026 Google LLC Google From 63303b976605c33f1ad0cb92a22e628ff32a64a5 Mon Sep 17 00:00:00 2001 From: Amanda Tarafa Mas Date: Mon, 20 Apr 2026 08:06:37 +0000 Subject: [PATCH 34/40] feat: Generate Google.Apis.SaaSServiceManagement.v1 version 1.73.0.4122 --- DiscoveryJson/saasservicemgmt.v1.json | 4 ++-- .../Google.Apis.SaaSServiceManagement.v1.cs | 8 ++++---- .../Google.Apis.SaaSServiceManagement.v1.csproj | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/DiscoveryJson/saasservicemgmt.v1.json b/DiscoveryJson/saasservicemgmt.v1.json index b29f9f5b6cc..cf5d6624b55 100644 --- a/DiscoveryJson/saasservicemgmt.v1.json +++ b/DiscoveryJson/saasservicemgmt.v1.json @@ -135,7 +135,7 @@ ] }, "list": { - "description": "Lists information about the supported locations for this service. This method lists locations based on the resource scope provided in the [ListLocationsRequest.name] field: * **Global locations**: If `name` is empty, the method lists the public locations available to all projects. * **Project-specific locations**: If `name` follows the format `projects/{project}`, the method lists locations visible to that specific project. This includes public, private, or other project-specific locations enabled for the project. For gRPC and client library implementations, the resource name is passed as the `name` field. For direct service calls, the resource name is incorporated into the request path based on the specific service implementation and version.", + "description": "Lists information about the supported locations for this service. This method lists locations based on the resource scope provided in the ListLocationsRequest.name field: * **Global locations**: If `name` is empty, the method lists the public locations available to all projects. * **Project-specific locations**: If `name` follows the format `projects/{project}`, the method lists locations visible to that specific project. This includes public, private, or other project-specific locations enabled for the project. For gRPC and client library implementations, the resource name is passed as the `name` field. For direct service calls, the resource name is incorporated into the request path based on the specific service implementation and version.", "flatPath": "v1/projects/{projectsId}/locations", "httpMethod": "GET", "id": "saasservicemgmt.projects.locations.list", @@ -1804,7 +1804,7 @@ } } }, - "revision": "20260407", + "revision": "20260415", "rootUrl": "https://saasservicemgmt.googleapis.com/", "schemas": { "Aggregate": { diff --git a/Src/Generated/Google.Apis.SaaSServiceManagement.v1/Google.Apis.SaaSServiceManagement.v1.cs b/Src/Generated/Google.Apis.SaaSServiceManagement.v1/Google.Apis.SaaSServiceManagement.v1.cs index a9c00811f1d..6dd4330aeb5 100644 --- a/Src/Generated/Google.Apis.SaaSServiceManagement.v1/Google.Apis.SaaSServiceManagement.v1.cs +++ b/Src/Generated/Google.Apis.SaaSServiceManagement.v1/Google.Apis.SaaSServiceManagement.v1.cs @@ -4117,8 +4117,8 @@ protected override void InitParameters() /// /// Lists information about the supported locations for this service. This method lists locations based on - /// the resource scope provided in the [ListLocationsRequest.name] field: * **Global locations**: If `name` - /// is empty, the method lists the public locations available to all projects. * **Project-specific + /// the resource scope provided in the ListLocationsRequest.name field: * **Global locations**: If `name` is + /// empty, the method lists the public locations available to all projects. * **Project-specific /// locations**: If `name` follows the format `projects/{project}`, the method lists locations visible to /// that specific project. This includes public, private, or other project-specific locations enabled for /// the project. For gRPC and client library implementations, the resource name is passed as the `name` @@ -4133,8 +4133,8 @@ public virtual ListRequest List(string name) /// /// Lists information about the supported locations for this service. This method lists locations based on - /// the resource scope provided in the [ListLocationsRequest.name] field: * **Global locations**: If `name` - /// is empty, the method lists the public locations available to all projects. * **Project-specific + /// the resource scope provided in the ListLocationsRequest.name field: * **Global locations**: If `name` is + /// empty, the method lists the public locations available to all projects. * **Project-specific /// locations**: If `name` follows the format `projects/{project}`, the method lists locations visible to /// that specific project. This includes public, private, or other project-specific locations enabled for /// the project. For gRPC and client library implementations, the resource name is passed as the `name` diff --git a/Src/Generated/Google.Apis.SaaSServiceManagement.v1/Google.Apis.SaaSServiceManagement.v1.csproj b/Src/Generated/Google.Apis.SaaSServiceManagement.v1/Google.Apis.SaaSServiceManagement.v1.csproj index 87b6595e4ec..af9aefb15ef 100644 --- a/Src/Generated/Google.Apis.SaaSServiceManagement.v1/Google.Apis.SaaSServiceManagement.v1.csproj +++ b/Src/Generated/Google.Apis.SaaSServiceManagement.v1/Google.Apis.SaaSServiceManagement.v1.csproj @@ -3,7 +3,7 @@ Google.Apis.SaaSServiceManagement.v1 Client Library - 1.73.0.4114 + 1.73.0.4122 Google LLC Copyright 2026 Google LLC Google From 0b0d902c5380a32da259b1823b4223519d019271 Mon Sep 17 00:00:00 2001 From: Amanda Tarafa Mas Date: Mon, 20 Apr 2026 08:06:39 +0000 Subject: [PATCH 35/40] feat: Generate Google.Apis.SaaSServiceManagement.v1beta1 version 1.73.0.4122 --- DiscoveryJson/saasservicemgmt.v1beta1.json | 4 ++-- .../Google.Apis.SaaSServiceManagement.v1beta1.cs | 8 ++++---- .../Google.Apis.SaaSServiceManagement.v1beta1.csproj | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/DiscoveryJson/saasservicemgmt.v1beta1.json b/DiscoveryJson/saasservicemgmt.v1beta1.json index 347753d7c32..d467ba2d878 100644 --- a/DiscoveryJson/saasservicemgmt.v1beta1.json +++ b/DiscoveryJson/saasservicemgmt.v1beta1.json @@ -135,7 +135,7 @@ ] }, "list": { - "description": "Lists information about the supported locations for this service. This method lists locations based on the resource scope provided in the [ListLocationsRequest.name] field: * **Global locations**: If `name` is empty, the method lists the public locations available to all projects. * **Project-specific locations**: If `name` follows the format `projects/{project}`, the method lists locations visible to that specific project. This includes public, private, or other project-specific locations enabled for the project. For gRPC and client library implementations, the resource name is passed as the `name` field. For direct service calls, the resource name is incorporated into the request path based on the specific service implementation and version.", + "description": "Lists information about the supported locations for this service. This method lists locations based on the resource scope provided in the ListLocationsRequest.name field: * **Global locations**: If `name` is empty, the method lists the public locations available to all projects. * **Project-specific locations**: If `name` follows the format `projects/{project}`, the method lists locations visible to that specific project. This includes public, private, or other project-specific locations enabled for the project. For gRPC and client library implementations, the resource name is passed as the `name` field. For direct service calls, the resource name is incorporated into the request path based on the specific service implementation and version.", "flatPath": "v1beta1/projects/{projectsId}/locations", "httpMethod": "GET", "id": "saasservicemgmt.projects.locations.list", @@ -2612,7 +2612,7 @@ } } }, - "revision": "20260407", + "revision": "20260415", "rootUrl": "https://saasservicemgmt.googleapis.com/", "schemas": { "Aggregate": { diff --git a/Src/Generated/Google.Apis.SaaSServiceManagement.v1beta1/Google.Apis.SaaSServiceManagement.v1beta1.cs b/Src/Generated/Google.Apis.SaaSServiceManagement.v1beta1/Google.Apis.SaaSServiceManagement.v1beta1.cs index 284fcd954d0..2587cb9390b 100644 --- a/Src/Generated/Google.Apis.SaaSServiceManagement.v1beta1/Google.Apis.SaaSServiceManagement.v1beta1.cs +++ b/Src/Generated/Google.Apis.SaaSServiceManagement.v1beta1/Google.Apis.SaaSServiceManagement.v1beta1.cs @@ -6005,8 +6005,8 @@ protected override void InitParameters() /// /// Lists information about the supported locations for this service. This method lists locations based on - /// the resource scope provided in the [ListLocationsRequest.name] field: * **Global locations**: If `name` - /// is empty, the method lists the public locations available to all projects. * **Project-specific + /// the resource scope provided in the ListLocationsRequest.name field: * **Global locations**: If `name` is + /// empty, the method lists the public locations available to all projects. * **Project-specific /// locations**: If `name` follows the format `projects/{project}`, the method lists locations visible to /// that specific project. This includes public, private, or other project-specific locations enabled for /// the project. For gRPC and client library implementations, the resource name is passed as the `name` @@ -6021,8 +6021,8 @@ public virtual ListRequest List(string name) /// /// Lists information about the supported locations for this service. This method lists locations based on - /// the resource scope provided in the [ListLocationsRequest.name] field: * **Global locations**: If `name` - /// is empty, the method lists the public locations available to all projects. * **Project-specific + /// the resource scope provided in the ListLocationsRequest.name field: * **Global locations**: If `name` is + /// empty, the method lists the public locations available to all projects. * **Project-specific /// locations**: If `name` follows the format `projects/{project}`, the method lists locations visible to /// that specific project. This includes public, private, or other project-specific locations enabled for /// the project. For gRPC and client library implementations, the resource name is passed as the `name` diff --git a/Src/Generated/Google.Apis.SaaSServiceManagement.v1beta1/Google.Apis.SaaSServiceManagement.v1beta1.csproj b/Src/Generated/Google.Apis.SaaSServiceManagement.v1beta1/Google.Apis.SaaSServiceManagement.v1beta1.csproj index adacd9f06c9..402dde56b5b 100644 --- a/Src/Generated/Google.Apis.SaaSServiceManagement.v1beta1/Google.Apis.SaaSServiceManagement.v1beta1.csproj +++ b/Src/Generated/Google.Apis.SaaSServiceManagement.v1beta1/Google.Apis.SaaSServiceManagement.v1beta1.csproj @@ -3,7 +3,7 @@ Google.Apis.SaaSServiceManagement.v1beta1 Client Library - 1.73.0.4114 + 1.73.0.4122 Google LLC Copyright 2026 Google LLC Google From 45714c57be72daa1497b9d5f3fa4657e14e369bf Mon Sep 17 00:00:00 2001 From: Amanda Tarafa Mas Date: Mon, 20 Apr 2026 08:06:41 +0000 Subject: [PATCH 36/40] feat: Generate Google.Apis.SA360.v0 version 1.73.0.4120 --- DiscoveryJson/searchads360.v0.json | 7276 ++++++++++++++++- .../Google.Apis.SA360.v0.cs | 1292 ++- .../Google.Apis.SA360.v0.csproj | 2 +- 3 files changed, 8537 insertions(+), 33 deletions(-) diff --git a/DiscoveryJson/searchads360.v0.json b/DiscoveryJson/searchads360.v0.json index 3b7ccb09c69..fd14eb6aab0 100644 --- a/DiscoveryJson/searchads360.v0.json +++ b/DiscoveryJson/searchads360.v0.json @@ -181,7 +181,7 @@ "searchAds360": { "methods": { "search": { - "description": "Returns all rows that match the search query. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QueryError]() [QuotaError]() [RequestError]()", + "description": "Returns all rows that match the search query. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [ChangeEventError]() [ChangeStatusError]() [ClickViewError]() [HeaderError]() [InternalError]() [QueryError]() [QuotaError]() [RequestError]()", "flatPath": "v0/customers/{customersId}/searchAds360:search", "httpMethod": "POST", "id": "searchads360.customers.searchAds360.search", @@ -260,7 +260,7 @@ } } }, - "revision": "20260307", + "revision": "20260413", "rootUrl": "https://searchads360.googleapis.com/", "schemas": { "GoogleAdsSearchads360V0Common__AdScheduleInfo": { @@ -449,12 +449,6 @@ "LEAD_FORM", "BUSINESS_LOGO", "DESCRIPTION_PREFIX", - "APP_ICON", - "APP_TITLE", - "APP_SCREENSHOT", - "APP_COVER_PHOTO", - "APP_SHORT_DESCRIPTION", - "APP_DEVELOPER_NAME", "HEADLINE_AS_SITELINK_POSITION_ONE", "HEADLINE_AS_SITELINK_POSITION_TWO", "DESCRIPTION_LINE_HEADLINE_AS_SITELINK_POSITION_ONE", @@ -494,12 +488,6 @@ "The asset is used as a lead form.", "The asset is used as a business logo.", "The asset is used as a description prefix.", - "The asset is used as an app icon.", - "The asset is used as an app title.", - "The asset is used as an app screenshot.", - "The asset is used as an app cover photo.", - "The asset is used as an app short description.", - "The asset is used as an app developer name.", "A headline asset used as a sitelink in position 1.", "A headline asset used as a sitelink in position 2.", "A description line asset used as a sitelink in position 1.", @@ -1812,8 +1800,7 @@ "STORE_VISIT", "STORE_SALE", "QUALIFIED_LEAD", - "CONVERTED_LEAD", - "YOUTUBE_FOLLOW_ON_VIEWS" + "CONVERTED_LEAD" ], "enumDescriptions": [ "Not specified.", @@ -1839,8 +1826,7 @@ "A visit to a physical store location.", "A sale occurring in a physical store.", "A lead conversion imported from an external source into Google Ads, that has been further qualified by the advertiser (marketing/sales team). In the lead-to-sale journey, advertisers get leads, then act on them by reaching out to the consumer. If the consumer is interested and may end up buying their product, the advertiser marks such leads as \"qualified leads\".", - "A lead conversion imported from an external source into Google Ads, that has further completed a chosen stage as defined by the lead gen advertiser.", - "User watches an ad from a channel and later watches either the same video or a video from the same channel as the ad." + "A lead conversion imported from an external source into Google Ads, that has further completed a chosen stage as defined by the lead gen advertiser." ], "type": "string" }, @@ -4198,10 +4184,7 @@ "VIDEO_RESPONSIVE_AD", "SMART_CAMPAIGN_AD", "APP_PRE_REGISTRATION_AD", - "DISCOVERY_MULTI_ASSET_AD", - "DISCOVERY_CAROUSEL_AD", "TRAVEL_AD", - "DISCOVERY_VIDEO_RESPONSIVE_AD", "MULTIMEDIA_AD" ], "enumDescriptions": [ @@ -4235,10 +4218,7 @@ "Video responsive ad.", "Smart campaign ad.", "Universal app pre-registration ad.", - "Discovery multi asset ad.", - "Discovery carousel ad.", "Travel ad.", - "Discovery video responsive ad.", "Multimedia ad." ], "readOnly": true, @@ -4414,7 +4394,6 @@ "SEARCH_STANDARD", "DISPLAY_STANDARD", "SHOPPING_PRODUCT_ADS", - "SHOPPING_SHOWCASE_ADS", "HOTEL_ADS", "SHOPPING_SMART_ADS", "VIDEO_BUMPER", @@ -4436,7 +4415,6 @@ "The default ad group type for Search campaigns.", "The default ad group type for Display campaigns.", "The ad group type for Shopping campaigns serving standard product ads.", - "The type for ad groups that are limited to serving Showcase or Merchant ads in Shopping results.", "The default ad group type for Hotel campaigns.", "The type for ad groups in Smart Shopping campaigns.", "Short unskippable in-stream video ads.", @@ -7151,8 +7129,7 @@ "STORE_VISIT", "STORE_SALE", "QUALIFIED_LEAD", - "CONVERTED_LEAD", - "YOUTUBE_FOLLOW_ON_VIEWS" + "CONVERTED_LEAD" ], "enumDescriptions": [ "Not specified.", @@ -7178,8 +7155,7 @@ "A visit to a physical store location.", "A sale occurring in a physical store.", "A lead conversion imported from an external source into Google Ads, that has been further qualified by the advertiser (marketing/sales team). In the lead-to-sale journey, advertisers get leads, then act on them by reaching out to the consumer. If the consumer is interested and may end up buying their product, the advertiser marks such leads as \"qualified leads\".", - "A lead conversion imported from an external source into Google Ads, that has further completed a chosen stage as defined by the lead gen advertiser.", - "User watches an ad from a channel and later watches either the same video or a video from the same channel as the ad." + "A lead conversion imported from an external source into Google Ads, that has further completed a chosen stage as defined by the lead gen advertiser." ], "type": "string" }, @@ -9320,6 +9296,7246 @@ } }, "type": "object" + }, + "GoogleAdsSearchads360V23Common_PolicyTopicConstraint_CountryConstraint": { + "description": "Indicates that a resource's ability to serve in a particular country is constrained.", + "id": "GoogleAdsSearchads360V23Common_PolicyTopicConstraint_CountryConstraint", + "properties": { + "countryCriterion": { + "description": "Geo target constant resource name of the country in which serving is constrained.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V23Common_PolicyTopicConstraint_CountryConstraintList": { + "description": "A list of countries where a resource's serving is constrained.", + "id": "GoogleAdsSearchads360V23Common_PolicyTopicConstraint_CountryConstraintList", + "properties": { + "countries": { + "description": "Countries in which serving is restricted.", + "items": { + "$ref": "GoogleAdsSearchads360V23Common_PolicyTopicConstraint_CountryConstraint" + }, + "type": "array" + }, + "totalTargetedCountries": { + "description": "Total number of countries targeted by the resource.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V23Common_PolicyTopicConstraint_ResellerConstraint": { + "description": "Indicates that a policy topic was constrained due to disapproval of the website for reseller purposes.", + "id": "GoogleAdsSearchads360V23Common_PolicyTopicConstraint_ResellerConstraint", + "properties": {}, + "type": "object" + }, + "GoogleAdsSearchads360V23Common_PolicyTopicEvidence_DestinationMismatch": { + "description": "Evidence of mismatches between the URLs of a resource.", + "id": "GoogleAdsSearchads360V23Common_PolicyTopicEvidence_DestinationMismatch", + "properties": { + "urlTypes": { + "description": "The set of URLs that did not match each other.", + "items": { + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "DISPLAY_URL", + "FINAL_URL", + "FINAL_MOBILE_URL", + "TRACKING_URL", + "MOBILE_TRACKING_URL" + ], + "enumDescriptions": [ + "No value has been specified.", + "The received value is not known in this version. This is a response-only value.", + "The display url.", + "The final url.", + "The final mobile url.", + "The tracking url template, with substituted desktop url.", + "The tracking url template, with substituted mobile url." + ], + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V23Common_PolicyTopicEvidence_DestinationNotWorking": { + "description": "Evidence details when the destination is returning an HTTP error code or isn't functional in all locations for commonly used devices.", + "id": "GoogleAdsSearchads360V23Common_PolicyTopicEvidence_DestinationNotWorking", + "properties": { + "device": { + "description": "The type of device that failed to load the URL.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "DESKTOP", + "ANDROID", + "IOS" + ], + "enumDescriptions": [ + "No value has been specified.", + "The received value is not known in this version. This is a response-only value.", + "Landing page doesn't work on desktop device.", + "Landing page doesn't work on Android device.", + "Landing page doesn't work on iOS device." + ], + "type": "string" + }, + "dnsErrorType": { + "description": "The type of DNS error.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "HOSTNAME_NOT_FOUND", + "GOOGLE_CRAWLER_DNS_ISSUE" + ], + "enumDescriptions": [ + "No value has been specified.", + "The received value is not known in this version. This is a response-only value.", + "Host name not found in DNS when fetching landing page.", + "Google internal crawler issue when communicating with DNS. This error doesn't mean the landing page doesn't work. Google will recrawl the landing page." + ], + "type": "string" + }, + "expandedUrl": { + "description": "The full URL that didn't work.", + "type": "string" + }, + "httpErrorCode": { + "description": "The HTTP error code.", + "format": "int64", + "type": "string" + }, + "lastCheckedDateTime": { + "description": "The time the URL was last checked. The format is \"YYYY-MM-DD HH:MM:SS\". Examples: \"2018-03-05 09:15:00\" or \"2018-02-01 14:34:30\"", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V23Common_PolicyTopicEvidence_DestinationTextList": { + "description": "A list of strings found in a destination page that caused a policy finding.", + "id": "GoogleAdsSearchads360V23Common_PolicyTopicEvidence_DestinationTextList", + "properties": { + "destinationTexts": { + "description": "List of text found in the resource's destination page.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V23Common_PolicyTopicEvidence_TextList": { + "description": "A list of fragments of text that violated a policy.", + "id": "GoogleAdsSearchads360V23Common_PolicyTopicEvidence_TextList", + "properties": { + "texts": { + "description": "The fragments of text from the resource that caused the policy finding.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V23Common_PolicyTopicEvidence_WebsiteList": { + "description": "A list of websites that caused a policy finding. Used for ONE_WEBSITE_PER_AD_GROUP policy topic, for example. In case there are more than five websites, only the top five (those that appear in resources the most) will be listed here.", + "id": "GoogleAdsSearchads360V23Common_PolicyTopicEvidence_WebsiteList", + "properties": { + "websites": { + "description": "Websites that caused the policy finding.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V23Common__PolicyTopicConstraint": { + "description": "Describes the effect on serving that a policy topic entry will have.", + "id": "GoogleAdsSearchads360V23Common__PolicyTopicConstraint", + "properties": { + "certificateDomainMismatchInCountryList": { + "$ref": "GoogleAdsSearchads360V23Common_PolicyTopicConstraint_CountryConstraintList", + "description": "Countries where the resource's domain is not covered by the certificates associated with it." + }, + "certificateMissingInCountryList": { + "$ref": "GoogleAdsSearchads360V23Common_PolicyTopicConstraint_CountryConstraintList", + "description": "Countries where a certificate is required for serving." + }, + "countryConstraintList": { + "$ref": "GoogleAdsSearchads360V23Common_PolicyTopicConstraint_CountryConstraintList", + "description": "Countries where the resource cannot serve." + }, + "resellerConstraint": { + "$ref": "GoogleAdsSearchads360V23Common_PolicyTopicConstraint_ResellerConstraint", + "description": "Reseller constraint." + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V23Common__PolicyTopicEntry": { + "description": "Policy finding attached to a resource (for example, alcohol policy associated with a site that sells alcohol). Each PolicyTopicEntry has a topic that indicates the specific ads policy the entry is about and a type to indicate the effect that the entry will have on serving. It may optionally have one or more evidences that indicate the reason for the finding. It may also optionally have one or more constraints that provide details about how serving may be restricted.", + "id": "GoogleAdsSearchads360V23Common__PolicyTopicEntry", + "properties": { + "constraints": { + "description": "Indicates how serving of this resource may be affected (for example, not serving in a country).", + "items": { + "$ref": "GoogleAdsSearchads360V23Common__PolicyTopicConstraint" + }, + "type": "array" + }, + "evidences": { + "description": "Additional information that explains policy finding (for example, the brand name for a trademark finding).", + "items": { + "$ref": "GoogleAdsSearchads360V23Common__PolicyTopicEvidence" + }, + "type": "array" + }, + "topic": { + "description": "Policy topic this finding refers to. For example, \"ALCOHOL\", \"TRADEMARKS_IN_AD_TEXT\", or \"DESTINATION_NOT_WORKING\". The set of possible policy topics is not fixed for a particular API version and may change at any time.", + "type": "string" + }, + "type": { + "description": "Describes the negative or positive effect this policy will have on serving.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "PROHIBITED", + "LIMITED", + "FULLY_LIMITED", + "DESCRIPTIVE", + "BROADENING", + "AREA_OF_INTEREST_ONLY" + ], + "enumDescriptions": [ + "No value has been specified.", + "The received value is not known in this version. This is a response-only value.", + "The resource will not be served.", + "The resource will not be served under some circumstances.", + "The resource cannot serve at all because of the current targeting criteria.", + "May be of interest, but does not limit how the resource is served.", + "Could increase coverage beyond normal.", + "Constrained for all targeted countries, but may serve in other countries through area of interest." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V23Common__PolicyTopicEvidence": { + "description": "Additional information that explains a policy finding.", + "id": "GoogleAdsSearchads360V23Common__PolicyTopicEvidence", + "properties": { + "destinationMismatch": { + "$ref": "GoogleAdsSearchads360V23Common_PolicyTopicEvidence_DestinationMismatch", + "description": "Mismatch between the destinations of a resource's URLs." + }, + "destinationNotWorking": { + "$ref": "GoogleAdsSearchads360V23Common_PolicyTopicEvidence_DestinationNotWorking", + "description": "Details when the destination is returning an HTTP error code or isn't functional in all locations for commonly used devices." + }, + "destinationTextList": { + "$ref": "GoogleAdsSearchads360V23Common_PolicyTopicEvidence_DestinationTextList", + "description": "The text in the destination of the resource that is causing a policy finding." + }, + "languageCode": { + "description": "The language the resource was detected to be written in. This is an IETF language tag such as \"en-US\".", + "type": "string" + }, + "textList": { + "$ref": "GoogleAdsSearchads360V23Common_PolicyTopicEvidence_TextList", + "description": "List of evidence found in the text of a resource." + }, + "websiteList": { + "$ref": "GoogleAdsSearchads360V23Common_PolicyTopicEvidence_WebsiteList", + "description": "List of websites linked with this resource." + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V23Common__PolicyViolationKey": { + "description": "Key of the violation. The key is used for referring to a violation when filing an exemption request.", + "id": "GoogleAdsSearchads360V23Common__PolicyViolationKey", + "properties": { + "policyName": { + "description": "Unique ID of the violated policy.", + "type": "string" + }, + "violatingText": { + "description": "The text that violates the policy if specified. Otherwise, refers to the policy in general (for example, when requesting to be exempt from the whole policy). If not specified for criterion exemptions, the whole policy is implied. Must be specified for ad exemptions.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V23Common__Value": { + "description": "A generic data container.", + "id": "GoogleAdsSearchads360V23Common__Value", + "properties": { + "booleanValue": { + "description": "A boolean.", + "type": "boolean" + }, + "doubleValue": { + "description": "A double.", + "format": "double", + "type": "number" + }, + "floatValue": { + "description": "A float.", + "format": "float", + "type": "number" + }, + "int64Value": { + "description": "An int64.", + "format": "int64", + "type": "string" + }, + "stringValue": { + "description": "A string.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V23Errors_ErrorLocation_FieldPathElement": { + "description": "A part of a field path.", + "id": "GoogleAdsSearchads360V23Errors_ErrorLocation_FieldPathElement", + "properties": { + "fieldName": { + "description": "The name of a field or a oneof", + "type": "string" + }, + "index": { + "description": "If field_name is a repeated field, this is the element that failed", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V23Errors__BudgetPerDayMinimumErrorDetails": { + "description": "Error details for a budget below per-day minimum error.", + "id": "GoogleAdsSearchads360V23Errors__BudgetPerDayMinimumErrorDetails", + "properties": { + "budgetPerDayMinimumMicros": { + "description": "The minimum budget required by the campaign per day, in micros of the advertiser currency. Applies to both daily and custom budgets.", + "format": "int64", + "type": "string" + }, + "currencyCode": { + "description": "The advertiser's currency, represented as a three-letter ISO 4217 currency code (such as \"USD\").", + "type": "string" + }, + "failedBudgetAmountMicros": { + "description": "The budget amount value that was rejected as too low, in micros of the advertiser currency. Only set if this error is caused by the amount field value.", + "format": "int64", + "type": "string" + }, + "failedBudgetTotalAmountMicros": { + "description": "The budget total_amount value that was rejected as too low, in micros of the advertiser currency. Only set if this error is caused by the total_amount field value.", + "format": "int64", + "type": "string" + }, + "minimumBudgetAmountMicros": { + "description": "The minimum value for the budget's amount field required by the campaign, in micros of the advertiser currency. Only set if this error is caused by the amount field value.", + "format": "int64", + "type": "string" + }, + "minimumBudgetTotalAmountMicros": { + "description": "The minimum value for the budget's total_amount field required by the campaign given its configured start and end time, in micros of the advertiser currency. Only set if this error is caused by the total_amount field value.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V23Errors__ErrorCode": { + "description": "The error reason represented by type and enum.", + "id": "GoogleAdsSearchads360V23Errors__ErrorCode", + "properties": { + "accessInvitationError": { + "description": "The reasons for the access invitation error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "INVALID_EMAIL_ADDRESS", + "EMAIL_ADDRESS_ALREADY_HAS_ACCESS", + "INVALID_INVITATION_STATUS", + "GOOGLE_CONSUMER_ACCOUNT_NOT_ALLOWED", + "INVALID_INVITATION_ID", + "EMAIL_ADDRESS_ALREADY_HAS_PENDING_INVITATION", + "PENDING_INVITATIONS_LIMIT_EXCEEDED", + "EMAIL_DOMAIN_POLICY_VIOLATED" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "The email address is invalid for sending an invitation.", + "Email address already has access to this customer.", + "Invalid invitation status for the operation.", + "Email address cannot be like abc+foo@google.com.", + "Invalid invitation ID.", + "Email address already has a pending invitation.", + "Pending invitation limit exceeded for the customer.", + "Email address doesn't conform to the email domain policy. See https://support.google.com/google-ads/answer/2375456" + ], + "type": "string" + }, + "accountBudgetProposalError": { + "description": "The reasons for account budget proposal errors.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "FIELD_MASK_NOT_ALLOWED", + "IMMUTABLE_FIELD", + "REQUIRED_FIELD_MISSING", + "CANNOT_CANCEL_APPROVED_PROPOSAL", + "CANNOT_REMOVE_UNAPPROVED_BUDGET", + "CANNOT_REMOVE_RUNNING_BUDGET", + "CANNOT_END_UNAPPROVED_BUDGET", + "CANNOT_END_INACTIVE_BUDGET", + "BUDGET_NAME_REQUIRED", + "CANNOT_UPDATE_OLD_BUDGET", + "CANNOT_END_IN_PAST", + "CANNOT_EXTEND_END_TIME", + "PURCHASE_ORDER_NUMBER_REQUIRED", + "PENDING_UPDATE_PROPOSAL_EXISTS", + "MULTIPLE_BUDGETS_NOT_ALLOWED_FOR_UNAPPROVED_BILLING_SETUP", + "CANNOT_UPDATE_START_TIME_FOR_STARTED_BUDGET", + "SPENDING_LIMIT_LOWER_THAN_ACCRUED_COST_NOT_ALLOWED", + "UPDATE_IS_NO_OP", + "END_TIME_MUST_FOLLOW_START_TIME", + "BUDGET_DATE_RANGE_INCOMPATIBLE_WITH_BILLING_SETUP", + "NOT_AUTHORIZED", + "INVALID_BILLING_SETUP", + "OVERLAPS_EXISTING_BUDGET", + "CANNOT_CREATE_BUDGET_THROUGH_API", + "INVALID_MASTER_SERVICE_AGREEMENT", + "CANCELED_BILLING_SETUP" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "The field mask must be empty for create/end/remove proposals.", + "The field cannot be set because of the proposal type.", + "The field is required because of the proposal type.", + "Proposals that have been approved cannot be cancelled.", + "Budgets that haven't been approved cannot be removed.", + "Budgets that are currently running cannot be removed.", + "Budgets that haven't been approved cannot be truncated.", + "Only budgets that are currently running can be truncated.", + "All budgets must have names.", + "Expired budgets cannot be edited after a sufficient amount of time has passed.", + "It is not permissible a propose a new budget that ends in the past.", + "An expired budget cannot be extended to overlap with the running budget.", + "A purchase order number is required.", + "Budgets that have a pending update cannot be updated.", + "Cannot propose more than one budget when the corresponding billing setup hasn't been approved.", + "Cannot update the start time of a budget that has already started.", + "Cannot update the spending limit of a budget with an amount lower than what has already been spent.", + "Cannot propose a budget update without actually changing any fields.", + "The end time must come after the start time.", + "The budget's date range must fall within the date range of its billing setup.", + "The user is not authorized to mutate budgets for the given billing setup.", + "Mutates are not allowed for the given billing setup.", + "Budget creation failed as it overlaps with a pending budget proposal or an approved budget.", + "The control setting in user's payments profile doesn't allow budget creation through API. Log in to Google Ads to create budget.", + "Master service agreement has not been signed yet for the Payments Profile.", + "Budget mutates are not allowed because the given billing setup is canceled." + ], + "type": "string" + }, + "accountLinkError": { + "description": "The reasons for the account link status change error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "INVALID_STATUS", + "PERMISSION_DENIED" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "The new link status is invalid.", + "The authenticated user doesn't have the permission to do the change." + ], + "type": "string" + }, + "adCustomizerError": { + "description": "The reasons for the ad customizer error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "COUNTDOWN_INVALID_DATE_FORMAT", + "COUNTDOWN_DATE_IN_PAST", + "COUNTDOWN_INVALID_LOCALE", + "COUNTDOWN_INVALID_START_DAYS_BEFORE", + "UNKNOWN_USER_LIST" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Invalid date argument in countdown function.", + "Countdown end date is in the past.", + "Invalid locale string in countdown function.", + "Days-before argument to countdown function is not positive.", + "A user list referenced in an IF function does not exist." + ], + "type": "string" + }, + "adError": { + "description": "An error with an Ad Group Ad mutate.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "AD_CUSTOMIZERS_NOT_SUPPORTED_FOR_AD_TYPE", + "APPROXIMATELY_TOO_LONG", + "APPROXIMATELY_TOO_SHORT", + "BAD_SNIPPET", + "CANNOT_MODIFY_AD", + "CANNOT_SET_BUSINESS_NAME_IF_URL_SET", + "CANNOT_SET_FIELD", + "CANNOT_SET_FIELD_WITH_ORIGIN_AD_ID_SET", + "CANNOT_SET_FIELD_WITH_AD_ID_SET_FOR_SHARING", + "CANNOT_SET_ALLOW_FLEXIBLE_COLOR_FALSE", + "CANNOT_SET_COLOR_CONTROL_WHEN_NATIVE_FORMAT_SETTING", + "CANNOT_SET_URL", + "CANNOT_SET_WITHOUT_FINAL_URLS", + "CANNOT_SET_WITH_FINAL_URLS", + "CANNOT_SET_WITH_URL_DATA", + "CANNOT_USE_AD_SUBCLASS_FOR_OPERATOR", + "CUSTOMER_NOT_APPROVED_MOBILEADS", + "CUSTOMER_NOT_APPROVED_THIRDPARTY_ADS", + "CUSTOMER_NOT_APPROVED_THIRDPARTY_REDIRECT_ADS", + "CUSTOMER_NOT_ELIGIBLE", + "CUSTOMER_NOT_ELIGIBLE_FOR_UPDATING_BEACON_URL", + "DIMENSION_ALREADY_IN_UNION", + "DIMENSION_MUST_BE_SET", + "DIMENSION_NOT_IN_UNION", + "DISPLAY_URL_CANNOT_BE_SPECIFIED", + "DOMESTIC_PHONE_NUMBER_FORMAT", + "EMERGENCY_PHONE_NUMBER", + "EMPTY_FIELD", + "FEED_ATTRIBUTE_MUST_HAVE_MAPPING_FOR_TYPE_ID", + "FEED_ATTRIBUTE_MAPPING_TYPE_MISMATCH", + "ILLEGAL_AD_CUSTOMIZER_TAG_USE", + "ILLEGAL_TAG_USE", + "INCONSISTENT_DIMENSIONS", + "INCONSISTENT_STATUS_IN_TEMPLATE_UNION", + "INCORRECT_LENGTH", + "INELIGIBLE_FOR_UPGRADE", + "INVALID_AD_ADDRESS_CAMPAIGN_TARGET", + "INVALID_AD_TYPE", + "INVALID_ATTRIBUTES_FOR_MOBILE_IMAGE", + "INVALID_ATTRIBUTES_FOR_MOBILE_TEXT", + "INVALID_CALL_TO_ACTION_TEXT", + "INVALID_CHARACTER_FOR_URL", + "INVALID_COUNTRY_CODE", + "INVALID_EXPANDED_DYNAMIC_SEARCH_AD_TAG", + "INVALID_INPUT", + "INVALID_MARKUP_LANGUAGE", + "INVALID_MOBILE_CARRIER", + "INVALID_MOBILE_CARRIER_TARGET", + "INVALID_NUMBER_OF_ELEMENTS", + "INVALID_PHONE_NUMBER_FORMAT", + "INVALID_RICH_MEDIA_CERTIFIED_VENDOR_FORMAT_ID", + "INVALID_TEMPLATE_DATA", + "INVALID_TEMPLATE_ELEMENT_FIELD_TYPE", + "INVALID_TEMPLATE_ID", + "LINE_TOO_WIDE", + "MISSING_AD_CUSTOMIZER_MAPPING", + "MISSING_ADDRESS_COMPONENT", + "MISSING_ADVERTISEMENT_NAME", + "MISSING_BUSINESS_NAME", + "MISSING_DESCRIPTION1", + "MISSING_DESCRIPTION2", + "MISSING_DESTINATION_URL_TAG", + "MISSING_LANDING_PAGE_URL_TAG", + "MISSING_DIMENSION", + "MISSING_DISPLAY_URL", + "MISSING_HEADLINE", + "MISSING_HEIGHT", + "MISSING_IMAGE", + "MISSING_MARKETING_IMAGE_OR_PRODUCT_VIDEOS", + "MISSING_MARKUP_LANGUAGES", + "MISSING_MOBILE_CARRIER", + "MISSING_PHONE", + "MISSING_REQUIRED_TEMPLATE_FIELDS", + "MISSING_TEMPLATE_FIELD_VALUE", + "MISSING_TEXT", + "MISSING_VISIBLE_URL", + "MISSING_WIDTH", + "MULTIPLE_DISTINCT_FEEDS_UNSUPPORTED", + "MUST_USE_TEMP_AD_UNION_ID_ON_ADD", + "TOO_LONG", + "TOO_SHORT", + "UNION_DIMENSIONS_CANNOT_CHANGE", + "UNKNOWN_ADDRESS_COMPONENT", + "UNKNOWN_FIELD_NAME", + "UNKNOWN_UNIQUE_NAME", + "UNSUPPORTED_DIMENSIONS", + "URL_INVALID_SCHEME", + "URL_INVALID_TOP_LEVEL_DOMAIN", + "URL_MALFORMED", + "URL_NO_HOST", + "URL_NOT_EQUIVALENT", + "URL_HOST_NAME_TOO_LONG", + "URL_NO_SCHEME", + "URL_NO_TOP_LEVEL_DOMAIN", + "URL_PATH_NOT_ALLOWED", + "URL_PORT_NOT_ALLOWED", + "URL_QUERY_NOT_ALLOWED", + "URL_SCHEME_BEFORE_EXPANDED_DYNAMIC_SEARCH_AD_TAG", + "USER_DOES_NOT_HAVE_ACCESS_TO_TEMPLATE", + "INCONSISTENT_EXPANDABLE_SETTINGS", + "INVALID_FORMAT", + "INVALID_FIELD_TEXT", + "ELEMENT_NOT_PRESENT", + "IMAGE_ERROR", + "VALUE_NOT_IN_RANGE", + "FIELD_NOT_PRESENT", + "ADDRESS_NOT_COMPLETE", + "ADDRESS_INVALID", + "VIDEO_RETRIEVAL_ERROR", + "AUDIO_ERROR", + "INVALID_YOUTUBE_DISPLAY_URL", + "TOO_MANY_PRODUCT_IMAGES", + "TOO_MANY_PRODUCT_VIDEOS", + "INCOMPATIBLE_AD_TYPE_AND_DEVICE_PREFERENCE", + "CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY", + "CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED", + "DISALLOWED_NUMBER_TYPE", + "PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY", + "PHONE_NUMBER_NOT_SUPPORTED_WITH_CALLTRACKING_FOR_COUNTRY", + "PREMIUM_RATE_NUMBER_NOT_ALLOWED", + "VANITY_PHONE_NUMBER_NOT_ALLOWED", + "INVALID_CALL_CONVERSION_TYPE_ID", + "CANNOT_DISABLE_CALL_CONVERSION_AND_SET_CONVERSION_TYPE_ID", + "CANNOT_SET_PATH2_WITHOUT_PATH1", + "MISSING_DYNAMIC_SEARCH_ADS_SETTING_DOMAIN_NAME", + "INCOMPATIBLE_WITH_RESTRICTION_TYPE", + "CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED", + "MISSING_IMAGE_OR_MEDIA_BUNDLE", + "PRODUCT_TYPE_NOT_SUPPORTED_IN_THIS_CAMPAIGN", + "PLACEHOLDER_CANNOT_HAVE_EMPTY_DEFAULT_VALUE", + "PLACEHOLDER_COUNTDOWN_FUNCTION_CANNOT_HAVE_DEFAULT_VALUE", + "PLACEHOLDER_DEFAULT_VALUE_MISSING", + "UNEXPECTED_PLACEHOLDER_DEFAULT_VALUE", + "AD_CUSTOMIZERS_MAY_NOT_BE_ADJACENT", + "UPDATING_AD_WITH_NO_ENABLED_ASSOCIATION", + "CALL_AD_VERIFICATION_URL_FINAL_URL_DOES_NOT_HAVE_SAME_DOMAIN", + "CALL_AD_FINAL_URL_AND_VERIFICATION_URL_CANNOT_BOTH_BE_EMPTY", + "TOO_MANY_AD_CUSTOMIZERS", + "INVALID_AD_CUSTOMIZER_FORMAT", + "NESTED_AD_CUSTOMIZER_SYNTAX", + "UNSUPPORTED_AD_CUSTOMIZER_SYNTAX", + "UNPAIRED_BRACE_IN_AD_CUSTOMIZER_TAG", + "MORE_THAN_ONE_COUNTDOWN_TAG_TYPE_EXISTS", + "DATE_TIME_IN_COUNTDOWN_TAG_IS_INVALID", + "DATE_TIME_IN_COUNTDOWN_TAG_IS_PAST", + "UNRECOGNIZED_AD_CUSTOMIZER_TAG_FOUND", + "CUSTOMIZER_TYPE_FORBIDDEN_FOR_FIELD", + "INVALID_CUSTOMIZER_ATTRIBUTE_NAME", + "STORE_MISMATCH", + "MISSING_REQUIRED_IMAGE_ASPECT_RATIO", + "MISMATCHED_ASPECT_RATIOS", + "DUPLICATE_IMAGE_ACROSS_CAROUSEL_CARDS", + "INVALID_YOUTUBE_VIDEO_ASSET_ID_FOR_VIDEO_ADS_SEQUENCING" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Ad customizers are not supported for ad type.", + "Estimating character sizes the string is too long.", + "Estimating character sizes the string is too short.", + "There is a problem with the snippet.", + "Cannot modify an ad.", + "business name and url cannot be set at the same time", + "The specified field is incompatible with this ad's type or settings.", + "Cannot set field when originAdId is set.", + "Cannot set field when an existing ad id is set for sharing.", + "Cannot set allowFlexibleColor false if no color is provided by user.", + "When user select native, no color control is allowed because we will always respect publisher color for native format serving.", + "Cannot specify a url for the ad type", + "Cannot specify a tracking or mobile url without also setting final urls", + "Cannot specify a legacy url and a final url simultaneously", + "Cannot specify a urls in UrlData and in template fields simultaneously.", + "This operator cannot be used with a subclass of Ad.", + "Customer is not approved for mobile ads.", + "Customer is not approved for 3PAS richmedia ads.", + "Customer is not approved for 3PAS redirect richmedia (Ad Exchange) ads.", + "Not an eligible customer", + "Customer is not eligible for updating beacon url", + "There already exists an ad with the same dimensions in the union.", + "Ad's dimension must be set before setting union dimension.", + "Ad's dimension must be included in the union dimensions.", + "Display Url cannot be specified (applies to Ad Exchange Ads)", + "Telephone number contains invalid characters or invalid format. Re-enter your number using digits (0-9), dashes (-), and parentheses only.", + "Emergency telephone numbers are not allowed. Enter a valid domestic phone number to connect customers to your business.", + "A required field was not specified or is an empty string.", + "A feed attribute referenced in an ad customizer tag is not in the ad customizer mapping for the feed.", + "The ad customizer field mapping for the feed attribute does not match the expected field type.", + "The use of ad customizer tags in the ad text is disallowed. Details in trigger.", + "Tags of the form {PH_x}, where x is a number, are disallowed in ad text.", + "The dimensions of the ad are specified or derived in multiple ways and are not consistent.", + "The status cannot differ among template ads of the same union.", + "The length of the string is not valid.", + "The ad is ineligible for upgrade.", + "User cannot create mobile ad for countries targeted in specified campaign.", + "Invalid Ad type. A specific type of Ad is required.", + "Headline, description or phone cannot be present when creating mobile image ad.", + "Image cannot be present when creating mobile text ad.", + "Invalid call to action text.", + "Invalid character in URL.", + "Creative's country code is not valid.", + "Invalid use of Expanded Dynamic Search Ads tags ({lpurl} etc.)", + "An input error whose real reason was not properly mapped (should not happen).", + "An invalid markup language was entered.", + "An invalid mobile carrier was entered.", + "Specified mobile carriers target a country not targeted by the campaign.", + "Wrong number of elements for given element type", + "The format of the telephone number is incorrect. Re-enter the number using the correct format.", + "The certified vendor format id is incorrect.", + "The template ad data contains validation errors.", + "The template field doesn't have have the correct type.", + "Invalid template id.", + "After substituting replacement strings, the line is too wide.", + "The feed referenced must have ad customizer mapping to be used in a customizer tag.", + "Missing address component in template element address field.", + "An ad name must be entered.", + "Business name must be entered.", + "Description (line 2) must be entered.", + "Description (line 3) must be entered.", + "The destination url must contain at least one tag (for example, {lpurl})", + "The tracking url template of ExpandedDynamicSearchAd must contain at least one tag. (for example, {lpurl})", + "A valid dimension must be specified for this ad.", + "A display URL must be entered.", + "Headline must be entered.", + "A height must be entered.", + "An image must be entered.", + "Marketing image or product videos are required.", + "The markup language in which your site is written must be entered.", + "A mobile carrier must be entered.", + "Phone number must be entered.", + "Missing required template fields", + "Missing a required field value", + "The ad must have text.", + "A visible URL must be entered.", + "A width must be entered.", + "Only 1 feed can be used as the source of ad customizer substitutions in a single ad.", + "TempAdUnionId must be use when adding template ads.", + "The string has too many characters.", + "The string has too few characters.", + "Ad union dimensions cannot change for saved ads.", + "Address component is not {country, lat, lng}.", + "Unknown unique field name", + "Unknown unique name (template element type specifier)", + "Unsupported ad dimension", + "URL starts with an invalid scheme.", + "URL ends with an invalid top-level domain name.", + "URL contains illegal characters.", + "URL must contain a host name.", + "URL not equivalent during upgrade.", + "URL host name too long to be stored as visible URL (applies to Ad Exchange ads)", + "URL must start with a scheme.", + "URL should end in a valid domain extension, such as .com or .net.", + "URL must not end with a path.", + "URL must not specify a port.", + "URL must not contain a query.", + "A url scheme is not allowed in front of tag in tracking url template (for example, http://{lpurl})", + "The user does not have permissions to create a template ad for the given template.", + "Expandable setting is inconsistent/wrong. For example, an AdX ad is invalid if it has a expandable vendor format but no expanding directions specified, or expanding directions is specified, but the vendor format is not expandable.", + "Format is invalid", + "The text of this field did not match a pattern of allowed values.", + "Template element is mising", + "Error occurred during image processing", + "The value is not within the valid range", + "Template element field is not present", + "Address is incomplete", + "Invalid address", + "Error retrieving specified video", + "Error processing audio", + "Display URL is incorrect for YouTube PYV ads", + "Too many product Images in GmailAd", + "Too many product Videos in GmailAd", + "The device preference is not compatible with the ad type", + "Call tracking is not supported for specified country.", + "Carrier specific short number is not allowed.", + "Specified phone number type is disallowed.", + "Phone number not supported for country.", + "Phone number not supported with call tracking enabled for country.", + "Premium rate phone number is not allowed.", + "Vanity phone number is not allowed.", + "Invalid call conversion type id.", + "Cannot disable call conversion and set conversion type id.", + "Cannot set path2 without path1.", + "Missing domain name in campaign setting when adding expanded dynamic search ad.", + "The associated ad is not compatible with restriction type.", + "Consent for call recording is required for creating/updating call only ads. See https://support.google.com/google-ads/answer/7412639.", + "Either an image or a media bundle is required in a display upload ad.", + "The display upload product type is not supported in this campaign.", + "The default value of an ad placeholder can not be the empty string.", + "Ad placeholders with countdown functions must not have a default value.", + "A previous ad placeholder that had a default value was found which means that all (non-countdown) placeholders must have a default value. This ad placeholder does not have a default value.", + "A previous ad placeholder that did not have a default value was found which means that no placeholders may have a default value. This ad placeholder does have a default value.", + "Two ad customizers may not be directly adjacent in an ad text. They must be separated by at least one character.", + "The ad is not associated with any enabled AdGroupAd, and cannot be updated.", + "Call Ad verification url and final url don't have same domain.", + "Final url and verification url cannot both be empty for call ads.", + "Too many ad customizers in one asset.", + "The ad customizer tag is recognized, but the format is invalid.", + "Customizer tags cannot be nested.", + "The ad customizer syntax used in the ad is not supported.", + "There exists unpaired brace in the ad customizer tag.", + "More than one type of countdown tag exists among all text lines.", + "Date time in the countdown tag is invalid.", + "Date time in the countdown tag is in the past.", + "Cannot recognize the ad customizer tag.", + "Customizer type forbidden for this field.", + "Customizer attribute name is invalid.", + "App store value does not match the value of the app store in the app specified in the campaign.", + "Missing required image aspect ratio.", + "Aspect ratios mismatch between different assets.", + "Images must be unique between different carousel card assets.", + "For video ads sequencing, YouTube video asset ID has to be defined in `campaign.video_campaign_settings.video_ad_sequence.steps.asset_id`." + ], + "type": "string" + }, + "adGroupAdError": { + "description": "The reasons for the ad group ad error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "AD_GROUP_AD_LABEL_DOES_NOT_EXIST", + "AD_GROUP_AD_LABEL_ALREADY_EXISTS", + "AD_NOT_UNDER_ADGROUP", + "CANNOT_OPERATE_ON_REMOVED_ADGROUPAD", + "CANNOT_CREATE_DEPRECATED_ADS", + "CANNOT_CREATE_TEXT_ADS", + "EMPTY_FIELD", + "RESOURCE_REFERENCED_IN_MULTIPLE_OPS", + "AD_TYPE_CANNOT_BE_PAUSED", + "AD_TYPE_CANNOT_BE_REMOVED", + "CANNOT_UPDATE_DEPRECATED_ADS", + "AD_SHARING_NOT_ALLOWED" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "No link found between the adgroup ad and the label.", + "The label has already been attached to the adgroup ad.", + "The specified ad was not found in the adgroup", + "Removed ads may not be modified", + "An ad of this type is deprecated and cannot be created. Only deletions are permitted.", + "Text ads are deprecated and cannot be created. Use expanded text ads instead.", + "A required field was not specified or is an empty string.", + "An ad may only be modified once per call", + "AdGroupAds with the given ad type cannot be paused.", + "AdGroupAds with the given ad type cannot be removed.", + "An ad of this type is deprecated and cannot be updated. Only removals are permitted.", + "Ad sharing is not allowed." + ], + "type": "string" + }, + "adGroupBidModifierError": { + "description": "The reasons for the ad group bid modifier error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "CRITERION_ID_NOT_SUPPORTED", + "CANNOT_OVERRIDE_OPTED_OUT_CAMPAIGN_CRITERION_BID_MODIFIER" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "The criterion ID does not support bid modification.", + "Cannot override the bid modifier for the given criterion ID if the parent campaign is opted out of the same criterion." + ], + "type": "string" + }, + "adGroupCriterionCustomizerError": { + "description": "The reasons for the ad group criterion customizer error.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "CRITERION_IS_NOT_KEYWORD" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Only keyword type criterion is allowed to link customizer attribute." + ], + "type": "string" + }, + "adGroupCriterionError": { + "description": "Indicates failure to properly authenticate user.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "AD_GROUP_CRITERION_LABEL_DOES_NOT_EXIST", + "AD_GROUP_CRITERION_LABEL_ALREADY_EXISTS", + "CANNOT_ADD_LABEL_TO_NEGATIVE_CRITERION", + "TOO_MANY_OPERATIONS", + "CANT_UPDATE_NEGATIVE", + "CONCRETE_TYPE_REQUIRED", + "BID_INCOMPATIBLE_WITH_ADGROUP", + "CANNOT_TARGET_AND_EXCLUDE", + "ILLEGAL_URL", + "INVALID_KEYWORD_TEXT", + "INVALID_DESTINATION_URL", + "MISSING_DESTINATION_URL_TAG", + "KEYWORD_LEVEL_BID_NOT_SUPPORTED_FOR_MANUALCPM", + "INVALID_USER_STATUS", + "CANNOT_ADD_CRITERIA_TYPE", + "CANNOT_EXCLUDE_CRITERIA_TYPE", + "CAMPAIGN_TYPE_NOT_COMPATIBLE_WITH_PARTIAL_FAILURE", + "OPERATIONS_FOR_TOO_MANY_SHOPPING_ADGROUPS", + "CANNOT_MODIFY_URL_FIELDS_WITH_DUPLICATE_ELEMENTS", + "CANNOT_SET_WITHOUT_FINAL_URLS", + "CANNOT_CLEAR_FINAL_URLS_IF_FINAL_MOBILE_URLS_EXIST", + "CANNOT_CLEAR_FINAL_URLS_IF_FINAL_APP_URLS_EXIST", + "CANNOT_CLEAR_FINAL_URLS_IF_TRACKING_URL_TEMPLATE_EXISTS", + "CANNOT_CLEAR_FINAL_URLS_IF_URL_CUSTOM_PARAMETERS_EXIST", + "CANNOT_SET_BOTH_DESTINATION_URL_AND_FINAL_URLS", + "CANNOT_SET_BOTH_DESTINATION_URL_AND_TRACKING_URL_TEMPLATE", + "FINAL_URLS_NOT_SUPPORTED_FOR_CRITERION_TYPE", + "FINAL_MOBILE_URLS_NOT_SUPPORTED_FOR_CRITERION_TYPE" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "No link found between the AdGroupCriterion and the label.", + "The label has already been attached to the AdGroupCriterion.", + "Negative AdGroupCriterion cannot have labels.", + "Too many operations for a single call.", + "Negative ad group criteria are not updateable.", + "Concrete type of criterion (keyword v.s. placement) is required for ADD and SET operations.", + "Bid is incompatible with ad group's bidding settings.", + "Cannot target and exclude the same criterion at once.", + "The URL of a placement is invalid.", + "Keyword text was invalid.", + "Destination URL was invalid.", + "The destination url must contain at least one tag (for example, {lpurl})", + "Keyword-level cpm bid is not supported", + "For example, cannot add a biddable ad group criterion that had been removed.", + "Criteria type cannot be targeted for the ad group. Either the account is restricted to keywords only, the criteria type is incompatible with the campaign's bidding strategy, or the criteria type can only be applied to campaigns.", + "Criteria type cannot be excluded for the ad group. Refer to the documentation for a specific criterion to check if it is excludable.", + "Partial failure is not supported for shopping campaign mutate operations.", + "Operations in the mutate request changes too many shopping ad groups. Split requests for multiple shopping ad groups across multiple requests.", + "Not allowed to modify url fields of an ad group criterion if there are duplicate elements for that ad group criterion in the request.", + "Cannot set url fields without also setting final urls.", + "Cannot clear final urls if final mobile urls exist.", + "Cannot clear final urls if final app urls exist.", + "Cannot clear final urls if tracking url template exists.", + "Cannot clear final urls if url custom parameters exist.", + "Cannot set both destination url and final urls.", + "Cannot set both destination url and tracking url template.", + "Final urls are not supported for this criterion type.", + "Final mobile urls are not supported for this criterion type." + ], + "type": "string" + }, + "adGroupCustomizerError": { + "description": "The reasons for the ad group customizer error.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version." + ], + "type": "string" + }, + "adGroupError": { + "description": "An error with an Ad Group mutate.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "DUPLICATE_ADGROUP_NAME", + "INVALID_ADGROUP_NAME", + "ADVERTISER_NOT_ON_CONTENT_NETWORK", + "BID_TOO_BIG", + "BID_TYPE_AND_BIDDING_STRATEGY_MISMATCH", + "MISSING_ADGROUP_NAME", + "ADGROUP_LABEL_DOES_NOT_EXIST", + "ADGROUP_LABEL_ALREADY_EXISTS", + "INVALID_CONTENT_BID_CRITERION_TYPE_GROUP", + "AD_GROUP_TYPE_NOT_VALID_FOR_ADVERTISING_CHANNEL_TYPE", + "ADGROUP_TYPE_NOT_SUPPORTED_FOR_CAMPAIGN_SALES_COUNTRY", + "CANNOT_ADD_ADGROUP_OF_TYPE_DSA_TO_CAMPAIGN_WITHOUT_DSA_SETTING", + "PROMOTED_HOTEL_AD_GROUPS_NOT_AVAILABLE_FOR_CUSTOMER", + "INVALID_EXCLUDED_PARENT_ASSET_FIELD_TYPE", + "INVALID_EXCLUDED_PARENT_ASSET_SET_TYPE", + "CANNOT_ADD_AD_GROUP_FOR_CAMPAIGN_TYPE", + "INVALID_STATUS", + "INVALID_STEP_ID_FOR_VIDEO_ADS_SEQUENCING", + "INVALID_AD_GROUP_TYPE_FOR_VIDEO_ADS_SEQUENCING", + "DUPLICATE_STEP_ID", + "INVALID_VERTICAL_ADS_FORMAT_SETTING", + "VERTICAL_ADS_FORMAT_SETTING_NOT_SUPPORTED_FOR_CAMPAIGNS_WITHOUT_AI_MAX", + "VERTICAL_ADS_FORMAT_SETTING_NOT_SUPPORTED_FOR_CAMPAIGNS_WITHOUT_ENABLED_TRAVEL_FEED" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "AdGroup with the same name already exists for the campaign.", + "AdGroup name is not valid.", + "Advertiser is not allowed to target sites or set site bids that are not on the Google Search Network.", + "Bid amount is too big.", + "AdGroup bid does not match the campaign's bidding strategy.", + "AdGroup name is required for Add.", + "No link found between the ad group and the label.", + "The label has already been attached to the ad group.", + "The CriterionTypeGroup is not supported for the content bid dimension.", + "The ad group type is not compatible with the campaign channel type.", + "The ad group type is not supported in the country of sale of the campaign.", + "Ad groups of AdGroupType.SEARCH_DYNAMIC_ADS can only be added to campaigns that have DynamicSearchAdsSetting attached.", + "Promoted hotels ad groups are only available to customers on the allow-list.", + "The field type cannot be excluded because an active ad group-asset link of this type exists.", + "The asset set type is invalid for setting the excluded_parent_asset_set_types field.", + "Cannot add ad groups for the campaign type.", + "Invalid status for the ad group.", + "For video ads sequencing, AdGroup `step_id` has to use a `step_id` defined in `campaign.video_campaign_settings.video_ad_sequence`.", + "For video ads sequencing, AdGroup type has to use a type defined in `campaign.video_campaign_settings.video_ad_sequence`.", + "Only one AdGroup is allowed for each step ID in video ads sequencing.", + "At least one Vertical Ads format must be enabled for a campaign under Travel Ads in Search Campaigns.", + "AI max setting must be enabled to enable Vertical Ads formats for a campaign under Travel Ads in Search Campaigns.", + "An enabled travel feed must be linked to enable Vertical Ads formats for a campaign under Travel Ads in Search Campaigns." + ], + "type": "string" + }, + "adGroupFeedError": { + "description": "The reasons for the ad group feed error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE", + "CANNOT_CREATE_FOR_REMOVED_FEED", + "ADGROUP_FEED_ALREADY_EXISTS", + "CANNOT_OPERATE_ON_REMOVED_ADGROUP_FEED", + "INVALID_PLACEHOLDER_TYPE", + "MISSING_FEEDMAPPING_FOR_PLACEHOLDER_TYPE", + "NO_EXISTING_LOCATION_CUSTOMER_FEED" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "An active feed already exists for this ad group and place holder type.", + "The specified feed is removed.", + "The AdGroupFeed already exists. UPDATE operation should be used to modify the existing AdGroupFeed.", + "Cannot operate on removed AdGroupFeed.", + "Invalid placeholder type.", + "Feed mapping for this placeholder type does not exist.", + "Location AdGroupFeeds cannot be created unless there is a location CustomerFeed for the specified feed." + ], + "type": "string" + }, + "adParameterError": { + "description": "The reasons for the ad parameter error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "AD_GROUP_CRITERION_MUST_BE_KEYWORD", + "INVALID_INSERTION_TEXT_FORMAT" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "The ad group criterion must be a keyword criterion.", + "The insertion text is invalid." + ], + "type": "string" + }, + "adSharingError": { + "description": "The reasons for the ad sharing error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "AD_GROUP_ALREADY_CONTAINS_AD", + "INCOMPATIBLE_AD_UNDER_AD_GROUP", + "CANNOT_SHARE_INACTIVE_AD" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Error resulting in attempting to add an Ad to an AdGroup that already contains the Ad.", + "Ad is not compatible with the AdGroup it is being shared with.", + "Cannot add AdGroupAd on inactive Ad." + ], + "type": "string" + }, + "adxError": { + "description": "The reasons for the adx error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "UNSUPPORTED_FEATURE" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Attempt to use non-AdX feature by AdX customer." + ], + "type": "string" + }, + "assetError": { + "description": "The reasons for the asset error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "CUSTOMER_NOT_ON_ALLOWLIST_FOR_ASSET_TYPE", + "DUPLICATE_ASSET", + "DUPLICATE_ASSET_NAME", + "ASSET_DATA_IS_MISSING", + "CANNOT_MODIFY_ASSET_NAME", + "FIELD_INCOMPATIBLE_WITH_ASSET_TYPE", + "INVALID_CALL_TO_ACTION_TEXT", + "LEAD_FORM_INVALID_FIELDS_COMBINATION", + "LEAD_FORM_MISSING_AGREEMENT", + "INVALID_ASSET_STATUS", + "FIELD_CANNOT_BE_MODIFIED_FOR_ASSET_TYPE", + "SCHEDULES_CANNOT_OVERLAP", + "PROMOTION_CANNOT_SET_PERCENT_OFF_AND_MONEY_AMOUNT_OFF", + "PROMOTION_CANNOT_SET_PROMOTION_CODE_AND_ORDERS_OVER_AMOUNT", + "TOO_MANY_DECIMAL_PLACES_SPECIFIED", + "DUPLICATE_ASSETS_WITH_DIFFERENT_FIELD_VALUE", + "CALL_CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED", + "CALL_CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED", + "CALL_DISALLOWED_NUMBER_TYPE", + "CALL_INVALID_CONVERSION_ACTION", + "CALL_INVALID_COUNTRY_CODE", + "CALL_INVALID_DOMESTIC_PHONE_NUMBER_FORMAT", + "CALL_INVALID_PHONE_NUMBER", + "CALL_PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY", + "CALL_PREMIUM_RATE_NUMBER_NOT_ALLOWED", + "CALL_VANITY_PHONE_NUMBER_NOT_ALLOWED", + "PRICE_HEADER_SAME_AS_DESCRIPTION", + "MOBILE_APP_INVALID_APP_ID", + "MOBILE_APP_INVALID_FINAL_URL_FOR_APP_DOWNLOAD_URL", + "NAME_REQUIRED_FOR_ASSET_TYPE", + "LEAD_FORM_LEGACY_QUALIFYING_QUESTIONS_DISALLOWED", + "NAME_CONFLICT_FOR_ASSET_TYPE", + "CANNOT_MODIFY_ASSET_SOURCE", + "CANNOT_MODIFY_AUTOMATICALLY_CREATED_ASSET", + "LEAD_FORM_LOCATION_ANSWER_TYPE_DISALLOWED", + "PAGE_FEED_INVALID_LABEL_TEXT", + "CUSTOMER_NOT_ON_ALLOWLIST_FOR_WHATSAPP_MESSAGE_ASSETS", + "CUSTOMER_NOT_ON_ALLOWLIST_FOR_APP_DEEP_LINK_ASSETS", + "PROMOTION_BARCODE_CANNOT_CONTAIN_LINKS", + "PROMOTION_BARCODE_INVALID_FORMAT", + "UNSUPPORTED_BARCODE_TYPE", + "PROMOTION_QR_CODE_CANNOT_CONTAIN_LINKS", + "PROMOTION_QR_CODE_INVALID_FORMAT", + "CUSTOMER_NOT_ON_ALLOWLIST_FOR_MESSAGE_ASSETS" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "The customer is not on the allow-list for this asset type.", + "Assets are duplicated across operations.", + "The asset name is duplicated, either across operations or with an existing asset.", + "The `Asset.asset_data` oneof is empty.", + "The asset has a name which is different from an existing duplicate that represents the same content.", + "The field cannot be set for this asset type.", + "Call to action must come from the list of supported values.", + "A lead form asset is created with an invalid combination of input fields.", + "Lead forms require that the Terms of Service have been agreed to before mutates can be executed.", + "Asset status is invalid in this operation.", + "The field cannot be modified by this asset type.", + "Ad schedules for the same asset cannot overlap.", + "Cannot set both percent off and money amount off fields of promotion asset.", + "Cannot set both promotion code and orders over amount fields of promotion asset.", + "The field has too many decimal places specified.", + "Duplicate assets across operations, which have identical `Asset.asset_data` oneof, cannot have different asset level fields for asset types which are deduped.", + "Carrier-specific short number is not allowed.", + "Customer consent required for call recording Terms of Service.", + "The type of the specified phone number is not allowed.", + "If the default `call_conversion_action` is not used, the customer must have a `ConversionAction` with the same id and the `ConversionAction` must be call conversion type.", + "The country code of the phone number is invalid.", + "The format of the phone number is incorrect.", + "The input phone number is not a valid phone number.", + "The phone number is not supported for this country.", + "Premium rate phone number is not allowed.", + "Vanity phone number is not allowed.", + "`PriceOffering` cannot have the same value for header and description.", + "`AppId` is invalid.", + "Invalid App download URL in final URLs.", + "Asset name is required for the asset type.", + "Legacy qualifying questions cannot be in the same Lead Form as custom questions.", + "Unique name is required for this asset type.", + "Cannot modify asset source.", + "User can not modify the automatically created asset.", + "Lead Form is disallowed to use `LOCATION` answer type.", + "Page Feed label text contains invalid characters.", + "The customer is not in the allow-list for whatsapp message asset type.", + "Only customers on the allowlist can create `AppDeepLinkAsset`.", + "Promotion barcode cannot contain links.", + "Failed to encode promotion barcode: Invalid format.", + "Barcode type is not supported.", + "Promotion QR code cannot contain links.", + "Failed to encode promotion QR code: Invalid format.", + "The customer is not in the allow-list for Business message asset type." + ], + "type": "string" + }, + "assetGenerationError": { + "description": "The reasons for the GenAI asset generation error.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "NO_ASSETS_GENERATED", + "FINAL_URL_REQUIRED", + "GENERATION_CONTEXT_MISSING_FINAL_URL", + "FINAL_URL_SENSITIVE", + "FINAL_URL_UNSUPPORTED_LANGUAGE", + "FINAL_URL_UNAVAILABLE", + "CAMPAIGN_TYPE_REQUIRED", + "UNSUPPORTED_CAMPAIGN_TYPE", + "UNSUPPORTED_FIELD_TYPE", + "UNSUPPORTED_FIELD_TYPE_FOR_CAMPAIGN_TYPE", + "FREEFORM_PROMPT_UNSUPPORTED_LANGUAGE", + "FREEFORM_PROMPT_SENSITIVE", + "INPUT_IMAGE_FILE_SIZE_TOO_LARGE", + "INPUT_IMAGE_EMPTY", + "GENERATION_TYPE_REQUIRED", + "TOO_MANY_KEYWORDS", + "KEYWORD_INVALID_LENGTH", + "NO_VALID_KEYWORDS", + "FREEFORM_PROMPT_INVALID_LENGTH", + "FREEFORM_PROMPT_REFERENCES_CHILDREN", + "FREEFORM_PROMPT_REFERENCES_SPECIFIC_PEOPLE", + "FREEFORM_PROMPT_VIOLATES_ADS_POLICY", + "FREEFORM_PROMPT_BRAND_CONTENT", + "INPUT_IMAGE_DEPICTS_CHILDREN", + "INPUT_IMAGE_CONTAINS_BRAND_CONTENT", + "INPUT_IMAGE_SENSITIVE", + "INPUT_IMAGE_VIOLATES_POLICY", + "ALL_OUTPUT_IMAGES_FILTERED_OUT_CHILDREN_DEPICTION", + "ALL_OUTPUT_IMAGES_FILTERED_OUT_SPECIFIC_PEOPLE", + "ALL_OUTPUT_IMAGES_FILTERED_OUT", + "INPUT_IMAGE_REQUIRED", + "INPUT_IMAGE_UNSUPPORTED_IMAGE_TYPE", + "CONTEXT_ASSET_GROUP_NOT_FOUND", + "CONTEXT_AD_GROUP_AD_NOT_FOUND", + "CONTEXT_CAMPAIGN_NOT_FOUND" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "No assets were generated for the given request.", + "A final URL is required but was not provided, and could not be sourced from the existing generation context because no existing generation context was provided.", + "A final URL is required but was not provided, and could not be sourced from the provided existing generation context.", + "The provided final URL is considered sensitive, and assets cannot be generated.", + "The language of the provided final URL is not supported.", + "The provided final URL was not indexed or could otherwise not be processed.", + "Campaign type is required but was not provided, and could not be sourced from the existing generation context because no existing generation context was provided.", + "The provided campaign type is not supported for this asset generation operation.", + "The provided field type is not supported for this asset generation operation.", + "The provided field type is not supported for the given campaign type.", + "The language of the provided freeform prompt is not supported.", + "The provided freeform prompt is considered sensitive, and assets cannot be generated.", + "The provided image file size exceeds the limit.", + "The provided image is empty.", + "Exactly one generation type must be provided.", + "Too many keywords provided in request.", + "A provided keyword does not have a valid length.", + "All keywords were filtered out.", + "The provided freeform prompt does not have a valid length.", + "The provided freeform prompt references children.", + "The provided freeform prompt references specific people.", + "The provided freeform prompt violates Ads Policy.", + "The provided freeform prompt contains brand content.", + "The provided image depicts children.", + "The provided image contains brand content.", + "The provided image contains sensitive subject matter.", + "The provided image may violate Google Ads policies.", + "All output images were filtered out because they included depictions of children.", + "All output images were filtered out because they included depictions of specific people.", + "All output images were filtered out for a reason not covered by a more specific error code.", + "At least one input image is required for certain requests.", + "The provided image is of an unsupported type.", + "Asset Group could not be found with the provided ID.", + "Ad Group Ad could not be found with the provided ID combination.", + "Could not find Campaign associated with the provided generation context." + ], + "type": "string" + }, + "assetGroupAssetError": { + "description": "The reasons for the asset group asset error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "DUPLICATE_RESOURCE", + "EXPANDABLE_TAGS_NOT_ALLOWED_IN_DESCRIPTION", + "AD_CUSTOMIZER_NOT_SUPPORTED", + "HOTEL_PROPERTY_ASSET_NOT_LINKED_TO_CAMPAIGN" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Cannot add duplicated asset group asset.", + "Expandable tags are not allowed in description assets.", + "Ad customizers are not supported in assetgroup's text assets.", + "Cannot add a HotelPropertyAsset to an AssetGroup that isn't linked to the parent campaign's hotel_property_asset_set field." + ], + "type": "string" + }, + "assetGroupError": { + "description": "The reasons for the asset group error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "DUPLICATE_NAME", + "CANNOT_ADD_ASSET_GROUP_FOR_CAMPAIGN_TYPE", + "NOT_ENOUGH_HEADLINE_ASSET", + "NOT_ENOUGH_LONG_HEADLINE_ASSET", + "NOT_ENOUGH_DESCRIPTION_ASSET", + "NOT_ENOUGH_BUSINESS_NAME_ASSET", + "NOT_ENOUGH_MARKETING_IMAGE_ASSET", + "NOT_ENOUGH_SQUARE_MARKETING_IMAGE_ASSET", + "NOT_ENOUGH_LOGO_ASSET", + "FINAL_URL_SHOPPING_MERCHANT_HOME_PAGE_URL_DOMAINS_DIFFER", + "PATH1_REQUIRED_WHEN_PATH2_IS_SET", + "SHORT_DESCRIPTION_REQUIRED", + "FINAL_URL_REQUIRED", + "FINAL_URL_CONTAINS_INVALID_DOMAIN_NAME", + "AD_CUSTOMIZER_NOT_SUPPORTED", + "CANNOT_MUTATE_ASSET_GROUP_FOR_REMOVED_CAMPAIGN" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Each asset group in a single campaign must have a unique name.", + "Cannot add asset group for the campaign type.", + "Not enough headline asset for a valid asset group.", + "Not enough long headline asset for a valid asset group.", + "Not enough description headline asset for a valid asset group.", + "Not enough business name asset for a valid asset group.", + "Not enough marketing image asset for a valid asset group.", + "Not enough square marketing image asset for a valid asset group.", + "Not enough logo asset for a valid asset group.", + "Final url and shopping merchant url does not have the same domain.", + "Path1 required when path2 is set.", + "At least one short description asset is required for a valid asset group.", + "Final url field is required for asset group.", + "Final url contains invalid domain name.", + "Ad customizers are not supported in asset group's text field.", + "Cannot mutate asset group for campaign with removed status." + ], + "type": "string" + }, + "assetGroupListingGroupFilterError": { + "description": "The reasons for the asset group listing group filter error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "TREE_TOO_DEEP", + "UNIT_CANNOT_HAVE_CHILDREN", + "SUBDIVISION_MUST_HAVE_EVERYTHING_ELSE_CHILD", + "DIFFERENT_DIMENSION_TYPE_BETWEEN_SIBLINGS", + "SAME_DIMENSION_VALUE_BETWEEN_SIBLINGS", + "SAME_DIMENSION_TYPE_BETWEEN_ANCESTORS", + "MULTIPLE_ROOTS", + "INVALID_DIMENSION_VALUE", + "MUST_REFINE_HIERARCHICAL_PARENT_TYPE", + "INVALID_PRODUCT_BIDDING_CATEGORY", + "CHANGING_CASE_VALUE_WITH_CHILDREN", + "SUBDIVISION_HAS_CHILDREN", + "CANNOT_REFINE_HIERARCHICAL_EVERYTHING_ELSE", + "DIMENSION_TYPE_NOT_ALLOWED", + "DUPLICATE_WEBPAGE_FILTER_UNDER_ASSET_GROUP", + "LISTING_SOURCE_NOT_ALLOWED", + "FILTER_EXCLUSION_NOT_ALLOWED", + "MULTIPLE_LISTING_SOURCES", + "MULTIPLE_WEBPAGE_CONDITION_TYPES_NOT_ALLOWED", + "MULTIPLE_WEBPAGE_TYPES_PER_ASSET_GROUP", + "PAGE_FEED_FILTER_HAS_PARENT", + "MULTIPLE_OPERATIONS_ON_ONE_NODE", + "TREE_WAS_INVALID_BEFORE_MUTATION" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Listing group tree is too deep.", + "Listing Group UNIT node cannot have children.", + "Listing Group SUBDIVISION node must have everything else child.", + "Dimension type of Listing Group must be the same as that of its siblings.", + "The sibling Listing Groups target exactly the same dimension value.", + "The dimension type is the same as one of the ancestor Listing Groups.", + "Each Listing Group tree must have a single root.", + "Invalid Listing Group dimension value.", + "Hierarchical dimension must refine a dimension of the same type.", + "Invalid Product Bidding Category.", + "Modifying case value is allowed only while updating the entire subtree at the same time.", + "Subdivision node has children which must be removed first.", + "Dimension can't subdivide everything-else node in its own hierarchy.", + "This dimension type is not allowed in this context.", + "All the webpage filters under an AssetGroup should be distinct.", + "Filter of the listing source type is not allowed in the context.", + "Exclusion filters are not allowed in the context.", + "All the filters under an AssetGroup should have the same listing source.", + "All the conditions in a webpage needs to be of same type.", + "All the webpage types of the filters under an AssetGroup should be of same type. Example: All the webpage types can be of type custom_label or url_contains but not both.", + "All page feed filter nodes are root nodes and they can't have a parent.", + "There cannot be more than one mutate operation per request that targets a single asset group listing group filter.", + "The tree is in an invalid state in the database. Any changes that don't fix its issues will fail validation." + ], + "type": "string" + }, + "assetGroupSignalError": { + "description": "The reasons for the asset group hint error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "TOO_MANY_WORDS", + "SEARCH_THEME_POLICY_VIOLATION", + "AUDIENCE_WITH_WRONG_ASSET_GROUP_ID" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "The number of words in the Search Theme signal exceed the allowed maximum. You can add up to 10 words in a keyword. See https://support.google.com/google-ads/answer/7476658 for details.", + "The search theme requested to be added violates certain policy. See https://support.google.com/adspolicy/answer/6008942.", + "The asset group referenced by the asset group signal does not match the asset group referenced by the audience being used in the asset group signal." + ], + "type": "string" + }, + "assetLinkError": { + "description": "The reasons for the asset link error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "PINNING_UNSUPPORTED", + "UNSUPPORTED_FIELD_TYPE", + "FIELD_TYPE_INCOMPATIBLE_WITH_ASSET_TYPE", + "FIELD_TYPE_INCOMPATIBLE_WITH_CAMPAIGN_TYPE", + "INCOMPATIBLE_ADVERTISING_CHANNEL_TYPE", + "IMAGE_NOT_WITHIN_SPECIFIED_DIMENSION_RANGE", + "INVALID_PINNED_FIELD", + "MEDIA_BUNDLE_ASSET_FILE_SIZE_TOO_LARGE", + "NOT_ENOUGH_AVAILABLE_ASSET_LINKS_FOR_VALID_COMBINATION", + "NOT_ENOUGH_AVAILABLE_ASSET_LINKS_WITH_FALLBACK", + "NOT_ENOUGH_AVAILABLE_ASSET_LINKS_WITH_FALLBACK_FOR_VALID_COMBINATION", + "YOUTUBE_VIDEO_REMOVED", + "YOUTUBE_VIDEO_TOO_LONG", + "YOUTUBE_VIDEO_TOO_SHORT", + "EXCLUDED_PARENT_FIELD_TYPE", + "INVALID_STATUS", + "YOUTUBE_VIDEO_DURATION_NOT_DEFINED", + "CANNOT_CREATE_AUTOMATICALLY_CREATED_LINKS", + "CANNOT_LINK_TO_AUTOMATICALLY_CREATED_ASSET", + "CANNOT_MODIFY_ASSET_LINK_SOURCE", + "CANNOT_LINK_LOCATION_LEAD_FORM_WITHOUT_LOCATION_ASSET", + "CUSTOMER_NOT_VERIFIED", + "UNSUPPORTED_CALL_TO_ACTION", + "BRAND_ASSETS_NOT_LINKED_AT_ASSET_GROUP_LEVEL", + "BRAND_ASSETS_NOT_LINKED_AT_CAMPAIGN_LEVEL" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Pinning is not supported for the given asset link field.", + "The given field type is not supported to be added directly through asset links.", + "The given asset's type and the specified field type are incompatible.", + "The specified field type is incompatible with the given campaign type.", + "The campaign advertising channel type cannot be associated with the given asset due to channel-based restrictions on the asset's fields.", + "The image asset provided is not within the dimension constraints specified for the submitted asset field.", + "The pinned field is not valid for the submitted asset field.", + "The media bundle asset provided is too large for the submitted asset field.", + "Not enough assets are available for use with other fields since other assets are pinned to specific fields.", + "Not enough assets with fallback are available. When validating the minimum number of assets, assets without fallback (for example, assets that contain location tag without default value \"{LOCATION(City)}\") will not be counted.", + "This is a combination of the NOT_ENOUGH_AVAILABLE_ASSET_LINKS_FOR_VALID_COMBINATION and NOT_ENOUGH_AVAILABLE_ASSET_LINKS_WITH_FALLBACK errors. Not enough assets with fallback are available since some assets are pinned.", + "The YouTube video referenced in the provided asset has been removed.", + "The YouTube video referenced in the provided asset is too long for the field submitted.", + "The YouTube video referenced in the provided asset is too short for the field submitted.", + "The specified field type is excluded for given campaign or ad group.", + "The status is invalid for the operation specified.", + "The YouTube video referenced in the provided asset has unknown duration. This might be the case for a livestream video or a video being currently uploaded to YouTube. In both cases, the video duration should eventually get resolved.", + "User cannot create automatically created links.", + "Advertiser links cannot link to automatically created asset.", + "Automatically created links cannot be changed into advertiser links or the reverse.", + "Lead Form asset with Location answer type can't be linked to the Customer/Campaign because there are no Location assets.", + "Customer is not verified.", + "Call to action value is not supported.", + "For Performance Max campaigns where brand_guidelines_enabled is false, business name and logo assets must be linked as AssetGroupAssets.", + "For Performance Max campaigns where brand_guidelines_enabled is true, business name and logo assets must be linked as CampaignAssets." + ], + "type": "string" + }, + "assetSetAssetError": { + "description": "The reasons for the asset set asset error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "INVALID_ASSET_TYPE", + "INVALID_ASSET_SET_TYPE", + "DUPLICATE_EXTERNAL_KEY", + "PARENT_LINKAGE_DOES_NOT_EXIST" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "The asset type is not eligible to be linked to the specific type of asset set.", + "The asset set type is not eligible to contain the specified type of assets.", + "The asset contains duplicate external key with another asset in the asset set.", + "When attaching a Location typed Asset to a LocationGroup typed AssetSet, the AssetSetAsset linkage between the parent LocationSync AssetSet and the Asset doesn't exist." + ], + "type": "string" + }, + "assetSetError": { + "description": "The reasons for the asset set error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "DUPLICATE_ASSET_SET_NAME", + "INVALID_PARENT_ASSET_SET_TYPE", + "ASSET_SET_SOURCE_INCOMPATIBLE_WITH_PARENT_ASSET_SET", + "ASSET_SET_TYPE_CANNOT_BE_LINKED_TO_CUSTOMER", + "INVALID_CHAIN_IDS", + "LOCATION_SYNC_ASSET_SET_DOES_NOT_SUPPORT_RELATIONSHIP_TYPE", + "NOT_UNIQUE_ENABLED_LOCATION_SYNC_TYPED_ASSET_SET", + "INVALID_PLACE_IDS", + "OAUTH_INFO_INVALID", + "OAUTH_INFO_MISSING", + "CANNOT_DELETE_AS_ENABLED_LINKAGES_EXIST" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "The asset set name matches that of another enabled asset set.", + "The type of AssetSet.asset_set_source does not match the type of AssetSet.location_set.source in its parent AssetSet.", + "The asset set source doesn't match its parent AssetSet's data.", + "This AssetSet type cannot be linked to CustomerAssetSet.", + "The chain id(s) in ChainSet of a LOCATION_SYNC typed AssetSet is invalid.", + "The relationship type in ChainSet of a LOCATION_SYNC typed AssetSet is not supported.", + "There is more than one enabled LocationSync typed AssetSet under one customer.", + "The place id(s) in a LocationSync typed AssetSet is invalid and can't be decoded.", + "The Google Business Profile OAuth info is invalid.", + "The Google Business Profile OAuth info is missing.", + "Can't delete an AssetSet if it has any enabled linkages (e.g. CustomerAssetSet), or AssetSet is a parent AssetSet and has enabled child AssetSet associated." + ], + "type": "string" + }, + "assetSetLinkError": { + "description": "The reasons for the asset set link error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "INCOMPATIBLE_ADVERTISING_CHANNEL_TYPE", + "DUPLICATE_FEED_LINK", + "INCOMPATIBLE_ASSET_SET_TYPE_WITH_CAMPAIGN_TYPE", + "DUPLICATE_ASSET_SET_LINK", + "ASSET_SET_LINK_CANNOT_BE_REMOVED" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Advertising channel type cannot be attached to the asset set due to channel-based restrictions.", + "For this asset set type, only one campaign to feed linkage is allowed.", + "The asset set type and campaign type are incompatible.", + "Cannot link duplicate asset sets to the same campaign.", + "Cannot remove the asset set link. If a campaign is linked with only one asset set and you attempt to unlink them, this error will be triggered." + ], + "type": "string" + }, + "audienceError": { + "description": "The reasons for the audience error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "NAME_ALREADY_IN_USE", + "DIMENSION_INVALID", + "AUDIENCE_SEGMENT_NOT_FOUND", + "AUDIENCE_SEGMENT_TYPE_NOT_SUPPORTED", + "DUPLICATE_AUDIENCE_SEGMENT", + "TOO_MANY_SEGMENTS", + "TOO_MANY_DIMENSIONS_OF_SAME_TYPE", + "IN_USE", + "MISSING_ASSET_GROUP_ID", + "CANNOT_CHANGE_FROM_CUSTOMER_TO_ASSET_GROUP_SCOPE" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "An audience with this name already exists.", + "A dimension within the audience definition is not valid.", + "One of the audience segment added is not found.", + "One of the audience segment type is not supported.", + "The same segment already exists in this audience.", + "Audience can't have more than allowed number segments.", + "Audience can't have multiple dimensions of same type.", + "The audience cannot be removed, because it is currently used in an ad group criterion or asset group signal in an (enabled or paused) ad group or campaign.", + "Asset Group scoped audience requires an asset group ID.", + "Audience scope may not be changed from Customer to AssetGroup." + ], + "type": "string" + }, + "audienceInsightsError": { + "description": "The reasons for the Audience Insights error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "DIMENSION_INCOMPATIBLE_WITH_TOPIC_AUDIENCE_COMBINATIONS" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "The dimensions cannot be used with topic audience combinations." + ], + "type": "string" + }, + "authenticationError": { + "description": "Indicates failure to properly authenticate user.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "AUTHENTICATION_ERROR", + "CLIENT_CUSTOMER_ID_INVALID", + "CUSTOMER_NOT_FOUND", + "GOOGLE_ACCOUNT_DELETED", + "GOOGLE_ACCOUNT_COOKIE_INVALID", + "GOOGLE_ACCOUNT_AUTHENTICATION_FAILED", + "GOOGLE_ACCOUNT_USER_AND_ADS_USER_MISMATCH", + "LOGIN_COOKIE_REQUIRED", + "NOT_ADS_USER", + "OAUTH_TOKEN_INVALID", + "OAUTH_TOKEN_EXPIRED", + "OAUTH_TOKEN_DISABLED", + "OAUTH_TOKEN_REVOKED", + "OAUTH_TOKEN_HEADER_INVALID", + "LOGIN_COOKIE_INVALID", + "INVALID_EMAIL_ADDRESS", + "USER_ID_INVALID", + "TWO_STEP_VERIFICATION_NOT_ENROLLED", + "ADVANCED_PROTECTION_NOT_ENROLLED", + "ORGANIZATION_NOT_RECOGNIZED", + "ORGANIZATION_NOT_APPROVED", + "ORGANIZATION_NOT_ASSOCIATED_WITH_DEVELOPER_TOKEN", + "DEVELOPER_TOKEN_INVALID" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Authentication of the request failed.", + "Client customer ID is not a number.", + "No customer found for the provided customer ID.", + "Client's Google account is deleted.", + "Account login token in the cookie is invalid.", + "A problem occurred during Google account authentication.", + "The user in the Google account login token does not match the user ID in the cookie.", + "Login cookie is required for authentication.", + "The Google account that generated the OAuth access token is not associated with a Search Ads 360 account. Create a new account, or add the Google account to an existing Search Ads 360 account.", + "OAuth token in the header is not valid.", + "OAuth token in the header has expired.", + "OAuth token in the header has been disabled.", + "OAuth token in the header has been revoked.", + "OAuth token HTTP header is malformed.", + "Login cookie is not valid.", + "The email address provided is invalid or does not exist.", + "User ID in the header is not a valid ID.", + "An account administrator changed this account's authentication settings. To access this account, enable 2-Step Verification in your Google account at https://www.google.com/landing/2step.", + "An account administrator changed this account's authentication settings. To access this account, enable Advanced Protection in your Google account at https://landing.google.com/advancedprotection.", + "The Cloud organization associated with the project is not recognized.", + "The Cloud organization associated with the project is not approved for prod access.", + "The Cloud organization associated with the project is not associated with the developer token.", + "The developer token is not valid." + ], + "type": "string" + }, + "authorizationError": { + "description": "An error encountered when trying to authorize a user.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "USER_PERMISSION_DENIED", + "DEVELOPER_TOKEN_NOT_ON_ALLOWLIST", + "DEVELOPER_TOKEN_PROHIBITED", + "PROJECT_DISABLED", + "AUTHORIZATION_ERROR", + "ACTION_NOT_PERMITTED", + "INCOMPLETE_SIGNUP", + "CUSTOMER_NOT_ENABLED", + "MISSING_TOS", + "DEVELOPER_TOKEN_NOT_APPROVED", + "INVALID_LOGIN_CUSTOMER_ID_SERVING_CUSTOMER_ID_COMBINATION", + "SERVICE_ACCESS_DENIED", + "ACCESS_DENIED_FOR_ACCOUNT_TYPE", + "METRIC_ACCESS_DENIED", + "CLOUD_PROJECT_NOT_UNDER_ORGANIZATION", + "ACTION_NOT_PERMITTED_FOR_SUSPENDED_ACCOUNT" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "User doesn't have permission to access customer. Note: If you're accessing a client customer, the manager's customer ID must be set in the `login-customer-id` header. Learn more at https://developers.google.com/search-ads/reporting/concepts/call-structure#login_customer_id_header", + "The developer token is not on the allow-list.", + "The developer token is not allowed with the project sent in the request.", + "The Google Cloud project sent in the request does not have permission to access the api.", + "Authorization of the client failed.", + "The user does not have permission to perform this action (for example, ADD, UPDATE, REMOVE) on the resource or call a method.", + "Signup not complete.", + "The customer account can't be accessed because it is not yet enabled or has been deactivated.", + "The developer must sign the terms of service. They can be found here: https://developers.google.com/terms", + "The developer token is only approved for use with test accounts. To access non-test accounts, apply for Basic or Standard access.", + "The login customer specified does not have access to the account specified, so the request is invalid.", + "The developer specified does not have access to the service.", + "The customer (or login customer) isn't allowed in Search Ads 360 API. It belongs to another ads system.", + "The developer does not have access to the metrics queried.", + "The Google Cloud project is not under the required organization.", + "The user does not have permission to perform this action on the resource or method because the Google Ads account is suspended." + ], + "type": "string" + }, + "automaticallyCreatedAssetRemovalError": { + "description": "The reasons for error in automatically created asset removal action.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "AD_DOES_NOT_EXIST", + "INVALID_AD_TYPE", + "ASSET_DOES_NOT_EXIST", + "ASSET_FIELD_TYPE_DOES_NOT_MATCH", + "NOT_AN_AUTOMATICALLY_CREATED_ASSET" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "The ad does not exist.", + "Ad type is not supported. Only Responsive Search Ad type is supported.", + "The asset does not exist.", + "The asset field type does not match.", + "Not an automatically created asset." + ], + "type": "string" + }, + "batchJobError": { + "description": "The reasons for the batch job error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "CANNOT_MODIFY_JOB_AFTER_JOB_STARTS_RUNNING", + "EMPTY_OPERATIONS", + "INVALID_SEQUENCE_TOKEN", + "RESULTS_NOT_READY", + "INVALID_PAGE_SIZE", + "CAN_ONLY_REMOVE_PENDING_JOB", + "CANNOT_LIST_RESULTS", + "ASSET_GROUP_AND_ASSET_GROUP_ASSET_TRANSACTION_FAILURE", + "ASSET_GROUP_LISTING_GROUP_FILTER_TRANSACTION_FAILURE", + "REQUEST_TOO_LARGE", + "CAMPAIGN_AND_CAMPAIGN_ASSET_TRANSACTION_FAILURE" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "The batch job cannot add more operations or run after it has started running.", + "The operations for an AddBatchJobOperations request were empty.", + "The sequence token for an AddBatchJobOperations request was invalid.", + "Batch job results can only be retrieved once the job is finished.", + "The page size for ListBatchJobResults was invalid.", + "The batch job cannot be removed because it has started running.", + "The batch job cannot be listed due to unexpected errors such as duplicate checkpoints.", + "The request contains interdependent AssetGroup and AssetGroupAsset operations that are treated atomically as a single transaction, and one or more of the operations in that transaction failed, which caused the entire transaction, and therefore this mutate operation, to fail. The operations that caused the transaction to fail can be found in the consecutive AssetGroup or AssetGroupAsset results with the same asset group id. The mutate operation will be successful once the remaining errors in the transaction are fixed.", + "The request contains interdependent AssetGroupListingGroupFilter operations that are treated atomically as a single transaction, and one or more of the operations in that transaction failed, which caused the entire transaction, and therefore this mutate operation, to fail. The operations that caused the transaction to fail can be found in the consecutive AssetGroupListingGroupFilter results with the same asset group id. The mutate operation will be successful once the remaining errors in the transaction are fixed.", + "The AddBatchJobOperationsRequest is too large. Split the request into smaller requests. The maximum allowed request size is 10484504 bytes.", + "This error indicates a failed transaction involving interdependent Campaign and CampaignAsset operations that are treated atomically as a single transaction. Because some operations within the transaction failed, the entire set of changes was rejected. Related error details are found in the results for the Campaign and CampaignAssets sharing the same Campaign ID. The transaction will succeed after all associated errors are resolved." + ], + "type": "string" + }, + "benchmarksError": { + "description": "The reasons for the Benchmarks error.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "MAX_QUERY_COMPLEXITY_EXCEEDED" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "The combination of inputs to generate benchmarks is too complex. To reduce complexity, try selecting a more granular benchmarks source, a smaller date range, or a smaller set of products." + ], + "type": "string" + }, + "biddingError": { + "description": "The reasons for the bidding errors", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "BIDDING_STRATEGY_TRANSITION_NOT_ALLOWED", + "CANNOT_ATTACH_BIDDING_STRATEGY_TO_CAMPAIGN", + "INVALID_ANONYMOUS_BIDDING_STRATEGY_TYPE", + "INVALID_BIDDING_STRATEGY_TYPE", + "INVALID_BID", + "BIDDING_STRATEGY_NOT_AVAILABLE_FOR_ACCOUNT_TYPE", + "CANNOT_CREATE_CAMPAIGN_WITH_BIDDING_STRATEGY", + "CANNOT_TARGET_CONTENT_NETWORK_ONLY_WITH_CAMPAIGN_LEVEL_POP_BIDDING_STRATEGY", + "BIDDING_STRATEGY_NOT_SUPPORTED_WITH_AD_SCHEDULE", + "PAY_PER_CONVERSION_NOT_AVAILABLE_FOR_CUSTOMER", + "PAY_PER_CONVERSION_NOT_ALLOWED_WITH_TARGET_CPA", + "BIDDING_STRATEGY_NOT_ALLOWED_FOR_SEARCH_ONLY_CAMPAIGNS", + "BIDDING_STRATEGY_NOT_SUPPORTED_IN_DRAFTS_OR_EXPERIMENTS", + "BIDDING_STRATEGY_TYPE_DOES_NOT_SUPPORT_PRODUCT_TYPE_ADGROUP_CRITERION", + "BID_TOO_SMALL", + "BID_TOO_BIG", + "BID_TOO_MANY_FRACTIONAL_DIGITS", + "INVALID_DOMAIN_NAME", + "NOT_COMPATIBLE_WITH_PAYMENT_MODE", + "BIDDING_STRATEGY_TYPE_INCOMPATIBLE_WITH_SHARED_BUDGET", + "BIDDING_STRATEGY_AND_BUDGET_MUST_BE_ALIGNED", + "BIDDING_STRATEGY_AND_BUDGET_MUST_BE_ATTACHED_TO_THE_SAME_CAMPAIGNS_TO_ALIGN", + "BIDDING_STRATEGY_AND_BUDGET_MUST_BE_REMOVED_TOGETHER", + "CPC_BID_FLOOR_MICROS_GREATER_THAN_CPC_BID_CEILING_MICROS", + "TARGET_ROAS_TOLERANCE_PERCENT_MILLIS_MUST_BE_INTEGER" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Cannot transition to new bidding strategy.", + "Cannot attach bidding strategy to campaign.", + "Bidding strategy is not supported or cannot be used as anonymous.", + "The type does not match the named strategy's type.", + "The bid is invalid.", + "Bidding strategy is not available for the account type.", + "Campaign can not be created with given bidding strategy. It can be transitioned to the strategy, once eligible.", + "Cannot target content network only as campaign uses Page One Promoted bidding strategy.", + "Budget Optimizer and Target Spend bidding strategies are not supported for campaigns with AdSchedule targeting.", + "Pay per conversion is not available to all the customer, only few customers on the allow-list can use this.", + "Pay per conversion is not allowed with Target CPA.", + "Cannot set bidding strategy to Manual CPM for search network only campaigns.", + "The bidding strategy is not supported for use in drafts or experiments.", + "Bidding strategy type does not support product type ad group criterion.", + "Bid amount is too small.", + "Bid amount is too big.", + "Bid has too many fractional digit precision.", + "Invalid domain name specified.", + "The field is not compatible with the payment mode.", + "Bidding strategy type is incompatible with shared budget.", + "The attached bidding strategy and budget must be aligned with each other if alignment is specified on either entity.", + "The attached bidding strategy and budget must be attached to the same campaigns to become aligned.", + "The aligned bidding strategy and budget must be removed at the same time.", + "cpc_bid_floor_micros is greater than cpc_bid_ceiling_micros.", + "target_roas_tolerance_percent_millis must be integer." + ], + "type": "string" + }, + "biddingStrategyError": { + "description": "An error with a Bidding Strategy mutate.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "DUPLICATE_NAME", + "CANNOT_CHANGE_BIDDING_STRATEGY_TYPE", + "CANNOT_REMOVE_ASSOCIATED_STRATEGY", + "BIDDING_STRATEGY_NOT_SUPPORTED", + "INCOMPATIBLE_BIDDING_STRATEGY_AND_BIDDING_STRATEGY_GOAL_TYPE" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Each bidding strategy must have a unique name.", + "Bidding strategy type is immutable.", + "Only bidding strategies not linked to campaigns, adgroups or adgroup criteria can be removed.", + "The specified bidding strategy is not supported.", + "The bidding strategy is incompatible with the campaign's bidding strategy goal type." + ], + "type": "string" + }, + "billingSetupError": { + "description": "The reasons for the billing setup error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "CANNOT_USE_EXISTING_AND_NEW_ACCOUNT", + "CANNOT_REMOVE_STARTED_BILLING_SETUP", + "CANNOT_CHANGE_BILLING_TO_SAME_PAYMENTS_ACCOUNT", + "BILLING_SETUP_NOT_PERMITTED_FOR_CUSTOMER_STATUS", + "INVALID_PAYMENTS_ACCOUNT", + "BILLING_SETUP_NOT_PERMITTED_FOR_CUSTOMER_CATEGORY", + "INVALID_START_TIME_TYPE", + "THIRD_PARTY_ALREADY_HAS_BILLING", + "BILLING_SETUP_IN_PROGRESS", + "NO_SIGNUP_PERMISSION", + "CHANGE_OF_BILL_TO_IN_PROGRESS", + "PAYMENTS_PROFILE_NOT_FOUND", + "PAYMENTS_ACCOUNT_NOT_FOUND", + "PAYMENTS_PROFILE_INELIGIBLE", + "PAYMENTS_ACCOUNT_INELIGIBLE", + "CUSTOMER_NEEDS_INTERNAL_APPROVAL", + "PAYMENTS_PROFILE_NEEDS_SERVICE_AGREEMENT_ACCEPTANCE", + "PAYMENTS_ACCOUNT_INELIGIBLE_CURRENCY_CODE_MISMATCH", + "FUTURE_START_TIME_PROHIBITED", + "TOO_MANY_BILLING_SETUPS_FOR_PAYMENTS_ACCOUNT" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Cannot specify both an existing payments account and a new payments account when setting up billing.", + "Cannot cancel an approved billing setup whose start time has passed.", + "Cannot perform a Change of Bill-To (CBT) to the same payments account.", + "Billing setups can only be used by customers with ENABLED or DRAFT status.", + "Billing setups must either include a correctly formatted existing payments account id, or a non-empty new payments account name.", + "Only billable and third-party customers can create billing setups.", + "Billing setup creations can only use NOW for start time type.", + "Billing setups can only be created for a third-party customer if they do not already have a setup.", + "Billing setups cannot be created if there is already a pending billing in progress.", + "Billing setups can only be created by customers who have permission to setup billings. Users can contact a representative for help setting up permissions.", + "Billing setups cannot be created if there is already a future-approved billing.", + "Requested payments profile not found.", + "Requested payments account not found.", + "Billing setup creation failed because the payments profile is ineligible.", + "Billing setup creation failed because the payments account is ineligible.", + "Billing setup creation failed because the payments profile needs internal approval.", + "Billing setup creation failed because the user needs to accept master service agreement on the payments profile.", + "Payments account has different currency code than the current customer and hence cannot be used to setup billing.", + "A start time in the future cannot be used because there is currently no active billing setup for this customer.", + "The payments account has maximum number of billing setups." + ], + "type": "string" + }, + "brandGuidelinesMigrationError": { + "description": "The reasons for the brand guidelines migration error.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "BRAND_GUIDELINES_ALREADY_ENABLED", + "CANNOT_ENABLE_BRAND_GUIDELINES_FOR_REMOVED_CAMPAIGN", + "BRAND_GUIDELINES_LOGO_LIMIT_EXCEEDED", + "CANNOT_AUTO_POPULATE_BRAND_ASSETS_WHEN_BRAND_ASSETS_PROVIDED", + "AUTO_POPULATE_BRAND_ASSETS_REQUIRED_WHEN_BRAND_ASSETS_OMITTED", + "TOO_MANY_ENABLE_OPERATIONS" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "This campaign is already enabled for Brand Guidelines.", + "Brand Guidelines can only be enabled for active or suspended campaigns.", + "Maximum of 5 square and landscape logos can be specified for Brand Guidelines.", + "Either auto_populate_brand_assets must be true or brand_assets must be provided, but not both.", + "Either auto_populate_brand_assets can be false or brand_assets can be omitted, but not both.", + "A maximum of 10 enable operations can be executed in a request." + ], + "type": "string" + }, + "campaignBudgetError": { + "description": "An error with a Campaign Budget mutate.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "CAMPAIGN_BUDGET_CANNOT_BE_SHARED", + "CAMPAIGN_BUDGET_REMOVED", + "CAMPAIGN_BUDGET_IN_USE", + "CAMPAIGN_BUDGET_PERIOD_NOT_AVAILABLE", + "CANNOT_MODIFY_FIELD_OF_IMPLICITLY_SHARED_CAMPAIGN_BUDGET", + "CANNOT_UPDATE_CAMPAIGN_BUDGET_TO_IMPLICITLY_SHARED", + "CANNOT_UPDATE_CAMPAIGN_BUDGET_TO_EXPLICITLY_SHARED_WITHOUT_NAME", + "CANNOT_UPDATE_CAMPAIGN_BUDGET_TO_EXPLICITLY_SHARED", + "CANNOT_USE_IMPLICITLY_SHARED_CAMPAIGN_BUDGET_WITH_MULTIPLE_CAMPAIGNS", + "DUPLICATE_NAME", + "MONEY_AMOUNT_IN_WRONG_CURRENCY", + "MONEY_AMOUNT_LESS_THAN_CURRENCY_MINIMUM_CPC", + "MONEY_AMOUNT_TOO_LARGE", + "NEGATIVE_MONEY_AMOUNT", + "NON_MULTIPLE_OF_MINIMUM_CURRENCY_UNIT", + "TOTAL_BUDGET_AMOUNT_MUST_BE_UNSET_FOR_BUDGET_PERIOD_DAILY", + "INVALID_PERIOD", + "CANNOT_USE_ACCELERATED_DELIVERY_MODE", + "BUDGET_AMOUNT_MUST_BE_UNSET_FOR_CUSTOM_BUDGET_PERIOD", + "BUDGET_BELOW_PER_DAY_MINIMUM" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "The campaign budget cannot be shared.", + "The requested campaign budget no longer exists.", + "The campaign budget is associated with at least one campaign, and so the campaign budget cannot be removed.", + "Customer is not on the allow-list for this campaign budget period.", + "This field is not mutable on implicitly shared campaign budgets", + "Cannot change explicitly shared campaign budgets back to implicitly shared ones.", + "An implicit campaign budget without a name cannot be changed to explicitly shared campaign budget.", + "Cannot change an implicitly shared campaign budget to an explicitly shared one.", + "Only explicitly shared campaign budgets can be used with multiple campaigns.", + "A campaign budget with this name already exists.", + "A money amount was not in the expected currency.", + "A money amount was less than the minimum CPC for currency.", + "A money amount was greater than the maximum allowed.", + "A money amount was negative.", + "A money amount was not a multiple of a minimum unit.", + "Total budget amount must be unset when BudgetPeriod is DAILY.", + "The period of the budget is not allowed.", + "Cannot use accelerated delivery method on this budget.", + "Budget amount must be unset when BudgetPeriod is CUSTOM.", + "Budget amount or total amount must be above this campaign's per-day minimum. See the error's details.budget_per_day_minimum_error_details field for more information." + ], + "type": "string" + }, + "campaignConversionGoalError": { + "description": "The reasons for the campaign conversion goal error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "CANNOT_USE_CAMPAIGN_GOAL_FOR_SEARCH_ADS_360_MANAGED_CAMPAIGN", + "CANNOT_USE_STORE_SALE_GOAL_FOR_PERFORMANCE_MAX_CAMPAIGN" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Campaign is managed by Search Ads 360 but uses Unified Goal.", + "Performance Max campaign cannot use an included store sale campaign goal." + ], + "type": "string" + }, + "campaignCriterionError": { + "description": "The reasons for the campaign criterion error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "CONCRETE_TYPE_REQUIRED", + "INVALID_PLACEMENT_URL", + "CANNOT_EXCLUDE_CRITERIA_TYPE", + "CANNOT_SET_STATUS_FOR_CRITERIA_TYPE", + "CANNOT_SET_STATUS_FOR_EXCLUDED_CRITERIA", + "CANNOT_TARGET_AND_EXCLUDE", + "TOO_MANY_OPERATIONS", + "OPERATOR_NOT_SUPPORTED_FOR_CRITERION_TYPE", + "SHOPPING_CAMPAIGN_SALES_COUNTRY_NOT_SUPPORTED_FOR_SALES_CHANNEL", + "CANNOT_ADD_EXISTING_FIELD", + "CANNOT_UPDATE_NEGATIVE_CRITERION", + "CANNOT_SET_NEGATIVE_KEYWORD_THEME_CONSTANT_CRITERION", + "INVALID_KEYWORD_THEME_CONSTANT", + "MISSING_KEYWORD_THEME_CONSTANT_OR_FREE_FORM_KEYWORD_THEME", + "CANNOT_TARGET_BOTH_PROXIMITY_AND_LOCATION_CRITERIA_FOR_SMART_CAMPAIGN", + "CANNOT_TARGET_MULTIPLE_PROXIMITY_CRITERIA_FOR_SMART_CAMPAIGN", + "LOCATION_NOT_LAUNCHED_FOR_LOCAL_SERVICES_CAMPAIGN", + "LOCATION_INVALID_FOR_LOCAL_SERVICES_CAMPAIGN", + "CANNOT_TARGET_COUNTRY_FOR_LOCAL_SERVICES_CAMPAIGN", + "LOCATION_NOT_IN_HOME_COUNTRY_FOR_LOCAL_SERVICES_CAMPAIGN", + "CANNOT_ADD_OR_REMOVE_LOCATION_FOR_LOCAL_SERVICES_CAMPAIGN", + "AT_LEAST_ONE_POSITIVE_LOCATION_REQUIRED_FOR_LOCAL_SERVICES_CAMPAIGN", + "AT_LEAST_ONE_LOCAL_SERVICE_ID_CRITERION_REQUIRED_FOR_LOCAL_SERVICES_CAMPAIGN", + "LOCAL_SERVICE_ID_NOT_FOUND_FOR_CATEGORY", + "CANNOT_ATTACH_BRAND_LIST_TO_NON_QUALIFIED_SEARCH_CAMPAIGN", + "CANNOT_REMOVE_ALL_LOCATIONS_DUE_TO_TOO_MANY_COUNTRY_EXCLUSIONS", + "INVALID_VIDEO_LINEUP_ID" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Concrete type of criterion (keyword v.s. placement) is required for CREATE and UPDATE operations.", + "Invalid placement URL.", + "Criteria type can not be excluded for the campaign by the customer. like AOL account type cannot target site type criteria", + "Cannot set the campaign criterion status for this criteria type.", + "Cannot set the campaign criterion status for an excluded criteria.", + "Cannot target and exclude the same criterion.", + "The mutate contained too many operations.", + "This operator cannot be applied to a criterion of this type.", + "The Shopping campaign sales country is not supported for ProductSalesChannel targeting.", + "The existing field can't be updated with CREATE operation. It can be updated with UPDATE operation only.", + "Negative criteria are immutable, so updates are not allowed.", + "Only free form names are allowed for negative Smart campaign keyword theme.", + "Invalid Smart campaign keyword theme constant criterion.", + "A Smart campaign keyword theme constant or free-form Smart campaign keyword theme is required.", + "A Smart campaign may not target proximity and location criteria simultaneously.", + "A Smart campaign may not target multiple proximity criteria.", + "Location is not launched for Local Services Campaigns.", + "A Local Services campaign may not target certain criteria types.", + "Country locations are not supported for Local Services campaign.", + "Location is not within the home country of Local Services campaign.", + "Local Services profile does not exist for a particular Local Services campaign.", + "Local Services campaign must have at least one target location.", + "At least one positive local service ID criterion is required for a Local Services campaign.", + "Local service ID is not found under selected categories in local services campaign setting.", + "For search advertising channel, brand lists can only be applied to exclusive targeting, broad match campaigns for inclusive targeting or PMax generated campaigns.", + "Campaigns that target all countries and territories are limited to a certain number of top-level location exclusions. If removing a criterion causes the campaign to target all countries and territories and the campaign has more top-level location exclusions than the limit allows, then this error is returned.", + "Video lineup ID does not exist." + ], + "type": "string" + }, + "campaignCustomizerError": { + "description": "The reasons for the campaign customizer error.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version." + ], + "type": "string" + }, + "campaignDraftError": { + "description": "The reasons for the campaign draft error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "DUPLICATE_DRAFT_NAME", + "INVALID_STATUS_TRANSITION_FROM_REMOVED", + "INVALID_STATUS_TRANSITION_FROM_PROMOTED", + "INVALID_STATUS_TRANSITION_FROM_PROMOTE_FAILED", + "CUSTOMER_CANNOT_CREATE_DRAFT", + "CAMPAIGN_CANNOT_CREATE_DRAFT", + "INVALID_DRAFT_CHANGE", + "INVALID_STATUS_TRANSITION", + "MAX_NUMBER_OF_DRAFTS_PER_CAMPAIGN_REACHED", + "LIST_ERRORS_FOR_PROMOTED_DRAFT_ONLY" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "A draft with this name already exists for this campaign.", + "The draft is removed and cannot be transitioned to another status.", + "The draft has been promoted and cannot be transitioned to the specified status.", + "The draft has failed to be promoted and cannot be transitioned to the specified status.", + "This customer is not allowed to create drafts.", + "This campaign is not allowed to create drafts.", + "This modification cannot be made on a draft.", + "The draft cannot be transitioned to the specified status from its current status.", + "The campaign has reached the maximum number of drafts that can be created for a campaign throughout its lifetime. No additional drafts can be created for this campaign. Removed drafts also count towards this limit.", + "ListAsyncErrors was called without first promoting the draft." + ], + "type": "string" + }, + "campaignError": { + "description": "An error with a Campaign mutate.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "CANNOT_TARGET_CONTENT_NETWORK", + "CANNOT_TARGET_SEARCH_NETWORK", + "CANNOT_TARGET_SEARCH_NETWORK_WITHOUT_GOOGLE_SEARCH", + "CANNOT_TARGET_GOOGLE_SEARCH_FOR_CPM_CAMPAIGN", + "CAMPAIGN_MUST_TARGET_AT_LEAST_ONE_NETWORK", + "CANNOT_TARGET_PARTNER_SEARCH_NETWORK", + "CANNOT_TARGET_CONTENT_NETWORK_ONLY_WITH_CRITERIA_LEVEL_BIDDING_STRATEGY", + "CAMPAIGN_DURATION_MUST_CONTAIN_ALL_RUNNABLE_TRIALS", + "CANNOT_MODIFY_FOR_TRIAL_CAMPAIGN", + "DUPLICATE_CAMPAIGN_NAME", + "INCOMPATIBLE_CAMPAIGN_FIELD", + "INVALID_CAMPAIGN_NAME", + "INVALID_AD_SERVING_OPTIMIZATION_STATUS", + "INVALID_TRACKING_URL", + "CANNOT_SET_BOTH_TRACKING_URL_TEMPLATE_AND_TRACKING_SETTING", + "MAX_IMPRESSIONS_NOT_IN_RANGE", + "TIME_UNIT_NOT_SUPPORTED", + "INVALID_OPERATION_IF_SERVING_STATUS_HAS_ENDED", + "BUDGET_CANNOT_BE_SHARED", + "CAMPAIGN_CANNOT_USE_SHARED_BUDGET", + "CANNOT_CHANGE_BUDGET_ON_CAMPAIGN_WITH_TRIALS", + "CAMPAIGN_LABEL_DOES_NOT_EXIST", + "CAMPAIGN_LABEL_ALREADY_EXISTS", + "MISSING_SHOPPING_SETTING", + "INVALID_SHOPPING_SALES_COUNTRY", + "ADVERTISING_CHANNEL_TYPE_NOT_AVAILABLE_FOR_ACCOUNT_TYPE", + "INVALID_ADVERTISING_CHANNEL_SUB_TYPE", + "AT_LEAST_ONE_CONVERSION_MUST_BE_SELECTED", + "CANNOT_SET_AD_ROTATION_MODE", + "CANNOT_MODIFY_START_DATE_IF_ALREADY_STARTED", + "CANNOT_SET_DATE_TO_PAST", + "MISSING_HOTEL_CUSTOMER_LINK", + "INVALID_HOTEL_CUSTOMER_LINK", + "MISSING_HOTEL_SETTING", + "CANNOT_USE_SHARED_CAMPAIGN_BUDGET_WHILE_PART_OF_CAMPAIGN_GROUP", + "APP_NOT_FOUND", + "SHOPPING_ENABLE_LOCAL_NOT_SUPPORTED_FOR_CAMPAIGN_TYPE", + "MERCHANT_NOT_ALLOWED_FOR_COMPARISON_LISTING_ADS", + "INSUFFICIENT_APP_INSTALLS_COUNT", + "SENSITIVE_CATEGORY_APP", + "HEC_AGREEMENT_REQUIRED", + "NOT_COMPATIBLE_WITH_VIEW_THROUGH_CONVERSION_OPTIMIZATION", + "INVALID_EXCLUDED_PARENT_ASSET_FIELD_TYPE", + "CANNOT_CREATE_APP_PRE_REGISTRATION_FOR_NON_ANDROID_APP", + "APP_NOT_AVAILABLE_TO_CREATE_APP_PRE_REGISTRATION_CAMPAIGN", + "INCOMPATIBLE_BUDGET_TYPE", + "LOCAL_SERVICES_DUPLICATE_CATEGORY_BID", + "LOCAL_SERVICES_INVALID_CATEGORY_BID", + "LOCAL_SERVICES_MISSING_CATEGORY_BID", + "INVALID_STATUS_CHANGE", + "MISSING_TRAVEL_CUSTOMER_LINK", + "INVALID_TRAVEL_CUSTOMER_LINK", + "INVALID_EXCLUDED_PARENT_ASSET_SET_TYPE", + "ASSET_SET_NOT_A_HOTEL_PROPERTY_ASSET_SET", + "HOTEL_PROPERTY_ASSET_SET_ONLY_FOR_PERFORMANCE_MAX_FOR_TRAVEL_GOALS", + "AVERAGE_DAILY_SPEND_TOO_HIGH", + "CANNOT_ATTACH_TO_REMOVED_CAMPAIGN_GROUP", + "CANNOT_ATTACH_TO_BIDDING_STRATEGY", + "CANNOT_CHANGE_BUDGET_PERIOD", + "NOT_ENOUGH_CONVERSIONS", + "CANNOT_SET_MORE_THAN_ONE_CONVERSION_ACTION", + "NOT_COMPATIBLE_WITH_BUDGET_TYPE", + "NOT_COMPATIBLE_WITH_UPLOAD_CLICKS_CONVERSION", + "APP_ID_MUST_MATCH_CONVERSION_ACTION_APP_ID", + "CONVERSION_ACTION_WITH_DOWNLOAD_CATEGORY_NOT_ALLOWED", + "CONVERSION_ACTION_WITH_DOWNLOAD_CATEGORY_REQUIRED", + "CONVERSION_TRACKING_NOT_ENABLED", + "NOT_COMPATIBLE_WITH_BIDDING_STRATEGY_TYPE", + "NOT_COMPATIBLE_WITH_GOOGLE_ATTRIBUTION_CONVERSIONS", + "CONVERSION_LAG_TOO_HIGH", + "NOT_LINKED_ADVERTISING_PARTNER", + "INVALID_NUMBER_OF_ADVERTISING_PARTNER_IDS", + "CANNOT_TARGET_DISPLAY_NETWORK_WITHOUT_YOUTUBE", + "CANNOT_LINK_TO_COMPARISON_SHOPPING_SERVICE_ACCOUNT", + "CANNOT_TARGET_NETWORK_FOR_COMPARISON_SHOPPING_SERVICE_LINKED_ACCOUNTS", + "CANNOT_MODIFY_TEXT_ASSET_AUTOMATION_WITH_ENABLED_TRIAL", + "DYNAMIC_TEXT_ASSET_CANNOT_OPT_OUT_WITH_FINAL_URL_EXPANSION_OPT_IN", + "CANNOT_SET_CAMPAIGN_KEYWORD_MATCH_TYPE", + "CANNOT_DISABLE_BROAD_MATCH_WHEN_KEYWORD_CONVERSION_IN_PROCESS", + "CANNOT_DISABLE_BROAD_MATCH_WHEN_TARGETING_BRANDS", + "CANNOT_ENABLE_BROAD_MATCH_FOR_BASE_CAMPAIGN_WITH_PROMOTING_TRIAL", + "CANNOT_ENABLE_BROAD_MATCH_FOR_PROMOTING_TRIAL_CAMPAIGN", + "REQUIRED_BUSINESS_NAME_ASSET_NOT_LINKED", + "REQUIRED_LOGO_ASSET_NOT_LINKED", + "BRAND_TARGETING_OVERRIDES_NOT_SUPPORTED", + "BRAND_GUIDELINES_NOT_ENABLED_FOR_CAMPAIGN", + "BRAND_GUIDELINES_MAIN_AND_ACCENT_COLORS_REQUIRED", + "BRAND_GUIDELINES_COLOR_INVALID_FORMAT", + "BRAND_GUIDELINES_UNSUPPORTED_FONT_FAMILY", + "BRAND_GUIDELINES_UNSUPPORTED_CHANNEL", + "CANNOT_ENABLE_BRAND_GUIDELINES_FOR_TRAVEL_GOALS", + "CUSTOMER_NOT_ALLOWLISTED_FOR_BRAND_GUIDELINES", + "THIRD_PARTY_INTEGRATION_PARTNER_NOT_ALLOWED", + "THIRD_PARTY_INTEGRATION_PARTNER_SHARE_COST_NOT_ALLOWED", + "DUPLICATE_INTERACTION_TYPE", + "INVALID_INTERACTION_TYPE", + "VIDEO_SEQUENCE_ERROR_SEQUENCE_DEFINITION_REQUIRED", + "AI_MAX_MUST_BE_ENABLED", + "DURATION_TOO_LONG_FOR_TOTAL_BUDGET", + "END_DATE_TIME_REQUIRED_FOR_TOTAL_BUDGET" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Cannot target content network.", + "Cannot target search network.", + "Cannot cover search network without google search network.", + "Cannot target Google Search network for a CPM campaign.", + "Must target at least one network.", + "Only some Google partners are allowed to target partner search network.", + "Cannot target content network only as campaign has criteria-level bidding strategy.", + "Cannot modify the start or end date such that the campaign duration would not contain the durations of all runnable trials.", + "Cannot modify dates, budget or status of a trial campaign.", + "Trying to modify the name of an active or paused campaign, where the name is already assigned to another active or paused campaign.", + "Two fields are in conflicting modes.", + "Campaign name cannot be used.", + "Given status is invalid.", + "Error in the campaign level tracking URL.", + "Cannot set both tracking URL template and tracking setting. A user has to clear legacy tracking setting in order to add tracking URL template.", + "The maximum number of impressions for Frequency Cap should be an integer greater than 0.", + "Only the Day, Week and Month time units are supported.", + "Operation not allowed on a campaign whose serving status has ended", + "This budget is exclusively linked to a Campaign that is using experiments so it cannot be shared.", + "Campaigns using experiments cannot use a shared budget.", + "A different budget cannot be assigned to a campaign when there are running or scheduled trials.", + "No link found between the campaign and the label.", + "The label has already been attached to the campaign.", + "A ShoppingSetting was not found when creating a shopping campaign.", + "The country in shopping setting is not an allowed country.", + "The requested channel type is not available according to the customer's account setting.", + "The AdvertisingChannelSubType is not a valid subtype of the primary channel type.", + "At least one conversion must be selected.", + "Setting ad rotation mode for a campaign is not allowed. Ad rotation mode at campaign is deprecated.", + "Trying to change start date on a campaign that has started.", + "Trying to modify a date into the past.", + "Hotel center id in the hotel setting does not match any customer links.", + "Hotel center id in the hotel setting must match an active customer link.", + "Hotel setting was not found when creating a hotel ads campaign.", + "A Campaign cannot use shared campaign budgets and be part of a campaign group.", + "The app ID was not found.", + "Campaign.shopping_setting.enable_local is not supported for the specified campaign type.", + "The merchant does not support the creation of campaigns for Shopping Comparison Listing Ads.", + "The App campaign for engagement cannot be created because there aren't enough installs.", + "The App campaign for engagement cannot be created because the app is sensitive.", + "Customers with Housing, Employment, or Credit ads must accept updated personalized ads policy to continue creating campaigns.", + "The field is not compatible with view through conversion optimization.", + "The field type cannot be excluded because an active campaign-asset link of this type exists.", + "The app pre-registration campaign cannot be created for non-Android applications.", + "The campaign cannot be created since the app is not available for pre-registration in any country.", + "The type of the Budget is not compatible with this Campaign.", + "Category bid list in the local services campaign setting contains multiple bids for the same category ID.", + "Category bid list in the local services campaign setting contains a bid for an invalid category ID.", + "Category bid list in the local services campaign setting is missing a bid for a category ID that must be present.", + "The requested change in status is not supported.", + "Travel Campaign's travel_account_id does not match any customer links.", + "Travel Campaign's travel_account_id matches an existing customer link but the customer link is not active.", + "The asset set type is invalid to be set in excluded_parent_asset_set_types field.", + "Campaign.hotel_property_asset_set must point to an asset set of type HOTEL_PROPERTY.", + "The hotel property asset set can only be set on Performance Max for travel goals campaigns.", + "Customer's average daily spend is too high to enable this feature.", + "Cannot attach the campaign to a deleted campaign group.", + "Cannot attach the campaign to this bidding strategy.", + "A budget with a different period cannot be assigned to the campaign.", + "Customer does not have enough conversions to enable this feature.", + "This campaign type can only have one conversion action.", + "The field is not compatible with the budget type.", + "The feature is incompatible with ConversionActionType.UPLOAD_CLICKS.", + "App campaign setting app ID must match selective optimization conversion action app ID.", + "Selective optimization conversion action with Download category is not allowed.", + "One software download for selective optimization conversion action is required for this campaign conversion action.", + "Conversion tracking is not enabled and is required for this feature.", + "The field is not compatible with the bidding strategy type.", + "Campaign is not compatible with a conversion tracker that has Google attribution enabled.", + "Customer level conversion lag is too high.", + "The advertiser set as an advertising partner is not an actively linked advertiser to this customer.", + "Invalid number of advertising partner IDs.", + "Cannot target the display network without also targeting YouTube.", + "This campaign type cannot be linked to a Comparison Shopping Service account.", + "Standard Shopping campaigns that are linked to a Comparison Shopping Service account cannot target this network.", + "Text asset automation settings can not be modified when there is an active Performance Max optimization automatically created assets experiment. End the experiment to modify these settings.", + "Dynamic text asset cannot be opted out when final URL expansion is opted in.", + "Can not set a campaign level match type.", + "The campaign level keyword match type cannot be switched to non-broad when keyword conversion to broad match is in process.", + "The campaign level keyword match type cannot be switched to non-broad when the campaign has any attached brand list or when a brand hint shared set is attached to the campaign.", + "Cannot set campaign level keyword match type to BROAD if the campaign is a base campaign with an associated trial that is currently promoting.", + "Cannot set campaign level keyword match type to BROAD if the campaign is a trial currently promoting.", + "Performance Max campaigns with Brand Guidelines enabled require at least one business name to be linked as a CampaignAsset. Performance Max campaigns for online sales with a product feed must meet this requirement only when there are assets that are linked to the campaign's asset groups.", + "Performance Max campaigns with Brand Guidelines enabled require at least one square logo to be linked as a CampaignAsset. Performance Max campaigns for online sales with a product feed must meet this requirement only when there are assets that are linked to the campaign's asset groups.", + "This campaign does not support brand targeting overrides. Brand targeting overrides are only supported for Performance Max campaigns that have a product feed.", + "Brand Guideline fields can only be set for campaigns that have Brand Guidelines enabled.", + "When a Brand Guidelines color field is set, both main color and accent color are required.", + "Brand Guidelines colors must be hex colors matching the regular expression '#[0-9a-fA-F]{6}', for example '#abc123'", + "Brand Guidelines font family must be one of the supported Google Fonts. See Campaign.brand_guidelines.predefined_font_family for the list of supported fonts.", + "Brand Guidelines cannot be set for this channel type. Brand Guidelines supports Performance Max campaigns.", + "Brand Guidelines cannot be enabled for Performance Max for travel goals campaigns.", + "This customer is not allowlisted for enabling Brand Guidelines.", + "Using campaign third-party integration partners that are not set at the customer level is not allowed.", + "Campaign third-party integration partners are not allowed to share cost if it is not enabled at the customer level.", + "Each `previous_step_interaction_type` can be used at most once for the same `previous_step_id`", + "Previous step interaction type cannot happen for previous step AdGroup type. For example, `SKIP` interaction type is not valid for non-skippable formats.", + "Campaign video ads sequence is required for `VIDEO_SEQUENCE` advertising channel sub type.", + "This feature is only available for campaigns with AI Max enabled.", + "Duration too long for total budget.", + "Campaigns with total budgets must have end date/time specified." + ], + "type": "string" + }, + "campaignExperimentError": { + "description": "The reasons for the campaign experiment error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "DUPLICATE_NAME", + "INVALID_TRANSITION", + "CANNOT_CREATE_EXPERIMENT_WITH_SHARED_BUDGET", + "CANNOT_CREATE_EXPERIMENT_FOR_REMOVED_BASE_CAMPAIGN", + "CANNOT_CREATE_EXPERIMENT_FOR_NON_PROPOSED_DRAFT", + "CUSTOMER_CANNOT_CREATE_EXPERIMENT", + "CAMPAIGN_CANNOT_CREATE_EXPERIMENT", + "EXPERIMENT_DURATIONS_MUST_NOT_OVERLAP", + "EXPERIMENT_DURATION_MUST_BE_WITHIN_CAMPAIGN_DURATION", + "CANNOT_MUTATE_EXPERIMENT_DUE_TO_STATUS" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "An active campaign or experiment with this name already exists.", + "Experiment cannot be updated from the current state to the requested target state. For example, an experiment can only graduate if its status is ENABLED.", + "Cannot create an experiment from a campaign using an explicitly shared budget.", + "Cannot create an experiment for a removed base campaign.", + "Cannot create an experiment from a draft, which has a status other than proposed.", + "This customer is not allowed to create an experiment.", + "This campaign is not allowed to create an experiment.", + "Trying to set an experiment duration which overlaps with another experiment.", + "All non-removed experiments must start and end within their campaign's duration.", + "The experiment cannot be modified because its status is in a terminal state, such as REMOVED." + ], + "type": "string" + }, + "campaignFeedError": { + "description": "The reasons for the campaign feed error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE", + "CANNOT_CREATE_FOR_REMOVED_FEED", + "CANNOT_CREATE_ALREADY_EXISTING_CAMPAIGN_FEED", + "CANNOT_MODIFY_REMOVED_CAMPAIGN_FEED", + "INVALID_PLACEHOLDER_TYPE", + "MISSING_FEEDMAPPING_FOR_PLACEHOLDER_TYPE", + "NO_EXISTING_LOCATION_CUSTOMER_FEED", + "LEGACY_FEED_TYPE_READ_ONLY" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "An active feed already exists for this campaign and placeholder type.", + "The specified feed is removed.", + "The CampaignFeed already exists. UPDATE should be used to modify the existing CampaignFeed.", + "Cannot update removed campaign feed.", + "Invalid placeholder type.", + "Feed mapping for this placeholder type does not exist.", + "Location CampaignFeeds cannot be created unless there is a location CustomerFeed for the specified feed.", + "Feed is read only." + ], + "type": "string" + }, + "campaignGoalConfigError": { + "description": "The reasons for the campaign goal config error.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "GOAL_NOT_FOUND", + "CAMPAIGN_NOT_FOUND", + "HIGH_LIFETIME_VALUE_PRESENT_BUT_VALUE_ABSENT", + "HIGH_LIFETIME_VALUE_LESS_THAN_OR_EQUAL_TO_VALUE", + "CUSTOMER_LIFECYCLE_OPTIMIZATION_CAMPAIGN_TYPE_NOT_SUPPORTED", + "CUSTOMER_NOT_ALLOWLISTED_FOR_RETENTION_ONLY" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Goal is either removed or does not exist for this account.", + "Campaign is either removed or does not exist.", + "If high lifetime value is present then value should be present.", + "High lifetime value should be greater than value.", + "When using customer lifecycle optimization goal, campaign type should be supported.", + "Customer must be allowlisted to use retention only goal." + ], + "type": "string" + }, + "campaignLifecycleGoalError": { + "description": "The reasons for the campaign lifecycle goal error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "CAMPAIGN_MISSING", + "INVALID_CAMPAIGN", + "CUSTOMER_ACQUISITION_INVALID_OPTIMIZATION_MODE", + "INCOMPATIBLE_BIDDING_STRATEGY", + "MISSING_PURCHASE_GOAL", + "CUSTOMER_ACQUISITION_INVALID_HIGH_LIFETIME_VALUE", + "CUSTOMER_ACQUISITION_UNSUPPORTED_CAMPAIGN_TYPE", + "CUSTOMER_ACQUISITION_INVALID_VALUE", + "CUSTOMER_ACQUISITION_VALUE_MISSING", + "CUSTOMER_ACQUISITION_MISSING_EXISTING_CUSTOMER_DEFINITION", + "CUSTOMER_ACQUISITION_MISSING_HIGH_VALUE_CUSTOMER_DEFINITION" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Campaign is not specified.", + "Cannot find the specified campaign.", + "Optimization mode is unspecified or invalid.", + "The configured lifecycle goal setting is not compatible with the bidding strategy the campaign is using. Specifically, BID_HIGHER_FOR_NEW_CUSTOMER requires conversion-value based bidding strategy type such as MAXIMIZE_CONVERSION_VALUE.", + "Lifecycle goals require the campaign to optimize towards purchase conversion goal.", + "CampaignLifecycleGoal.customer_acquisition_goal_settings.value_settings.high_lifetime_value is invalid or not allowed, such as when the specified value is smaller than 0.01, when the optimization mode is not BID_HIGHER_FOR_NEW_CUSTOMER, or when CampaignLifecycleGoal.customer_acquisition_goal_settings.value_settings.high_lifetime_value is specified smaller than/without CampaignLifecycleGoal.customer_acquisition_goal_settings.value_settings.value.", + "Customer acquisition goal is not supported on this campaign type.", + "CampaignLifecycleGoal.customer_acquisition_goal_settings.value_settings.value is invalid or not allowed, such as when the specified value is smaller than 0.01, or when the optimization mode is not BID_HIGHER_FOR_NEW_CUSTOMER.", + "To use BID_HIGHER_FOR_NEW_CUSTOMER mode, either CampaignLifecycleGoal.customer_acquisition_goal_settings.value_settings.value or CustomerLifecycleGoal.customer_acquisition_goal_value_settings.value must have been specified. If a manager account is managing your account's conversion tracking, then only the CustomerLifecycleGoal of that manager account is used.", + "In order for a campaign to adopt the customer acquisition goal, CustomerLifecycleGoal.lifecycle_goal_customer_definition_settings.existing_user_lists must include active and accessible userlist with more than 1000 members in the Search/Youtube network. If a manager account is managing your account's conversion tracking, then only the CustomerLifecycleGoal of that manager account is used. Also make sure that the manager account shares audience segments with sub-accounts with continuous audience sharing.", + "In order for a campaign to adopt the customer acquisition goal with high lifetime value optimization, CustomerLifecycleGoal.lifecycle_goal_customer_definition_settings.high_lifetime_value_user_lists must include active and accessible userlist with more than 1000 members in the Search/Youtube network. If a manager account is managing your account's conversion tracking, then only the CustomerLifecycleGoal of that manager account is used. Also make sure that the manager account shares audience segments with sub-accounts using continuous audience sharing." + ], + "type": "string" + }, + "campaignSharedSetError": { + "description": "The reasons for the campaign shared set error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "SHARED_SET_ACCESS_DENIED" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "The shared set belongs to another customer and permission isn't granted." + ], + "type": "string" + }, + "changeEventError": { + "description": "The reasons for the change event error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "START_DATE_TOO_OLD", + "CHANGE_DATE_RANGE_INFINITE", + "CHANGE_DATE_RANGE_NEGATIVE", + "LIMIT_NOT_SPECIFIED", + "INVALID_LIMIT_CLAUSE" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "The requested start date is too old. It cannot be older than 30 days.", + "The change_event search request must specify a finite range filter on change_date_time.", + "The change event search request has specified invalid date time filters that can never logically produce any valid results (for example, start time after end time).", + "The change_event search request must specify a LIMIT.", + "The LIMIT specified by change_event request should be less than or equal to 10K." + ], + "type": "string" + }, + "changeStatusError": { + "description": "The reasons for the change status error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "START_DATE_TOO_OLD", + "CHANGE_DATE_RANGE_INFINITE", + "CHANGE_DATE_RANGE_NEGATIVE", + "LIMIT_NOT_SPECIFIED", + "INVALID_LIMIT_CLAUSE" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "The requested start date is too old.", + "The change_status search request must specify a finite range filter on last_change_date_time.", + "The change status search request has specified invalid date time filters that can never logically produce any valid results (for example, start time after end time).", + "The change_status search request must specify a LIMIT.", + "The LIMIT specified by change_status request should be less than or equal to 10K." + ], + "type": "string" + }, + "clickViewError": { + "description": "The reasons for the click view error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "EXPECTED_FILTER_ON_A_SINGLE_DAY", + "DATE_TOO_OLD" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Missing filter on a single day.", + "The requested date is too old." + ], + "type": "string" + }, + "collectionSizeError": { + "description": "The reasons for the collection size error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "TOO_FEW", + "TOO_MANY" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Too few.", + "Too many." + ], + "type": "string" + }, + "contextError": { + "description": "The reasons for the context error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "OPERATION_NOT_PERMITTED_FOR_CONTEXT", + "OPERATION_NOT_PERMITTED_FOR_REMOVED_RESOURCE" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "The operation is not allowed for the given context.", + "The operation is not allowed for removed resources." + ], + "type": "string" + }, + "conversionActionError": { + "description": "The reasons for the conversion action error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "DUPLICATE_NAME", + "DUPLICATE_APP_ID", + "TWO_CONVERSION_ACTIONS_BIDDING_ON_SAME_APP_DOWNLOAD", + "BIDDING_ON_SAME_APP_DOWNLOAD_AS_GLOBAL_ACTION", + "DATA_DRIVEN_MODEL_WAS_NEVER_GENERATED", + "DATA_DRIVEN_MODEL_EXPIRED", + "DATA_DRIVEN_MODEL_STALE", + "DATA_DRIVEN_MODEL_UNKNOWN", + "CREATION_NOT_SUPPORTED", + "UPDATE_NOT_SUPPORTED", + "CANNOT_SET_RULE_BASED_ATTRIBUTION_MODELS" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "The specified conversion action name already exists.", + "Another conversion action with the specified app id already exists.", + "Android first open action conflicts with Google play codeless download action tracking the same app.", + "Android first open action conflicts with Google play codeless download action tracking the same app.", + "The attribution model cannot be set to DATA_DRIVEN because a data-driven model has never been generated.", + "The attribution model cannot be set to DATA_DRIVEN because the data-driven model is expired.", + "The attribution model cannot be set to DATA_DRIVEN because the data-driven model is stale.", + "The attribution model cannot be set to DATA_DRIVEN because the data-driven model is unavailable or the conversion action was newly added.", + "Creation of this conversion action type isn't supported by Google Ads API.", + "Update of this conversion action isn't supported by Google Ads API.", + "Rule-based attribution models are deprecated and not allowed to be set by conversion action." + ], + "type": "string" + }, + "conversionAdjustmentUploadError": { + "description": "The reasons for the conversion adjustment upload error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "TOO_RECENT_CONVERSION_ACTION", + "CONVERSION_ALREADY_RETRACTED", + "CONVERSION_NOT_FOUND", + "CONVERSION_EXPIRED", + "ADJUSTMENT_PRECEDES_CONVERSION", + "MORE_RECENT_RESTATEMENT_FOUND", + "TOO_RECENT_CONVERSION", + "CANNOT_RESTATE_CONVERSION_ACTION_THAT_ALWAYS_USES_DEFAULT_CONVERSION_VALUE", + "TOO_MANY_ADJUSTMENTS_IN_REQUEST", + "TOO_MANY_ADJUSTMENTS", + "RESTATEMENT_ALREADY_EXISTS", + "DUPLICATE_ADJUSTMENT_IN_REQUEST", + "CUSTOMER_NOT_ACCEPTED_CUSTOMER_DATA_TERMS", + "CONVERSION_ACTION_NOT_ELIGIBLE_FOR_ENHANCEMENT", + "INVALID_USER_IDENTIFIER", + "UNSUPPORTED_USER_IDENTIFIER", + "GCLID_DATE_TIME_PAIR_AND_ORDER_ID_BOTH_SET", + "CONVERSION_ALREADY_ENHANCED", + "DUPLICATE_ENHANCEMENT_IN_REQUEST", + "CUSTOMER_DATA_POLICY_PROHIBITS_ENHANCEMENT", + "MISSING_ORDER_ID_FOR_WEBPAGE", + "ORDER_ID_CONTAINS_PII", + "INVALID_JOB_ID", + "NO_CONVERSION_ACTION_FOUND", + "INVALID_CONVERSION_ACTION_TYPE" + ], + "enumDescriptions": [ + "Not specified.", + "Used for return value only. Represents value unknown in this version.", + "Can't import events to a conversion action that was just created. Try importing again in 6 hours.", + "The conversion was already retracted. This adjustment was not processed.", + "The conversion for this conversion action and conversion identifier can't be found. Make sure your conversion identifiers are associated with the correct conversion action and try again.", + "Adjustment can't be made to a conversion that occurred more than 54 days ago.", + "Adjustment has an `adjustment_date_time` that occurred before the associated conversion. Make sure your `adjustment_date_time` is correct and try again.", + "More recent adjustment `adjustment_date_time` has already been reported for the associated conversion. Make sure your adjustment `adjustment_date_time` is correct and try again.", + "Adjustment can't be recorded because the conversion occurred too recently. Try adjusting a conversion that occurred at least 24 hours ago.", + "Can't make an adjustment to a conversion that is set up to use the default value. Check your conversion action value setting and try again.", + "Try uploading fewer than 2001 adjustments in a single API request.", + "The conversion has already been adjusted the maximum number of times. Make sure you're only making necessary adjustment to existing conversion.", + "The conversion has prior a restatement with the same `adjustment_date_time`. Make sure your adjustment has the correct and unique `adjustment_date_time` and try again.", + "Imported adjustment has a duplicate conversion adjustment with same `adjustment_date_time`. Make sure your adjustment has the correct `adjustment_date_time` and try again.", + "Make sure you agree to the customer data processing terms in conversion settings and try again.", + "Can't use enhanced conversions with the specified conversion action.", + "Make sure you hash user provided data using SHA-256 and ensure you are normalizing according to the guidelines.", + "Use user provided data such as emails or phone numbers hashed using SHA-256 and try again.", + "Cannot set both gclid_date_time_pair and order_id. Use only 1 type and try again.", + "Conversion already has enhancements with the same Order ID and conversion action. Make sure your data is correctly configured and try again.", + "Multiple enhancements have the same conversion action and Order ID. Make sure your data is correctly configured and try again.", + "Enhanced conversions can't be used for this account because of Google customer data policies. Contact your Google representative.", + "Adjustment for website conversion requires Order ID (ie, transaction ID). Make sure your website tags capture Order IDs and you send the same Order IDs with your adjustment.", + "Can't use adjustment with Order IDs containing personally-identifiable information (PII).", + "The provided job id in the request is not within the allowed range. A job ID must be a positive integer in the range [1, 2^31).", + "The conversion action specified in the adjustment request cannot be found. Make sure it's available in this account.", + "The type of the conversion action specified in the adjustment request isn't supported for uploading adjustments. A conversion adjustment of type `RETRACTION` or `RESTATEMENT` is only permitted for conversion actions of type `SALESFORCE`, `UPLOAD_CLICK` or `WEBPAGE`. A conversion adjustment of type `ENHANCEMENT` is only permitted for conversion actions of type `WEBPAGE`." + ], + "type": "string" + }, + "conversionCustomVariableError": { + "description": "The reasons for the conversion custom variable error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "DUPLICATE_NAME", + "DUPLICATE_TAG", + "RESERVED_TAG" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "A conversion custom variable with the specified name already exists.", + "A conversion custom variable with the specified tag already exists.", + "A conversion custom variable with the specified tag is reserved for other uses." + ], + "type": "string" + }, + "conversionGoalCampaignConfigError": { + "description": "The reasons for the conversion goal campaign config error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "CANNOT_USE_CAMPAIGN_GOAL_FOR_SEARCH_ADS_360_MANAGED_CAMPAIGN", + "CUSTOM_GOAL_DOES_NOT_BELONG_TO_GOOGLE_ADS_CONVERSION_CUSTOMER", + "CAMPAIGN_CANNOT_USE_UNIFIED_GOALS", + "EMPTY_CONVERSION_GOALS", + "STORE_SALE_STORE_VISIT_CANNOT_BE_BOTH_INCLUDED", + "PERFORMANCE_MAX_CAMPAIGN_CANNOT_USE_CUSTOM_GOAL_WITH_STORE_SALES" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Campaign is managed by Search Ads 360 but uses Unified Goal.", + "The campaign is using a custom goal that does not belong to its Google Ads conversion customer (conversion tracking customer).", + "The campaign is not allowed to use unified goals.", + "The campaign is using campaign override goals but has no goals configured.", + "STORE_SALE and STORE_VISIT conversion types cannot be both included in campaign level goal.", + "Performance Max campaign is not allowed to use custom goal with store sales conversion type." + ], + "type": "string" + }, + "conversionUploadError": { + "description": "The reasons for the conversion upload error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "TOO_MANY_CONVERSIONS_IN_REQUEST", + "UNPARSEABLE_GCLID", + "CONVERSION_PRECEDES_EVENT", + "EXPIRED_EVENT", + "TOO_RECENT_EVENT", + "EVENT_NOT_FOUND", + "UNAUTHORIZED_CUSTOMER", + "TOO_RECENT_CONVERSION_ACTION", + "CONVERSION_TRACKING_NOT_ENABLED_AT_IMPRESSION_TIME", + "EXTERNAL_ATTRIBUTION_DATA_SET_FOR_NON_EXTERNALLY_ATTRIBUTED_CONVERSION_ACTION", + "EXTERNAL_ATTRIBUTION_DATA_NOT_SET_FOR_EXTERNALLY_ATTRIBUTED_CONVERSION_ACTION", + "ORDER_ID_NOT_PERMITTED_FOR_EXTERNALLY_ATTRIBUTED_CONVERSION_ACTION", + "ORDER_ID_ALREADY_IN_USE", + "DUPLICATE_ORDER_ID", + "TOO_RECENT_CALL", + "EXPIRED_CALL", + "CALL_NOT_FOUND", + "CONVERSION_PRECEDES_CALL", + "CONVERSION_TRACKING_NOT_ENABLED_AT_CALL_TIME", + "UNPARSEABLE_CALLERS_PHONE_NUMBER", + "CLICK_CONVERSION_ALREADY_EXISTS", + "CALL_CONVERSION_ALREADY_EXISTS", + "DUPLICATE_CLICK_CONVERSION_IN_REQUEST", + "DUPLICATE_CALL_CONVERSION_IN_REQUEST", + "CUSTOM_VARIABLE_NOT_ENABLED", + "CUSTOM_VARIABLE_VALUE_CONTAINS_PII", + "INVALID_CUSTOMER_FOR_CLICK", + "INVALID_CUSTOMER_FOR_CALL", + "CONVERSION_NOT_COMPLIANT_WITH_ATT_POLICY", + "CLICK_NOT_FOUND", + "INVALID_USER_IDENTIFIER", + "EXTERNALLY_ATTRIBUTED_CONVERSION_ACTION_NOT_PERMITTED_WITH_USER_IDENTIFIER", + "UNSUPPORTED_USER_IDENTIFIER", + "GBRAID_WBRAID_BOTH_SET", + "UNPARSEABLE_WBRAID", + "UNPARSEABLE_GBRAID", + "ONE_PER_CLICK_CONVERSION_ACTION_NOT_PERMITTED_WITH_BRAID", + "CUSTOMER_DATA_POLICY_PROHIBITS_ENHANCED_CONVERSIONS", + "CUSTOMER_NOT_ACCEPTED_CUSTOMER_DATA_TERMS", + "ORDER_ID_CONTAINS_PII", + "CUSTOMER_NOT_ENABLED_ENHANCED_CONVERSIONS_FOR_LEADS", + "INVALID_JOB_ID", + "NO_CONVERSION_ACTION_FOUND", + "INVALID_CONVERSION_ACTION_TYPE" + ], + "enumDescriptions": [ + "Enum unspecified.", + "Used for return value only. Represents value unknown in this version.", + "Upload fewer than 2001 events in a single request.", + "The imported gclid could not be decoded.", + "The imported event has a `conversion_date_time` that precedes the click. Make sure your `conversion_date_time` is correct and try again.", + "The imported event can't be recorded because its click occurred before this conversion's click-through window. Make sure you import the most recent data.", + "The click associated with the given identifier or iOS URL parameter occurred less than 6 hours ago. Retry after 6 hours have passed.", + "The imported event could not be attributed to a click. This may be because the event did not come from a Google Ads campaign.", + "The click ID or call is associated with an Ads account you don't have access to. Make sure you import conversions for accounts managed by your manager account.", + "Can't import events to a conversion action that was just created. Try importing again in 6 hours.", + "At the time of the click, conversion tracking was not enabled in the effective conversion account of the click's Google Ads account.", + "The imported event includes external attribution data, but the conversion action isn't set up to use an external attribution model. Make sure the conversion action is correctly configured and try again.", + "The conversion action is set up to use an external attribution model, but the imported event is missing data. Make sure imported events include the external attribution credit and all necessary fields.", + "Order IDs can't be used for a conversion measured with an external attribution model. Make sure the conversion is correctly configured and imported events include only necessary data and try again.", + "The imported event includes an order ID that was previously recorded, so the event was not processed.", + "Imported events include multiple conversions with the same order ID and were not processed. Make sure order IDs are unique and try again.", + "Can't import calls that occurred less than 6 hours ago. Try uploading again in 6 hours.", + "The call can't be recorded because it occurred before this conversion action's lookback window. Make sure your import is configured to get the most recent data.", + "The call or click leading to the imported event can't be found. Make sure your data source is set up to include correct identifiers.", + "The call has a `conversion_date_time` that precedes the associated click. Make sure your `conversion_date_time` is correct.", + "At the time of the imported call, conversion tracking was not enabled in the effective conversion account of the click's Google Ads account.", + "Make sure phone numbers are formatted as E.164 (+16502531234), International (+64 3-331 6005), or US national number (6502531234).", + "The imported event has the same click and `conversion_date_time` as an existing conversion. Use a unique `conversion_date_time` or order ID for each unique event and try again.", + "The imported call has the same `conversion_date_time` as an existing conversion. Make sure your `conversion_date_time` correctly configured and try again.", + "Multiple events have the same click and `conversion_date_time`. Make sure your `conversion_date_time` is correctly configured and try again.", + "Multiple events have the same call and `conversion_date_time`. Make sure your `conversion_date_time` is correctly configured and try again.", + "Enable the custom variable in your conversion settings and try again.", + "Can't import events with custom variables containing personally-identifiable information (PII). Remove these variables and try again.", + "The click from the imported event is associated with a different Google Ads account. Make sure you're importing to the correct account.", + "The click from the call is associated with a different Google Ads account. Make sure you're importing to the correct account. Query conversion_tracking_setting.google_ads_conversion_customer on Customer to identify the correct account.", + "The connversion can't be imported because the conversion source didn't comply with Apple App Transparency Tracking (ATT) policies or because the customer didn't consent to tracking.", + "The email address or phone number for this event can't be matched to a click. This may be because it didn't come from a Google Ads campaign, and you can safely ignore this warning. If this includes more imported events than is expected, you may need to check your setup.", + "Make sure you hash user provided data using SHA-256 and ensure you are normalizing according to the guidelines.", + "User provided data can't be used with external attribution models. Use a different attribution model or omit user identifiers and try again.", + "The provided user identifiers are not supported. Use only hashed email or phone number and try again.", + "Can't use both gbraid and wbraid parameters. Use only 1 and try again.", + "Can't parse event import data. Check if your wbraid parameter was not modified and try again.", + "Can't parse event import data. Check if your gbraid parameter was not modified and try again.", + "Conversion actions that use one-per-click counting can't be used with gbraid or wbraid parameters.", + "Enhanced conversions can't be used for this account because of Google customer data policies. Contact your Google representative.", + "Make sure you agree to the customer data processing terms in conversion settings and try again. You can check your setting by querying conversion_tracking_setting.accepted_customer_data_terms on Customer.", + "Can't import events with order IDs containing personally-identifiable information (PII).", + "Make sure you've turned on enhanced conversions for leads in conversion settings and try again. You can check your setting by querying conversion_tracking_setting.enhanced_conversions_for_leads_enabled on Customer.", + "The provided job id in the request is not within the allowed range. A job ID must be a positive integer in the range [1, 2^31).", + "The conversion action specified in the upload request cannot be found. Make sure it's available in this account.", + "The conversion action specified in the upload request isn't set up for uploading conversions." + ], + "type": "string" + }, + "conversionValueRuleError": { + "description": "The reasons for the conversion value rule error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "INVALID_GEO_TARGET_CONSTANT", + "CONFLICTING_INCLUDED_AND_EXCLUDED_GEO_TARGET", + "CONFLICTING_CONDITIONS", + "CANNOT_REMOVE_IF_INCLUDED_IN_VALUE_RULE_SET", + "CONDITION_NOT_ALLOWED", + "FIELD_MUST_BE_UNSET", + "CANNOT_PAUSE_UNLESS_VALUE_RULE_SET_IS_PAUSED", + "UNTARGETABLE_GEO_TARGET", + "INVALID_AUDIENCE_USER_LIST", + "INACCESSIBLE_USER_LIST", + "INVALID_AUDIENCE_USER_INTEREST", + "CANNOT_ADD_RULE_WITH_STATUS_REMOVED", + "NO_DAY_OF_WEEK_SELECTED" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "The value rule's geo location condition contains invalid geo target constant(s), for example, there's no matching geo target.", + "The value rule's geo location condition contains conflicting included and excluded geo targets. Specifically, some of the excluded geo target(s) are the same as or contain some of the included geo target(s). For example, the geo location condition includes California but excludes U.S.", + "User specified conflicting conditions for two value rules in the same value rule set.", + "The value rule cannot be removed because it's still included in some value rule set.", + "The value rule contains a condition that's not allowed by the value rule set including this value rule.", + "The value rule contains a field that should be unset.", + "Pausing the value rule requires pausing the value rule set because the value rule is (one of) the last enabled in the value rule set.", + "The value rule's geo location condition contains untargetable geo target constant(s).", + "The value rule's audience condition contains invalid user list(s). In another word, there's no matching user list.", + "The value rule's audience condition contains inaccessible user list(s).", + "The value rule's audience condition contains invalid user_interest(s). This might be because there is no matching user interest, or the user interest is not visible.", + "When a value rule is created, it shouldn't have REMOVED status.", + "The value rule's itinerary condition contains invalid travel start day, it contains no day of week." + ], + "type": "string" + }, + "conversionValueRuleSetError": { + "description": "The reasons for the conversion value rule set error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "CONFLICTING_VALUE_RULE_CONDITIONS", + "INVALID_VALUE_RULE", + "DIMENSIONS_UPDATE_ONLY_ALLOW_APPEND", + "CONDITION_TYPE_NOT_ALLOWED", + "DUPLICATE_DIMENSIONS", + "INVALID_CAMPAIGN_ID", + "CANNOT_PAUSE_UNLESS_ALL_VALUE_RULES_ARE_PAUSED", + "SHOULD_PAUSE_WHEN_ALL_VALUE_RULES_ARE_PAUSED", + "VALUE_RULES_NOT_SUPPORTED_FOR_CAMPAIGN_TYPE", + "INELIGIBLE_CONVERSION_ACTION_CATEGORIES", + "DIMENSION_NO_CONDITION_USED_WITH_OTHER_DIMENSIONS", + "DIMENSION_NO_CONDITION_NOT_ALLOWED", + "UNSUPPORTED_CONVERSION_ACTION_CATEGORIES", + "DIMENSION_NOT_SUPPORTED_FOR_CAMPAIGN_TYPE" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Two value rules in this value rule set contain conflicting conditions.", + "This value rule set includes a value rule that cannot be found, has been permanently removed or belongs to a different customer.", + "An error that's thrown when a mutate operation is trying to replace/remove some existing elements in the dimensions field. In other words, ADD op is always fine and UPDATE op is fine if it's only appending new elements into dimensions list.", + "An error that's thrown when a mutate is adding new value rule(s) into a value rule set and the added value rule(s) include conditions that are not specified in the dimensions of the value rule set.", + "The dimensions field contains duplicate elements.", + "This value rule set is attached to an invalid campaign id. Either a campaign with this campaign id doesn't exist or it belongs to a different customer.", + "When a mutate request tries to pause a value rule set, the enabled value rules in this set must be paused in the same command, or this error will be thrown.", + "When a mutate request tries to pause all the value rules in a value rule set, the value rule set must be paused, or this error will be thrown.", + "This value rule set is attached to a campaign that does not support value rules. Currently, campaign level value rule sets can only be created on Search, or Display campaigns.", + "To add a value rule set that applies on Store Visits/Store Sales conversion action categories, the customer must have valid Store Visits/ Store Sales conversion actions.", + "If NO_CONDITION is used as a dimension of a value rule set, it must be the only dimension.", + "Dimension NO_CONDITION can only be used by Store Visits/Store Sales value rule set.", + "Value rule sets defined on the specified conversion action categories are not supported. The list of conversion action categories must be an empty list, only STORE_VISIT, or only STORE_SALE.", + "Dimension ITINERARY can only be used on campaigns with an advertising channel type of PERFORMANCE_MAX or HOTEL." + ], + "type": "string" + }, + "countryCodeError": { + "description": "The reasons for the country code error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "INVALID_COUNTRY_CODE" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "The country code is invalid." + ], + "type": "string" + }, + "criterionError": { + "description": "The reasons for the criterion error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "CONCRETE_TYPE_REQUIRED", + "INVALID_EXCLUDED_CATEGORY", + "INVALID_KEYWORD_TEXT", + "KEYWORD_TEXT_TOO_LONG", + "KEYWORD_HAS_TOO_MANY_WORDS", + "KEYWORD_HAS_INVALID_CHARS", + "INVALID_PLACEMENT_URL", + "INVALID_USER_LIST", + "INVALID_USER_INTEREST", + "INVALID_FORMAT_FOR_PLACEMENT_URL", + "PLACEMENT_URL_IS_TOO_LONG", + "PLACEMENT_URL_HAS_ILLEGAL_CHAR", + "PLACEMENT_URL_HAS_MULTIPLE_SITES_IN_LINE", + "PLACEMENT_IS_NOT_AVAILABLE_FOR_TARGETING_OR_EXCLUSION", + "INVALID_TOPIC_PATH", + "INVALID_YOUTUBE_CHANNEL_ID", + "INVALID_YOUTUBE_VIDEO_ID", + "YOUTUBE_VERTICAL_CHANNEL_DEPRECATED", + "YOUTUBE_DEMOGRAPHIC_CHANNEL_DEPRECATED", + "YOUTUBE_URL_UNSUPPORTED", + "CANNOT_EXCLUDE_CRITERIA_TYPE", + "CANNOT_ADD_CRITERIA_TYPE", + "CANNOT_EXCLUDE_SIMILAR_USER_LIST", + "CANNOT_ADD_CLOSED_USER_LIST", + "CANNOT_ADD_DISPLAY_ONLY_LISTS_TO_SEARCH_ONLY_CAMPAIGNS", + "CANNOT_ADD_DISPLAY_ONLY_LISTS_TO_SEARCH_CAMPAIGNS", + "CANNOT_ADD_DISPLAY_ONLY_LISTS_TO_SHOPPING_CAMPAIGNS", + "CANNOT_ADD_USER_INTERESTS_TO_SEARCH_CAMPAIGNS", + "CANNOT_SET_BIDS_ON_CRITERION_TYPE_IN_SEARCH_CAMPAIGNS", + "CANNOT_ADD_URLS_TO_CRITERION_TYPE_FOR_CAMPAIGN_TYPE", + "INVALID_COMBINED_AUDIENCE", + "INVALID_CUSTOM_AFFINITY", + "INVALID_CUSTOM_INTENT", + "INVALID_CUSTOM_AUDIENCE", + "INVALID_IP_ADDRESS", + "INVALID_IP_FORMAT", + "INVALID_MOBILE_APP", + "INVALID_MOBILE_APP_CATEGORY", + "INVALID_CRITERION_ID", + "CANNOT_TARGET_CRITERION", + "CANNOT_TARGET_OBSOLETE_CRITERION", + "CRITERION_ID_AND_TYPE_MISMATCH", + "INVALID_PROXIMITY_RADIUS", + "INVALID_PROXIMITY_RADIUS_UNITS", + "INVALID_STREETADDRESS_LENGTH", + "INVALID_CITYNAME_LENGTH", + "INVALID_REGIONCODE_LENGTH", + "INVALID_REGIONNAME_LENGTH", + "INVALID_POSTALCODE_LENGTH", + "INVALID_COUNTRY_CODE", + "INVALID_LATITUDE", + "INVALID_LONGITUDE", + "PROXIMITY_GEOPOINT_AND_ADDRESS_BOTH_CANNOT_BE_NULL", + "INVALID_PROXIMITY_ADDRESS", + "INVALID_USER_DOMAIN_NAME", + "CRITERION_PARAMETER_TOO_LONG", + "AD_SCHEDULE_TIME_INTERVALS_OVERLAP", + "AD_SCHEDULE_INTERVAL_CANNOT_SPAN_MULTIPLE_DAYS", + "AD_SCHEDULE_INVALID_TIME_INTERVAL", + "AD_SCHEDULE_EXCEEDED_INTERVALS_PER_DAY_LIMIT", + "AD_SCHEDULE_CRITERION_ID_MISMATCHING_FIELDS", + "CANNOT_BID_MODIFY_CRITERION_TYPE", + "CANNOT_BID_MODIFY_CRITERION_CAMPAIGN_OPTED_OUT", + "CANNOT_BID_MODIFY_NEGATIVE_CRITERION", + "BID_MODIFIER_ALREADY_EXISTS", + "FEED_ID_NOT_ALLOWED", + "ACCOUNT_INELIGIBLE_FOR_CRITERIA_TYPE", + "CRITERIA_TYPE_INVALID_FOR_BIDDING_STRATEGY", + "CANNOT_EXCLUDE_CRITERION", + "CANNOT_REMOVE_CRITERION", + "INVALID_PRODUCT_BIDDING_CATEGORY", + "MISSING_SHOPPING_SETTING", + "INVALID_MATCHING_FUNCTION", + "LOCATION_FILTER_NOT_ALLOWED", + "INVALID_FEED_FOR_LOCATION_FILTER", + "LOCATION_FILTER_INVALID", + "CANNOT_SET_GEO_TARGET_CONSTANTS_WITH_FEED_ITEM_SETS", + "CANNOT_SET_BOTH_ASSET_SET_AND_FEED", + "CANNOT_SET_FEED_OR_FEED_ITEM_SETS_FOR_CUSTOMER", + "CANNOT_SET_ASSET_SET_FIELD_FOR_CUSTOMER", + "CANNOT_SET_GEO_TARGET_CONSTANTS_WITH_ASSET_SETS", + "CANNOT_SET_ASSET_SETS_WITH_FEED_ITEM_SETS", + "INVALID_LOCATION_GROUP_ASSET_SET", + "INVALID_LOCATION_GROUP_RADIUS", + "INVALID_LOCATION_GROUP_RADIUS_UNIT", + "CANNOT_ATTACH_CRITERIA_AT_CAMPAIGN_AND_ADGROUP", + "HOTEL_LENGTH_OF_STAY_OVERLAPS_WITH_EXISTING_CRITERION", + "HOTEL_ADVANCE_BOOKING_WINDOW_OVERLAPS_WITH_EXISTING_CRITERION", + "FIELD_INCOMPATIBLE_WITH_NEGATIVE_TARGETING", + "INVALID_WEBPAGE_CONDITION", + "INVALID_WEBPAGE_CONDITION_URL", + "WEBPAGE_CONDITION_URL_CANNOT_BE_EMPTY", + "WEBPAGE_CONDITION_URL_UNSUPPORTED_PROTOCOL", + "WEBPAGE_CONDITION_URL_CANNOT_BE_IP_ADDRESS", + "WEBPAGE_CONDITION_URL_DOMAIN_NOT_CONSISTENT_WITH_CAMPAIGN_SETTING", + "WEBPAGE_CONDITION_URL_CANNOT_BE_PUBLIC_SUFFIX", + "WEBPAGE_CONDITION_URL_INVALID_PUBLIC_SUFFIX", + "WEBPAGE_CONDITION_URL_VALUE_TRACK_VALUE_NOT_SUPPORTED", + "WEBPAGE_CRITERION_URL_EQUALS_CAN_HAVE_ONLY_ONE_CONDITION", + "WEBPAGE_CRITERION_NOT_SUPPORTED_ON_NON_DSA_AD_GROUP", + "CANNOT_TARGET_USER_LIST_FOR_SMART_DISPLAY_CAMPAIGNS", + "CANNOT_TARGET_PLACEMENTS_FOR_SEARCH_CAMPAIGNS", + "LISTING_SCOPE_TOO_MANY_DIMENSION_TYPES", + "LISTING_SCOPE_TOO_MANY_IN_OPERATORS", + "LISTING_SCOPE_IN_OPERATOR_NOT_SUPPORTED", + "DUPLICATE_LISTING_DIMENSION_TYPE", + "DUPLICATE_LISTING_DIMENSION_VALUE", + "CANNOT_SET_BIDS_ON_LISTING_GROUP_SUBDIVISION", + "LISTING_GROUP_ERROR_IN_ANOTHER_OPERATION", + "INVALID_LISTING_GROUP_HIERARCHY", + "LISTING_GROUP_TREE_WAS_INVALID_BEFORE_MUTATION", + "LISTING_GROUP_UNIT_CANNOT_HAVE_CHILDREN", + "LISTING_GROUP_SUBDIVISION_REQUIRES_OTHERS_CASE", + "LISTING_GROUP_REQUIRES_SAME_DIMENSION_TYPE_AS_SIBLINGS", + "LISTING_GROUP_ALREADY_EXISTS", + "LISTING_GROUP_DOES_NOT_EXIST", + "LISTING_GROUP_CANNOT_BE_REMOVED", + "INVALID_LISTING_GROUP_TYPE", + "LISTING_GROUP_ADD_MAY_ONLY_USE_TEMP_ID", + "LISTING_SCOPE_TOO_LONG", + "LISTING_SCOPE_TOO_MANY_DIMENSIONS", + "LISTING_GROUP_TOO_LONG", + "LISTING_GROUP_TREE_TOO_DEEP", + "INVALID_LISTING_DIMENSION", + "INVALID_LISTING_DIMENSION_TYPE", + "ADVERTISER_NOT_ON_ALLOWLIST_FOR_COMBINED_AUDIENCE_ON_DISPLAY", + "CANNOT_TARGET_REMOVED_COMBINED_AUDIENCE", + "INVALID_COMBINED_AUDIENCE_ID", + "CANNOT_TARGET_REMOVED_CUSTOM_AUDIENCE", + "HOTEL_CHECK_IN_DATE_RANGE_OVERLAPS_WITH_EXISTING_CRITERION", + "HOTEL_CHECK_IN_DATE_RANGE_START_DATE_TOO_EARLY", + "HOTEL_CHECK_IN_DATE_RANGE_END_DATE_TOO_LATE", + "HOTEL_CHECK_IN_DATE_RANGE_REVERSED", + "BROAD_MATCH_MODIFIER_KEYWORD_NOT_ALLOWED", + "ONE_AUDIENCE_ALLOWED_PER_ASSET_GROUP", + "AUDIENCE_NOT_ELIGIBLE_FOR_CAMPAIGN_TYPE", + "AUDIENCE_NOT_ALLOWED_TO_ATTACH_WHEN_AUDIENCE_GROUPED_SET_TO_FALSE", + "CANNOT_TARGET_CUSTOMER_MATCH_USER_LIST", + "NEGATIVE_KEYWORD_SHARED_SET_DOES_NOT_EXIST", + "CANNOT_ADD_REMOVED_NEGATIVE_KEYWORD_SHARED_SET", + "CANNOT_HAVE_MULTIPLE_NEGATIVE_KEYWORD_LIST_PER_ACCOUNT", + "CUSTOMER_CANNOT_ADD_CRITERION_OF_THIS_TYPE", + "CANNOT_TARGET_SIMILAR_USER_LIST", + "CANNOT_ADD_AUDIENCE_SEGMENT_CRITERION_WHEN_AUDIENCE_GROUPED_IS_SET", + "ONE_AUDIENCE_ALLOWED_PER_AD_GROUP", + "INVALID_DETAILED_DEMOGRAPHIC", + "CANNOT_RECOGNIZE_BRAND", + "BRAND_SHARED_SET_DOES_NOT_EXIST", + "CANNOT_ADD_REMOVED_BRAND_SHARED_SET", + "ONLY_EXCLUSION_BRAND_LIST_ALLOWED_FOR_CAMPAIGN_TYPE", + "LOCATION_TARGETING_NOT_ELIGIBLE_FOR_RESTRICTED_CAMPAIGN", + "ONLY_INCLUSION_BRAND_LIST_ALLOWED_FOR_AD_GROUPS", + "CANNOT_ADD_REMOVED_PLACEMENT_LIST_SHARED_SET", + "PLACEMENT_LIST_SHARED_SET_DOES_NOT_EXIST", + "AI_MAX_MUST_BE_ENABLED", + "NOT_AVAILABLE_FOR_AI_MAX_CAMPAIGNS", + "MISSING_EU_POLITICAL_ADVERTISING_SELF_DECLARATION", + "INVALID_CAMPAIGN_TYPE_FOR_THIRD_PARTY_PARTNER_DATA_LIST", + "CANNOT_ADD_USER_LIST_PENDING_PRIVACY_REVIEW", + "VERTICAL_ADS_ITEM_GROUP_RULE_LIST_DOES_NOT_EXIST", + "CANNOT_ADD_REMOVED_VERTICAL_ADS_ITEM_GROUP_RULE_LIST_SHARED_SET", + "VERTICAL_ADS_ITEM_GROUP_RULE_LIST_NOT_SUPPORTED_FOR_CAMPAIGNS_WITHOUT_ENABLED_TRAVEL_FEED", + "VERTICAL_ADS_ITEM_GROUP_RULE_LIST_NOT_SUPPORTED_FOR_CAMPAIGNS_WITHOUT_AI_MAX", + "VERTICAL_ADS_ITEM_GROUP_RULE_NOT_SUPPORTED_FOR_THE_VERTICAL_TYPE" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Concrete type of criterion is required for CREATE and UPDATE operations.", + "The category requested for exclusion is invalid.", + "Invalid keyword criteria text.", + "Keyword text should be less than 80 chars.", + "Keyword text has too many words.", + "Keyword text has invalid characters or symbols.", + "Invalid placement URL.", + "Invalid user list criterion.", + "Invalid user interest criterion.", + "Placement URL has wrong format.", + "Placement URL is too long.", + "Indicates the URL contains an illegal character.", + "Indicates the URL contains multiple comma separated URLs.", + "Indicates the domain is blocked.", + "Invalid topic path.", + "The YouTube Channel Id is invalid.", + "The YouTube Video Id is invalid.", + "Indicates the placement is a YouTube vertical channel, which is no longer supported.", + "Indicates the placement is a YouTube demographic channel, which is no longer supported.", + "YouTube urls are not supported in Placement criterion. Use YouTubeChannel and YouTubeVideo criterion instead.", + "Criteria type can not be excluded by the customer, like AOL account type cannot target site type criteria.", + "Criteria type can not be targeted.", + "Not allowed to exclude similar user list.", + "Not allowed to target a closed user list.", + "Not allowed to add display only UserLists to search only campaigns.", + "Not allowed to add display only UserLists to search plus campaigns.", + "Not allowed to add display only UserLists to shopping campaigns.", + "Not allowed to add User interests to search only campaigns.", + "Not allowed to set bids for this criterion type in search campaigns", + "Final URLs, URL Templates and CustomParameters cannot be set for the criterion types of Gender, AgeRange, UserList, Placement, MobileApp, and MobileAppCategory in search campaigns and shopping campaigns.", + "Invalid combined audience criterion.", + "Invalid custom affinity criterion.", + "Invalid custom intent criterion.", + "Invalid custom audience criterion.", + "IP address is not valid.", + "IP format is not valid.", + "Mobile application is not valid.", + "Mobile application category is not valid.", + "The CriterionId does not exist or is of the incorrect type.", + "The Criterion is not allowed to be targeted.", + "The criterion is not allowed to be targeted as it is deprecated.", + "The CriterionId is not valid for the type.", + "Distance for the radius for the proximity criterion is invalid.", + "Units for the distance for the radius for the proximity criterion is invalid.", + "Street address in the address is not valid.", + "City name in the address is not valid.", + "Region code in the address is not valid.", + "Region name in the address is not valid.", + "Postal code in the address is not valid.", + "Country code in the address is not valid.", + "Latitude for the GeoPoint is not valid.", + "Longitude for the GeoPoint is not valid.", + "The Proximity input is not valid. Both address and geoPoint cannot be null.", + "The Proximity address cannot be geocoded to a valid lat/long.", + "User domain name is not valid.", + "Length of serialized criterion parameter exceeded size limit.", + "Time interval in the AdSchedule overlaps with another AdSchedule.", + "AdSchedule time interval cannot span multiple days.", + "AdSchedule time interval specified is invalid, endTime cannot be earlier than startTime.", + "The number of AdSchedule entries in a day exceeds the limit.", + "CriteriaId does not match the interval of the AdSchedule specified.", + "Cannot set bid modifier for this criterion type.", + "Cannot bid modify criterion, since it is opted out of the campaign.", + "Cannot set bid modifier for a negative criterion.", + "Bid Modifier already exists. Use SET operation to update.", + "Feed Id is not allowed in these Location Groups.", + "The account may not use the requested criteria type. For example, some accounts are restricted to keywords only.", + "The requested criteria type cannot be used with campaign or ad group bidding strategy.", + "The Criterion is not allowed to be excluded.", + "The criterion is not allowed to be removed. For example, we cannot remove any of the device criterion.", + "Bidding categories do not form a valid path in the Shopping bidding category taxonomy.", + "ShoppingSetting must be added to the campaign before ProductScope criteria can be added.", + "Matching function is invalid.", + "Filter parameters not allowed for location groups targeting.", + "Feed not found, or the feed is not an enabled location feed.", + "Given location filter parameter is invalid for location groups targeting.", + "Cannot set geo target constants and feed item sets at the same time.", + "Cannot set both assetset and feed at the same time.", + "Cannot set feed or feed item sets for Customer.", + "Cannot set AssetSet criteria for customer.", + "Cannot set geo target constants and asset sets at the same time.", + "Cannot set asset sets and feed item sets at the same time.", + "The location group asset set id is invalid", + "The location group radius is in the range but not at the valid increment.", + "The location group radius unit is invalid.", + "Criteria type cannot be associated with a campaign and its ad group(s) simultaneously.", + "Range represented by hotel length of stay's min nights and max nights overlaps with an existing criterion.", + "Range represented by hotel advance booking window's min days and max days overlaps with an existing criterion.", + "The field is not allowed to be set when the negative field is set to true, for example, we don't allow bids in negative ad group or campaign criteria.", + "The combination of operand and operator in webpage condition is invalid.", + "The URL of webpage condition is invalid.", + "The URL of webpage condition cannot be empty or contain white space.", + "The URL of webpage condition contains an unsupported protocol.", + "The URL of webpage condition cannot be an IP address.", + "The domain of the URL is not consistent with the domain in campaign setting.", + "The URL of webpage condition cannot be a public suffix itself.", + "The URL of webpage condition has an invalid public suffix.", + "Value track parameter is not supported in webpage condition URL.", + "Only one URL-EQUALS webpage condition is allowed in a webpage criterion and it cannot be combined with other conditions.", + "A webpage criterion cannot be added to a non-DSA ad group.", + "Cannot add positive user list criteria in Smart Display campaigns.", + "Cannot add positive placement criterion types in search campaigns.", + "Listing scope contains too many dimension types.", + "Listing scope has too many IN operators.", + "Listing scope contains IN operator on an unsupported dimension type.", + "There are dimensions with duplicate dimension type.", + "There are dimensions with duplicate dimension value.", + "Listing group SUBDIVISION nodes cannot have bids.", + "Product group operation is invalid because another operation targeting the same AdGroupId is failing.", + "Ad group is invalid due to the listing groups it contains.", + "Tree was invalid before the mutation.", + "Listing group unit cannot have children.", + "Subdivided listing groups must have an \"others\" case.", + "Dimension type of listing group must be the same as that of its siblings.", + "Listing group cannot be added to the ad group because it already exists.", + "Listing group referenced in the operation was not found in the ad group.", + "Recursive removal failed because listing group subdivision is being created or modified in this request.", + "Listing group type is not allowed for specified ad group criterion type.", + "Listing group in an ADD operation specifies a non temporary criterion id.", + "The combined length of dimension values of the Listing scope criterion is too long.", + "Listing scope contains too many dimensions.", + "The combined length of dimension values of the Listing group criterion is too long.", + "Listing group tree is too deep.", + "Listing dimension is invalid (for example, dimension contains illegal value, dimension type is represented with wrong class, etc). Listing dimension value can not contain \"==\" or \"&+\".", + "Listing dimension type is either invalid for campaigns of this type or cannot be used in the current context. BIDDING_CATEGORY_Lx and PRODUCT_TYPE_Lx dimensions must be used in ascending order of their levels: L1, L2, L3, L4, L5... The levels must be specified sequentially and start from L1. Furthermore, an \"others\" Listing group cannot be subdivided with a dimension of the same type but of a higher level (\"others\" BIDDING_CATEGORY_L3 can be subdivided with BRAND but not with BIDDING_CATEGORY_L4).", + "Customer is not on allowlist for composite audience in display campaigns.", + "Cannot target on a removed combined audience.", + "Combined audience ID is invalid.", + "Can not target removed combined audience.", + "Range represented by hotel check-in date's start date and end date overlaps with an existing criterion.", + "Start date is earlier than earliest allowed value of yesterday UTC.", + "End date later is than latest allowed day of 330 days in the future UTC.", + "Start date is after end date.", + "Broad match modifier (BMM) keywords can no longer be created. See https://ads-developers.googleblog.com/2021/06/broad-match-modifier-upcoming-changes.html.", + "Only one audience is allowed in an asset group.", + "Audience is not supported for the specified campaign type.", + "Audience is not allowed to attach when use_audience_grouped bit is set to false.", + "Targeting is not allowed for Customer Match lists as per Customer Match policy. See https://support.google.com/google-ads/answer/6299717.", + "Cannot create a negative keyword list criterion with a shared set that does not exist.", + "Cannot create a negative keyword list with deleted shared set.", + "Can only have one Negative Keyword List per account.", + "Only allowlisted customers can add criteria of this type.", + "Targeting for Similar audiences is not supported, since this feature has been deprecated. See https://support.google.com/google-ads/answer/12463119 to learn more.", + "Audience segment criteria cannot be added when use_audience_grouped bit is set.", + "Only one audience is allowed in an ad group.", + "Invalid detailed demographics criterion.", + "The brand criteria has a brand input that is not recognized as a valid brand.", + "The brand_list.shared_set_id references a shared set that does not exist.", + "Cannot create a brand list with deleted shared set.", + "Brand list can only be negatively targeted for the campaign type.", + "Cannot positively target locations outside of restricted area for campaign.", + "Ad group level brand list criteria only support inclusionary targeting. Negative targeting at this level is not supported.", + "Cannot create a placement list with deleted shared set.", + "The placement_list.shared_set_id references a shared set that does not exist.", + "This feature is only available for AI Max campaigns.", + "This feature is not available for AI Max campaigns.", + "The operation failed because the campaign is missing the self-declaration on political advertising status in the EU.", + "Targeting this UserList is not allowed for this campaign type.", + "The user list cannot be used while it is pending privacy review.", + "The referenced Vertical Ads item group rule list shared set does not exist.", + "Cannot add Vertical Ads Item Group Rule List with deleted shared set.", + "Vertical Ads Item Group Rule List is not supported for campaigns that do not have an active travel feed.", + "Vertical Ads Item Group Rule List is not supported for campaigns that do not have AI max enabled.", + "The dimension of the Vertical Ads Item Group Rule criterion is not supported for the shared set vertical type." + ], + "type": "string" + }, + "currencyCodeError": { + "description": "The reasons for the currency code error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "UNSUPPORTED" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "The currency code is not supported." + ], + "type": "string" + }, + "currencyError": { + "description": "The reasons for the currency errors.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "VALUE_NOT_MULTIPLE_OF_BILLABLE_UNIT" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Bid must be a multiple of billable unit." + ], + "type": "string" + }, + "customAudienceError": { + "description": "The reasons for the custom audience error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "NAME_ALREADY_USED", + "CANNOT_REMOVE_WHILE_IN_USE", + "RESOURCE_ALREADY_REMOVED", + "MEMBER_TYPE_AND_PARAMETER_ALREADY_EXISTED", + "INVALID_MEMBER_TYPE", + "MEMBER_TYPE_AND_VALUE_DOES_NOT_MATCH", + "POLICY_VIOLATION", + "INVALID_TYPE_CHANGE" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "New name in the custom audience is duplicated ignoring cases.", + "Cannot remove a custom audience while it's still being used as targeting.", + "Cannot update or remove a custom audience that is already removed.", + "The pair of [type, value] already exists in members.", + "Member type is invalid.", + "Member type does not have associated value.", + "Custom audience contains a member that violates policy.", + "Change in custom audience type is not allowed." + ], + "type": "string" + }, + "customColumnError": { + "description": "The reasons for the custom column error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "CUSTOM_COLUMN_NOT_FOUND", + "CUSTOM_COLUMN_NOT_AVAILABLE" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "The custom column has not been found.", + "The custom column is not available." + ], + "type": "string" + }, + "customConversionGoalError": { + "description": "The reasons for the custom conversion goal error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "INVALID_CONVERSION_ACTION", + "CONVERSION_ACTION_NOT_ENABLED", + "CANNOT_REMOVE_LINKED_CUSTOM_CONVERSION_GOAL", + "CUSTOM_GOAL_DUPLICATE_NAME", + "DUPLICATE_CONVERSION_ACTION_LIST", + "NON_BIDDABLE_CONVERSION_ACTION_NOT_ELIGIBLE_FOR_CUSTOM_GOAL" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Cannot find a conversion action with the specified id.", + "The conversion action is not enabled so it cannot be included in a custom conversion goal.", + "The custom conversion goal cannot be removed because it's linked to a campaign.", + "Custom goal with the same name already exists.", + "Custom goal with the same conversion action list already exists.", + "Conversion types that cannot be biddable should not be included in custom goal." + ], + "type": "string" + }, + "customInterestError": { + "description": "The reasons for the custom interest error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "NAME_ALREADY_USED", + "CUSTOM_INTEREST_MEMBER_ID_AND_TYPE_PARAMETER_NOT_PRESENT_IN_REMOVE", + "TYPE_AND_PARAMETER_NOT_FOUND", + "TYPE_AND_PARAMETER_ALREADY_EXISTED", + "INVALID_CUSTOM_INTEREST_MEMBER_TYPE", + "CANNOT_REMOVE_WHILE_IN_USE", + "CANNOT_CHANGE_TYPE" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Duplicate custom interest name ignoring case.", + "In the remove custom interest member operation, both member ID and pair [type, parameter] are not present.", + "The pair of [type, parameter] does not exist.", + "The pair of [type, parameter] already exists.", + "Unsupported custom interest member type.", + "Cannot remove a custom interest while it's still being targeted.", + "Cannot mutate custom interest type." + ], + "type": "string" + }, + "customerClientLinkError": { + "description": "The reasons for the customer client link error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "CLIENT_ALREADY_INVITED_BY_THIS_MANAGER", + "CLIENT_ALREADY_MANAGED_IN_HIERARCHY", + "CYCLIC_LINK_NOT_ALLOWED", + "CUSTOMER_HAS_TOO_MANY_ACCOUNTS", + "CLIENT_HAS_TOO_MANY_INVITATIONS", + "CANNOT_HIDE_OR_UNHIDE_MANAGER_ACCOUNTS", + "CUSTOMER_HAS_TOO_MANY_ACCOUNTS_AT_MANAGER", + "CLIENT_HAS_TOO_MANY_MANAGERS" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Trying to manage a client that already in being managed by customer.", + "Already managed by some other manager in the hierarchy.", + "Attempt to create a cycle in the hierarchy.", + "Managed accounts has the maximum number of linked accounts.", + "Invitor has the maximum pending invitations.", + "Attempt to change hidden status of a link that is not active.", + "Parent manager account has the maximum number of linked accounts.", + "Client has too many managers." + ], + "type": "string" + }, + "customerCustomizerError": { + "description": "The reasons for the customer customizer error.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version." + ], + "type": "string" + }, + "customerError": { + "description": "The reasons for the customer error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "STATUS_CHANGE_DISALLOWED", + "ACCOUNT_NOT_SET_UP", + "CREATION_DENIED_FOR_POLICY_VIOLATION", + "CREATION_DENIED_INELIGIBLE_MCC" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Customer status is not allowed to be changed from DRAFT and CLOSED. Currency code and at least one of country code and time zone needs to be set when status is changed to ENABLED.", + "CustomerService cannot get a customer that has not been fully set up.", + "Customer creation is denied for policy violation.", + "Manager account is ineligible to create new accounts." + ], + "type": "string" + }, + "customerFeedError": { + "description": "The reasons for the customer feed error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE", + "CANNOT_CREATE_FOR_REMOVED_FEED", + "CANNOT_CREATE_ALREADY_EXISTING_CUSTOMER_FEED", + "CANNOT_MODIFY_REMOVED_CUSTOMER_FEED", + "INVALID_PLACEHOLDER_TYPE", + "MISSING_FEEDMAPPING_FOR_PLACEHOLDER_TYPE", + "PLACEHOLDER_TYPE_NOT_ALLOWED_ON_CUSTOMER_FEED" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "An active feed already exists for this customer and place holder type.", + "The specified feed is removed.", + "The CustomerFeed already exists. Update should be used to modify the existing CustomerFeed.", + "Cannot update removed customer feed.", + "Invalid placeholder type.", + "Feed mapping for this placeholder type does not exist.", + "Placeholder not allowed at the account level." + ], + "type": "string" + }, + "customerLifecycleGoalError": { + "description": "The reasons for the customer lifecycle goal error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "CUSTOMER_ACQUISITION_VALUE_MISSING", + "CUSTOMER_ACQUISITION_INVALID_VALUE", + "CUSTOMER_ACQUISITION_INVALID_HIGH_LIFETIME_VALUE", + "CUSTOMER_ACQUISITION_VALUE_CANNOT_BE_CLEARED", + "CUSTOMER_ACQUISITION_HIGH_LIFETIME_VALUE_CANNOT_BE_CLEARED", + "INVALID_EXISTING_USER_LIST", + "INVALID_HIGH_LIFETIME_VALUE_USER_LIST" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "CustomerLifecycleGoal.customer_acquisition_goal_value_settings.value must be set.", + "CustomerLifecycleGoal.customer_acquisition_goal_value_settings.value must be no less than 0.01.", + "CustomerLifecycleGoal.customer_acquisition_goal_value_settings.high_lifetime_value must be no less than 0.01. Also, to set this field, CustomerLifecycleGoal.customer_acquisition_goal_value_settings.value must also be present, and high_lifetime_value must be greater than value.", + "CustomerLifecycleGoal.customer_acquisition_goal_value_settings.value cannot be cleared. This value would have no effect as long as none of your campaigns adopt the customer acquisitiong goal.", + "CustomerLifecycleGoal.customer_acquisition_goal_value_settings.high_lifetime_value cannot be cleared. This value would have no effect as long as none of your campaigns adopt the high value optimization of customer acquisitiong goal.", + "Found invalid value in CustomerLifecycleGoal.lifecycle_goal_customer_definition_settings.existing_user_lists. The userlist must be accessible, active and belong to one of the following types: CRM_BASED, RULE_BASED, REMARKETING.", + "Found invalid value in CustomerLifecycleGoal.lifecycle_goal_customer_definition_settings.high_lifetime_value_user_lists. The userlist must be accessible, active and belong to one of the following types: CRM_BASED, RULE_BASED, REMARKETING." + ], + "type": "string" + }, + "customerManagerLinkError": { + "description": "The reasons for the customer manager link error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "NO_PENDING_INVITE", + "SAME_CLIENT_MORE_THAN_ONCE_PER_CALL", + "MANAGER_HAS_MAX_NUMBER_OF_LINKED_ACCOUNTS", + "CANNOT_UNLINK_ACCOUNT_WITHOUT_ACTIVE_USER", + "CANNOT_REMOVE_LAST_CLIENT_ACCOUNT_OWNER", + "CANNOT_CHANGE_ROLE_BY_NON_ACCOUNT_OWNER", + "CANNOT_CHANGE_ROLE_FOR_NON_ACTIVE_LINK_ACCOUNT", + "DUPLICATE_CHILD_FOUND", + "TEST_ACCOUNT_LINKS_TOO_MANY_CHILD_ACCOUNTS" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "No pending invitation.", + "Attempt to operate on the same client more than once in the same call.", + "Manager account has the maximum number of linked accounts.", + "If no active user on account it cannot be unlinked from its manager.", + "Account should have at least one active owner on it before being unlinked.", + "Only account owners may change their permission role.", + "When a client's link to its manager is not active, the link role cannot be changed.", + "Attempt to link a child to a parent that contains or will contain duplicate children.", + "The authorized customer is a test account. It can add no more than the allowed number of accounts" + ], + "type": "string" + }, + "customerSkAdNetworkConversionValueSchemaError": { + "description": "The reasons for the customer SK Ad network conversion value schema error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "INVALID_LINK_ID", + "INVALID_APP_ID", + "INVALID_SCHEMA", + "LINK_CODE_NOT_FOUND", + "INVALID_EVENT_COUNTER", + "INVALID_EVENT_NAME" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "The customer link ID provided is invalid.", + "The app ID provided is invalid.", + "The conversion value schema provided is invalid.", + "The customer link id provided could not be found.", + "The SkAdNetwork event counter provided is invalid.", + "The SkAdNetwork event name provided is invalid." + ], + "type": "string" + }, + "customerUserAccessError": { + "description": "The reasons for the customer user access mutate error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "INVALID_USER_ID", + "REMOVAL_DISALLOWED", + "DISALLOWED_ACCESS_ROLE", + "LAST_ADMIN_USER_OF_SERVING_CUSTOMER", + "LAST_ADMIN_USER_OF_MANAGER" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "There is no user associated with the user id specified.", + "Unable to remove the access between the user and customer.", + "Unable to add or update the access role as specified.", + "The user can't remove itself from an active serving customer if it's the last admin user and the customer doesn't have any owner manager", + "Last admin user cannot be removed from a manager." + ], + "type": "string" + }, + "customizerAttributeError": { + "description": "The reasons for the customizer attribute error.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "DUPLICATE_CUSTOMIZER_ATTRIBUTE_NAME" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "CustomizerAttribute name matches that of another active CustomizerAttribute." + ], + "type": "string" + }, + "dataLinkError": { + "description": "The reasons for the data link error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "YOUTUBE_CHANNEL_ID_INVALID", + "YOUTUBE_VIDEO_ID_INVALID", + "YOUTUBE_VIDEO_FROM_DIFFERENT_CHANNEL", + "PERMISSION_DENIED", + "INVALID_STATUS", + "INVALID_UPDATE_STATUS", + "INVALID_RESOURCE_NAME" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "The requested YouTube Channel ID is invalid.", + "The requested YouTube Video ID is invalid.", + "The requested YouTube Video ID doesn't belong to the requested YouTube Channel ID.", + "A link cannot be created because the customer doesn't have the permission.", + "A link can not be removed or updated because the status is invalid.", + "The input status in the update request is invalid.", + "The input resource name is invalid." + ], + "type": "string" + }, + "databaseError": { + "description": "The reasons for the database error.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "CONCURRENT_MODIFICATION", + "DATA_CONSTRAINT_VIOLATION", + "REQUEST_TOO_LARGE" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Multiple requests were attempting to modify the same resource at once. Retry the request.", + "The request conflicted with existing data. This error will usually be replaced with a more specific error if the request is retried.", + "The data written is too large. Split the request into smaller requests." + ], + "type": "string" + }, + "dateError": { + "description": "The reasons for the date error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "INVALID_FIELD_VALUES_IN_DATE", + "INVALID_FIELD_VALUES_IN_DATE_TIME", + "INVALID_STRING_DATE", + "INVALID_STRING_DATE_TIME_MICROS", + "INVALID_STRING_DATE_TIME_SECONDS", + "INVALID_STRING_DATE_TIME_SECONDS_WITH_OFFSET", + "EARLIER_THAN_MINIMUM_DATE", + "LATER_THAN_MAXIMUM_DATE", + "DATE_RANGE_MINIMUM_DATE_LATER_THAN_MAXIMUM_DATE", + "DATE_RANGE_MINIMUM_AND_MAXIMUM_DATES_BOTH_NULL", + "DATE_RANGE_ERROR_START_TIME_MUST_BE_THE_START_OF_A_DAY", + "DATE_RANGE_ERROR_END_TIME_MUST_BE_THE_END_OF_A_DAY" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Given field values do not correspond to a valid date.", + "Given field values do not correspond to a valid date time.", + "The string date's format should be yyyy-mm-dd.", + "The string date time's format should be yyyy-mm-dd hh:mm:ss.ssssss.", + "The string date time's format should be yyyy-mm-dd hh:mm:ss.", + "The string date time's format should be yyyy-mm-dd hh:mm:ss+|-hh:mm.", + "Date is before allowed minimum.", + "Date is after allowed maximum.", + "Date range bounds are not in order.", + "Both dates in range are null.", + "This campaign type doesn't support a start date time that isn't the start of the day.", + "This campaign type doesn't support an end date time that isn't the end of the day." + ], + "type": "string" + }, + "dateRangeError": { + "description": "The reasons for the date range error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "INVALID_DATE", + "START_DATE_AFTER_END_DATE", + "CANNOT_SET_DATE_TO_PAST", + "AFTER_MAXIMUM_ALLOWABLE_DATE", + "CANNOT_MODIFY_START_DATE_IF_ALREADY_STARTED" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Invalid date.", + "The start date was after the end date.", + "Cannot set date to past time", + "A date was used that is past the system \"last\" date.", + "Trying to change start date on a resource that has started." + ], + "type": "string" + }, + "distinctError": { + "description": "The reasons for the distinct error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "DUPLICATE_ELEMENT", + "DUPLICATE_TYPE" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Duplicate element.", + "Duplicate type." + ], + "type": "string" + }, + "enumError": { + "description": "The reason for enum error.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "ENUM_VALUE_NOT_PERMITTED" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "The enum value is not permitted." + ], + "type": "string" + }, + "experimentArmError": { + "description": "The reasons for the experiment arm error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "EXPERIMENT_ARM_COUNT_LIMIT_EXCEEDED", + "INVALID_CAMPAIGN_STATUS", + "DUPLICATE_EXPERIMENT_ARM_NAME", + "CANNOT_SET_TREATMENT_ARM_CAMPAIGN", + "CANNOT_MODIFY_CAMPAIGN_IDS", + "CANNOT_MODIFY_CAMPAIGN_WITHOUT_SUFFIX_SET", + "CANNOT_MUTATE_TRAFFIC_SPLIT_AFTER_START", + "CANNOT_ADD_CAMPAIGN_WITH_SHARED_BUDGET", + "CANNOT_ADD_CAMPAIGN_WITH_CUSTOM_BUDGET", + "CANNOT_ADD_CAMPAIGNS_WITH_DYNAMIC_ASSETS_ENABLED", + "UNSUPPORTED_CAMPAIGN_ADVERTISING_CHANNEL_SUB_TYPE", + "CANNOT_ADD_BASE_CAMPAIGN_WITH_DATE_RANGE", + "BIDDING_STRATEGY_NOT_SUPPORTED_IN_EXPERIMENTS", + "TRAFFIC_SPLIT_NOT_SUPPORTED_FOR_CHANNEL_TYPE" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Number of experiment arms is above limit.", + "Cannot add campaign with invalid status to the experiment arm.", + "Cannot add duplicate experiment arm name in one experiment.", + "Cannot set campaigns of treatment experiment arm.", + "Cannot edit campaign ids in trial arms in non SETUP experiment.", + "Cannot modify the campaigns in the control arm if there is not a suffix set in the trial.", + "Traffic split related settings (like traffic share bounds) can't be modified after the trial has started.", + "Cannot use shared budget on experiment's control campaign.", + "Cannot use custom budget on experiment's control campaigns.", + "Cannot have enable_dynamic_assets turned on in experiment's campaigns.", + "Cannot use campaign's advertising channel sub type in experiment.", + "Experiment date range must be within base campaign's date range.", + "Bidding strategy is not supported in experiments.", + "Traffic split is not supported for some channel types." + ], + "type": "string" + }, + "experimentError": { + "description": "The reasons for the experiment error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "CANNOT_SET_START_DATE_IN_PAST", + "END_DATE_BEFORE_START_DATE", + "START_DATE_TOO_FAR_IN_FUTURE", + "DUPLICATE_EXPERIMENT_NAME", + "CANNOT_MODIFY_REMOVED_EXPERIMENT", + "START_DATE_ALREADY_PASSED", + "CANNOT_SET_END_DATE_IN_PAST", + "CANNOT_SET_STATUS_TO_REMOVED", + "CANNOT_MODIFY_PAST_END_DATE", + "INVALID_STATUS", + "INVALID_CAMPAIGN_CHANNEL_TYPE", + "OVERLAPPING_MEMBERS_AND_DATE_RANGE", + "INVALID_TRIAL_ARM_TRAFFIC_SPLIT", + "TRAFFIC_SPLIT_OVERLAPPING", + "SUM_TRIAL_ARM_TRAFFIC_UNEQUALS_TO_TRIAL_TRAFFIC_SPLIT_DENOMINATOR", + "CANNOT_MODIFY_TRAFFIC_SPLIT_AFTER_START", + "EXPERIMENT_NOT_FOUND", + "EXPERIMENT_NOT_YET_STARTED", + "CANNOT_HAVE_MULTIPLE_CONTROL_ARMS", + "IN_DESIGN_CAMPAIGNS_NOT_SET", + "CANNOT_SET_STATUS_TO_GRADUATED", + "CANNOT_CREATE_EXPERIMENT_CAMPAIGN_WITH_SHARED_BUDGET", + "CANNOT_CREATE_EXPERIMENT_CAMPAIGN_WITH_CUSTOM_BUDGET", + "STATUS_TRANSITION_INVALID", + "DUPLICATE_EXPERIMENT_CAMPAIGN_NAME", + "CANNOT_REMOVE_IN_CREATION_EXPERIMENT", + "CANNOT_ADD_CAMPAIGN_WITH_DEPRECATED_AD_TYPES", + "CANNOT_ENABLE_SYNC_FOR_UNSUPPORTED_EXPERIMENT_TYPE", + "INVALID_DURATION_FOR_AN_EXPERIMENT", + "MISSING_EU_POLITICAL_ADVERTISING_SELF_DECLARATION" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "The start date of an experiment cannot be set in the past. Use a start date in the future.", + "The end date of an experiment is before its start date. Use an end date after the start date.", + "The start date of an experiment is too far in the future. Use a start date no more than 1 year in the future.", + "The experiment has the same name as an existing active experiment.", + "Experiments can only be modified when they are ENABLED.", + "The start date of an experiment cannot be modified if the existing start date has already passed.", + "The end date of an experiment cannot be set in the past.", + "The status of an experiment cannot be set to REMOVED.", + "The end date of an expired experiment cannot be modified.", + "The status is invalid.", + "Experiment arm contains campaigns with invalid advertising channel type.", + "A pair of trials share members and have overlapping date ranges.", + "Experiment arm contains invalid traffic split.", + "Experiment contains trial arms with overlapping traffic split.", + "The total traffic split of trial arms is not equal to 100.", + "Traffic split related settings (like traffic share bounds) can't be modified after the experiment has started.", + "The experiment could not be found.", + "Experiment has not begun.", + "The experiment cannot have more than one control arm.", + "The experiment doesn't set in-design campaigns.", + "Clients must use the graduate action to graduate experiments and cannot set the status to GRADUATED directly.", + "Cannot use shared budget on base campaign when scheduling an experiment.", + "Cannot use custom budget on base campaign when scheduling an experiment.", + "Invalid status transition.", + "The experiment campaign name conflicts with a pre-existing campaign.", + "Cannot remove in creation experiments.", + "Cannot add campaign with deprecated ad types. Deprecated ad types: ENHANCED_DISPLAY, GALLERY, GMAIL, KEYWORDLESS, TEXT.", + "Sync can only be enabled for supported experiment types. Supported experiment types: SEARCH_CUSTOM, DISPLAY_CUSTOM, DISPLAY_AUTOMATED_BIDDING_STRATEGY, SEARCH_AUTOMATED_BIDDING_STRATEGY.", + "Experiment length cannot be longer than max length.", + "The experiment's campaigns must self-declare whether they contain political advertising that targets the European Union." + ], + "type": "string" + }, + "extensionFeedItemError": { + "description": "The reasons for the extension feed item error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "VALUE_OUT_OF_RANGE", + "URL_LIST_TOO_LONG", + "CANNOT_HAVE_RESTRICTION_ON_EMPTY_GEO_TARGETING", + "CANNOT_SET_WITH_FINAL_URLS", + "CANNOT_SET_WITHOUT_FINAL_URLS", + "INVALID_PHONE_NUMBER", + "PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY", + "CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED", + "PREMIUM_RATE_NUMBER_NOT_ALLOWED", + "DISALLOWED_NUMBER_TYPE", + "INVALID_DOMESTIC_PHONE_NUMBER_FORMAT", + "VANITY_PHONE_NUMBER_NOT_ALLOWED", + "INVALID_CALL_CONVERSION_ACTION", + "CUSTOMER_NOT_ON_ALLOWLIST_FOR_CALLTRACKING", + "CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY", + "CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED", + "INVALID_APP_ID", + "QUOTES_IN_REVIEW_EXTENSION_SNIPPET", + "HYPHENS_IN_REVIEW_EXTENSION_SNIPPET", + "REVIEW_EXTENSION_SOURCE_INELIGIBLE", + "SOURCE_NAME_IN_REVIEW_EXTENSION_TEXT", + "INCONSISTENT_CURRENCY_CODES", + "PRICE_EXTENSION_HAS_DUPLICATED_HEADERS", + "PRICE_ITEM_HAS_DUPLICATED_HEADER_AND_DESCRIPTION", + "PRICE_EXTENSION_HAS_TOO_FEW_ITEMS", + "PRICE_EXTENSION_HAS_TOO_MANY_ITEMS", + "UNSUPPORTED_VALUE", + "UNSUPPORTED_VALUE_IN_SELECTED_LANGUAGE", + "INVALID_DEVICE_PREFERENCE", + "INVALID_SCHEDULE_END", + "DATE_TIME_MUST_BE_IN_ACCOUNT_TIME_ZONE", + "INVALID_SNIPPETS_HEADER", + "CANNOT_OPERATE_ON_REMOVED_FEED_ITEM", + "PHONE_NUMBER_NOT_SUPPORTED_WITH_CALLTRACKING_FOR_COUNTRY", + "CONFLICTING_CALL_CONVERSION_SETTINGS", + "EXTENSION_TYPE_MISMATCH", + "EXTENSION_SUBTYPE_REQUIRED", + "EXTENSION_TYPE_UNSUPPORTED", + "CANNOT_OPERATE_ON_FEED_WITH_MULTIPLE_MAPPINGS", + "CANNOT_OPERATE_ON_FEED_WITH_KEY_ATTRIBUTES", + "INVALID_PRICE_FORMAT", + "PROMOTION_INVALID_TIME", + "TOO_MANY_DECIMAL_PLACES_SPECIFIED", + "CONCRETE_EXTENSION_TYPE_REQUIRED", + "SCHEDULE_END_NOT_AFTER_START" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Value is not within the accepted range.", + "Url list is too long.", + "Cannot have a geo targeting restriction without having geo targeting.", + "Cannot simultaneously set sitelink field with final urls.", + "Must set field with final urls.", + "Phone number for a call extension is invalid.", + "Phone number for a call extension is not supported for the given country code.", + "A carrier specific number in short format is not allowed for call extensions.", + "Premium rate numbers are not allowed for call extensions.", + "Phone number type for a call extension is not allowed. For example, personal number is not allowed for a call extension in most regions.", + "Phone number for a call extension does not meet domestic format requirements.", + "Vanity phone numbers (for example, those including letters) are not allowed for call extensions.", + "Call conversion action provided for a call extension is invalid.", + "For a call extension, the customer is not on the allow-list for call tracking.", + "Call tracking is not supported for the given country for a call extension.", + "Customer hasn't consented for call recording, which is required for creating/updating call feed items. See https://support.google.com/google-ads/answer/7412639.", + "App id provided for an app extension is invalid.", + "Quotation marks present in the review text for a review extension.", + "Hyphen character present in the review text for a review extension.", + "A denylisted review source name or url was provided for a review extension.", + "Review source name should not be found in the review text.", + "Inconsistent currency codes.", + "Price extension cannot have duplicated headers.", + "Price item cannot have duplicated header and description.", + "Price extension has too few items.", + "Price extension has too many items.", + "The input value is not currently supported.", + "The input value is not currently supported in the selected language of an extension.", + "Unknown or unsupported device preference.", + "Invalid feed item schedule end time (for example, endHour = 24 and endMinute != 0).", + "Date time zone does not match the account's time zone.", + "Invalid structured snippet header.", + "Cannot operate on removed feed item.", + "Phone number not supported when call tracking enabled for country.", + "Cannot set call_conversion_action while call_conversion_tracking_enabled is set to true.", + "The type of the input extension feed item doesn't match the existing extension feed item.", + "The oneof field extension for example, subtype of extension feed item is required.", + "The referenced feed item is not mapped to a supported extension type.", + "Cannot operate on a Feed with more than one active FeedMapping.", + "Cannot operate on a Feed that has key attributes.", + "Input price is not in a valid format.", + "The promotion time is invalid.", + "This field has too many decimal places specified.", + "Concrete sub type of ExtensionFeedItem is required for this operation.", + "Feed item schedule end time must be after start time." + ], + "type": "string" + }, + "extensionSettingError": { + "description": "The reasons for the extension setting error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "EXTENSIONS_REQUIRED", + "FEED_TYPE_EXTENSION_TYPE_MISMATCH", + "INVALID_FEED_TYPE", + "INVALID_FEED_TYPE_FOR_CUSTOMER_EXTENSION_SETTING", + "CANNOT_CHANGE_FEED_ITEM_ON_CREATE", + "CANNOT_UPDATE_NEWLY_CREATED_EXTENSION", + "NO_EXISTING_AD_GROUP_EXTENSION_SETTING_FOR_TYPE", + "NO_EXISTING_CAMPAIGN_EXTENSION_SETTING_FOR_TYPE", + "NO_EXISTING_CUSTOMER_EXTENSION_SETTING_FOR_TYPE", + "AD_GROUP_EXTENSION_SETTING_ALREADY_EXISTS", + "CAMPAIGN_EXTENSION_SETTING_ALREADY_EXISTS", + "CUSTOMER_EXTENSION_SETTING_ALREADY_EXISTS", + "AD_GROUP_FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE", + "CAMPAIGN_FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE", + "CUSTOMER_FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE", + "VALUE_OUT_OF_RANGE", + "CANNOT_SET_FIELD_WITH_FINAL_URLS", + "FINAL_URLS_NOT_SET", + "INVALID_PHONE_NUMBER", + "PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY", + "CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED", + "PREMIUM_RATE_NUMBER_NOT_ALLOWED", + "DISALLOWED_NUMBER_TYPE", + "INVALID_DOMESTIC_PHONE_NUMBER_FORMAT", + "VANITY_PHONE_NUMBER_NOT_ALLOWED", + "INVALID_COUNTRY_CODE", + "INVALID_CALL_CONVERSION_TYPE_ID", + "CUSTOMER_NOT_IN_ALLOWLIST_FOR_CALLTRACKING", + "CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY", + "INVALID_APP_ID", + "QUOTES_IN_REVIEW_EXTENSION_SNIPPET", + "HYPHENS_IN_REVIEW_EXTENSION_SNIPPET", + "REVIEW_EXTENSION_SOURCE_NOT_ELIGIBLE", + "SOURCE_NAME_IN_REVIEW_EXTENSION_TEXT", + "MISSING_FIELD", + "INCONSISTENT_CURRENCY_CODES", + "PRICE_EXTENSION_HAS_DUPLICATED_HEADERS", + "PRICE_ITEM_HAS_DUPLICATED_HEADER_AND_DESCRIPTION", + "PRICE_EXTENSION_HAS_TOO_FEW_ITEMS", + "PRICE_EXTENSION_HAS_TOO_MANY_ITEMS", + "UNSUPPORTED_VALUE", + "INVALID_DEVICE_PREFERENCE", + "INVALID_SCHEDULE_END", + "DATE_TIME_MUST_BE_IN_ACCOUNT_TIME_ZONE", + "OVERLAPPING_SCHEDULES_NOT_ALLOWED", + "SCHEDULE_END_NOT_AFTER_START", + "TOO_MANY_SCHEDULES_PER_DAY", + "DUPLICATE_EXTENSION_FEED_ITEM_EDIT", + "INVALID_SNIPPETS_HEADER", + "PHONE_NUMBER_NOT_SUPPORTED_WITH_CALLTRACKING_FOR_COUNTRY", + "CAMPAIGN_TARGETING_MISMATCH", + "CANNOT_OPERATE_ON_REMOVED_FEED", + "EXTENSION_TYPE_REQUIRED", + "INCOMPATIBLE_UNDERLYING_MATCHING_FUNCTION", + "START_DATE_AFTER_END_DATE", + "INVALID_PRICE_FORMAT", + "PROMOTION_INVALID_TIME", + "PROMOTION_CANNOT_SET_PERCENT_DISCOUNT_AND_MONEY_DISCOUNT", + "PROMOTION_CANNOT_SET_PROMOTION_CODE_AND_ORDERS_OVER_AMOUNT", + "TOO_MANY_DECIMAL_PLACES_SPECIFIED", + "INVALID_LANGUAGE_CODE", + "UNSUPPORTED_LANGUAGE", + "CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED", + "EXTENSION_SETTING_UPDATE_IS_A_NOOP", + "DISALLOWED_TEXT" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "A platform restriction was provided without input extensions or existing extensions.", + "The provided feed type does not correspond to the provided extensions.", + "The provided feed type cannot be used.", + "The provided feed type cannot be used at the customer level.", + "Cannot change a feed item field on a CREATE operation.", + "Cannot update an extension that is not already in this setting.", + "There is no existing AdGroupExtensionSetting for this type.", + "There is no existing CampaignExtensionSetting for this type.", + "There is no existing CustomerExtensionSetting for this type.", + "The AdGroupExtensionSetting already exists. UPDATE should be used to modify the existing AdGroupExtensionSetting.", + "The CampaignExtensionSetting already exists. UPDATE should be used to modify the existing CampaignExtensionSetting.", + "The CustomerExtensionSetting already exists. UPDATE should be used to modify the existing CustomerExtensionSetting.", + "An active ad group feed already exists for this place holder type.", + "An active campaign feed already exists for this place holder type.", + "An active customer feed already exists for this place holder type.", + "Value is not within the accepted range.", + "Cannot simultaneously set specified field with final urls.", + "Must set field with final urls.", + "Phone number for a call extension is invalid.", + "Phone number for a call extension is not supported for the given country code.", + "A carrier specific number in short format is not allowed for call extensions.", + "Premium rate numbers are not allowed for call extensions.", + "Phone number type for a call extension is not allowed.", + "Phone number for a call extension does not meet domestic format requirements.", + "Vanity phone numbers (for example, those including letters) are not allowed for call extensions.", + "Country code provided for a call extension is invalid.", + "Call conversion type id provided for a call extension is invalid.", + "For a call extension, the customer is not on the allow-list for call tracking.", + "Call tracking is not supported for the given country for a call extension.", + "App id provided for an app extension is invalid.", + "Quotation marks present in the review text for a review extension.", + "Hyphen character present in the review text for a review extension.", + "A blocked review source name or url was provided for a review extension.", + "Review source name should not be found in the review text.", + "Field must be set.", + "Inconsistent currency codes.", + "Price extension cannot have duplicated headers.", + "Price item cannot have duplicated header and description.", + "Price extension has too few items", + "Price extension has too many items", + "The input value is not currently supported.", + "Unknown or unsupported device preference.", + "Invalid feed item schedule end time (for example, endHour = 24 and endMinute != 0).", + "Date time zone does not match the account's time zone.", + "Overlapping feed item schedule times (for example, 7-10AM and 8-11AM) are not allowed.", + "Feed item schedule end time must be after start time.", + "There are too many feed item schedules per day.", + "Cannot edit the same extension feed item more than once in the same request.", + "Invalid structured snippet header.", + "Phone number with call tracking enabled is not supported for the specified country.", + "The targeted adgroup must belong to the targeted campaign.", + "The feed used by the ExtensionSetting is removed and cannot be operated on. Remove the ExtensionSetting to allow a new one to be created using an active feed.", + "The ExtensionFeedItem type is required for this operation.", + "The matching function that links the extension feed to the customer, campaign, or ad group is not compatible with the ExtensionSetting services.", + "Start date must be before end date.", + "Input price is not in a valid format.", + "The promotion time is invalid.", + "Cannot set both percent discount and money discount fields.", + "Cannot set both promotion code and orders over amount fields.", + "This field has too many decimal places specified.", + "The language code is not valid.", + "The language is not supported.", + "Customer hasn't consented for call recording, which is required for adding/updating call extensions. See https://support.google.com/google-ads/answer/7412639.", + "The UPDATE operation does not specify any fields other than the resource name in the update mask.", + "The extension contains text which has been prohibited on policy grounds." + ], + "type": "string" + }, + "feedAttributeReferenceError": { + "description": "The reasons for the feed attribute reference error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "CANNOT_REFERENCE_REMOVED_FEED", + "INVALID_FEED_NAME", + "INVALID_FEED_ATTRIBUTE_NAME" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "A feed referenced by ID has been removed.", + "There is no enabled feed with the given name.", + "There is no feed attribute in an enabled feed with the given name." + ], + "type": "string" + }, + "feedError": { + "description": "The reasons for the feed error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "ATTRIBUTE_NAMES_NOT_UNIQUE", + "ATTRIBUTES_DO_NOT_MATCH_EXISTING_ATTRIBUTES", + "CANNOT_SPECIFY_USER_ORIGIN_FOR_SYSTEM_FEED", + "CANNOT_SPECIFY_GOOGLE_ORIGIN_FOR_NON_SYSTEM_FEED", + "CANNOT_SPECIFY_FEED_ATTRIBUTES_FOR_SYSTEM_FEED", + "CANNOT_UPDATE_FEED_ATTRIBUTES_WITH_ORIGIN_GOOGLE", + "FEED_REMOVED", + "INVALID_ORIGIN_VALUE", + "FEED_ORIGIN_IS_NOT_USER", + "INVALID_AUTH_TOKEN_FOR_EMAIL", + "INVALID_EMAIL", + "DUPLICATE_FEED_NAME", + "INVALID_FEED_NAME", + "MISSING_OAUTH_INFO", + "NEW_ATTRIBUTE_CANNOT_BE_PART_OF_UNIQUE_KEY", + "TOO_MANY_ATTRIBUTES", + "INVALID_BUSINESS_ACCOUNT", + "BUSINESS_ACCOUNT_CANNOT_ACCESS_LOCATION_ACCOUNT", + "INVALID_AFFILIATE_CHAIN_ID", + "DUPLICATE_SYSTEM_FEED", + "GMB_ACCESS_ERROR", + "CANNOT_HAVE_LOCATION_AND_AFFILIATE_LOCATION_FEEDS", + "LEGACY_EXTENSION_TYPE_READ_ONLY" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "The names of the FeedAttributes must be unique.", + "The attribute list must be an exact copy of the existing list if the attribute ID's are present.", + "Cannot specify USER origin for a system generated feed.", + "Cannot specify GOOGLE origin for a non-system generated feed.", + "Cannot specify feed attributes for system feed.", + "Cannot update FeedAttributes on feed with origin GOOGLE.", + "The given ID refers to a removed Feed. Removed Feeds are immutable.", + "The origin of the feed is not valid for the client.", + "A user can only create and modify feeds with USER origin.", + "Invalid auth token for the given email.", + "Invalid email specified.", + "Feed name matches that of another active Feed.", + "Name of feed is not allowed.", + "Missing OAuthInfo.", + "New FeedAttributes must not affect the unique key.", + "Too many FeedAttributes for a Feed.", + "The business account is not valid.", + "Business account cannot access Business Profile.", + "Invalid chain ID provided for affiliate location feed.", + "There is already a feed with the given system feed generation data.", + "An error occurred accessing Business Profile.", + "A customer cannot have both LOCATION and AFFILIATE_LOCATION feeds.", + "Feed-based extension is read-only for this extension type." + ], + "type": "string" + }, + "feedItemError": { + "description": "The reasons for the feed item error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "CANNOT_CONVERT_ATTRIBUTE_VALUE_FROM_STRING", + "CANNOT_OPERATE_ON_REMOVED_FEED_ITEM", + "DATE_TIME_MUST_BE_IN_ACCOUNT_TIME_ZONE", + "KEY_ATTRIBUTES_NOT_FOUND", + "INVALID_URL", + "MISSING_KEY_ATTRIBUTES", + "KEY_ATTRIBUTES_NOT_UNIQUE", + "CANNOT_MODIFY_KEY_ATTRIBUTE_VALUE", + "SIZE_TOO_LARGE_FOR_MULTI_VALUE_ATTRIBUTE", + "LEGACY_FEED_TYPE_READ_ONLY" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Cannot convert the feed attribute value from string to its real type.", + "Cannot operate on removed feed item.", + "Date time zone does not match the account's time zone.", + "Feed item with the key attributes could not be found.", + "Url feed attribute value is not valid.", + "Some key attributes are missing.", + "Feed item has same key attributes as another feed item.", + "Cannot modify key attributes on an existing feed item.", + "The feed attribute value is too large.", + "Feed is read only." + ], + "type": "string" + }, + "feedItemSetError": { + "description": "The reasons for the feed item set error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "FEED_ITEM_SET_REMOVED", + "CANNOT_CLEAR_DYNAMIC_FILTER", + "CANNOT_CREATE_DYNAMIC_FILTER", + "INVALID_FEED_TYPE", + "DUPLICATE_NAME", + "WRONG_DYNAMIC_FILTER_FOR_FEED_TYPE", + "DYNAMIC_FILTER_INVALID_CHAIN_IDS" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "The given ID refers to a removed FeedItemSet.", + "The dynamic filter of a feed item set cannot be cleared on UPDATE if it exists. A set is either static or dynamic once added, and that cannot change.", + "The dynamic filter of a feed item set cannot be created on UPDATE if it does not exist. A set is either static or dynamic once added, and that cannot change.", + "FeedItemSets can only be made for location or affiliate location feeds.", + "FeedItemSets duplicate name. Name should be unique within an account.", + "The feed type of the parent Feed is not compatible with the type of dynamic filter being set. For example, you can only set dynamic_location_set_filter for LOCATION feed item sets.", + "Chain ID specified for AffiliateLocationFeedData is invalid." + ], + "type": "string" + }, + "feedItemSetLinkError": { + "description": "The reasons for the feed item set link error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "FEED_ID_MISMATCH", + "NO_MUTATE_ALLOWED_FOR_DYNAMIC_SET" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "The feed IDs of the FeedItemSet and FeedItem do not match. Only FeedItems in a given Feed can be linked to a FeedItemSet in that Feed.", + "Cannot add or remove links to a dynamic set." + ], + "type": "string" + }, + "feedItemTargetError": { + "description": "The reasons for the feed item target error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "MUST_SET_TARGET_ONEOF_ON_CREATE", + "FEED_ITEM_TARGET_ALREADY_EXISTS", + "FEED_ITEM_SCHEDULES_CANNOT_OVERLAP", + "TARGET_LIMIT_EXCEEDED_FOR_GIVEN_TYPE", + "TOO_MANY_SCHEDULES_PER_DAY", + "CANNOT_HAVE_ENABLED_CAMPAIGN_AND_ENABLED_AD_GROUP_TARGETS", + "DUPLICATE_AD_SCHEDULE", + "DUPLICATE_KEYWORD" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "On CREATE, the FeedItemTarget must have a populated field in the oneof target.", + "The specified feed item target already exists, so it cannot be added.", + "The schedules for a given feed item cannot overlap.", + "Too many targets of a given type were added for a single feed item.", + "Too many AdSchedules are enabled for the feed item for the given day.", + "A feed item may either have an enabled campaign target or an enabled ad group target.", + "Duplicate ad schedules aren't allowed.", + "Duplicate keywords aren't allowed." + ], + "type": "string" + }, + "feedItemValidationError": { + "description": "The reasons for the feed item validation error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "STRING_TOO_SHORT", + "STRING_TOO_LONG", + "VALUE_NOT_SPECIFIED", + "INVALID_DOMESTIC_PHONE_NUMBER_FORMAT", + "INVALID_PHONE_NUMBER", + "PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY", + "PREMIUM_RATE_NUMBER_NOT_ALLOWED", + "DISALLOWED_NUMBER_TYPE", + "VALUE_OUT_OF_RANGE", + "CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY", + "CUSTOMER_NOT_IN_ALLOWLIST_FOR_CALLTRACKING", + "INVALID_COUNTRY_CODE", + "INVALID_APP_ID", + "MISSING_ATTRIBUTES_FOR_FIELDS", + "INVALID_TYPE_ID", + "INVALID_EMAIL_ADDRESS", + "INVALID_HTTPS_URL", + "MISSING_DELIVERY_ADDRESS", + "START_DATE_AFTER_END_DATE", + "MISSING_FEED_ITEM_START_TIME", + "MISSING_FEED_ITEM_END_TIME", + "MISSING_FEED_ITEM_ID", + "VANITY_PHONE_NUMBER_NOT_ALLOWED", + "INVALID_REVIEW_EXTENSION_SNIPPET", + "INVALID_NUMBER_FORMAT", + "INVALID_DATE_FORMAT", + "INVALID_PRICE_FORMAT", + "UNKNOWN_PLACEHOLDER_FIELD", + "MISSING_ENHANCED_SITELINK_DESCRIPTION_LINE", + "REVIEW_EXTENSION_SOURCE_INELIGIBLE", + "HYPHENS_IN_REVIEW_EXTENSION_SNIPPET", + "DOUBLE_QUOTES_IN_REVIEW_EXTENSION_SNIPPET", + "QUOTES_IN_REVIEW_EXTENSION_SNIPPET", + "INVALID_FORM_ENCODED_PARAMS", + "INVALID_URL_PARAMETER_NAME", + "NO_GEOCODING_RESULT", + "SOURCE_NAME_IN_REVIEW_EXTENSION_TEXT", + "CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED", + "INVALID_PLACEHOLDER_FIELD_ID", + "INVALID_URL_TAG", + "LIST_TOO_LONG", + "INVALID_ATTRIBUTES_COMBINATION", + "DUPLICATE_VALUES", + "INVALID_CALL_CONVERSION_ACTION_ID", + "CANNOT_SET_WITHOUT_FINAL_URLS", + "APP_ID_DOESNT_EXIST_IN_APP_STORE", + "INVALID_FINAL_URL", + "INVALID_TRACKING_URL", + "INVALID_FINAL_URL_FOR_APP_DOWNLOAD_URL", + "LIST_TOO_SHORT", + "INVALID_USER_ACTION", + "INVALID_TYPE_NAME", + "INVALID_EVENT_CHANGE_STATUS", + "INVALID_SNIPPETS_HEADER", + "INVALID_ANDROID_APP_LINK", + "NUMBER_TYPE_WITH_CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY", + "RESERVED_KEYWORD_OTHER", + "DUPLICATE_OPTION_LABELS", + "DUPLICATE_OPTION_PREFILLS", + "UNEQUAL_LIST_LENGTHS", + "INCONSISTENT_CURRENCY_CODES", + "PRICE_EXTENSION_HAS_DUPLICATED_HEADERS", + "ITEM_HAS_DUPLICATED_HEADER_AND_DESCRIPTION", + "PRICE_EXTENSION_HAS_TOO_FEW_ITEMS", + "UNSUPPORTED_VALUE", + "INVALID_FINAL_MOBILE_URL", + "INVALID_KEYWORDLESS_AD_RULE_LABEL", + "VALUE_TRACK_PARAMETER_NOT_SUPPORTED", + "UNSUPPORTED_VALUE_IN_SELECTED_LANGUAGE", + "INVALID_IOS_APP_LINK", + "MISSING_IOS_APP_LINK_OR_IOS_APP_STORE_ID", + "PROMOTION_INVALID_TIME", + "PROMOTION_CANNOT_SET_PERCENT_OFF_AND_MONEY_AMOUNT_OFF", + "PROMOTION_CANNOT_SET_PROMOTION_CODE_AND_ORDERS_OVER_AMOUNT", + "TOO_MANY_DECIMAL_PLACES_SPECIFIED", + "AD_CUSTOMIZERS_NOT_ALLOWED", + "INVALID_LANGUAGE_CODE", + "UNSUPPORTED_LANGUAGE", + "IF_FUNCTION_NOT_ALLOWED", + "INVALID_FINAL_URL_SUFFIX", + "INVALID_TAG_IN_FINAL_URL_SUFFIX", + "INVALID_FINAL_URL_SUFFIX_FORMAT", + "CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED", + "ONLY_ONE_DELIVERY_OPTION_IS_ALLOWED", + "NO_DELIVERY_OPTION_IS_SET", + "INVALID_CONVERSION_REPORTING_STATE", + "IMAGE_SIZE_WRONG", + "EMAIL_DELIVERY_NOT_AVAILABLE_IN_COUNTRY", + "AUTO_REPLY_NOT_AVAILABLE_IN_COUNTRY", + "INVALID_LATITUDE_VALUE", + "INVALID_LONGITUDE_VALUE", + "TOO_MANY_LABELS", + "INVALID_IMAGE_URL", + "MISSING_LATITUDE_VALUE", + "MISSING_LONGITUDE_VALUE", + "ADDRESS_NOT_FOUND", + "ADDRESS_NOT_TARGETABLE", + "INVALID_ASSET_ID", + "INCOMPATIBLE_ASSET_TYPE", + "IMAGE_ERROR_UNEXPECTED_SIZE", + "IMAGE_ERROR_ASPECT_RATIO_NOT_ALLOWED", + "IMAGE_ERROR_FILE_TOO_LARGE", + "IMAGE_ERROR_FORMAT_NOT_ALLOWED", + "IMAGE_ERROR_CONSTRAINTS_VIOLATED", + "IMAGE_ERROR_SERVER_ERROR" + ], + "enumDescriptions": [ + "No value has been specified.", + "Used for return value only. Represents value unknown in this version.", + "String is too short.", + "String is too long.", + "Value is not provided.", + "Phone number format is invalid for region.", + "String does not represent a phone number.", + "Phone number format is not compatible with country code.", + "Premium rate number is not allowed.", + "Phone number type is not allowed.", + "Specified value is outside of the valid range.", + "Call tracking is not supported in the selected country.", + "Customer is not on the allow-list for call tracking.", + "Country code is invalid.", + "The specified mobile app id is invalid.", + "Some required field attributes are missing.", + "Invalid email button type for email extension.", + "Email address is invalid.", + "The HTTPS URL in email extension is invalid.", + "Delivery address is missing from email extension.", + "FeedItem scheduling start date comes after end date.", + "FeedItem scheduling start time is missing.", + "FeedItem scheduling end time is missing.", + "Cannot compute system attributes on a FeedItem that has no FeedItemId.", + "Call extension vanity phone numbers are not supported.", + "Invalid review text.", + "Invalid format for numeric value in ad parameter.", + "Invalid format for date value in ad parameter.", + "Invalid format for price value in ad parameter.", + "Unrecognized type given for value in ad parameter.", + "Enhanced sitelinks must have both description lines specified.", + "Review source is ineligible.", + "Review text cannot contain hyphens or dashes.", + "Review text cannot contain double quote characters.", + "Review text cannot contain quote characters.", + "Parameters are encoded in the wrong format.", + "URL parameter name must contain only letters, numbers, underscores, and dashes.", + "Cannot find address location.", + "Review extension text has source name.", + "Some phone numbers can be shorter than usual. Some of these short numbers are carrier-specific, and we disallow those in ad extensions because they will not be available to all users.", + "Triggered when a request references a placeholder field id that does not exist.", + "URL contains invalid ValueTrack tags or format.", + "Provided list exceeds acceptable size.", + "Certain combinations of attributes aren't allowed to be specified in the same feed item.", + "An attribute has the same value repeatedly.", + "Advertisers can link a conversion action with a phone number to indicate that sufficiently long calls forwarded to that phone number should be counted as conversions of the specified type. This is an error message indicating that the conversion action specified is invalid (for example, the conversion action does not exist within the appropriate Google Ads account, or it is a type of conversion not appropriate to phone call conversions).", + "Tracking template requires final url to be set.", + "An app id was provided that doesn't exist in the given app store.", + "Invalid U2 final url.", + "Invalid U2 tracking url.", + "Final URL should start from App download URL.", + "List provided is too short.", + "User Action field has invalid value.", + "Type field has invalid value.", + "Change status for event is invalid.", + "The header of a structured snippets extension is not one of the valid headers.", + "Android app link is not formatted correctly", + "Phone number incompatible with call tracking for country.", + "The input is identical to a reserved keyword", + "Each option label in the message extension must be unique.", + "Each option prefill in the message extension must be unique.", + "In message extensions, the number of optional labels and optional prefills must be the same.", + "All currency codes in an ad extension must be the same.", + "Headers in price extension are not unique.", + "Header and description in an item are the same.", + "Price extension has too few items.", + "The given value is not supported.", + "Invalid final mobile url.", + "The given string value of Label contains invalid characters", + "The given URL contains value track parameters.", + "The given value is not supported in the selected language of an extension.", + "The iOS app link is not formatted correctly.", + "iOS app link or iOS app store id is missing.", + "Promotion time is invalid.", + "Both the percent off and money amount off fields are set.", + "Both the promotion code and orders over amount fields are set.", + "Too many decimal places are specified.", + "Ad Customizers are present and not allowed.", + "Language code is not valid.", + "Language is not supported.", + "IF Function is present and not allowed.", + "Final url suffix is not valid.", + "Final url suffix contains an invalid tag.", + "Final url suffix is formatted incorrectly.", + "Consent for call recording, which is required for the use of call extensions, was not provided by the advertiser. See https://support.google.com/google-ads/answer/7412639.", + "Multiple message delivery options are set.", + "No message delivery option is set.", + "String value of conversion reporting state field is not valid.", + "Image size is not right.", + "Email delivery is not supported in the country specified in the country code field.", + "Auto reply is not supported in the country specified in the country code field.", + "Invalid value specified for latitude.", + "Invalid value specified for longitude.", + "Too many label fields provided.", + "Invalid image url.", + "Latitude value is missing.", + "Longitude value is missing.", + "Unable to find address.", + "Cannot target provided address.", + "The specified asset ID does not exist.", + "The asset type cannot be set for the field.", + "The image has unexpected size.", + "The image aspect ratio is not allowed.", + "The image file is too large.", + "The image format is unsupported.", + "Image violates constraints without more details.", + "An error occurred when validating image." + ], + "type": "string" + }, + "feedMappingError": { + "description": "The reasons for the feed mapping error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "INVALID_PLACEHOLDER_FIELD", + "INVALID_CRITERION_FIELD", + "INVALID_PLACEHOLDER_TYPE", + "INVALID_CRITERION_TYPE", + "NO_ATTRIBUTE_FIELD_MAPPINGS", + "FEED_ATTRIBUTE_TYPE_MISMATCH", + "CANNOT_OPERATE_ON_MAPPINGS_FOR_SYSTEM_GENERATED_FEED", + "MULTIPLE_MAPPINGS_FOR_PLACEHOLDER_TYPE", + "MULTIPLE_MAPPINGS_FOR_CRITERION_TYPE", + "MULTIPLE_MAPPINGS_FOR_PLACEHOLDER_FIELD", + "MULTIPLE_MAPPINGS_FOR_CRITERION_FIELD", + "UNEXPECTED_ATTRIBUTE_FIELD_MAPPINGS", + "LOCATION_PLACEHOLDER_ONLY_FOR_PLACES_FEEDS", + "CANNOT_MODIFY_MAPPINGS_FOR_TYPED_FEED", + "INVALID_PLACEHOLDER_TYPE_FOR_NON_SYSTEM_GENERATED_FEED", + "INVALID_PLACEHOLDER_TYPE_FOR_SYSTEM_GENERATED_FEED_TYPE", + "ATTRIBUTE_FIELD_MAPPING_MISSING_FIELD", + "LEGACY_FEED_TYPE_READ_ONLY" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "The given placeholder field does not exist.", + "The given criterion field does not exist.", + "The given placeholder type does not exist.", + "The given criterion type does not exist.", + "A feed mapping must contain at least one attribute field mapping.", + "The type of the feed attribute referenced in the attribute field mapping must match the type of the placeholder field.", + "A feed mapping for a system generated feed cannot be operated on.", + "Only one feed mapping for a placeholder type is allowed per feed or customer (depending on the placeholder type).", + "Only one feed mapping for a criterion type is allowed per customer.", + "Only one feed attribute mapping for a placeholder field is allowed (depending on the placeholder type).", + "Only one feed attribute mapping for a criterion field is allowed (depending on the criterion type).", + "This feed mapping may not contain any explicit attribute field mappings.", + "Location placeholder feed mappings can only be created for Places feeds.", + "Mappings for typed feeds cannot be modified.", + "The given placeholder type can only be mapped to system generated feeds.", + "The given placeholder type cannot be mapped to a system generated feed with the given type.", + "The \"field\" oneof was not set in an AttributeFieldMapping.", + "Feed is read only." + ], + "type": "string" + }, + "fieldError": { + "description": "The reasons for the field error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "REQUIRED", + "IMMUTABLE_FIELD", + "INVALID_VALUE", + "VALUE_MUST_BE_UNSET", + "REQUIRED_NONEMPTY_LIST", + "FIELD_CANNOT_BE_CLEARED", + "BLOCKED_VALUE", + "FIELD_CAN_ONLY_BE_CLEARED" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "The required field was not present.", + "The field attempted to be mutated is immutable.", + "The field's value is invalid.", + "The field cannot be set.", + "The required repeated field was empty.", + "The field cannot be cleared.", + "The field's value is on a deny-list for this field.", + "The field's value cannot be modified, except for clearing." + ], + "type": "string" + }, + "fieldMaskError": { + "description": "An error with a field mask", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "FIELD_MASK_MISSING", + "FIELD_MASK_NOT_ALLOWED", + "FIELD_NOT_FOUND", + "FIELD_HAS_SUBFIELDS" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "The field mask must be provided for update operations.", + "The field mask must be empty for create and remove operations.", + "The field mask contained an invalid field.", + "The field mask updated a field with subfields. Fields with subfields may be cleared, but not updated. To fix this, the field mask should select all the subfields of the invalid field." + ], + "type": "string" + }, + "finalUrlExpansionAssetViewError": { + "description": "The reasons for the final url expansion asset view error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "MISSING_REQUIRED_FILTER", + "REQUIRES_ADVERTISING_CHANNEL_TYPE_FILTER", + "INVALID_ADVERTISING_CHANNEL_TYPE_IN_FILTER", + "CANNOT_SELECT_ASSET_GROUP", + "CANNOT_SELECT_AD_GROUP", + "REQUIRES_FILTER_BY_SINGLE_RESOURCE", + "CANNOT_SELECT_BOTH_AD_GROUP_AND_ASSET_GROUP", + "CANNOT_FILTER_BY_BOTH_AD_GROUP_AND_ASSET_GROUP" + ], + "enumDescriptions": [ + "Name unspecified.", + "The received error code is not known in this version.", + "At least one required filter has to be applied in the query.", + "Advertising channel type filter is required.", + "Advertising channel type filter has an invalid value.", + "Asset group cannot be selected in the query.", + "Ad group cannot be selected in the query.", + "A selected field/resource requires filtering by a single resource.", + "Both ad group and asset group cannot be selected in the query.", + "Both ad group and asset group cannot be filtered in the query." + ], + "type": "string" + }, + "functionError": { + "description": "The reasons for the function error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "INVALID_FUNCTION_FORMAT", + "DATA_TYPE_MISMATCH", + "INVALID_CONJUNCTION_OPERANDS", + "INVALID_NUMBER_OF_OPERANDS", + "INVALID_OPERAND_TYPE", + "INVALID_OPERATOR", + "INVALID_REQUEST_CONTEXT_TYPE", + "INVALID_FUNCTION_FOR_CALL_PLACEHOLDER", + "INVALID_FUNCTION_FOR_PLACEHOLDER", + "INVALID_OPERAND", + "MISSING_CONSTANT_OPERAND_VALUE", + "INVALID_CONSTANT_OPERAND_VALUE", + "INVALID_NESTING", + "MULTIPLE_FEED_IDS_NOT_SUPPORTED", + "INVALID_FUNCTION_FOR_FEED_WITH_FIXED_SCHEMA", + "INVALID_ATTRIBUTE_NAME" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "The format of the function is not recognized as a supported function format.", + "Operand data types do not match.", + "The operands cannot be used together in a conjunction.", + "Invalid numer of Operands.", + "Operand Type not supported.", + "Operator not supported.", + "Request context type not supported.", + "The matching function is not allowed for call placeholders", + "The matching function is not allowed for the specified placeholder", + "Invalid operand.", + "Missing value for the constant operand.", + "The value of the constant operand is invalid.", + "Invalid function nesting.", + "The Feed ID was different from another Feed ID in the same function.", + "The matching function is invalid for use with a feed with a fixed schema.", + "Invalid attribute name." + ], + "type": "string" + }, + "functionParsingError": { + "description": "The reasons for the function parsing error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "NO_MORE_INPUT", + "EXPECTED_CHARACTER", + "UNEXPECTED_SEPARATOR", + "UNMATCHED_LEFT_BRACKET", + "UNMATCHED_RIGHT_BRACKET", + "TOO_MANY_NESTED_FUNCTIONS", + "MISSING_RIGHT_HAND_OPERAND", + "INVALID_OPERATOR_NAME", + "FEED_ATTRIBUTE_OPERAND_ARGUMENT_NOT_INTEGER", + "NO_OPERANDS", + "TOO_MANY_OPERANDS" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Unexpected end of function string.", + "Could not find an expected character.", + "Unexpected separator character.", + "Unmatched left bracket or parenthesis.", + "Unmatched right bracket or parenthesis.", + "Functions are nested too deeply.", + "Missing right-hand-side operand.", + "Invalid operator/function name.", + "Feed attribute operand's argument is not an integer.", + "Missing function operands.", + "Function had too many operands." + ], + "type": "string" + }, + "geoTargetConstantSuggestionError": { + "description": "The reasons for the geo target constant suggestion error.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "LOCATION_NAME_SIZE_LIMIT", + "LOCATION_NAME_LIMIT", + "INVALID_COUNTRY_CODE", + "REQUEST_PARAMETERS_UNSET" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "A location name cannot be greater than 300 characters.", + "At most 25 location names can be specified in a SuggestGeoTargetConstants method.", + "The country code is invalid.", + "Geo target constant resource names or location names must be provided in the request." + ], + "type": "string" + }, + "goalError": { + "description": "The reasons for the goal error.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "RETENTION_GOAL_ALREADY_EXISTS", + "HIGH_LIFETIME_VALUE_PRESENT_BUT_VALUE_ABSENT", + "HIGH_LIFETIME_VALUE_LESS_THAN_OR_EQUAL_TO_VALUE", + "CUSTOMER_LIFECYCLE_OPTIMIZATION_ACCOUNT_TYPE_NOT_ALLOWED" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Retention goal already exists.", + "When using customer lifecycle optimization goal, if high lifetime value is present then value should be present.", + "When using customer lifecycle optimization goal, high lifetime value should be greater than value.", + "Only Google Ads account can have customer lifecycle optimization goal." + ], + "type": "string" + }, + "headerError": { + "description": "The reasons for the header error.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "INVALID_LOGIN_CUSTOMER_ID", + "INVALID_LINKED_CUSTOMER_ID" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "The login customer ID could not be validated.", + "The linked customer ID could not be validated." + ], + "type": "string" + }, + "idError": { + "description": "The reasons for the id error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "NOT_FOUND" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "ID not found" + ], + "type": "string" + }, + "identityVerificationError": { + "description": "The reasons for an identity verification error.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "NO_EFFECTIVE_BILLING", + "BILLING_NOT_ON_MONTHLY_INVOICING", + "VERIFICATION_ALREADY_STARTED" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "No effective billing linked to this customer.", + "Customer is not on monthly invoicing.", + "Verification for this program type was already started." + ], + "type": "string" + }, + "imageError": { + "description": "The reasons for the image error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "INVALID_IMAGE", + "STORAGE_ERROR", + "BAD_REQUEST", + "UNEXPECTED_SIZE", + "ANIMATED_NOT_ALLOWED", + "ANIMATION_TOO_LONG", + "SERVER_ERROR", + "CMYK_JPEG_NOT_ALLOWED", + "FLASH_NOT_ALLOWED", + "FLASH_WITHOUT_CLICKTAG", + "FLASH_ERROR_AFTER_FIXING_CLICK_TAG", + "ANIMATED_VISUAL_EFFECT", + "FLASH_ERROR", + "LAYOUT_PROBLEM", + "PROBLEM_READING_IMAGE_FILE", + "ERROR_STORING_IMAGE", + "ASPECT_RATIO_NOT_ALLOWED", + "FLASH_HAS_NETWORK_OBJECTS", + "FLASH_HAS_NETWORK_METHODS", + "FLASH_HAS_URL", + "FLASH_HAS_MOUSE_TRACKING", + "FLASH_HAS_RANDOM_NUM", + "FLASH_SELF_TARGETS", + "FLASH_BAD_GETURL_TARGET", + "FLASH_VERSION_NOT_SUPPORTED", + "FLASH_WITHOUT_HARD_CODED_CLICK_URL", + "INVALID_FLASH_FILE", + "FAILED_TO_FIX_CLICK_TAG_IN_FLASH", + "FLASH_ACCESSES_NETWORK_RESOURCES", + "FLASH_EXTERNAL_JS_CALL", + "FLASH_EXTERNAL_FS_CALL", + "FILE_TOO_LARGE", + "IMAGE_DATA_TOO_LARGE", + "IMAGE_PROCESSING_ERROR", + "IMAGE_TOO_SMALL", + "INVALID_INPUT", + "PROBLEM_READING_FILE", + "IMAGE_CONSTRAINTS_VIOLATED", + "FORMAT_NOT_ALLOWED" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "The image is not valid.", + "The image could not be stored.", + "There was a problem with the request.", + "The image is not of legal dimensions.", + "Animated image are not permitted.", + "Animation is too long.", + "There was an error on the server.", + "Image cannot be in CMYK color format.", + "Flash images are not permitted.", + "Flash images must support clickTag.", + "A flash error has occurred after fixing the click tag.", + "Unacceptable visual effects.", + "There was a problem with the flash image.", + "Incorrect image layout.", + "There was a problem reading the image file.", + "There was an error storing the image.", + "The aspect ratio of the image is not allowed.", + "Flash cannot have network objects.", + "Flash cannot have network methods.", + "Flash cannot have a Url.", + "Flash cannot use mouse tracking.", + "Flash cannot have a random number.", + "Ad click target cannot be '_self'.", + "GetUrl method should only use '_blank'.", + "Flash version is not supported.", + "Flash movies need to have hard coded click URL or clickTAG", + "Uploaded flash file is corrupted.", + "Uploaded flash file can be parsed, but the click tag can not be fixed properly.", + "Flash movie accesses network resources", + "Flash movie attempts to call external javascript code", + "Flash movie attempts to call flash system commands", + "Image file is too large.", + "Image data is too large.", + "Error while processing the image.", + "Image is too small.", + "Input was invalid.", + "There was a problem reading the image file.", + "Image constraints are violated, but details like ASPECT_RATIO_NOT_ALLOWED can't be provided. This happens when asset spec contains more than one constraint and different criteria of different constraints are violated.", + "Image format is not allowed." + ], + "type": "string" + }, + "incentiveError": { + "description": "The reasons for the incentive error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "INVALID_INCENTIVE_ID" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "The incentive ID is either invalid or not supported for the given country." + ], + "type": "string" + }, + "internalError": { + "description": "An unexpected server-side error.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "INTERNAL_ERROR", + "ERROR_CODE_NOT_PUBLISHED", + "TRANSIENT_ERROR", + "DEADLINE_EXCEEDED" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "API encountered unexpected internal error.", + "The intended error code doesn't exist in specified API version. It will be released in a future API version.", + "API encountered an unexpected transient error. The user should retry their request in these cases.", + "The request took longer than a deadline." + ], + "type": "string" + }, + "invalidParameterError": { + "description": "The reasons for invalid parameter errors.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "INVALID_CURRENCY_CODE" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "The specified currency code is invalid." + ], + "type": "string" + }, + "invoiceError": { + "description": "The reasons for the invoice error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "YEAR_MONTH_TOO_OLD", + "NOT_INVOICED_CUSTOMER", + "BILLING_SETUP_NOT_APPROVED", + "BILLING_SETUP_NOT_ON_MONTHLY_INVOICING", + "NON_SERVING_CUSTOMER" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Cannot request invoices issued before 2019-01-01.", + "Cannot request invoices for customer who doesn't receive invoices.", + "Cannot request invoices for a non approved billing setup.", + "Cannot request invoices for a billing setup that is not on monthly invoicing.", + "Cannot request invoices for a non serving customer." + ], + "type": "string" + }, + "keywordPlanAdGroupError": { + "description": "The reason for keyword plan ad group error.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "INVALID_NAME", + "DUPLICATE_NAME" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "The keyword plan ad group name is missing, empty, longer than allowed limit or contains invalid chars.", + "The keyword plan ad group name is duplicate to an existing keyword plan AdGroup name or other keyword plan AdGroup name in the request." + ], + "type": "string" + }, + "keywordPlanAdGroupKeywordError": { + "description": "The reason for keyword plan ad group keyword error.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "INVALID_KEYWORD_MATCH_TYPE", + "DUPLICATE_KEYWORD", + "KEYWORD_TEXT_TOO_LONG", + "KEYWORD_HAS_INVALID_CHARS", + "KEYWORD_HAS_TOO_MANY_WORDS", + "INVALID_KEYWORD_TEXT", + "NEGATIVE_KEYWORD_HAS_CPC_BID", + "NEW_BMM_KEYWORDS_NOT_ALLOWED" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "A keyword or negative keyword has invalid match type.", + "A keyword or negative keyword with same text and match type already exists.", + "Keyword or negative keyword text exceeds the allowed limit.", + "Keyword or negative keyword text has invalid characters or symbols.", + "Keyword or negative keyword text has too many words.", + "Keyword or negative keyword has invalid text.", + "Cpc Bid set for negative keyword.", + "New broad match modifier (BMM) KpAdGroupKeywords are not allowed." + ], + "type": "string" + }, + "keywordPlanCampaignError": { + "description": "The reason for keyword plan campaign error.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "INVALID_NAME", + "INVALID_LANGUAGES", + "INVALID_GEOS", + "DUPLICATE_NAME", + "MAX_GEOS_EXCEEDED", + "MAX_LANGUAGES_EXCEEDED" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "A keyword plan campaign name is missing, empty, longer than allowed limit or contains invalid chars.", + "A keyword plan campaign contains one or more untargetable languages.", + "A keyword plan campaign contains one or more invalid geo targets.", + "The keyword plan campaign name is duplicate to an existing keyword plan campaign name or other keyword plan campaign name in the request.", + "The number of geo targets in the keyword plan campaign exceeds limits.", + "The number of languages in the keyword plan campaign exceeds limits." + ], + "type": "string" + }, + "keywordPlanCampaignKeywordError": { + "description": "The reason for keyword plan campaign keyword error.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "CAMPAIGN_KEYWORD_IS_POSITIVE" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Keyword plan campaign keyword is positive." + ], + "type": "string" + }, + "keywordPlanError": { + "description": "The reason for keyword plan error.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "BID_MULTIPLIER_OUT_OF_RANGE", + "BID_TOO_HIGH", + "BID_TOO_LOW", + "BID_TOO_MANY_FRACTIONAL_DIGITS", + "DAILY_BUDGET_TOO_LOW", + "DAILY_BUDGET_TOO_MANY_FRACTIONAL_DIGITS", + "INVALID_VALUE", + "KEYWORD_PLAN_HAS_NO_KEYWORDS", + "KEYWORD_PLAN_NOT_ENABLED", + "KEYWORD_PLAN_NOT_FOUND", + "MISSING_BID", + "MISSING_FORECAST_PERIOD", + "INVALID_FORECAST_DATE_RANGE", + "INVALID_NAME" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "The plan's bid multiplier value is outside the valid range.", + "The plan's bid value is too high.", + "The plan's bid value is too low.", + "The plan's cpc bid is not a multiple of the minimum billable unit.", + "The plan's daily budget value is too low.", + "The plan's daily budget is not a multiple of the minimum billable unit.", + "The input has an invalid value.", + "The plan has no keyword.", + "The plan is not enabled and API cannot provide mutation, forecast or stats.", + "The requested plan cannot be found for providing forecast or stats.", + "The plan is missing a cpc bid.", + "The plan is missing required forecast_period field.", + "The plan's forecast_period has invalid forecast date range.", + "The plan's name is invalid." + ], + "type": "string" + }, + "keywordPlanIdeaError": { + "description": "The reason for keyword idea error.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "URL_CRAWL_ERROR", + "INVALID_VALUE" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Error when crawling the input URL.", + "The input has an invalid value." + ], + "type": "string" + }, + "labelError": { + "description": "The reason for the label error.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "CANNOT_APPLY_INACTIVE_LABEL", + "CANNOT_APPLY_LABEL_TO_DISABLED_AD_GROUP_CRITERION", + "CANNOT_APPLY_LABEL_TO_NEGATIVE_AD_GROUP_CRITERION", + "EXCEEDED_LABEL_LIMIT_PER_TYPE", + "INVALID_RESOURCE_FOR_MANAGER_LABEL", + "DUPLICATE_NAME", + "INVALID_LABEL_NAME", + "CANNOT_ATTACH_LABEL_TO_DRAFT", + "CANNOT_ATTACH_NON_MANAGER_LABEL_TO_CUSTOMER" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "An inactive label cannot be applied.", + "A label cannot be applied to a disabled ad group criterion.", + "A label cannot be applied to a negative ad group criterion.", + "Cannot apply more than 50 labels per resource.", + "Labels from a manager account cannot be applied to campaign, ad group, ad group ad, or ad group criterion resources.", + "Label names must be unique.", + "Label names cannot be empty.", + "Labels cannot be applied to a draft.", + "Labels not from a manager account cannot be applied to the customer resource." + ], + "type": "string" + }, + "languageCodeError": { + "description": "The reasons for the language code error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "LANGUAGE_CODE_NOT_FOUND", + "INVALID_LANGUAGE_CODE" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "The input language code is not recognized.", + "The language code is not supported." + ], + "type": "string" + }, + "listOperationError": { + "description": "An error with a list operation.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "REQUIRED_FIELD_MISSING", + "DUPLICATE_VALUES" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Field required in value is missing.", + "Duplicate or identical value is sent in multiple list operations." + ], + "type": "string" + }, + "managerLinkError": { + "description": "The reasons for the manager link error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "ACCOUNTS_NOT_COMPATIBLE_FOR_LINKING", + "TOO_MANY_MANAGERS", + "TOO_MANY_INVITES", + "ALREADY_INVITED_BY_THIS_MANAGER", + "ALREADY_MANAGED_BY_THIS_MANAGER", + "ALREADY_MANAGED_IN_HIERARCHY", + "DUPLICATE_CHILD_FOUND", + "CLIENT_HAS_NO_ADMIN_USER", + "MAX_DEPTH_EXCEEDED", + "CYCLE_NOT_ALLOWED", + "TOO_MANY_ACCOUNTS", + "TOO_MANY_ACCOUNTS_AT_MANAGER", + "NON_OWNER_USER_CANNOT_MODIFY_LINK", + "SUSPENDED_ACCOUNT_CANNOT_ADD_CLIENTS", + "CLIENT_OUTSIDE_TREE", + "INVALID_STATUS_CHANGE", + "INVALID_CHANGE", + "CUSTOMER_CANNOT_MANAGE_SELF", + "CREATING_ENABLED_LINK_NOT_ALLOWED" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "The manager and client have incompatible account types.", + "Client is already linked to too many managers.", + "Manager has too many pending invitations.", + "Client is already invited by this manager.", + "The client is already managed by this manager.", + "Client is already managed in hierarchy.", + "Manager and sub-manager to be linked have duplicate client.", + "Client has no active user that can access the client account.", + "Adding this link would exceed the maximum hierarchy depth.", + "Adding this link will create a cycle.", + "Manager account has the maximum number of linked clients.", + "Parent manager account has the maximum number of linked clients.", + "The account is not authorized owner.", + "Your manager account is suspended, and you are no longer allowed to link to clients.", + "You are not allowed to move a client to a manager that is not under your current hierarchy.", + "The changed status for mutate link is invalid.", + "The change for mutate link is invalid.", + "You are not allowed to link a manager account to itself.", + "The link was created with status ACTIVE and not PENDING." + ], + "type": "string" + }, + "mediaBundleError": { + "description": "The reasons for the media bundle error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "BAD_REQUEST", + "DOUBLECLICK_BUNDLE_NOT_ALLOWED", + "EXTERNAL_URL_NOT_ALLOWED", + "FILE_TOO_LARGE", + "GOOGLE_WEB_DESIGNER_ZIP_FILE_NOT_PUBLISHED", + "INVALID_INPUT", + "INVALID_MEDIA_BUNDLE", + "INVALID_MEDIA_BUNDLE_ENTRY", + "INVALID_MIME_TYPE", + "INVALID_PATH", + "INVALID_URL_REFERENCE", + "MEDIA_DATA_TOO_LARGE", + "MISSING_PRIMARY_MEDIA_BUNDLE_ENTRY", + "SERVER_ERROR", + "STORAGE_ERROR", + "SWIFFY_BUNDLE_NOT_ALLOWED", + "TOO_MANY_FILES", + "UNEXPECTED_SIZE", + "UNSUPPORTED_GOOGLE_WEB_DESIGNER_ENVIRONMENT", + "UNSUPPORTED_HTML5_FEATURE", + "URL_IN_MEDIA_BUNDLE_NOT_SSL_COMPLIANT", + "CUSTOM_EXIT_NOT_ALLOWED" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "There was a problem with the request.", + "HTML5 ads using DoubleClick Studio created ZIP files are not supported.", + "Cannot reference URL external to the media bundle.", + "Media bundle file is too large.", + "ZIP file from Google Web Designer is not published.", + "Input was invalid.", + "There was a problem with the media bundle.", + "There was a problem with one or more of the media bundle entries.", + "The media bundle contains a file with an unknown mime type", + "The media bundle contain an invalid asset path.", + "HTML5 ad is trying to reference an asset not in .ZIP file", + "Media data is too large.", + "The media bundle contains no primary entry.", + "There was an error on the server.", + "The image could not be stored.", + "Media bundle created with the Swiffy tool is not allowed.", + "The media bundle contains too many files.", + "The media bundle is not of legal dimensions.", + "Google Web Designer not created for \"Google Ads\" environment.", + "Unsupported HTML5 feature in HTML5 asset.", + "URL in HTML5 entry is not ssl compliant.", + "Custom exits not allowed in HTML5 entry." + ], + "type": "string" + }, + "mediaFileError": { + "description": "The reasons for the media file error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "CANNOT_CREATE_STANDARD_ICON", + "CANNOT_SELECT_STANDARD_ICON_WITH_OTHER_TYPES", + "CANNOT_SPECIFY_MEDIA_FILE_ID_AND_DATA", + "DUPLICATE_MEDIA", + "EMPTY_FIELD", + "RESOURCE_REFERENCED_IN_MULTIPLE_OPS", + "FIELD_NOT_SUPPORTED_FOR_MEDIA_SUB_TYPE", + "INVALID_MEDIA_FILE_ID", + "INVALID_MEDIA_SUB_TYPE", + "INVALID_MEDIA_FILE_TYPE", + "INVALID_MIME_TYPE", + "INVALID_REFERENCE_ID", + "INVALID_YOU_TUBE_ID", + "MEDIA_FILE_FAILED_TRANSCODING", + "MEDIA_NOT_TRANSCODED", + "MEDIA_TYPE_DOES_NOT_MATCH_MEDIA_FILE_TYPE", + "NO_FIELDS_SPECIFIED", + "NULL_REFERENCE_ID_AND_MEDIA_ID", + "TOO_LONG", + "UNSUPPORTED_TYPE", + "YOU_TUBE_SERVICE_UNAVAILABLE", + "YOU_TUBE_VIDEO_HAS_NON_POSITIVE_DURATION", + "YOU_TUBE_VIDEO_NOT_FOUND" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Cannot create a standard icon type.", + "May only select Standard Icons alone.", + "Image contains both a media file ID and data.", + "A media file with given type and reference ID already exists.", + "A required field was not specified or is an empty string.", + "A media file may only be modified once per call.", + "Field is not supported for the media sub type.", + "The media file ID is invalid.", + "The media subtype is invalid.", + "The media file type is invalid.", + "The mimetype is invalid.", + "The media reference ID is invalid.", + "The YouTube video ID is invalid.", + "Media file has failed transcoding", + "Media file has not been transcoded.", + "The media type does not match the actual media file's type.", + "None of the fields have been specified.", + "One of reference ID or media file ID must be specified.", + "The string has too many characters.", + "The specified type is not supported.", + "YouTube is unavailable for requesting video data.", + "The YouTube video has a non positive duration.", + "The YouTube video ID is syntactically valid but the video was not found." + ], + "type": "string" + }, + "mediaUploadError": { + "description": "The reasons for media uploading errors.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "FILE_TOO_BIG", + "UNPARSEABLE_IMAGE", + "ANIMATED_IMAGE_NOT_ALLOWED", + "FORMAT_NOT_ALLOWED", + "EXTERNAL_URL_NOT_ALLOWED", + "INVALID_URL_REFERENCE", + "MISSING_PRIMARY_MEDIA_BUNDLE_ENTRY", + "ANIMATED_VISUAL_EFFECT", + "ANIMATION_TOO_LONG", + "ASPECT_RATIO_NOT_ALLOWED", + "AUDIO_NOT_ALLOWED_IN_MEDIA_BUNDLE", + "CMYK_JPEG_NOT_ALLOWED", + "FLASH_NOT_ALLOWED", + "FRAME_RATE_TOO_HIGH", + "GOOGLE_WEB_DESIGNER_ZIP_FILE_NOT_PUBLISHED", + "IMAGE_CONSTRAINTS_VIOLATED", + "INVALID_MEDIA_BUNDLE", + "INVALID_MEDIA_BUNDLE_ENTRY", + "INVALID_MIME_TYPE", + "INVALID_PATH", + "LAYOUT_PROBLEM", + "MALFORMED_URL", + "MEDIA_BUNDLE_NOT_ALLOWED", + "MEDIA_BUNDLE_NOT_COMPATIBLE_TO_PRODUCT_TYPE", + "MEDIA_BUNDLE_REJECTED_BY_MULTIPLE_ASSET_SPECS", + "TOO_MANY_FILES_IN_MEDIA_BUNDLE", + "UNSUPPORTED_GOOGLE_WEB_DESIGNER_ENVIRONMENT", + "UNSUPPORTED_HTML5_FEATURE", + "URL_IN_MEDIA_BUNDLE_NOT_SSL_COMPLIANT", + "VIDEO_FILE_NAME_TOO_LONG", + "VIDEO_MULTIPLE_FILES_WITH_SAME_NAME", + "VIDEO_NOT_ALLOWED_IN_MEDIA_BUNDLE", + "CANNOT_UPLOAD_MEDIA_TYPE_THROUGH_API", + "DIMENSIONS_NOT_ALLOWED" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "The uploaded file is too big.", + "Image data is unparseable.", + "Animated images are not allowed.", + "The image or media bundle format is not allowed.", + "Cannot reference URL external to the media bundle.", + "HTML5 ad is trying to reference an asset not in .ZIP file.", + "The media bundle contains no primary entry.", + "Animation has disallowed visual effects.", + "Animation longer than the allowed 30 second limit.", + "The aspect ratio of the image does not match the expected aspect ratios provided in the asset spec.", + "Audio files are not allowed in bundle.", + "CMYK jpegs are not supported.", + "Flash movies are not allowed.", + "The frame rate of the video is higher than the allowed 5fps.", + "ZIP file from Google Web Designer is not published.", + "Image constraints are violated, but more details (like DIMENSIONS_NOT_ALLOWED or ASPECT_RATIO_NOT_ALLOWED) can not be provided. This happens when asset spec contains more than one constraint and criteria of different constraints are violated.", + "Media bundle data is unrecognizable.", + "There was a problem with one or more of the media bundle entries.", + "The asset has an invalid mime type.", + "The media bundle contains an invalid asset path.", + "Image has layout problem.", + "An asset had a URL reference that is malformed per RFC 1738 convention.", + "The uploaded media bundle format is not allowed.", + "The media bundle is not compatible with the asset spec product type. (For example, Gmail, dynamic remarketing, etc.)", + "A bundle being uploaded that is incompatible with multiple assets for different reasons.", + "The media bundle contains too many files.", + "Google Web Designer not created for \"Google Ads\" environment.", + "Unsupported HTML5 feature in HTML5 asset.", + "URL in HTML5 entry is not SSL compliant.", + "Video file name is longer than the 50 allowed characters.", + "Multiple videos with same name in a bundle.", + "Videos are not allowed in media bundle.", + "This type of media cannot be uploaded through the Google Ads API.", + "The dimensions of the image are not allowed." + ], + "type": "string" + }, + "merchantCenterError": { + "description": "Container for enum describing possible merchant center errors.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "MERCHANT_ID_CANNOT_BE_ACCESSED", + "CUSTOMER_NOT_ALLOWED_FOR_SHOPPING_PERFORMANCE_MAX" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Merchant ID is either not found or not linked to the Google Ads customer.", + "Customer not allowlisted for Shopping in Performance Max Campaign." + ], + "type": "string" + }, + "multiplierError": { + "description": "The reasons for the multiplier error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "MULTIPLIER_TOO_HIGH", + "MULTIPLIER_TOO_LOW", + "TOO_MANY_FRACTIONAL_DIGITS", + "MULTIPLIER_NOT_ALLOWED_FOR_BIDDING_STRATEGY", + "MULTIPLIER_NOT_ALLOWED_WHEN_BASE_BID_IS_MISSING", + "NO_MULTIPLIER_SPECIFIED", + "MULTIPLIER_CAUSES_BID_TO_EXCEED_DAILY_BUDGET", + "MULTIPLIER_CAUSES_BID_TO_EXCEED_MONTHLY_BUDGET", + "MULTIPLIER_CAUSES_BID_TO_EXCEED_CUSTOM_BUDGET", + "MULTIPLIER_CAUSES_BID_TO_EXCEED_MAX_ALLOWED_BID", + "BID_LESS_THAN_MIN_ALLOWED_BID_WITH_MULTIPLIER", + "MULTIPLIER_AND_BIDDING_STRATEGY_TYPE_MISMATCH" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Multiplier value is too high", + "Multiplier value is too low", + "Too many fractional digits", + "A multiplier cannot be set for this bidding strategy", + "A multiplier cannot be set when there is no base bid (for example, content max cpc)", + "A bid multiplier must be specified", + "Multiplier causes bid to exceed daily budget", + "Multiplier causes bid to exceed monthly budget", + "Multiplier causes bid to exceed custom budget", + "Multiplier causes bid to exceed maximum allowed bid", + "Multiplier causes bid to become less than the minimum bid allowed", + "Multiplier type (cpc versus cpm) needs to match campaign's bidding strategy" + ], + "type": "string" + }, + "mutateError": { + "description": "An error with a mutate", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "RESOURCE_NOT_FOUND", + "ID_EXISTS_IN_MULTIPLE_MUTATES", + "INCONSISTENT_FIELD_VALUES", + "MUTATE_NOT_ALLOWED", + "RESOURCE_NOT_IN_GOOGLE_ADS", + "RESOURCE_ALREADY_EXISTS", + "RESOURCE_DOES_NOT_SUPPORT_VALIDATE_ONLY", + "OPERATION_DOES_NOT_SUPPORT_PARTIAL_FAILURE", + "RESOURCE_READ_ONLY", + "EU_POLITICAL_ADVERTISING_DECLARATION_REQUIRED" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Requested resource was not found.", + "Cannot mutate the same resource twice in one request.", + "The field's contents don't match another field that represents the same data.", + "Mutates are not allowed for the requested resource.", + "The resource isn't in Google Ads. It belongs to another ads system.", + "The resource being created already exists.", + "This resource cannot be used with \"validate_only\".", + "This operation cannot be used with \"partial_failure\".", + "Attempt to write to read-only fields.", + "Mutates are generally not allowed if the customer contains non-exempt campaigns without the EU political advertising declaration." + ], + "type": "string" + }, + "newResourceCreationError": { + "description": "The reasons for the new resource creation error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "CANNOT_SET_ID_FOR_CREATE", + "DUPLICATE_TEMP_IDS", + "TEMP_ID_RESOURCE_HAD_ERRORS" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Do not set the id field while creating new resources.", + "Creating more than one resource with the same temp ID is not allowed.", + "Parent resource with specified temp ID failed validation, so no validation will be done for this child resource." + ], + "type": "string" + }, + "notAllowlistedError": { + "description": "The reasons for the not allowlisted error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "CUSTOMER_NOT_ALLOWLISTED_FOR_THIS_FEATURE" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Customer is not allowlisted for accessing this feature." + ], + "type": "string" + }, + "notEmptyError": { + "description": "The reasons for the not empty error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "EMPTY_LIST" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Empty list." + ], + "type": "string" + }, + "nullError": { + "description": "The reasons for the null error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "NULL_CONTENT" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Specified list/container must not contain any null elements" + ], + "type": "string" + }, + "offlineUserDataJobError": { + "description": "The reasons for the offline user data job error.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "INVALID_USER_LIST_ID", + "INVALID_USER_LIST_TYPE", + "NOT_ON_ALLOWLIST_FOR_USER_ID", + "INCOMPATIBLE_UPLOAD_KEY_TYPE", + "MISSING_USER_IDENTIFIER", + "INVALID_MOBILE_ID_FORMAT", + "TOO_MANY_USER_IDENTIFIERS", + "NOT_ON_ALLOWLIST_FOR_STORE_SALES_DIRECT", + "NOT_ON_ALLOWLIST_FOR_UNIFIED_STORE_SALES", + "INVALID_PARTNER_ID", + "INVALID_ENCODING", + "INVALID_COUNTRY_CODE", + "INCOMPATIBLE_USER_IDENTIFIER", + "FUTURE_TRANSACTION_TIME", + "INVALID_CONVERSION_ACTION", + "MOBILE_ID_NOT_SUPPORTED", + "INVALID_OPERATION_ORDER", + "CONFLICTING_OPERATION", + "EXTERNAL_UPDATE_ID_ALREADY_EXISTS", + "JOB_ALREADY_STARTED", + "REMOVE_NOT_SUPPORTED", + "REMOVE_ALL_NOT_SUPPORTED", + "INVALID_SHA256_FORMAT", + "CUSTOM_KEY_DISABLED", + "CUSTOM_KEY_NOT_PREDEFINED", + "CUSTOM_KEY_NOT_SET", + "CUSTOMER_NOT_ACCEPTED_CUSTOMER_DATA_TERMS", + "ATTRIBUTES_NOT_APPLICABLE_FOR_CUSTOMER_MATCH_USER_LIST", + "LIFETIME_VALUE_BUCKET_NOT_IN_RANGE", + "INCOMPATIBLE_USER_IDENTIFIER_FOR_ATTRIBUTES", + "FUTURE_TIME_NOT_ALLOWED", + "LAST_PURCHASE_TIME_LESS_THAN_ACQUISITION_TIME", + "CUSTOMER_IDENTIFIER_NOT_ALLOWED", + "INVALID_ITEM_ID", + "FIRST_PURCHASE_TIME_GREATER_THAN_LAST_PURCHASE_TIME", + "INVALID_LIFECYCLE_STAGE", + "INVALID_EVENT_VALUE", + "EVENT_ATTRIBUTE_ALL_FIELDS_ARE_REQUIRED", + "OPERATION_LEVEL_CONSENT_PROVIDED" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "The user list ID provided for the job is invalid.", + "Type of the user list is not applicable for the job.", + "Customer is not allowisted for using user ID in upload data.", + "Upload data is not compatible with the upload key type of the associated user list.", + "The user identifier is missing valid data.", + "The mobile ID is malformed.", + "Maximum number of user identifiers allowed per request is 100,000 and per operation is 20.", + "Customer is not on the allow-list for store sales direct data.", + "Customer is not on the allow-list for unified store sales data.", + "The partner ID in store sales direct metadata is invalid.", + "The data in user identifier should not be encoded.", + "The country code is invalid.", + "Incompatible user identifier when using third_party_user_id for store sales direct first party data or not using third_party_user_id for store sales third party data.", + "A transaction time in the future is not allowed.", + "The conversion_action specified in transaction_attributes is used to report conversions to a conversion action configured in Google Ads. This error indicates there is no such conversion action in the account.", + "Mobile ID is not supported for store sales direct data.", + "When a remove-all operation is provided, it has to be the first operation of the operation list.", + "Mixing creation and removal of offline data in the same job is not allowed.", + "The external update ID already exists.", + "Once the upload job is started, new operations cannot be added.", + "Remove operation is not allowed for store sales direct updates.", + "Remove-all is not supported for certain offline user data job types.", + "The SHA256 encoded value is malformed.", + "The custom key specified is not enabled for the unified store sales upload.", + "The custom key specified is not predefined through the Google Ads UI.", + "The custom key specified is not set in the upload.", + "The customer has not accepted the customer data terms in the conversion settings page.", + "User attributes cannot be uploaded into a user list.", + "Lifetime bucket value must be a number from 0 to 10; 0 is only accepted for remove operations", + "Identifiers not supported for Customer Match attributes. User attributes can only be provided with contact info (email, phone, address) user identifiers.", + "A time in the future is not allowed.", + "Last purchase date time cannot be less than acquisition date time.", + "Only emails are accepted as user identifiers for shopping loyalty match. {-- api.dev/not-precedent: The identifier is not limited to ids, but also include other user info eg. phone numbers.}", + "Provided item ID is invalid.", + "First purchase date time cannot be greater than the last purchase date time.", + "Provided lifecycle stage is invalid.", + "The event value of the Customer Match user attribute is invalid.", + "All the fields are not present in the EventAttribute of the Customer Match.", + "Consent was provided at the operation level for an OfflineUserDataJobType that expects it at the job level. The provided operation-level consent will be ignored." + ], + "type": "string" + }, + "operationAccessDeniedError": { + "description": "The reasons for the operation access denied error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "ACTION_NOT_PERMITTED", + "CREATE_OPERATION_NOT_PERMITTED", + "REMOVE_OPERATION_NOT_PERMITTED", + "UPDATE_OPERATION_NOT_PERMITTED", + "MUTATE_ACTION_NOT_PERMITTED_FOR_CLIENT", + "OPERATION_NOT_PERMITTED_FOR_CAMPAIGN_TYPE", + "CREATE_AS_REMOVED_NOT_PERMITTED", + "OPERATION_NOT_PERMITTED_FOR_REMOVED_RESOURCE", + "OPERATION_NOT_PERMITTED_FOR_AD_GROUP_TYPE", + "MUTATE_NOT_PERMITTED_FOR_CUSTOMER" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Unauthorized invocation of a service's method (get, mutate, etc.)", + "Unauthorized CREATE operation in invoking a service's mutate method.", + "Unauthorized REMOVE operation in invoking a service's mutate method.", + "Unauthorized UPDATE operation in invoking a service's mutate method.", + "A mutate action is not allowed on this resource, from this client.", + "This operation is not permitted on this campaign type", + "A CREATE operation may not set status to REMOVED.", + "This operation is not allowed because the resource is removed.", + "This operation is not permitted on this ad group type.", + "The mutate is not allowed for this customer." + ], + "type": "string" + }, + "operatorError": { + "description": "The reasons for the operator error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "OPERATOR_NOT_SUPPORTED" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Operator not supported." + ], + "type": "string" + }, + "partialFailureError": { + "description": "The reasons for the mutate job error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "PARTIAL_FAILURE_MODE_REQUIRED" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "The partial failure field was false in the request. This method requires this field be set to true." + ], + "type": "string" + }, + "paymentsAccountError": { + "description": "The reasons for errors in payments accounts service", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "NOT_SUPPORTED_FOR_MANAGER_CUSTOMER" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Manager customers are not supported for payments account service." + ], + "type": "string" + }, + "policyFindingError": { + "description": "The reasons for the policy finding error.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "POLICY_FINDING", + "POLICY_TOPIC_NOT_FOUND" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "The resource has been disapproved since the policy summary includes policy topics of type PROHIBITED.", + "The given policy topic does not exist." + ], + "type": "string" + }, + "policyValidationParameterError": { + "description": "The reasons for the policy validation parameter error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "UNSUPPORTED_AD_TYPE_FOR_IGNORABLE_POLICY_TOPICS", + "UNSUPPORTED_AD_TYPE_FOR_EXEMPT_POLICY_VIOLATION_KEYS", + "CANNOT_SET_BOTH_IGNORABLE_POLICY_TOPICS_AND_EXEMPT_POLICY_VIOLATION_KEYS" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Ignorable policy topics are not supported for the ad type.", + "Exempt policy violation keys are not supported for the ad type.", + "Cannot set ignorable policy topics and exempt policy violation keys in the same policy violation parameter." + ], + "type": "string" + }, + "policyViolationError": { + "description": "The reasons for the policy violation error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "POLICY_ERROR" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "A policy was violated. See PolicyViolationDetails for more detail." + ], + "type": "string" + }, + "productLinkError": { + "description": "The reasons for the product link error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "INVALID_OPERATION", + "CREATION_NOT_PERMITTED", + "INVITATION_EXISTS", + "LINK_EXISTS" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "The requested operation is invalid. For example, you are not allowed to remove a link from a partner account.", + "The creation request is not permitted.", + "A link cannot be created because a pending link already exists.", + "A link cannot be created because an active link already exists." + ], + "type": "string" + }, + "productLinkInvitationError": { + "description": "The reasons for the product link invitation error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "INVALID_STATUS", + "PERMISSION_DENIED", + "NO_INVITATION_REQUIRED", + "CUSTOMER_NOT_PERMITTED_TO_CREATE_INVITATION" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in the version.", + "The invitation status is invalid.", + "The customer doesn't have the permission to perform this action", + "An invitation could not be created, since the user already has admin access to the invited account. Use the ProductLinkService to directly create an active link.", + "The customer is not permitted to create the invitation." + ], + "type": "string" + }, + "queryError": { + "description": "An error with the query", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "QUERY_ERROR", + "BAD_ENUM_CONSTANT", + "BAD_ESCAPE_SEQUENCE", + "BAD_FIELD_NAME", + "BAD_LIMIT_VALUE", + "BAD_NUMBER", + "BAD_OPERATOR", + "BAD_PARAMETER_NAME", + "BAD_PARAMETER_VALUE", + "BAD_RESOURCE_TYPE_IN_FROM_CLAUSE", + "BAD_SYMBOL", + "BAD_VALUE", + "DATE_RANGE_TOO_WIDE", + "DATE_RANGE_TOO_NARROW", + "EXPECTED_AND", + "EXPECTED_BY", + "EXPECTED_DIMENSION_FIELD_IN_SELECT_CLAUSE", + "EXPECTED_FILTERS_ON_DATE_RANGE", + "EXPECTED_FROM", + "EXPECTED_LIST", + "EXPECTED_REFERENCED_FIELD_IN_SELECT_CLAUSE", + "EXPECTED_SELECT", + "EXPECTED_SINGLE_VALUE", + "EXPECTED_VALUE_WITH_BETWEEN_OPERATOR", + "INVALID_DATE_FORMAT", + "MISALIGNED_DATE_FOR_FILTER", + "INVALID_STRING_VALUE", + "INVALID_VALUE_WITH_BETWEEN_OPERATOR", + "INVALID_VALUE_WITH_DURING_OPERATOR", + "INVALID_VALUE_WITH_LIKE_OPERATOR", + "OPERATOR_FIELD_MISMATCH", + "PROHIBITED_EMPTY_LIST_IN_CONDITION", + "PROHIBITED_ENUM_CONSTANT", + "PROHIBITED_FIELD_COMBINATION_IN_SELECT_CLAUSE", + "PROHIBITED_FIELD_IN_ORDER_BY_CLAUSE", + "PROHIBITED_FIELD_IN_SELECT_CLAUSE", + "PROHIBITED_FIELD_IN_WHERE_CLAUSE", + "PROHIBITED_RESOURCE_TYPE_IN_FROM_CLAUSE", + "PROHIBITED_RESOURCE_TYPE_IN_SELECT_CLAUSE", + "PROHIBITED_RESOURCE_TYPE_IN_WHERE_CLAUSE", + "PROHIBITED_METRIC_IN_SELECT_OR_WHERE_CLAUSE", + "PROHIBITED_SEGMENT_IN_SELECT_OR_WHERE_CLAUSE", + "PROHIBITED_SEGMENT_WITH_METRIC_IN_SELECT_OR_WHERE_CLAUSE", + "PROHIBITED_FIELD_OR_SEGMENT_WITH_METRIC", + "LIMIT_VALUE_TOO_LOW", + "PROHIBITED_NEWLINE_IN_STRING", + "PROHIBITED_VALUE_COMBINATION_IN_LIST", + "PROHIBITED_VALUE_COMBINATION_WITH_BETWEEN_OPERATOR", + "STRING_NOT_TERMINATED", + "TOO_MANY_SEGMENTS", + "UNEXPECTED_END_OF_QUERY", + "UNEXPECTED_FROM_CLAUSE", + "UNRECOGNIZED_FIELD", + "UNEXPECTED_INPUT", + "REQUESTED_METRICS_FOR_MANAGER", + "FILTER_HAS_TOO_MANY_VALUES", + "REQUIRED_SEGMENT_FIELD_MISSING" + ], + "enumDescriptions": [ + "Name unspecified.", + "The received error code is not known in this version.", + "Returned if all other query error reasons are not applicable.", + "A condition used in the query references an invalid enum constant.", + "Query contains an invalid escape sequence.", + "Field name is invalid.", + "Limit value is invalid (for example, not a number)", + "Encountered number can not be parsed.", + "Invalid operator encountered.", + "Parameter unknown or not supported.", + "Parameter have invalid value.", + "Invalid resource type was specified in the FROM clause.", + "Non-ASCII symbol encountered outside of strings.", + "Value is invalid.", + "Date filters fail to restrict date to a range smaller than 31 days. Applicable if the query is segmented by date.", + "Filters on date/week/month/quarter have a start date after end date.", + "Expected AND between values with BETWEEN operator.", + "Expecting ORDER BY to have BY.", + "There was no dimension field selected.", + "Missing filters on date related fields.", + "Missing FROM clause.", + "The operator used in the conditions requires the value to be a list.", + "Fields used in WHERE or ORDER BY clauses are missing from the SELECT clause.", + "SELECT is missing at the beginning of query.", + "A list was passed as a value to a condition whose operator expects a single value.", + "Missing one or both values with BETWEEN operator.", + "Invalid date format. Expected 'YYYY-MM-DD'.", + "Misaligned date value for the filter. The date should be the start of a week/month/quarter if the filtered field is segments.week/segments.month/segments.quarter.", + "Value passed was not a string when it should have been. For example, it was a number or unquoted literal.", + "A String value passed to the BETWEEN operator does not parse as a date.", + "The value passed to the DURING operator is not a Date range literal", + "A value was passed to the LIKE operator.", + "An operator was provided that is inapplicable to the field being filtered.", + "A Condition was found with an empty list.", + "A condition used in the query references an unsupported enum constant.", + "Fields that are not allowed to be selected together were included in the SELECT clause.", + "A field that is not orderable was included in the ORDER BY clause.", + "A field that is not selectable was included in the SELECT clause.", + "A field that is not filterable was included in the WHERE clause.", + "Resource type specified in the FROM clause is not supported by this service.", + "A field that comes from an incompatible resource was included in the SELECT clause.", + "A field that comes from an incompatible resource was included in the WHERE clause.", + "A metric incompatible with the main resource or other selected segmenting resources was included in the SELECT or WHERE clause.", + "A segment incompatible with the main resource or other selected segmenting resources was included in the SELECT or WHERE clause.", + "A segment in the SELECT clause is incompatible with a metric in the SELECT or WHERE clause.", + "A metric may not be selected with one of the selected resource fields, or segmented by one of the selected segment fields.", + "The value passed to the limit clause is too low.", + "Query has a string containing a newline character.", + "List contains values of different types.", + "The values passed to the BETWEEN operator are not of the same type.", + "Query contains unterminated string.", + "Too many segments are specified in SELECT clause.", + "Query is incomplete and cannot be parsed.", + "FROM clause cannot be specified in this query.", + "Query contains one or more unrecognized fields.", + "Query has an unexpected extra part.", + "Metrics cannot be requested for a manager account. To retrieve metrics, issue separate requests against each client account under the manager account.", + "The number of values (right-hand-side operands) in a filter exceeds the limit.", + "Required segment field is missing." + ], + "type": "string" + }, + "quotaError": { + "description": "An error with the amount of quota remaining.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "RESOURCE_EXHAUSTED", + "ACCESS_PROHIBITED", + "RESOURCE_TEMPORARILY_EXHAUSTED", + "EXCESSIVE_SHORT_TERM_QUERY_RESOURCE_CONSUMPTION", + "EXCESSIVE_LONG_TERM_QUERY_RESOURCE_CONSUMPTION", + "PAYMENTS_PROFILE_ACTIVATION_RATE_LIMIT_EXCEEDED" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Too many requests.", + "Access is prohibited.", + "Too many requests in a short amount of time.", + "Too many expensive requests from query pattern over a short amount of time.", + "Too many expensive requests from query pattern over an extended duration of time.", + "To activate ad serving in a customer account, it has to be linked with a payment profile (also known as a Billing Customer Number, or BCN), which is then billed for the costs incurred by that customer account. This error will be thrown if too many customer accounts are activated in a short period of time for the same payment profile. Once this rate limit is exceeded, the customer should wait for a week before trying again, or contact Google Ads customer support to reset the rate limits. See https://support.google.com/google-ads/answer/6372658 to learn more about this limit." + ], + "type": "string" + }, + "rangeError": { + "description": "The reasons for the range error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "TOO_LOW", + "TOO_HIGH" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Too low.", + "Too high." + ], + "type": "string" + }, + "reachPlanError": { + "description": "The reasons for the reach plan error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "NOT_FORECASTABLE_MISSING_RATE", + "NOT_FORECASTABLE_NOT_ENOUGH_INVENTORY", + "NOT_FORECASTABLE_ACCOUNT_NOT_ENABLED" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Not forecastable due to missing rate card data.", + "Not forecastable due to not enough inventory.", + "Not forecastable due to account not being enabled." + ], + "type": "string" + }, + "recommendationError": { + "description": "The reasons for error in applying a recommendation", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "BUDGET_AMOUNT_TOO_SMALL", + "BUDGET_AMOUNT_TOO_LARGE", + "INVALID_BUDGET_AMOUNT", + "POLICY_ERROR", + "INVALID_BID_AMOUNT", + "ADGROUP_KEYWORD_LIMIT", + "RECOMMENDATION_ALREADY_APPLIED", + "RECOMMENDATION_INVALIDATED", + "TOO_MANY_OPERATIONS", + "NO_OPERATIONS", + "DIFFERENT_TYPES_NOT_SUPPORTED", + "DUPLICATE_RESOURCE_NAME", + "RECOMMENDATION_ALREADY_DISMISSED", + "INVALID_APPLY_REQUEST", + "RECOMMENDATION_TYPE_APPLY_NOT_SUPPORTED", + "INVALID_MULTIPLIER", + "ADVERTISING_CHANNEL_TYPE_GENERATE_NOT_SUPPORTED", + "RECOMMENDATION_TYPE_GENERATE_NOT_SUPPORTED", + "RECOMMENDATION_TYPES_CANNOT_BE_EMPTY", + "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_REQUIRES_BIDDING_INFO", + "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_REQUIRES_BIDDING_STRATEGY_TYPE", + "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_REQUIRES_ASSET_GROUP_INFO", + "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_REQUIRES_ASSET_GROUP_INFO_WITH_FINAL_URL", + "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_REQUIRES_COUNTRY_CODES_FOR_SEARCH_CHANNEL", + "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_INVALID_COUNTRY_CODE_FOR_SEARCH_CHANNEL", + "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_REQUIRES_LANGUAGE_CODES_FOR_SEARCH_CHANNEL", + "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_REQUIRES_EITHER_POSITIVE_OR_NEGATIVE_LOCATION_IDS_FOR_SEARCH_CHANNEL", + "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_REQUIRES_AD_GROUP_INFO_FOR_SEARCH_CHANNEL", + "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_REQUIRES_KEYWORDS_FOR_SEARCH_CHANNEL", + "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_WITH_CHANNEL_TYPE_SEARCH_AND_BIDDING_STRATEGY_TYPE_TARGET_IMPRESSION_SHARE_REQUIRES_LOCATION", + "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_WITH_CHANNEL_TYPE_SEARCH_AND_BIDDING_STRATEGY_TYPE_TARGET_IMPRESSION_SHARE_REQUIRES_TARGET_IMPRESSION_SHARE_MICROS", + "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_TARGET_IMPRESSION_SHARE_MICROS_BETWEEN_1_AND_1000000", + "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_WITH_CHANNEL_TYPE_SEARCH_AND_BIDDING_STRATEGY_TYPE_TARGET_IMPRESSION_SHARE_REQUIRES_TARGET_IMPRESSION_SHARE_INFO", + "MERCHANT_CENTER_ACCOUNT_ID_NOT_SUPPORTED_ADVERTISING_CHANNEL_TYPE" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "The specified budget amount is too low for example, lower than minimum currency unit or lower than ad group minimum cost-per-click.", + "The specified budget amount is too large.", + "The specified budget amount is not a valid amount, for example, not a multiple of minimum currency unit.", + "The specified keyword or ad violates ad policy.", + "The specified bid amount is not valid, for example, too many fractional digits, or negative amount.", + "The number of keywords in ad group have reached the maximum allowed.", + "The recommendation requested to apply has already been applied.", + "The recommendation requested to apply has been invalidated.", + "The number of operations in a single request exceeds the maximum allowed.", + "There are no operations in the request.", + "Operations with multiple recommendation types are not supported when partial failure mode is not enabled.", + "Request contains multiple operations with the same resource_name.", + "The recommendation requested to dismiss has already been dismissed.", + "The recommendation apply request was malformed and invalid.", + "The type of recommendation requested to apply is not supported.", + "The target multiplier specified is invalid.", + "The passed in advertising_channel_type is not supported.", + "The passed in recommendation_type is not supported.", + "One or more recommendation_types need to be passed into the generate recommendations request.", + "Bidding info is required for the CAMPAIGN_BUDGET recommendation type.", + "Bidding strategy type is required for the CAMPAIGN_BUDGET recommendation type.", + "Asset group info is required for the campaign budget recommendation type.", + "Asset group info with final url is required for the CAMPAIGN_BUDGET recommendation type.", + "Country codes are required for the CAMPAIGN_BUDGET recommendation type for SEARCH channel.", + "Country code is invalid for the CAMPAIGN_BUDGET recommendation type for SEARCH channel.", + "Language codes are required for the CAMPAIGN_BUDGET recommendation type for SEARCH channel.", + "Either positive or negative location ids are required for the CAMPAIGN_BUDGET recommendation type for SEARCH channel.", + "Ad group info is required for the CAMPAIGN_BUDGET recommendation type for SEARCH channel.", + "Keywords are required for the CAMPAIGN_BUDGET recommendation type for SEARCH channel.", + "Location is required for the CAMPAIGN_BUDGET recommendation type for bidding strategy type TARGET_IMPRESSION_SHARE.", + "Target impression share micros are required for the CAMPAIGN_BUDGET recommendation type for bidding strategy type TARGET_IMPRESSION_SHARE.", + "Target impression share micros are required to be between 1 and 1000000 for the CAMPAIGN_BUDGET recommendation type for bidding strategy type TARGET_IMPRESSION_SHARE.", + "Target impression share info is required for the CAMPAIGN_BUDGET recommendation type for bidding strategy type TARGET_IMPRESSION_SHARE.", + "Merchant Center Account ID is only supported for advertising_channel_type PERFORMANCE_MAX." + ], + "type": "string" + }, + "recommendationSubscriptionError": { + "description": "The reasons for the recommendation subscription error.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version." + ], + "type": "string" + }, + "regionCodeError": { + "description": "The reasons for the region code error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "INVALID_REGION_CODE" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Invalid region code." + ], + "type": "string" + }, + "requestError": { + "description": "An error caused by the request", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "RESOURCE_NAME_MISSING", + "RESOURCE_NAME_MALFORMED", + "BAD_RESOURCE_ID", + "INVALID_CUSTOMER_ID", + "OPERATION_REQUIRED", + "RESOURCE_NOT_FOUND", + "INVALID_PAGE_TOKEN", + "EXPIRED_PAGE_TOKEN", + "INVALID_PAGE_SIZE", + "PAGE_SIZE_NOT_SUPPORTED", + "REQUIRED_FIELD_MISSING", + "IMMUTABLE_FIELD", + "TOO_MANY_MUTATE_OPERATIONS", + "CANNOT_BE_EXECUTED_BY_MANAGER_ACCOUNT", + "CANNOT_MODIFY_FOREIGN_FIELD", + "INVALID_ENUM_VALUE", + "DEVELOPER_TOKEN_PARAMETER_MISSING", + "LOGIN_CUSTOMER_ID_PARAMETER_MISSING", + "VALIDATE_ONLY_REQUEST_HAS_PAGE_TOKEN", + "CANNOT_RETURN_SUMMARY_ROW_FOR_REQUEST_WITHOUT_METRICS", + "CANNOT_RETURN_SUMMARY_ROW_FOR_VALIDATE_ONLY_REQUESTS", + "INCONSISTENT_RETURN_SUMMARY_ROW_VALUE", + "TOTAL_RESULTS_COUNT_NOT_ORIGINALLY_REQUESTED", + "RPC_DEADLINE_TOO_SHORT", + "UNSUPPORTED_VERSION", + "CLOUD_PROJECT_NOT_FOUND" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Resource name is required for this request.", + "Resource name provided is malformed.", + "Resource name provided is malformed.", + "Customer ID is invalid.", + "Mutate operation should have either create, update, or remove specified.", + "Requested resource not found.", + "Next page token specified in user request is invalid.", + "Next page token specified in user request has expired.", + "Page size specified in user request is invalid.", + "Setting the page size is not supported, and will be unavailable in a future version.", + "Required field is missing.", + "The field cannot be modified because it's immutable. It's also possible that the field can be modified using 'create' operation but not 'update'.", + "Received too many entries in request.", + "Request cannot be executed by a manager account.", + "Mutate request was attempting to modify a readonly field. For instance, Budget fields can be requested for Ad Group, but are read-only for adGroups:mutate.", + "Enum value is not permitted.", + "The developer-token parameter is required for all requests.", + "The login-customer-id parameter is required for this request.", + "page_token is set in the validate only request", + "return_summary_row cannot be enabled if request did not select any metrics field.", + "return_summary_row should not be enabled for validate only requests.", + "return_summary_row parameter value should be the same between requests with page_token field set and their original request.", + "The total results count cannot be returned if it was not requested in the original request.", + "Deadline specified by the client was too short.", + "This API version has been sunset and is no longer supported.", + "The Google Cloud project in the request was not found." + ], + "type": "string" + }, + "resourceAccessDeniedError": { + "description": "The reasons for the resource access denied error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "WRITE_ACCESS_DENIED" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "User did not have write access." + ], + "type": "string" + }, + "resourceCountLimitExceededError": { + "description": "The reasons for the resource count limit exceeded error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "ACCOUNT_LIMIT", + "CAMPAIGN_LIMIT", + "ADGROUP_LIMIT", + "AD_GROUP_AD_LIMIT", + "AD_GROUP_CRITERION_LIMIT", + "SHARED_SET_LIMIT", + "MATCHING_FUNCTION_LIMIT", + "RESPONSE_ROW_LIMIT_EXCEEDED", + "RESOURCE_LIMIT" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Indicates that this request would exceed the number of allowed resources for the Google Ads account. The exact resource type and limit being checked can be inferred from accountLimitType.", + "Indicates that this request would exceed the number of allowed resources in a Campaign. The exact resource type and limit being checked can be inferred from accountLimitType, and the numeric id of the Campaign involved is given by enclosingId.", + "Indicates that this request would exceed the number of allowed resources in an ad group. The exact resource type and limit being checked can be inferred from accountLimitType, and the numeric id of the ad group involved is given by enclosingId.", + "Indicates that this request would exceed the number of allowed resources in an ad group ad. The exact resource type and limit being checked can be inferred from accountLimitType, and the enclosingId contains the ad group id followed by the ad id, separated by a single comma (,).", + "Indicates that this request would exceed the number of allowed resources in an ad group criterion. The exact resource type and limit being checked can be inferred from accountLimitType, and the enclosingId contains the ad group id followed by the criterion id, separated by a single comma (,).", + "Indicates that this request would exceed the number of allowed resources in this shared set. The exact resource type and limit being checked can be inferred from accountLimitType, and the numeric id of the shared set involved is given by enclosingId.", + "Exceeds a limit related to a matching function.", + "The response for this request would exceed the maximum number of rows that can be returned.", + "This request would exceed a limit on the number of allowed resources. The details of which type of limit was exceeded will eventually be returned in ErrorDetails." + ], + "type": "string" + }, + "searchTermInsightError": { + "description": "The reasons for the Search term insight error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "FILTERING_NOT_ALLOWED_WITH_SEGMENTS", + "LIMIT_NOT_ALLOWED_WITH_SEGMENTS", + "MISSING_FIELD_IN_SELECT_CLAUSE", + "REQUIRES_FILTER_BY_SINGLE_RESOURCE", + "SORTING_NOT_ALLOWED_WITH_SEGMENTS", + "SUMMARY_ROW_NOT_ALLOWED_WITH_SEGMENTS" + ], + "enumDescriptions": [ + "Name unspecified.", + "The received error code is not known in this version.", + "Search term insights cannot be filtered by metrics when segmenting.", + "Search term insights cannot have a LIMIT when segmenting.", + "A selected field requires another field to be selected with it.", + "A selected field/resource requires filtering by a single resource.", + "Search term insights cannot be sorted when segmenting.", + "Search term insights cannot have a summary row when segmenting." + ], + "type": "string" + }, + "settingError": { + "description": "The reasons for the setting error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "SETTING_TYPE_IS_NOT_AVAILABLE", + "SETTING_TYPE_IS_NOT_COMPATIBLE_WITH_CAMPAIGN", + "TARGETING_SETTING_CONTAINS_INVALID_CRITERION_TYPE_GROUP", + "TARGETING_SETTING_DEMOGRAPHIC_CRITERION_TYPE_GROUPS_MUST_BE_SET_TO_TARGET_ALL", + "TARGETING_SETTING_CANNOT_CHANGE_TARGET_ALL_TO_FALSE_FOR_DEMOGRAPHIC_CRITERION_TYPE_GROUP", + "DYNAMIC_SEARCH_ADS_SETTING_AT_LEAST_ONE_FEED_ID_MUST_BE_PRESENT", + "DYNAMIC_SEARCH_ADS_SETTING_CONTAINS_INVALID_DOMAIN_NAME", + "DYNAMIC_SEARCH_ADS_SETTING_CONTAINS_SUBDOMAIN_NAME", + "DYNAMIC_SEARCH_ADS_SETTING_CONTAINS_INVALID_LANGUAGE_CODE", + "TARGET_ALL_IS_NOT_ALLOWED_FOR_PLACEMENT_IN_SEARCH_CAMPAIGN", + "SETTING_VALUE_NOT_COMPATIBLE_WITH_CAMPAIGN", + "BID_ONLY_IS_NOT_ALLOWED_TO_BE_MODIFIED_WITH_CUSTOMER_MATCH_TARGETING" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "The campaign setting is not available for this Google Ads account.", + "The setting is not compatible with the campaign.", + "The supplied TargetingSetting contains an invalid CriterionTypeGroup. See CriterionTypeGroup documentation for CriterionTypeGroups allowed in Campaign or AdGroup TargetingSettings.", + "TargetingSetting must not explicitly set any of the Demographic CriterionTypeGroups (AGE_RANGE, GENDER, PARENT, INCOME_RANGE) to false (it's okay to not set them at all, in which case the system will set them to true automatically).", + "TargetingSetting cannot change any of the Demographic CriterionTypeGroups (AGE_RANGE, GENDER, PARENT, INCOME_RANGE) from true to false.", + "At least one feed id should be present.", + "The supplied DynamicSearchAdsSetting contains an invalid domain name.", + "The supplied DynamicSearchAdsSetting contains a subdomain name.", + "The supplied DynamicSearchAdsSetting contains an invalid language code.", + "TargetingSettings in search campaigns should not have CriterionTypeGroup.PLACEMENT set to targetAll.", + "The setting value is not compatible with the campaign type.", + "Switching from observation setting to targeting setting is not allowed for Customer Match lists. See https://support.google.com/google-ads/answer/6299717." + ], + "type": "string" + }, + "shareablePreviewError": { + "description": "The reasons for the shareable preview error.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "TOO_MANY_ASSET_GROUPS_IN_REQUEST", + "ASSET_GROUP_DOES_NOT_EXIST_UNDER_THIS_CUSTOMER" + ], + "enumDescriptions": [ + "Enum unspecified.", + "Used for return value only. Represents value unknown in this version.", + "The maximum of 10 asset groups was exceeded.", + "asset group does not exist under this customer." + ], + "type": "string" + }, + "sharedCriterionError": { + "description": "The reasons for the shared criterion error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "CRITERION_TYPE_NOT_ALLOWED_FOR_SHARED_SET_TYPE" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "The criterion is not appropriate for the shared set type." + ], + "type": "string" + }, + "sharedSetError": { + "description": "The reasons for the shared set error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "CUSTOMER_CANNOT_CREATE_SHARED_SET_OF_THIS_TYPE", + "DUPLICATE_NAME", + "SHARED_SET_REMOVED", + "SHARED_SET_IN_USE" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "The customer cannot create this type of shared set.", + "A shared set with this name already exists.", + "Removed shared sets cannot be mutated.", + "The shared set cannot be removed because it is in use." + ], + "type": "string" + }, + "shoppingProductError": { + "description": "The reasons for error in querying shopping product.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "MISSING_CAMPAIGN_FILTER", + "MISSING_AD_GROUP_FILTER", + "UNSUPPORTED_DATE_SEGMENTATION" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "A filter on the `campaign` resource name is missing.", + "A filter on the `ad_group` resource name is missing.", + "Date segmentation is not supported." + ], + "type": "string" + }, + "sizeLimitError": { + "description": "The reasons for the size limit error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "REQUEST_SIZE_LIMIT_EXCEEDED", + "RESPONSE_SIZE_LIMIT_EXCEEDED" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "The number of entries in the request exceeds the system limit, or the contents of the operations exceed transaction limits due to their size or complexity. Try reducing the number of entries per request.", + "The number of entries in the response exceeds the system limit." + ], + "type": "string" + }, + "smartCampaignError": { + "description": "The reasons for the Smart campaign error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "INVALID_BUSINESS_LOCATION_ID", + "INVALID_CAMPAIGN", + "BUSINESS_NAME_OR_BUSINESS_LOCATION_ID_MISSING", + "REQUIRED_SUGGESTION_FIELD_MISSING", + "GEO_TARGETS_REQUIRED", + "CANNOT_DETERMINE_SUGGESTION_LOCALE", + "FINAL_URL_NOT_CRAWLABLE" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "The business location id is invalid.", + "The SmartCampaignSetting resource is only applicable for campaigns with advertising channel type SMART.", + "The business name or business location id is required.", + "A Smart campaign suggestion request field is required.", + "A location list or proximity is required.", + "The locale could not be determined.", + "The final URL could not be crawled." + ], + "type": "string" + }, + "stringFormatError": { + "description": "The reasons for the string format error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "ILLEGAL_CHARS", + "INVALID_FORMAT" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "The input string value contains disallowed characters.", + "The input string value is invalid for the associated field." + ], + "type": "string" + }, + "stringLengthError": { + "description": "The reasons for the string length error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "EMPTY", + "TOO_SHORT", + "TOO_LONG" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "The specified field should have a least one non-whitespace character in it.", + "Too short.", + "Too long." + ], + "type": "string" + }, + "thirdPartyAppAnalyticsLinkError": { + "description": "The reasons for the third party app analytics link mutate error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "INVALID_ANALYTICS_PROVIDER_ID", + "INVALID_MOBILE_APP_ID", + "MOBILE_APP_IS_NOT_ENABLED", + "CANNOT_REGENERATE_SHAREABLE_LINK_ID_FOR_REMOVED_LINK" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "The provided analytics provider ID is invalid.", + "The provided mobile app ID is invalid.", + "The mobile app corresponding to the provided app ID is not active/enabled.", + "Regenerating shareable link ID is only allowed on active links" + ], + "type": "string" + }, + "timeZoneError": { + "description": "The reasons for the time zone error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "INVALID_TIME_ZONE" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Time zone is not valid." + ], + "type": "string" + }, + "urlFieldError": { + "description": "An error with a URL field mutate.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "INVALID_TRACKING_URL_TEMPLATE", + "INVALID_TAG_IN_TRACKING_URL_TEMPLATE", + "MISSING_TRACKING_URL_TEMPLATE_TAG", + "MISSING_PROTOCOL_IN_TRACKING_URL_TEMPLATE", + "INVALID_PROTOCOL_IN_TRACKING_URL_TEMPLATE", + "MALFORMED_TRACKING_URL_TEMPLATE", + "MISSING_HOST_IN_TRACKING_URL_TEMPLATE", + "INVALID_TLD_IN_TRACKING_URL_TEMPLATE", + "REDUNDANT_NESTED_TRACKING_URL_TEMPLATE_TAG", + "INVALID_FINAL_URL", + "INVALID_TAG_IN_FINAL_URL", + "REDUNDANT_NESTED_FINAL_URL_TAG", + "MISSING_PROTOCOL_IN_FINAL_URL", + "INVALID_PROTOCOL_IN_FINAL_URL", + "MALFORMED_FINAL_URL", + "MISSING_HOST_IN_FINAL_URL", + "INVALID_TLD_IN_FINAL_URL", + "INVALID_FINAL_MOBILE_URL", + "INVALID_TAG_IN_FINAL_MOBILE_URL", + "REDUNDANT_NESTED_FINAL_MOBILE_URL_TAG", + "MISSING_PROTOCOL_IN_FINAL_MOBILE_URL", + "INVALID_PROTOCOL_IN_FINAL_MOBILE_URL", + "MALFORMED_FINAL_MOBILE_URL", + "MISSING_HOST_IN_FINAL_MOBILE_URL", + "INVALID_TLD_IN_FINAL_MOBILE_URL", + "INVALID_FINAL_APP_URL", + "INVALID_TAG_IN_FINAL_APP_URL", + "REDUNDANT_NESTED_FINAL_APP_URL_TAG", + "MULTIPLE_APP_URLS_FOR_OSTYPE", + "INVALID_OSTYPE", + "INVALID_PROTOCOL_FOR_APP_URL", + "INVALID_PACKAGE_ID_FOR_APP_URL", + "URL_CUSTOM_PARAMETERS_COUNT_EXCEEDS_LIMIT", + "INVALID_CHARACTERS_IN_URL_CUSTOM_PARAMETER_KEY", + "INVALID_CHARACTERS_IN_URL_CUSTOM_PARAMETER_VALUE", + "INVALID_TAG_IN_URL_CUSTOM_PARAMETER_VALUE", + "REDUNDANT_NESTED_URL_CUSTOM_PARAMETER_TAG", + "MISSING_PROTOCOL", + "INVALID_PROTOCOL", + "INVALID_URL", + "DESTINATION_URL_DEPRECATED", + "INVALID_TAG_IN_URL", + "MISSING_URL_TAG", + "DUPLICATE_URL_ID", + "INVALID_URL_ID", + "FINAL_URL_SUFFIX_MALFORMED", + "INVALID_TAG_IN_FINAL_URL_SUFFIX", + "INVALID_TOP_LEVEL_DOMAIN", + "MALFORMED_TOP_LEVEL_DOMAIN", + "MALFORMED_URL", + "MISSING_HOST", + "NULL_CUSTOM_PARAMETER_VALUE", + "VALUE_TRACK_PARAMETER_NOT_SUPPORTED", + "UNSUPPORTED_APP_STORE" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "The tracking url template is invalid.", + "The tracking url template contains invalid tag.", + "The tracking url template must contain at least one tag (for example, {lpurl}), This applies only to tracking url template associated with website ads or product ads.", + "The tracking url template must start with a valid protocol (or lpurl tag).", + "The tracking url template starts with an invalid protocol.", + "The tracking url template contains illegal characters.", + "The tracking url template must contain a host name (or lpurl tag).", + "The tracking url template has an invalid or missing top level domain extension.", + "The tracking url template contains nested occurrences of the same conditional tag (for example, {ifmobile:{ifmobile:x}}).", + "The final url is invalid.", + "The final url contains invalid tag.", + "The final url contains nested occurrences of the same conditional tag (for example, {ifmobile:{ifmobile:x}}).", + "The final url must start with a valid protocol.", + "The final url starts with an invalid protocol.", + "The final url contains illegal characters.", + "The final url must contain a host name.", + "The tracking url template has an invalid or missing top level domain extension.", + "The final mobile url is invalid.", + "The final mobile url contains invalid tag.", + "The final mobile url contains nested occurrences of the same conditional tag (for example, {ifmobile:{ifmobile:x}}).", + "The final mobile url must start with a valid protocol.", + "The final mobile url starts with an invalid protocol.", + "The final mobile url contains illegal characters.", + "The final mobile url must contain a host name.", + "The tracking url template has an invalid or missing top level domain extension.", + "The final app url is invalid.", + "The final app url contains invalid tag.", + "The final app url contains nested occurrences of the same conditional tag (for example, {ifmobile:{ifmobile:x}}).", + "More than one app url found for the same OS type.", + "The OS type given for an app url is not valid.", + "The protocol given for an app url is not valid. (For example, \"android-app://\")", + "The package id (app id) given for an app url is not valid.", + "The number of url custom parameters for an resource exceeds the maximum limit allowed.", + "An invalid character appears in the parameter key.", + "An invalid character appears in the parameter value.", + "The url custom parameter value fails url tag validation.", + "The custom parameter contains nested occurrences of the same conditional tag (for example, {ifmobile:{ifmobile:x}}).", + "The protocol (http:// or https://) is missing.", + "Unsupported protocol in URL. Only http and https are supported.", + "The url is invalid.", + "Destination Url is deprecated.", + "The url contains invalid tag.", + "The url must contain at least one tag (for example, {lpurl}).", + "Duplicate url id.", + "Invalid url id.", + "The final url suffix cannot begin with '?' or '&' characters and must be a valid query string.", + "The final url suffix cannot contain {lpurl} related or {ignore} tags.", + "The top level domain is invalid, for example, not a public top level domain listed in publicsuffix.org.", + "Malformed top level domain in URL.", + "Malformed URL.", + "No host found in URL.", + "Custom parameter value cannot be null.", + "Track parameter is not supported.", + "The app store connected to the url is not supported." + ], + "type": "string" + }, + "userDataError": { + "description": "The reasons for the user data error.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "OPERATIONS_FOR_CUSTOMER_MATCH_NOT_ALLOWED", + "TOO_MANY_USER_IDENTIFIERS", + "USER_LIST_NOT_APPLICABLE" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Customer is not allowed to perform operations related to Customer Match.", + "Maximum number of user identifiers allowed for each request is 100 and for each operation is 20.", + "Current user list is not applicable for the given customer." + ], + "type": "string" + }, + "userListCustomerTypeError": { + "description": "The reasons for a user list customer type error.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "CONFLICTING_CUSTOMER_TYPES", + "NO_ACCESS_TO_USER_LIST", + "USERLIST_NOT_ELIGIBLE", + "CONVERSION_TRACKING_NOT_ENABLED_OR_NOT_MCC_MANAGER_ACCOUNT", + "TOO_MANY_USER_LISTS_FOR_THE_CUSTOMER_TYPE" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Cannot add the conflicting customer types to the same user list. Conflicting labels: 1. Purchasers - Converted Leads 2. Purchasers - Qualified Leads 3. Purchasers - Cart Abandoners 4. Qualified Leads - Converted Leads 5. Disengaged customers - Converted Leads 6. Disengaged customers - Qualified Leads 7. Disengaged customers - Cart Abandoners 8. Converted Leads - Loyalty Tier X Members (X = 1..7) 9. Qualified Leads - Loyalty Tier X Members (X = 1..7) 10. Loyalty Tier X Members - Loyalty Tier Y Members (X != Y)", + "The account does not have access to the user list.", + "The given user list is not eligible for applying customer types. The user list must belong to one of the following types: CRM_BASED, RULE_BASED, ADVERTISER_DATA_MODEL_BASED, GCN.", + "To edit the user list customer type, conversion tracking must be enabled in your account. If cross-tracking is enabled, your account must be a MCC manager account to modify user list customer types. More info at https://support.google.com/google-ads/answer/3030657", + "Too many user lists for the customer type." + ], + "type": "string" + }, + "userListError": { + "description": "The reasons for the user list error", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "EXTERNAL_REMARKETING_USER_LIST_MUTATE_NOT_SUPPORTED", + "CONCRETE_TYPE_REQUIRED", + "CONVERSION_TYPE_ID_REQUIRED", + "DUPLICATE_CONVERSION_TYPES", + "INVALID_CONVERSION_TYPE", + "INVALID_DESCRIPTION", + "INVALID_NAME", + "INVALID_TYPE", + "CAN_NOT_ADD_LOGICAL_LIST_AS_LOGICAL_LIST_OPERAND", + "INVALID_USER_LIST_LOGICAL_RULE_OPERAND", + "NAME_ALREADY_USED", + "NEW_CONVERSION_TYPE_NAME_REQUIRED", + "CONVERSION_TYPE_NAME_ALREADY_USED", + "OWNERSHIP_REQUIRED_FOR_SET", + "USER_LIST_MUTATE_NOT_SUPPORTED", + "INVALID_RULE", + "INVALID_DATE_RANGE", + "CAN_NOT_MUTATE_SENSITIVE_USERLIST", + "MAX_NUM_RULEBASED_USERLISTS", + "CANNOT_MODIFY_BILLABLE_RECORD_COUNT", + "APP_ID_NOT_SET", + "USERLIST_NAME_IS_RESERVED_FOR_SYSTEM_LIST", + "ADVERTISER_NOT_ON_ALLOWLIST_FOR_USING_UPLOADED_DATA", + "RULE_TYPE_IS_NOT_SUPPORTED", + "CAN_NOT_ADD_A_SIMILAR_USERLIST_AS_LOGICAL_LIST_OPERAND", + "CAN_NOT_MIX_CRM_BASED_IN_LOGICAL_LIST_WITH_OTHER_LISTS", + "APP_ID_NOT_ALLOWED", + "CANNOT_MUTATE_SYSTEM_LIST", + "MOBILE_APP_IS_SENSITIVE", + "SEED_LIST_DOES_NOT_EXIST", + "INVALID_SEED_LIST_ACCESS_REASON", + "INVALID_SEED_LIST_TYPE", + "INVALID_COUNTRY_CODES", + "PARTNER_AUDIENCE_SOURCE_NOT_SUPPORTED_FOR_USER_LIST_TYPE", + "COMMERCE_PARTNER_NOT_ALLOWED", + "PARTNER_AUDIENCE_INFO_NOT_SUPPORTED_FOR_USER_LIST_TYPE", + "PARTNER_MANAGER_ACCOUNT_DISALLOWED", + "PARTNER_NOT_ALLOWLISTED_FOR_THIRD_PARTY_PARTNER_DATA", + "ADVERTISER_TOS_NOT_ACCEPTED", + "ADVERTISER_PARTNER_LINK_MISSING", + "ADVERTISER_NOT_ALLOWLISTED_FOR_THIRD_PARTY_PARTNER_DATA", + "ACCOUNT_SETTING_TYPE_NOT_ALLOWED" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Creating and updating external remarketing user lists is not supported.", + "Concrete type of user list is required.", + "Creating/updating user list conversion types requires specifying the conversion type Id.", + "Remarketing user list cannot have duplicate conversion types.", + "Conversion type is invalid/unknown.", + "User list description is empty or invalid.", + "User list name is empty or invalid.", + "Type of the UserList does not match.", + "Embedded logical user lists are not allowed.", + "User list rule operand is invalid.", + "Name is already being used for another user list for the account.", + "Name is required when creating a new conversion type.", + "The given conversion type name has been used.", + "Only an owner account may edit a user list.", + "Creating user list without setting type in oneof user_list field, or creating/updating read-only user list types is not allowed.", + "Rule is invalid.", + "The specified date range is empty.", + "A UserList which is privacy sensitive or legal rejected cannot be mutated by external users.", + "Maximum number of rulebased user lists a customer can have.", + "BasicUserList's billable record field cannot be modified once it is set.", + "crm_based_user_list.app_id field must be set when upload_key_type is MOBILE_ADVERTISING_ID.", + "Name of the user list is reserved for system generated lists and cannot be used.", + "Advertiser needs to be on the allow-list to use remarketing lists created from advertiser uploaded data (for example, Customer Match lists).", + "The provided rule_type is not supported for the user list.", + "Similar user list cannot be used as a logical user list operand.", + "Logical user list should not have a mix of CRM based user list and other types of lists in its rules.", + "crm_based_user_list.app_id field can only be set when upload_key_type is MOBILE_ADVERTISING_ID.", + "Google system generated user lists cannot be mutated.", + "The mobile app associated with the remarketing list is sensitive.", + "One or more given seed lists do not exist.", + "One or more given seed lists are not accessible to the current user.", + "One or more given seed lists have an unsupported type.", + "One or more invalid country codes are added to Lookalike UserList.", + "The partner audience source is not supported for the user list type.", + "The commerce partner is only supported for COMMERCE_AUDIENCE.", + "The partner audience info is not supported for the user list type.", + "Manager account is not allowed to create this UserList.", + "This UserList can only be created by allowlisted partners.", + "The advertiser must accept the Terms of Service to create this UserList.", + "The advertiser must have an active link to the partner to create this UserList.", + "This UserList can only be created for allowlisted advertisers.", + "This UserList is not allowed for this account type." + ], + "type": "string" + }, + "videoCampaignError": { + "description": "An error with a Video Campaign mutate.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "MUTATE_REQUIRES_RESERVATION" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Cannot modify the video campaign without reservation. See https://support.google.com/google-ads/answer/9547606." + ], + "type": "string" + }, + "youtubeVideoRegistrationError": { + "description": "The reasons for YouTube video registration errors.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "VIDEO_NOT_FOUND", + "VIDEO_NOT_ACCESSIBLE", + "VIDEO_NOT_ELIGIBLE" + ], + "enumDescriptions": [ + "Enum unspecified.", + "The received error code is not known in this version.", + "Video to be registered wasn't found.", + "Video to be registered is not accessible (for example, private).", + "Video to be registered is not eligible (for example, mature content)." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V23Errors__ErrorDetails": { + "description": "Additional error details.", + "id": "GoogleAdsSearchads360V23Errors__ErrorDetails", + "properties": { + "budgetPerDayMinimumErrorDetails": { + "$ref": "GoogleAdsSearchads360V23Errors__BudgetPerDayMinimumErrorDetails", + "description": "Details for a budget below per-day minimum error." + }, + "policyFindingDetails": { + "$ref": "GoogleAdsSearchads360V23Errors__PolicyFindingDetails", + "description": "Describes policy violation findings." + }, + "policyViolationDetails": { + "$ref": "GoogleAdsSearchads360V23Errors__PolicyViolationDetails", + "description": "Describes an ad policy violation." + }, + "quotaErrorDetails": { + "$ref": "GoogleAdsSearchads360V23Errors__QuotaErrorDetails", + "description": "Details on the quota error, including the scope (account or developer), the rate bucket name and the retry delay." + }, + "resourceCountDetails": { + "$ref": "GoogleAdsSearchads360V23Errors__ResourceCountDetails", + "description": "Details for a resource count limit exceeded error." + }, + "unpublishedErrorCode": { + "description": "The error code that should have been returned, but wasn't. This is used when the error code is not published in the client specified version.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V23Errors__ErrorLocation": { + "description": "Describes the part of the request proto that caused the error.", + "id": "GoogleAdsSearchads360V23Errors__ErrorLocation", + "properties": { + "fieldPathElements": { + "description": "A field path that indicates which field was invalid in the request.", + "items": { + "$ref": "GoogleAdsSearchads360V23Errors_ErrorLocation_FieldPathElement" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V23Errors__PolicyFindingDetails": { + "description": "Error returned as part of a mutate response. This error indicates one or more policy findings in the fields of a resource.", + "id": "GoogleAdsSearchads360V23Errors__PolicyFindingDetails", + "properties": { + "policyTopicEntries": { + "description": "The list of policy topics for the resource. Contains the PROHIBITED or FULLY_LIMITED policy topic entries that prevented the resource from being saved (among any other entries the resource may also have).", + "items": { + "$ref": "GoogleAdsSearchads360V23Common__PolicyTopicEntry" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V23Errors__PolicyViolationDetails": { + "description": "Error returned as part of a mutate response. This error indicates single policy violation by some text in one of the fields.", + "id": "GoogleAdsSearchads360V23Errors__PolicyViolationDetails", + "properties": { + "externalPolicyDescription": { + "description": "Human readable description of policy violation.", + "type": "string" + }, + "externalPolicyName": { + "description": "Human readable name of the policy.", + "type": "string" + }, + "isExemptible": { + "description": "Whether user can file an exemption request for this violation.", + "type": "boolean" + }, + "key": { + "$ref": "GoogleAdsSearchads360V23Common__PolicyViolationKey", + "description": "Unique identifier for this violation. If policy is exemptible, this key may be used to request exemption." + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V23Errors__QuotaErrorDetails": { + "description": "Additional quota error details when there is QuotaError.", + "id": "GoogleAdsSearchads360V23Errors__QuotaErrorDetails", + "properties": { + "rateName": { + "description": "The high level description of the quota bucket. Examples are \"Get requests for standard access\" or \"Requests per account\".", + "type": "string" + }, + "rateScope": { + "description": "The rate scope of the quota limit.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "ACCOUNT", + "DEVELOPER" + ], + "enumDescriptions": [ + "Unspecified enum", + "Used for return value only. Represents value unknown in this version.", + "Per customer account quota", + "Per project quota" + ], + "type": "string" + }, + "retryDelay": { + "description": "Backoff period that customers should wait before sending next request.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V23Errors__ResourceCountDetails": { + "description": "Error details returned when an resource count limit was exceeded.", + "id": "GoogleAdsSearchads360V23Errors__ResourceCountDetails", + "properties": { + "enclosingId": { + "description": "The ID of the resource whose limit was exceeded. External customer ID if the limit is for a customer.", + "type": "string" + }, + "enclosingResource": { + "description": "The name of the resource ( etc.) whose limit was exceeded.", + "type": "string" + }, + "existingCount": { + "description": "The count of existing entities.", + "format": "int32", + "type": "integer" + }, + "limit": { + "description": "The limit which was exceeded.", + "format": "int32", + "type": "integer" + }, + "limitType": { + "description": "The resource limit type which was exceeded.", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "CAMPAIGNS_PER_CUSTOMER", + "BASE_CAMPAIGNS_PER_CUSTOMER", + "EXPERIMENT_CAMPAIGNS_PER_CUSTOMER", + "HOTEL_CAMPAIGNS_PER_CUSTOMER", + "SMART_SHOPPING_CAMPAIGNS_PER_CUSTOMER", + "AD_GROUPS_PER_CAMPAIGN", + "AD_GROUPS_PER_SHOPPING_CAMPAIGN", + "AD_GROUPS_PER_HOTEL_CAMPAIGN", + "REPORTING_AD_GROUPS_PER_LOCAL_CAMPAIGN", + "REPORTING_AD_GROUPS_PER_APP_CAMPAIGN", + "MANAGED_AD_GROUPS_PER_SMART_CAMPAIGN", + "AD_GROUP_CRITERIA_PER_CUSTOMER", + "BASE_AD_GROUP_CRITERIA_PER_CUSTOMER", + "EXPERIMENT_AD_GROUP_CRITERIA_PER_CUSTOMER", + "AD_GROUP_CRITERIA_PER_CAMPAIGN", + "CAMPAIGN_CRITERIA_PER_CUSTOMER", + "BASE_CAMPAIGN_CRITERIA_PER_CUSTOMER", + "EXPERIMENT_CAMPAIGN_CRITERIA_PER_CUSTOMER", + "WEBPAGE_CRITERIA_PER_CUSTOMER", + "BASE_WEBPAGE_CRITERIA_PER_CUSTOMER", + "EXPERIMENT_WEBPAGE_CRITERIA_PER_CUSTOMER", + "COMBINED_AUDIENCE_CRITERIA_PER_AD_GROUP", + "CUSTOMER_NEGATIVE_PLACEMENT_CRITERIA_PER_CUSTOMER", + "CUSTOMER_NEGATIVE_YOUTUBE_CHANNEL_CRITERIA_PER_CUSTOMER", + "CRITERIA_PER_AD_GROUP", + "LISTING_GROUPS_PER_AD_GROUP", + "EXPLICITLY_SHARED_BUDGETS_PER_CUSTOMER", + "IMPLICITLY_SHARED_BUDGETS_PER_CUSTOMER", + "COMBINED_AUDIENCE_CRITERIA_PER_CAMPAIGN", + "NEGATIVE_KEYWORDS_PER_CAMPAIGN", + "NEGATIVE_PLACEMENTS_PER_CAMPAIGN", + "GEO_TARGETS_PER_CAMPAIGN", + "NEGATIVE_IP_BLOCKS_PER_CAMPAIGN", + "PROXIMITIES_PER_CAMPAIGN", + "LISTING_SCOPES_PER_SHOPPING_CAMPAIGN", + "LISTING_SCOPES_PER_NON_SHOPPING_CAMPAIGN", + "NEGATIVE_KEYWORDS_PER_SHARED_SET", + "NEGATIVE_PLACEMENTS_PER_SHARED_SET", + "SHARED_SETS_PER_CUSTOMER_FOR_TYPE_DEFAULT", + "SHARED_SETS_PER_CUSTOMER_FOR_NEGATIVE_PLACEMENT_LIST_LOWER", + "HOTEL_ADVANCE_BOOKING_WINDOW_BID_MODIFIERS_PER_AD_GROUP", + "BIDDING_STRATEGIES_PER_CUSTOMER", + "BASIC_USER_LISTS_PER_CUSTOMER", + "LOGICAL_USER_LISTS_PER_CUSTOMER", + "RULE_BASED_USER_LISTS_PER_CUSTOMER", + "BASE_AD_GROUP_ADS_PER_CUSTOMER", + "EXPERIMENT_AD_GROUP_ADS_PER_CUSTOMER", + "AD_GROUP_ADS_PER_CAMPAIGN", + "TEXT_AND_OTHER_ADS_PER_AD_GROUP", + "IMAGE_ADS_PER_AD_GROUP", + "SHOPPING_SMART_ADS_PER_AD_GROUP", + "RESPONSIVE_SEARCH_ADS_PER_AD_GROUP", + "APP_ADS_PER_AD_GROUP", + "APP_ENGAGEMENT_ADS_PER_AD_GROUP", + "LOCAL_ADS_PER_AD_GROUP", + "VIDEO_ADS_PER_AD_GROUP", + "LEAD_FORM_CAMPAIGN_ASSETS_PER_CAMPAIGN", + "PROMOTION_CUSTOMER_ASSETS_PER_CUSTOMER", + "PROMOTION_CAMPAIGN_ASSETS_PER_CAMPAIGN", + "PROMOTION_AD_GROUP_ASSETS_PER_AD_GROUP", + "CALLOUT_CUSTOMER_ASSETS_PER_CUSTOMER", + "CALLOUT_CAMPAIGN_ASSETS_PER_CAMPAIGN", + "CALLOUT_AD_GROUP_ASSETS_PER_AD_GROUP", + "SITELINK_CUSTOMER_ASSETS_PER_CUSTOMER", + "SITELINK_CAMPAIGN_ASSETS_PER_CAMPAIGN", + "SITELINK_AD_GROUP_ASSETS_PER_AD_GROUP", + "STRUCTURED_SNIPPET_CUSTOMER_ASSETS_PER_CUSTOMER", + "STRUCTURED_SNIPPET_CAMPAIGN_ASSETS_PER_CAMPAIGN", + "STRUCTURED_SNIPPET_AD_GROUP_ASSETS_PER_AD_GROUP", + "MOBILE_APP_CUSTOMER_ASSETS_PER_CUSTOMER", + "MOBILE_APP_CAMPAIGN_ASSETS_PER_CAMPAIGN", + "MOBILE_APP_AD_GROUP_ASSETS_PER_AD_GROUP", + "HOTEL_CALLOUT_CUSTOMER_ASSETS_PER_CUSTOMER", + "HOTEL_CALLOUT_CAMPAIGN_ASSETS_PER_CAMPAIGN", + "HOTEL_CALLOUT_AD_GROUP_ASSETS_PER_AD_GROUP", + "CALL_CUSTOMER_ASSETS_PER_CUSTOMER", + "CALL_CAMPAIGN_ASSETS_PER_CAMPAIGN", + "CALL_AD_GROUP_ASSETS_PER_AD_GROUP", + "PRICE_CUSTOMER_ASSETS_PER_CUSTOMER", + "PRICE_CAMPAIGN_ASSETS_PER_CAMPAIGN", + "PRICE_AD_GROUP_ASSETS_PER_AD_GROUP", + "AD_IMAGE_CAMPAIGN_ASSETS_PER_CAMPAIGN", + "AD_IMAGE_AD_GROUP_ASSETS_PER_AD_GROUP", + "PAGE_FEED_ASSET_SETS_PER_CUSTOMER", + "DYNAMIC_EDUCATION_FEED_ASSET_SETS_PER_CUSTOMER", + "ASSETS_PER_PAGE_FEED_ASSET_SET", + "ASSETS_PER_DYNAMIC_EDUCATION_FEED_ASSET_SET", + "DYNAMIC_REAL_ESTATE_ASSET_SETS_PER_CUSTOMER", + "ASSETS_PER_DYNAMIC_REAL_ESTATE_ASSET_SET", + "DYNAMIC_CUSTOM_ASSET_SETS_PER_CUSTOMER", + "ASSETS_PER_DYNAMIC_CUSTOM_ASSET_SET", + "DYNAMIC_HOTELS_AND_RENTALS_ASSET_SETS_PER_CUSTOMER", + "ASSETS_PER_DYNAMIC_HOTELS_AND_RENTALS_ASSET_SET", + "DYNAMIC_LOCAL_ASSET_SETS_PER_CUSTOMER", + "ASSETS_PER_DYNAMIC_LOCAL_ASSET_SET", + "DYNAMIC_FLIGHTS_ASSET_SETS_PER_CUSTOMER", + "ASSETS_PER_DYNAMIC_FLIGHTS_ASSET_SET", + "DYNAMIC_TRAVEL_ASSET_SETS_PER_CUSTOMER", + "ASSETS_PER_DYNAMIC_TRAVEL_ASSET_SET", + "DYNAMIC_JOBS_ASSET_SETS_PER_CUSTOMER", + "ASSETS_PER_DYNAMIC_JOBS_ASSET_SET", + "BUSINESS_NAME_CAMPAIGN_ASSETS_PER_CAMPAIGN", + "BUSINESS_LOGO_CAMPAIGN_ASSETS_PER_CAMPAIGN", + "VERSIONS_PER_AD", + "USER_FEEDS_PER_CUSTOMER", + "SYSTEM_FEEDS_PER_CUSTOMER", + "FEED_ATTRIBUTES_PER_FEED", + "FEED_ITEMS_PER_CUSTOMER", + "CAMPAIGN_FEEDS_PER_CUSTOMER", + "BASE_CAMPAIGN_FEEDS_PER_CUSTOMER", + "EXPERIMENT_CAMPAIGN_FEEDS_PER_CUSTOMER", + "AD_GROUP_FEEDS_PER_CUSTOMER", + "BASE_AD_GROUP_FEEDS_PER_CUSTOMER", + "EXPERIMENT_AD_GROUP_FEEDS_PER_CUSTOMER", + "AD_GROUP_FEEDS_PER_CAMPAIGN", + "FEED_ITEM_SETS_PER_CUSTOMER", + "FEED_ITEMS_PER_FEED_ITEM_SET", + "CAMPAIGN_EXPERIMENTS_PER_CUSTOMER", + "EXPERIMENT_ARMS_PER_VIDEO_EXPERIMENT", + "OWNED_LABELS_PER_CUSTOMER", + "LABELS_PER_CAMPAIGN", + "LABELS_PER_AD_GROUP", + "LABELS_PER_AD_GROUP_AD", + "LABELS_PER_AD_GROUP_CRITERION", + "TARGET_CUSTOMERS_PER_LABEL", + "KEYWORD_PLANS_PER_USER_PER_CUSTOMER", + "KEYWORD_PLAN_AD_GROUP_KEYWORDS_PER_KEYWORD_PLAN", + "KEYWORD_PLAN_AD_GROUPS_PER_KEYWORD_PLAN", + "KEYWORD_PLAN_NEGATIVE_KEYWORDS_PER_KEYWORD_PLAN", + "KEYWORD_PLAN_CAMPAIGNS_PER_KEYWORD_PLAN", + "CONVERSION_ACTIONS_PER_CUSTOMER", + "BATCH_JOB_OPERATIONS_PER_JOB", + "BATCH_JOBS_PER_CUSTOMER", + "HOTEL_CHECK_IN_DATE_RANGE_BID_MODIFIERS_PER_AD_GROUP", + "SHARED_SETS_PER_ACCOUNT_FOR_ACCOUNT_LEVEL_NEGATIVE_KEYWORDS", + "ACCOUNT_LEVEL_NEGATIVE_KEYWORDS_PER_SHARED_SET", + "ENABLED_ASSET_PER_HOTEL_PROPERTY_ASSET_SET", + "ENABLED_HOTEL_PROPERTY_ASSET_LINKS_PER_ASSET_GROUP", + "BRANDS_PER_SHARED_SET", + "ENABLED_BRAND_LIST_CRITERIA_PER_CAMPAIGN", + "SHARED_SETS_PER_ACCOUNT_FOR_BRAND", + "LOOKALIKE_USER_LISTS_PER_CUSTOMER", + "LOGO_CAMPAIGN_ASSETS_PER_CAMPAIGN", + "BUSINESS_MESSAGE_ASSET_LINKS_PER_CUSTOMER", + "WHATSAPP_BUSINESS_MESSAGE_ASSET_LINKS_PER_CAMPAIGN", + "WHATSAPP_BUSINESS_MESSAGE_ASSET_LINKS_PER_AD_GROUP", + "BRAND_LIST_CRITERIA_PER_AD_GROUP" + ], + "enumDescriptions": [ + "No value has been specified.", + "Used for return value only. Represents an unclassified operation unknown in this version.", + "Number of ENABLED and PAUSED campaigns per customer.", + "Number of ENABLED and PAUSED base campaigns per customer.", + "Number of ENABLED and PAUSED experiment campaigns per customer.", + "Number of ENABLED and PAUSED Hotel campaigns per customer.", + "Number of ENABLED and PAUSED Smart Shopping campaigns per customer.", + "Number of ENABLED ad groups per campaign.", + "Number of ENABLED ad groups per Shopping campaign.", + "Number of ENABLED ad groups per Hotel campaign.", + "Number of ENABLED reporting ad groups per local campaign.", + "Number of ENABLED reporting ad groups per App campaign. It includes app campaign and app campaign for engagement.", + "Number of ENABLED managed ad groups per smart campaign.", + "Number of ENABLED ad group criteria per customer. An ad group criterion is considered as ENABLED if: 1. it's not REMOVED 2. its ad group is not REMOVED 3. its campaign is not REMOVED.", + "Number of ad group criteria across all base campaigns for a customer.", + "Number of ad group criteria across all experiment campaigns for a customer.", + "Number of ENABLED ad group criteria per campaign. An ad group criterion is considered as ENABLED if: 1. it's not REMOVED 2. its ad group is not REMOVED.", + "Number of ENABLED campaign criteria per customer.", + "Number of ENABLED campaign criteria across all base campaigns for a customer.", + "Number of ENABLED campaign criteria across all experiment campaigns for a customer.", + "Number of ENABLED webpage criteria per customer, including campaign level and ad group level.", + "Number of ENABLED webpage criteria across all base campaigns for a customer.", + "Meximum number of ENABLED webpage criteria across all experiment campaigns for a customer.", + "Number of combined audience criteria per ad group.", + "Limit for placement criterion type group in customer negative criterion.", + "Limit for YouTube TV channels in customer negative criterion.", + "Number of ENABLED criteria per ad group.", + "Number of listing group criteria per ad group.", + "Number of ENABLED explicitly shared budgets per customer.", + "Number of ENABLED implicitly shared budgets per customer.", + "Number of combined audience criteria per campaign.", + "Number of negative keywords per campaign.", + "Number of excluded campaign criteria in placement dimension, for example, placement, mobile application, YouTube channel, etc. The API criterion type is NOT limited to placement only, and this does not include exclusions at the ad group or other levels.", + "Number of geo targets per campaign.", + "Number of negative IP blocks per campaign.", + "Number of proximity targets per campaign.", + "Number of listing scopes per Shopping campaign.", + "Number of listing scopes per non-Shopping campaign.", + "Number of criteria per negative keyword shared set.", + "Number of criteria per negative placement shared set.", + "Default number of shared sets allowed per type per customer.", + "Number of shared sets of negative placement list type for a manager customer.", + "Number of hotel_advance_booking_window bid modifiers per ad group.", + "Number of ENABLED shared bidding strategies per customer.", + "Number of open basic user lists per customer.", + "Number of open logical user lists per customer.", + "Number of open rule based user lists per customer.", + "Number of ENABLED and PAUSED ad group ads across all base campaigns for a customer.", + "Number of ENABLED and PAUSED ad group ads across all experiment campaigns for a customer.", + "Number of ENABLED and PAUSED ad group ads per campaign.", + "Number of ENABLED ads per ad group that do not fall in to other buckets. Includes text and many other types.", + "Number of ENABLED image ads per ad group.", + "Number of ENABLED shopping smart ads per ad group.", + "Number of ENABLED responsive search ads per ad group.", + "Number of ENABLED app ads per ad group.", + "Number of ENABLED app engagement ads per ad group.", + "Number of ENABLED local ads per ad group.", + "Number of ENABLED video ads per ad group.", + "Number of ENABLED lead form CampaignAssets per campaign.", + "Number of ENABLED promotion CustomerAssets per customer.", + "Number of ENABLED promotion CampaignAssets per campaign.", + "Number of ENABLED promotion AdGroupAssets per ad group.", + "Number of ENABLED callout CustomerAssets per customer.", + "Number of ENABLED callout CampaignAssets per campaign.", + "Number of ENABLED callout AdGroupAssets per ad group.", + "Number of ENABLED sitelink CustomerAssets per customer.", + "Number of ENABLED sitelink CampaignAssets per campaign.", + "Number of ENABLED sitelink AdGroupAssets per ad group.", + "Number of ENABLED structured snippet CustomerAssets per customer.", + "Number of ENABLED structured snippet CampaignAssets per campaign.", + "Number of ENABLED structured snippet AdGroupAssets per ad group.", + "Number of ENABLED mobile app CustomerAssets per customer.", + "Number of ENABLED mobile app CampaignAssets per campaign.", + "Number of ENABLED mobile app AdGroupAssets per ad group.", + "Number of ENABLED hotel callout CustomerAssets per customer.", + "Number of ENABLED hotel callout CampaignAssets per campaign.", + "Number of ENABLED hotel callout AdGroupAssets per ad group.", + "Number of ENABLED call CustomerAssets per customer.", + "Number of ENABLED call CampaignAssets per campaign.", + "Number of ENABLED call AdGroupAssets per ad group.", + "Number of ENABLED price CustomerAssets per customer.", + "Number of ENABLED price CampaignAssets per campaign.", + "Number of ENABLED price AdGroupAssets per ad group.", + "Number of ENABLED ad image CampaignAssets per campaign.", + "Number of ENABLED ad image AdGroupAssets per ad group.", + "Number of ENABLED page feed asset sets per customer.", + "Number of ENABLED dynamic education feed asset sets per customer.", + "Number of ENABLED assets per page feed asset set.", + "Number of ENABLED assets per dynamic education asset set.", + "Number of ENABLED dynamic real estate asset sets per customer.", + "Number of ENABLED assets per dynamic real estate asset set.", + "Number of ENABLED dynamic custom asset sets per customer.", + "Number of ENABLED assets per dynamic custom asset set.", + "Number of ENABLED dynamic hotels and rentals asset sets per customer.", + "Number of ENABLED assets per dynamic hotels and rentals asset set.", + "Number of ENABLED dynamic local asset sets per customer.", + "Number of ENABLED assets per dynamic local asset set.", + "Number of ENABLED dynamic flights asset sets per customer.", + "Number of ENABLED assets per dynamic flights asset set.", + "Number of ENABLED dynamic travel asset sets per customer.", + "Number of ENABLED assets per dynamic travel asset set.", + "Number of ENABLED dynamic jobs asset sets per customer.", + "Number of ENABLED assets per dynamic jobs asset set.", + "Number of ENABLED business name CampaignAssets per campaign.", + "Number of ENABLED business logo CampaignAssets per campaign.", + "Number of versions per ad.", + "Number of ENABLED user feeds per customer.", + "Number of ENABLED system feeds per customer.", + "Number of feed attributes per feed.", + "Number of ENABLED feed items per customer.", + "Number of ENABLED campaign feeds per customer.", + "Number of ENABLED campaign feeds across all base campaigns for a customer.", + "Number of ENABLED campaign feeds across all experiment campaigns for a customer.", + "Number of ENABLED ad group feeds per customer.", + "Number of ENABLED ad group feeds across all base campaigns for a customer.", + "Number of ENABLED ad group feeds across all experiment campaigns for a customer.", + "Number of ENABLED ad group feeds per campaign.", + "Number of ENABLED feed items per customer.", + "Number of feed items per feed item set.", + "Number of ENABLED campaign experiments per customer.", + "Number of video experiment arms per experiment.", + "Number of owned labels per customer.", + "Number of applied labels per campaign.", + "Number of applied labels per ad group.", + "Number of applied labels per ad group ad.", + "Number of applied labels per ad group criterion.", + "Number of customers with a single label applied.", + "Number of ENABLED keyword plans per user per customer. The limit is applied per pair because by default a plan is private to a user of a customer. Each user of a customer has their own independent limit.", + "Number of keyword plan ad group keywords per keyword plan.", + "Number of keyword plan ad groups per keyword plan.", + "Number of keyword plan negative keywords (both campaign and ad group) per keyword plan.", + "Number of keyword plan campaigns per keyword plan.", + "Number of ENABLED conversion actions per customer.", + "Number of operations in a single batch job.", + "Number of PENDING or ENABLED batch jobs per customer.", + "Number of hotel check-in date range bid modifiers per ad agroup.", + "Number of shared sets of type ACCOUNT_LEVEL_NEGATIVE_KEYWORDS per account.", + "Number of keywords per ACCOUNT_LEVEL_NEGATIVE_KEYWORDS shared set.", + "Maximum number of asset per hotel property asset set.", + "Maximum number of enabled hotel property assets per asset group.", + "Number of criteria per brand shared set.", + "Number of active brand list criteria per campaign.", + "Maximum number of shared sets of brand type for an account.", + "Maximum number of lookalike lists per customer.", + "Total number of enabled IMAGE CampaignAssets with LOGO and LANDSCAPE_LOGO field types per campaign.", + "Maximum number of active business message asset links at customer level.", + "Maximum number of active WhatsApp business message asset links at campaign level.", + "Maximum number of active WhatsApp business message asset links at ad group level.", + "Number of ENABLED brand list criteria per ad group." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V23Errors__SearchAds360Error": { + "description": "Search Ads 360-specific error.", + "id": "GoogleAdsSearchads360V23Errors__SearchAds360Error", + "properties": { + "details": { + "$ref": "GoogleAdsSearchads360V23Errors__ErrorDetails", + "description": "Additional error details, which are returned by certain error codes. Most error codes do not include details." + }, + "errorCode": { + "$ref": "GoogleAdsSearchads360V23Errors__ErrorCode", + "description": "An enum value that indicates which error occurred." + }, + "location": { + "$ref": "GoogleAdsSearchads360V23Errors__ErrorLocation", + "description": "Describes the part of the request proto that caused the error." + }, + "message": { + "description": "A human-readable description of the error.", + "type": "string" + }, + "trigger": { + "$ref": "GoogleAdsSearchads360V23Common__Value", + "description": "The value that triggered the error." + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V23Errors__SearchAds360Failure": { + "description": "Describes how a Search Ads 360 API call failed. It's returned inside google.rpc.Status.details when a call fails.", + "id": "GoogleAdsSearchads360V23Errors__SearchAds360Failure", + "properties": { + "errors": { + "description": "The list of errors that occurred.", + "items": { + "$ref": "GoogleAdsSearchads360V23Errors__SearchAds360Error" + }, + "type": "array" + }, + "requestId": { + "description": "The unique ID of the request that is used for debugging purposes.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V23Resources_BatchJob_BatchJobMetadata": { + "description": "Additional information about the batch job. This message is also used as metadata returned in batch job Long Running Operations.", + "id": "GoogleAdsSearchads360V23Resources_BatchJob_BatchJobMetadata", + "properties": { + "completionDateTime": { + "description": "Output only. The time when this batch job was completed. Formatted as yyyy-MM-dd HH:mm:ss. Example: \"2018-03-05 09:16:00\"", + "readOnly": true, + "type": "string" + }, + "creationDateTime": { + "description": "Output only. The time when this batch job was created. Formatted as yyyy-mm-dd hh:mm:ss. Example: \"2018-03-05 09:15:00\"", + "readOnly": true, + "type": "string" + }, + "estimatedCompletionRatio": { + "description": "Output only. The fraction (between 0.0 and 1.0) of mutates that have been processed. This is empty if the job hasn't started running yet.", + "format": "double", + "readOnly": true, + "type": "number" + }, + "executedOperationCount": { + "description": "Output only. The number of mutate operations executed by the batch job. Present only if the job has started running.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "executionLimitSeconds": { + "description": "Immutable. The approximate upper bound for how long a batch job can be executed, in seconds. If the job runs more than the given upper bound, the job will be canceled.", + "format": "int32", + "type": "integer" + }, + "operationCount": { + "description": "Output only. The number of mutate operations in the batch job.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "startDateTime": { + "description": "Output only. The time when this batch job started running. Formatted as yyyy-mm-dd hh:mm:ss. Example: \"2018-03-05 09:15:30\"", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V23Resources__OfflineUserDataJobMetadata": { + "description": "Metadata of offline user data job.", + "id": "GoogleAdsSearchads360V23Resources__OfflineUserDataJobMetadata", + "properties": { + "matchRateRange": { + "description": "Output only. Match rate of the Customer Match user list upload. Describes the estimated match rate when the status of the job is \"RUNNING\" and final match rate when the final match rate is available after the status of the job is \"SUCCESS/FAILED\".", + "enum": [ + "UNSPECIFIED", + "UNKNOWN", + "MATCH_RANGE_LESS_THAN_20", + "MATCH_RANGE_20_TO_30", + "MATCH_RANGE_31_TO_40", + "MATCH_RANGE_41_TO_50", + "MATCH_RANGE_51_TO_60", + "MATCH_RANGE_61_TO_70", + "MATCH_RANGE_71_TO_80", + "MATCH_RANGE_81_TO_90", + "MATCH_RANGE_91_TO_100" + ], + "enumDescriptions": [ + "Not specified.", + "Default value for match rate range.", + "Match rate range for offline data upload entity is between 0% and 19%.", + "Match rate range for offline data upload entity is between 20% and 30%.", + "Match rate range for offline data upload entity is between 31% and 40%.", + "Match rate range for offline data upload entity is between 41% and 50%.", + "Match rate range for offline data upload entity is between 51% and 60%.", + "Match rate range for offline data upload entity is between 61% and 70%.", + "Match rate range for offline data upload entity is between 71% and 80%.", + "Match rate range for offline data upload entity is between 81% and 90%.", + "Match rate range for offline data upload entity is more than or equal to 91%." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V23Services__PromoteExperimentMetadata": { + "description": "The metadata of the promoted experiment.", + "id": "GoogleAdsSearchads360V23Services__PromoteExperimentMetadata", + "properties": { + "experiment": { + "description": "Required. The promoted experiment.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAdsSearchads360V23Services__ScheduleExperimentMetadata": { + "description": "The metadata of the scheduled experiment.", + "id": "GoogleAdsSearchads360V23Services__ScheduleExperimentMetadata", + "properties": { + "experiment": { + "description": "Required. The scheduled experiment.", + "type": "string" + } + }, + "type": "object" } }, "servicePath": "", diff --git a/Src/Generated/Google.Apis.SA360.v0/Google.Apis.SA360.v0.cs b/Src/Generated/Google.Apis.SA360.v0/Google.Apis.SA360.v0.cs index 7c4ca269bc8..26e26b70f50 100644 --- a/Src/Generated/Google.Apis.SA360.v0/Google.Apis.SA360.v0.cs +++ b/Src/Generated/Google.Apis.SA360.v0/Google.Apis.SA360.v0.cs @@ -405,7 +405,8 @@ public SearchAds360Resource(Google.Apis.Services.IClientService service) /// /// Returns all rows that match the search query. List of thrown errors: [AuthenticationError]() - /// [AuthorizationError]() [HeaderError]() [InternalError]() [QueryError]() [QuotaError]() [RequestError]() + /// [AuthorizationError]() [ChangeEventError]() [ChangeStatusError]() [ClickViewError]() [HeaderError]() + /// [InternalError]() [QueryError]() [QuotaError]() [RequestError]() /// /// The body of the request. /// Required. The ID of the customer being queried. @@ -416,7 +417,8 @@ public virtual SearchRequest Search(Google.Apis.SA360.v0.Data.GoogleAdsSearchads /// /// Returns all rows that match the search query. List of thrown errors: [AuthenticationError]() - /// [AuthorizationError]() [HeaderError]() [InternalError]() [QueryError]() [QuotaError]() [RequestError]() + /// [AuthorizationError]() [ChangeEventError]() [ChangeStatusError]() [ClickViewError]() [HeaderError]() + /// [InternalError]() [QueryError]() [QuotaError]() [RequestError]() /// public class SearchRequest : SA360BaseServiceRequest { @@ -7224,4 +7226,1290 @@ public class GoogleAdsSearchads360V0ServicesSearchSearchAds360Response : Google. /// The ETag of the item. public virtual string ETag { get; set; } } + + /// Describes the effect on serving that a policy topic entry will have. + public class GoogleAdsSearchads360V23CommonPolicyTopicConstraint : Google.Apis.Requests.IDirectResponseSchema + { + /// + /// Countries where the resource's domain is not covered by the certificates associated with it. + /// + [Newtonsoft.Json.JsonPropertyAttribute("certificateDomainMismatchInCountryList")] + public virtual GoogleAdsSearchads360V23CommonPolicyTopicConstraintCountryConstraintList CertificateDomainMismatchInCountryList { get; set; } + + /// Countries where a certificate is required for serving. + [Newtonsoft.Json.JsonPropertyAttribute("certificateMissingInCountryList")] + public virtual GoogleAdsSearchads360V23CommonPolicyTopicConstraintCountryConstraintList CertificateMissingInCountryList { get; set; } + + /// Countries where the resource cannot serve. + [Newtonsoft.Json.JsonPropertyAttribute("countryConstraintList")] + public virtual GoogleAdsSearchads360V23CommonPolicyTopicConstraintCountryConstraintList CountryConstraintList { get; set; } + + /// Reseller constraint. + [Newtonsoft.Json.JsonPropertyAttribute("resellerConstraint")] + public virtual GoogleAdsSearchads360V23CommonPolicyTopicConstraintResellerConstraint ResellerConstraint { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// Indicates that a resource's ability to serve in a particular country is constrained. + public class GoogleAdsSearchads360V23CommonPolicyTopicConstraintCountryConstraint : Google.Apis.Requests.IDirectResponseSchema + { + /// Geo target constant resource name of the country in which serving is constrained. + [Newtonsoft.Json.JsonPropertyAttribute("countryCriterion")] + public virtual string CountryCriterion { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// A list of countries where a resource's serving is constrained. + public class GoogleAdsSearchads360V23CommonPolicyTopicConstraintCountryConstraintList : Google.Apis.Requests.IDirectResponseSchema + { + /// Countries in which serving is restricted. + [Newtonsoft.Json.JsonPropertyAttribute("countries")] + public virtual System.Collections.Generic.IList Countries { get; set; } + + /// Total number of countries targeted by the resource. + [Newtonsoft.Json.JsonPropertyAttribute("totalTargetedCountries")] + public virtual System.Nullable TotalTargetedCountries { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// + /// Indicates that a policy topic was constrained due to disapproval of the website for reseller purposes. + /// + public class GoogleAdsSearchads360V23CommonPolicyTopicConstraintResellerConstraint : Google.Apis.Requests.IDirectResponseSchema + { + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// + /// Policy finding attached to a resource (for example, alcohol policy associated with a site that sells alcohol). + /// Each PolicyTopicEntry has a topic that indicates the specific ads policy the entry is about and a type to + /// indicate the effect that the entry will have on serving. It may optionally have one or more evidences that + /// indicate the reason for the finding. It may also optionally have one or more constraints that provide details + /// about how serving may be restricted. + /// + public class GoogleAdsSearchads360V23CommonPolicyTopicEntry : Google.Apis.Requests.IDirectResponseSchema + { + /// + /// Indicates how serving of this resource may be affected (for example, not serving in a country). + /// + [Newtonsoft.Json.JsonPropertyAttribute("constraints")] + public virtual System.Collections.Generic.IList Constraints { get; set; } + + /// + /// Additional information that explains policy finding (for example, the brand name for a trademark finding). + /// + [Newtonsoft.Json.JsonPropertyAttribute("evidences")] + public virtual System.Collections.Generic.IList Evidences { get; set; } + + /// + /// Policy topic this finding refers to. For example, "ALCOHOL", "TRADEMARKS_IN_AD_TEXT", or + /// "DESTINATION_NOT_WORKING". The set of possible policy topics is not fixed for a particular API version and + /// may change at any time. + /// + [Newtonsoft.Json.JsonPropertyAttribute("topic")] + public virtual string Topic { get; set; } + + /// Describes the negative or positive effect this policy will have on serving. + [Newtonsoft.Json.JsonPropertyAttribute("type")] + public virtual string Type { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// Additional information that explains a policy finding. + public class GoogleAdsSearchads360V23CommonPolicyTopicEvidence : Google.Apis.Requests.IDirectResponseSchema + { + /// Mismatch between the destinations of a resource's URLs. + [Newtonsoft.Json.JsonPropertyAttribute("destinationMismatch")] + public virtual GoogleAdsSearchads360V23CommonPolicyTopicEvidenceDestinationMismatch DestinationMismatch { get; set; } + + /// + /// Details when the destination is returning an HTTP error code or isn't functional in all locations for + /// commonly used devices. + /// + [Newtonsoft.Json.JsonPropertyAttribute("destinationNotWorking")] + public virtual GoogleAdsSearchads360V23CommonPolicyTopicEvidenceDestinationNotWorking DestinationNotWorking { get; set; } + + /// The text in the destination of the resource that is causing a policy finding. + [Newtonsoft.Json.JsonPropertyAttribute("destinationTextList")] + public virtual GoogleAdsSearchads360V23CommonPolicyTopicEvidenceDestinationTextList DestinationTextList { get; set; } + + /// + /// The language the resource was detected to be written in. This is an IETF language tag such as "en-US". + /// + [Newtonsoft.Json.JsonPropertyAttribute("languageCode")] + public virtual string LanguageCode { get; set; } + + /// List of evidence found in the text of a resource. + [Newtonsoft.Json.JsonPropertyAttribute("textList")] + public virtual GoogleAdsSearchads360V23CommonPolicyTopicEvidenceTextList TextList { get; set; } + + /// List of websites linked with this resource. + [Newtonsoft.Json.JsonPropertyAttribute("websiteList")] + public virtual GoogleAdsSearchads360V23CommonPolicyTopicEvidenceWebsiteList WebsiteList { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// Evidence of mismatches between the URLs of a resource. + public class GoogleAdsSearchads360V23CommonPolicyTopicEvidenceDestinationMismatch : Google.Apis.Requests.IDirectResponseSchema + { + /// The set of URLs that did not match each other. + [Newtonsoft.Json.JsonPropertyAttribute("urlTypes")] + public virtual System.Collections.Generic.IList UrlTypes { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// + /// Evidence details when the destination is returning an HTTP error code or isn't functional in all locations for + /// commonly used devices. + /// + public class GoogleAdsSearchads360V23CommonPolicyTopicEvidenceDestinationNotWorking : Google.Apis.Requests.IDirectResponseSchema + { + /// The type of device that failed to load the URL. + [Newtonsoft.Json.JsonPropertyAttribute("device")] + public virtual string Device { get; set; } + + /// The type of DNS error. + [Newtonsoft.Json.JsonPropertyAttribute("dnsErrorType")] + public virtual string DnsErrorType { get; set; } + + /// The full URL that didn't work. + [Newtonsoft.Json.JsonPropertyAttribute("expandedUrl")] + public virtual string ExpandedUrl { get; set; } + + /// The HTTP error code. + [Newtonsoft.Json.JsonPropertyAttribute("httpErrorCode")] + public virtual System.Nullable HttpErrorCode { get; set; } + + /// + /// The time the URL was last checked. The format is "YYYY-MM-DD HH:MM:SS". Examples: "2018-03-05 09:15:00" or + /// "2018-02-01 14:34:30" + /// + [Newtonsoft.Json.JsonPropertyAttribute("lastCheckedDateTime")] + public virtual string LastCheckedDateTime { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// A list of strings found in a destination page that caused a policy finding. + public class GoogleAdsSearchads360V23CommonPolicyTopicEvidenceDestinationTextList : Google.Apis.Requests.IDirectResponseSchema + { + /// List of text found in the resource's destination page. + [Newtonsoft.Json.JsonPropertyAttribute("destinationTexts")] + public virtual System.Collections.Generic.IList DestinationTexts { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// A list of fragments of text that violated a policy. + public class GoogleAdsSearchads360V23CommonPolicyTopicEvidenceTextList : Google.Apis.Requests.IDirectResponseSchema + { + /// The fragments of text from the resource that caused the policy finding. + [Newtonsoft.Json.JsonPropertyAttribute("texts")] + public virtual System.Collections.Generic.IList Texts { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// + /// A list of websites that caused a policy finding. Used for ONE_WEBSITE_PER_AD_GROUP policy topic, for example. In + /// case there are more than five websites, only the top five (those that appear in resources the most) will be + /// listed here. + /// + public class GoogleAdsSearchads360V23CommonPolicyTopicEvidenceWebsiteList : Google.Apis.Requests.IDirectResponseSchema + { + /// Websites that caused the policy finding. + [Newtonsoft.Json.JsonPropertyAttribute("websites")] + public virtual System.Collections.Generic.IList Websites { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// + /// Key of the violation. The key is used for referring to a violation when filing an exemption request. + /// + public class GoogleAdsSearchads360V23CommonPolicyViolationKey : Google.Apis.Requests.IDirectResponseSchema + { + /// Unique ID of the violated policy. + [Newtonsoft.Json.JsonPropertyAttribute("policyName")] + public virtual string PolicyName { get; set; } + + /// + /// The text that violates the policy if specified. Otherwise, refers to the policy in general (for example, + /// when requesting to be exempt from the whole policy). If not specified for criterion exemptions, the whole + /// policy is implied. Must be specified for ad exemptions. + /// + [Newtonsoft.Json.JsonPropertyAttribute("violatingText")] + public virtual string ViolatingText { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// A generic data container. + public class GoogleAdsSearchads360V23CommonValue : Google.Apis.Requests.IDirectResponseSchema + { + /// A boolean. + [Newtonsoft.Json.JsonPropertyAttribute("booleanValue")] + public virtual System.Nullable BooleanValue { get; set; } + + /// A double. + [Newtonsoft.Json.JsonPropertyAttribute("doubleValue")] + public virtual System.Nullable DoubleValue { get; set; } + + /// A float. + [Newtonsoft.Json.JsonPropertyAttribute("floatValue")] + public virtual System.Nullable FloatValue { get; set; } + + /// An int64. + [Newtonsoft.Json.JsonPropertyAttribute("int64Value")] + public virtual System.Nullable Int64Value { get; set; } + + /// A string. + [Newtonsoft.Json.JsonPropertyAttribute("stringValue")] + public virtual string StringValue { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// Error details for a budget below per-day minimum error. + public class GoogleAdsSearchads360V23ErrorsBudgetPerDayMinimumErrorDetails : Google.Apis.Requests.IDirectResponseSchema + { + /// + /// The minimum budget required by the campaign per day, in micros of the advertiser currency. Applies to both + /// daily and custom budgets. + /// + [Newtonsoft.Json.JsonPropertyAttribute("budgetPerDayMinimumMicros")] + public virtual System.Nullable BudgetPerDayMinimumMicros { get; set; } + + /// + /// The advertiser's currency, represented as a three-letter ISO 4217 currency code (such as "USD"). + /// + [Newtonsoft.Json.JsonPropertyAttribute("currencyCode")] + public virtual string CurrencyCode { get; set; } + + /// + /// The budget amount value that was rejected as too low, in micros of the advertiser currency. Only set if this + /// error is caused by the amount field value. + /// + [Newtonsoft.Json.JsonPropertyAttribute("failedBudgetAmountMicros")] + public virtual System.Nullable FailedBudgetAmountMicros { get; set; } + + /// + /// The budget total_amount value that was rejected as too low, in micros of the advertiser currency. Only set + /// if this error is caused by the total_amount field value. + /// + [Newtonsoft.Json.JsonPropertyAttribute("failedBudgetTotalAmountMicros")] + public virtual System.Nullable FailedBudgetTotalAmountMicros { get; set; } + + /// + /// The minimum value for the budget's amount field required by the campaign, in micros of the advertiser + /// currency. Only set if this error is caused by the amount field value. + /// + [Newtonsoft.Json.JsonPropertyAttribute("minimumBudgetAmountMicros")] + public virtual System.Nullable MinimumBudgetAmountMicros { get; set; } + + /// + /// The minimum value for the budget's total_amount field required by the campaign given its configured start + /// and end time, in micros of the advertiser currency. Only set if this error is caused by the total_amount + /// field value. + /// + [Newtonsoft.Json.JsonPropertyAttribute("minimumBudgetTotalAmountMicros")] + public virtual System.Nullable MinimumBudgetTotalAmountMicros { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// The error reason represented by type and enum. + public class GoogleAdsSearchads360V23ErrorsErrorCode : Google.Apis.Requests.IDirectResponseSchema + { + /// The reasons for the access invitation error + [Newtonsoft.Json.JsonPropertyAttribute("accessInvitationError")] + public virtual string AccessInvitationError { get; set; } + + /// The reasons for account budget proposal errors. + [Newtonsoft.Json.JsonPropertyAttribute("accountBudgetProposalError")] + public virtual string AccountBudgetProposalError { get; set; } + + /// The reasons for the account link status change error + [Newtonsoft.Json.JsonPropertyAttribute("accountLinkError")] + public virtual string AccountLinkError { get; set; } + + /// The reasons for the ad customizer error + [Newtonsoft.Json.JsonPropertyAttribute("adCustomizerError")] + public virtual string AdCustomizerError { get; set; } + + /// An error with an Ad Group Ad mutate. + [Newtonsoft.Json.JsonPropertyAttribute("adError")] + public virtual string AdError { get; set; } + + /// The reasons for the ad group ad error + [Newtonsoft.Json.JsonPropertyAttribute("adGroupAdError")] + public virtual string AdGroupAdError { get; set; } + + /// The reasons for the ad group bid modifier error + [Newtonsoft.Json.JsonPropertyAttribute("adGroupBidModifierError")] + public virtual string AdGroupBidModifierError { get; set; } + + /// The reasons for the ad group criterion customizer error. + [Newtonsoft.Json.JsonPropertyAttribute("adGroupCriterionCustomizerError")] + public virtual string AdGroupCriterionCustomizerError { get; set; } + + /// Indicates failure to properly authenticate user. + [Newtonsoft.Json.JsonPropertyAttribute("adGroupCriterionError")] + public virtual string AdGroupCriterionError { get; set; } + + /// The reasons for the ad group customizer error. + [Newtonsoft.Json.JsonPropertyAttribute("adGroupCustomizerError")] + public virtual string AdGroupCustomizerError { get; set; } + + /// An error with an Ad Group mutate. + [Newtonsoft.Json.JsonPropertyAttribute("adGroupError")] + public virtual string AdGroupError { get; set; } + + /// The reasons for the ad group feed error + [Newtonsoft.Json.JsonPropertyAttribute("adGroupFeedError")] + public virtual string AdGroupFeedError { get; set; } + + /// The reasons for the ad parameter error + [Newtonsoft.Json.JsonPropertyAttribute("adParameterError")] + public virtual string AdParameterError { get; set; } + + /// The reasons for the ad sharing error + [Newtonsoft.Json.JsonPropertyAttribute("adSharingError")] + public virtual string AdSharingError { get; set; } + + /// The reasons for the adx error + [Newtonsoft.Json.JsonPropertyAttribute("adxError")] + public virtual string AdxError { get; set; } + + /// The reasons for the asset error + [Newtonsoft.Json.JsonPropertyAttribute("assetError")] + public virtual string AssetError { get; set; } + + /// The reasons for the GenAI asset generation error. + [Newtonsoft.Json.JsonPropertyAttribute("assetGenerationError")] + public virtual string AssetGenerationError { get; set; } + + /// The reasons for the asset group asset error + [Newtonsoft.Json.JsonPropertyAttribute("assetGroupAssetError")] + public virtual string AssetGroupAssetError { get; set; } + + /// The reasons for the asset group error + [Newtonsoft.Json.JsonPropertyAttribute("assetGroupError")] + public virtual string AssetGroupError { get; set; } + + /// The reasons for the asset group listing group filter error + [Newtonsoft.Json.JsonPropertyAttribute("assetGroupListingGroupFilterError")] + public virtual string AssetGroupListingGroupFilterError { get; set; } + + /// The reasons for the asset group hint error + [Newtonsoft.Json.JsonPropertyAttribute("assetGroupSignalError")] + public virtual string AssetGroupSignalError { get; set; } + + /// The reasons for the asset link error + [Newtonsoft.Json.JsonPropertyAttribute("assetLinkError")] + public virtual string AssetLinkError { get; set; } + + /// The reasons for the asset set asset error + [Newtonsoft.Json.JsonPropertyAttribute("assetSetAssetError")] + public virtual string AssetSetAssetError { get; set; } + + /// The reasons for the asset set error + [Newtonsoft.Json.JsonPropertyAttribute("assetSetError")] + public virtual string AssetSetError { get; set; } + + /// The reasons for the asset set link error + [Newtonsoft.Json.JsonPropertyAttribute("assetSetLinkError")] + public virtual string AssetSetLinkError { get; set; } + + /// The reasons for the audience error + [Newtonsoft.Json.JsonPropertyAttribute("audienceError")] + public virtual string AudienceError { get; set; } + + /// The reasons for the Audience Insights error + [Newtonsoft.Json.JsonPropertyAttribute("audienceInsightsError")] + public virtual string AudienceInsightsError { get; set; } + + /// Indicates failure to properly authenticate user. + [Newtonsoft.Json.JsonPropertyAttribute("authenticationError")] + public virtual string AuthenticationError { get; set; } + + /// An error encountered when trying to authorize a user. + [Newtonsoft.Json.JsonPropertyAttribute("authorizationError")] + public virtual string AuthorizationError { get; set; } + + /// The reasons for error in automatically created asset removal action. + [Newtonsoft.Json.JsonPropertyAttribute("automaticallyCreatedAssetRemovalError")] + public virtual string AutomaticallyCreatedAssetRemovalError { get; set; } + + /// The reasons for the batch job error + [Newtonsoft.Json.JsonPropertyAttribute("batchJobError")] + public virtual string BatchJobError { get; set; } + + /// The reasons for the Benchmarks error. + [Newtonsoft.Json.JsonPropertyAttribute("benchmarksError")] + public virtual string BenchmarksError { get; set; } + + /// The reasons for the bidding errors + [Newtonsoft.Json.JsonPropertyAttribute("biddingError")] + public virtual string BiddingError { get; set; } + + /// An error with a Bidding Strategy mutate. + [Newtonsoft.Json.JsonPropertyAttribute("biddingStrategyError")] + public virtual string BiddingStrategyError { get; set; } + + /// The reasons for the billing setup error + [Newtonsoft.Json.JsonPropertyAttribute("billingSetupError")] + public virtual string BillingSetupError { get; set; } + + /// The reasons for the brand guidelines migration error. + [Newtonsoft.Json.JsonPropertyAttribute("brandGuidelinesMigrationError")] + public virtual string BrandGuidelinesMigrationError { get; set; } + + /// An error with a Campaign Budget mutate. + [Newtonsoft.Json.JsonPropertyAttribute("campaignBudgetError")] + public virtual string CampaignBudgetError { get; set; } + + /// The reasons for the campaign conversion goal error + [Newtonsoft.Json.JsonPropertyAttribute("campaignConversionGoalError")] + public virtual string CampaignConversionGoalError { get; set; } + + /// The reasons for the campaign criterion error + [Newtonsoft.Json.JsonPropertyAttribute("campaignCriterionError")] + public virtual string CampaignCriterionError { get; set; } + + /// The reasons for the campaign customizer error. + [Newtonsoft.Json.JsonPropertyAttribute("campaignCustomizerError")] + public virtual string CampaignCustomizerError { get; set; } + + /// The reasons for the campaign draft error + [Newtonsoft.Json.JsonPropertyAttribute("campaignDraftError")] + public virtual string CampaignDraftError { get; set; } + + /// An error with a Campaign mutate. + [Newtonsoft.Json.JsonPropertyAttribute("campaignError")] + public virtual string CampaignError { get; set; } + + /// The reasons for the campaign experiment error + [Newtonsoft.Json.JsonPropertyAttribute("campaignExperimentError")] + public virtual string CampaignExperimentError { get; set; } + + /// The reasons for the campaign feed error + [Newtonsoft.Json.JsonPropertyAttribute("campaignFeedError")] + public virtual string CampaignFeedError { get; set; } + + /// The reasons for the campaign goal config error. + [Newtonsoft.Json.JsonPropertyAttribute("campaignGoalConfigError")] + public virtual string CampaignGoalConfigError { get; set; } + + /// The reasons for the campaign lifecycle goal error + [Newtonsoft.Json.JsonPropertyAttribute("campaignLifecycleGoalError")] + public virtual string CampaignLifecycleGoalError { get; set; } + + /// The reasons for the campaign shared set error + [Newtonsoft.Json.JsonPropertyAttribute("campaignSharedSetError")] + public virtual string CampaignSharedSetError { get; set; } + + /// The reasons for the change event error + [Newtonsoft.Json.JsonPropertyAttribute("changeEventError")] + public virtual string ChangeEventError { get; set; } + + /// The reasons for the change status error + [Newtonsoft.Json.JsonPropertyAttribute("changeStatusError")] + public virtual string ChangeStatusError { get; set; } + + /// The reasons for the click view error + [Newtonsoft.Json.JsonPropertyAttribute("clickViewError")] + public virtual string ClickViewError { get; set; } + + /// The reasons for the collection size error + [Newtonsoft.Json.JsonPropertyAttribute("collectionSizeError")] + public virtual string CollectionSizeError { get; set; } + + /// The reasons for the context error + [Newtonsoft.Json.JsonPropertyAttribute("contextError")] + public virtual string ContextError { get; set; } + + /// The reasons for the conversion action error + [Newtonsoft.Json.JsonPropertyAttribute("conversionActionError")] + public virtual string ConversionActionError { get; set; } + + /// The reasons for the conversion adjustment upload error + [Newtonsoft.Json.JsonPropertyAttribute("conversionAdjustmentUploadError")] + public virtual string ConversionAdjustmentUploadError { get; set; } + + /// The reasons for the conversion custom variable error + [Newtonsoft.Json.JsonPropertyAttribute("conversionCustomVariableError")] + public virtual string ConversionCustomVariableError { get; set; } + + /// The reasons for the conversion goal campaign config error + [Newtonsoft.Json.JsonPropertyAttribute("conversionGoalCampaignConfigError")] + public virtual string ConversionGoalCampaignConfigError { get; set; } + + /// The reasons for the conversion upload error + [Newtonsoft.Json.JsonPropertyAttribute("conversionUploadError")] + public virtual string ConversionUploadError { get; set; } + + /// The reasons for the conversion value rule error + [Newtonsoft.Json.JsonPropertyAttribute("conversionValueRuleError")] + public virtual string ConversionValueRuleError { get; set; } + + /// The reasons for the conversion value rule set error + [Newtonsoft.Json.JsonPropertyAttribute("conversionValueRuleSetError")] + public virtual string ConversionValueRuleSetError { get; set; } + + /// The reasons for the country code error + [Newtonsoft.Json.JsonPropertyAttribute("countryCodeError")] + public virtual string CountryCodeError { get; set; } + + /// The reasons for the criterion error + [Newtonsoft.Json.JsonPropertyAttribute("criterionError")] + public virtual string CriterionError { get; set; } + + /// The reasons for the currency code error + [Newtonsoft.Json.JsonPropertyAttribute("currencyCodeError")] + public virtual string CurrencyCodeError { get; set; } + + /// The reasons for the currency errors. + [Newtonsoft.Json.JsonPropertyAttribute("currencyError")] + public virtual string CurrencyError { get; set; } + + /// The reasons for the custom audience error + [Newtonsoft.Json.JsonPropertyAttribute("customAudienceError")] + public virtual string CustomAudienceError { get; set; } + + /// The reasons for the custom column error + [Newtonsoft.Json.JsonPropertyAttribute("customColumnError")] + public virtual string CustomColumnError { get; set; } + + /// The reasons for the custom conversion goal error + [Newtonsoft.Json.JsonPropertyAttribute("customConversionGoalError")] + public virtual string CustomConversionGoalError { get; set; } + + /// The reasons for the custom interest error + [Newtonsoft.Json.JsonPropertyAttribute("customInterestError")] + public virtual string CustomInterestError { get; set; } + + /// The reasons for the customer client link error + [Newtonsoft.Json.JsonPropertyAttribute("customerClientLinkError")] + public virtual string CustomerClientLinkError { get; set; } + + /// The reasons for the customer customizer error. + [Newtonsoft.Json.JsonPropertyAttribute("customerCustomizerError")] + public virtual string CustomerCustomizerError { get; set; } + + /// The reasons for the customer error + [Newtonsoft.Json.JsonPropertyAttribute("customerError")] + public virtual string CustomerError { get; set; } + + /// The reasons for the customer feed error + [Newtonsoft.Json.JsonPropertyAttribute("customerFeedError")] + public virtual string CustomerFeedError { get; set; } + + /// The reasons for the customer lifecycle goal error + [Newtonsoft.Json.JsonPropertyAttribute("customerLifecycleGoalError")] + public virtual string CustomerLifecycleGoalError { get; set; } + + /// The reasons for the customer manager link error + [Newtonsoft.Json.JsonPropertyAttribute("customerManagerLinkError")] + public virtual string CustomerManagerLinkError { get; set; } + + /// The reasons for the customer SK Ad network conversion value schema error + [Newtonsoft.Json.JsonPropertyAttribute("customerSkAdNetworkConversionValueSchemaError")] + public virtual string CustomerSkAdNetworkConversionValueSchemaError { get; set; } + + /// The reasons for the customer user access mutate error + [Newtonsoft.Json.JsonPropertyAttribute("customerUserAccessError")] + public virtual string CustomerUserAccessError { get; set; } + + /// The reasons for the customizer attribute error. + [Newtonsoft.Json.JsonPropertyAttribute("customizerAttributeError")] + public virtual string CustomizerAttributeError { get; set; } + + /// The reasons for the data link error + [Newtonsoft.Json.JsonPropertyAttribute("dataLinkError")] + public virtual string DataLinkError { get; set; } + + /// The reasons for the database error. + [Newtonsoft.Json.JsonPropertyAttribute("databaseError")] + public virtual string DatabaseError { get; set; } + + /// The reasons for the date error + [Newtonsoft.Json.JsonPropertyAttribute("dateError")] + public virtual string DateError { get; set; } + + /// The reasons for the date range error + [Newtonsoft.Json.JsonPropertyAttribute("dateRangeError")] + public virtual string DateRangeError { get; set; } + + /// The reasons for the distinct error + [Newtonsoft.Json.JsonPropertyAttribute("distinctError")] + public virtual string DistinctError { get; set; } + + /// The reason for enum error. + [Newtonsoft.Json.JsonPropertyAttribute("enumError")] + public virtual string EnumError { get; set; } + + /// The reasons for the experiment arm error + [Newtonsoft.Json.JsonPropertyAttribute("experimentArmError")] + public virtual string ExperimentArmError { get; set; } + + /// The reasons for the experiment error + [Newtonsoft.Json.JsonPropertyAttribute("experimentError")] + public virtual string ExperimentError { get; set; } + + /// The reasons for the extension feed item error + [Newtonsoft.Json.JsonPropertyAttribute("extensionFeedItemError")] + public virtual string ExtensionFeedItemError { get; set; } + + /// The reasons for the extension setting error + [Newtonsoft.Json.JsonPropertyAttribute("extensionSettingError")] + public virtual string ExtensionSettingError { get; set; } + + /// The reasons for the feed attribute reference error + [Newtonsoft.Json.JsonPropertyAttribute("feedAttributeReferenceError")] + public virtual string FeedAttributeReferenceError { get; set; } + + /// The reasons for the feed error + [Newtonsoft.Json.JsonPropertyAttribute("feedError")] + public virtual string FeedError { get; set; } + + /// The reasons for the feed item error + [Newtonsoft.Json.JsonPropertyAttribute("feedItemError")] + public virtual string FeedItemError { get; set; } + + /// The reasons for the feed item set error + [Newtonsoft.Json.JsonPropertyAttribute("feedItemSetError")] + public virtual string FeedItemSetError { get; set; } + + /// The reasons for the feed item set link error + [Newtonsoft.Json.JsonPropertyAttribute("feedItemSetLinkError")] + public virtual string FeedItemSetLinkError { get; set; } + + /// The reasons for the feed item target error + [Newtonsoft.Json.JsonPropertyAttribute("feedItemTargetError")] + public virtual string FeedItemTargetError { get; set; } + + /// The reasons for the feed item validation error + [Newtonsoft.Json.JsonPropertyAttribute("feedItemValidationError")] + public virtual string FeedItemValidationError { get; set; } + + /// The reasons for the feed mapping error + [Newtonsoft.Json.JsonPropertyAttribute("feedMappingError")] + public virtual string FeedMappingError { get; set; } + + /// The reasons for the field error + [Newtonsoft.Json.JsonPropertyAttribute("fieldError")] + public virtual string FieldError { get; set; } + + /// An error with a field mask + [Newtonsoft.Json.JsonPropertyAttribute("fieldMaskError")] + public virtual string FieldMaskError { get; set; } + + /// The reasons for the final url expansion asset view error + [Newtonsoft.Json.JsonPropertyAttribute("finalUrlExpansionAssetViewError")] + public virtual string FinalUrlExpansionAssetViewError { get; set; } + + /// The reasons for the function error + [Newtonsoft.Json.JsonPropertyAttribute("functionError")] + public virtual string FunctionError { get; set; } + + /// The reasons for the function parsing error + [Newtonsoft.Json.JsonPropertyAttribute("functionParsingError")] + public virtual string FunctionParsingError { get; set; } + + /// The reasons for the geo target constant suggestion error. + [Newtonsoft.Json.JsonPropertyAttribute("geoTargetConstantSuggestionError")] + public virtual string GeoTargetConstantSuggestionError { get; set; } + + /// The reasons for the goal error. + [Newtonsoft.Json.JsonPropertyAttribute("goalError")] + public virtual string GoalError { get; set; } + + /// The reasons for the header error. + [Newtonsoft.Json.JsonPropertyAttribute("headerError")] + public virtual string HeaderError { get; set; } + + /// The reasons for the id error + [Newtonsoft.Json.JsonPropertyAttribute("idError")] + public virtual string IdError { get; set; } + + /// The reasons for an identity verification error. + [Newtonsoft.Json.JsonPropertyAttribute("identityVerificationError")] + public virtual string IdentityVerificationError { get; set; } + + /// The reasons for the image error + [Newtonsoft.Json.JsonPropertyAttribute("imageError")] + public virtual string ImageError { get; set; } + + /// The reasons for the incentive error + [Newtonsoft.Json.JsonPropertyAttribute("incentiveError")] + public virtual string IncentiveError { get; set; } + + /// An unexpected server-side error. + [Newtonsoft.Json.JsonPropertyAttribute("internalError")] + public virtual string InternalError { get; set; } + + /// The reasons for invalid parameter errors. + [Newtonsoft.Json.JsonPropertyAttribute("invalidParameterError")] + public virtual string InvalidParameterError { get; set; } + + /// The reasons for the invoice error + [Newtonsoft.Json.JsonPropertyAttribute("invoiceError")] + public virtual string InvoiceError { get; set; } + + /// The reason for keyword plan ad group error. + [Newtonsoft.Json.JsonPropertyAttribute("keywordPlanAdGroupError")] + public virtual string KeywordPlanAdGroupError { get; set; } + + /// The reason for keyword plan ad group keyword error. + [Newtonsoft.Json.JsonPropertyAttribute("keywordPlanAdGroupKeywordError")] + public virtual string KeywordPlanAdGroupKeywordError { get; set; } + + /// The reason for keyword plan campaign error. + [Newtonsoft.Json.JsonPropertyAttribute("keywordPlanCampaignError")] + public virtual string KeywordPlanCampaignError { get; set; } + + /// The reason for keyword plan campaign keyword error. + [Newtonsoft.Json.JsonPropertyAttribute("keywordPlanCampaignKeywordError")] + public virtual string KeywordPlanCampaignKeywordError { get; set; } + + /// The reason for keyword plan error. + [Newtonsoft.Json.JsonPropertyAttribute("keywordPlanError")] + public virtual string KeywordPlanError { get; set; } + + /// The reason for keyword idea error. + [Newtonsoft.Json.JsonPropertyAttribute("keywordPlanIdeaError")] + public virtual string KeywordPlanIdeaError { get; set; } + + /// The reason for the label error. + [Newtonsoft.Json.JsonPropertyAttribute("labelError")] + public virtual string LabelError { get; set; } + + /// The reasons for the language code error + [Newtonsoft.Json.JsonPropertyAttribute("languageCodeError")] + public virtual string LanguageCodeError { get; set; } + + /// An error with a list operation. + [Newtonsoft.Json.JsonPropertyAttribute("listOperationError")] + public virtual string ListOperationError { get; set; } + + /// The reasons for the manager link error + [Newtonsoft.Json.JsonPropertyAttribute("managerLinkError")] + public virtual string ManagerLinkError { get; set; } + + /// The reasons for the media bundle error + [Newtonsoft.Json.JsonPropertyAttribute("mediaBundleError")] + public virtual string MediaBundleError { get; set; } + + /// The reasons for the media file error + [Newtonsoft.Json.JsonPropertyAttribute("mediaFileError")] + public virtual string MediaFileError { get; set; } + + /// The reasons for media uploading errors. + [Newtonsoft.Json.JsonPropertyAttribute("mediaUploadError")] + public virtual string MediaUploadError { get; set; } + + /// Container for enum describing possible merchant center errors. + [Newtonsoft.Json.JsonPropertyAttribute("merchantCenterError")] + public virtual string MerchantCenterError { get; set; } + + /// The reasons for the multiplier error + [Newtonsoft.Json.JsonPropertyAttribute("multiplierError")] + public virtual string MultiplierError { get; set; } + + /// An error with a mutate + [Newtonsoft.Json.JsonPropertyAttribute("mutateError")] + public virtual string MutateError { get; set; } + + /// The reasons for the new resource creation error + [Newtonsoft.Json.JsonPropertyAttribute("newResourceCreationError")] + public virtual string NewResourceCreationError { get; set; } + + /// The reasons for the not allowlisted error + [Newtonsoft.Json.JsonPropertyAttribute("notAllowlistedError")] + public virtual string NotAllowlistedError { get; set; } + + /// The reasons for the not empty error + [Newtonsoft.Json.JsonPropertyAttribute("notEmptyError")] + public virtual string NotEmptyError { get; set; } + + /// The reasons for the null error + [Newtonsoft.Json.JsonPropertyAttribute("nullError")] + public virtual string NullError { get; set; } + + /// The reasons for the offline user data job error. + [Newtonsoft.Json.JsonPropertyAttribute("offlineUserDataJobError")] + public virtual string OfflineUserDataJobError { get; set; } + + /// The reasons for the operation access denied error + [Newtonsoft.Json.JsonPropertyAttribute("operationAccessDeniedError")] + public virtual string OperationAccessDeniedError { get; set; } + + /// The reasons for the operator error + [Newtonsoft.Json.JsonPropertyAttribute("operatorError")] + public virtual string OperatorError { get; set; } + + /// The reasons for the mutate job error + [Newtonsoft.Json.JsonPropertyAttribute("partialFailureError")] + public virtual string PartialFailureError { get; set; } + + /// The reasons for errors in payments accounts service + [Newtonsoft.Json.JsonPropertyAttribute("paymentsAccountError")] + public virtual string PaymentsAccountError { get; set; } + + /// The reasons for the policy finding error. + [Newtonsoft.Json.JsonPropertyAttribute("policyFindingError")] + public virtual string PolicyFindingError { get; set; } + + /// The reasons for the policy validation parameter error + [Newtonsoft.Json.JsonPropertyAttribute("policyValidationParameterError")] + public virtual string PolicyValidationParameterError { get; set; } + + /// The reasons for the policy violation error + [Newtonsoft.Json.JsonPropertyAttribute("policyViolationError")] + public virtual string PolicyViolationError { get; set; } + + /// The reasons for the product link error + [Newtonsoft.Json.JsonPropertyAttribute("productLinkError")] + public virtual string ProductLinkError { get; set; } + + /// The reasons for the product link invitation error + [Newtonsoft.Json.JsonPropertyAttribute("productLinkInvitationError")] + public virtual string ProductLinkInvitationError { get; set; } + + /// An error with the query + [Newtonsoft.Json.JsonPropertyAttribute("queryError")] + public virtual string QueryError { get; set; } + + /// An error with the amount of quota remaining. + [Newtonsoft.Json.JsonPropertyAttribute("quotaError")] + public virtual string QuotaError { get; set; } + + /// The reasons for the range error + [Newtonsoft.Json.JsonPropertyAttribute("rangeError")] + public virtual string RangeError { get; set; } + + /// The reasons for the reach plan error + [Newtonsoft.Json.JsonPropertyAttribute("reachPlanError")] + public virtual string ReachPlanError { get; set; } + + /// The reasons for error in applying a recommendation + [Newtonsoft.Json.JsonPropertyAttribute("recommendationError")] + public virtual string RecommendationError { get; set; } + + /// The reasons for the recommendation subscription error. + [Newtonsoft.Json.JsonPropertyAttribute("recommendationSubscriptionError")] + public virtual string RecommendationSubscriptionError { get; set; } + + /// The reasons for the region code error + [Newtonsoft.Json.JsonPropertyAttribute("regionCodeError")] + public virtual string RegionCodeError { get; set; } + + /// An error caused by the request + [Newtonsoft.Json.JsonPropertyAttribute("requestError")] + public virtual string RequestError { get; set; } + + /// The reasons for the resource access denied error + [Newtonsoft.Json.JsonPropertyAttribute("resourceAccessDeniedError")] + public virtual string ResourceAccessDeniedError { get; set; } + + /// The reasons for the resource count limit exceeded error + [Newtonsoft.Json.JsonPropertyAttribute("resourceCountLimitExceededError")] + public virtual string ResourceCountLimitExceededError { get; set; } + + /// The reasons for the Search term insight error + [Newtonsoft.Json.JsonPropertyAttribute("searchTermInsightError")] + public virtual string SearchTermInsightError { get; set; } + + /// The reasons for the setting error + [Newtonsoft.Json.JsonPropertyAttribute("settingError")] + public virtual string SettingError { get; set; } + + /// The reasons for the shareable preview error. + [Newtonsoft.Json.JsonPropertyAttribute("shareablePreviewError")] + public virtual string ShareablePreviewError { get; set; } + + /// The reasons for the shared criterion error + [Newtonsoft.Json.JsonPropertyAttribute("sharedCriterionError")] + public virtual string SharedCriterionError { get; set; } + + /// The reasons for the shared set error + [Newtonsoft.Json.JsonPropertyAttribute("sharedSetError")] + public virtual string SharedSetError { get; set; } + + /// The reasons for error in querying shopping product. + [Newtonsoft.Json.JsonPropertyAttribute("shoppingProductError")] + public virtual string ShoppingProductError { get; set; } + + /// The reasons for the size limit error + [Newtonsoft.Json.JsonPropertyAttribute("sizeLimitError")] + public virtual string SizeLimitError { get; set; } + + /// The reasons for the Smart campaign error + [Newtonsoft.Json.JsonPropertyAttribute("smartCampaignError")] + public virtual string SmartCampaignError { get; set; } + + /// The reasons for the string format error + [Newtonsoft.Json.JsonPropertyAttribute("stringFormatError")] + public virtual string StringFormatError { get; set; } + + /// The reasons for the string length error + [Newtonsoft.Json.JsonPropertyAttribute("stringLengthError")] + public virtual string StringLengthError { get; set; } + + /// The reasons for the third party app analytics link mutate error + [Newtonsoft.Json.JsonPropertyAttribute("thirdPartyAppAnalyticsLinkError")] + public virtual string ThirdPartyAppAnalyticsLinkError { get; set; } + + /// The reasons for the time zone error + [Newtonsoft.Json.JsonPropertyAttribute("timeZoneError")] + public virtual string TimeZoneError { get; set; } + + /// An error with a URL field mutate. + [Newtonsoft.Json.JsonPropertyAttribute("urlFieldError")] + public virtual string UrlFieldError { get; set; } + + /// The reasons for the user data error. + [Newtonsoft.Json.JsonPropertyAttribute("userDataError")] + public virtual string UserDataError { get; set; } + + /// The reasons for a user list customer type error. + [Newtonsoft.Json.JsonPropertyAttribute("userListCustomerTypeError")] + public virtual string UserListCustomerTypeError { get; set; } + + /// The reasons for the user list error + [Newtonsoft.Json.JsonPropertyAttribute("userListError")] + public virtual string UserListError { get; set; } + + /// An error with a Video Campaign mutate. + [Newtonsoft.Json.JsonPropertyAttribute("videoCampaignError")] + public virtual string VideoCampaignError { get; set; } + + /// The reasons for YouTube video registration errors. + [Newtonsoft.Json.JsonPropertyAttribute("youtubeVideoRegistrationError")] + public virtual string YoutubeVideoRegistrationError { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// Additional error details. + public class GoogleAdsSearchads360V23ErrorsErrorDetails : Google.Apis.Requests.IDirectResponseSchema + { + /// Details for a budget below per-day minimum error. + [Newtonsoft.Json.JsonPropertyAttribute("budgetPerDayMinimumErrorDetails")] + public virtual GoogleAdsSearchads360V23ErrorsBudgetPerDayMinimumErrorDetails BudgetPerDayMinimumErrorDetails { get; set; } + + /// Describes policy violation findings. + [Newtonsoft.Json.JsonPropertyAttribute("policyFindingDetails")] + public virtual GoogleAdsSearchads360V23ErrorsPolicyFindingDetails PolicyFindingDetails { get; set; } + + /// Describes an ad policy violation. + [Newtonsoft.Json.JsonPropertyAttribute("policyViolationDetails")] + public virtual GoogleAdsSearchads360V23ErrorsPolicyViolationDetails PolicyViolationDetails { get; set; } + + /// + /// Details on the quota error, including the scope (account or developer), the rate bucket name and the retry + /// delay. + /// + [Newtonsoft.Json.JsonPropertyAttribute("quotaErrorDetails")] + public virtual GoogleAdsSearchads360V23ErrorsQuotaErrorDetails QuotaErrorDetails { get; set; } + + /// Details for a resource count limit exceeded error. + [Newtonsoft.Json.JsonPropertyAttribute("resourceCountDetails")] + public virtual GoogleAdsSearchads360V23ErrorsResourceCountDetails ResourceCountDetails { get; set; } + + /// + /// The error code that should have been returned, but wasn't. This is used when the error code is not published + /// in the client specified version. + /// + [Newtonsoft.Json.JsonPropertyAttribute("unpublishedErrorCode")] + public virtual string UnpublishedErrorCode { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// Describes the part of the request proto that caused the error. + public class GoogleAdsSearchads360V23ErrorsErrorLocation : Google.Apis.Requests.IDirectResponseSchema + { + /// A field path that indicates which field was invalid in the request. + [Newtonsoft.Json.JsonPropertyAttribute("fieldPathElements")] + public virtual System.Collections.Generic.IList FieldPathElements { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// A part of a field path. + public class GoogleAdsSearchads360V23ErrorsErrorLocationFieldPathElement : Google.Apis.Requests.IDirectResponseSchema + { + /// The name of a field or a oneof + [Newtonsoft.Json.JsonPropertyAttribute("fieldName")] + public virtual string FieldName { get; set; } + + /// If field_name is a repeated field, this is the element that failed + [Newtonsoft.Json.JsonPropertyAttribute("index")] + public virtual System.Nullable Index { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// + /// Error returned as part of a mutate response. This error indicates one or more policy findings in the fields of a + /// resource. + /// + public class GoogleAdsSearchads360V23ErrorsPolicyFindingDetails : Google.Apis.Requests.IDirectResponseSchema + { + /// + /// The list of policy topics for the resource. Contains the PROHIBITED or FULLY_LIMITED policy topic entries + /// that prevented the resource from being saved (among any other entries the resource may also have). + /// + [Newtonsoft.Json.JsonPropertyAttribute("policyTopicEntries")] + public virtual System.Collections.Generic.IList PolicyTopicEntries { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// + /// Error returned as part of a mutate response. This error indicates single policy violation by some text in one of + /// the fields. + /// + public class GoogleAdsSearchads360V23ErrorsPolicyViolationDetails : Google.Apis.Requests.IDirectResponseSchema + { + /// Human readable description of policy violation. + [Newtonsoft.Json.JsonPropertyAttribute("externalPolicyDescription")] + public virtual string ExternalPolicyDescription { get; set; } + + /// Human readable name of the policy. + [Newtonsoft.Json.JsonPropertyAttribute("externalPolicyName")] + public virtual string ExternalPolicyName { get; set; } + + /// Whether user can file an exemption request for this violation. + [Newtonsoft.Json.JsonPropertyAttribute("isExemptible")] + public virtual System.Nullable IsExemptible { get; set; } + + /// + /// Unique identifier for this violation. If policy is exemptible, this key may be used to request exemption. + /// + [Newtonsoft.Json.JsonPropertyAttribute("key")] + public virtual GoogleAdsSearchads360V23CommonPolicyViolationKey Key { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// Additional quota error details when there is QuotaError. + public class GoogleAdsSearchads360V23ErrorsQuotaErrorDetails : Google.Apis.Requests.IDirectResponseSchema + { + /// + /// The high level description of the quota bucket. Examples are "Get requests for standard access" or "Requests + /// per account". + /// + [Newtonsoft.Json.JsonPropertyAttribute("rateName")] + public virtual string RateName { get; set; } + + /// The rate scope of the quota limit. + [Newtonsoft.Json.JsonPropertyAttribute("rateScope")] + public virtual string RateScope { get; set; } + + /// Backoff period that customers should wait before sending next request. + [Newtonsoft.Json.JsonPropertyAttribute("retryDelay")] + public virtual object RetryDelay { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// Error details returned when an resource count limit was exceeded. + public class GoogleAdsSearchads360V23ErrorsResourceCountDetails : Google.Apis.Requests.IDirectResponseSchema + { + /// + /// The ID of the resource whose limit was exceeded. External customer ID if the limit is for a customer. + /// + [Newtonsoft.Json.JsonPropertyAttribute("enclosingId")] + public virtual string EnclosingId { get; set; } + + /// The name of the resource ( etc.) whose limit was exceeded. + [Newtonsoft.Json.JsonPropertyAttribute("enclosingResource")] + public virtual string EnclosingResource { get; set; } + + /// The count of existing entities. + [Newtonsoft.Json.JsonPropertyAttribute("existingCount")] + public virtual System.Nullable ExistingCount { get; set; } + + /// The limit which was exceeded. + [Newtonsoft.Json.JsonPropertyAttribute("limit")] + public virtual System.Nullable Limit { get; set; } + + /// The resource limit type which was exceeded. + [Newtonsoft.Json.JsonPropertyAttribute("limitType")] + public virtual string LimitType { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// Search Ads 360-specific error. + public class GoogleAdsSearchads360V23ErrorsSearchAds360Error : Google.Apis.Requests.IDirectResponseSchema + { + /// + /// Additional error details, which are returned by certain error codes. Most error codes do not include + /// details. + /// + [Newtonsoft.Json.JsonPropertyAttribute("details")] + public virtual GoogleAdsSearchads360V23ErrorsErrorDetails Details { get; set; } + + /// An enum value that indicates which error occurred. + [Newtonsoft.Json.JsonPropertyAttribute("errorCode")] + public virtual GoogleAdsSearchads360V23ErrorsErrorCode ErrorCode { get; set; } + + /// Describes the part of the request proto that caused the error. + [Newtonsoft.Json.JsonPropertyAttribute("location")] + public virtual GoogleAdsSearchads360V23ErrorsErrorLocation Location { get; set; } + + /// A human-readable description of the error. + [Newtonsoft.Json.JsonPropertyAttribute("message")] + public virtual string Message { get; set; } + + /// The value that triggered the error. + [Newtonsoft.Json.JsonPropertyAttribute("trigger")] + public virtual GoogleAdsSearchads360V23CommonValue Trigger { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// + /// Describes how a Search Ads 360 API call failed. It's returned inside google.rpc.Status.details when a call + /// fails. + /// + public class GoogleAdsSearchads360V23ErrorsSearchAds360Failure : Google.Apis.Requests.IDirectResponseSchema + { + /// The list of errors that occurred. + [Newtonsoft.Json.JsonPropertyAttribute("errors")] + public virtual System.Collections.Generic.IList Errors { get; set; } + + /// The unique ID of the request that is used for debugging purposes. + [Newtonsoft.Json.JsonPropertyAttribute("requestId")] + public virtual string RequestId { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// + /// Additional information about the batch job. This message is also used as metadata returned in batch job Long + /// Running Operations. + /// + public class GoogleAdsSearchads360V23ResourcesBatchJobBatchJobMetadata : Google.Apis.Requests.IDirectResponseSchema + { + /// + /// Output only. The time when this batch job was completed. Formatted as yyyy-MM-dd HH:mm:ss. Example: + /// "2018-03-05 09:16:00" + /// + [Newtonsoft.Json.JsonPropertyAttribute("completionDateTime")] + public virtual string CompletionDateTime { get; set; } + + /// + /// Output only. The time when this batch job was created. Formatted as yyyy-mm-dd hh:mm:ss. Example: + /// "2018-03-05 09:15:00" + /// + [Newtonsoft.Json.JsonPropertyAttribute("creationDateTime")] + public virtual string CreationDateTime { get; set; } + + /// + /// Output only. The fraction (between 0.0 and 1.0) of mutates that have been processed. This is empty if the + /// job hasn't started running yet. + /// + [Newtonsoft.Json.JsonPropertyAttribute("estimatedCompletionRatio")] + public virtual System.Nullable EstimatedCompletionRatio { get; set; } + + /// + /// Output only. The number of mutate operations executed by the batch job. Present only if the job has started + /// running. + /// + [Newtonsoft.Json.JsonPropertyAttribute("executedOperationCount")] + public virtual System.Nullable ExecutedOperationCount { get; set; } + + /// + /// Immutable. The approximate upper bound for how long a batch job can be executed, in seconds. If the job runs + /// more than the given upper bound, the job will be canceled. + /// + [Newtonsoft.Json.JsonPropertyAttribute("executionLimitSeconds")] + public virtual System.Nullable ExecutionLimitSeconds { get; set; } + + /// Output only. The number of mutate operations in the batch job. + [Newtonsoft.Json.JsonPropertyAttribute("operationCount")] + public virtual System.Nullable OperationCount { get; set; } + + /// + /// Output only. The time when this batch job started running. Formatted as yyyy-mm-dd hh:mm:ss. Example: + /// "2018-03-05 09:15:30" + /// + [Newtonsoft.Json.JsonPropertyAttribute("startDateTime")] + public virtual string StartDateTime { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// Metadata of offline user data job. + public class GoogleAdsSearchads360V23ResourcesOfflineUserDataJobMetadata : Google.Apis.Requests.IDirectResponseSchema + { + /// + /// Output only. Match rate of the Customer Match user list upload. Describes the estimated match rate when the + /// status of the job is "RUNNING" and final match rate when the final match rate is available after the status + /// of the job is "SUCCESS/FAILED". + /// + [Newtonsoft.Json.JsonPropertyAttribute("matchRateRange")] + public virtual string MatchRateRange { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// The metadata of the promoted experiment. + public class GoogleAdsSearchads360V23ServicesPromoteExperimentMetadata : Google.Apis.Requests.IDirectResponseSchema + { + /// Required. The promoted experiment. + [Newtonsoft.Json.JsonPropertyAttribute("experiment")] + public virtual string Experiment { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + + /// The metadata of the scheduled experiment. + public class GoogleAdsSearchads360V23ServicesScheduleExperimentMetadata : Google.Apis.Requests.IDirectResponseSchema + { + /// Required. The scheduled experiment. + [Newtonsoft.Json.JsonPropertyAttribute("experiment")] + public virtual string Experiment { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } } diff --git a/Src/Generated/Google.Apis.SA360.v0/Google.Apis.SA360.v0.csproj b/Src/Generated/Google.Apis.SA360.v0/Google.Apis.SA360.v0.csproj index 26615501931..21d9d602aaf 100644 --- a/Src/Generated/Google.Apis.SA360.v0/Google.Apis.SA360.v0.csproj +++ b/Src/Generated/Google.Apis.SA360.v0/Google.Apis.SA360.v0.csproj @@ -3,7 +3,7 @@ Google.Apis.SA360.v0 Client Library - 1.73.0.4083 + 1.73.0.4120 Google LLC Copyright 2026 Google LLC Google From 775e948ff522bd4f0ef333970058431e1fef7e1e Mon Sep 17 00:00:00 2001 From: Amanda Tarafa Mas Date: Mon, 20 Apr 2026 08:06:43 +0000 Subject: [PATCH 37/40] feat: Generate Google.Apis.SecretManager.v1 version 1.73.0.4103 --- DiscoveryJson/secretmanager.v1.json | 38 +++++++++++-- .../Google.Apis.SecretManager.v1.cs | 56 +++++++++++++++---- .../Google.Apis.SecretManager.v1.csproj | 2 +- 3 files changed, 81 insertions(+), 15 deletions(-) diff --git a/DiscoveryJson/secretmanager.v1.json b/DiscoveryJson/secretmanager.v1.json index 6421322cde1..63a75920724 100644 --- a/DiscoveryJson/secretmanager.v1.json +++ b/DiscoveryJson/secretmanager.v1.json @@ -387,7 +387,7 @@ ] }, "list": { - "description": "Lists information about the supported locations for this service. This method can be called in two ways: * **List all public locations:** Use the path `GET /v1/locations`. * **List project-visible locations:** Use the path `GET /v1/projects/{project_id}/locations`. This may include public locations as well as private or other locations specifically visible to the project.", + "description": "Lists information about the supported locations for this service. This method lists locations based on the resource scope provided in the [ListLocationsRequest.name] field: * **Global locations**: If `name` is empty, the method lists the public locations available to all projects. * **Project-specific locations**: If `name` follows the format `projects/{project}`, the method lists locations visible to that specific project. This includes public, private, or other project-specific locations enabled for the project. For gRPC and client library implementations, the resource name is passed as the `name` field. For direct service calls, the resource name is incorporated into the request path based on the specific service implementation and version.", "flatPath": "v1/projects/{projectsId}/locations", "httpMethod": "GET", "id": "secretmanager.projects.locations.list", @@ -1366,7 +1366,7 @@ } } }, - "revision": "20260213", + "revision": "20260327", "rootUrl": "https://secretmanager.googleapis.com/", "schemas": { "AccessSecretVersionResponse": { @@ -1715,17 +1715,22 @@ "type": "string" }, "createTime": { - "description": "Output only. The time the operation was created.", + "description": "Output only. Time the operation was created.", "format": "google-datetime", "readOnly": true, "type": "string" }, "endTime": { - "description": "Output only. The time the operation finished running.", + "description": "Output only. Time the operation finished running.", "format": "google-datetime", "readOnly": true, "type": "string" }, + "progress": { + "$ref": "Progress", + "description": "Output only. Represents the progress of the operation. This field is populated for operations that involve processing multiple secret versions.", + "readOnly": true + }, "requestedCancellation": { "description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have been cancelled successfully have google.longrunning.Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`.", "readOnly": true, @@ -1780,6 +1785,31 @@ }, "type": "object" }, + "Progress": { + "description": "Represents progress information for operations involving multiple secret versions.", + "id": "Progress", + "properties": { + "completedVersionCount": { + "description": "Output only. Number of secret versions that have been successfully processed so far.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "failedVersionCount": { + "description": "Output only. Number of secret versions that failed to process.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "totalVersionCount": { + "description": "Output only. Provides the total number of secret versions to be processed by the operation.", + "format": "int32", + "readOnly": true, + "type": "integer" + } + }, + "type": "object" + }, "Replica": { "description": "Represents a Replica for this Secret.", "id": "Replica", diff --git a/Src/Generated/Google.Apis.SecretManager.v1/Google.Apis.SecretManager.v1.cs b/Src/Generated/Google.Apis.SecretManager.v1/Google.Apis.SecretManager.v1.cs index 3ba6f6930a4..e564849a535 100644 --- a/Src/Generated/Google.Apis.SecretManager.v1/Google.Apis.SecretManager.v1.cs +++ b/Src/Generated/Google.Apis.SecretManager.v1/Google.Apis.SecretManager.v1.cs @@ -1419,10 +1419,14 @@ protected override void InitParameters() } /// - /// Lists information about the supported locations for this service. This method can be called in two ways: - /// * **List all public locations:** Use the path `GET /v1/locations`. * **List project-visible locations:** - /// Use the path `GET /v1/projects/{project_id}/locations`. This may include public locations as well as - /// private or other locations specifically visible to the project. + /// Lists information about the supported locations for this service. This method lists locations based on + /// the resource scope provided in the [ListLocationsRequest.name] field: * **Global locations**: If `name` + /// is empty, the method lists the public locations available to all projects. * **Project-specific + /// locations**: If `name` follows the format `projects/{project}`, the method lists locations visible to + /// that specific project. This includes public, private, or other project-specific locations enabled for + /// the project. For gRPC and client library implementations, the resource name is passed as the `name` + /// field. For direct service calls, the resource name is incorporated into the request path based on the + /// specific service implementation and version. /// /// The resource that owns the locations collection, if applicable. public virtual ListRequest List(string name) @@ -1431,10 +1435,14 @@ public virtual ListRequest List(string name) } /// - /// Lists information about the supported locations for this service. This method can be called in two ways: - /// * **List all public locations:** Use the path `GET /v1/locations`. * **List project-visible locations:** - /// Use the path `GET /v1/projects/{project_id}/locations`. This may include public locations as well as - /// private or other locations specifically visible to the project. + /// Lists information about the supported locations for this service. This method lists locations based on + /// the resource scope provided in the [ListLocationsRequest.name] field: * **Global locations**: If `name` + /// is empty, the method lists the public locations available to all projects. * **Project-specific + /// locations**: If `name` follows the format `projects/{project}`, the method lists locations visible to + /// that specific project. This includes public, private, or other project-specific locations enabled for + /// the project. For gRPC and client library implementations, the resource name is passed as the `name` + /// field. For direct service calls, the resource name is incorporated into the request path based on the + /// specific service implementation and version. /// public class ListRequest : SecretManagerBaseServiceRequest { @@ -3057,7 +3065,7 @@ public class OperationMetadata : Google.Apis.Requests.IDirectResponseSchema private object _createTime; - /// Output only. The time the operation was created. + /// Output only. Time the operation was created. [Newtonsoft.Json.JsonPropertyAttribute("createTime")] public virtual string CreateTimeRaw { @@ -3094,7 +3102,7 @@ public virtual System.DateTimeOffset? CreateTimeDateTimeOffset private object _endTime; - /// Output only. The time the operation finished running. + /// Output only. Time the operation finished running. [Newtonsoft.Json.JsonPropertyAttribute("endTime")] public virtual string EndTimeRaw { @@ -3127,6 +3135,13 @@ public virtual System.DateTimeOffset? EndTimeDateTimeOffset set => EndTimeRaw = Google.Apis.Util.DiscoveryFormat.FormatDateTimeOffsetToGoogleDateTime(value); } + /// + /// Output only. Represents the progress of the operation. This field is populated for operations that involve + /// processing multiple secret versions. + /// + [Newtonsoft.Json.JsonPropertyAttribute("progress")] + public virtual Progress Progress { get; set; } + /// /// Output only. Identifies whether the user has requested cancellation of the operation. Operations that have /// been cancelled successfully have google.longrunning.Operation.error value with a google.rpc.Status.code of @@ -3228,6 +3243,27 @@ public class Policy : Google.Apis.Requests.IDirectResponseSchema public virtual System.Nullable Version { get; set; } } + /// Represents progress information for operations involving multiple secret versions. + public class Progress : Google.Apis.Requests.IDirectResponseSchema + { + /// Output only. Number of secret versions that have been successfully processed so far. + [Newtonsoft.Json.JsonPropertyAttribute("completedVersionCount")] + public virtual System.Nullable CompletedVersionCount { get; set; } + + /// Output only. Number of secret versions that failed to process. + [Newtonsoft.Json.JsonPropertyAttribute("failedVersionCount")] + public virtual System.Nullable FailedVersionCount { get; set; } + + /// + /// Output only. Provides the total number of secret versions to be processed by the operation. + /// + [Newtonsoft.Json.JsonPropertyAttribute("totalVersionCount")] + public virtual System.Nullable TotalVersionCount { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + /// Represents a Replica for this Secret. public class Replica : Google.Apis.Requests.IDirectResponseSchema { diff --git a/Src/Generated/Google.Apis.SecretManager.v1/Google.Apis.SecretManager.v1.csproj b/Src/Generated/Google.Apis.SecretManager.v1/Google.Apis.SecretManager.v1.csproj index 92187200c80..68be8caf160 100644 --- a/Src/Generated/Google.Apis.SecretManager.v1/Google.Apis.SecretManager.v1.csproj +++ b/Src/Generated/Google.Apis.SecretManager.v1/Google.Apis.SecretManager.v1.csproj @@ -3,7 +3,7 @@ Google.Apis.SecretManager.v1 Client Library - 1.73.0.4061 + 1.73.0.4103 Google LLC Copyright 2026 Google LLC Google From ac50191c5f9184cdd93a062ebaed5d9bbc821c27 Mon Sep 17 00:00:00 2001 From: Amanda Tarafa Mas Date: Mon, 20 Apr 2026 08:06:46 +0000 Subject: [PATCH 38/40] feat: Generate Google.Apis.SecretManager.v1beta1 version 1.73.0.4103 --- DiscoveryJson/secretmanager.v1beta1.json | 38 +++++++++++-- .../Google.Apis.SecretManager.v1beta1.cs | 56 +++++++++++++++---- .../Google.Apis.SecretManager.v1beta1.csproj | 2 +- 3 files changed, 81 insertions(+), 15 deletions(-) diff --git a/DiscoveryJson/secretmanager.v1beta1.json b/DiscoveryJson/secretmanager.v1beta1.json index 7c606c74ce2..1035cd64c86 100644 --- a/DiscoveryJson/secretmanager.v1beta1.json +++ b/DiscoveryJson/secretmanager.v1beta1.json @@ -387,7 +387,7 @@ ] }, "list": { - "description": "Lists information about the supported locations for this service. This method can be called in two ways: * **List all public locations:** Use the path `GET /v1/locations`. * **List project-visible locations:** Use the path `GET /v1/projects/{project_id}/locations`. This may include public locations as well as private or other locations specifically visible to the project.", + "description": "Lists information about the supported locations for this service. This method lists locations based on the resource scope provided in the [ListLocationsRequest.name] field: * **Global locations**: If `name` is empty, the method lists the public locations available to all projects. * **Project-specific locations**: If `name` follows the format `projects/{project}`, the method lists locations visible to that specific project. This includes public, private, or other project-specific locations enabled for the project. For gRPC and client library implementations, the resource name is passed as the `name` field. For direct service calls, the resource name is incorporated into the request path based on the specific service implementation and version.", "flatPath": "v1beta1/projects/{projectsId}/locations", "httpMethod": "GET", "id": "secretmanager.projects.locations.list", @@ -886,7 +886,7 @@ } } }, - "revision": "20260213", + "revision": "20260327", "rootUrl": "https://secretmanager.googleapis.com/", "schemas": { "AccessSecretVersionResponse": { @@ -1181,17 +1181,22 @@ "type": "string" }, "createTime": { - "description": "Output only. The time the operation was created.", + "description": "Output only. Time the operation was created.", "format": "google-datetime", "readOnly": true, "type": "string" }, "endTime": { - "description": "Output only. The time the operation finished running.", + "description": "Output only. Time the operation finished running.", "format": "google-datetime", "readOnly": true, "type": "string" }, + "progress": { + "$ref": "Progress", + "description": "Output only. Represents the progress of the operation. This field is populated for operations that involve processing multiple secret versions.", + "readOnly": true + }, "requestedCancellation": { "description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have been cancelled successfully have google.longrunning.Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`.", "readOnly": true, @@ -1246,6 +1251,31 @@ }, "type": "object" }, + "Progress": { + "description": "Represents progress information for operations involving multiple secret versions.", + "id": "Progress", + "properties": { + "completedVersionCount": { + "description": "Output only. Number of secret versions that have been successfully processed so far.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "failedVersionCount": { + "description": "Output only. Number of secret versions that failed to process.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "totalVersionCount": { + "description": "Output only. Provides the total number of secret versions to be processed by the operation.", + "format": "int32", + "readOnly": true, + "type": "integer" + } + }, + "type": "object" + }, "Replica": { "description": "Represents a Replica for this Secret.", "id": "Replica", diff --git a/Src/Generated/Google.Apis.SecretManager.v1beta1/Google.Apis.SecretManager.v1beta1.cs b/Src/Generated/Google.Apis.SecretManager.v1beta1/Google.Apis.SecretManager.v1beta1.cs index a43bd1fbd8d..9ba7858a505 100644 --- a/Src/Generated/Google.Apis.SecretManager.v1beta1/Google.Apis.SecretManager.v1beta1.cs +++ b/Src/Generated/Google.Apis.SecretManager.v1beta1/Google.Apis.SecretManager.v1beta1.cs @@ -341,10 +341,14 @@ protected override void InitParameters() } /// - /// Lists information about the supported locations for this service. This method can be called in two ways: - /// * **List all public locations:** Use the path `GET /v1/locations`. * **List project-visible locations:** - /// Use the path `GET /v1/projects/{project_id}/locations`. This may include public locations as well as - /// private or other locations specifically visible to the project. + /// Lists information about the supported locations for this service. This method lists locations based on + /// the resource scope provided in the [ListLocationsRequest.name] field: * **Global locations**: If `name` + /// is empty, the method lists the public locations available to all projects. * **Project-specific + /// locations**: If `name` follows the format `projects/{project}`, the method lists locations visible to + /// that specific project. This includes public, private, or other project-specific locations enabled for + /// the project. For gRPC and client library implementations, the resource name is passed as the `name` + /// field. For direct service calls, the resource name is incorporated into the request path based on the + /// specific service implementation and version. /// /// The resource that owns the locations collection, if applicable. public virtual ListRequest List(string name) @@ -353,10 +357,14 @@ public virtual ListRequest List(string name) } /// - /// Lists information about the supported locations for this service. This method can be called in two ways: - /// * **List all public locations:** Use the path `GET /v1/locations`. * **List project-visible locations:** - /// Use the path `GET /v1/projects/{project_id}/locations`. This may include public locations as well as - /// private or other locations specifically visible to the project. + /// Lists information about the supported locations for this service. This method lists locations based on + /// the resource scope provided in the [ListLocationsRequest.name] field: * **Global locations**: If `name` + /// is empty, the method lists the public locations available to all projects. * **Project-specific + /// locations**: If `name` follows the format `projects/{project}`, the method lists locations visible to + /// that specific project. This includes public, private, or other project-specific locations enabled for + /// the project. For gRPC and client library implementations, the resource name is passed as the `name` + /// field. For direct service calls, the resource name is incorporated into the request path based on the + /// specific service implementation and version. /// public class ListRequest : SecretManagerBaseServiceRequest { @@ -1846,7 +1854,7 @@ public class OperationMetadata : Google.Apis.Requests.IDirectResponseSchema private object _createTime; - /// Output only. The time the operation was created. + /// Output only. Time the operation was created. [Newtonsoft.Json.JsonPropertyAttribute("createTime")] public virtual string CreateTimeRaw { @@ -1883,7 +1891,7 @@ public virtual System.DateTimeOffset? CreateTimeDateTimeOffset private object _endTime; - /// Output only. The time the operation finished running. + /// Output only. Time the operation finished running. [Newtonsoft.Json.JsonPropertyAttribute("endTime")] public virtual string EndTimeRaw { @@ -1916,6 +1924,13 @@ public virtual System.DateTimeOffset? EndTimeDateTimeOffset set => EndTimeRaw = Google.Apis.Util.DiscoveryFormat.FormatDateTimeOffsetToGoogleDateTime(value); } + /// + /// Output only. Represents the progress of the operation. This field is populated for operations that involve + /// processing multiple secret versions. + /// + [Newtonsoft.Json.JsonPropertyAttribute("progress")] + public virtual Progress Progress { get; set; } + /// /// Output only. Identifies whether the user has requested cancellation of the operation. Operations that have /// been cancelled successfully have google.longrunning.Operation.error value with a google.rpc.Status.code of @@ -2017,6 +2032,27 @@ public class Policy : Google.Apis.Requests.IDirectResponseSchema public virtual System.Nullable Version { get; set; } } + /// Represents progress information for operations involving multiple secret versions. + public class Progress : Google.Apis.Requests.IDirectResponseSchema + { + /// Output only. Number of secret versions that have been successfully processed so far. + [Newtonsoft.Json.JsonPropertyAttribute("completedVersionCount")] + public virtual System.Nullable CompletedVersionCount { get; set; } + + /// Output only. Number of secret versions that failed to process. + [Newtonsoft.Json.JsonPropertyAttribute("failedVersionCount")] + public virtual System.Nullable FailedVersionCount { get; set; } + + /// + /// Output only. Provides the total number of secret versions to be processed by the operation. + /// + [Newtonsoft.Json.JsonPropertyAttribute("totalVersionCount")] + public virtual System.Nullable TotalVersionCount { get; set; } + + /// The ETag of the item. + public virtual string ETag { get; set; } + } + /// Represents a Replica for this Secret. public class Replica : Google.Apis.Requests.IDirectResponseSchema { diff --git a/Src/Generated/Google.Apis.SecretManager.v1beta1/Google.Apis.SecretManager.v1beta1.csproj b/Src/Generated/Google.Apis.SecretManager.v1beta1/Google.Apis.SecretManager.v1beta1.csproj index 9b4a9c041ed..c4caca0c70a 100644 --- a/Src/Generated/Google.Apis.SecretManager.v1beta1/Google.Apis.SecretManager.v1beta1.csproj +++ b/Src/Generated/Google.Apis.SecretManager.v1beta1/Google.Apis.SecretManager.v1beta1.csproj @@ -3,7 +3,7 @@ Google.Apis.SecretManager.v1beta1 Client Library - 1.73.0.4061 + 1.73.0.4103 Google LLC Copyright 2026 Google LLC Google From 21f35c9daac2c1085fbeff55d5fc2cb3150c1955 Mon Sep 17 00:00:00 2001 From: Amanda Tarafa Mas Date: Mon, 20 Apr 2026 08:06:48 +0000 Subject: [PATCH 39/40] feat: Generate Google.Apis.ThreatIntelligenceService.v1beta version 1.73.0.4119 --- DiscoveryJson/threatintelligence.v1beta.json | 16 ++++---- ...e.Apis.ThreatIntelligenceService.v1beta.cs | 40 ++++++++++++++----- ...is.ThreatIntelligenceService.v1beta.csproj | 2 +- 3 files changed, 39 insertions(+), 19 deletions(-) diff --git a/DiscoveryJson/threatintelligence.v1beta.json b/DiscoveryJson/threatintelligence.v1beta.json index 4417dd90b48..4b7074f18f2 100644 --- a/DiscoveryJson/threatintelligence.v1beta.json +++ b/DiscoveryJson/threatintelligence.v1beta.json @@ -338,23 +338,23 @@ ], "parameters": { "filter": { - "description": "Optional. Filter criteria.", + "description": "Optional. Filter criteria. Supported fields for filtering include: * `audit.create_time` * `audit.creator` * `audit.update_time` * `audit.updater` * `detail.data_leak.discovery_document_ids` * `detail.data_leak.severity` * `detail.detail_type` * `detail.initial_access_broker.discovery_document_ids` * `detail.initial_access_broker.severity` * `detail.insider_threat.discovery_document_ids` * `detail.insider_threat.severity` * `finding_count` * `priority_analysis.priority_level` * `relevance_analysis.confidence` * `relevance_analysis.relevance_level` * `relevance_analysis.relevant` * `severity_analysis.severity_level` * `state` Examples: * `detail.detail_type = \"initial_access_broker\"` * `detail.detail_type != \"data_leak\"` * `detail.insider_threat.severity = \"HIGH\"` * `audit.create_time >= \"2026-04-03T00:00:00Z\" AND audit.create_time < \"2026-04-06T00:00:00Z\"` * `state = \"NEW\" OR state = \"TRIAGED\"` * `severity_analysis.severity_level = \"SEVERITY_LEVEL_CRITICAL\"`", "location": "query", "type": "string" }, "orderBy": { - "description": "Optional. Order by criteria in the csv format: \"field1,field2 desc\" or \"field1,field2\" or \"field1 asc, field2\".", + "description": "Optional. Order by criteria in the csv format: \"field1, field2 desc\" or \"field1, field2\" or \"field1 asc, field2\". If a field is specified without `asc` or `desc`, ascending order is used by default. Supported fields for ordering are identical to those supported for filtering. Examples: * `audit.create_time desc` * `audit.update_time asc` * `audit.create_time desc, severity_analysis.severity_level desc`", "location": "query", "type": "string" }, "pageSize": { - "description": "Optional. Page size.", + "description": "Optional. Page size. Default to 100 alerts per page. Maximum is 1000 alerts per page.", "format": "int32", "location": "query", "type": "integer" }, "pageToken": { - "description": "Optional. Page token.", + "description": "Optional. Page token to retrieve the next page of results.", "location": "query", "type": "string" }, @@ -832,7 +832,7 @@ } } }, - "revision": "20260223", + "revision": "20260412", "rootUrl": "https://threatintelligence.googleapis.com/", "schemas": { "Alert": { @@ -1562,7 +1562,7 @@ "type": "array" }, "severity": { - "description": "Required. Data Leak specific severity This will be the string representation of the DataLeakFindingDetail.Severityenum. (e.g., \"LOW\", \"MEDIUM\", \"HIGH\", \"CRITICAL\")", + "description": "Required. The severity of the Data Leak alert. Allowed values are: * `LOW` * `MEDIUM` * `HIGH` * `CRITICAL`", "type": "string" } }, @@ -1807,7 +1807,7 @@ "type": "array" }, "severity": { - "description": "Required. IAB specific severity", + "description": "Required. The severity of the Initial Access Broker (IAB) alert. Allowed values are: * `LOW` * `MEDIUM` * `HIGH` * `CRITICAL`", "type": "string" } }, @@ -1859,7 +1859,7 @@ "type": "array" }, "severity": { - "description": "Required. InsiderThreat specific severity This will be the string representation of the InsiderThreatFindingDetail.Severityenum. (e.g., \"LOW\", \"MEDIUM\", \"HIGH\", \"CRITICAL\")", + "description": "Required. The severity of the Insider Threat alert. Allowed values are: * `LOW` * `MEDIUM` * `HIGH` * `CRITICAL`", "type": "string" } }, diff --git a/Src/Generated/Google.Apis.ThreatIntelligenceService.v1beta/Google.Apis.ThreatIntelligenceService.v1beta.cs b/Src/Generated/Google.Apis.ThreatIntelligenceService.v1beta/Google.Apis.ThreatIntelligenceService.v1beta.cs index 794a6bda21a..3fe0853e7bd 100644 --- a/Src/Generated/Google.Apis.ThreatIntelligenceService.v1beta/Google.Apis.ThreatIntelligenceService.v1beta.cs +++ b/Src/Generated/Google.Apis.ThreatIntelligenceService.v1beta/Google.Apis.ThreatIntelligenceService.v1beta.cs @@ -723,22 +723,40 @@ public ListRequest(Google.Apis.Services.IClientService service, string parent) : [Google.Apis.Util.RequestParameterAttribute("parent", Google.Apis.Util.RequestParameterType.Path)] public virtual string Parent { get; private set; } - /// Optional. Filter criteria. + /// + /// Optional. Filter criteria. Supported fields for filtering include: * `audit.create_time` * + /// `audit.creator` * `audit.update_time` * `audit.updater` * `detail.data_leak.discovery_document_ids` + /// * `detail.data_leak.severity` * `detail.detail_type` * + /// `detail.initial_access_broker.discovery_document_ids` * `detail.initial_access_broker.severity` * + /// `detail.insider_threat.discovery_document_ids` * `detail.insider_threat.severity` * `finding_count` + /// * `priority_analysis.priority_level` * `relevance_analysis.confidence` * + /// `relevance_analysis.relevance_level` * `relevance_analysis.relevant` * + /// `severity_analysis.severity_level` * `state` Examples: * `detail.detail_type = + /// "initial_access_broker"` * `detail.detail_type != "data_leak"` * `detail.insider_threat.severity = + /// "HIGH"` * `audit.create_time &gt;= "2026-04-03T00:00:00Z" AND audit.create_time &lt; + /// "2026-04-06T00:00:00Z"` * `state = "NEW" OR state = "TRIAGED"` * `severity_analysis.severity_level = + /// "SEVERITY_LEVEL_CRITICAL"` + /// [Google.Apis.Util.RequestParameterAttribute("filter", Google.Apis.Util.RequestParameterType.Query)] public virtual string Filter { get; set; } /// - /// Optional. Order by criteria in the csv format: "field1,field2 desc" or "field1,field2" or "field1 - /// asc, field2". + /// Optional. Order by criteria in the csv format: "field1, field2 desc" or "field1, field2" or "field1 + /// asc, field2". If a field is specified without `asc` or `desc`, ascending order is used by default. + /// Supported fields for ordering are identical to those supported for filtering. Examples: * + /// `audit.create_time desc` * `audit.update_time asc` * `audit.create_time desc, + /// severity_analysis.severity_level desc` /// [Google.Apis.Util.RequestParameterAttribute("orderBy", Google.Apis.Util.RequestParameterType.Query)] public virtual string OrderBy { get; set; } - /// Optional. Page size. + /// + /// Optional. Page size. Default to 100 alerts per page. Maximum is 1000 alerts per page. + /// [Google.Apis.Util.RequestParameterAttribute("pageSize", Google.Apis.Util.RequestParameterType.Query)] public virtual System.Nullable PageSize { get; set; } - /// Optional. Page token. + /// Optional. Page token to retrieve the next page of results. [Google.Apis.Util.RequestParameterAttribute("pageToken", Google.Apis.Util.RequestParameterType.Query)] public virtual string PageToken { get; set; } @@ -2673,8 +2691,7 @@ public class DataLeakAlertDetail : Google.Apis.Requests.IDirectResponseSchema public virtual System.Collections.Generic.IList DiscoveryDocumentIds { get; set; } /// - /// Required. Data Leak specific severity This will be the string representation of the - /// DataLeakFindingDetail.Severityenum. (e.g., "LOW", "MEDIUM", "HIGH", "CRITICAL") + /// Required. The severity of the Data Leak alert. Allowed values are: * `LOW` * `MEDIUM` * `HIGH` * `CRITICAL` /// [Newtonsoft.Json.JsonPropertyAttribute("severity")] public virtual string Severity { get; set; } @@ -2913,7 +2930,10 @@ public class InitialAccessBrokerAlertDetail : Google.Apis.Requests.IDirectRespon [Newtonsoft.Json.JsonPropertyAttribute("discoveryDocumentIds")] public virtual System.Collections.Generic.IList DiscoveryDocumentIds { get; set; } - /// Required. IAB specific severity + /// + /// Required. The severity of the Initial Access Broker (IAB) alert. Allowed values are: * `LOW` * `MEDIUM` * + /// `HIGH` * `CRITICAL` + /// [Newtonsoft.Json.JsonPropertyAttribute("severity")] public virtual string Severity { get; set; } @@ -2956,8 +2976,8 @@ public class InsiderThreatAlertDetail : Google.Apis.Requests.IDirectResponseSche public virtual System.Collections.Generic.IList DiscoveryDocumentIds { get; set; } /// - /// Required. InsiderThreat specific severity This will be the string representation of the - /// InsiderThreatFindingDetail.Severityenum. (e.g., "LOW", "MEDIUM", "HIGH", "CRITICAL") + /// Required. The severity of the Insider Threat alert. Allowed values are: * `LOW` * `MEDIUM` * `HIGH` * + /// `CRITICAL` /// [Newtonsoft.Json.JsonPropertyAttribute("severity")] public virtual string Severity { get; set; } diff --git a/Src/Generated/Google.Apis.ThreatIntelligenceService.v1beta/Google.Apis.ThreatIntelligenceService.v1beta.csproj b/Src/Generated/Google.Apis.ThreatIntelligenceService.v1beta/Google.Apis.ThreatIntelligenceService.v1beta.csproj index 920c0c4918a..9c573c481cd 100644 --- a/Src/Generated/Google.Apis.ThreatIntelligenceService.v1beta/Google.Apis.ThreatIntelligenceService.v1beta.csproj +++ b/Src/Generated/Google.Apis.ThreatIntelligenceService.v1beta/Google.Apis.ThreatIntelligenceService.v1beta.csproj @@ -3,7 +3,7 @@ Google.Apis.ThreatIntelligenceService.v1beta Client Library - 1.73.0.4071 + 1.73.0.4119 Google LLC Copyright 2026 Google LLC Google From 01d8b2670a7f5c4264b9572553911865acbbcd46 Mon Sep 17 00:00:00 2001 From: Amanda Tarafa Mas Date: Mon, 20 Apr 2026 08:06:53 +0000 Subject: [PATCH 40/40] chore: Update the package table in README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 58f36b5785a..c6383312874 100644 --- a/README.md +++ b/README.md @@ -275,6 +275,7 @@ The libraries are shown in the following table. | [Google.Apis.DeploymentManager.v2](https://googleapis.dev/dotnet/Google.Apis.DeploymentManager.v2/latest/api/Google.Apis.DeploymentManager.v2.html) | [![NuGet](https://img.shields.io/nuget/v/Google.Apis.DeploymentManager.v2)](https://www.nuget.org/packages/Google.Apis.DeploymentManager.v2) | [Cloud Deployment Manager V2 API v2](https://cloud.google.com/deployment-manager) | | [Google.Apis.DeploymentManager.v2beta](https://googleapis.dev/dotnet/Google.Apis.DeploymentManager.v2beta/latest/api/Google.Apis.DeploymentManager.v2beta.html) | [![NuGet](https://img.shields.io/nuget/v/Google.Apis.DeploymentManager.v2beta)](https://www.nuget.org/packages/Google.Apis.DeploymentManager.v2beta) | [Cloud Deployment Manager V2 API v2beta](https://cloud.google.com/deployment-manager) | | [Google.Apis.DeveloperConnect.v1](https://googleapis.dev/dotnet/Google.Apis.DeveloperConnect.v1/latest/api/Google.Apis.DeveloperConnect.v1.html) | [![NuGet](https://img.shields.io/nuget/v/Google.Apis.DeveloperConnect.v1)](https://www.nuget.org/packages/Google.Apis.DeveloperConnect.v1) | [Developer Connect API v1](http://cloud.google.com/developer-connect/docs/overview) | +| [Google.Apis.DeveloperKnowledge.v1alpha](https://googleapis.dev/dotnet/Google.Apis.DeveloperKnowledge.v1alpha/latest/api/Google.Apis.DeveloperKnowledge.v1alpha.html) | [![NuGet](https://img.shields.io/nuget/v/Google.Apis.DeveloperKnowledge.v1alpha)](https://www.nuget.org/packages/Google.Apis.DeveloperKnowledge.v1alpha) | [Developer Knowledge API v1alpha](https://developers.google.com/knowledge) | | [Google.Apis.Dfareporting.v3_5](https://googleapis.dev/dotnet/Google.Apis.Dfareporting.v3_5/latest/api/Google.Apis.Dfareporting.v3_5.html) | [![NuGet](https://img.shields.io/nuget/v/Google.Apis.Dfareporting.v3_5)](https://www.nuget.org/packages/Google.Apis.Dfareporting.v3_5) | [Campaign Manager 360 API v3_5](https://developers.google.com/doubleclick-advertisers/) | | [Google.Apis.Dfareporting.v4](https://googleapis.dev/dotnet/Google.Apis.Dfareporting.v4/latest/api/Google.Apis.Dfareporting.v4.html) | [![NuGet](https://img.shields.io/nuget/v/Google.Apis.Dfareporting.v4)](https://www.nuget.org/packages/Google.Apis.Dfareporting.v4) | [Campaign Manager 360 API v4](https://developers.google.com/doubleclick-advertisers/) | | [Google.Apis.Dfareporting.v5](https://googleapis.dev/dotnet/Google.Apis.Dfareporting.v5/latest/api/Google.Apis.Dfareporting.v5.html) | [![NuGet](https://img.shields.io/nuget/v/Google.Apis.Dfareporting.v5)](https://www.nuget.org/packages/Google.Apis.Dfareporting.v5) | [Campaign Manager 360 API v5](https://developers.google.com/doubleclick-advertisers/) |