{
  "resources": {
    "audienceInsights": {
      "methods": {
        "listInsightsEligibleDates": {
          "parameters": {},
          "flatPath": "v23/audienceInsights:listInsightsEligibleDates",
          "response": {
            "$ref": "GoogleAdsSearchads360V23Services__ListInsightsEligibleDatesResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/doubleclicksearch"
          ],
          "request": {
            "$ref": "GoogleAdsSearchads360V23Services__ListInsightsEligibleDatesRequest"
          },
          "id": "searchads360.audienceInsights.listInsightsEligibleDates",
          "path": "v23/audienceInsights:listInsightsEligibleDates",
          "parameterOrder": [],
          "httpMethod": "POST",
          "description": "Lists date ranges for which audience insights data can be requested. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [FieldError]() [HeaderError]() [InternalError]() [QuotaError]() [RangeError]() [RequestError]()"
        }
      }
    },
    "incentives": {
      "methods": {
        "fetchIncentive": {
          "parameterOrder": [],
          "path": "v23/incentives:fetchIncentive",
          "id": "searchads360.incentives.fetchIncentive",
          "httpMethod": "GET",
          "description": "Returns incentives for a given user.",
          "parameters": {
            "languageCode": {
              "location": "query",
              "description": "Optional. User's language code. If not provided, the server will default to \"en\". Possible language codes: https://developers.google.com/google-ads/api/data/codes-formats#languages",
              "type": "string"
            },
            "email": {
              "location": "query",
              "description": "Optional. Email of the user that the requested incentive is meant for. Will be used for channel partners who do NOT use OAuth to authenticate on behalf of user.",
              "type": "string"
            },
            "countryCode": {
              "location": "query",
              "description": "Optional. User's country code. If not provided, the server will default to \"US\". Possible country codes: https://developers.google.com/google-ads/api/data/codes-formats#country_codes",
              "type": "string"
            },
            "type": {
              "enum": [
                "UNSPECIFIED",
                "UNKNOWN",
                "ACQUISITION"
              ],
              "location": "query",
              "description": "Optional. The type of incentive to get. Defaults to ACQUISITION.",
              "type": "string",
              "enumDescriptions": [
                "Not specified.",
                "Unknown incentive type. Should not be used as a value explicitly.",
                "An acquisition incentive."
              ]
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/doubleclicksearch"
          ],
          "flatPath": "v23/incentives:fetchIncentive",
          "response": {
            "$ref": "GoogleAdsSearchads360V23Services__FetchIncentiveResponse"
          }
        }
      }
    },
    "keywordThemeConstants": {
      "methods": {
        "suggest": {
          "parameters": {},
          "flatPath": "v23/keywordThemeConstants:suggest",
          "response": {
            "$ref": "GoogleAdsSearchads360V23Services__SuggestKeywordThemeConstantsResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/doubleclicksearch"
          ],
          "request": {
            "$ref": "GoogleAdsSearchads360V23Services__SuggestKeywordThemeConstantsRequest"
          },
          "id": "searchads360.keywordThemeConstants.suggest",
          "path": "v23/keywordThemeConstants:suggest",
          "parameterOrder": [],
          "httpMethod": "POST",
          "description": "Returns KeywordThemeConstant suggestions by keyword themes. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()"
        }
      }
    },
    "customers": {
      "methods": {
        "generateAudienceOverlapInsights": {
          "parameters": {
            "customerId": {
              "pattern": "^[^/]+$",
              "location": "path",
              "required": true,
              "description": "Required. The ID of the customer.",
              "type": "string"
            }
          },
          "request": {
            "$ref": "GoogleAdsSearchads360V23Services__GenerateAudienceOverlapInsightsRequest"
          },
          "scopes": [
            "https://www.googleapis.com/auth/doubleclicksearch"
          ],
          "flatPath": "v23/customers/{customersId}:generateAudienceOverlapInsights",
          "response": {
            "$ref": "GoogleAdsSearchads360V23Services__GenerateAudienceOverlapInsightsResponse"
          },
          "parameterOrder": [
            "customerId"
          ],
          "path": "v23/customers/{+customerId}:generateAudienceOverlapInsights",
          "id": "searchads360.customers.generateAudienceOverlapInsights",
          "httpMethod": "POST",
          "description": "Returns a collection of audience attributes along with estimates of the overlap between their potential YouTube reach and that of a given input attribute. List of thrown errors: [AudienceInsightsError]() [AuthenticationError]() [AuthorizationError]() [FieldError]() [HeaderError]() [InternalError]() [QuotaError]() [RangeError]() [RequestError]()"
        },
        "generateAudienceCompositionInsights": {
          "parameters": {
            "customerId": {
              "description": "Required. The ID of the customer.",
              "type": "string",
              "pattern": "^[^/]+$",
              "location": "path",
              "required": true
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/doubleclicksearch"
          ],
          "request": {
            "$ref": "GoogleAdsSearchads360V23Services__GenerateAudienceCompositionInsightsRequest"
          },
          "flatPath": "v23/customers/{customersId}:generateAudienceCompositionInsights",
          "response": {
            "$ref": "GoogleAdsSearchads360V23Services__GenerateAudienceCompositionInsightsResponse"
          },
          "parameterOrder": [
            "customerId"
          ],
          "id": "searchads360.customers.generateAudienceCompositionInsights",
          "path": "v23/customers/{+customerId}:generateAudienceCompositionInsights",
          "httpMethod": "POST",
          "description": "Returns a collection of attributes that are represented in an audience of interest, with metrics that compare each attribute's share of the audience with its share of a baseline audience. List of thrown errors: [AudienceInsightsError]() [AuthenticationError]() [AuthorizationError]() [FieldError]() [HeaderError]() [InternalError]() [QuotaError]() [RangeError]() [RequestError]()"
        },
        "removeCampaignAutomaticallyCreatedAsset": {
          "request": {
            "$ref": "GoogleAdsSearchads360V23Services__RemoveCampaignAutomaticallyCreatedAssetRequest"
          },
          "scopes": [
            "https://www.googleapis.com/auth/doubleclicksearch"
          ],
          "flatPath": "v23/customers/{customersId}:removeCampaignAutomaticallyCreatedAsset",
          "response": {
            "$ref": "GoogleAdsSearchads360V23Services__RemoveCampaignAutomaticallyCreatedAssetResponse"
          },
          "parameters": {
            "customerId": {
              "pattern": "^[^/]+$",
              "location": "path",
              "required": true,
              "description": "Required. The ID of the customer whose assets are being removed.",
              "type": "string"
            }
          },
          "httpMethod": "POST",
          "description": "Removes automatically created assets from a campaign. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [ContextError]() [FieldError]() [InternalError]() [MutateError]() [PartialFailureError]() [QuotaError]() [RequestError]()",
          "parameterOrder": [
            "customerId"
          ],
          "path": "v23/customers/{+customerId}:removeCampaignAutomaticallyCreatedAsset",
          "id": "searchads360.customers.removeCampaignAutomaticallyCreatedAsset"
        },
        "suggestSmartCampaignAd": {
          "parameterOrder": [
            "customerId"
          ],
          "id": "searchads360.customers.suggestSmartCampaignAd",
          "path": "v23/customers/{+customerId}:suggestSmartCampaignAd",
          "httpMethod": "POST",
          "description": "Suggests a Smart campaign ad compatible with the Ad family of resources, based on data points such as targeting and the business to advertise.",
          "parameters": {
            "customerId": {
              "description": "Required. The ID of the customer.",
              "type": "string",
              "pattern": "^[^/]+$",
              "location": "path",
              "required": true
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/doubleclicksearch"
          ],
          "request": {
            "$ref": "GoogleAdsSearchads360V23Services__SuggestSmartCampaignAdRequest"
          },
          "flatPath": "v23/customers/{customersId}:suggestSmartCampaignAd",
          "response": {
            "$ref": "GoogleAdsSearchads360V23Services__SuggestSmartCampaignAdResponse"
          }
        },
        "generateKeywordHistoricalMetrics": {
          "flatPath": "v23/customers/{customersId}:generateKeywordHistoricalMetrics",
          "response": {
            "$ref": "GoogleAdsSearchads360V23Services__GenerateKeywordHistoricalMetricsResponse"
          },
          "request": {
            "$ref": "GoogleAdsSearchads360V23Services__GenerateKeywordHistoricalMetricsRequest"
          },
          "scopes": [
            "https://www.googleapis.com/auth/doubleclicksearch"
          ],
          "parameters": {
            "customerId": {
              "location": "path",
              "required": true,
              "pattern": "^[^/]+$",
              "type": "string",
              "description": "The ID of the customer with the recommendation."
            }
          },
          "httpMethod": "POST",
          "description": "Returns a list of keyword historical metrics. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [CollectionSizeError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
          "path": "v23/customers/{+customerId}:generateKeywordHistoricalMetrics",
          "id": "searchads360.customers.generateKeywordHistoricalMetrics",
          "parameterOrder": [
            "customerId"
          ]
        },
        "generateSuggestedTargetingInsights": {
          "parameters": {
            "customerId": {
              "description": "Required. The ID of the customer.",
              "type": "string",
              "pattern": "^[^/]+$",
              "location": "path",
              "required": true
            }
          },
          "flatPath": "v23/customers/{customersId}:generateSuggestedTargetingInsights",
          "response": {
            "$ref": "GoogleAdsSearchads360V23Services__GenerateSuggestedTargetingInsightsResponse"
          },
          "request": {
            "$ref": "GoogleAdsSearchads360V23Services__GenerateSuggestedTargetingInsightsRequest"
          },
          "scopes": [
            "https://www.googleapis.com/auth/doubleclicksearch"
          ],
          "path": "v23/customers/{+customerId}:generateSuggestedTargetingInsights",
          "id": "searchads360.customers.generateSuggestedTargetingInsights",
          "parameterOrder": [
            "customerId"
          ],
          "httpMethod": "POST",
          "description": "Returns a collection of targeting insights (e.g. targetable audiences) that are relevant to the requested audience. List of thrown errors: [AudienceInsightsError]() [AuthenticationError]() [AuthorizationError]() [FieldError]() [HeaderError]() [InternalError]() [QuotaError]() [RangeError]() [RequestError]()"
        },
        "generateKeywordForecastMetrics": {
          "scopes": [
            "https://www.googleapis.com/auth/doubleclicksearch"
          ],
          "request": {
            "$ref": "GoogleAdsSearchads360V23Services__GenerateKeywordForecastMetricsRequest"
          },
          "flatPath": "v23/customers/{customersId}:generateKeywordForecastMetrics",
          "response": {
            "$ref": "GoogleAdsSearchads360V23Services__GenerateKeywordForecastMetricsResponse"
          },
          "parameters": {
            "customerId": {
              "pattern": "^[^/]+$",
              "location": "path",
              "required": true,
              "description": "The ID of the customer.",
              "type": "string"
            }
          },
          "httpMethod": "POST",
          "description": "Returns metrics (such as impressions, clicks, total cost) of a keyword forecast for the given campaign. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [CollectionSizeError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
          "parameterOrder": [
            "customerId"
          ],
          "id": "searchads360.customers.generateKeywordForecastMetrics",
          "path": "v23/customers/{+customerId}:generateKeywordForecastMetrics"
        },
        "generateReachForecast": {
          "httpMethod": "POST",
          "description": "Generates a reach forecast for a given targeting / product mix. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [FieldError]() [HeaderError]() [InternalError]() [QuotaError]() [RangeError]() [ReachPlanError]() [RequestError]()",
          "parameterOrder": [
            "customerId"
          ],
          "path": "v23/customers/{+customerId}:generateReachForecast",
          "id": "searchads360.customers.generateReachForecast",
          "request": {
            "$ref": "GoogleAdsSearchads360V23Services__GenerateReachForecastRequest"
          },
          "scopes": [
            "https://www.googleapis.com/auth/doubleclicksearch"
          ],
          "flatPath": "v23/customers/{customersId}:generateReachForecast",
          "response": {
            "$ref": "GoogleAdsSearchads360V23Services__GenerateReachForecastResponse"
          },
          "parameters": {
            "customerId": {
              "location": "path",
              "required": true,
              "pattern": "^[^/]+$",
              "type": "string",
              "description": "Required. The ID of the customer."
            }
          }
        },
        "generateBenchmarksMetrics": {
          "httpMethod": "POST",
          "description": "Returns YouTube advertisement metrics for the given client against industry benchmarks. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [BenchmarksError]() [FieldError]() [HeaderError]() [InternalError]() [QuotaError]() [RangeError]() [RequestError]()",
          "path": "v23/customers/{+customerId}:generateBenchmarksMetrics",
          "id": "searchads360.customers.generateBenchmarksMetrics",
          "parameterOrder": [
            "customerId"
          ],
          "flatPath": "v23/customers/{customersId}:generateBenchmarksMetrics",
          "response": {
            "$ref": "GoogleAdsSearchads360V23Services__GenerateBenchmarksMetricsResponse"
          },
          "request": {
            "$ref": "GoogleAdsSearchads360V23Services__GenerateBenchmarksMetricsRequest"
          },
          "scopes": [
            "https://www.googleapis.com/auth/doubleclicksearch"
          ],
          "parameters": {
            "customerId": {
              "pattern": "^[^/]+$",
              "location": "path",
              "required": true,
              "description": "Required. The ID of the customer. Supply a client customer ID to generate metrics for the customer. A manager account customer ID will not return customer metrics since it does not have any associated direct ad campaigns.",
              "type": "string"
            }
          }
        },
        "getIdentityVerification": {
          "parameters": {
            "customerId": {
              "location": "path",
              "required": true,
              "pattern": "^[^/]+$",
              "type": "string",
              "description": "Required. The ID of the customer for whom we are requesting verification information."
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/doubleclicksearch"
          ],
          "flatPath": "v23/customers/{customersId}/getIdentityVerification",
          "response": {
            "$ref": "GoogleAdsSearchads360V23Services__GetIdentityVerificationResponse"
          },
          "parameterOrder": [
            "customerId"
          ],
          "id": "searchads360.customers.getIdentityVerification",
          "path": "v23/customers/{+customerId}/getIdentityVerification",
          "httpMethod": "GET",
          "description": "Returns Identity Verification information. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()"
        },
        "generateInsightsFinderReport": {
          "parameters": {
            "customerId": {
              "type": "string",
              "description": "Required. The ID of the customer.",
              "location": "path",
              "required": true,
              "pattern": "^[^/]+$"
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/doubleclicksearch"
          ],
          "request": {
            "$ref": "GoogleAdsSearchads360V23Services__GenerateInsightsFinderReportRequest"
          },
          "flatPath": "v23/customers/{customersId}:generateInsightsFinderReport",
          "response": {
            "$ref": "GoogleAdsSearchads360V23Services__GenerateInsightsFinderReportResponse"
          },
          "parameterOrder": [
            "customerId"
          ],
          "id": "searchads360.customers.generateInsightsFinderReport",
          "path": "v23/customers/{+customerId}:generateInsightsFinderReport",
          "httpMethod": "POST",
          "description": "Creates a saved report that can be viewed in the Insights Finder tool. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [FieldError]() [HeaderError]() [InternalError]() [QuotaError]() [RangeError]() [RequestError]()"
        },
        "searchAudienceInsightsAttributes": {
          "parameters": {
            "customerId": {
              "location": "path",
              "required": true,
              "pattern": "^[^/]+$",
              "type": "string",
              "description": "Required. The ID of the customer."
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/doubleclicksearch"
          ],
          "request": {
            "$ref": "GoogleAdsSearchads360V23Services__ListAudienceInsightsAttributesRequest"
          },
          "flatPath": "v23/customers/{customersId}:searchAudienceInsightsAttributes",
          "response": {
            "$ref": "GoogleAdsSearchads360V23Services__ListAudienceInsightsAttributesResponse"
          },
          "parameterOrder": [
            "customerId"
          ],
          "id": "searchads360.customers.searchAudienceInsightsAttributes",
          "path": "v23/customers/{+customerId}:searchAudienceInsightsAttributes",
          "httpMethod": "POST",
          "description": "Searches for audience attributes that can be used to generate insights. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [FieldError]() [HeaderError]() [InternalError]() [QuotaError]() [RangeError]() [RequestError]()"
        },
        "generateAdGroupThemes": {
          "flatPath": "v23/customers/{customersId}:generateAdGroupThemes",
          "response": {
            "$ref": "GoogleAdsSearchads360V23Services__GenerateAdGroupThemesResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/doubleclicksearch"
          ],
          "request": {
            "$ref": "GoogleAdsSearchads360V23Services__GenerateAdGroupThemesRequest"
          },
          "parameters": {
            "customerId": {
              "pattern": "^[^/]+$",
              "location": "path",
              "required": true,
              "description": "Required. The ID of the customer.",
              "type": "string"
            }
          },
          "httpMethod": "POST",
          "description": "Returns a list of suggested AdGroups and suggested modifications (text, match type) for the given keywords. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [CollectionSizeError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
          "id": "searchads360.customers.generateAdGroupThemes",
          "path": "v23/customers/{+customerId}:generateAdGroupThemes",
          "parameterOrder": [
            "customerId"
          ]
        },
        "createCustomerClient": {
          "flatPath": "v23/customers/{customersId}:createCustomerClient",
          "response": {
            "$ref": "GoogleAdsSearchads360V23Services__CreateCustomerClientResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/doubleclicksearch"
          ],
          "request": {
            "$ref": "GoogleAdsSearchads360V23Services__CreateCustomerClientRequest"
          },
          "parameters": {
            "customerId": {
              "pattern": "^[^/]+$",
              "location": "path",
              "required": true,
              "description": "Required. The ID of the Manager under whom client customer is being created.",
              "type": "string"
            }
          },
          "httpMethod": "POST",
          "description": "Creates a new client under manager. The new client customer is returned. List of thrown errors: [AccessInvitationError]() [AuthenticationError]() [AuthorizationError]() [CurrencyCodeError]() [HeaderError]() [InternalError]() [ManagerLinkError]() [QuotaError]() [RequestError]() [StringLengthError]() [TimeZoneError]()",
          "id": "searchads360.customers.createCustomerClient",
          "path": "v23/customers/{+customerId}:createCustomerClient",
          "parameterOrder": [
            "customerId"
          ]
        },
        "generateKeywordIdeas": {
          "scopes": [
            "https://www.googleapis.com/auth/doubleclicksearch"
          ],
          "request": {
            "$ref": "GoogleAdsSearchads360V23Services__GenerateKeywordIdeasRequest"
          },
          "flatPath": "v23/customers/{customersId}:generateKeywordIdeas",
          "response": {
            "$ref": "GoogleAdsSearchads360V23Services__GenerateKeywordIdeaResponse"
          },
          "parameters": {
            "customerId": {
              "type": "string",
              "description": "The ID of the customer with the recommendation.",
              "location": "path",
              "required": true,
              "pattern": "^[^/]+$"
            }
          },
          "httpMethod": "POST",
          "description": "Returns a list of keyword ideas. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [CollectionSizeError]() [HeaderError]() [InternalError]() [KeywordPlanIdeaError]() [QuotaError]() [RequestError]()",
          "parameterOrder": [
            "customerId"
          ],
          "id": "searchads360.customers.generateKeywordIdeas",
          "path": "v23/customers/{+customerId}:generateKeywordIdeas"
        },
        "generateTargetingSuggestionMetrics": {
          "id": "searchads360.customers.generateTargetingSuggestionMetrics",
          "path": "v23/customers/{+customerId}:generateTargetingSuggestionMetrics",
          "parameterOrder": [
            "customerId"
          ],
          "httpMethod": "POST",
          "description": "Returns potential reach metrics for targetable audiences. This method helps answer questions like \"How many Men aged 18+ interested in Camping can be reached on YouTube?\" List of thrown errors: [AudienceInsightsError]() [AuthenticationError]() [AuthorizationError]() [FieldError]() [HeaderError]() [InternalError]() [QuotaError]() [RangeError]() [RequestError]()",
          "parameters": {
            "customerId": {
              "pattern": "^[^/]+$",
              "location": "path",
              "required": true,
              "description": "Required. The ID of the customer.",
              "type": "string"
            }
          },
          "flatPath": "v23/customers/{customersId}:generateTargetingSuggestionMetrics",
          "response": {
            "$ref": "GoogleAdsSearchads360V23Services__GenerateTargetingSuggestionMetricsResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/doubleclicksearch"
          ],
          "request": {
            "$ref": "GoogleAdsSearchads360V23Services__GenerateTargetingSuggestionMetricsRequest"
          }
        },
        "suggestTravelAssets": {
          "httpMethod": "POST",
          "description": "Returns Travel Asset suggestions. Asset suggestions are returned on a best-effort basis. There are no guarantees that all possible asset types will be returned for any given hotel property.",
          "path": "v23/customers/{+customerId}:suggestTravelAssets",
          "id": "searchads360.customers.suggestTravelAssets",
          "parameterOrder": [
            "customerId"
          ],
          "flatPath": "v23/customers/{customersId}:suggestTravelAssets",
          "response": {
            "$ref": "GoogleAdsSearchads360V23Services__SuggestTravelAssetsResponse"
          },
          "request": {
            "$ref": "GoogleAdsSearchads360V23Services__SuggestTravelAssetsRequest"
          },
          "scopes": [
            "https://www.googleapis.com/auth/doubleclicksearch"
          ],
          "parameters": {
            "customerId": {
              "pattern": "^[^/]+$",
              "location": "path",
              "required": true,
              "description": "Required. The ID of the customer.",
              "type": "string"
            }
          }
        },
        "mutate": {
          "httpMethod": "POST",
          "description": "Updates a customer. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [FieldMaskError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]() [UrlFieldError]()",
          "parameterOrder": [
            "customerId"
          ],
          "path": "v23/customers/{+customerId}:mutate",
          "id": "searchads360.customers.mutate",
          "request": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateCustomerRequest"
          },
          "scopes": [
            "https://www.googleapis.com/auth/doubleclicksearch"
          ],
          "flatPath": "v23/customers/{customersId}:mutate",
          "response": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateCustomerResponse"
          },
          "parameters": {
            "customerId": {
              "location": "path",
              "required": true,
              "pattern": "^[^/]+$",
              "type": "string",
              "description": "Required. The ID of the customer being modified."
            }
          }
        },
        "suggestKeywordThemes": {
          "httpMethod": "POST",
          "description": "Suggests keyword themes to advertise on.",
          "path": "v23/customers/{+customerId}:suggestKeywordThemes",
          "id": "searchads360.customers.suggestKeywordThemes",
          "parameterOrder": [
            "customerId"
          ],
          "flatPath": "v23/customers/{customersId}:suggestKeywordThemes",
          "response": {
            "$ref": "GoogleAdsSearchads360V23Services__SuggestKeywordThemesResponse"
          },
          "request": {
            "$ref": "GoogleAdsSearchads360V23Services__SuggestKeywordThemesRequest"
          },
          "scopes": [
            "https://www.googleapis.com/auth/doubleclicksearch"
          ],
          "parameters": {
            "customerId": {
              "location": "path",
              "required": true,
              "pattern": "^[^/]+$",
              "type": "string",
              "description": "Required. The ID of the customer."
            }
          }
        },
        "suggestSmartCampaignBudgetOptions": {
          "flatPath": "v23/customers/{customersId}:suggestSmartCampaignBudgetOptions",
          "response": {
            "$ref": "GoogleAdsSearchads360V23Services__SuggestSmartCampaignBudgetOptionsResponse"
          },
          "request": {
            "$ref": "GoogleAdsSearchads360V23Services__SuggestSmartCampaignBudgetOptionsRequest"
          },
          "scopes": [
            "https://www.googleapis.com/auth/doubleclicksearch"
          ],
          "parameters": {
            "customerId": {
              "pattern": "^[^/]+$",
              "location": "path",
              "required": true,
              "description": "Required. The ID of the customer whose budget options are to be suggested.",
              "type": "string"
            }
          },
          "httpMethod": "POST",
          "description": "Returns BudgetOption suggestions.",
          "path": "v23/customers/{+customerId}:suggestSmartCampaignBudgetOptions",
          "id": "searchads360.customers.suggestSmartCampaignBudgetOptions",
          "parameterOrder": [
            "customerId"
          ]
        },
        "uploadUserData": {
          "httpMethod": "POST",
          "description": "Uploads the given user data. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [CollectionSizeError]() [FieldError]() [HeaderError]() [InternalError]() [MutateError]() [OfflineUserDataJobError]() [QuotaError]() [RequestError]() [UserDataError]()",
          "parameterOrder": [
            "customerId"
          ],
          "id": "searchads360.customers.uploadUserData",
          "path": "v23/customers/{+customerId}:uploadUserData",
          "scopes": [
            "https://www.googleapis.com/auth/doubleclicksearch"
          ],
          "request": {
            "$ref": "GoogleAdsSearchads360V23Services__UploadUserDataRequest"
          },
          "flatPath": "v23/customers/{customersId}:uploadUserData",
          "response": {
            "$ref": "GoogleAdsSearchads360V23Services__UploadUserDataResponse"
          },
          "parameters": {
            "customerId": {
              "description": "Required. The ID of the customer for which to update the user data.",
              "type": "string",
              "pattern": "^[^/]+$",
              "location": "path",
              "required": true
            }
          }
        },
        "listAccessibleCustomers": {
          "httpMethod": "GET",
          "description": "Returns resource names of customers directly accessible by the user authenticating the call. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
          "path": "v23/customers:listAccessibleCustomers",
          "id": "searchads360.customers.listAccessibleCustomers",
          "parameterOrder": [],
          "flatPath": "v23/customers:listAccessibleCustomers",
          "response": {
            "$ref": "GoogleAdsSearchads360V23Services__ListAccessibleCustomersResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/doubleclicksearch"
          ],
          "parameters": {}
        },
        "generateAudienceDefinition": {
          "request": {
            "$ref": "GoogleAdsSearchads360V23Services__GenerateAudienceDefinitionRequest"
          },
          "scopes": [
            "https://www.googleapis.com/auth/doubleclicksearch"
          ],
          "flatPath": "v23/customers/{customersId}:generateAudienceDefinition",
          "response": {
            "$ref": "GoogleAdsSearchads360V23Services__GenerateAudienceDefinitionResponse"
          },
          "parameters": {
            "customerId": {
              "location": "path",
              "required": true,
              "pattern": "^[^/]+$",
              "type": "string",
              "description": "Required. The ID of the customer."
            }
          },
          "httpMethod": "POST",
          "description": "Returns a collection of audience attributes using generative AI based on the provided audience description. List of thrown errors: [AudienceInsightsError]() [AuthenticationError]() [AuthorizationError]() [FieldError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
          "parameterOrder": [
            "customerId"
          ],
          "path": "v23/customers/{+customerId}:generateAudienceDefinition",
          "id": "searchads360.customers.generateAudienceDefinition"
        },
        "startIdentityVerification": {
          "path": "v23/customers/{+customerId}:startIdentityVerification",
          "id": "searchads360.customers.startIdentityVerification",
          "parameterOrder": [
            "customerId"
          ],
          "httpMethod": "POST",
          "description": "Starts Identity Verification for a given verification program type. Statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
          "parameters": {
            "customerId": {
              "description": "Required. The Id of the customer for whom we are creating this verification.",
              "type": "string",
              "pattern": "^[^/]+$",
              "location": "path",
              "required": true
            }
          },
          "flatPath": "v23/customers/{customersId}:startIdentityVerification",
          "response": {
            "$ref": "GoogleProtobuf__Empty"
          },
          "request": {
            "$ref": "GoogleAdsSearchads360V23Services__StartIdentityVerificationRequest"
          },
          "scopes": [
            "https://www.googleapis.com/auth/doubleclicksearch"
          ]
        }
      },
      "resources": {
        "adGroups": {
          "methods": {
            "mutate": {
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateAdGroupsRequest"
              },
              "flatPath": "v23/customers/{customersId}/adGroups:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateAdGroupsResponse"
              },
              "parameters": {
                "customerId": {
                  "type": "string",
                  "description": "Required. The ID of the customer whose ad groups are being modified.",
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$"
                }
              },
              "httpMethod": "POST",
              "description": "Creates, updates, or removes ad groups. Operation statuses are returned. List of thrown errors: [AdGroupError]() [AdxError]() [AuthenticationError]() [AuthorizationError]() [BiddingError]() [BiddingStrategyError]() [DatabaseError]() [DateError]() [DistinctError]() [FieldError]() [FieldMaskError]() [HeaderError]() [IdError]() [InternalError]() [ListOperationError]() [MultiplierError]() [MutateError]() [NewResourceCreationError]() [NotEmptyError]() [NullError]() [OperationAccessDeniedError]() [OperatorError]() [QuotaError]() [RangeError]() [RequestError]() [ResourceCountLimitExceededError]() [SettingError]() [SizeLimitError]() [StringFormatError]() [StringLengthError]() [UrlFieldError]()",
              "parameterOrder": [
                "customerId"
              ],
              "id": "searchads360.customers.adGroups.mutate",
              "path": "v23/customers/{+customerId}/adGroups:mutate"
            }
          }
        },
        "adGroupAds": {
          "methods": {
            "mutate": {
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer whose ads are being modified.",
                  "type": "string",
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "required": true
                }
              },
              "flatPath": "v23/customers/{customersId}/adGroupAds:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateAdGroupAdsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateAdGroupAdsRequest"
              },
              "id": "searchads360.customers.adGroupAds.mutate",
              "path": "v23/customers/{+customerId}/adGroupAds:mutate",
              "parameterOrder": [
                "customerId"
              ],
              "httpMethod": "POST",
              "description": "Creates, updates, or removes ads. Operation statuses are returned. List of thrown errors: [AdCustomizerError]() [AdError]() [AdGroupAdError]() [AdSharingError]() [AdxError]() [AssetError]() [AssetLinkError]() [AuthenticationError]() [AuthorizationError]() [CollectionSizeError]() [ContextError]() [DatabaseError]() [DateError]() [DistinctError]() [FeedAttributeReferenceError]() [FieldError]() [FieldMaskError]() [FunctionError]() [FunctionParsingError]() [HeaderError]() [IdError]() [ImageError]() [InternalError]() [ListOperationError]() [MediaBundleError]() [MediaFileError]() [MutateError]() [NewResourceCreationError]() [NotEmptyError]() [NullError]() [OperationAccessDeniedError]() [OperatorError]() [PolicyFindingError]() [PolicyValidationParameterError]() [PolicyViolationError]() [QuotaError]() [RangeError]() [RequestError]() [ResourceCountLimitExceededError]() [SizeLimitError]() [StringFormatError]() [StringLengthError]() [UrlFieldError]()"
            },
            "removeAutomaticallyCreatedAssets": {
              "parameters": {
                "adGroupAd": {
                  "pattern": "^customers/[^/]+/adGroupAds/[^/]+$",
                  "location": "path",
                  "required": true,
                  "description": "Required. The resource name of the AdGroupAd from which to remove automatically created assets.",
                  "type": "string"
                }
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__RemoveAutomaticallyCreatedAssetsRequest"
              },
              "flatPath": "v23/customers/{customersId}/adGroupAds/{adGroupAdsId}:removeAutomaticallyCreatedAssets",
              "response": {
                "$ref": "GoogleProtobuf__Empty"
              },
              "parameterOrder": [
                "adGroupAd"
              ],
              "id": "searchads360.customers.adGroupAds.removeAutomaticallyCreatedAssets",
              "path": "v23/{+adGroupAd}:removeAutomaticallyCreatedAssets",
              "httpMethod": "POST",
              "description": "Remove automatically created assets from an ad. List of thrown errors: [AdError]() [AuthenticationError]() [AuthorizationError]() [AutomaticallyCreatedAssetRemovalError]() [HeaderError]() [InternalError]() [MutateError]() [QuotaError]() [RequestError]()"
            }
          }
        },
        "paymentsAccounts": {
          "methods": {
            "list": {
              "parameterOrder": [
                "customerId"
              ],
              "id": "searchads360.customers.paymentsAccounts.list",
              "path": "v23/customers/{+customerId}/paymentsAccounts",
              "httpMethod": "GET",
              "description": "Returns all payments accounts associated with all managers between the login customer ID and specified serving customer in the hierarchy, inclusive. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [PaymentsAccountError]() [QuotaError]() [RequestError]()",
              "parameters": {
                "customerId": {
                  "type": "string",
                  "description": "Required. The ID of the customer to apply the PaymentsAccount list operation to.",
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$"
                }
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "flatPath": "v23/customers/{customersId}/paymentsAccounts",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__ListPaymentsAccountsResponse"
              }
            }
          }
        },
        "customAudiences": {
          "methods": {
            "mutate": {
              "httpMethod": "POST",
              "description": "Creates or updates custom audiences. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [CustomAudienceError]() [CustomInterestError]() [FieldError]() [FieldMaskError]() [HeaderError]() [InternalError]() [MutateError]() [OperationAccessDeniedError]() [PolicyViolationError]() [QuotaError]() [RequestError]()",
              "parameterOrder": [
                "customerId"
              ],
              "id": "searchads360.customers.customAudiences.mutate",
              "path": "v23/customers/{+customerId}/customAudiences:mutate",
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateCustomAudiencesRequest"
              },
              "flatPath": "v23/customers/{customersId}/customAudiences:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateCustomAudiencesResponse"
              },
              "parameters": {
                "customerId": {
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "required": true,
                  "description": "Required. The ID of the customer whose custom audiences are being modified.",
                  "type": "string"
                }
              }
            }
          }
        },
        "assetGroupListingGroupFilters": {
          "methods": {
            "mutate": {
              "parameters": {
                "customerId": {
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$",
                  "type": "string",
                  "description": "Required. The ID of the customer whose asset group listing group filters are being modified."
                }
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateAssetGroupListingGroupFiltersRequest"
              },
              "flatPath": "v23/customers/{customersId}/assetGroupListingGroupFilters:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateAssetGroupListingGroupFiltersResponse"
              },
              "parameterOrder": [
                "customerId"
              ],
              "id": "searchads360.customers.assetGroupListingGroupFilters.mutate",
              "path": "v23/customers/{+customerId}/assetGroupListingGroupFilters:mutate",
              "httpMethod": "POST",
              "description": "Creates, updates or removes asset group listing group filters. Operation statuses are returned."
            }
          }
        },
        "adGroupAssets": {
          "methods": {
            "mutate": {
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateAdGroupAssetsRequest"
              },
              "flatPath": "v23/customers/{customersId}/adGroupAssets:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateAdGroupAssetsResponse"
              },
              "parameters": {
                "customerId": {
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "required": true,
                  "description": "Required. The ID of the customer whose ad group assets are being modified.",
                  "type": "string"
                }
              },
              "httpMethod": "POST",
              "description": "Creates, updates, or removes ad group assets. Operation statuses are returned. List of thrown errors: [AssetLinkError]() [AuthenticationError]() [AuthorizationError]() [ContextError]() [FieldError]() [HeaderError]() [InternalError]() [MutateError]() [NotAllowlistedError]() [QuotaError]() [RequestError]()",
              "parameterOrder": [
                "customerId"
              ],
              "id": "searchads360.customers.adGroupAssets.mutate",
              "path": "v23/customers/{+customerId}/adGroupAssets:mutate"
            }
          }
        },
        "adGroupCustomizers": {
          "methods": {
            "mutate": {
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateAdGroupCustomizersRequest"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "flatPath": "v23/customers/{customersId}/adGroupCustomizers:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateAdGroupCustomizersResponse"
              },
              "parameters": {
                "customerId": {
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$",
                  "type": "string",
                  "description": "Required. The ID of the customer whose ad group customizers are being modified."
                }
              },
              "httpMethod": "POST",
              "description": "Creates, updates or removes ad group customizers. Operation statuses are returned.",
              "parameterOrder": [
                "customerId"
              ],
              "path": "v23/customers/{+customerId}/adGroupCustomizers:mutate",
              "id": "searchads360.customers.adGroupCustomizers.mutate"
            }
          }
        },
        "assetGroupAssets": {
          "methods": {
            "mutate": {
              "parameterOrder": [
                "customerId"
              ],
              "id": "searchads360.customers.assetGroupAssets.mutate",
              "path": "v23/customers/{+customerId}/assetGroupAssets:mutate",
              "httpMethod": "POST",
              "description": "Creates, updates or removes asset group assets. Operation statuses are returned.",
              "parameters": {
                "customerId": {
                  "type": "string",
                  "description": "Required. The ID of the customer whose asset group assets are being modified.",
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$"
                }
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateAssetGroupAssetsRequest"
              },
              "flatPath": "v23/customers/{customersId}/assetGroupAssets:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateAssetGroupAssetsResponse"
              }
            }
          }
        },
        "localServices": {
          "methods": {
            "appendLeadConversation": {
              "httpMethod": "POST",
              "description": "RPC to append Local Services Lead Conversation resources to Local Services Lead resources.",
              "id": "searchads360.customers.localServices.appendLeadConversation",
              "path": "v23/customers/{+customerId}/localServices:appendLeadConversation",
              "parameterOrder": [
                "customerId"
              ],
              "flatPath": "v23/customers/{customersId}/localServices:appendLeadConversation",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__AppendLeadConversationResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__AppendLeadConversationRequest"
              },
              "parameters": {
                "customerId": {
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$",
                  "type": "string",
                  "description": "Required. The Id of the customer which owns the leads onto which the conversations will be appended."
                }
              }
            }
          }
        },
        "campaignBidModifiers": {
          "methods": {
            "mutate": {
              "flatPath": "v23/customers/{customersId}/campaignBidModifiers:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateCampaignBidModifiersResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateCampaignBidModifiersRequest"
              },
              "parameters": {
                "customerId": {
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$",
                  "type": "string",
                  "description": "Required. ID of the customer whose campaign bid modifiers are being modified."
                }
              },
              "httpMethod": "POST",
              "description": "Creates, updates, or removes campaign bid modifiers. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [ContextError]() [CriterionError]() [DatabaseError]() [DateError]() [DistinctError]() [FieldError]() [HeaderError]() [IdError]() [InternalError]() [MutateError]() [NewResourceCreationError]() [NotEmptyError]() [NullError]() [OperatorError]() [QuotaError]() [RangeError]() [RequestError]() [SizeLimitError]() [StringFormatError]() [StringLengthError]()",
              "id": "searchads360.customers.campaignBidModifiers.mutate",
              "path": "v23/customers/{+customerId}/campaignBidModifiers:mutate",
              "parameterOrder": [
                "customerId"
              ]
            }
          }
        },
        "customerUserAccessInvitations": {
          "methods": {
            "mutate": {
              "httpMethod": "POST",
              "description": "Creates or removes an access invitation. List of thrown errors: [AccessInvitationError]() [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
              "parameterOrder": [
                "customerId"
              ],
              "path": "v23/customers/{+customerId}/customerUserAccessInvitations:mutate",
              "id": "searchads360.customers.customerUserAccessInvitations.mutate",
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateCustomerUserAccessInvitationRequest"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "flatPath": "v23/customers/{customersId}/customerUserAccessInvitations:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateCustomerUserAccessInvitationResponse"
              },
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer whose access invitation is being modified.",
                  "type": "string",
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "required": true
                }
              }
            }
          }
        },
        "AdGroupCriterionCustomizers": {
          "methods": {
            "mutate": {
              "httpMethod": "POST",
              "description": "Creates, updates or removes ad group criterion customizers. Operation statuses are returned.",
              "parameterOrder": [
                "customerId"
              ],
              "id": "searchads360.customers.AdGroupCriterionCustomizers.mutate",
              "path": "v23/customers/{+customerId}/AdGroupCriterionCustomizers:mutate",
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateAdGroupCriterionCustomizersRequest"
              },
              "flatPath": "v23/customers/{customersId}/AdGroupCriterionCustomizers:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateAdGroupCriterionCustomizersResponse"
              },
              "parameters": {
                "customerId": {
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$",
                  "type": "string",
                  "description": "Required. The ID of the customer whose ad group criterion customizers are being modified."
                }
              }
            }
          }
        },
        "adGroupCriteria": {
          "methods": {
            "mutate": {
              "httpMethod": "POST",
              "description": "Creates, updates, or removes criteria. Operation statuses are returned. List of thrown errors: [AdGroupCriterionError]() [AdxError]() [AuthenticationError]() [AuthorizationError]() [BiddingError]() [BiddingStrategyError]() [CollectionSizeError]() [ContextError]() [CriterionError]() [DatabaseError]() [DateError]() [DistinctError]() [FieldError]() [FieldMaskError]() [HeaderError]() [IdError]() [InternalError]() [MultiplierError]() [MutateError]() [NewResourceCreationError]() [NotEmptyError]() [NullError]() [OperationAccessDeniedError]() [OperatorError]() [PolicyViolationError]() [QuotaError]() [RangeError]() [RequestError]() [ResourceCountLimitExceededError]() [SizeLimitError]() [StringFormatError]() [StringLengthError]() [UrlFieldError]()",
              "parameterOrder": [
                "customerId"
              ],
              "id": "searchads360.customers.adGroupCriteria.mutate",
              "path": "v23/customers/{+customerId}/adGroupCriteria:mutate",
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateAdGroupCriteriaRequest"
              },
              "flatPath": "v23/customers/{customersId}/adGroupCriteria:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateAdGroupCriteriaResponse"
              },
              "parameters": {
                "customerId": {
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$",
                  "type": "string",
                  "description": "Required. ID of the customer whose criteria are being modified."
                }
              }
            }
          }
        },
        "conversionCustomVariables": {
          "methods": {
            "mutate": {
              "parameters": {
                "customerId": {
                  "type": "string",
                  "description": "Required. The ID of the customer whose conversion custom variables are being modified.",
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$"
                }
              },
              "flatPath": "v23/customers/{customersId}/conversionCustomVariables:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateConversionCustomVariablesResponse"
              },
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateConversionCustomVariablesRequest"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "path": "v23/customers/{+customerId}/conversionCustomVariables:mutate",
              "id": "searchads360.customers.conversionCustomVariables.mutate",
              "parameterOrder": [
                "customerId"
              ],
              "httpMethod": "POST",
              "description": "Creates or updates conversion custom variables. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [ConversionCustomVariableError]() [DatabaseError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()"
            }
          }
        },
        "recommendationSubscriptions": {
          "methods": {
            "mutateRecommendationSubscription": {
              "httpMethod": "POST",
              "description": "Mutates given subscription with corresponding apply parameters. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [FieldError]() [HeaderError]() [InternalError]() [MutateError]() [QuotaError]() [RecommendationError]() [RecommendationSubscriptionError]() [RequestError]() [UrlFieldError]()",
              "parameterOrder": [
                "customerId"
              ],
              "id": "searchads360.customers.recommendationSubscriptions.mutateRecommendationSubscription",
              "path": "v23/customers/{+customerId}/recommendationSubscriptions:mutateRecommendationSubscription",
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateRecommendationSubscriptionRequest"
              },
              "flatPath": "v23/customers/{customersId}/recommendationSubscriptions:mutateRecommendationSubscription",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateRecommendationSubscriptionResponse"
              },
              "parameters": {
                "customerId": {
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "required": true,
                  "description": "Required. The ID of the subscribing customer.",
                  "type": "string"
                }
              }
            }
          }
        },
        "customerConversionGoals": {
          "methods": {
            "mutate": {
              "flatPath": "v23/customers/{customersId}/customerConversionGoals:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateCustomerConversionGoalsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateCustomerConversionGoalsRequest"
              },
              "parameters": {
                "customerId": {
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$",
                  "type": "string",
                  "description": "Required. The ID of the customer whose customer conversion goals are being modified."
                }
              },
              "httpMethod": "POST",
              "description": "Creates, updates or removes customer conversion goals. Operation statuses are returned.",
              "id": "searchads360.customers.customerConversionGoals.mutate",
              "path": "v23/customers/{+customerId}/customerConversionGoals:mutate",
              "parameterOrder": [
                "customerId"
              ]
            }
          }
        },
        "biddingStrategies": {
          "methods": {
            "mutate": {
              "httpMethod": "POST",
              "description": "Creates, updates, or removes bidding strategies. Operation statuses are returned. List of thrown errors: [AdxError]() [AuthenticationError]() [AuthorizationError]() [BiddingError]() [BiddingStrategyError]() [ContextError]() [DatabaseError]() [DateError]() [DistinctError]() [FieldError]() [FieldMaskError]() [HeaderError]() [IdError]() [InternalError]() [MutateError]() [NewResourceCreationError]() [NotEmptyError]() [NullError]() [OperationAccessDeniedError]() [OperatorError]() [QuotaError]() [RangeError]() [RequestError]() [SizeLimitError]() [StringFormatError]() [StringLengthError]()",
              "parameterOrder": [
                "customerId"
              ],
              "path": "v23/customers/{+customerId}/biddingStrategies:mutate",
              "id": "searchads360.customers.biddingStrategies.mutate",
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateBiddingStrategiesRequest"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "flatPath": "v23/customers/{customersId}/biddingStrategies:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateBiddingStrategiesResponse"
              },
              "parameters": {
                "customerId": {
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$",
                  "type": "string",
                  "description": "Required. The ID of the customer whose bidding strategies are being modified."
                }
              }
            }
          }
        },
        "labels": {
          "methods": {
            "mutate": {
              "parameters": {
                "customerId": {
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$",
                  "type": "string",
                  "description": "Required. ID of the customer whose labels are being modified."
                }
              },
              "flatPath": "v23/customers/{customersId}/labels:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateLabelsResponse"
              },
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateLabelsRequest"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "path": "v23/customers/{+customerId}/labels:mutate",
              "id": "searchads360.customers.labels.mutate",
              "parameterOrder": [
                "customerId"
              ],
              "httpMethod": "POST",
              "description": "Creates, updates, or removes labels. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [DateError]() [DistinctError]() [FieldError]() [FieldMaskError]() [HeaderError]() [IdError]() [InternalError]() [LabelError]() [MutateError]() [NewResourceCreationError]() [NotEmptyError]() [NullError]() [OperatorError]() [QuotaError]() [RangeError]() [RequestError]() [ResourceCountLimitExceededError]() [SizeLimitError]() [StringFormatError]() [StringLengthError]()"
            }
          }
        },
        "customColumns": {
          "methods": {
            "list": {
              "path": "v23/customers/{+customerId}/customColumns",
              "id": "searchads360.customers.customColumns.list",
              "parameterOrder": [
                "customerId"
              ],
              "httpMethod": "GET",
              "description": "Returns all the custom columns associated with the customer in full detail.",
              "parameters": {
                "customerId": {
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$",
                  "type": "string",
                  "description": "Required. The ID of the customer to apply the CustomColumn list operation to."
                }
              },
              "flatPath": "v23/customers/{customersId}/customColumns",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__ListCustomColumnsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ]
            },
            "get": {
              "httpMethod": "GET",
              "description": "Returns the requested custom column in full detail.",
              "parameterOrder": [
                "resourceName"
              ],
              "path": "v23/{+resourceName}",
              "id": "searchads360.customers.customColumns.get",
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "flatPath": "v23/customers/{customersId}/customColumns/{customColumnsId}",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Resources__CustomColumn"
              },
              "parameters": {
                "resourceName": {
                  "description": "Required. The resource name of the custom column to fetch.",
                  "type": "string",
                  "pattern": "^customers/[^/]+/customColumns/[^/]+$",
                  "location": "path",
                  "required": true
                }
              }
            }
          }
        },
        "customerUserAccesses": {
          "methods": {
            "mutate": {
              "parameters": {
                "customerId": {
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$",
                  "type": "string",
                  "description": "Required. The ID of the customer being modified."
                }
              },
              "flatPath": "v23/customers/{customersId}/customerUserAccesses:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateCustomerUserAccessResponse"
              },
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateCustomerUserAccessRequest"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "path": "v23/customers/{+customerId}/customerUserAccesses:mutate",
              "id": "searchads360.customers.customerUserAccesses.mutate",
              "parameterOrder": [
                "customerId"
              ],
              "httpMethod": "POST",
              "description": "Updates, removes permission of a user on a given customer. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [CustomerUserAccessError]() [FieldMaskError]() [HeaderError]() [InternalError]() [MutateError]() [QuotaError]() [RequestError]()"
            }
          }
        },
        "audiences": {
          "methods": {
            "mutate": {
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateAudiencesRequest"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "flatPath": "v23/customers/{customersId}/audiences:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateAudiencesResponse"
              },
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer whose audiences are being modified.",
                  "type": "string",
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "required": true
                }
              },
              "httpMethod": "POST",
              "description": "Creates audiences. Operation statuses are returned. List of thrown errors: [AudienceError]()",
              "parameterOrder": [
                "customerId"
              ],
              "path": "v23/customers/{+customerId}/audiences:mutate",
              "id": "searchads360.customers.audiences.mutate"
            }
          }
        },
        "CampaignGoalConfigs": {
          "methods": {
            "mutate": {
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateCampaignGoalConfigsRequest"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "flatPath": "v23/customers/{customersId}/CampaignGoalConfigs:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateCampaignGoalConfigsResponse"
              },
              "parameters": {
                "customerId": {
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$",
                  "type": "string",
                  "description": "Required. The ID of the customer whose campaign goal configs are being modified."
                }
              },
              "httpMethod": "POST",
              "description": "Create or update campaign goal configs. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]() [CampaignGoalConfigError]() [GoalServicesError]()",
              "parameterOrder": [
                "customerId"
              ],
              "path": "v23/customers/{+customerId}/CampaignGoalConfigs:mutate",
              "id": "searchads360.customers.CampaignGoalConfigs.mutate"
            }
          }
        },
        "localServicesLeads": {
          "methods": {
            "provideLeadFeedback": {
              "parameters": {
                "resourceName": {
                  "type": "string",
                  "description": "Required. The resource name of the local services lead that for which the feedback is being provided.",
                  "location": "path",
                  "required": true,
                  "pattern": "^customers/[^/]+/localServicesLeads/[^/]+$"
                }
              },
              "flatPath": "v23/customers/{customersId}/localServicesLeads/{localServicesLeadsId}:provideLeadFeedback",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__ProvideLeadFeedbackResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__ProvideLeadFeedbackRequest"
              },
              "id": "searchads360.customers.localServicesLeads.provideLeadFeedback",
              "path": "v23/{+resourceName}:provideLeadFeedback",
              "parameterOrder": [
                "resourceName"
              ],
              "httpMethod": "POST",
              "description": "RPC to provide feedback on Local Services Lead resources."
            }
          }
        },
        "campaignCustomizers": {
          "methods": {
            "mutate": {
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateCampaignCustomizersRequest"
              },
              "flatPath": "v23/customers/{customersId}/campaignCustomizers:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateCampaignCustomizersResponse"
              },
              "parameters": {
                "customerId": {
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$",
                  "type": "string",
                  "description": "Required. The ID of the customer whose campaign customizers are being modified."
                }
              },
              "httpMethod": "POST",
              "description": "Creates, updates or removes campaign customizers. Operation statuses are returned.",
              "parameterOrder": [
                "customerId"
              ],
              "id": "searchads360.customers.campaignCustomizers.mutate",
              "path": "v23/customers/{+customerId}/campaignCustomizers:mutate"
            }
          }
        },
        "keywordPlanAdGroups": {
          "methods": {
            "mutate": {
              "parameterOrder": [
                "customerId"
              ],
              "id": "searchads360.customers.keywordPlanAdGroups.mutate",
              "path": "v23/customers/{+customerId}/keywordPlanAdGroups:mutate",
              "httpMethod": "POST",
              "description": "Creates, updates, or removes Keyword Plan ad groups. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [FieldError]() [FieldMaskError]() [HeaderError]() [InternalError]() [KeywordPlanAdGroupError]() [KeywordPlanError]() [MutateError]() [NewResourceCreationError]() [QuotaError]() [RequestError]() [ResourceCountLimitExceededError]()",
              "parameters": {
                "customerId": {
                  "type": "string",
                  "description": "Required. The ID of the customer whose Keyword Plan ad groups are being modified.",
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$"
                }
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateKeywordPlanAdGroupsRequest"
              },
              "flatPath": "v23/customers/{customersId}/keywordPlanAdGroups:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateKeywordPlanAdGroupsResponse"
              }
            }
          }
        },
        "assetGroups": {
          "methods": {
            "mutate": {
              "path": "v23/customers/{+customerId}/assetGroups:mutate",
              "id": "searchads360.customers.assetGroups.mutate",
              "parameterOrder": [
                "customerId"
              ],
              "httpMethod": "POST",
              "description": "Creates, updates or removes asset groups. Operation statuses are returned.",
              "parameters": {
                "customerId": {
                  "type": "string",
                  "description": "Required. The ID of the customer whose asset groups are being modified.",
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$"
                }
              },
              "flatPath": "v23/customers/{customersId}/assetGroups:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateAssetGroupsResponse"
              },
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateAssetGroupsRequest"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ]
            }
          }
        },
        "assets": {
          "methods": {
            "mutate": {
              "parameters": {
                "customerId": {
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "required": true,
                  "description": "Required. The ID of the customer whose assets are being modified.",
                  "type": "string"
                }
              },
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateAssetsRequest"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "flatPath": "v23/customers/{customersId}/assets:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateAssetsResponse"
              },
              "parameterOrder": [
                "customerId"
              ],
              "path": "v23/customers/{+customerId}/assets:mutate",
              "id": "searchads360.customers.assets.mutate",
              "httpMethod": "POST",
              "description": "Creates assets. Operation statuses are returned. List of thrown errors: [AssetError]() [AuthenticationError]() [AuthorizationError]() [CollectionSizeError]() [CurrencyCodeError]() [DatabaseError]() [DateError]() [DistinctError]() [FieldError]() [FieldMaskError]() [HeaderError]() [IdError]() [InternalError]() [ListOperationError]() [MediaUploadError]() [MutateError]() [NotAllowlistedError]() [NotEmptyError]() [OperatorError]() [QuotaError]() [RangeError]() [RequestError]() [SizeLimitError]() [StringFormatError]() [StringLengthError]() [UrlFieldError]() [YoutubeVideoRegistrationError]()"
            }
          }
        },
        "campaignLifecycleGoal": {
          "methods": {
            "configureCampaignLifecycleGoals": {
              "flatPath": "v23/customers/{customersId}/campaignLifecycleGoal:configureCampaignLifecycleGoals",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__ConfigureCampaignLifecycleGoalsResponse"
              },
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__ConfigureCampaignLifecycleGoalsRequest"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer performing the upload.",
                  "type": "string",
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "required": true
                }
              },
              "httpMethod": "POST",
              "description": "Process the given campaign lifecycle configurations. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [CampaignLifecycleGoalConfigError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
              "path": "v23/customers/{+customerId}/campaignLifecycleGoal:configureCampaignLifecycleGoals",
              "id": "searchads360.customers.campaignLifecycleGoal.configureCampaignLifecycleGoals",
              "parameterOrder": [
                "customerId"
              ]
            }
          }
        },
        "campaignAssetSets": {
          "methods": {
            "mutate": {
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateCampaignAssetSetsRequest"
              },
              "flatPath": "v23/customers/{customersId}/campaignAssetSets:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateCampaignAssetSetsResponse"
              },
              "parameters": {
                "customerId": {
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$",
                  "type": "string",
                  "description": "Required. The ID of the customer whose campaign asset sets are being modified."
                }
              },
              "httpMethod": "POST",
              "description": "Creates, updates or removes campaign asset sets. Operation statuses are returned.",
              "parameterOrder": [
                "customerId"
              ],
              "id": "searchads360.customers.campaignAssetSets.mutate",
              "path": "v23/customers/{+customerId}/campaignAssetSets:mutate"
            }
          }
        },
        "campaignConversionGoals": {
          "methods": {
            "mutate": {
              "httpMethod": "POST",
              "description": "Creates, updates or removes campaign conversion goals. Operation statuses are returned.",
              "id": "searchads360.customers.campaignConversionGoals.mutate",
              "path": "v23/customers/{+customerId}/campaignConversionGoals:mutate",
              "parameterOrder": [
                "customerId"
              ],
              "flatPath": "v23/customers/{customersId}/campaignConversionGoals:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateCampaignConversionGoalsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateCampaignConversionGoalsRequest"
              },
              "parameters": {
                "customerId": {
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "required": true,
                  "description": "Required. The ID of the customer whose campaign conversion goals are being modified.",
                  "type": "string"
                }
              }
            }
          }
        },
        "invoices": {
          "methods": {
            "list": {
              "parameterOrder": [
                "customerId"
              ],
              "id": "searchads360.customers.invoices.list",
              "path": "v23/customers/{+customerId}/invoices",
              "httpMethod": "GET",
              "description": "Returns all invoices associated with a billing setup, for a given month. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [FieldError]() [HeaderError]() [InternalError]() [InvoiceError]() [QuotaError]() [RequestError]()",
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer to fetch invoices for.",
                  "type": "string",
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "required": true
                },
                "issueYear": {
                  "description": "Required. The issue year to retrieve invoices, in yyyy format. Only invoices issued in 2019 or later can be retrieved.",
                  "type": "string",
                  "location": "query"
                },
                "issueMonth": {
                  "location": "query",
                  "enum": [
                    "UNSPECIFIED",
                    "UNKNOWN",
                    "JANUARY",
                    "FEBRUARY",
                    "MARCH",
                    "APRIL",
                    "MAY",
                    "JUNE",
                    "JULY",
                    "AUGUST",
                    "SEPTEMBER",
                    "OCTOBER",
                    "NOVEMBER",
                    "DECEMBER"
                  ],
                  "description": "Required. The issue month to retrieve invoices.",
                  "type": "string",
                  "enumDescriptions": [
                    "Not specified.",
                    "The value is unknown in this version.",
                    "January.",
                    "February.",
                    "March.",
                    "April.",
                    "May.",
                    "June.",
                    "July.",
                    "August.",
                    "September.",
                    "October.",
                    "November.",
                    "December."
                  ]
                },
                "includeGranularLevelInvoiceDetails": {
                  "location": "query",
                  "description": "Optional. When true, the response will include more granular level invoice details such as campaign level cost breakdown, itemized regulatory costs and adjustments. The default value is false.",
                  "type": "boolean"
                },
                "billingSetup": {
                  "location": "query",
                  "type": "string",
                  "description": "Required. The billing setup resource name of the requested invoices. `customers/{customer_id}/billingSetups/{billing_setup_id}`"
                }
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "flatPath": "v23/customers/{customersId}/invoices",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__ListInvoicesResponse"
              }
            }
          }
        },
        "customerClientLinks": {
          "methods": {
            "mutate": {
              "path": "v23/customers/{+customerId}/customerClientLinks:mutate",
              "id": "searchads360.customers.customerClientLinks.mutate",
              "parameterOrder": [
                "customerId"
              ],
              "httpMethod": "POST",
              "description": "Creates or updates a customer client link. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [FieldError]() [FieldMaskError]() [HeaderError]() [InternalError]() [ManagerLinkError]() [MutateError]() [NewResourceCreationError]() [QuotaError]() [RequestError]()",
              "parameters": {
                "customerId": {
                  "type": "string",
                  "description": "Required. The ID of the customer whose customer link are being modified.",
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$"
                }
              },
              "flatPath": "v23/customers/{customersId}/customerClientLinks:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateCustomerClientLinkResponse"
              },
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateCustomerClientLinkRequest"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ]
            }
          }
        },
        "customizerAttributes": {
          "methods": {
            "mutate": {
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateCustomizerAttributesRequest"
              },
              "flatPath": "v23/customers/{customersId}/customizerAttributes:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateCustomizerAttributesResponse"
              },
              "parameters": {
                "customerId": {
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "required": true,
                  "description": "Required. The ID of the customer whose customizer attributes are being modified.",
                  "type": "string"
                }
              },
              "httpMethod": "POST",
              "description": "Creates, updates or removes customizer attributes. Operation statuses are returned.",
              "parameterOrder": [
                "customerId"
              ],
              "id": "searchads360.customers.customizerAttributes.mutate",
              "path": "v23/customers/{+customerId}/customizerAttributes:mutate"
            }
          }
        },
        "experimentArms": {
          "methods": {
            "mutate": {
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateExperimentArmsRequest"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "flatPath": "v23/customers/{customersId}/experimentArms:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateExperimentArmsResponse"
              },
              "parameters": {
                "customerId": {
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$",
                  "type": "string",
                  "description": "Required. The ID of the customer whose experiments are being modified."
                }
              },
              "httpMethod": "POST",
              "description": "Creates, updates, or removes experiment arms. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [ExperimentArmError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
              "parameterOrder": [
                "customerId"
              ],
              "path": "v23/customers/{+customerId}/experimentArms:mutate",
              "id": "searchads360.customers.experimentArms.mutate"
            }
          }
        },
        "campaignCriteria": {
          "methods": {
            "mutate": {
              "httpMethod": "POST",
              "description": "Creates, updates, or removes criteria. Operation statuses are returned. List of thrown errors: [AdxError]() [AuthenticationError]() [AuthorizationError]() [CampaignCriterionError]() [CollectionSizeError]() [ContextError]() [CriterionError]() [DatabaseError]() [DistinctError]() [FieldError]() [FieldMaskError]() [FunctionError]() [HeaderError]() [IdError]() [InternalError]() [MutateError]() [NewResourceCreationError]() [NotEmptyError]() [NullError]() [OperationAccessDeniedError]() [OperatorError]() [QuotaError]() [RangeError]() [RegionCodeError]() [RequestError]() [ResourceCountLimitExceededError]() [SizeLimitError]() [StringFormatError]() [StringLengthError]()",
              "path": "v23/customers/{+customerId}/campaignCriteria:mutate",
              "id": "searchads360.customers.campaignCriteria.mutate",
              "parameterOrder": [
                "customerId"
              ],
              "flatPath": "v23/customers/{customersId}/campaignCriteria:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateCampaignCriteriaResponse"
              },
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateCampaignCriteriaRequest"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "parameters": {
                "customerId": {
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$",
                  "type": "string",
                  "description": "Required. The ID of the customer whose criteria are being modified."
                }
              }
            }
          }
        },
        "productLinkInvitations": {
          "methods": {
            "create": {
              "httpMethod": "POST",
              "description": "Creates a product link invitation.",
              "id": "searchads360.customers.productLinkInvitations.create",
              "path": "v23/customers/{+customerId}/productLinkInvitations:create",
              "parameterOrder": [
                "customerId"
              ],
              "flatPath": "v23/customers/{customersId}/productLinkInvitations:create",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__CreateProductLinkInvitationResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__CreateProductLinkInvitationRequest"
              },
              "parameters": {
                "customerId": {
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "required": true,
                  "description": "Required. The ID of the customer being modified.",
                  "type": "string"
                }
              }
            },
            "update": {
              "httpMethod": "POST",
              "description": "Update a product link invitation.",
              "path": "v23/customers/{+customerId}/productLinkInvitations:update",
              "id": "searchads360.customers.productLinkInvitations.update",
              "parameterOrder": [
                "customerId"
              ],
              "flatPath": "v23/customers/{customersId}/productLinkInvitations:update",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__UpdateProductLinkInvitationResponse"
              },
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__UpdateProductLinkInvitationRequest"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "parameters": {
                "customerId": {
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "required": true,
                  "description": "Required. The ID of the customer being modified.",
                  "type": "string"
                }
              }
            },
            "remove": {
              "parameterOrder": [
                "customerId"
              ],
              "id": "searchads360.customers.productLinkInvitations.remove",
              "path": "v23/customers/{+customerId}/productLinkInvitations:remove",
              "httpMethod": "POST",
              "description": "Remove a product link invitation.",
              "parameters": {
                "customerId": {
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "required": true,
                  "description": "Required. The ID of the product link invitation being removed.",
                  "type": "string"
                }
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__RemoveProductLinkInvitationRequest"
              },
              "flatPath": "v23/customers/{customersId}/productLinkInvitations:remove",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__RemoveProductLinkInvitationResponse"
              }
            }
          }
        },
        "adGroupAdLabels": {
          "methods": {
            "mutate": {
              "httpMethod": "POST",
              "description": "Creates and removes ad group ad labels. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [HeaderError]() [InternalError]() [LabelError]() [MutateError]() [NewResourceCreationError]() [QuotaError]() [RequestError]()",
              "parameterOrder": [
                "customerId"
              ],
              "path": "v23/customers/{+customerId}/adGroupAdLabels:mutate",
              "id": "searchads360.customers.adGroupAdLabels.mutate",
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateAdGroupAdLabelsRequest"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "flatPath": "v23/customers/{customersId}/adGroupAdLabels:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateAdGroupAdLabelsResponse"
              },
              "parameters": {
                "customerId": {
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "required": true,
                  "description": "Required. ID of the customer whose ad group ad labels are being modified.",
                  "type": "string"
                }
              }
            }
          }
        },
        "Goals": {
          "methods": {
            "mutate": {
              "path": "v23/customers/{+customerId}/Goals:mutate",
              "id": "searchads360.customers.Goals.mutate",
              "parameterOrder": [
                "customerId"
              ],
              "httpMethod": "POST",
              "description": "Create or update goals. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]() [GoalError]() [GoalServicesError]()",
              "parameters": {
                "customerId": {
                  "type": "string",
                  "description": "Required. The ID of the customer whose goals are being modified.",
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$"
                }
              },
              "flatPath": "v23/customers/{customersId}/Goals:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateGoalsResponse"
              },
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateGoalsRequest"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ]
            }
          }
        },
        "conversionActions": {
          "methods": {
            "mutate": {
              "parameterOrder": [
                "customerId"
              ],
              "id": "searchads360.customers.conversionActions.mutate",
              "path": "v23/customers/{+customerId}/conversionActions:mutate",
              "httpMethod": "POST",
              "description": "Creates, updates or removes conversion actions. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [ConversionActionError]() [CurrencyCodeError]() [DatabaseError]() [FieldError]() [FieldMaskError]() [HeaderError]() [InternalError]() [MutateError]() [NewResourceCreationError]() [QuotaError]() [RangeError]() [RequestError]() [ResourceCountLimitExceededError]() [StringLengthError]()",
              "parameters": {
                "customerId": {
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$",
                  "type": "string",
                  "description": "Required. The ID of the customer whose conversion actions are being modified."
                }
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateConversionActionsRequest"
              },
              "flatPath": "v23/customers/{customersId}/conversionActions:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateConversionActionsResponse"
              }
            }
          }
        },
        "campaignLabels": {
          "methods": {
            "mutate": {
              "httpMethod": "POST",
              "description": "Creates and removes campaign-label relationships. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [FieldError]() [HeaderError]() [InternalError]() [LabelError]() [MutateError]() [NewResourceCreationError]() [QuotaError]() [RequestError]()",
              "parameterOrder": [
                "customerId"
              ],
              "id": "searchads360.customers.campaignLabels.mutate",
              "path": "v23/customers/{+customerId}/campaignLabels:mutate",
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateCampaignLabelsRequest"
              },
              "flatPath": "v23/customers/{customersId}/campaignLabels:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateCampaignLabelsResponse"
              },
              "parameters": {
                "customerId": {
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$",
                  "type": "string",
                  "description": "Required. ID of the customer whose campaign-label relationships are being modified."
                }
              }
            }
          }
        },
        "accountLinks": {
          "methods": {
            "create": {
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__CreateAccountLinkRequest"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "flatPath": "v23/customers/{customersId}/accountLinks:create",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__CreateAccountLinkResponse"
              },
              "parameters": {
                "customerId": {
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$",
                  "type": "string",
                  "description": "Required. The ID of the customer for which the account link is created."
                }
              },
              "httpMethod": "POST",
              "description": "Creates an account link. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [FieldError]() [HeaderError]() [InternalError]() [MutateError]() [QuotaError]() [RequestError]() [ThirdPartyAppAnalyticsLinkError]()",
              "parameterOrder": [
                "customerId"
              ],
              "path": "v23/customers/{+customerId}/accountLinks:create",
              "id": "searchads360.customers.accountLinks.create"
            },
            "mutate": {
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateAccountLinkRequest"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "flatPath": "v23/customers/{customersId}/accountLinks:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateAccountLinkResponse"
              },
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer being modified.",
                  "type": "string",
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "required": true
                }
              },
              "httpMethod": "POST",
              "description": "Creates or removes an account link. From V5, create is not supported through AccountLinkService.MutateAccountLink. Use AccountLinkService.CreateAccountLink instead. List of thrown errors: [AccountLinkError]() [AuthenticationError]() [AuthorizationError]() [FieldMaskError]() [HeaderError]() [InternalError]() [MutateError]() [QuotaError]() [RequestError]()",
              "parameterOrder": [
                "customerId"
              ],
              "path": "v23/customers/{+customerId}/accountLinks:mutate",
              "id": "searchads360.customers.accountLinks.mutate"
            }
          }
        },
        "biddingSeasonalityAdjustments": {
          "methods": {
            "mutate": {
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateBiddingSeasonalityAdjustmentsRequest"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "flatPath": "v23/customers/{customersId}/biddingSeasonalityAdjustments:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateBiddingSeasonalityAdjustmentsResponse"
              },
              "parameters": {
                "customerId": {
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$",
                  "type": "string",
                  "description": "Required. ID of the customer whose seasonality adjustments are being modified."
                }
              },
              "httpMethod": "POST",
              "description": "Creates, updates, or removes seasonality adjustments. Operation statuses are returned.",
              "parameterOrder": [
                "customerId"
              ],
              "path": "v23/customers/{+customerId}/biddingSeasonalityAdjustments:mutate",
              "id": "searchads360.customers.biddingSeasonalityAdjustments.mutate"
            }
          }
        },
        "campaignDrafts": {
          "methods": {
            "listAsyncErrors": {
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "flatPath": "v23/customers/{customersId}/campaignDrafts/{campaignDraftsId}:listAsyncErrors",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__ListCampaignDraftAsyncErrorsResponse"
              },
              "parameters": {
                "resourceName": {
                  "pattern": "^customers/[^/]+/campaignDrafts/[^/]+$",
                  "location": "path",
                  "required": true,
                  "description": "Required. The name of the campaign draft from which to retrieve the async errors.",
                  "type": "string"
                },
                "pageSize": {
                  "location": "query",
                  "type": "integer",
                  "format": "int32",
                  "description": "Number of elements to retrieve in a single page. When a page request is too large, the server may decide to further limit the number of returned resources."
                },
                "pageToken": {
                  "type": "string",
                  "description": "Token of the page to retrieve. If not specified, the first page of results will be returned. Use the value obtained from `next_page_token` in the previous response in order to request the next page of results.",
                  "location": "query"
                }
              },
              "httpMethod": "GET",
              "description": "Returns all errors that occurred during CampaignDraft promote. Throws an error if called before campaign draft is promoted. Supports standard list paging. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
              "parameterOrder": [
                "resourceName"
              ],
              "path": "v23/{+resourceName}:listAsyncErrors",
              "id": "searchads360.customers.campaignDrafts.listAsyncErrors"
            },
            "promote": {
              "httpMethod": "POST",
              "description": "Promotes the changes in a draft back to the base campaign. This method returns a Long Running Operation (LRO) indicating if the Promote is done. Use google.longrunning.Operations.GetOperation to poll the LRO until it is done. Only a done status is returned in the response. See the status in the Campaign Draft resource to determine if the promotion was successful. If the LRO failed, use CampaignDraftService.ListCampaignDraftAsyncErrors to view the list of error reasons. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [CampaignDraftError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
              "parameterOrder": [
                "campaignDraft"
              ],
              "id": "searchads360.customers.campaignDrafts.promote",
              "path": "v23/{+campaignDraft}:promote",
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__PromoteCampaignDraftRequest"
              },
              "flatPath": "v23/customers/{customersId}/campaignDrafts/{campaignDraftsId}:promote",
              "response": {
                "$ref": "GoogleLongrunning__Operation"
              },
              "parameters": {
                "campaignDraft": {
                  "location": "path",
                  "required": true,
                  "pattern": "^customers/[^/]+/campaignDrafts/[^/]+$",
                  "type": "string",
                  "description": "Required. The resource name of the campaign draft to promote."
                }
              }
            },
            "mutate": {
              "parameterOrder": [
                "customerId"
              ],
              "path": "v23/customers/{+customerId}/campaignDrafts:mutate",
              "id": "searchads360.customers.campaignDrafts.mutate",
              "httpMethod": "POST",
              "description": "Creates, updates, or removes campaign drafts. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [CampaignDraftError]() [DatabaseError]() [FieldError]() [HeaderError]() [InternalError]() [MutateError]() [QuotaError]() [RequestError]()",
              "parameters": {
                "customerId": {
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$",
                  "type": "string",
                  "description": "Required. The ID of the customer whose campaign drafts are being modified."
                }
              },
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateCampaignDraftsRequest"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "flatPath": "v23/customers/{customersId}/campaignDrafts:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateCampaignDraftsResponse"
              }
            }
          }
        },
        "keywordPlans": {
          "methods": {
            "mutate": {
              "httpMethod": "POST",
              "description": "Creates, updates, or removes keyword plans. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [FieldError]() [HeaderError]() [InternalError]() [KeywordPlanError]() [MutateError]() [NewResourceCreationError]() [QuotaError]() [RequestError]() [ResourceCountLimitExceededError]() [StringLengthError]()",
              "path": "v23/customers/{+customerId}/keywordPlans:mutate",
              "id": "searchads360.customers.keywordPlans.mutate",
              "parameterOrder": [
                "customerId"
              ],
              "flatPath": "v23/customers/{customersId}/keywordPlans:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateKeywordPlansResponse"
              },
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateKeywordPlansRequest"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "parameters": {
                "customerId": {
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$",
                  "type": "string",
                  "description": "Required. The ID of the customer whose keyword plans are being modified."
                }
              }
            }
          }
        },
        "customerLifecycleGoal": {
          "methods": {
            "configureCustomerLifecycleGoals": {
              "httpMethod": "POST",
              "description": "Process the given customer lifecycle configurations. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [CustomerLifecycleGoalConfigError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
              "path": "v23/customers/{+customerId}/customerLifecycleGoal:configureCustomerLifecycleGoals",
              "id": "searchads360.customers.customerLifecycleGoal.configureCustomerLifecycleGoals",
              "parameterOrder": [
                "customerId"
              ],
              "flatPath": "v23/customers/{customersId}/customerLifecycleGoal:configureCustomerLifecycleGoals",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__ConfigureCustomerLifecycleGoalsResponse"
              },
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__ConfigureCustomerLifecycleGoalsRequest"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "parameters": {
                "customerId": {
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$",
                  "type": "string",
                  "description": "Required. The ID of the customer performing the upload."
                }
              }
            }
          }
        },
        "dataLinks": {
          "methods": {
            "remove": {
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer for which the data link is updated.",
                  "type": "string",
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "required": true
                }
              },
              "flatPath": "v23/customers/{customersId}/dataLinks:remove",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__RemoveDataLinkResponse"
              },
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__RemoveDataLinkRequest"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "path": "v23/customers/{+customerId}/dataLinks:remove",
              "id": "searchads360.customers.dataLinks.remove",
              "parameterOrder": [
                "customerId"
              ],
              "httpMethod": "POST",
              "description": "Remove a data link. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [DataLinkError]() [FieldError]() [HeaderError]() [InternalError]() [MutateError]() [QuotaError]() [RequestError]()"
            },
            "create": {
              "httpMethod": "POST",
              "description": "Creates a data link. The requesting Google Ads account name and account ID will be shared with the third party (such as YouTube creators for video links) to whom you are creating the link with. Only customers on the allow-list can create data links. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [DataLinkError]() [FieldError]() [HeaderError]() [InternalError]() [MutateError]() [QuotaError]() [RequestError]()",
              "parameterOrder": [
                "customerId"
              ],
              "id": "searchads360.customers.dataLinks.create",
              "path": "v23/customers/{+customerId}/dataLinks:create",
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__CreateDataLinkRequest"
              },
              "flatPath": "v23/customers/{customersId}/dataLinks:create",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__CreateDataLinkResponse"
              },
              "parameters": {
                "customerId": {
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$",
                  "type": "string",
                  "description": "Required. The ID of the customer for which the data link is created."
                }
              }
            },
            "update": {
              "parameters": {
                "customerId": {
                  "type": "string",
                  "description": "Required. The ID of the customer for which the data link is created.",
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$"
                }
              },
              "flatPath": "v23/customers/{customersId}/dataLinks:update",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__UpdateDataLinkResponse"
              },
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__UpdateDataLinkRequest"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "path": "v23/customers/{+customerId}/dataLinks:update",
              "id": "searchads360.customers.dataLinks.update",
              "parameterOrder": [
                "customerId"
              ],
              "httpMethod": "POST",
              "description": "Update a data link. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [DataLinkError]() [FieldError]() [HeaderError]() [InternalError]() [MutateError]() [QuotaError]() [RequestError]()"
            }
          }
        },
        "userListCustomerTypes": {
          "methods": {
            "mutate": {
              "parameterOrder": [
                "customerId"
              ],
              "path": "v23/customers/{+customerId}/userListCustomerTypes:mutate",
              "id": "searchads360.customers.userListCustomerTypes.mutate",
              "httpMethod": "POST",
              "description": "Attach or remove user list customer types. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [UserListCustomerTypeError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
              "parameters": {
                "customerId": {
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "required": true,
                  "description": "Required. The ID of the customer whose user list customer types are being modified.",
                  "type": "string"
                }
              },
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateUserListCustomerTypesRequest"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "flatPath": "v23/customers/{customersId}/userListCustomerTypes:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateUserListCustomerTypesResponse"
              }
            }
          }
        },
        "assetSets": {
          "methods": {
            "mutate": {
              "flatPath": "v23/customers/{customersId}/assetSets:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateAssetSetsResponse"
              },
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateAssetSetsRequest"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "parameters": {
                "customerId": {
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$",
                  "type": "string",
                  "description": "Required. The ID of the customer whose asset sets are being modified."
                }
              },
              "httpMethod": "POST",
              "description": "Creates, updates or removes asset sets. Operation statuses are returned.",
              "path": "v23/customers/{+customerId}/assetSets:mutate",
              "id": "searchads360.customers.assetSets.mutate",
              "parameterOrder": [
                "customerId"
              ]
            }
          }
        },
        "keywordPlanCampaignKeywords": {
          "methods": {
            "mutate": {
              "httpMethod": "POST",
              "description": "Creates, updates, or removes Keyword Plan campaign keywords. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [FieldError]() [HeaderError]() [InternalError]() [KeywordPlanAdGroupKeywordError]() [KeywordPlanCampaignKeywordError]() [QuotaError]() [RequestError]() [ResourceCountLimitExceededError]()",
              "path": "v23/customers/{+customerId}/keywordPlanCampaignKeywords:mutate",
              "id": "searchads360.customers.keywordPlanCampaignKeywords.mutate",
              "parameterOrder": [
                "customerId"
              ],
              "flatPath": "v23/customers/{customersId}/keywordPlanCampaignKeywords:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateKeywordPlanCampaignKeywordsResponse"
              },
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateKeywordPlanCampaignKeywordsRequest"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer whose campaign keywords are being modified.",
                  "type": "string",
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "required": true
                }
              }
            }
          }
        },
        "customConversionGoals": {
          "methods": {
            "mutate": {
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateCustomConversionGoalsRequest"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "flatPath": "v23/customers/{customersId}/customConversionGoals:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateCustomConversionGoalsResponse"
              },
              "parameters": {
                "customerId": {
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "required": true,
                  "description": "Required. The ID of the customer whose custom conversion goals are being modified.",
                  "type": "string"
                }
              },
              "httpMethod": "POST",
              "description": "Creates, updates or removes custom conversion goals. Operation statuses are returned.",
              "parameterOrder": [
                "customerId"
              ],
              "path": "v23/customers/{+customerId}/customConversionGoals:mutate",
              "id": "searchads360.customers.customConversionGoals.mutate"
            }
          }
        },
        "billingSetups": {
          "methods": {
            "mutate": {
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateBillingSetupRequest"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "flatPath": "v23/customers/{customersId}/billingSetups:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateBillingSetupResponse"
              },
              "parameters": {
                "customerId": {
                  "type": "string",
                  "description": "Required. Id of the customer to apply the billing setup mutate operation to.",
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$"
                }
              },
              "httpMethod": "POST",
              "description": "Creates a billing setup, or cancels an existing billing setup. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [BillingSetupError]() [DateError]() [FieldError]() [HeaderError]() [InternalError]() [MutateError]() [QuotaError]() [RequestError]()",
              "parameterOrder": [
                "customerId"
              ],
              "path": "v23/customers/{+customerId}/billingSetups:mutate",
              "id": "searchads360.customers.billingSetups.mutate"
            }
          }
        },
        "customerAssetSets": {
          "methods": {
            "mutate": {
              "parameterOrder": [
                "customerId"
              ],
              "id": "searchads360.customers.customerAssetSets.mutate",
              "path": "v23/customers/{+customerId}/customerAssetSets:mutate",
              "httpMethod": "POST",
              "description": "Creates, or removes customer asset sets. Operation statuses are returned.",
              "parameters": {
                "customerId": {
                  "type": "string",
                  "description": "Required. The ID of the customer whose customer asset sets are being modified.",
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$"
                }
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateCustomerAssetSetsRequest"
              },
              "flatPath": "v23/customers/{customersId}/customerAssetSets:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateCustomerAssetSetsResponse"
              }
            }
          }
        },
        "biddingDataExclusions": {
          "methods": {
            "mutate": {
              "httpMethod": "POST",
              "description": "Creates, updates, or removes data exclusions. Operation statuses are returned.",
              "parameterOrder": [
                "customerId"
              ],
              "id": "searchads360.customers.biddingDataExclusions.mutate",
              "path": "v23/customers/{+customerId}/biddingDataExclusions:mutate",
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateBiddingDataExclusionsRequest"
              },
              "flatPath": "v23/customers/{customersId}/biddingDataExclusions:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateBiddingDataExclusionsResponse"
              },
              "parameters": {
                "customerId": {
                  "description": "Required. ID of the customer whose data exclusions are being modified.",
                  "type": "string",
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "required": true
                }
              }
            }
          }
        },
        "smartCampaignSettings": {
          "methods": {
            "getSmartCampaignStatus": {
              "parameters": {
                "resourceName": {
                  "description": "Required. The resource name of the Smart campaign setting belonging to the Smart campaign to fetch the status of.",
                  "type": "string",
                  "pattern": "^customers/[^/]+/smartCampaignSettings/[^/]+$",
                  "location": "path",
                  "required": true
                }
              },
              "flatPath": "v23/customers/{customersId}/smartCampaignSettings/{smartCampaignSettingsId}:getSmartCampaignStatus",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__GetSmartCampaignStatusResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "path": "v23/{+resourceName}:getSmartCampaignStatus",
              "id": "searchads360.customers.smartCampaignSettings.getSmartCampaignStatus",
              "parameterOrder": [
                "resourceName"
              ],
              "httpMethod": "GET",
              "description": "Returns the status of the requested Smart campaign."
            },
            "mutate": {
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer whose Smart campaign settings are being modified.",
                  "type": "string",
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "required": true
                }
              },
              "flatPath": "v23/customers/{customersId}/smartCampaignSettings:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateSmartCampaignSettingsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateSmartCampaignSettingsRequest"
              },
              "id": "searchads360.customers.smartCampaignSettings.mutate",
              "path": "v23/customers/{+customerId}/smartCampaignSettings:mutate",
              "parameterOrder": [
                "customerId"
              ],
              "httpMethod": "POST",
              "description": "Updates Smart campaign settings for campaigns."
            }
          }
        },
        "offlineUserDataJobs": {
          "methods": {
            "addOperations": {
              "parameterOrder": [
                "resourceName"
              ],
              "path": "v23/{+resourceName}:addOperations",
              "id": "searchads360.customers.offlineUserDataJobs.addOperations",
              "httpMethod": "POST",
              "description": "Adds operations to the offline user data job. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [FieldError]() [HeaderError]() [InternalError]() [MutateError]() [OfflineUserDataJobError]() [QuotaError]() [RequestError]()",
              "parameters": {
                "resourceName": {
                  "type": "string",
                  "description": "Required. The resource name of the OfflineUserDataJob.",
                  "location": "path",
                  "required": true,
                  "pattern": "^customers/[^/]+/offlineUserDataJobs/[^/]+$"
                }
              },
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__AddOfflineUserDataJobOperationsRequest"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "flatPath": "v23/customers/{customersId}/offlineUserDataJobs/{offlineUserDataJobsId}:addOperations",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__AddOfflineUserDataJobOperationsResponse"
              }
            },
            "run": {
              "flatPath": "v23/customers/{customersId}/offlineUserDataJobs/{offlineUserDataJobsId}:run",
              "response": {
                "$ref": "GoogleLongrunning__Operation"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__RunOfflineUserDataJobRequest"
              },
              "parameters": {
                "resourceName": {
                  "pattern": "^customers/[^/]+/offlineUserDataJobs/[^/]+$",
                  "location": "path",
                  "required": true,
                  "description": "Required. The resource name of the OfflineUserDataJob to run.",
                  "type": "string"
                }
              },
              "httpMethod": "POST",
              "description": "Runs the offline user data job. When finished, the long running operation will contain the processing result or failure information, if any. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [HeaderError]() [InternalError]() [OfflineUserDataJobError]() [QuotaError]() [RequestError]()",
              "id": "searchads360.customers.offlineUserDataJobs.run",
              "path": "v23/{+resourceName}:run",
              "parameterOrder": [
                "resourceName"
              ]
            },
            "create": {
              "parameters": {
                "customerId": {
                  "type": "string",
                  "description": "Required. The ID of the customer for which to create an offline user data job.",
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$"
                }
              },
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__CreateOfflineUserDataJobRequest"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "flatPath": "v23/customers/{customersId}/offlineUserDataJobs:create",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__CreateOfflineUserDataJobResponse"
              },
              "parameterOrder": [
                "customerId"
              ],
              "path": "v23/customers/{+customerId}/offlineUserDataJobs:create",
              "id": "searchads360.customers.offlineUserDataJobs.create",
              "httpMethod": "POST",
              "description": "Creates an offline user data job. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [FieldError]() [HeaderError]() [InternalError]() [NotAllowlistedError]() [OfflineUserDataJobError]() [QuotaError]() [RequestError]()"
            }
          }
        },
        "incentives": {
          "methods": {
            "applyIncentive": {
              "parameters": {
                "customerId": {
                  "type": "string",
                  "description": "The customer ID of the account that the incentive is being applied to.",
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$"
                },
                "selectedIncentiveId": {
                  "format": "int64",
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "required": true,
                  "description": "The incentive ID of this incentive. This is used to identify which incentive is selected by the user in the CYO flow.",
                  "type": "string"
                }
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__ApplyIncentiveRequest"
              },
              "flatPath": "v23/customers/{customersId}/incentives/{incentivesId}:applyIncentive",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__ApplyIncentiveResponse"
              },
              "parameterOrder": [
                "customerId",
                "selectedIncentiveId"
              ],
              "id": "searchads360.customers.incentives.applyIncentive",
              "path": "v23/customers/{+customerId}/incentives/{+selectedIncentiveId}:applyIncentive",
              "httpMethod": "POST",
              "description": "Applies the incentive for the ads customer."
            }
          }
        },
        "keywordPlanCampaigns": {
          "methods": {
            "mutate": {
              "httpMethod": "POST",
              "description": "Creates, updates, or removes Keyword Plan campaigns. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [FieldError]() [FieldMaskError]() [HeaderError]() [InternalError]() [KeywordPlanCampaignError]() [KeywordPlanError]() [ListOperationError]() [MutateError]() [QuotaError]() [RangeError]() [RequestError]() [ResourceCountLimitExceededError]()",
              "parameterOrder": [
                "customerId"
              ],
              "path": "v23/customers/{+customerId}/keywordPlanCampaigns:mutate",
              "id": "searchads360.customers.keywordPlanCampaigns.mutate",
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateKeywordPlanCampaignsRequest"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "flatPath": "v23/customers/{customersId}/keywordPlanCampaigns:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateKeywordPlanCampaignsResponse"
              },
              "parameters": {
                "customerId": {
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "required": true,
                  "description": "Required. The ID of the customer whose Keyword Plan campaigns are being modified.",
                  "type": "string"
                }
              }
            }
          }
        },
        "assetSetAssets": {
          "methods": {
            "mutate": {
              "httpMethod": "POST",
              "description": "Creates, updates or removes asset set assets. Operation statuses are returned.",
              "path": "v23/customers/{+customerId}/assetSetAssets:mutate",
              "id": "searchads360.customers.assetSetAssets.mutate",
              "parameterOrder": [
                "customerId"
              ],
              "flatPath": "v23/customers/{customersId}/assetSetAssets:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateAssetSetAssetsResponse"
              },
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateAssetSetAssetsRequest"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer whose asset set assets are being modified.",
                  "type": "string",
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "required": true
                }
              }
            }
          }
        },
        "recommendations": {
          "methods": {
            "apply": {
              "id": "searchads360.customers.recommendations.apply",
              "path": "v23/customers/{+customerId}/recommendations:apply",
              "parameterOrder": [
                "customerId"
              ],
              "httpMethod": "POST",
              "description": "Applies given recommendations with corresponding apply parameters. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [FieldError]() [HeaderError]() [InternalError]() [MutateError]() [QuotaError]() [RecommendationError]() [RequestError]() [UrlFieldError]()",
              "parameters": {
                "customerId": {
                  "type": "string",
                  "description": "Required. The ID of the customer with the recommendation.",
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$"
                }
              },
              "flatPath": "v23/customers/{customersId}/recommendations:apply",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__ApplyRecommendationResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__ApplyRecommendationRequest"
              }
            },
            "generate": {
              "parameterOrder": [
                "customerId"
              ],
              "path": "v23/customers/{+customerId}/recommendations:generate",
              "id": "searchads360.customers.recommendations.generate",
              "httpMethod": "POST",
              "description": "Generates Recommendations based off the requested recommendation_types. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QuotaError]() [RecommendationError]() [RequestError]()",
              "parameters": {
                "customerId": {
                  "type": "string",
                  "description": "Required. The ID of the customer generating recommendations.",
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$"
                }
              },
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__GenerateRecommendationsRequest"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "flatPath": "v23/customers/{customersId}/recommendations:generate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__GenerateRecommendationsResponse"
              }
            },
            "dismiss": {
              "httpMethod": "POST",
              "description": "Dismisses given recommendations. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QuotaError]() [RecommendationError]() [RequestError]()",
              "parameterOrder": [
                "customerId"
              ],
              "id": "searchads360.customers.recommendations.dismiss",
              "path": "v23/customers/{+customerId}/recommendations:dismiss",
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__DismissRecommendationRequest"
              },
              "flatPath": "v23/customers/{customersId}/recommendations:dismiss",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__DismissRecommendationResponse"
              },
              "parameters": {
                "customerId": {
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "required": true,
                  "description": "Required. The ID of the customer with the recommendation.",
                  "type": "string"
                }
              }
            }
          }
        },
        "customInterests": {
          "methods": {
            "mutate": {
              "httpMethod": "POST",
              "description": "Creates or updates custom interests. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [CriterionError]() [CustomInterestError]() [HeaderError]() [InternalError]() [MutateError]() [PolicyViolationError]() [QuotaError]() [RequestError]() [StringLengthError]()",
              "parameterOrder": [
                "customerId"
              ],
              "path": "v23/customers/{+customerId}/customInterests:mutate",
              "id": "searchads360.customers.customInterests.mutate",
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateCustomInterestsRequest"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "flatPath": "v23/customers/{customersId}/customInterests:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateCustomInterestsResponse"
              },
              "parameters": {
                "customerId": {
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "required": true,
                  "description": "Required. The ID of the customer whose custom interests are being modified.",
                  "type": "string"
                }
              }
            }
          }
        },
        "campaignSharedSets": {
          "methods": {
            "mutate": {
              "id": "searchads360.customers.campaignSharedSets.mutate",
              "path": "v23/customers/{+customerId}/campaignSharedSets:mutate",
              "parameterOrder": [
                "customerId"
              ],
              "httpMethod": "POST",
              "description": "Creates or removes campaign shared sets. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [CampaignSharedSetError]() [ContextError]() [DatabaseError]() [DateError]() [DistinctError]() [FieldError]() [HeaderError]() [IdError]() [InternalError]() [MutateError]() [NewResourceCreationError]() [NotEmptyError]() [NullError]() [OperatorError]() [QuotaError]() [RangeError]() [RequestError]() [SizeLimitError]() [StringFormatError]() [StringLengthError]()",
              "parameters": {
                "customerId": {
                  "type": "string",
                  "description": "Required. The ID of the customer whose campaign shared sets are being modified.",
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$"
                }
              },
              "flatPath": "v23/customers/{customersId}/campaignSharedSets:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateCampaignSharedSetsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateCampaignSharedSetsRequest"
              }
            }
          }
        },
        "customerLabels": {
          "methods": {
            "mutate": {
              "httpMethod": "POST",
              "description": "Creates and removes customer-label relationships. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [HeaderError]() [InternalError]() [LabelError]() [MutateError]() [QuotaError]() [RequestError]()",
              "path": "v23/customers/{+customerId}/customerLabels:mutate",
              "id": "searchads360.customers.customerLabels.mutate",
              "parameterOrder": [
                "customerId"
              ],
              "flatPath": "v23/customers/{customersId}/customerLabels:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateCustomerLabelsResponse"
              },
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateCustomerLabelsRequest"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "parameters": {
                "customerId": {
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "required": true,
                  "description": "Required. ID of the customer whose customer-label relationships are being modified.",
                  "type": "string"
                }
              }
            }
          }
        },
        "customerNegativeCriteria": {
          "methods": {
            "mutate": {
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer whose criteria are being modified.",
                  "type": "string",
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "required": true
                }
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateCustomerNegativeCriteriaRequest"
              },
              "flatPath": "v23/customers/{customersId}/customerNegativeCriteria:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateCustomerNegativeCriteriaResponse"
              },
              "parameterOrder": [
                "customerId"
              ],
              "id": "searchads360.customers.customerNegativeCriteria.mutate",
              "path": "v23/customers/{+customerId}/customerNegativeCriteria:mutate",
              "httpMethod": "POST",
              "description": "Creates or removes criteria. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [CriterionError]() [DatabaseError]() [FieldError]() [HeaderError]() [InternalError]() [MutateError]() [QuotaError]() [RequestError]()"
            }
          }
        },
        "searchAds360": {
          "methods": {
            "search": {
              "path": "v23/customers/{+customerId}/searchAds360:search",
              "id": "searchads360.customers.searchAds360.search",
              "parameterOrder": [
                "customerId"
              ],
              "httpMethod": "POST",
              "description": "Returns all rows that match the search query. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [ChangeEventError]() [ChangeStatusError]() [ClickViewError]() [HeaderError]() [InternalError]() [QueryError]() [QuotaError]() [RequestError]()",
              "parameters": {
                "customerId": {
                  "type": "string",
                  "description": "Required. The ID of the customer being queried.",
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$"
                }
              },
              "flatPath": "v23/customers/{customersId}/searchAds360:search",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__SearchSearchAds360Response"
              },
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__SearchSearchAds360Request"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ]
            },
            "mutate": {
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer whose resources are being modified.",
                  "type": "string",
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "required": true
                }
              },
              "flatPath": "v23/customers/{customersId}/searchAds360:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateSearchAds360Response"
              },
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateSearchAds360Request"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "path": "v23/customers/{+customerId}/searchAds360:mutate",
              "id": "searchads360.customers.searchAds360.mutate",
              "parameterOrder": [
                "customerId"
              ],
              "httpMethod": "POST",
              "description": "This method is essentially a wrapper around a series of mutate methods. The only features it offers over calling those methods directly are: - Atomic transactions - Temp resource names (described below) - Somewhat reduced latency over making a series of mutate calls Note: Only resources that support atomic transactions are included, so this method can't replace all calls to individual services. ## Atomic Transaction Benefits Atomicity makes error handling much easier. If you're making a series of changes and one fails, it can leave your account in an inconsistent state. With atomicity, you either reach the chosen state directly, or the request fails and you can retry. ## Temp Resource Names Temp resource names are a special type of resource name used to create a resource and reference that resource in the same request. For example, if a is created with `resource_name` equal to ``, that resource name can be reused in the `` field in the same request. That way, the two resources are created and linked atomically. To create a temp resource name, put a negative number in the part of the name that the server would normally allocate. Note: - Resources must be created with a temp name before the name can be reused. For example, the previous example would fail if the mutate order was reversed. - Temp names are not remembered across requests. - There's no limit to the number of temp names in a request. - Each temp name must use a unique negative number, even if the resource types differ. ## Latency It's important to group mutates by resource type or the request may time out and fail. Latency is roughly equal to a series of calls to individual mutate methods, where each change in resource type is a new call. For example, mutating is like 2 calls, while mutating is like 4 calls. List of thrown errors: [AdCustomizerError]() [AdError]() [AdGroupAdError]() [AdGroupCriterionError]() [AdGroupError]() [AssetError]() [AuthenticationError]() [AuthorizationError]() [BiddingError]() [CampaignBudgetError]() [CampaignCriterionError]() [CampaignError]() [CampaignExperimentError]() [CampaignSharedSetError]() [CollectionSizeError]() [ContextError]() [ConversionActionError]() [CriterionError]() [CustomerFeedError]() [DatabaseError]() [DateError]() [DateRangeError]() [DistinctError]() [ExtensionFeedItemError]() [ExtensionSettingError]() [FeedAttributeReferenceError]() [FeedError]() [FeedItemError]() [FeedItemSetError]() [FieldError]() [FieldMaskError]() [FunctionParsingError]() [HeaderError]() [ImageError]() [InternalError]() [KeywordPlanAdGroupKeywordError]() [KeywordPlanCampaignError]() [KeywordPlanError]() [LabelError]() [ListOperationError]() [MediaUploadError]() [MutateError]() [NewResourceCreationError]() [NullError]() [OperationAccessDeniedError]() [PolicyFindingError]() [PolicyViolationError]() [QuotaError]() [RangeError]() [RequestError]() [ResourceCountLimitExceededError]() [SettingError]() [SharedSetError]() [SizeLimitError]() [StringFormatError]() [StringLengthError]() [UrlFieldError]() [UserListError]() [YoutubeVideoRegistrationError]()"
            }
          }
        },
        "batchJobs": {
          "methods": {
            "mutate": {
              "flatPath": "v23/customers/{customersId}/batchJobs:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateBatchJobResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateBatchJobRequest"
              },
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer for which to create a batch job.",
                  "type": "string",
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "required": true
                }
              },
              "httpMethod": "POST",
              "description": "Mutates a batch job. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]() [ResourceCountLimitExceededError]()",
              "id": "searchads360.customers.batchJobs.mutate",
              "path": "v23/customers/{+customerId}/batchJobs:mutate",
              "parameterOrder": [
                "customerId"
              ]
            },
            "listResults": {
              "httpMethod": "GET",
              "description": "Returns the results of the batch job. The job must be done. Supports standard list paging. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [BatchJobError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
              "id": "searchads360.customers.batchJobs.listResults",
              "path": "v23/{+resourceName}:listResults",
              "parameterOrder": [
                "resourceName"
              ],
              "flatPath": "v23/customers/{customersId}/batchJobs/{batchJobsId}:listResults",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__ListBatchJobResultsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "parameters": {
                "resourceName": {
                  "pattern": "^customers/[^/]+/batchJobs/[^/]+$",
                  "location": "path",
                  "required": true,
                  "description": "Required. The resource name of the batch job whose results are being listed.",
                  "type": "string"
                },
                "pageSize": {
                  "location": "query",
                  "type": "integer",
                  "format": "int32"
                },
                "pageToken": {
                  "location": "query",
                  "type": "string",
                  "description": "Token of the page to retrieve. If not specified, the first page of results will be returned. Use the value obtained from `next_page_token` in the previous response in order to request the next page of results."
                },
                "responseContentType": {
                  "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned.",
                  "type": "string",
                  "enumDescriptions": [
                    "Not specified. Will return the resource name only in the response.",
                    "The mutate response will be the resource name.",
                    "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
                  ],
                  "enum": [
                    "UNSPECIFIED",
                    "RESOURCE_NAME_ONLY",
                    "MUTABLE_RESOURCE"
                  ],
                  "location": "query"
                }
              }
            },
            "run": {
              "flatPath": "v23/customers/{customersId}/batchJobs/{batchJobsId}:run",
              "response": {
                "$ref": "GoogleLongrunning__Operation"
              },
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__RunBatchJobRequest"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "parameters": {
                "resourceName": {
                  "pattern": "^customers/[^/]+/batchJobs/[^/]+$",
                  "location": "path",
                  "required": true,
                  "description": "Required. The resource name of the BatchJob to run.",
                  "type": "string"
                }
              },
              "httpMethod": "POST",
              "description": "Runs the batch job. The Operation.metadata field type is BatchJobMetadata. When finished, the long running operation will not contain errors or a response. Instead, use ListBatchJobResults to get the results of the job. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [BatchJobError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
              "path": "v23/{+resourceName}:run",
              "id": "searchads360.customers.batchJobs.run",
              "parameterOrder": [
                "resourceName"
              ]
            },
            "addOperations": {
              "flatPath": "v23/customers/{customersId}/batchJobs/{batchJobsId}:addOperations",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__AddBatchJobOperationsResponse"
              },
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__AddBatchJobOperationsRequest"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "parameters": {
                "resourceName": {
                  "pattern": "^customers/[^/]+/batchJobs/[^/]+$",
                  "location": "path",
                  "required": true,
                  "description": "Required. The resource name of the batch job.",
                  "type": "string"
                }
              },
              "httpMethod": "POST",
              "description": "Add operations to the batch job. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [BatchJobError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]() [ResourceCountLimitExceededError]()",
              "path": "v23/{+resourceName}:addOperations",
              "id": "searchads360.customers.batchJobs.addOperations",
              "parameterOrder": [
                "resourceName"
              ]
            }
          }
        },
        "campaignGroups": {
          "methods": {
            "mutate": {
              "parameterOrder": [
                "customerId"
              ],
              "id": "searchads360.customers.campaignGroups.mutate",
              "path": "v23/customers/{+customerId}/campaignGroups:mutate",
              "httpMethod": "POST",
              "description": "Creates, updates, or removes campaign groups. Operation statuses are returned.",
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer whose campaign groups are being modified.",
                  "type": "string",
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "required": true
                }
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateCampaignGroupsRequest"
              },
              "flatPath": "v23/customers/{customersId}/campaignGroups:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateCampaignGroupsResponse"
              }
            }
          }
        },
        "remarketingActions": {
          "methods": {
            "mutate": {
              "httpMethod": "POST",
              "description": "Creates or updates remarketing actions. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [ConversionActionError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
              "path": "v23/customers/{+customerId}/remarketingActions:mutate",
              "id": "searchads360.customers.remarketingActions.mutate",
              "parameterOrder": [
                "customerId"
              ],
              "flatPath": "v23/customers/{customersId}/remarketingActions:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateRemarketingActionsResponse"
              },
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateRemarketingActionsRequest"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "parameters": {
                "customerId": {
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "required": true,
                  "description": "Required. The ID of the customer whose remarketing actions are being modified.",
                  "type": "string"
                }
              }
            }
          }
        },
        "CustomerCustomizers": {
          "methods": {
            "mutate": {
              "httpMethod": "POST",
              "description": "Creates, updates or removes customer customizers. Operation statuses are returned.",
              "id": "searchads360.customers.CustomerCustomizers.mutate",
              "path": "v23/customers/{+customerId}/CustomerCustomizers:mutate",
              "parameterOrder": [
                "customerId"
              ],
              "flatPath": "v23/customers/{customersId}/CustomerCustomizers:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateCustomerCustomizersResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateCustomerCustomizersRequest"
              },
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer whose customer customizers are being modified.",
                  "type": "string",
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "required": true
                }
              }
            }
          }
        },
        "customerSkAdNetworkConversionValueSchemas": {
          "methods": {
            "mutate": {
              "parameterOrder": [
                "customerId"
              ],
              "id": "searchads360.customers.customerSkAdNetworkConversionValueSchemas.mutate",
              "path": "v23/customers/{+customerId}/customerSkAdNetworkConversionValueSchemas:mutate",
              "httpMethod": "POST",
              "description": "Creates or updates the CustomerSkAdNetworkConversionValueSchema. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [FieldError]() [InternalError]() [MutateError]()",
              "parameters": {
                "customerId": {
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "required": true,
                  "description": "The ID of the customer whose shared sets are being modified.",
                  "type": "string"
                }
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateCustomerSkAdNetworkConversionValueSchemaRequest"
              },
              "flatPath": "v23/customers/{customersId}/customerSkAdNetworkConversionValueSchemas:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateCustomerSkAdNetworkConversionValueSchemaResponse"
              }
            }
          }
        },
        "thirdPartyAppAnalyticsLinks": {
          "methods": {
            "regenerateShareableLinkId": {
              "parameters": {
                "resourceName": {
                  "type": "string",
                  "description": "Resource name of the third party app analytics link.",
                  "location": "path",
                  "required": true,
                  "pattern": "^customers/[^/]+/thirdPartyAppAnalyticsLinks/[^/]+$"
                }
              },
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__RegenerateShareableLinkIdRequest"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "flatPath": "v23/customers/{customersId}/thirdPartyAppAnalyticsLinks/{thirdPartyAppAnalyticsLinksId}:regenerateShareableLinkId",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__RegenerateShareableLinkIdResponse"
              },
              "parameterOrder": [
                "resourceName"
              ],
              "path": "v23/{+resourceName}:regenerateShareableLinkId",
              "id": "searchads360.customers.thirdPartyAppAnalyticsLinks.regenerateShareableLinkId",
              "httpMethod": "POST",
              "description": "Regenerate ThirdPartyAppAnalyticsLink.shareable_link_id that should be provided to the third party when setting up app analytics. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()"
            }
          }
        },
        "keywordPlanAdGroupKeywords": {
          "methods": {
            "mutate": {
              "httpMethod": "POST",
              "description": "Creates, updates, or removes Keyword Plan ad group keywords. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [FieldError]() [HeaderError]() [InternalError]() [KeywordPlanAdGroupKeywordError]() [KeywordPlanError]() [MutateError]() [QuotaError]() [RequestError]() [ResourceCountLimitExceededError]()",
              "id": "searchads360.customers.keywordPlanAdGroupKeywords.mutate",
              "path": "v23/customers/{+customerId}/keywordPlanAdGroupKeywords:mutate",
              "parameterOrder": [
                "customerId"
              ],
              "flatPath": "v23/customers/{customersId}/keywordPlanAdGroupKeywords:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateKeywordPlanAdGroupKeywordsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateKeywordPlanAdGroupKeywordsRequest"
              },
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer whose Keyword Plan ad group keywords are being modified.",
                  "type": "string",
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "required": true
                }
              }
            }
          }
        },
        "productLinks": {
          "methods": {
            "create": {
              "httpMethod": "POST",
              "description": "Creates a product link. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [FieldError]() [HeaderError]() [InternalError]() [MutateError]() [QuotaError]() [RequestError]()",
              "path": "v23/customers/{+customerId}/productLinks:create",
              "id": "searchads360.customers.productLinks.create",
              "parameterOrder": [
                "customerId"
              ],
              "flatPath": "v23/customers/{customersId}/productLinks:create",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__CreateProductLinkResponse"
              },
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__CreateProductLinkRequest"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer for which the product link is created.",
                  "type": "string",
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "required": true
                }
              }
            },
            "remove": {
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer being modified.",
                  "type": "string",
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "required": true
                }
              },
              "flatPath": "v23/customers/{customersId}/productLinks:remove",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__RemoveProductLinkResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__RemoveProductLinkRequest"
              },
              "id": "searchads360.customers.productLinks.remove",
              "path": "v23/customers/{+customerId}/productLinks:remove",
              "parameterOrder": [
                "customerId"
              ],
              "httpMethod": "POST",
              "description": "Removes a product link. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [FieldMaskError]() [HeaderError]() [InternalError]() [MutateError]() [QuotaError]() [RequestError]()"
            }
          }
        },
        "adGroupLabels": {
          "methods": {
            "mutate": {
              "httpMethod": "POST",
              "description": "Creates and removes ad group labels. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [FieldError]() [HeaderError]() [InternalError]() [LabelError]() [MutateError]() [NewResourceCreationError]() [QuotaError]() [RequestError]()",
              "id": "searchads360.customers.adGroupLabels.mutate",
              "path": "v23/customers/{+customerId}/adGroupLabels:mutate",
              "parameterOrder": [
                "customerId"
              ],
              "flatPath": "v23/customers/{customersId}/adGroupLabels:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateAdGroupLabelsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateAdGroupLabelsRequest"
              },
              "parameters": {
                "customerId": {
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "required": true,
                  "description": "Required. ID of the customer whose ad group labels are being modified.",
                  "type": "string"
                }
              }
            }
          }
        },
        "campaignBudgets": {
          "methods": {
            "mutate": {
              "flatPath": "v23/customers/{customersId}/campaignBudgets:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateCampaignBudgetsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateCampaignBudgetsRequest"
              },
              "parameters": {
                "customerId": {
                  "type": "string",
                  "description": "Required. The ID of the customer whose campaign budgets are being modified.",
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$"
                }
              },
              "httpMethod": "POST",
              "description": "Creates, updates, or removes campaign budgets. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [CampaignBudgetError]() [DatabaseError]() [DistinctError]() [FieldError]() [FieldMaskError]() [HeaderError]() [InternalError]() [MutateError]() [NewResourceCreationError]() [OperationAccessDeniedError]() [QuotaError]() [RangeError]() [RequestError]() [ResourceCountLimitExceededError]() [StringLengthError]()",
              "id": "searchads360.customers.campaignBudgets.mutate",
              "path": "v23/customers/{+customerId}/campaignBudgets:mutate",
              "parameterOrder": [
                "customerId"
              ]
            }
          }
        },
        "customerAssets": {
          "methods": {
            "mutate": {
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer whose customer assets are being modified.",
                  "type": "string",
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "required": true
                }
              },
              "flatPath": "v23/customers/{customersId}/customerAssets:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateCustomerAssetsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateCustomerAssetsRequest"
              },
              "id": "searchads360.customers.customerAssets.mutate",
              "path": "v23/customers/{+customerId}/customerAssets:mutate",
              "parameterOrder": [
                "customerId"
              ],
              "httpMethod": "POST",
              "description": "Creates, updates, or removes customer assets. Operation statuses are returned. List of thrown errors: [AssetLinkError]() [AuthenticationError]() [AuthorizationError]() [FieldError]() [HeaderError]() [InternalError]() [MutateError]() [QuotaError]() [RequestError]()"
            }
          }
        },
        "customerManagerLinks": {
          "methods": {
            "mutate": {
              "httpMethod": "POST",
              "description": "Updates customer manager links. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [FieldError]() [FieldMaskError]() [HeaderError]() [InternalError]() [ManagerLinkError]() [MutateError]() [QuotaError]() [RequestError]()",
              "path": "v23/customers/{+customerId}/customerManagerLinks:mutate",
              "id": "searchads360.customers.customerManagerLinks.mutate",
              "parameterOrder": [
                "customerId"
              ],
              "flatPath": "v23/customers/{customersId}/customerManagerLinks:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateCustomerManagerLinkResponse"
              },
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateCustomerManagerLinkRequest"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "parameters": {
                "customerId": {
                  "type": "string",
                  "description": "Required. The ID of the customer whose customer manager links are being modified.",
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$"
                }
              }
            },
            "moveManagerLink": {
              "httpMethod": "POST",
              "description": "Moves a client customer to a new manager customer. This simplifies the complex request that requires two operations to move a client customer to a new manager, for example: 1. Update operation with Status INACTIVE (previous manager) and, 2. Update operation with Status ACTIVE (new manager). List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [FieldError]() [HeaderError]() [InternalError]() [MutateError]() [QuotaError]() [RequestError]()",
              "id": "searchads360.customers.customerManagerLinks.moveManagerLink",
              "path": "v23/customers/{+customerId}/customerManagerLinks:moveManagerLink",
              "parameterOrder": [
                "customerId"
              ],
              "flatPath": "v23/customers/{customersId}/customerManagerLinks:moveManagerLink",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MoveManagerLinkResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MoveManagerLinkRequest"
              },
              "parameters": {
                "customerId": {
                  "type": "string",
                  "description": "Required. The ID of the client customer that is being moved.",
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$"
                }
              }
            }
          }
        },
        "sharedCriteria": {
          "methods": {
            "mutate": {
              "parameters": {
                "customerId": {
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "required": true,
                  "description": "Required. The ID of the customer whose shared criteria are being modified.",
                  "type": "string"
                }
              },
              "flatPath": "v23/customers/{customersId}/sharedCriteria:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateSharedCriteriaResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateSharedCriteriaRequest"
              },
              "id": "searchads360.customers.sharedCriteria.mutate",
              "path": "v23/customers/{+customerId}/sharedCriteria:mutate",
              "parameterOrder": [
                "customerId"
              ],
              "httpMethod": "POST",
              "description": "Creates or removes shared criteria. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [CriterionError]() [DatabaseError]() [DistinctError]() [FieldError]() [HeaderError]() [IdError]() [InternalError]() [MutateError]() [NotEmptyError]() [NullError]() [OperatorError]() [QuotaError]() [RangeError]() [RequestError]() [ResourceCountLimitExceededError]() [SizeLimitError]() [StringFormatError]() [StringLengthError]()"
            }
          }
        },
        "userLists": {
          "methods": {
            "mutate": {
              "flatPath": "v23/customers/{customersId}/userLists:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateUserListsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateUserListsRequest"
              },
              "parameters": {
                "customerId": {
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$",
                  "type": "string",
                  "description": "Required. The ID of the customer whose user lists are being modified."
                }
              },
              "httpMethod": "POST",
              "description": "Creates or updates user lists. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [CollectionSizeError]() [DatabaseError]() [DistinctError]() [FieldError]() [FieldMaskError]() [HeaderError]() [InternalError]() [MutateError]() [NewResourceCreationError]() [NotAllowlistedError]() [NotEmptyError]() [OperationAccessDeniedError]() [QuotaError]() [RangeError]() [RequestError]() [StringFormatError]() [StringLengthError]() [UserListError]()",
              "id": "searchads360.customers.userLists.mutate",
              "path": "v23/customers/{+customerId}/userLists:mutate",
              "parameterOrder": [
                "customerId"
              ]
            }
          }
        },
        "campaignAssets": {
          "methods": {
            "mutate": {
              "httpMethod": "POST",
              "description": "Creates or removes campaign assets. Operation statuses are returned. List of thrown errors: [AssetLinkError]() [AuthenticationError]() [AuthorizationError]() [ContextError]() [DatabaseError]() [FieldError]() [HeaderError]() [InternalError]() [MutateError]() [NotAllowlistedError]() [QuotaError]() [RequestError]()",
              "id": "searchads360.customers.campaignAssets.mutate",
              "path": "v23/customers/{+customerId}/campaignAssets:mutate",
              "parameterOrder": [
                "customerId"
              ],
              "flatPath": "v23/customers/{customersId}/campaignAssets:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateCampaignAssetsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateCampaignAssetsRequest"
              },
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer whose campaign assets are being modified.",
                  "type": "string",
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "required": true
                }
              }
            }
          }
        },
        "conversionValueRules": {
          "methods": {
            "mutate": {
              "parameterOrder": [
                "customerId"
              ],
              "path": "v23/customers/{+customerId}/conversionValueRules:mutate",
              "id": "searchads360.customers.conversionValueRules.mutate",
              "httpMethod": "POST",
              "description": "Creates, updates, or removes conversion value rules. Operation statuses are returned.",
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer whose conversion value rules are being modified.",
                  "type": "string",
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "required": true
                }
              },
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateConversionValueRulesRequest"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "flatPath": "v23/customers/{customersId}/conversionValueRules:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateConversionValueRulesResponse"
              }
            }
          }
        },
        "sharedSets": {
          "methods": {
            "mutate": {
              "path": "v23/customers/{+customerId}/sharedSets:mutate",
              "id": "searchads360.customers.sharedSets.mutate",
              "parameterOrder": [
                "customerId"
              ],
              "httpMethod": "POST",
              "description": "Creates, updates, or removes shared sets. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [DateError]() [DistinctError]() [FieldError]() [FieldMaskError]() [HeaderError]() [IdError]() [InternalError]() [MutateError]() [NewResourceCreationError]() [NotEmptyError]() [NullError]() [OperatorError]() [QuotaError]() [RangeError]() [RequestError]() [ResourceCountLimitExceededError]() [SharedSetError]() [SizeLimitError]() [StringFormatError]() [StringLengthError]()",
              "parameters": {
                "customerId": {
                  "description": "Required. The ID of the customer whose shared sets are being modified.",
                  "type": "string",
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "required": true
                }
              },
              "flatPath": "v23/customers/{customersId}/sharedSets:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateSharedSetsResponse"
              },
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateSharedSetsRequest"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ]
            }
          }
        },
        "adGroupAssetSets": {
          "methods": {
            "mutate": {
              "path": "v23/customers/{+customerId}/adGroupAssetSets:mutate",
              "id": "searchads360.customers.adGroupAssetSets.mutate",
              "parameterOrder": [
                "customerId"
              ],
              "httpMethod": "POST",
              "description": "Creates, or removes ad group asset sets. Operation statuses are returned.",
              "parameters": {
                "customerId": {
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "required": true,
                  "description": "Required. The ID of the customer whose ad group asset sets are being modified.",
                  "type": "string"
                }
              },
              "flatPath": "v23/customers/{customersId}/adGroupAssetSets:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateAdGroupAssetSetsResponse"
              },
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateAdGroupAssetSetsRequest"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ]
            }
          }
        },
        "campaigns": {
          "methods": {
            "enablePMaxBrandGuidelines": {
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__EnablePMaxBrandGuidelinesRequest"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "flatPath": "v23/customers/{customersId}/campaigns:enablePMaxBrandGuidelines",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__EnablePMaxBrandGuidelinesResponse"
              },
              "parameters": {
                "customerId": {
                  "type": "string",
                  "description": "Required. The ID of the customer whose campaigns are being enabled.",
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$"
                }
              },
              "httpMethod": "POST",
              "description": "Enables Brand Guidelines for Performance Max campaigns. List of thrown errors: [AuthenticationError]() [AssetError]() [AssetLinkError]() [AuthorizationError]() [BrandGuidelinesMigrationError]() [CampaignError]() [HeaderError]() [InternalError]() [MutateError]() [QuotaError]() [RequestError]() [ResourceCountLimitExceededError]()",
              "parameterOrder": [
                "customerId"
              ],
              "path": "v23/customers/{+customerId}/campaigns:enablePMaxBrandGuidelines",
              "id": "searchads360.customers.campaigns.enablePMaxBrandGuidelines"
            },
            "mutate": {
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateCampaignsRequest"
              },
              "flatPath": "v23/customers/{customersId}/campaigns:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateCampaignsResponse"
              },
              "parameters": {
                "customerId": {
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$",
                  "type": "string",
                  "description": "Required. The ID of the customer whose campaigns are being modified."
                }
              },
              "httpMethod": "POST",
              "description": "Creates, updates, or removes campaigns. Operation statuses are returned. List of thrown errors: [AdxError]() [AuthenticationError]() [AuthorizationError]() [BiddingError]() [BiddingStrategyError]() [CampaignBudgetError]() [CampaignError]() [ContextError]() [DatabaseError]() [DateError]() [DateRangeError]() [DistinctError]() [FieldError]() [FieldMaskError]() [HeaderError]() [IdError]() [InternalError]() [ListOperationError]() [MutateError]() [NewResourceCreationError]() [NotAllowlistedError]() [NotEmptyError]() [NullError]() [OperationAccessDeniedError]() [OperatorError]() [QuotaError]() [RangeError]() [RegionCodeError]() [RequestError]() [ResourceCountLimitExceededError]() [SettingError]() [SizeLimitError]() [StringFormatError]() [StringLengthError]() [UrlFieldError]()",
              "parameterOrder": [
                "customerId"
              ],
              "id": "searchads360.customers.campaigns.mutate",
              "path": "v23/customers/{+customerId}/campaigns:mutate"
            }
          }
        },
        "experiments": {
          "methods": {
            "scheduleExperiment": {
              "id": "searchads360.customers.experiments.scheduleExperiment",
              "path": "v23/{+resourceName}:scheduleExperiment",
              "parameterOrder": [
                "resourceName"
              ],
              "httpMethod": "POST",
              "description": "Schedule an experiment. The in design campaign will be converted into a real campaign (called the experiment campaign) that will begin serving ads if successfully created. The experiment is scheduled immediately with status INITIALIZING. This method returns a long running operation that tracks the forking of the in design campaign. If the forking fails, a list of errors can be retrieved using the ListExperimentAsyncErrors method. The operation's metadata will be a string containing the resource name of the created experiment. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [ExperimentError]() [DatabaseError]() [DateError]() [DateRangeError]() [FieldError]() [HeaderError]() [InternalError]() [QuotaError]() [RangeError]() [RequestError]()",
              "parameters": {
                "resourceName": {
                  "description": "Required. The scheduled experiment.",
                  "type": "string",
                  "pattern": "^customers/[^/]+/experiments/[^/]+$",
                  "location": "path",
                  "required": true
                }
              },
              "flatPath": "v23/customers/{customersId}/experiments/{experimentsId}:scheduleExperiment",
              "response": {
                "$ref": "GoogleLongrunning__Operation"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__ScheduleExperimentRequest"
              }
            },
            "endExperiment": {
              "parameters": {
                "experiment": {
                  "description": "Required. The resource name of the campaign experiment to end.",
                  "type": "string",
                  "pattern": "^customers/[^/]+/experiments/[^/]+$",
                  "location": "path",
                  "required": true
                }
              },
              "flatPath": "v23/customers/{customersId}/experiments/{experimentsId}:endExperiment",
              "response": {
                "$ref": "GoogleProtobuf__Empty"
              },
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__EndExperimentRequest"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "path": "v23/{+experiment}:endExperiment",
              "id": "searchads360.customers.experiments.endExperiment",
              "parameterOrder": [
                "experiment"
              ],
              "httpMethod": "POST",
              "description": "Immediately ends an experiment, changing the experiment's scheduled end date and without waiting for end of day. End date is updated to be the time of the request. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [ExperimentError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()"
            },
            "listExperimentAsyncErrors": {
              "httpMethod": "GET",
              "description": "Returns all errors that occurred during the last Experiment update (either scheduling or promotion). Supports standard list paging. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
              "parameterOrder": [
                "resourceName"
              ],
              "path": "v23/{+resourceName}:listExperimentAsyncErrors",
              "id": "searchads360.customers.experiments.listExperimentAsyncErrors",
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "flatPath": "v23/customers/{customersId}/experiments/{experimentsId}:listExperimentAsyncErrors",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__ListExperimentAsyncErrorsResponse"
              },
              "parameters": {
                "pageToken": {
                  "type": "string",
                  "description": "Token of the page to retrieve. If not specified, the first page of results will be returned. Use the value obtained from `next_page_token` in the previous response in order to request the next page of results.",
                  "location": "query"
                },
                "resourceName": {
                  "type": "string",
                  "description": "Required. The name of the experiment from which to retrieve the async errors.",
                  "location": "path",
                  "required": true,
                  "pattern": "^customers/[^/]+/experiments/[^/]+$"
                },
                "pageSize": {
                  "location": "query",
                  "description": "Number of elements to retrieve in a single page. When a page request is too large, the server may decide to further limit the number of returned resources. The maximum page size is 1000.",
                  "type": "integer",
                  "format": "int32"
                }
              }
            },
            "mutate": {
              "id": "searchads360.customers.experiments.mutate",
              "path": "v23/customers/{+customerId}/experiments:mutate",
              "parameterOrder": [
                "customerId"
              ],
              "httpMethod": "POST",
              "description": "Creates, updates, or removes experiments. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [ExperimentError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
              "parameters": {
                "customerId": {
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$",
                  "type": "string",
                  "description": "Required. The ID of the customer whose experiments are being modified."
                }
              },
              "flatPath": "v23/customers/{customersId}/experiments:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateExperimentsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateExperimentsRequest"
              }
            },
            "graduateExperiment": {
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__GraduateExperimentRequest"
              },
              "flatPath": "v23/customers/{customersId}/experiments/{experimentsId}:graduateExperiment",
              "response": {
                "$ref": "GoogleProtobuf__Empty"
              },
              "parameters": {
                "experiment": {
                  "location": "path",
                  "required": true,
                  "pattern": "^customers/[^/]+/experiments/[^/]+$",
                  "type": "string",
                  "description": "Required. The experiment to be graduated."
                }
              },
              "httpMethod": "POST",
              "description": "Graduates an experiment to a full campaign. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [ExperimentError]() [HeaderError]() [InternalError]() [MutateError]() [QuotaError]() [RequestError]()",
              "parameterOrder": [
                "experiment"
              ],
              "id": "searchads360.customers.experiments.graduateExperiment",
              "path": "v23/{+experiment}:graduateExperiment"
            },
            "promoteExperiment": {
              "parameterOrder": [
                "resourceName"
              ],
              "path": "v23/{+resourceName}:promoteExperiment",
              "id": "searchads360.customers.experiments.promoteExperiment",
              "httpMethod": "POST",
              "description": "Promotes the trial campaign thus applying changes in the trial campaign to the base campaign. This method returns a long running operation that tracks the promotion of the experiment campaign. If it fails, a list of errors can be retrieved using the ListExperimentAsyncErrors method. The operation's metadata will be a string containing the resource name of the created experiment. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [ExperimentError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
              "parameters": {
                "resourceName": {
                  "pattern": "^customers/[^/]+/experiments/[^/]+$",
                  "location": "path",
                  "required": true,
                  "description": "Required. The resource name of the experiment to promote.",
                  "type": "string"
                }
              },
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__PromoteExperimentRequest"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "flatPath": "v23/customers/{customersId}/experiments/{experimentsId}:promoteExperiment",
              "response": {
                "$ref": "GoogleLongrunning__Operation"
              }
            }
          }
        },
        "conversionValueRuleSets": {
          "methods": {
            "mutate": {
              "httpMethod": "POST",
              "description": "Creates, updates or removes conversion value rule sets. Operation statuses are returned.",
              "id": "searchads360.customers.conversionValueRuleSets.mutate",
              "path": "v23/customers/{+customerId}/conversionValueRuleSets:mutate",
              "parameterOrder": [
                "customerId"
              ],
              "flatPath": "v23/customers/{customersId}/conversionValueRuleSets:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateConversionValueRuleSetsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateConversionValueRuleSetsRequest"
              },
              "parameters": {
                "customerId": {
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$",
                  "type": "string",
                  "description": "Required. The ID of the customer whose conversion value rule sets are being modified."
                }
              }
            }
          }
        },
        "conversionGoalCampaignConfigs": {
          "methods": {
            "mutate": {
              "httpMethod": "POST",
              "description": "Creates, updates or removes conversion goal campaign config. Operation statuses are returned.",
              "id": "searchads360.customers.conversionGoalCampaignConfigs.mutate",
              "path": "v23/customers/{+customerId}/conversionGoalCampaignConfigs:mutate",
              "parameterOrder": [
                "customerId"
              ],
              "flatPath": "v23/customers/{customersId}/conversionGoalCampaignConfigs:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateConversionGoalCampaignConfigsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateConversionGoalCampaignConfigsRequest"
              },
              "parameters": {
                "customerId": {
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "required": true,
                  "description": "Required. The ID of the customer whose custom conversion goals are being modified.",
                  "type": "string"
                }
              }
            }
          }
        },
        "assetGroupSignals": {
          "methods": {
            "mutate": {
              "httpMethod": "POST",
              "description": "Creates or removes asset group signals. Operation statuses are returned.",
              "path": "v23/customers/{+customerId}/assetGroupSignals:mutate",
              "id": "searchads360.customers.assetGroupSignals.mutate",
              "parameterOrder": [
                "customerId"
              ],
              "flatPath": "v23/customers/{customersId}/assetGroupSignals:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateAssetGroupSignalsResponse"
              },
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateAssetGroupSignalsRequest"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "parameters": {
                "customerId": {
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "required": true,
                  "description": "Required. The ID of the customer whose asset group signals are being modified.",
                  "type": "string"
                }
              }
            }
          }
        },
        "ads": {
          "methods": {
            "mutate": {
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateAdsRequest"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "flatPath": "v23/customers/{customersId}/ads:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateAdsResponse"
              },
              "parameters": {
                "customerId": {
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "required": true,
                  "description": "Required. The ID of the customer whose ads are being modified.",
                  "type": "string"
                }
              },
              "httpMethod": "POST",
              "description": "Updates ads. Operation statuses are returned. Updating ads is not supported for TextAd, ExpandedDynamicSearchAd, GmailAd and ImageAd. List of thrown errors: [AdCustomizerError]() [AdError]() [AdSharingError]() [AdxError]() [AssetError]() [AssetLinkError]() [AuthenticationError]() [AuthorizationError]() [CollectionSizeError]() [DatabaseError]() [DateError]() [DistinctError]() [FeedAttributeReferenceError]() [FieldError]() [FieldMaskError]() [FunctionError]() [FunctionParsingError]() [HeaderError]() [IdError]() [ImageError]() [InternalError]() [ListOperationError]() [MediaBundleError]() [MediaFileError]() [MutateError]() [NewResourceCreationError]() [NotEmptyError]() [NullError]() [OperatorError]() [PolicyFindingError]() [PolicyViolationError]() [QuotaError]() [RangeError]() [RequestError]() [SizeLimitError]() [StringFormatError]() [StringLengthError]() [UrlFieldError]()",
              "parameterOrder": [
                "customerId"
              ],
              "path": "v23/customers/{+customerId}/ads:mutate",
              "id": "searchads360.customers.ads.mutate"
            }
          }
        },
        "accountBudgetProposals": {
          "methods": {
            "mutate": {
              "flatPath": "v23/customers/{customersId}/accountBudgetProposals:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateAccountBudgetProposalResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateAccountBudgetProposalRequest"
              },
              "parameters": {
                "customerId": {
                  "location": "path",
                  "required": true,
                  "pattern": "^[^/]+$",
                  "type": "string",
                  "description": "Required. The ID of the customer."
                }
              },
              "httpMethod": "POST",
              "description": "Creates, updates, or removes account budget proposals. Operation statuses are returned. List of thrown errors: [AccountBudgetProposalError]() [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [DateError]() [FieldError]() [FieldMaskError]() [HeaderError]() [InternalError]() [MutateError]() [QuotaError]() [RequestError]() [StringLengthError]()",
              "id": "searchads360.customers.accountBudgetProposals.mutate",
              "path": "v23/customers/{+customerId}/accountBudgetProposals:mutate",
              "parameterOrder": [
                "customerId"
              ]
            }
          }
        },
        "adParameters": {
          "methods": {
            "mutate": {
              "httpMethod": "POST",
              "description": "Creates, updates, or removes ad parameters. Operation statuses are returned. List of thrown errors: [AdParameterError]() [AuthenticationError]() [AuthorizationError]() [ContextError]() [DatabaseError]() [FieldError]() [FieldMaskError]() [HeaderError]() [InternalError]() [MutateError]() [QuotaError]() [RequestError]()",
              "id": "searchads360.customers.adParameters.mutate",
              "path": "v23/customers/{+customerId}/adParameters:mutate",
              "parameterOrder": [
                "customerId"
              ],
              "flatPath": "v23/customers/{customersId}/adParameters:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateAdParametersResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateAdParametersRequest"
              },
              "parameters": {
                "customerId": {
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "required": true,
                  "description": "Required. The ID of the customer whose ad parameters are being modified.",
                  "type": "string"
                }
              }
            }
          }
        },
        "adGroupBidModifiers": {
          "methods": {
            "mutate": {
              "parameters": {
                "customerId": {
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "required": true,
                  "description": "Required. ID of the customer whose ad group bid modifiers are being modified.",
                  "type": "string"
                }
              },
              "flatPath": "v23/customers/{customersId}/adGroupBidModifiers:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateAdGroupBidModifiersResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateAdGroupBidModifiersRequest"
              },
              "id": "searchads360.customers.adGroupBidModifiers.mutate",
              "path": "v23/customers/{+customerId}/adGroupBidModifiers:mutate",
              "parameterOrder": [
                "customerId"
              ],
              "httpMethod": "POST",
              "description": "Creates, updates, or removes ad group bid modifiers. Operation statuses are returned. List of thrown errors: [AdGroupBidModifierError]() [AuthenticationError]() [AuthorizationError]() [ContextError]() [CriterionError]() [DatabaseError]() [DistinctError]() [FieldError]() [FieldMaskError]() [HeaderError]() [IdError]() [InternalError]() [MutateError]() [NewResourceCreationError]() [NotEmptyError]() [OperatorError]() [QuotaError]() [RangeError]() [RequestError]() [ResourceCountLimitExceededError]() [SizeLimitError]() [StringFormatError]() [StringLengthError]()"
            }
          }
        },
        "adGroupCriterionLabels": {
          "methods": {
            "mutate": {
              "httpMethod": "POST",
              "description": "Creates and removes ad group criterion labels. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [DatabaseError]() [FieldError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
              "parameterOrder": [
                "customerId"
              ],
              "path": "v23/customers/{+customerId}/adGroupCriterionLabels:mutate",
              "id": "searchads360.customers.adGroupCriterionLabels.mutate",
              "request": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateAdGroupCriterionLabelsRequest"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclicksearch"
              ],
              "flatPath": "v23/customers/{customersId}/adGroupCriterionLabels:mutate",
              "response": {
                "$ref": "GoogleAdsSearchads360V23Services__MutateAdGroupCriterionLabelsResponse"
              },
              "parameters": {
                "customerId": {
                  "pattern": "^[^/]+$",
                  "location": "path",
                  "required": true,
                  "description": "Required. ID of the customer whose ad group criterion labels are being modified.",
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "v23": {
      "methods": {
        "listBenchmarksSources": {
          "path": "v23:listBenchmarksSources",
          "id": "searchads360.listBenchmarksSources",
          "parameterOrder": [],
          "httpMethod": "POST",
          "description": "Returns the list of benchmarks sources (for example, Industry Verticals). List of thrown errors: [AuthenticationError]() [AuthorizationError]() [FieldError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
          "parameters": {},
          "flatPath": "v23:listBenchmarksSources",
          "response": {
            "$ref": "GoogleAdsSearchads360V23Services__ListBenchmarksSourcesResponse"
          },
          "request": {
            "$ref": "GoogleAdsSearchads360V23Services__ListBenchmarksSourcesRequest"
          },
          "scopes": [
            "https://www.googleapis.com/auth/doubleclicksearch"
          ]
        },
        "generateConversionRates": {
          "parameters": {},
          "flatPath": "v23:generateConversionRates",
          "response": {
            "$ref": "GoogleAdsSearchads360V23Services__GenerateConversionRatesResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/doubleclicksearch"
          ],
          "request": {
            "$ref": "GoogleAdsSearchads360V23Services__GenerateConversionRatesRequest"
          },
          "id": "searchads360.generateConversionRates",
          "path": "v23:generateConversionRates",
          "parameterOrder": [],
          "httpMethod": "POST",
          "description": "Returns a collection of conversion rate suggestions for supported plannable products. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()"
        },
        "listPlannableUserLists": {
          "scopes": [
            "https://www.googleapis.com/auth/doubleclicksearch"
          ],
          "request": {
            "$ref": "GoogleAdsSearchads360V23Services__ListPlannableUserListsRequest"
          },
          "flatPath": "v23:listPlannableUserLists",
          "response": {
            "$ref": "GoogleAdsSearchads360V23Services__ListPlannableUserListsResponse"
          },
          "parameters": {},
          "httpMethod": "POST",
          "description": "Returns the list of plannable user lists with their plannable status. User lists may not be plannable for a number of reasons, including: - They are less than 10 days old. - They have a membership lifespan that is less than 30 days - They have less than 10,000 or more than 700,000 users. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [FieldError]() [HeaderError]() [InternalError]() [QuotaError]() [RangeError]() [ReachPlanError]() [RequestError]()",
          "parameterOrder": [],
          "id": "searchads360.listPlannableUserLists",
          "path": "v23:listPlannableUserLists"
        },
        "listPlannableUserInterests": {
          "httpMethod": "POST",
          "description": "Returns the list of plannable user interests. A plannable user interest is one that can be targeted in a reach forecast using ReachPlanService.GenerateReachForecast. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [FieldError]() [HeaderError]() [InternalError]() [ListOperationError]() [QuotaError]() [RequestError]() [StringLengthError]()",
          "parameterOrder": [],
          "path": "v23:listPlannableUserInterests",
          "id": "searchads360.listPlannableUserInterests",
          "request": {
            "$ref": "GoogleAdsSearchads360V23Services__ListPlannableUserInterestsRequest"
          },
          "scopes": [
            "https://www.googleapis.com/auth/doubleclicksearch"
          ],
          "flatPath": "v23:listPlannableUserInterests",
          "response": {
            "$ref": "GoogleAdsSearchads360V23Services__ListPlannableUserInterestsResponse"
          },
          "parameters": {}
        },
        "listPlannableLocations": {
          "httpMethod": "POST",
          "description": "Returns the list of plannable locations (for example, countries). List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
          "parameterOrder": [],
          "id": "searchads360.listPlannableLocations",
          "path": "v23:listPlannableLocations",
          "scopes": [
            "https://www.googleapis.com/auth/doubleclicksearch"
          ],
          "request": {
            "$ref": "GoogleAdsSearchads360V23Services__ListPlannableLocationsRequest"
          },
          "flatPath": "v23:listPlannableLocations",
          "response": {
            "$ref": "GoogleAdsSearchads360V23Services__ListPlannableLocationsResponse"
          },
          "parameters": {}
        },
        "listBenchmarksProducts": {
          "httpMethod": "POST",
          "description": "Returns the list of products that supports benchmarks. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [FieldError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
          "parameterOrder": [],
          "id": "searchads360.listBenchmarksProducts",
          "path": "v23:listBenchmarksProducts",
          "scopes": [
            "https://www.googleapis.com/auth/doubleclicksearch"
          ],
          "request": {
            "$ref": "GoogleAdsSearchads360V23Services__ListBenchmarksProductsRequest"
          },
          "flatPath": "v23:listBenchmarksProducts",
          "response": {
            "$ref": "GoogleAdsSearchads360V23Services__ListBenchmarksProductsResponse"
          },
          "parameters": {}
        },
        "listBenchmarksAvailableDates": {
          "parameters": {},
          "flatPath": "v23:listBenchmarksAvailableDates",
          "response": {
            "$ref": "GoogleAdsSearchads360V23Services__ListBenchmarksAvailableDatesResponse"
          },
          "request": {
            "$ref": "GoogleAdsSearchads360V23Services__ListBenchmarksAvailableDatesRequest"
          },
          "scopes": [
            "https://www.googleapis.com/auth/doubleclicksearch"
          ],
          "path": "v23:listBenchmarksAvailableDates",
          "id": "searchads360.listBenchmarksAvailableDates",
          "parameterOrder": [],
          "httpMethod": "POST",
          "description": "Returns a date range that supports benchmarks. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [FieldError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()"
        },
        "listBenchmarksLocations": {
          "flatPath": "v23:listBenchmarksLocations",
          "response": {
            "$ref": "GoogleAdsSearchads360V23Services__ListBenchmarksLocationsResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/doubleclicksearch"
          ],
          "request": {
            "$ref": "GoogleAdsSearchads360V23Services__ListBenchmarksLocationsRequest"
          },
          "parameters": {},
          "httpMethod": "POST",
          "description": "Returns the list of locations that support benchmarks (for example, countries). List of thrown errors: [AuthenticationError]() [AuthorizationError]() [FieldError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
          "id": "searchads360.listBenchmarksLocations",
          "path": "v23:listBenchmarksLocations",
          "parameterOrder": []
        },
        "listPlannableProducts": {
          "request": {
            "$ref": "GoogleAdsSearchads360V23Services__ListPlannableProductsRequest"
          },
          "scopes": [
            "https://www.googleapis.com/auth/doubleclicksearch"
          ],
          "flatPath": "v23:listPlannableProducts",
          "response": {
            "$ref": "GoogleAdsSearchads360V23Services__ListPlannableProductsResponse"
          },
          "parameters": {},
          "httpMethod": "POST",
          "description": "Returns the list of per-location plannable YouTube ad formats with allowed targeting. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
          "parameterOrder": [],
          "path": "v23:listPlannableProducts",
          "id": "searchads360.listPlannableProducts"
        }
      }
    },
    "geoTargetConstants": {
      "methods": {
        "suggest": {
          "id": "searchads360.geoTargetConstants.suggest",
          "path": "v23/geoTargetConstants:suggest",
          "parameterOrder": [],
          "httpMethod": "POST",
          "description": "Returns GeoTargetConstant suggestions by location name or by resource name. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [GeoTargetConstantSuggestionError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()",
          "parameters": {},
          "flatPath": "v23/geoTargetConstants:suggest",
          "response": {
            "$ref": "GoogleAdsSearchads360V23Services__SuggestGeoTargetConstantsResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/doubleclicksearch"
          ],
          "request": {
            "$ref": "GoogleAdsSearchads360V23Services__SuggestGeoTargetConstantsRequest"
          }
        }
      }
    },
    "searchAds360Fields": {
      "methods": {
        "search": {
          "parameters": {},
          "scopes": [
            "https://www.googleapis.com/auth/doubleclicksearch"
          ],
          "request": {
            "$ref": "GoogleAdsSearchads360V23Services__SearchSearchAds360FieldsRequest"
          },
          "flatPath": "v23/searchAds360Fields:search",
          "response": {
            "$ref": "GoogleAdsSearchads360V23Services__SearchSearchAds360FieldsResponse"
          },
          "parameterOrder": [],
          "id": "searchads360.searchAds360Fields.search",
          "path": "v23/searchAds360Fields:search",
          "httpMethod": "POST",
          "description": "Returns all fields that match the search [query](/search-ads/reporting/concepts/field-service#use_a_query_to_get_field_details). List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QueryError]() [QuotaError]() [RequestError]()"
        },
        "get": {
          "parameters": {
            "resourceName": {
              "location": "path",
              "required": true,
              "pattern": "^searchAds360Fields/[^/]+$",
              "type": "string",
              "description": "Required. The resource name of the field to get."
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/doubleclicksearch"
          ],
          "flatPath": "v23/searchAds360Fields/{searchAds360FieldsId}",
          "response": {
            "$ref": "GoogleAdsSearchads360V23Resources__SearchAds360Field"
          },
          "parameterOrder": [
            "resourceName"
          ],
          "path": "v23/{+resourceName}",
          "id": "searchads360.searchAds360Fields.get",
          "httpMethod": "GET",
          "description": "Returns just the requested field. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()"
        }
      }
    }
  },
  "servicePath": "",
  "revision": "20260413",
  "kind": "discovery#restDescription",
  "discoveryVersion": "v1",
  "id": "searchads360:v23",
  "rootUrl": "https://searchads360.googleapis.com/",
  "ownerName": "Google",
  "version_module": true,
  "auth": {
    "oauth2": {
      "scopes": {
        "https://www.googleapis.com/auth/doubleclicksearch": {
          "description": "View and manage your advertising data in DoubleClick Search"
        }
      }
    }
  },
  "batchPath": "batch",
  "title": "Search Ads 360 Reporting API",
  "schemas": {
    "GoogleAdsSearchads360V23Common__LogicalUserListInfo": {
      "properties": {
        "rules": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__UserListLogicalRuleInfo"
          },
          "description": "Logical list rules that define this user list. The rules are defined as a logical operator (ALL/ANY/NONE) and a list of user lists. All the rules are ANDed when they are evaluated. Required for creating a logical user list."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__LogicalUserListInfo",
      "description": "Represents a user list that is a custom combination of user lists."
    },
    "GoogleAdsSearchads360V23Services__MutateAccountBudgetProposalRequest": {
      "properties": {
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "operation": {
          "description": "Required. The operation to perform on an individual account-level budget proposal.",
          "$ref": "GoogleAdsSearchads360V23Services__AccountBudgetProposalOperation"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateAccountBudgetProposalRequest",
      "description": "Request message for AccountBudgetProposalService.MutateAccountBudgetProposal."
    },
    "GoogleAdsSearchads360V23Common__CustomerThirdPartyIntegrationPartners": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__CustomerThirdPartyIntegrationPartners",
      "description": "Container for Customer level third party integration partners.",
      "properties": {
        "viewabilityIntegrationPartners": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__CustomerThirdPartyViewabilityIntegrationPartner"
          },
          "description": "Allowed third party integration partners for YouTube viewability verification."
        },
        "brandSafetyIntegrationPartners": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__CustomerThirdPartyBrandSafetyIntegrationPartner"
          },
          "description": "Allowed third party integration partners for brand safety verification."
        },
        "reachIntegrationPartners": {
          "description": "Allowed third party integration partners for reach verification.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__CustomerThirdPartyReachIntegrationPartner"
          }
        },
        "brandLiftIntegrationPartners": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__CustomerThirdPartyBrandLiftIntegrationPartner"
          },
          "description": "Allowed third party integration partners for Brand Lift verification."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__CustomerConversionGoalOperation": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__CustomerConversionGoalOperation",
      "description": "A single operation (update) on a customer conversion goal.",
      "properties": {
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "type": "string",
          "format": "google-fieldmask"
        },
        "update": {
          "description": "Update operation: The customer conversion goal is expected to have a valid resource name.",
          "$ref": "GoogleAdsSearchads360V23Resources__CustomerConversionGoal"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__CreateDataLinkResponse": {
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations. Resource name of the data link.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__CreateDataLinkResponse",
      "description": "Response message for DataLinkService.CreateDataLink."
    },
    "GoogleAdsSearchads360V23Resources_Recommendation_UpgradeSmartShoppingCampaignToPerformanceMaxRecommendation": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources_Recommendation_UpgradeSmartShoppingCampaignToPerformanceMaxRecommendation",
      "description": "The upgrade a Smart Shopping campaign to a Performance Max campaign recommendation.",
      "properties": {
        "merchantId": {
          "type": "string",
          "format": "int64",
          "description": "Output only. ID of Merchant Center account.",
          "readOnly": true
        },
        "salesCountryCode": {
          "description": "Output only. Country whose products from merchant's inventory should be included.",
          "type": "string",
          "readOnly": true
        }
      }
    },
    "GoogleAdsSearchads360V23Resources_AdGroup_DemandGenAdGroupSettings": {
      "properties": {
        "channelControls": {
          "description": "Channel controls for Demand Gen ad groups.",
          "$ref": "GoogleAdsSearchads360V23Resources_AdGroupDemandGenAdGroupSettings_DemandGenChannelControls"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources_AdGroup_DemandGenAdGroupSettings",
      "description": "Settings for Demand Gen ad groups."
    },
    "GoogleAdsSearchads360V23Services__MutateAssetGroupListingGroupFiltersRequest": {
      "properties": {
        "responseContentType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation."
        },
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__AssetGroupListingGroupFilterOperation"
          },
          "description": "Required. The list of operations to perform on individual asset group listing group filters."
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateAssetGroupListingGroupFiltersRequest",
      "description": "Request message for AssetGroupListingGroupFilterService.MutateAssetGroupListingGroupFilters. partial_failure is not supported because the tree needs to be validated together."
    },
    "GoogleAdsSearchads360V23Resources__IncomeRangeView": {
      "properties": {
        "resourceName": {
          "readOnly": true,
          "description": "Output only. The resource name of the income range view. Income range view resource names have the form: `customers/{customer_id}/incomeRangeViews/{ad_group_id}~{criterion_id}`",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__IncomeRangeView",
      "description": "An income range view."
    },
    "GoogleAdsSearchads360V23Resources_Recommendation_ShoppingFixDisapprovedProductsRecommendation": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources_Recommendation_ShoppingFixDisapprovedProductsRecommendation",
      "description": "The shopping recommendation to fix disapproved products in a Shopping Campaign Inventory.",
      "properties": {
        "feedLabel": {
          "type": "string",
          "description": "Output only. The feed label for the campaign.",
          "readOnly": true
        },
        "merchant": {
          "readOnly": true,
          "description": "Output only. The details of the Merchant Center account.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_MerchantInfo"
        },
        "disapprovedProductsCount": {
          "description": "Output only. The numbers of products of the campaign that are disapproved.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        },
        "productsCount": {
          "type": "string",
          "format": "int64",
          "description": "Output only. The number of products of the campaign.",
          "readOnly": true
        }
      }
    },
    "GoogleAdsSearchads360V23Resources_ConversionValueRule_ValueRuleItineraryCondition": {
      "properties": {
        "advanceBookingWindow": {
          "description": "Range for the number of days between the date of the booking and the start of the itinerary.",
          "$ref": "GoogleAdsSearchads360V23Resources_ConversionValueRule_ValueRuleItineraryAdvanceBookingWindow"
        },
        "travelLength": {
          "description": "Range for the itinerary length in number of nights.",
          "$ref": "GoogleAdsSearchads360V23Resources_ConversionValueRule_ValueRuleItineraryTravelLength"
        },
        "travelStartDay": {
          "description": "The days of the week on which this itinerary's travel can start.",
          "$ref": "GoogleAdsSearchads360V23Resources_ConversionValueRule_ValueRuleItineraryTravelStartDay"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources_ConversionValueRule_ValueRuleItineraryCondition",
      "description": "Condition on Itinerary dimension."
    },
    "GoogleAdsSearchads360V23Services__IdentityVerification": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__IdentityVerification",
      "description": "An identity verification for a customer.",
      "properties": {
        "identityVerificationRequirement": {
          "description": "The verification requirement for this verification program for this customer.",
          "$ref": "GoogleAdsSearchads360V23Services__IdentityVerificationRequirement"
        },
        "verificationProgress": {
          "description": "Information regarding progress for this verification program for this customer.",
          "$ref": "GoogleAdsSearchads360V23Services__IdentityVerificationProgress"
        },
        "verificationProgram": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Advertiser submits documents to verify their identity."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADVERTISER_IDENTITY_VERIFICATION"
          ],
          "description": "The verification program type."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__DynamicTravelAsset": {
      "properties": {
        "contextualKeywords": {
          "description": "Contextual keywords, for example, Paris trains.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "iosAppLink": {
          "description": "iOS deep link, for example, exampleApp://content/page.",
          "type": "string"
        },
        "originName": {
          "type": "string",
          "description": "Origin name, for example, London."
        },
        "imageUrl": {
          "description": "Image URL, for example, http://www.example.com/image.png. The image will not be uploaded as image asset.",
          "type": "string"
        },
        "formattedPrice": {
          "description": "Formatted price which can be any characters. If set, this attribute will be used instead of 'price', for example, Starting at $100.00.",
          "type": "string"
        },
        "salePrice": {
          "description": "Sale price which can be a number followed by the alphabetic currency code, ISO 4217 standard. Use '.' as the decimal mark, for example, 80.00 USD. Must be less than the 'price' field.",
          "type": "string"
        },
        "destinationId": {
          "description": "Required. Destination ID which can be any sequence of letters and digits, and must be unique and match the values of remarketing tag. Required.",
          "type": "string"
        },
        "similarDestinationIds": {
          "description": "Similar destination IDs, for example, NYC.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "title": {
          "description": "Required. Title, for example, Book your train ticket. Required.",
          "type": "string"
        },
        "price": {
          "type": "string",
          "description": "Price which can be a number followed by the alphabetic currency code, ISO 4217 standard. Use '.' as the decimal mark, for example, 100.00 USD."
        },
        "category": {
          "type": "string",
          "description": "Category, for example, Express."
        },
        "originId": {
          "type": "string",
          "description": "Origin ID which can be any sequence of letters and digits. The ID sequence (destination ID + origin ID) must be unique."
        },
        "destinationName": {
          "description": "Destination name, for example, Paris.",
          "type": "string"
        },
        "formattedSalePrice": {
          "type": "string",
          "description": "Formatted sale price which can be any characters. If set, this attribute will be used instead of 'sale price', for example, On sale for $80.00."
        },
        "destinationAddress": {
          "type": "string",
          "description": "Destination address which can be specified in one of the following formats. (1) City, state, code, country, for example, Mountain View, CA, USA. (2) Full address, for example, 123 Boulevard St, Mountain View, CA 94043. (3) Latitude-longitude in the DDD format, for example, 41.40338, 2.17403."
        },
        "iosAppStoreId": {
          "type": "string",
          "format": "int64",
          "description": "iOS app store ID. This is used to check if the user has the app installed on their device before deep linking. If this field is set, then the ios_app_link field must also be present."
        },
        "androidAppLink": {
          "description": "Android deep link, for example, android-app://com.example.android/http/example.com/gizmos?1234.",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V23Common__DynamicTravelAsset",
      "description": "A dynamic travel asset.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common_PolicyTopicEvidence_DestinationTextList": {
      "properties": {
        "destinationTexts": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of text found in the resource's destination page."
        }
      },
      "id": "GoogleAdsSearchads360V23Common_PolicyTopicEvidence_DestinationTextList",
      "description": "A list of strings found in a destination page that caused a policy finding.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources__Visit": {
      "properties": {
        "adId": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. Ad ID. A value of 0 indicates that the ad is unattributed."
        },
        "merchantId": {
          "type": "string",
          "format": "int64",
          "description": "Output only. The Search Ads 360 inventory account ID containing the product that was clicked on. Search Ads 360 generates this ID when you link an inventory account in Search Ads 360.",
          "readOnly": true
        },
        "criterionId": {
          "type": "string",
          "format": "int64",
          "description": "Output only. Search Ads 360 keyword ID. A value of 0 indicates that the keyword is unattributed.",
          "readOnly": true
        },
        "visitDateTime": {
          "type": "string",
          "description": "Output only. The timestamp of the visit event. The timestamp is in the customer's time zone and in \"yyyy-MM-dd HH:mm:ss\" format.",
          "readOnly": true
        },
        "productLanguageCode": {
          "description": "Output only. The language (ISO-639-1) that has been set for the Merchant Center feed containing data about the product.",
          "type": "string",
          "readOnly": true
        },
        "productId": {
          "readOnly": true,
          "description": "Output only. The ID of the product clicked on.",
          "type": "string"
        },
        "productCountryCode": {
          "description": "Output only. The country (ISO-3166 format) registered for the inventory feed that contains the product clicked on.",
          "type": "string",
          "readOnly": true
        },
        "resourceName": {
          "readOnly": true,
          "description": "Output only. The resource name of the visit. Visit resource names have the form: `customers/{customer_id}/visits/{ad_group_id}~{criterion_id}~{ds_visit_id}`",
          "type": "string"
        },
        "clickId": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. A unique string for each visit that is passed to the landing page as the click id URL parameter."
        },
        "assetFieldType": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HEADLINE",
            "DESCRIPTION",
            "MANDATORY_AD_TEXT",
            "MARKETING_IMAGE",
            "MEDIA_BUNDLE",
            "YOUTUBE_VIDEO",
            "BOOK_ON_GOOGLE",
            "LEAD_FORM",
            "PROMOTION",
            "CALLOUT",
            "STRUCTURED_SNIPPET",
            "SITELINK",
            "MOBILE_APP",
            "HOTEL_CALLOUT",
            "CALL",
            "PRICE",
            "LONG_HEADLINE",
            "BUSINESS_NAME",
            "SQUARE_MARKETING_IMAGE",
            "PORTRAIT_MARKETING_IMAGE",
            "LOGO",
            "LANDSCAPE_LOGO",
            "VIDEO",
            "CALL_TO_ACTION_SELECTION",
            "AD_IMAGE",
            "BUSINESS_LOGO",
            "HOTEL_PROPERTY",
            "DEMAND_GEN_CAROUSEL_CARD",
            "BUSINESS_MESSAGE",
            "TALL_PORTRAIT_MARKETING_IMAGE",
            "LANDING_PAGE_PREVIEW",
            "LONG_DESCRIPTION",
            "CALL_TO_ACTION"
          ],
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is linked for use as a headline.",
            "The asset is linked for use as a description.",
            "The asset is linked for use as mandatory ad text.",
            "The asset is linked for use as a marketing image.",
            "The asset is linked for use as a media bundle.",
            "The asset is linked for use as a YouTube video.",
            "The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.",
            "The asset is linked for use as a Lead Form extension.",
            "The asset is linked for use as a Promotion extension.",
            "The asset is linked for use as a Callout extension.",
            "The asset is linked for use as a Structured Snippet extension.",
            "The asset is linked for use as a Sitelink.",
            "The asset is linked for use as a Mobile App extension.",
            "The asset is linked for use as a Hotel Callout extension.",
            "The asset is linked for use as a Call extension.",
            "The asset is linked for use as a Price extension.",
            "The asset is linked for use as a long headline.",
            "The asset is linked for use as a business name.",
            "The asset is linked for use as a square marketing image.",
            "The asset is linked for use as a portrait marketing image.",
            "The asset is linked for use as a logo.",
            "The asset is linked for use as a landscape logo.",
            "The asset is linked for use as a non YouTube logo.",
            "The asset is linked for use to select a call-to-action.",
            "The asset is linked for use to select an ad image.",
            "The asset is linked for use as a business logo.",
            "The asset is linked for use as a hotel property in a Performance Max for travel goals campaign.",
            "The asset is linked for use as a Demand Gen carousel card.",
            "The asset is linked for use as a Business Message.",
            "The asset is linked for use as a tall portrait marketing image.",
            "The asset is linked for use as a landing page preview image.",
            "The asset is linked for use as a long description.",
            "The asset is linked for use as a call-to-action."
          ],
          "description": "Output only. Asset field type of the visit event."
        },
        "id": {
          "readOnly": true,
          "description": "Output only. The ID of the visit.",
          "type": "string",
          "format": "int64"
        },
        "productChannel": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The item is sold online.",
            "The item is sold in local stores."
          ],
          "description": "Output only. The sales channel of the product that was clicked on: Online or Local.",
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ONLINE",
            "LOCAL"
          ]
        },
        "assetId": {
          "type": "string",
          "format": "int64",
          "description": "Output only. ID of the asset which was interacted with during the visit event.",
          "readOnly": true
        },
        "productStoreId": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The store in the Local Inventory Ad that was clicked on. This should match the store IDs used in your local products feed."
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__Visit",
      "description": "A visit.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources__AssetGroupAssetCombinationData": {
      "properties": {
        "assetCombinationServedAssets": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AssetUsage"
          },
          "description": "Output only. Served assets.",
          "readOnly": true
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__AssetGroupAssetCombinationData",
      "description": "Asset group asset combination data",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateUserListCustomerTypesRequest": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateUserListCustomerTypesRequest",
      "description": "Request message for UserListCustomerTypeService.MutateUserListCustomerTypes.",
      "properties": {
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__UserListCustomerTypeOperation"
          },
          "description": "Required. The list of operations to perform on the user list customer types."
        },
        "validateOnly": {
          "type": "boolean",
          "description": "Optional. If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "partialFailure": {
          "description": "Optional. If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__DataLink": {
      "id": "GoogleAdsSearchads360V23Resources__DataLink",
      "description": "Represents the data sharing connection between",
      "type": "object",
      "properties": {
        "type": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "VIDEO"
          ],
          "description": "Output only. The type of the data.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "A data link to YouTube video."
          ]
        },
        "dataLinkId": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. The ID of the data link. This field is read only."
        },
        "resourceName": {
          "description": "Immutable. Resource name of the product data link. DataLink resource names have the form: `",
          "type": "string"
        },
        "status": {
          "description": "Output only. The status of the data link.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Link has been requested by one party, but not confirmed by the other party.",
            "Link is waiting for the customer to approve.",
            "Link is established and can be used as needed.",
            "Link is no longer valid and should be ignored.",
            "Link request has been cancelled by the requester and further cleanup may be needed.",
            "Link request has been rejected by the approver."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "REQUESTED",
            "PENDING_APPROVAL",
            "ENABLED",
            "DISABLED",
            "REVOKED",
            "REJECTED"
          ],
          "readOnly": true
        },
        "youtubeVideo": {
          "description": "Immutable. A data link to YouTube video.",
          "$ref": "GoogleAdsSearchads360V23Resources__YoutubeVideoIdentifier"
        },
        "productLinkId": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. The ID of the link. This field is read only."
        }
      }
    },
    "GoogleAdsSearchads360V23Services_MetricAttributes_Attribute": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services_MetricAttributes_Attribute",
      "description": "The attribute of the metric in key value pair format.",
      "properties": {
        "value": {
          "type": "string",
          "description": "The value of the attribute."
        },
        "key": {
          "description": "The key of the attribute.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__RunBatchJobRequest": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__RunBatchJobRequest",
      "description": "Request message for BatchJobService.RunBatchJob.",
      "properties": {}
    },
    "GoogleAdsSearchads360V23Common__YouTubeChannelAttributeMetadata": {
      "id": "GoogleAdsSearchads360V23Common__YouTubeChannelAttributeMetadata",
      "description": "Metadata associated with a YouTube channel attribute.",
      "type": "object",
      "properties": {
        "subscriberCount": {
          "type": "string",
          "format": "int64",
          "description": "The approximate number of subscribers to the YouTube channel."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__GenerateBenchmarksMetricsResponse": {
      "properties": {
        "customerMetrics": {
          "description": "Metrics belonging to the customer.",
          "$ref": "GoogleAdsSearchads360V23Services__Metrics"
        },
        "averageBenchmarksMetrics": {
          "description": "Metrics for the selected benchmarks source.",
          "$ref": "GoogleAdsSearchads360V23Services__Metrics"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__GenerateBenchmarksMetricsResponse",
      "description": "Response message for BenchmarksService.GenerateBenchmarksMetrics."
    },
    "GoogleAdsSearchads360V23Services__Forecast": {
      "properties": {
        "totalReach": {
          "type": "string",
          "format": "int64",
          "description": "Total number of unique people reached at least GenerateReachForecastRequest.min_effective_frequency or GenerateReachForecastRequest.effective_frequency_limit times. This includes people that may fall outside the specified Targeting. Note that a minimum number of unique people must be reached in order for data to be reported. If the minimum number is not met, the total_reach value will be rounded to 0."
        },
        "totalImpressions": {
          "description": "Total number of ad impressions. This includes impressions that may fall outside the specified Targeting, due to insufficient information on signed-in users.",
          "type": "string",
          "format": "int64"
        },
        "totalCoviewImpressions": {
          "type": "string",
          "format": "int64",
          "description": "Total number of ad impressions including co-viewers. This includes impressions that may fall outside the specified Targeting, due to insufficient information on signed-in users."
        },
        "viewableImpressions": {
          "description": "Number of times the ad's impressions were considered viewable. See https://support.google.com/google-ads/answer/7029393 for more information about what makes an ad viewable and how viewability is measured.",
          "type": "string",
          "format": "int64"
        },
        "conversions": {
          "description": "The number of conversions. This metric is only available for DEMAND_GEN plannable products. See https://support.google.com/google-ads/answer/2375431 for more information on conversions.",
          "type": "number",
          "format": "double"
        },
        "trueviewViews": {
          "type": "string",
          "format": "int64",
          "description": "Number of ad views forecasted for the specified product and targeting. A TrueView View is counted when a viewer views a larger portion or the entirety of an ad beyond an impression. See https://support.google.com/google-ads/answer/2375431 for more information on TrueView Views."
        },
        "effectiveFrequencyBreakdowns": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__EffectiveFrequencyBreakdown"
          },
          "description": "A list of effective frequency forecasts. The list is ordered starting with 1+ and ending with the value set in GenerateReachForecastRequest.effective_frequency_limit. If no effective_frequency_limit was set, this list will be empty."
        },
        "onTargetImpressions": {
          "description": "Number of ad impressions that exactly matches the Targeting.",
          "type": "string",
          "format": "int64"
        },
        "onTargetCoviewReach": {
          "type": "string",
          "format": "int64",
          "description": "Number of unique people reached that exactly matches the Targeting including co-viewers."
        },
        "onTargetCoviewImpressions": {
          "type": "string",
          "format": "int64",
          "description": "Number of ad impressions that exactly matches the Targeting including co-viewers."
        },
        "onTargetReach": {
          "description": "Number of unique people reached at least GenerateReachForecastRequest.min_effective_frequency or GenerateReachForecastRequest.effective_frequency_limit times that exactly matches the Targeting. Note that a minimum number of unique people must be reached in order for data to be reported. If the minimum number is not met, the on_target_reach value will be rounded to 0.",
          "type": "string",
          "format": "int64"
        },
        "totalCoviewReach": {
          "description": "Number of unique people reached including co-viewers. This includes people that may fall outside the specified Targeting.",
          "type": "string",
          "format": "int64"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__Forecast",
      "description": "Forecasted traffic metrics for the planned products and targeting."
    },
    "GoogleAdsSearchads360V23Resources__CustomColumn": {
      "properties": {
        "name": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. User-defined name of the custom column."
        },
        "referencesAttributes": {
          "type": "boolean",
          "description": "Output only. True when the custom column is referring to one or more attributes.",
          "readOnly": true
        },
        "referencedSystemColumns": {
          "description": "Output only. The list of the referenced system columns of this custom column. For example, A custom column \"sum of impressions and clicks\" has referenced system columns of {\"metrics.clicks\", \"metrics.impressions\"}.",
          "type": "array",
          "items": {
            "type": "string"
          },
          "readOnly": true
        },
        "resourceName": {
          "description": "Immutable. The resource name of the custom column. Custom column resource names have the form: `customers/{customer_id}/customColumns/{custom_column_id}`",
          "type": "string"
        },
        "queryable": {
          "description": "Output only. True when the custom column is available to be used in the query of SearchAds360Service.Search and SearchAds360Service.SearchStream.",
          "type": "boolean",
          "readOnly": true
        },
        "description": {
          "type": "string",
          "description": "Output only. User-defined description of the custom column.",
          "readOnly": true
        },
        "renderType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Unknown.",
            "The custom column is a raw numerical value. See value_type field to determine if it is an integer or a double.",
            "The custom column should be multiplied by 100 to retrieve the percentage value.",
            "The custom column value is a monetary value and is in micros.",
            "The custom column value is a string.",
            "The custom column value is a boolean.",
            "The custom column value is a date represented as an integer in YYYYMMDD format."
          ],
          "description": "Output only. How the result value of the custom column should be interpreted.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NUMBER",
            "PERCENT",
            "MONEY",
            "STRING",
            "BOOLEAN",
            "DATE"
          ],
          "readOnly": true
        },
        "referencesMetrics": {
          "readOnly": true,
          "type": "boolean",
          "description": "Output only. True when the custom column is referring to one or more metrics."
        },
        "valueType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Unknown.",
            "The custom column value is a string.",
            "The custom column value is an int64 number.",
            "The custom column value is a double number.",
            "The custom column value is a boolean.",
            "The custom column value is a date, in YYYYMMDD format."
          ],
          "description": "Output only. The type of the result value of the custom column.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "STRING",
            "INT64",
            "DOUBLE",
            "BOOLEAN",
            "DATE"
          ],
          "readOnly": true
        },
        "id": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. ID of the custom column."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__CustomColumn",
      "description": "A custom column. See Search Ads 360 custom column at https://support.google.com/sa360/answer/9633916"
    },
    "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_ResponsiveSearchAdImproveAdStrengthParameters": {
      "id": "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_ResponsiveSearchAdImproveAdStrengthParameters",
      "description": "Parameters to use when applying a responsive search ad improve ad strength recommendation.",
      "type": "object",
      "properties": {
        "updatedAd": {
          "description": "Updated ad. The current ad's content will be replaced.",
          "$ref": "GoogleAdsSearchads360V23Resources__Ad"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateAccountLinkResult": {
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateAccountLinkResult",
      "description": "The result for the account link mutate."
    },
    "GoogleAdsSearchads360V23Resources__AssetGroupProductGroupView": {
      "id": "GoogleAdsSearchads360V23Resources__AssetGroupProductGroupView",
      "description": "An asset group product group view.",
      "type": "object",
      "properties": {
        "assetGroup": {
          "readOnly": true,
          "description": "Output only. The asset group associated with the listing group filter.",
          "type": "string"
        },
        "resourceName": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The resource name of the asset group product group view. Asset group product group view resource names have the form: `customers/{customer_id}/assetGroupProductGroupViews/{asset_group_id}~{listing_group_filter_id}`"
        },
        "assetGroupListingGroupFilter": {
          "description": "Output only. The resource name of the asset group listing group filter.",
          "type": "string",
          "readOnly": true
        }
      }
    },
    "GoogleAdsSearchads360V23Services__AssetGroupSignalOperation": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__AssetGroupSignalOperation",
      "description": "A single operation (create, remove) on an asset group signal.",
      "properties": {
        "remove": {
          "description": "Remove operation: A resource name for the removed asset group signal is expected, in this format: `customers/{customer_id}/assetGroupSignals/{asset_group_id}~{criterion_id}`",
          "type": "string"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new asset group signal.",
          "$ref": "GoogleAdsSearchads360V23Resources__AssetGroupSignal"
        },
        "exemptPolicyViolationKeys": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__PolicyViolationKey"
          },
          "description": "Optional. The list of policy violation keys that should not cause a PolicyViolationError to be reported. Not all policy violations are exemptable, refer to the is_exemptible field in the returned PolicyViolationError. Resources violating these polices will be saved, but will not be eligible to serve. They may begin serving at a later time due to a change in policies, re-review of the resource, or a change in advertiser certificates."
        }
      }
    },
    "GoogleAdsSearchads360V23Resources_BatchJob_BatchJobMetadata": {
      "properties": {
        "creationDateTime": {
          "type": "string",
          "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
        },
        "startDateTime": {
          "type": "string",
          "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
        },
        "estimatedCompletionRatio": {
          "readOnly": true,
          "type": "number",
          "format": "double",
          "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."
        },
        "executedOperationCount": {
          "description": "Output only. The number of mutate operations executed by the batch job. Present only if the job has started running.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        },
        "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.",
          "type": "integer",
          "format": "int32"
        },
        "completionDateTime": {
          "type": "string",
          "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
        },
        "operationCount": {
          "description": "Output only. The number of mutate operations in the batch job.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        }
      },
      "id": "GoogleAdsSearchads360V23Resources_BatchJob_BatchJobMetadata",
      "description": "Additional information about the batch job. This message is also used as metadata returned in batch job Long Running Operations.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources__DisplayKeywordView": {
      "id": "GoogleAdsSearchads360V23Resources__DisplayKeywordView",
      "description": "A display keyword view. Provides performance data for keywords used in Display Network campaigns. This view lets you analyze how your display keywords are performing across various segments. This view is primarily used to track the effectiveness of keyword targeting within your Display campaigns. To understand which network the metrics apply to, you can select the `segments.ad_network_type` field in your query. This field will segment the data by networks such as the Google Display Network, YouTube, Gmail, and so on. You can select fields from this resource along with metrics like impressions, clicks, and conversions to gauge performance. Attributed resources like `ad_group` and `campaign` can also be selected without segmenting metrics.",
      "type": "object",
      "properties": {
        "resourceName": {
          "readOnly": true,
          "description": "Output only. The resource name of the display keyword view. Display Keyword view resource names have the form: `customers/{customer_id}/displayKeywordViews/{ad_group_id}~{criterion_id}`",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MoveManagerLinkRequest": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MoveManagerLinkRequest",
      "description": "Request message for CustomerManagerLinkService.MoveManagerLink.",
      "properties": {
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "previousCustomerManagerLink": {
          "type": "string",
          "description": "Required. The resource name of the previous CustomerManagerLink. The resource name has the form: `customers/{customer_id}/customerManagerLinks/{manager_customer_id}~{manager_link_id}`"
        },
        "newManager": {
          "description": "Required. The resource name of the new manager customer that the client wants to move to. Customer resource names have the format: \"customers/{customer_id}\"",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateAccountBudgetProposalResponse": {
      "properties": {
        "result": {
          "description": "The result of the mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateAccountBudgetProposalResult"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateAccountBudgetProposalResponse",
      "description": "Response message for account-level budget mutate operations."
    },
    "GoogleAdsSearchads360V23Common__UserListAttributeMetadata": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__UserListAttributeMetadata",
      "description": "Metadata associated with a User List attribute.",
      "properties": {
        "userListType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "UserList represented as a collection of conversion types.",
            "UserList represented as a combination of other user lists/interests.",
            "UserList created in the Google Ad Manager platform.",
            "UserList associated with a rule.",
            "UserList with users similar to users of another UserList.",
            "UserList of first-party CRM data provided by advertiser in the form of emails or other formats.",
            "LookalikeUserlist, composed of users similar to those of a configurable seed (set of UserLists)"
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "REMARKETING",
            "LOGICAL",
            "EXTERNAL_REMARKETING",
            "RULE_BASED",
            "SIMILAR",
            "CRM_BASED",
            "LOOKALIKE"
          ],
          "description": "The user list type."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__CustomInterestOperation": {
      "id": "GoogleAdsSearchads360V23Services__CustomInterestOperation",
      "description": "A single operation (create, update) on a custom interest.",
      "type": "object",
      "properties": {
        "updateMask": {
          "type": "string",
          "format": "google-fieldmask",
          "description": "FieldMask that determines which resource fields are modified in an update."
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new custom interest.",
          "$ref": "GoogleAdsSearchads360V23Resources__CustomInterest"
        },
        "update": {
          "description": "Update operation: The custom interest is expected to have a valid resource name.",
          "$ref": "GoogleAdsSearchads360V23Resources__CustomInterest"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__MapsLocationSet": {
      "id": "GoogleAdsSearchads360V23Common__MapsLocationSet",
      "description": "Wrapper for multiple maps location sync data",
      "type": "object",
      "properties": {
        "mapsLocations": {
          "description": "Required. A list of maps location info that user manually synced in.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__MapsLocationInfo"
          }
        }
      }
    },
    "GoogleAdsSearchads360V23Resources_ConversionAction_GoogleAnalytics4Settings": {
      "id": "GoogleAdsSearchads360V23Resources_ConversionAction_GoogleAnalytics4Settings",
      "description": "Settings related to a Google Analytics 4 conversion action.",
      "type": "object",
      "properties": {
        "eventName": {
          "type": "string",
          "description": "Output only. The name of the GA 4 event.",
          "readOnly": true
        },
        "propertyName": {
          "type": "string",
          "description": "Output only. The name of the GA 4 property.",
          "readOnly": true
        },
        "propertyId": {
          "type": "string",
          "format": "int64",
          "description": "Output only. The ID of the GA 4 property.",
          "readOnly": true
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateAdGroupBidModifiersResponse": {
      "id": "GoogleAdsSearchads360V23Services__MutateAdGroupBidModifiersResponse",
      "description": "Response message for ad group bid modifiers mutate.",
      "type": "object",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "description": "All results for the mutate.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateAdGroupBidModifierResult"
          }
        }
      }
    },
    "GoogleAdsSearchads360V23Common__PageFeedAsset": {
      "properties": {
        "pageUrl": {
          "description": "Required. The webpage that advertisers want to target.",
          "type": "string"
        },
        "labels": {
          "description": "Labels used to group the page urls.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "id": "GoogleAdsSearchads360V23Common__PageFeedAsset",
      "description": "A Page Feed asset.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources_Recommendation_ShoppingMerchantCenterAccountSuspensionRecommendation": {
      "id": "GoogleAdsSearchads360V23Resources_Recommendation_ShoppingMerchantCenterAccountSuspensionRecommendation",
      "description": "The shopping recommendation to fix Merchant Center account suspension issues.",
      "type": "object",
      "properties": {
        "feedLabel": {
          "readOnly": true,
          "description": "Output only. The feed label of the campaign for which the suspension happened.",
          "type": "string"
        },
        "merchant": {
          "description": "Output only. The details of the Merchant Center account.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_MerchantInfo",
          "readOnly": true
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__CampaignCustomizer": {
      "id": "GoogleAdsSearchads360V23Resources__CampaignCustomizer",
      "description": "A customizer value for the associated CustomizerAttribute at the Campaign level.",
      "type": "object",
      "properties": {
        "customizerAttribute": {
          "description": "Required. Immutable. The customizer attribute which is linked to the campaign.",
          "type": "string"
        },
        "resourceName": {
          "description": "Immutable. The resource name of the campaign customizer. Campaign customizer resource names have the form: `customers/{customer_id}/campaignCustomizers/{campaign_id}~{customizer_attribute_id}`",
          "type": "string"
        },
        "status": {
          "type": "string",
          "enumDescriptions": [
            "The status has not been specified.",
            "The received value is not known in this version.",
            "The customizer value is enabled.",
            "The customizer value is removed."
          ],
          "description": "Output only. The status of the campaign customizer.",
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ]
        },
        "campaign": {
          "description": "Immutable. The campaign to which the customizer attribute is linked.",
          "type": "string"
        },
        "value": {
          "description": "Required. The value to associate with the customizer attribute at this level. The value must be of the type specified for the CustomizerAttribute.",
          "$ref": "GoogleAdsSearchads360V23Common__CustomizerValue"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__Keyword": {
      "id": "GoogleAdsSearchads360V23Common__Keyword",
      "description": "A Keyword criterion segment.",
      "type": "object",
      "properties": {
        "adGroupCriterion": {
          "description": "The AdGroupCriterion resource name.",
          "type": "string"
        },
        "info": {
          "description": "Keyword info.",
          "$ref": "GoogleAdsSearchads360V23Common__KeywordInfo"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__RunOfflineUserDataJobRequest": {
      "id": "GoogleAdsSearchads360V23Services__RunOfflineUserDataJobRequest",
      "description": "Request message for OfflineUserDataJobService.RunOfflineUserDataJob.",
      "type": "object",
      "properties": {
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__GeographicView": {
      "properties": {
        "locationType": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AREA_OF_INTEREST",
            "LOCATION_OF_PRESENCE"
          ],
          "description": "Output only. Type of the geo targeting of the campaign.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Location the user is interested in while making the query.",
            "Location of the user issuing the query."
          ]
        },
        "resourceName": {
          "readOnly": true,
          "description": "Output only. The resource name of the geographic view. Geographic view resource names have the form: `customers/{customer_id}/geographicViews/{country_criterion_id}~{location_type}`",
          "type": "string"
        },
        "countryCriterionId": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. Criterion Id for the country."
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__GeographicView",
      "description": "A geographic view. Geographic View includes all metrics aggregated at the country level, one row per country. It reports metrics at either actual physical location of the user or an area of interest. If other segment fields are used, you may get more than one row per country.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__AdGroupAdOperation": {
      "id": "GoogleAdsSearchads360V23Services__AdGroupAdOperation",
      "description": "A single operation (create, update, remove) on an ad group ad.",
      "type": "object",
      "properties": {
        "policyValidationParameter": {
          "description": "Configuration for how policies are validated.",
          "$ref": "GoogleAdsSearchads360V23Common__PolicyValidationParameter"
        },
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed ad is expected, in this format: `customers/{customer_id}/adGroupAds/{ad_group_id}~{ad_id}`"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new ad.",
          "$ref": "GoogleAdsSearchads360V23Resources__AdGroupAd"
        },
        "update": {
          "description": "Update operation: The ad is expected to have a valid resource name.",
          "$ref": "GoogleAdsSearchads360V23Resources__AdGroupAd"
        },
        "updateMask": {
          "type": "string",
          "format": "google-fieldmask",
          "description": "FieldMask that determines which resource fields are modified in an update."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MoveManagerLinkResponse": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MoveManagerLinkResponse",
      "description": "Response message for a CustomerManagerLink moveManagerLink.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations. Represents a CustomerManagerLink resource of the newly created link between client customer and new manager customer."
        }
      }
    },
    "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_ForecastingSetTargetRoasParameters": {
      "properties": {
        "targetRoas": {
          "type": "number",
          "format": "double",
          "description": "New target ROAS (revenue per unit of spend) to set for a campaign resource. The value is between 0.01 and 1000.0, inclusive."
        },
        "campaignBudgetAmountMicros": {
          "description": "New campaign budget amount to set for a campaign resource.",
          "type": "string",
          "format": "int64"
        }
      },
      "id": "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_ForecastingSetTargetRoasParameters",
      "description": "Parameters to use when applying a forecasting set target roas recommendation.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources__CustomizerAttribute": {
      "properties": {
        "type": {
          "description": "Immutable. The type of the customizer attribute.",
          "type": "string",
          "enumDescriptions": [
            "The status has not been specified.",
            "The received value is not known in this version.",
            "Text customizer.",
            "Number customizer.",
            "Price customizer consisting of a number and a currency.",
            "Percentage customizer consisting of a number and a '%'."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "TEXT",
            "NUMBER",
            "PRICE",
            "PERCENT"
          ]
        },
        "name": {
          "type": "string",
          "description": "Required. Immutable. Name of the customizer attribute. Required. It must have a minimum length of 1 and maximum length of 40. Name of an enabled customizer attribute must be unique (case insensitive)."
        },
        "resourceName": {
          "description": "Immutable. The resource name of the customizer attribute. Customizer Attribute resource names have the form: `customers/{customer_id}/customizerAttributes/{customizer_attribute_id}`",
          "type": "string"
        },
        "status": {
          "type": "string",
          "enumDescriptions": [
            "The status has not been specified.",
            "The received value is not known in this version.",
            "The customizer attribute is enabled.",
            "The customizer attribute is removed."
          ],
          "description": "Output only. The status of the customizer attribute.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ],
          "readOnly": true
        },
        "id": {
          "description": "Output only. The ID of the customizer attribute.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__CustomizerAttribute",
      "description": "A customizer attribute. Use CustomerCustomizer, CampaignCustomizer, AdGroupCustomizer, or AdGroupCriterionCustomizer to associate a customizer attribute and set its value at the customer, campaign, ad group, or ad group criterion level, respectively."
    },
    "GoogleAdsSearchads360V23Services__MutateRemarketingActionsRequest": {
      "id": "GoogleAdsSearchads360V23Services__MutateRemarketingActionsRequest",
      "description": "Request message for RemarketingActionService.MutateRemarketingActions.",
      "type": "object",
      "properties": {
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        },
        "operations": {
          "description": "Required. The list of operations to perform on individual remarketing actions.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__RemarketingActionOperation"
          }
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__AssetSetAssetOperation": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__AssetSetAssetOperation",
      "description": "A single operation (create, remove) on an asset set asset.",
      "properties": {
        "remove": {
          "description": "Remove operation: A resource name for the removed asset set asset is expected, in this format: `customers/{customer_id}/assetSetAssets/{asset_set_id}~{asset_id}`",
          "type": "string"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new asset set asset",
          "$ref": "GoogleAdsSearchads360V23Resources__AssetSetAsset"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateAudienceResult": {
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        },
        "audience": {
          "description": "The mutated Audience with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsSearchads360V23Resources__Audience"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateAudienceResult",
      "description": "The result for the audience mutate."
    },
    "GoogleAdsSearchads360V23Services__SiteSeed": {
      "id": "GoogleAdsSearchads360V23Services__SiteSeed",
      "description": "Site Seed",
      "type": "object",
      "properties": {
        "site": {
          "type": "string",
          "description": "The domain name of the site. If the customer requesting the ideas doesn't own the site provided only public information is returned."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__ProductCustomAttributeInfo": {
      "properties": {
        "index": {
          "description": "Indicates the index of the custom attribute.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "First product custom attribute.",
            "Second product custom attribute.",
            "Third product custom attribute.",
            "Fourth product custom attribute.",
            "Fifth product custom attribute."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INDEX0",
            "INDEX1",
            "INDEX2",
            "INDEX3",
            "INDEX4"
          ]
        },
        "value": {
          "description": "String value of the product custom attribute.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__ProductCustomAttributeInfo",
      "description": "Custom attribute of a product offer."
    },
    "GoogleAdsSearchads360V23Services__MutateSmartCampaignSettingsResponse": {
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateSmartCampaignSettingResult"
          },
          "description": "All results for the mutate."
        }
      },
      "id": "GoogleAdsSearchads360V23Services__MutateSmartCampaignSettingsResponse",
      "description": "Response message for campaign mutate.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateConversionValueRuleSetsResponse": {
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateConversionValueRuleSetResult"
          },
          "description": "All results for the mutate."
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__MutateConversionValueRuleSetsResponse",
      "description": "Response message for ConversionValueRuleSetService.MutateConversionValueRuleSets.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__RemoveCampaignAutomaticallyCreatedAssetOperation": {
      "properties": {
        "fieldType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is linked for use as a headline.",
            "The asset is linked for use as a description.",
            "The asset is linked for use as mandatory ad text.",
            "The asset is linked for use as a marketing image.",
            "The asset is linked for use as a media bundle.",
            "The asset is linked for use as a YouTube video.",
            "The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.",
            "The asset is linked for use as a Lead Form extension.",
            "The asset is linked for use as a Promotion extension.",
            "The asset is linked for use as a Callout extension.",
            "The asset is linked for use as a Structured Snippet extension.",
            "The asset is linked for use as a Sitelink.",
            "The asset is linked for use as a Mobile App extension.",
            "The asset is linked for use as a Hotel Callout extension.",
            "The asset is linked for use as a Call extension.",
            "The asset is linked for use as a Price extension.",
            "The asset is linked for use as a long headline.",
            "The asset is linked for use as a business name.",
            "The asset is linked for use as a square marketing image.",
            "The asset is linked for use as a portrait marketing image.",
            "The asset is linked for use as a logo.",
            "The asset is linked for use as a landscape logo.",
            "The asset is linked for use as a non YouTube logo.",
            "The asset is linked for use to select a call-to-action.",
            "The asset is linked for use to select an ad image.",
            "The asset is linked for use as a business logo.",
            "The asset is linked for use as a hotel property in a Performance Max for travel goals campaign.",
            "The asset is linked for use as a Demand Gen carousel card.",
            "The asset is linked for use as a Business Message.",
            "The asset is linked for use as a tall portrait marketing image.",
            "The asset is linked for use as a landing page preview image.",
            "The asset is linked for use as a long description.",
            "The asset is linked for use as a call-to-action."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HEADLINE",
            "DESCRIPTION",
            "MANDATORY_AD_TEXT",
            "MARKETING_IMAGE",
            "MEDIA_BUNDLE",
            "YOUTUBE_VIDEO",
            "BOOK_ON_GOOGLE",
            "LEAD_FORM",
            "PROMOTION",
            "CALLOUT",
            "STRUCTURED_SNIPPET",
            "SITELINK",
            "MOBILE_APP",
            "HOTEL_CALLOUT",
            "CALL",
            "PRICE",
            "LONG_HEADLINE",
            "BUSINESS_NAME",
            "SQUARE_MARKETING_IMAGE",
            "PORTRAIT_MARKETING_IMAGE",
            "LOGO",
            "LANDSCAPE_LOGO",
            "VIDEO",
            "CALL_TO_ACTION_SELECTION",
            "AD_IMAGE",
            "BUSINESS_LOGO",
            "HOTEL_PROPERTY",
            "DEMAND_GEN_CAROUSEL_CARD",
            "BUSINESS_MESSAGE",
            "TALL_PORTRAIT_MARKETING_IMAGE",
            "LANDING_PAGE_PREVIEW",
            "LONG_DESCRIPTION",
            "CALL_TO_ACTION"
          ],
          "description": "Required. The field type of the asset to remove."
        },
        "campaign": {
          "type": "string",
          "description": "Required. The resource name of the campaign."
        },
        "asset": {
          "description": "Required. The resource name of the asset to remove.",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__RemoveCampaignAutomaticallyCreatedAssetOperation",
      "description": "A single operation to remove an automatically created asset from a campaign.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources__Conversion": {
      "properties": {
        "conversionQuantity": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. The quantity of items recorded by the conversion, as determined by the qty url parameter. The advertiser is responsible for dynamically populating the parameter (such as number of items sold in the conversion), otherwise it defaults to 1."
        },
        "conversionRevenueMicros": {
          "description": "Output only. The adjusted revenue in micros for the conversion event. This will always be in the currency of the serving account.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        },
        "productStoreId": {
          "type": "string",
          "description": "Output only. The store in the Local Inventory Ad that was clicked on. This should match the store IDs used in your local products feed.",
          "readOnly": true
        },
        "conversionDateTime": {
          "type": "string",
          "description": "Output only. The timestamp of the conversion event.",
          "readOnly": true
        },
        "conversionVisitDateTime": {
          "readOnly": true,
          "description": "Output only. The timestamp of the visit that the conversion is attributed to.",
          "type": "string"
        },
        "assetId": {
          "description": "Output only. ID of the asset which was interacted with during the conversion event.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        },
        "productChannel": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ONLINE",
            "LOCAL"
          ],
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The item is sold online.",
            "The item is sold in local stores."
          ],
          "description": "Output only. The sales channel of the product that was clicked on: Online or Local."
        },
        "conversionLastModifiedDateTime": {
          "type": "string",
          "description": "Output only. The timestamp of the last time the conversion was modified.",
          "readOnly": true
        },
        "id": {
          "description": "Output only. The ID of the conversion",
          "type": "string",
          "format": "int64",
          "readOnly": true
        },
        "visitId": {
          "description": "Output only. The Search Ads 360 visit ID that the conversion is attributed to.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        },
        "assetFieldType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HEADLINE",
            "DESCRIPTION",
            "MANDATORY_AD_TEXT",
            "MARKETING_IMAGE",
            "MEDIA_BUNDLE",
            "YOUTUBE_VIDEO",
            "BOOK_ON_GOOGLE",
            "LEAD_FORM",
            "PROMOTION",
            "CALLOUT",
            "STRUCTURED_SNIPPET",
            "SITELINK",
            "MOBILE_APP",
            "HOTEL_CALLOUT",
            "CALL",
            "PRICE",
            "LONG_HEADLINE",
            "BUSINESS_NAME",
            "SQUARE_MARKETING_IMAGE",
            "PORTRAIT_MARKETING_IMAGE",
            "LOGO",
            "LANDSCAPE_LOGO",
            "VIDEO",
            "CALL_TO_ACTION_SELECTION",
            "AD_IMAGE",
            "BUSINESS_LOGO",
            "HOTEL_PROPERTY",
            "DEMAND_GEN_CAROUSEL_CARD",
            "BUSINESS_MESSAGE",
            "TALL_PORTRAIT_MARKETING_IMAGE",
            "LANDING_PAGE_PREVIEW",
            "LONG_DESCRIPTION",
            "CALL_TO_ACTION"
          ],
          "readOnly": true,
          "description": "Output only. Asset field type of the conversion event.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is linked for use as a headline.",
            "The asset is linked for use as a description.",
            "The asset is linked for use as mandatory ad text.",
            "The asset is linked for use as a marketing image.",
            "The asset is linked for use as a media bundle.",
            "The asset is linked for use as a YouTube video.",
            "The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.",
            "The asset is linked for use as a Lead Form extension.",
            "The asset is linked for use as a Promotion extension.",
            "The asset is linked for use as a Callout extension.",
            "The asset is linked for use as a Structured Snippet extension.",
            "The asset is linked for use as a Sitelink.",
            "The asset is linked for use as a Mobile App extension.",
            "The asset is linked for use as a Hotel Callout extension.",
            "The asset is linked for use as a Call extension.",
            "The asset is linked for use as a Price extension.",
            "The asset is linked for use as a long headline.",
            "The asset is linked for use as a business name.",
            "The asset is linked for use as a square marketing image.",
            "The asset is linked for use as a portrait marketing image.",
            "The asset is linked for use as a logo.",
            "The asset is linked for use as a landscape logo.",
            "The asset is linked for use as a non YouTube logo.",
            "The asset is linked for use to select a call-to-action.",
            "The asset is linked for use to select an ad image.",
            "The asset is linked for use as a business logo.",
            "The asset is linked for use as a hotel property in a Performance Max for travel goals campaign.",
            "The asset is linked for use as a Demand Gen carousel card.",
            "The asset is linked for use as a Business Message.",
            "The asset is linked for use as a tall portrait marketing image.",
            "The asset is linked for use as a landing page preview image.",
            "The asset is linked for use as a long description.",
            "The asset is linked for use as a call-to-action."
          ]
        },
        "clickId": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. A unique string, for the visit that the conversion is attributed to, that is passed to the landing page as the click id URL parameter."
        },
        "resourceName": {
          "description": "Output only. The resource name of the conversion. Conversion resource names have the form: `customers/{customer_id}/conversions/{ad_group_id}~{criterion_id}~{ds_conversion_id}`",
          "type": "string",
          "readOnly": true
        },
        "floodlightOrderId": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The Floodlight order ID provided by the advertiser for the conversion."
        },
        "productCountryCode": {
          "readOnly": true,
          "description": "Output only. The country (ISO-3166-format) registered for the inventory feed that contains the product clicked on.",
          "type": "string"
        },
        "productId": {
          "description": "Output only. The ID of the product clicked on.",
          "type": "string",
          "readOnly": true
        },
        "attributionType": {
          "description": "Output only. What the conversion is attributed to: Visit or Keyword+Ad.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The conversion is attributed to a visit.",
            "The conversion is attributed to a criterion and ad pair."
          ],
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "VISIT",
            "CRITERION_AD"
          ]
        },
        "criterionId": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. Search Ads 360 criterion ID. A value of 0 indicates that the criterion is unattributed."
        },
        "productLanguageCode": {
          "type": "string",
          "description": "Output only. The language (ISO-639-1) that has been set for the Merchant Center feed containing data about the product.",
          "readOnly": true
        },
        "advertiserConversionId": {
          "description": "Output only. For offline conversions, this is an ID provided by advertisers. If an advertiser doesn't specify such an ID, Search Ads 360 generates one. For online conversions, this is equal to the id column or the floodlight_order_id column depending on the advertiser's Floodlight instructions.",
          "type": "string",
          "readOnly": true
        },
        "status": {
          "description": "Output only. The status of the conversion, either ENABLED or REMOVED..",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The conversion is enabled.",
            "The conversion has been removed."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ],
          "readOnly": true
        },
        "merchantId": {
          "readOnly": true,
          "description": "Output only. The Search Ads 360 inventory account ID containing the product that was clicked on. Search Ads 360 generates this ID when you link an inventory account in Search Ads 360.",
          "type": "string",
          "format": "int64"
        },
        "floodlightOriginalRevenue": {
          "type": "string",
          "format": "int64",
          "description": "Output only. The original, unchanged revenue associated with the Floodlight event (in the currency of the current report), before Floodlight currency instruction modifications.",
          "readOnly": true
        },
        "adId": {
          "readOnly": true,
          "description": "Output only. Ad ID. A value of 0 indicates that the ad is unattributed.",
          "type": "string",
          "format": "int64"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__Conversion",
      "description": "A conversion."
    },
    "GoogleAdsSearchads360V23Services_SuggestKeywordThemesResponse_KeywordTheme": {
      "properties": {
        "keywordThemeConstant": {
          "description": "A Smart campaign keyword theme constant.",
          "$ref": "GoogleAdsSearchads360V23Resources__KeywordThemeConstant"
        },
        "freeFormKeywordTheme": {
          "type": "string",
          "description": "A free-form text keyword theme."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services_SuggestKeywordThemesResponse_KeywordTheme",
      "description": "A Smart campaign keyword theme suggestion."
    },
    "GoogleAdsSearchads360V23Common__ProductChannelExclusivityInfo": {
      "properties": {
        "channelExclusivity": {
          "description": "Value of the availability.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The item is sold through one channel only, either local stores or online as indicated by its ProductChannel.",
            "The item is matched to its online or local stores counterpart, indicating it is available for purchase in both ShoppingProductChannels."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SINGLE_CHANNEL",
            "MULTI_CHANNEL"
          ]
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__ProductChannelExclusivityInfo",
      "description": "Availability of a product offer."
    },
    "GoogleAdsSearchads360V23Resources__ListingGroupFilterDimensionPath": {
      "properties": {
        "dimensions": {
          "readOnly": true,
          "description": "Output only. The complete path of dimensions through the listing group filter hierarchy (excluding the root node) to this listing group filter.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Resources__ListingGroupFilterDimension"
          }
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__ListingGroupFilterDimensionPath",
      "description": "The path defining of dimensions defining a listing group filter.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__Consent": {
      "id": "GoogleAdsSearchads360V23Common__Consent",
      "description": "Consent",
      "type": "object",
      "properties": {
        "adUserData": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Output-only. Represents a format not yet defined in this enum.",
            "Granted.",
            "Denied."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "GRANTED",
            "DENIED"
          ],
          "description": "This represents consent for ad user data."
        },
        "adPersonalization": {
          "description": "This represents consent for ad personalization. This can only be set for OfflineUserDataJobService and UserDataService.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Output-only. Represents a format not yet defined in this enum.",
            "Granted.",
            "Denied."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "GRANTED",
            "DENIED"
          ]
        }
      }
    },
    "GoogleAdsSearchads360V23Services__ListInsightsEligibleDatesResponse": {
      "properties": {
        "dataMonths": {
          "description": "The months for which AudienceInsights data is currently available, each represented as a string in the form \"YYYY-MM\".",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "lastThirtyDays": {
          "description": "The actual dates covered by the \"last 30 days\" date range that will be used implicitly for AudienceInsightsService.GenerateAudienceCompositionInsights requests that have no data_month set.",
          "$ref": "GoogleAdsSearchads360V23Common__DateRange"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__ListInsightsEligibleDatesResponse",
      "description": "Response message for AudienceInsightsService.ListInsightsEligibleDates."
    },
    "GoogleAdsSearchads360V23Services__MutateSharedCriteriaResponse": {
      "id": "GoogleAdsSearchads360V23Services__MutateSharedCriteriaResponse",
      "description": "Response message for a shared criterion mutate.",
      "type": "object",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "description": "All results for the mutate.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateSharedCriterionResult"
          }
        }
      }
    },
    "GoogleAdsSearchads360V23Services__YouTubeSelectSettings": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__YouTubeSelectSettings",
      "description": "Request settings for YouTube Select Lineups",
      "properties": {
        "lineupId": {
          "type": "string",
          "format": "int64",
          "description": "Lineup for YouTube Select Targeting."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__ConversionValueRuleSetOperation": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__ConversionValueRuleSetOperation",
      "description": "A single operation (create, update, remove) on a conversion value rule set.",
      "properties": {
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "type": "string",
          "format": "google-fieldmask"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new conversion value rule set.",
          "$ref": "GoogleAdsSearchads360V23Resources__ConversionValueRuleSet"
        },
        "update": {
          "description": "Update operation: The conversion value rule set is expected to have a valid resource name.",
          "$ref": "GoogleAdsSearchads360V23Resources__ConversionValueRuleSet"
        },
        "remove": {
          "description": "Remove operation: A resource name for the removed conversion value rule set is expected, in this format: `customers/{customer_id}/conversionValueRuleSets/{conversion_value_rule_set_id}`",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__BiddingDataExclusion": {
      "properties": {
        "dataExclusionId": {
          "description": "Output only. The ID of the data exclusion.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        },
        "endDateTime": {
          "description": "Required. The exclusive end time of the data exclusion in yyyy-MM-dd HH:mm:ss format. The length of [start_date_time, end_date_time) interval must be within (0, 14 days].",
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "The name of the data exclusion. The name can be at most 255 characters."
        },
        "status": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ],
          "description": "Output only. The status of the data exclusion.",
          "type": "string",
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The seasonality event is enabled.",
            "The seasonality event is removed."
          ]
        },
        "advertisingChannelTypes": {
          "type": "array",
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "Search Network. Includes display bundled, and Search+ campaigns.",
              "Google Display Network only.",
              "Shopping campaigns serve on the shopping property and on google.com search results.",
              "Hotel Ads campaigns.",
              "Video campaigns.",
              "App Campaigns, and App Campaigns for Engagement, that run across multiple channels.",
              "Local ads campaigns.",
              "Smart campaigns.",
              "Performance Max campaigns.",
              "Local services campaigns.",
              "Travel campaigns.",
              "Demand Gen campaigns.",
              "Social campaigns."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "SEARCH",
              "DISPLAY",
              "SHOPPING",
              "HOTEL",
              "VIDEO",
              "MULTI_CHANNEL",
              "LOCAL",
              "SMART",
              "PERFORMANCE_MAX",
              "LOCAL_SERVICES",
              "TRAVEL",
              "DEMAND_GEN",
              "SOCIAL"
            ]
          },
          "description": "The data_exclusion will apply to all the campaigns under the listed channels retroactively as well as going forward when the scope of this exclusion is CHANNEL. The supported advertising channel types are DISPLAY, SEARCH and SHOPPING. Note: a data exclusion with both advertising_channel_types and campaign_ids is not supported."
        },
        "description": {
          "description": "The description of the data exclusion. The description can be at most 2048 characters.",
          "type": "string"
        },
        "scope": {
          "description": "The scope of the data exclusion.",
          "type": "string",
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The seasonality event is applied to all the customer's traffic for supported advertising channel types and device types. The CUSTOMER scope cannot be used in mutates.",
            "The seasonality event is applied to all specified campaigns.",
            "The seasonality event is applied to all campaigns that belong to specified channel types."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CUSTOMER",
            "CAMPAIGN",
            "CHANNEL"
          ]
        },
        "campaigns": {
          "description": "The data exclusion will apply to the campaigns listed when the scope of this exclusion is CAMPAIGN. The maximum number of campaigns per event is 2000. Note: a data exclusion with both advertising_channel_types and campaign_ids is not supported.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "resourceName": {
          "description": "Immutable. The resource name of the data exclusion. Data exclusion resource names have the form: `customers/{customer_id}/biddingDataExclusions/{data_exclusion_id}`",
          "type": "string"
        },
        "startDateTime": {
          "description": "Required. The inclusive start time of the data exclusion in yyyy-MM-dd HH:mm:ss format. A data exclusion is backward looking and should be used for events that start in the past and end either in the past or future.",
          "type": "string"
        },
        "devices": {
          "description": "If not specified, all devices will be included in this exclusion. Otherwise, only the specified targeted devices will be included in this exclusion.",
          "type": "array",
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "The value is unknown in this version.",
              "Mobile devices with full browsers.",
              "Tablets with full browsers.",
              "Computers.",
              "Smart TVs and game consoles.",
              "Other device types."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "MOBILE",
              "TABLET",
              "DESKTOP",
              "CONNECTED_TV",
              "OTHER"
            ]
          }
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__BiddingDataExclusion",
      "description": "Represents a bidding data exclusion. Bidding data exclusions can be set in client accounts only, and cannot be used in manager accounts. See \"About data exclusions\" at https://support.google.com/google-ads/answer/10370710. Note: A customer account can have a maximum of 500 active bidding data exclusions.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__ContentLabelInfo": {
      "properties": {
        "type": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Sexually suggestive content.",
            "Below the fold placement.",
            "Parked domain.",
            "Juvenile, gross & bizarre content.",
            "Profanity & rough language.",
            "Death & tragedy.",
            "Video.",
            "Content rating: G.",
            "Content rating: PG.",
            "Content rating: T.",
            "Content rating: MA.",
            "Content rating: not yet rated.",
            "Embedded video.",
            "Live streaming video.",
            "Sensitive social issues.",
            "Content that's suitable for families to view together, including Made for Kids videos on YouTube.",
            "Video games that simulate hand-to-hand fighting or combat with the use of modern or medieval weapons.",
            "Video games that feature mature content, such as violence, inappropriate language, or sexual suggestiveness.",
            "Health content that people might find sensitive or upsetting, such as medical procedures or images and descriptions of various medical conditions.",
            "Health content from sources that may provide accurate information but aren't as commonly cited as other, more well-known sources.",
            "News content that's been recently announced, regardless of the themes or people being reported on.",
            "News content that people might find sensitive or upsetting, such as crimes, accidents, and natural incidents, or commentary on potentially controversial social and political issues.",
            "News content from sources that aren't featured on Google News or YouTube News.",
            "Political content, such as political statements made by well-known politicians, political elections, or events widely perceived to be political in nature.",
            "Content with religious themes, such as religious teachings or customs, holy sites or places of worship, well-known religious figures or people dressed in religious attire, or religious opinions on social and political issues."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SEXUALLY_SUGGESTIVE",
            "BELOW_THE_FOLD",
            "PARKED_DOMAIN",
            "JUVENILE",
            "PROFANITY",
            "TRAGEDY",
            "VIDEO",
            "VIDEO_RATING_DV_G",
            "VIDEO_RATING_DV_PG",
            "VIDEO_RATING_DV_T",
            "VIDEO_RATING_DV_MA",
            "VIDEO_NOT_YET_RATED",
            "EMBEDDED_VIDEO",
            "LIVE_STREAMING_VIDEO",
            "SOCIAL_ISSUES",
            "BRAND_SUITABILITY_CONTENT_FOR_FAMILIES",
            "BRAND_SUITABILITY_GAMES_FIGHTING",
            "BRAND_SUITABILITY_GAMES_MATURE",
            "BRAND_SUITABILITY_HEALTH_SENSITIVE",
            "BRAND_SUITABILITY_HEALTH_SOURCE_UNDETERMINED",
            "BRAND_SUITABILITY_NEWS_RECENT",
            "BRAND_SUITABILITY_NEWS_SENSITIVE",
            "BRAND_SUITABILITY_NEWS_SOURCE_NOT_FEATURED",
            "BRAND_SUITABILITY_POLITICS",
            "BRAND_SUITABILITY_RELIGION"
          ],
          "description": "Content label type, required for CREATE operations."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__ContentLabelInfo",
      "description": "Content Label for category exclusion."
    },
    "GoogleAdsSearchads360V23Common__DynamicFlightsAsset": {
      "id": "GoogleAdsSearchads360V23Common__DynamicFlightsAsset",
      "description": "A dynamic flights asset.",
      "type": "object",
      "properties": {
        "formattedSalePrice": {
          "description": "Formatted sale price which can be any characters. If set, this attribute will be used instead of 'sale price', for example, On sale for $80.00.",
          "type": "string"
        },
        "iosAppStoreId": {
          "description": "iOS app store ID. This is used to check if the user has the app installed on their device before deep linking. If this field is set, then the ios_app_link field must also be present.",
          "type": "string",
          "format": "int64"
        },
        "originId": {
          "type": "string",
          "description": "Origin ID which can be any sequence of letters and digits. The ID sequence (destination ID + origin ID) must be unique."
        },
        "destinationName": {
          "type": "string",
          "description": "Destination name, for example, Paris."
        },
        "flightSalePrice": {
          "type": "string",
          "description": "Flight sale price which can be number followed by the alphabetic currency code, ISO 4217 standard. Use '.' as the decimal mark, for example, 80.00 USD. Must be less than the 'flight_price' field."
        },
        "customMapping": {
          "description": "A custom field which can be multiple key to values mapping separated by delimiters (\",\", \"|\" and \":\"), in the forms of \": , , ... , | : , ... , | ... | : , ... ,\" for example, wifi: most | aircraft: 320, 77W | flights: 42 | legroom: 32\".",
          "type": "string"
        },
        "androidAppLink": {
          "type": "string",
          "description": "Android deep link, for example, android-app://com.example.android/http/example.com/gizmos?1234."
        },
        "iosAppLink": {
          "description": "iOS deep link, for example, exampleApp://content/page.",
          "type": "string"
        },
        "imageUrl": {
          "description": "Image URL, for example, http://www.example.com/image.png. The image will not be uploaded as image asset.",
          "type": "string"
        },
        "originName": {
          "type": "string",
          "description": "Origin name, for example, London."
        },
        "flightPrice": {
          "description": "Flight price which can be number followed by the alphabetic currency code, ISO 4217 standard. Use '.' as the decimal mark, for example, 100.00 USD.",
          "type": "string"
        },
        "similarDestinationIds": {
          "description": "Similar destination IDs, for example, PAR,LON.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "flightDescription": {
          "type": "string",
          "description": "Required. Flight description, for example, Book your ticket. Required."
        },
        "formattedPrice": {
          "type": "string",
          "description": "Formatted price which can be any characters. If set, this attribute will be used instead of 'price', for example, Starting at $100.00."
        },
        "destinationId": {
          "description": "Required. Destination ID which can be any sequence of letters and digits, and must be unique and match the values of remarketing tag. Required.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__UserListRuleInfo": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__UserListRuleInfo",
      "description": "A client defined rule based on custom parameters sent by web sites or uploaded by the advertiser.",
      "properties": {
        "ruleItemGroups": {
          "description": "List of rule item groups that defines this rule. Rule item groups are grouped together based on rule_type.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__UserListRuleItemGroupInfo"
          }
        },
        "ruleType": {
          "description": "Rule type is used to determine how to group rule items. The default is OR of ANDs (disjunctive normal form). That is, rule items will be ANDed together within rule item groups and the groups themselves will be ORed together. OR of ANDs is the only supported type for FlexibleRuleUserList.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Conjunctive normal form.",
            "Disjunctive normal form."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AND_OF_ORS",
            "OR_OF_ANDS"
          ]
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateCampaignBudgetResult": {
      "id": "GoogleAdsSearchads360V23Services__MutateCampaignBudgetResult",
      "description": "The result for the campaign budget mutate.",
      "type": "object",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        },
        "campaignBudget": {
          "description": "The mutated campaign budget with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsSearchads360V23Resources__CampaignBudget"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__TagSnippet": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__TagSnippet",
      "description": "The site tag and event snippet pair for a TrackingCodeType.",
      "properties": {
        "pageFormat": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Standard HTML page format.",
            "Google AMP page format."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HTML",
            "AMP"
          ],
          "description": "The format of the web page where the tracking tag and snippet will be installed, for example, HTML."
        },
        "eventSnippet": {
          "type": "string",
          "description": "The event snippet that works with the site tag to track actions that should be counted as conversions."
        },
        "type": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The snippet that is fired as a result of a website page loading.",
            "The snippet contains a JavaScript function which fires the tag. This function is typically called from an onClick handler added to a link or button element on the page.",
            "For embedding on a mobile webpage. The snippet contains a JavaScript function which fires the tag.",
            "The snippet that is used to replace the phone number on your website with a Google forwarding number for call tracking purposes."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "WEBPAGE",
            "WEBPAGE_ONCLICK",
            "CLICK_TO_CALL",
            "WEBSITE_CALL"
          ],
          "description": "The type of the generated tag snippets for tracking conversions."
        },
        "globalSiteTag": {
          "type": "string",
          "description": "The site tag that adds visitors to your basic remarketing lists and sets new cookies on your domain."
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__KeywordPlanForecastPeriod": {
      "id": "GoogleAdsSearchads360V23Resources__KeywordPlanForecastPeriod",
      "description": "The forecasting period associated with the keyword plan.",
      "type": "object",
      "properties": {
        "dateInterval": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "The next week date range for keyword plan. The next week is based on the default locale of the user's account and is mostly SUN-SAT or MON-SUN. This can be different from next-7 days.",
            "The next month date range for keyword plan.",
            "The next quarter date range for keyword plan."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NEXT_WEEK",
            "NEXT_MONTH",
            "NEXT_QUARTER"
          ],
          "description": "A future date range relative to the current date used for forecasting."
        },
        "dateRange": {
          "description": "The custom date range used for forecasting. It cannot be greater than a year. The start and end dates must be in the future. Otherwise, an error will be returned when the forecasting action is performed. The start and end dates are inclusive.",
          "$ref": "GoogleAdsSearchads360V23Common__DateRange"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__AccountBudget": {
      "properties": {
        "name": {
          "type": "string",
          "description": "Output only. The name of the account-level budget.",
          "readOnly": true
        },
        "approvedEndDateTime": {
          "description": "Output only. The approved end time in yyyy-MM-dd HH:mm:ss format.",
          "type": "string",
          "readOnly": true
        },
        "pendingProposal": {
          "readOnly": true,
          "description": "Output only. The pending proposal to modify this budget, if applicable.",
          "$ref": "GoogleAdsSearchads360V23Resources_AccountBudget_PendingAccountBudgetProposal"
        },
        "approvedSpendingLimitMicros": {
          "type": "string",
          "format": "int64",
          "description": "Output only. The approved spending limit in micros. One million is equivalent to one unit. This will only be populated if the proposed spending limit is finite, and will always be greater than or equal to the proposed spending limit.",
          "readOnly": true
        },
        "resourceName": {
          "description": "Output only. The resource name of the account-level budget. AccountBudget resource names have the form: `customers/{customer_id}/accountBudgets/{account_budget_id}`",
          "type": "string",
          "readOnly": true
        },
        "proposedEndTimeType": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NOW",
            "FOREVER"
          ],
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "As soon as possible.",
            "An infinite point in the future."
          ],
          "description": "Output only. The proposed end time as a well-defined type, for example, FOREVER."
        },
        "approvedStartDateTime": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The approved start time of the account-level budget in yyyy-MM-dd HH:mm:ss format. For example, if a new budget is approved after the proposed start time, the approved start time is the time of approval."
        },
        "adjustedSpendingLimitMicros": {
          "readOnly": true,
          "description": "Output only. The adjusted spending limit in micros. One million is equivalent to one unit. If the approved spending limit is finite, the adjusted spending limit may vary depending on the types of adjustments applied to this budget, if applicable. The different kinds of adjustments are described here: https://support.google.com/google-ads/answer/1704323 For example, a debit adjustment reduces how much the account is allowed to spend.",
          "type": "string",
          "format": "int64"
        },
        "id": {
          "type": "string",
          "format": "int64",
          "description": "Output only. The ID of the account-level budget.",
          "readOnly": true
        },
        "proposedSpendingLimitType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Infinite, indicates unlimited spending power."
          ],
          "description": "Output only. The proposed spending limit as a well-defined type, for example, INFINITE.",
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INFINITE"
          ]
        },
        "status": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PENDING",
            "APPROVED",
            "CANCELLED"
          ],
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The account budget is pending approval.",
            "The account budget has been approved.",
            "The account budget has been cancelled by the user."
          ],
          "description": "Output only. The status of this account-level budget."
        },
        "adjustedSpendingLimitType": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INFINITE"
          ],
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Infinite, indicates unlimited spending power."
          ],
          "description": "Output only. The adjusted spending limit as a well-defined type, for example, INFINITE. This will only be populated if the adjusted spending limit is INFINITE, which is guaranteed to be true if the approved spending limit is INFINITE."
        },
        "billingSetup": {
          "readOnly": true,
          "description": "Output only. The resource name of the billing setup associated with this account-level budget. BillingSetup resource names have the form: `customers/{customer_id}/billingSetups/{billing_setup_id}`",
          "type": "string"
        },
        "purchaseOrderNumber": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. A purchase order number is a value that helps users reference this budget in their monthly invoices."
        },
        "amountServedMicros": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. The value of Ads that have been served, in micros. This includes overdelivery costs, in which case a credit might be automatically applied to the budget (see total_adjustments_micros)."
        },
        "notes": {
          "type": "string",
          "description": "Output only. Notes associated with the budget.",
          "readOnly": true
        },
        "totalAdjustmentsMicros": {
          "type": "string",
          "format": "int64",
          "description": "Output only. The total adjustments amount. An example of an adjustment is courtesy credits.",
          "readOnly": true
        },
        "proposedEndDateTime": {
          "readOnly": true,
          "description": "Output only. The proposed end time in yyyy-MM-dd HH:mm:ss format.",
          "type": "string"
        },
        "approvedSpendingLimitType": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INFINITE"
          ],
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Infinite, indicates unlimited spending power."
          ],
          "description": "Output only. The approved spending limit as a well-defined type, for example, INFINITE. This will only be populated if the approved spending limit is INFINITE."
        },
        "proposedSpendingLimitMicros": {
          "readOnly": true,
          "description": "Output only. The proposed spending limit in micros. One million is equivalent to one unit.",
          "type": "string",
          "format": "int64"
        },
        "proposedStartDateTime": {
          "readOnly": true,
          "description": "Output only. The proposed start time of the account-level budget in yyyy-MM-dd HH:mm:ss format. If a start time type of NOW was proposed, this is the time of request.",
          "type": "string"
        },
        "approvedEndTimeType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NOW",
            "FOREVER"
          ],
          "readOnly": true,
          "description": "Output only. The approved end time as a well-defined type, for example, FOREVER.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "As soon as possible.",
            "An infinite point in the future."
          ]
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__AccountBudget",
      "description": "An account-level budget. It contains information about the budget itself, as well as the most recently approved changes to the budget and proposed changes that are pending approval. The proposed changes that are pending approval, if any, are found in 'pending_proposal'. Effective details about the budget are found in fields prefixed 'approved_', 'adjusted_' and those without a prefix. Since some effective details may differ from what the user had originally requested (for example, spending limit), these differences are juxtaposed through 'proposed_', 'approved_', and possibly 'adjusted_' fields. This resource is mutated using AccountBudgetProposal and cannot be mutated directly. A budget may have at most one pending proposal at any given time. It is read through pending_proposal. Once approved, a budget may be subject to adjustments, such as credit adjustments. Adjustments create differences between the 'approved' and 'adjusted' fields, which would otherwise be identical.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources_ListingGroupFilterDimension_ProductCategory": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources_ListingGroupFilterDimension_ProductCategory",
      "description": "One element of a category at a certain level. Top-level categories are at level 1, their children at level 2, and so on. We currently support up to 5 levels. The user must specify a dimension type that indicates the level of the category. All cases of the same subdivision must have the same dimension type (category level).",
      "properties": {
        "categoryId": {
          "type": "string",
          "format": "int64",
          "description": "ID of the product category. This ID is equivalent to the google_product_category ID as described in this article: https://support.google.com/merchants/answer/6324436"
        },
        "level": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Level 1.",
            "Level 2.",
            "Level 3.",
            "Level 4.",
            "Level 5."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "LEVEL1",
            "LEVEL2",
            "LEVEL3",
            "LEVEL4",
            "LEVEL5"
          ],
          "description": "Indicates the level of the category in the taxonomy."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__GenerateSuggestedTargetingInsightsResponse": {
      "properties": {
        "suggestions": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__TargetingSuggestionMetrics"
          },
          "description": "Suggested insights for targetable audiences."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__GenerateSuggestedTargetingInsightsResponse",
      "description": "Response message for AudienceInsightsService.GenerateSuggestedTargetingInsights."
    },
    "GoogleAdsSearchads360V23Services__MutateSmartCampaignSettingsRequest": {
      "id": "GoogleAdsSearchads360V23Services__MutateSmartCampaignSettingsRequest",
      "description": "Request message for SmartCampaignSettingService.MutateSmartCampaignSettings.",
      "type": "object",
      "properties": {
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        },
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__SmartCampaignSettingOperation"
          },
          "description": "Required. The list of operations to perform on individual Smart campaign settings."
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "responseContentType": {
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "type": "string",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ]
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateAdGroupCustomizerResult": {
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        },
        "adGroupCustomizer": {
          "description": "The mutated AdGroupCustomizer with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsSearchads360V23Resources__AdGroupCustomizer"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__MutateAdGroupCustomizerResult",
      "description": "The result for the ad group customizer mutate.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateAccountBudgetProposalResult": {
      "id": "GoogleAdsSearchads360V23Services__MutateAccountBudgetProposalResult",
      "description": "The result for the account budget proposal mutate.",
      "type": "object",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__LegacyAppInstallAdInfo": {
      "id": "GoogleAdsSearchads360V23Common__LegacyAppInstallAdInfo",
      "description": "A legacy app install ad that only can be used by a few select customers.",
      "type": "object",
      "properties": {
        "description1": {
          "description": "The first description line of the ad.",
          "type": "string"
        },
        "headline": {
          "type": "string",
          "description": "The headline of the ad."
        },
        "description2": {
          "description": "The second description line of the ad.",
          "type": "string"
        },
        "appId": {
          "type": "string",
          "description": "The ID of the mobile app."
        },
        "appStore": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Apple iTunes.",
            "Google Play.",
            "Windows Store.",
            "Windows Phone Store.",
            "The app is hosted in a Chinese app store."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "APPLE_APP_STORE",
            "GOOGLE_PLAY",
            "WINDOWS_STORE",
            "WINDOWS_PHONE_STORE",
            "CN_APP_STORE"
          ],
          "description": "The app store the mobile app is available in."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__EndExperimentRequest": {
      "properties": {
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__EndExperimentRequest",
      "description": "Request message for ExperimentService.EndExperiment."
    },
    "GoogleAdsSearchads360V23Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchema_Event": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchema_Event",
      "description": "Defines a Google conversion event that the conversion value is mapped to.",
      "properties": {
        "currencyCode": {
          "description": "Output only. The reported currency for the event_revenue. ISO 4217 three-letter currency code, for example, \"USD\"",
          "type": "string",
          "readOnly": true
        },
        "eventOccurrenceRange": {
          "description": "Output only. The event counter range.",
          "$ref": "GoogleAdsSearchads360V23Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchemaEvent_EventOccurrenceRange",
          "readOnly": true
        },
        "eventCounter": {
          "type": "string",
          "format": "int64",
          "description": "Output only. For specific event counter values.",
          "readOnly": true
        },
        "eventRevenueValue": {
          "description": "Output only. The specific event revenue value.",
          "type": "number",
          "format": "double",
          "readOnly": true
        },
        "eventRevenueRange": {
          "description": "Output only. The event revenue range.",
          "$ref": "GoogleAdsSearchads360V23Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchemaEvent_RevenueRange",
          "readOnly": true
        },
        "mappedEventName": {
          "description": "Output only. Google event name represented by this conversion value.",
          "type": "string",
          "readOnly": true
        }
      }
    },
    "GoogleAdsSearchads360V23Common__ResponsiveDisplayAdInfo": {
      "properties": {
        "callToActionText": {
          "description": "The call-to-action text for the ad. Maximum display width is 30.",
          "type": "string"
        },
        "allowFlexibleColor": {
          "type": "boolean",
          "description": "Advertiser's consent to allow flexible color. When true, the ad may be served with different color if necessary. When false, the ad will be served with the specified colors or a neutral color. The default value is `true`. Must be true if `main_color` and `accent_color` are not set."
        },
        "promoText": {
          "description": "Promotion text used for dynamic formats of responsive ads. For example 'Free two-day shipping'.",
          "type": "string"
        },
        "logoImages": {
          "description": "Logo images to be used in the ad. Valid image types are GIF, JPEG, and PNG. The minimum size is 512x128 and the aspect ratio must be 4:1 (+-1%). Combined with `square_logo_images`, the maximum is 5.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AdImageAsset"
          }
        },
        "mainColor": {
          "type": "string",
          "description": "The main color of the ad in hexadecimal, for example, #ffffff for white. If one of `main_color` and `accent_color` is set, the other is required as well."
        },
        "businessName": {
          "type": "string",
          "description": "The advertiser/brand name. Maximum display width is 25."
        },
        "marketingImages": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AdImageAsset"
          },
          "description": "Marketing images to be used in the ad. Valid image types are GIF, JPEG, and PNG. The minimum size is 600x314 and the aspect ratio must be 1.91:1 (+-1%). At least one `marketing_image` is required. Combined with `square_marketing_images`, the maximum is 15."
        },
        "descriptions": {
          "description": "Descriptive texts for the ad. The maximum length is 90 characters. At least 1 and max 5 headlines can be specified.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AdTextAsset"
          }
        },
        "squareLogoImages": {
          "description": "Square logo images to be used in the ad. Valid image types are GIF, JPEG, and PNG. The minimum size is 128x128 and the aspect ratio must be 1:1 (+-1%). Combined with `logo_images`, the maximum is 5.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AdImageAsset"
          }
        },
        "formatSetting": {
          "description": "Specifies which format the ad will be served in. Default is ALL_FORMATS.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Text, image and native formats.",
            "Text and image formats.",
            "Native format, for example, the format rendering is controlled by the publisher and not by Google."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ALL_FORMATS",
            "NON_NATIVE",
            "NATIVE"
          ]
        },
        "squareMarketingImages": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AdImageAsset"
          },
          "description": "Square marketing images to be used in the ad. Valid image types are GIF, JPEG, and PNG. The minimum size is 300x300 and the aspect ratio must be 1:1 (+-1%). At least one square `marketing_image` is required. Combined with `marketing_images`, the maximum is 15."
        },
        "headlines": {
          "description": "Short format headlines for the ad. The maximum length is 30 characters. At least 1 and max 5 headlines can be specified.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AdTextAsset"
          }
        },
        "youtubeVideos": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AdVideoAsset"
          },
          "description": "Optional YouTube videos for the ad. A maximum of 5 videos can be specified."
        },
        "accentColor": {
          "description": "The accent color of the ad in hexadecimal, for example, #ffffff for white. If one of `main_color` and `accent_color` is set, the other is required as well.",
          "type": "string"
        },
        "pricePrefix": {
          "description": "Prefix before price. For example, 'as low as'.",
          "type": "string"
        },
        "longHeadline": {
          "description": "A required long format headline. The maximum length is 90 characters.",
          "$ref": "GoogleAdsSearchads360V23Common__AdTextAsset"
        },
        "controlSpec": {
          "description": "Specification for various creative controls.",
          "$ref": "GoogleAdsSearchads360V23Common__ResponsiveDisplayAdControlSpec"
        }
      },
      "id": "GoogleAdsSearchads360V23Common__ResponsiveDisplayAdInfo",
      "description": "A responsive display ad.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateAdGroupCriteriaResponse": {
      "id": "GoogleAdsSearchads360V23Services__MutateAdGroupCriteriaResponse",
      "description": "Response message for an ad group criterion mutate.",
      "type": "object",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "description": "All results for the mutate.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateAdGroupCriterionResult"
          }
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__HotelCenterLinkInvitationIdentifier": {
      "properties": {
        "hotelCenterId": {
          "type": "string",
          "format": "int64",
          "description": "Output only. The hotel center id of the hotel account. This field is read only",
          "readOnly": true
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__HotelCenterLinkInvitationIdentifier",
      "description": "The identifier for Hotel account.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources__AdvertisingPartnerLinkInvitationIdentifier": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__AdvertisingPartnerLinkInvitationIdentifier",
      "description": "The identifier for the Advertising Partner Google Ads account.",
      "properties": {
        "customer": {
          "description": "Immutable. The resource name of the advertising partner Google Ads account. This field is read only.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__GenerateAdGroupThemesRequest": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__GenerateAdGroupThemesRequest",
      "description": "Request message for KeywordPlanIdeaService.GenerateAdGroupThemes.",
      "properties": {
        "keywords": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Required. A list of keywords to group into the provided AdGroups."
        },
        "adGroups": {
          "description": "Required. A list of resource names of AdGroups to group keywords into. Resource name format: `customers/{customer_id}/adGroups/{ad_group_id}`",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "GoogleAdsSearchads360V23Services__AdGroupCriterionLabelOperation": {
      "properties": {
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the ad group criterion label being removed, in this format: `customers/{customer_id}/adGroupCriterionLabels/{ad_group_id}~{criterion_id}~{label_id}`"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new ad group label.",
          "$ref": "GoogleAdsSearchads360V23Resources__AdGroupCriterionLabel"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__AdGroupCriterionLabelOperation",
      "description": "A single operation (create, remove) on an ad group criterion label.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__TextAsset": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__TextAsset",
      "description": "A Text asset.",
      "properties": {
        "text": {
          "description": "Text content of the text asset.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__AccountLink": {
      "properties": {
        "type": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "A link to provide third party app analytics data."
          ],
          "description": "Output only. The type of the linked account.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "THIRD_PARTY_APP_ANALYTICS"
          ],
          "readOnly": true
        },
        "accountLinkId": {
          "readOnly": true,
          "description": "Output only. The ID of the link. This field is read only.",
          "type": "string",
          "format": "int64"
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. Resource name of the account link. AccountLink resource names have the form: `customers/{customer_id}/accountLinks/{account_link_id}`"
        },
        "status": {
          "description": "The status of the link.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The link is enabled.",
            "The link is removed/disabled.",
            "The link to the other account has been requested. A user on the other account may now approve the link by setting the status to ENABLED.",
            "This link has been requested by a user on the other account. It may be approved by a user on this account by setting the status to ENABLED.",
            "The link is rejected by the approver.",
            "The link is revoked by the user who requested the link."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED",
            "REQUESTED",
            "PENDING_APPROVAL",
            "REJECTED",
            "REVOKED"
          ]
        },
        "thirdPartyAppAnalytics": {
          "description": "Immutable. A third party app analytics link.",
          "$ref": "GoogleAdsSearchads360V23Resources__ThirdPartyAppAnalyticsLinkIdentifier"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__AccountLink",
      "description": "Represents the data sharing connection between a Google Ads account and another account"
    },
    "GoogleAdsSearchads360V23Services__MutateAdGroupLabelsResponse": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateAdGroupLabelsResponse",
      "description": "Response message for an ad group labels mutate.",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "description": "All results for the mutate.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateAdGroupLabelResult"
          }
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__Video": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__Video",
      "properties": {
        "channelId": {
          "readOnly": true,
          "description": "Output only. The owner channel id of the video.",
          "type": "string"
        },
        "title": {
          "description": "Output only. The title of the video.",
          "type": "string",
          "readOnly": true
        },
        "id": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The ID of the video."
        },
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the video. Video resource names have the form: `customers/{customer_id}/videos/{video_id}`",
          "readOnly": true
        },
        "durationMillis": {
          "description": "Output only. The duration of the video in milliseconds.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateCampaignDraftsRequest": {
      "properties": {
        "responseContentType": {
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "type": "string",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ]
        },
        "operations": {
          "description": "Required. The list of operations to perform on individual campaign drafts.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__CampaignDraftOperation"
          }
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateCampaignDraftsRequest",
      "description": "Request message for CampaignDraftService.MutateCampaignDrafts."
    },
    "GoogleAdsSearchads360V23Common__AudienceInsightsAttributeMetadata": {
      "id": "GoogleAdsSearchads360V23Common__AudienceInsightsAttributeMetadata",
      "description": "An audience attribute, with metadata about it, returned in response to a search.",
      "type": "object",
      "properties": {
        "attribute": {
          "description": "The attribute itself.",
          "$ref": "GoogleAdsSearchads360V23Common__AudienceInsightsAttribute"
        },
        "dimension": {
          "description": "The type of the attribute.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "A Product & Service category.",
            "A Knowledge Graph entity.",
            "A country, represented by a geo target.",
            "A geographic location within a country.",
            "A YouTube channel.",
            "An Affinity UserInterest.",
            "An In-Market UserInterest.",
            "A Parental Status value (parent, or not a parent).",
            "A household income percentile range.",
            "An age range.",
            "A gender.",
            "A YouTube video.",
            "A device type, such as Mobile, Desktop, Tablet, and Connected TV.",
            "A YouTube Lineup.",
            "A User List.",
            "A Life Event UserInterest."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CATEGORY",
            "KNOWLEDGE_GRAPH",
            "GEO_TARGET_COUNTRY",
            "SUB_COUNTRY_LOCATION",
            "YOUTUBE_CHANNEL",
            "AFFINITY_USER_INTEREST",
            "IN_MARKET_USER_INTEREST",
            "PARENTAL_STATUS",
            "INCOME_RANGE",
            "AGE_RANGE",
            "GENDER",
            "YOUTUBE_VIDEO",
            "DEVICE",
            "YOUTUBE_LINEUP",
            "USER_LIST",
            "LIFE_EVENT_USER_INTEREST"
          ]
        },
        "displayName": {
          "type": "string",
          "description": "The human-readable name of the attribute."
        },
        "userInterestAttributeMetadata": {
          "description": "Special metadata for a User Interest.",
          "$ref": "GoogleAdsSearchads360V23Common__UserInterestAttributeMetadata"
        },
        "userListAttributeMetadata": {
          "description": "Special metadata for a User List.",
          "$ref": "GoogleAdsSearchads360V23Common__UserListAttributeMetadata"
        },
        "knowledgeGraphAttributeMetadata": {
          "description": "Special metadata for a Knowledge Graph Entity.",
          "$ref": "GoogleAdsSearchads360V23Common__KnowledgeGraphAttributeMetadata"
        },
        "potentialYoutubeReach": {
          "type": "string",
          "format": "int64",
          "description": "An estimate of the number of reachable YouTube users matching this attribute in the requested location, or zero if that information is not available for this attribute. This field is not populated in every response."
        },
        "subscriberShare": {
          "type": "number",
          "format": "double",
          "description": "The share of subscribers within this attribute, between and including 0 and 1. This field is not populated in every response."
        },
        "viewerShare": {
          "type": "number",
          "format": "double",
          "description": "The share of viewers within this attribute, between and including 0 and 1. This field is not populated in every response."
        },
        "lineupAttributeMetadata": {
          "description": "Special metadata for a YouTube Lineup.",
          "$ref": "GoogleAdsSearchads360V23Common__LineupAttributeMetadata"
        },
        "youtubeVideoMetadata": {
          "description": "Special metadata for a YouTube video.",
          "$ref": "GoogleAdsSearchads360V23Common__YouTubeVideoAttributeMetadata"
        },
        "youtubeChannelMetadata": {
          "description": "Special metadata for a YouTube channel.",
          "$ref": "GoogleAdsSearchads360V23Common__YouTubeChannelAttributeMetadata"
        },
        "displayInfo": {
          "type": "string",
          "description": "A string that supplements the display_name to identify the attribute. If the dimension is TOPIC, this is a brief description of the Knowledge Graph entity, such as \"American singer-songwriter\". If the dimension is CATEGORY, this is the complete path to the category in The Product & Service taxonomy, for example \"/Apparel/Clothing/Outerwear\"."
        },
        "locationAttributeMetadata": {
          "description": "Special metadata for a Location.",
          "$ref": "GoogleAdsSearchads360V23Common__LocationAttributeMetadata"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__WebpageConditionInfo": {
      "properties": {
        "operator": {
          "description": "Operator of webpage targeting condition.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The argument web condition is equal to the compared web condition.",
            "The argument web condition is part of the compared web condition."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "EQUALS",
            "CONTAINS"
          ]
        },
        "argument": {
          "description": "Argument of webpage targeting condition.",
          "type": "string"
        },
        "operand": {
          "description": "Operand of webpage targeting condition.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Operand denoting a webpage URL targeting condition.",
            "Operand denoting a webpage category targeting condition.",
            "Operand denoting a webpage title targeting condition.",
            "Operand denoting a webpage content targeting condition.",
            "Operand denoting a webpage custom label targeting condition."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "URL",
            "CATEGORY",
            "PAGE_TITLE",
            "PAGE_CONTENT",
            "CUSTOM_LABEL"
          ]
        }
      },
      "id": "GoogleAdsSearchads360V23Common__WebpageConditionInfo",
      "description": "Logical expression for targeting webpages of an advertiser's website.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateCustomerResult": {
      "id": "GoogleAdsSearchads360V23Services__MutateCustomerResult",
      "description": "The result for the customer mutate.",
      "type": "object",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        },
        "customer": {
          "description": "The mutated customer with only mutable fields after mutate. The fields will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsSearchads360V23Resources__Customer"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__CustomerLifecycleGoalOperation": {
      "properties": {
        "updateMask": {
          "description": "Optional. FieldMask that determines which resource fields are modified in an update.",
          "type": "string",
          "format": "google-fieldmask"
        },
        "create": {
          "$ref": "GoogleAdsSearchads360V23Resources__CustomerLifecycleGoal"
        },
        "update": {
          "description": "Update operation: Update an existing customer lifecycle goal.",
          "$ref": "GoogleAdsSearchads360V23Resources__CustomerLifecycleGoal"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__CustomerLifecycleGoalOperation",
      "description": "A single operation on a customer lifecycle goal.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources_Recommendation_ForecastingSetTargetCpaRecommendation": {
      "properties": {
        "recommendedTargetCpaMicros": {
          "type": "string",
          "format": "int64",
          "description": "Output only. The recommended target CPA.",
          "readOnly": true
        },
        "campaignBudget": {
          "description": "Output only. The campaign budget.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_CampaignBudget",
          "readOnly": true
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources_Recommendation_ForecastingSetTargetCpaRecommendation",
      "description": "The set target CPA recommendations."
    },
    "GoogleAdsSearchads360V23Common_PolicyTopicConstraint_CountryConstraintList": {
      "properties": {
        "countries": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common_PolicyTopicConstraint_CountryConstraint"
          },
          "description": "Countries in which serving is restricted."
        },
        "totalTargetedCountries": {
          "type": "integer",
          "format": "int32",
          "description": "Total number of countries targeted by the resource."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common_PolicyTopicConstraint_CountryConstraintList",
      "description": "A list of countries where a resource's serving is constrained."
    },
    "GoogleAdsSearchads360V23Resources__AdGroupSimulation": {
      "properties": {
        "adGroupId": {
          "readOnly": true,
          "description": "Output only. Ad group id of the simulation.",
          "type": "string",
          "format": "int64"
        },
        "endDate": {
          "readOnly": true,
          "description": "Output only. Last day on which the simulation is based, in YYYY-MM-DD format",
          "type": "string"
        },
        "modificationMethod": {
          "description": "Output only. How the simulation modifies the field.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The values in a simulation were applied to all children of a given resource uniformly. Overrides on child resources were not respected.",
            "The values in a simulation were applied to the given resource. Overrides on child resources were respected, and traffic estimates do not include these resources.",
            "The values in a simulation were all scaled by the same factor. For example, in a simulated TargetCpa campaign, the campaign target and all ad group targets were scaled by a factor of X."
          ],
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "UNIFORM",
            "DEFAULT",
            "SCALING"
          ]
        },
        "targetRoasPointList": {
          "description": "Output only. Simulation points if the simulation type is TARGET_ROAS.",
          "$ref": "GoogleAdsSearchads360V23Common__TargetRoasSimulationPointList",
          "readOnly": true
        },
        "cpcBidPointList": {
          "description": "Output only. Simulation points if the simulation type is CPC_BID.",
          "$ref": "GoogleAdsSearchads360V23Common__CpcBidSimulationPointList",
          "readOnly": true
        },
        "startDate": {
          "type": "string",
          "description": "Output only. First day on which the simulation is based, in YYYY-MM-DD format.",
          "readOnly": true
        },
        "cpvBidPointList": {
          "description": "Output only. Simulation points if the simulation type is CPV_BID.",
          "$ref": "GoogleAdsSearchads360V23Common__CpvBidSimulationPointList",
          "readOnly": true
        },
        "targetCpaPointList": {
          "description": "Output only. Simulation points if the simulation type is TARGET_CPA.",
          "$ref": "GoogleAdsSearchads360V23Common__TargetCpaSimulationPointList",
          "readOnly": true
        },
        "resourceName": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The resource name of the ad group simulation. Ad group simulation resource names have the form: `customers/{customer_id}/adGroupSimulations/{ad_group_id}~{type}~{modification_method}~{start_date}~{end_date}`"
        },
        "type": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The simulation is for a CPC bid.",
            "The simulation is for a CPV bid.",
            "The simulation is for a CPA target.",
            "The simulation is for a bid modifier.",
            "The simulation is for a ROAS target.",
            "The simulation is for a percent CPC bid.",
            "The simulation is for an impression share target.",
            "The simulation is for a budget."
          ],
          "description": "Output only. The field that the simulation modifies.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CPC_BID",
            "CPV_BID",
            "TARGET_CPA",
            "BID_MODIFIER",
            "TARGET_ROAS",
            "PERCENT_CPC_BID",
            "TARGET_IMPRESSION_SHARE",
            "BUDGET"
          ],
          "readOnly": true
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__AdGroupSimulation",
      "description": "An ad group simulation. Supported combinations of advertising channel type, simulation type and simulation modification method is detailed below respectively. 1. SEARCH - CPC_BID - DEFAULT 2. SEARCH - CPC_BID - UNIFORM 3. SEARCH - TARGET_CPA - UNIFORM 4. SEARCH - TARGET_ROAS - UNIFORM 5. DISPLAY - CPC_BID - DEFAULT 6. DISPLAY - CPC_BID - UNIFORM 7. DISPLAY - TARGET_CPA - UNIFORM",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__AudienceCompositionAttributeCluster": {
      "id": "GoogleAdsSearchads360V23Services__AudienceCompositionAttributeCluster",
      "description": "A collection of related attributes, with metadata and metrics, in an audience composition insights report.",
      "type": "object",
      "properties": {
        "clusterMetrics": {
          "description": "If the dimension associated with this cluster is YOUTUBE_CHANNEL, then cluster_metrics are metrics associated with the cluster as a whole. For other dimensions, this field is unset.",
          "$ref": "GoogleAdsSearchads360V23Services__AudienceCompositionMetrics"
        },
        "clusterDisplayName": {
          "type": "string",
          "description": "The name of this cluster of attributes"
        },
        "attributes": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__AudienceCompositionAttribute"
          },
          "description": "The individual attributes that make up this cluster, with metadata and metrics."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__AgeRangeInfo": {
      "id": "GoogleAdsSearchads360V23Common__AgeRangeInfo",
      "description": "An age range criterion.",
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Between 18 and 24 years old.",
            "Between 25 and 34 years old.",
            "Between 35 and 44 years old.",
            "Between 45 and 54 years old.",
            "Between 55 and 64 years old.",
            "65 years old and beyond.",
            "Undetermined age range."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AGE_RANGE_18_24",
            "AGE_RANGE_25_34",
            "AGE_RANGE_35_44",
            "AGE_RANGE_45_54",
            "AGE_RANGE_55_64",
            "AGE_RANGE_65_UP",
            "AGE_RANGE_UNDETERMINED"
          ],
          "description": "Type of the age range."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__AssetLinkPrimaryStatusDetails": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__AssetLinkPrimaryStatusDetails",
      "description": "Provides the detail of a PrimaryStatus. Each asset link has a PrimaryStatus value (e.g. NOT_ELIGIBLE, meaning not serving), and list of corroborating PrimaryStatusReasons (e.g. [ASSET_DISAPPROVED]). Each reason may have some additional details annotated with it. For instance, when the reason is ASSET_DISAPPROVED, the details field will contain additional information about the offline evaluation errors which led to the asset being disapproved.",
      "properties": {
        "reason": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is paused for its linked rollup level. Contributes to a PrimaryStatus of PAUSED.",
            "The asset is removed for its linked rollup level. Contributes to a PrimaryStatus of REMOVED.",
            "The asset has been marked as disapproved. Contributes to a PrimaryStatus of NOT_ELIGIBLE",
            "The asset has not completed policy review. Contributes to a PrimaryStatus of PENDING.",
            "The asset is approved with policies applied. Contributes to a PrimaryStatus of LIMITED."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ASSET_LINK_PAUSED",
            "ASSET_LINK_REMOVED",
            "ASSET_DISAPPROVED",
            "ASSET_UNDER_REVIEW",
            "ASSET_APPROVED_LABELED"
          ],
          "description": "Provides the reason of this PrimaryStatus."
        },
        "assetDisapproved": {
          "description": "Provides the details for AssetLinkPrimaryStatusReason.ASSET_DISAPPROVED",
          "$ref": "GoogleAdsSearchads360V23Common__AssetDisapproved"
        },
        "status": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is eligible to serve.",
            "The user-specified asset link status is paused.",
            "The user-specified asset link status is removed.",
            "The asset may serve in the future.",
            "The asset is serving in a partial capacity.",
            "The asset is not eligible to serve."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ELIGIBLE",
            "PAUSED",
            "REMOVED",
            "PENDING",
            "LIMITED",
            "NOT_ELIGIBLE"
          ],
          "description": "Provides the PrimaryStatus of this status detail."
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__CampaignGoalConfig": {
      "id": "GoogleAdsSearchads360V23Resources__CampaignGoalConfig",
      "description": "A link between a campaign and a goal enabling campaign-specific optimization.",
      "type": "object",
      "properties": {
        "resourceName": {
          "description": "Immutable. The resource name of the campaign goal config. campaign goal config resource names have the form: `customers/{customer_id}/campaignGoalConfigs/{campaign_id}~{goal_id}`",
          "type": "string"
        },
        "campaign": {
          "description": "Immutable. The resource name of the campaign for this link.",
          "type": "string"
        },
        "goal": {
          "type": "string",
          "description": "Immutable. The resource name of the goal this link is attached to."
        },
        "campaignRetentionSettings": {
          "description": "Retention goal campaign settings.",
          "$ref": "GoogleAdsSearchads360V23Common_CampaignGoalSettings_CampaignRetentionGoalSettings"
        },
        "goalType": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CUSTOMER_RETENTION"
          ],
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Retention goal, which allows advertisers to optimize campaigns to win back lapsed customers. (https://support.google.com/google-ads/answer/14792043?hl=en)"
          ],
          "description": "Output only. The goal type this link is attached to."
        }
      }
    },
    "GoogleAdsSearchads360V23Resources_Recommendation_LeadFormAssetRecommendation": {
      "properties": {},
      "id": "GoogleAdsSearchads360V23Resources_Recommendation_LeadFormAssetRecommendation",
      "description": "The lead form asset recommendation.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__CampaignLabelOperation": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__CampaignLabelOperation",
      "description": "A single operation (create, remove) on a campaign-label relationship.",
      "properties": {
        "create": {
          "description": "Create operation: No resource name is expected for the new campaign-label relationship.",
          "$ref": "GoogleAdsSearchads360V23Resources__CampaignLabel"
        },
        "remove": {
          "description": "Remove operation: A resource name for the campaign-label relationship being removed, in this format: `customers/{customer_id}/campaignLabels/{campaign_id}~{label_id}`",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__AdCallToActionAsset": {
      "properties": {
        "asset": {
          "description": "The Asset resource name of this call to action asset.",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V23Common__AdCallToActionAsset",
      "description": "A call to action asset used inside an ad.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateAdGroupBidModifierResult": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateAdGroupBidModifierResult",
      "description": "The result for the criterion mutate.",
      "properties": {
        "adGroupBidModifier": {
          "description": "The mutated ad group bid modifier with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsSearchads360V23Resources__AdGroupBidModifier"
        },
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__HotelAssetSuggestion": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__HotelAssetSuggestion",
      "description": "Message containing the asset suggestions for a hotel.",
      "properties": {
        "status": {
          "description": "The status of the hotel asset suggestion.",
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The hotel asset suggestion was successfully retrieved.",
            "A hotel look up returns nothing.",
            "A Google Places ID is invalid and cannot be decoded."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SUCCESS",
            "HOTEL_NOT_FOUND",
            "INVALID_PLACE_ID"
          ]
        },
        "placeId": {
          "description": "Google Places ID of the hotel.",
          "type": "string"
        },
        "imageAssets": {
          "description": "Image assets such as landscape/portrait/square, etc.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__HotelImageAsset"
          }
        },
        "finalUrl": {
          "description": "Suggested final URL for an AssetGroup.",
          "type": "string"
        },
        "textAssets": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__HotelTextAsset"
          },
          "description": "Text assets such as headline, description, etc."
        },
        "callToAction": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The call to action type is learn more.",
            "The call to action type is get quote.",
            "The call to action type is apply now.",
            "The call to action type is sign up.",
            "The call to action type is contact us.",
            "The call to action type is subscribe.",
            "The call to action type is download.",
            "The call to action type is book now.",
            "The call to action type is shop now.",
            "The call to action type is buy now.",
            "The call to action type is donate now.",
            "The call to action type is order now.",
            "The call to action type is play now.",
            "The call to action type is see more.",
            "The call to action type is start now.",
            "The call to action type is visit site.",
            "The call to action type is watch now."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "LEARN_MORE",
            "GET_QUOTE",
            "APPLY_NOW",
            "SIGN_UP",
            "CONTACT_US",
            "SUBSCRIBE",
            "DOWNLOAD",
            "BOOK_NOW",
            "SHOP_NOW",
            "BUY_NOW",
            "DONATE_NOW",
            "ORDER_NOW",
            "PLAY_NOW",
            "SEE_MORE",
            "START_NOW",
            "VISIT_SITE",
            "WATCH_NOW"
          ],
          "description": "Call to action type."
        },
        "hotelName": {
          "type": "string",
          "description": "Hotel name in requested language."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateAdGroupCriterionLabelResult": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateAdGroupCriterionLabelResult",
      "description": "The result for an ad group criterion label mutate.",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateBiddingStrategiesResponse": {
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateBiddingStrategyResult"
          },
          "description": "All results for the mutate."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateBiddingStrategiesResponse",
      "description": "Response message for bidding strategy mutate."
    },
    "GoogleAdsSearchads360V23Services__SuggestGeoTargetConstantsRequest": {
      "id": "GoogleAdsSearchads360V23Services__SuggestGeoTargetConstantsRequest",
      "description": "Request message for GeoTargetConstantService.SuggestGeoTargetConstants.",
      "type": "object",
      "properties": {
        "locale": {
          "type": "string",
          "description": "If possible, returned geo targets are translated using this locale. If not, en is used by default. This is also used as a hint for returned geo targets."
        },
        "locationNames": {
          "description": "The location names to search by. At most 25 names can be set.",
          "$ref": "GoogleAdsSearchads360V23Services_SuggestGeoTargetConstantsRequest_LocationNames"
        },
        "geoTargets": {
          "description": "The geo target constant resource names to filter by.",
          "$ref": "GoogleAdsSearchads360V23Services_SuggestGeoTargetConstantsRequest_GeoTargets"
        },
        "countryCode": {
          "description": "Returned geo targets are restricted to this country code.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__UserList": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__UserList",
      "description": "A user list. This is a list of users a customer may target. The unique key of a user list consists of the following fields: `id`. Note that the `name` must also be unique for user lists owned by a given customer, except in some cases where `access_reason` is set to `SHARED`. Violating the unique name constraint produces error: `UserListError.INVALID_NAME`.",
      "properties": {
        "eligibleForDisplay": {
          "readOnly": true,
          "type": "boolean",
          "description": "Output only. Indicates this user list is eligible for Google Display Network. This field is read-only."
        },
        "accountUserListStatus": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The access is enabled.",
            "The access is disabled."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "DISABLED"
          ],
          "description": "Indicates if this share is still enabled. When a UserList is shared with the user this field is set to ENABLED. Later the userList owner can decide to revoke the share and make it DISABLED. The default value of this field is set to ENABLED."
        },
        "sizeRangeForDisplay": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "LESS_THAN_FIVE_HUNDRED",
            "LESS_THAN_ONE_THOUSAND",
            "ONE_THOUSAND_TO_TEN_THOUSAND",
            "TEN_THOUSAND_TO_FIFTY_THOUSAND",
            "FIFTY_THOUSAND_TO_ONE_HUNDRED_THOUSAND",
            "ONE_HUNDRED_THOUSAND_TO_THREE_HUNDRED_THOUSAND",
            "THREE_HUNDRED_THOUSAND_TO_FIVE_HUNDRED_THOUSAND",
            "FIVE_HUNDRED_THOUSAND_TO_ONE_MILLION",
            "ONE_MILLION_TO_TWO_MILLION",
            "TWO_MILLION_TO_THREE_MILLION",
            "THREE_MILLION_TO_FIVE_MILLION",
            "FIVE_MILLION_TO_TEN_MILLION",
            "TEN_MILLION_TO_TWENTY_MILLION",
            "TWENTY_MILLION_TO_THIRTY_MILLION",
            "THIRTY_MILLION_TO_FIFTY_MILLION",
            "OVER_FIFTY_MILLION"
          ],
          "readOnly": true,
          "description": "Output only. Size range in terms of number of users of the UserList, on the Google Display Network. This field is read-only.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "User list has less than 500 users.",
            "User list has number of users in range of 500 to 1000.",
            "User list has number of users in range of 1000 to 10000.",
            "User list has number of users in range of 10000 to 50000.",
            "User list has number of users in range of 50000 to 100000.",
            "User list has number of users in range of 100000 to 300000.",
            "User list has number of users in range of 300000 to 500000.",
            "User list has number of users in range of 500000 to 1 million.",
            "User list has number of users in range of 1 to 2 millions.",
            "User list has number of users in range of 2 to 3 millions.",
            "User list has number of users in range of 3 to 5 millions.",
            "User list has number of users in range of 5 to 10 millions.",
            "User list has number of users in range of 10 to 20 millions.",
            "User list has number of users in range of 20 to 30 millions.",
            "User list has number of users in range of 30 to 50 millions.",
            "User list has over 50 million users."
          ]
        },
        "id": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. Id of the user list."
        },
        "closingReason": {
          "description": "Indicating the reason why this user list membership status is closed. It is only populated on lists that were automatically closed due to inactivity, and will be cleared once the list membership status becomes open.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The userlist was closed because of not being used for over one year."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "UNUSED"
          ]
        },
        "crmBasedUserList": {
          "description": "User list of CRM users provided by the advertiser.",
          "$ref": "GoogleAdsSearchads360V23Common__CrmBasedUserListInfo"
        },
        "readOnly": {
          "description": "Output only. An option that indicates if a user may edit a list. Depends on the list ownership and list type. For example, external remarketing user lists are not editable. This field is -only.",
          "type": "boolean",
          "readOnly": true
        },
        "type": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "REMARKETING",
            "LOGICAL",
            "EXTERNAL_REMARKETING",
            "RULE_BASED",
            "SIMILAR",
            "CRM_BASED",
            "LOOKALIKE"
          ],
          "description": "Output only. Type of this list. This field is read-only.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "UserList represented as a collection of conversion types.",
            "UserList represented as a combination of other user lists/interests.",
            "UserList created in the Google Ad Manager platform.",
            "UserList associated with a rule.",
            "UserList with users similar to users of another UserList.",
            "UserList of first-party CRM data provided by advertiser in the form of emails or other formats.",
            "LookalikeUserlist, composed of users similar to those of a configurable seed (set of UserLists)"
          ]
        },
        "eligibleForSearch": {
          "type": "boolean",
          "description": "Indicates if this user list is eligible for Google Search Network."
        },
        "lookalikeUserList": {
          "description": "Immutable. Lookalike User List.",
          "$ref": "GoogleAdsSearchads360V23Common__LookalikeUserListInfo"
        },
        "basicUserList": {
          "description": "User list targeting as a collection of conversion or remarketing actions.",
          "$ref": "GoogleAdsSearchads360V23Common__BasicUserListInfo"
        },
        "accessReason": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "OWNED",
            "SHARED",
            "LICENSED",
            "SUBSCRIBED",
            "AFFILIATED"
          ],
          "readOnly": true,
          "description": "Output only. Indicates the reason this account has been granted access to the list. The reason can be SHARED, OWNED, LICENSED or SUBSCRIBED. This field is read-only.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The resource is owned by the user.",
            "The resource is shared to the user.",
            "The resource is licensed to the user.",
            "The user subscribed to the resource.",
            "The resource is accessible to the user."
          ]
        },
        "sizeRangeForSearch": {
          "description": "Output only. Size range in terms of number of users of the UserList, for Search ads. This field is read-only.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "User list has less than 500 users.",
            "User list has number of users in range of 500 to 1000.",
            "User list has number of users in range of 1000 to 10000.",
            "User list has number of users in range of 10000 to 50000.",
            "User list has number of users in range of 50000 to 100000.",
            "User list has number of users in range of 100000 to 300000.",
            "User list has number of users in range of 300000 to 500000.",
            "User list has number of users in range of 500000 to 1 million.",
            "User list has number of users in range of 1 to 2 millions.",
            "User list has number of users in range of 2 to 3 millions.",
            "User list has number of users in range of 3 to 5 millions.",
            "User list has number of users in range of 5 to 10 millions.",
            "User list has number of users in range of 10 to 20 millions.",
            "User list has number of users in range of 20 to 30 millions.",
            "User list has number of users in range of 30 to 50 millions.",
            "User list has over 50 million users."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "LESS_THAN_FIVE_HUNDRED",
            "LESS_THAN_ONE_THOUSAND",
            "ONE_THOUSAND_TO_TEN_THOUSAND",
            "TEN_THOUSAND_TO_FIFTY_THOUSAND",
            "FIFTY_THOUSAND_TO_ONE_HUNDRED_THOUSAND",
            "ONE_HUNDRED_THOUSAND_TO_THREE_HUNDRED_THOUSAND",
            "THREE_HUNDRED_THOUSAND_TO_FIVE_HUNDRED_THOUSAND",
            "FIVE_HUNDRED_THOUSAND_TO_ONE_MILLION",
            "ONE_MILLION_TO_TWO_MILLION",
            "TWO_MILLION_TO_THREE_MILLION",
            "THREE_MILLION_TO_FIVE_MILLION",
            "FIVE_MILLION_TO_TEN_MILLION",
            "TEN_MILLION_TO_TWENTY_MILLION",
            "TWENTY_MILLION_TO_THIRTY_MILLION",
            "THIRTY_MILLION_TO_FIFTY_MILLION",
            "OVER_FIFTY_MILLION"
          ],
          "readOnly": true
        },
        "integrationCode": {
          "type": "string",
          "description": "An ID from external system. It is used by user list sellers to correlate IDs on their systems."
        },
        "logicalUserList": {
          "description": "User list that is a custom combination of user lists.",
          "$ref": "GoogleAdsSearchads360V23Common__LogicalUserListInfo"
        },
        "membershipLifeSpan": {
          "type": "string",
          "format": "int64",
          "description": "Number of days a user's cookie stays on your list since its most recent addition to the list. This field must be between 0 and 540 inclusive. However, for CRM based userlists, this field can be set to 10000 which means no expiration. Beginning on April 7, 2025, using a value of 10000 to indicate no expiration will no longer be supported. This field is ignored for logical_user_list and rule_based_user_list types. Membership to lists of these types depends on the rules defined by the lists."
        },
        "sizeForDisplay": {
          "type": "string",
          "format": "int64",
          "description": "Output only. Estimated number of users in this user list, on the Google Display Network. This value is if the number of users has not yet been determined. This field is -only.",
          "readOnly": true
        },
        "name": {
          "description": "Name of this user list. Unique per user list, except in some cases where a user list of the same name has `access_reason` set to `SHARED`.",
          "type": "string"
        },
        "similarUserList": {
          "readOnly": true,
          "description": "Output only. User list which are similar to users from another UserList. These lists are readonly and automatically created by google.",
          "$ref": "GoogleAdsSearchads360V23Common__SimilarUserListInfo"
        },
        "description": {
          "description": "Description of this user list.",
          "type": "string"
        },
        "membershipStatus": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Open status - List is accruing members and can be targeted to.",
            "Closed status - No new members being added. Cannot be used for targeting."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "OPEN",
            "CLOSED"
          ],
          "description": "Membership status of this user list. Indicates whether a user list is open or active. Only open user lists can accumulate more users and can be targeted to."
        },
        "resourceName": {
          "description": "Immutable. The resource name of the user list. User list resource names have the form: `customers/{customer_id}/userLists/{user_list_id}`",
          "type": "string"
        },
        "sizeForSearch": {
          "type": "string",
          "format": "int64",
          "description": "Output only. Estimated number of users in this user list in the google.com domain. These are the users available for targeting in Search campaigns. This value is null if the number of users has not yet been determined. This field is read-only.",
          "readOnly": true
        },
        "ruleBasedUserList": {
          "description": "User list generated by a rule.",
          "$ref": "GoogleAdsSearchads360V23Common__RuleBasedUserListInfo"
        },
        "matchRatePercentage": {
          "description": "Output only. Indicates match rate for Customer Match lists. The range of this field is [0-100]. This will be null for other list types or when it's not possible to calculate the match rate. This field is read-only.",
          "type": "integer",
          "format": "int32",
          "readOnly": true
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__GroupPlacementView": {
      "properties": {
        "placement": {
          "type": "string",
          "description": "Output only. The automatic placement string at group level, e. g. web domain, mobile app ID, or a YouTube channel ID.",
          "readOnly": true
        },
        "targetUrl": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. URL of the group placement, for example, domain, link to the mobile application in app store, or a YouTube channel URL."
        },
        "placementType": {
          "description": "Output only. Type of the placement, for example, Website, YouTube Channel, Mobile Application.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Websites(for example, 'www.flowers4sale.com').",
            "Mobile application categories(for example, 'Games').",
            "mobile applications(for example, 'mobileapp::2-com.whatsthewordanswers').",
            "YouTube videos(for example, 'youtube.com/video/wtLJPvx7-ys').",
            "YouTube channels(for example, 'youtube.com::L8ZULXASCc1I_oaOT0NaOQ').",
            "Surfaces owned and operated by Google(for example, 'tv.google.com')."
          ],
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "WEBSITE",
            "MOBILE_APP_CATEGORY",
            "MOBILE_APPLICATION",
            "YOUTUBE_VIDEO",
            "YOUTUBE_CHANNEL",
            "GOOGLE_PRODUCTS"
          ]
        },
        "resourceName": {
          "description": "Output only. The resource name of the group placement view. Group placement view resource names have the form: `customers/{customer_id}/groupPlacementViews/{ad_group_id}~{base64_placement}`",
          "type": "string",
          "readOnly": true
        },
        "displayName": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Domain name for websites and YouTube channel name for YouTube channels."
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__GroupPlacementView",
      "description": "A group placement view.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__SuggestKeywordThemeConstantsRequest": {
      "properties": {
        "countryCode": {
          "type": "string",
          "description": "Upper-case, two-letter country code as defined by ISO-3166. This for refining the scope of the query, default to 'US' if not set."
        },
        "languageCode": {
          "description": "The two letter language code for get corresponding keyword theme for refining the scope of the query, default to 'en' if not set.",
          "type": "string"
        },
        "queryText": {
          "type": "string",
          "description": "The query text of a keyword theme that will be used to map to similar keyword themes. For example, \"plumber\" or \"roofer\"."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__SuggestKeywordThemeConstantsRequest",
      "description": "Request message for KeywordThemeConstantService.SuggestKeywordThemeConstants."
    },
    "GoogleAdsSearchads360V23Common__DynamicHotelsAndRentalsAsset": {
      "id": "GoogleAdsSearchads360V23Common__DynamicHotelsAndRentalsAsset",
      "description": "A dynamic hotels and rentals asset.",
      "type": "object",
      "properties": {
        "iosAppLink": {
          "description": "iOS deep link, for example, exampleApp://content/page.",
          "type": "string"
        },
        "imageUrl": {
          "description": "Image URL, for example, http://www.example.com/image.png. The image will not be uploaded as image asset.",
          "type": "string"
        },
        "similarPropertyIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Similar property IDs."
        },
        "starRating": {
          "type": "string",
          "format": "int64",
          "description": "Star rating. Must be a number between 1 to 5, inclusive."
        },
        "description": {
          "type": "string",
          "description": "Description, for example, Close to SJC Airport."
        },
        "contextualKeywords": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Contextual keywords, for example, Mountain View \"Hotels\", South Bay hotels."
        },
        "propertyId": {
          "description": "Required. Property ID which can be any sequence of letters and digits, and must be unique and match the values of remarketing tag. Required.",
          "type": "string"
        },
        "formattedPrice": {
          "description": "Formatted price which can be any characters. If set, this attribute will be used instead of 'price', for example, Starting at $100.00.",
          "type": "string"
        },
        "salePrice": {
          "type": "string",
          "description": "ISO 4217 standard. Use '.' as the decimal mark, for example, 80.00 USD. Must be less than the 'price' field."
        },
        "propertyName": {
          "description": "Required. Property name, for example, Mountain View Hotel. Required.",
          "type": "string"
        },
        "address": {
          "description": "Address which can be specified in one of the following formats. (1) City, state, code, country, for example, Mountain View, CA, USA. (2) Full address, for example, 123 Boulevard St, Mountain View, CA 94043. (3) Latitude-longitude in the DDD format, for example, 41.40338, 2.17403",
          "type": "string"
        },
        "formattedSalePrice": {
          "type": "string",
          "description": "Formatted sale price which can be any characters. If set, this attribute will be used instead of 'sale price', for example, On sale for $80.00."
        },
        "iosAppStoreId": {
          "type": "string",
          "format": "int64",
          "description": "iOS app store ID. This is used to check if the user has the app installed on their device before deep linking. If this field is set, then the ios_app_link field must also be present."
        },
        "category": {
          "description": "Category, for example, Hotel suite.",
          "type": "string"
        },
        "price": {
          "type": "string",
          "description": "Price which can be number followed by the alphabetic currency code, ISO 4217 standard. Use '.' as the decimal mark, for example, 100.00 USD."
        },
        "destinationName": {
          "description": "Destination name, for example, Downtown Mountain View.",
          "type": "string"
        },
        "androidAppLink": {
          "description": "Android deep link, for example, android-app://com.example.android/http/example.com/gizmos?1234.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__UpdateProductLinkInvitationRequest": {
      "properties": {
        "productLinkInvitationStatus": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The invitation is accepted.",
            "An invitation has been sent to the other account. A user on the other account may now accept the invitation by setting the status to ACCEPTED.",
            "This invitation has been sent by a user on the other account. It may be accepted by a user on this account by setting the status to ACCEPTED.",
            "The invitation is revoked by the user who sent the invitation.",
            "The invitation has been rejected by the invitee.",
            "The invitation has timed out before being accepted by the invitee."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ACCEPTED",
            "REQUESTED",
            "PENDING_APPROVAL",
            "REVOKED",
            "REJECTED",
            "EXPIRED"
          ],
          "description": "Required. The product link invitation to be created."
        },
        "resourceName": {
          "type": "string",
          "description": "Required. Resource name of the product link invitation."
        }
      },
      "id": "GoogleAdsSearchads360V23Services__UpdateProductLinkInvitationRequest",
      "description": "Request message for ProductLinkInvitationService.UpdateProductLinkInvitation.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__GenerateTargetingSuggestionMetricsResponse": {
      "properties": {
        "suggestions": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__TargetingSuggestionMetrics"
          },
          "description": "Suggested targetable audiences. There will be one suggestion for each GenerateTargetingSuggestionMetricsRequest.audiences requested, matching the order requested."
        }
      },
      "id": "GoogleAdsSearchads360V23Services__GenerateTargetingSuggestionMetricsResponse",
      "description": "Response message for AudienceInsightsService.GenerateTargetingSuggestionMetrics.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateCustomizerAttributesRequest": {
      "id": "GoogleAdsSearchads360V23Services__MutateCustomizerAttributesRequest",
      "description": "Request message for CustomizerAttributeService.MutateCustomizerAttributes.",
      "type": "object",
      "properties": {
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        },
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__CustomizerAttributeOperation"
          },
          "description": "Required. The list of operations to perform on individual customizer attributes."
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "responseContentType": {
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "type": "string",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ]
        }
      }
    },
    "GoogleAdsSearchads360V23Common__StoreSalesMetadata": {
      "properties": {
        "thirdPartyMetadata": {
          "description": "Metadata for a third party Store Sales upload.",
          "$ref": "GoogleAdsSearchads360V23Common__StoreSalesThirdPartyMetadata"
        },
        "transactionUploadFraction": {
          "description": "This is the ratio of sales being uploaded compared to the overall sales that can be associated with a customer. Required. The fraction needs to be between 0 and 1 (excluding 0). For example, if you upload half the sales that you are able to associate with a customer, this would be 0.5.",
          "type": "number",
          "format": "double"
        },
        "customKey": {
          "description": "Name of the store sales custom variable key. A predefined key that can be applied to the transaction and then later used for custom segmentation in reporting. Accessible only to customers on the allow-list.",
          "type": "string"
        },
        "loyaltyFraction": {
          "description": "This is the fraction of all transactions that are identifiable (for example, associated with any form of customer information). Required. The fraction needs to be between 0 and 1 (excluding 0).",
          "type": "number",
          "format": "double"
        }
      },
      "id": "GoogleAdsSearchads360V23Common__StoreSalesMetadata",
      "description": "Metadata for Store Sales Direct.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__ListAudienceInsightsAttributesRequest": {
      "id": "GoogleAdsSearchads360V23Services__ListAudienceInsightsAttributesRequest",
      "description": "Request message for AudienceInsightsService.ListAudienceInsightsAttributes.",
      "type": "object",
      "properties": {
        "dimensions": {
          "description": "Required. The types of attributes to be returned. Supported dimensions are CATEGORY, KNOWLEDGE_GRAPH, GEO_TARGET_COUNTRY, SUB_COUNTRY_LOCATION, YOUTUBE_LINEUP, AFFINITY_USER_INTEREST, IN_MARKET_USER_INTEREST, .",
          "type": "array",
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "The value is unknown in this version.",
              "A Product & Service category.",
              "A Knowledge Graph entity.",
              "A country, represented by a geo target.",
              "A geographic location within a country.",
              "A YouTube channel.",
              "An Affinity UserInterest.",
              "An In-Market UserInterest.",
              "A Parental Status value (parent, or not a parent).",
              "A household income percentile range.",
              "An age range.",
              "A gender.",
              "A YouTube video.",
              "A device type, such as Mobile, Desktop, Tablet, and Connected TV.",
              "A YouTube Lineup.",
              "A User List.",
              "A Life Event UserInterest."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "CATEGORY",
              "KNOWLEDGE_GRAPH",
              "GEO_TARGET_COUNTRY",
              "SUB_COUNTRY_LOCATION",
              "YOUTUBE_CHANNEL",
              "AFFINITY_USER_INTEREST",
              "IN_MARKET_USER_INTEREST",
              "PARENTAL_STATUS",
              "INCOME_RANGE",
              "AGE_RANGE",
              "GENDER",
              "YOUTUBE_VIDEO",
              "DEVICE",
              "YOUTUBE_LINEUP",
              "USER_LIST",
              "LIFE_EVENT_USER_INTEREST"
            ]
          }
        },
        "queryText": {
          "type": "string",
          "description": "Required. A free text query. If the requested dimensions include Attributes CATEGORY or KNOWLEDGE_GRAPH, then the attributes returned for those dimensions will match or be related to this string. For other dimensions, this field is ignored and all available attributes are returned."
        },
        "youtubeReachLocation": {
          "description": "If present, potential YouTube reach estimates within the specified market will be returned for attributes for which they are available. Reach is only available for the AGE_RANGE, GENDER, AFFINITY_USER_INTEREST and IN_MARKET_USER_INTEREST dimensions, and may not be available for every attribute of those dimensions in every market.",
          "$ref": "GoogleAdsSearchads360V23Common__LocationInfo"
        },
        "insightsApplicationInfo": {
          "description": "Optional. Additional information on the application issuing the request.",
          "$ref": "GoogleAdsSearchads360V23Common__AdditionalApplicationInfo"
        },
        "customerInsightsGroup": {
          "description": "The name of the customer being planned for. This is a user-defined value.",
          "type": "string"
        },
        "locationCountryFilters": {
          "description": "If SUB_COUNTRY_LOCATION attributes are one of the requested dimensions and this field is present, then the SUB_COUNTRY_LOCATION attributes returned will be located in these countries. If this field is absent, then location attributes are not filtered by country. Setting this field when SUB_COUNTRY_LOCATION attributes are not requested will return an error.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__LocationInfo"
          }
        }
      }
    },
    "GoogleAdsSearchads360V23Services__SearchSettings": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__SearchSettings",
      "description": "Indicates search settings in request parameter.",
      "properties": {
        "returnSummaryRow": {
          "type": "boolean",
          "description": "If true, summary row will be included in the response and sent in a response by itself after all other query results are returned. Default is false."
        },
        "returnTotalResultsCount": {
          "type": "boolean",
          "description": "If true, the total number of results that match the query ignoring the LIMIT clause will be included in the response. Default is false."
        },
        "omitResults": {
          "description": "If true, results will be excluded from the response. Otherwise, results will be returned. Default is false.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources_Recommendation_TargetAdjustmentInfo": {
      "id": "GoogleAdsSearchads360V23Resources_Recommendation_TargetAdjustmentInfo",
      "description": "Information of a target adjustment recommendation.",
      "type": "object",
      "properties": {
        "sharedSet": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The shared set resource name of the portfolio bidding strategy where the target is defined. Only populated if the recommendation is portfolio level."
        },
        "currentAverageTargetMicros": {
          "description": "Output only. The current average target of the campaign or portfolio targeted by this recommendation.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        },
        "recommendedTargetMultiplier": {
          "readOnly": true,
          "description": "Output only. The factor by which we recommend the target to be adjusted by.",
          "type": "number",
          "format": "double"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__AdvancedProductTargeting": {
      "id": "GoogleAdsSearchads360V23Services__AdvancedProductTargeting",
      "description": "Advanced targeting settings for products.",
      "type": "object",
      "properties": {
        "surfaceTargetingSettings": {
          "description": "Surface targeting settings for this product.",
          "$ref": "GoogleAdsSearchads360V23Services__SurfaceTargeting"
        },
        "youtubeSelectSettings": {
          "description": "Settings for YouTube Select targeting.",
          "$ref": "GoogleAdsSearchads360V23Services__YouTubeSelectSettings"
        },
        "targetFrequencySettings": {
          "description": "Settings for a Target frequency campaign. Must be set when selecting the TARGET_FREQUENCY product. See https://support.google.com/google-ads/answer/12400225 for more information about Target Frequency campaigns.",
          "$ref": "GoogleAdsSearchads360V23Services__TargetFrequencySettings"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__DynamicBusinessProfileLocationGroupFilter": {
      "id": "GoogleAdsSearchads360V23Common__DynamicBusinessProfileLocationGroupFilter",
      "description": "Represents a filter on Business Profile locations in an asset set. If multiple filters are provided, they are AND'ed together.",
      "type": "object",
      "properties": {
        "labelFilters": {
          "description": "Used to filter Business Profile locations by label. Only locations that have any of the listed labels will be in the asset set. Label filters are OR'ed together.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "listingIdFilters": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "int64"
          },
          "description": "Used to filter Business Profile locations by listing ids."
        },
        "businessNameFilter": {
          "description": "Used to filter Business Profile locations by business name.",
          "$ref": "GoogleAdsSearchads360V23Common__BusinessProfileBusinessNameFilter"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__TargetFrequencySettings": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__TargetFrequencySettings",
      "description": "Target Frequency settings for a supported product.",
      "properties": {
        "timeUnit": {
          "description": "Required. The time unit used to describe the time frame for target_frequency.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Optimize bidding to reach Target Frequency in a week.",
            "Optimize bidding to reach Target Frequency in a month."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "WEEKLY",
            "MONTHLY"
          ]
        },
        "targetFrequency": {
          "description": "Required. The target frequency goal per selected time unit.",
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__MobileDeviceConstant": {
      "properties": {
        "type": {
          "description": "Output only. The type of mobile device.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Mobile phones.",
            "Tablets."
          ],
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MOBILE",
            "TABLET"
          ]
        },
        "name": {
          "readOnly": true,
          "description": "Output only. The name of the mobile device.",
          "type": "string"
        },
        "operatingSystemName": {
          "type": "string",
          "description": "Output only. The operating system of the mobile device.",
          "readOnly": true
        },
        "resourceName": {
          "description": "Output only. The resource name of the mobile device constant. Mobile device constant resource names have the form: `mobileDeviceConstants/{criterion_id}`",
          "type": "string",
          "readOnly": true
        },
        "id": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. The ID of the mobile device constant."
        },
        "manufacturerName": {
          "type": "string",
          "description": "Output only. The manufacturer of the mobile device.",
          "readOnly": true
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__MobileDeviceConstant",
      "description": "A mobile device constant."
    },
    "GoogleAdsSearchads360V23Resources_Recommendation_ImproveDemandGenAdStrengthRecommendation": {
      "properties": {
        "ad": {
          "description": "Output only. The resource name of the ad that can be improved.",
          "type": "string",
          "readOnly": true
        },
        "demandGenAssetActionItems": {
          "description": "Output only. A list of recommendations to improve the ad strength.",
          "type": "array",
          "items": {
            "type": "string"
          },
          "readOnly": true
        },
        "adStrength": {
          "description": "Output only. The current ad strength.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The ad strength is currently pending.",
            "No ads could be generated.",
            "Poor strength.",
            "Average strength.",
            "Good strength.",
            "Excellent strength."
          ],
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PENDING",
            "NO_ADS",
            "POOR",
            "AVERAGE",
            "GOOD",
            "EXCELLENT"
          ]
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources_Recommendation_ImproveDemandGenAdStrengthRecommendation",
      "description": "The improve Demand Gen ad strength recommendation."
    },
    "GoogleAdsSearchads360V23Services__MutateKeywordPlanAdGroupKeywordResult": {
      "id": "GoogleAdsSearchads360V23Services__MutateKeywordPlanAdGroupKeywordResult",
      "description": "The result for the Keyword Plan ad group keyword mutate.",
      "type": "object",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__BusinessMessageAsset": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__BusinessMessageAsset",
      "description": "A business message asset.",
      "properties": {
        "callToAction": {
          "description": "A call to action for the business message asset.",
          "$ref": "GoogleAdsSearchads360V23Common__BusinessMessageCallToActionInfo"
        },
        "starterMessage": {
          "description": "Required. A welcome message to prompt the user to initiate a conversation.",
          "type": "string"
        },
        "facebookMessengerInfo": {
          "description": "Facebook Messenger.",
          "$ref": "GoogleAdsSearchads360V23Common__FacebookMessengerBusinessMessageInfo"
        },
        "zaloInfo": {
          "description": "Zalo.",
          "$ref": "GoogleAdsSearchads360V23Common__ZaloBusinessMessageInfo"
        },
        "messageProvider": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "WhatsApp message provider",
            "Facebook Messenger message provider",
            "Zalo message provider"
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "WHATSAPP",
            "FACEBOOK_MESSENGER",
            "ZALO"
          ],
          "description": "Required. Message provider of the business message asset."
        },
        "whatsappInfo": {
          "description": "Whatsapp.",
          "$ref": "GoogleAdsSearchads360V23Common__WhatsappBusinessMessageInfo"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__AdGroupCriterionCustomizer": {
      "id": "GoogleAdsSearchads360V23Resources__AdGroupCriterionCustomizer",
      "description": "A customizer value for the associated CustomizerAttribute at the AdGroupCriterion level.",
      "type": "object",
      "properties": {
        "value": {
          "description": "Required. The value to associate with the customizer attribute at this level. The value must be of the type specified for the CustomizerAttribute.",
          "$ref": "GoogleAdsSearchads360V23Common__CustomizerValue"
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the ad group criterion customizer. Ad group criterion customizer resource names have the form: `customers/{customer_id}/adGroupCriterionCustomizers/{ad_group_id}~{criterion_id}~{customizer_attribute_id}`"
        },
        "status": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ],
          "type": "string",
          "enumDescriptions": [
            "The status has not been specified.",
            "The received value is not known in this version.",
            "The customizer value is enabled.",
            "The customizer value is removed."
          ],
          "description": "Output only. The status of the ad group criterion customizer."
        },
        "customizerAttribute": {
          "type": "string",
          "description": "Required. Immutable. The customizer attribute which is linked to the ad group criterion."
        },
        "adGroupCriterion": {
          "description": "Immutable. The ad group criterion to which the customizer attribute is linked. It must be a keyword criterion.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Services_SuggestSmartCampaignBudgetOptionsResponse_Metrics": {
      "id": "GoogleAdsSearchads360V23Services_SuggestSmartCampaignBudgetOptionsResponse_Metrics",
      "description": "Performance metrics for a given budget option.",
      "type": "object",
      "properties": {
        "maxDailyClicks": {
          "type": "string",
          "format": "int64",
          "description": "The estimated max daily clicks."
        },
        "minDailyClicks": {
          "type": "string",
          "format": "int64",
          "description": "The estimated min daily clicks."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__AppendLeadConversationResponse": {
      "properties": {
        "responses": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__ConversationOrError"
          },
          "description": "Required. List of append conversation operation results."
        }
      },
      "id": "GoogleAdsSearchads360V23Services__AppendLeadConversationResponse",
      "description": "Response message for LocalServicesLeadService.AppendLeadConversation.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources__ConversionValueRuleSet": {
      "properties": {
        "dimensions": {
          "description": "Defines dimensions for Value Rule conditions. The condition types of value rules within this value rule set must be of these dimensions. The first entry in this list is the primary dimension of the included value rules. When using value rule primary dimension segmentation, conversion values will be segmented into the values adjusted by value rules and the original values, if some value rules apply.",
          "type": "array",
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "Dimension for geo location.",
              "Dimension for device type.",
              "Dimension for audience.",
              "This dimension implies the rule will always apply.",
              "Dimension for itinerary."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "GEO_LOCATION",
              "DEVICE",
              "AUDIENCE",
              "NO_CONDITION",
              "ITINERARY"
            ]
          }
        },
        "status": {
          "description": "Output only. The status of the conversion value rule set. ** Read-only **",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Conversion Value Rule Set is enabled and can be applied.",
            "Conversion Value Rule Set is permanently deleted and can't be applied.",
            "Conversion Value Rule Set is paused and won't be applied. It can be enabled again."
          ],
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED",
            "PAUSED"
          ]
        },
        "attachmentType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Attached to the customer.",
            "Attached to a campaign."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CUSTOMER",
            "CAMPAIGN"
          ],
          "description": "Immutable. Defines the scope where the conversion value rule set is attached."
        },
        "conversionActionCategories": {
          "type": "array",
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "Default category.",
              "User visiting a page.",
              "Purchase, sales, or \"order placed\" event.",
              "Signup user action.",
              "Software download action (as for an app).",
              "The addition of items to a shopping cart or bag on an advertiser site.",
              "When someone enters the checkout flow on an advertiser site.",
              "The start of a paid subscription for a product or service.",
              "A call to indicate interest in an advertiser's offering.",
              "A lead conversion imported from an external source into Google Ads.",
              "A submission of a form on an advertiser site indicating business interest.",
              "A booking of an appointment with an advertiser's business.",
              "A quote or price estimate request.",
              "A search for an advertiser's business location with intention to visit.",
              "A click to an advertiser's partner's site.",
              "A call, SMS, email, chat or other type of contact to an advertiser.",
              "A website engagement event such as long site time or a Google Analytics (GA) Smart Goal. Intended to be used for GA, Firebase, GA Gold goal imports.",
              "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."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "DEFAULT",
              "PAGE_VIEW",
              "PURCHASE",
              "SIGNUP",
              "DOWNLOAD",
              "ADD_TO_CART",
              "BEGIN_CHECKOUT",
              "SUBSCRIBE_PAID",
              "PHONE_CALL_LEAD",
              "IMPORTED_LEAD",
              "SUBMIT_LEAD_FORM",
              "BOOK_APPOINTMENT",
              "REQUEST_QUOTE",
              "GET_DIRECTIONS",
              "OUTBOUND_CLICK",
              "CONTACT",
              "ENGAGEMENT",
              "STORE_VISIT",
              "STORE_SALE",
              "QUALIFIED_LEAD",
              "CONVERTED_LEAD"
            ]
          },
          "description": "Immutable. The conversion action categories of the conversion value rule set."
        },
        "resourceName": {
          "description": "Immutable. The resource name of the conversion value rule set. Conversion value rule set resource names have the form: `customers/{customer_id}/conversionValueRuleSets/{conversion_value_rule_set_id}`",
          "type": "string"
        },
        "ownerCustomer": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The resource name of the conversion value rule set's owner customer. When the value rule set is inherited from a manager customer, owner_customer will be the resource name of the manager whereas the customer in the resource_name will be of the requesting serving customer. ** Read-only **"
        },
        "conversionValueRules": {
          "description": "Resource names of rules within the rule set.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "campaign": {
          "description": "The resource name of the campaign when the conversion value rule set is attached to a campaign.",
          "type": "string"
        },
        "id": {
          "type": "string",
          "format": "int64",
          "description": "Output only. The ID of the conversion value rule set.",
          "readOnly": true
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__ConversionValueRuleSet",
      "description": "A conversion value rule set is a collection of conversion value rules that lets you adjust conversion values based on the dimensions specified in the `dimensions` field.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__PlannableTargeting": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__PlannableTargeting",
      "description": "The targeting for which traffic metrics will be reported.",
      "properties": {
        "youtubeSelectLineups": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__YouTubeSelectLineUp"
          },
          "description": "Targetable YouTube Select Lineups for the ad product."
        },
        "devices": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__DeviceInfo"
          },
          "description": "Targetable devices for the ad product. TABLET device targeting is automatically applied to reported metrics when MOBILE targeting is selected for CPM_MASTHEAD, GOOGLE_PREFERRED_BUMPER, and GOOGLE_PREFERRED_SHORT products."
        },
        "ageRanges": {
          "type": "array",
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "The value is unknown in this version.",
              "Between 18 and 24 years old.",
              "Between 18 and 34 years old.",
              "Between 18 and 44 years old.",
              "Between 18 and 49 years old.",
              "Between 18 and 54 years old.",
              "Between 18 and 64 years old.",
              "Between 18 and 65+ years old.",
              "Between 21 and 34 years old.",
              "Between 25 and 34 years old.",
              "Between 25 and 44 years old.",
              "Between 25 and 49 years old.",
              "Between 25 and 54 years old.",
              "Between 25 and 64 years old.",
              "Between 25 and 65+ years old.",
              "Between 35 and 44 years old.",
              "Between 35 and 49 years old.",
              "Between 35 and 54 years old.",
              "Between 35 and 64 years old.",
              "Between 35 and 65+ years old.",
              "Between 45 and 54 years old.",
              "Between 45 and 64 years old.",
              "Between 45 and 65+ years old.",
              "Between 50 and 65+ years old.",
              "Between 55 and 64 years old.",
              "Between 55 and 65+ years old.",
              "65 years old and beyond."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "AGE_RANGE_18_24",
              "AGE_RANGE_18_34",
              "AGE_RANGE_18_44",
              "AGE_RANGE_18_49",
              "AGE_RANGE_18_54",
              "AGE_RANGE_18_64",
              "AGE_RANGE_18_65_UP",
              "AGE_RANGE_21_34",
              "AGE_RANGE_25_34",
              "AGE_RANGE_25_44",
              "AGE_RANGE_25_49",
              "AGE_RANGE_25_54",
              "AGE_RANGE_25_64",
              "AGE_RANGE_25_65_UP",
              "AGE_RANGE_35_44",
              "AGE_RANGE_35_49",
              "AGE_RANGE_35_54",
              "AGE_RANGE_35_64",
              "AGE_RANGE_35_65_UP",
              "AGE_RANGE_45_54",
              "AGE_RANGE_45_64",
              "AGE_RANGE_45_65_UP",
              "AGE_RANGE_50_65_UP",
              "AGE_RANGE_55_64",
              "AGE_RANGE_55_65_UP",
              "AGE_RANGE_65_UP"
            ]
          },
          "description": "Allowed plannable age ranges for the product for which metrics will be reported. Actual targeting is computed by mapping this age range onto standard Google common.AgeRangeInfo values."
        },
        "networks": {
          "description": "Targetable networks for the ad product.",
          "type": "array",
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "Used as a return value only. Represents value unknown in this version.",
              "YouTube network.",
              "Google Video Partners (GVP) network.",
              "A combination of the YouTube network and the Google Video Partners network."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "YOUTUBE",
              "GOOGLE_VIDEO_PARTNERS",
              "YOUTUBE_AND_GOOGLE_VIDEO_PARTNERS"
            ]
          }
        },
        "surfaceTargeting": {
          "description": "Targetable surface combinations for the ad product.",
          "$ref": "GoogleAdsSearchads360V23Services__SurfaceTargetingCombinations"
        },
        "genders": {
          "description": "Targetable genders for the ad product.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__GenderInfo"
          }
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateCustomerManagerLinkResult": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateCustomerManagerLinkResult",
      "description": "The result for the customer manager link mutate.",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__DemandGenCarouselAdInfo": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__DemandGenCarouselAdInfo",
      "description": "A Demand Gen carousel ad.",
      "properties": {
        "businessName": {
          "type": "string",
          "description": "Required. The Advertiser/brand name."
        },
        "carouselCards": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AdDemandGenCarouselCardAsset"
          },
          "description": "Required. Carousel cards that will display with the ad. Min 2 max 10."
        },
        "callToActionText": {
          "type": "string",
          "description": "Call to action text."
        },
        "logoImage": {
          "description": "Required. Logo image to be used in the ad. The minimum size is 128x128 and the aspect ratio must be 1:1 (+-1%).",
          "$ref": "GoogleAdsSearchads360V23Common__AdImageAsset"
        },
        "headline": {
          "description": "Required. Headline of the ad.",
          "$ref": "GoogleAdsSearchads360V23Common__AdTextAsset"
        },
        "description": {
          "description": "Required. The descriptive text of the ad.",
          "$ref": "GoogleAdsSearchads360V23Common__AdTextAsset"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateCustomerUserAccessResponse": {
      "properties": {
        "result": {
          "description": "Result for the mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateCustomerUserAccessResult"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateCustomerUserAccessResponse",
      "description": "Response message for customer user access mutate."
    },
    "GoogleAdsSearchads360V23Common__ListingGroupInfo": {
      "properties": {
        "parentAdGroupCriterion": {
          "description": "Resource name of ad group criterion which is the parent listing group subdivision. Null for the root group.",
          "type": "string"
        },
        "type": {
          "description": "Type of the listing group.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Subdivision of products along some listing dimension. These nodes are not used by serving to target listing entries, but is purely to define the structure of the tree.",
            "Listing group unit that defines a bid."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SUBDIVISION",
            "UNIT"
          ]
        },
        "path": {
          "description": "The path of dimensions defining this listing group.",
          "$ref": "GoogleAdsSearchads360V23Common__ListingDimensionPath"
        },
        "caseValue": {
          "description": "Dimension value with which this listing group is refining its parent. Undefined for the root group.",
          "$ref": "GoogleAdsSearchads360V23Common__ListingDimensionInfo"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__ListingGroupInfo",
      "description": "A listing group criterion."
    },
    "GoogleAdsSearchads360V23Resources_Recommendation_MerchantInfo": {
      "id": "GoogleAdsSearchads360V23Resources_Recommendation_MerchantInfo",
      "description": "The Merchant Center account details.",
      "type": "object",
      "properties": {
        "id": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. The Merchant Center account ID."
        },
        "name": {
          "type": "string",
          "description": "Output only. The name of the Merchant Center account.",
          "readOnly": true
        },
        "multiClient": {
          "type": "boolean",
          "description": "Output only. Whether the Merchant Center account is a Multi-Client account (MCA).",
          "readOnly": true
        }
      }
    },
    "GoogleAdsSearchads360V23Common_PolicyTopicEvidence_WebsiteList": {
      "properties": {
        "websites": {
          "description": "Websites that caused the policy finding.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "type": "object",
      "id": "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."
    },
    "GoogleAdsSearchads360V23Resources__SearchAds360Campaign": {
      "properties": {
        "productAttributionFilterType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Inherit the filter type from a parent or default configuration.",
            "Manually configure/manage the filter. This requires additional configuration at the campaign level.",
            "Automatically determine and manage the Brand filter through the external API."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INHERIT",
            "MANUAL",
            "AUTO_BRAND"
          ],
          "description": "The type of product attribution filtering to apply to this campaign."
        },
        "resourceName": {
          "description": "Immutable. The resource name of the Search Ads 360 campaign. Search Ads 360 campaign resource names have the form: `customers/{customer_id}/searchAds360Campaigns/{campaign_id}`",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__SearchAds360Campaign",
      "description": "A Search Ads 360 campaign.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources_Recommendation_MaximizeConversionsOptInRecommendation": {
      "id": "GoogleAdsSearchads360V23Resources_Recommendation_MaximizeConversionsOptInRecommendation",
      "description": "The Maximize Conversions Opt-In recommendation.",
      "type": "object",
      "properties": {
        "recommendedBudgetAmountMicros": {
          "type": "string",
          "format": "int64",
          "description": "Output only. The recommended new budget amount.",
          "readOnly": true
        }
      }
    },
    "GoogleAdsSearchads360V23Common__DisplayUploadAdInfo": {
      "properties": {
        "displayUploadProductType": {
          "description": "The product type of this ad. See comments on the enum for details.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "HTML5 upload ad. This product type requires the upload_media_bundle field in DisplayUploadAdInfo to be set.",
            "Dynamic HTML5 education ad. This product type requires the upload_media_bundle field in DisplayUploadAdInfo to be set. Can only be used in an education campaign.",
            "Dynamic HTML5 flight ad. This product type requires the upload_media_bundle field in DisplayUploadAdInfo to be set. Can only be used in a flight campaign.",
            "Dynamic HTML5 hotel and rental ad. This product type requires the upload_media_bundle field in DisplayUploadAdInfo to be set. Can only be used in a hotel campaign.",
            "Dynamic HTML5 job ad. This product type requires the upload_media_bundle field in DisplayUploadAdInfo to be set. Can only be used in a job campaign.",
            "Dynamic HTML5 local ad. This product type requires the upload_media_bundle field in DisplayUploadAdInfo to be set. Can only be used in a local campaign.",
            "Dynamic HTML5 real estate ad. This product type requires the upload_media_bundle field in DisplayUploadAdInfo to be set. Can only be used in a real estate campaign.",
            "Dynamic HTML5 custom ad. This product type requires the upload_media_bundle field in DisplayUploadAdInfo to be set. Can only be used in a custom campaign.",
            "Dynamic HTML5 travel ad. This product type requires the upload_media_bundle field in DisplayUploadAdInfo to be set. Can only be used in a travel campaign.",
            "Dynamic HTML5 hotel ad. This product type requires the upload_media_bundle field in DisplayUploadAdInfo to be set. Can only be used in a hotel campaign."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HTML5_UPLOAD_AD",
            "DYNAMIC_HTML5_EDUCATION_AD",
            "DYNAMIC_HTML5_FLIGHT_AD",
            "DYNAMIC_HTML5_HOTEL_RENTAL_AD",
            "DYNAMIC_HTML5_JOB_AD",
            "DYNAMIC_HTML5_LOCAL_AD",
            "DYNAMIC_HTML5_REAL_ESTATE_AD",
            "DYNAMIC_HTML5_CUSTOM_AD",
            "DYNAMIC_HTML5_TRAVEL_AD",
            "DYNAMIC_HTML5_HOTEL_AD"
          ]
        },
        "mediaBundle": {
          "description": "A media bundle asset to be used in the ad. For information about the media bundle for HTML5_UPLOAD_AD, see https://support.google.com/google-ads/answer/1722096 Media bundles that are part of dynamic product types use a special format that needs to be created through the Google Web Designer. See https://support.google.com/webdesigner/answer/7543898 for more information.",
          "$ref": "GoogleAdsSearchads360V23Common__AdMediaBundleAsset"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__DisplayUploadAdInfo",
      "description": "A generic type of display ad. The exact ad format is controlled by the `display_upload_product_type` field, which determines what kinds of data need to be included with the ad."
    },
    "GoogleAdsSearchads360V23Resources__CustomerLabel": {
      "properties": {
        "label": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The resource name of the label assigned to the customer. Note: the Customer ID portion of the label resource name is not validated when creating a new CustomerLabel."
        },
        "customer": {
          "type": "string",
          "description": "Output only. The resource name of the customer to which the label is attached. Read only.",
          "readOnly": true
        },
        "resourceName": {
          "description": "Immutable. Name of the resource. Customer label resource names have the form: `customers/{customer_id}/customerLabels/{label_id}`",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__CustomerLabel",
      "description": "Represents a relationship between a customer and a label. This customer may not have access to all the labels attached to it. Additional CustomerLabels may be returned by increasing permissions with login-customer-id."
    },
    "GoogleAdsSearchads360V23Services__MutateCustomAudienceResult": {
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        }
      },
      "id": "GoogleAdsSearchads360V23Services__MutateCustomAudienceResult",
      "description": "The result for the custom audience mutate.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateCampaignDraftResult": {
      "id": "GoogleAdsSearchads360V23Services__MutateCampaignDraftResult",
      "description": "The result for the campaign draft mutate.",
      "type": "object",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        },
        "campaignDraft": {
          "description": "The mutated campaign draft with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsSearchads360V23Resources__CampaignDraft"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__BackgroundCheckVerificationArtifact": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__BackgroundCheckVerificationArtifact",
      "description": "specific to local services background check.",
      "properties": {
        "caseUrl": {
          "description": "Output only. URL to access background case.",
          "type": "string",
          "readOnly": true
        },
        "finalAdjudicationDateTime": {
          "description": "Output only. The timestamp when this background check case result was adjudicated. The format is \"YYYY-MM-DD HH:MM:SS\" in the Google Ads account's timezone. Examples: \"2018-03-05 09:15:00\" or \"2018-02-01 14:34:30\"",
          "type": "string",
          "readOnly": true
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__AgeRangeView": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__AgeRangeView",
      "description": "An age range view.",
      "properties": {
        "resourceName": {
          "readOnly": true,
          "description": "Output only. The resource name of the age range view. Age range view resource names have the form: `customers/{customer_id}/ageRangeViews/{ad_group_id}~{criterion_id}`",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__AudienceTargeting": {
      "properties": {
        "userInterest": {
          "description": "List of audiences based on user interests to be targeted.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__UserInterestInfo"
          }
        },
        "userLists": {
          "description": "List of audiences based on user lists to be targeted.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__UserListInfo"
          }
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__AudienceTargeting",
      "description": "Audience targeting for reach forecast."
    },
    "GoogleAdsSearchads360V23Services__CampaignOperation": {
      "properties": {
        "updateMask": {
          "type": "string",
          "format": "google-fieldmask",
          "description": "FieldMask that determines which resource fields are modified in an update."
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new campaign.",
          "$ref": "GoogleAdsSearchads360V23Resources__Campaign"
        },
        "update": {
          "description": "Update operation: The campaign is expected to have a valid resource name.",
          "$ref": "GoogleAdsSearchads360V23Resources__Campaign"
        },
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed campaign is expected, in this format: `customers/{customer_id}/campaigns/{campaign_id}`"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__CampaignOperation",
      "description": "A single operation (create, update, remove) on a campaign."
    },
    "GoogleAdsSearchads360V23Common__AdditionalApplicationInfo": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__AdditionalApplicationInfo",
      "description": "Additional information about the application/tool issuing the request. This field is only used by ContentCreatorInsightsService, AudienceInsightsService, and ReachPlanService APIs.",
      "properties": {
        "applicationId": {
          "type": "string",
          "description": "The unique identifier of the agency proprietary application. This identifier is generated by Google. Reach out to your Google representative to request an application_id for each new application being integrated."
        },
        "applicationInstance": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "The instance is for development and testing purposes.",
            "The instance is for production purposes."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DEVELOPMENT_AND_TESTING",
            "PRODUCTION"
          ],
          "description": "The instance type of the application sending the request."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__UserListSegment": {
      "id": "GoogleAdsSearchads360V23Common__UserListSegment",
      "description": "User list segment.",
      "type": "object",
      "properties": {
        "userList": {
          "type": "string",
          "description": "The user list resource."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateUserListCustomerTypeResult": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateUserListCustomerTypeResult",
      "description": "The result for the user list customer type mutate.",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__MobileApplicationInfo": {
      "properties": {
        "appId": {
          "type": "string",
          "description": "A string that uniquely identifies a mobile application to Google Ads API. The format of this string is \"{platform}-{platform_native_id}\", where platform is \"1\" for iOS apps and \"2\" for Android apps, and where platform_native_id is the mobile application identifier native to the corresponding platform. For iOS, this native identifier is the 9 digit string that appears at the end of an App Store URL (for example, \"476943146\" for \"Flood-It! 2\" whose App Store link is \"http://itunes.apple.com/us/app/flood-it!-2/id476943146\"). For Android, this native identifier is the application's package name (for example, \"com.labpixies.colordrips\" for \"Color Drips\" given Google Play link \"https://play.google.com/store/apps/details?id=com.labpixies.colordrips\"). A well formed app id for Google Ads API would thus be \"1-476943146\" for iOS and \"2-com.labpixies.colordrips\" for Android. This field is required and must be set in CREATE operations."
        },
        "name": {
          "type": "string",
          "description": "Name of this mobile application."
        }
      },
      "id": "GoogleAdsSearchads360V23Common__MobileApplicationInfo",
      "description": "A mobile application criterion.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources__AdGroupAdAssetCombinationView": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__AdGroupAdAssetCombinationView",
      "description": "A view on the usage of ad group ad asset combination. Now we only support AdGroupAdAssetCombinationView for Responsive Search Ads, with more ad types planned for the future.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the ad group ad asset combination view. The combination ID is 128 bits long, where the upper 64 bits are stored in asset_combination_id_high, and the lower 64 bits are stored in asset_combination_id_low. AdGroupAd Asset Combination view resource names have the form: `customers/{customer_id}/adGroupAdAssetCombinationViews/{AdGroupAd.ad_group_id}~{AdGroupAd.ad.ad_id}~{AssetCombination.asset_combination_id_low}~{AssetCombination.asset_combination_id_high}`",
          "readOnly": true
        },
        "servedAssets": {
          "readOnly": true,
          "description": "Output only. Served assets.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AssetUsage"
          }
        },
        "enabled": {
          "readOnly": true,
          "type": "boolean",
          "description": "Output only. The status between the asset combination and the latest version of the ad. If true, the asset combination is linked to the latest version of the ad. If false, it means the link once existed but has been removed and is no longer present in the latest version of the ad."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__AssetGroupAssetOperation": {
      "properties": {
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "type": "string",
          "format": "google-fieldmask"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new asset group asset.",
          "$ref": "GoogleAdsSearchads360V23Resources__AssetGroupAsset"
        },
        "update": {
          "description": "Update operation: The asset group asset is expected to have a valid resource name.",
          "$ref": "GoogleAdsSearchads360V23Resources__AssetGroupAsset"
        },
        "remove": {
          "description": "Remove operation: A resource name for the removed asset group asset is expected, in this format: `customers/{customer_id}/assetGroupAssets/{asset_group_id}~{asset_id}~{field_type}`",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__AssetGroupAssetOperation",
      "description": "A single operation (create, remove) on an asset group asset.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__DynamicLocalAsset": {
      "properties": {
        "dealId": {
          "type": "string",
          "description": "Required. Deal ID which can be any sequence of letters and digits, and must be unique and match the values of remarketing tag. Required."
        },
        "dealName": {
          "description": "Required. Deal name, for example, 50% off at Mountain View Grocers. Required.",
          "type": "string"
        },
        "androidAppLink": {
          "description": "Android deep link, for example, android-app://com.example.android/http/example.com/gizmos?1234.",
          "type": "string"
        },
        "address": {
          "type": "string",
          "description": "Address which can be specified in one of the following formats. (1) City, state, code, country, for example, Mountain View, CA, USA. (2) Full address, for example, 123 Boulevard St, Mountain View, CA 94043. (3) Latitude-longitude in the DDD format, for example, 41.40338, 2.17403."
        },
        "formattedSalePrice": {
          "description": "Formatted sale price which can be any characters. If set, this attribute will be used instead of 'sale price', for example, On sale for $80.00.",
          "type": "string"
        },
        "iosAppStoreId": {
          "type": "string",
          "format": "int64",
          "description": "iOS app store ID. This is used to check if the user has the app installed on their device before deep linking. If this field is set, then the ios_app_link field must also be present."
        },
        "category": {
          "description": "Category, for example, Food.",
          "type": "string"
        },
        "subtitle": {
          "description": "Subtitle, for example, Groceries.",
          "type": "string"
        },
        "price": {
          "description": "Price which can be a number followed by the alphabetic currency code, ISO 4217 standard. Use '.' as the decimal mark, for example, 100.00 USD.",
          "type": "string"
        },
        "formattedPrice": {
          "type": "string",
          "description": "Formatted price which can be any characters. If set, this attribute will be used instead of 'price', for example, Starting at $100.00."
        },
        "salePrice": {
          "description": "Sale price which can be number followed by the alphabetic currency code, ISO 4217 standard. Use '.' as the decimal mark, for example, 80.00 USD. Must be less than the 'price' field.",
          "type": "string"
        },
        "iosAppLink": {
          "description": "iOS deep link, for example, exampleApp://content/page.",
          "type": "string"
        },
        "imageUrl": {
          "type": "string",
          "description": "Image URL, for example, http://www.example.com/image.png. The image will not be uploaded as image asset."
        },
        "description": {
          "description": "Description, for example, Save on your weekly bill.",
          "type": "string"
        },
        "similarDealIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Similar deal IDs, for example, 1275."
        },
        "contextualKeywords": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Contextual keywords, for example, Save groceries coupons."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__DynamicLocalAsset",
      "description": "A dynamic local asset."
    },
    "GoogleAdsSearchads360V23Common__AdAssetPolicySummary": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__AdAssetPolicySummary",
      "description": "Contains policy information for an asset inside an ad.",
      "properties": {
        "policyTopicEntries": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__PolicyTopicEntry"
          },
          "description": "The list of policy findings for this asset."
        },
        "reviewStatus": {
          "type": "string",
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "Currently under review.",
            "Primary review complete. Other reviews may be continuing.",
            "The resource has been resubmitted for approval or its policy decision has been appealed.",
            "The resource is eligible and may be serving but could still undergo further review."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "REVIEW_IN_PROGRESS",
            "REVIEWED",
            "UNDER_APPEAL",
            "ELIGIBLE_MAY_SERVE"
          ],
          "description": "Where in the review process this asset."
        },
        "approvalStatus": {
          "description": "The overall approval status of this asset, which is calculated based on the status of its individual policy topic entries.",
          "type": "string",
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "Will not serve.",
            "Serves with restrictions.",
            "Serves without restrictions.",
            "Will not serve in targeted countries, but may serve for users who are searching for information about the targeted countries."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DISAPPROVED",
            "APPROVED_LIMITED",
            "APPROVED",
            "AREA_OF_INTEREST_ONLY"
          ]
        }
      }
    },
    "GoogleAdsSearchads360V23Services__GenerateReachForecastResponse": {
      "properties": {
        "reachCurve": {
          "description": "The generated reach curve for the planned product mix.",
          "$ref": "GoogleAdsSearchads360V23Services__ReachCurve"
        },
        "onTargetAudienceMetrics": {
          "description": "Reference on target audiences for this curve.",
          "$ref": "GoogleAdsSearchads360V23Services__OnTargetAudienceMetrics"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__GenerateReachForecastResponse",
      "description": "Response message containing the generated reach curve."
    },
    "GoogleAdsSearchads360V23Services__ReachCurve": {
      "properties": {
        "reachForecasts": {
          "description": "All points on the reach curve.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__ReachForecast"
          }
        }
      },
      "id": "GoogleAdsSearchads360V23Services__ReachCurve",
      "description": "The reach curve for the planned products.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources__Customer": {
      "id": "GoogleAdsSearchads360V23Resources__Customer",
      "description": "A customer.",
      "type": "object",
      "properties": {
        "associateManagerId": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. The customer ID of the associate manager. A 0 value indicates that the customer has no SA360 associate manager."
        },
        "optimizationScoreWeight": {
          "type": "number",
          "format": "double",
          "description": "Output only. Optimization score weight of the customer. Optimization score weight can be used to compare/aggregate optimization scores across multiple non-manager customers. The aggregate optimization score of a manager is computed as the sum over all of their customers of `Customer.optimization_score * Customer.optimization_score_weight`. This field is 0 for all manager customers, and for unscored non-manager customers. This field is read-only.",
          "readOnly": true
        },
        "accountStatus": {
          "type": "string",
          "enumDescriptions": [
            "Default value.",
            "Unknown value.",
            "Account is able to serve ads.",
            "Account is deactivated by the user.",
            "Account is deactivated by an internal process.",
            "Account is irrevocably deactivated.",
            "Account is still in the process of setup, not ENABLED yet."
          ],
          "description": "Output only. Account status, for example, Enabled, Paused, Removed, etc.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "PAUSED",
            "SUSPENDED",
            "REMOVED",
            "DRAFT"
          ],
          "readOnly": true
        },
        "subManagerId": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. The customer ID of the sub manager. A 0 value indicates that the customer has no sub SA360 manager."
        },
        "imageAssetAutoMigrationDone": {
          "readOnly": true,
          "description": "Output only. True if feed based image has been migrated to asset based image.",
          "type": "boolean"
        },
        "payPerConversionEligibilityFailureReasons": {
          "description": "Output only. Reasons why the customer is not eligible to use PaymentMode.CONVERSIONS. If the list is empty, the customer is eligible. This field is read-only.",
          "type": "array",
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "Customer does not have enough conversions.",
              "Customer's conversion lag is too high.",
              "Customer uses shared budgets.",
              "Customer has conversions with ConversionActionType.UPLOAD_CLICKS.",
              "Customer's average daily spend is too high.",
              "Customer's eligibility has not yet been calculated by the Google Ads backend. Check back soon.",
              "Customer is not eligible due to other reasons."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "NOT_ENOUGH_CONVERSIONS",
              "CONVERSION_LAG_TOO_HIGH",
              "HAS_CAMPAIGN_WITH_SHARED_BUDGET",
              "HAS_UPLOAD_CLICKS_CONVERSION",
              "AVERAGE_DAILY_SPEND_TOO_HIGH",
              "ANALYSIS_NOT_COMPLETE",
              "OTHER"
            ]
          },
          "readOnly": true
        },
        "trackingUrlTemplate": {
          "type": "string",
          "description": "The URL template for constructing a tracking URL out of parameters."
        },
        "accountType": {
          "description": "Output only. Engine account type, for example, Google Ads, Microsoft Advertising, Yahoo Japan, Baidu, Facebook, Engine Track, etc.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Baidu account.",
            "Engine track account.",
            "Facebook account.",
            "Facebook account managed through gateway.",
            "Google Ads account.",
            "Microsoft Advertising account.",
            "Search Ads 360 manager account.",
            "Yahoo Japan account."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BAIDU",
            "ENGINE_TRACK",
            "FACEBOOK",
            "FACEBOOK_GATEWAY",
            "GOOGLE_ADS",
            "MICROSOFT",
            "SEARCH_ADS_360",
            "YAHOO_JAPAN"
          ],
          "readOnly": true
        },
        "subManagerDescriptiveName": {
          "type": "string",
          "description": "Output only. The descriptive name of the sub manager.",
          "readOnly": true
        },
        "resourceName": {
          "description": "Immutable. The resource name of the customer. Customer resource names have the form: `customers/{customer_id}`",
          "type": "string"
        },
        "locationAssetAutoMigrationDoneDateTime": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Timestamp of migration from feed based location to asset base location in yyyy-MM-dd HH:mm:ss format."
        },
        "optimizationScore": {
          "readOnly": true,
          "description": "Output only. Optimization score of the customer. Optimization score is an estimate of how well a customer's campaigns are set to perform. It ranges from 0% (0.0) to 100% (1.0). This field is null for all manager customers, and for unscored non-manager customers. See \"About optimization score\" at https://support.google.com/google-ads/answer/9061546. This field is read-only.",
          "type": "number",
          "format": "double"
        },
        "doubleClickCampaignManagerSetting": {
          "readOnly": true,
          "description": "Output only. DoubleClick Campaign Manager (DCM) setting for a manager customer.",
          "$ref": "GoogleAdsSearchads360V23Resources__DoubleClickCampaignManagerSetting"
        },
        "conversionTrackingSetting": {
          "description": "Conversion tracking setting for a customer.",
          "$ref": "GoogleAdsSearchads360V23Resources__ConversionTrackingSetting"
        },
        "remarketingSetting": {
          "readOnly": true,
          "description": "Output only. Remarketing setting for a customer.",
          "$ref": "GoogleAdsSearchads360V23Resources__RemarketingSetting"
        },
        "creationTime": {
          "readOnly": true,
          "description": "Output only. The timestamp when this customer was created. The timestamp is in the customer's time zone and in \"yyyy-MM-dd HH:mm:ss\" format.",
          "type": "string"
        },
        "localServicesSettings": {
          "description": "Output only. Settings for Local Services customer.",
          "$ref": "GoogleAdsSearchads360V23Resources__LocalServicesSettings",
          "readOnly": true
        },
        "customerAgreementSetting": {
          "description": "Output only. Customer Agreement Setting for a customer.",
          "$ref": "GoogleAdsSearchads360V23Resources__CustomerAgreementSetting",
          "readOnly": true
        },
        "videoBrandSafetySuitability": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "This option lets you show ads across all inventory on YouTube and video partners that meet our standards for monetization. This option may be an appropriate choice for brands that want maximum access to the full breadth of videos eligible for ads, including, for example, videos that have strong profanity in the context of comedy or a documentary, or excessive violence as featured in video games.",
            "This option lets you show ads across a wide range of content that's appropriate for most brands, such as popular music videos, documentaries, and movie trailers. The content you can show ads on is based on YouTube's advertiser-friendly content guidelines that take into account, for example, the strength or frequency of profanity, or the appropriateness of subject matter like sensitive events. Ads won't show, for example, on content with repeated strong profanity, strong sexual content, or graphic violence.",
            "This option lets you show ads on a reduced range of content that's appropriate for brands with particularly strict guidelines around inappropriate language and sexual suggestiveness; above and beyond what YouTube's advertiser-friendly content guidelines address. The videos accessible in this sensitive category meet heightened requirements, especially for inappropriate language and sexual suggestiveness. For example, your ads will be excluded from showing on some of YouTube's most popular music videos and other pop culture content across YouTube and Google video partners."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "EXPANDED_INVENTORY",
            "STANDARD_INVENTORY",
            "LIMITED_INVENTORY"
          ],
          "description": "Brand Safety setting at the account level. Allows for selecting an inventory type to show your ads on content that is the right fit for your brand. See https://support.google.com/google-ads/answer/7515513."
        },
        "manager": {
          "readOnly": true,
          "type": "boolean",
          "description": "Output only. Whether the customer is a manager."
        },
        "currencyCode": {
          "description": "Immutable. The currency in which the account operates. A subset of the currency codes from the ISO 4217 standard is supported.",
          "type": "string"
        },
        "locationAssetAutoMigrationDone": {
          "type": "boolean",
          "description": "Output only. True if feed based location has been migrated to asset based location.",
          "readOnly": true
        },
        "timeZone": {
          "type": "string",
          "description": "Immutable. The local timezone ID of the customer."
        },
        "imageAssetAutoMigrationDoneDateTime": {
          "readOnly": true,
          "description": "Output only. Timestamp of migration from feed based image to asset base image in yyyy-MM-dd HH:mm:ss format.",
          "type": "string"
        },
        "associateManagerDescriptiveName": {
          "type": "string",
          "description": "Output only. The descriptive name of the associate manager.",
          "readOnly": true
        },
        "id": {
          "type": "string",
          "format": "int64",
          "description": "Output only. The ID of the customer.",
          "readOnly": true
        },
        "descriptiveName": {
          "description": "Optional, non-unique descriptive name of the customer.",
          "type": "string"
        },
        "testAccount": {
          "readOnly": true,
          "type": "boolean",
          "description": "Output only. Whether the customer is a test account."
        },
        "videoCustomer": {
          "description": "Video specific information about a Customer.",
          "$ref": "GoogleAdsSearchads360V23Resources__VideoCustomer"
        },
        "callReportingSetting": {
          "description": "Call reporting setting for a customer.",
          "$ref": "GoogleAdsSearchads360V23Resources__CallReportingSetting"
        },
        "hasPartnersBadge": {
          "description": "Output only. Whether the Customer has a Partners program badge. If the Customer is not associated with the Partners program, this will be false. For more information, see https://support.google.com/partners/answer/3125774.",
          "type": "boolean",
          "readOnly": true
        },
        "accountLevel": {
          "description": "Output only. The account level of the customer: Manager, Sub-manager, Associate manager, Service account.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Client account (Facebook)",
            "Client account (Google Ads)",
            "Client account (Microsoft)",
            "Client account (Yahoo Japan)",
            "Client account (Engine Track)",
            "Top-level manager.",
            "Sub manager.",
            "Associate manager."
          ],
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CLIENT_ACCOUNT_FACEBOOK",
            "CLIENT_ACCOUNT_GOOGLE_ADS",
            "CLIENT_ACCOUNT_MICROSOFT",
            "CLIENT_ACCOUNT_YAHOO_JAPAN",
            "CLIENT_ACCOUNT_ENGINE_TRACK",
            "MANAGER",
            "SUB_MANAGER",
            "ASSOCIATE_MANAGER"
          ]
        },
        "lastModifiedTime": {
          "type": "string",
          "description": "Output only. The datetime when this customer was last modified. The datetime is in the customer's time zone and in \"yyyy-MM-dd HH:mm:ss.ssssss\" format.",
          "readOnly": true
        },
        "finalUrlSuffix": {
          "description": "The URL template for appending params to the final URL.",
          "type": "string"
        },
        "engineId": {
          "type": "string",
          "description": "Output only. ID of the account in the external engine account.",
          "readOnly": true
        },
        "autoTaggingEnabled": {
          "description": "Whether auto-tagging is enabled for the customer.",
          "type": "boolean"
        },
        "managerDescriptiveName": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The descriptive name of the manager."
        },
        "managerId": {
          "type": "string",
          "format": "int64",
          "description": "Output only. The customer ID of the manager. A 0 value indicates that the customer has no SA360 manager.",
          "readOnly": true
        },
        "status": {
          "description": "Output only. The status of the customer.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Indicates an active account able to serve ads.",
            "Indicates a canceled account unable to serve ads. Can be reactivated by an admin user.",
            "Indicates a suspended account unable to serve ads. May only be activated by Google support.",
            "Indicates a closed account unable to serve ads. Test account will also have CLOSED status. Status is permanent and may not be reopened."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "CANCELED",
            "SUSPENDED",
            "CLOSED"
          ],
          "readOnly": true
        },
        "containsEuPoliticalAdvertising": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The campaign contains political advertising targeted towards the EU. The campaign will be restricted from serving ads in the EU.",
            "The campaign does not contain political advertising targeted towards the EU. No additional serving restrictions will apply."
          ],
          "description": "Output only. Returns the advertiser self-declaration status of whether this customer contains political advertising content targeted towards the European Union. You can use the Google Ads UI to update this account-level declaration, or use the API to update the self-declaration status of individual campaigns.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CONTAINS_EU_POLITICAL_ADVERTISING",
            "DOES_NOT_CONTAIN_EU_POLITICAL_ADVERTISING"
          ],
          "readOnly": true
        }
      }
    },
    "GoogleAdsSearchads360V23Services__ListExperimentAsyncErrorsResponse": {
      "properties": {
        "nextPageToken": {
          "description": "Pagination token used to retrieve the next page of results. Pass the content of this string as the `page_token` attribute of the next request. `next_page_token` is not returned for the last page.",
          "type": "string"
        },
        "errors": {
          "description": "details of the errors when performing the asynchronous operation.",
          "type": "array",
          "items": {
            "$ref": "GoogleRpc__Status"
          }
        }
      },
      "id": "GoogleAdsSearchads360V23Services__ListExperimentAsyncErrorsResponse",
      "description": "Response message for ExperimentService.ListExperimentAsyncErrors.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__RateMetrics": {
      "id": "GoogleAdsSearchads360V23Services__RateMetrics",
      "description": "Average rate metrics. Metrics that represent monetary values are returned in USD by default, if unspecified in the request.",
      "type": "object",
      "properties": {
        "averageCpc": {
          "type": "number",
          "format": "double",
          "description": "The average cost-per-click (CPC) is defined by the total cost of all clicks divided by the total number of clicks received."
        },
        "engagementRate": {
          "type": "number",
          "format": "double",
          "description": "How often people engage with your ad after it's shown to them. This is the number of ad expansions divided by the number of times your ad is shown."
        },
        "activeViewViewability": {
          "description": "The percentage of time when your ad appeared on an Active View enabled site (measurable impressions) and was viewable (viewable impressions).",
          "type": "number",
          "format": "double"
        },
        "videoCompletionP50Rate": {
          "type": "number",
          "format": "double",
          "description": "Percentage of impressions where the viewer watched 50% of your video."
        },
        "trueviewAverageCpv": {
          "description": "The average TrueView cost-per-view (CPV) is defined by the total cost of all ad TrueView views divided by the number of TrueView views.",
          "type": "number",
          "format": "double"
        },
        "trueviewViewRate": {
          "type": "number",
          "format": "double",
          "description": "Number of completed TrueView views divided by the number of impressions."
        },
        "averageCpe": {
          "description": "The average cost-per-engagement (CPE) is defined by the total cost of all ad engagements divided by the total number of ad engagements.",
          "type": "number",
          "format": "double"
        },
        "clickThroughRate": {
          "description": "The number of clicks your ad receives (Clicks) divided by the number of times your ad is shown (Impressions).",
          "type": "number",
          "format": "double"
        },
        "interactionRate": {
          "description": "How often people interact with your ad after it is shown to them. This is the number of interactions divided by the number of times your ad is shown.",
          "type": "number",
          "format": "double"
        },
        "averageCpi": {
          "type": "number",
          "format": "double",
          "description": "The average cost-per-interaction (CPI) is defined by the total cost of all interactions divided by the total number of interactions."
        },
        "averageCpm": {
          "description": "Average cost-per-thousand impressions (CPM).",
          "type": "number",
          "format": "double"
        },
        "videoCompletionP75Rate": {
          "description": "Percentage of impressions where the viewer watched 75% of your video.",
          "type": "number",
          "format": "double"
        },
        "videoCompletionP100Rate": {
          "description": "Percentage of impressions where the viewer watched all of your video.",
          "type": "number",
          "format": "double"
        },
        "videoCompletionP25Rate": {
          "type": "number",
          "format": "double",
          "description": "Percentage of impressions where the viewer watched 25% of your video."
        },
        "averageActiveViewCpm": {
          "description": "Average cost-per-thousand viewable impressions.",
          "type": "number",
          "format": "double"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__CustomerUserAccessInvitationOperation": {
      "properties": {
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the revoke invitation is expected, in this format: `customers/{customer_id}/customerUserAccessInvitations/{invitation_id}`"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new access invitation.",
          "$ref": "GoogleAdsSearchads360V23Resources__CustomerUserAccessInvitation"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__CustomerUserAccessInvitationOperation",
      "description": "A single operation (create or remove) on customer user access invitation."
    },
    "GoogleAdsSearchads360V23Services__CustomerSkAdNetworkConversionValueSchemaOperation": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__CustomerSkAdNetworkConversionValueSchemaOperation",
      "description": "A single update operation for a CustomerSkAdNetworkConversionValueSchema.",
      "properties": {
        "update": {
          "description": "Update operation: The schema is expected to have a valid resource name.",
          "$ref": "GoogleAdsSearchads360V23Resources__CustomerSkAdNetworkConversionValueSchema"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateCampaignCriteriaResponse": {
      "id": "GoogleAdsSearchads360V23Services__MutateCampaignCriteriaResponse",
      "description": "Response message for campaign criterion mutate.",
      "type": "object",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateCampaignCriterionResult"
          },
          "description": "All results for the mutate."
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__AdGroupAdEffectiveLabel": {
      "properties": {
        "resourceName": {
          "description": "Immutable. The resource name of the ad group ad effective label. Ad group ad effective label resource names have the form: `customers/{owner_customer_id}/adGroupAdEffectiveLabels/{ad_group_id}~{ad_id}~{label_id}`",
          "type": "string"
        },
        "adGroupAd": {
          "type": "string",
          "description": "Immutable. The ad group ad to which the effective label is attached."
        },
        "label": {
          "type": "string",
          "description": "Immutable. The effective label assigned to the ad group ad."
        },
        "ownerCustomerId": {
          "readOnly": true,
          "description": "Output only. The ID of the Customer which owns the effective label.",
          "type": "string",
          "format": "int64"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__AdGroupAdEffectiveLabel",
      "description": "A relationship between an ad group ad and an effective label. An effective label is a label inherited or directly assigned to this ad group ad."
    },
    "GoogleAdsSearchads360V23Common__LocalServiceIdInfo": {
      "properties": {
        "serviceId": {
          "description": "The criterion resource name.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__LocalServiceIdInfo",
      "description": "A Local Services Ads service ID. Represents a service type (such as install_faucet) that a Local Services Campaign can target."
    },
    "GoogleAdsSearchads360V23Services__KeywordPlanAdGroupKeywordOperation": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__KeywordPlanAdGroupKeywordOperation",
      "description": "A single operation (create, update, remove) on a Keyword Plan ad group keyword.",
      "properties": {
        "remove": {
          "description": "Remove operation: A resource name for the removed Keyword Plan ad group keyword is expected, in this format: `customers/{customer_id}/keywordPlanAdGroupKeywords/{kp_ad_group_keyword_id}`",
          "type": "string"
        },
        "updateMask": {
          "description": "The FieldMask that determines which resource fields are modified in an update.",
          "type": "string",
          "format": "google-fieldmask"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new Keyword Plan ad group keyword.",
          "$ref": "GoogleAdsSearchads360V23Resources__KeywordPlanAdGroupKeyword"
        },
        "update": {
          "description": "Update operation: The Keyword Plan ad group keyword is expected to have a valid resource name.",
          "$ref": "GoogleAdsSearchads360V23Resources__KeywordPlanAdGroupKeyword"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__FrequencyCap": {
      "properties": {
        "timeUnit": {
          "description": "Required. The type of time unit.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The cap would define limit per one day.",
            "The cap would define limit per one week.",
            "The cap would define limit per one month."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DAY",
            "WEEK",
            "MONTH"
          ]
        },
        "impressions": {
          "type": "integer",
          "format": "int32",
          "description": "Required. The number of impressions, inclusive."
        }
      },
      "id": "GoogleAdsSearchads360V23Services__FrequencyCap",
      "description": "A rule specifying the maximum number of times an ad can be shown to a user over a particular time period.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__BookOnGoogleAsset": {
      "id": "GoogleAdsSearchads360V23Common__BookOnGoogleAsset",
      "description": "A Book on Google asset. Used to redirect user to book through Google. Book on Google will change the redirect url to book directly through Google.",
      "type": "object",
      "properties": {}
    },
    "GoogleAdsSearchads360V23Common__DemandGenMultiAssetAdInfo": {
      "properties": {
        "squareMarketingImages": {
          "description": "Square marketing image assets to be used in the ad. Valid image types are GIF, JPEG, and PNG. The minimum size is 300x300 and the aspect ratio must be 1:1 (+-1%). Required if marketing_images is not present.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AdImageAsset"
          }
        },
        "tallPortraitMarketingImages": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AdImageAsset"
          },
          "description": "Tall portrait marketing image assets to be used in the ad. Valid image types are GIF, JPEG, and PNG. The minimum size is 600x1067 and the aspect ratio must be 9:16 (+-1%). Combined with `marketing_images`, `square_marketing_images`, and `portrait_marketing_images`, the maximum is 20."
        },
        "descriptions": {
          "description": "The descriptive text of the ad. Maximum display width is 90. At least 1 and max 5 descriptions can be specified.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AdTextAsset"
          }
        },
        "businessName": {
          "type": "string",
          "description": "The Advertiser/brand name. Maximum display width is 25. Required."
        },
        "marketingImages": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AdImageAsset"
          },
          "description": "Marketing image assets to be used in the ad. Valid image types are GIF, JPEG, and PNG. The minimum size is 600x314 and the aspect ratio must be 1.91:1 (+-1%). Required if square_marketing_images is not present."
        },
        "portraitMarketingImages": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AdImageAsset"
          },
          "description": "Portrait marketing image assets to be used in the ad. Valid image types are GIF, JPEG, and PNG. The minimum size is 480x600 and the aspect ratio must be 4:5 (+-1%)."
        },
        "logoImages": {
          "description": "Logo image assets to be used in the ad. Valid image types are GIF, JPEG, and PNG. The minimum size is 128x128 and the aspect ratio must be 1:1 (+-1%). At least 1 and max 5 logo images can be specified.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AdImageAsset"
          }
        },
        "headlines": {
          "description": "Headline text asset of the ad. Maximum display width is 30. At least 1 and max 5 headlines can be specified.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AdTextAsset"
          }
        },
        "callToActionText": {
          "description": "Call to action text.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__DemandGenMultiAssetAdInfo",
      "description": "A Demand Gen multi asset ad."
    },
    "GoogleAdsSearchads360V23Services__MutateGoalResult": {
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateGoalResult",
      "description": "The result for the goal mutate."
    },
    "GoogleAdsSearchads360V23Resources_Recommendation_DynamicImageExtensionOptInRecommendation": {
      "properties": {},
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources_Recommendation_DynamicImageExtensionOptInRecommendation",
      "description": "Recommendation to enable dynamic image extensions on the account, allowing Google to find the best images from ad landing pages and complement text ads."
    },
    "GoogleAdsSearchads360V23Resources__QualifyingQuestion": {
      "id": "GoogleAdsSearchads360V23Resources__QualifyingQuestion",
      "description": "Qualifying Questions for Lead Form.",
      "type": "object",
      "properties": {
        "resourceName": {
          "readOnly": true,
          "description": "Output only. The resource name of the qualifying question. 'qualifyingQuestions/{qualifyingQuestionId}'",
          "type": "string"
        },
        "locale": {
          "readOnly": true,
          "description": "Output only. The locale of the qualifying question.",
          "type": "string"
        },
        "qualifyingQuestionId": {
          "readOnly": true,
          "description": "Output only. The id of the qualifying question.",
          "type": "string",
          "format": "int64"
        },
        "text": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The qualifying question."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__SmartCampaignSuggestionInfo": {
      "properties": {
        "keywordThemes": {
          "description": "Optional. Smart campaign keyword themes. This field may greatly improve suggestion accuracy and we recommend always setting it if possible.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__KeywordThemeInfo"
          }
        },
        "proximity": {
          "description": "Optional. The targeting geo location by proximity.",
          "$ref": "GoogleAdsSearchads360V23Common__ProximityInfo"
        },
        "finalUrl": {
          "description": "Optional. Landing page URL of the campaign.",
          "type": "string"
        },
        "businessContext": {
          "description": "Optional. Context describing the business to advertise.",
          "$ref": "GoogleAdsSearchads360V23Services_SmartCampaignSuggestionInfo_BusinessContext"
        },
        "businessProfileLocation": {
          "description": "Optional. The resource name of a Business Profile location. Business Profile location resource names can be fetched through the Business Profile API and adhere to the following format: `locations/{locationId}`. See the [Business Profile API] (https://developers.google.com/my-business/reference/businessinformation/rest/v1/accounts.locations) for additional details.",
          "type": "string"
        },
        "locationList": {
          "description": "Optional. The targeting geo location by locations.",
          "$ref": "GoogleAdsSearchads360V23Services_SmartCampaignSuggestionInfo_LocationList"
        },
        "languageCode": {
          "description": "Optional. The two letter advertising language for the Smart campaign to be constructed, default to 'en' if not set.",
          "type": "string"
        },
        "adSchedules": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AdScheduleInfo"
          },
          "description": "Optional. The business ad schedule."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__SmartCampaignSuggestionInfo",
      "description": "Information needed to get suggestion for Smart Campaign. More information provided will help the system to derive better suggestions."
    },
    "GoogleAdsSearchads360V23Common__MobileAppAsset": {
      "id": "GoogleAdsSearchads360V23Common__MobileAppAsset",
      "description": "An asset representing a mobile app.",
      "type": "object",
      "properties": {
        "startDate": {
          "description": "Start date of when this asset is effective and can begin serving, in yyyy-MM-dd format.",
          "type": "string"
        },
        "linkText": {
          "type": "string",
          "description": "Required. The visible text displayed when the link is rendered in an ad. The length of this string should be between 1 and 25, inclusive."
        },
        "endDate": {
          "type": "string",
          "description": "Last date of when this asset is effective and still serving, in yyyy-MM-dd format."
        },
        "appId": {
          "description": "Required. A string that uniquely identifies a mobile application. It should just contain the platform native id, like \"com.android.ebay\" for Android or \"12345689\" for iOS.",
          "type": "string"
        },
        "appStore": {
          "description": "Required. The application store that distributes this specific app.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Mobile app vendor for Apple app store.",
            "Mobile app vendor for Google app store."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "APPLE_APP_STORE",
            "GOOGLE_APP_STORE"
          ]
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateConversionGoalCampaignConfigsRequest": {
      "properties": {
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__ConversionGoalCampaignConfigOperation"
          },
          "description": "Required. The list of operations to perform on individual conversion goal campaign config."
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "responseContentType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateConversionGoalCampaignConfigsRequest",
      "description": "Request message for ConversionGoalCampaignConfigService.MutateConversionGoalCampaignConfigs."
    },
    "GoogleAdsSearchads360V23Common__RuleBasedUserListInfo": {
      "id": "GoogleAdsSearchads360V23Common__RuleBasedUserListInfo",
      "description": "Representation of a userlist that is generated by a rule.",
      "type": "object",
      "properties": {
        "prepopulationStatus": {
          "description": "The status of pre-population. The field is default to NONE if not set which means the previous users will not be considered. If set to REQUESTED, past site visitors or app users who match the list definition will be included in the list (works on the Display Network only). This will only add past users from within the last 30 days, depending on the list's membership duration and the date when the remarketing tag is added. The status will be updated to FINISHED once request is processed, or FAILED if the request fails.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Prepopoulation is being requested.",
            "Prepopulation is finished.",
            "Prepopulation failed."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "REQUESTED",
            "FINISHED",
            "FAILED"
          ]
        },
        "flexibleRuleUserList": {
          "description": "Flexible rule representation of visitors with one or multiple actions. The flexible user list is defined by two lists of operands – inclusive_operands and exclusive_operands; each operand represents a set of users based on actions they took in a given timeframe. These lists of operands are combined with the AND_NOT operator, so that users represented by the inclusive operands are included in the user list, minus the users represented by the exclusive operands.",
          "$ref": "GoogleAdsSearchads360V23Common__FlexibleRuleUserListInfo"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__AdStrengthActionItem": {
      "id": "GoogleAdsSearchads360V23Resources__AdStrengthActionItem",
      "description": "An action item to improve the ad strength of an asset group.",
      "type": "object",
      "properties": {
        "actionItemType": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADD_ASSET"
          ],
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "This action item suggests adding an asset to the asset group."
          ],
          "description": "Output only. The action item type."
        },
        "addAssetDetails": {
          "description": "Output only. The action item details for action item type ADD_ASSET.",
          "$ref": "GoogleAdsSearchads360V23Resources_AdStrengthActionItem_AddAssetDetails",
          "readOnly": true
        }
      }
    },
    "GoogleAdsSearchads360V23Services__InsightsAudienceDescription": {
      "properties": {
        "audienceDescription": {
          "description": "Required. An English language text description of an audience to get suggestions for. Maximum length is 2000 characters. For example, \"Women in their 30s who love to travel\".",
          "type": "string"
        },
        "countryLocations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__LocationInfo"
          },
          "description": "Required. The countries for the audience."
        },
        "audienceDimensions": {
          "description": "Optional. An optional list of audience dimensions to return.",
          "$ref": "GoogleAdsSearchads360V23Services__AudienceInsightsDimensions"
        },
        "marketingObjective": {
          "description": "Optional. An optional marketing objective which will influence the type of suggestions produced.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "The objective is to increase awareness of a brand or product among relevant audiences.",
            "The objective is to encourage potential customers to consider your brand or products when they're researching or shopping for product.",
            "The objective is for research, to gain further insights into your audience."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AWARENESS",
            "CONSIDERATION",
            "RESEARCH"
          ]
        }
      },
      "id": "GoogleAdsSearchads360V23Services__InsightsAudienceDescription",
      "description": "A text description of the audience of interest for which insights are being requested in AudienceInsightsService.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateKeywordPlanCampaignKeywordsResponse": {
      "id": "GoogleAdsSearchads360V23Services__MutateKeywordPlanCampaignKeywordsResponse",
      "description": "Response message for a Keyword Plan campaign keyword mutate.",
      "type": "object",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "description": "All results for the mutate.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateKeywordPlanCampaignKeywordResult"
          }
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__AdGroupCriterionEffectiveLabel": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__AdGroupCriterionEffectiveLabel",
      "description": "A relationship between an ad group criterion and an effective label. An effective label is a label inherited or directly assigned to this ad group criterion.",
      "properties": {
        "label": {
          "description": "Immutable. The effective label assigned to the ad group criterion.",
          "type": "string"
        },
        "ownerCustomerId": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. The ID of the Customer which owns the effective label."
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the ad group criterion effective label. Ad group criterion effective label resource names have the form: `customers/{owner_customer_id}/adGroupCriterionEffectiveLabels/{ad_group_id}~{criterion_id}~{label_id}`"
        },
        "adGroupCriterion": {
          "description": "Immutable. The ad group criterion to which the effective label is attached.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateBiddingDataExclusionsResponse": {
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateBiddingDataExclusionsResult"
          },
          "description": "All results for the mutate."
        }
      },
      "id": "GoogleAdsSearchads360V23Services__MutateBiddingDataExclusionsResponse",
      "description": "Response message for data exclusions mutate.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateExperimentArmResult": {
      "id": "GoogleAdsSearchads360V23Services__MutateExperimentArmResult",
      "description": "The result for the experiment arm mutate.",
      "type": "object",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        },
        "experimentArm": {
          "description": "The mutated experiment arm with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsSearchads360V23Resources__ExperimentArm"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__ListBenchmarksAvailableDatesRequest": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__ListBenchmarksAvailableDatesRequest",
      "description": "Request message for BenchmarksService.ListBenchmarksAvailableDates.",
      "properties": {
        "applicationInfo": {
          "description": "Additional information on the application issuing the request.",
          "$ref": "GoogleAdsSearchads360V23Common__AdditionalApplicationInfo"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__DynamicCustomAsset": {
      "id": "GoogleAdsSearchads360V23Common__DynamicCustomAsset",
      "description": "A dynamic custom asset.",
      "type": "object",
      "properties": {
        "contextualKeywords": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Contextual keywords, for example, Sedans, 4 door sedans."
        },
        "similarIds": {
          "description": "Similar IDs.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "id": {
          "description": "Required. ID which can be any sequence of letters and digits, and must be unique and match the values of remarketing tag, for example, sedan. Required.",
          "type": "string"
        },
        "itemAddress": {
          "type": "string",
          "description": "Item address which can be specified in one of the following formats. (1) City, state, code, country, for example, Mountain View, CA, USA. (2) Full address, for example, 123 Boulevard St, Mountain View, CA 94043. (3) Latitude-longitude in the DDD format, for example, 41.40338, 2.17403"
        },
        "iosAppLink": {
          "type": "string",
          "description": "iOS deep link, for example, exampleApp://content/page."
        },
        "imageUrl": {
          "description": "Image URL, for example, http://www.example.com/image.png. The image will not be uploaded as image asset.",
          "type": "string"
        },
        "formattedPrice": {
          "description": "Formatted price which can be any characters. If set, this attribute will be used instead of 'price', for example, Starting at $20,000.00.",
          "type": "string"
        },
        "itemDescription": {
          "type": "string",
          "description": "Item description, for example, Best selling mid-size car."
        },
        "salePrice": {
          "type": "string",
          "description": "Sale price which can be number followed by the alphabetic currency code, ISO 4217 standard. Use '.' as the decimal mark, for example, 15,000.00 USD. Must be less than the 'price' field."
        },
        "itemCategory": {
          "description": "Item category, for example, Sedans.",
          "type": "string"
        },
        "itemSubtitle": {
          "type": "string",
          "description": "Item subtitle, for example, At your Mountain View dealership."
        },
        "price": {
          "description": "Price which can be number followed by the alphabetic currency code, ISO 4217 standard. Use '.' as the decimal mark, for example, 20,000.00 USD.",
          "type": "string"
        },
        "formattedSalePrice": {
          "type": "string",
          "description": "Formatted sale price which can be any characters. If set, this attribute will be used instead of 'sale price', for example, On sale for $15,000.00."
        },
        "iosAppStoreId": {
          "type": "string",
          "format": "int64",
          "description": "iOS app store ID. This is used to check if the user has the app installed on their device before deep linking. If this field is set, then the ios_app_link field must also be present."
        },
        "id2": {
          "description": "ID2 which can be any sequence of letters and digits, for example, red. ID sequence (ID + ID2) must be unique.",
          "type": "string"
        },
        "itemTitle": {
          "type": "string",
          "description": "Required. Item title, for example, Mid-size sedan. Required."
        },
        "androidAppLink": {
          "description": "Android deep link, for example, android-app://com.example.android/http/example.com/gizmos?1234.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__OfflineUserAddressInfo": {
      "properties": {
        "city": {
          "description": "City of the address. Only accepted for Store Sales.",
          "type": "string"
        },
        "hashedStreetAddress": {
          "type": "string",
          "description": "The street address of the user hashed using SHA-256 hash function after normalization (lower case only). Only accepted for ConversionAdjustmentUploadService."
        },
        "hashedFirstName": {
          "type": "string",
          "description": "First name of the user, which is hashed as SHA-256 after normalized (Lowercase all characters; Remove any extra spaces before, after, and in between)."
        },
        "postalCode": {
          "description": "Postal code of the user's address.",
          "type": "string"
        },
        "hashedLastName": {
          "type": "string",
          "description": "Last name of the user, which is hashed as SHA-256 after normalized (lower case only and no punctuation)."
        },
        "countryCode": {
          "description": "2-letter country code in ISO-3166-1 alpha-2 of the user's address.",
          "type": "string"
        },
        "state": {
          "description": "State code of the address. Only accepted for Store Sales.",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V23Common__OfflineUserAddressInfo",
      "description": "Address identifier of offline data.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources_Recommendation_UpgradeLocalCampaignToPerformanceMaxRecommendation": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources_Recommendation_UpgradeLocalCampaignToPerformanceMaxRecommendation",
      "description": "The Upgrade Local campaign to Performance Max campaign recommendation.",
      "properties": {}
    },
    "GoogleAdsSearchads360V23Services__ListBenchmarksSourcesResponse": {
      "properties": {
        "benchmarksSources": {
          "description": "The list of available source used to generate benchmarks data for.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__BenchmarksSourceMetadata"
          }
        }
      },
      "id": "GoogleAdsSearchads360V23Services__ListBenchmarksSourcesResponse",
      "description": "Response message for BenchmarksService.ListBenchmarksSources.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Errors__PolicyFindingDetails": {
      "properties": {
        "policyTopicEntries": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__PolicyTopicEntry"
          },
          "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)."
        }
      },
      "type": "object",
      "id": "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."
    },
    "GoogleAdsSearchads360V23Services__BenchmarksSourceMetadata": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__BenchmarksSourceMetadata",
      "description": "The metadata associated with a benchmarks source.",
      "properties": {
        "benchmarksSourceType": {
          "description": "The type of benchmarks source.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "The classification of ad categories for benchmarking. (for example, \"Technology\" or \"Finance\")."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INDUSTRY_VERTICAL"
          ]
        },
        "industryVerticalInfo": {
          "description": "Information on the Industry Vertical.",
          "$ref": "GoogleAdsSearchads360V23Services__IndustryVerticalInfo"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__UnknownListingDimensionInfo": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__UnknownListingDimensionInfo",
      "description": "Unknown listing dimension.",
      "properties": {}
    },
    "GoogleAdsSearchads360V23Resources__BillingSetup": {
      "properties": {
        "id": {
          "readOnly": true,
          "description": "Output only. The ID of the billing setup.",
          "type": "string",
          "format": "int64"
        },
        "startDateTime": {
          "type": "string",
          "description": "Immutable. The start date time in yyyy-MM-dd or yyyy-MM-dd HH:mm:ss format. Only a future time is allowed."
        },
        "endTimeType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "As soon as possible.",
            "An infinite point in the future."
          ],
          "description": "Output only. The end time as a type. The only possible value is FOREVER.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NOW",
            "FOREVER"
          ],
          "readOnly": true
        },
        "paymentsAccount": {
          "description": "Immutable. The resource name of the payments account associated with this billing setup. Payments resource names have the form: `customers/{customer_id}/paymentsAccounts/{payments_account_id}` When setting up billing, this is used to signup with an existing payments account (and then payments_account_info should not be set). When getting a billing setup, this and payments_account_info will be populated.",
          "type": "string"
        },
        "resourceName": {
          "description": "Immutable. The resource name of the billing setup. BillingSetup resource names have the form: `customers/{customer_id}/billingSetups/{billing_setup_id}`",
          "type": "string"
        },
        "startTimeType": {
          "description": "Immutable. The start time as a type. Only NOW is allowed.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "As soon as possible.",
            "An infinite point in the future."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NOW",
            "FOREVER"
          ]
        },
        "paymentsAccountInfo": {
          "description": "Immutable. The payments account information associated with this billing setup. When setting up billing, this is used to signup with a new payments account (and then payments_account should not be set). When getting a billing setup, this and payments_account will be populated.",
          "$ref": "GoogleAdsSearchads360V23Resources_BillingSetup_PaymentsAccountInfo"
        },
        "endDateTime": {
          "type": "string",
          "description": "Output only. The end date time in yyyy-MM-dd or yyyy-MM-dd HH:mm:ss format.",
          "readOnly": true
        },
        "status": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PENDING",
            "APPROVED_HELD",
            "APPROVED",
            "CANCELLED"
          ],
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The billing setup is pending approval.",
            "The billing setup has been approved but the corresponding first budget has not. This can only occur for billing setups configured for monthly invoicing.",
            "The billing setup has been approved.",
            "The billing setup was cancelled by the user prior to approval."
          ],
          "description": "Output only. The status of the billing setup."
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__BillingSetup",
      "description": "A billing setup, which associates a payments account and an advertiser. A billing setup is specific to one advertiser.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__ScheduleExperimentRequest": {
      "id": "GoogleAdsSearchads360V23Services__ScheduleExperimentRequest",
      "description": "Request message for ExperimentService.ScheduleExperiment.",
      "type": "object",
      "properties": {
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__SearchAds360ExpandedDynamicSearchAdInfo": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__SearchAds360ExpandedDynamicSearchAdInfo",
      "description": "An expanded dynamic search ad.",
      "properties": {
        "description1": {
          "type": "string",
          "description": "The first line of the ad's description."
        },
        "adTrackingId": {
          "description": "The tracking id of the ad.",
          "type": "string",
          "format": "int64"
        },
        "description2": {
          "description": "The second line of the ad's description.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__CreateCustomerClientRequest": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__CreateCustomerClientRequest",
      "description": "Request message for CustomerService.CreateCustomerClient.",
      "properties": {
        "accessRole": {
          "description": "The proposed role of user on the created client customer. Accessible only to customers on the allow-list.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Owns its account and can control the addition of other users.",
            "Can modify , but can't affect other users.",
            "Can view and account changes, but cannot make edits.",
            "Role for \\\"email only\\\" access. Represents an email recipient rather than a true User entity."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADMIN",
            "STANDARD",
            "READ_ONLY",
            "EMAIL_ONLY"
          ]
        },
        "emailAddress": {
          "description": "Email address of the user who should be invited on the created client customer. Accessible only to customers on the allow-list.",
          "type": "string"
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "customerClient": {
          "description": "Required. The new client customer to create. The resource name on this customer will be ignored.",
          "$ref": "GoogleAdsSearchads360V23Resources__Customer"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateKeywordPlanCampaignKeywordResult": {
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateKeywordPlanCampaignKeywordResult",
      "description": "The result for the Keyword Plan campaign keyword mutate."
    },
    "GoogleAdsSearchads360V23Services__RecommendationSubscriptionOperation": {
      "id": "GoogleAdsSearchads360V23Services__RecommendationSubscriptionOperation",
      "description": "A single operation (create, update) on a recommendation subscription. RecommendationSubscriptionService.MutateRecommendationSubscription",
      "type": "object",
      "properties": {
        "updateMask": {
          "description": "Optional. FieldMask that determines which resource fields are modified in an update.",
          "type": "string",
          "format": "google-fieldmask"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new subscription.",
          "$ref": "GoogleAdsSearchads360V23Resources__RecommendationSubscription"
        },
        "update": {
          "description": "Update operation: The subscription is expected to have a valid resource name.",
          "$ref": "GoogleAdsSearchads360V23Resources__RecommendationSubscription"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__CustomerThirdPartyViewabilityIntegrationPartner": {
      "id": "GoogleAdsSearchads360V23Common__CustomerThirdPartyViewabilityIntegrationPartner",
      "description": "Container for third party viewability integration data for Customer.",
      "type": "object",
      "properties": {
        "viewabilityIntegrationPartner": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "DoubleVerify.",
            "Integral Ad Science."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DOUBLE_VERIFY",
            "INTEGRAL_AD_SCIENCE"
          ],
          "description": "Allowed third party integration partners for YouTube viewability verification."
        },
        "allowShareCost": {
          "type": "boolean",
          "description": "If true, cost data can be shared with this vendor."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__AppPaymentModelInfo": {
      "properties": {
        "type": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Represents paid-for apps."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PAID"
          ],
          "description": "Type of the app payment model."
        }
      },
      "id": "GoogleAdsSearchads360V23Common__AppPaymentModelInfo",
      "description": "An app payment model criterion.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateAssetGroupListingGroupFiltersResponse": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateAssetGroupListingGroupFiltersResponse",
      "description": "Response message for an asset group listing group filter mutate.",
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateAssetGroupListingGroupFilterResult"
          },
          "description": "All results for the mutate."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__InsightsAudienceAttributeGroup": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__InsightsAudienceAttributeGroup",
      "description": "A list of AudienceInsightsAttributes.",
      "properties": {
        "attributes": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AudienceInsightsAttribute"
          },
          "description": "Required. A collection of audience attributes to be combined with logical OR. Attributes need not all be the same dimension. Only Knowledge Graph entities, Product & Service Categories, and Affinity and In-Market audiences are supported in this context."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__YouTubeChannelInfo": {
      "properties": {
        "channelId": {
          "type": "string",
          "description": "The YouTube uploader channel id or the channel code of a YouTube channel."
        }
      },
      "id": "GoogleAdsSearchads360V23Common__YouTubeChannelInfo",
      "description": "A YouTube Channel criterion.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__SuggestSmartCampaignAdResponse": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__SuggestSmartCampaignAdResponse",
      "description": "Response message for SmartCampaignSuggestService.SuggestSmartCampaignAd.",
      "properties": {
        "adInfo": {
          "description": "Optional. Ad info includes 3 creative headlines and 2 creative descriptions.",
          "$ref": "GoogleAdsSearchads360V23Common__SmartCampaignAdInfo"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__ShoppingSmartAdInfo": {
      "id": "GoogleAdsSearchads360V23Common__ShoppingSmartAdInfo",
      "description": "A Smart Shopping ad.",
      "type": "object",
      "properties": {}
    },
    "GoogleAdsSearchads360V23Common__ProximityInfo": {
      "properties": {
        "radius": {
          "type": "number",
          "format": "double",
          "description": "The radius of the proximity."
        },
        "radiusUnits": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Miles",
            "Kilometers"
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MILES",
            "KILOMETERS"
          ],
          "description": "The unit of measurement of the radius. Default is KILOMETERS."
        },
        "geoPoint": {
          "description": "Latitude and longitude.",
          "$ref": "GoogleAdsSearchads360V23Common__GeoPointInfo"
        },
        "address": {
          "description": "Full address.",
          "$ref": "GoogleAdsSearchads360V23Common__AddressInfo"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__ProximityInfo",
      "description": "A Proximity criterion. The geo point and radius determine what geographical area is included. The address is a description of the geo point that does not affect ad serving. There are two ways to create a proximity. First, by setting an address and radius. The geo point will be automatically computed. Second, by setting a geo point and radius. The address is an optional label that won't be validated."
    },
    "GoogleAdsSearchads360V23Resources_Recommendation_ShoppingOfferAttributeRecommendation": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources_Recommendation_ShoppingOfferAttributeRecommendation",
      "description": "The shopping recommendation to add an attribute to offers that are demoted because it is missing.",
      "properties": {
        "merchant": {
          "readOnly": true,
          "description": "Output only. The details of the Merchant Center account.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_MerchantInfo"
        },
        "feedLabel": {
          "type": "string",
          "description": "Output only. The campaign feed label.",
          "readOnly": true
        },
        "demotedOffersCount": {
          "description": "Output only. The number of online, servable offers that are demoted for missing attributes. Visit the Merchant Center for more details.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        },
        "offersCount": {
          "description": "Output only. The number of online, servable offers.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        }
      }
    },
    "GoogleAdsSearchads360V23Resources_AccessibleBiddingStrategy_MaximizeConversionValue": {
      "id": "GoogleAdsSearchads360V23Resources_AccessibleBiddingStrategy_MaximizeConversionValue",
      "description": "An automated bidding strategy to help get the most conversion value for your campaigns while spending your budget.",
      "type": "object",
      "properties": {
        "targetRoas": {
          "description": "Output only. The target return on ad spend (ROAS) option. If set, the bid strategy will maximize revenue while averaging the target return on ad spend. If the target ROAS is high, the bid strategy may not be able to spend the full budget. If the target ROAS is not set, the bid strategy will aim to achieve the highest possible ROAS for the budget.",
          "type": "number",
          "format": "double",
          "readOnly": true
        }
      }
    },
    "GoogleAdsSearchads360V23Services__AudienceCompositionAttribute": {
      "properties": {
        "attributeMetadata": {
          "description": "The attribute with its metadata.",
          "$ref": "GoogleAdsSearchads360V23Common__AudienceInsightsAttributeMetadata"
        },
        "metrics": {
          "description": "Share and index metrics for the attribute.",
          "$ref": "GoogleAdsSearchads360V23Services__AudienceCompositionMetrics"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__AudienceCompositionAttribute",
      "description": "An audience attribute with metadata and metrics."
    },
    "GoogleAdsSearchads360V23Common__PlacementListInfo": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__PlacementListInfo",
      "description": "A Placement List criterion. Represents a shared set of placements that can be excluded at the account-level.",
      "properties": {
        "sharedSet": {
          "type": "string",
          "description": "The PlacementListInfo shared set resource name."
        }
      }
    },
    "GoogleAdsSearchads360V23Resources_Invoice_InvalidActivitySummary": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources_Invoice_InvalidActivitySummary",
      "description": "Details about the invalid activity for the invoice that contain additional details about invoice against which corrections are made.",
      "properties": {
        "originalAccountBudgetName": {
          "description": "Output only. Original account budget name related to this invalid activity credit.",
          "type": "string",
          "readOnly": true
        },
        "originalInvoiceId": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Original invoice number related to this invalid activity credit."
        },
        "originalYearOfService": {
          "readOnly": true,
          "description": "Output only. Original year of service related to this invalid activity credit.",
          "type": "string"
        },
        "amountMicros": {
          "readOnly": true,
          "description": "Output only. Invalid activity amount in micros.",
          "type": "string",
          "format": "int64"
        },
        "originalMonthOfService": {
          "description": "Output only. Original month of service related to this invalid activity credit.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "January.",
            "February.",
            "March.",
            "April.",
            "May.",
            "June.",
            "July.",
            "August.",
            "September.",
            "October.",
            "November.",
            "December."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "JANUARY",
            "FEBRUARY",
            "MARCH",
            "APRIL",
            "MAY",
            "JUNE",
            "JULY",
            "AUGUST",
            "SEPTEMBER",
            "OCTOBER",
            "NOVEMBER",
            "DECEMBER"
          ],
          "readOnly": true
        },
        "originalPurchaseOrderNumber": {
          "readOnly": true,
          "description": "Output only. Original purchase order number related to this invalid activity credit.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__AdGroupAdLabel": {
      "id": "GoogleAdsSearchads360V23Resources__AdGroupAdLabel",
      "description": "A relationship between an ad group ad and a label.",
      "type": "object",
      "properties": {
        "resourceName": {
          "description": "Immutable. The resource name of the ad group ad label. Ad group ad label resource names have the form: `customers/{owner_customer_id}/adGroupAdLabels/{ad_group_id}~{ad_id}~{label_id}`",
          "type": "string"
        },
        "adGroupAd": {
          "description": "Immutable. The ad group ad to which the label is attached.",
          "type": "string"
        },
        "label": {
          "description": "Immutable. The label assigned to the ad group ad.",
          "type": "string"
        },
        "ownerCustomerId": {
          "readOnly": true,
          "description": "Output only. The ID of the Customer which owns the label.",
          "type": "string",
          "format": "int64"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__RawEventConversionMetricHeader": {
      "id": "GoogleAdsSearchads360V23Services__RawEventConversionMetricHeader",
      "description": "Message for raw event conversion metric header.",
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "format": "int64",
          "description": "The conversion custom variable ID."
        },
        "name": {
          "type": "string",
          "description": "The user defined name of the raw event metric."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__GenerateRecommendationsRequest": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__GenerateRecommendationsRequest",
      "description": "Request message for RecommendationService.GenerateRecommendations.",
      "properties": {
        "recommendationTypes": {
          "type": "array",
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "Provides optimized budget recommendations for campaigns.",
              "Keyword recommendation.",
              "Recommendation to add a new text ad.",
              "Recommendation to update a campaign to use a Target CPA bidding strategy.",
              "Recommendation to update a campaign to use the Maximize Conversions bidding strategy.",
              "Recommendation to enable Enhanced Cost Per Click for a campaign.",
              "Recommendation to start showing your campaign's ads on Google Search Partners Websites.",
              "Recommendation to update a campaign to use a Maximize Clicks bidding strategy.",
              "Recommendation to start using the \"Optimize\" ad rotation setting for the given ad group.",
              "Recommendation to change an existing keyword from one match type to a broader match type.",
              "Recommendation to move unused budget from one budget to a constrained budget.",
              "Budget recommendation for campaigns that are expected to become budget-constrained in the future (as opposed to the CAMPAIGN_BUDGET recommendation, which applies to campaigns that are currently budget-constrained).",
              "Recommendation to update a campaign to use a Target ROAS bidding strategy.",
              "Recommendation to add a new responsive search ad.",
              "Budget recommendation for campaigns whose ROI is predicted to increase with a budget adjustment.",
              "Recommendation to add broad match versions of keywords for fully automated conversion-based bidding campaigns.",
              "Recommendation to add new responsive search ad assets.",
              "Recommendation to upgrade a Smart Shopping campaign to a Performance Max campaign.",
              "Recommendation to improve strength of responsive search ad.",
              "Recommendation to update a campaign to use Display Expansion.",
              "Recommendation to upgrade a Local campaign to a Performance Max campaign.",
              "Recommendation to raise target CPA when it is too low and there are very few or no conversions. It is applied asynchronously and can take minutes depending on the number of ad groups there are in the related campaign.",
              "Recommendation to raise the budget in advance of a seasonal event that is forecasted to increase traffic, and change bidding strategy from maximize conversion value to target ROAS.",
              "Recommendation to add callout assets to campaign or customer level.",
              "Recommendation to add sitelink assets to campaign or customer level.",
              "Recommendation to add call assets to campaign or customer level.",
              "Recommendation to add the age group attribute to offers that are demoted because of a missing age group.",
              "Recommendation to add a color to offers that are demoted because of a missing color.",
              "Recommendation to add a gender to offers that are demoted because of a missing gender.",
              "Recommendation to add a GTIN (Global Trade Item Number) to offers that are demoted because of a missing GTIN.",
              "Recommendation to add more identifiers to offers that are demoted because of missing identifiers.",
              "Recommendation to add the size to offers that are demoted because of a missing size.",
              "Recommendation informing a customer about a campaign that cannot serve because no products are being targeted.",
              "The shopping recommendation informing a customer about campaign with a high percentage of disapproved products.",
              "Recommendation to create a catch-all campaign that targets all offers.",
              "Recommendation to fix Merchant Center account suspension issues.",
              "Recommendation to fix Merchant Center account suspension warning issues.",
              "Recommendation to migrate offers targeted by Regular Shopping Campaigns to existing Performance Max campaigns.",
              "Recommendation to enable dynamic image extensions on the account, allowing Google to find the best images from ad landing pages and complement text ads.",
              "Recommendation to raise Target CPA based on Google predictions modeled from past conversions. It is applied asynchronously and can take minutes depending on the number of ad groups there are in the related campaign.",
              "Recommendation to lower Target ROAS.",
              "Recommendation to opt into Performance Max campaigns.",
              "Recommendation to improve the asset group strength of a Performance Max campaign to an \"Excellent\" rating.",
              "Recommendation to migrate Dynamic Search Ads to Performance Max campaigns.",
              "Recommendation to set a target CPA for campaigns that do not have one specified, in advance of a seasonal event that is forecasted to increase traffic.",
              "Recommendation to set a target CPA for campaigns that do not have one specified.",
              "Recommendation to set a target ROAS for campaigns that do not have one specified.",
              "Recommendation to update a campaign to use the Maximize Conversion Value bidding strategy.",
              "Recommendation to deploy Google Tag on more pages.",
              "Recommendation to turn on Final URL expansion for your Performance Max campaigns.",
              "Recommendation to update a customer list that hasn't been updated in the last 90 days.",
              "Recommendation to create a custom audience.",
              "Recommendation to add lead form assets to campaign or customer level.",
              "Recommendation to improve the strength of ads in Demand Gen campaigns."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "CAMPAIGN_BUDGET",
              "KEYWORD",
              "TEXT_AD",
              "TARGET_CPA_OPT_IN",
              "MAXIMIZE_CONVERSIONS_OPT_IN",
              "ENHANCED_CPC_OPT_IN",
              "SEARCH_PARTNERS_OPT_IN",
              "MAXIMIZE_CLICKS_OPT_IN",
              "OPTIMIZE_AD_ROTATION",
              "KEYWORD_MATCH_TYPE",
              "MOVE_UNUSED_BUDGET",
              "FORECASTING_CAMPAIGN_BUDGET",
              "TARGET_ROAS_OPT_IN",
              "RESPONSIVE_SEARCH_AD",
              "MARGINAL_ROI_CAMPAIGN_BUDGET",
              "USE_BROAD_MATCH_KEYWORD",
              "RESPONSIVE_SEARCH_AD_ASSET",
              "UPGRADE_SMART_SHOPPING_CAMPAIGN_TO_PERFORMANCE_MAX",
              "RESPONSIVE_SEARCH_AD_IMPROVE_AD_STRENGTH",
              "DISPLAY_EXPANSION_OPT_IN",
              "UPGRADE_LOCAL_CAMPAIGN_TO_PERFORMANCE_MAX",
              "RAISE_TARGET_CPA_BID_TOO_LOW",
              "FORECASTING_SET_TARGET_ROAS",
              "CALLOUT_ASSET",
              "SITELINK_ASSET",
              "CALL_ASSET",
              "SHOPPING_ADD_AGE_GROUP",
              "SHOPPING_ADD_COLOR",
              "SHOPPING_ADD_GENDER",
              "SHOPPING_ADD_GTIN",
              "SHOPPING_ADD_MORE_IDENTIFIERS",
              "SHOPPING_ADD_SIZE",
              "SHOPPING_ADD_PRODUCTS_TO_CAMPAIGN",
              "SHOPPING_FIX_DISAPPROVED_PRODUCTS",
              "SHOPPING_TARGET_ALL_OFFERS",
              "SHOPPING_FIX_SUSPENDED_MERCHANT_CENTER_ACCOUNT",
              "SHOPPING_FIX_MERCHANT_CENTER_ACCOUNT_SUSPENSION_WARNING",
              "SHOPPING_MIGRATE_REGULAR_SHOPPING_CAMPAIGN_OFFERS_TO_PERFORMANCE_MAX",
              "DYNAMIC_IMAGE_EXTENSION_OPT_IN",
              "RAISE_TARGET_CPA",
              "LOWER_TARGET_ROAS",
              "PERFORMANCE_MAX_OPT_IN",
              "IMPROVE_PERFORMANCE_MAX_AD_STRENGTH",
              "MIGRATE_DYNAMIC_SEARCH_ADS_CAMPAIGN_TO_PERFORMANCE_MAX",
              "FORECASTING_SET_TARGET_CPA",
              "SET_TARGET_CPA",
              "SET_TARGET_ROAS",
              "MAXIMIZE_CONVERSION_VALUE_OPT_IN",
              "IMPROVE_GOOGLE_TAG_COVERAGE",
              "PERFORMANCE_MAX_FINAL_URL_OPT_IN",
              "REFRESH_CUSTOMER_MATCH_LIST",
              "CUSTOM_AUDIENCE_OPT_IN",
              "LEAD_FORM_ASSET",
              "IMPROVE_DEMAND_GEN_AD_STRENGTH"
            ]
          },
          "description": "Required. List of eligible recommendation_types to generate. If the uploaded criteria isn't sufficient to make a recommendation, or the campaign is already in the recommended state, no recommendation will be returned for that type. Generally, a recommendation is returned if all required fields for that recommendation_type are uploaded, but there are cases where this is still not sufficient. The following recommendation_types are supported for recommendation generation: KEYWORD, MAXIMIZE_CLICKS_OPT_IN, MAXIMIZE_CONVERSIONS_OPT_IN, MAXIMIZE_CONVERSION_VALUE_OPT_IN, SET_TARGET_CPA, SET_TARGET_ROAS, SITELINK_ASSET, TARGET_CPA_OPT_IN, TARGET_ROAS_OPT_IN"
        },
        "advertisingChannelType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Search Network. Includes display bundled, and Search+ campaigns.",
            "Google Display Network only.",
            "Shopping campaigns serve on the shopping property and on google.com search results.",
            "Hotel Ads campaigns.",
            "Video campaigns.",
            "App Campaigns, and App Campaigns for Engagement, that run across multiple channels.",
            "Local ads campaigns.",
            "Smart campaigns.",
            "Performance Max campaigns.",
            "Local services campaigns.",
            "Travel campaigns.",
            "Demand Gen campaigns.",
            "Social campaigns."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SEARCH",
            "DISPLAY",
            "SHOPPING",
            "HOTEL",
            "VIDEO",
            "MULTI_CHANNEL",
            "LOCAL",
            "SMART",
            "PERFORMANCE_MAX",
            "LOCAL_SERVICES",
            "TRAVEL",
            "DEMAND_GEN",
            "SOCIAL"
          ],
          "description": "Required. Advertising channel type of the campaign. The following advertising_channel_types are supported for recommendation generation: PERFORMANCE_MAX and SEARCH"
        },
        "merchantCenterAccountId": {
          "type": "string",
          "format": "int64",
          "description": "Optional. Merchant Center account ID. This field should only be set when advertising_channel_type is PERFORMANCE_MAX. Setting this field causes RecommendationService to generate recommendations for Performance Max for retail instead of standard Performance Max. This field is optional for the following recommendation_types: CAMPAIGN_BUDGET"
        },
        "campaignImageAssetCount": {
          "type": "integer",
          "format": "int32",
          "description": "Optional. Current campaign image asset count. This field is optional for the following recommendation_types: CAMPAIGN_BUDGET"
        },
        "positiveLocationsIds": {
          "description": "Optional. Current campaign positive location ids. One of this field OR negative_location_ids is required for the following recommendation_types: CAMPAIGN_BUDGET if AdvertisingChannelType is SEARCH",
          "type": "array",
          "items": {
            "type": "string",
            "format": "int64"
          }
        },
        "targetContentNetwork": {
          "description": "Optional. If true, the campaign is opted into serving ads on specified placements in the Google Display Network. This field is optional for the following recommendation_types: CAMPAIGN_BUDGET",
          "type": "boolean"
        },
        "assetGroupInfo": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services_GenerateRecommendationsRequest_AssetGroupInfo"
          },
          "description": "Optional. Current AssetGroup Information. This field is required for the following recommendation_types: CAMPAIGN_BUDGET"
        },
        "targetPartnerSearchNetwork": {
          "description": "Optional. If true, the campaign is opted into serving ads on the Google Partner Network. This field is optional for the following recommendation_types: CAMPAIGN_BUDGET",
          "type": "boolean"
        },
        "adGroupInfo": {
          "description": "Optional. Current AdGroup Information. Supports information from a single AdGroup. This field is optional for the following recommendation_types: KEYWORD",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services_GenerateRecommendationsRequest_AdGroupInfo"
          }
        },
        "negativeLocationsIds": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "int64"
          },
          "description": "Optional. Current campaign negative location ids. One of this field OR positive_location_ids is required for the following recommendation_types: CAMPAIGN_BUDGET if AdvertisingChannelType is SEARCH"
        },
        "languageCodes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Optional. Current campaign language codes. This field is required for the following recommendation_types: CAMPAIGN_BUDGET if AdvertisingChannelType is SEARCH"
        },
        "conversionTrackingStatus": {
          "description": "Optional. Current conversion tracking status. This field is necessary for the following recommendation_types: MAXIMIZE_CLICKS_OPT_IN, MAXIMIZE_CONVERSIONS_OPT_IN, MAXIMIZE_CONVERSION_VALUE_OPT_IN, SET_TARGET_CPA, SET_TARGET_ROAS, TARGET_CPA_OPT_IN, TARGET_ROAS_OPT_IN",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Customer does not use any conversion tracking.",
            "The conversion actions are created and managed by this customer.",
            "The conversion actions are created and managed by the manager specified in the request's `login-customer-id`.",
            "The conversion actions are created and managed by a manager different from the customer or manager specified in the request's `login-customer-id`."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NOT_CONVERSION_TRACKED",
            "CONVERSION_TRACKING_MANAGED_BY_SELF",
            "CONVERSION_TRACKING_MANAGED_BY_THIS_MANAGER",
            "CONVERSION_TRACKING_MANAGED_BY_ANOTHER_MANAGER"
          ]
        },
        "campaignSitelinkCount": {
          "description": "Optional. Number of sitelinks on the campaign. This field is necessary for the following recommendation_types: SITELINK_ASSET",
          "type": "integer",
          "format": "int32"
        },
        "seedInfo": {
          "description": "Optional. Seed information for Keywords. This field is necessary for the following recommendation_types: KEYWORD",
          "$ref": "GoogleAdsSearchads360V23Services_GenerateRecommendationsRequest_SeedInfo"
        },
        "isNewCustomer": {
          "type": "boolean",
          "description": "Optional. Whether or not this customer should be treated as a \"new\" customer (that is, a customer who has not yet created a campaign). Setting this to `true` will cause the backend to generate recommendations using a dedicated recommendation model for onboarding new customers, as opposed to the default model for existing customers. This is only recommended for customers with 0 campaigns. This field is optional for the following recommendation_types: CAMPAIGN_BUDGET"
        },
        "budgetInfo": {
          "description": "Optional. Current budget information. This field is optional for the following recommendation_types: CAMPAIGN_BUDGET",
          "$ref": "GoogleAdsSearchads360V23Services_GenerateRecommendationsRequest_BudgetInfo"
        },
        "countryCodes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Optional. Current campaign country codes. This field is required for the following recommendation_types: CAMPAIGN_BUDGET if AdvertisingChannelType is SEARCH"
        },
        "campaignCallAssetCount": {
          "type": "integer",
          "format": "int32",
          "description": "Optional. Current campaign call asset count. This field is optional for the following recommendation_types: CAMPAIGN_BUDGET"
        },
        "biddingInfo": {
          "description": "Optional. Current bidding information of the campaign. This field is necessary for the following recommendation_types: MAXIMIZE_CLICKS_OPT_IN, MAXIMIZE_CONVERSIONS_OPT_IN, MAXIMIZE_CONVERSION_VALUE_OPT_IN, SET_TARGET_CPA, SET_TARGET_ROAS, TARGET_CPA_OPT_IN, TARGET_ROAS_OPT_IN",
          "$ref": "GoogleAdsSearchads360V23Services_GenerateRecommendationsRequest_BiddingInfo"
        }
      }
    },
    "GoogleAdsSearchads360V0Common__Value": {
      "properties": {
        "booleanValue": {
          "description": "A boolean.",
          "type": "boolean"
        },
        "int64Value": {
          "type": "string",
          "format": "int64",
          "description": "An int64."
        },
        "stringValue": {
          "description": "A string.",
          "type": "string"
        },
        "floatValue": {
          "type": "number",
          "format": "float",
          "description": "A float."
        },
        "doubleValue": {
          "description": "A double.",
          "type": "number",
          "format": "double"
        }
      },
      "id": "GoogleAdsSearchads360V0Common__Value",
      "description": "A generic data container.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common_LineupAttributeMetadata_SampleChannel": {
      "properties": {
        "youtubeChannel": {
          "description": "A YouTube channel.",
          "$ref": "GoogleAdsSearchads360V23Common__YouTubeChannelInfo"
        },
        "youtubeChannelMetadata": {
          "description": "Metadata for the sample channel.",
          "$ref": "GoogleAdsSearchads360V23Common__YouTubeChannelAttributeMetadata"
        },
        "displayName": {
          "description": "The name of the sample channel.",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V23Common_LineupAttributeMetadata_SampleChannel",
      "description": "A YouTube channel returned as an example of the content in a lineup.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__WhatsappBusinessMessageInfo": {
      "properties": {
        "countryCode": {
          "description": "Required. Two-letter country code of the phone number. Examples: 'US', 'us'.",
          "type": "string"
        },
        "phoneNumber": {
          "type": "string",
          "description": "Required. Whatsapp phone number of the business. Examples: '1234567890', '(123)456-7890'."
        }
      },
      "id": "GoogleAdsSearchads360V23Common__WhatsappBusinessMessageInfo",
      "description": "Whatsapp information to use for messaging.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateConversionValueRuleResult": {
      "id": "GoogleAdsSearchads360V23Services__MutateConversionValueRuleResult",
      "description": "The result for the conversion value rule mutate.",
      "type": "object",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        },
        "conversionValueRule": {
          "description": "The mutated conversion value rule with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsSearchads360V23Resources__ConversionValueRule"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__CampaignAsset": {
      "id": "GoogleAdsSearchads360V23Resources__CampaignAsset",
      "description": "A link between a Campaign and an Asset.",
      "type": "object",
      "properties": {
        "campaign": {
          "type": "string",
          "description": "Immutable. The campaign to which the asset is linked."
        },
        "asset": {
          "type": "string",
          "description": "Immutable. The asset which is linked to the campaign."
        },
        "primaryStatusDetails": {
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AssetLinkPrimaryStatusDetails"
          },
          "description": "Output only. Provides the details of the primary status and its associated reasons."
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the campaign asset. CampaignAsset resource names have the form: `customers/{customer_id}/campaignAssets/{campaign_id}~{asset_id}~{field_type}`"
        },
        "primaryStatus": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ELIGIBLE",
            "PAUSED",
            "REMOVED",
            "PENDING",
            "LIMITED",
            "NOT_ELIGIBLE"
          ],
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is eligible to serve.",
            "The user-specified asset link status is paused.",
            "The user-specified asset link status is removed.",
            "The asset may serve in the future.",
            "The asset is serving in a partial capacity.",
            "The asset is not eligible to serve."
          ],
          "description": "Output only. Provides the PrimaryStatus of this asset link. Primary status is meant essentially to differentiate between the plain \"status\" field, which has advertiser set values of enabled, paused, or removed. The primary status takes into account other signals (for assets its mainly policy and quality approvals) to come up with a more comprehensive status to indicate its serving state."
        },
        "source": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset or asset link is provided by advertiser.",
            "The asset or asset link is generated by Google."
          ],
          "description": "Output only. Source of the campaign asset link.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADVERTISER",
            "AUTOMATICALLY_CREATED"
          ],
          "readOnly": true
        },
        "status": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Asset link is enabled.",
            "Asset link has been removed.",
            "Asset link is paused."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED",
            "PAUSED"
          ],
          "description": "Status of the campaign asset."
        },
        "fieldType": {
          "description": "Immutable. Role that the asset takes under the linked campaign. Required.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is linked for use as a headline.",
            "The asset is linked for use as a description.",
            "The asset is linked for use as mandatory ad text.",
            "The asset is linked for use as a marketing image.",
            "The asset is linked for use as a media bundle.",
            "The asset is linked for use as a YouTube video.",
            "The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.",
            "The asset is linked for use as a Lead Form extension.",
            "The asset is linked for use as a Promotion extension.",
            "The asset is linked for use as a Callout extension.",
            "The asset is linked for use as a Structured Snippet extension.",
            "The asset is linked for use as a Sitelink.",
            "The asset is linked for use as a Mobile App extension.",
            "The asset is linked for use as a Hotel Callout extension.",
            "The asset is linked for use as a Call extension.",
            "The asset is linked for use as a Price extension.",
            "The asset is linked for use as a long headline.",
            "The asset is linked for use as a business name.",
            "The asset is linked for use as a square marketing image.",
            "The asset is linked for use as a portrait marketing image.",
            "The asset is linked for use as a logo.",
            "The asset is linked for use as a landscape logo.",
            "The asset is linked for use as a non YouTube logo.",
            "The asset is linked for use to select a call-to-action.",
            "The asset is linked for use to select an ad image.",
            "The asset is linked for use as a business logo.",
            "The asset is linked for use as a hotel property in a Performance Max for travel goals campaign.",
            "The asset is linked for use as a Demand Gen carousel card.",
            "The asset is linked for use as a Business Message.",
            "The asset is linked for use as a tall portrait marketing image.",
            "The asset is linked for use as a landing page preview image.",
            "The asset is linked for use as a long description.",
            "The asset is linked for use as a call-to-action."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HEADLINE",
            "DESCRIPTION",
            "MANDATORY_AD_TEXT",
            "MARKETING_IMAGE",
            "MEDIA_BUNDLE",
            "YOUTUBE_VIDEO",
            "BOOK_ON_GOOGLE",
            "LEAD_FORM",
            "PROMOTION",
            "CALLOUT",
            "STRUCTURED_SNIPPET",
            "SITELINK",
            "MOBILE_APP",
            "HOTEL_CALLOUT",
            "CALL",
            "PRICE",
            "LONG_HEADLINE",
            "BUSINESS_NAME",
            "SQUARE_MARKETING_IMAGE",
            "PORTRAIT_MARKETING_IMAGE",
            "LOGO",
            "LANDSCAPE_LOGO",
            "VIDEO",
            "CALL_TO_ACTION_SELECTION",
            "AD_IMAGE",
            "BUSINESS_LOGO",
            "HOTEL_PROPERTY",
            "DEMAND_GEN_CAROUSEL_CARD",
            "BUSINESS_MESSAGE",
            "TALL_PORTRAIT_MARKETING_IMAGE",
            "LANDING_PAGE_PREVIEW",
            "LONG_DESCRIPTION",
            "CALL_TO_ACTION"
          ]
        },
        "primaryStatusReasons": {
          "readOnly": true,
          "description": "Output only. Provides a list of reasons for why an asset is not serving or not serving at full capacity.",
          "type": "array",
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "The asset is paused for its linked rollup level. Contributes to a PrimaryStatus of PAUSED.",
              "The asset is removed for its linked rollup level. Contributes to a PrimaryStatus of REMOVED.",
              "The asset has been marked as disapproved. Contributes to a PrimaryStatus of NOT_ELIGIBLE",
              "The asset has not completed policy review. Contributes to a PrimaryStatus of PENDING.",
              "The asset is approved with policies applied. Contributes to a PrimaryStatus of LIMITED."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "ASSET_LINK_PAUSED",
              "ASSET_LINK_REMOVED",
              "ASSET_DISAPPROVED",
              "ASSET_UNDER_REVIEW",
              "ASSET_APPROVED_LABELED"
            ]
          }
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateExperimentArmsRequest": {
      "properties": {
        "responseContentType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation."
        },
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__ExperimentArmOperation"
          },
          "description": "Required. The list of operations to perform on individual experiment arm."
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateExperimentArmsRequest",
      "description": "Request message for ExperimentArmService.MutateExperimentArms."
    },
    "GoogleAdsSearchads360V23Resources__ExperimentArm": {
      "properties": {
        "control": {
          "description": "Whether this arm is a control arm. A control arm is the arm against which the other arms are compared.",
          "type": "boolean"
        },
        "inDesignCampaigns": {
          "readOnly": true,
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Output only. The in design campaigns in the treatment experiment arm."
        },
        "assetGroups": {
          "description": "List of asset groups in the experiment arm.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Resources_ExperimentArm_AssetGroupInfo"
          }
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the experiment arm. Experiment arm resource names have the form: `customers/{customer_id}/experimentArms/{TrialArm.trial_id}~{TrialArm.trial_arm_id}`"
        },
        "experiment": {
          "type": "string",
          "description": "Immutable. The experiment to which the ExperimentArm belongs."
        },
        "name": {
          "type": "string",
          "description": "Required. The name of the experiment arm. It must have a minimum length of 1 and maximum length of 1024. It must be unique under an experiment."
        },
        "trafficSplit": {
          "type": "string",
          "format": "int64",
          "description": "Traffic split of the trial arm. The value should be between 1 and 100 and must total 100 between the two trial arms."
        },
        "campaigns": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of campaigns in the trial arm. The max length is one."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__ExperimentArm",
      "description": "A Google ads experiment for users to experiment changes on multiple campaigns, compare the performance, and apply the effective changes."
    },
    "GoogleAdsSearchads360V23Services__GoalOperation": {
      "properties": {
        "updateMask": {
          "type": "string",
          "format": "google-fieldmask",
          "description": "FieldMask that determines which resource fields are modified in an update."
        },
        "create": {
          "description": "Create a new goal.",
          "$ref": "GoogleAdsSearchads360V23Resources__Goal"
        },
        "update": {
          "description": "Update an existing goal.",
          "$ref": "GoogleAdsSearchads360V23Resources__Goal"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__GoalOperation",
      "description": "A single mutate operation on the goal."
    },
    "GoogleAdsSearchads360V23Services__UploadUserDataResponse": {
      "properties": {
        "receivedOperationsCount": {
          "type": "integer",
          "format": "int32",
          "description": "Number of upload data operations received by API."
        },
        "uploadDateTime": {
          "description": "The date time at which the request was received by API, formatted as \"yyyy-mm-dd hh:mm:ss+|-hh:mm\", for example, \"2019-01-01 12:32:45-08:00\".",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__UploadUserDataResponse",
      "description": "Response message for UserDataService.UploadUserData Uploads made through this service will not be visible under the 'Segment members' section for the Customer Match List in the Google Ads UI.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__SearchThemeInfo": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__SearchThemeInfo",
      "description": "A Search Theme criterion only on Performance Max campaign. Represents a keyword-like advertiser input.",
      "properties": {
        "text": {
          "type": "string",
          "description": "Each Search Theme has a value of a simple string, like keywords. There are limits on overall length, allowed characters, and number of words."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__AddressInfo": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__AddressInfo",
      "description": "Address for proximity criterion.",
      "properties": {
        "provinceName": {
          "type": "string",
          "description": "Province or state name."
        },
        "streetAddress2": {
          "type": "string",
          "description": "Street address line 2. This field is write-only. It is only used for calculating the longitude and latitude of an address when geo_point is empty."
        },
        "cityName": {
          "description": "Name of the city.",
          "type": "string"
        },
        "provinceCode": {
          "description": "Province or state code.",
          "type": "string"
        },
        "countryCode": {
          "type": "string",
          "description": "Country code."
        },
        "streetAddress": {
          "description": "Street address line 1.",
          "type": "string"
        },
        "postalCode": {
          "description": "Postal code.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__HotelPropertyAsset": {
      "id": "GoogleAdsSearchads360V23Common__HotelPropertyAsset",
      "description": "A hotel property asset.",
      "type": "object",
      "properties": {
        "hotelAddress": {
          "type": "string",
          "description": "Address of the hotel. Read-only."
        },
        "hotelName": {
          "description": "Name of the hotel. Read-only.",
          "type": "string"
        },
        "placeId": {
          "description": "Place IDs uniquely identify a place in the Google Places database and on Google Maps. See https://developers.google.com/places/web-service/place-id to learn more.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__AudienceSegment": {
      "id": "GoogleAdsSearchads360V23Common__AudienceSegment",
      "description": "Positive audience segment.",
      "type": "object",
      "properties": {
        "userInterest": {
          "description": "Affinity or In-market segment.",
          "$ref": "GoogleAdsSearchads360V23Common__UserInterestSegment"
        },
        "customAudience": {
          "description": "Custom audience segment.",
          "$ref": "GoogleAdsSearchads360V23Common__CustomAudienceSegment"
        },
        "lifeEvent": {
          "description": "Live-event audience segment.",
          "$ref": "GoogleAdsSearchads360V23Common__LifeEventSegment"
        },
        "detailedDemographic": {
          "description": "Detailed demographic segment.",
          "$ref": "GoogleAdsSearchads360V23Common__DetailedDemographicSegment"
        },
        "userList": {
          "description": "User list segment.",
          "$ref": "GoogleAdsSearchads360V23Common__UserListSegment"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__HotelCalloutAsset": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__HotelCalloutAsset",
      "description": "An asset representing a hotel callout.",
      "properties": {
        "languageCode": {
          "type": "string",
          "description": "Required. The language of the hotel callout. Represented as BCP 47 language tag."
        },
        "text": {
          "type": "string",
          "description": "Required. The text of the hotel callout asset. The length of this string should be between 1 and 25, inclusive."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__YouTubeVideoAttributeMetadata": {
      "properties": {
        "thumbnailUrl": {
          "description": "The URL of the video thumbnail, prefixed by \"https://img.youtube.com/\".",
          "type": "string"
        },
        "videoUrl": {
          "description": "The URL of the video, prefixed by \"https://www.youtube.com/\".",
          "type": "string"
        },
        "videoProperties": {
          "description": "The properties of this video (such as shorts, live stream).",
          "type": "array",
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "The value is unknown in this version.",
              "Video is a live stream.",
              "Video is Shorts eligible."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "LIVE_STREAM",
              "SHORTS"
            ]
          }
        },
        "viewsCount": {
          "description": "The total number of views.",
          "type": "string",
          "format": "int64"
        },
        "publishDate": {
          "description": "The date that the video was created. Formatted as \"yyyy-mm-dd\".",
          "type": "string"
        },
        "likesCount": {
          "description": "The total number of likes.",
          "type": "string",
          "format": "int64"
        },
        "commentsCount": {
          "type": "string",
          "format": "int64",
          "description": "The total number of comments."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__YouTubeVideoAttributeMetadata",
      "description": "Metadata for a YouTube video attribute."
    },
    "GoogleAdsSearchads360V23Resources__DetailedDemographic": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__DetailedDemographic",
      "description": "A detailed demographic: a particular interest-based vertical to be targeted to reach users based on long-term life facts.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the detailed demographic. Detailed demographic resource names have the form: `customers/{customer_id}/detailedDemographics/{detailed_demographic_id}`",
          "readOnly": true
        },
        "launchedToAll": {
          "type": "boolean",
          "description": "Output only. True if the detailed demographic is launched to all channels and locales.",
          "readOnly": true
        },
        "name": {
          "description": "Output only. The name of the detailed demographic. For example,\"Highest Level of Educational Attainment\"",
          "type": "string",
          "readOnly": true
        },
        "parent": {
          "description": "Output only. The parent of the detailed_demographic.",
          "type": "string",
          "readOnly": true
        },
        "availabilities": {
          "description": "Output only. Availability information of the detailed demographic.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__CriterionCategoryAvailability"
          },
          "readOnly": true
        },
        "id": {
          "description": "Output only. The ID of the detailed demographic.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        }
      }
    },
    "GoogleAdsSearchads360V23Common__HouseholdIncomeDimension": {
      "properties": {
        "incomeRanges": {
          "type": "array",
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "0%-50%.",
              "50% to 60%.",
              "60% to 70%.",
              "70% to 80%.",
              "80% to 90%.",
              "Greater than 90%.",
              "Undetermined income range."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "INCOME_RANGE_0_50",
              "INCOME_RANGE_50_60",
              "INCOME_RANGE_60_70",
              "INCOME_RANGE_70_80",
              "INCOME_RANGE_80_90",
              "INCOME_RANGE_90_UP",
              "INCOME_RANGE_UNDETERMINED"
            ]
          },
          "description": "Included household income demographic segments."
        },
        "includeUndetermined": {
          "description": "Include users whose household income is not determined.",
          "type": "boolean"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__HouseholdIncomeDimension",
      "description": "Dimension specifying users by their household income."
    },
    "GoogleAdsSearchads360V23Resources__AdvertisingPartnerIdentifier": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__AdvertisingPartnerIdentifier",
      "description": "The identifier for the Advertising Partner Google Ads account.",
      "properties": {
        "customer": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The resource name of the advertising partner Google Ads account. This field is required and should not be empty when creating a new Advertising Partner link. It is unable to be modified after the creation of the link."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__PromotionBarcodeInfo": {
      "id": "GoogleAdsSearchads360V23Common__PromotionBarcodeInfo",
      "description": "Barcode info to generate promotion barcode.",
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Aztec 2D barcode format. Max 350 characters and no links",
            "CODABAR 1D format. Max 12 characters and no links. Supported characters include 0123456789-$:/.+ and optional start and end guards from ABCD.",
            "Code 39 1D format. Max 8 characters and no links. Supported characters include 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. *$/+%.",
            "Code 128 1D format. Max 18 ASCII characters only and no links",
            "Data Matrix 2D barcode format. Max 525 ISO-8859-1 characters only and no links",
            "EAN-8 1D format. The barcode value should be 7 digits (the check digit will be computed automatically) or 8 digits (if you are providing your own check digit).",
            "EAN-13 1D format. The barcode value should be 12 digits (the check digit will be computed automatically) or 13 digits (if you are providing your own check digit).",
            "ITF (Interleaved Two of Five) 1D format. Must be 14 digits long",
            "PDF417 format. Max 140 characters and no links",
            "UPC-A 1D format. The barcode value should be 11 digits (the check digit will be computed automatically) or 12 digits (if you are providing your own check digit)."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AZTEC",
            "CODABAR",
            "CODE39",
            "CODE128",
            "DATA_MATRIX",
            "EAN8",
            "EAN13",
            "ITF",
            "PDF417",
            "UPC_A"
          ],
          "description": "Barcode type used to generate barcode with the correct format."
        },
        "barcodeContent": {
          "type": "string",
          "description": "Promotion message to be encoded in the barcode."
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__Experiment": {
      "properties": {
        "promoteStatus": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Action has not started.",
            "Action is in progress.",
            "Action has completed successfully.",
            "Action has failed.",
            "Action has completed successfully with warnings."
          ],
          "description": "Output only. The status of the experiment promotion process.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NOT_STARTED",
            "IN_PROGRESS",
            "COMPLETED",
            "FAILED",
            "COMPLETED_WITH_WARNING"
          ],
          "readOnly": true
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the experiment. Experiment resource names have the form: `customers/{customer_id}/experiments/{experiment_id}`"
        },
        "longRunningOperation": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The resource name of the long-running operation that can be used to poll for completion of experiment schedule or promote. The most recent long running operation is returned."
        },
        "syncEnabled": {
          "type": "boolean",
          "description": "Immutable. Set to true if changes to base campaigns should be synced to the trial campaigns. Any changes made directly to trial campaigns will be preserved. This field can only be set when the experiment is being created."
        },
        "type": {
          "description": "Required. The product/feature that uses this experiment.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "This is a DISPLAY_AND_VIDEO_360 experiment.",
            "This is an ad variation experiment.",
            "A custom experiment consisting of Video campaigns.",
            "A custom experiment consisting of display campaigns.",
            "A custom experiment consisting of search campaigns.",
            "An experiment that compares bidding strategies for display campaigns.",
            "An experiment that compares bidding strategies for search campaigns.\"",
            "An experiment that compares bidding strategies for shopping campaigns.",
            "DEPRECATED. A smart matching experiment with search campaigns.",
            "A custom experiment consisting of hotel campaigns."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DISPLAY_AND_VIDEO_360",
            "AD_VARIATION",
            "YOUTUBE_CUSTOM",
            "DISPLAY_CUSTOM",
            "SEARCH_CUSTOM",
            "DISPLAY_AUTOMATED_BIDDING_STRATEGY",
            "SEARCH_AUTOMATED_BIDDING_STRATEGY",
            "SHOPPING_AUTOMATED_BIDDING_STRATEGY",
            "SMART_MATCHING",
            "HOTEL_CUSTOM"
          ]
        },
        "experimentId": {
          "readOnly": true,
          "description": "Output only. The ID of the experiment. Read only.",
          "type": "string",
          "format": "int64"
        },
        "description": {
          "description": "The description of the experiment. It must have a minimum length of 1 and maximum length of 2048.",
          "type": "string"
        },
        "suffix": {
          "type": "string",
          "description": "For system managed experiments, the advertiser must provide a suffix during construction, in the setup stage before moving to initiated. The suffix will be appended to the in-design and experiment campaign names so that the name is base campaign name + suffix."
        },
        "endDate": {
          "type": "string",
          "description": "Date when the experiment ends. By default, the experiment ends on the campaign's end date. If this field is set, then the experiment ends at the end of the specified date in the customer's time zone. Format: YYYY-MM-DD Example: 2019-04-18"
        },
        "name": {
          "type": "string",
          "description": "Required. The name of the experiment. It must have a minimum length of 1 and maximum length of 1024. It must be unique under a customer."
        },
        "status": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "The experiment is enabled.",
            "The experiment has been removed.",
            "The experiment has been halted. This status can be set from ENABLED status through API.",
            "The experiment will be promoted out of experimental status.",
            "Initial status of the experiment.",
            "The experiment's campaigns are pending materialization. This status can be set from SETUP status through API.",
            "The experiment has been graduated."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED",
            "HALTED",
            "PROMOTED",
            "SETUP",
            "INITIATED",
            "GRADUATED"
          ],
          "description": "The Advertiser-chosen status of this experiment."
        },
        "goals": {
          "description": "The goals of this experiment.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__MetricGoal"
          }
        },
        "startDate": {
          "description": "Date when the experiment starts. By default, the experiment starts now or on the campaign's start date, whichever is later. If this field is set, then the experiment starts at the beginning of the specified date in the customer's time zone. Format: YYYY-MM-DD Example: 2019-03-14",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__Experiment",
      "description": "A Google ads experiment for users to experiment changes on multiple campaigns, compare the performance, and apply the effective changes."
    },
    "GoogleAdsSearchads360V23Services__GenerateInsightsFinderReportResponse": {
      "properties": {
        "savedReportUrl": {
          "description": "An HTTPS URL providing a deep link into the Insights Finder UI with the report inputs filled in according to the request.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__GenerateInsightsFinderReportResponse",
      "description": "The response message for AudienceInsightsService.GenerateInsightsFinderReport, containing the shareable URL for the report."
    },
    "GoogleAdsSearchads360V23Resources__AdScheduleView": {
      "id": "GoogleAdsSearchads360V23Resources__AdScheduleView",
      "description": "An ad schedule view summarizes the performance of campaigns by AdSchedule criteria.",
      "type": "object",
      "properties": {
        "resourceName": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The resource name of the ad schedule view. AdSchedule view resource names have the form: `customers/{customer_id}/adScheduleViews/{campaign_id}~{criterion_id}`"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources_Recommendation_OptimizeAdRotationRecommendation": {
      "id": "GoogleAdsSearchads360V23Resources_Recommendation_OptimizeAdRotationRecommendation",
      "description": "The Optimize Ad Rotation recommendation.",
      "type": "object",
      "properties": {}
    },
    "GoogleAdsSearchads360V23Services__MutateCustomerAssetSetsResponse": {
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateCustomerAssetSetResult"
          },
          "description": "All results for the mutate."
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (e.g. auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__MutateCustomerAssetSetsResponse",
      "description": "Response message for a customer asset set mutate.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateCampaignConversionGoalsResponse": {
      "properties": {
        "results": {
          "description": "All results for the mutate.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateCampaignConversionGoalResult"
          }
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateCampaignConversionGoalsResponse",
      "description": "Response message for a campaign conversion goal mutate."
    },
    "GoogleAdsSearchads360V23Services__MutateAssetGroupSignalsResponse": {
      "properties": {
        "results": {
          "description": "All results for the mutate.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateAssetGroupSignalResult"
          }
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__MutateAssetGroupSignalsResponse",
      "description": "Response message for an asset group signal mutate.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateCustomerSkAdNetworkConversionValueSchemaResult": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateCustomerSkAdNetworkConversionValueSchemaResult",
      "description": "The result for the CustomerSkAdNetworkConversionValueSchema mutate.",
      "properties": {
        "resourceName": {
          "description": "Resource name of the customer that was modified.",
          "type": "string"
        },
        "appId": {
          "type": "string",
          "description": "App ID of the SkanConversionValue modified."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__CampaignThirdPartyReachIntegrationPartner": {
      "properties": {
        "reachIntegrationPartner": {
          "description": "Allowed third party integration partners for reach verification.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Nielsen.",
            "Comscore.",
            "Kantar.",
            "Video Research.",
            "Gemius.",
            "MediaScope.",
            "AudienceProject",
            "VideoAmp",
            "iSpot.tv"
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NIELSEN",
            "COMSCORE",
            "KANTAR_MILLWARD_BROWN",
            "VIDEO_RESEARCH",
            "GEMIUS",
            "MEDIA_SCOPE",
            "AUDIENCE_PROJECT",
            "VIDEO_AMP",
            "ISPOT_TV"
          ]
        },
        "shareCost": {
          "description": "If true, then cost data will be shared with this vendor.",
          "type": "boolean"
        },
        "reachIntegrationPartnerData": {
          "description": "Third party partner data for YouTube Reach verification. This is optional metadata for partners to join or attach data to Ads campaigns.",
          "$ref": "GoogleAdsSearchads360V23Common__ThirdPartyIntegrationPartnerData"
        }
      },
      "id": "GoogleAdsSearchads360V23Common__CampaignThirdPartyReachIntegrationPartner",
      "description": "Container for third party reach integration data for Campaign.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources__KeywordPlanAdGroup": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__KeywordPlanAdGroup",
      "description": "A Keyword Planner ad group. Max number of keyword plan ad groups per plan: 200.",
      "properties": {
        "id": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. The ID of the keyword plan ad group."
        },
        "cpcBidMicros": {
          "description": "A default ad group max cpc bid in micros in account currency for all biddable keywords under the keyword plan ad group. If not set, will inherit from parent campaign.",
          "type": "string",
          "format": "int64"
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the Keyword Planner ad group. KeywordPlanAdGroup resource names have the form: `customers/{customer_id}/keywordPlanAdGroups/{kp_ad_group_id}`"
        },
        "keywordPlanCampaign": {
          "type": "string",
          "description": "The keyword plan campaign to which this ad group belongs."
        },
        "name": {
          "description": "The name of the keyword plan ad group. This field is required and should not be empty when creating keyword plan ad group.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__CreateProductLinkResponse": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__CreateProductLinkResponse",
      "description": "Response message for ProductLinkService.CreateProductLink.",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations. Resource name of the product link.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__ConversionAction": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__ConversionAction",
      "description": "A conversion action.",
      "properties": {
        "valueSettings": {
          "description": "Settings related to the value for conversion events associated with this conversion action.",
          "$ref": "GoogleAdsSearchads360V23Resources_ConversionAction_ValueSettings"
        },
        "status": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Conversions will be recorded.",
            "Conversions will not be recorded.",
            "Conversions will not be recorded and the conversion action will not appear in the UI."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED",
            "HIDDEN"
          ],
          "description": "The status of this conversion action for conversion event accrual."
        },
        "category": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Default category.",
            "User visiting a page.",
            "Purchase, sales, or \"order placed\" event.",
            "Signup user action.",
            "Software download action (as for an app).",
            "The addition of items to a shopping cart or bag on an advertiser site.",
            "When someone enters the checkout flow on an advertiser site.",
            "The start of a paid subscription for a product or service.",
            "A call to indicate interest in an advertiser's offering.",
            "A lead conversion imported from an external source into Google Ads.",
            "A submission of a form on an advertiser site indicating business interest.",
            "A booking of an appointment with an advertiser's business.",
            "A quote or price estimate request.",
            "A search for an advertiser's business location with intention to visit.",
            "A click to an advertiser's partner's site.",
            "A call, SMS, email, chat or other type of contact to an advertiser.",
            "A website engagement event such as long site time or a Google Analytics (GA) Smart Goal. Intended to be used for GA, Firebase, GA Gold goal imports.",
            "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DEFAULT",
            "PAGE_VIEW",
            "PURCHASE",
            "SIGNUP",
            "DOWNLOAD",
            "ADD_TO_CART",
            "BEGIN_CHECKOUT",
            "SUBSCRIBE_PAID",
            "PHONE_CALL_LEAD",
            "IMPORTED_LEAD",
            "SUBMIT_LEAD_FORM",
            "BOOK_APPOINTMENT",
            "REQUEST_QUOTE",
            "GET_DIRECTIONS",
            "OUTBOUND_CLICK",
            "CONTACT",
            "ENGAGEMENT",
            "STORE_VISIT",
            "STORE_SALE",
            "QUALIFIED_LEAD",
            "CONVERTED_LEAD"
          ],
          "description": "The category of conversions reported for this conversion action."
        },
        "attributionModelSettings": {
          "description": "Settings related to this conversion action's attribution model.",
          "$ref": "GoogleAdsSearchads360V23Resources_ConversionAction_AttributionModelSettings"
        },
        "appId": {
          "type": "string",
          "description": "App ID for an app conversion action."
        },
        "viewThroughLookbackWindowDays": {
          "type": "string",
          "format": "int64",
          "description": "The maximum number of days which may elapse between an impression and a conversion without an interaction."
        },
        "primaryForGoal": {
          "description": "If a conversion action's primary_for_goal bit is false, the conversion action is non-biddable for all campaigns regardless of their customer conversion goal or campaign conversion goal. However, custom conversion goals do not respect primary_for_goal, so if a campaign has a custom conversion goal configured with a primary_for_goal = false conversion action, that conversion action is still biddable. By default, primary_for_goal will be true if not set. In V9, primary_for_goal can only be set to false after creation through an 'update' operation because it's not declared as optional.",
          "type": "boolean"
        },
        "thirdPartyAppAnalyticsSettings": {
          "description": "Output only. Third Party App Analytics settings for third party conversion types.",
          "$ref": "GoogleAdsSearchads360V23Resources_ConversionAction_ThirdPartyAppAnalyticsSettings",
          "readOnly": true
        },
        "id": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. The ID of the conversion action."
        },
        "type": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Conversions that occur when a user clicks on an ad's call extension.",
            "Conversions that occur when a user on a mobile device clicks a phone number.",
            "Conversions that occur when a user downloads a mobile app from the Google Play Store.",
            "Conversions that occur when a user makes a purchase in an app through Android billing.",
            "Call conversions that are tracked by the advertiser and uploaded.",
            "Conversions that are tracked by the advertiser and uploaded with attributed clicks.",
            "Conversions that occur on a webpage.",
            "Conversions that occur when a user calls a dynamically-generated phone number from an advertiser's website.",
            "Store Sales conversion based on first-party or third-party merchant data uploads. Only customers on the allowlist can use store sales direct upload types.",
            "Store Sales conversion based on first-party or third-party merchant data uploads and/or from in-store purchases using cards from payment networks. Only customers on the allowlist can use store sales types. Read only.",
            "Android app first open conversions tracked through Firebase.",
            "Android app in app purchase conversions tracked through Firebase.",
            "Android app custom conversions tracked through Firebase.",
            "iOS app first open conversions tracked through Firebase.",
            "iOS app in app purchase conversions tracked through Firebase.",
            "iOS app custom conversions tracked through Firebase.",
            "Android app first open conversions tracked through Third Party App Analytics.",
            "Android app in app purchase conversions tracked through Third Party App Analytics.",
            "Android app custom conversions tracked through Third Party App Analytics.",
            "iOS app first open conversions tracked through Third Party App Analytics.",
            "iOS app in app purchase conversions tracked through Third Party App Analytics.",
            "iOS app custom conversions tracked through Third Party App Analytics.",
            "Conversions that occur when a user pre-registers a mobile app from the Google Play Store. Read only.",
            "Conversions that track all Google Play downloads which aren't tracked by an app-specific type. Read only.",
            "Floodlight activity that counts the number of times that users have visited a particular webpage after seeing or clicking on one of an advertiser's ads. Read only.",
            "Floodlight activity that tracks the number of sales made or the number of items purchased. Can also capture the total value of each sale. Read only.",
            "Conversions that track local actions from Google's products and services after interacting with an ad. Read only.",
            "Conversions reported when a user submits a lead form. Read only.",
            "Deprecated: The Salesforce integration will be going away and replaced with an improved way to import your conversions from Salesforce. - see https://support.google.com/google-ads/answer/14728349",
            "Conversions imported from Search Ads 360 Floodlight data. Read only.",
            "Call conversions that occur on Smart campaign Ads without call tracking setup, using Smart campaign custom criteria. Read only.",
            "The user clicks on a call element within Google Maps. Smart campaign only. Read only.",
            "The user requests directions to a business location within Google Maps. Smart campaign only. Read only.",
            "Call conversions that occur on Smart campaign Ads with call tracking setup, using Smart campaign custom criteria. Read only.",
            "Conversions that occur when a user visits an advertiser's retail store. Read only.",
            "Conversions created from website events (such as form submissions or page loads), that don't use individually coded event snippets. Read only.",
            "Conversions that come from linked Universal Analytics goals.",
            "Conversions that come from linked Universal Analytics transactions.",
            "Conversions that come from linked Google Analytics 4 custom event conversions.",
            "Conversions that come from linked Google Analytics 4 purchase conversions."
          ],
          "description": "Immutable. The type of this conversion action.",
          "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,
            false,
            false,
            true,
            false,
            false,
            false,
            false,
            false,
            false,
            false,
            false,
            false,
            false,
            false
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AD_CALL",
            "CLICK_TO_CALL",
            "GOOGLE_PLAY_DOWNLOAD",
            "GOOGLE_PLAY_IN_APP_PURCHASE",
            "UPLOAD_CALLS",
            "UPLOAD_CLICKS",
            "WEBPAGE",
            "WEBSITE_CALL",
            "STORE_SALES_DIRECT_UPLOAD",
            "STORE_SALES",
            "FIREBASE_ANDROID_FIRST_OPEN",
            "FIREBASE_ANDROID_IN_APP_PURCHASE",
            "FIREBASE_ANDROID_CUSTOM",
            "FIREBASE_IOS_FIRST_OPEN",
            "FIREBASE_IOS_IN_APP_PURCHASE",
            "FIREBASE_IOS_CUSTOM",
            "THIRD_PARTY_APP_ANALYTICS_ANDROID_FIRST_OPEN",
            "THIRD_PARTY_APP_ANALYTICS_ANDROID_IN_APP_PURCHASE",
            "THIRD_PARTY_APP_ANALYTICS_ANDROID_CUSTOM",
            "THIRD_PARTY_APP_ANALYTICS_IOS_FIRST_OPEN",
            "THIRD_PARTY_APP_ANALYTICS_IOS_IN_APP_PURCHASE",
            "THIRD_PARTY_APP_ANALYTICS_IOS_CUSTOM",
            "ANDROID_APP_PRE_REGISTRATION",
            "ANDROID_INSTALLS_ALL_OTHER_APPS",
            "FLOODLIGHT_ACTION",
            "FLOODLIGHT_TRANSACTION",
            "GOOGLE_HOSTED",
            "LEAD_FORM_SUBMIT",
            "SALESFORCE",
            "SEARCH_ADS_360",
            "SMART_CAMPAIGN_AD_CLICKS_TO_CALL",
            "SMART_CAMPAIGN_MAP_CLICKS_TO_CALL",
            "SMART_CAMPAIGN_MAP_DIRECTIONS",
            "SMART_CAMPAIGN_TRACKED_CALLS",
            "STORE_VISITS",
            "WEBPAGE_CODELESS",
            "UNIVERSAL_ANALYTICS_GOAL",
            "UNIVERSAL_ANALYTICS_TRANSACTION",
            "GOOGLE_ANALYTICS_4_CUSTOM",
            "GOOGLE_ANALYTICS_4_PURCHASE"
          ]
        },
        "floodlightSettings": {
          "readOnly": true,
          "description": "Output only. Floodlight settings for Floodlight conversion types.",
          "$ref": "GoogleAdsSearchads360V23Resources_ConversionAction_FloodlightSettings"
        },
        "firebaseSettings": {
          "readOnly": true,
          "description": "Output only. Firebase settings for Firebase conversion types.",
          "$ref": "GoogleAdsSearchads360V23Resources_ConversionAction_FirebaseSettings"
        },
        "clickThroughLookbackWindowDays": {
          "description": "The maximum number of days that may elapse between an interaction (for example, a click) and a conversion event.",
          "type": "string",
          "format": "int64"
        },
        "creationTime": {
          "readOnly": true,
          "description": "Output only. Timestamp of the Floodlight activity's creation, formatted in ISO 8601.",
          "type": "string"
        },
        "countingType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Count only one conversion per click.",
            "Count all conversions per click."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ONE_PER_CLICK",
            "MANY_PER_CLICK"
          ],
          "description": "How to count conversion events for the conversion action."
        },
        "includeInConversionsMetric": {
          "readOnly": true,
          "type": "boolean",
          "description": "Output only. Whether this conversion action should be included in the \"conversions\" metric."
        },
        "origin": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "WEBSITE",
            "GOOGLE_HOSTED",
            "APP",
            "CALL_FROM_ADS",
            "STORE",
            "YOUTUBE_HOSTED",
            "FLOODLIGHT"
          ],
          "type": "string",
          "enumDescriptions": [
            "The conversion origin has not been specified.",
            "The conversion origin is not known in this version.",
            "Conversion that occurs when a user visits a website or takes an action there after viewing an ad.",
            "Conversions reported by an offline pipeline which collects local actions from Google-hosted pages (for example, Google Maps, Google Place Page, etc) and attributes them to relevant ad events.",
            "Conversion that occurs when a user performs an action through any app platforms.",
            "Conversion that occurs when a user makes a call from ads.",
            "Conversion that occurs when a user visits or makes a purchase at a physical store.",
            "Conversion that occurs on YouTube.",
            "Conversions that occur through Floodlight tag."
          ],
          "description": "Output only. The conversion origin of this conversion action."
        },
        "includeInClientAccountConversionsMetric": {
          "description": "Whether this conversion action should be included in the \"client_account_conversions\" metric.",
          "type": "boolean"
        },
        "tagSnippets": {
          "description": "Output only. The snippets used for tracking conversions.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__TagSnippet"
          },
          "readOnly": true
        },
        "mobileAppVendor": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Mobile app vendor for Apple app store.",
            "Mobile app vendor for Google app store."
          ],
          "description": "Output only. Mobile app vendor for an app conversion action.",
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "APPLE_APP_STORE",
            "GOOGLE_APP_STORE"
          ]
        },
        "googleAnalytics4Settings": {
          "description": "Output only. Google Analytics 4 settings for Google Analytics 4 conversion types.",
          "$ref": "GoogleAdsSearchads360V23Resources_ConversionAction_GoogleAnalytics4Settings",
          "readOnly": true
        },
        "name": {
          "type": "string",
          "description": "The name of the conversion action. This field is required and should not be empty when creating new conversion actions."
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the conversion action. Conversion action resource names have the form: `customers/{customer_id}/conversionActions/{conversion_action_id}`"
        },
        "ownerCustomer": {
          "description": "Output only. The resource name of the conversion action owner customer, or null if this is a system-defined conversion action.",
          "type": "string",
          "readOnly": true
        },
        "phoneCallDurationSeconds": {
          "description": "The phone call duration in seconds after which a conversion should be reported for this conversion action. The value must be between 0 and 10000, inclusive.",
          "type": "string",
          "format": "int64"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateCampaignBidModifiersRequest": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateCampaignBidModifiersRequest",
      "description": "Request message for CampaignBidModifierService.MutateCampaignBidModifiers.",
      "properties": {
        "responseContentType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation."
        },
        "operations": {
          "description": "Required. The list of operations to perform on individual campaign bid modifiers.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__CampaignBidModifierOperation"
          }
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__ParentalStatusDimension": {
      "id": "GoogleAdsSearchads360V23Common__ParentalStatusDimension",
      "description": "Dimension specifying users by their parental status.",
      "type": "object",
      "properties": {
        "parentalStatuses": {
          "type": "array",
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "Parent.",
              "Not a parent.",
              "Undetermined parental status."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "PARENT",
              "NOT_A_PARENT",
              "UNDETERMINED"
            ]
          },
          "description": "Included parental status demographic segments."
        },
        "includeUndetermined": {
          "type": "boolean",
          "description": "Include users whose parental status is undetermined."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateSharedCriteriaRequest": {
      "properties": {
        "responseContentType": {
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "type": "string",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ]
        },
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        },
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__SharedCriterionOperation"
          },
          "description": "Required. The list of operations to perform on individual shared criteria."
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__MutateSharedCriteriaRequest",
      "description": "Request message for SharedCriterionService.MutateSharedCriteria.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources__AssetFieldTypeView": {
      "properties": {
        "resourceName": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The resource name of the asset field type view. Asset field type view resource names have the form: `customers/{customer_id}/assetFieldTypeViews/{field_type}`"
        },
        "fieldType": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HEADLINE",
            "DESCRIPTION",
            "MANDATORY_AD_TEXT",
            "MARKETING_IMAGE",
            "MEDIA_BUNDLE",
            "YOUTUBE_VIDEO",
            "BOOK_ON_GOOGLE",
            "LEAD_FORM",
            "PROMOTION",
            "CALLOUT",
            "STRUCTURED_SNIPPET",
            "SITELINK",
            "MOBILE_APP",
            "HOTEL_CALLOUT",
            "CALL",
            "PRICE",
            "LONG_HEADLINE",
            "BUSINESS_NAME",
            "SQUARE_MARKETING_IMAGE",
            "PORTRAIT_MARKETING_IMAGE",
            "LOGO",
            "LANDSCAPE_LOGO",
            "VIDEO",
            "CALL_TO_ACTION_SELECTION",
            "AD_IMAGE",
            "BUSINESS_LOGO",
            "HOTEL_PROPERTY",
            "DEMAND_GEN_CAROUSEL_CARD",
            "BUSINESS_MESSAGE",
            "TALL_PORTRAIT_MARKETING_IMAGE",
            "LANDING_PAGE_PREVIEW",
            "LONG_DESCRIPTION",
            "CALL_TO_ACTION"
          ],
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is linked for use as a headline.",
            "The asset is linked for use as a description.",
            "The asset is linked for use as mandatory ad text.",
            "The asset is linked for use as a marketing image.",
            "The asset is linked for use as a media bundle.",
            "The asset is linked for use as a YouTube video.",
            "The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.",
            "The asset is linked for use as a Lead Form extension.",
            "The asset is linked for use as a Promotion extension.",
            "The asset is linked for use as a Callout extension.",
            "The asset is linked for use as a Structured Snippet extension.",
            "The asset is linked for use as a Sitelink.",
            "The asset is linked for use as a Mobile App extension.",
            "The asset is linked for use as a Hotel Callout extension.",
            "The asset is linked for use as a Call extension.",
            "The asset is linked for use as a Price extension.",
            "The asset is linked for use as a long headline.",
            "The asset is linked for use as a business name.",
            "The asset is linked for use as a square marketing image.",
            "The asset is linked for use as a portrait marketing image.",
            "The asset is linked for use as a logo.",
            "The asset is linked for use as a landscape logo.",
            "The asset is linked for use as a non YouTube logo.",
            "The asset is linked for use to select a call-to-action.",
            "The asset is linked for use to select an ad image.",
            "The asset is linked for use as a business logo.",
            "The asset is linked for use as a hotel property in a Performance Max for travel goals campaign.",
            "The asset is linked for use as a Demand Gen carousel card.",
            "The asset is linked for use as a Business Message.",
            "The asset is linked for use as a tall portrait marketing image.",
            "The asset is linked for use as a landing page preview image.",
            "The asset is linked for use as a long description.",
            "The asset is linked for use as a call-to-action."
          ],
          "description": "Output only. The asset field type of the asset field type view."
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__AssetFieldTypeView",
      "description": "An asset field type view. This view reports non-overcounted metrics for each asset field type when the asset is used as extension.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources_Recommendation_KeywordMatchTypeRecommendation": {
      "properties": {
        "keyword": {
          "description": "Output only. The existing keyword where the match type should be more broad.",
          "$ref": "GoogleAdsSearchads360V23Common__KeywordInfo",
          "readOnly": true
        },
        "recommendedMatchType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "EXACT",
            "PHRASE",
            "BROAD"
          ],
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Exact match.",
            "Phrase match.",
            "Broad match."
          ],
          "description": "Output only. The recommended new match type."
        }
      },
      "id": "GoogleAdsSearchads360V23Resources_Recommendation_KeywordMatchTypeRecommendation",
      "description": "The keyword match type recommendation.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateKeywordPlanCampaignsRequest": {
      "properties": {
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__KeywordPlanCampaignOperation"
          },
          "description": "Required. The list of operations to perform on individual Keyword Plan campaigns."
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateKeywordPlanCampaignsRequest",
      "description": "Request message for KeywordPlanCampaignService.MutateKeywordPlanCampaigns."
    },
    "GoogleAdsSearchads360V23Resources_Recommendation_RecommendationMetrics": {
      "id": "GoogleAdsSearchads360V23Resources_Recommendation_RecommendationMetrics",
      "description": "Weekly account performance metrics. For some recommendation types, these are averaged over the past 90-day period and hence can be fractional.",
      "type": "object",
      "properties": {
        "conversionsValue": {
          "readOnly": true,
          "type": "number",
          "format": "double",
          "description": "Output only. Sum of the conversion value of the conversions."
        },
        "videoViews": {
          "type": "number",
          "format": "double",
          "description": "Output only. Number of video views for a video ad campaign.",
          "readOnly": true
        },
        "clicks": {
          "type": "number",
          "format": "double",
          "description": "Output only. Number of ad clicks.",
          "readOnly": true
        },
        "impressions": {
          "description": "Output only. Number of ad impressions.",
          "type": "number",
          "format": "double",
          "readOnly": true
        },
        "conversions": {
          "readOnly": true,
          "description": "Output only. Number of conversions.",
          "type": "number",
          "format": "double"
        },
        "costMicros": {
          "description": "Output only. Cost (in micros) for advertising, in the local currency for the account.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__Invoice": {
      "properties": {
        "regulatoryCostsTaxAmountMicros": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. The sum of taxes on the invoice level regulatory costs, in micros."
        },
        "dueDate": {
          "type": "string",
          "description": "Output only. The due date in yyyy-mm-dd format.",
          "readOnly": true
        },
        "serviceDateRange": {
          "readOnly": true,
          "description": "Output only. The service period date range of this invoice. The end date is inclusive.",
          "$ref": "GoogleAdsSearchads360V23Common__DateRange"
        },
        "adjustmentsSubtotalAmountMicros": {
          "type": "string",
          "format": "int64",
          "description": "Output only. The pretax subtotal amount of invoice level adjustments, in micros.",
          "readOnly": true
        },
        "accountBudgetSummaries": {
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Resources_Invoice_AccountBudgetSummary"
          },
          "description": "Output only. The list of summarized account budget information associated with this invoice."
        },
        "exportChargeSubtotalAmountMicros": {
          "type": "string",
          "format": "int64",
          "description": "Output only. The pretax subtotal amount of invoice level export charges, in micros.",
          "readOnly": true
        },
        "taxAmountMicros": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. The sum of all taxes on the invoice, in micros. This equals the sum of the AccountBudgetSummary tax amounts, plus taxes not associated with a specific account budget."
        },
        "exportChargeTotalAmountMicros": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. The total amount of invoice level export charges, in micros."
        },
        "totalAmountMicros": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. The total amount, in micros. This equals the sum of Invoice.subtotal_amount_micros, Invoice.tax_amount_micros, Invoice.regulatory_costs_subtotal_amount_micros, and Invoice.export_charge_subtotal_amount_micros (which is separated into a separate line item starting with V14.1)."
        },
        "pdfUrl": {
          "description": "Output only. The URL to a PDF copy of the invoice. Users need to pass in their OAuth token to request the PDF with this URL.",
          "type": "string",
          "readOnly": true
        },
        "replacedInvoices": {
          "description": "Output only. The resource name of the original invoice(s) being rebilled or replaced by this invoice, if applicable. There might be multiple replaced invoices due to invoice consolidation. The replaced invoices may not belong to the same payments account. If `replaced_invoices` is set, `corrected_invoice` will not be set. Invoice resource names have the form: `customers/{customer_id}/invoices/{invoice_id}`",
          "type": "array",
          "items": {
            "type": "string"
          },
          "readOnly": true
        },
        "resourceName": {
          "readOnly": true,
          "description": "Output only. The resource name of the invoice. Multiple customers can share a given invoice, so multiple resource names may point to the same invoice. Invoice resource names have the form: `customers/{customer_id}/invoices/{invoice_id}`",
          "type": "string"
        },
        "regulatoryCostsTotalAmountMicros": {
          "description": "Output only. The total amount of invoice level regulatory costs, in micros.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        },
        "subtotalAmountMicros": {
          "description": "Output only. The pretax subtotal amount, in micros. This is equal to the sum of the AccountBudgetSummary subtotal amounts and Invoice.adjustments_subtotal_amount_micros.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        },
        "correctedInvoice": {
          "readOnly": true,
          "description": "Output only. The resource name of the original invoice corrected, wrote off, or canceled by this invoice, if applicable. If `corrected_invoice` is set, `replaced_invoices` will not be set. Invoice resource names have the form: `customers/{customer_id}/invoices/{invoice_id}`",
          "type": "string"
        },
        "billingSetup": {
          "description": "Output only. The resource name of this invoice's billing setup. `customers/{customer_id}/billingSetups/{billing_setup_id}`",
          "type": "string",
          "readOnly": true
        },
        "regulatoryCostsSubtotalAmountMicros": {
          "type": "string",
          "format": "int64",
          "description": "Output only. The pretax subtotal amount of invoice level regulatory costs, in micros.",
          "readOnly": true
        },
        "adjustmentsTaxAmountMicros": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. The sum of taxes on the invoice level adjustments, in micros."
        },
        "exportChargeTaxAmountMicros": {
          "type": "string",
          "format": "int64",
          "description": "Output only. The sum of taxes on the invoice level export charges, in micros.",
          "readOnly": true
        },
        "paymentsProfileId": {
          "description": "Output only. A 12 digit ID used to identify the payments profile associated with the billing setup, for example, \"1234-5678-9012\". It appears on the invoice PDF as \"Billing ID\".",
          "type": "string",
          "readOnly": true
        },
        "paymentsAccountId": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. A 16 digit ID used to identify the payments account associated with the billing setup, for example, \"1234-5678-9012-3456\". It appears on the invoice PDF as \"Billing Account Number\"."
        },
        "currencyCode": {
          "readOnly": true,
          "description": "Output only. The currency code. All costs are returned in this currency. A subset of the currency codes derived from the ISO 4217 standard is supported.",
          "type": "string"
        },
        "issueDate": {
          "type": "string",
          "description": "Output only. The issue date in yyyy-mm-dd format. It appears on the invoice PDF as either \"Issue date\" or \"Invoice date\".",
          "readOnly": true
        },
        "accountSummaries": {
          "readOnly": true,
          "description": "Output only. The list of summarized account information associated with this invoice.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Resources_Invoice_AccountSummary"
          }
        },
        "type": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "An invoice with a negative amount. The account receives a credit.",
            "An invoice with a positive amount. The account owes a balance."
          ],
          "description": "Output only. The type of invoice.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CREDIT_MEMO",
            "INVOICE"
          ],
          "readOnly": true
        },
        "adjustmentsTotalAmountMicros": {
          "readOnly": true,
          "description": "Output only. The total amount of invoice level adjustments, in micros.",
          "type": "string",
          "format": "int64"
        },
        "id": {
          "readOnly": true,
          "description": "Output only. The ID of the invoice. It appears on the invoice PDF as \"Invoice number\".",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__Invoice",
      "description": "An invoice. All invoice information is snapshotted to match the PDF invoice. For invoices older than the launch of InvoiceService, the snapshotted information may not match the PDF invoice.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__ParentalStatusInfo": {
      "properties": {
        "type": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Parent.",
            "Not a parent.",
            "Undetermined parental status."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PARENT",
            "NOT_A_PARENT",
            "UNDETERMINED"
          ],
          "description": "Type of the parental status."
        }
      },
      "id": "GoogleAdsSearchads360V23Common__ParentalStatusInfo",
      "description": "A parental status criterion.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources_Recommendation_TextAdRecommendation": {
      "properties": {
        "ad": {
          "readOnly": true,
          "description": "Output only. Recommended ad.",
          "$ref": "GoogleAdsSearchads360V23Resources__Ad"
        },
        "creationDate": {
          "description": "Output only. Creation date of the recommended ad. YYYY-MM-DD format, for example, 2018-04-17.",
          "type": "string",
          "readOnly": true
        },
        "autoApplyDate": {
          "readOnly": true,
          "description": "Output only. Date, if present, is the earliest when the recommendation will be auto applied. YYYY-MM-DD format, for example, 2018-04-17.",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V23Resources_Recommendation_TextAdRecommendation",
      "description": "The text ad recommendation.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__ConfigureCustomerLifecycleGoalsResult": {
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for the successful operation."
        }
      },
      "id": "GoogleAdsSearchads360V23Services__ConfigureCustomerLifecycleGoalsResult",
      "description": "The result for the customer lifecycle goal configuration.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Errors__ResourceCountDetails": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Errors__ResourceCountDetails",
      "description": "Error details returned when an resource count limit was exceeded.",
      "properties": {
        "enclosingId": {
          "type": "string",
          "description": "The ID of the resource whose limit was exceeded. External customer ID if the limit is for a customer."
        },
        "limitType": {
          "description": "The resource limit type which was exceeded.",
          "type": "string",
          "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."
          ],
          "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"
          ]
        },
        "enclosingResource": {
          "type": "string",
          "description": "The name of the resource ( etc.) whose limit was exceeded."
        },
        "existingCount": {
          "type": "integer",
          "format": "int32",
          "description": "The count of existing entities."
        },
        "limit": {
          "description": "The limit which was exceeded.",
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__AudienceInsightsLineup": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__AudienceInsightsLineup",
      "description": "A YouTube Lineup.",
      "properties": {
        "lineupId": {
          "description": "Required. The numeric ID of the lineup.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources_Recommendation_UseBroadMatchKeywordRecommendation": {
      "id": "GoogleAdsSearchads360V23Resources_Recommendation_UseBroadMatchKeywordRecommendation",
      "description": "The use broad match keyword recommendation.",
      "type": "object",
      "properties": {
        "requiredCampaignBudgetAmountMicros": {
          "description": "Output only. The budget recommended to avoid becoming budget constrained after applying the recommendation.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        },
        "keyword": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__KeywordInfo"
          },
          "description": "Output only. Sample of keywords to be expanded to Broad Match.",
          "readOnly": true
        },
        "suggestedKeywordsCount": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. Total number of keywords to be expanded to Broad Match in the campaign."
        },
        "campaignKeywordsCount": {
          "type": "string",
          "format": "int64",
          "description": "Output only. Total number of keywords in the campaign.",
          "readOnly": true
        },
        "campaignUsesSharedBudget": {
          "readOnly": true,
          "description": "Output only. Whether the associated campaign uses a shared budget.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__BrandCampaignAssets": {
      "properties": {
        "landscapeLogoAsset": {
          "description": "Optional. The resource name of landscape logo assets.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "logoAsset": {
          "description": "Required. The resource name of square logo assets.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "businessNameAsset": {
          "type": "string",
          "description": "Required. The resource name of the business name text asset."
        }
      },
      "id": "GoogleAdsSearchads360V23Services__BrandCampaignAssets",
      "description": "Assets linked at the campaign level. A business_name and at least one logo_asset are required.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__RemoveDataLinkRequest": {
      "properties": {
        "resourceName": {
          "description": "Required. The data link is expected to have a valid resource name.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__RemoveDataLinkRequest",
      "description": "Request message for DataLinkService.RemoveDataLink."
    },
    "GoogleAdsSearchads360V23Resources__CustomerLifecycleGoal": {
      "properties": {
        "resourceName": {
          "description": "Immutable. The resource name of the customer lifecycle goal. Customer lifecycle resource names have the form: `customers/{customer_id}/customerLifecycleGoal`",
          "type": "string"
        },
        "customerAcquisitionGoalValueSettings": {
          "readOnly": true,
          "description": "Output only. Customer acquisition goal customer level value settings.",
          "$ref": "GoogleAdsSearchads360V23Common__LifecycleGoalValueSettings"
        },
        "ownerCustomer": {
          "description": "Output only. The resource name of the customer which owns the lifecycle goal.",
          "type": "string",
          "readOnly": true
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__CustomerLifecycleGoal",
      "description": "Account level customer lifecycle goal settings.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources__CampaignSharedSet": {
      "properties": {
        "campaign": {
          "type": "string",
          "description": "Immutable. The campaign to which the campaign shared set belongs."
        },
        "resourceName": {
          "description": "Immutable. The resource name of the campaign shared set. Campaign shared set resource names have the form: `customers/{customer_id}/campaignSharedSets/{campaign_id}~{shared_set_id}`",
          "type": "string"
        },
        "status": {
          "description": "Output only. The status of this campaign shared set. Read only.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The campaign shared set is enabled.",
            "The campaign shared set is removed and can no longer be used."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ],
          "readOnly": true
        },
        "sharedSet": {
          "description": "Immutable. The shared set associated with the campaign. This may be a negative keyword shared set of another customer. This customer should be a manager of the other customer, otherwise the campaign shared set will exist but have no serving effect. Only negative keyword shared sets can be associated with Shopping campaigns. Only negative placement shared sets can be associated with Display mobile app campaigns.",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__CampaignSharedSet",
      "description": "CampaignSharedSets are used for managing the shared sets associated with a campaign.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__ListCustomColumnsResponse": {
      "properties": {
        "customColumns": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Resources__CustomColumn"
          },
          "description": "The CustomColumns owned by the provided customer."
        }
      },
      "id": "GoogleAdsSearchads360V23Services__ListCustomColumnsResponse",
      "description": "Response message for fetching all custom columns associated with a customer.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__MobileDeviceInfo": {
      "properties": {
        "mobileDeviceConstant": {
          "type": "string",
          "description": "The mobile device constant resource name."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__MobileDeviceInfo",
      "description": "A mobile device criterion."
    },
    "GoogleAdsSearchads360V23Services__UserDataOperation": {
      "properties": {
        "create": {
          "description": "The list of user data to be appended to the user list.",
          "$ref": "GoogleAdsSearchads360V23Common__UserData"
        },
        "remove": {
          "description": "The list of user data to be removed from the user list.",
          "$ref": "GoogleAdsSearchads360V23Common__UserData"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__UserDataOperation",
      "description": "Operation to be made for the UploadUserDataRequest.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateCustomerUserAccessInvitationRequest": {
      "properties": {
        "operation": {
          "description": "Required. The operation to perform on the access invitation",
          "$ref": "GoogleAdsSearchads360V23Services__CustomerUserAccessInvitationOperation"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__MutateCustomerUserAccessInvitationRequest",
      "description": "Request message for CustomerUserAccessInvitationService.MutateCustomerUserAccessInvitation",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__ConfigureCustomerLifecycleGoalsResponse": {
      "properties": {
        "result": {
          "description": "result for the customer lifecycle goal configuration.",
          "$ref": "GoogleAdsSearchads360V23Services__ConfigureCustomerLifecycleGoalsResult"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__ConfigureCustomerLifecycleGoalsResponse",
      "description": "Response message for CustomerLifecycleGoalService.ConfigureCustomerLifecycleGoals."
    },
    "GoogleAdsSearchads360V23Services_SmartCampaignSuggestionInfo_BusinessContext": {
      "properties": {
        "businessName": {
          "type": "string",
          "description": "Optional. The name of the business."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services_SmartCampaignSuggestionInfo_BusinessContext",
      "description": "A context that describes a business."
    },
    "GoogleAdsSearchads360V23Common__HotelCityInfo": {
      "properties": {
        "cityCriterion": {
          "description": "The Geo Target Constant resource name.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__HotelCityInfo",
      "description": "City the hotel is located in."
    },
    "GoogleAdsSearchads360V23Services__GenerateKeywordForecastMetricsRequest": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__GenerateKeywordForecastMetricsRequest",
      "description": "Request message for KeywordPlanIdeaService.GenerateKeywordForecastMetrics.",
      "properties": {
        "campaign": {
          "description": "Required. The campaign used in the forecast.",
          "$ref": "GoogleAdsSearchads360V23Services__CampaignToForecast"
        },
        "currencyCode": {
          "description": "The currency used for exchange rate conversion. By default, the account currency of the customer is used. Set this field only if the currency is different from the account currency. The list of valid currency codes can be found at https://developers.google.com/google-ads/api/data/codes-formats#currency-codes.",
          "type": "string"
        },
        "forecastPeriod": {
          "description": "The date range for the forecast. The start date must be in the future and end date must be within 1 year from today. The reference timezone used is the one of the Google Ads account belonging to the customer. If not set, a default date range from next Sunday to the following Saturday will be used.",
          "$ref": "GoogleAdsSearchads360V23Common__DateRange"
        }
      }
    },
    "GoogleAdsSearchads360V0Errors__SearchAds360Failure": {
      "type": "object",
      "id": "GoogleAdsSearchads360V0Errors__SearchAds360Failure",
      "description": "Describes how a Search Ads 360 API call failed. It's returned inside google.rpc.Status.details when a call fails.",
      "properties": {
        "errors": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V0Errors__SearchAds360Error"
          },
          "description": "The list of errors that occurred."
        },
        "requestId": {
          "description": "The unique ID of the request that is used for debugging purposes.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__MetricGoal": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__MetricGoal",
      "description": "A metric goal for an experiment.",
      "properties": {
        "direction": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "The goal of the experiment is to not change the metric.",
            "The goal of the experiment is to increate the metric.",
            "The goal of the experiment is to decrease the metric.",
            "The goal of the experiment is to either not change or increase the metric.",
            "The goal of the experiment is to either not change or decrease the metric."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NO_CHANGE",
            "INCREASE",
            "DECREASE",
            "NO_CHANGE_OR_INCREASE",
            "NO_CHANGE_OR_DECREASE"
          ],
          "description": "The metric direction of the goal. For example, increase, decrease, no change."
        },
        "metric": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "The goal of the experiment is clicks.",
            "The goal of the experiment is impressions.",
            "The goal of the experiment is cost.",
            "The goal of the experiment is conversion rate.",
            "The goal of the experiment is cost per conversion.",
            "The goal of the experiment is conversion value per cost.",
            "The goal of the experiment is avg cpc.",
            "The goal of the experiment is ctr.",
            "The goal of the experiment is incremental conversions.",
            "The goal of the experiment is completed video views.",
            "The goal of the experiment is custom algorithms.",
            "The goal of the experiment is conversions.",
            "The goal of the experiment is conversion value."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CLICKS",
            "IMPRESSIONS",
            "COST",
            "CONVERSIONS_PER_INTERACTION_RATE",
            "COST_PER_CONVERSION",
            "CONVERSIONS_VALUE_PER_COST",
            "AVERAGE_CPC",
            "CTR",
            "INCREMENTAL_CONVERSIONS",
            "COMPLETED_VIDEO_VIEWS",
            "CUSTOM_ALGORITHMS",
            "CONVERSIONS",
            "CONVERSION_VALUE"
          ],
          "description": "The metric of the goal. For example, clicks, impressions, cost, conversions, etc."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__OnTargetAudienceMetrics": {
      "properties": {
        "youtubeAudienceSize": {
          "type": "string",
          "format": "int64",
          "description": "Reference audience size matching the considered targeting for YouTube."
        },
        "censusAudienceSize": {
          "description": "Reference audience size matching the considered targeting for Census.",
          "type": "string",
          "format": "int64"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__OnTargetAudienceMetrics",
      "description": "Audience metrics for the planned products. These metrics consider the following targeting dimensions: - Location - PlannableAgeRange - Gender - AudienceTargeting (only for youtube_audience_size)",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateAssetGroupsRequest": {
      "properties": {
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__AssetGroupOperation"
          },
          "description": "Required. The list of operations to perform on individual asset groups."
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateAssetGroupsRequest",
      "description": "Request message for AssetGroupService.MutateAssetGroups."
    },
    "GoogleAdsSearchads360V23Resources__MediaFile": {
      "properties": {
        "id": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. The ID of the media file."
        },
        "sourceUrl": {
          "type": "string",
          "description": "Immutable. The URL of where the original media file was downloaded from (or a file name). Only used for media of type AUDIO and IMAGE."
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the media file. Media file resource names have the form: `customers/{customer_id}/mediaFiles/{media_file_id}`"
        },
        "mimeType": {
          "type": "string",
          "enumDescriptions": [
            "The mime type has not been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "MIME type of image/jpeg.",
            "MIME type of image/gif.",
            "MIME type of image/png.",
            "MIME type of application/x-shockwave-flash.",
            "MIME type of text/html.",
            "MIME type of application/pdf.",
            "MIME type of application/msword.",
            "MIME type of application/vnd.ms-excel.",
            "MIME type of application/rtf.",
            "MIME type of audio/wav.",
            "MIME type of audio/mp3.",
            "MIME type of application/x-html5-ad-zip."
          ],
          "description": "Output only. The mime type of the media file.",
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "IMAGE_JPEG",
            "IMAGE_GIF",
            "IMAGE_PNG",
            "FLASH",
            "TEXT_HTML",
            "PDF",
            "MSWORD",
            "MSEXCEL",
            "RTF",
            "AUDIO_WAV",
            "AUDIO_MP3",
            "HTML5_AD_ZIP"
          ]
        },
        "audio": {
          "readOnly": true,
          "description": "Output only. Encapsulates an Audio.",
          "$ref": "GoogleAdsSearchads360V23Resources__MediaAudio"
        },
        "type": {
          "type": "string",
          "enumDescriptions": [
            "The media type has not been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "Static image, used for image ad.",
            "Small image, used for map ad.",
            "ZIP file, used in fields of template ads.",
            "Audio file.",
            "Video file.",
            "Animated image, such as animated GIF."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "IMAGE",
            "ICON",
            "MEDIA_BUNDLE",
            "AUDIO",
            "VIDEO",
            "DYNAMIC_IMAGE"
          ],
          "description": "Immutable. Type of the media file."
        },
        "video": {
          "description": "Immutable. Encapsulates a Video.",
          "$ref": "GoogleAdsSearchads360V23Resources__MediaVideo"
        },
        "fileSize": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. The size of the media file in bytes."
        },
        "image": {
          "description": "Immutable. Encapsulates an Image.",
          "$ref": "GoogleAdsSearchads360V23Resources__MediaImage"
        },
        "name": {
          "type": "string",
          "description": "Immutable. The name of the media file. The name can be used by clients to help identify previously uploaded media."
        },
        "mediaBundle": {
          "description": "Immutable. A ZIP archive media the content of which contains HTML5 assets.",
          "$ref": "GoogleAdsSearchads360V23Resources__MediaBundle"
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__MediaFile",
      "description": "A media file.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources__TargetingExpansionView": {
      "properties": {
        "resourceName": {
          "description": "Output only. The resource name of the targeting expansion view. Targeting expansion view resource names have the form: `customers/{customer_id}/targetingExpansionViews/{campaign_id}~{targeting_expansion_type}`",
          "type": "string",
          "readOnly": true
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__TargetingExpansionView",
      "description": "A targeting expansion view with metrics. Returns metrics for automated expansion over manual targeting."
    },
    "GoogleAdsSearchads360V23Common__LegacyResponsiveDisplayAdInfo": {
      "id": "GoogleAdsSearchads360V23Common__LegacyResponsiveDisplayAdInfo",
      "description": "A legacy responsive display ad. Ads of this type are labeled 'Responsive ads' in the Google Ads UI.",
      "type": "object",
      "properties": {
        "businessName": {
          "description": "The business name in the ad.",
          "type": "string"
        },
        "formatSetting": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Text, image and native formats.",
            "Text and image formats.",
            "Native format, for example, the format rendering is controlled by the publisher and not by Google."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ALL_FORMATS",
            "NON_NATIVE",
            "NATIVE"
          ],
          "description": "Specifies which format the ad will be served in. Default is ALL_FORMATS."
        },
        "promoText": {
          "type": "string",
          "description": "Promotion text used for dynamic formats of responsive ads. For example 'Free two-day shipping'."
        },
        "allowFlexibleColor": {
          "description": "Advertiser's consent to allow flexible color. When true, the ad may be served with different color if necessary. When false, the ad will be served with the specified colors or a neutral color. The default value is `true`. Must be true if `main_color` and `accent_color` are not set.",
          "type": "boolean"
        },
        "marketingImage": {
          "description": "The MediaFile resource name of the marketing image used in the ad.",
          "type": "string"
        },
        "callToActionText": {
          "type": "string",
          "description": "The call-to-action text for the ad."
        },
        "mainColor": {
          "description": "The main color of the ad in hexadecimal, for example, #ffffff for white. If one of `main_color` and `accent_color` is set, the other is required as well.",
          "type": "string"
        },
        "accentColor": {
          "description": "The accent color of the ad in hexadecimal, for example, #ffffff for white. If one of `main_color` and `accent_color` is set, the other is required as well.",
          "type": "string"
        },
        "pricePrefix": {
          "description": "Prefix before price. For example, 'as low as'.",
          "type": "string"
        },
        "shortHeadline": {
          "description": "The short version of the ad's headline.",
          "type": "string"
        },
        "description": {
          "description": "The description of the ad.",
          "type": "string"
        },
        "longHeadline": {
          "description": "The long version of the ad's headline.",
          "type": "string"
        },
        "logoImage": {
          "type": "string",
          "description": "The MediaFile resource name of the logo image used in the ad."
        },
        "squareMarketingImage": {
          "description": "The MediaFile resource name of the square marketing image used in the ad.",
          "type": "string"
        },
        "squareLogoImage": {
          "type": "string",
          "description": "The MediaFile resource name of the square logo image used in the ad."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__CampaignGoalConfigOperation": {
      "properties": {
        "remove": {
          "type": "string",
          "description": "Remove an existing campaign goal config."
        },
        "updateMask": {
          "type": "string",
          "format": "google-fieldmask",
          "description": "FieldMask that determines which fields are modified in an update."
        },
        "create": {
          "description": "Create a new campaign goal config.",
          "$ref": "GoogleAdsSearchads360V23Resources__CampaignGoalConfig"
        },
        "update": {
          "description": "Update an existing campaign goal config.",
          "$ref": "GoogleAdsSearchads360V23Resources__CampaignGoalConfig"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__CampaignGoalConfigOperation",
      "description": "A single mutate operation on the campaign goal config.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateAssetsResponse": {
      "id": "GoogleAdsSearchads360V23Services__MutateAssetsResponse",
      "description": "Response message for an asset mutate.",
      "type": "object",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "description": "All results for the mutate.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateAssetResult"
          }
        }
      }
    },
    "GoogleAdsSearchads360V23Common__CrmBasedUserListInfo": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__CrmBasedUserListInfo",
      "description": "UserList of CRM users provided by the advertiser.",
      "properties": {
        "appId": {
          "type": "string",
          "description": "A string that uniquely identifies a mobile application from which the data was collected. For iOS, the ID string is the 9 digit string that appears at the end of an App Store URL (for example, \"476943146\" for \"Flood-It! 2\" whose App Store link is http://itunes.apple.com/us/app/flood-it!-2/id476943146). For Android, the ID string is the application's package name (for example, \"com.labpixies.colordrips\" for \"Color Drips\" given Google Play link https://play.google.com/store/apps/details?id=com.labpixies.colordrips). Required when creating CrmBasedUserList for uploading mobile advertising IDs."
        },
        "uploadKeyType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Members are matched from customer info such as email address, phone number or physical address.",
            "Members are matched from a user id generated and assigned by the advertiser.",
            "Members are matched from mobile advertising ids."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CONTACT_INFO",
            "CRM_ID",
            "MOBILE_ADVERTISING_ID"
          ],
          "description": "Matching key type of the list. Mixed data types are not allowed on the same list. This field is required for an ADD operation."
        },
        "dataSourceType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The uploaded data is first-party data.",
            "The uploaded data is from a third-party credit bureau.",
            "The uploaded data is from a third-party voter file.",
            "The uploaded data is third party partner data."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "FIRST_PARTY",
            "THIRD_PARTY_CREDIT_BUREAU",
            "THIRD_PARTY_VOTER_FILE",
            "THIRD_PARTY_PARTNER_DATA"
          ],
          "description": "Data source of the list. Default value is FIRST_PARTY. Only customers on the allow-list can create third-party sourced CRM lists."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__AudienceInsightsAttribute": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__AudienceInsightsAttribute",
      "description": "An audience attribute that can be used to request insights about the audience.",
      "properties": {
        "location": {
          "description": "An audience attribute defined by a geographic location.",
          "$ref": "GoogleAdsSearchads360V23Common__LocationInfo"
        },
        "userList": {
          "description": "A User List.",
          "$ref": "GoogleAdsSearchads360V23Common__UserListInfo"
        },
        "lineup": {
          "description": "A YouTube Lineup.",
          "$ref": "GoogleAdsSearchads360V23Common__AudienceInsightsLineup"
        },
        "entity": {
          "description": "An audience attribute defined by interest in a topic represented by a Knowledge Graph entity.",
          "$ref": "GoogleAdsSearchads360V23Common__AudienceInsightsEntity"
        },
        "category": {
          "description": "An audience attribute defined by interest in a Product & Service category.",
          "$ref": "GoogleAdsSearchads360V23Common__AudienceInsightsCategory"
        },
        "gender": {
          "description": "An audience attribute defined by a gender.",
          "$ref": "GoogleAdsSearchads360V23Common__GenderInfo"
        },
        "ageRange": {
          "description": "An audience attribute defined by an age range.",
          "$ref": "GoogleAdsSearchads360V23Common__AgeRangeInfo"
        },
        "incomeRange": {
          "description": "A household income percentile range.",
          "$ref": "GoogleAdsSearchads360V23Common__IncomeRangeInfo"
        },
        "youtubeChannel": {
          "description": "A YouTube channel.",
          "$ref": "GoogleAdsSearchads360V23Common__YouTubeChannelInfo"
        },
        "userInterest": {
          "description": "An Affinity or In-Market audience.",
          "$ref": "GoogleAdsSearchads360V23Common__UserInterestInfo"
        },
        "parentalStatus": {
          "description": "A Parental Status value (parent, or not a parent).",
          "$ref": "GoogleAdsSearchads360V23Common__ParentalStatusInfo"
        },
        "device": {
          "description": "A device type. (Mobile, Desktop, Tablet)",
          "$ref": "GoogleAdsSearchads360V23Common__DeviceInfo"
        },
        "youtubeVideo": {
          "description": "A YouTube video.",
          "$ref": "GoogleAdsSearchads360V23Common__YouTubeVideoInfo"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources_Recommendation_MigrateDynamicSearchAdsCampaignToPerformanceMaxRecommendation": {
      "properties": {
        "applyLink": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. A link to the Google Ads UI where the customer can manually apply the recommendation."
        }
      },
      "id": "GoogleAdsSearchads360V23Resources_Recommendation_MigrateDynamicSearchAdsCampaignToPerformanceMaxRecommendation",
      "description": "The Dynamic Search Ads to Performance Max migration recommendation.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateAdsRequest": {
      "properties": {
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__AdOperation"
          },
          "description": "Required. The list of operations to perform on individual ads."
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        },
        "responseContentType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateAdsRequest",
      "description": "Request message for AdService.MutateAds."
    },
    "GoogleAdsSearchads360V23Services__MutateCampaignCriterionResult": {
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        },
        "campaignCriterion": {
          "description": "The mutated campaign criterion with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsSearchads360V23Resources__CampaignCriterion"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateCampaignCriterionResult",
      "description": "The result for the criterion mutate."
    },
    "GoogleAdsSearchads360V23Services__SuggestGeoTargetConstantsResponse": {
      "properties": {
        "geoTargetConstantSuggestions": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__GeoTargetConstantSuggestion"
          },
          "description": "Geo target constant suggestions."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__SuggestGeoTargetConstantsResponse",
      "description": "Response message for GeoTargetConstantService.SuggestGeoTargetConstants."
    },
    "GoogleAdsSearchads360V23Common__TargetImpressionShareSimulationPointList": {
      "properties": {
        "points": {
          "description": "Projected metrics for a specific target impression share value.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__TargetImpressionShareSimulationPoint"
          }
        }
      },
      "id": "GoogleAdsSearchads360V23Common__TargetImpressionShareSimulationPointList",
      "description": "A container for simulation points for simulations of type TARGET_IMPRESSION_SHARE.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__CriterionCategoryAvailability": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__CriterionCategoryAvailability",
      "description": "Information of category availability, per advertising channel.",
      "properties": {
        "channel": {
          "description": "Channel types and subtypes that are available to the category.",
          "$ref": "GoogleAdsSearchads360V23Common__CriterionCategoryChannelAvailability"
        },
        "locale": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__CriterionCategoryLocaleAvailability"
          },
          "description": "Locales that are available to the category for the channel."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__SuggestTravelAssetsRequest": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__SuggestTravelAssetsRequest",
      "description": "Request message for TravelAssetSuggestionService.SuggestTravelAssets.",
      "properties": {
        "languageOption": {
          "type": "string",
          "description": "Required. The language specifications in BCP 47 format (for example, en-US, zh-CN, etc.) for the asset suggestions. Text will be in this language. Usually matches one of the campaign target languages."
        },
        "placeIds": {
          "description": "The Google Maps Place IDs of hotels for which assets are requested. See https://developers.google.com/places/web-service/place-id for more information.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "GoogleAdsSearchads360V23Services__ListPlannableUserListsResponse": {
      "properties": {
        "plannableUserLists": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__PlannableUserList"
          },
          "description": "The list of user lists available for planning and related targeting metadata."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__ListPlannableUserListsResponse",
      "description": "A response with all available user lists with their plannable status."
    },
    "GoogleAdsSearchads360V23Services__GetIdentityVerificationResponse": {
      "properties": {
        "identityVerification": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__IdentityVerification"
          },
          "description": "List of identity verifications for the customer."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__GetIdentityVerificationResponse",
      "description": "Response message for GetIdentityVerification."
    },
    "GoogleAdsSearchads360V23Common__FlexibleRuleOperandInfo": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__FlexibleRuleOperandInfo",
      "description": "Flexible rule that wraps the common rule and a lookback window.",
      "properties": {
        "rule": {
          "description": "List of rule item groups that defines this rule. Rule item groups are grouped together.",
          "$ref": "GoogleAdsSearchads360V23Common__UserListRuleInfo"
        },
        "lookbackWindowDays": {
          "type": "string",
          "format": "int64",
          "description": "Lookback window for this rule in days. From now until X days ago."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateCustomerAssetSetsRequest": {
      "properties": {
        "responseContentType": {
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "type": "string",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ]
        },
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        },
        "operations": {
          "description": "Required. The list of operations to perform on individual customer asset sets.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__CustomerAssetSetOperation"
          }
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        }
      },
      "id": "GoogleAdsSearchads360V23Services__MutateCustomerAssetSetsRequest",
      "description": "Request message for CustomerAssetSetService.MutateCustomerAssetSets.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__AdVideoAssetLinkFeatureControl": {
      "properties": {
        "allowYoutubeComments": {
          "type": "boolean",
          "description": "Defines if YouTube comments should be enabled for the creative using this YouTube video asset served on YouTube Shorts."
        }
      },
      "id": "GoogleAdsSearchads360V23Common__AdVideoAssetLinkFeatureControl",
      "description": "YouTube Video Asset feature controls.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources_AdGroup_VerticalAdsFormatSetting": {
      "properties": {
        "disableTextAds": {
          "type": "boolean",
          "description": "If true, text ads will be disabled for this ad group."
        },
        "enableBookingLinks": {
          "description": "If true, booking links will be enabled for this ad group.",
          "type": "boolean"
        },
        "enableVerticalPromotionAds": {
          "description": "If true, vertical promotion ads will be enabled for this ad group.",
          "type": "boolean"
        }
      },
      "id": "GoogleAdsSearchads360V23Resources_AdGroup_VerticalAdsFormatSetting",
      "description": "Vertical ads setting feature to enable/disable ad group format controls in search campaigns.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__ForecastAdGroup": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__ForecastAdGroup",
      "description": "An ad group that is part of a campaign to be forecasted.",
      "properties": {
        "negativeKeywords": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__KeywordInfo"
          },
          "description": "The details of the keyword. You should specify both the keyword text and match type."
        },
        "maxCpcBidMicros": {
          "description": "The max cpc to use for the ad group when generating forecasted traffic. This value will override the max cpc value set in the bidding strategy. Only specify this field for bidding strategies that max cpc values.",
          "type": "string",
          "format": "int64"
        },
        "biddableKeywords": {
          "description": "Required. The list of biddable keywords to be used in the ad group when doing the forecast. Requires at least one keyword.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__BiddableKeyword"
          }
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__LeadFormSubmissionField": {
      "properties": {
        "fieldValue": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Field value for lead form fields."
        },
        "fieldType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "FULL_NAME",
            "EMAIL",
            "PHONE_NUMBER",
            "POSTAL_CODE",
            "STREET_ADDRESS",
            "CITY",
            "REGION",
            "COUNTRY",
            "WORK_EMAIL",
            "COMPANY_NAME",
            "WORK_PHONE",
            "JOB_TITLE",
            "GOVERNMENT_ISSUED_ID_CPF_BR",
            "GOVERNMENT_ISSUED_ID_DNI_AR",
            "GOVERNMENT_ISSUED_ID_DNI_PE",
            "GOVERNMENT_ISSUED_ID_RUT_CL",
            "GOVERNMENT_ISSUED_ID_CC_CO",
            "GOVERNMENT_ISSUED_ID_CI_EC",
            "GOVERNMENT_ISSUED_ID_RFC_MX",
            "FIRST_NAME",
            "LAST_NAME",
            "VEHICLE_MODEL",
            "VEHICLE_TYPE",
            "PREFERRED_DEALERSHIP",
            "VEHICLE_PURCHASE_TIMELINE",
            "VEHICLE_OWNERSHIP",
            "VEHICLE_PAYMENT_TYPE",
            "VEHICLE_CONDITION",
            "COMPANY_SIZE",
            "ANNUAL_SALES",
            "YEARS_IN_BUSINESS",
            "JOB_DEPARTMENT",
            "JOB_ROLE",
            "OVER_18_AGE",
            "OVER_19_AGE",
            "OVER_20_AGE",
            "OVER_21_AGE",
            "OVER_22_AGE",
            "OVER_23_AGE",
            "OVER_24_AGE",
            "OVER_25_AGE",
            "OVER_26_AGE",
            "OVER_27_AGE",
            "OVER_28_AGE",
            "OVER_29_AGE",
            "OVER_30_AGE",
            "OVER_31_AGE",
            "OVER_32_AGE",
            "OVER_33_AGE",
            "OVER_34_AGE",
            "OVER_35_AGE",
            "OVER_36_AGE",
            "OVER_37_AGE",
            "OVER_38_AGE",
            "OVER_39_AGE",
            "OVER_40_AGE",
            "OVER_41_AGE",
            "OVER_42_AGE",
            "OVER_43_AGE",
            "OVER_44_AGE",
            "OVER_45_AGE",
            "OVER_46_AGE",
            "OVER_47_AGE",
            "OVER_48_AGE",
            "OVER_49_AGE",
            "OVER_50_AGE",
            "OVER_51_AGE",
            "OVER_52_AGE",
            "OVER_53_AGE",
            "OVER_54_AGE",
            "OVER_55_AGE",
            "OVER_56_AGE",
            "OVER_57_AGE",
            "OVER_58_AGE",
            "OVER_59_AGE",
            "OVER_60_AGE",
            "OVER_61_AGE",
            "OVER_62_AGE",
            "OVER_63_AGE",
            "OVER_64_AGE",
            "OVER_65_AGE",
            "EDUCATION_PROGRAM",
            "EDUCATION_COURSE",
            "PRODUCT",
            "SERVICE",
            "OFFER",
            "CATEGORY",
            "PREFERRED_CONTACT_METHOD",
            "PREFERRED_LOCATION",
            "PREFERRED_CONTACT_TIME",
            "PURCHASE_TIMELINE",
            "YEARS_OF_EXPERIENCE",
            "JOB_INDUSTRY",
            "LEVEL_OF_EDUCATION",
            "PROPERTY_TYPE",
            "REALTOR_HELP_GOAL",
            "PROPERTY_COMMUNITY",
            "PRICE_RANGE",
            "NUMBER_OF_BEDROOMS",
            "FURNISHED_PROPERTY",
            "PETS_ALLOWED_PROPERTY",
            "NEXT_PLANNED_PURCHASE",
            "EVENT_SIGNUP_INTEREST",
            "PREFERRED_SHOPPING_PLACES",
            "FAVORITE_BRAND",
            "TRANSPORTATION_COMMERCIAL_LICENSE_TYPE",
            "EVENT_BOOKING_INTEREST",
            "DESTINATION_COUNTRY",
            "DESTINATION_CITY",
            "DEPARTURE_COUNTRY",
            "DEPARTURE_CITY",
            "DEPARTURE_DATE",
            "RETURN_DATE",
            "NUMBER_OF_TRAVELERS",
            "TRAVEL_BUDGET",
            "TRAVEL_ACCOMMODATION"
          ],
          "readOnly": true,
          "description": "Output only. Field type for lead form fields.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The user will be asked to fill in their given and family name. This field cannot be set at the same time as GIVEN_NAME or FAMILY_NAME.",
            "The user will be asked to fill in their email address.",
            "The user will be asked to fill in their phone number.",
            "The user will be asked to fill in their zip code.",
            "The user will be asked to fill in their street address.",
            "The user will be asked to fill in their city.",
            "The user will be asked to fill in their region part of the address (for example, state for US, province for Canada).",
            "The user will be asked to fill in their country.",
            "The user will be asked to fill in their work email address.",
            "The user will be asked to fill in their company name.",
            "The user will be asked to fill in their work phone.",
            "The user will be asked to fill in their job title.",
            "The user will be asked to fill in their CPF for Brazil users.",
            "The user will be asked to fill in their DNI for Argentina users.",
            "The user will be asked to fill in their DNI for Peru users.",
            "The user will be asked to fill in their RUT for Chile users.",
            "The user will be asked to fill in their CC for Colombia users.",
            "The user will be asked to fill in their CI for Ecuador users.",
            "The user will be asked to fill in their RFC for Mexico users.",
            "The user will be asked to fill in their first name. This field can not be set at the same time as FULL_NAME.",
            "The user will be asked to fill in their last name. This field can not be set at the same time as FULL_NAME.",
            "Question: \"Which model are you interested in?\" Category: \"Auto\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Which type of vehicle are you interested in?\" Category: \"Auto\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your preferred dealership?\" Category: \"Auto\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"When do you plan on purchasing a vehicle?\" Category: \"Auto\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Do you own a vehicle?\" Category: \"Auto\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What vehicle ownership option are you interested in?\" Category: \"Auto\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What type of vehicle condition are you interested in?\" Category: \"Auto\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What size is your company?\" Category: \"Business\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your annual sales volume?\" Category: \"Business\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"How many years have you been in business?\" Category: \"Business\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your job department?\" Category: \"Business\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your job role?\" Category: \"Business\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 18 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 19 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 20 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 21 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 22 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 23 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 24 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 25 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 26 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 27 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 28 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 29 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 30 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 31 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 32 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 33 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 34 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 35 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 36 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 37 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 38 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 39 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 40 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 41 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 42 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 43 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 44 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 45 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 46 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 47 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 48 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 49 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 50 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 51 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 52 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 53 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 54 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 55 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 56 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 57 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 58 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 59 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 60 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 61 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 62 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 63 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 64 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 65 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Which program are you interested in?\" Category: \"Education\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Which course are you interested in?\" Category: \"Education\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Which product are you interested in?\" Category: \"General\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Which service are you interested in?\" Category: \"General\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Which offer are you interested in?\" Category: \"General\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Which category are you interested in?\" Category: \"General\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your preferred method of contact?\" Category: \"General\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your preferred location?\" Category: \"General\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is the best time to contact you?\" Category: \"General\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"When are you looking to make a purchase?\" Category: \"General\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"How many years of work experience do you have?\" Category: \"Jobs\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What industry do you work in?\" Category: \"Jobs\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your highest level of education?\" Category: \"Jobs\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What type of property are you looking for?\" Category: \"Real Estate\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What do you need a realtor's help with?\" Category: \"Real Estate\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What neighborhood are you interested in?\" Category: \"Real Estate\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What price range are you looking for?\" Category: \"Real Estate\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"How many bedrooms are you looking for?\" Category: \"Real Estate\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you looking for a fully furnished property?\" Category: \"Real Estate\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you looking for properties that allow pets?\" Category: \"Real Estate\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is the next product you plan to purchase?\" Category: \"Retail\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Would you like to sign up for an event?\" Category: \"Retail\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Where are you interested in shopping?\" Category: \"Retail\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your favorite brand?\" Category: \"Retail\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Which type of valid commercial license do you have?\" Category: \"Transportation\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Interested in booking an event?\" Category: \"Travel\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your destination country?\" Category: \"Travel\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your destination city?\" Category: \"Travel\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your departure country?\" Category: \"Travel\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your departure city?\" Category: \"Travel\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your departure date?\" Category: \"Travel\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your return date?\" Category: \"Travel\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"How many people are you traveling with?\" Category: \"Travel\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your travel budget?\" Category: \"Travel\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Where do you want to stay during your travel?\" Category: \"Travel\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields."
          ]
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__LeadFormSubmissionField",
      "description": "Fields in the submitted lead form."
    },
    "GoogleAdsSearchads360V23Services__CyoIncentives": {
      "id": "GoogleAdsSearchads360V23Services__CyoIncentives",
      "description": "An incentive offer in the Choose-Your-Own Incentive feature where a user can select from a set of incentives with different money amounts.",
      "type": "object",
      "properties": {
        "lowOffer": {
          "description": "Required. The CYO incentive with low target and award amounts.",
          "$ref": "GoogleAdsSearchads360V23Services__Incentive"
        },
        "mediumOffer": {
          "description": "Required. The CYO incentive with medium target and award amounts.",
          "$ref": "GoogleAdsSearchads360V23Services__Incentive"
        },
        "highOffer": {
          "description": "Required. The CYO incentive with high target and award amounts.",
          "$ref": "GoogleAdsSearchads360V23Services__Incentive"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateConversionValueRulesResponse": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateConversionValueRulesResponse",
      "description": "Response message for ConversionValueRuleService.MutateConversionValueRules.",
      "properties": {
        "results": {
          "description": "All results for the mutate.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateConversionValueRuleResult"
          }
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__KeywordForecastMetrics": {
      "properties": {
        "averageCpcMicros": {
          "type": "string",
          "format": "int64",
          "description": "The average cpc. Available only if clicks \u003e 0."
        },
        "conversions": {
          "type": "number",
          "format": "double",
          "description": "Forecasted number of conversions: clicks * conversion_rate."
        },
        "costMicros": {
          "type": "string",
          "format": "int64",
          "description": "The total cost."
        },
        "conversionRate": {
          "description": "Forecasted conversion rate.",
          "type": "number",
          "format": "double"
        },
        "averageCpaMicros": {
          "description": "Average cost per acquisition calculated as cost_micros / conversions.",
          "type": "string",
          "format": "int64"
        },
        "impressions": {
          "description": "The total number of impressions.",
          "type": "number",
          "format": "double"
        },
        "clickThroughRate": {
          "description": "The average click through rate. Available only if impressions \u003e 0.",
          "type": "number",
          "format": "double"
        },
        "clicks": {
          "type": "number",
          "format": "double",
          "description": "The total number of clicks."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__KeywordForecastMetrics",
      "description": "The forecast metrics for the planless keyword campaign."
    },
    "GoogleAdsSearchads360V23Common__BusinessProfileLocationGroup": {
      "id": "GoogleAdsSearchads360V23Common__BusinessProfileLocationGroup",
      "description": "Information about a Business Profile dynamic location group. Only applicable if the sync level AssetSet's type is LOCATION_SYNC and sync source is Business Profile.",
      "type": "object",
      "properties": {
        "dynamicBusinessProfileLocationGroupFilter": {
          "description": "Filter for dynamic Business Profile location sets.",
          "$ref": "GoogleAdsSearchads360V23Common__DynamicBusinessProfileLocationGroupFilter"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources_RecommendationTargetCpaOptInRecommendation_TargetCpaOptInRecommendationOption": {
      "properties": {
        "goal": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SAME_COST",
            "SAME_CONVERSIONS",
            "SAME_CPA",
            "CLOSEST_CPA"
          ],
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Recommendation to set Target CPA to maintain the same cost.",
            "Recommendation to set Target CPA to maintain the same conversions.",
            "Recommendation to set Target CPA to maintain the same CPA.",
            "Recommendation to set Target CPA to a value that is as close as possible to, yet lower than, the actual CPA (computed for past 28 days)."
          ],
          "description": "Output only. The goal achieved by this option."
        },
        "targetCpaMicros": {
          "readOnly": true,
          "description": "Output only. Average CPA target.",
          "type": "string",
          "format": "int64"
        },
        "requiredCampaignBudgetAmountMicros": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. The minimum campaign budget, in local currency for the account, required to achieve the target CPA. Amount is specified in micros, where one million is equivalent to one currency unit."
        },
        "impact": {
          "readOnly": true,
          "description": "Output only. The impact estimate if this option is selected.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_RecommendationImpact"
        }
      },
      "id": "GoogleAdsSearchads360V23Resources_RecommendationTargetCpaOptInRecommendation_TargetCpaOptInRecommendationOption",
      "description": "The Target CPA opt-in option with impact estimate.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__SmartCampaignSettingOperation": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__SmartCampaignSettingOperation",
      "description": "A single operation to update Smart campaign settings for a campaign.",
      "properties": {
        "update": {
          "description": "Update operation: The Smart campaign setting must specify a valid resource name.",
          "$ref": "GoogleAdsSearchads360V23Resources__SmartCampaignSetting"
        },
        "updateMask": {
          "type": "string",
          "format": "google-fieldmask",
          "description": "FieldMask that determines which resource fields are modified in an update."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__PlannedProduct": {
      "properties": {
        "plannableProductCode": {
          "description": "Required. Selected product for planning. The code associated with the ad product (for example: Trueview, Bumper). To list the available plannable product codes use ReachPlanService.ListPlannableProducts.",
          "type": "string"
        },
        "budgetMicros": {
          "description": "Required. Maximum budget allocation in micros for the selected product. The value is specified in the selected planning currency_code. For example: 1 000 000$ = 1 000 000 000 000 micros.",
          "type": "string",
          "format": "int64"
        },
        "advancedProductTargeting": {
          "description": "Targeting settings for the selected product. To list the available targeting for each product use ReachPlanService.ListPlannableProducts.",
          "$ref": "GoogleAdsSearchads360V23Services__AdvancedProductTargeting"
        },
        "conversionRate": {
          "type": "number",
          "format": "double",
          "description": "Conversion rate as a decimal between 0 and 1, exclusive. For example: if 2% of ad interactions are expected to lead to conversions, conversion_rate should be 0.02. This field is required for DEMAND_GEN plannable products. It is not supported for other plannable products."
        }
      },
      "id": "GoogleAdsSearchads360V23Services__PlannedProduct",
      "description": "A product being planned for reach.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources__AssetGroupListingGroupFilter": {
      "properties": {
        "parentListingGroupFilter": {
          "type": "string",
          "description": "Immutable. Resource name of the parent listing group subdivision. Null for the root listing group filter node."
        },
        "listingSource": {
          "description": "Immutable. The source of listings filtered by this listing group filter.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Listings from a Shopping source, like products from Google Merchant Center.",
            "Listings from a webpage source, like URLs from a page feed or from the advertiser web domain."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SHOPPING",
            "WEBPAGE"
          ]
        },
        "caseValue": {
          "description": "Dimension value with which this listing group is refining its parent. Undefined for the root group.",
          "$ref": "GoogleAdsSearchads360V23Resources__ListingGroupFilterDimension"
        },
        "path": {
          "readOnly": true,
          "description": "Output only. The path of dimensions defining this listing group filter.",
          "$ref": "GoogleAdsSearchads360V23Resources__ListingGroupFilterDimensionPath"
        },
        "id": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. The ID of the ListingGroupFilter."
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the asset group listing group filter. Asset group listing group filter resource name have the form: `customers/{customer_id}/assetGroupListingGroupFilters/{asset_group_id}~{listing_group_filter_id}`"
        },
        "assetGroup": {
          "type": "string",
          "description": "Immutable. The asset group which this asset group listing group filter is part of."
        },
        "type": {
          "description": "Immutable. Type of a listing group filter node.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Subdivision of products along some listing dimensions.",
            "An included listing group filter leaf node.",
            "An excluded listing group filter leaf node."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SUBDIVISION",
            "UNIT_INCLUDED",
            "UNIT_EXCLUDED"
          ]
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__AssetGroupListingGroupFilter",
      "description": "AssetGroupListingGroupFilter represents a listing group filter tree node in an asset group."
    },
    "GoogleAdsSearchads360V23Common__KeywordPlanHistoricalMetrics": {
      "properties": {
        "lowTopOfPageBidMicros": {
          "description": "Top of page bid low range (20th percentile) in micros for the keyword.",
          "type": "string",
          "format": "int64"
        },
        "avgMonthlySearches": {
          "description": "Approximate number of monthly searches on this query, averaged for the past 12 months.",
          "type": "string",
          "format": "int64"
        },
        "monthlySearchVolumes": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__MonthlySearchVolume"
          },
          "description": "Approximate number of searches on this query for the past twelve months."
        },
        "competitionIndex": {
          "type": "string",
          "format": "int64",
          "description": "The competition index for the query in the range [0, 100]. Shows how competitive ad placement is for a keyword. The level of competition from 0-100 is determined by the number of ad slots filled divided by the total number of ad slots available. If not enough data is available, null is returned."
        },
        "averageCpcMicros": {
          "type": "string",
          "format": "int64",
          "description": "Average Cost Per Click in micros for the keyword."
        },
        "highTopOfPageBidMicros": {
          "description": "Top of page bid high range (80th percentile) in micros for the keyword.",
          "type": "string",
          "format": "int64"
        },
        "competition": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Low competition. The Competition Index range for this is [0, 33].",
            "Medium competition. The Competition Index range for this is [34, 66].",
            "High competition. The Competition Index range for this is [67, 100]."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "LOW",
            "MEDIUM",
            "HIGH"
          ],
          "description": "The competition level for the query."
        }
      },
      "id": "GoogleAdsSearchads360V23Common__KeywordPlanHistoricalMetrics",
      "description": "Historical metrics specific to the targeting options selected. Targeting options include geographies, network, and so on. Refer to https://support.google.com/google-ads/answer/3022575 for more details.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__KeywordSeed": {
      "id": "GoogleAdsSearchads360V23Services__KeywordSeed",
      "description": "Keyword Seed",
      "type": "object",
      "properties": {
        "keywords": {
          "description": "Requires at least one keyword and no more than 20 keywords.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "GoogleAdsSearchads360V23Common__UnifiedCallAsset": {
      "properties": {
        "callConversionReportingState": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Call conversion action is disabled.",
            "Call conversion action will use call conversion type set at the account level.",
            "Call conversion action will use call conversion type set at the resource (call only ads/call extensions) level."
          ],
          "description": "Output only. Indicates whether this CallAsset should use its own call conversion setting, follow the account level setting, or disable call conversion.",
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DISABLED",
            "USE_ACCOUNT_LEVEL_CALL_CONVERSION_ACTION",
            "USE_RESOURCE_LEVEL_CALL_CONVERSION_ACTION"
          ]
        },
        "callConversionAction": {
          "description": "The conversion action to attribute a call conversion to. If not set, the default conversion action is used. This field only has effect if call_conversion_reporting_state is set to USE_RESOURCE_LEVEL_CALL_CONVERSION_ACTION.",
          "type": "string"
        },
        "callOnly": {
          "type": "boolean",
          "description": "Whether the call only shows the phone number without a link to the website. Applies to Microsoft Ads."
        },
        "endDate": {
          "description": "Last date of when this asset is effective and still serving, in yyyy-MM-dd format.",
          "type": "string"
        },
        "phoneNumber": {
          "description": "The advertiser's raw phone number. Examples: '1234567890', '(123)456-7890'",
          "type": "string"
        },
        "useSearcherTimeZone": {
          "type": "boolean",
          "description": "Whether to show the call extension in search user's time zone. Applies to Microsoft Ads."
        },
        "adScheduleTargets": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AdScheduleInfo"
          },
          "description": "List of non-overlapping schedules specifying all time intervals for which the asset may serve. There can be a maximum of 6 schedules per day, 42 in total."
        },
        "callTrackingEnabled": {
          "description": "Whether the call should be enabled on call tracking. Applies to Microsoft Ads.",
          "type": "boolean"
        },
        "countryCode": {
          "type": "string",
          "description": "Two-letter country code of the phone number. Examples: 'US', 'us'."
        },
        "startDate": {
          "description": "Start date of when this asset is effective and can begin serving, in yyyy-MM-dd format.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__UnifiedCallAsset",
      "description": "A unified call asset."
    },
    "GoogleAdsSearchads360V23Common__BusinessProfileLocationSet": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__BusinessProfileLocationSet",
      "description": "Data used to configure a location set populated from Google Business Profile locations. Different types of filters are AND'ed together, if they are specified.",
      "properties": {
        "businessNameFilter": {
          "type": "string",
          "description": "Used to filter Google Business Profile listings by business name. If businessNameFilter is set, only listings with a matching business name are candidates to be sync'd into Assets."
        },
        "businessAccountId": {
          "type": "string",
          "description": "Immutable. The account ID of the managed business whose locations are to be used. If this field is not set, then all businesses accessible by the user (specified by the emailAddress) are used."
        },
        "emailAddress": {
          "type": "string",
          "description": "Required. Immutable. Email address of a Google Business Profile account or email address of a manager of the Google Business Profile account."
        },
        "listingIdFilters": {
          "description": "Used to filter Google Business Profile listings by listing id. If entries exist in listingIdFilters, only listings specified by the filters are candidates to be synchronized into Assets. If no entries exist in listingIdFilters, then all listings are candidates for syncing. Listing ID filters are OR'ed together.",
          "type": "array",
          "items": {
            "type": "string",
            "format": "int64"
          }
        },
        "httpAuthorizationToken": {
          "type": "string",
          "description": "Required. Immutable. The HTTP authorization token used to obtain authorization."
        },
        "labelFilters": {
          "description": "Used to filter Google Business Profile listings by labels. If entries exist in labelFilters, only listings that have any of the labels set are candidates to be synchronized into Assets. If no entries exist in labelFilters, then all listings are candidates for syncing. Label filters are OR'ed together.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "GoogleAdsSearchads360V23Services__CampaignAssetSetOperation": {
      "id": "GoogleAdsSearchads360V23Services__CampaignAssetSetOperation",
      "description": "A single operation (create, remove) on a campaign asset set.",
      "type": "object",
      "properties": {
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed campaign asset set is expected, in this format: `customers/{customer_id}/campaignAssetSets/{campaign_id}~{asset_set_id}`"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new campaign asset set.",
          "$ref": "GoogleAdsSearchads360V23Resources__CampaignAssetSet"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__LocalServicesDocumentReadOnly": {
      "properties": {
        "documentUrl": {
          "description": "URL to access an already uploaded Local Services document.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__LocalServicesDocumentReadOnly",
      "description": "A Local Services Document with read only accessible data."
    },
    "GoogleAdsSearchads360V23Common__PromotionQrCodeInfo": {
      "id": "GoogleAdsSearchads360V23Common__PromotionQrCodeInfo",
      "description": "QR code info to generate promotion QR code.",
      "type": "object",
      "properties": {
        "qrCodeContent": {
          "type": "string",
          "description": "Promotion message to be encoded in the QR code."
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__ParentalStatusView": {
      "properties": {
        "resourceName": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The resource name of the parental status view. Parental Status view resource names have the form: `customers/{customer_id}/parentalStatusViews/{ad_group_id}~{criterion_id}`"
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__ParentalStatusView",
      "description": "A parental status view.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateCustomerSkAdNetworkConversionValueSchemaResponse": {
      "id": "GoogleAdsSearchads360V23Services__MutateCustomerSkAdNetworkConversionValueSchemaResponse",
      "description": "Response message for MutateCustomerSkAdNetworkConversionValueSchema.",
      "type": "object",
      "properties": {
        "result": {
          "description": "All results for the mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateCustomerSkAdNetworkConversionValueSchemaResult"
        },
        "warning": {
          "description": "Non blocking errors that provides schema validation failure details. Returned only when enable_warnings = true.",
          "$ref": "GoogleRpc__Status"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__TransactionAttribute": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__TransactionAttribute",
      "description": "Attribute of the store sales transaction.",
      "properties": {
        "transactionDateTime": {
          "type": "string",
          "description": "Timestamp when transaction occurred. Required. The format is \"YYYY-MM-DD HH:MM:SS[+/-HH:MM]\", where [+/-HH:MM] is an optional timezone offset from UTC. If the offset is absent, the API will use the account's timezone as default. Examples: \"2018-03-05 09:15:00\" or \"2018-02-01 14:34:30+03:00\""
        },
        "orderId": {
          "type": "string",
          "description": "Transaction order id. Useful to group transactions which are part of the same order."
        },
        "itemAttribute": {
          "description": "Item attributes of the transaction. Accessible only to customers on the allow-list.",
          "$ref": "GoogleAdsSearchads360V23Common__ItemAttribute"
        },
        "customValue": {
          "type": "string",
          "description": "Value of the custom variable for each transaction. Allowed only if a custom key is provided in the store sales metadata."
        },
        "transactionAmountMicros": {
          "description": "Transaction amount in micros. Required. Transaction amount in micros needs to be greater than 1000. If item Attributes are provided, it represents the total value of the items, after multiplying the unit price per item by the quantity provided in the ItemAttributes.",
          "type": "number",
          "format": "double"
        },
        "currencyCode": {
          "type": "string",
          "description": "Transaction currency code. ISO 4217 three-letter code is used. Required."
        },
        "conversionAction": {
          "type": "string",
          "description": "The resource name of conversion action to report conversions to. Required."
        },
        "storeAttribute": {
          "description": "Store attributes of the transaction.",
          "$ref": "GoogleAdsSearchads360V23Common__StoreAttribute"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__AccessibleBiddingStrategy": {
      "properties": {
        "ownerDescriptiveName": {
          "readOnly": true,
          "description": "Output only. descriptive_name of the Customer which owns the bidding strategy.",
          "type": "string"
        },
        "maximizeConversions": {
          "description": "Output only. An automated bidding strategy to help get the most conversions for your campaigns while spending your budget.",
          "$ref": "GoogleAdsSearchads360V23Resources_AccessibleBiddingStrategy_MaximizeConversions",
          "readOnly": true
        },
        "id": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. The ID of the bidding strategy."
        },
        "resourceName": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The resource name of the accessible bidding strategy. AccessibleBiddingStrategy resource names have the form: `customers/{customer_id}/accessibleBiddingStrategies/{bidding_strategy_id}`"
        },
        "targetImpressionShare": {
          "description": "Output only. A bidding strategy that automatically optimizes towards a chosen percentage of impressions.",
          "$ref": "GoogleAdsSearchads360V23Resources_AccessibleBiddingStrategy_TargetImpressionShare",
          "readOnly": true
        },
        "type": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "COMMISSION",
            "ENHANCED_CPC",
            "INVALID",
            "MANUAL_CPA",
            "MANUAL_CPC",
            "MANUAL_CPM",
            "MANUAL_CPV",
            "MAXIMIZE_CONVERSIONS",
            "MAXIMIZE_CONVERSION_VALUE",
            "PAGE_ONE_PROMOTED",
            "PERCENT_CPC",
            "TARGET_CPA",
            "TARGET_CPC",
            "TARGET_CPM",
            "TARGET_IMPRESSION_SHARE",
            "TARGET_OUTRANK_SHARE",
            "TARGET_ROAS",
            "TARGET_SPEND"
          ],
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Commission is an automatic bidding strategy in which the advertiser pays a certain portion of the conversion value.",
            "Enhanced CPC is a bidding strategy that raises bids for clicks that seem more likely to lead to a conversion and lowers them for clicks where they seem less likely.",
            "Used for return value only. Indicates that a campaign does not have a bidding strategy. This prevents the campaign from serving. For example, a campaign may be attached to a manager bidding strategy and the serving account is subsequently unlinked from the manager account. In this case the campaign will automatically be detached from the now inaccessible manager bidding strategy and transition to the INVALID bidding strategy type.",
            "Manual bidding strategy that allows advertiser to set the bid per advertiser-specified action.",
            "Manual click based bidding where user pays per click.",
            "Manual impression based bidding where user pays per thousand impressions.",
            "A bidding strategy that pays a configurable amount per video view.",
            "A bidding strategy that automatically maximizes number of conversions given a daily budget.",
            "An automated bidding strategy that automatically sets bids to maximize revenue while spending your budget.",
            "Page-One Promoted bidding scheme, which sets max cpc bids to target impressions on page one or page one promoted slots on google.com. This enum value is deprecated.",
            "Percent Cpc is bidding strategy where bids are a fraction of the advertised price for some good or service.",
            "Target CPA is an automated bid strategy that sets bids to help get as many conversions as possible at the target cost-per-acquisition (CPA) you set.",
            "Target CPC is an automated bid strategy that sets bids to help get as many clicks as possible at the target cost-per-click (CPC) you set.",
            "Target CPM is an automated bid strategy that sets bids to help get as many impressions as possible at the target cost per one thousand impressions (CPM) you set.",
            "An automated bidding strategy that sets bids so that a certain percentage of search ads are shown at the top of the first page (or other targeted location).",
            "Target Outrank Share is an automated bidding strategy that sets bids based on the target fraction of auctions where the advertiser should outrank a specific competitor. This enum value is deprecated.",
            "Target ROAS is an automated bidding strategy that helps you maximize revenue while averaging a specific target Return On Average Spend (ROAS).",
            "Target Spend is an automated bid strategy that sets your bids to help get as many clicks as possible within your budget."
          ],
          "description": "Output only. The type of the bidding strategy."
        },
        "ownerCustomerId": {
          "description": "Output only. The ID of the Customer which owns the bidding strategy.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        },
        "targetRoas": {
          "description": "Output only. A bidding strategy that helps you maximize revenue while averaging a specific target Return On Ad Spend (ROAS).",
          "$ref": "GoogleAdsSearchads360V23Resources_AccessibleBiddingStrategy_TargetRoas",
          "readOnly": true
        },
        "maximizeConversionValue": {
          "readOnly": true,
          "description": "Output only. An automated bidding strategy to help get the most conversion value for your campaigns while spending your budget.",
          "$ref": "GoogleAdsSearchads360V23Resources_AccessibleBiddingStrategy_MaximizeConversionValue"
        },
        "name": {
          "type": "string",
          "description": "Output only. The name of the bidding strategy.",
          "readOnly": true
        },
        "targetCpa": {
          "description": "Output only. A bidding strategy that sets bids to help get as many conversions as possible at the target cost-per-acquisition (CPA) you set.",
          "$ref": "GoogleAdsSearchads360V23Resources_AccessibleBiddingStrategy_TargetCpa",
          "readOnly": true
        },
        "targetSpend": {
          "description": "Output only. A bid strategy that sets your bids to help get as many clicks as possible within your budget.",
          "$ref": "GoogleAdsSearchads360V23Resources_AccessibleBiddingStrategy_TargetSpend",
          "readOnly": true
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__AccessibleBiddingStrategy",
      "description": "Represents a view of BiddingStrategies owned by and shared with the customer. In contrast to BiddingStrategy, this resource includes strategies owned by managers of the customer and shared with this customer - in addition to strategies owned by this customer. This resource does not provide metrics and only exposes a limited subset of the BiddingStrategy attributes."
    },
    "GoogleAdsSearchads360V23Services__MutateKeywordPlanAdGroupKeywordsResponse": {
      "id": "GoogleAdsSearchads360V23Services__MutateKeywordPlanAdGroupKeywordsResponse",
      "description": "Response message for a Keyword Plan ad group keyword mutate.",
      "type": "object",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "description": "All results for the mutate.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateKeywordPlanAdGroupKeywordResult"
          }
        }
      }
    },
    "GoogleAdsSearchads360V23Services__BatchJobOperation": {
      "id": "GoogleAdsSearchads360V23Services__BatchJobOperation",
      "description": "A single operation on a batch job.",
      "type": "object",
      "properties": {
        "create": {
          "description": "Create operation: No resource name is expected for the new batch job.",
          "$ref": "GoogleAdsSearchads360V23Resources__BatchJob"
        },
        "remove": {
          "description": "Remove operation: The batch job must not have been run. A resource name for the removed batch job is expected, in this format: `customers/{customer_id}/batchJobs/{batch_job_id}`",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__SharedCriterionOperation": {
      "properties": {
        "create": {
          "description": "Create operation: No resource name is expected for the new shared criterion.",
          "$ref": "GoogleAdsSearchads360V23Resources__SharedCriterion"
        },
        "remove": {
          "description": "Remove operation: A resource name for the removed shared criterion is expected, in this format: `customers/{customer_id}/sharedCriteria/{shared_set_id}~{criterion_id}`",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__SharedCriterionOperation",
      "description": "A single operation (create, remove) on an shared criterion.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources__ChangeEvent": {
      "properties": {
        "resourceChangeOperation": {
          "type": "string",
          "enumDescriptions": [
            "No value has been specified.",
            "Used for return value only. Represents an unclassified operation unknown in this version.",
            "The resource was created.",
            "The resource was modified.",
            "The resource was removed."
          ],
          "description": "Output only. The operation on the changed resource.",
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CREATE",
            "UPDATE",
            "REMOVE"
          ]
        },
        "campaign": {
          "type": "string",
          "description": "Output only. The Campaign affected by this change.",
          "readOnly": true
        },
        "newResource": {
          "readOnly": true,
          "description": "Output only. The new resource after the change. Only changed fields will be populated.",
          "$ref": "GoogleAdsSearchads360V23Resources_ChangeEvent_ChangedResource"
        },
        "changeDateTime": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Time at which the change was committed on this resource."
        },
        "changeResourceType": {
          "type": "string",
          "enumDescriptions": [
            "No value has been specified.",
            "Used for return value only. Represents an unclassified resource unknown in this version.",
            "An Ad resource change.",
            "An AdGroup resource change.",
            "An AdGroupCriterion resource change.",
            "A Campaign resource change.",
            "A CampaignBudget resource change.",
            "An AdGroupBidModifier resource change.",
            "A CampaignCriterion resource change.",
            "A Feed resource change.",
            "A FeedItem resource change.",
            "A CampaignFeed resource change.",
            "An AdGroupFeed resource change.",
            "An AdGroupAd resource change.",
            "An Asset resource change.",
            "A CustomerAsset resource change.",
            "A CampaignAsset resource change.",
            "An AdGroupAsset resource change.",
            "An AssetSet resource change.",
            "An AssetSetAsset resource change.",
            "A CampaignAssetSet resource change."
          ],
          "description": "Output only. The type of the changed resource. This dictates what resource will be set in old_resource and new_resource.",
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AD",
            "AD_GROUP",
            "AD_GROUP_CRITERION",
            "CAMPAIGN",
            "CAMPAIGN_BUDGET",
            "AD_GROUP_BID_MODIFIER",
            "CAMPAIGN_CRITERION",
            "FEED",
            "FEED_ITEM",
            "CAMPAIGN_FEED",
            "AD_GROUP_FEED",
            "AD_GROUP_AD",
            "ASSET",
            "CUSTOMER_ASSET",
            "CAMPAIGN_ASSET",
            "AD_GROUP_ASSET",
            "ASSET_SET",
            "ASSET_SET_ASSET",
            "CAMPAIGN_ASSET_SET"
          ]
        },
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the change event. Change event resource names have the form: `customers/{customer_id}/changeEvents/{timestamp_micros}~{command_index}~{mutate_index}`",
          "readOnly": true
        },
        "userEmail": {
          "description": "Output only. The email of the user who made this change.",
          "type": "string",
          "readOnly": true
        },
        "changedFields": {
          "readOnly": true,
          "description": "Output only. A list of fields that are changed in the returned resource.",
          "type": "string",
          "format": "google-fieldmask"
        },
        "asset": {
          "description": "Output only. The Asset affected by this change.",
          "type": "string",
          "readOnly": true
        },
        "clientType": {
          "type": "string",
          "enumDescriptions": [
            "No value has been specified.",
            "Used for return value only. Represents an unclassified client type unknown in this version.",
            "Changes made through the \"ads.google.com\". For example, changes made through campaign management.",
            "Changes made through Google Ads automated rules.",
            "Changes made through Google Ads scripts.",
            "Changes made by Google Ads bulk upload.",
            "Changes made by Google Ads API.",
            "Changes made by Google Ads Editor. This value is a placeholder. The API does not return these changes.",
            "Changes made by Google Ads mobile app.",
            "Changes made through Google Ads recommendations.",
            "Changes made through Search Ads 360 Sync.",
            "Changes made through Search Ads 360 Post.",
            "Changes made through internal tools. For example, when a user sets a URL template on an entity like a Campaign, it's automatically wrapped with the SA360 Clickserver URL.",
            "Types of changes that are not categorized, for example, changes made by coupon redemption through Google Ads.",
            "Changes made by subscribing to Google Ads recommendations."
          ],
          "description": "Output only. Where the change was made through.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "GOOGLE_ADS_WEB_CLIENT",
            "GOOGLE_ADS_AUTOMATED_RULE",
            "GOOGLE_ADS_SCRIPTS",
            "GOOGLE_ADS_BULK_UPLOAD",
            "GOOGLE_ADS_API",
            "GOOGLE_ADS_EDITOR",
            "GOOGLE_ADS_MOBILE_APP",
            "GOOGLE_ADS_RECOMMENDATIONS",
            "SEARCH_ADS_360_SYNC",
            "SEARCH_ADS_360_POST",
            "INTERNAL_TOOL",
            "OTHER",
            "GOOGLE_ADS_RECOMMENDATIONS_SUBSCRIPTION"
          ],
          "readOnly": true
        },
        "changeResourceName": {
          "readOnly": true,
          "description": "Output only. The Simply resource this change occurred on.",
          "type": "string"
        },
        "oldResource": {
          "readOnly": true,
          "description": "Output only. The old resource before the change. Only changed fields will be populated.",
          "$ref": "GoogleAdsSearchads360V23Resources_ChangeEvent_ChangedResource"
        },
        "adGroup": {
          "readOnly": true,
          "description": "Output only. The AdGroup affected by this change.",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__ChangeEvent",
      "description": "Describes the granular change of returned resources of certain resource types. Changes made through the UI or API in the past 30 days are included. Previous and new values of the changed fields are shown. ChangeEvent could have up to 3 minutes delay to reflect a new change.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Errors_ErrorLocation_FieldPathElement": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Errors_ErrorLocation_FieldPathElement",
      "description": "A part of a field path.",
      "properties": {
        "fieldName": {
          "description": "The name of a field or a oneof",
          "type": "string"
        },
        "index": {
          "type": "integer",
          "format": "int32",
          "description": "If field_name is a repeated field, this is the element that failed"
        }
      }
    },
    "GoogleAdsSearchads360V23Services_SuggestSmartCampaignBudgetOptionsResponse_BudgetOption": {
      "id": "GoogleAdsSearchads360V23Services_SuggestSmartCampaignBudgetOptionsResponse_BudgetOption",
      "description": "Smart Campaign budget option.",
      "type": "object",
      "properties": {
        "dailyAmountMicros": {
          "description": "The amount of the budget, in the local currency for the account. Amount is specified in micros, where one million is equivalent to one currency unit.",
          "type": "string",
          "format": "int64"
        },
        "metrics": {
          "description": "Metrics pertaining to the suggested budget, could be empty if there is not enough information to derive the estimates.",
          "$ref": "GoogleAdsSearchads360V23Services_SuggestSmartCampaignBudgetOptionsResponse_Metrics"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateCustomerNegativeCriteriaResult": {
      "id": "GoogleAdsSearchads360V23Services__MutateCustomerNegativeCriteriaResult",
      "description": "The result for the criterion mutate.",
      "type": "object",
      "properties": {
        "customerNegativeCriterion": {
          "description": "The mutated criterion with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsSearchads360V23Resources__CustomerNegativeCriterion"
        },
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__ContentCriterionView": {
      "properties": {
        "resourceName": {
          "readOnly": true,
          "description": "Output only. The resource name of the content criterion view. Content criterion view resource names have the form: `customers/{customer_id}/contentCriterionViews/{ad_group_id}~{criterion_id}`",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__ContentCriterionView",
      "description": "A content criterion view.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateAssetSetsResponse": {
      "id": "GoogleAdsSearchads360V23Services__MutateAssetSetsResponse",
      "description": "Response message for an asset set mutate.",
      "type": "object",
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateAssetSetResult"
          },
          "description": "All results for the mutate."
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__KeywordPlanCampaign": {
      "properties": {
        "id": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. The ID of the Keyword Plan campaign."
        },
        "geoTargets": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Resources__KeywordPlanGeoTarget"
          },
          "description": "The geo targets. Max number allowed: 20."
        },
        "cpcBidMicros": {
          "description": "A default max cpc bid in micros, and in the account currency, for all ad groups under the campaign. This field is required and should not be empty when creating Keyword Plan campaigns.",
          "type": "string",
          "format": "int64"
        },
        "languageConstants": {
          "description": "The languages targeted for the Keyword Plan campaign. Max allowed: 1.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "name": {
          "description": "The name of the Keyword Plan campaign. This field is required and should not be empty when creating Keyword Plan campaigns.",
          "type": "string"
        },
        "resourceName": {
          "description": "Immutable. The resource name of the Keyword Plan campaign. KeywordPlanCampaign resource names have the form: `customers/{customer_id}/keywordPlanCampaigns/{kp_campaign_id}`",
          "type": "string"
        },
        "keywordPlan": {
          "description": "The keyword plan this campaign belongs to.",
          "type": "string"
        },
        "keywordPlanNetwork": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Google Search.",
            "Google Search + Search partners."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "GOOGLE_SEARCH",
            "GOOGLE_SEARCH_AND_PARTNERS"
          ],
          "description": "Targeting network. This field is required and should not be empty when creating Keyword Plan campaigns."
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__KeywordPlanCampaign",
      "description": "A Keyword Plan campaign. Max number of keyword plan campaigns per plan allowed: 1.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services_GenerateRecommendationsRequest_TargetImpressionShareInfo": {
      "properties": {
        "targetImpressionShareMicros": {
          "description": "Required. The chosen fraction of targeted impression share in micros. For example, 1% equals 10,000. It must be a value between 1 and 1,000,000. This is required for campaigns with an AdvertisingChannelType of SEARCH and a bidding strategy type of TARGET_IMPRESSION_SHARE.",
          "type": "string",
          "format": "int64"
        },
        "location": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Any location on the web page.",
            "Top box of ads.",
            "Top slot in the top box of ads."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ANYWHERE_ON_PAGE",
            "TOP_OF_PAGE",
            "ABSOLUTE_TOP_OF_PAGE"
          ],
          "description": "Required. The targeted location on the search results page. This is required for campaigns where the AdvertisingChannelType is SEARCH and the bidding strategy type is TARGET_IMPRESSION_SHARE."
        },
        "maxCpcBidCeiling": {
          "description": "Optional. Ceiling of max CPC bids in micros set by automated bidders. This is optional for campaigns with an AdvertisingChannelType of SEARCH and a bidding strategy type of TARGET_IMPRESSION_SHARE.",
          "type": "string",
          "format": "int64"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services_GenerateRecommendationsRequest_TargetImpressionShareInfo",
      "description": "Current Target Impression Share information of the campaign."
    },
    "GoogleAdsSearchads360V23Resources_AssetSet_MerchantCenterFeed": {
      "id": "GoogleAdsSearchads360V23Resources_AssetSet_MerchantCenterFeed",
      "description": "Merchant ID and Feed Label from Google Merchant Center.",
      "type": "object",
      "properties": {
        "merchantId": {
          "description": "Required. Merchant ID from Google Merchant Center",
          "type": "string",
          "format": "int64"
        },
        "feedLabel": {
          "description": "Optional. Feed Label from Google Merchant Center.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources_ConversionAction_ValueSettings": {
      "id": "GoogleAdsSearchads360V23Resources_ConversionAction_ValueSettings",
      "description": "Settings related to the value for conversion events associated with this conversion action.",
      "type": "object",
      "properties": {
        "alwaysUseDefaultValue": {
          "type": "boolean",
          "description": "Controls whether the default value and default currency code are used in place of the value and currency code specified in conversion events for this conversion action."
        },
        "defaultValue": {
          "description": "The value to use when conversion events for this conversion action are sent with an invalid, disallowed or missing value, or when this conversion action is configured to always use the default value.",
          "type": "number",
          "format": "double"
        },
        "defaultCurrencyCode": {
          "type": "string",
          "description": "The currency code to use when conversion events for this conversion action are sent with an invalid or missing currency code, or when this conversion action is configured to always use the default value."
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__GeoTargetConstant": {
      "properties": {
        "targetType": {
          "type": "string",
          "description": "Output only. Geo target constant target type.",
          "readOnly": true
        },
        "canonicalName": {
          "type": "string",
          "description": "Output only. The fully qualified English name, consisting of the target's name and that of its parent and country.",
          "readOnly": true
        },
        "countryCode": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The ISO-3166-1 alpha-2 country code that is associated with the target."
        },
        "name": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Geo target constant English name."
        },
        "resourceName": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The resource name of the geo target constant. Geo target constant resource names have the form: `geoTargetConstants/{geo_target_constant_id}`"
        },
        "status": {
          "description": "Output only. Geo target constant status.",
          "type": "string",
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The geo target constant is valid.",
            "The geo target constant is obsolete and will be removed."
          ],
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVAL_PLANNED"
          ]
        },
        "id": {
          "type": "string",
          "format": "int64",
          "description": "Output only. The ID of the geo target constant.",
          "readOnly": true
        },
        "parentGeoTarget": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The resource name of the parent geo target constant. Geo target constant resource names have the form: `geoTargetConstants/{parent_geo_target_constant_id}`"
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__GeoTargetConstant",
      "description": "A geo target constant.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__HotelStateInfo": {
      "id": "GoogleAdsSearchads360V23Common__HotelStateInfo",
      "description": "State the hotel is located in.",
      "type": "object",
      "properties": {
        "stateCriterion": {
          "type": "string",
          "description": "The Geo Target Constant resource name."
        }
      }
    },
    "GoogleAdsSearchads360V23Errors__ErrorCode": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Errors__ErrorCode",
      "description": "The error reason represented by type and enum.",
      "properties": {
        "searchTermInsightError": {
          "description": "The reasons for the Search term insight error",
          "type": "string",
          "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."
          ],
          "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"
          ]
        },
        "urlFieldError": {
          "type": "string",
          "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."
          ],
          "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"
          ],
          "description": "An error with a URL field mutate."
        },
        "fieldError": {
          "type": "string",
          "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."
          ],
          "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"
          ],
          "description": "The reasons for the field error"
        },
        "videoCampaignError": {
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MUTATE_REQUIRES_RESERVATION"
          ],
          "description": "An error with a Video Campaign mutate."
        },
        "mutateError": {
          "type": "string",
          "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."
          ],
          "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"
          ],
          "description": "An error with a mutate"
        },
        "keywordPlanAdGroupKeywordError": {
          "type": "string",
          "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."
          ],
          "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"
          ],
          "description": "The reason for keyword plan ad group keyword error."
        },
        "customerFeedError": {
          "description": "The reasons for the customer feed error",
          "type": "string",
          "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."
          ],
          "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"
          ]
        },
        "identityVerificationError": {
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NO_EFFECTIVE_BILLING",
            "BILLING_NOT_ON_MONTHLY_INVOICING",
            "VERIFICATION_ALREADY_STARTED"
          ],
          "description": "The reasons for an identity verification error."
        },
        "managerLinkError": {
          "description": "The reasons for the manager link error",
          "type": "string",
          "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."
          ],
          "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"
          ]
        },
        "operationAccessDeniedError": {
          "type": "string",
          "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."
          ],
          "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"
          ],
          "description": "The reasons for the operation access denied error"
        },
        "userListCustomerTypeError": {
          "description": "The reasons for a user list customer type error.",
          "type": "string",
          "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."
          ],
          "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"
          ]
        },
        "fieldMaskError": {
          "description": "An error with a field mask",
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "FIELD_MASK_MISSING",
            "FIELD_MASK_NOT_ALLOWED",
            "FIELD_NOT_FOUND",
            "FIELD_HAS_SUBFIELDS"
          ]
        },
        "campaignExperimentError": {
          "description": "The reasons for the campaign experiment error",
          "type": "string",
          "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."
          ],
          "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"
          ]
        },
        "conversionGoalCampaignConfigError": {
          "description": "The reasons for the conversion goal campaign config error",
          "type": "string",
          "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."
          ],
          "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"
          ]
        },
        "adGroupAdError": {
          "type": "string",
          "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."
          ],
          "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"
          ],
          "description": "The reasons for the ad group ad error"
        },
        "userListError": {
          "type": "string",
          "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."
          ],
          "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"
          ],
          "description": "The reasons for the user list error"
        },
        "campaignFeedError": {
          "type": "string",
          "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."
          ],
          "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"
          ],
          "description": "The reasons for the campaign feed error"
        },
        "youtubeVideoRegistrationError": {
          "type": "string",
          "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)."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "VIDEO_NOT_FOUND",
            "VIDEO_NOT_ACCESSIBLE",
            "VIDEO_NOT_ELIGIBLE"
          ],
          "description": "The reasons for YouTube video registration errors."
        },
        "assetGroupSignalError": {
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "TOO_MANY_WORDS",
            "SEARCH_THEME_POLICY_VIOLATION",
            "AUDIENCE_WITH_WRONG_ASSET_GROUP_ID"
          ],
          "description": "The reasons for the asset group hint error"
        },
        "changeStatusError": {
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "START_DATE_TOO_OLD",
            "CHANGE_DATE_RANGE_INFINITE",
            "CHANGE_DATE_RANGE_NEGATIVE",
            "LIMIT_NOT_SPECIFIED",
            "INVALID_LIMIT_CLAUSE"
          ],
          "description": "The reasons for the change status error"
        },
        "adGroupCriterionCustomizerError": {
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Only keyword type criterion is allowed to link customizer attribute."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CRITERION_IS_NOT_KEYWORD"
          ],
          "description": "The reasons for the ad group criterion customizer error."
        },
        "notAllowlistedError": {
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Customer is not allowlisted for accessing this feature."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CUSTOMER_NOT_ALLOWLISTED_FOR_THIS_FEATURE"
          ],
          "description": "The reasons for the not allowlisted error"
        },
        "campaignCustomizerError": {
          "description": "The reasons for the campaign customizer error.",
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN"
          ]
        },
        "biddingStrategyError": {
          "type": "string",
          "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."
          ],
          "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"
          ],
          "description": "An error with a Bidding Strategy mutate."
        },
        "imageError": {
          "description": "The reasons for the image error",
          "type": "string",
          "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."
          ],
          "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"
          ]
        },
        "sharedSetError": {
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CUSTOMER_CANNOT_CREATE_SHARED_SET_OF_THIS_TYPE",
            "DUPLICATE_NAME",
            "SHARED_SET_REMOVED",
            "SHARED_SET_IN_USE"
          ],
          "description": "The reasons for the shared set error"
        },
        "incentiveError": {
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_INCENTIVE_ID"
          ],
          "description": "The reasons for the incentive error"
        },
        "biddingError": {
          "type": "string",
          "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."
          ],
          "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"
          ],
          "description": "The reasons for the bidding errors"
        },
        "conversionCustomVariableError": {
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DUPLICATE_NAME",
            "DUPLICATE_TAG",
            "RESERVED_TAG"
          ],
          "description": "The reasons for the conversion custom variable error"
        },
        "sizeLimitError": {
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "REQUEST_SIZE_LIMIT_EXCEEDED",
            "RESPONSE_SIZE_LIMIT_EXCEEDED"
          ],
          "description": "The reasons for the size limit error"
        },
        "customerCustomizerError": {
          "description": "The reasons for the customer customizer error.",
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN"
          ]
        },
        "conversionActionError": {
          "type": "string",
          "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."
          ],
          "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"
          ],
          "description": "The reasons for the conversion action error"
        },
        "policyViolationError": {
          "description": "The reasons for the policy violation error",
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "A policy was violated. See PolicyViolationDetails for more detail."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "POLICY_ERROR"
          ]
        },
        "partialFailureError": {
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PARTIAL_FAILURE_MODE_REQUIRED"
          ],
          "description": "The reasons for the mutate job error"
        },
        "adCustomizerError": {
          "description": "The reasons for the ad customizer error",
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "COUNTDOWN_INVALID_DATE_FORMAT",
            "COUNTDOWN_DATE_IN_PAST",
            "COUNTDOWN_INVALID_LOCALE",
            "COUNTDOWN_INVALID_START_DAYS_BEFORE",
            "UNKNOWN_USER_LIST"
          ]
        },
        "resourceCountLimitExceededError": {
          "description": "The reasons for the resource count limit exceeded error",
          "type": "string",
          "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."
          ],
          "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"
          ]
        },
        "internalError": {
          "description": "An unexpected server-side error.",
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INTERNAL_ERROR",
            "ERROR_CODE_NOT_PUBLISHED",
            "TRANSIENT_ERROR",
            "DEADLINE_EXCEEDED"
          ]
        },
        "extensionSettingError": {
          "description": "The reasons for the extension setting error",
          "type": "string",
          "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."
          ],
          "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"
          ]
        },
        "queryError": {
          "type": "string",
          "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."
          ],
          "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"
          ],
          "description": "An error with the query"
        },
        "dateError": {
          "description": "The reasons for the date error",
          "type": "string",
          "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."
          ],
          "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"
          ]
        },
        "campaignGoalConfigError": {
          "type": "string",
          "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."
          ],
          "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"
          ],
          "description": "The reasons for the campaign goal config error."
        },
        "customerManagerLinkError": {
          "description": "The reasons for the customer manager link error",
          "type": "string",
          "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"
          ],
          "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"
          ]
        },
        "adError": {
          "description": "An error with an Ad Group Ad mutate.",
          "type": "string",
          "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`."
          ],
          "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"
          ]
        },
        "smartCampaignError": {
          "description": "The reasons for the Smart campaign error",
          "type": "string",
          "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."
          ],
          "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"
          ]
        },
        "mediaBundleError": {
          "description": "The reasons for the media bundle error",
          "type": "string",
          "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."
          ],
          "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"
          ]
        },
        "conversionValueRuleSetError": {
          "description": "The reasons for the conversion value rule set error",
          "type": "string",
          "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."
          ],
          "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"
          ]
        },
        "billingSetupError": {
          "type": "string",
          "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."
          ],
          "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"
          ],
          "description": "The reasons for the billing setup error"
        },
        "adGroupFeedError": {
          "type": "string",
          "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."
          ],
          "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"
          ],
          "description": "The reasons for the ad group feed error"
        },
        "keywordPlanError": {
          "description": "The reason for keyword plan error.",
          "type": "string",
          "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."
          ],
          "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"
          ]
        },
        "contextError": {
          "description": "The reasons for the context error",
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "OPERATION_NOT_PERMITTED_FOR_CONTEXT",
            "OPERATION_NOT_PERMITTED_FOR_REMOVED_RESOURCE"
          ]
        },
        "authenticationError": {
          "description": "Indicates failure to properly authenticate user.",
          "type": "string",
          "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."
          ],
          "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"
          ]
        },
        "stringFormatError": {
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ILLEGAL_CHARS",
            "INVALID_FORMAT"
          ],
          "description": "The reasons for the string format error"
        },
        "assetGroupError": {
          "description": "The reasons for the asset group error",
          "type": "string",
          "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."
          ],
          "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"
          ]
        },
        "headerError": {
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_LOGIN_CUSTOMER_ID",
            "INVALID_LINKED_CUSTOMER_ID"
          ],
          "description": "The reasons for the header error."
        },
        "keywordPlanAdGroupError": {
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_NAME",
            "DUPLICATE_NAME"
          ],
          "description": "The reason for keyword plan ad group error."
        },
        "labelError": {
          "description": "The reason for the label error.",
          "type": "string",
          "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."
          ],
          "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"
          ]
        },
        "sharedCriterionError": {
          "description": "The reasons for the shared criterion error",
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The criterion is not appropriate for the shared set type."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CRITERION_TYPE_NOT_ALLOWED_FOR_SHARED_SET_TYPE"
          ]
        },
        "productLinkError": {
          "description": "The reasons for the product link error",
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_OPERATION",
            "CREATION_NOT_PERMITTED",
            "INVITATION_EXISTS",
            "LINK_EXISTS"
          ]
        },
        "languageCodeError": {
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "LANGUAGE_CODE_NOT_FOUND",
            "INVALID_LANGUAGE_CODE"
          ],
          "description": "The reasons for the language code error"
        },
        "customerSkAdNetworkConversionValueSchemaError": {
          "description": "The reasons for the customer SK Ad network conversion value schema error",
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_LINK_ID",
            "INVALID_APP_ID",
            "INVALID_SCHEMA",
            "LINK_CODE_NOT_FOUND",
            "INVALID_EVENT_COUNTER",
            "INVALID_EVENT_NAME"
          ]
        },
        "customColumnError": {
          "description": "The reasons for the custom column error",
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CUSTOM_COLUMN_NOT_FOUND",
            "CUSTOM_COLUMN_NOT_AVAILABLE"
          ]
        },
        "campaignBudgetError": {
          "type": "string",
          "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."
          ],
          "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"
          ],
          "description": "An error with a Campaign Budget mutate."
        },
        "campaignCriterionError": {
          "type": "string",
          "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."
          ],
          "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"
          ],
          "description": "The reasons for the campaign criterion error"
        },
        "keywordPlanCampaignError": {
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_NAME",
            "INVALID_LANGUAGES",
            "INVALID_GEOS",
            "DUPLICATE_NAME",
            "MAX_GEOS_EXCEEDED",
            "MAX_LANGUAGES_EXCEEDED"
          ],
          "description": "The reason for keyword plan campaign error."
        },
        "assetSetLinkError": {
          "type": "string",
          "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."
          ],
          "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"
          ],
          "description": "The reasons for the asset set link error"
        },
        "adParameterError": {
          "description": "The reasons for the ad parameter error",
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AD_GROUP_CRITERION_MUST_BE_KEYWORD",
            "INVALID_INSERTION_TEXT_FORMAT"
          ]
        },
        "campaignLifecycleGoalError": {
          "type": "string",
          "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."
          ],
          "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"
          ],
          "description": "The reasons for the campaign lifecycle goal error"
        },
        "operatorError": {
          "description": "The reasons for the operator error",
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Operator not supported."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "OPERATOR_NOT_SUPPORTED"
          ]
        },
        "databaseError": {
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CONCURRENT_MODIFICATION",
            "DATA_CONSTRAINT_VIOLATION",
            "REQUEST_TOO_LARGE"
          ],
          "description": "The reasons for the database error."
        },
        "policyValidationParameterError": {
          "type": "string",
          "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."
          ],
          "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"
          ],
          "description": "The reasons for the policy validation parameter error"
        },
        "experimentError": {
          "type": "string",
          "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."
          ],
          "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"
          ],
          "description": "The reasons for the experiment error"
        },
        "distinctError": {
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Duplicate element.",
            "Duplicate type."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DUPLICATE_ELEMENT",
            "DUPLICATE_TYPE"
          ],
          "description": "The reasons for the distinct error"
        },
        "policyFindingError": {
          "description": "The reasons for the policy finding error.",
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "POLICY_FINDING",
            "POLICY_TOPIC_NOT_FOUND"
          ]
        },
        "finalUrlExpansionAssetViewError": {
          "description": "The reasons for the final url expansion asset view error",
          "type": "string",
          "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."
          ],
          "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"
          ]
        },
        "criterionError": {
          "description": "The reasons for the criterion error",
          "type": "string",
          "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."
          ],
          "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"
          ]
        },
        "requestError": {
          "description": "An error caused by the request",
          "type": "string",
          "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."
          ],
          "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"
          ]
        },
        "countryCodeError": {
          "description": "The reasons for the country code error",
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The country code is invalid."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_COUNTRY_CODE"
          ]
        },
        "audienceInsightsError": {
          "description": "The reasons for the Audience Insights error",
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The dimensions cannot be used with topic audience combinations."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DIMENSION_INCOMPATIBLE_WITH_TOPIC_AUDIENCE_COMBINATIONS"
          ]
        },
        "collectionSizeError": {
          "description": "The reasons for the collection size error",
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Too few.",
            "Too many."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "TOO_FEW",
            "TOO_MANY"
          ]
        },
        "campaignSharedSetError": {
          "description": "The reasons for the campaign shared set error",
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SHARED_SET_ACCESS_DENIED"
          ]
        },
        "experimentArmError": {
          "type": "string",
          "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."
          ],
          "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"
          ],
          "description": "The reasons for the experiment arm error"
        },
        "customerError": {
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "STATUS_CHANGE_DISALLOWED",
            "ACCOUNT_NOT_SET_UP",
            "CREATION_DENIED_FOR_POLICY_VIOLATION",
            "CREATION_DENIED_INELIGIBLE_MCC"
          ],
          "description": "The reasons for the customer error"
        },
        "dateRangeError": {
          "description": "The reasons for the date range error",
          "type": "string",
          "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."
          ],
          "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"
          ]
        },
        "idError": {
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "ID not found"
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NOT_FOUND"
          ],
          "description": "The reasons for the id error"
        },
        "resourceAccessDeniedError": {
          "description": "The reasons for the resource access denied error",
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "User did not have write access."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "WRITE_ACCESS_DENIED"
          ]
        },
        "assetGenerationError": {
          "type": "string",
          "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."
          ],
          "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"
          ],
          "description": "The reasons for the GenAI asset generation error."
        },
        "reachPlanError": {
          "description": "The reasons for the reach plan error",
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NOT_FORECASTABLE_MISSING_RATE",
            "NOT_FORECASTABLE_NOT_ENOUGH_INVENTORY",
            "NOT_FORECASTABLE_ACCOUNT_NOT_ENABLED"
          ]
        },
        "adxError": {
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Attempt to use non-AdX feature by AdX customer."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "UNSUPPORTED_FEATURE"
          ],
          "description": "The reasons for the adx error"
        },
        "currencyCodeError": {
          "description": "The reasons for the currency code error",
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The currency code is not supported."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "UNSUPPORTED"
          ]
        },
        "keywordPlanIdeaError": {
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "URL_CRAWL_ERROR",
            "INVALID_VALUE"
          ],
          "description": "The reason for keyword idea error."
        },
        "brandGuidelinesMigrationError": {
          "type": "string",
          "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."
          ],
          "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"
          ],
          "description": "The reasons for the brand guidelines migration error."
        },
        "adGroupCriterionError": {
          "description": "Indicates failure to properly authenticate user.",
          "type": "string",
          "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."
          ],
          "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"
          ]
        },
        "feedItemTargetError": {
          "description": "The reasons for the feed item target error",
          "type": "string",
          "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."
          ],
          "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"
          ]
        },
        "campaignError": {
          "type": "string",
          "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."
          ],
          "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"
          ],
          "description": "An error with a Campaign mutate."
        },
        "feedItemValidationError": {
          "type": "string",
          "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."
          ],
          "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"
          ],
          "description": "The reasons for the feed item validation error"
        },
        "assetGroupAssetError": {
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DUPLICATE_RESOURCE",
            "EXPANDABLE_TAGS_NOT_ALLOWED_IN_DESCRIPTION",
            "AD_CUSTOMIZER_NOT_SUPPORTED",
            "HOTEL_PROPERTY_ASSET_NOT_LINKED_TO_CAMPAIGN"
          ],
          "description": "The reasons for the asset group asset error"
        },
        "adGroupError": {
          "description": "An error with an Ad Group mutate.",
          "type": "string",
          "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."
          ],
          "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"
          ]
        },
        "conversionUploadError": {
          "type": "string",
          "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."
          ],
          "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"
          ],
          "description": "The reasons for the conversion upload error"
        },
        "invoiceError": {
          "description": "The reasons for the invoice error",
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "YEAR_MONTH_TOO_OLD",
            "NOT_INVOICED_CUSTOMER",
            "BILLING_SETUP_NOT_APPROVED",
            "BILLING_SETUP_NOT_ON_MONTHLY_INVOICING",
            "NON_SERVING_CUSTOMER"
          ]
        },
        "customAudienceError": {
          "type": "string",
          "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."
          ],
          "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"
          ],
          "description": "The reasons for the custom audience error"
        },
        "quotaError": {
          "type": "string",
          "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."
          ],
          "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"
          ],
          "description": "An error with the amount of quota remaining."
        },
        "authorizationError": {
          "type": "string",
          "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."
          ],
          "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"
          ],
          "description": "An error encountered when trying to authorize a user."
        },
        "feedItemSetLinkError": {
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "FEED_ID_MISMATCH",
            "NO_MUTATE_ALLOWED_FOR_DYNAMIC_SET"
          ],
          "description": "The reasons for the feed item set link error"
        },
        "accessInvitationError": {
          "type": "string",
          "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"
          ],
          "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"
          ],
          "description": "The reasons for the access invitation error"
        },
        "assetGroupListingGroupFilterError": {
          "type": "string",
          "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."
          ],
          "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"
          ],
          "description": "The reasons for the asset group listing group filter error"
        },
        "campaignDraftError": {
          "type": "string",
          "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."
          ],
          "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"
          ],
          "description": "The reasons for the campaign draft error"
        },
        "userDataError": {
          "description": "The reasons for the user data error.",
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "OPERATIONS_FOR_CUSTOMER_MATCH_NOT_ALLOWED",
            "TOO_MANY_USER_IDENTIFIERS",
            "USER_LIST_NOT_APPLICABLE"
          ]
        },
        "feedItemSetError": {
          "type": "string",
          "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."
          ],
          "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"
          ],
          "description": "The reasons for the feed item set error"
        },
        "paymentsAccountError": {
          "description": "The reasons for errors in payments accounts service",
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Manager customers are not supported for payments account service."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NOT_SUPPORTED_FOR_MANAGER_CUSTOMER"
          ]
        },
        "adSharingError": {
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AD_GROUP_ALREADY_CONTAINS_AD",
            "INCOMPATIBLE_AD_UNDER_AD_GROUP",
            "CANNOT_SHARE_INACTIVE_AD"
          ],
          "description": "The reasons for the ad sharing error"
        },
        "feedMappingError": {
          "description": "The reasons for the feed mapping error",
          "type": "string",
          "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."
          ],
          "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"
          ]
        },
        "mediaFileError": {
          "type": "string",
          "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."
          ],
          "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"
          ],
          "description": "The reasons for the media file error"
        },
        "functionError": {
          "description": "The reasons for the function error",
          "type": "string",
          "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."
          ],
          "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"
          ]
        },
        "customInterestError": {
          "description": "The reasons for the custom interest error",
          "type": "string",
          "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."
          ],
          "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"
          ]
        },
        "customerLifecycleGoalError": {
          "description": "The reasons for the customer lifecycle goal error",
          "type": "string",
          "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."
          ],
          "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"
          ]
        },
        "functionParsingError": {
          "description": "The reasons for the function parsing error",
          "type": "string",
          "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."
          ],
          "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"
          ]
        },
        "audienceError": {
          "type": "string",
          "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."
          ],
          "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"
          ],
          "description": "The reasons for the audience error"
        },
        "shareablePreviewError": {
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "TOO_MANY_ASSET_GROUPS_IN_REQUEST",
            "ASSET_GROUP_DOES_NOT_EXIST_UNDER_THIS_CUSTOMER"
          ],
          "description": "The reasons for the shareable preview error."
        },
        "listOperationError": {
          "description": "An error with a list operation.",
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "REQUIRED_FIELD_MISSING",
            "DUPLICATE_VALUES"
          ]
        },
        "dataLinkError": {
          "type": "string",
          "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."
          ],
          "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"
          ],
          "description": "The reasons for the data link error"
        },
        "extensionFeedItemError": {
          "type": "string",
          "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."
          ],
          "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"
          ],
          "description": "The reasons for the extension feed item error"
        },
        "customConversionGoalError": {
          "type": "string",
          "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."
          ],
          "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"
          ],
          "description": "The reasons for the custom conversion goal error"
        },
        "shoppingProductError": {
          "description": "The reasons for error in querying shopping product.",
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MISSING_CAMPAIGN_FILTER",
            "MISSING_AD_GROUP_FILTER",
            "UNSUPPORTED_DATE_SEGMENTATION"
          ]
        },
        "assetError": {
          "description": "The reasons for the asset error",
          "type": "string",
          "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."
          ],
          "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"
          ]
        },
        "notEmptyError": {
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Empty list."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "EMPTY_LIST"
          ],
          "description": "The reasons for the not empty error"
        },
        "nullError": {
          "description": "The reasons for the null error",
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Specified list/container must not contain any null elements"
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NULL_CONTENT"
          ]
        },
        "accountBudgetProposalError": {
          "description": "The reasons for account budget proposal errors.",
          "type": "string",
          "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."
          ],
          "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"
          ]
        },
        "settingError": {
          "description": "The reasons for the setting error",
          "type": "string",
          "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."
          ],
          "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"
          ]
        },
        "assetSetAssetError": {
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_ASSET_TYPE",
            "INVALID_ASSET_SET_TYPE",
            "DUPLICATE_EXTERNAL_KEY",
            "PARENT_LINKAGE_DOES_NOT_EXIST"
          ],
          "description": "The reasons for the asset set asset error"
        },
        "goalError": {
          "type": "string",
          "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."
          ],
          "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"
          ],
          "description": "The reasons for the goal error."
        },
        "conversionValueRuleError": {
          "description": "The reasons for the conversion value rule error",
          "type": "string",
          "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."
          ],
          "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"
          ]
        },
        "campaignConversionGoalError": {
          "description": "The reasons for the campaign conversion goal error",
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CANNOT_USE_CAMPAIGN_GOAL_FOR_SEARCH_ADS_360_MANAGED_CAMPAIGN",
            "CANNOT_USE_STORE_SALE_GOAL_FOR_PERFORMANCE_MAX_CAMPAIGN"
          ]
        },
        "enumError": {
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The enum value is not permitted."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENUM_VALUE_NOT_PERMITTED"
          ],
          "description": "The reason for enum error."
        },
        "feedItemError": {
          "description": "The reasons for the feed item error",
          "type": "string",
          "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."
          ],
          "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"
          ]
        },
        "currencyError": {
          "description": "The reasons for the currency errors.",
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Bid must be a multiple of billable unit."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "VALUE_NOT_MULTIPLE_OF_BILLABLE_UNIT"
          ]
        },
        "recommendationSubscriptionError": {
          "description": "The reasons for the recommendation subscription error.",
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN"
          ]
        },
        "customerClientLinkError": {
          "description": "The reasons for the customer client link error",
          "type": "string",
          "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."
          ],
          "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"
          ]
        },
        "assetSetError": {
          "type": "string",
          "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."
          ],
          "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"
          ],
          "description": "The reasons for the asset set error"
        },
        "conversionAdjustmentUploadError": {
          "type": "string",
          "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`."
          ],
          "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"
          ],
          "description": "The reasons for the conversion adjustment upload error"
        },
        "mediaUploadError": {
          "type": "string",
          "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."
          ],
          "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"
          ],
          "description": "The reasons for media uploading errors."
        },
        "timeZoneError": {
          "description": "The reasons for the time zone error",
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Time zone is not valid."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_TIME_ZONE"
          ]
        },
        "feedError": {
          "description": "The reasons for the feed error",
          "type": "string",
          "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."
          ],
          "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"
          ]
        },
        "changeEventError": {
          "description": "The reasons for the change event error",
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "START_DATE_TOO_OLD",
            "CHANGE_DATE_RANGE_INFINITE",
            "CHANGE_DATE_RANGE_NEGATIVE",
            "LIMIT_NOT_SPECIFIED",
            "INVALID_LIMIT_CLAUSE"
          ]
        },
        "automaticallyCreatedAssetRemovalError": {
          "type": "string",
          "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."
          ],
          "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"
          ],
          "description": "The reasons for error in automatically created asset removal action."
        },
        "customerUserAccessError": {
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_USER_ID",
            "REMOVAL_DISALLOWED",
            "DISALLOWED_ACCESS_ROLE",
            "LAST_ADMIN_USER_OF_SERVING_CUSTOMER",
            "LAST_ADMIN_USER_OF_MANAGER"
          ],
          "description": "The reasons for the customer user access mutate error"
        },
        "regionCodeError": {
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Invalid region code."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_REGION_CODE"
          ],
          "description": "The reasons for the region code error"
        },
        "multiplierError": {
          "description": "The reasons for the multiplier error",
          "type": "string",
          "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"
          ],
          "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"
          ]
        },
        "clickViewError": {
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "EXPECTED_FILTER_ON_A_SINGLE_DAY",
            "DATE_TOO_OLD"
          ],
          "description": "The reasons for the click view error"
        },
        "stringLengthError": {
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "EMPTY",
            "TOO_SHORT",
            "TOO_LONG"
          ],
          "description": "The reasons for the string length error"
        },
        "offlineUserDataJobError": {
          "type": "string",
          "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."
          ],
          "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"
          ],
          "description": "The reasons for the offline user data job error."
        },
        "newResourceCreationError": {
          "description": "The reasons for the new resource creation error",
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CANNOT_SET_ID_FOR_CREATE",
            "DUPLICATE_TEMP_IDS",
            "TEMP_ID_RESOURCE_HAD_ERRORS"
          ]
        },
        "assetLinkError": {
          "description": "The reasons for the asset link error",
          "type": "string",
          "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."
          ],
          "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"
          ]
        },
        "merchantCenterError": {
          "description": "Container for enum describing possible merchant center errors.",
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MERCHANT_ID_CANNOT_BE_ACCESSED",
            "CUSTOMER_NOT_ALLOWED_FOR_SHOPPING_PERFORMANCE_MAX"
          ]
        },
        "geoTargetConstantSuggestionError": {
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "LOCATION_NAME_SIZE_LIMIT",
            "LOCATION_NAME_LIMIT",
            "INVALID_COUNTRY_CODE",
            "REQUEST_PARAMETERS_UNSET"
          ],
          "description": "The reasons for the geo target constant suggestion error."
        },
        "recommendationError": {
          "description": "The reasons for error in applying a recommendation",
          "type": "string",
          "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."
          ],
          "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"
          ]
        },
        "rangeError": {
          "description": "The reasons for the range error",
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Too low.",
            "Too high."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "TOO_LOW",
            "TOO_HIGH"
          ]
        },
        "keywordPlanCampaignKeywordError": {
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Keyword plan campaign keyword is positive."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CAMPAIGN_KEYWORD_IS_POSITIVE"
          ],
          "description": "The reason for keyword plan campaign keyword error."
        },
        "accountLinkError": {
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_STATUS",
            "PERMISSION_DENIED"
          ],
          "description": "The reasons for the account link status change error"
        },
        "thirdPartyAppAnalyticsLinkError": {
          "type": "string",
          "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"
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_ANALYTICS_PROVIDER_ID",
            "INVALID_MOBILE_APP_ID",
            "MOBILE_APP_IS_NOT_ENABLED",
            "CANNOT_REGENERATE_SHAREABLE_LINK_ID_FOR_REMOVED_LINK"
          ],
          "description": "The reasons for the third party app analytics link mutate error"
        },
        "batchJobError": {
          "description": "The reasons for the batch job error",
          "type": "string",
          "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."
          ],
          "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"
          ]
        },
        "invalidParameterError": {
          "description": "The reasons for invalid parameter errors.",
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The specified currency code is invalid."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_CURRENCY_CODE"
          ]
        },
        "customizerAttributeError": {
          "description": "The reasons for the customizer attribute error.",
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "CustomizerAttribute name matches that of another active CustomizerAttribute."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DUPLICATE_CUSTOMIZER_ATTRIBUTE_NAME"
          ]
        },
        "adGroupCustomizerError": {
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN"
          ],
          "description": "The reasons for the ad group customizer error."
        },
        "productLinkInvitationError": {
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_STATUS",
            "PERMISSION_DENIED",
            "NO_INVITATION_REQUIRED",
            "CUSTOMER_NOT_PERMITTED_TO_CREATE_INVITATION"
          ],
          "description": "The reasons for the product link invitation error"
        },
        "feedAttributeReferenceError": {
          "description": "The reasons for the feed attribute reference error",
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CANNOT_REFERENCE_REMOVED_FEED",
            "INVALID_FEED_NAME",
            "INVALID_FEED_ATTRIBUTE_NAME"
          ]
        },
        "adGroupBidModifierError": {
          "description": "The reasons for the ad group bid modifier error",
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CRITERION_ID_NOT_SUPPORTED",
            "CANNOT_OVERRIDE_OPTED_OUT_CAMPAIGN_CRITERION_BID_MODIFIER"
          ]
        },
        "benchmarksError": {
          "description": "The reasons for the Benchmarks error.",
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MAX_QUERY_COMPLEXITY_EXCEEDED"
          ]
        }
      }
    },
    "GoogleAdsSearchads360V23Common__AdScheduleInfo": {
      "properties": {
        "dayOfWeek": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Monday.",
            "Tuesday.",
            "Wednesday.",
            "Thursday.",
            "Friday.",
            "Saturday.",
            "Sunday."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MONDAY",
            "TUESDAY",
            "WEDNESDAY",
            "THURSDAY",
            "FRIDAY",
            "SATURDAY",
            "SUNDAY"
          ],
          "description": "Day of the week the schedule applies to. This field is required for CREATE operations and is prohibited on UPDATE operations."
        },
        "endMinute": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Zero minutes past the hour.",
            "Fifteen minutes past the hour.",
            "Thirty minutes past the hour.",
            "Forty-five minutes past the hour."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ZERO",
            "FIFTEEN",
            "THIRTY",
            "FORTY_FIVE"
          ],
          "description": "Minutes after the end hour at which this schedule ends. The schedule is exclusive of the end minute. This field is required for CREATE operations and is prohibited on UPDATE operations."
        },
        "startMinute": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Zero minutes past the hour.",
            "Fifteen minutes past the hour.",
            "Thirty minutes past the hour.",
            "Forty-five minutes past the hour."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ZERO",
            "FIFTEEN",
            "THIRTY",
            "FORTY_FIVE"
          ],
          "description": "Minutes after the start hour at which this schedule starts. This field is required for CREATE operations and is prohibited on UPDATE operations."
        },
        "startHour": {
          "type": "integer",
          "format": "int32",
          "description": "Starting hour in 24 hour time. This field must be between 0 and 23, inclusive. This field is required for CREATE operations and is prohibited on UPDATE operations."
        },
        "endHour": {
          "type": "integer",
          "format": "int32",
          "description": "Ending hour in 24 hour time; 24 signifies end of the day. This field must be between 0 and 24, inclusive. This field is required for CREATE operations and is prohibited on UPDATE operations."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__AdScheduleInfo",
      "description": "Represents an AdSchedule criterion. AdSchedule is specified as the day of the week and a time interval within which ads will be shown. No more than six AdSchedules can be added for the same day."
    },
    "GoogleAdsSearchads360V23Resources__GranularLicenseStatus": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__GranularLicenseStatus",
      "description": "License status at geo + vertical level.",
      "properties": {
        "geoCriterionId": {
          "readOnly": true,
          "description": "Output only. Geotarget criterion ID associated with the status. Can be on country or state/province geo level, depending on requirements and location. See https://developers.google.com/google-ads/api/data/geotargets for more information.",
          "type": "string",
          "format": "int64"
        },
        "categoryId": {
          "readOnly": true,
          "description": "Output only. Service category associated with the status. For example, xcat:service_area_business_plumber. For more details see: https://developers.google.com/google-ads/api/data/codes-formats#local_services_ids",
          "type": "string"
        },
        "verificationStatus": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NEEDS_REVIEW",
            "FAILED",
            "PASSED",
            "NOT_APPLICABLE",
            "NO_SUBMISSION",
            "PARTIAL_SUBMISSION",
            "PENDING_ESCALATION"
          ],
          "description": "Output only. Granular license status, per geo + vertical.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Unknown verification status.",
            "Verification has started, but has not finished.",
            "Verification has failed.",
            "Verification has passed.",
            "Verification is not applicable.",
            "Verification is required but pending submission.",
            "Not all required verification has been submitted.",
            "Verification needs review by Local Services Ads Ops Specialist."
          ]
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__GoogleAdsIdentifier": {
      "properties": {
        "customer": {
          "type": "string",
          "description": "Immutable. The resource name of the Google Ads account. This field is required and should not be empty when creating a new Google Ads link. It is unable to be modified after the creation of the link."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__GoogleAdsIdentifier",
      "description": "The identifier for Google Ads account."
    },
    "GoogleAdsSearchads360V23Services__MutateConversionValueRuleSetsRequest": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateConversionValueRuleSetsRequest",
      "description": "Request message for ConversionValueRuleSetService.MutateConversionValueRuleSets.",
      "properties": {
        "responseContentType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation."
        },
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        },
        "operations": {
          "description": "Required. The list of operations to perform on individual conversion value rule sets.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__ConversionValueRuleSetOperation"
          }
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        }
      }
    },
    "GoogleAdsSearchads360V23Resources_Recommendation_ResponsiveSearchAdImproveAdStrengthRecommendation": {
      "properties": {
        "currentAd": {
          "readOnly": true,
          "description": "Output only. The current ad to be updated.",
          "$ref": "GoogleAdsSearchads360V23Resources__Ad"
        },
        "recommendedAd": {
          "description": "Output only. The updated ad.",
          "$ref": "GoogleAdsSearchads360V23Resources__Ad",
          "readOnly": true
        }
      },
      "id": "GoogleAdsSearchads360V23Resources_Recommendation_ResponsiveSearchAdImproveAdStrengthRecommendation",
      "description": "The responsive search ad improve ad strength recommendation.",
      "type": "object"
    },
    "GoogleAdsSearchads360V0Errors__SearchAds360Error": {
      "id": "GoogleAdsSearchads360V0Errors__SearchAds360Error",
      "description": "Search Ads 360-specific error.",
      "type": "object",
      "properties": {
        "errorCode": {
          "description": "An enum value that indicates which error occurred.",
          "$ref": "GoogleAdsSearchads360V0Errors__ErrorCode"
        },
        "location": {
          "description": "Describes the part of the request proto that caused the error.",
          "$ref": "GoogleAdsSearchads360V0Errors__ErrorLocation"
        },
        "details": {
          "description": "Additional error details, which are returned by certain error codes. Most error codes do not include details.",
          "$ref": "GoogleAdsSearchads360V0Errors__ErrorDetails"
        },
        "message": {
          "description": "A human-readable description of the error.",
          "type": "string"
        },
        "trigger": {
          "description": "The value that triggered the error.",
          "$ref": "GoogleAdsSearchads360V0Common__Value"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__PromoteExperimentMetadata": {
      "properties": {
        "experiment": {
          "description": "Required. The promoted experiment.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__PromoteExperimentMetadata",
      "description": "The metadata of the promoted experiment."
    },
    "GoogleAdsSearchads360V23Common__PlacementInfo": {
      "properties": {
        "url": {
          "description": "URL of the placement. For example, \"http://www.domain.com\".",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__PlacementInfo",
      "description": "A placement criterion. This can be used to modify bids for sites when targeting the content network."
    },
    "GoogleAdsSearchads360V23Resources_RecommendationCampaignBudgetRecommendation_CampaignBudgetRecommendationOption": {
      "properties": {
        "budgetAmountMicros": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. The budget amount for this option."
        },
        "impact": {
          "description": "Output only. The impact estimate if budget is changed to amount specified in this option.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_RecommendationImpact",
          "readOnly": true
        }
      },
      "id": "GoogleAdsSearchads360V23Resources_RecommendationCampaignBudgetRecommendation_CampaignBudgetRecommendationOption",
      "description": "The impact estimates for a given budget amount.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources__Asset": {
      "id": "GoogleAdsSearchads360V23Resources__Asset",
      "description": "Asset is a part of an ad which can be shared across multiple ads. It can be an image (ImageAsset), a video (YoutubeVideoAsset), etc. Assets are immutable and cannot be removed. To stop an asset from serving, remove the asset from the entity that is using it.",
      "type": "object",
      "properties": {
        "callAsset": {
          "description": "A call asset.",
          "$ref": "GoogleAdsSearchads360V23Common__CallAsset"
        },
        "structuredSnippetAsset": {
          "description": "A structured snippet asset.",
          "$ref": "GoogleAdsSearchads360V23Common__StructuredSnippetAsset"
        },
        "policySummary": {
          "description": "Output only. Policy information for the asset.",
          "$ref": "GoogleAdsSearchads360V23Resources__AssetPolicySummary",
          "readOnly": true
        },
        "searchAds360LocationAsset": {
          "readOnly": true,
          "description": "Output only. A unified location asset.",
          "$ref": "GoogleAdsSearchads360V23Common__UnifiedLocationAsset"
        },
        "finalUrls": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of possible final URLs after all cross domain redirects."
        },
        "finalUrlSuffix": {
          "type": "string",
          "description": "URL template for appending params to landing page URLs served with parallel tracking."
        },
        "lastModifiedTime": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The datetime when this asset was last modified. The datetime is in the customer's time zone and in \"yyyy-MM-dd HH:mm:ss.ssssss\" format."
        },
        "mobileAppAsset": {
          "description": "A mobile app asset.",
          "$ref": "GoogleAdsSearchads360V23Common__MobileAppAsset"
        },
        "dynamicLocalAsset": {
          "description": "A dynamic local asset.",
          "$ref": "GoogleAdsSearchads360V23Common__DynamicLocalAsset"
        },
        "textAsset": {
          "description": "Immutable. A text asset.",
          "$ref": "GoogleAdsSearchads360V23Common__TextAsset"
        },
        "status": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED",
            "ARCHIVED",
            "PENDING_SYSTEM_GENERATED"
          ],
          "readOnly": true,
          "description": "Output only. The status of the asset.",
          "type": "string",
          "enumDescriptions": [
            "The status has not been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The asset is enabled.",
            "The asset is removed.",
            "The asset is archived.",
            "The asset is system generated pending user review."
          ]
        },
        "dynamicFlightsAsset": {
          "description": "A dynamic flights asset.",
          "$ref": "GoogleAdsSearchads360V23Common__DynamicFlightsAsset"
        },
        "engineStatus": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is active.",
            "The asset is active limited.",
            "The asset is disapproved (not eligible).",
            "The asset is inactive (pending).",
            "The asset has been removed."
          ],
          "description": "Output only. The Engine Status for an asset.",
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SERVING",
            "SERVING_LIMITED",
            "DISAPPROVED",
            "DISABLED",
            "REMOVED"
          ]
        },
        "id": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. The ID of the asset."
        },
        "dynamicHotelsAndRentalsAsset": {
          "description": "A dynamic hotels and rentals asset.",
          "$ref": "GoogleAdsSearchads360V23Common__DynamicHotelsAndRentalsAsset"
        },
        "mediaBundleAsset": {
          "description": "Immutable. A media bundle asset.",
          "$ref": "GoogleAdsSearchads360V23Common__MediaBundleAsset"
        },
        "appDeepLinkAsset": {
          "description": "Immutable. An app deep link asset.",
          "$ref": "GoogleAdsSearchads360V23Common__AppDeepLinkAsset"
        },
        "youtubeVideoAsset": {
          "description": "Immutable. A YouTube video asset.",
          "$ref": "GoogleAdsSearchads360V23Common__YoutubeVideoAsset"
        },
        "creationTime": {
          "type": "string",
          "description": "Output only. The timestamp when this asset was created. The timestamp is in the customer's time zone and in \"yyyy-MM-dd HH:mm:ss\" format.",
          "readOnly": true
        },
        "trackingUrlTemplate": {
          "description": "URL template for constructing a tracking URL.",
          "type": "string"
        },
        "demandGenCarouselCardAsset": {
          "description": "Immutable. A Demand Gen carousel card asset.",
          "$ref": "GoogleAdsSearchads360V23Common__DemandGenCarouselCardAsset"
        },
        "finalMobileUrls": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of possible final mobile URLs after all cross domain redirects."
        },
        "searchAds360CallAsset": {
          "description": "Output only. A unified call asset.",
          "$ref": "GoogleAdsSearchads360V23Common__UnifiedCallAsset",
          "readOnly": true
        },
        "pageFeedAsset": {
          "description": "A page feed asset.",
          "$ref": "GoogleAdsSearchads360V23Common__PageFeedAsset"
        },
        "dynamicTravelAsset": {
          "description": "A dynamic travel asset.",
          "$ref": "GoogleAdsSearchads360V23Common__DynamicTravelAsset"
        },
        "imageAsset": {
          "readOnly": true,
          "description": "Output only. An image asset.",
          "$ref": "GoogleAdsSearchads360V23Common__ImageAsset"
        },
        "dynamicRealEstateAsset": {
          "description": "A dynamic real estate asset.",
          "$ref": "GoogleAdsSearchads360V23Common__DynamicRealEstateAsset"
        },
        "callToActionAsset": {
          "description": "Immutable. A call to action asset.",
          "$ref": "GoogleAdsSearchads360V23Common__CallToActionAsset"
        },
        "type": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "YOUTUBE_VIDEO",
            "MEDIA_BUNDLE",
            "IMAGE",
            "TEXT",
            "LEAD_FORM",
            "BOOK_ON_GOOGLE",
            "PROMOTION",
            "CALLOUT",
            "STRUCTURED_SNIPPET",
            "SITELINK",
            "PAGE_FEED",
            "DYNAMIC_EDUCATION",
            "MOBILE_APP",
            "HOTEL_CALLOUT",
            "CALL",
            "PRICE",
            "CALL_TO_ACTION",
            "DYNAMIC_REAL_ESTATE",
            "DYNAMIC_CUSTOM",
            "DYNAMIC_HOTELS_AND_RENTALS",
            "DYNAMIC_FLIGHTS",
            "DYNAMIC_TRAVEL",
            "DYNAMIC_LOCAL",
            "DYNAMIC_JOBS",
            "LOCATION",
            "HOTEL_PROPERTY",
            "DEMAND_GEN_CAROUSEL_CARD",
            "BUSINESS_MESSAGE",
            "APP_DEEP_LINK"
          ],
          "readOnly": true,
          "description": "Output only. Type of the asset.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "YouTube video asset.",
            "Media bundle asset.",
            "Image asset.",
            "Text asset.",
            "Lead form asset.",
            "Book on Google asset.",
            "Promotion asset.",
            "Callout asset.",
            "Structured Snippet asset.",
            "Sitelink asset.",
            "Page Feed asset.",
            "Dynamic Education asset.",
            "Mobile app asset.",
            "Hotel callout asset.",
            "Call asset.",
            "Price asset.",
            "Call to action asset.",
            "Dynamic real estate asset.",
            "Dynamic custom asset.",
            "Dynamic hotels and rentals asset.",
            "Dynamic flights asset.",
            "Dynamic travel asset.",
            "Dynamic local asset.",
            "Dynamic jobs asset.",
            "Location asset.",
            "Hotel property asset.",
            "Demand Gen Carousel Card asset.",
            "Business message asset.",
            "App deep link asset."
          ]
        },
        "calloutAsset": {
          "description": "A callout asset.",
          "$ref": "GoogleAdsSearchads360V23Common__CalloutAsset"
        },
        "bookOnGoogleAsset": {
          "description": "A book on google asset.",
          "$ref": "GoogleAdsSearchads360V23Common__BookOnGoogleAsset"
        },
        "dynamicCustomAsset": {
          "description": "A dynamic custom asset.",
          "$ref": "GoogleAdsSearchads360V23Common__DynamicCustomAsset"
        },
        "searchAds360CalloutAsset": {
          "description": "Output only. A unified callout asset.",
          "$ref": "GoogleAdsSearchads360V23Common__UnifiedCalloutAsset",
          "readOnly": true
        },
        "hotelCalloutAsset": {
          "description": "A hotel callout asset.",
          "$ref": "GoogleAdsSearchads360V23Common__HotelCalloutAsset"
        },
        "searchAds360SitelinkAsset": {
          "readOnly": true,
          "description": "Output only. A unified sitelink asset.",
          "$ref": "GoogleAdsSearchads360V23Common__UnifiedSitelinkAsset"
        },
        "leadFormAsset": {
          "description": "A lead form asset.",
          "$ref": "GoogleAdsSearchads360V23Common__LeadFormAsset"
        },
        "fieldTypePolicySummaries": {
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Resources__AssetFieldTypePolicySummary"
          },
          "description": "Output only. Policy information for the asset for each FieldType."
        },
        "dynamicEducationAsset": {
          "description": "A dynamic education asset.",
          "$ref": "GoogleAdsSearchads360V23Common__DynamicEducationAsset"
        },
        "hotelPropertyAsset": {
          "description": "Immutable. A hotel property asset.",
          "$ref": "GoogleAdsSearchads360V23Common__HotelPropertyAsset"
        },
        "orientation": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "LANDSCAPE",
            "PORTRAIT",
            "SQUARE"
          ],
          "description": "Output only. Orientation of the asset. This is only supported for image and video assets.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Landscape orientation.",
            "Portrait orientation.",
            "Square orientation."
          ]
        },
        "locationAsset": {
          "readOnly": true,
          "description": "Output only. A location asset.",
          "$ref": "GoogleAdsSearchads360V23Common__LocationAsset"
        },
        "sitelinkAsset": {
          "description": "A sitelink asset.",
          "$ref": "GoogleAdsSearchads360V23Common__SitelinkAsset"
        },
        "dynamicJobsAsset": {
          "description": "A dynamic jobs asset.",
          "$ref": "GoogleAdsSearchads360V23Common__DynamicJobsAsset"
        },
        "priceAsset": {
          "description": "A price asset.",
          "$ref": "GoogleAdsSearchads360V23Common__PriceAsset"
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the asset. Asset resource names have the form: `customers/{customer_id}/assets/{asset_id}`"
        },
        "promotionAsset": {
          "description": "A promotion asset.",
          "$ref": "GoogleAdsSearchads360V23Common__PromotionAsset"
        },
        "urlCustomParameters": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__CustomParameter"
          },
          "description": "A list of mappings to be used for substituting URL custom parameter tags in the tracking_url_template, final_urls, and/or final_mobile_urls."
        },
        "source": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset or asset link is provided by advertiser.",
            "The asset or asset link is generated by Google."
          ],
          "description": "Output only. Source of the asset.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADVERTISER",
            "AUTOMATICALLY_CREATED"
          ],
          "readOnly": true
        },
        "searchAds360PageFeedAsset": {
          "description": "Output only. A unified page feed asset.",
          "$ref": "GoogleAdsSearchads360V23Common__UnifiedPageFeedAsset",
          "readOnly": true
        },
        "businessMessageAsset": {
          "description": "A business message asset.",
          "$ref": "GoogleAdsSearchads360V23Common__BusinessMessageAsset"
        },
        "name": {
          "description": "Optional name of the asset.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__CpvBidSimulationPoint": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__CpvBidSimulationPoint",
      "description": "Projected metrics for a specific CPV bid amount.",
      "properties": {
        "views": {
          "type": "string",
          "format": "int64",
          "description": "Projected number of views."
        },
        "cpvBidMicros": {
          "description": "The simulated CPV bid upon which projected metrics are based.",
          "type": "string",
          "format": "int64"
        },
        "costMicros": {
          "description": "Projected cost in micros.",
          "type": "string",
          "format": "int64"
        },
        "impressions": {
          "description": "Projected number of impressions.",
          "type": "string",
          "format": "int64"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__TargetImpressionShareSimulationPoint": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__TargetImpressionShareSimulationPoint",
      "description": "Projected metrics for a specific target impression share value.",
      "properties": {
        "impressions": {
          "type": "string",
          "format": "int64",
          "description": "Projected number of impressions."
        },
        "topSlotImpressions": {
          "type": "string",
          "format": "int64",
          "description": "Projected number of top slot impressions. Only search advertising channel type supports this field."
        },
        "requiredCpcBidCeilingMicros": {
          "type": "string",
          "format": "int64",
          "description": "Projected required daily cpc bid ceiling that the advertiser must set to realize this simulation, in micros of the advertiser currency."
        },
        "clicks": {
          "description": "Projected number of clicks.",
          "type": "string",
          "format": "int64"
        },
        "biddableConversionsValue": {
          "type": "number",
          "format": "double",
          "description": "Projected total value of biddable conversions."
        },
        "costMicros": {
          "description": "Projected cost in micros.",
          "type": "string",
          "format": "int64"
        },
        "absoluteTopImpressions": {
          "type": "string",
          "format": "int64",
          "description": "Projected number of absolute top impressions. Only search advertising channel type supports this field."
        },
        "biddableConversions": {
          "description": "Projected number of biddable conversions.",
          "type": "number",
          "format": "double"
        },
        "targetImpressionShareMicros": {
          "type": "string",
          "format": "int64",
          "description": "The simulated target impression share value (in micros) upon which projected metrics are based. For example, 10% impression share, which is equal to 0.1, is stored as 100_000. This value is validated and will not exceed 1M (100%)."
        },
        "requiredBudgetAmountMicros": {
          "description": "Projected required daily budget that the advertiser must set in order to receive the estimated traffic, in micros of advertiser currency.",
          "type": "string",
          "format": "int64"
        }
      }
    },
    "GoogleAdsSearchads360V23Common_PolicyTopicEvidence_DestinationNotWorking": {
      "type": "object",
      "id": "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.",
      "properties": {
        "expandedUrl": {
          "description": "The full URL that didn't work.",
          "type": "string"
        },
        "device": {
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DESKTOP",
            "ANDROID",
            "IOS"
          ],
          "description": "The type of device that failed to load the URL."
        },
        "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"
        },
        "httpErrorCode": {
          "description": "The HTTP error code.",
          "type": "string",
          "format": "int64"
        },
        "dnsErrorType": {
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HOSTNAME_NOT_FOUND",
            "GOOGLE_CRAWLER_DNS_ISSUE"
          ],
          "description": "The type of DNS error."
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__GranularInsuranceStatus": {
      "properties": {
        "verificationStatus": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Unknown verification status.",
            "Verification has started, but has not finished.",
            "Verification has failed.",
            "Verification has passed.",
            "Verification is not applicable.",
            "Verification is required but pending submission.",
            "Not all required verification has been submitted.",
            "Verification needs review by Local Services Ads Ops Specialist."
          ],
          "description": "Output only. Granular insurance status, per geo + vertical.",
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NEEDS_REVIEW",
            "FAILED",
            "PASSED",
            "NOT_APPLICABLE",
            "NO_SUBMISSION",
            "PARTIAL_SUBMISSION",
            "PENDING_ESCALATION"
          ]
        },
        "geoCriterionId": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. Geotarget criterion ID associated with the status. Can be on country or state/province geo level, depending on requirements and location. See https://developers.google.com/google-ads/api/data/geotargets for more information."
        },
        "categoryId": {
          "description": "Output only. Service category associated with the status. For example, xcat:service_area_business_plumber. For more details see: https://developers.google.com/google-ads/api/data/codes-formats#local_services_ids",
          "type": "string",
          "readOnly": true
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__GranularInsuranceStatus",
      "description": "Insurance status at geo + vertical level.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services_GenerateRecommendationsRequest_AdGroupInfo": {
      "id": "GoogleAdsSearchads360V23Services_GenerateRecommendationsRequest_AdGroupInfo",
      "description": "Current AdGroup Information of the campaign.",
      "type": "object",
      "properties": {
        "adGroupType": {
          "description": "Optional. AdGroup Type of the AdGroup. This field is necessary for the following recommendation_types if ad_group_info is set: KEYWORD",
          "type": "string",
          "enumDescriptions": [
            "The type has not been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "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 default ad group type for Hotel campaigns.",
            "The type for ad groups in Smart Shopping campaigns.",
            "Short unskippable in-stream video ads.",
            "TrueView (skippable) in-stream video ads.",
            "TrueView in-display video ads.",
            "Unskippable in-stream video ads.",
            "Ad group type for Dynamic Search Ads ad groups.",
            "The type for ad groups in Shopping Comparison Listing campaigns.",
            "The ad group type for Promoted Hotel ad groups.",
            "Video responsive ad groups.",
            "Video efficient reach ad groups.",
            "Ad group type for Smart campaigns.",
            "Ad group type for Travel campaigns."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SEARCH_STANDARD",
            "DISPLAY_STANDARD",
            "SHOPPING_PRODUCT_ADS",
            "HOTEL_ADS",
            "SHOPPING_SMART_ADS",
            "VIDEO_BUMPER",
            "VIDEO_TRUE_VIEW_IN_STREAM",
            "VIDEO_TRUE_VIEW_IN_DISPLAY",
            "VIDEO_NON_SKIPPABLE_IN_STREAM",
            "SEARCH_DYNAMIC_ADS",
            "SHOPPING_COMPARISON_LISTING_ADS",
            "PROMOTED_HOTEL_ADS",
            "VIDEO_RESPONSIVE",
            "VIDEO_EFFICIENT_REACH",
            "SMART_CAMPAIGN_ADS",
            "TRAVEL_ADS"
          ]
        },
        "keywords": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__KeywordInfo"
          },
          "description": "Optional. Current keywords. This field is optional for the following recommendation_types if ad_group_info is set: KEYWORD"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__CustomerConversionGoal": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__CustomerConversionGoal",
      "description": "Biddability control for conversion actions with a matching category and origin.",
      "properties": {
        "category": {
          "description": "The conversion category of this customer conversion goal. Only conversion actions that have this category will be included in this goal.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Default category.",
            "User visiting a page.",
            "Purchase, sales, or \"order placed\" event.",
            "Signup user action.",
            "Software download action (as for an app).",
            "The addition of items to a shopping cart or bag on an advertiser site.",
            "When someone enters the checkout flow on an advertiser site.",
            "The start of a paid subscription for a product or service.",
            "A call to indicate interest in an advertiser's offering.",
            "A lead conversion imported from an external source into Google Ads.",
            "A submission of a form on an advertiser site indicating business interest.",
            "A booking of an appointment with an advertiser's business.",
            "A quote or price estimate request.",
            "A search for an advertiser's business location with intention to visit.",
            "A click to an advertiser's partner's site.",
            "A call, SMS, email, chat or other type of contact to an advertiser.",
            "A website engagement event such as long site time or a Google Analytics (GA) Smart Goal. Intended to be used for GA, Firebase, GA Gold goal imports.",
            "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DEFAULT",
            "PAGE_VIEW",
            "PURCHASE",
            "SIGNUP",
            "DOWNLOAD",
            "ADD_TO_CART",
            "BEGIN_CHECKOUT",
            "SUBSCRIBE_PAID",
            "PHONE_CALL_LEAD",
            "IMPORTED_LEAD",
            "SUBMIT_LEAD_FORM",
            "BOOK_APPOINTMENT",
            "REQUEST_QUOTE",
            "GET_DIRECTIONS",
            "OUTBOUND_CLICK",
            "CONTACT",
            "ENGAGEMENT",
            "STORE_VISIT",
            "STORE_SALE",
            "QUALIFIED_LEAD",
            "CONVERTED_LEAD"
          ]
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the customer conversion goal. Customer conversion goal resource names have the form: `customers/{customer_id}/customerConversionGoals/{category}~{origin}`"
        },
        "origin": {
          "description": "The conversion origin of this customer conversion goal. Only conversion actions that have this conversion origin will be included in this goal.",
          "type": "string",
          "enumDescriptions": [
            "The conversion origin has not been specified.",
            "The conversion origin is not known in this version.",
            "Conversion that occurs when a user visits a website or takes an action there after viewing an ad.",
            "Conversions reported by an offline pipeline which collects local actions from Google-hosted pages (for example, Google Maps, Google Place Page, etc) and attributes them to relevant ad events.",
            "Conversion that occurs when a user performs an action through any app platforms.",
            "Conversion that occurs when a user makes a call from ads.",
            "Conversion that occurs when a user visits or makes a purchase at a physical store.",
            "Conversion that occurs on YouTube.",
            "Conversions that occur through Floodlight tag."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "WEBSITE",
            "GOOGLE_HOSTED",
            "APP",
            "CALL_FROM_ADS",
            "STORE",
            "YOUTUBE_HOSTED",
            "FLOODLIGHT"
          ]
        },
        "biddable": {
          "description": "The biddability of the customer conversion goal.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateKeywordPlansRequest": {
      "id": "GoogleAdsSearchads360V23Services__MutateKeywordPlansRequest",
      "description": "Request message for KeywordPlanService.MutateKeywordPlans.",
      "type": "object",
      "properties": {
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        },
        "operations": {
          "description": "Required. The list of operations to perform on individual keyword plans.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__KeywordPlanOperation"
          }
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__CreateCustomerClientResponse": {
      "properties": {
        "invitationLink": {
          "type": "string",
          "description": "Link for inviting user to access the created customer. Accessible to allowlisted customers only."
        },
        "resourceName": {
          "type": "string",
          "description": "The resource name of the newly created customer. Customer resource names have the form: `customers/{customer_id}`."
        }
      },
      "id": "GoogleAdsSearchads360V23Services__CreateCustomerClientResponse",
      "description": "Response message for CreateCustomerClient mutate.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateAdParametersResponse": {
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "description": "All results for the mutate.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateAdParameterResult"
          }
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateAdParametersResponse",
      "description": "Response message for an ad parameter mutate."
    },
    "GoogleAdsSearchads360V23Services__MutateCustomerResponse": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateCustomerResponse",
      "description": "Response message for customer mutate.",
      "properties": {
        "result": {
          "description": "Result for the mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateCustomerResult"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources_Recommendation_SearchPartnersOptInRecommendation": {
      "properties": {},
      "id": "GoogleAdsSearchads360V23Resources_Recommendation_SearchPartnersOptInRecommendation",
      "description": "The Search Partners Opt-In recommendation.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources__OfflineUserDataJob": {
      "id": "GoogleAdsSearchads360V23Resources__OfflineUserDataJob",
      "description": "A job containing offline user data of store visitors, or user list members that will be processed asynchronously. The uploaded data isn't readable and the processing results of the job can only be read using",
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Store Sales Direct data for self service.",
            "Store Sales Direct data for third party.",
            "Customer Match user list data.",
            "Customer Match with attribute data."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "STORE_SALES_UPLOAD_FIRST_PARTY",
            "STORE_SALES_UPLOAD_THIRD_PARTY",
            "CUSTOMER_MATCH_USER_LIST",
            "CUSTOMER_MATCH_WITH_ATTRIBUTES"
          ],
          "description": "Immutable. Type of the job."
        },
        "operationMetadata": {
          "description": "Output only. Metadata of offline user data job depicting match rate range.",
          "$ref": "GoogleAdsSearchads360V23Resources__OfflineUserDataJobMetadata",
          "readOnly": true
        },
        "customerMatchUserListMetadata": {
          "description": "Immutable. Metadata for data updates to a CRM-based user list.",
          "$ref": "GoogleAdsSearchads360V23Common__CustomerMatchUserListMetadata"
        },
        "resourceName": {
          "description": "Immutable. The resource name of the offline user data job. Offline user data job resource names have the form: `customers/{customer_id}/offlineUserDataJobs/{offline_user_data_job_id}`",
          "type": "string"
        },
        "id": {
          "description": "Output only. ID of this offline user data job.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        },
        "failureReason": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INSUFFICIENT_MATCHED_TRANSACTIONS",
            "INSUFFICIENT_TRANSACTIONS",
            "HIGH_AVERAGE_TRANSACTION_VALUE",
            "LOW_AVERAGE_TRANSACTION_VALUE",
            "NEWLY_OBSERVED_CURRENCY_CODE"
          ],
          "description": "Output only. Reason for the processing failure, if status is FAILED.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The matched transactions are insufficient.",
            "The uploaded transactions are insufficient.",
            "The average transaction value is unusually high for your account. If this is intended, contact support to request an exception. Learn more at https://support.google.com/google-ads/answer/10018944#transaction_value",
            "The average transaction value is unusually low for your account. If this is intended, contact support to request an exception. Learn more at https://support.google.com/google-ads/answer/10018944#transaction_value",
            "There's a currency code that you haven't used before in your uploads. If this is intended, contact support to request an exception. Learn more at https://support.google.com/google-ads/answer/10018944#Unrecognized_currency"
          ]
        },
        "externalId": {
          "description": "Immutable. User specified job ID.",
          "type": "string",
          "format": "int64"
        },
        "status": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PENDING",
            "RUNNING",
            "SUCCESS",
            "FAILED"
          ],
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The job has been successfully created and pending for uploading.",
            "Upload(s) have been accepted and data is being processed.",
            "Uploaded data has been successfully processed. The job might have no operations, which can happen if the job was run without any operations added, or if all operations failed validation individually when attempting to add them to the job.",
            "Uploaded data has failed to be processed. Some operations may have been successfully processed."
          ],
          "description": "Output only. Status of the job."
        },
        "storeSalesMetadata": {
          "description": "Immutable. Metadata for store sales data update.",
          "$ref": "GoogleAdsSearchads360V23Common__StoreSalesMetadata"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__GenerateReachForecastRequest": {
      "properties": {
        "currencyCode": {
          "type": "string",
          "description": "The currency code. Three-character ISO 4217 currency code."
        },
        "forecastMetricOptions": {
          "description": "Controls the forecast metrics returned in the response.",
          "$ref": "GoogleAdsSearchads360V23Services__ForecastMetricOptions"
        },
        "cookieFrequencyCap": {
          "type": "integer",
          "format": "int32",
          "description": "Chosen cookie frequency cap to be applied to each planned product. This is equivalent to the frequency cap exposed in Google Ads when creating a campaign, it represents the maximum number of times an ad can be shown to the same user. If not specified, no cap is applied. This field is deprecated in v4 and will eventually be removed. Use cookie_frequency_cap_setting instead."
        },
        "cookieFrequencyCapSetting": {
          "description": "Chosen cookie frequency cap to be applied to each planned product. This is equivalent to the frequency cap exposed in Google Ads when creating a campaign, it represents the maximum number of times an ad can be shown to the same user during a specified time interval. If not specified, a default of 0 (no cap) is applied. This field replaces the deprecated cookie_frequency_cap field.",
          "$ref": "GoogleAdsSearchads360V23Services__FrequencyCap"
        },
        "effectiveFrequencyLimit": {
          "description": "The highest minimum effective frequency (the number of times a person was exposed to the ad) value [1-10] to include in Forecast.effective_frequency_breakdowns. If not specified, Forecast.effective_frequency_breakdowns will not be provided. The effective frequency value provided here will also be used as the minimum effective frequency for the reported reach metrics. This field cannot be combined with the min_effective_frequency field.",
          "$ref": "GoogleAdsSearchads360V23Services__EffectiveFrequencyLimit"
        },
        "minEffectiveFrequency": {
          "type": "integer",
          "format": "int32",
          "description": "Chosen minimum effective frequency (the number of times a person was exposed to the ad) for the reported reach metrics [1-10]. This won't affect the targeting, but just the reporting. If not specified, a default of 1 is applied. This field cannot be combined with the effective_frequency_limit field."
        },
        "targeting": {
          "description": "The targeting to be applied to all products selected in the product mix. This is planned targeting: execution details might vary based on the advertising product, consult an implementation specialist. See specific metrics for details on how targeting affects them.",
          "$ref": "GoogleAdsSearchads360V23Services__Targeting"
        },
        "reachApplicationInfo": {
          "description": "Optional. Additional information on the application issuing the request.",
          "$ref": "GoogleAdsSearchads360V23Common__AdditionalApplicationInfo"
        },
        "campaignDuration": {
          "description": "Required. Campaign duration.",
          "$ref": "GoogleAdsSearchads360V23Services__CampaignDuration"
        },
        "plannedProducts": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__PlannedProduct"
          },
          "description": "Required. The products to be forecast. The max number of allowed planned products is 15."
        },
        "customerReachGroup": {
          "description": "The name of the customer being planned for. This is a user-defined value.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__GenerateReachForecastRequest",
      "description": "Request message for ReachPlanService.GenerateReachForecast."
    },
    "GoogleAdsSearchads360V23Services_GenerateRecommendationsRequest_AssetGroupInfo": {
      "id": "GoogleAdsSearchads360V23Services_GenerateRecommendationsRequest_AssetGroupInfo",
      "description": "Current AssetGroup information of the campaign.",
      "type": "object",
      "properties": {
        "finalUrl": {
          "type": "string",
          "description": "Required. Current url of the asset group. This field is necessary for the following recommendation_types if asset_group_info is set: CAMPAIGN_BUDGET"
        },
        "description": {
          "description": "Optional. Current descriptions of the asset group. This field is optional for the following recommendation_types if asset_group_info is set: CAMPAIGN_BUDGET",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "headline": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Optional. Current headlines of the asset group. This field is optional for the following recommendation_types if asset_group_info is set: CAMPAIGN_BUDGET"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__ProductCategoryConstant": {
      "properties": {
        "productCategoryConstantParent": {
          "readOnly": true,
          "description": "Output only. Resource name of the parent product category.",
          "type": "string"
        },
        "level": {
          "description": "Output only. Level of the product category.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Level 1.",
            "Level 2.",
            "Level 3.",
            "Level 4.",
            "Level 5."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "LEVEL1",
            "LEVEL2",
            "LEVEL3",
            "LEVEL4",
            "LEVEL5"
          ],
          "readOnly": true
        },
        "localizations": {
          "description": "Output only. List of all available localizations of the product category.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Resources_ProductCategoryConstant_ProductCategoryLocalization"
          },
          "readOnly": true
        },
        "resourceName": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The resource name of the product category. Product category resource names have the form: `productCategoryConstants/{level}~{category_id}`"
        },
        "state": {
          "description": "Output only. State of the product category.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The category is enabled.",
            "The category is obsolete. Used only for reporting purposes."
          ],
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "OBSOLETE"
          ]
        },
        "categoryId": {
          "description": "Output only. The ID of the product category. This ID is equivalent to the google_product_category ID as described in this article: https://support.google.com/merchants/answer/6324436.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__ProductCategoryConstant",
      "description": "A Product Category."
    },
    "GoogleAdsSearchads360V23Common__SitelinkAsset": {
      "properties": {
        "description2": {
          "type": "string",
          "description": "Second line of the description for the sitelink. If set, the length should be between 1 and 35, inclusive, and description1 must also be set."
        },
        "startDate": {
          "type": "string",
          "description": "Start date of when this asset is effective and can begin serving, in yyyy-MM-dd format."
        },
        "description1": {
          "type": "string",
          "description": "First line of the description for the sitelink. If set, the length should be between 1 and 35, inclusive, and description2 must also be set."
        },
        "linkText": {
          "type": "string",
          "description": "Required. URL display text for the sitelink. The length of this string should be between 1 and 25, inclusive."
        },
        "adScheduleTargets": {
          "description": "List of non-overlapping schedules specifying all time intervals for which the asset may serve. There can be a maximum of 6 schedules per day, 42 in total.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AdScheduleInfo"
          }
        },
        "endDate": {
          "description": "Last date of when this asset is effective and still serving, in yyyy-MM-dd format.",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V23Common__SitelinkAsset",
      "description": "A Sitelink asset.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__FlexibleRuleUserListInfo": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__FlexibleRuleUserListInfo",
      "description": "Flexible rule representation of visitors with one or multiple actions. The flexible user list is defined by two lists of operands – inclusive_operands and exclusive_operands; each operand represents a set of users based on actions they took in a given timeframe. These lists of operands are combined with the AND_NOT operator, so that users represented by the inclusive operands are included in the user list, minus the users represented by the exclusive operands.",
      "properties": {
        "inclusiveOperands": {
          "description": "Rules representing users that should be included in the user list. These are located on the left side of the AND_NOT operator, and joined together by either AND/OR as specified by the inclusive_rule_operator.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__FlexibleRuleOperandInfo"
          }
        },
        "exclusiveOperands": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__FlexibleRuleOperandInfo"
          },
          "description": "Rules representing users that should be excluded from the user list. These are located on the right side of the AND_NOT operator, and joined together by OR."
        },
        "inclusiveRuleOperator": {
          "description": "Operator that defines how the inclusive operands are combined.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "A AND B.",
            "A OR B."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AND",
            "OR"
          ]
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateCustomerUserAccessRequest": {
      "id": "GoogleAdsSearchads360V23Services__MutateCustomerUserAccessRequest",
      "description": "Mutate Request for CustomerUserAccessService.MutateCustomerUserAccess.",
      "type": "object",
      "properties": {
        "operation": {
          "description": "Required. The operation to perform on the customer",
          "$ref": "GoogleAdsSearchads360V23Services__CustomerUserAccessOperation"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__ConversionValueRuleOperation": {
      "properties": {
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "type": "string",
          "format": "google-fieldmask"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new conversion value rule.",
          "$ref": "GoogleAdsSearchads360V23Resources__ConversionValueRule"
        },
        "update": {
          "description": "Update operation: The conversion value rule is expected to have a valid resource name.",
          "$ref": "GoogleAdsSearchads360V23Resources__ConversionValueRule"
        },
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed conversion value rule is expected, in this format: `customers/{customer_id}/conversionValueRules/{conversion_value_rule_id}`"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__ConversionValueRuleOperation",
      "description": "A single operation (create, update, remove) on a conversion value rule.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__KeywordPlanCampaignOperation": {
      "id": "GoogleAdsSearchads360V23Services__KeywordPlanCampaignOperation",
      "description": "A single operation (create, update, remove) on a Keyword Plan campaign.",
      "type": "object",
      "properties": {
        "updateMask": {
          "type": "string",
          "format": "google-fieldmask",
          "description": "The FieldMask that determines which resource fields are modified in an update."
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new Keyword Plan campaign.",
          "$ref": "GoogleAdsSearchads360V23Resources__KeywordPlanCampaign"
        },
        "update": {
          "description": "Update operation: The Keyword Plan campaign is expected to have a valid resource name.",
          "$ref": "GoogleAdsSearchads360V23Resources__KeywordPlanCampaign"
        },
        "remove": {
          "description": "Remove operation: A resource name for the removed Keyword Plan campaign is expected, in this format: `customers/{customer_id}/keywordPlanCampaigns/{keywordPlan_campaign_id}`",
          "type": "string"
        }
      }
    },
    "GoogleProtobuf__Empty": {
      "type": "object",
      "id": "GoogleProtobuf__Empty",
      "description": "A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }",
      "properties": {}
    },
    "GoogleAdsSearchads360V23Resources_Recommendation_TargetCpaOptInRecommendation": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources_Recommendation_TargetCpaOptInRecommendation",
      "description": "The Target CPA opt-in recommendation.",
      "properties": {
        "options": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Resources_RecommendationTargetCpaOptInRecommendation_TargetCpaOptInRecommendationOption"
          },
          "description": "Output only. The available goals and corresponding options for Target CPA strategy.",
          "readOnly": true
        },
        "recommendedTargetCpaMicros": {
          "readOnly": true,
          "description": "Output only. The recommended average CPA target. See required budget amount and impact of using this recommendation in options list.",
          "type": "string",
          "format": "int64"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__LocationSet": {
      "properties": {
        "locationOwnershipType": {
          "description": "Required. Immutable. Location Ownership Type (owned location or affiliate location).",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Business Owner of location(legacy location extension - LE).",
            "Affiliate location(Third party location extension - ALE)."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BUSINESS_OWNER",
            "AFFILIATE"
          ]
        },
        "businessProfileLocationSet": {
          "description": "Data used to configure a location set populated from Google Business Profile locations.",
          "$ref": "GoogleAdsSearchads360V23Common__BusinessProfileLocationSet"
        },
        "chainLocationSet": {
          "description": "Data used to configure a location on chain set populated with the specified chains.",
          "$ref": "GoogleAdsSearchads360V23Common__ChainSet"
        },
        "mapsLocationSet": {
          "description": "Only set if locations are synced based on selected maps locations",
          "$ref": "GoogleAdsSearchads360V23Common__MapsLocationSet"
        }
      },
      "id": "GoogleAdsSearchads360V23Common__LocationSet",
      "description": "Data related to location set. One of the Google Business Profile (previously known as Google My Business) data, Chain data, and map location data need to be specified.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__CustomAudienceOperation": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__CustomAudienceOperation",
      "description": "A single operation (create, update) on a custom audience.",
      "properties": {
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed custom audience is expected, in this format: `customers/{customer_id}/customAudiences/{custom_audience_id}`"
        },
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "type": "string",
          "format": "google-fieldmask"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new custom audience.",
          "$ref": "GoogleAdsSearchads360V23Resources__CustomAudience"
        },
        "update": {
          "description": "Update operation: The custom audience is expected to have a valid resource name.",
          "$ref": "GoogleAdsSearchads360V23Resources__CustomAudience"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateBiddingStrategiesRequest": {
      "properties": {
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        },
        "operations": {
          "description": "Required. The list of operations to perform on individual bidding strategies.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__BiddingStrategyOperation"
          }
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "responseContentType": {
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "type": "string",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ]
        }
      },
      "id": "GoogleAdsSearchads360V23Services__MutateBiddingStrategiesRequest",
      "description": "Request message for BiddingStrategyService.MutateBiddingStrategies.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateAdGroupAssetSetsRequest": {
      "properties": {
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__AdGroupAssetSetOperation"
          },
          "description": "Required. The list of operations to perform on individual ad group asset sets."
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        },
        "responseContentType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateAdGroupAssetSetsRequest",
      "description": "Request message for AdGroupAssetSetService.MutateAdGroupAssetSets."
    },
    "GoogleAdsSearchads360V23Services__ListBenchmarksLocationsResponse": {
      "properties": {
        "benchmarksLocations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__BenchmarksLocation"
          },
          "description": "The list of locations supported for benchmarks data."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__ListBenchmarksLocationsResponse",
      "description": "Response message for BenchmarksService.ListBenchmarksLocations."
    },
    "GoogleAdsSearchads360V23Resources_AccountBudget_PendingAccountBudgetProposal": {
      "properties": {
        "purchaseOrderNumber": {
          "description": "Output only. A purchase order number is a value that helps users reference this budget in their monthly invoices.",
          "type": "string",
          "readOnly": true
        },
        "spendingLimitType": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INFINITE"
          ],
          "description": "Output only. The spending limit as a well-defined type, for example, INFINITE.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Infinite, indicates unlimited spending power."
          ]
        },
        "notes": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Notes associated with this budget."
        },
        "creationDateTime": {
          "description": "Output only. The time when this account-level budget proposal was created. Formatted as yyyy-MM-dd HH:mm:ss.",
          "type": "string",
          "readOnly": true
        },
        "name": {
          "type": "string",
          "description": "Output only. The name to assign to the account-level budget.",
          "readOnly": true
        },
        "endDateTime": {
          "description": "Output only. The end time in yyyy-MM-dd HH:mm:ss format.",
          "type": "string",
          "readOnly": true
        },
        "accountBudgetProposal": {
          "description": "Output only. The resource name of the proposal. AccountBudgetProposal resource names have the form: `customers/{customer_id}/accountBudgetProposals/{account_budget_proposal_id}`",
          "type": "string",
          "readOnly": true
        },
        "endTimeType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "As soon as possible.",
            "An infinite point in the future."
          ],
          "description": "Output only. The end time as a well-defined type, for example, FOREVER.",
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NOW",
            "FOREVER"
          ]
        },
        "spendingLimitMicros": {
          "description": "Output only. The spending limit in micros. One million is equivalent to one unit.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        },
        "startDateTime": {
          "type": "string",
          "description": "Output only. The start time in yyyy-MM-dd HH:mm:ss format.",
          "readOnly": true
        },
        "proposalType": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CREATE",
            "UPDATE",
            "END",
            "REMOVE"
          ],
          "description": "Output only. The type of this proposal, for example, END to end the budget associated with this proposal.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Identifies a request to create a new budget.",
            "Identifies a request to edit an existing budget.",
            "Identifies a request to end a budget that has already started.",
            "Identifies a request to remove a budget that hasn't started yet."
          ]
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources_AccountBudget_PendingAccountBudgetProposal",
      "description": "A pending proposal associated with the enclosing account-level budget, if applicable."
    },
    "GoogleAdsSearchads360V23Common__CustomerThirdPartyReachIntegrationPartner": {
      "properties": {
        "allowShareCost": {
          "description": "If true, cost data can be shared with this vendor.",
          "type": "boolean"
        },
        "reachIntegrationPartner": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Nielsen.",
            "Comscore.",
            "Kantar.",
            "Video Research.",
            "Gemius.",
            "MediaScope.",
            "AudienceProject",
            "VideoAmp",
            "iSpot.tv"
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NIELSEN",
            "COMSCORE",
            "KANTAR_MILLWARD_BROWN",
            "VIDEO_RESEARCH",
            "GEMIUS",
            "MEDIA_SCOPE",
            "AUDIENCE_PROJECT",
            "VIDEO_AMP",
            "ISPOT_TV"
          ],
          "description": "Allowed Third Party integration partners for reach verification."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__CustomerThirdPartyReachIntegrationPartner",
      "description": "Container for third party reach integration data for Customer."
    },
    "GoogleAdsSearchads360V23Services__EffectiveFrequencyBreakdown": {
      "properties": {
        "onTargetReach": {
          "type": "string",
          "format": "int64",
          "description": "The number of unique people reached at least effective_frequency times that exactly matches the Targeting. Note that a minimum number of unique people must be reached in order for data to be reported. If the minimum number is not met, the on_target_reach value will be rounded to 0."
        },
        "effectiveFrequency": {
          "type": "integer",
          "format": "int32",
          "description": "The effective frequency [1-10]."
        },
        "effectiveCoviewReach": {
          "type": "string",
          "format": "int64",
          "description": "The number of users (including co-viewing users) reached for the associated effective_frequency value."
        },
        "onTargetEffectiveCoviewReach": {
          "type": "string",
          "format": "int64",
          "description": "The number of users (including co-viewing users) reached for the associated effective_frequency value within the specified plan demographic."
        },
        "totalReach": {
          "type": "string",
          "format": "int64",
          "description": "Total number of unique people reached at least effective_frequency times. This includes people that may fall outside the specified Targeting. Note that a minimum number of unique people must be reached in order for data to be reported. If the minimum number is not met, the total_reach value will be rounded to 0."
        }
      },
      "id": "GoogleAdsSearchads360V23Services__EffectiveFrequencyBreakdown",
      "description": "A breakdown of the number of unique people reached at a given effective frequency.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__CampaignThirdPartyViewabilityIntegrationPartner": {
      "properties": {
        "viewabilityIntegrationPartner": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "DoubleVerify.",
            "Integral Ad Science."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DOUBLE_VERIFY",
            "INTEGRAL_AD_SCIENCE"
          ],
          "description": "Allowed third party integration partners for YouTube viewability verification."
        },
        "viewabilityIntegrationPartnerData": {
          "description": "Third party partner data for YouTube viewability verification. This is optional metadata for partners to join or attach data to Ads campaigns.",
          "$ref": "GoogleAdsSearchads360V23Common__ThirdPartyIntegrationPartnerData"
        },
        "shareCost": {
          "type": "boolean",
          "description": "If true, then cost data will be shared with this vendor."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__CampaignThirdPartyViewabilityIntegrationPartner",
      "description": "Container for third party viewability integration data for Campaign."
    },
    "GoogleAdsSearchads360V23Services__MutateAdGroupAdLabelsRequest": {
      "id": "GoogleAdsSearchads360V23Services__MutateAdGroupAdLabelsRequest",
      "description": "Request message for AdGroupAdLabelService.MutateAdGroupAdLabels.",
      "type": "object",
      "properties": {
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        },
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__AdGroupAdLabelOperation"
          },
          "description": "Required. The list of operations to perform on ad group ad labels."
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__ConfigureCustomerLifecycleGoalsRequest": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__ConfigureCustomerLifecycleGoalsRequest",
      "description": "Request message for CustomerLifecycleGoalService.ConfigureCustomerLifecycleGoals.",
      "properties": {
        "operation": {
          "description": "Required. The operation to perform customer lifecycle goal update.",
          "$ref": "GoogleAdsSearchads360V23Services__CustomerLifecycleGoalOperation"
        },
        "validateOnly": {
          "description": "Optional. If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__ApplyIncentiveRequest": {
      "id": "GoogleAdsSearchads360V23Services__ApplyIncentiveRequest",
      "description": "Request message for applying an incentive.",
      "type": "object",
      "properties": {
        "countryCode": {
          "type": "string",
          "description": "Required. User's country code. Required. This field must be equal to the Google Ads account's billing country. Incentive eligibility, terms of service, and reward values are often country-specific. This country code is used to ensure the selected incentive is applicable to the user. Possible country codes: https://developers.google.com/google-ads/api/data/codes-formats#country_codes"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__RemoveProductLinkInvitationRequest": {
      "properties": {
        "resourceName": {
          "description": "Required. The resource name of the product link invitation being removed. expected, in this format: ` `",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__RemoveProductLinkInvitationRequest",
      "description": "Request message for ProductLinkInvitationService.RemoveProductLinkInvitation."
    },
    "GoogleAdsSearchads360V23Services__SmartCampaignNotEligibleDetails": {
      "properties": {
        "notEligibleReason": {
          "description": "The reason why the Smart campaign is not eligible to serve.",
          "type": "string",
          "enumDescriptions": [
            "The status has not been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The campaign is not eligible to serve because of an issue with the account.",
            "The campaign is not eligible to serve because of a payment issue.",
            "The business profile location associated with the campaign has been removed.",
            "All system-generated ads have been disapproved. Consult the policy_summary field in the AdGroupAd resource for more details."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ACCOUNT_ISSUE",
            "BILLING_ISSUE",
            "BUSINESS_PROFILE_LOCATION_REMOVED",
            "ALL_ADS_DISAPPROVED"
          ]
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__SmartCampaignNotEligibleDetails",
      "description": "Details related to Smart campaigns that are not eligible to serve."
    },
    "GoogleAdsSearchads360V23Services__SuggestTravelAssetsResponse": {
      "id": "GoogleAdsSearchads360V23Services__SuggestTravelAssetsResponse",
      "description": "Response message for TravelAssetSuggestionService.SuggestTravelAssets.",
      "type": "object",
      "properties": {
        "hotelAssetSuggestions": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__HotelAssetSuggestion"
          },
          "description": "Asset suggestions for each place ID submitted in the request."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__LifeEventSegment": {
      "properties": {
        "lifeEvent": {
          "type": "string",
          "description": "The life event resource."
        }
      },
      "id": "GoogleAdsSearchads360V23Common__LifeEventSegment",
      "description": "Live event segment.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__ListBatchJobResultsResponse": {
      "properties": {
        "results": {
          "description": "The list of rows that matched the query.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__BatchJobResult"
          }
        },
        "nextPageToken": {
          "type": "string",
          "description": "Pagination token used to retrieve the next page of results. Pass the content of this string as the `page_token` attribute of the next request. `next_page_token` is not returned for the last page."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__ListBatchJobResultsResponse",
      "description": "Response message for BatchJobService.ListBatchJobResults."
    },
    "GoogleAdsSearchads360V23Common__UserData": {
      "properties": {
        "consent": {
          "description": "The consent setting for the user. If set, will override the job level consent for this user.",
          "$ref": "GoogleAdsSearchads360V23Common__Consent"
        },
        "transactionAttribute": {
          "description": "Additional transactions/attributes associated with the user. Required when updating store sales data.",
          "$ref": "GoogleAdsSearchads360V23Common__TransactionAttribute"
        },
        "userAttribute": {
          "description": "Additional attributes associated with the user. Required when updating customer match attributes. These have an expiration of 540 days.",
          "$ref": "GoogleAdsSearchads360V23Common__UserAttribute"
        },
        "userIdentifiers": {
          "description": "User identification info.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__UserIdentifier"
          }
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__UserData",
      "description": "User data holding user identifiers and attributes."
    },
    "GoogleAdsSearchads360V23Services__GenerateAudienceCompositionInsightsRequest": {
      "properties": {
        "dataMonth": {
          "type": "string",
          "description": "The one-month range of historical data to use for insights, in the format \"yyyy-mm\". If unset, insights will be returned for the last thirty days of data."
        },
        "baselineAudience": {
          "description": "The baseline audience to which the audience of interest is being compared.",
          "$ref": "GoogleAdsSearchads360V23Services__InsightsAudience"
        },
        "customerInsightsGroup": {
          "description": "The name of the customer being planned for. This is a user-defined value.",
          "type": "string"
        },
        "audience": {
          "description": "Required. The audience of interest for which insights are being requested.",
          "$ref": "GoogleAdsSearchads360V23Services__InsightsAudience"
        },
        "dimensions": {
          "type": "array",
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "The value is unknown in this version.",
              "A Product & Service category.",
              "A Knowledge Graph entity.",
              "A country, represented by a geo target.",
              "A geographic location within a country.",
              "A YouTube channel.",
              "An Affinity UserInterest.",
              "An In-Market UserInterest.",
              "A Parental Status value (parent, or not a parent).",
              "A household income percentile range.",
              "An age range.",
              "A gender.",
              "A YouTube video.",
              "A device type, such as Mobile, Desktop, Tablet, and Connected TV.",
              "A YouTube Lineup.",
              "A User List.",
              "A Life Event UserInterest."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "CATEGORY",
              "KNOWLEDGE_GRAPH",
              "GEO_TARGET_COUNTRY",
              "SUB_COUNTRY_LOCATION",
              "YOUTUBE_CHANNEL",
              "AFFINITY_USER_INTEREST",
              "IN_MARKET_USER_INTEREST",
              "PARENTAL_STATUS",
              "INCOME_RANGE",
              "AGE_RANGE",
              "GENDER",
              "YOUTUBE_VIDEO",
              "DEVICE",
              "YOUTUBE_LINEUP",
              "USER_LIST",
              "LIFE_EVENT_USER_INTEREST"
            ]
          },
          "description": "Required. The audience dimensions for which composition insights should be returned. Supported dimensions are KNOWLEDGE_GRAPH, GEO_TARGET_COUNTRY, SUB_COUNTRY_LOCATION, YOUTUBE_CHANNEL, YOUTUBE_LINEUP, AFFINITY_USER_INTEREST, IN_MARKET_USER_INTEREST, ."
        },
        "insightsApplicationInfo": {
          "description": "Optional. Additional information on the application issuing the request.",
          "$ref": "GoogleAdsSearchads360V23Common__AdditionalApplicationInfo"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__GenerateAudienceCompositionInsightsRequest",
      "description": "Request message for AudienceInsightsService.GenerateAudienceCompositionInsights.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__CampaignCriterionOperation": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__CampaignCriterionOperation",
      "description": "A single operation (create, update, remove) on a campaign criterion.",
      "properties": {
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "type": "string",
          "format": "google-fieldmask"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new criterion.",
          "$ref": "GoogleAdsSearchads360V23Resources__CampaignCriterion"
        },
        "update": {
          "description": "Update operation: The criterion is expected to have a valid resource name. Note that for smart campaigns, you cannot use the update method to edit the geolocation target.",
          "$ref": "GoogleAdsSearchads360V23Resources__CampaignCriterion"
        },
        "remove": {
          "description": "Remove operation: A resource name for the removed criterion is expected, in this format: `customers/{customer_id}/campaignCriteria/{campaign_id}~{criterion_id}`",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__CarrierInfo": {
      "id": "GoogleAdsSearchads360V23Common__CarrierInfo",
      "description": "Represents a Carrier Criterion.",
      "type": "object",
      "properties": {
        "carrierConstant": {
          "description": "The Carrier constant resource name.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources_Campaign_TravelCampaignSettings": {
      "id": "GoogleAdsSearchads360V23Resources_Campaign_TravelCampaignSettings",
      "description": "Settings for Travel campaign.",
      "type": "object",
      "properties": {
        "travelAccountId": {
          "description": "Immutable. The Travel account ID associated with the Travel campaign.",
          "type": "string",
          "format": "int64"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources_Campaign_VanityPharma": {
      "properties": {
        "vanityPharmaText": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Prescription treatment website with website content in English.",
            "Prescription treatment website with website content in Spanish (Sitio de tratamientos con receta).",
            "Prescription device website with website content in English.",
            "Prescription device website with website content in Spanish (Sitio de dispositivos con receta).",
            "Medical device website with website content in English.",
            "Medical device website with website content in Spanish (Sitio de dispositivos médicos).",
            "Preventative treatment website with website content in English.",
            "Preventative treatment website with website content in Spanish (Sitio de tratamientos preventivos).",
            "Prescription contraception website with website content in English.",
            "Prescription contraception website with website content in Spanish (Sitio de anticonceptivos con receta).",
            "Prescription vaccine website with website content in English.",
            "Prescription vaccine website with website content in Spanish (Sitio de vacunas con receta)."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PRESCRIPTION_TREATMENT_WEBSITE_EN",
            "PRESCRIPTION_TREATMENT_WEBSITE_ES",
            "PRESCRIPTION_DEVICE_WEBSITE_EN",
            "PRESCRIPTION_DEVICE_WEBSITE_ES",
            "MEDICAL_DEVICE_WEBSITE_EN",
            "MEDICAL_DEVICE_WEBSITE_ES",
            "PREVENTATIVE_TREATMENT_WEBSITE_EN",
            "PREVENTATIVE_TREATMENT_WEBSITE_ES",
            "PRESCRIPTION_CONTRACEPTION_WEBSITE_EN",
            "PRESCRIPTION_CONTRACEPTION_WEBSITE_ES",
            "PRESCRIPTION_VACCINE_WEBSITE_EN",
            "PRESCRIPTION_VACCINE_WEBSITE_ES"
          ],
          "description": "The text that will be displayed in display URL of the text ad when website description is the selected display mode for vanity pharma URLs."
        },
        "vanityPharmaDisplayUrlMode": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Replace vanity pharma URL with manufacturer website url.",
            "Replace vanity pharma URL with description of the website."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MANUFACTURER_WEBSITE_URL",
            "WEBSITE_DESCRIPTION"
          ],
          "description": "The display mode for vanity pharma URLs."
        }
      },
      "id": "GoogleAdsSearchads360V23Resources_Campaign_VanityPharma",
      "description": "Describes how unbranded pharma ads will be displayed.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_CalloutAssetParameters": {
      "properties": {
        "adAssetApplyParameters": {
          "description": "Required. Callout assets to be added. This is a required field.",
          "$ref": "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_AdAssetApplyParameters"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_CalloutAssetParameters",
      "description": "Parameters to use when applying callout asset recommendations."
    },
    "GoogleAdsSearchads360V23Services__MutateAdGroupCriterionLabelsResponse": {
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateAdGroupCriterionLabelResult"
          },
          "description": "All results for the mutate."
        }
      },
      "id": "GoogleAdsSearchads360V23Services__MutateAdGroupCriterionLabelsResponse",
      "description": "Response message for an ad group criterion labels mutate.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__ProductChannelInfo": {
      "id": "GoogleAdsSearchads360V23Common__ProductChannelInfo",
      "description": "Locality of a product offer.",
      "type": "object",
      "properties": {
        "channel": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The item is sold online.",
            "The item is sold in local stores."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ONLINE",
            "LOCAL"
          ],
          "description": "Value of the locality."
        }
      }
    },
    "GoogleAdsSearchads360V23Resources_ConversionValueRule_ValueRuleGeoLocationCondition": {
      "properties": {
        "excludedGeoMatchType": {
          "description": "Excluded Geo location match type.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Either Area of Interest or Location of Presence can be used to match.",
            "Only Location of Presence can be used to match."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ANY",
            "LOCATION_OF_PRESENCE"
          ]
        },
        "geoMatchType": {
          "description": "Included Geo location match type.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Either Area of Interest or Location of Presence can be used to match.",
            "Only Location of Presence can be used to match."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ANY",
            "LOCATION_OF_PRESENCE"
          ]
        },
        "excludedGeoTargetConstants": {
          "description": "Geo locations that advertisers want to exclude.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "geoTargetConstants": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Geo locations that advertisers want to include."
        }
      },
      "id": "GoogleAdsSearchads360V23Resources_ConversionValueRule_ValueRuleGeoLocationCondition",
      "description": "Condition on Geo dimension.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources__CustomerNegativeCriterion": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__CustomerNegativeCriterion",
      "description": "A negative criterion for exclusions at the customer level.",
      "properties": {
        "contentLabel": {
          "description": "Immutable. ContentLabel.",
          "$ref": "GoogleAdsSearchads360V23Common__ContentLabelInfo"
        },
        "youtubeChannel": {
          "description": "Immutable. YouTube Channel.",
          "$ref": "GoogleAdsSearchads360V23Common__YouTubeChannelInfo"
        },
        "placement": {
          "description": "Immutable. Placement.",
          "$ref": "GoogleAdsSearchads360V23Common__PlacementInfo"
        },
        "type": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "KEYWORD",
            "PLACEMENT",
            "MOBILE_APP_CATEGORY",
            "MOBILE_APPLICATION",
            "DEVICE",
            "LOCATION",
            "LISTING_GROUP",
            "AD_SCHEDULE",
            "AGE_RANGE",
            "GENDER",
            "INCOME_RANGE",
            "PARENTAL_STATUS",
            "YOUTUBE_VIDEO",
            "YOUTUBE_CHANNEL",
            "USER_LIST",
            "PROXIMITY",
            "TOPIC",
            "LISTING_SCOPE",
            "LANGUAGE",
            "IP_BLOCK",
            "CONTENT_LABEL",
            "CARRIER",
            "USER_INTEREST",
            "WEBPAGE",
            "OPERATING_SYSTEM_VERSION",
            "APP_PAYMENT_MODEL",
            "MOBILE_DEVICE",
            "CUSTOM_AFFINITY",
            "CUSTOM_INTENT",
            "LOCATION_GROUP",
            "CUSTOM_AUDIENCE",
            "COMBINED_AUDIENCE",
            "KEYWORD_THEME",
            "AUDIENCE",
            "NEGATIVE_KEYWORD_LIST",
            "LOCAL_SERVICE_ID",
            "SEARCH_THEME",
            "BRAND",
            "BRAND_LIST",
            "LIFE_EVENT",
            "WEBPAGE_LIST",
            "VIDEO_LINEUP",
            "PLACEMENT_LIST",
            "VERTICAL_ADS_ITEM_GROUP_RULE_LIST",
            "VERTICAL_ADS_ITEM_GROUP_RULE"
          ],
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Keyword, for example, 'mars cruise'.",
            "Placement, also known as Website, for example, 'www.flowers4sale.com'",
            "Mobile application categories to target.",
            "Mobile applications to target.",
            "Devices to target.",
            "Locations to target.",
            "Listing groups to target.",
            "Ad Schedule.",
            "Age range.",
            "Gender.",
            "Income Range.",
            "Parental status.",
            "YouTube Video.",
            "YouTube Channel.",
            "User list.",
            "Proximity.",
            "A topic target on the display network (for example, \"Pets & Animals\").",
            "Listing scope to target.",
            "Language.",
            "IpBlock.",
            "Content Label for category exclusion.",
            "Carrier.",
            "A category the user is interested in.",
            "Webpage criterion for dynamic search ads.",
            "Operating system version.",
            "App payment model.",
            "Mobile device.",
            "Custom affinity.",
            "Custom intent.",
            "Location group.",
            "Custom audience",
            "Combined audience",
            "Smart Campaign keyword theme",
            "Audience",
            "Negative Keyword List",
            "Local Services Ads Service ID.",
            "Search Theme.",
            "Brand",
            "Brand List",
            "Life Event",
            "Webpage List",
            "Video lineup",
            "Placement List",
            "A list of rules for item groups in Vertical Ads.",
            "A rule for an item group in Vertical Ads."
          ],
          "description": "Output only. The type of the criterion."
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the customer negative criterion. Customer negative criterion resource names have the form: `customers/{customer_id}/customerNegativeCriteria/{criterion_id}`"
        },
        "mobileAppCategory": {
          "description": "Immutable. MobileAppCategory.",
          "$ref": "GoogleAdsSearchads360V23Common__MobileAppCategoryInfo"
        },
        "youtubeVideo": {
          "description": "Immutable. YouTube Video.",
          "$ref": "GoogleAdsSearchads360V23Common__YouTubeVideoInfo"
        },
        "negativeKeywordList": {
          "description": "Immutable. NegativeKeywordList.",
          "$ref": "GoogleAdsSearchads360V23Common__NegativeKeywordListInfo"
        },
        "ipBlock": {
          "description": "Immutable. IpBlock. You can exclude up to 500 IP addresses per account.",
          "$ref": "GoogleAdsSearchads360V23Common__IpBlockInfo"
        },
        "mobileApplication": {
          "description": "Immutable. MobileApplication.",
          "$ref": "GoogleAdsSearchads360V23Common__MobileApplicationInfo"
        },
        "id": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. The ID of the criterion."
        },
        "placementList": {
          "description": "Immutable. PlacementList.",
          "$ref": "GoogleAdsSearchads360V23Common__PlacementListInfo"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__YoutubeVideoIdentifier": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__YoutubeVideoIdentifier",
      "description": "The identifier for YouTube video",
      "properties": {
        "channelId": {
          "description": "Immutable. The ID of the hosting channel of the video. This is a string value with “UC” prefix. For example, \"UCK8sQmJBp8GCxrOtXWBpyEA\".",
          "type": "string"
        },
        "videoId": {
          "type": "string",
          "description": "Immutable. The ID of the video associated with the video link. This is the 11 character string value used in the YouTube video URL. For example, video ID is jV1vkHv4zq8 from the YouTube video URL \"https://www.youtube.com/watch?v=jV1vkHv4zq8&t=2s\"."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__PriceOffering": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__PriceOffering",
      "description": "A single price offering within a PriceAsset.",
      "properties": {
        "header": {
          "type": "string",
          "description": "Required. The header of the price offering. The length of this string should be between 1 and 25, inclusive."
        },
        "finalUrl": {
          "type": "string",
          "description": "Required. The final URL after all cross domain redirects."
        },
        "finalMobileUrl": {
          "type": "string",
          "description": "The final mobile URL after all cross domain redirects."
        },
        "description": {
          "type": "string",
          "description": "Required. The description of the price offering. The length of this string should be between 1 and 25, inclusive."
        },
        "price": {
          "description": "Required. The price value of the price offering.",
          "$ref": "GoogleAdsSearchads360V23Common__Money"
        },
        "unit": {
          "description": "The price unit of the price offering.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Per hour.",
            "Per day.",
            "Per week.",
            "Per month.",
            "Per year.",
            "Per night."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PER_HOUR",
            "PER_DAY",
            "PER_WEEK",
            "PER_MONTH",
            "PER_YEAR",
            "PER_NIGHT"
          ]
        }
      }
    },
    "GoogleAdsSearchads360V23Services__RemarketingActionOperation": {
      "properties": {
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "type": "string",
          "format": "google-fieldmask"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new remarketing action.",
          "$ref": "GoogleAdsSearchads360V23Resources__RemarketingAction"
        },
        "update": {
          "description": "Update operation: The remarketing action is expected to have a valid resource name.",
          "$ref": "GoogleAdsSearchads360V23Resources__RemarketingAction"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__RemarketingActionOperation",
      "description": "A single operation (create, update) on a remarketing action."
    },
    "GoogleAdsSearchads360V23Resources__LocalServicesLeadConversation": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__LocalServicesLeadConversation",
      "description": "Data from Local Services Lead Conversation. Contains details of Lead Conversation which is generated when user calls, messages or books service from advertiser. These are appended to a Lead. More info: https://ads.google.com/local-services-ads",
      "properties": {
        "participantType": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADVERTISER",
            "CONSUMER"
          ],
          "description": "Output only. Type of participant in the lead conversation, ADVERTISER or CONSUMER.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Local Services Ads Provider participant.",
            "Local Services Ads Consumer participant."
          ]
        },
        "eventDateTime": {
          "readOnly": true,
          "description": "Output only. The date time at which lead conversation was created by Local Services Ads. The format is \"YYYY-MM-DD HH:MM:SS\" in the Google Ads account's timezone. Examples: \"2018-03-05 09:15:00\" or \"2018-02-01 14:34:30\"",
          "type": "string"
        },
        "id": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. ID of this Lead Conversation."
        },
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the local services lead conversation data. Local Services Lead Conversation resource name have the form `customers/{customer_id}/localServicesLeadConversation/{local_services_lead_conversation_id}`",
          "readOnly": true
        },
        "messageDetails": {
          "description": "Output only. Details of message conversation in case of EMAIL, MESSAGE or SMS.",
          "$ref": "GoogleAdsSearchads360V23Resources__MessageDetails",
          "readOnly": true
        },
        "conversationChannel": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Email lead conversation.",
            "Message lead conversation.",
            "Phone call lead conversation.",
            "SMS lead conversation.",
            "Booking lead conversation.",
            "WhatsApp lead conversation.",
            "Lead conversation created through Google Ads API."
          ],
          "description": "Output only. Type of GLS lead conversation, EMAIL, MESSAGE, PHONE_CALL, SMS, etc.",
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "EMAIL",
            "MESSAGE",
            "PHONE_CALL",
            "SMS",
            "BOOKING",
            "WHATSAPP",
            "ADS_API"
          ]
        },
        "lead": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Resource name of Lead associated to the Lead Conversation."
        },
        "phoneCallDetails": {
          "readOnly": true,
          "description": "Output only. Details of phone call conversation in case of PHONE_CALL.",
          "$ref": "GoogleAdsSearchads360V23Resources__PhoneCallDetails"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__Label": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__Label",
      "description": "A label.",
      "properties": {
        "resourceName": {
          "description": "Immutable. Name of the resource. Label resource names have the form: `customers/{owner_customer_id}/labels/{label_id}`",
          "type": "string"
        },
        "status": {
          "description": "Output only. Status of the label. Read only.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Label is enabled.",
            "Label is removed."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ],
          "readOnly": true
        },
        "name": {
          "description": "The name of the label. This field is required and should not be empty when creating a new label. The length of this string should be between 1 and 80, inclusive.",
          "type": "string"
        },
        "textLabel": {
          "description": "A type of label displaying text on a colored background.",
          "$ref": "GoogleAdsSearchads360V23Common__TextLabel"
        },
        "id": {
          "description": "Output only. ID of the label. Read only.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__DetailContentSuitabilityPlacementView": {
      "properties": {
        "placement": {
          "readOnly": true,
          "description": "Output only. The automatic placement string at detail level, for example. website url, mobile application id, or a YouTube video id.",
          "type": "string"
        },
        "placementType": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "WEBSITE",
            "MOBILE_APP_CATEGORY",
            "MOBILE_APPLICATION",
            "YOUTUBE_VIDEO",
            "YOUTUBE_CHANNEL",
            "GOOGLE_PRODUCTS"
          ],
          "description": "Output only. Represents the type of the placement, for example, Website, YouTubeVideo and MobileApplication.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Websites(for example, 'www.flowers4sale.com').",
            "Mobile application categories(for example, 'Games').",
            "mobile applications(for example, 'mobileapp::2-com.whatsthewordanswers').",
            "YouTube videos(for example, 'youtube.com/video/wtLJPvx7-ys').",
            "YouTube channels(for example, 'youtube.com::L8ZULXASCc1I_oaOT0NaOQ').",
            "Surfaces owned and operated by Google(for example, 'tv.google.com')."
          ]
        },
        "targetUrl": {
          "readOnly": true,
          "description": "Output only. URL of the placement, for example, website, link to the mobile application in app store, or a YouTube video URL.",
          "type": "string"
        },
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the detail content suitability placement view. Detail content suitability placement view resource names have the form: `customers/{customer_id}/detailContentSuitabilityPlacementViews/{placement_fingerprint}`",
          "readOnly": true
        },
        "displayName": {
          "type": "string",
          "description": "Output only. The display name is URL for websites, YouTube video name for YouTube videos, and translated mobile app name for mobile apps.",
          "readOnly": true
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__DetailContentSuitabilityPlacementView",
      "description": "A detail content suitability placement view.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__PolicyTopicEntry": {
      "properties": {
        "topic": {
          "type": "string",
          "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."
        },
        "constraints": {
          "description": "Indicates how serving of this resource may be affected (for example, not serving in a country).",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__PolicyTopicConstraint"
          }
        },
        "evidences": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__PolicyTopicEvidence"
          },
          "description": "Additional information that explains policy finding (for example, the brand name for a trademark finding)."
        },
        "type": {
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PROHIBITED",
            "LIMITED",
            "FULLY_LIMITED",
            "DESCRIPTIVE",
            "BROADENING",
            "AREA_OF_INTEREST_ONLY"
          ],
          "description": "Describes the negative or positive effect this policy will have on serving."
        }
      },
      "type": "object",
      "id": "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."
    },
    "GoogleAdsSearchads360V23Services__MutateSharedSetsResponse": {
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateSharedSetResult"
          },
          "description": "All results for the mutate."
        }
      },
      "id": "GoogleAdsSearchads360V23Services__MutateSharedSetsResponse",
      "description": "Response message for a shared set mutate.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__RawEventConversionDimensionHeader": {
      "properties": {
        "id": {
          "type": "string",
          "format": "int64",
          "description": "The conversion custom variable ID."
        },
        "name": {
          "type": "string",
          "description": "The user defined name of the raw event dimension."
        }
      },
      "id": "GoogleAdsSearchads360V23Services__RawEventConversionDimensionHeader",
      "description": "Message for raw event conversion dimension header.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateAdGroupAdsRequest": {
      "properties": {
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        },
        "operations": {
          "description": "Required. The list of operations to perform on individual ads.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__AdGroupAdOperation"
          }
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "responseContentType": {
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "type": "string",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ]
        }
      },
      "id": "GoogleAdsSearchads360V23Services__MutateAdGroupAdsRequest",
      "description": "Request message for AdGroupAdService.MutateAdGroupAds.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__OperatingSystemVersionInfo": {
      "properties": {
        "operatingSystemVersionConstant": {
          "description": "The operating system version constant resource name.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__OperatingSystemVersionInfo",
      "description": "Represents an operating system version to be targeted."
    },
    "GoogleAdsSearchads360V23Common__HotelClassInfo": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__HotelClassInfo",
      "description": "Class of the hotel as a number of stars 1 to 5.",
      "properties": {
        "value": {
          "description": "Long value of the hotel class.",
          "type": "string",
          "format": "int64"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__UserListLogicalRuleInfo": {
      "properties": {
        "operator": {
          "description": "The logical operator of the rule.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "And - all of the operands.",
            "Or - at least one of the operands.",
            "Not - none of the operands."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ALL",
            "ANY",
            "NONE"
          ]
        },
        "ruleOperands": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__LogicalUserListOperandInfo"
          },
          "description": "The list of operands of the rule."
        }
      },
      "id": "GoogleAdsSearchads360V23Common__UserListLogicalRuleInfo",
      "description": "A user list logical rule. A rule has a logical operator (and/or/not) and a list of user lists as operands.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_TargetRoasOptInParameters": {
      "id": "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_TargetRoasOptInParameters",
      "description": "Parameters to use when applying a Target ROAS opt-in recommendation.",
      "type": "object",
      "properties": {
        "targetRoas": {
          "type": "number",
          "format": "double",
          "description": "Average ROAS (revenue per unit of spend) to use for Target ROAS bidding strategy. The value is between 0.01 and 1000.0, inclusive. This is a required field, unless new_campaign_budget_amount_micros is set."
        },
        "newCampaignBudgetAmountMicros": {
          "type": "string",
          "format": "int64",
          "description": "Optional, budget amount to set for the campaign."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__KeywordThemeInfo": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__KeywordThemeInfo",
      "description": "A Smart Campaign keyword theme.",
      "properties": {
        "keywordThemeConstant": {
          "description": "The resource name of a Smart Campaign keyword theme constant. `keywordThemeConstants/{keyword_theme_id}~{sub_keyword_theme_id}`",
          "type": "string"
        },
        "freeFormKeywordTheme": {
          "type": "string",
          "description": "Free-form text to be matched to a Smart Campaign keyword theme constant on a best-effort basis."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__ConfigureCampaignLifecycleGoalsResult": {
      "id": "GoogleAdsSearchads360V23Services__ConfigureCampaignLifecycleGoalsResult",
      "description": "The result for the campaign lifecycle goal configuration.",
      "type": "object",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for the successful operation."
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__LifeEvent": {
      "id": "GoogleAdsSearchads360V23Resources__LifeEvent",
      "description": "A life event: a particular interest-based vertical to be targeted to reach users when they are in the midst of important life milestones.",
      "type": "object",
      "properties": {
        "parent": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The parent of the life_event."
        },
        "availabilities": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__CriterionCategoryAvailability"
          },
          "description": "Output only. Availability information of the life event.",
          "readOnly": true
        },
        "id": {
          "type": "string",
          "format": "int64",
          "description": "Output only. The ID of the life event.",
          "readOnly": true
        },
        "name": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The name of the life event, for example,\"Recently Moved\""
        },
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the life event. Life event resource names have the form: `customers/{customer_id}/lifeEvents/{life_event_id}`",
          "readOnly": true
        },
        "launchedToAll": {
          "readOnly": true,
          "description": "Output only. True if the life event is launched to all channels and locales.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__GenerateKeywordIdeaResponse": {
      "id": "GoogleAdsSearchads360V23Services__GenerateKeywordIdeaResponse",
      "description": "Response message for KeywordPlanIdeaService.GenerateKeywordIdeas.",
      "type": "object",
      "properties": {
        "aggregateMetricResults": {
          "description": "The aggregate metrics for all keyword ideas.",
          "$ref": "GoogleAdsSearchads360V23Common__KeywordPlanAggregateMetricResults"
        },
        "totalSize": {
          "description": "Total number of results available.",
          "type": "string",
          "format": "int64"
        },
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__GenerateKeywordIdeaResult"
          },
          "description": "Results of generating keyword ideas."
        },
        "nextPageToken": {
          "type": "string",
          "description": "Pagination token used to retrieve the next page of results. Pass the content of this string as the `page_token` attribute of the next request. `next_page_token` is not returned for the last page."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__HotelLengthOfStayInfo": {
      "properties": {
        "minNights": {
          "type": "string",
          "format": "int64",
          "description": "Low end of the number of nights in the stay."
        },
        "maxNights": {
          "description": "High end of the number of nights in the stay.",
          "type": "string",
          "format": "int64"
        }
      },
      "id": "GoogleAdsSearchads360V23Common__HotelLengthOfStayInfo",
      "description": "Criterion for length of hotel stay in nights.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__SearchAds360TextAdInfo": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__SearchAds360TextAdInfo",
      "description": "A Search Ads 360 text ad.",
      "properties": {
        "headline": {
          "type": "string",
          "description": "The headline of the ad."
        },
        "displayMobileUrl": {
          "type": "string",
          "description": "The displayed mobile URL of the ad."
        },
        "description1": {
          "type": "string",
          "description": "The first line of the ad's description."
        },
        "displayUrl": {
          "type": "string",
          "description": "The displayed URL of the ad."
        },
        "adTrackingId": {
          "type": "string",
          "format": "int64",
          "description": "The tracking id of the ad."
        },
        "description2": {
          "type": "string",
          "description": "The second line of the ad's description."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateBatchJobResponse": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateBatchJobResponse",
      "description": "Response message for BatchJobService.MutateBatchJob.",
      "properties": {
        "result": {
          "description": "The result for the mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateBatchJobResult"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__AgeSegment": {
      "id": "GoogleAdsSearchads360V23Common__AgeSegment",
      "description": "Contiguous age range.",
      "type": "object",
      "properties": {
        "minAge": {
          "description": "Minimum age to include. A minimum age must be specified and must be at least 18. Allowed values are 18, 25, 35, 45, 55, and 65.",
          "type": "integer",
          "format": "int32"
        },
        "maxAge": {
          "type": "integer",
          "format": "int32",
          "description": "Maximum age to include. A maximum age need not be specified. If specified, max_age must be greater than min_age, and allowed values are 24, 34, 44, 54, and 64."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__VideoLineupInfo": {
      "properties": {
        "videoLineupId": {
          "type": "string",
          "format": "int64",
          "description": "ID for a Video lineup. Contact your Google business development representative for details."
        }
      },
      "id": "GoogleAdsSearchads360V23Common__VideoLineupInfo",
      "description": "A Video lineup criterion.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__AddBatchJobOperationsRequest": {
      "id": "GoogleAdsSearchads360V23Services__AddBatchJobOperationsRequest",
      "description": "Request message for BatchJobService.AddBatchJobOperations.",
      "type": "object",
      "properties": {
        "mutateOperations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateOperation"
          },
          "description": "Required. The list of mutates being added. Operations can use negative integers as temp ids to signify dependencies between entities created in this batch job. For example, a customer with id = 1234 can create a campaign and an ad group in that same campaign by creating a campaign in the first operation with the resource name explicitly set to \"customers/1234/campaigns/-1\", and creating an ad group in the second operation with the campaign field also set to \"customers/1234/campaigns/-1\"."
        },
        "sequenceToken": {
          "type": "string",
          "description": "A token used to enforce sequencing. The first AddBatchJobOperations request for a batch job should not set sequence_token. Subsequent requests must set sequence_token to the value of next_sequence_token received in the previous AddBatchJobOperations response."
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__CustomerUserAccessInvitation": {
      "properties": {
        "creationDateTime": {
          "type": "string",
          "description": "Output only. Time invitation was created. This field is read-only. The format is \"YYYY-MM-DD HH:MM:SS\". Examples: \"2018-03-05 09:15:00\" or \"2018-02-01 14:34:30\"",
          "readOnly": true
        },
        "emailAddress": {
          "type": "string",
          "description": "Immutable. Email address the invitation was sent to. This can differ from the email address of the account that accepts the invite."
        },
        "invitationId": {
          "description": "Output only. The ID of the invitation. This field is read-only.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        },
        "invitationStatus": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The initial state of an invitation, before being acted upon by anyone.",
            "Invitation process was terminated by the email recipient. No new user was created.",
            "Invitation URLs expired without being acted upon. No new user can be created. Invitations expire 20 days after creation."
          ],
          "description": "Output only. Invitation status of the user.",
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PENDING",
            "DECLINED",
            "EXPIRED"
          ]
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. Name of the resource. Resource names have the form: `customers/{customer_id}/customerUserAccessInvitations/{invitation_id}`"
        },
        "accessRole": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Owns its account and can control the addition of other users.",
            "Can modify , but can't affect other users.",
            "Can view and account changes, but cannot make edits.",
            "Role for \\\"email only\\\" access. Represents an email recipient rather than a true User entity."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADMIN",
            "STANDARD",
            "READ_ONLY",
            "EMAIL_ONLY"
          ],
          "description": "Immutable. Access role of the user."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__CustomerUserAccessInvitation",
      "description": "Represent an invitation to a new user on this customer account."
    },
    "GoogleAdsSearchads360V23Resources__KeywordPlanCampaignKeyword": {
      "properties": {
        "text": {
          "description": "The keyword text.",
          "type": "string"
        },
        "negative": {
          "description": "Immutable. If true, the keyword is negative. Must be set to true. Only negative campaign keywords are supported.",
          "type": "boolean"
        },
        "matchType": {
          "description": "The keyword match type.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Exact match.",
            "Phrase match.",
            "Broad match."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "EXACT",
            "PHRASE",
            "BROAD"
          ]
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the Keyword Plan Campaign keyword. KeywordPlanCampaignKeyword resource names have the form: `customers/{customer_id}/keywordPlanCampaignKeywords/{kp_campaign_keyword_id}`"
        },
        "keywordPlanCampaign": {
          "type": "string",
          "description": "The Keyword Plan campaign to which this negative keyword belongs."
        },
        "id": {
          "type": "string",
          "format": "int64",
          "description": "Output only. The ID of the Keyword Plan negative keyword.",
          "readOnly": true
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__KeywordPlanCampaignKeyword",
      "description": "A Keyword Plan Campaign keyword. Only negative keywords are supported for Campaign Keyword."
    },
    "GoogleAdsSearchads360V23Services__MaximizeClicksBiddingStrategy": {
      "properties": {
        "dailyTargetSpendMicros": {
          "type": "string",
          "format": "int64",
          "description": "Required. The daily target spend in micros to be used for estimation. A minimum value is enforced for the local currency used in the campaign. An error will occur showing the minimum value if this field is set too low."
        },
        "maxCpcBidCeilingMicros": {
          "type": "string",
          "format": "int64",
          "description": "Ceiling on max CPC bids in micros."
        }
      },
      "id": "GoogleAdsSearchads360V23Services__MaximizeClicksBiddingStrategy",
      "description": "Maximize Clicks Bidding Strategy.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__UploadUserDataRequest": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__UploadUserDataRequest",
      "description": "Request message for UserDataService.UploadUserData",
      "properties": {
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__UserDataOperation"
          },
          "description": "Required. The list of operations to be done."
        },
        "customerMatchUserListMetadata": {
          "description": "Metadata for data updates to a Customer Match user list.",
          "$ref": "GoogleAdsSearchads360V23Common__CustomerMatchUserListMetadata"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateBiddingSeasonalityAdjustmentsResult": {
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        },
        "biddingSeasonalityAdjustment": {
          "description": "The mutated bidding seasonality adjustment with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsSearchads360V23Resources__BiddingSeasonalityAdjustment"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateBiddingSeasonalityAdjustmentsResult",
      "description": "The result for the seasonality adjustment mutate."
    },
    "GoogleAdsSearchads360V23Resources__CustomerAsset": {
      "id": "GoogleAdsSearchads360V23Resources__CustomerAsset",
      "description": "A link between a customer and an asset.",
      "type": "object",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the customer asset. CustomerAsset resource names have the form: `customers/{customer_id}/customerAssets/{asset_id}~{field_type}`"
        },
        "source": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADVERTISER",
            "AUTOMATICALLY_CREATED"
          ],
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset or asset link is provided by advertiser.",
            "The asset or asset link is generated by Google."
          ],
          "description": "Output only. Source of the customer asset link."
        },
        "status": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Asset link is enabled.",
            "Asset link has been removed.",
            "Asset link is paused."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED",
            "PAUSED"
          ],
          "description": "Status of the customer asset."
        },
        "asset": {
          "description": "Required. Immutable. The asset which is linked to the customer.",
          "type": "string"
        },
        "primaryStatus": {
          "description": "Output only. Provides the PrimaryStatus of this asset link. Primary status is meant essentially to differentiate between the plain \"status\" field, which has advertiser set values of enabled, paused, or removed. The primary status takes into account other signals (for assets its mainly policy and quality approvals) to come up with a more comprehensive status to indicate its serving state.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is eligible to serve.",
            "The user-specified asset link status is paused.",
            "The user-specified asset link status is removed.",
            "The asset may serve in the future.",
            "The asset is serving in a partial capacity.",
            "The asset is not eligible to serve."
          ],
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ELIGIBLE",
            "PAUSED",
            "REMOVED",
            "PENDING",
            "LIMITED",
            "NOT_ELIGIBLE"
          ]
        },
        "primaryStatusDetails": {
          "readOnly": true,
          "description": "Output only. Provides the details of the primary status and its associated reasons.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AssetLinkPrimaryStatusDetails"
          }
        },
        "primaryStatusReasons": {
          "type": "array",
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "The asset is paused for its linked rollup level. Contributes to a PrimaryStatus of PAUSED.",
              "The asset is removed for its linked rollup level. Contributes to a PrimaryStatus of REMOVED.",
              "The asset has been marked as disapproved. Contributes to a PrimaryStatus of NOT_ELIGIBLE",
              "The asset has not completed policy review. Contributes to a PrimaryStatus of PENDING.",
              "The asset is approved with policies applied. Contributes to a PrimaryStatus of LIMITED."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "ASSET_LINK_PAUSED",
              "ASSET_LINK_REMOVED",
              "ASSET_DISAPPROVED",
              "ASSET_UNDER_REVIEW",
              "ASSET_APPROVED_LABELED"
            ]
          },
          "description": "Output only. Provides a list of reasons for why an asset is not serving or not serving at full capacity.",
          "readOnly": true
        },
        "fieldType": {
          "description": "Required. Immutable. Role that the asset takes for the customer link.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is linked for use as a headline.",
            "The asset is linked for use as a description.",
            "The asset is linked for use as mandatory ad text.",
            "The asset is linked for use as a marketing image.",
            "The asset is linked for use as a media bundle.",
            "The asset is linked for use as a YouTube video.",
            "The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.",
            "The asset is linked for use as a Lead Form extension.",
            "The asset is linked for use as a Promotion extension.",
            "The asset is linked for use as a Callout extension.",
            "The asset is linked for use as a Structured Snippet extension.",
            "The asset is linked for use as a Sitelink.",
            "The asset is linked for use as a Mobile App extension.",
            "The asset is linked for use as a Hotel Callout extension.",
            "The asset is linked for use as a Call extension.",
            "The asset is linked for use as a Price extension.",
            "The asset is linked for use as a long headline.",
            "The asset is linked for use as a business name.",
            "The asset is linked for use as a square marketing image.",
            "The asset is linked for use as a portrait marketing image.",
            "The asset is linked for use as a logo.",
            "The asset is linked for use as a landscape logo.",
            "The asset is linked for use as a non YouTube logo.",
            "The asset is linked for use to select a call-to-action.",
            "The asset is linked for use to select an ad image.",
            "The asset is linked for use as a business logo.",
            "The asset is linked for use as a hotel property in a Performance Max for travel goals campaign.",
            "The asset is linked for use as a Demand Gen carousel card.",
            "The asset is linked for use as a Business Message.",
            "The asset is linked for use as a tall portrait marketing image.",
            "The asset is linked for use as a landing page preview image.",
            "The asset is linked for use as a long description.",
            "The asset is linked for use as a call-to-action."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HEADLINE",
            "DESCRIPTION",
            "MANDATORY_AD_TEXT",
            "MARKETING_IMAGE",
            "MEDIA_BUNDLE",
            "YOUTUBE_VIDEO",
            "BOOK_ON_GOOGLE",
            "LEAD_FORM",
            "PROMOTION",
            "CALLOUT",
            "STRUCTURED_SNIPPET",
            "SITELINK",
            "MOBILE_APP",
            "HOTEL_CALLOUT",
            "CALL",
            "PRICE",
            "LONG_HEADLINE",
            "BUSINESS_NAME",
            "SQUARE_MARKETING_IMAGE",
            "PORTRAIT_MARKETING_IMAGE",
            "LOGO",
            "LANDSCAPE_LOGO",
            "VIDEO",
            "CALL_TO_ACTION_SELECTION",
            "AD_IMAGE",
            "BUSINESS_LOGO",
            "HOTEL_PROPERTY",
            "DEMAND_GEN_CAROUSEL_CARD",
            "BUSINESS_MESSAGE",
            "TALL_PORTRAIT_MARKETING_IMAGE",
            "LANDING_PAGE_PREVIEW",
            "LONG_DESCRIPTION",
            "CALL_TO_ACTION"
          ]
        }
      }
    },
    "GoogleAdsSearchads360V23Resources_ConversionValueRule_ValueRuleItineraryTravelStartDay": {
      "properties": {
        "tuesday": {
          "description": "The travel can start on Tuesday.",
          "type": "boolean"
        },
        "friday": {
          "description": "The travel can start on Friday.",
          "type": "boolean"
        },
        "wednesday": {
          "description": "The travel can start on Wednesday.",
          "type": "boolean"
        },
        "saturday": {
          "type": "boolean",
          "description": "The travel can start on Saturday."
        },
        "monday": {
          "type": "boolean",
          "description": "The travel can start on Monday."
        },
        "sunday": {
          "description": "The travel can start on Sunday.",
          "type": "boolean"
        },
        "thursday": {
          "description": "The travel can start on Thursday.",
          "type": "boolean"
        }
      },
      "id": "GoogleAdsSearchads360V23Resources_ConversionValueRule_ValueRuleItineraryTravelStartDay",
      "description": "The days of the week on which an itinerary's travel can start.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources__GenderView": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__GenderView",
      "description": "A gender view. The gender_view resource reflects the effective serving state, rather than what criteria were added. An ad group without gender criteria by default shows to all genders, so all genders appear in gender_view with stats.",
      "properties": {
        "resourceName": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The resource name of the gender view. Gender view resource names have the form: `customers/{customer_id}/genderViews/{ad_group_id}~{criterion_id}`"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__CreditDetails": {
      "properties": {
        "creditState": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PENDING",
            "CREDITED"
          ],
          "description": "Output only. Credit state of the lead.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "A credit has been filed and is being processed by Ads backend, but has not been applied to the account yet.",
            "The credit has been issued to the Ads account."
          ]
        },
        "creditStateLastUpdateDateTime": {
          "description": "Output only. The date time when the credit state of the lead was last updated. The format is \"YYYY-MM-DD HH:MM:SS\" in the Google Ads account's timezone. Examples: \"2018-03-05 09:15:00\" or \"2018-02-01 14:34:30\"",
          "type": "string",
          "readOnly": true
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__CreditDetails",
      "description": "Represents the credit details of a lead.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__CustomConversionGoalOperation": {
      "id": "GoogleAdsSearchads360V23Services__CustomConversionGoalOperation",
      "description": "A single operation (create, remove) on a custom conversion goal.",
      "type": "object",
      "properties": {
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "type": "string",
          "format": "google-fieldmask"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new custom conversion goal",
          "$ref": "GoogleAdsSearchads360V23Resources__CustomConversionGoal"
        },
        "update": {
          "description": "Update operation: The custom conversion goal is expected to have a valid resource name.",
          "$ref": "GoogleAdsSearchads360V23Resources__CustomConversionGoal"
        },
        "remove": {
          "description": "Remove operation: A resource name for the removed custom conversion goal is expected, in this format: 'customers/{customer_id}/customConversionGoals/{goal_id}'",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__ConversionCustomMetricHeader": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__ConversionCustomMetricHeader",
      "description": "Message for conversion custom metric header.",
      "properties": {
        "id": {
          "type": "string",
          "format": "int64",
          "description": "The conversion custom metric ID."
        },
        "name": {
          "description": "The user defined name of the conversion custom metric.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateKeywordPlanAdGroupsResponse": {
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateKeywordPlanAdGroupResult"
          },
          "description": "All results for the mutate. The order of the results is determined by the order of the keywords in the original request."
        }
      },
      "id": "GoogleAdsSearchads360V23Services__MutateKeywordPlanAdGroupsResponse",
      "description": "Response message for a Keyword Plan ad group mutate.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateAccountLinkResponse": {
      "id": "GoogleAdsSearchads360V23Services__MutateAccountLinkResponse",
      "description": "Response message for account link mutate.",
      "type": "object",
      "properties": {
        "result": {
          "description": "Result for the mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateAccountLinkResult"
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateAssetSetAssetsResponse": {
      "properties": {
        "results": {
          "description": "All results for the mutate.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateAssetSetAssetResult"
          }
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateAssetSetAssetsResponse",
      "description": "Response message for an asset set asset mutate."
    },
    "GoogleAdsSearchads360V23Resources__DetailPlacementView": {
      "id": "GoogleAdsSearchads360V23Resources__DetailPlacementView",
      "description": "A view with metrics aggregated by ad group and URL or YouTube video. This view primarily surfaces placement data from the Google Display Network. While you can select segments like `segments.ad_network_type`, this view generally does not include placement data from other networks, such as the Search Partners network. To understand performance on Search Partners, consider other reports and segmentations.",
      "type": "object",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the detail placement view. Detail placement view resource names have the form: `customers/{customer_id}/detailPlacementViews/{ad_group_id}~{base64_placement}`",
          "readOnly": true
        },
        "displayName": {
          "description": "Output only. The display name is URL name for websites, YouTube video name for YouTube videos, and translated mobile app name for mobile apps.",
          "type": "string",
          "readOnly": true
        },
        "groupPlacementTargetUrl": {
          "description": "Output only. URL of the group placement, for example, domain, link to the mobile application in app store, or a YouTube channel URL.",
          "type": "string",
          "readOnly": true
        },
        "placement": {
          "description": "Output only. The automatic placement string at detail level, e. g. website URL, mobile application ID, or a YouTube video ID.",
          "type": "string",
          "readOnly": true
        },
        "targetUrl": {
          "description": "Output only. URL of the placement, for example, website, link to the mobile application in app store, or a YouTube video URL.",
          "type": "string",
          "readOnly": true
        },
        "placementType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Websites(for example, 'www.flowers4sale.com').",
            "Mobile application categories(for example, 'Games').",
            "mobile applications(for example, 'mobileapp::2-com.whatsthewordanswers').",
            "YouTube videos(for example, 'youtube.com/video/wtLJPvx7-ys').",
            "YouTube channels(for example, 'youtube.com::L8ZULXASCc1I_oaOT0NaOQ').",
            "Surfaces owned and operated by Google(for example, 'tv.google.com')."
          ],
          "description": "Output only. Type of the placement, for example, Website, YouTube Video, and Mobile Application.",
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "WEBSITE",
            "MOBILE_APP_CATEGORY",
            "MOBILE_APPLICATION",
            "YOUTUBE_VIDEO",
            "YOUTUBE_CHANNEL",
            "GOOGLE_PRODUCTS"
          ]
        }
      }
    },
    "GoogleAdsSearchads360V23Services__AssetGroupOperation": {
      "properties": {
        "remove": {
          "description": "Remove operation: A resource name for the removed asset group is expected, in this format: `customers/{customer_id}/assetGroups/{asset_group_id}`",
          "type": "string"
        },
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "type": "string",
          "format": "google-fieldmask"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new asset group",
          "$ref": "GoogleAdsSearchads360V23Resources__AssetGroup"
        },
        "update": {
          "description": "Update operation: The asset group is expected to have a valid resource name.",
          "$ref": "GoogleAdsSearchads360V23Resources__AssetGroup"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__AssetGroupOperation",
      "description": "A single operation (create, remove) on an asset group."
    },
    "GoogleAdsSearchads360V23Common__LocationAsset": {
      "id": "GoogleAdsSearchads360V23Common__LocationAsset",
      "description": "A location asset.",
      "type": "object",
      "properties": {
        "locationOwnershipType": {
          "description": "The type of location ownership. If the type is BUSINESS_OWNER, it will be served as a location extension. If the type is AFFILIATE, it will be served as an affiliate location.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Business Owner of location(legacy location extension - LE).",
            "Affiliate location(Third party location extension - ALE)."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BUSINESS_OWNER",
            "AFFILIATE"
          ]
        },
        "businessProfileLocations": {
          "description": "The list of business locations for the customer. This will only be returned if the Location Asset is syncing from the Business Profile account. It is possible to have multiple Business Profile listings under the same account that point to the same Place ID.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__BusinessProfileLocation"
          }
        },
        "placeId": {
          "description": "Place IDs uniquely identify a place in the Google Places database and on Google Maps. This field is unique for a given customer ID and asset type. See https://developers.google.com/places/web-service/place-id to learn more about Place ID.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__CampaignBudgetOperation": {
      "id": "GoogleAdsSearchads360V23Services__CampaignBudgetOperation",
      "description": "A single operation (create, update, remove) on a campaign budget.",
      "type": "object",
      "properties": {
        "updateMask": {
          "type": "string",
          "format": "google-fieldmask",
          "description": "FieldMask that determines which resource fields are modified in an update."
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new budget.",
          "$ref": "GoogleAdsSearchads360V23Resources__CampaignBudget"
        },
        "update": {
          "description": "Update operation: The campaign budget is expected to have a valid resource name.",
          "$ref": "GoogleAdsSearchads360V23Resources__CampaignBudget"
        },
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed budget is expected, in this format: `customers/{customer_id}/campaignBudgets/{budget_id}`"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__TextLabel": {
      "properties": {
        "backgroundColor": {
          "description": "Background color of the label in HEX format. This string must match the regular expression '^\\#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$'. Note: The background color may not be visible for manager accounts.",
          "type": "string"
        },
        "description": {
          "type": "string",
          "description": "A short description of the label. The length must be no more than 200 characters."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__TextLabel",
      "description": "A type of label displaying text on a colored background."
    },
    "GoogleAdsSearchads360V23Common__RealTimeBiddingSetting": {
      "properties": {
        "optIn": {
          "type": "boolean",
          "description": "Whether the campaign is opted in to real-time bidding."
        }
      },
      "id": "GoogleAdsSearchads360V23Common__RealTimeBiddingSetting",
      "description": "Settings for Real-Time Bidding, a feature only available for campaigns targeting the Ad Exchange network.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services_SmartCampaignSuggestionInfo_LocationList": {
      "id": "GoogleAdsSearchads360V23Services_SmartCampaignSuggestionInfo_LocationList",
      "description": "A list of locations.",
      "type": "object",
      "properties": {
        "locations": {
          "description": "Required. Locations.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__LocationInfo"
          }
        }
      }
    },
    "GoogleAdsSearchads360V23Services__RegenerateShareableLinkIdRequest": {
      "id": "GoogleAdsSearchads360V23Services__RegenerateShareableLinkIdRequest",
      "description": "Request message for ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId.",
      "type": "object",
      "properties": {}
    },
    "GoogleAdsSearchads360V23Services__MutateAssetSetsRequest": {
      "properties": {
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        },
        "operations": {
          "description": "Required. The list of operations to perform on individual asset sets.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__AssetSetOperation"
          }
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "responseContentType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation."
        }
      },
      "id": "GoogleAdsSearchads360V23Services__MutateAssetSetsRequest",
      "description": "Request message for AssetSetService.MutateAssetSets.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__UrlCollection": {
      "properties": {
        "finalMobileUrls": {
          "description": "A list of possible final mobile URLs.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "trackingUrlTemplate": {
          "type": "string",
          "description": "URL template for constructing a tracking URL."
        },
        "finalUrls": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of possible final URLs."
        },
        "urlCollectionId": {
          "type": "string",
          "description": "Unique identifier for this UrlCollection instance."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__UrlCollection",
      "description": "Collection of urls that is tagged with a unique identifier."
    },
    "GoogleAdsSearchads360V23Resources_Campaign_AssetAutomationSetting": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources_Campaign_AssetAutomationSetting",
      "description": "Asset automation setting contains pair of AssetAutomationType and the asset automation opt-in/out status",
      "properties": {
        "assetAutomationType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used as a return value only. Represents value unknown in this version.",
            "Text asset automation includes headlines and descriptions. By default, advertisers are opted-in for Performance Max and opted-out for Search.",
            "Converts horizontal video assets to vertical orientation using content-aware technology. By default, advertisers are opted in for DemandGenVideoResponsiveAd.",
            "Shortens video assets to better capture user attention using content-aware technology.",
            "Generates a preview of the landing page shown in the engagement panel. By using this feature, you confirm that you own all legal rights to the images on the landing page used by this account (or you have permission to share the images with Google). You hereby instruct Google to publish these images on your behalf for advertising or other commercial purposes.",
            "Generates video enhancements (vertical and shorter videos) for PMax campaigns. Opted in by default.",
            "Generates image enhancements (AutoCrop and AutoEnhance). Opted in by default for pmax.",
            "Generates image extraction. It defaults to account level Dynamic Image Extension control value.",
            "Adds design elements and embeds text assets into image assets to create images with different aspect ratios. By default, advertisers are opted in for DemandGenMultiAssetAd.",
            "Controls automation for text assets related to Final URL expansion. This includes automatically creating dynamic landing pages from the final URL and generating text assets from the content of those landing pages. This setting is turned OFF by default for Search campaigns, but it is turned ON by default for Performance Max campaigns.",
            "Generates videos using other Assets as input, such as images and text. By default, advertisers are opted in for DemandGenMultiAssetAd."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "TEXT_ASSET_AUTOMATION",
            "GENERATE_VERTICAL_YOUTUBE_VIDEOS",
            "GENERATE_SHORTER_YOUTUBE_VIDEOS",
            "GENERATE_LANDING_PAGE_PREVIEW",
            "GENERATE_ENHANCED_YOUTUBE_VIDEOS",
            "GENERATE_IMAGE_ENHANCEMENT",
            "GENERATE_IMAGE_EXTRACTION",
            "GENERATE_DESIGN_VERSIONS_FOR_IMAGES",
            "FINAL_URL_EXPANSION_TEXT_ASSET_AUTOMATION",
            "GENERATE_VIDEOS_FROM_OTHER_ASSETS"
          ],
          "description": "The asset automation type advertiser would like to opt-in/out."
        },
        "assetAutomationStatus": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used as a return value only. Represents value unknown in this version.",
            "Opted-in will enable generating and serving an asset automation type.",
            "Opted-out will stop generating and serving an asset automation type."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "OPTED_IN",
            "OPTED_OUT"
          ],
          "description": "The opt-in/out status of asset automation type."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__ProductCategoryInfo": {
      "id": "GoogleAdsSearchads360V23Common__ProductCategoryInfo",
      "description": "Category of a product offer.",
      "type": "object",
      "properties": {
        "categoryId": {
          "type": "string",
          "format": "int64",
          "description": "ID of the product category. This ID is equivalent to the google_product_category ID as described in this article: https://support.google.com/merchants/answer/6324436"
        },
        "level": {
          "description": "Level of the product category.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Level 1.",
            "Level 2.",
            "Level 3.",
            "Level 4.",
            "Level 5."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "LEVEL1",
            "LEVEL2",
            "LEVEL3",
            "LEVEL4",
            "LEVEL5"
          ]
        }
      }
    },
    "GoogleAdsSearchads360V23Common__ManualCpm": {
      "properties": {},
      "id": "GoogleAdsSearchads360V23Common__ManualCpm",
      "description": "Manual impression-based bidding where user pays per thousand impressions.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateConversionActionsResponse": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateConversionActionsResponse",
      "description": "Response message for ConversionActionService.MutateConversionActions.",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateConversionActionResult"
          },
          "description": "All results for the mutate."
        }
      }
    },
    "GoogleAdsSearchads360V23Resources_Recommendation_MoveUnusedBudgetRecommendation": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources_Recommendation_MoveUnusedBudgetRecommendation",
      "description": "The move unused budget recommendation.",
      "properties": {
        "budgetRecommendation": {
          "readOnly": true,
          "description": "Output only. The recommendation for the constrained budget to increase.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_CampaignBudgetRecommendation"
        },
        "excessCampaignBudget": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The excess budget's resource_name."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__KeywordPlanAggregateMetricResults": {
      "properties": {
        "deviceSearches": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__KeywordPlanDeviceSearches"
          },
          "description": "The aggregate searches for all the keywords segmented by device for the specified time. Supports the following device types: MOBILE, TABLET, DESKTOP. This is only set when KeywordPlanAggregateMetricTypeEnum.DEVICE is set in the KeywordPlanAggregateMetrics field in the request."
        }
      },
      "id": "GoogleAdsSearchads360V23Common__KeywordPlanAggregateMetricResults",
      "description": "The aggregated historical metrics for keyword plan keywords.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources__MediaVideo": {
      "properties": {
        "youtubeVideoId": {
          "type": "string",
          "description": "Immutable. The YouTube video ID (as seen in YouTube URLs). Adding prefix \"https://www.youtube.com/watch?v=\" to this ID will get the YouTube streaming URL for this video."
        },
        "adDurationMillis": {
          "description": "Output only. The duration of the Video in milliseconds.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        },
        "advertisingIdCode": {
          "type": "string",
          "description": "Output only. The Advertising Digital Identification code for this video, as defined by the American Association of Advertising Agencies, used mainly for television commercials.",
          "readOnly": true
        },
        "isciCode": {
          "description": "Output only. The Industry Standard Commercial Identifier code for this video, used mainly for television commercials.",
          "type": "string",
          "readOnly": true
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__MediaVideo",
      "description": "Encapsulates a Video."
    },
    "GoogleAdsSearchads360V23Resources__UserListCustomerType": {
      "properties": {
        "resourceName": {
          "description": "Immutable. The resource name of the user list customer type User list customer type resource names have the form: `customers/{customer_id}/userListCustomerTypes/{user_list_id}~{customer_type_category}`",
          "type": "string"
        },
        "customerTypeCategory": {
          "description": "Immutable. The user list customer type category",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Unknown type.",
            "Customer type category for all customers.",
            "Customer type category for all purchasers.",
            "Customer type category for high value purchasers.",
            "Customer type category for disengaged purchasers.",
            "Customer type category for qualified leads.",
            "Customer type category for converted leads.",
            "Customer type category for paid subscribers.",
            "Customer type category for loyalty signups.",
            "Customer type category for cart abandoners.",
            "Customer type category for loyalty tier 1 members.",
            "Customer type category for loyalty tier 2 members.",
            "Customer type category for loyalty tier 3 members.",
            "Customer type category for loyalty tier 4 members.",
            "Customer type category for loyalty tier 5 members.",
            "Customer type category for loyalty tier 6 members.",
            "Customer type category for loyalty tier 7 members."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ALL_CUSTOMERS",
            "PURCHASERS",
            "HIGH_VALUE_CUSTOMERS",
            "DISENGAGED_CUSTOMERS",
            "QUALIFIED_LEADS",
            "CONVERTED_LEADS",
            "PAID_SUBSCRIBERS",
            "LOYALTY_SIGN_UPS",
            "CART_ABANDONERS",
            "LOYALTY_TIER_1_MEMBERS",
            "LOYALTY_TIER_2_MEMBERS",
            "LOYALTY_TIER_3_MEMBERS",
            "LOYALTY_TIER_4_MEMBERS",
            "LOYALTY_TIER_5_MEMBERS",
            "LOYALTY_TIER_6_MEMBERS",
            "LOYALTY_TIER_7_MEMBERS"
          ]
        },
        "userList": {
          "type": "string",
          "description": "Immutable. The resource name for the user list this user list customer type is associated with"
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__UserListCustomerType",
      "description": "A user list customer type",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchema_CoarseGrainedConversionValueMappings": {
      "properties": {
        "highConversionValueMapping": {
          "description": "Output only. Mapping for \"high\" coarse conversion value.",
          "$ref": "GoogleAdsSearchads360V23Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchema_ConversionValueMapping",
          "readOnly": true
        },
        "lowConversionValueMapping": {
          "description": "Output only. Mapping for \"low\" coarse conversion value.",
          "$ref": "GoogleAdsSearchads360V23Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchema_ConversionValueMapping",
          "readOnly": true
        },
        "mediumConversionValueMapping": {
          "readOnly": true,
          "description": "Output only. Mapping for \"medium\" coarse conversion value.",
          "$ref": "GoogleAdsSearchads360V23Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchema_ConversionValueMapping"
        }
      },
      "id": "GoogleAdsSearchads360V23Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchema_CoarseGrainedConversionValueMappings",
      "description": "Mappings for coarse grained conversion values.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateAdGroupBidModifiersRequest": {
      "properties": {
        "responseContentType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation."
        },
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__AdGroupBidModifierOperation"
          },
          "description": "Required. The list of operations to perform on individual ad group bid modifiers."
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateAdGroupBidModifiersRequest",
      "description": "Request message for AdGroupBidModifierService.MutateAdGroupBidModifiers."
    },
    "GoogleAdsSearchads360V23Common__LeadFormDeliveryMethod": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__LeadFormDeliveryMethod",
      "description": "A configuration of how leads are delivered to the advertiser.",
      "properties": {
        "webhook": {
          "description": "Webhook method of delivery.",
          "$ref": "GoogleAdsSearchads360V23Common__WebhookDelivery"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources_Recommendation_DisplayExpansionOptInRecommendation": {
      "properties": {},
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources_Recommendation_DisplayExpansionOptInRecommendation",
      "description": "The Display Expansion opt-in recommendation."
    },
    "GoogleAdsSearchads360V23Common__DateRange": {
      "properties": {
        "startDate": {
          "description": "The start date, in yyyy-mm-dd format. This date is inclusive.",
          "type": "string"
        },
        "endDate": {
          "type": "string",
          "description": "The end date, in yyyy-mm-dd format. This date is inclusive."
        }
      },
      "id": "GoogleAdsSearchads360V23Common__DateRange",
      "description": "A date range.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchemaEvent_EventOccurrenceRange": {
      "properties": {
        "minEventCount": {
          "description": "Output only. For event counter ranges, the minimum of the defined range. A value of 0 will be treated as unset.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        },
        "maxEventCount": {
          "readOnly": true,
          "description": "Output only. For event counter ranges, the maximum of the defined range. A value of 0 will be treated as unset.",
          "type": "string",
          "format": "int64"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchemaEvent_EventOccurrenceRange",
      "description": "Defines a range for event counter values."
    },
    "GoogleAdsSearchads360V23Resources__InsuranceVerificationArtifact": {
      "properties": {
        "rejectionReason": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BUSINESS_NAME_MISMATCH",
            "INSURANCE_AMOUNT_INSUFFICIENT",
            "EXPIRED",
            "NO_SIGNATURE",
            "NO_POLICY_NUMBER",
            "NO_COMMERCIAL_GENERAL_LIABILITY",
            "EDITABLE_FORMAT",
            "CATEGORY_MISMATCH",
            "MISSING_EXPIRATION_DATE",
            "POOR_QUALITY",
            "POTENTIALLY_EDITED",
            "WRONG_DOCUMENT_TYPE",
            "NON_FINAL",
            "OTHER"
          ],
          "readOnly": true,
          "description": "Output only. Insurance document's rejection reason.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Business name doesn't match business name for the Local Services Ad.",
            "Insurance amount doesn't meet requirement listed in the legal summaries documentation for that geographic + category ID combination.",
            "Insurance document is expired.",
            "Insurance document is missing a signature.",
            "Insurance document is missing a policy number.",
            "Commercial General Liability(CGL) box is not marked in the insurance document.",
            "Insurance document is in an editable format.",
            "Insurance document does not cover insurance for a particular category.",
            "Insurance document is missing an expiration date.",
            "Insurance document is poor quality - blurry images, illegible, etc...",
            "Insurance document is suspected of being edited.",
            "Insurance document not accepted. For example, documents of insurance proposals, but missing coverages are not accepted.",
            "Insurance document is not final.",
            "Insurance document has another flaw not listed explicitly."
          ]
        },
        "insuranceDocumentReadonly": {
          "readOnly": true,
          "description": "Output only. The readonly field containing the information for an uploaded insurance document.",
          "$ref": "GoogleAdsSearchads360V23Common__LocalServicesDocumentReadOnly"
        },
        "expirationDateTime": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The timestamp when this insurance expires. The format is \"YYYY-MM-DD HH:MM:SS\" in the Google Ads account's timezone. Examples: \"2018-03-05 09:15:00\" or \"2018-02-01 14:34:30\""
        },
        "amountMicros": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. Insurance amount. This is measured in \"micros\" of the currency mentioned in the insurance document."
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__InsuranceVerificationArtifact",
      "description": "specific to a local services insurance.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_ResponsiveSearchAdParameters": {
      "properties": {
        "ad": {
          "description": "Required. New ad to add to recommended ad group.",
          "$ref": "GoogleAdsSearchads360V23Resources__Ad"
        }
      },
      "id": "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_ResponsiveSearchAdParameters",
      "description": "Parameters to use when applying a responsive search ad recommendation.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__AdGroupOperation": {
      "properties": {
        "remove": {
          "description": "Remove operation: A resource name for the removed ad group is expected, in this format: `customers/{customer_id}/adGroups/{ad_group_id}`",
          "type": "string"
        },
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "type": "string",
          "format": "google-fieldmask"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new ad group.",
          "$ref": "GoogleAdsSearchads360V23Resources__AdGroup"
        },
        "update": {
          "description": "Update operation: The ad group is expected to have a valid resource name.",
          "$ref": "GoogleAdsSearchads360V23Resources__AdGroup"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__AdGroupOperation",
      "description": "A single operation (create, update, remove) on an ad group.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__MaximizeConversions": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__MaximizeConversions",
      "description": "An automated bidding strategy to help get the most conversions for your campaigns while spending your budget.",
      "properties": {
        "cpcBidCeilingMicros": {
          "description": "Maximum bid limit that can be set by the bid strategy. The limit applies to all keywords managed by the strategy. Mutable for portfolio bidding strategies only.",
          "type": "string",
          "format": "int64"
        },
        "targetCpaMicros": {
          "description": "The target cost-per-action (CPA) option. This is the average amount that you would like to spend per conversion action specified in micro units of the bidding strategy's currency. If set, the bid strategy will get as many conversions as possible at or below the target cost-per-action. If the target CPA is not set, the bid strategy will aim to achieve the lowest possible CPA given the budget.",
          "type": "string",
          "format": "int64"
        },
        "cpcBidFloorMicros": {
          "type": "string",
          "format": "int64",
          "description": "Minimum bid limit that can be set by the bid strategy. The limit applies to all keywords managed by the strategy. Mutable for portfolio bidding strategies only."
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__VideoCustomer": {
      "properties": {
        "thirdPartyIntegrationPartners": {
          "description": "Third Party integration partners.",
          "$ref": "GoogleAdsSearchads360V23Common__CustomerThirdPartyIntegrationPartners"
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__VideoCustomer",
      "description": "Video specific information about a Customer.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__ApplyIncentiveResponse": {
      "id": "GoogleAdsSearchads360V23Services__ApplyIncentiveResponse",
      "description": "Response for applying an incentive.",
      "type": "object",
      "properties": {
        "creationTime": {
          "type": "string",
          "description": "The timestamp when this incentive was applied. The timestamp is in UTC timezone and in \"yyyy-MM-dd HH:mm:ss\" format."
        },
        "couponCode": {
          "type": "string",
          "description": "The coupon code of the applied incentive. A globally unique identifier of the applied incentive. This code is separate and distinct from the selected_incentive_id in the request."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__SuggestSmartCampaignAdRequest": {
      "id": "GoogleAdsSearchads360V23Services__SuggestSmartCampaignAdRequest",
      "description": "Request message for SmartCampaignSuggestService.SuggestSmartCampaignAd.",
      "type": "object",
      "properties": {
        "suggestionInfo": {
          "description": "Required. Inputs used to suggest a Smart campaign ad. Required fields: final_url, language_code, keyword_themes. Optional but recommended fields to improve the quality of the suggestion: business_setting and geo_target.",
          "$ref": "GoogleAdsSearchads360V23Services__SmartCampaignSuggestionInfo"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__UrlSeed": {
      "id": "GoogleAdsSearchads360V23Services__UrlSeed",
      "description": "Url Seed",
      "type": "object",
      "properties": {
        "url": {
          "description": "The URL to crawl in order to generate keyword ideas.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateBiddingSeasonalityAdjustmentsRequest": {
      "properties": {
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__BiddingSeasonalityAdjustmentOperation"
          },
          "description": "Required. The list of operations to perform on individual seasonality adjustments."
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        },
        "responseContentType": {
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "type": "string",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ]
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateBiddingSeasonalityAdjustmentsRequest",
      "description": "Request message for BiddingSeasonalityAdjustmentService.MutateBiddingSeasonalityAdjustments."
    },
    "GoogleAdsSearchads360V23Services__ManualCpcBiddingStrategy": {
      "properties": {
        "dailyBudgetMicros": {
          "description": "Campaign level budget in micros. If set, a minimum value is enforced for the local currency used in the campaign. An error will occur showing the minimum value if this field is set too low.",
          "type": "string",
          "format": "int64"
        },
        "maxCpcBidMicros": {
          "type": "string",
          "format": "int64",
          "description": "Required. A bid in micros to be applied to ad groups within the campaign for a manual CPC bidding strategy."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__ManualCpcBiddingStrategy",
      "description": "Manual CPC Bidding Strategy."
    },
    "GoogleAdsSearchads360V23Services__MutateRemarketingActionsResponse": {
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "description": "All results for the mutate.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateRemarketingActionResult"
          }
        }
      },
      "id": "GoogleAdsSearchads360V23Services__MutateRemarketingActionsResponse",
      "description": "Response message for remarketing action mutate.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchema_PostbackMapping": {
      "properties": {
        "lockWindowFineConversionValue": {
          "type": "integer",
          "format": "int32",
          "description": "Output only. Fine grained conversion value that triggers conversion window lock.",
          "readOnly": true
        },
        "coarseGrainedConversionValueMappings": {
          "readOnly": true,
          "description": "Output only. Conversion value mappings for all coarse grained conversion values.",
          "$ref": "GoogleAdsSearchads360V23Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchema_CoarseGrainedConversionValueMappings"
        },
        "postbackSequenceIndex": {
          "description": "Output only. 0-based index that indicates the order of postback. Valid values are in the inclusive range [0,2].",
          "type": "integer",
          "format": "int32",
          "readOnly": true
        },
        "lockWindowCoarseConversionValue": {
          "description": "Output only. Coarse grained conversion value that triggers conversion window lock.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "The value was not present in the postback or we do not have this data for other reasons.",
            "A low coarse conversion value.",
            "A medium coarse conversion value.",
            "A high coarse conversion value.",
            "A coarse conversion value was not configured."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "UNAVAILABLE",
            "LOW",
            "MEDIUM",
            "HIGH",
            "NONE"
          ],
          "readOnly": true
        },
        "lockWindowEvent": {
          "description": "Output only. Event name that triggers conversion window lock.",
          "type": "string",
          "readOnly": true
        }
      },
      "id": "GoogleAdsSearchads360V23Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchema_PostbackMapping",
      "description": "Mappings for each postback in multiple conversion windows.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateCustomerCustomizerResult": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateCustomerCustomizerResult",
      "description": "The result for the customizer attribute mutate.",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        },
        "customerCustomizer": {
          "description": "The mutated CustomerCustomizer with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsSearchads360V23Resources__CustomerCustomizer"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__OfflineConversionUploadClientSummary": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__OfflineConversionUploadClientSummary",
      "description": "Offline conversion upload summary at customer level.",
      "properties": {
        "pendingRate": {
          "readOnly": true,
          "type": "number",
          "format": "double",
          "description": "Output only. The ratio of total pending events to total events."
        },
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the offline conversion upload summary at customer level. Offline conversion upload client summary resource names have the form: `customers/{customer_id}/offlineConversionUploadClientSummaries/{client}`",
          "readOnly": true
        },
        "lastUploadDateTime": {
          "readOnly": true,
          "description": "Output only. Date for the latest upload batch. The format is \"yyyy-mm-dd hh:mm:ss\", and it's in the time zone of the Google Ads account.",
          "type": "string"
        },
        "totalEventCount": {
          "description": "Output only. Total count of uploaded events.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        },
        "successRate": {
          "readOnly": true,
          "description": "Output only. Successful rate.",
          "type": "number",
          "format": "double"
        },
        "alerts": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Resources__OfflineConversionAlert"
          },
          "description": "Output only. Details for each error code. Alerts are generated from most recent calendar day with upload stats.",
          "readOnly": true
        },
        "pendingEventCount": {
          "description": "Output only. Total count of pending uploaded events.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        },
        "successfulEventCount": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. Total count of successful uploaded events."
        },
        "status": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "EXCELLENT",
            "GOOD",
            "NEEDS_ATTENTION",
            "NO_RECENT_UPLOAD"
          ],
          "description": "Output only. Overall status for offline conversion client summary. Status is generated from most recent calendar day with upload stats.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Your offline data ingestion setup is active and optimal for downstream processing.",
            "Your offline ingestion setup is active, but there are further improvements you could make. See alerts.",
            "Your offline ingestion setup is active, but there are errors that require your attention. See alerts.",
            "Your offline ingestion setup has not received data in the last 28 days, there may be something wrong."
          ]
        },
        "jobSummaries": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Resources__OfflineConversionSummary"
          },
          "description": "Output only. Summary of history stats by last N jobs.",
          "readOnly": true
        },
        "client": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Google Ads API.",
            "Google Ads web client, which could include multiple sources like Ads UI, SFTP, etc.",
            "Connection platform."
          ],
          "description": "Output only. Client type of the upload event.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "GOOGLE_ADS_API",
            "GOOGLE_ADS_WEB_CLIENT",
            "ADS_DATA_CONNECTOR"
          ],
          "readOnly": true
        },
        "dailySummaries": {
          "description": "Output only. Summary of history stats by last N days.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Resources__OfflineConversionSummary"
          },
          "readOnly": true
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__AssetGroupTopCombinationView": {
      "id": "GoogleAdsSearchads360V23Resources__AssetGroupTopCombinationView",
      "description": "A view on the usage of asset group asset top combinations.",
      "type": "object",
      "properties": {
        "assetGroupTopCombinations": {
          "readOnly": true,
          "description": "Output only. The top combinations of assets that served together.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Resources__AssetGroupAssetCombinationData"
          }
        },
        "resourceName": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The resource name of the asset group top combination view. AssetGroup Top Combination view resource names have the form: `\"customers/{customer_id}/assetGroupTopCombinationViews/{asset_group_id}~{asset_combination_category}\""
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateCampaignAssetSetsRequest": {
      "properties": {
        "responseContentType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation."
        },
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__CampaignAssetSetOperation"
          },
          "description": "Required. The list of operations to perform on individual campaign asset sets."
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateCampaignAssetSetsRequest",
      "description": "Request message for CampaignAssetSetService.MutateCampaignAssetSets."
    },
    "GoogleAdsSearchads360V23Services__ConversionCustomDimensionHeader": {
      "properties": {
        "id": {
          "type": "string",
          "format": "int64",
          "description": "The conversion custom dimension ID."
        },
        "name": {
          "type": "string",
          "description": "The user defined name of the conversion custom dimension."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__ConversionCustomDimensionHeader",
      "description": "Message for conversion custom dimension header."
    },
    "GoogleAdsSearchads360V23Resources__AssetPolicySummary": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__AssetPolicySummary",
      "description": "Contains policy information for an asset.",
      "properties": {
        "reviewStatus": {
          "type": "string",
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "Currently under review.",
            "Primary review complete. Other reviews may be continuing.",
            "The resource has been resubmitted for approval or its policy decision has been appealed.",
            "The resource is eligible and may be serving but could still undergo further review."
          ],
          "description": "Output only. Where in the review process this asset is.",
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "REVIEW_IN_PROGRESS",
            "REVIEWED",
            "UNDER_APPEAL",
            "ELIGIBLE_MAY_SERVE"
          ]
        },
        "approvalStatus": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DISAPPROVED",
            "APPROVED_LIMITED",
            "APPROVED",
            "AREA_OF_INTEREST_ONLY"
          ],
          "description": "Output only. The overall approval status of this asset, calculated based on the status of its individual policy topic entries.",
          "type": "string",
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "Will not serve.",
            "Serves with restrictions.",
            "Serves without restrictions.",
            "Will not serve in targeted countries, but may serve for users who are searching for information about the targeted countries."
          ]
        },
        "policyTopicEntries": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__PolicyTopicEntry"
          },
          "description": "Output only. The list of policy findings for this asset.",
          "readOnly": true
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateUserListsResponse": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateUserListsResponse",
      "description": "Response message for user list mutate.",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateUserListResult"
          },
          "description": "All results for the mutate."
        }
      }
    },
    "GoogleAdsSearchads360V23Resources_Recommendation_TargetRoasOptInRecommendation": {
      "properties": {
        "requiredCampaignBudgetAmountMicros": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. The minimum campaign budget, in local currency for the account, required to achieve the target ROAS. Amount is specified in micros, where one million is equivalent to one currency unit."
        },
        "recommendedTargetRoas": {
          "description": "Output only. The recommended target ROAS (revenue per unit of spend). The value is between 0.01 and 1000.0, inclusive.",
          "type": "number",
          "format": "double",
          "readOnly": true
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources_Recommendation_TargetRoasOptInRecommendation",
      "description": "The Target ROAS opt-in recommendation."
    },
    "GoogleAdsSearchads360V23Services__MutateAdGroupCustomizersRequest": {
      "properties": {
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        },
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__AdGroupCustomizerOperation"
          },
          "description": "Required. The list of operations to perform on individual ad group customizers."
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "responseContentType": {
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "type": "string",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ]
        }
      },
      "id": "GoogleAdsSearchads360V23Services__MutateAdGroupCustomizersRequest",
      "description": "Request message for AdGroupCustomizerService.MutateAdGroupCustomizers.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__AdGroupCriterionCustomizerOperation": {
      "properties": {
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed ad group criterion customizer is expected, in this format: `customers/{customer_id}/adGroupCriterionCustomizers/{ad_group_id}~{criterion_id}~{customizer_attribute_id}`"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new ad group criterion customizer.",
          "$ref": "GoogleAdsSearchads360V23Resources__AdGroupCriterionCustomizer"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__AdGroupCriterionCustomizerOperation",
      "description": "A single operation (create, remove) on a customizer attribute.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources__LocalServicesVerificationArtifact": {
      "id": "GoogleAdsSearchads360V23Resources__LocalServicesVerificationArtifact",
      "description": "A local services verification resource.",
      "type": "object",
      "properties": {
        "businessRegistrationCheckVerificationArtifact": {
          "readOnly": true,
          "description": "Output only. A business registration check verification artifact.",
          "$ref": "GoogleAdsSearchads360V23Resources__BusinessRegistrationCheckVerificationArtifact"
        },
        "artifactType": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BACKGROUND_CHECK",
            "INSURANCE",
            "LICENSE",
            "BUSINESS_REGISTRATION_CHECK"
          ],
          "description": "Output only. The type of the verification artifact.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Background check verification artifact.",
            "Insurance verification artifact.",
            "License verification artifact.",
            "Business registration check verification artifact."
          ]
        },
        "status": {
          "description": "Output only. The status of the verification artifact.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Artifact has passed verification.",
            "Artifact has failed verification.",
            "Artifact is in the process of verification.",
            "Artifact needs user to upload information before it is verified.",
            "Artifact has been cancelled by the user."
          ],
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PASSED",
            "FAILED",
            "PENDING",
            "NO_SUBMISSION",
            "CANCELLED"
          ]
        },
        "creationDateTime": {
          "type": "string",
          "description": "Output only. The timestamp when this verification artifact was created. The format is \"YYYY-MM-DD HH:MM:SS\" in the Google Ads account's timezone. Examples: \"2018-03-05 09:15:00\" or \"2018-02-01 14:34:30\"",
          "readOnly": true
        },
        "backgroundCheckVerificationArtifact": {
          "readOnly": true,
          "description": "Output only. A background check verification artifact.",
          "$ref": "GoogleAdsSearchads360V23Resources__BackgroundCheckVerificationArtifact"
        },
        "insuranceVerificationArtifact": {
          "readOnly": true,
          "description": "Output only. An insurance verification artifact.",
          "$ref": "GoogleAdsSearchads360V23Resources__InsuranceVerificationArtifact"
        },
        "resourceName": {
          "description": "Immutable. The resource name of the Local Services Verification. Local Services Verification resource names have the form: `customers/{customer_id}/localServicesVerificationArtifacts/{verification_artifact_id}`",
          "type": "string"
        },
        "id": {
          "readOnly": true,
          "description": "Output only. The ID of the verification artifact.",
          "type": "string",
          "format": "int64"
        },
        "licenseVerificationArtifact": {
          "description": "Output only. A license verification artifact.",
          "$ref": "GoogleAdsSearchads360V23Resources__LicenseVerificationArtifact",
          "readOnly": true
        }
      }
    },
    "GoogleAdsSearchads360V23Common__CustomAudienceInfo": {
      "id": "GoogleAdsSearchads360V23Common__CustomAudienceInfo",
      "description": "A custom audience criterion.",
      "type": "object",
      "properties": {
        "customAudience": {
          "type": "string",
          "description": "The CustomAudience resource name."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__ListingDimensionPath": {
      "properties": {
        "dimensions": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__ListingDimensionInfo"
          },
          "description": "The complete path of dimensions through the listing group hierarchy, from the root (excluding the root itself) to this listing group."
        }
      },
      "id": "GoogleAdsSearchads360V23Common__ListingDimensionPath",
      "description": "The path of dimensions defining a listing group.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateAdGroupCriterionLabelsRequest": {
      "properties": {
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__AdGroupCriterionLabelOperation"
          },
          "description": "Required. The list of operations to perform on ad group criterion labels."
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__MutateAdGroupCriterionLabelsRequest",
      "description": "Request message for AdGroupCriterionLabelService.MutateAdGroupCriterionLabels.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources_Recommendation_CampaignBudgetRecommendation": {
      "id": "GoogleAdsSearchads360V23Resources_Recommendation_CampaignBudgetRecommendation",
      "description": "The budget recommendation for budget constrained campaigns.",
      "type": "object",
      "properties": {
        "currentBudgetAmountMicros": {
          "readOnly": true,
          "description": "Output only. The current budget amount in micros.",
          "type": "string",
          "format": "int64"
        },
        "budgetOptions": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Resources_RecommendationCampaignBudgetRecommendation_CampaignBudgetRecommendationOption"
          },
          "description": "Output only. The budget amounts and associated impact estimates for some values of possible budget amounts.",
          "readOnly": true
        },
        "recommendedBudgetAmountMicros": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. The recommended budget amount in micros."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__CampaignGroupOperation": {
      "properties": {
        "updateMask": {
          "type": "string",
          "format": "google-fieldmask",
          "description": "FieldMask that determines which resource fields are modified in an update."
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new campaign group.",
          "$ref": "GoogleAdsSearchads360V23Resources__CampaignGroup"
        },
        "update": {
          "description": "Update operation: The campaign group is expected to have a valid resource name.",
          "$ref": "GoogleAdsSearchads360V23Resources__CampaignGroup"
        },
        "remove": {
          "description": "Remove operation: A resource name for the removed campaign group is expected, in this format: `customers/{customer_id}/campaignGroups/{campaign_group_id}`",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__CampaignGroupOperation",
      "description": "A single operation (create, update, remove) on a campaign group.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__ConversionRateSuggestion": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__ConversionRateSuggestion",
      "description": "A conversion rate suggestion.",
      "properties": {
        "conversionRate": {
          "description": "The suggested conversion rate. The value is between 0 and 1 (exclusive).",
          "type": "number",
          "format": "double"
        },
        "conversionRateModel": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Suggested conversion rate for the authenticated customer based on the previous 70 days.",
            "Suggested conversion rate based on an aggressive rate for the entire inventory.",
            "Suggested conversion rate based on a conservative rate for the entire inventory.",
            "Suggested conversion rate based on the median rate for the entire inventory."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CUSTOMER_HISTORY",
            "INVENTORY_AGGRESSIVE",
            "INVENTORY_CONSERVATIVE",
            "INVENTORY_MEDIAN"
          ],
          "description": "Model type used to calculate the suggested conversion rate."
        },
        "plannableProductCode": {
          "description": "The code associated with the plannable product (for example: DEMAND_GEN). To list all plannable product codes, use ReachPlanService.ListPlannableProducts.",
          "type": "string"
        },
        "surfaceTargeting": {
          "description": "The surfaces associated with the plannable product. If not present, the conversion rate is considered surface agnostic for this product.",
          "$ref": "GoogleAdsSearchads360V23Services__SurfaceTargeting"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__FrequencyCapKey": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__FrequencyCapKey",
      "description": "A group of fields used as keys for a frequency cap. There can be no more than one frequency cap with the same key.",
      "properties": {
        "eventType": {
          "description": "The type of event that the cap applies to (for example, impression).",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The cap applies on ad impressions.",
            "The cap applies on video ad views."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "IMPRESSION",
            "VIDEO_VIEW"
          ]
        },
        "timeUnit": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The cap would define limit per one day.",
            "The cap would define limit per one week.",
            "The cap would define limit per one month."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DAY",
            "WEEK",
            "MONTH"
          ],
          "description": "Unit of time the cap is defined at (for example, day, week)."
        },
        "timeLength": {
          "type": "integer",
          "format": "int32",
          "description": "Number of time units the cap lasts."
        },
        "level": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The cap is applied at the ad group ad level.",
            "The cap is applied at the ad group level.",
            "The cap is applied at the campaign level."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AD_GROUP_AD",
            "AD_GROUP",
            "CAMPAIGN"
          ],
          "description": "The level on which the cap is to be applied (for example, ad group ad, ad group). The cap is applied to all the entities of this level."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__CpcBidSimulationPointList": {
      "properties": {
        "points": {
          "description": "Projected metrics for a series of CPC bid amounts.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__CpcBidSimulationPoint"
          }
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__CpcBidSimulationPointList",
      "description": "A container for simulation points for simulations of type CPC_BID."
    },
    "GoogleAdsSearchads360V23Common__Money": {
      "properties": {
        "currencyCode": {
          "type": "string",
          "description": "Three-character ISO 4217 currency code."
        },
        "amountMicros": {
          "description": "Amount in micros. One million is equivalent to one unit.",
          "type": "string",
          "format": "int64"
        }
      },
      "id": "GoogleAdsSearchads360V23Common__Money",
      "description": "Represents a price in a particular currency.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources_CustomerSkAdNetworkConversionValueSchema_SkAdNetworkConversionValueSchema": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources_CustomerSkAdNetworkConversionValueSchema_SkAdNetworkConversionValueSchema",
      "description": "The CustomerLink specific SkAdNetworkConversionValueSchema.",
      "properties": {
        "appId": {
          "type": "string",
          "description": "Required. Output only. Apple App Store app ID.",
          "readOnly": true
        },
        "postbackMappings": {
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchema_PostbackMapping"
          },
          "description": "Output only. Per-postback conversion value mappings for postbacks in multiple conversion windows. Only applicable for SkAdNetwork versions \u003e= 4.0."
        },
        "measurementWindowHours": {
          "readOnly": true,
          "type": "integer",
          "format": "int32",
          "description": "Output only. A time window (measured in hours) post-install, after which the App Attribution Partner or advertiser stops calling [updateConversionValue] (https://developer.apple.com/documentation/storekit/skadnetwork/3566697-updateconversionvalue)."
        },
        "fineGrainedConversionValueMappings": {
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchema_FineGrainedConversionValueMappings"
          },
          "description": "Output only. Fine grained conversion value mappings."
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__ConversionCustomVariable": {
      "properties": {
        "id": {
          "description": "Output only. The ID of the conversion custom variable.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        },
        "family": {
          "description": "Output only. Family of the conversion custom variable.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The standard conversion custom variable. Customers are required to activate before use.",
            "The conversion custom variable imported from a custom floodlight variable."
          ],
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "STANDARD",
            "FLOODLIGHT"
          ]
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the conversion custom variable. Conversion custom variable resource names have the form: `customers/{customer_id}/conversionCustomVariables/{conversion_custom_variable_id}`"
        },
        "ownerCustomer": {
          "readOnly": true,
          "description": "Output only. The resource name of the customer that owns the conversion custom variable.",
          "type": "string"
        },
        "cardinality": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The conversion custom variable has cardinality below all limits. The variable can be used for segmentation, and stats can accrue for new values if the variable is enabled.",
            "The conversion custom variable has cardinality that exceeds the segmentation limit, but does not exceed the stats limit. Segmentation will be disabled, but stats can accrue for new values if the variable is enabled.",
            "The conversion custom variable has exceeded the segmentation limits, and is approaching the stats limits (\u003e 90%). Segmentation will be disabled, but stats can accrue for new values if the variable is enabled.",
            "The conversion custom variable has exceeded both the segmentation limits and stats limits. Segmentation will be disabled, and stats for enabled variables can accrue only if the existing values do not increase the cardinality of the variable any further."
          ],
          "description": "Output only. Cardinality of the conversion custom variable.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BELOW_ALL_LIMITS",
            "EXCEEDS_SEGMENTATION_LIMIT_BUT_NOT_STATS_LIMIT",
            "APPROACHES_STATS_LIMIT",
            "EXCEEDS_STATS_LIMIT"
          ],
          "readOnly": true
        },
        "floodlightConversionCustomVariableInfo": {
          "description": "Output only. Fields for Search Ads 360 floodlight conversion custom variables.",
          "$ref": "GoogleAdsSearchads360V23Resources_ConversionCustomVariable_FloodlightConversionCustomVariableInfo",
          "readOnly": true
        },
        "customColumnIds": {
          "description": "Output only. The IDs of custom columns that use this conversion custom variable.",
          "type": "array",
          "items": {
            "type": "string",
            "format": "int64"
          },
          "readOnly": true
        },
        "tag": {
          "description": "Required. Immutable. The tag of the conversion custom variable. Tag should be unique and consist of a \"u\" character directly followed with a number less than ormequal to 100. For example: \"u4\".",
          "type": "string"
        },
        "name": {
          "description": "Required. The name of the conversion custom variable. Name should be unique. The maximum length of name is 100 characters. There should not be any extra spaces before and after.",
          "type": "string"
        },
        "status": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The conversion custom variable is pending activation and will not accrue stats until set to ENABLED. This status can't be used in CREATE and UPDATE requests.",
            "The conversion custom variable is enabled and will accrue stats.",
            "The conversion custom variable is paused and will not accrue stats until set to ENABLED again."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ACTIVATION_NEEDED",
            "ENABLED",
            "PAUSED"
          ],
          "description": "The status of the conversion custom variable for conversion event accrual."
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__ConversionCustomVariable",
      "description": "A conversion custom variable. See \"About custom Floodlight metrics and dimensions in the new Search Ads 360\" at https://support.google.com/sa360/answer/13567857",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__EnableOperation": {
      "properties": {
        "campaign": {
          "type": "string",
          "description": "Required. The resource name of the campaign to enable."
        },
        "fontFamily": {
          "description": "Optional. The font family is specified as a string, and must be one of the following: \"Open Sans\", \"Roboto\", \"Roboto Slab\", \"Montserrat\", \"Poppins\", \"Lato\", \"Oswald\", or \"Playfair Display\".",
          "type": "string"
        },
        "mainColor": {
          "type": "string",
          "description": "Optional. Hex code representation of the main brand color, for example #00ff00. main_color is required when accent color is specified."
        },
        "finalUriDomain": {
          "type": "string",
          "description": "Optional. The domain of the final uri."
        },
        "autoPopulateBrandAssets": {
          "type": "boolean",
          "description": "Required. The switch to automatically populate top-performing brand assets. This field is required. If true, top-performing brand assets will be automatically populated. If false, the brand_assets field is required."
        },
        "brandAssets": {
          "description": "Optional. The brand assets linked to the campaign. This field is required when the value of auto_populate_brand_assets is false.",
          "$ref": "GoogleAdsSearchads360V23Services__BrandCampaignAssets"
        },
        "accentColor": {
          "description": "Optional. Hex code representation of the accent brand color, for example #00ff00. accent_color is required when main_color is specified.",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__EnableOperation",
      "description": "A single enable operation of a campaign.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__AccountBudgetProposalOperation": {
      "properties": {
        "updateMask": {
          "description": "FieldMask that determines which budget fields are modified. While budgets may be modified, proposals that propose such modifications are final. Therefore, update operations are not supported for proposals. Proposals that modify budgets have the 'update' proposal type. Specifying a mask for any other proposal type is considered an error.",
          "type": "string",
          "format": "google-fieldmask"
        },
        "create": {
          "description": "Create operation: A new proposal to create a new budget, edit an existing budget, end an actively running budget, or remove an approved budget scheduled to start in the future. No resource name is expected for the new proposal.",
          "$ref": "GoogleAdsSearchads360V23Resources__AccountBudgetProposal"
        },
        "remove": {
          "description": "Remove operation: A resource name for the removed proposal is expected, in this format: `customers/{customer_id}/accountBudgetProposals/{account_budget_proposal_id}` A request may be cancelled iff it is pending.",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__AccountBudgetProposalOperation",
      "description": "A single operation to propose the creation of a new account-level budget or edit/end/remove an existing one.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__PlannableLocation": {
      "id": "GoogleAdsSearchads360V23Services__PlannableLocation",
      "description": "A plannable location: country, metro region, province, etc.",
      "type": "object",
      "properties": {
        "countryCode": {
          "description": "The ISO-3166-1 alpha-2 country code that is associated with the location.",
          "type": "string"
        },
        "locationType": {
          "description": "The location's type. Location types correspond to target_type returned by .",
          "type": "string"
        },
        "name": {
          "description": "The unique location name in English.",
          "type": "string"
        },
        "parentCountryId": {
          "description": "The parent country (not present if location is a country). If present, will always be a GeoTargetConstant ID. Additional information such as country name is provided by ReachPlanService.ListPlannableLocations or",
          "type": "string",
          "format": "int64"
        },
        "id": {
          "description": "The location identifier.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources_Campaign_PerformanceMaxUpgrade": {
      "properties": {
        "preUpgradeCampaign": {
          "readOnly": true,
          "description": "Output only. The resource name of the legacy campaign upgraded to Performance Max.",
          "type": "string"
        },
        "status": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The upgrade to a Performance Max campaign is in progress.",
            "The upgrade to a Performance Max campaign is complete.",
            "The upgrade to a Performance Max campaign failed. The campaign will still serve as it was before upgrade was attempted.",
            "The campaign is eligible for upgrade to a Performance Max campaign."
          ],
          "description": "Output only. The upgrade status of a campaign requested to be upgraded to Performance Max.",
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "UPGRADE_IN_PROGRESS",
            "UPGRADE_COMPLETE",
            "UPGRADE_FAILED",
            "UPGRADE_ELIGIBLE"
          ]
        },
        "performanceMaxCampaign": {
          "readOnly": true,
          "description": "Output only. The resource name of the Performance Max campaign the campaign is upgraded to.",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V23Resources_Campaign_PerformanceMaxUpgrade",
      "description": "Information about a campaign being upgraded to Performance Max.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources_AdGroupCriterion_PositionEstimates": {
      "id": "GoogleAdsSearchads360V23Resources_AdGroupCriterion_PositionEstimates",
      "description": "Estimates for criterion bids at various positions.",
      "type": "object",
      "properties": {
        "firstPositionCpcMicros": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. The estimate of the CPC bid required for ad to be displayed in first position, at the top of the first page of search results."
        },
        "topOfPageCpcMicros": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. The estimate of the CPC bid required for ad to be displayed at the top of the first page of search results."
        },
        "estimatedAddClicksAtFirstPositionCpc": {
          "type": "string",
          "format": "int64",
          "description": "Output only. Estimate of how many clicks per week you might get by changing your keyword bid to the value in first_position_cpc_micros.",
          "readOnly": true
        },
        "firstPageCpcMicros": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. The estimate of the CPC bid required for ad to be shown on first page of search results."
        },
        "estimatedAddCostAtFirstPositionCpc": {
          "type": "string",
          "format": "int64",
          "description": "Output only. Estimate of how your cost per week might change when changing your keyword bid to the value in first_position_cpc_micros.",
          "readOnly": true
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateSharedCriterionResult": {
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        },
        "sharedCriterion": {
          "description": "The mutated shared criterion with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsSearchads360V23Resources__SharedCriterion"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__MutateSharedCriterionResult",
      "description": "The result for the shared criterion mutate.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources_AdGroup_AiMaxAdGroupSetting": {
      "properties": {
        "disableSearchTermMatching": {
          "description": "Disable search term matching for this adgroup when AI Max is enabled. Search term matching uses broad match, asset-based, and landing page-based technology to improve reach.",
          "type": "boolean"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources_AdGroup_AiMaxAdGroupSetting",
      "description": "Settings for AI Max feature in standard search adgroups."
    },
    "GoogleAdsSearchads360V23Services__MutateRecommendationSubscriptionRequest": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateRecommendationSubscriptionRequest",
      "description": "Request message for RecommendationSubscriptionService.MutateRecommendationSubscription",
      "properties": {
        "responseContentType": {
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation. The mutable resource will only be returned if the resource has the appropriate response field. For example, MutateCampaignResult.campaign.",
          "type": "string",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ]
        },
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        },
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__RecommendationSubscriptionOperation"
          },
          "description": "Required. The list of create or update operations."
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__Goal": {
      "properties": {
        "goalId": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. The ID of this goal."
        },
        "optimizationEligibility": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ELIGIBLE",
            "INELIGIBLE"
          ],
          "type": "string",
          "enumDescriptions": [
            "The goal optimization status has not been specified.",
            "The goal optimization status is not known in this version.",
            "The goal is eligible for campaign optimization.",
            "The goal is not eligible for campaign optimization."
          ],
          "description": "Output only. Indicates if this goal is eligible for campaign optimization."
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the goal. Goal resource names have the form: `customers/{customer_id}/goals/{goal_id}`"
        },
        "ownerCustomer": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The resource name of the goal owner customer."
        },
        "goalType": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CUSTOMER_RETENTION"
          ],
          "description": "Output only. The type of this goal.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Retention goal, which allows advertisers to optimize campaigns to win back lapsed customers. (https://support.google.com/google-ads/answer/14792043?hl=en)"
          ]
        },
        "retentionGoalSettings": {
          "description": "Retention goal settings.",
          "$ref": "GoogleAdsSearchads360V23Common_GoalSetting_RetentionGoal"
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__Goal",
      "description": "Representation of goals.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources__Note": {
      "properties": {
        "editDateTime": {
          "readOnly": true,
          "description": "Output only. The date time when lead note was edited. The format is \"YYYY-MM-DD HH:MM:SS\" in the Google Ads account's timezone. Examples: \"2018-03-05 09:15:00\" or \"2018-02-01 14:34:30\"",
          "type": "string"
        },
        "description": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Content of lead note."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__Note",
      "description": "Represents a note added to a lead by the advertiser. Advertisers can edit notes, which will reset edit time and change description."
    },
    "GoogleAdsSearchads360V23Services__MutateCustomConversionGoalsResponse": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateCustomConversionGoalsResponse",
      "description": "Response message for a custom conversion goal mutate.",
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateCustomConversionGoalResult"
          },
          "description": "All results for the mutate."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__ExperimentOperation": {
      "id": "GoogleAdsSearchads360V23Services__ExperimentOperation",
      "description": "A single operation on an experiment.",
      "type": "object",
      "properties": {
        "remove": {
          "description": "Remove operation: The experiment is expected to have a valid resource name, in this format: `customers/{customer_id}/experiments/{campaign_experiment_id}`",
          "type": "string"
        },
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "type": "string",
          "format": "google-fieldmask"
        },
        "create": {
          "description": "Create operation",
          "$ref": "GoogleAdsSearchads360V23Resources__Experiment"
        },
        "update": {
          "description": "Update operation: The experiment is expected to have a valid resource name.",
          "$ref": "GoogleAdsSearchads360V23Resources__Experiment"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__CustomAudience": {
      "properties": {
        "description": {
          "description": "Description of this custom audience.",
          "type": "string"
        },
        "type": {
          "description": "Type of the custom audience. (\"INTEREST\" OR \"PURCHASE_INTENT\" is not allowed for newly created custom audience but kept for existing audiences)",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Google Ads will auto-select the best interpretation at serving time.",
            "Matches users by their interests.",
            "Matches users by topics they are researching or products they are considering for purchase.",
            "Matches users by what they searched on Google Search."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AUTO",
            "INTEREST",
            "PURCHASE_INTENT",
            "SEARCH"
          ]
        },
        "members": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Resources__CustomAudienceMember"
          },
          "description": "List of custom audience members that this custom audience is composed of. Members can be added during CustomAudience creation. If members are presented in UPDATE operation, existing members will be overridden."
        },
        "name": {
          "description": "Name of the custom audience. It should be unique for all custom audiences created by a customer. This field is required for creating operations.",
          "type": "string"
        },
        "resourceName": {
          "description": "Immutable. The resource name of the custom audience. Custom audience resource names have the form: `customers/{customer_id}/customAudiences/{custom_audience_id}`",
          "type": "string"
        },
        "status": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ],
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Enabled status - custom audience is enabled and can be targeted.",
            "Removed status - custom audience is removed and cannot be used for targeting."
          ],
          "description": "Output only. Status of this custom audience. Indicates whether the custom audience is enabled or removed."
        },
        "id": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. ID of the custom audience."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__CustomAudience",
      "description": "A custom audience. This is a list of users by interest. The unique key of a custom audience consists of the following fields: name. Violating the unique key constraint produces error: CustomAudienceError.NAME_ALREADY_USED"
    },
    "GoogleAdsSearchads360V23Services__PlannedProductReachForecast": {
      "id": "GoogleAdsSearchads360V23Services__PlannedProductReachForecast",
      "description": "The forecasted allocation and traffic metrics for a specific product at a point on the reach curve.",
      "type": "object",
      "properties": {
        "plannedProductForecast": {
          "description": "Forecasted traffic metrics for this product.",
          "$ref": "GoogleAdsSearchads360V23Services__PlannedProductForecast"
        },
        "costMicros": {
          "description": "The cost in micros. This may differ from the product's input allocation if one or more planned products cannot fulfill the budget because of limited inventory.",
          "type": "string",
          "format": "int64"
        },
        "plannableProductCode": {
          "type": "string",
          "description": "Selected product for planning. The product codes returned are within the set of the ones returned by ListPlannableProducts when using the same location ID."
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__ThirdPartyAppAnalyticsLinkIdentifier": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__ThirdPartyAppAnalyticsLinkIdentifier",
      "description": "The identifiers of a Third Party App Analytics Link.",
      "properties": {
        "appAnalyticsProviderId": {
          "type": "string",
          "format": "int64",
          "description": "Immutable. The ID of the app analytics provider. This field should not be empty when creating a new third party app analytics link. It is unable to be modified after the creation of the link."
        },
        "appVendor": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Mobile app vendor for Apple app store.",
            "Mobile app vendor for Google app store."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "APPLE_APP_STORE",
            "GOOGLE_APP_STORE"
          ],
          "description": "Immutable. The vendor of the app. This field should not be empty when creating a new third party app analytics link. It is unable to be modified after the creation of the link."
        },
        "appId": {
          "description": "Immutable. A string that uniquely identifies a mobile application from which the data was collected to the Google Ads API. For iOS, the ID string is the 9 digit string that appears at the end of an App Store URL (for example, \"422689480\" for \"Gmail\" whose App Store link is https://apps.apple.com/us/app/gmail-email-by-google/id422689480). For Android, the ID string is the application's package name (for example, \"com.google.android.gm\" for \"Gmail\" given Google Play link https://play.google.com/store/apps/details?id=com.google.android.gm) This field should not be empty when creating a new third party app analytics link. It is unable to be modified after the creation of the link.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__CustomerLifecycleOptimizationValueSettings": {
      "properties": {
        "additionalValue": {
          "type": "number",
          "format": "double",
          "description": "Value of the lifecycle goal. For example, for retention goals, value is the incremental conversion value for lapsed customers who are not of high value."
        },
        "additionalHighLifetimeValue": {
          "description": "High lifetime value of the lifecycle goal. For example, for customer acquisition goals, high lifetime value is the incremental conversion value for lapsed customers who are of high value. High lifetime value should be greater than value, if set.",
          "type": "number",
          "format": "double"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__CustomerLifecycleOptimizationValueSettings",
      "description": "Lifecycle goal optimization value settings."
    },
    "GoogleAdsSearchads360V23Services__ListInvoicesResponse": {
      "properties": {
        "invoices": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Resources__Invoice"
          },
          "description": "The list of invoices that match the billing setup and time period."
        }
      },
      "id": "GoogleAdsSearchads360V23Services__ListInvoicesResponse",
      "description": "Response message for InvoiceService.ListInvoices.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateCustomerAssetsResponse": {
      "id": "GoogleAdsSearchads360V23Services__MutateCustomerAssetsResponse",
      "description": "Response message for a customer asset mutate.",
      "type": "object",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "description": "All results for the mutate.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateCustomerAssetResult"
          }
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateCustomerConversionGoalsResponse": {
      "properties": {
        "results": {
          "description": "All results for the mutate.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateCustomerConversionGoalResult"
          }
        }
      },
      "id": "GoogleAdsSearchads360V23Services__MutateCustomerConversionGoalsResponse",
      "description": "Response message for a customer conversion goal mutate.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources_AccessibleBiddingStrategy_TargetCpa": {
      "properties": {
        "targetCpaMicros": {
          "type": "string",
          "format": "int64",
          "description": "Output only. Average CPA target. This target should be greater than or equal to minimum billable unit based on the currency for the account.",
          "readOnly": true
        }
      },
      "id": "GoogleAdsSearchads360V23Resources_AccessibleBiddingStrategy_TargetCpa",
      "description": "An automated bid strategy that sets bids to help get as many conversions as possible at the target cost-per-acquisition (CPA) you set.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__CreateAccountLinkResponse": {
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations. Resource name of the account link.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__CreateAccountLinkResponse",
      "description": "Response message for AccountLinkService.CreateAccountLink."
    },
    "GoogleAdsSearchads360V23Resources__CampaignSearchTermInsight": {
      "properties": {
        "id": {
          "type": "string",
          "format": "int64",
          "description": "Output only. The ID of the insight.",
          "readOnly": true
        },
        "campaignId": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. The ID of the campaign."
        },
        "categoryLabel": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The label for the search category. An empty string denotes the catch-all category for search terms that didn't fit into another category."
        },
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the campaign level search term insight. Campaign level search term insight resource names have the form: `customers/{customer_id}/campaignSearchTermInsights/{campaign_id}~{category_id}`",
          "readOnly": true
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__CampaignSearchTermInsight",
      "description": "This report provides a high-level view of search demand at the campaign level by grouping similar search terms into categories and showing their search volume. Historical data is available starting March 2023."
    },
    "GoogleAdsSearchads360V23Resources__LocationInterestView": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__LocationInterestView",
      "description": "A location interest view summarizes the performance of adgroup location interest criteria.",
      "properties": {
        "resourceName": {
          "description": "Output only. The resource name of the location interest view. Location interest view resource names have the form: `customers/{customer_id}/locationInterestViews/{campaign_id}~{ad_group_id}~{criterion_id}`",
          "type": "string",
          "readOnly": true
        }
      }
    },
    "GoogleAdsSearchads360V23Common__PercentCpc": {
      "id": "GoogleAdsSearchads360V23Common__PercentCpc",
      "description": "A bidding strategy where bids are a fraction of the advertised price for some good or service.",
      "type": "object",
      "properties": {
        "cpcBidCeilingMicros": {
          "description": "Maximum bid limit that can be set by the bid strategy. This is an optional field entered by the advertiser and specified in local micros. Note: A zero value is interpreted in the same way as having bid_ceiling undefined.",
          "type": "string",
          "format": "int64"
        },
        "enhancedCpcEnabled": {
          "description": "Adjusts the bid for each auction upward or downward, depending on the likelihood of a conversion. Individual bids may exceed cpc_bid_ceiling_micros, but the average bid amount for a campaign should not.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__CampaignToForecast": {
      "properties": {
        "keywordPlanNetwork": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Google Search.",
            "Google Search + Search partners."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "GOOGLE_SEARCH",
            "GOOGLE_SEARCH_AND_PARTNERS"
          ],
          "description": "Required. The network used for targeting."
        },
        "negativeKeywords": {
          "description": "The list of negative keywords to be used in the campaign when doing the forecast.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__KeywordInfo"
          }
        },
        "biddingStrategy": {
          "description": "Required. The bidding strategy for the campaign.",
          "$ref": "GoogleAdsSearchads360V23Services_CampaignToForecast_CampaignBiddingStrategy"
        },
        "languageConstants": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The list of resource names of languages to be targeted. The resource name is of the format \"languageConstants/{criterion_id}\". See https://developers.google.com/google-ads/api/data/codes-formats#languages for the list of language criterion codes."
        },
        "adGroups": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__ForecastAdGroup"
          },
          "description": "The ad groups in the new campaign to forecast."
        },
        "geoModifiers": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__CriterionBidModifier"
          },
          "description": "Locations to be targeted. Locations must be unique."
        },
        "conversionRate": {
          "type": "number",
          "format": "double",
          "description": "The expected conversion rate (number of conversions divided by number of total clicks) as defined by the user. This value is expressed as a decimal value, so an expected conversion rate of 2% should be entered as 0.02. If left empty, an estimated conversion rate will be used."
        }
      },
      "id": "GoogleAdsSearchads360V23Services__CampaignToForecast",
      "description": "A campaign to do a keyword campaign forecast.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateConversionActionsRequest": {
      "properties": {
        "operations": {
          "description": "Required. The list of operations to perform on individual conversion actions.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__ConversionActionOperation"
          }
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        },
        "responseContentType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation."
        }
      },
      "id": "GoogleAdsSearchads360V23Services__MutateConversionActionsRequest",
      "description": "Request message for ConversionActionService.MutateConversionActions.",
      "type": "object"
    },
    "GoogleAdsSearchads360V0Errors__QuotaErrorDetails": {
      "properties": {
        "rateScope": {
          "description": "The rate scope of the quota limit.",
          "type": "string",
          "enumDescriptions": [
            "Unspecified enum",
            "Used for return value only. Represents value unknown in this version.",
            "Per customer account quota",
            "Per project quota"
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ACCOUNT",
            "DEVELOPER"
          ]
        },
        "retryDelay": {
          "type": "string",
          "format": "google-duration",
          "description": "Backoff period that customers should wait before sending next request."
        },
        "rateName": {
          "type": "string",
          "description": "The high level description of the quota bucket. Examples are \"Get requests for standard access\" or \"Requests per account\"."
        }
      },
      "id": "GoogleAdsSearchads360V0Errors__QuotaErrorDetails",
      "description": "Additional quota error details when there is QuotaError.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__CallToActionAsset": {
      "properties": {
        "callToAction": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The call to action type is learn more.",
            "The call to action type is get quote.",
            "The call to action type is apply now.",
            "The call to action type is sign up.",
            "The call to action type is contact us.",
            "The call to action type is subscribe.",
            "The call to action type is download.",
            "The call to action type is book now.",
            "The call to action type is shop now.",
            "The call to action type is buy now.",
            "The call to action type is donate now.",
            "The call to action type is order now.",
            "The call to action type is play now.",
            "The call to action type is see more.",
            "The call to action type is start now.",
            "The call to action type is visit site.",
            "The call to action type is watch now."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "LEARN_MORE",
            "GET_QUOTE",
            "APPLY_NOW",
            "SIGN_UP",
            "CONTACT_US",
            "SUBSCRIBE",
            "DOWNLOAD",
            "BOOK_NOW",
            "SHOP_NOW",
            "BUY_NOW",
            "DONATE_NOW",
            "ORDER_NOW",
            "PLAY_NOW",
            "SEE_MORE",
            "START_NOW",
            "VISIT_SITE",
            "WATCH_NOW"
          ],
          "description": "Call to action."
        }
      },
      "id": "GoogleAdsSearchads360V23Common__CallToActionAsset",
      "description": "A call to action asset.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__RegenerateShareableLinkIdResponse": {
      "id": "GoogleAdsSearchads360V23Services__RegenerateShareableLinkIdResponse",
      "description": "Response message for ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId.",
      "type": "object",
      "properties": {}
    },
    "GoogleAdsSearchads360V23Services__MutateCampaignCustomizerResult": {
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        },
        "campaignCustomizer": {
          "description": "The mutated CampaignCustomizer with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsSearchads360V23Resources__CampaignCustomizer"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__MutateCampaignCustomizerResult",
      "description": "The result for the campaign customizer mutate.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__UserListOperation": {
      "id": "GoogleAdsSearchads360V23Services__UserListOperation",
      "description": "A single operation (create, update) on a user list.",
      "type": "object",
      "properties": {
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "type": "string",
          "format": "google-fieldmask"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new user list.",
          "$ref": "GoogleAdsSearchads360V23Resources__UserList"
        },
        "update": {
          "description": "Update operation: The user list is expected to have a valid resource name.",
          "$ref": "GoogleAdsSearchads360V23Resources__UserList"
        },
        "remove": {
          "description": "Remove operation: A resource name for the removed user list is expected, in this format: `customers/{customer_id}/userLists/{user_list_id}`",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources_Campaign_TrackingSetting": {
      "properties": {
        "trackingUrl": {
          "readOnly": true,
          "description": "Output only. The url used for dynamic tracking.",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V23Resources_Campaign_TrackingSetting",
      "description": "Campaign-level settings for tracking information.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__EventAttribute": {
      "properties": {
        "event": {
          "description": "Required. Advertiser defined event to be used for remarketing. The accepted values are \"Viewed\", \"Cart\", \"Purchased\" and \"Recommended\".",
          "type": "string"
        },
        "eventDateTime": {
          "description": "Required. Timestamp at which the event happened. The format is YYYY-MM-DD HH:MM:SS[+/-HH:MM], where [+/-HH:MM] is an optional timezone offset from UTC. If the offset is absent, the API will use the account's timezone as default.",
          "type": "string"
        },
        "itemAttribute": {
          "description": "Required. Item attributes of the event.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__EventItemAttribute"
          }
        }
      },
      "id": "GoogleAdsSearchads360V23Common__EventAttribute",
      "description": "Advertiser defined events and their attributes. All the values in the nested fields are required.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MetricAttributes": {
      "id": "GoogleAdsSearchads360V23Services__MetricAttributes",
      "description": "Indicates the attributes of metrics.",
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "The name of the metric."
        },
        "attributes": {
          "description": "The attributes of the metric.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services_MetricAttributes_Attribute"
          }
        }
      }
    },
    "GoogleAdsSearchads360V23Services_IncentiveRequirement_Spend": {
      "properties": {
        "awardAmount": {
          "description": "Required. Amount in free spend that user will be granted after spending target amount. Denominated in the currency of the country passed in the get request.",
          "$ref": "GoogleType__Money"
        },
        "requiredAmount": {
          "description": "Required. Amount that user must spend to receive the award amount. Denominated in the currency of the country passed in the get request.",
          "$ref": "GoogleType__Money"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services_IncentiveRequirement_Spend",
      "description": "Spend requirements for an incentive."
    },
    "GoogleAdsSearchads360V23Common__AdImageAsset": {
      "id": "GoogleAdsSearchads360V23Common__AdImageAsset",
      "description": "An image asset used inside an ad.",
      "type": "object",
      "properties": {
        "asset": {
          "description": "The Asset resource name of this image.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__LocationView": {
      "properties": {
        "resourceName": {
          "readOnly": true,
          "description": "Output only. The resource name of the location view. Location view resource names have the form: `customers/{customer_id}/locationViews/{campaign_id}~{criterion_id}`",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__LocationView",
      "description": "A location view summarizes the performance of campaigns by a Location criterion."
    },
    "GoogleAdsSearchads360V23Resources__SmartCampaignSearchTermView": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__SmartCampaignSearchTermView",
      "description": "A Smart campaign search term view.",
      "properties": {
        "searchTerm": {
          "type": "string",
          "description": "Output only. The search term.",
          "readOnly": true
        },
        "resourceName": {
          "readOnly": true,
          "description": "Output only. The resource name of the Smart campaign search term view. Smart campaign search term view resource names have the form: `customers/{customer_id}/smartCampaignSearchTermViews/{campaign_id}~{URL-base64_search_term}`",
          "type": "string"
        },
        "campaign": {
          "readOnly": true,
          "description": "Output only. The Smart campaign the search term served in.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Errors__BudgetPerDayMinimumErrorDetails": {
      "properties": {
        "minimumBudgetTotalAmountMicros": {
          "type": "string",
          "format": "int64",
          "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."
        },
        "currencyCode": {
          "description": "The advertiser's currency, represented as a three-letter ISO 4217 currency code (such as \"USD\").",
          "type": "string"
        },
        "failedBudgetAmountMicros": {
          "type": "string",
          "format": "int64",
          "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."
        },
        "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.",
          "type": "string",
          "format": "int64"
        },
        "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.",
          "type": "string",
          "format": "int64"
        },
        "budgetPerDayMinimumMicros": {
          "type": "string",
          "format": "int64",
          "description": "The minimum budget required by the campaign per day, in micros of the advertiser currency. Applies to both daily and custom budgets."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Errors__BudgetPerDayMinimumErrorDetails",
      "description": "Error details for a budget below per-day minimum error."
    },
    "GoogleAdsSearchads360V23Services__IdentityVerificationProgress": {
      "properties": {
        "invitationLinkExpirationTime": {
          "type": "string",
          "description": "The timestamp when the action url will expire in \"yyyy-MM-dd HH:mm:ss\" format."
        },
        "actionUrl": {
          "description": "Action URL for user to complete verification for the given verification program type.",
          "type": "string"
        },
        "programStatus": {
          "description": "Current Status (PENDING_USER_ACTION, SUCCESS, FAILURE etc)",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Verification is pending on user action to proceed.",
            "Verification is pending on review.",
            "Verification succeeded.",
            "Verification failed."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PENDING_USER_ACTION",
            "PENDING_REVIEW",
            "SUCCESS",
            "FAILURE"
          ]
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__IdentityVerificationProgress",
      "description": "Information regarding the verification progress for a verification program type."
    },
    "GoogleAdsSearchads360V23Resources_AccessibleBiddingStrategy_MaximizeConversions": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources_AccessibleBiddingStrategy_MaximizeConversions",
      "description": "An automated bidding strategy to help get the most conversions for your campaigns while spending your budget.",
      "properties": {
        "targetCpaMicros": {
          "description": "Output only. The target cost per acquisition (CPA) option. This is the average amount that you would like to spend per acquisition.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateCampaignCustomizersResponse": {
      "properties": {
        "results": {
          "description": "All results for the mutate.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateCampaignCustomizerResult"
          }
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateCampaignCustomizersResponse",
      "description": "Response message for a campaign customizer mutate."
    },
    "GoogleAdsSearchads360V23Services__GetSmartCampaignStatusResponse": {
      "id": "GoogleAdsSearchads360V23Services__GetSmartCampaignStatusResponse",
      "description": "Response message for SmartCampaignSettingService.GetSmartCampaignStatus.",
      "type": "object",
      "properties": {
        "notEligibleDetails": {
          "description": "Details related to Smart campaigns that are ineligible to serve.",
          "$ref": "GoogleAdsSearchads360V23Services__SmartCampaignNotEligibleDetails"
        },
        "removedDetails": {
          "description": "Details related to removed Smart campaigns.",
          "$ref": "GoogleAdsSearchads360V23Services__SmartCampaignRemovedDetails"
        },
        "eligibleDetails": {
          "description": "Details related to Smart campaigns that are eligible to serve.",
          "$ref": "GoogleAdsSearchads360V23Services__SmartCampaignEligibleDetails"
        },
        "endedDetails": {
          "description": "Details related to Smart campaigns that have ended.",
          "$ref": "GoogleAdsSearchads360V23Services__SmartCampaignEndedDetails"
        },
        "smartCampaignStatus": {
          "description": "The status of this Smart campaign.",
          "type": "string",
          "enumDescriptions": [
            "The status has not been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The campaign was paused.",
            "The campaign is not eligible to serve and has issues that may require intervention.",
            "The campaign is pending the approval of at least one ad.",
            "The campaign is eligible to serve.",
            "The campaign has been removed.",
            "The campaign has ended."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PAUSED",
            "NOT_ELIGIBLE",
            "PENDING",
            "ELIGIBLE",
            "REMOVED",
            "ENDED"
          ]
        },
        "pausedDetails": {
          "description": "Details related to paused Smart campaigns.",
          "$ref": "GoogleAdsSearchads360V23Services__SmartCampaignPausedDetails"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources_ListingGroupFilterDimension_ProductType": {
      "properties": {
        "value": {
          "description": "Value of the type.",
          "type": "string"
        },
        "level": {
          "description": "Level of the type.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Level 1.",
            "Level 2.",
            "Level 3.",
            "Level 4.",
            "Level 5."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "LEVEL1",
            "LEVEL2",
            "LEVEL3",
            "LEVEL4",
            "LEVEL5"
          ]
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources_ListingGroupFilterDimension_ProductType",
      "description": "Type of a product offer."
    },
    "GoogleAdsSearchads360V23Resources__CampaignDraft": {
      "properties": {
        "hasExperimentRunning": {
          "readOnly": true,
          "type": "boolean",
          "description": "Output only. Whether there is an experiment based on this draft currently serving."
        },
        "name": {
          "type": "string",
          "description": "The name of the campaign draft. This field is required and should not be empty when creating new campaign drafts. It must not contain any null (code point 0x0), NL line feed (code point 0xA) or carriage return (code point 0xD) characters."
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the campaign draft. Campaign draft resource names have the form: `customers/{customer_id}/campaignDrafts/{base_campaign_id}~{draft_id}`"
        },
        "draftId": {
          "description": "Output only. The ID of the draft. This field is read-only.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        },
        "status": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PROPOSED",
            "REMOVED",
            "PROMOTING",
            "PROMOTED",
            "PROMOTE_FAILED"
          ],
          "readOnly": true,
          "description": "Output only. The status of the campaign draft. This field is read-only. When a new campaign draft is added, the status defaults to PROPOSED.",
          "type": "string",
          "enumDescriptions": [
            "The status has not been specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Initial state of the draft, the advertiser can start adding changes with no effect on serving.",
            "The campaign draft is removed.",
            "Advertiser requested to promote draft's changes back into the original campaign. Advertiser can poll the long running operation returned by the promote action to see the status of the promotion.",
            "The process to merge changes in the draft back to the original campaign has completed successfully.",
            "The promotion failed after it was partially applied. Promote cannot be attempted again safely, so the issue must be corrected in the original campaign."
          ]
        },
        "longRunningOperation": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The resource name of the long-running operation that can be used to poll for completion of draft promotion. This is only set if the draft promotion is in progress or finished."
        },
        "draftCampaign": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Resource name of the Campaign that results from overlaying the draft changes onto the base campaign. This field is read-only."
        },
        "baseCampaign": {
          "description": "Immutable. The base campaign to which the draft belongs.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__CampaignDraft",
      "description": "A campaign draft."
    },
    "GoogleAdsSearchads360V23Common_GoalSetting_RetentionGoal": {
      "id": "GoogleAdsSearchads360V23Common_GoalSetting_RetentionGoal",
      "description": "Retention goal settings.",
      "type": "object",
      "properties": {
        "valueSettings": {
          "description": "Retention goal value settings.",
          "$ref": "GoogleAdsSearchads360V23Common__CustomerLifecycleOptimizationValueSettings"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__AssetInteractionTarget": {
      "properties": {
        "asset": {
          "description": "The asset resource name.",
          "type": "string"
        },
        "interactionOnThisAsset": {
          "description": "Only used with CustomerAsset, CampaignAsset and AdGroupAsset metrics. Indicates whether the interaction metrics occurred on the asset itself or a different asset or ad unit.",
          "type": "boolean"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__AssetInteractionTarget",
      "description": "An AssetInteractionTarget segment."
    },
    "GoogleAdsSearchads360V23Services__AudienceInsightsDimensions": {
      "properties": {
        "dimensions": {
          "description": "Required. A list of dimensions.",
          "type": "array",
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "The value is unknown in this version.",
              "A Product & Service category.",
              "A Knowledge Graph entity.",
              "A country, represented by a geo target.",
              "A geographic location within a country.",
              "A YouTube channel.",
              "An Affinity UserInterest.",
              "An In-Market UserInterest.",
              "A Parental Status value (parent, or not a parent).",
              "A household income percentile range.",
              "An age range.",
              "A gender.",
              "A YouTube video.",
              "A device type, such as Mobile, Desktop, Tablet, and Connected TV.",
              "A YouTube Lineup.",
              "A User List.",
              "A Life Event UserInterest."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "CATEGORY",
              "KNOWLEDGE_GRAPH",
              "GEO_TARGET_COUNTRY",
              "SUB_COUNTRY_LOCATION",
              "YOUTUBE_CHANNEL",
              "AFFINITY_USER_INTEREST",
              "IN_MARKET_USER_INTEREST",
              "PARENTAL_STATUS",
              "INCOME_RANGE",
              "AGE_RANGE",
              "GENDER",
              "YOUTUBE_VIDEO",
              "DEVICE",
              "YOUTUBE_LINEUP",
              "USER_LIST",
              "LIFE_EVENT_USER_INTEREST"
            ]
          }
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__AudienceInsightsDimensions",
      "description": "A collection of dimensions to be used for generating insights."
    },
    "GoogleAdsSearchads360V23Services__MutateCampaignBudgetsRequest": {
      "properties": {
        "operations": {
          "description": "Required. The list of operations to perform on individual campaign budgets.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__CampaignBudgetOperation"
          }
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        },
        "responseContentType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateCampaignBudgetsRequest",
      "description": "Request message for CampaignBudgetService.MutateCampaignBudgets."
    },
    "GoogleAdsSearchads360V23Resources_Campaign_LocalCampaignSetting": {
      "properties": {
        "locationSourceType": {
          "type": "string",
          "enumDescriptions": [
            "No value has been specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Locations associated with the customer's linked Business Profile.",
            "Affiliate (chain) store locations. For example, Best Buy store locations."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "GOOGLE_MY_BUSINESS",
            "AFFILIATE"
          ],
          "description": "The location source type for this local campaign."
        }
      },
      "id": "GoogleAdsSearchads360V23Resources_Campaign_LocalCampaignSetting",
      "description": "Campaign setting for local campaigns.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources_Recommendation_ShoppingAddProductsToCampaignRecommendation": {
      "properties": {
        "feedLabel": {
          "description": "Output only. The feed label for the campaign.",
          "type": "string",
          "readOnly": true
        },
        "merchant": {
          "readOnly": true,
          "description": "Output only. The details of the Merchant Center account.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_MerchantInfo"
        },
        "reason": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The Merchant Center account does not have any submitted products.",
            "The Merchant Center account does not have any submitted products in the feed.",
            "The Google Ads account has active campaign filters that prevents inclusion of offers in the campaign.",
            "All products available have been explicitly excluded from being targeted by the campaign."
          ],
          "description": "Output only. The reason why no products are attached to the campaign.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MERCHANT_CENTER_ACCOUNT_HAS_NO_SUBMITTED_PRODUCTS",
            "MERCHANT_CENTER_ACCOUNT_HAS_NO_SUBMITTED_PRODUCTS_IN_FEED",
            "ADS_ACCOUNT_EXCLUDES_OFFERS_FROM_CAMPAIGN",
            "ALL_PRODUCTS_ARE_EXCLUDED_FROM_CAMPAIGN"
          ],
          "readOnly": true
        }
      },
      "id": "GoogleAdsSearchads360V23Resources_Recommendation_ShoppingAddProductsToCampaignRecommendation",
      "description": "The shopping recommendation to add products to a Shopping Campaign Inventory.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources__KeywordPlanAdGroupKeyword": {
      "properties": {
        "matchType": {
          "description": "The keyword match type.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Exact match.",
            "Phrase match.",
            "Broad match."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "EXACT",
            "PHRASE",
            "BROAD"
          ]
        },
        "cpcBidMicros": {
          "description": "A keyword level max cpc bid in micros (for example, $1 = 1mm). The currency is the same as the account currency code. This will override any CPC bid set at the keyword plan ad group level. Not applicable for negative keywords. (negative = true) This field is Optional.",
          "type": "string",
          "format": "int64"
        },
        "text": {
          "description": "The keyword text.",
          "type": "string"
        },
        "negative": {
          "type": "boolean",
          "description": "Immutable. If true, the keyword is negative."
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the Keyword Plan ad group keyword. KeywordPlanAdGroupKeyword resource names have the form: `customers/{customer_id}/keywordPlanAdGroupKeywords/{kp_ad_group_keyword_id}`"
        },
        "keywordPlanAdGroup": {
          "description": "The Keyword Plan ad group to which this keyword belongs.",
          "type": "string"
        },
        "id": {
          "type": "string",
          "format": "int64",
          "description": "Output only. The ID of the Keyword Plan keyword.",
          "readOnly": true
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__KeywordPlanAdGroupKeyword",
      "description": "A Keyword Plan ad group keyword. Max number of keyword plan keywords per plan: 10000.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateCampaignResult": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateCampaignResult",
      "description": "The result for the campaign mutate.",
      "properties": {
        "campaign": {
          "description": "The mutated campaign with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsSearchads360V23Resources__Campaign"
        },
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__AudienceInfo": {
      "properties": {
        "audience": {
          "description": "The Audience resource name.",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V23Common__AudienceInfo",
      "description": "An audience criterion.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources__AdGroupCustomizer": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__AdGroupCustomizer",
      "description": "A customizer value for the associated CustomizerAttribute at the AdGroup level.",
      "properties": {
        "adGroup": {
          "description": "Immutable. The ad group to which the customizer attribute is linked.",
          "type": "string"
        },
        "customizerAttribute": {
          "type": "string",
          "description": "Required. Immutable. The customizer attribute which is linked to the ad group."
        },
        "resourceName": {
          "description": "Immutable. The resource name of the ad group customizer. Ad group customizer resource names have the form: `customers/{customer_id}/adGroupCustomizers/{ad_group_id}~{customizer_attribute_id}`",
          "type": "string"
        },
        "status": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ],
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "The status has not been specified.",
            "The received value is not known in this version.",
            "The customizer value is enabled.",
            "The customizer value is removed."
          ],
          "description": "Output only. The status of the ad group customizer."
        },
        "value": {
          "description": "Required. The value to associate with the customizer attribute at this level. The value must be of the type specified for the CustomizerAttribute.",
          "$ref": "GoogleAdsSearchads360V23Common__CustomizerValue"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateCustomerAssetSetResult": {
      "id": "GoogleAdsSearchads360V23Services__MutateCustomerAssetSetResult",
      "description": "The result for the customer asset set mutate.",
      "type": "object",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        },
        "customerAssetSet": {
          "description": "The mutated customer asset set with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsSearchads360V23Resources__CustomerAssetSet"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__ShoppingComparisonListingAdInfo": {
      "id": "GoogleAdsSearchads360V23Common__ShoppingComparisonListingAdInfo",
      "description": "A Shopping Comparison Listing ad.",
      "type": "object",
      "properties": {
        "headline": {
          "type": "string",
          "description": "Headline of the ad. This field is required. Allowed length is between 25 and 45 characters."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateAdGroupCriteriaRequest": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateAdGroupCriteriaRequest",
      "description": "Request message for AdGroupCriterionService.MutateAdGroupCriteria.",
      "properties": {
        "responseContentType": {
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "type": "string",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ]
        },
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        },
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__AdGroupCriterionOperation"
          },
          "description": "Required. The list of operations to perform on individual criteria."
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__AdGroupLabelOperation": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__AdGroupLabelOperation",
      "description": "A single operation (create, remove) on an ad group label.",
      "properties": {
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the ad group label being removed, in this format: `customers/{customer_id}/adGroupLabels/{ad_group_id}~{label_id}`"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new ad group label.",
          "$ref": "GoogleAdsSearchads360V23Resources__AdGroupLabel"
        }
      }
    },
    "GoogleAdsSearchads360V23Services_ProductFilter_ProductList": {
      "properties": {
        "productCodes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Required. Products to generate benchmarks metrics for."
        }
      },
      "id": "GoogleAdsSearchads360V23Services_ProductFilter_ProductList",
      "description": "The list of products to generate benchmarks metrics for.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__CreateDataLinkRequest": {
      "properties": {
        "dataLink": {
          "description": "Required. The data link to be created.",
          "$ref": "GoogleAdsSearchads360V23Resources__DataLink"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__CreateDataLinkRequest",
      "description": "Request message for DataLinkService.CreateDataLink."
    },
    "GoogleAdsSearchads360V23Resources_Recommendation_ShoppingMigrateRegularShoppingCampaignOffersToPerformanceMaxRecommendation": {
      "id": "GoogleAdsSearchads360V23Resources_Recommendation_ShoppingMigrateRegularShoppingCampaignOffersToPerformanceMaxRecommendation",
      "description": "The shopping recommendation to migrate Regular Shopping Campaign targeted offers to Performance Max campaigns.",
      "type": "object",
      "properties": {
        "merchant": {
          "description": "Output only. The details of the Merchant Center account.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_MerchantInfo",
          "readOnly": true
        },
        "feedLabel": {
          "description": "Output only. The feed label of the offers targeted by the campaigns sharing this suggestion.",
          "type": "string",
          "readOnly": true
        }
      }
    },
    "GoogleAdsSearchads360V23Services__ApplyRecommendationResult": {
      "id": "GoogleAdsSearchads360V23Services__ApplyRecommendationResult",
      "description": "The result of applying a recommendation.",
      "type": "object",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful applies."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__ImageAsset": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__ImageAsset",
      "description": "An Image asset.",
      "properties": {
        "fileSize": {
          "description": "File size of the image asset in bytes.",
          "type": "string",
          "format": "int64"
        },
        "fullSize": {
          "description": "Metadata for this image at its original size.",
          "$ref": "GoogleAdsSearchads360V23Common__ImageDimension"
        },
        "data": {
          "description": "The raw bytes data of an image. This field is mutate only.",
          "type": "string",
          "format": "byte"
        },
        "mimeType": {
          "type": "string",
          "enumDescriptions": [
            "The mime type has not been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "MIME type of image/jpeg.",
            "MIME type of image/gif.",
            "MIME type of image/png.",
            "MIME type of application/x-shockwave-flash.",
            "MIME type of text/html.",
            "MIME type of application/pdf.",
            "MIME type of application/msword.",
            "MIME type of application/vnd.ms-excel.",
            "MIME type of application/rtf.",
            "MIME type of audio/wav.",
            "MIME type of audio/mp3.",
            "MIME type of application/x-html5-ad-zip."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "IMAGE_JPEG",
            "IMAGE_GIF",
            "IMAGE_PNG",
            "FLASH",
            "TEXT_HTML",
            "PDF",
            "MSWORD",
            "MSEXCEL",
            "RTF",
            "AUDIO_WAV",
            "AUDIO_MP3",
            "HTML5_AD_ZIP"
          ],
          "description": "MIME type of the image asset."
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__LeadFormSubmissionData": {
      "id": "GoogleAdsSearchads360V23Resources__LeadFormSubmissionData",
      "description": "Data from lead form submissions.",
      "type": "object",
      "properties": {
        "adGroup": {
          "readOnly": true,
          "description": "Output only. AdGroup associated with the submitted lead form.",
          "type": "string"
        },
        "gclid": {
          "type": "string",
          "description": "Output only. Google Click Id associated with the submissed lead form.",
          "readOnly": true
        },
        "id": {
          "readOnly": true,
          "description": "Output only. ID of this lead form submission.",
          "type": "string"
        },
        "leadFormSubmissionFields": {
          "readOnly": true,
          "description": "Output only. Submission data associated with a lead form.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Resources__LeadFormSubmissionField"
          }
        },
        "submissionDateTime": {
          "type": "string",
          "description": "Output only. The date and time at which the lead form was submitted. The format is \"yyyy-mm-dd hh:mm:ss+|-hh:mm\", for example, \"2019-01-01 12:32:45-08:00\".",
          "readOnly": true
        },
        "asset": {
          "readOnly": true,
          "description": "Output only. Asset associated with the submitted lead form.",
          "type": "string"
        },
        "campaign": {
          "description": "Output only. Campaign associated with the submitted lead form.",
          "type": "string",
          "readOnly": true
        },
        "customLeadFormSubmissionFields": {
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Resources__CustomLeadFormSubmissionField"
          },
          "description": "Output only. Submission data associated with a custom lead form."
        },
        "adGroupAd": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. AdGroupAd associated with the submitted lead form."
        },
        "resourceName": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The resource name of the lead form submission data. Lead form submission data resource names have the form: `customers/{customer_id}/leadFormSubmissionData/{lead_form_submission_data_id}`"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__PolicySummary": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__PolicySummary",
      "description": "Contains policy summary information.",
      "properties": {
        "policyTopicEntries": {
          "description": "The list of policy findings.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__PolicyTopicEntry"
          }
        },
        "reviewStatus": {
          "type": "string",
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "Currently under review.",
            "Primary review complete. Other reviews may be continuing.",
            "The resource has been resubmitted for approval or its policy decision has been appealed.",
            "The resource is eligible and may be serving but could still undergo further review."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "REVIEW_IN_PROGRESS",
            "REVIEWED",
            "UNDER_APPEAL",
            "ELIGIBLE_MAY_SERVE"
          ],
          "description": "Where in the review process the resource is."
        },
        "approvalStatus": {
          "type": "string",
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "Will not serve.",
            "Serves with restrictions.",
            "Serves without restrictions.",
            "Will not serve in targeted countries, but may serve for users who are searching for information about the targeted countries."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DISAPPROVED",
            "APPROVED_LIMITED",
            "APPROVED",
            "AREA_OF_INTEREST_ONLY"
          ],
          "description": "The overall approval status, which is calculated based on the status of its individual policy topic entries."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateCampaignGroupsResponse": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateCampaignGroupsResponse",
      "description": "Response message for campaign group mutate.",
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateCampaignGroupResult"
          },
          "description": "All results for the mutate."
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__CustomConversionGoal": {
      "properties": {
        "resourceName": {
          "description": "Immutable. The resource name of the custom conversion goal. Custom conversion goal resource names have the form: `customers/{customer_id}/customConversionGoals/{goal_id}`",
          "type": "string"
        },
        "status": {
          "description": "The status of the custom conversion goal.",
          "type": "string",
          "enumDescriptions": [
            "The status has not been specified.",
            "The received value is not known in this version.",
            "The custom conversion goal is enabled.",
            "The custom conversion goal is removed."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ]
        },
        "name": {
          "description": "The name for this custom conversion goal.",
          "type": "string"
        },
        "id": {
          "type": "string",
          "format": "int64",
          "description": "Immutable. The ID for this custom conversion goal."
        },
        "conversionActions": {
          "description": "Conversion actions that the custom conversion goal makes biddable.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__CustomConversionGoal",
      "description": "Custom conversion goal that can make arbitrary conversion actions biddable.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__PercentCpcBidSimulationPointList": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__PercentCpcBidSimulationPointList",
      "description": "A container for simulation points for simulations of type PERCENT_CPC_BID.",
      "properties": {
        "points": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__PercentCpcBidSimulationPoint"
          },
          "description": "Projected metrics for a series of percent CPC bid amounts."
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__CartDataSalesView": {
      "properties": {
        "resourceName": {
          "readOnly": true,
          "description": "Output only. The resource name of the Cart data sales view. Cart data sales view resource names have the form: `customers/{customer_id}/cartDataSalesView`",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__CartDataSalesView",
      "description": "Cart data sales view. Provides information about the products which were purchased if conversions with cart data is implemented. Performance metrics like revenue, gross profit, lead/cross-sell metrics etc. and Merchant Center attributes such as brand, category etc. are available for products defined in an inventory feed and sold as a result of Google ads. For purchases attributed to clicks on Shopping ads, dimensions of both clicked and sold products can be viewed together."
    },
    "GoogleAdsSearchads360V23Services__GenerateRecommendationsResponse": {
      "properties": {
        "recommendations": {
          "description": "List of generated recommendations from the passed in set of requested recommendation_types. If there isn't sufficient data to generate a recommendation for the requested recommendation_types, the result set won't contain a recommendation for that type.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Resources__Recommendation"
          }
        }
      },
      "id": "GoogleAdsSearchads360V23Services__GenerateRecommendationsResponse",
      "description": "Response message for RecommendationService.GenerateRecommendations.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__KeywordPlanDeviceSearches": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__KeywordPlanDeviceSearches",
      "description": "The total searches for the device type during the specified time period.",
      "properties": {
        "device": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Mobile devices with full browsers.",
            "Tablets with full browsers.",
            "Computers.",
            "Smart TVs and game consoles.",
            "Other device types."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MOBILE",
            "TABLET",
            "DESKTOP",
            "CONNECTED_TV",
            "OTHER"
          ],
          "description": "The device type."
        },
        "searchCount": {
          "description": "The total searches for the device.",
          "type": "string",
          "format": "int64"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__ImageDimension": {
      "id": "GoogleAdsSearchads360V23Common__ImageDimension",
      "description": "Metadata for an image at a certain size, either original or resized.",
      "type": "object",
      "properties": {
        "widthPixels": {
          "description": "Width of the image.",
          "type": "string",
          "format": "int64"
        },
        "url": {
          "type": "string",
          "description": "A URL that returns the image with this height and width."
        },
        "heightPixels": {
          "description": "Height of the image.",
          "type": "string",
          "format": "int64"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources_Invoice_CampaignSummary": {
      "properties": {
        "quantity": {
          "type": "string",
          "format": "int64",
          "description": "Output only. The quantity served for the given unit of measure.",
          "readOnly": true
        },
        "amountMicros": {
          "description": "Output only. The amount attributable to this campaign for the given unit of measure during the service period, in micros. The currency code for this amount is the same as the Invoice.currency_code.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        },
        "campaignDescription": {
          "type": "string",
          "description": "Output only. The description of the campaign. This is generally the same as the campaign name, but may differ.",
          "readOnly": true
        },
        "unitOfMeasure": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CLICKS",
            "IMPRESSIONS",
            "ACQUISITIONS",
            "PHONE_CALLS",
            "VIDEO_PLAYS",
            "DAYS",
            "AUDIO_PLAYS",
            "ENGAGEMENTS",
            "SECONDS",
            "LEADS",
            "GUEST_STAYS",
            "HOURS"
          ],
          "description": "Output only. The unit of measure for the quantity served.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Clicks as unit of measure.",
            "Impressions as unit of measure.",
            "Acquisitions as unit of measure.",
            "Phone calls as unit of measure.",
            "Video plays as unit of measure.",
            "Days as unit of measure.",
            "Audio plays as unit of measure.",
            "Engagements as unit of measure.",
            "Seconds as unit of measure.",
            "Leads as unit of measure.",
            "Guest stays as unit of measure.",
            "Hours as unit of measure."
          ]
        }
      },
      "id": "GoogleAdsSearchads360V23Resources_Invoice_CampaignSummary",
      "description": "Represents campaign level billable cost information associated with an account budget.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__PromoteExperimentRequest": {
      "properties": {
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__PromoteExperimentRequest",
      "description": "Request message for ExperimentService.PromoteExperiment."
    },
    "GoogleAdsSearchads360V23Services__CustomerAssetOperation": {
      "properties": {
        "updateMask": {
          "type": "string",
          "format": "google-fieldmask",
          "description": "FieldMask that determines which resource fields are modified in an update."
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new customer asset.",
          "$ref": "GoogleAdsSearchads360V23Resources__CustomerAsset"
        },
        "update": {
          "description": "Update operation: The customer asset is expected to have a valid resource name.",
          "$ref": "GoogleAdsSearchads360V23Resources__CustomerAsset"
        },
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed customer asset is expected, in this format: `customers/{customer_id}/customerAssets/{asset_id}~{field_type}`"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__CustomerAssetOperation",
      "description": "A single operation (create, update, remove) on a customer asset.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources__LandingPageView": {
      "properties": {
        "resourceName": {
          "readOnly": true,
          "description": "Output only. The resource name of the landing page view. Landing page view resource names have the form: `customers/{customer_id}/landingPageViews/{unexpanded_final_url_fingerprint}`",
          "type": "string"
        },
        "unexpandedFinalUrl": {
          "description": "Output only. The advertiser-specified final URL.",
          "type": "string",
          "readOnly": true
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__LandingPageView",
      "description": "A landing page view with metrics aggregated at the unexpanded final URL level."
    },
    "GoogleAdsSearchads360V23Services__EnablePMaxBrandGuidelinesRequest": {
      "id": "GoogleAdsSearchads360V23Services__EnablePMaxBrandGuidelinesRequest",
      "description": "Request to enable Brand Guidelines for a Performance Max campaign.",
      "type": "object",
      "properties": {
        "operations": {
          "description": "Required. The list of individual campaign operations. A maximum of 10 enable operations can be executed in a request.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__EnableOperation"
          }
        }
      }
    },
    "GoogleAdsSearchads360V23Common__DemandGenCarouselCardAsset": {
      "properties": {
        "callToActionText": {
          "description": "Call to action text.",
          "type": "string"
        },
        "squareMarketingImageAsset": {
          "description": "Asset resource name of the associated square marketing image. This and/or a marketing image asset is required.",
          "type": "string"
        },
        "marketingImageAsset": {
          "description": "Asset resource name of the associated 1.91:1 marketing image. This and/or square marketing image asset is required.",
          "type": "string"
        },
        "headline": {
          "type": "string",
          "description": "Required. Headline of the carousel card."
        },
        "portraitMarketingImageAsset": {
          "description": "Asset resource name of the associated 4:5 portrait marketing image.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__DemandGenCarouselCardAsset",
      "description": "A Demand Gen Carousel Card asset."
    },
    "GoogleAdsSearchads360V23Services__SuggestKeywordThemesResponse": {
      "properties": {
        "keywordThemes": {
          "description": "Smart campaign keyword theme suggestions.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services_SuggestKeywordThemesResponse_KeywordTheme"
          }
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__SuggestKeywordThemesResponse",
      "description": "Response message for SmartCampaignSuggestService.SuggestKeywordThemes."
    },
    "GoogleAdsSearchads360V23Resources_ConversionValueRule_ValueRuleItineraryAdvanceBookingWindow": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources_ConversionValueRule_ValueRuleItineraryAdvanceBookingWindow",
      "description": "Range for the number of days between the date of the booking and the start of the itinerary.",
      "properties": {
        "minDays": {
          "description": "Minimum number of days between the date of the booking the start date.",
          "type": "integer",
          "format": "int32"
        },
        "maxDays": {
          "description": "Maximum number of days between the date of the booking the start date.",
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources_BillingSetup_PaymentsAccountInfo": {
      "properties": {
        "paymentsAccountName": {
          "type": "string",
          "description": "Immutable. The name of the payments account associated with the billing setup. This enables the user to specify a meaningful name for a payments account to aid in reconciling monthly invoices. This name will be printed in the monthly invoices."
        },
        "secondaryPaymentsProfileId": {
          "readOnly": true,
          "description": "Output only. A secondary payments profile id present in uncommon situations, for example, when a sequential liability agreement has been arranged.",
          "type": "string"
        },
        "paymentsProfileId": {
          "description": "Immutable. A 12 digit id used to identify the payments profile associated with the billing setup. This must be passed in as a string with dashes, for example, \"1234-5678-9012\".",
          "type": "string"
        },
        "paymentsAccountId": {
          "readOnly": true,
          "description": "Output only. A 16 digit id used to identify the payments account associated with the billing setup. This must be passed as a string with dashes, for example, \"1234-5678-9012-3456\".",
          "type": "string"
        },
        "paymentsProfileName": {
          "type": "string",
          "description": "Output only. The name of the payments profile associated with the billing setup.",
          "readOnly": true
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources_BillingSetup_PaymentsAccountInfo",
      "description": "Container of payments account information for this billing."
    },
    "GoogleAdsSearchads360V23Common__WebpageInfo": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__WebpageInfo",
      "description": "Represents a criterion for targeting webpages of an advertiser's website.",
      "properties": {
        "conditions": {
          "description": "Conditions, or logical expressions, for webpage targeting. The list of webpage targeting conditions are and-ed together when evaluated for targeting. An empty list of conditions indicates all pages of the campaign's website are targeted. This field is required for CREATE operations and is prohibited on UPDATE operations.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__WebpageConditionInfo"
          }
        },
        "sample": {
          "description": "List of sample urls that match the website target. This field is read-only.",
          "$ref": "GoogleAdsSearchads360V23Common__WebpageSampleInfo"
        },
        "criterionName": {
          "description": "The name of the criterion that is defined by this parameter. The name value will be used for identifying, sorting and filtering criteria with this type of parameters. This field is required for CREATE operations and is prohibited on UPDATE operations.",
          "type": "string"
        },
        "coveragePercentage": {
          "description": "Website criteria coverage percentage. This is the computed percentage of website coverage based on the website target, negative website target and negative keywords in the ad group and campaign. For instance, when coverage returns as 1, it indicates it has 100% coverage. This field is read-only.",
          "type": "number",
          "format": "double"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__UpdateDataLinkRequest": {
      "id": "GoogleAdsSearchads360V23Services__UpdateDataLinkRequest",
      "description": "Request message for DataLinkService.UpdateDataLink.",
      "type": "object",
      "properties": {
        "dataLinkStatus": {
          "description": "Required. The data link status to be updated to.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Link has been requested by one party, but not confirmed by the other party.",
            "Link is waiting for the customer to approve.",
            "Link is established and can be used as needed.",
            "Link is no longer valid and should be ignored.",
            "Link request has been cancelled by the requester and further cleanup may be needed.",
            "Link request has been rejected by the approver."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "REQUESTED",
            "PENDING_APPROVAL",
            "ENABLED",
            "DISABLED",
            "REVOKED",
            "REJECTED"
          ]
        },
        "resourceName": {
          "type": "string",
          "description": "Required. The data link is expected to have a valid resource name."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__MediaBundleAsset": {
      "id": "GoogleAdsSearchads360V23Common__MediaBundleAsset",
      "description": "A MediaBundle asset.",
      "type": "object",
      "properties": {
        "data": {
          "description": "Media bundle (ZIP file) asset data. The format of the uploaded ZIP file depends on the ad field where it will be used. For more information on the format, see the documentation of the ad field where you plan on using the MediaBundleAsset. This field is mutate only.",
          "type": "string",
          "format": "byte"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateCustomerLabelsRequest": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateCustomerLabelsRequest",
      "description": "Request message for CustomerLabelService.MutateCustomerLabels.",
      "properties": {
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        },
        "operations": {
          "description": "Required. The list of operations to perform on customer-label relationships.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__CustomerLabelOperation"
          }
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__GenerateTargetingSuggestionMetricsRequest": {
      "properties": {
        "audiences": {
          "description": "Required. Audiences to request metrics for.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__InsightsAudience"
          }
        },
        "insightsApplicationInfo": {
          "description": "Optional. Additional information on the application issuing the request.",
          "$ref": "GoogleAdsSearchads360V23Common__AdditionalApplicationInfo"
        },
        "customerInsightsGroup": {
          "description": "Optional. The name of the customer being planned for. This is a user-defined value.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__GenerateTargetingSuggestionMetricsRequest",
      "description": "Request message for AudienceInsightsService.GenerateTargetingSuggestionMetrics."
    },
    "GoogleAdsSearchads360V23Services__ListPlannableProductsRequest": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__ListPlannableProductsRequest",
      "description": "Request to list available products in a given location.",
      "properties": {
        "reachApplicationInfo": {
          "description": "Optional. Additional information on the application issuing the request.",
          "$ref": "GoogleAdsSearchads360V23Common__AdditionalApplicationInfo"
        },
        "plannableLocationId": {
          "description": "Required. The ID of the selected location for planning. To list the available plannable location IDs use ReachPlanService.ListPlannableLocations.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__HotelAdvanceBookingWindowInfo": {
      "properties": {
        "minDays": {
          "description": "Low end of the number of days prior to the stay.",
          "type": "string",
          "format": "int64"
        },
        "maxDays": {
          "type": "string",
          "format": "int64",
          "description": "High end of the number of days prior to the stay."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__HotelAdvanceBookingWindowInfo",
      "description": "Criterion for number of days prior to the stay the booking is being made."
    },
    "GoogleAdsSearchads360V23Services__MutateConversionCustomVariablesRequest": {
      "id": "GoogleAdsSearchads360V23Services__MutateConversionCustomVariablesRequest",
      "description": "Request message for ConversionCustomVariableService.MutateConversionCustomVariables.",
      "type": "object",
      "properties": {
        "responseContentType": {
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "type": "string",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ]
        },
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        },
        "operations": {
          "description": "Required. The list of operations to perform on individual conversion custom variables.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__ConversionCustomVariableOperation"
          }
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__CustomInterest": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__CustomInterest",
      "description": "A custom interest. This is a list of users by interest.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the custom interest. Custom interest resource names have the form: `customers/{customer_id}/customInterests/{custom_interest_id}`"
        },
        "status": {
          "description": "Status of this custom interest. Indicates whether the custom interest is enabled or removed.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Enabled status - custom interest is enabled and can be targeted to.",
            "Removed status - custom interest is removed and cannot be used for targeting."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ]
        },
        "name": {
          "description": "Name of the custom interest. It should be unique across the same custom affinity audience. This field is required for create operations.",
          "type": "string"
        },
        "type": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Allows brand advertisers to define custom affinity audience lists.",
            "Allows advertisers to define custom intent audience lists."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CUSTOM_AFFINITY",
            "CUSTOM_INTENT"
          ],
          "description": "Type of the custom interest, CUSTOM_AFFINITY or CUSTOM_INTENT. By default the type is set to CUSTOM_AFFINITY."
        },
        "members": {
          "description": "List of custom interest members that this custom interest is composed of. Members can be added during CustomInterest creation. If members are presented in UPDATE operation, existing members will be overridden.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Resources__CustomInterestMember"
          }
        },
        "description": {
          "description": "Description of this custom interest audience.",
          "type": "string"
        },
        "id": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. Id of the custom interest."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__TargetingSuggestionMetrics": {
      "id": "GoogleAdsSearchads360V23Services__TargetingSuggestionMetrics",
      "description": "A suggested targetable audience relevant to the requested audience.",
      "type": "object",
      "properties": {
        "locations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AudienceInsightsAttributeMetadata"
          },
          "description": "Suggested location targeting. These attributes all have dimension GEO_TARGET_COUNTRY or SUB_COUNTRY_LOCATION"
        },
        "coverage": {
          "type": "number",
          "format": "double",
          "description": "The fraction (from 0 to 1 inclusive) of the requested audience that can be reached using the suggested targeting."
        },
        "potentialYoutubeReach": {
          "type": "string",
          "format": "int64",
          "description": "The approximate estimated number of people that can be reached on YouTube using this targeting."
        },
        "userInterests": {
          "description": "List of user interest attributes with metadata defining the audience. The combination has a logical AND-of-ORs structure: The attributes within each AudienceInsightsAttributeMetadataGroup are ORed, and the groups themselves are ANDed.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AudienceInsightsAttributeMetadataGroup"
          }
        },
        "gender": {
          "description": "Suggested gender targeting. If present, this attribute has dimension GENDER.",
          "$ref": "GoogleAdsSearchads360V23Common__GenderInfo"
        },
        "ageRanges": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AgeRangeInfo"
          },
          "description": "Suggested age targeting; may be empty indicating no age targeting."
        },
        "parentalStatus": {
          "description": "A Parental Status value (parent, or not a parent).",
          "$ref": "GoogleAdsSearchads360V23Common__ParentalStatusInfo"
        },
        "index": {
          "type": "number",
          "format": "double",
          "description": "The ratio of coverage to the coverage of the baseline audience or zero if this ratio is undefined or is not meaningful."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__BrandInfo": {
      "properties": {
        "primaryUrl": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The primary url of a brand."
        },
        "displayName": {
          "type": "string",
          "description": "Output only. A text representation of a brand.",
          "readOnly": true
        },
        "entityId": {
          "type": "string",
          "description": "The Commercial KG MID for the brand."
        },
        "rejectionReason": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "EXISTING_BRAND",
            "EXISTING_BRAND_VARIANT",
            "INCORRECT_INFORMATION",
            "NOT_A_BRAND"
          ],
          "type": "string",
          "enumDescriptions": [
            "No value has been specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Brand is already present in the commercial brand set.",
            "Brand is already present in the commercial brand set, but is a variant.",
            "Brand information is not correct (eg: URL and name don't match).",
            "Not a valid brand as per Google policy."
          ],
          "description": "Output only. The rejection reason when a brand status is REJECTED."
        },
        "status": {
          "description": "Output only. The status of a brand.",
          "type": "string",
          "enumDescriptions": [
            "No value has been specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Brand is verified and globally available for selection",
            "Brand was globally available in past but is no longer a valid brand (based on business criteria)",
            "Brand is unverified and customer scoped, but can be selected by customer (only who requested for same) for targeting",
            "Was a customer-scoped (unverified) brand, which got approved by business and added to the global list. Its assigned CKG MID should be used instead of this",
            "Was a customer-scoped (unverified) brand, but the request was canceled by customer and this brand id is no longer valid",
            "Was a customer-scoped (unverified) brand, but the request was rejected by internal business team and this brand id is no longer valid"
          ],
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "DEPRECATED",
            "UNVERIFIED",
            "APPROVED",
            "CANCELLED",
            "REJECTED"
          ]
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__BrandInfo",
      "description": "Represents a Brand Criterion used for targeting based on commercial knowledge graph."
    },
    "GoogleAdsSearchads360V23Services__MutateBatchJobRequest": {
      "id": "GoogleAdsSearchads360V23Services__MutateBatchJobRequest",
      "description": "Request message for BatchJobService.MutateBatchJob.",
      "type": "object",
      "properties": {
        "operation": {
          "description": "Required. The operation to perform on an individual batch job.",
          "$ref": "GoogleAdsSearchads360V23Services__BatchJobOperation"
        }
      }
    },
    "GoogleAdsSearchads360V23Common_PolicyTopicConstraint_ResellerConstraint": {
      "properties": {},
      "id": "GoogleAdsSearchads360V23Common_PolicyTopicConstraint_ResellerConstraint",
      "description": "Indicates that a policy topic was constrained due to disapproval of the website for reseller purposes.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__LeadFormField": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__LeadFormField",
      "description": "One input field instance within a form.",
      "properties": {
        "singleChoiceAnswers": {
          "description": "Answer configuration for a single choice question. Can be set only for pre-vetted question fields. Minimum of 2 answers required and maximum of 12 allowed.",
          "$ref": "GoogleAdsSearchads360V23Common__LeadFormSingleChoiceAnswers"
        },
        "inputType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The user will be asked to fill in their given and family name. This field cannot be set at the same time as GIVEN_NAME or FAMILY_NAME.",
            "The user will be asked to fill in their email address.",
            "The user will be asked to fill in their phone number.",
            "The user will be asked to fill in their zip code.",
            "The user will be asked to fill in their street address.",
            "The user will be asked to fill in their city.",
            "The user will be asked to fill in their region part of the address (for example, state for US, province for Canada).",
            "The user will be asked to fill in their country.",
            "The user will be asked to fill in their work email address.",
            "The user will be asked to fill in their company name.",
            "The user will be asked to fill in their work phone.",
            "The user will be asked to fill in their job title.",
            "The user will be asked to fill in their CPF for Brazil users.",
            "The user will be asked to fill in their DNI for Argentina users.",
            "The user will be asked to fill in their DNI for Peru users.",
            "The user will be asked to fill in their RUT for Chile users.",
            "The user will be asked to fill in their CC for Colombia users.",
            "The user will be asked to fill in their CI for Ecuador users.",
            "The user will be asked to fill in their RFC for Mexico users.",
            "The user will be asked to fill in their first name. This field can not be set at the same time as FULL_NAME.",
            "The user will be asked to fill in their last name. This field can not be set at the same time as FULL_NAME.",
            "Question: \"Which model are you interested in?\" Category: \"Auto\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Which type of vehicle are you interested in?\" Category: \"Auto\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your preferred dealership?\" Category: \"Auto\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"When do you plan on purchasing a vehicle?\" Category: \"Auto\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Do you own a vehicle?\" Category: \"Auto\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What vehicle ownership option are you interested in?\" Category: \"Auto\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What type of vehicle condition are you interested in?\" Category: \"Auto\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What size is your company?\" Category: \"Business\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your annual sales volume?\" Category: \"Business\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"How many years have you been in business?\" Category: \"Business\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your job department?\" Category: \"Business\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your job role?\" Category: \"Business\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 18 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 19 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 20 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 21 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 22 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 23 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 24 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 25 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 26 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 27 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 28 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 29 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 30 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 31 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 32 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 33 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 34 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 35 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 36 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 37 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 38 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 39 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 40 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 41 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 42 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 43 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 44 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 45 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 46 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 47 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 48 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 49 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 50 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 51 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 52 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 53 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 54 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 55 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 56 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 57 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 58 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 59 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 60 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 61 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 62 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 63 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 64 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you over 65 years of age?\" Category: \"Demographics\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Which program are you interested in?\" Category: \"Education\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Which course are you interested in?\" Category: \"Education\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Which product are you interested in?\" Category: \"General\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Which service are you interested in?\" Category: \"General\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Which offer are you interested in?\" Category: \"General\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Which category are you interested in?\" Category: \"General\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your preferred method of contact?\" Category: \"General\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your preferred location?\" Category: \"General\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is the best time to contact you?\" Category: \"General\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"When are you looking to make a purchase?\" Category: \"General\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"How many years of work experience do you have?\" Category: \"Jobs\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What industry do you work in?\" Category: \"Jobs\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your highest level of education?\" Category: \"Jobs\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What type of property are you looking for?\" Category: \"Real Estate\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What do you need a realtor's help with?\" Category: \"Real Estate\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What neighborhood are you interested in?\" Category: \"Real Estate\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What price range are you looking for?\" Category: \"Real Estate\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"How many bedrooms are you looking for?\" Category: \"Real Estate\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you looking for a fully furnished property?\" Category: \"Real Estate\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Are you looking for properties that allow pets?\" Category: \"Real Estate\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is the next product you plan to purchase?\" Category: \"Retail\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Would you like to sign up for an event?\" Category: \"Retail\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Where are you interested in shopping?\" Category: \"Retail\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your favorite brand?\" Category: \"Retail\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Which type of valid commercial license do you have?\" Category: \"Transportation\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Interested in booking an event?\" Category: \"Travel\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your destination country?\" Category: \"Travel\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your destination city?\" Category: \"Travel\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your departure country?\" Category: \"Travel\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your departure city?\" Category: \"Travel\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your departure date?\" Category: \"Travel\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your return date?\" Category: \"Travel\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"How many people are you traveling with?\" Category: \"Travel\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"What is your travel budget?\" Category: \"Travel\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields.",
            "Question: \"Where do you want to stay during your travel?\" Category: \"Travel\" This field is subject to a limit of 5 qualifying questions per form and cannot be used if values are set using custom_question_fields."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "FULL_NAME",
            "EMAIL",
            "PHONE_NUMBER",
            "POSTAL_CODE",
            "STREET_ADDRESS",
            "CITY",
            "REGION",
            "COUNTRY",
            "WORK_EMAIL",
            "COMPANY_NAME",
            "WORK_PHONE",
            "JOB_TITLE",
            "GOVERNMENT_ISSUED_ID_CPF_BR",
            "GOVERNMENT_ISSUED_ID_DNI_AR",
            "GOVERNMENT_ISSUED_ID_DNI_PE",
            "GOVERNMENT_ISSUED_ID_RUT_CL",
            "GOVERNMENT_ISSUED_ID_CC_CO",
            "GOVERNMENT_ISSUED_ID_CI_EC",
            "GOVERNMENT_ISSUED_ID_RFC_MX",
            "FIRST_NAME",
            "LAST_NAME",
            "VEHICLE_MODEL",
            "VEHICLE_TYPE",
            "PREFERRED_DEALERSHIP",
            "VEHICLE_PURCHASE_TIMELINE",
            "VEHICLE_OWNERSHIP",
            "VEHICLE_PAYMENT_TYPE",
            "VEHICLE_CONDITION",
            "COMPANY_SIZE",
            "ANNUAL_SALES",
            "YEARS_IN_BUSINESS",
            "JOB_DEPARTMENT",
            "JOB_ROLE",
            "OVER_18_AGE",
            "OVER_19_AGE",
            "OVER_20_AGE",
            "OVER_21_AGE",
            "OVER_22_AGE",
            "OVER_23_AGE",
            "OVER_24_AGE",
            "OVER_25_AGE",
            "OVER_26_AGE",
            "OVER_27_AGE",
            "OVER_28_AGE",
            "OVER_29_AGE",
            "OVER_30_AGE",
            "OVER_31_AGE",
            "OVER_32_AGE",
            "OVER_33_AGE",
            "OVER_34_AGE",
            "OVER_35_AGE",
            "OVER_36_AGE",
            "OVER_37_AGE",
            "OVER_38_AGE",
            "OVER_39_AGE",
            "OVER_40_AGE",
            "OVER_41_AGE",
            "OVER_42_AGE",
            "OVER_43_AGE",
            "OVER_44_AGE",
            "OVER_45_AGE",
            "OVER_46_AGE",
            "OVER_47_AGE",
            "OVER_48_AGE",
            "OVER_49_AGE",
            "OVER_50_AGE",
            "OVER_51_AGE",
            "OVER_52_AGE",
            "OVER_53_AGE",
            "OVER_54_AGE",
            "OVER_55_AGE",
            "OVER_56_AGE",
            "OVER_57_AGE",
            "OVER_58_AGE",
            "OVER_59_AGE",
            "OVER_60_AGE",
            "OVER_61_AGE",
            "OVER_62_AGE",
            "OVER_63_AGE",
            "OVER_64_AGE",
            "OVER_65_AGE",
            "EDUCATION_PROGRAM",
            "EDUCATION_COURSE",
            "PRODUCT",
            "SERVICE",
            "OFFER",
            "CATEGORY",
            "PREFERRED_CONTACT_METHOD",
            "PREFERRED_LOCATION",
            "PREFERRED_CONTACT_TIME",
            "PURCHASE_TIMELINE",
            "YEARS_OF_EXPERIENCE",
            "JOB_INDUSTRY",
            "LEVEL_OF_EDUCATION",
            "PROPERTY_TYPE",
            "REALTOR_HELP_GOAL",
            "PROPERTY_COMMUNITY",
            "PRICE_RANGE",
            "NUMBER_OF_BEDROOMS",
            "FURNISHED_PROPERTY",
            "PETS_ALLOWED_PROPERTY",
            "NEXT_PLANNED_PURCHASE",
            "EVENT_SIGNUP_INTEREST",
            "PREFERRED_SHOPPING_PLACES",
            "FAVORITE_BRAND",
            "TRANSPORTATION_COMMERCIAL_LICENSE_TYPE",
            "EVENT_BOOKING_INTEREST",
            "DESTINATION_COUNTRY",
            "DESTINATION_CITY",
            "DEPARTURE_COUNTRY",
            "DEPARTURE_CITY",
            "DEPARTURE_DATE",
            "RETURN_DATE",
            "NUMBER_OF_TRAVELERS",
            "TRAVEL_BUDGET",
            "TRAVEL_ACCOMMODATION"
          ],
          "description": "Describes the input type, which may be a predefined type such as \"full name\" or a pre-vetted question like \"What kind of vehicle do you have?\"."
        },
        "hasLocationAnswer": {
          "type": "boolean",
          "description": "Answer configuration for location question. If true, campaign/account level location data (state, city, business name etc) will be rendered on the Lead Form. Starting V13.1, has_location_answer can only be set for \"What is your preferred dealership?\" question, for advertisers with Location Assets setup at campaign/account level."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__CustomAffinityInfo": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__CustomAffinityInfo",
      "description": "A custom affinity criterion. A criterion of this type is only targetable.",
      "properties": {
        "customAffinity": {
          "description": "The CustomInterest resource name.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__HotelTextAsset": {
      "properties": {
        "text": {
          "description": "Asset text in requested language.",
          "type": "string"
        },
        "assetFieldType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is linked for use as a headline.",
            "The asset is linked for use as a description.",
            "The asset is linked for use as mandatory ad text.",
            "The asset is linked for use as a marketing image.",
            "The asset is linked for use as a media bundle.",
            "The asset is linked for use as a YouTube video.",
            "The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.",
            "The asset is linked for use as a Lead Form extension.",
            "The asset is linked for use as a Promotion extension.",
            "The asset is linked for use as a Callout extension.",
            "The asset is linked for use as a Structured Snippet extension.",
            "The asset is linked for use as a Sitelink.",
            "The asset is linked for use as a Mobile App extension.",
            "The asset is linked for use as a Hotel Callout extension.",
            "The asset is linked for use as a Call extension.",
            "The asset is linked for use as a Price extension.",
            "The asset is linked for use as a long headline.",
            "The asset is linked for use as a business name.",
            "The asset is linked for use as a square marketing image.",
            "The asset is linked for use as a portrait marketing image.",
            "The asset is linked for use as a logo.",
            "The asset is linked for use as a landscape logo.",
            "The asset is linked for use as a non YouTube logo.",
            "The asset is linked for use to select a call-to-action.",
            "The asset is linked for use to select an ad image.",
            "The asset is linked for use as a business logo.",
            "The asset is linked for use as a hotel property in a Performance Max for travel goals campaign.",
            "The asset is linked for use as a Demand Gen carousel card.",
            "The asset is linked for use as a Business Message.",
            "The asset is linked for use as a tall portrait marketing image.",
            "The asset is linked for use as a landing page preview image.",
            "The asset is linked for use as a long description.",
            "The asset is linked for use as a call-to-action."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HEADLINE",
            "DESCRIPTION",
            "MANDATORY_AD_TEXT",
            "MARKETING_IMAGE",
            "MEDIA_BUNDLE",
            "YOUTUBE_VIDEO",
            "BOOK_ON_GOOGLE",
            "LEAD_FORM",
            "PROMOTION",
            "CALLOUT",
            "STRUCTURED_SNIPPET",
            "SITELINK",
            "MOBILE_APP",
            "HOTEL_CALLOUT",
            "CALL",
            "PRICE",
            "LONG_HEADLINE",
            "BUSINESS_NAME",
            "SQUARE_MARKETING_IMAGE",
            "PORTRAIT_MARKETING_IMAGE",
            "LOGO",
            "LANDSCAPE_LOGO",
            "VIDEO",
            "CALL_TO_ACTION_SELECTION",
            "AD_IMAGE",
            "BUSINESS_LOGO",
            "HOTEL_PROPERTY",
            "DEMAND_GEN_CAROUSEL_CARD",
            "BUSINESS_MESSAGE",
            "TALL_PORTRAIT_MARKETING_IMAGE",
            "LANDING_PAGE_PREVIEW",
            "LONG_DESCRIPTION",
            "CALL_TO_ACTION"
          ],
          "description": "The text asset type. For example, HEADLINE, DESCRIPTION, etc."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__HotelTextAsset",
      "description": "A single text asset suggestion for a hotel."
    },
    "GoogleAdsSearchads360V23Resources_ConversionValueRule_ValueRuleAction": {
      "id": "GoogleAdsSearchads360V23Resources_ConversionValueRule_ValueRuleAction",
      "description": "Action applied when rule is applied.",
      "type": "object",
      "properties": {
        "operation": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Add provided value to conversion value.",
            "Multiply conversion value by provided value.",
            "Set conversion value to provided value."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADD",
            "MULTIPLY",
            "SET"
          ],
          "description": "Specifies applied operation."
        },
        "value": {
          "description": "Specifies applied value.",
          "type": "number",
          "format": "double"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__ListBenchmarksSourcesRequest": {
      "id": "GoogleAdsSearchads360V23Services__ListBenchmarksSourcesRequest",
      "description": "Request message for BenchmarksService.ListBenchmarksSources.",
      "type": "object",
      "properties": {
        "applicationInfo": {
          "description": "Additional information on the application issuing the request.",
          "$ref": "GoogleAdsSearchads360V23Common__AdditionalApplicationInfo"
        },
        "benchmarksSources": {
          "description": "Required. The types of benchmarks sources to be returned (for example, INDUSTRY_VERTICAL).",
          "type": "array",
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "The value is unknown in this version.",
              "The classification of ad categories for benchmarking. (for example, \"Technology\" or \"Finance\")."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "INDUSTRY_VERTICAL"
            ]
          }
        }
      }
    },
    "GoogleAdsSearchads360V23Common_PolicyTopicConstraint_CountryConstraint": {
      "id": "GoogleAdsSearchads360V23Common_PolicyTopicConstraint_CountryConstraint",
      "description": "Indicates that a resource's ability to serve in a particular country is constrained.",
      "type": "object",
      "properties": {
        "countryCriterion": {
          "type": "string",
          "description": "Geo target constant resource name of the country in which serving is constrained."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__ProductLegacyConditionInfo": {
      "properties": {
        "value": {
          "type": "string",
          "description": "String value of the product legacy condition."
        }
      },
      "id": "GoogleAdsSearchads360V23Common__ProductLegacyConditionInfo",
      "description": "Legacy condition of a product offer. This listing dimension is deprecated and it is supported only in Display campaigns.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources__CampaignLabel": {
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Immutable. Name of the resource. Campaign label resource names have the form: `customers/{owner_customer_id}/campaignLabels/{campaign_id}~{label_id}`"
        },
        "campaign": {
          "type": "string",
          "description": "Immutable. The campaign to which the label is attached."
        },
        "label": {
          "description": "Immutable. The label assigned to the campaign.",
          "type": "string"
        },
        "ownerCustomerId": {
          "readOnly": true,
          "description": "Output only. The ID of the Customer which owns the label.",
          "type": "string",
          "format": "int64"
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__CampaignLabel",
      "description": "Represents a relationship between a campaign and a label.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__SearchSearchAds360FieldsResponse": {
      "id": "GoogleAdsSearchads360V23Services__SearchSearchAds360FieldsResponse",
      "description": "Response message for SearchAds360FieldService.SearchSearchAds360Fields.",
      "type": "object",
      "properties": {
        "results": {
          "description": "The list of fields that matched the query.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Resources__SearchAds360Field"
          }
        },
        "nextPageToken": {
          "description": "Pagination token used to retrieve the next page of results. Pass the content of this string as the `page_token` attribute of the next request. `next_page_token` is not returned for the last page.",
          "type": "string"
        },
        "totalResultsCount": {
          "description": "Total number of results that match the query ignoring the LIMIT clause.",
          "type": "string",
          "format": "int64"
        }
      }
    },
    "GoogleAdsSearchads360V0Errors__ErrorLocation": {
      "properties": {
        "fieldPathElements": {
          "description": "A field path that indicates which field was invalid in the request.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V0Errors_ErrorLocation_FieldPathElement"
          }
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V0Errors__ErrorLocation",
      "description": "Describes the part of the request proto that caused the error."
    },
    "GoogleAdsSearchads360V23Common__GeoPointInfo": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__GeoPointInfo",
      "description": "Geo point for proximity criterion.",
      "properties": {
        "longitudeInMicroDegrees": {
          "type": "integer",
          "format": "int32",
          "description": "Micro degrees for the longitude."
        },
        "latitudeInMicroDegrees": {
          "description": "Micro degrees for the latitude.",
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__SearchAds360ProductAdInfo": {
      "properties": {},
      "id": "GoogleAdsSearchads360V23Common__SearchAds360ProductAdInfo",
      "description": "A Search Ads 360 product ad.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__RemoveCampaignAutomaticallyCreatedAssetResponse": {
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to AutomaticallyCreatedAssetRemoval failures in the partial failure mode. Returned when all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), RPC level error will be returned. See https://developers.google.com/google-ads/api/docs/best-practices/partial-failures for more information about partial failure.",
          "$ref": "GoogleRpc__Status"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__RemoveCampaignAutomaticallyCreatedAssetResponse",
      "description": "Response message for AutomaticallyCreatedAssetRemovalService.RemoveCampaignAutomaticallyCreatedAsset.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__SmartCampaignEndedDetails": {
      "id": "GoogleAdsSearchads360V23Services__SmartCampaignEndedDetails",
      "description": "Details related to Smart campaigns that have ended.",
      "type": "object",
      "properties": {
        "endDateTime": {
          "description": "The timestamp of when the campaign ended. The timestamp is in the customer’s timezone and in “yyyy-MM-dd HH:mm:ss” format.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__AssetGroupSignal": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__AssetGroupSignal",
      "description": "AssetGroupSignal represents a signal in an asset group. The existence of a signal tells the performance max campaign who's most likely to convert. Performance Max uses the signal to look for new people with similar or stronger intent to find conversions across Search, Display, Video, and more.",
      "properties": {
        "disapprovalReasons": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Output only. Computed for SearchTheme signals. When using Audience signal, this field is not used and will be absent.",
          "readOnly": true
        },
        "searchTheme": {
          "description": "Immutable. The search_theme signal to be used by the performance max campaign. Mutate errors of search_theme criterion includes AssetGroupSignalError.UNSPECIFIED AssetGroupSignalError.UNKNOWN AssetGroupSignalError.TOO_MANY_WORDS AssetGroupSignalError.SEARCH_THEME_POLICY_VIOLATION FieldError.REQUIRED StringFormatError.ILLEGAL_CHARS StringLengthError.TOO_LONG ResourceCountLimitExceededError.RESOURCE_LIMIT",
          "$ref": "GoogleAdsSearchads360V23Common__SearchThemeInfo"
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the asset group signal. Asset group signal resource name have the form: `customers/{customer_id}/assetGroupSignals/{asset_group_id}~{signal_id}`"
        },
        "approvalStatus": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "APPROVED",
            "LIMITED",
            "DISAPPROVED",
            "UNDER_REVIEW"
          ],
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Search Theme is eligible to show ads.",
            "Low search volume; Below first page bid estimate.",
            "Search Theme is inactive and isn't showing ads. A disapproved Search Theme usually means there's an issue with one or more of our advertising policies.",
            "Search Theme is under review. It won’t be able to trigger ads until it's been reviewed."
          ],
          "description": "Output only. Approval status is the output value for search theme signal after Google ads policy review. When using Audience signal, this field is not used and will be absent."
        },
        "audience": {
          "description": "Immutable. The audience signal to be used by the performance max campaign.",
          "$ref": "GoogleAdsSearchads360V23Common__AudienceInfo"
        },
        "assetGroup": {
          "type": "string",
          "description": "Immutable. The asset group which this asset group signal belongs to."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__CustomerManagerLinkOperation": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__CustomerManagerLinkOperation",
      "description": "Updates the status of a CustomerManagerLink. The following actions are possible: 1. Update operation with status ACTIVE accepts a pending invitation. 2. Update operation with status REFUSED declines a pending invitation. 3. Update operation with status INACTIVE terminates link to manager.",
      "properties": {
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "type": "string",
          "format": "google-fieldmask"
        },
        "update": {
          "description": "Update operation: The link is expected to have a valid resource name.",
          "$ref": "GoogleAdsSearchads360V23Resources__CustomerManagerLink"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources_ConversionValueRule_ValueRuleItineraryTravelLength": {
      "properties": {
        "minNights": {
          "type": "integer",
          "format": "int32",
          "description": "Minimum number of nights between the start date and the end date."
        },
        "maxNights": {
          "description": "Maximum number of days between the start date and the end date.",
          "type": "integer",
          "format": "int32"
        }
      },
      "id": "GoogleAdsSearchads360V23Resources_ConversionValueRule_ValueRuleItineraryTravelLength",
      "description": "Range for the itinerary length in number of nights.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__UserListCustomerTypeOperation": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__UserListCustomerTypeOperation",
      "description": "A single mutate operation on the user list customer type.",
      "properties": {
        "remove": {
          "description": "Remove an existing user list customer type. A resource name for the removed user list customer type is expected, in this format: `customers/{customer_id}/userListCustomerTypes/{user_list_id}~{customer_type_category}`",
          "type": "string"
        },
        "create": {
          "description": "Attach a user list customer type to a user list. No resource name is expected for the new user list customer type.",
          "$ref": "GoogleAdsSearchads360V23Resources__UserListCustomerType"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__CarrierConstant": {
      "id": "GoogleAdsSearchads360V23Resources__CarrierConstant",
      "description": "A carrier criterion that can be used in campaign targeting.",
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "format": "int64",
          "description": "Output only. The ID of the carrier criterion.",
          "readOnly": true
        },
        "countryCode": {
          "type": "string",
          "description": "Output only. The country code of the country where the carrier is located, for example, \"AR\", \"FR\", etc.",
          "readOnly": true
        },
        "name": {
          "description": "Output only. The full name of the carrier in English.",
          "type": "string",
          "readOnly": true
        },
        "resourceName": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The resource name of the carrier criterion. Carrier criterion resource names have the form: `carrierConstants/{criterion_id}`"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__InsightsAudience": {
      "properties": {
        "gender": {
          "description": "Gender for the audience. If absent, the audience does not restrict by gender.",
          "$ref": "GoogleAdsSearchads360V23Common__GenderInfo"
        },
        "ageRanges": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AgeRangeInfo"
          },
          "description": "Age ranges for the audience. If absent, the audience represents all people over 18 that match the other attributes."
        },
        "subCountryLocations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__LocationInfo"
          },
          "description": "Sub-country geographic location attributes. If present, each of these must be contained in one of the countries in this audience. If absent, the audience is geographically to the country_locations and no further."
        },
        "userList": {
          "description": "User list to be targeted by the audience.",
          "$ref": "GoogleAdsSearchads360V23Common__UserListInfo"
        },
        "topicAudienceCombinations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__InsightsAudienceAttributeGroup"
          },
          "description": "A combination of entity, category and user interest attributes defining the audience. The combination has a logical AND-of-ORs structure: Attributes within each InsightsAudienceAttributeGroup are combined with OR, and the combinations themselves are combined together with AND. For example, the expression (Entity OR Affinity) AND (In-Market OR Category) can be formed using two InsightsAudienceAttributeGroups with two Attributes each."
        },
        "parentalStatus": {
          "description": "Parental status for the audience. If absent, the audience does not restrict by parental status.",
          "$ref": "GoogleAdsSearchads360V23Common__ParentalStatusInfo"
        },
        "lineups": {
          "description": "Lineups representing the YouTube content viewed by the audience.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AudienceInsightsLineup"
          }
        },
        "countryLocations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__LocationInfo"
          },
          "description": "Required. The countries for the audience."
        },
        "incomeRanges": {
          "description": "Household income percentile ranges for the audience. If absent, the audience does not restrict by household income range.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__IncomeRangeInfo"
          }
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__InsightsAudience",
      "description": "A set of users, defined by various characteristics, for which insights can be requested in AudienceInsightsService."
    },
    "GoogleAdsSearchads360V23Common__KeywordConcept": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__KeywordConcept",
      "description": "The concept for the keyword.",
      "properties": {
        "name": {
          "type": "string",
          "description": "The concept name for the keyword in the concept_group."
        },
        "conceptGroup": {
          "description": "The concept group of the concept details.",
          "$ref": "GoogleAdsSearchads360V23Common__ConceptGroup"
        }
      }
    },
    "GoogleAdsSearchads360V23Services_DismissRecommendationResponse_DismissRecommendationResult": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services_DismissRecommendationResponse_DismissRecommendationResult",
      "description": "The result of dismissing a recommendation.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful dismissals."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__HotelCheckInDayInfo": {
      "id": "GoogleAdsSearchads360V23Common__HotelCheckInDayInfo",
      "description": "Criterion for day of the week the booking is for.",
      "type": "object",
      "properties": {
        "dayOfWeek": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Monday.",
            "Tuesday.",
            "Wednesday.",
            "Thursday.",
            "Friday.",
            "Saturday.",
            "Sunday."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MONDAY",
            "TUESDAY",
            "WEDNESDAY",
            "THURSDAY",
            "FRIDAY",
            "SATURDAY",
            "SUNDAY"
          ],
          "description": "The day of the week."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__AudienceCompositionMetrics": {
      "id": "GoogleAdsSearchads360V23Services__AudienceCompositionMetrics",
      "description": "The share and index metrics associated with an attribute in an audience composition insights report.",
      "type": "object",
      "properties": {
        "audienceShare": {
          "type": "number",
          "format": "double",
          "description": "The fraction (from 0 to 1 inclusive) of the specific audience that match the attribute."
        },
        "score": {
          "description": "A relevance score from 0 to 1 inclusive.",
          "type": "number",
          "format": "double"
        },
        "baselineAudienceShare": {
          "description": "The fraction (from 0 to 1 inclusive) of the baseline audience that match the attribute.",
          "type": "number",
          "format": "double"
        },
        "index": {
          "type": "number",
          "format": "double",
          "description": "The ratio of audience_share to baseline_audience_share, or zero if this ratio is undefined or is not meaningful."
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__TopicConstant": {
      "properties": {
        "path": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Output only. The category to target or exclude. Each subsequent element in the array describes a more specific sub-category. For example, {\"Pets & Animals\", \"Pets\", \"Dogs\"} represents the \"Pets & Animals/Pets/Dogs\" category. List of available topic categories at https://developers.google.com/google-ads/api/reference/data/verticals",
          "readOnly": true
        },
        "id": {
          "readOnly": true,
          "description": "Output only. The ID of the topic.",
          "type": "string",
          "format": "int64"
        },
        "resourceName": {
          "description": "Output only. The resource name of the topic constant. topic constant resource names have the form: `topicConstants/{topic_id}`",
          "type": "string",
          "readOnly": true
        },
        "topicConstantParent": {
          "description": "Output only. Resource name of parent of the topic constant.",
          "type": "string",
          "readOnly": true
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__TopicConstant",
      "description": "Use topics to target or exclude placements in the Google Display Network based on the category into which the placement falls (for example, \"Pets & Animals/Pets/Dogs\").",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources_AdGroupDemandGenAdGroupSettings_DemandGenChannelControls": {
      "properties": {
        "channelStrategy": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "All channels are enabled.",
            "All Google-owned and operated channels are enabled; third-party channels (e.g., Display) are disabled."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ALL_CHANNELS",
            "ALL_OWNED_AND_OPERATED_CHANNELS"
          ],
          "description": "High level channel strategy."
        },
        "selectedChannels": {
          "description": "Explicitly selected channels. This field should be set with at least one true value when present.",
          "$ref": "GoogleAdsSearchads360V23Resources_AdGroupDemandGenAdGroupSettingsDemandGenChannelControls_DemandGenSelectedChannels"
        },
        "channelConfig": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CHANNEL_STRATEGY",
            "SELECTED_CHANNELS"
          ],
          "description": "Output only. Channel configuration reflecting which field in the oneof is populated.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "The channel controls configuration uses a general channel strategy; individual channels are not configured separately.",
            "The channel controls configuration explicitly defines the selected channels."
          ]
        }
      },
      "id": "GoogleAdsSearchads360V23Resources_AdGroupDemandGenAdGroupSettings_DemandGenChannelControls",
      "description": "Channel controls for Demand Gen ad groups.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources__CustomerAcquisitionGoalSettings": {
      "id": "GoogleAdsSearchads360V23Resources__CustomerAcquisitionGoalSettings",
      "description": "The customer acquisition goal settings for the campaign.",
      "type": "object",
      "properties": {
        "valueSettings": {
          "readOnly": true,
          "description": "Output only. Campaign specific values for the customer acquisition goal.",
          "$ref": "GoogleAdsSearchads360V23Common__LifecycleGoalValueSettings"
        },
        "optimizationMode": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The mode is used when campaign is optimizing equally for existing and new customers, which is the default value.",
            "The mode is used when campaign is bidding higher for new customers than existing customer.",
            "The mode is used when campaign is only optimizing for new customers."
          ],
          "description": "Output only. Customer acquisition optimization mode of this campaign.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "TARGET_ALL_EQUALLY",
            "BID_HIGHER_FOR_NEW_CUSTOMER",
            "TARGET_NEW_CUSTOMER"
          ],
          "readOnly": true
        }
      }
    },
    "GoogleAdsSearchads360V23Common__LeadFormCustomQuestionField": {
      "id": "GoogleAdsSearchads360V23Common__LeadFormCustomQuestionField",
      "description": "One custom question input field instance within a form.",
      "type": "object",
      "properties": {
        "customQuestionText": {
          "description": "The exact custom question field text (for example, \"What kind of vehicle do you have?\").",
          "type": "string"
        },
        "singleChoiceAnswers": {
          "description": "Answer configuration for a single choice question. Minimum of 2 answers and maximum of 12 allowed.",
          "$ref": "GoogleAdsSearchads360V23Common__LeadFormSingleChoiceAnswers"
        },
        "hasLocationAnswer": {
          "description": "Answer configuration for location question. If true, campaign/account level location data (state, city, business name etc) will be rendered on the Lead Form. Starting V13.1, has_location_answer can only be set for \"What is your preferred dealership?\" question, for advertisers with Location Assets setup at campaign/account level.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources_ExperimentArm_AssetGroupInfo": {
      "id": "GoogleAdsSearchads360V23Resources_ExperimentArm_AssetGroupInfo",
      "description": "Holds the asset groups included in an arm of an Optimize Assets experiment.",
      "type": "object",
      "properties": {
        "assetGroup": {
          "description": "Asset group resource name.",
          "type": "string"
        },
        "assetGroupAssets": {
          "description": "List of asset group assets under the asset group.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Resources_ExperimentArm_AssetGroupAssetInfo"
          }
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__AdGroupCriterionSimulation": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__AdGroupCriterionSimulation",
      "description": "An ad group criterion simulation. Supported combinations of advertising channel type, criterion type, simulation type, and simulation modification method are detailed below respectively. Hotel AdGroupCriterion simulation operations starting in V5. 1. DISPLAY - KEYWORD - CPC_BID - UNIFORM 2. SEARCH - KEYWORD - CPC_BID - UNIFORM 3. SHOPPING - LISTING_GROUP - CPC_BID - UNIFORM 4. HOTEL - LISTING_GROUP - CPC_BID - UNIFORM 5. HOTEL - LISTING_GROUP - PERCENT_CPC_BID - UNIFORM",
      "properties": {
        "resourceName": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The resource name of the ad group criterion simulation. Ad group criterion simulation resource names have the form: `customers/{customer_id}/adGroupCriterionSimulations/{ad_group_id}~{criterion_id}~{type}~{modification_method}~{start_date}~{end_date}`"
        },
        "type": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The simulation is for a CPC bid.",
            "The simulation is for a CPV bid.",
            "The simulation is for a CPA target.",
            "The simulation is for a bid modifier.",
            "The simulation is for a ROAS target.",
            "The simulation is for a percent CPC bid.",
            "The simulation is for an impression share target.",
            "The simulation is for a budget."
          ],
          "description": "Output only. The field that the simulation modifies.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CPC_BID",
            "CPV_BID",
            "TARGET_CPA",
            "BID_MODIFIER",
            "TARGET_ROAS",
            "PERCENT_CPC_BID",
            "TARGET_IMPRESSION_SHARE",
            "BUDGET"
          ],
          "readOnly": true
        },
        "percentCpcBidPointList": {
          "readOnly": true,
          "description": "Output only. Simulation points if the simulation type is PERCENT_CPC_BID.",
          "$ref": "GoogleAdsSearchads360V23Common__PercentCpcBidSimulationPointList"
        },
        "criterionId": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. Criterion ID of the simulation."
        },
        "cpcBidPointList": {
          "description": "Output only. Simulation points if the simulation type is CPC_BID.",
          "$ref": "GoogleAdsSearchads360V23Common__CpcBidSimulationPointList",
          "readOnly": true
        },
        "startDate": {
          "readOnly": true,
          "description": "Output only. First day on which the simulation is based, in YYYY-MM-DD format.",
          "type": "string"
        },
        "adGroupId": {
          "type": "string",
          "format": "int64",
          "description": "Output only. AdGroup ID of the simulation.",
          "readOnly": true
        },
        "endDate": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Last day on which the simulation is based, in YYYY-MM-DD format."
        },
        "modificationMethod": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The values in a simulation were applied to all children of a given resource uniformly. Overrides on child resources were not respected.",
            "The values in a simulation were applied to the given resource. Overrides on child resources were respected, and traffic estimates do not include these resources.",
            "The values in a simulation were all scaled by the same factor. For example, in a simulated TargetCpa campaign, the campaign target and all ad group targets were scaled by a factor of X."
          ],
          "description": "Output only. How the simulation modifies the field.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "UNIFORM",
            "DEFAULT",
            "SCALING"
          ],
          "readOnly": true
        }
      }
    },
    "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_RaiseTargetCpaParameters": {
      "id": "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_RaiseTargetCpaParameters",
      "description": "Parameters to use when applying raise Target CPA recommendations.",
      "type": "object",
      "properties": {
        "targetCpaMultiplier": {
          "description": "Required. Target to set CPA multiplier to. This is a required field.",
          "type": "number",
          "format": "double"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__KeywordPlanCampaignKeywordOperation": {
      "id": "GoogleAdsSearchads360V23Services__KeywordPlanCampaignKeywordOperation",
      "description": "A single operation (create, update, remove) on a Keyword Plan campaign keyword.",
      "type": "object",
      "properties": {
        "updateMask": {
          "description": "The FieldMask that determines which resource fields are modified in an update.",
          "type": "string",
          "format": "google-fieldmask"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new Keyword Plan campaign keyword.",
          "$ref": "GoogleAdsSearchads360V23Resources__KeywordPlanCampaignKeyword"
        },
        "update": {
          "description": "Update operation: The Keyword Plan campaign keyword expected to have a valid resource name.",
          "$ref": "GoogleAdsSearchads360V23Resources__KeywordPlanCampaignKeyword"
        },
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed Keyword Plan campaign keywords expected in this format: `customers/{customer_id}/keywordPlanCampaignKeywords/{kp_campaign_keyword_id}`"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__LookalikeUserListInfo": {
      "id": "GoogleAdsSearchads360V23Common__LookalikeUserListInfo",
      "description": "LookalikeUserlist, composed of users similar to those of a configurable seed (set of UserLists)",
      "type": "object",
      "properties": {
        "seedUserListIds": {
          "description": "Seed UserList ID from which this list is derived, provided by user.",
          "type": "array",
          "items": {
            "type": "string",
            "format": "int64"
          }
        },
        "expansionLevel": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Invalid expansion level.",
            "Expansion to a small set of users that are similar to the seed lists",
            "Expansion to a medium set of users that are similar to the seed lists. Includes all users of EXPANSION_LEVEL_NARROW, and more.",
            "Expansion to a large set of users that are similar to the seed lists. Includes all users of EXPANSION_LEVEL_BALANCED, and more."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NARROW",
            "BALANCED",
            "BROAD"
          ],
          "description": "Expansion level, reflecting the size of the lookalike audience"
        },
        "countryCodes": {
          "description": "Countries targeted by the Lookalike. Two-letter country code as defined by ISO-3166",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "GoogleAdsSearchads360V23Resources_ListingGroupFilterDimension_WebpageCondition": {
      "id": "GoogleAdsSearchads360V23Resources_ListingGroupFilterDimension_WebpageCondition",
      "description": "Matching condition for URL filtering.",
      "type": "object",
      "properties": {
        "urlContains": {
          "description": "Filters the URLs in a page feed and the URLs from the advertiser web domain that contain this string.",
          "type": "string"
        },
        "customLabel": {
          "type": "string",
          "description": "Filters the URLs in a page feed that have this custom label. A custom label can be added to a campaign by creating an AssetSet of type PAGE_FEED and linking it to the campaign using CampaignAssetSet."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateAssetSetAssetsRequest": {
      "properties": {
        "responseContentType": {
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "type": "string",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ]
        },
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        },
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__AssetSetAssetOperation"
          },
          "description": "Required. The list of operations to perform on individual asset set assets."
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        }
      },
      "id": "GoogleAdsSearchads360V23Services__MutateAssetSetAssetsRequest",
      "description": "Request message for AssetSetAssetService.MutateAssetSetAssets.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__TargetImpressionShare": {
      "properties": {
        "location": {
          "description": "The targeted location on the search results page.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Any location on the web page.",
            "Top box of ads.",
            "Top slot in the top box of ads."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ANYWHERE_ON_PAGE",
            "TOP_OF_PAGE",
            "ABSOLUTE_TOP_OF_PAGE"
          ]
        },
        "cpcBidCeilingMicros": {
          "type": "string",
          "format": "int64",
          "description": "The highest CPC bid the automated bidding system is permitted to specify. This is a required field entered by the advertiser that sets the ceiling and specified in local micros."
        },
        "locationFractionMicros": {
          "type": "string",
          "format": "int64",
          "description": "The chosen fraction of ads to be shown in the targeted location in micros. For example, 1% equals 10,000."
        }
      },
      "id": "GoogleAdsSearchads360V23Common__TargetImpressionShare",
      "description": "An automated bidding strategy that sets bids so that a certain percentage of search ads are shown at the top of the first page (or other targeted location).",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources_Recommendation_RaiseTargetCpaBidTooLowRecommendation": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources_Recommendation_RaiseTargetCpaBidTooLowRecommendation",
      "description": "The raise target CPA bid too low recommendation.",
      "properties": {
        "recommendedTargetMultiplier": {
          "readOnly": true,
          "type": "number",
          "format": "double",
          "description": "Output only. A number greater than 1.0 indicating the factor by which we recommend the target CPA should be increased."
        },
        "averageTargetCpaMicros": {
          "type": "string",
          "format": "int64",
          "description": "Output only. The current average target CPA of the campaign, in micros of customer local currency.",
          "readOnly": true
        }
      }
    },
    "GoogleAdsSearchads360V23Common__UserInterestAttributeMetadata": {
      "id": "GoogleAdsSearchads360V23Common__UserInterestAttributeMetadata",
      "description": "Metadata associated with a User Interest attribute.",
      "type": "object",
      "properties": {
        "userInterestDescription": {
          "type": "string",
          "description": "English language text description of the user interest category (200 characters max)."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__TargetCpc": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__TargetCpc",
      "description": "An automated bidding strategy that sets bids to help get as many clicks as possible at the target cost-per-click (CPC) you set.",
      "properties": {
        "targetCpcMicros": {
          "description": "Average CPC target. This target should be greater than or equal to minimum billable unit based on the currency for the account.",
          "type": "string",
          "format": "int64"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__CriterionCategoryLocaleAvailability": {
      "id": "GoogleAdsSearchads360V23Common__CriterionCategoryLocaleAvailability",
      "description": "Information about which locales a category is available in.",
      "type": "object",
      "properties": {
        "availabilityMode": {
          "description": "Format of the locale availability. Can be LAUNCHED_TO_ALL (both country and language will be empty), COUNTRY (only country will be set), LANGUAGE (only language wil be set), COUNTRY_AND_LANGUAGE (both country and language will be set).",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The category is available to campaigns of all locales.",
            "The category is available to campaigns within a list of countries, regardless of language.",
            "The category is available to campaigns within a list of languages, regardless of country.",
            "The category is available to campaigns within a list of country, language pairs."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ALL_LOCALES",
            "COUNTRY_AND_ALL_LANGUAGES",
            "LANGUAGE_AND_ALL_COUNTRIES",
            "COUNTRY_AND_LANGUAGE"
          ]
        },
        "countryCode": {
          "type": "string",
          "description": "The ISO-3166-1 alpha-2 country code associated with the category."
        },
        "languageCode": {
          "description": "ISO 639-1 code of the language associated with the category.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources_Campaign_AudienceSetting": {
      "id": "GoogleAdsSearchads360V23Resources_Campaign_AudienceSetting",
      "description": "Settings for the audience targeting.",
      "type": "object",
      "properties": {
        "useAudienceGrouped": {
          "type": "boolean",
          "description": "Immutable. If true, this campaign uses an Audience resource for audience targeting. If false, this campaign may use audience segment criteria instead."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__UserListRuleItemInfo": {
      "properties": {
        "numberRuleItem": {
          "description": "An atomic rule item composed of a number operation.",
          "$ref": "GoogleAdsSearchads360V23Common__UserListNumberRuleItemInfo"
        },
        "name": {
          "type": "string",
          "description": "Rule variable name. It should match the corresponding key name fired by the pixel. A name must begin with US-ascii letters or underscore or UTF8 code that is greater than 127 and consist of US-ascii letters or digits or underscore or UTF8 code that is greater than 127. For websites, there are two built-in variable URL (name = 'url__') and referrer URL (name = 'ref_url__'). This field must be populated when creating a new rule item."
        },
        "stringRuleItem": {
          "description": "An atomic rule item composed of a string operation.",
          "$ref": "GoogleAdsSearchads360V23Common__UserListStringRuleItemInfo"
        },
        "dateRuleItem": {
          "description": "An atomic rule item composed of a date operation.",
          "$ref": "GoogleAdsSearchads360V23Common__UserListDateRuleItemInfo"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__UserListRuleItemInfo",
      "description": "An atomic rule item."
    },
    "GoogleAdsSearchads360V23Services__MutateSharedSetsRequest": {
      "properties": {
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        },
        "operations": {
          "description": "Required. The list of operations to perform on individual shared sets.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__SharedSetOperation"
          }
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "responseContentType": {
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "type": "string",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ]
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateSharedSetsRequest",
      "description": "Request message for SharedSetService.MutateSharedSets."
    },
    "GoogleAdsSearchads360V23Services__MutateExperimentArmsResponse": {
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "description": "All results for the mutate.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateExperimentArmResult"
          }
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateExperimentArmsResponse",
      "description": "Response message for experiment arm mutate."
    },
    "GoogleAdsSearchads360V23Common__DemandGenProductAdInfo": {
      "properties": {
        "logoImage": {
          "description": "Required. Logo image to be used in the ad. Valid image types are GIF, JPEG, and PNG. The minimum size is 128x128 and the aspect ratio must be 1:1 (+-1%).",
          "$ref": "GoogleAdsSearchads360V23Common__AdImageAsset"
        },
        "callToAction": {
          "description": "Asset of type CallToActionAsset used for the \"Call To Action\" button.",
          "$ref": "GoogleAdsSearchads360V23Common__AdCallToActionAsset"
        },
        "breadcrumb1": {
          "description": "First part of text that appears in the ad with the displayed URL.",
          "type": "string"
        },
        "breadcrumb2": {
          "description": "Second part of text that appears in the ad with the displayed URL.",
          "type": "string"
        },
        "businessName": {
          "description": "Required. The advertiser/brand name.",
          "$ref": "GoogleAdsSearchads360V23Common__AdTextAsset"
        },
        "description": {
          "description": "Required. Text asset used for the description.",
          "$ref": "GoogleAdsSearchads360V23Common__AdTextAsset"
        },
        "headline": {
          "description": "Required. Text asset used for the short headline.",
          "$ref": "GoogleAdsSearchads360V23Common__AdTextAsset"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__DemandGenProductAdInfo",
      "description": "A Demand Gen product ad."
    },
    "GoogleAdsSearchads360V23Common__LifecycleGoalValueSettings": {
      "properties": {
        "value": {
          "type": "number",
          "format": "double",
          "description": "Value of the lifecycle goal. For example, for customer acquisition goal, value is the incremental conversion value for new customers who are not of high value."
        },
        "highLifetimeValue": {
          "type": "number",
          "format": "double",
          "description": "High lifetime value of the lifecycle goal. For example, for customer acquisition goal, high lifetime value is the incremental conversion value for new customers who are of high value. High lifetime value should be greater than value, if set."
        }
      },
      "id": "GoogleAdsSearchads360V23Common__LifecycleGoalValueSettings",
      "description": "Lifecycle goal value settings.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__AppPreRegistrationAdInfo": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__AppPreRegistrationAdInfo",
      "description": "App pre-registration ads link to your app or game listing on Google Play, and can run on Google Play, on YouTube (in-stream only), and within other apps and mobile websites on the Display Network. It will help capture people's interest in your app or game and generate an early install base for your app or game before a launch.",
      "properties": {
        "descriptions": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AdTextAsset"
          },
          "description": "List of text assets for descriptions. When the ad serves the descriptions will be selected from this list."
        },
        "images": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AdImageAsset"
          },
          "description": "List of image asset IDs whose images may be displayed with the ad."
        },
        "youtubeVideos": {
          "description": "List of YouTube video asset IDs whose videos may be displayed with the ad.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AdVideoAsset"
          }
        },
        "headlines": {
          "description": "List of text assets for headlines. When the ad serves the headlines will be selected from this list.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AdTextAsset"
          }
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateAssetSetResult": {
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        },
        "assetSet": {
          "description": "The mutated asset set with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsSearchads360V23Resources__AssetSet"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__MutateAssetSetResult",
      "description": "The result for the asset set mutate.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__UserInterestInfo": {
      "properties": {
        "userInterestCategory": {
          "type": "string",
          "description": "The UserInterest resource name."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__UserInterestInfo",
      "description": "Represents a particular interest-based topic to be targeted."
    },
    "GoogleAdsSearchads360V23Resources__CampaignGroup": {
      "id": "GoogleAdsSearchads360V23Resources__CampaignGroup",
      "description": "A campaign group.",
      "type": "object",
      "properties": {
        "id": {
          "readOnly": true,
          "description": "Output only. The ID of the campaign group.",
          "type": "string",
          "format": "int64"
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the campaign group. Campaign group resource names have the form: `customers/{customer_id}/campaignGroups/{campaign_group_id}`"
        },
        "status": {
          "description": "The status of the campaign group. When a new campaign group is added, the status defaults to ENABLED.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The campaign group is active.",
            "The campaign group has been removed."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ]
        },
        "name": {
          "type": "string",
          "description": "The name of the campaign group. This field is required and should not be empty when creating new campaign groups. It must not contain any null (code point 0x0), NL line feed (code point 0xA) or carriage return (code point 0xD) characters."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__UserIdentifier": {
      "properties": {
        "userIdentifierSource": {
          "description": "Source of the user identifier when the upload is from Store Sales",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version",
            "Indicates that the user identifier was provided by the first party (advertiser).",
            "Indicates that the user identifier was provided by the third party (partner)."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "FIRST_PARTY",
            "THIRD_PARTY"
          ]
        },
        "mobileId": {
          "type": "string",
          "description": "Mobile device ID (advertising ID/IDFA)."
        },
        "hashedEmail": {
          "type": "string",
          "description": "Hashed email address using SHA-256 hash function after normalization."
        },
        "thirdPartyUserId": {
          "description": "Advertiser-assigned user ID for Customer Match upload, or third-party-assigned user ID for",
          "type": "string"
        },
        "addressInfo": {
          "description": "Address information.",
          "$ref": "GoogleAdsSearchads360V23Common__OfflineUserAddressInfo"
        },
        "hashedPhoneNumber": {
          "type": "string",
          "description": "Hashed phone number using SHA-256 hash function after normalization (E164 standard)."
        }
      },
      "id": "GoogleAdsSearchads360V23Common__UserIdentifier",
      "description": "identifying information.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateCampaignAssetsRequest": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateCampaignAssetsRequest",
      "description": "Request message for CampaignAssetService.MutateCampaignAssets.",
      "properties": {
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        },
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__CampaignAssetOperation"
          },
          "description": "Required. The list of operations to perform on individual campaign assets."
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "responseContentType": {
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "type": "string",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ]
        }
      }
    },
    "GoogleAdsSearchads360V23Resources_Campaign_NetworkSettings": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources_Campaign_NetworkSettings",
      "description": "The network settings for the campaign.",
      "properties": {
        "targetPartnerSearchNetwork": {
          "description": "Whether ads will be served on the partner network. This is available only to some select partner accounts. Unless you have been instructed to use this field, it likely does not apply to your account. This does not control whether ads will be served on Google Search Partners Network; use `target_search_network` for that instead.",
          "type": "boolean"
        },
        "targetSearchNetwork": {
          "description": "Whether ads will be served on sites in the Google Search Partners Network (requires `target_google_search` to also be `true`).",
          "type": "boolean"
        },
        "targetYoutube": {
          "description": "Whether ads will be served on YouTube.",
          "type": "boolean"
        },
        "targetGoogleTvNetwork": {
          "description": "Whether ads will be served on the Google TV network.",
          "type": "boolean"
        },
        "targetGoogleSearch": {
          "type": "boolean",
          "description": "Whether ads will be served with google.com search results."
        },
        "targetContentNetwork": {
          "type": "boolean",
          "description": "Whether ads will be served on specified placements in the Google Display Network. Placements are specified using the Placement criterion."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__ProvideLeadFeedbackResponse": {
      "properties": {
        "creditIssuanceDecision": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Bonus credit is issued successfully and bonus credit cap has not reached the threshold after issuing this bonus credit.",
            "Bonus credit is issued successfully and bonus credit cap has reached the threshold after issuing this bonus credit.",
            "Bonus credit is not issued because the provider has reached the bonus credit cap.",
            "Bonus credit is not issued because this lead is not eligible for bonus credit."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SUCCESS_NOT_REACHED_THRESHOLD",
            "SUCCESS_REACHED_THRESHOLD",
            "FAIL_OVER_THRESHOLD",
            "FAIL_NOT_ELIGIBLE"
          ],
          "description": "Required. Decision of bonus credit issued or rejected. If a bonus credit is issued, it will be available for use in about two months."
        }
      },
      "id": "GoogleAdsSearchads360V23Services__ProvideLeadFeedbackResponse",
      "description": "Response message for LocalServicesLeadService.ProvideLeadFeedback.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__ChainLocationGroup": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__ChainLocationGroup",
      "description": "Represents information about a Chain dynamic location group. Only applicable if the sync level AssetSet's type is LOCATION_SYNC and sync source is chain.",
      "properties": {
        "dynamicChainLocationGroupFilters": {
          "description": "Used to filter chain locations by chain ids. Only Locations that belong to the specified chain(s) will be in the asset set.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__ChainFilter"
          }
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__KeywordPlan": {
      "properties": {
        "id": {
          "type": "string",
          "format": "int64",
          "description": "Output only. The ID of the keyword plan.",
          "readOnly": true
        },
        "name": {
          "description": "The name of the keyword plan. This field is required and should not be empty when creating new keyword plans.",
          "type": "string"
        },
        "resourceName": {
          "description": "Immutable. The resource name of the Keyword Planner plan. KeywordPlan resource names have the form: `customers/{customer_id}/keywordPlans/{kp_plan_id}`",
          "type": "string"
        },
        "forecastPeriod": {
          "description": "The date period used for forecasting the plan.",
          "$ref": "GoogleAdsSearchads360V23Resources__KeywordPlanForecastPeriod"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__KeywordPlan",
      "description": "A Keyword Planner plan. Max number of saved keyword plans: 10000. It's possible to remove plans if limit is reached."
    },
    "GoogleAdsSearchads360V23Services__MutateCustomInterestsResponse": {
      "id": "GoogleAdsSearchads360V23Services__MutateCustomInterestsResponse",
      "description": "Response message for custom interest mutate.",
      "type": "object",
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateCustomInterestResult"
          },
          "description": "All results for the mutate."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__EventItemAttribute": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__EventItemAttribute",
      "description": "Event Item attributes of the Customer Match.",
      "properties": {
        "itemId": {
          "description": "Optional. A unique identifier of a product. It can be either the Merchant Center Item ID or GTIN (Global Trade Item Number).",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__CampaignAssetSet": {
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the campaign asset set. Asset set asset resource names have the form: `customers/{customer_id}/campaignAssetSets/{campaign_id}~{asset_set_id}`"
        },
        "status": {
          "type": "string",
          "enumDescriptions": [
            "The status has not been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The linkage between asset set and its container is enabled.",
            "The linkage between asset set and its container is removed."
          ],
          "description": "Output only. The status of the campaign asset set asset. Read-only.",
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ]
        },
        "campaign": {
          "type": "string",
          "description": "Immutable. The campaign to which this asset set is linked."
        },
        "assetSet": {
          "description": "Immutable. The asset set which is linked to the campaign.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__CampaignAssetSet",
      "description": "CampaignAssetSet is the linkage between a campaign and an asset set. Adding a CampaignAssetSet links an asset set with a campaign."
    },
    "GoogleAdsSearchads360V23Common__TargetCpa": {
      "properties": {
        "targetCpaMicros": {
          "description": "Average CPA target. This target should be greater than or equal to minimum billable unit based on the currency for the account.",
          "type": "string",
          "format": "int64"
        },
        "cpcBidCeilingMicros": {
          "type": "string",
          "format": "int64",
          "description": "Maximum bid limit that can be set by the bid strategy. The limit applies to all keywords managed by the strategy. This should only be set for portfolio bid strategies."
        },
        "cpcBidFloorMicros": {
          "description": "Minimum bid limit that can be set by the bid strategy. The limit applies to all keywords managed by the strategy. This should only be set for portfolio bid strategies.",
          "type": "string",
          "format": "int64"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__TargetCpa",
      "description": "An automated bid strategy that sets bids to help get as many conversions as possible at the target cost-per-acquisition (CPA) you set."
    },
    "GoogleAdsSearchads360V23Common__ExclusionSegment": {
      "properties": {
        "userList": {
          "description": "User list segment to be excluded.",
          "$ref": "GoogleAdsSearchads360V23Common__UserListSegment"
        }
      },
      "id": "GoogleAdsSearchads360V23Common__ExclusionSegment",
      "description": "An audience segment to be excluded from an audience.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources__Fellowship": {
      "properties": {
        "completionYear": {
          "readOnly": true,
          "type": "integer",
          "format": "int32",
          "description": "Output only. Year of completion."
        },
        "institutionName": {
          "description": "Output only. Name of the instutition at which the fellowship was completed.",
          "type": "string",
          "readOnly": true
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__Fellowship",
      "description": "Details about the employee's medical Fellowship. Fellowship is a period of medical training that the professional undertakes after finishing their residency.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__CampaignThirdPartyBrandLiftIntegrationPartner": {
      "properties": {
        "brandLiftIntegrationPartner": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Kantar",
            "Dynata",
            "Intage",
            "Macromill"
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "KANTAR_MILLWARD_BROWN",
            "DYNATA",
            "INTAGE",
            "MACROMILL"
          ],
          "description": "Allowed third party integration partners for Brand Lift verification."
        },
        "brandLiftIntegrationPartnerData": {
          "description": "Third party partner data for YouTube Brand Lift verification. This is optional metadata for partners to join or attach data to Ads campaigns.",
          "$ref": "GoogleAdsSearchads360V23Common__ThirdPartyIntegrationPartnerData"
        },
        "shareCost": {
          "description": "If true, then cost data will be shared with this vendor.",
          "type": "boolean"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__CampaignThirdPartyBrandLiftIntegrationPartner",
      "description": "Container for third party Brand Lift integration data for Campaign."
    },
    "GoogleAdsSearchads360V23Common__HistoricalMetricsOptions": {
      "properties": {
        "yearMonthRange": {
          "description": "The year month range for historical metrics. If not specified, metrics for the past 12 months are returned. Search metrics are available for the past 4 years. If the search volume is not available for the entire year_month_range provided, the subset of the year month range for which search volume is available are returned.",
          "$ref": "GoogleAdsSearchads360V23Common__YearMonthRange"
        },
        "includeAverageCpc": {
          "description": "Indicates whether to include average cost per click value. Average CPC is provided only for legacy support.",
          "type": "boolean"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__HistoricalMetricsOptions",
      "description": "Historical metrics options."
    },
    "GoogleAdsSearchads360V23Resources_Recommendation_SitelinkAssetRecommendation": {
      "properties": {
        "recommendedCampaignSitelinkAssets": {
          "description": "Output only. New sitelink assets recommended at the campaign level.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Resources__Asset"
          },
          "readOnly": true
        },
        "recommendedCustomerSitelinkAssets": {
          "readOnly": true,
          "description": "Output only. New sitelink assets recommended at the customer level.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Resources__Asset"
          }
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources_Recommendation_SitelinkAssetRecommendation",
      "description": "The sitelink asset recommendation."
    },
    "GoogleAdsSearchads360V23Resources__AssetFieldTypePolicySummary": {
      "properties": {
        "assetFieldType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is linked for use as a headline.",
            "The asset is linked for use as a description.",
            "The asset is linked for use as mandatory ad text.",
            "The asset is linked for use as a marketing image.",
            "The asset is linked for use as a media bundle.",
            "The asset is linked for use as a YouTube video.",
            "The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.",
            "The asset is linked for use as a Lead Form extension.",
            "The asset is linked for use as a Promotion extension.",
            "The asset is linked for use as a Callout extension.",
            "The asset is linked for use as a Structured Snippet extension.",
            "The asset is linked for use as a Sitelink.",
            "The asset is linked for use as a Mobile App extension.",
            "The asset is linked for use as a Hotel Callout extension.",
            "The asset is linked for use as a Call extension.",
            "The asset is linked for use as a Price extension.",
            "The asset is linked for use as a long headline.",
            "The asset is linked for use as a business name.",
            "The asset is linked for use as a square marketing image.",
            "The asset is linked for use as a portrait marketing image.",
            "The asset is linked for use as a logo.",
            "The asset is linked for use as a landscape logo.",
            "The asset is linked for use as a non YouTube logo.",
            "The asset is linked for use to select a call-to-action.",
            "The asset is linked for use to select an ad image.",
            "The asset is linked for use as a business logo.",
            "The asset is linked for use as a hotel property in a Performance Max for travel goals campaign.",
            "The asset is linked for use as a Demand Gen carousel card.",
            "The asset is linked for use as a Business Message.",
            "The asset is linked for use as a tall portrait marketing image.",
            "The asset is linked for use as a landing page preview image.",
            "The asset is linked for use as a long description.",
            "The asset is linked for use as a call-to-action."
          ],
          "description": "Output only. FieldType of this asset.",
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HEADLINE",
            "DESCRIPTION",
            "MANDATORY_AD_TEXT",
            "MARKETING_IMAGE",
            "MEDIA_BUNDLE",
            "YOUTUBE_VIDEO",
            "BOOK_ON_GOOGLE",
            "LEAD_FORM",
            "PROMOTION",
            "CALLOUT",
            "STRUCTURED_SNIPPET",
            "SITELINK",
            "MOBILE_APP",
            "HOTEL_CALLOUT",
            "CALL",
            "PRICE",
            "LONG_HEADLINE",
            "BUSINESS_NAME",
            "SQUARE_MARKETING_IMAGE",
            "PORTRAIT_MARKETING_IMAGE",
            "LOGO",
            "LANDSCAPE_LOGO",
            "VIDEO",
            "CALL_TO_ACTION_SELECTION",
            "AD_IMAGE",
            "BUSINESS_LOGO",
            "HOTEL_PROPERTY",
            "DEMAND_GEN_CAROUSEL_CARD",
            "BUSINESS_MESSAGE",
            "TALL_PORTRAIT_MARKETING_IMAGE",
            "LANDING_PAGE_PREVIEW",
            "LONG_DESCRIPTION",
            "CALL_TO_ACTION"
          ]
        },
        "policySummaryInfo": {
          "description": "Output only. Policy summary.",
          "$ref": "GoogleAdsSearchads360V23Resources__AssetPolicySummary",
          "readOnly": true
        },
        "assetSource": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset or asset link is provided by advertiser.",
            "The asset or asset link is generated by Google."
          ],
          "description": "Output only. Source of this asset.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADVERTISER",
            "AUTOMATICALLY_CREATED"
          ],
          "readOnly": true
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__AssetFieldTypePolicySummary",
      "description": "Contains policy information for an asset under AssetFieldType context.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateAssetGroupResult": {
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__MutateAssetGroupResult",
      "description": "The result for the asset group mutate.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources__AdGroupAdPolicySummary": {
      "id": "GoogleAdsSearchads360V23Resources__AdGroupAdPolicySummary",
      "description": "Contains policy information for an ad.",
      "type": "object",
      "properties": {
        "reviewStatus": {
          "type": "string",
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "Currently under review.",
            "Primary review complete. Other reviews may be continuing.",
            "The resource has been resubmitted for approval or its policy decision has been appealed.",
            "The resource is eligible and may be serving but could still undergo further review."
          ],
          "description": "Output only. Where in the review process this ad is.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "REVIEW_IN_PROGRESS",
            "REVIEWED",
            "UNDER_APPEAL",
            "ELIGIBLE_MAY_SERVE"
          ],
          "readOnly": true
        },
        "approvalStatus": {
          "type": "string",
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "Will not serve.",
            "Serves with restrictions.",
            "Serves without restrictions.",
            "Will not serve in targeted countries, but may serve for users who are searching for information about the targeted countries."
          ],
          "description": "Output only. The overall approval status of this ad, calculated based on the status of its individual policy topic entries.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DISAPPROVED",
            "APPROVED_LIMITED",
            "APPROVED",
            "AREA_OF_INTEREST_ONLY"
          ],
          "readOnly": true
        },
        "policyTopicEntries": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__PolicyTopicEntry"
          },
          "description": "Output only. The list of policy findings for this ad.",
          "readOnly": true
        }
      }
    },
    "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_RaiseTargetCpaBidTooLowParameters": {
      "id": "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_RaiseTargetCpaBidTooLowParameters",
      "description": "Parameters to use when applying a raise target CPA bid too low recommendation. The apply is asynchronous and can take minutes depending on the number of ad groups there is in the related campaign..",
      "type": "object",
      "properties": {
        "targetMultiplier": {
          "description": "Required. A number greater than 1.0 indicating the factor by which to increase the target CPA. This is a required field.",
          "type": "number",
          "format": "double"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__ResponsiveSearchAdInfo": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__ResponsiveSearchAdInfo",
      "description": "A responsive search ad. Responsive search ads let you create an ad that adapts to show more text, and more relevant messages, to your customers. Enter multiple headlines and descriptions when creating a responsive search ad, and over time, Google Ads will automatically test different combinations and learn which combinations perform best. By adapting your ad's content to more closely match potential customers' search terms, responsive search ads may improve your campaign's performance. More information at https://support.google.com/google-ads/answer/7684791",
      "properties": {
        "descriptions": {
          "description": "List of text assets for descriptions. When the ad serves the descriptions will be selected from this list.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AdTextAsset"
          }
        },
        "headlines": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AdTextAsset"
          },
          "description": "List of text assets for headlines. When the ad serves the headlines will be selected from this list."
        },
        "path2": {
          "description": "Second part of text that can be appended to the URL in the ad. This field can only be set when `path1` is also set.",
          "type": "string"
        },
        "path1": {
          "type": "string",
          "description": "First part of text that can be appended to the URL in the ad."
        }
      }
    },
    "GoogleAdsSearchads360V23Resources_SmartCampaignSetting_PhoneNumber": {
      "properties": {
        "phoneNumber": {
          "description": "Phone number of the smart campaign.",
          "type": "string"
        },
        "countryCode": {
          "description": "Upper-case, two-letter country code as defined by ISO-3166.",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V23Resources_SmartCampaignSetting_PhoneNumber",
      "description": "Phone number and country code in smart campaign settings.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__ProvideLeadFeedbackRequest": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__ProvideLeadFeedbackRequest",
      "description": "Request message for LocalServicesLeadService.ProvideLeadFeedback.",
      "properties": {
        "surveySatisfied": {
          "description": "Details about various factors for being satisfied with the lead.",
          "$ref": "GoogleAdsSearchads360V23Services__SurveySatisfied"
        },
        "surveyAnswer": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Very satisfied with the lead.",
            "Satisfied with the lead.",
            "Neutral with the lead.",
            "Dissatisfied with the lead.",
            "Very dissatisfied with the lead."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "VERY_SATISFIED",
            "SATISFIED",
            "NEUTRAL",
            "DISSATISFIED",
            "VERY_DISSATISFIED"
          ],
          "description": "Required. Survey answer for Local Services Ads Lead."
        },
        "surveyDissatisfied": {
          "description": "Details about various factors for not being satisfied with the lead.",
          "$ref": "GoogleAdsSearchads360V23Services__SurveyDissatisfied"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__AssetSetAsset": {
      "properties": {
        "assetSet": {
          "type": "string",
          "description": "Immutable. The asset set which this asset set asset is linking to."
        },
        "asset": {
          "type": "string",
          "description": "Immutable. The asset which this asset set asset is linking to."
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the asset set asset. Asset set asset resource names have the form: `customers/{customer_id}/assetSetAssets/{asset_set_id}~{asset_id}`"
        },
        "status": {
          "type": "string",
          "enumDescriptions": [
            "The status has not been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The asset set asset is enabled.",
            "The asset set asset is removed."
          ],
          "description": "Output only. The status of the asset set asset. Read-only.",
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ]
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__AssetSetAsset",
      "description": "AssetSetAsset is the link between an asset and an asset set. Adding an AssetSetAsset links an asset with an asset set.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources_ConversionAction_ThirdPartyAppAnalyticsSettings": {
      "properties": {
        "eventName": {
          "readOnly": true,
          "description": "Output only. The event name of a third-party app analytics conversion.",
          "type": "string"
        },
        "providerName": {
          "type": "string",
          "description": "Output only. Name of the third-party app analytics provider.",
          "readOnly": true
        }
      },
      "id": "GoogleAdsSearchads360V23Resources_ConversionAction_ThirdPartyAppAnalyticsSettings",
      "description": "Settings related to a third party app analytics conversion action.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__CampaignAssetOperation": {
      "properties": {
        "updateMask": {
          "type": "string",
          "format": "google-fieldmask",
          "description": "FieldMask that determines which resource fields are modified in an update."
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new campaign asset.",
          "$ref": "GoogleAdsSearchads360V23Resources__CampaignAsset"
        },
        "update": {
          "description": "Update operation: The campaign asset is expected to have a valid resource name.",
          "$ref": "GoogleAdsSearchads360V23Resources__CampaignAsset"
        },
        "remove": {
          "description": "Remove operation: A resource name for the removed campaign asset is expected, in this format: `customers/{customer_id}/campaignAssets/{campaign_id}~{asset_id}~{field_type}`",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__CampaignAssetOperation",
      "description": "A single operation (create, remove) on a campaign asset.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__AdVideoAssetInfo": {
      "id": "GoogleAdsSearchads360V23Common__AdVideoAssetInfo",
      "description": "Contains info fields for AdVideoAssets.",
      "type": "object",
      "properties": {
        "adVideoAssetFeatureControl": {
          "description": "Defines feature controls for this AdVideoAsset during serving time. For example, whether YouTube comments should be enabled for Partnership Ads served on YouTube Shorts.",
          "$ref": "GoogleAdsSearchads360V23Common__AdVideoAssetLinkFeatureControl"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__GenerateKeywordHistoricalMetricsResponse": {
      "id": "GoogleAdsSearchads360V23Services__GenerateKeywordHistoricalMetricsResponse",
      "description": "Response message for KeywordPlanIdeaService.GenerateKeywordHistoricalMetrics.",
      "type": "object",
      "properties": {
        "aggregateMetricResults": {
          "description": "The aggregate metrics for all keywords.",
          "$ref": "GoogleAdsSearchads360V23Common__KeywordPlanAggregateMetricResults"
        },
        "results": {
          "description": "List of keywords and their historical metrics.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__GenerateKeywordHistoricalMetricsResult"
          }
        }
      }
    },
    "GoogleAdsSearchads360V23Common__ExpandedTextAdInfo": {
      "id": "GoogleAdsSearchads360V23Common__ExpandedTextAdInfo",
      "description": "An expanded text ad.",
      "type": "object",
      "properties": {
        "path1": {
          "description": "The text that can appear alongside the ad's displayed URL.",
          "type": "string"
        },
        "description": {
          "type": "string",
          "description": "The description of the ad."
        },
        "description2": {
          "description": "The second description of the ad.",
          "type": "string"
        },
        "headlinePart1": {
          "description": "The first part of the ad's headline.",
          "type": "string"
        },
        "headlinePart2": {
          "type": "string",
          "description": "The second part of the ad's headline."
        },
        "path2": {
          "description": "Additional text that can appear alongside the ad's displayed URL.",
          "type": "string"
        },
        "headlinePart3": {
          "description": "The third part of the ad's headline.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__KeywordInfo": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__KeywordInfo",
      "description": "A keyword criterion.",
      "properties": {
        "matchType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Exact match.",
            "Phrase match.",
            "Broad match."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "EXACT",
            "PHRASE",
            "BROAD"
          ],
          "description": "The match type of the keyword."
        },
        "text": {
          "description": "The text of the keyword (at most 80 characters and 10 words).",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__CampaignLifecycleGoalOperation": {
      "properties": {
        "updateMask": {
          "description": "Optional. FieldMask that determines which resource fields are modified in an update.",
          "type": "string",
          "format": "google-fieldmask"
        },
        "create": {
          "$ref": "GoogleAdsSearchads360V23Resources__CampaignLifecycleGoal"
        },
        "update": {
          "description": "Update operation: Update an existing campaign lifecycle goal. The campaign field should not be set for this operation.",
          "$ref": "GoogleAdsSearchads360V23Resources__CampaignLifecycleGoal"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__CampaignLifecycleGoalOperation",
      "description": "A single operation on a campaign lifecycle goal."
    },
    "GoogleAdsSearchads360V23Resources_Recommendation_LowerTargetRoasRecommendation": {
      "properties": {
        "targetAdjustment": {
          "description": "Output only. The relevant information describing the recommended target adjustment.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_TargetAdjustmentInfo",
          "readOnly": true
        }
      },
      "id": "GoogleAdsSearchads360V23Resources_Recommendation_LowerTargetRoasRecommendation",
      "description": "Recommendation to lower Target ROAS.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources__CampaignSearchTermView": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__CampaignSearchTermView",
      "description": "This report provides granular performance data, including cost metrics, for each individual search term that triggered your ads. If keyword-related segments are used, Performance Max data will be excluded from the results.",
      "properties": {
        "campaign": {
          "description": "Output only. The campaign the search term served in.",
          "type": "string",
          "readOnly": true
        },
        "resourceName": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The resource name of the campaign search term view. Campaign search term view resource names have the form: `customers/{customer_id}/campaignSearchTermViews/{campaign_id}~{URL-base64_search_term}`"
        },
        "searchTerm": {
          "type": "string",
          "description": "Output only. The search term.",
          "readOnly": true
        }
      }
    },
    "GoogleAdsSearchads360V23Common__BusinessProfileBusinessNameFilter": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__BusinessProfileBusinessNameFilter",
      "description": "Business Profile location group business name filter.",
      "properties": {
        "filterType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The filter will use exact string matching."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "EXACT"
          ],
          "description": "The type of string matching to use when filtering with business_name."
        },
        "businessName": {
          "description": "Business name string to use for filtering.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__CustomerAssetSet": {
      "id": "GoogleAdsSearchads360V23Resources__CustomerAssetSet",
      "description": "CustomerAssetSet is the linkage between a customer and an asset set. Adding a CustomerAssetSet links an asset set with a customer.",
      "type": "object",
      "properties": {
        "customer": {
          "type": "string",
          "description": "Immutable. The customer to which this asset set is linked."
        },
        "assetSet": {
          "type": "string",
          "description": "Immutable. The asset set which is linked to the customer."
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the customer asset set. Asset set asset resource names have the form: `customers/{customer_id}/customerAssetSets/{asset_set_id}`"
        },
        "status": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ],
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "The status has not been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The linkage between asset set and its container is enabled.",
            "The linkage between asset set and its container is removed."
          ],
          "description": "Output only. The status of the customer asset set asset. Read-only."
        }
      }
    },
    "GoogleAdsSearchads360V23Common_PolicyTopicEvidence_TextList": {
      "properties": {
        "texts": {
          "description": "The fragments of text from the resource that caused the policy finding.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common_PolicyTopicEvidence_TextList",
      "description": "A list of fragments of text that violated a policy."
    },
    "GoogleAdsSearchads360V23Services__MutateCampaignLabelsRequest": {
      "properties": {
        "operations": {
          "description": "Required. The list of operations to perform on campaign-label relationships.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__CampaignLabelOperation"
          }
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        }
      },
      "id": "GoogleAdsSearchads360V23Services__MutateCampaignLabelsRequest",
      "description": "Request message for CampaignLabelService.MutateCampaignLabels.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__LocalAdInfo": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__LocalAdInfo",
      "description": "A local ad.",
      "properties": {
        "callToActions": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AdTextAsset"
          },
          "description": "List of text assets for call-to-actions. When the ad serves the call-to-actions will be selected from this list. At least 1 and at most 5 call-to-actions must be specified."
        },
        "logoImages": {
          "description": "List of logo image assets that may be displayed with the ad. The images must be 128x128 pixels and not larger than 120KB. At least 1 and at most 5 image assets must be specified.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AdImageAsset"
          }
        },
        "path1": {
          "description": "First part of optional text that can be appended to the URL in the ad.",
          "type": "string"
        },
        "headlines": {
          "description": "List of text assets for headlines. When the ad serves the headlines will be selected from this list. At least 1 and at most 5 headlines must be specified.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AdTextAsset"
          }
        },
        "path2": {
          "description": "Second part of optional text that can be appended to the URL in the ad. This field can only be set when `path1` is also set.",
          "type": "string"
        },
        "marketingImages": {
          "description": "List of marketing image assets that may be displayed with the ad. The images must be 314x600 pixels or 320x320 pixels. At least 1 and at most 20 image assets must be specified.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AdImageAsset"
          }
        },
        "descriptions": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AdTextAsset"
          },
          "description": "List of text assets for descriptions. When the ad serves the descriptions will be selected from this list. At least 1 and at most 5 descriptions must be specified."
        },
        "videos": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AdVideoAsset"
          },
          "description": "List of YouTube video assets that may be displayed with the ad. At least 1 and at most 20 video assets must be specified."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__ProductGroupingInfo": {
      "id": "GoogleAdsSearchads360V23Common__ProductGroupingInfo",
      "description": "Grouping of a product offer. This listing dimension is deprecated and it is supported only in Display campaigns.",
      "type": "object",
      "properties": {
        "value": {
          "type": "string",
          "description": "String value of the product grouping."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__UnifiedLocationAsset": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__UnifiedLocationAsset",
      "description": "A unified location asset.",
      "properties": {
        "placeId": {
          "description": "Place IDs uniquely identify a place in the Google Places database and on Google Maps. This field is unique for a given customer ID and asset type. See https://developers.google.com/places/web-service/place-id to learn more about Place ID.",
          "type": "string"
        },
        "businessProfileLocations": {
          "description": "The list of business locations for the customer. This will only be returned if the Location Asset is syncing from the Business Profile account. It is possible to have multiple Business Profile listings under the same account that point to the same Place ID.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__BusinessProfileLocation"
          }
        },
        "locationOwnershipType": {
          "description": "The type of location ownership. If the type is BUSINESS_OWNER, it will be served as a location extension. If the type is AFFILIATE, it will be served as an affiliate location.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Business Owner of location(legacy location extension - LE).",
            "Affiliate location(Third party location extension - ALE)."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BUSINESS_OWNER",
            "AFFILIATE"
          ]
        }
      }
    },
    "GoogleAdsSearchads360V23Common__AudienceDimension": {
      "properties": {
        "age": {
          "description": "Dimension specifying users by their age.",
          "$ref": "GoogleAdsSearchads360V23Common__AgeDimension"
        },
        "parentalStatus": {
          "description": "Dimension specifying users by their parental status.",
          "$ref": "GoogleAdsSearchads360V23Common__ParentalStatusDimension"
        },
        "householdIncome": {
          "description": "Dimension specifying users by their household income.",
          "$ref": "GoogleAdsSearchads360V23Common__HouseholdIncomeDimension"
        },
        "audienceSegments": {
          "description": "Dimension specifying users by their membership in other audience segments.",
          "$ref": "GoogleAdsSearchads360V23Common__AudienceSegmentDimension"
        },
        "gender": {
          "description": "Dimension specifying users by their gender.",
          "$ref": "GoogleAdsSearchads360V23Common__GenderDimension"
        }
      },
      "id": "GoogleAdsSearchads360V23Common__AudienceDimension",
      "description": "Positive dimension specifying user's audience.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__PolicyTopicConstraint": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__PolicyTopicConstraint",
      "description": "Describes the effect on serving that a policy topic entry will have.",
      "properties": {
        "resellerConstraint": {
          "description": "Reseller constraint.",
          "$ref": "GoogleAdsSearchads360V23Common_PolicyTopicConstraint_ResellerConstraint"
        },
        "certificateMissingInCountryList": {
          "description": "Countries where a certificate is required for serving.",
          "$ref": "GoogleAdsSearchads360V23Common_PolicyTopicConstraint_CountryConstraintList"
        },
        "certificateDomainMismatchInCountryList": {
          "description": "Countries where the resource's domain is not covered by the certificates associated with it.",
          "$ref": "GoogleAdsSearchads360V23Common_PolicyTopicConstraint_CountryConstraintList"
        },
        "countryConstraintList": {
          "description": "Countries where the resource cannot serve.",
          "$ref": "GoogleAdsSearchads360V23Common_PolicyTopicConstraint_CountryConstraintList"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateCustomerConversionGoalResult": {
      "id": "GoogleAdsSearchads360V23Services__MutateCustomerConversionGoalResult",
      "description": "The result for the customer conversion goal mutate.",
      "type": "object",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateAdGroupAssetsResponse": {
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateAdGroupAssetResult"
          },
          "description": "All results for the mutate."
        }
      },
      "id": "GoogleAdsSearchads360V23Services__MutateAdGroupAssetsResponse",
      "description": "Response message for an ad group asset mutate.",
      "type": "object"
    },
    "GoogleAdsSearchads360V0Errors__ErrorDetails": {
      "id": "GoogleAdsSearchads360V0Errors__ErrorDetails",
      "description": "Additional error details.",
      "type": "object",
      "properties": {
        "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"
        },
        "quotaErrorDetails": {
          "description": "Details on the quota error, including the scope (account or developer), the rate bucket name and the retry delay.",
          "$ref": "GoogleAdsSearchads360V0Errors__QuotaErrorDetails"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__BusinessMessageCallToActionInfo": {
      "properties": {
        "callToActionSelection": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Apply now.",
            "Book now.",
            "Contact us.",
            "Get info.",
            "Get offer.",
            "Get quote.",
            "Get started.",
            "Learn more."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "APPLY_NOW",
            "BOOK_NOW",
            "CONTACT_US",
            "GET_INFO",
            "GET_OFFER",
            "GET_QUOTE",
            "GET_STARTED",
            "LEARN_MORE"
          ],
          "description": "Required. Pre-defined call to action text."
        },
        "callToActionDescription": {
          "type": "string",
          "description": "Required. Text providing a clear value proposition of what users expect once they take the action. Examples: 'Message us for a quote', 'Ask our expert team'."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__BusinessMessageCallToActionInfo",
      "description": "Display information that encourages the user to take action."
    },
    "GoogleAdsSearchads360V23Resources__BiddingStrategy": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__BiddingStrategy",
      "description": "A bidding strategy.",
      "properties": {
        "id": {
          "readOnly": true,
          "description": "Output only. The ID of the bidding strategy.",
          "type": "string",
          "format": "int64"
        },
        "alignedCampaignBudgetId": {
          "type": "string",
          "format": "int64",
          "description": "ID of the campaign budget that this portfolio bidding strategy is aligned with. When a portfolio and a campaign budget are aligned, that means that they are attached to the same set of campaigns. After a bidding strategy is aligned with a campaign budget, campaigns that are added to the bidding strategy must also use the aligned campaign budget."
        },
        "type": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Commission is an automatic bidding strategy in which the advertiser pays a certain portion of the conversion value.",
            "Enhanced CPC is a bidding strategy that raises bids for clicks that seem more likely to lead to a conversion and lowers them for clicks where they seem less likely.",
            "Used for return value only. Indicates that a campaign does not have a bidding strategy. This prevents the campaign from serving. For example, a campaign may be attached to a manager bidding strategy and the serving account is subsequently unlinked from the manager account. In this case the campaign will automatically be detached from the now inaccessible manager bidding strategy and transition to the INVALID bidding strategy type.",
            "Manual bidding strategy that allows advertiser to set the bid per advertiser-specified action.",
            "Manual click based bidding where user pays per click.",
            "Manual impression based bidding where user pays per thousand impressions.",
            "A bidding strategy that pays a configurable amount per video view.",
            "A bidding strategy that automatically maximizes number of conversions given a daily budget.",
            "An automated bidding strategy that automatically sets bids to maximize revenue while spending your budget.",
            "Page-One Promoted bidding scheme, which sets max cpc bids to target impressions on page one or page one promoted slots on google.com. This enum value is deprecated.",
            "Percent Cpc is bidding strategy where bids are a fraction of the advertised price for some good or service.",
            "Target CPA is an automated bid strategy that sets bids to help get as many conversions as possible at the target cost-per-acquisition (CPA) you set.",
            "Target CPC is an automated bid strategy that sets bids to help get as many clicks as possible at the target cost-per-click (CPC) you set.",
            "Target CPM is an automated bid strategy that sets bids to help get as many impressions as possible at the target cost per one thousand impressions (CPM) you set.",
            "An automated bidding strategy that sets bids so that a certain percentage of search ads are shown at the top of the first page (or other targeted location).",
            "Target Outrank Share is an automated bidding strategy that sets bids based on the target fraction of auctions where the advertiser should outrank a specific competitor. This enum value is deprecated.",
            "Target ROAS is an automated bidding strategy that helps you maximize revenue while averaging a specific target Return On Average Spend (ROAS).",
            "Target Spend is an automated bid strategy that sets your bids to help get as many clicks as possible within your budget."
          ],
          "description": "Output only. The type of the bidding strategy. Create a bidding strategy by setting the bidding scheme. This field is read-only.",
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "COMMISSION",
            "ENHANCED_CPC",
            "INVALID",
            "MANUAL_CPA",
            "MANUAL_CPC",
            "MANUAL_CPM",
            "MANUAL_CPV",
            "MAXIMIZE_CONVERSIONS",
            "MAXIMIZE_CONVERSION_VALUE",
            "PAGE_ONE_PROMOTED",
            "PERCENT_CPC",
            "TARGET_CPA",
            "TARGET_CPC",
            "TARGET_CPM",
            "TARGET_IMPRESSION_SHARE",
            "TARGET_OUTRANK_SHARE",
            "TARGET_ROAS",
            "TARGET_SPEND"
          ]
        },
        "nonRemovedCampaignCount": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. The number of non-removed campaigns attached to this bidding strategy. This field is read-only."
        },
        "targetRoas": {
          "description": "A bidding strategy that helps you maximize revenue while averaging a specific target Return On Ad Spend (ROAS).",
          "$ref": "GoogleAdsSearchads360V23Common__TargetRoas"
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the bidding strategy. Bidding strategy resource names have the form: `customers/{customer_id}/biddingStrategies/{bidding_strategy_id}`"
        },
        "maximizeConversionValue": {
          "description": "An automated bidding strategy to help get the most conversion value for your campaigns while spending your budget.",
          "$ref": "GoogleAdsSearchads360V23Common__MaximizeConversionValue"
        },
        "currencyCode": {
          "description": "Immutable. The currency used by the bidding strategy (ISO 4217 three-letter code). For bidding strategies in manager customers, this currency can be set on creation and defaults to the manager customer's currency. For serving customers, this field cannot be set; all strategies in a serving customer implicitly use the serving customer's currency. In all cases the effective_currency_code field returns the currency used by the strategy.",
          "type": "string"
        },
        "name": {
          "description": "The name of the bidding strategy. All bidding strategies within an account must be named distinctly. The length of this string should be between 1 and 255, inclusive, in UTF-8 bytes, (trimmed).",
          "type": "string"
        },
        "campaignCount": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. The number of campaigns attached to this bidding strategy. This field is read-only."
        },
        "targetSpend": {
          "description": "A bid strategy that sets your bids to help get as many clicks as possible within your budget.",
          "$ref": "GoogleAdsSearchads360V23Common__TargetSpend"
        },
        "maximizeConversions": {
          "description": "An automated bidding strategy to help get the most conversions for your campaigns while spending your budget.",
          "$ref": "GoogleAdsSearchads360V23Common__MaximizeConversions"
        },
        "targetImpressionShare": {
          "description": "A bidding strategy that automatically optimizes towards a chosen percentage of impressions.",
          "$ref": "GoogleAdsSearchads360V23Common__TargetImpressionShare"
        },
        "enhancedCpc": {
          "description": "A bidding strategy that raises bids for clicks that seem more likely to lead to a conversion and lowers them for clicks where they seem less likely.",
          "$ref": "GoogleAdsSearchads360V23Common__EnhancedCpc"
        },
        "effectiveCurrencyCode": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The currency used by the bidding strategy (ISO 4217 three-letter code). For bidding strategies in manager customers, this is the currency set by the advertiser when creating the strategy. For serving customers, this is the customer's currency_code. Bidding strategy metrics are reported in this currency. This field is read-only."
        },
        "status": {
          "description": "Output only. The status of the bidding strategy. This field is read-only.",
          "type": "string",
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The bidding strategy is enabled.",
            "The bidding strategy is removed."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ],
          "readOnly": true
        },
        "targetCpa": {
          "description": "A bidding strategy that sets bids to help get as many conversions as possible at the target cost-per-acquisition (CPA) you set.",
          "$ref": "GoogleAdsSearchads360V23Common__TargetCpa"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__MobileAppCategoryConstant": {
      "properties": {
        "id": {
          "type": "integer",
          "format": "int32",
          "description": "Output only. The ID of the mobile app category constant.",
          "readOnly": true
        },
        "name": {
          "type": "string",
          "description": "Output only. Mobile app category name.",
          "readOnly": true
        },
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the mobile app category constant. Mobile app category constant resource names have the form: `mobileAppCategoryConstants/{mobile_app_category_id}`",
          "readOnly": true
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__MobileAppCategoryConstant",
      "description": "A mobile application category constant.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__ListPaymentsAccountsResponse": {
      "properties": {
        "paymentsAccounts": {
          "description": "The list of accessible payments accounts.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Resources__PaymentsAccount"
          }
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__ListPaymentsAccountsResponse",
      "description": "Response message for PaymentsAccountService.ListPaymentsAccounts."
    },
    "GoogleAdsSearchads360V23Resources_Campaign_DemandGenCampaignSettings": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources_Campaign_DemandGenCampaignSettings",
      "description": "Settings for Demand Gen campaign.",
      "properties": {
        "upgradedTargeting": {
          "type": "boolean",
          "description": "Immutable. Specifies whether this campaign uses upgraded targeting options. When this field is set to `true`, you can use location and language targeting at the ad group level as opposed to the standard campaign-level targeting."
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__Audience": {
      "properties": {
        "name": {
          "description": "Name of the audience. It should be unique across all audiences within the account. It must have a minimum length of 1 and maximum length of 255. Required when scope is not set or is set to CUSTOMER. Cannot be set or updated when scope is ASSET_GROUP.",
          "type": "string"
        },
        "dimensions": {
          "description": "Positive dimensions specifying the audience composition.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AudienceDimension"
          }
        },
        "status": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ],
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Enabled status - audience is enabled and can be targeted.",
            "Removed status - audience is removed and cannot be used for targeting."
          ],
          "description": "Output only. Status of this audience. Indicates whether the audience is enabled or removed."
        },
        "scope": {
          "type": "string",
          "enumDescriptions": [
            "The scope has not been specified.",
            "The received value is not known in this version.",
            "The audience is scoped at the customer level.",
            "The audience is scoped under a specific AssetGroup."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CUSTOMER",
            "ASSET_GROUP"
          ],
          "description": "Defines the scope this audience can be used in. By default, the scope is CUSTOMER. Audiences can be created with a scope of ASSET_GROUP for exclusive use by a single asset_group. Scope may change from ASSET_GROUP to CUSTOMER but not from CUSTOMER to ASSET_GROUP."
        },
        "resourceName": {
          "description": "Immutable. The resource name of the audience. Audience names have the form: `customers/{customer_id}/audiences/{audience_id}`",
          "type": "string"
        },
        "description": {
          "type": "string",
          "description": "Description of this audience."
        },
        "assetGroup": {
          "type": "string",
          "description": "Immutable. The asset group that this audience is scoped under. Must be set if and only if scope is ASSET_GROUP. Immutable after creation. If an audience with ASSET_GROUP scope is upgraded to CUSTOMER scope, this field will automatically be cleared."
        },
        "exclusionDimension": {
          "description": "Negative dimension specifying the audience composition.",
          "$ref": "GoogleAdsSearchads360V23Common__AudienceExclusionDimension"
        },
        "id": {
          "type": "string",
          "format": "int64",
          "description": "Output only. ID of the audience.",
          "readOnly": true
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__Audience",
      "description": "Audience is an effective targeting option that lets you intersect different segment attributes, such as detailed demographics and affinities, to create audiences that represent sections of your target segments."
    },
    "GoogleAdsSearchads360V23Common__YoutubeVideoAsset": {
      "properties": {
        "youtubeVideoTitle": {
          "type": "string",
          "description": "YouTube video title."
        },
        "youtubeVideoId": {
          "description": "YouTube video id. This is the 11 character string value used in the YouTube video URL.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__YoutubeVideoAsset",
      "description": "A YouTube asset."
    },
    "GoogleAdsSearchads360V23Errors__QuotaErrorDetails": {
      "id": "GoogleAdsSearchads360V23Errors__QuotaErrorDetails",
      "description": "Additional quota error details when there is QuotaError.",
      "type": "object",
      "properties": {
        "rateScope": {
          "description": "The rate scope of the quota limit.",
          "type": "string",
          "enumDescriptions": [
            "Unspecified enum",
            "Used for return value only. Represents value unknown in this version.",
            "Per customer account quota",
            "Per project quota"
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ACCOUNT",
            "DEVELOPER"
          ]
        },
        "retryDelay": {
          "description": "Backoff period that customers should wait before sending next request.",
          "type": "string",
          "format": "google-duration"
        },
        "rateName": {
          "type": "string",
          "description": "The high level description of the quota bucket. Examples are \"Get requests for standard access\" or \"Requests per account\"."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateCustomConversionGoalResult": {
      "id": "GoogleAdsSearchads360V23Services__MutateCustomConversionGoalResult",
      "description": "The result for the custom conversion goal mutate.",
      "type": "object",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        },
        "customConversionGoal": {
          "description": "The mutated CustomConversionGoal with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsSearchads360V23Resources__CustomConversionGoal"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources_Recommendation_ForecastingSetTargetRoasRecommendation": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources_Recommendation_ForecastingSetTargetRoasRecommendation",
      "description": "The forecasting set target ROAS recommendation.",
      "properties": {
        "recommendedTargetRoas": {
          "description": "Output only. The recommended target ROAS (revenue per unit of spend). The value is between 0.01 and 1000.0, inclusive.",
          "type": "number",
          "format": "double",
          "readOnly": true
        },
        "campaignBudget": {
          "readOnly": true,
          "description": "Output only. The campaign budget.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_CampaignBudget"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__ListPlannableProductsResponse": {
      "properties": {
        "productMetadata": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__ProductMetadata"
          },
          "description": "The list of products available for planning and related targeting metadata."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__ListPlannableProductsResponse",
      "description": "A response with all available products."
    },
    "GoogleAdsSearchads360V23Common__CustomParameter": {
      "properties": {
        "key": {
          "description": "The key matching the parameter tag name.",
          "type": "string"
        },
        "value": {
          "description": "The value to be substituted.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__CustomParameter",
      "description": "A mapping that can be used by custom parameter tags in a `tracking_url_template`, `final_urls`, or `mobile_final_urls`."
    },
    "GoogleAdsSearchads360V23Resources_Campaign_AiMaxSetting": {
      "properties": {
        "enableAiMax": {
          "type": "boolean",
          "description": "Controls whether or not AI Max features are served for this campaign. Individual AI Max features are enabled or disabled by their respective settings. But if enable_ai_max is set to false or cleared, then no AI Max features will serve for this campaign, regardless of the other settings. Search Term Matching is enabled by default when AI Max is enabled, and can be disabled at the ad group level."
        },
        "bundlingRequired": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NOT_REQUIRED",
            "REQUIRED"
          ],
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Search campaign is using text asset automation or brand list targeting, and AI Max is not required to be enabled to serve these features.",
            "AI Max is required to be enabled for this search campaign to serve existing text asset automation and brand list targeting, or to add new text asset automation and brand list targeting settings."
          ],
          "description": "Output only. Indicates whether a search campaign has adopted AI Max before, and is required to have AI Max enabled to adopt campaign-level text asset automation and brand list targeting in all API versions."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources_Campaign_AiMaxSetting",
      "description": "Settings for AI Max in search campaigns."
    },
    "GoogleAdsSearchads360V23Services__SurfaceTargetingCombinations": {
      "properties": {
        "defaultTargeting": {
          "description": "Default surface targeting applied to the ad product.",
          "$ref": "GoogleAdsSearchads360V23Services__SurfaceTargeting"
        },
        "availableTargetingCombinations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__SurfaceTargeting"
          },
          "description": "Available surface target combinations for the ad product."
        }
      },
      "id": "GoogleAdsSearchads360V23Services__SurfaceTargetingCombinations",
      "description": "The surface targeting combinations available for an ad product.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources__CurrencyConstant": {
      "properties": {
        "code": {
          "readOnly": true,
          "description": "Output only. ISO 4217 three-letter currency code, for example, \"USD\"",
          "type": "string"
        },
        "resourceName": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The resource name of the currency constant. Currency constant resource names have the form: `currencyConstants/{code}`"
        },
        "symbol": {
          "type": "string",
          "description": "Output only. Standard symbol for describing this currency, for example, '$' for US Dollars.",
          "readOnly": true
        },
        "billableUnitMicros": {
          "description": "Output only. The billable unit for this currency. Billed amounts should be multiples of this value.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        },
        "name": {
          "description": "Output only. Full English name of the currency.",
          "type": "string",
          "readOnly": true
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__CurrencyConstant",
      "description": "A currency constant.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources__TopicView": {
      "id": "GoogleAdsSearchads360V23Resources__TopicView",
      "description": "A topic view.",
      "type": "object",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the topic view. Topic view resource names have the form: `customers/{customer_id}/topicViews/{ad_group_id}~{criterion_id}`",
          "readOnly": true
        }
      }
    },
    "GoogleAdsSearchads360V23Common__LocationAttributeMetadata": {
      "properties": {
        "countryLocation": {
          "description": "The country location that this attribute’s sub country location is located in.",
          "$ref": "GoogleAdsSearchads360V23Common__LocationInfo"
        }
      },
      "id": "GoogleAdsSearchads360V23Common__LocationAttributeMetadata",
      "description": "Metadata associated with a Location attribute.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__ProductFilter": {
      "id": "GoogleAdsSearchads360V23Services__ProductFilter",
      "description": "The type and list of products to aggregate benchmarks metrics over.",
      "type": "object",
      "properties": {
        "productList": {
          "description": "The list of products.",
          "$ref": "GoogleAdsSearchads360V23Services_ProductFilter_ProductList"
        },
        "marketingObjectiveList": {
          "description": "The list of marketing goals. Marketing objective is a broader product classification of products.",
          "$ref": "GoogleAdsSearchads360V23Services_ProductFilter_MarketingObjectiveList"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateCustomerCustomizersRequest": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateCustomerCustomizersRequest",
      "description": "Request message for CustomerCustomizerService.MutateCustomerCustomizers.",
      "properties": {
        "responseContentType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation."
        },
        "operations": {
          "description": "Required. The list of operations to perform on individual customer customizers.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__CustomerCustomizerOperation"
          }
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__LifeEventInfo": {
      "properties": {
        "lifeEventId": {
          "description": "Taxonomy id of the life event.",
          "type": "string",
          "format": "int64"
        }
      },
      "id": "GoogleAdsSearchads360V23Common__LifeEventInfo",
      "description": "Represents a life event criterion.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources_Recommendation_RefreshCustomerMatchListRecommendation": {
      "properties": {
        "targetingAccountsCount": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. User lists can be shared with other accounts by the owner. targeting_accounts_count is the number of those accounts that can use it for targeting."
        },
        "userListId": {
          "description": "Output only. The user list ID.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        },
        "topSpendingAccount": {
          "readOnly": true,
          "description": "Output only. The top spending account.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_AccountInfo"
          }
        },
        "daysSinceLastRefresh": {
          "readOnly": true,
          "description": "Output only. Days since last refresh.",
          "type": "string",
          "format": "int64"
        },
        "userListName": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The name of the list."
        },
        "ownerAccount": {
          "readOnly": true,
          "description": "Output only. The owner account. This is the account that should update the customer list.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_AccountInfo"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources_Recommendation_RefreshCustomerMatchListRecommendation",
      "description": "The recommendation to update a customer list that hasn't been updated in the last 90 days. The customer receiving the recommendation is not necessarily the owner account. The owner account should update the customer list."
    },
    "GoogleAdsSearchads360V23Services__MutateCustomerUserAccessInvitationResponse": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateCustomerUserAccessInvitationResponse",
      "description": "Response message for access invitation mutate.",
      "properties": {
        "result": {
          "description": "Result for the mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateCustomerUserAccessInvitationResult"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__CampaignDraftOperation": {
      "properties": {
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "type": "string",
          "format": "google-fieldmask"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new campaign draft.",
          "$ref": "GoogleAdsSearchads360V23Resources__CampaignDraft"
        },
        "update": {
          "description": "Update operation: The campaign draft is expected to have a valid resource name.",
          "$ref": "GoogleAdsSearchads360V23Resources__CampaignDraft"
        },
        "remove": {
          "description": "Remove operation: The campaign draft is expected to have a valid resource name, in this format: `customers/{customer_id}/campaignDrafts/{base_campaign_id}~{draft_id}`",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__CampaignDraftOperation",
      "description": "A single operation (create, update, remove) on a campaign draft."
    },
    "GoogleAdsSearchads360V23Resources__ConversionValueRule": {
      "properties": {
        "itineraryCondition": {
          "description": "Condition for itinerary that must be satisfied for the value rule to apply.",
          "$ref": "GoogleAdsSearchads360V23Resources_ConversionValueRule_ValueRuleItineraryCondition"
        },
        "action": {
          "description": "Action applied when the rule is triggered.",
          "$ref": "GoogleAdsSearchads360V23Resources_ConversionValueRule_ValueRuleAction"
        },
        "geoLocationCondition": {
          "description": "Condition for Geo location that must be satisfied for the value rule to apply.",
          "$ref": "GoogleAdsSearchads360V23Resources_ConversionValueRule_ValueRuleGeoLocationCondition"
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the conversion value rule. Conversion value rule resource names have the form: `customers/{customer_id}/conversionValueRules/{conversion_value_rule_id}`"
        },
        "audienceCondition": {
          "description": "Condition for audience that must be satisfied for the value rule to apply.",
          "$ref": "GoogleAdsSearchads360V23Resources_ConversionValueRule_ValueRuleAudienceCondition"
        },
        "ownerCustomer": {
          "description": "Output only. The resource name of the conversion value rule's owner customer. When the value rule is inherited from a manager customer, owner_customer will be the resource name of the manager whereas the customer in the resource_name will be of the requesting serving customer. ** Read-only **",
          "type": "string",
          "readOnly": true
        },
        "id": {
          "readOnly": true,
          "description": "Output only. The ID of the conversion value rule.",
          "type": "string",
          "format": "int64"
        },
        "status": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Conversion Value Rule is enabled and can be applied.",
            "Conversion Value Rule is permanently deleted and can't be applied.",
            "Conversion Value Rule is paused, but can be re-enabled."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED",
            "PAUSED"
          ],
          "description": "The status of the conversion value rule."
        },
        "deviceCondition": {
          "description": "Condition for device type that must be satisfied for the value rule to apply.",
          "$ref": "GoogleAdsSearchads360V23Resources_ConversionValueRule_ValueRuleDeviceCondition"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__ConversionValueRule",
      "description": "A conversion value rule"
    },
    "GoogleAdsSearchads360V23Common__HotelCheckInDateRangeInfo": {
      "properties": {
        "startDate": {
          "type": "string",
          "description": "Start date in the YYYY-MM-DD format."
        },
        "endDate": {
          "description": "End date in the YYYY-MM-DD format.",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V23Common__HotelCheckInDateRangeInfo",
      "description": "Criterion for a check-in date range.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Errors__ErrorDetails": {
      "id": "GoogleAdsSearchads360V23Errors__ErrorDetails",
      "description": "Additional error details.",
      "type": "object",
      "properties": {
        "policyFindingDetails": {
          "description": "Describes policy violation findings.",
          "$ref": "GoogleAdsSearchads360V23Errors__PolicyFindingDetails"
        },
        "budgetPerDayMinimumErrorDetails": {
          "description": "Details for a budget below per-day minimum error.",
          "$ref": "GoogleAdsSearchads360V23Errors__BudgetPerDayMinimumErrorDetails"
        },
        "resourceCountDetails": {
          "description": "Details for a resource count limit exceeded error.",
          "$ref": "GoogleAdsSearchads360V23Errors__ResourceCountDetails"
        },
        "unpublishedErrorCode": {
          "type": "string",
          "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."
        },
        "quotaErrorDetails": {
          "description": "Details on the quota error, including the scope (account or developer), the rate bucket name and the retry delay.",
          "$ref": "GoogleAdsSearchads360V23Errors__QuotaErrorDetails"
        },
        "policyViolationDetails": {
          "description": "Describes an ad policy violation.",
          "$ref": "GoogleAdsSearchads360V23Errors__PolicyViolationDetails"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__Metrics": {
      "properties": {
        "averageRateMetrics": {
          "description": "Average rate metrics calculated by dividing one metric by another.",
          "$ref": "GoogleAdsSearchads360V23Services__RateMetrics"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__Metrics",
      "description": "All metrics returned against a criteria."
    },
    "GoogleAdsSearchads360V23Services__AdGroupCustomizerOperation": {
      "properties": {
        "create": {
          "description": "Create operation: No resource name is expected for the new ad group customizer",
          "$ref": "GoogleAdsSearchads360V23Resources__AdGroupCustomizer"
        },
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed ad group customizer is expected, in this format: `customers/{customer_id}/adGroupCustomizers/{ad_group_id}~{customizer_attribute_id}`"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__AdGroupCustomizerOperation",
      "description": "A single operation (create, remove) on a customizer attribute.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateExperimentsResponse": {
      "id": "GoogleAdsSearchads360V23Services__MutateExperimentsResponse",
      "description": "Response message for experiment mutate.",
      "type": "object",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateExperimentResult"
          },
          "description": "All results for the mutate."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateAdGroupResult": {
      "properties": {
        "adGroup": {
          "description": "The mutated ad group with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsSearchads360V23Resources__AdGroup"
        },
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        }
      },
      "id": "GoogleAdsSearchads360V23Services__MutateAdGroupResult",
      "description": "The result for the ad group mutate.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateAdGroupCriterionCustomizersResponse": {
      "id": "GoogleAdsSearchads360V23Services__MutateAdGroupCriterionCustomizersResponse",
      "description": "Response message for an ad group criterion customizer mutate.",
      "type": "object",
      "properties": {
        "results": {
          "description": "All results for the mutate.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateAdGroupCriterionCustomizerResult"
          }
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources_ListingGroupFilterDimension_ProductItemId": {
      "id": "GoogleAdsSearchads360V23Resources_ListingGroupFilterDimension_ProductItemId",
      "description": "Item id of a product offer.",
      "type": "object",
      "properties": {
        "value": {
          "type": "string",
          "description": "Value of the id."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__ManualCpc": {
      "properties": {
        "enhancedCpcEnabled": {
          "description": "Whether bids are to be enhanced based on conversion optimizer data.",
          "type": "boolean"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__ManualCpc",
      "description": "Manual click-based bidding where user pays per click."
    },
    "GoogleAdsSearchads360V23Resources_ProductCategoryConstant_ProductCategoryLocalization": {
      "id": "GoogleAdsSearchads360V23Resources_ProductCategoryConstant_ProductCategoryLocalization",
      "description": "Localization for the product category.",
      "type": "object",
      "properties": {
        "regionCode": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Upper-case two-letter ISO 3166-1 country code of the localized category."
        },
        "value": {
          "type": "string",
          "description": "Output only. The name of the category in the specified locale.",
          "readOnly": true
        },
        "languageCode": {
          "readOnly": true,
          "description": "Output only. Two-letter ISO 639-1 language code of the localized category.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__Recommendation": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__Recommendation",
      "description": "A recommendation.",
      "properties": {
        "campaignBudget": {
          "type": "string",
          "description": "Output only. The budget targeted by this recommendation. This will be set only when the recommendation affects a single campaign budget. This field will be set for the following recommendation types: CAMPAIGN_BUDGET, FORECASTING_CAMPAIGN_BUDGET, MOVE_UNUSED_BUDGET",
          "readOnly": true
        },
        "shoppingAddProductsToCampaignRecommendation": {
          "description": "Output only. The shopping add products to campaign recommendation.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_ShoppingAddProductsToCampaignRecommendation",
          "readOnly": true
        },
        "lowerTargetRoasRecommendation": {
          "readOnly": true,
          "description": "Output only. Recommendation to lower Target ROAS.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_LowerTargetRoasRecommendation"
        },
        "shoppingAddSizeRecommendation": {
          "description": "Output only. The shopping add size recommendation.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_ShoppingOfferAttributeRecommendation",
          "readOnly": true
        },
        "responsiveSearchAdImproveAdStrengthRecommendation": {
          "description": "Output only. The responsive search ad improve ad strength recommendation.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_ResponsiveSearchAdImproveAdStrengthRecommendation",
          "readOnly": true
        },
        "sitelinkAssetRecommendation": {
          "readOnly": true,
          "description": "Output only. The sitelink asset recommendation.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_SitelinkAssetRecommendation"
        },
        "callAssetRecommendation": {
          "description": "Output only. The call asset recommendation.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_CallAssetRecommendation",
          "readOnly": true
        },
        "performanceMaxOptInRecommendation": {
          "readOnly": true,
          "description": "Output only. The Performance Max Opt In recommendation.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_PerformanceMaxOptInRecommendation"
        },
        "improvePerformanceMaxAdStrengthRecommendation": {
          "readOnly": true,
          "description": "Output only. The improve Performance Max ad strength recommendation.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_ImprovePerformanceMaxAdStrengthRecommendation"
        },
        "marginalRoiCampaignBudgetRecommendation": {
          "readOnly": true,
          "description": "Output only. The marginal ROI campaign budget recommendation.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_CampaignBudgetRecommendation"
        },
        "optimizeAdRotationRecommendation": {
          "description": "Output only. The Optimize Ad Rotation recommendation.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_OptimizeAdRotationRecommendation",
          "readOnly": true
        },
        "shoppingFixMerchantCenterAccountSuspensionWarningRecommendation": {
          "description": "Output only. The shopping fix Merchant Center account suspension warning recommendation.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_ShoppingMerchantCenterAccountSuspensionRecommendation",
          "readOnly": true
        },
        "setTargetRoasRecommendation": {
          "readOnly": true,
          "description": "Output only. The set target ROAS recommendation.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_ForecastingSetTargetRoasRecommendation"
        },
        "targetCpaOptInRecommendation": {
          "description": "Output only. The TargetCPA opt-in recommendation.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_TargetCpaOptInRecommendation",
          "readOnly": true
        },
        "shoppingAddAgeGroupRecommendation": {
          "readOnly": true,
          "description": "Output only. The shopping add age group recommendation.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_ShoppingOfferAttributeRecommendation"
        },
        "leadFormAssetRecommendation": {
          "description": "Output only. The lead form asset recommendation.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_LeadFormAssetRecommendation",
          "readOnly": true
        },
        "campaign": {
          "readOnly": true,
          "description": "Output only. The campaign targeted by this recommendation. This field will be set for the following recommendation types: CALL_EXTENSION, CALLOUT_EXTENSION, ENHANCED_CPC_OPT_IN, KEYWORD, KEYWORD_MATCH_TYPE, MAXIMIZE_CLICKS_OPT_IN, MAXIMIZE_CONVERSIONS_OPT_IN, OPTIMIZE_AD_ROTATION, SEARCH_PARTNERS_OPT_IN, SITELINK_EXTENSION, TARGET_CPA_OPT_IN, TARGET_ROAS_OPT_IN, TEXT_AD,",
          "type": "string"
        },
        "textAdRecommendation": {
          "description": "Output only. Add expanded text ad recommendation.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_TextAdRecommendation",
          "readOnly": true
        },
        "dynamicImageExtensionOptInRecommendation": {
          "description": "Output only. Recommendation to enable dynamic image extensions on the account, allowing Google to find the best images from ad landing pages and complement text ads.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_DynamicImageExtensionOptInRecommendation",
          "readOnly": true
        },
        "impact": {
          "readOnly": true,
          "description": "Output only. The impact on account performance as a result of applying the recommendation.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_RecommendationImpact"
        },
        "moveUnusedBudgetRecommendation": {
          "description": "Output only. The move unused budget recommendation.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_MoveUnusedBudgetRecommendation",
          "readOnly": true
        },
        "adGroup": {
          "readOnly": true,
          "description": "Output only. The ad group targeted by this recommendation. This will be set only when the recommendation affects a single ad group. This field will be set for the following recommendation types: KEYWORD, OPTIMIZE_AD_ROTATION, TEXT_AD",
          "type": "string"
        },
        "maximizeConversionsOptInRecommendation": {
          "description": "Output only. The MaximizeConversions Opt-In recommendation.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_MaximizeConversionsOptInRecommendation",
          "readOnly": true
        },
        "performanceMaxFinalUrlOptInRecommendation": {
          "description": "Output only. Recommendation to turn on Final URL expansion for your Performance Max campaigns.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_PerformanceMaxFinalUrlOptInRecommendation",
          "readOnly": true
        },
        "targetRoasOptInRecommendation": {
          "description": "Output only. The Target ROAS opt-in recommendation.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_TargetRoasOptInRecommendation",
          "readOnly": true
        },
        "campaignBudgetRecommendation": {
          "readOnly": true,
          "description": "Output only. The campaign budget recommendation.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_CampaignBudgetRecommendation"
        },
        "setTargetCpaRecommendation": {
          "readOnly": true,
          "description": "Output only. The set target CPA recommendation.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_ForecastingSetTargetCpaRecommendation"
        },
        "shoppingAddMoreIdentifiersRecommendation": {
          "description": "Output only. The shopping add more identifiers recommendation.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_ShoppingOfferAttributeRecommendation",
          "readOnly": true
        },
        "keywordMatchTypeRecommendation": {
          "readOnly": true,
          "description": "Output only. The keyword match type recommendation.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_KeywordMatchTypeRecommendation"
        },
        "forecastingSetTargetCpaRecommendation": {
          "description": "Output only. The forecasting set target CPA recommendation.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_ForecastingSetTargetCpaRecommendation",
          "readOnly": true
        },
        "useBroadMatchKeywordRecommendation": {
          "description": "Output only. The use broad match keyword recommendation.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_UseBroadMatchKeywordRecommendation",
          "readOnly": true
        },
        "responsiveSearchAdAssetRecommendation": {
          "description": "Output only. The responsive search ad asset recommendation.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_ResponsiveSearchAdAssetRecommendation",
          "readOnly": true
        },
        "improveGoogleTagCoverageRecommendation": {
          "readOnly": true,
          "description": "Output only. Recommendation to deploy Google Tag on more pages.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_ImproveGoogleTagCoverageRecommendation"
        },
        "type": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Provides optimized budget recommendations for campaigns.",
            "Keyword recommendation.",
            "Recommendation to add a new text ad.",
            "Recommendation to update a campaign to use a Target CPA bidding strategy.",
            "Recommendation to update a campaign to use the Maximize Conversions bidding strategy.",
            "Recommendation to enable Enhanced Cost Per Click for a campaign.",
            "Recommendation to start showing your campaign's ads on Google Search Partners Websites.",
            "Recommendation to update a campaign to use a Maximize Clicks bidding strategy.",
            "Recommendation to start using the \"Optimize\" ad rotation setting for the given ad group.",
            "Recommendation to change an existing keyword from one match type to a broader match type.",
            "Recommendation to move unused budget from one budget to a constrained budget.",
            "Budget recommendation for campaigns that are expected to become budget-constrained in the future (as opposed to the CAMPAIGN_BUDGET recommendation, which applies to campaigns that are currently budget-constrained).",
            "Recommendation to update a campaign to use a Target ROAS bidding strategy.",
            "Recommendation to add a new responsive search ad.",
            "Budget recommendation for campaigns whose ROI is predicted to increase with a budget adjustment.",
            "Recommendation to add broad match versions of keywords for fully automated conversion-based bidding campaigns.",
            "Recommendation to add new responsive search ad assets.",
            "Recommendation to upgrade a Smart Shopping campaign to a Performance Max campaign.",
            "Recommendation to improve strength of responsive search ad.",
            "Recommendation to update a campaign to use Display Expansion.",
            "Recommendation to upgrade a Local campaign to a Performance Max campaign.",
            "Recommendation to raise target CPA when it is too low and there are very few or no conversions. It is applied asynchronously and can take minutes depending on the number of ad groups there are in the related campaign.",
            "Recommendation to raise the budget in advance of a seasonal event that is forecasted to increase traffic, and change bidding strategy from maximize conversion value to target ROAS.",
            "Recommendation to add callout assets to campaign or customer level.",
            "Recommendation to add sitelink assets to campaign or customer level.",
            "Recommendation to add call assets to campaign or customer level.",
            "Recommendation to add the age group attribute to offers that are demoted because of a missing age group.",
            "Recommendation to add a color to offers that are demoted because of a missing color.",
            "Recommendation to add a gender to offers that are demoted because of a missing gender.",
            "Recommendation to add a GTIN (Global Trade Item Number) to offers that are demoted because of a missing GTIN.",
            "Recommendation to add more identifiers to offers that are demoted because of missing identifiers.",
            "Recommendation to add the size to offers that are demoted because of a missing size.",
            "Recommendation informing a customer about a campaign that cannot serve because no products are being targeted.",
            "The shopping recommendation informing a customer about campaign with a high percentage of disapproved products.",
            "Recommendation to create a catch-all campaign that targets all offers.",
            "Recommendation to fix Merchant Center account suspension issues.",
            "Recommendation to fix Merchant Center account suspension warning issues.",
            "Recommendation to migrate offers targeted by Regular Shopping Campaigns to existing Performance Max campaigns.",
            "Recommendation to enable dynamic image extensions on the account, allowing Google to find the best images from ad landing pages and complement text ads.",
            "Recommendation to raise Target CPA based on Google predictions modeled from past conversions. It is applied asynchronously and can take minutes depending on the number of ad groups there are in the related campaign.",
            "Recommendation to lower Target ROAS.",
            "Recommendation to opt into Performance Max campaigns.",
            "Recommendation to improve the asset group strength of a Performance Max campaign to an \"Excellent\" rating.",
            "Recommendation to migrate Dynamic Search Ads to Performance Max campaigns.",
            "Recommendation to set a target CPA for campaigns that do not have one specified, in advance of a seasonal event that is forecasted to increase traffic.",
            "Recommendation to set a target CPA for campaigns that do not have one specified.",
            "Recommendation to set a target ROAS for campaigns that do not have one specified.",
            "Recommendation to update a campaign to use the Maximize Conversion Value bidding strategy.",
            "Recommendation to deploy Google Tag on more pages.",
            "Recommendation to turn on Final URL expansion for your Performance Max campaigns.",
            "Recommendation to update a customer list that hasn't been updated in the last 90 days.",
            "Recommendation to create a custom audience.",
            "Recommendation to add lead form assets to campaign or customer level.",
            "Recommendation to improve the strength of ads in Demand Gen campaigns."
          ],
          "description": "Output only. The type of recommendation.",
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CAMPAIGN_BUDGET",
            "KEYWORD",
            "TEXT_AD",
            "TARGET_CPA_OPT_IN",
            "MAXIMIZE_CONVERSIONS_OPT_IN",
            "ENHANCED_CPC_OPT_IN",
            "SEARCH_PARTNERS_OPT_IN",
            "MAXIMIZE_CLICKS_OPT_IN",
            "OPTIMIZE_AD_ROTATION",
            "KEYWORD_MATCH_TYPE",
            "MOVE_UNUSED_BUDGET",
            "FORECASTING_CAMPAIGN_BUDGET",
            "TARGET_ROAS_OPT_IN",
            "RESPONSIVE_SEARCH_AD",
            "MARGINAL_ROI_CAMPAIGN_BUDGET",
            "USE_BROAD_MATCH_KEYWORD",
            "RESPONSIVE_SEARCH_AD_ASSET",
            "UPGRADE_SMART_SHOPPING_CAMPAIGN_TO_PERFORMANCE_MAX",
            "RESPONSIVE_SEARCH_AD_IMPROVE_AD_STRENGTH",
            "DISPLAY_EXPANSION_OPT_IN",
            "UPGRADE_LOCAL_CAMPAIGN_TO_PERFORMANCE_MAX",
            "RAISE_TARGET_CPA_BID_TOO_LOW",
            "FORECASTING_SET_TARGET_ROAS",
            "CALLOUT_ASSET",
            "SITELINK_ASSET",
            "CALL_ASSET",
            "SHOPPING_ADD_AGE_GROUP",
            "SHOPPING_ADD_COLOR",
            "SHOPPING_ADD_GENDER",
            "SHOPPING_ADD_GTIN",
            "SHOPPING_ADD_MORE_IDENTIFIERS",
            "SHOPPING_ADD_SIZE",
            "SHOPPING_ADD_PRODUCTS_TO_CAMPAIGN",
            "SHOPPING_FIX_DISAPPROVED_PRODUCTS",
            "SHOPPING_TARGET_ALL_OFFERS",
            "SHOPPING_FIX_SUSPENDED_MERCHANT_CENTER_ACCOUNT",
            "SHOPPING_FIX_MERCHANT_CENTER_ACCOUNT_SUSPENSION_WARNING",
            "SHOPPING_MIGRATE_REGULAR_SHOPPING_CAMPAIGN_OFFERS_TO_PERFORMANCE_MAX",
            "DYNAMIC_IMAGE_EXTENSION_OPT_IN",
            "RAISE_TARGET_CPA",
            "LOWER_TARGET_ROAS",
            "PERFORMANCE_MAX_OPT_IN",
            "IMPROVE_PERFORMANCE_MAX_AD_STRENGTH",
            "MIGRATE_DYNAMIC_SEARCH_ADS_CAMPAIGN_TO_PERFORMANCE_MAX",
            "FORECASTING_SET_TARGET_CPA",
            "SET_TARGET_CPA",
            "SET_TARGET_ROAS",
            "MAXIMIZE_CONVERSION_VALUE_OPT_IN",
            "IMPROVE_GOOGLE_TAG_COVERAGE",
            "PERFORMANCE_MAX_FINAL_URL_OPT_IN",
            "REFRESH_CUSTOMER_MATCH_LIST",
            "CUSTOM_AUDIENCE_OPT_IN",
            "LEAD_FORM_ASSET",
            "IMPROVE_DEMAND_GEN_AD_STRENGTH"
          ]
        },
        "searchPartnersOptInRecommendation": {
          "description": "Output only. The Search Partners Opt-In recommendation.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_SearchPartnersOptInRecommendation",
          "readOnly": true
        },
        "customAudienceOptInRecommendation": {
          "readOnly": true,
          "description": "Output only. The custom audience opt in recommendation.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_CustomAudienceOptInRecommendation"
        },
        "maximizeClicksOptInRecommendation": {
          "readOnly": true,
          "description": "Output only. The MaximizeClicks Opt-In recommendation.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_MaximizeClicksOptInRecommendation"
        },
        "shoppingAddGtinRecommendation": {
          "readOnly": true,
          "description": "Output only. The shopping add GTIN recommendation.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_ShoppingOfferAttributeRecommendation"
        },
        "enhancedCpcOptInRecommendation": {
          "readOnly": true,
          "description": "Output only. The Enhanced Cost-Per-Click Opt-In recommendation.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_EnhancedCpcOptInRecommendation"
        },
        "responsiveSearchAdRecommendation": {
          "description": "Output only. The add responsive search ad recommendation.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_ResponsiveSearchAdRecommendation",
          "readOnly": true
        },
        "shoppingMigrateRegularShoppingCampaignOffersToPerformanceMaxRecommendation": {
          "description": "Output only. The shopping migrate Regular Shopping Campaign offers to Performance Max recommendation.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_ShoppingMigrateRegularShoppingCampaignOffersToPerformanceMaxRecommendation",
          "readOnly": true
        },
        "shoppingAddGenderRecommendation": {
          "description": "Output only. The shopping add gender recommendation.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_ShoppingOfferAttributeRecommendation",
          "readOnly": true
        },
        "maximizeConversionValueOptInRecommendation": {
          "description": "Output only. The Maximize Conversion Value opt-in recommendation.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_MaximizeConversionValueOptInRecommendation",
          "readOnly": true
        },
        "upgradeSmartShoppingCampaignToPerformanceMaxRecommendation": {
          "description": "Output only. The upgrade a Smart Shopping campaign to a Performance Max campaign recommendation.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_UpgradeSmartShoppingCampaignToPerformanceMaxRecommendation",
          "readOnly": true
        },
        "shoppingAddColorRecommendation": {
          "readOnly": true,
          "description": "Output only. The shopping add color recommendation.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_ShoppingOfferAttributeRecommendation"
        },
        "refreshCustomerMatchListRecommendation": {
          "readOnly": true,
          "description": "Output only. The refresh customer list recommendation.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_RefreshCustomerMatchListRecommendation"
        },
        "raiseTargetCpaRecommendation": {
          "description": "Output only. Recommendation to raise Target CPA.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_RaiseTargetCpaRecommendation",
          "readOnly": true
        },
        "shoppingTargetAllOffersRecommendation": {
          "readOnly": true,
          "description": "Output only. The shopping target all offers recommendation.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_ShoppingTargetAllOffersRecommendation"
        },
        "resourceName": {
          "description": "Immutable. The resource name of the recommendation. `customers/{customer_id}/recommendations/{recommendation_id}`",
          "type": "string"
        },
        "shoppingFixDisapprovedProductsRecommendation": {
          "readOnly": true,
          "description": "Output only. The shopping fix disapproved products recommendation.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_ShoppingFixDisapprovedProductsRecommendation"
        },
        "displayExpansionOptInRecommendation": {
          "description": "Output only. The Display Expansion opt-in recommendation.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_DisplayExpansionOptInRecommendation",
          "readOnly": true
        },
        "shoppingFixSuspendedMerchantCenterAccountRecommendation": {
          "description": "Output only. The shopping fix suspended Merchant Center account recommendation.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_ShoppingMerchantCenterAccountSuspensionRecommendation",
          "readOnly": true
        },
        "raiseTargetCpaBidTooLowRecommendation": {
          "readOnly": true,
          "description": "Output only. The raise target CPA bid too low recommendation.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_RaiseTargetCpaBidTooLowRecommendation"
        },
        "forecastingCampaignBudgetRecommendation": {
          "description": "Output only. The forecasting campaign budget recommendation.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_CampaignBudgetRecommendation",
          "readOnly": true
        },
        "migrateDynamicSearchAdsCampaignToPerformanceMaxRecommendation": {
          "description": "Output only. The Dynamic Search Ads to Performance Max migration recommendation.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_MigrateDynamicSearchAdsCampaignToPerformanceMaxRecommendation",
          "readOnly": true
        },
        "dismissed": {
          "type": "boolean",
          "description": "Output only. Whether the recommendation is dismissed or not.",
          "readOnly": true
        },
        "forecastingSetTargetRoasRecommendation": {
          "readOnly": true,
          "description": "Output only. The forecasting set target ROAS recommendation.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_ForecastingSetTargetRoasRecommendation"
        },
        "campaigns": {
          "description": "Output only. The campaigns targeted by this recommendation. This field will be set for the following recommendation types: CAMPAIGN_BUDGET, FORECASTING_CAMPAIGN_BUDGET, MARGINAL_ROI_CAMPAIGN_BUDGET and MOVE_UNUSED_BUDGET",
          "type": "array",
          "items": {
            "type": "string"
          },
          "readOnly": true
        },
        "calloutAssetRecommendation": {
          "description": "Output only. The callout asset recommendation.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_CalloutAssetRecommendation",
          "readOnly": true
        },
        "keywordRecommendation": {
          "description": "Output only. The keyword recommendation.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_KeywordRecommendation",
          "readOnly": true
        },
        "upgradeLocalCampaignToPerformanceMaxRecommendation": {
          "readOnly": true,
          "description": "Output only. The upgrade a Local campaign to a Performance Max campaign recommendation.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_UpgradeLocalCampaignToPerformanceMaxRecommendation"
        },
        "improveDemandGenAdStrengthRecommendation": {
          "description": "Output only. The improve Demand Gen ad strength recommendation.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_ImproveDemandGenAdStrengthRecommendation",
          "readOnly": true
        }
      }
    },
    "GoogleAdsSearchads360V23Services__BiddableKeyword": {
      "id": "GoogleAdsSearchads360V23Services__BiddableKeyword",
      "description": "A biddable keyword part of an ad group.",
      "type": "object",
      "properties": {
        "keyword": {
          "description": "Required. Keyword. Must have text and match type.",
          "$ref": "GoogleAdsSearchads360V23Common__KeywordInfo"
        },
        "maxCpcBidMicros": {
          "type": "string",
          "format": "int64",
          "description": "A max cpc bid in micros that overrides the ad group level max cpc bid in forecast simulation. This value will override the max cpc value set in the bidding strategy and ad group. Only specify this field for bidding strategies that support max cpc values."
        }
      }
    },
    "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_KeywordParameters": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_KeywordParameters",
      "description": "Parameters to use when applying keyword recommendation.",
      "properties": {
        "adGroup": {
          "description": "The ad group resource to add keyword to. This is a required field.",
          "type": "string"
        },
        "matchType": {
          "description": "The match type of the keyword. This is a required field.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Exact match.",
            "Phrase match.",
            "Broad match."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "EXACT",
            "PHRASE",
            "BROAD"
          ]
        },
        "cpcBidMicros": {
          "description": "Optional, CPC bid to set for the keyword. If not set, keyword will use bid based on bidding strategy used by target ad group.",
          "type": "string",
          "format": "int64"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__AdTextAsset": {
      "properties": {
        "assetPerformanceLabel": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "This asset does not yet have any performance informantion. This may be because it is still under review.",
            "The asset has started getting impressions but the stats are not statistically significant enough to get an asset performance label.",
            "Worst performing assets.",
            "Good performing assets.",
            "Best performing assets.",
            "Performance label cannot be assigned to this asset. This may be because it's not used by asset based creatives."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PENDING",
            "LEARNING",
            "LOW",
            "GOOD",
            "BEST",
            "NOT_APPLICABLE"
          ],
          "description": "The performance label of this text asset."
        },
        "pinnedField": {
          "description": "The pinned field of the asset. This restricts the asset to only serve within this field. Multiple assets can be pinned to the same field. An asset that is unpinned or pinned to a different field will not serve in a field where some other asset has been pinned.",
          "type": "string",
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The asset is used in headline 1.",
            "The asset is used in headline 2.",
            "The asset is used in headline 3.",
            "The asset is used in description 1.",
            "The asset is used in description 2.",
            "The asset was used in a headline. Use this only if there is only one headline in the ad. Otherwise, use the HEADLINE_1, HEADLINE_2 or HEADLINE_3 enums",
            "The asset was used as a headline in portrait image.",
            "The asset was used in a long headline (used in MultiAssetResponsiveAd).",
            "The asset was used in a description. Use this only if there is only one description in the ad. Otherwise, use the DESCRIPTION_1 or DESCRIPTION_@ enums",
            "The asset was used as description in portrait image.",
            "The asset was used as business name in portrait image.",
            "The asset was used as business name.",
            "The asset was used as a marketing image.",
            "The asset was used as a marketing image in portrait image.",
            "The asset was used as a square marketing image.",
            "The asset was used as a portrait marketing image.",
            "The asset was used as a logo.",
            "The asset was used as a landscape logo.",
            "The asset was used as a call-to-action.",
            "The asset was used as a YouTube video.",
            "This asset is used as a sitelink.",
            "This asset is used as a call.",
            "This asset is used as a mobile app.",
            "This asset is used as a callout.",
            "This asset is used as a structured snippet.",
            "This asset is used as a price.",
            "This asset is used as a promotion.",
            "This asset is used as an image.",
            "The asset is used as a lead form.",
            "The asset is used as a business logo.",
            "The asset is used as a description prefix.",
            "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.",
            "A description line asset used as a sitelink in position 2."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HEADLINE_1",
            "HEADLINE_2",
            "HEADLINE_3",
            "DESCRIPTION_1",
            "DESCRIPTION_2",
            "HEADLINE",
            "HEADLINE_IN_PORTRAIT",
            "LONG_HEADLINE",
            "DESCRIPTION",
            "DESCRIPTION_IN_PORTRAIT",
            "BUSINESS_NAME_IN_PORTRAIT",
            "BUSINESS_NAME",
            "MARKETING_IMAGE",
            "MARKETING_IMAGE_IN_PORTRAIT",
            "SQUARE_MARKETING_IMAGE",
            "PORTRAIT_MARKETING_IMAGE",
            "LOGO",
            "LANDSCAPE_LOGO",
            "CALL_TO_ACTION",
            "YOU_TUBE_VIDEO",
            "SITELINK",
            "CALL",
            "MOBILE_APP",
            "CALLOUT",
            "STRUCTURED_SNIPPET",
            "PRICE",
            "PROMOTION",
            "AD_IMAGE",
            "LEAD_FORM",
            "BUSINESS_LOGO",
            "DESCRIPTION_PREFIX",
            "HEADLINE_AS_SITELINK_POSITION_ONE",
            "HEADLINE_AS_SITELINK_POSITION_TWO",
            "DESCRIPTION_LINE_HEADLINE_AS_SITELINK_POSITION_ONE",
            "DESCRIPTION_LINE_HEADLINE_AS_SITELINK_POSITION_TWO"
          ]
        },
        "text": {
          "type": "string",
          "description": "Asset text."
        },
        "policySummaryInfo": {
          "description": "The policy summary of this text asset.",
          "$ref": "GoogleAdsSearchads360V23Common__AdAssetPolicySummary"
        }
      },
      "id": "GoogleAdsSearchads360V23Common__AdTextAsset",
      "description": "A text asset used inside an ad.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources__CampaignBudget": {
      "properties": {
        "deliveryMethod": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The budget server will throttle serving evenly across the entire time period.",
            "The budget server will not throttle serving, and ads will serve as fast as possible."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "STANDARD",
            "ACCELERATED"
          ],
          "description": "The delivery method that determines the rate at which the campaign budget is spent. Defaults to STANDARD if unspecified in a create operation."
        },
        "hasRecommendedBudget": {
          "readOnly": true,
          "type": "boolean",
          "description": "Output only. Indicates whether there is a recommended budget for this campaign budget. This field is read-only."
        },
        "name": {
          "type": "string",
          "description": "The name of the campaign budget. When creating a campaign budget through CampaignBudgetService, every explicitly shared campaign budget must have a non-null, non-empty name. Campaign budgets that are not explicitly shared derive their name from the attached campaign's name. The length of this string must be between 1 and 255, inclusive, in UTF-8 bytes, (trimmed)."
        },
        "recommendedBudgetEstimatedChangeWeeklyClicks": {
          "type": "string",
          "format": "int64",
          "description": "Output only. The estimated change in weekly clicks if the recommended budget is applied. This field is read-only.",
          "readOnly": true
        },
        "id": {
          "description": "Output only. The ID of the campaign budget. A campaign budget is created using the CampaignBudgetService create operation and is assigned a budget ID. A budget ID can be shared across different campaigns; the system will then allocate the campaign budget among different campaigns to get optimum results.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the campaign budget. Campaign budget resource names have the form: `customers/{customer_id}/campaignBudgets/{campaign_budget_id}`"
        },
        "period": {
          "description": "Immutable. Period over which to spend the budget. Defaults to DAILY if not specified.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Daily budget.",
            "Custom budget can be used with total_amount to specify lifetime budget limit."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DAILY",
            "CUSTOM_PERIOD"
          ]
        },
        "type": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Budget type for standard Google Ads usage. Caps daily spend at two times the specified budget amount. Full details: https://support.google.com/google-ads/answer/6385083",
            "Budget type with a fixed cost-per-acquisition (conversion). Full details: https://support.google.com/google-ads/answer/7528254 This type is only supported by campaigns with AdvertisingChannelType.DISPLAY (excluding AdvertisingChannelSubType.DISPLAY_GMAIL), BiddingStrategyType.TARGET_CPA and PaymentMode.CONVERSIONS.",
            "Budget type for Smart Campaign. Full details: https://support.google.com/google-ads/answer/7653509 This type is only supported by campaigns with AdvertisingChannelType.SMART and AdvertisingChannelSubType.SMART_CAMPAIGN.",
            "Budget type for Local Services Campaign. Full details: https://support.google.com/localservices/answer/7434558 This type is only supported by campaigns with AdvertisingChannelType.LOCAL_SERVICES."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "STANDARD",
            "FIXED_CPA",
            "SMART_CAMPAIGN",
            "LOCAL_SERVICES"
          ],
          "description": "Immutable. The type of the campaign budget."
        },
        "recommendedBudgetAmountMicros": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. The recommended budget amount. If no recommendation is available, this will be set to the budget amount. Amount is specified in micros, where one million is equivalent to one currency unit. This field is read-only."
        },
        "recommendedBudgetEstimatedChangeWeeklyCostMicros": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. The estimated change in weekly cost in micros if the recommended budget is applied. One million is equivalent to one currency unit. This field is read-only."
        },
        "alignedBiddingStrategyId": {
          "type": "string",
          "format": "int64",
          "description": "ID of the portfolio bidding strategy that this shared campaign budget is aligned with. When a bidding strategy and a campaign budget are aligned, they are attached to the same set of campaigns. After a campaign budget is aligned with a bidding strategy, campaigns that are added to the campaign budget must also use the aligned bidding strategy."
        },
        "recommendedBudgetEstimatedChangeWeeklyInteractions": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. The estimated change in weekly interactions if the recommended budget is applied. This field is read-only."
        },
        "status": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ],
          "readOnly": true,
          "description": "Output only. The status of this campaign budget. This field is read-only.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Budget is enabled.",
            "Budget is removed."
          ]
        },
        "amountMicros": {
          "description": "The average daily amount to be spent by the campaign. This field is used when the CampaignBudget `period` is set to `DAILY`, which is the default. Amount is specified in micros in the account's local currency. One million micros is equivalent to one currency unit. The effective monthly spend is capped at 30.4 times this daily amount. This field is mutually exclusive with 'total_amount_micros'. Only one of 'amount_micros' or 'total_amount_micros' should be set.",
          "type": "string",
          "format": "int64"
        },
        "recommendedBudgetEstimatedChangeWeeklyViews": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. The estimated change in weekly views if the recommended budget is applied. This field is read-only."
        },
        "totalAmountMicros": {
          "type": "string",
          "format": "int64",
          "description": "The total amount to be spent by the campaign over its entire duration. This field is used *only* when the CampaignBudget `period` is set to `CUSTOM_PERIOD`. It represents the budget cap for the campaign's lifetime, rather than a daily limit. The amount is specified in micros in the account's local currency. One million micros is equivalent to one currency unit. This field is mutually exclusive with 'amount_micros'. Only one of 'total_amount_micros' or 'amount_micros' should be set."
        },
        "explicitlyShared": {
          "type": "boolean",
          "description": "Specifies whether the budget is explicitly shared. Defaults to true if unspecified in a create operation. If true, the budget was created with the purpose of sharing across one or more campaigns. If false, the budget was created with the intention of only being used with a single campaign. The budget's name and status will stay in sync with the campaign's name and status. Attempting to share the budget with a second campaign will result in an error. A non-shared budget can become an explicitly shared. The same operation must also assign the budget a name. A shared campaign budget can never become non-shared."
        },
        "referenceCount": {
          "description": "Output only. The number of campaigns actively using the budget. This field is read-only.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__CampaignBudget",
      "description": "A campaign budget."
    },
    "GoogleAdsSearchads360V23Services__ListPlannableUserInterestsRequest": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__ListPlannableUserInterestsRequest",
      "description": "Request message for ReachPlanService.ListPlannableUserInterests.",
      "properties": {
        "customerId": {
          "type": "string",
          "description": "Required. The ID of the customer."
        },
        "userInterestTaxonomyTypes": {
          "type": "array",
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "The affinity for this user interest.",
              "The market for this user interest.",
              "Users known to have installed applications in the specified categories.",
              "The geographical location of the interest-based vertical.",
              "User interest criteria for new smart phone users."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "AFFINITY",
              "IN_MARKET",
              "MOBILE_APP_INSTALL_USER",
              "VERTICAL_GEO",
              "NEW_SMART_PHONE_USER"
            ]
          },
          "description": "Optional. A filter by user interest type. If set, only user interests with a type listed in the filter will be returned. If not set, user interests of all supported types will be returned. Supported user interest types are AFFINITY and IN_MARKET. Each type must be specified at most once."
        },
        "pathQuery": {
          "description": "A filter by user interest path. If set, only user interests with a path containing the literal string (case insensitive) in the filter will be returned. Maximum length is 200 characters.",
          "type": "string"
        },
        "reachApplicationInfo": {
          "description": "Optional. Additional information on the application issuing the request.",
          "$ref": "GoogleAdsSearchads360V23Common__AdditionalApplicationInfo"
        },
        "nameQuery": {
          "description": "A filter by user interest name. If set, only user interests with a name containing the literal string (case insensitive) in the filter will be returned. Maximum length is 200 characters.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__Ad": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__Ad",
      "description": "An ad.",
      "properties": {
        "name": {
          "description": "Immutable. The name of the ad. This is only used to be able to identify the ad. It does not need to be unique and does not affect the served ad.",
          "type": "string"
        },
        "urlCustomParameters": {
          "description": "The list of mappings that can be used to substitute custom parameter tags in a `tracking_url_template`, `final_urls`, or `mobile_final_urls`. For mutates, use url custom parameter operations.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__CustomParameter"
          }
        },
        "hotelAd": {
          "description": "Details pertaining to a hotel ad.",
          "$ref": "GoogleAdsSearchads360V23Common__HotelAdInfo"
        },
        "searchAds360ExpandedTextAd": {
          "description": "Immutable. Details pertaining to an expanded text ad.",
          "$ref": "GoogleAdsSearchads360V23Common__SearchAds360ExpandedTextAdInfo"
        },
        "demandGenCarouselAd": {
          "description": "Details pertaining to a Demand Gen carousel ad.",
          "$ref": "GoogleAdsSearchads360V23Common__DemandGenCarouselAdInfo"
        },
        "demandGenProductAd": {
          "description": "Details pertaining to a Demand Gen product ad.",
          "$ref": "GoogleAdsSearchads360V23Common__DemandGenProductAdInfo"
        },
        "appAd": {
          "description": "Details pertaining to an app ad.",
          "$ref": "GoogleAdsSearchads360V23Common__AppAdInfo"
        },
        "shoppingSmartAd": {
          "description": "Details pertaining to a Smart Shopping ad.",
          "$ref": "GoogleAdsSearchads360V23Common__ShoppingSmartAdInfo"
        },
        "resourceName": {
          "description": "Immutable. The resource name of the ad. Ad resource names have the form: `customers/{customer_id}/ads/{ad_id}`",
          "type": "string"
        },
        "expandedTextAd": {
          "description": "Details pertaining to an expanded text ad.",
          "$ref": "GoogleAdsSearchads360V23Common__ExpandedTextAdInfo"
        },
        "finalMobileUrls": {
          "description": "The list of possible final mobile URLs after all cross-domain redirects for the ad.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "textAd": {
          "description": "Immutable. Details pertaining to a text ad.",
          "$ref": "GoogleAdsSearchads360V23Common__TextAdInfo"
        },
        "trackingUrlTemplate": {
          "description": "The URL template for constructing a tracking URL.",
          "type": "string"
        },
        "appPreRegistrationAd": {
          "description": "Details pertaining to an app pre-registration ad.",
          "$ref": "GoogleAdsSearchads360V23Common__AppPreRegistrationAdInfo"
        },
        "legacyAppInstallAd": {
          "description": "Immutable. Details pertaining to a legacy app install ad.",
          "$ref": "GoogleAdsSearchads360V23Common__LegacyAppInstallAdInfo"
        },
        "searchAds360ExpandedDynamicSearchAd": {
          "description": "Immutable. Details pertaining to an expanded dynamic search ad.",
          "$ref": "GoogleAdsSearchads360V23Common__SearchAds360ExpandedDynamicSearchAdInfo"
        },
        "finalAppUrls": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__FinalAppUrl"
          },
          "description": "A list of final app URLs that will be used on mobile if the user has the specific app installed."
        },
        "localAd": {
          "description": "Details pertaining to a local ad.",
          "$ref": "GoogleAdsSearchads360V23Common__LocalAdInfo"
        },
        "demandGenMultiAssetAd": {
          "description": "Details pertaining to a Demand Gen multi asset ad.",
          "$ref": "GoogleAdsSearchads360V23Common__DemandGenMultiAssetAdInfo"
        },
        "productAd": {
          "description": "Immutable. Details pertaining to a product ad.",
          "$ref": "GoogleAdsSearchads360V23Common__SearchAds360ProductAdInfo"
        },
        "legacyResponsiveDisplayAd": {
          "description": "Details pertaining to a legacy responsive display ad.",
          "$ref": "GoogleAdsSearchads360V23Common__LegacyResponsiveDisplayAdInfo"
        },
        "responsiveDisplayAd": {
          "description": "Details pertaining to a responsive display ad.",
          "$ref": "GoogleAdsSearchads360V23Common__ResponsiveDisplayAdInfo"
        },
        "responsiveSearchAd": {
          "description": "Details pertaining to a responsive search ad.",
          "$ref": "GoogleAdsSearchads360V23Common__ResponsiveSearchAdInfo"
        },
        "systemManagedResourceSource": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AD_VARIATIONS"
          ],
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Generated ad variations experiment ad."
          ],
          "description": "Output only. If this ad is system managed, then this field will indicate the source. This field is read-only."
        },
        "displayUrl": {
          "type": "string",
          "description": "The URL that appears in the ad description for some ad formats."
        },
        "searchAds360ResponsiveSearchAd": {
          "description": "Immutable. Details pertaining to a responsive search ad.",
          "$ref": "GoogleAdsSearchads360V23Common__SearchAds360ResponsiveSearchAdInfo"
        },
        "devicePreference": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Mobile devices with full browsers.",
            "Tablets with full browsers.",
            "Computers.",
            "Smart TVs and game consoles.",
            "Other device types."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MOBILE",
            "TABLET",
            "DESKTOP",
            "CONNECTED_TV",
            "OTHER"
          ],
          "description": "The device preference for the ad. You can only specify a preference for mobile devices. When this preference is set the ad will be preferred over other ads when being displayed on a mobile device. The ad can still be displayed on other device types, for example, if no other ads are available. If unspecified (no device preference), all devices are targeted. This is only supported by some ad types."
        },
        "appEngagementAd": {
          "description": "Details pertaining to an app engagement ad.",
          "$ref": "GoogleAdsSearchads360V23Common__AppEngagementAdInfo"
        },
        "imageAd": {
          "description": "Immutable. Details pertaining to an Image ad.",
          "$ref": "GoogleAdsSearchads360V23Common__ImageAdInfo"
        },
        "displayUploadAd": {
          "description": "Details pertaining to a display upload ad.",
          "$ref": "GoogleAdsSearchads360V23Common__DisplayUploadAdInfo"
        },
        "travelAd": {
          "description": "Details pertaining to a travel ad.",
          "$ref": "GoogleAdsSearchads360V23Common__TravelAdInfo"
        },
        "type": {
          "type": "string",
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The ad is a text ad.",
            "The ad is an expanded text ad.",
            "The ad is an expanded dynamic search ad.",
            "The ad is a hotel ad.",
            "The ad is a Smart Shopping ad.",
            "The ad is a standard Shopping ad.",
            "The ad is a video ad.",
            "This ad is an Image ad.",
            "The ad is a responsive search ad.",
            "The ad is a legacy responsive display ad.",
            "The ad is an app ad.",
            "The ad is a legacy app install ad.",
            "The ad is a responsive display ad.",
            "The ad is a local ad.",
            "The ad is a display upload ad with the HTML5_UPLOAD_AD product type.",
            "The ad is a display upload ad with one of the DYNAMIC_HTML5_* product types.",
            "The ad is an app engagement ad.",
            "The ad is a Shopping Comparison Listing ad.",
            "Video bumper ad.",
            "Video non-skippable in-stream ad.",
            "Video TrueView in-stream ad.",
            "Video responsive ad.",
            "Smart campaign ad.",
            "Call ad.",
            "Universal app pre-registration ad.",
            "Demand Gen multi asset ad.",
            "Demand Gen carousel ad.",
            "Travel ad.",
            "Demand Gen video responsive ad.",
            "Demand Gen product ad.",
            "Multimedia ad."
          ],
          "description": "Output only. The type of ad.",
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "TEXT_AD",
            "EXPANDED_TEXT_AD",
            "EXPANDED_DYNAMIC_SEARCH_AD",
            "HOTEL_AD",
            "SHOPPING_SMART_AD",
            "SHOPPING_PRODUCT_AD",
            "VIDEO_AD",
            "IMAGE_AD",
            "RESPONSIVE_SEARCH_AD",
            "LEGACY_RESPONSIVE_DISPLAY_AD",
            "APP_AD",
            "LEGACY_APP_INSTALL_AD",
            "RESPONSIVE_DISPLAY_AD",
            "LOCAL_AD",
            "HTML5_UPLOAD_AD",
            "DYNAMIC_HTML5_AD",
            "APP_ENGAGEMENT_AD",
            "SHOPPING_COMPARISON_LISTING_AD",
            "VIDEO_BUMPER_AD",
            "VIDEO_NON_SKIPPABLE_IN_STREAM_AD",
            "VIDEO_TRUEVIEW_IN_STREAM_AD",
            "VIDEO_RESPONSIVE_AD",
            "SMART_CAMPAIGN_AD",
            "CALL_AD",
            "APP_PRE_REGISTRATION_AD",
            "DEMAND_GEN_MULTI_ASSET_AD",
            "DEMAND_GEN_CAROUSEL_AD",
            "TRAVEL_AD",
            "DEMAND_GEN_VIDEO_RESPONSIVE_AD",
            "DEMAND_GEN_PRODUCT_AD",
            "MULTIMEDIA_AD"
          ]
        },
        "demandGenVideoResponsiveAd": {
          "description": "Details pertaining to a Demand Gen video responsive ad.",
          "$ref": "GoogleAdsSearchads360V23Common__DemandGenVideoResponsiveAdInfo"
        },
        "id": {
          "description": "Output only. The ID of the ad.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        },
        "smartCampaignAd": {
          "description": "Details pertaining to a Smart campaign ad.",
          "$ref": "GoogleAdsSearchads360V23Common__SmartCampaignAdInfo"
        },
        "expandedDynamicSearchAd": {
          "description": "Immutable. Details pertaining to an Expanded Dynamic Search Ad. This type of ad has its headline, final URLs, and display URL auto-generated at serving time according to domain name specific information provided by `dynamic_search_ads_setting` linked at the campaign level.",
          "$ref": "GoogleAdsSearchads360V23Common__ExpandedDynamicSearchAdInfo"
        },
        "shoppingComparisonListingAd": {
          "description": "Details pertaining to a Shopping Comparison Listing ad.",
          "$ref": "GoogleAdsSearchads360V23Common__ShoppingComparisonListingAdInfo"
        },
        "finalUrls": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The list of possible final URLs after all cross-domain redirects for the ad."
        },
        "finalUrlSuffix": {
          "type": "string",
          "description": "The suffix to use when constructing a final URL."
        },
        "urlCollections": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__UrlCollection"
          },
          "description": "Additional URLs for the ad that are tagged with a unique identifier that can be referenced from other fields in the ad."
        },
        "shoppingProductAd": {
          "description": "Details pertaining to a Shopping product ad.",
          "$ref": "GoogleAdsSearchads360V23Common__ShoppingProductAdInfo"
        },
        "addedByGoogleAds": {
          "type": "boolean",
          "description": "Output only. Indicates if this ad was automatically added by Google Ads and not by a user. For example, this could happen when ads are automatically created as suggestions for new ads based on knowledge of how existing ads are performing.",
          "readOnly": true
        },
        "searchAds360TextAd": {
          "description": "Immutable. Details pertaining to a text ad.",
          "$ref": "GoogleAdsSearchads360V23Common__SearchAds360TextAdInfo"
        }
      }
    },
    "GoogleAdsSearchads360V23Common_PolicyTopicEvidence_DestinationMismatch": {
      "properties": {
        "urlTypes": {
          "type": "array",
          "items": {
            "type": "string",
            "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."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "DISPLAY_URL",
              "FINAL_URL",
              "FINAL_MOBILE_URL",
              "TRACKING_URL",
              "MOBILE_TRACKING_URL"
            ]
          },
          "description": "The set of URLs that did not match each other."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common_PolicyTopicEvidence_DestinationMismatch",
      "description": "Evidence of mismatches between the URLs of a resource."
    },
    "GoogleAdsSearchads360V23Services__MutateKeywordPlanCampaignResult": {
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        }
      },
      "id": "GoogleAdsSearchads360V23Services__MutateKeywordPlanCampaignResult",
      "description": "The result for the Keyword Plan campaign mutate.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateSearchAds360Response": {
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "mutateOperationResponses": {
          "description": "All responses for the mutate.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateOperationResponse"
          }
        }
      },
      "id": "GoogleAdsSearchads360V23Services__MutateSearchAds360Response",
      "description": "Response message for Service.Mutate.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateSearchAds360CampaignResult": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateSearchAds360CampaignResult",
      "description": "The result for the Search Ads 360 campaign mutate.",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        },
        "searchAds360Campaign": {
          "description": "The mutated Search Ads 360 campaign with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsSearchads360V23Resources__SearchAds360Campaign"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__TravelAdInfo": {
      "properties": {},
      "id": "GoogleAdsSearchads360V23Common__TravelAdInfo",
      "description": "A travel ad.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__AppAdInfo": {
      "id": "GoogleAdsSearchads360V23Common__AppAdInfo",
      "description": "An app ad.",
      "type": "object",
      "properties": {
        "mandatoryAdText": {
          "description": "Mandatory ad text.",
          "$ref": "GoogleAdsSearchads360V23Common__AdTextAsset"
        },
        "images": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AdImageAsset"
          },
          "description": "List of image assets that may be displayed with the ad."
        },
        "youtubeVideos": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AdVideoAsset"
          },
          "description": "List of YouTube video assets that may be displayed with the ad."
        },
        "html5MediaBundles": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AdMediaBundleAsset"
          },
          "description": "List of media bundle assets that may be used with the ad."
        },
        "headlines": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AdTextAsset"
          },
          "description": "List of text assets for headlines. When the ad serves the headlines will be selected from this list."
        },
        "descriptions": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AdTextAsset"
          },
          "description": "List of text assets for descriptions. When the ad serves the descriptions will be selected from this list."
        },
        "appDeepLink": {
          "description": "An app deep link asset that may be used with the ad.",
          "$ref": "GoogleAdsSearchads360V23Common__AdAppDeepLinkAsset"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateConversionValueRulesRequest": {
      "properties": {
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__ConversionValueRuleOperation"
          },
          "description": "Required. The list of operations to perform on individual conversion value rules."
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        },
        "responseContentType": {
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "type": "string",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ]
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateConversionValueRulesRequest",
      "description": "Request message for ConversionValueRuleService.MutateConversionValueRules."
    },
    "GoogleAdsSearchads360V23Resources__GroupContentSuitabilityPlacementView": {
      "properties": {
        "resourceName": {
          "description": "Output only. The resource name of the group content suitability placement view. Group content suitability placement view resource names have the form: `customers/{customer_id}/groupContentSuitabilityPlacementViews/{placement_fingerprint}`",
          "type": "string",
          "readOnly": true
        },
        "displayName": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The display name is URL for websites, YouTube video name for YouTube videos, and translated mobile app name for mobile apps."
        },
        "placement": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The automatic placement string at group level, for example. website url, mobile application id, or a YouTube video id."
        },
        "placementType": {
          "description": "Output only. Represents the type of the placement, for example, Website, YouTubeVideo and MobileApplication.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Websites(for example, 'www.flowers4sale.com').",
            "Mobile application categories(for example, 'Games').",
            "mobile applications(for example, 'mobileapp::2-com.whatsthewordanswers').",
            "YouTube videos(for example, 'youtube.com/video/wtLJPvx7-ys').",
            "YouTube channels(for example, 'youtube.com::L8ZULXASCc1I_oaOT0NaOQ').",
            "Surfaces owned and operated by Google(for example, 'tv.google.com')."
          ],
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "WEBSITE",
            "MOBILE_APP_CATEGORY",
            "MOBILE_APPLICATION",
            "YOUTUBE_VIDEO",
            "YOUTUBE_CHANNEL",
            "GOOGLE_PRODUCTS"
          ]
        },
        "targetUrl": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. URL of the placement, for example, website, link to the mobile application in app store, or a YouTube video URL."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__GroupContentSuitabilityPlacementView",
      "description": "A group content suitability placement view."
    },
    "GoogleAdsSearchads360V23Resources__KeywordThemeConstant": {
      "properties": {
        "languageCode": {
          "readOnly": true,
          "description": "Output only. The ISO-639-1 language code with 2 letters of the constant, eg. \"en\". To display and query matching purpose, the keyword theme needs to be localized.",
          "type": "string"
        },
        "countryCode": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The ISO-3166 Alpha-2 country code of the constant, eg. \"US\". To display and query matching purpose, the keyword theme needs to be localized."
        },
        "resourceName": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The resource name of the keyword theme constant. Keyword theme constant resource names have the form: `keywordThemeConstants/{keyword_theme_id}~{sub_keyword_theme_id}`"
        },
        "displayName": {
          "description": "Output only. The display name of the keyword theme or sub keyword theme.",
          "type": "string",
          "readOnly": true
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__KeywordThemeConstant",
      "description": "A Smart Campaign keyword theme constant.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__Metrics": {
      "properties": {
        "allConversionsFromInteractionsRate": {
          "type": "number",
          "format": "double",
          "description": "All conversions from interactions (as oppose to view through conversions) divided by the number of ad interactions."
        },
        "crossSellCostOfGoodsSoldMicros": {
          "type": "string",
          "format": "int64",
          "description": "Cross-sell cost of goods sold (COGS) is the total cost of products sold as a result of advertising a different product. How it works: You report conversions with cart data for completed purchases on your website. If the ad that was interacted with before the purchase has an associated product (see Shopping Ads) then this product is considered the advertised product. Any product included in the order the customer places is a sold product. If these products don't match then this is considered cross-sell. Cross-sell cost of goods sold is the total cost of the products sold that weren't advertised. Example: Someone clicked on a Shopping ad for a hat then bought the same hat and a shirt. The hat has a cost of goods sold value of $3, the shirt has a cost of goods sold value of $5. The cross-sell cost of goods sold for this order is $5. This metric is only available if you report conversions with cart data. This metric is a monetary value and returned in the customer's currency by default. See the metrics_currency parameter at https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause"
        },
        "costPerConversion": {
          "description": "Average conversion eligible cost per biddable conversion.",
          "type": "number",
          "format": "double"
        },
        "clientAccountCrossSellCostOfGoodsSoldMicros": {
          "description": "Client account cross-sell cost of goods sold (COGS) is the total cost of products sold as a result of advertising a different product. How it works: You report conversions with cart data for completed purchases on your website. If the ad that was interacted with before the purchase has an associated product (see Shopping Ads) then this product is considered the advertised product. Any product included in the order the customer places is a sold product. If these products don't match then this is considered cross-sell. Cross-sell cost of goods sold is the total cost of the products sold that weren't advertised. Example: Someone clicked on a Shopping ad for a hat then bought the same hat and a shirt. The hat has a cost of goods sold value of $3, the shirt has a cost of goods sold value of $5. The cross-sell cost of goods sold for this order is $5. This metric is only available if you report conversions with cart data. This metric is a monetary value and returned in the customer's currency by default. See the metrics_currency parameter at https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause",
          "type": "string",
          "format": "int64"
        },
        "costOfGoodsSoldMicros": {
          "description": "Cost of goods sold (COGS) is the total cost of the products you sold in orders attributed to your ads. How it works: You can add a cost of goods sold value to every product in Merchant Center. If you report conversions with cart data, the products you sold are matched with their cost of goods sold value and this can be used to calculate the gross profit you made on each order. Example: Someone clicked on a Shopping ad for a hat then bought the same hat and a shirt. The hat has a cost of goods sold value of $3, the shirt has a cost of goods sold value of $5. The cost of goods sold for this order is $8 = $3 + $5. This metric is only available if you report conversions with cart data.",
          "type": "string",
          "format": "int64"
        },
        "clientAccountLeadGrossProfitMicros": {
          "description": "Client account lead gross profit is the profit you made from products sold as a result of advertising the same product, minus cost of goods sold (COGS). How it works: You report conversions with cart data for completed purchases on your website. If the ad that was interacted with before the purchase has an associated product (see Shopping Ads) then this product is considered the advertised product. Any product included in the order the customer places is a sold product. If the advertised and sold products match, then the revenue you made from these sales minus the cost of goods sold is your lead gross profit. Example: Someone clicked on a Shopping ad for a hat then bought the same hat and a shirt. The hat is priced $10 and has a cost of goods sold value of $3. The lead gross profit of this order is $7 = $10 - $3. This metric is only available if you report conversions with cart data. This metric is a monetary value and returned in the customer's currency by default. See the metrics_currency parameter at https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause",
          "type": "string",
          "format": "int64"
        },
        "invalidClicks": {
          "description": "Number of clicks Google considers illegitimate and doesn't charge you for.",
          "type": "string",
          "format": "int64"
        },
        "allConversionsFromOrder": {
          "description": "The number of times people placed an order at a business after clicking an ad. This metric applies to feed items only.",
          "type": "number",
          "format": "double"
        },
        "contentBudgetLostImpressionShare": {
          "type": "number",
          "format": "double",
          "description": "The estimated percent of times that your ad was eligible to show on the Display Network but didn't because your budget was too low. Note: Content budget lost impression share is reported in the range of 0 to 0.9. Any value above 0.9 is reported as 0.9001."
        },
        "crossSellRevenueMicros": {
          "type": "string",
          "format": "int64",
          "description": "Cross-sell revenue is the total amount you made from products sold as a result of advertising a different product. How it works: You report conversions with cart data for completed purchases on your website. If the ad that was interacted with before the purchase has an associated product (see Shopping Ads) then this product is considered the advertised product. Any product included in the order the customer places is a sold product. If these products don't match then this is considered cross-sell. Cross-sell revenue is the total value you made from cross-sell attributed to your ads. Example: Someone clicked on a Shopping ad for a hat then bought the same hat and a shirt. The hat is priced $10 and the shirt is priced $20. The cross-sell revenue of this order is $20. This metric is only available if you report conversions with cart data. This metric is a monetary value and returned in the customer's currency by default. See the metrics_currency parameter at https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause"
        },
        "conversionsValue": {
          "description": "The sum of conversion values for the conversions included in the \"conversions\" field. This metric is useful only if you entered a value for your conversion actions.",
          "type": "number",
          "format": "double"
        },
        "searchImpressionShare": {
          "description": "The impressions you've received on the Search Network divided by the estimated number of impressions you were eligible to receive. Note: Search impression share is reported in the range of 0.1 to 1. Any value below 0.1 is reported as 0.0999.",
          "type": "number",
          "format": "double"
        },
        "valuePerAllConversions": {
          "type": "number",
          "format": "double",
          "description": "The value of all conversions divided by the number of all conversions."
        },
        "allConversionsFromOtherEngagement": {
          "description": "The number of other conversions (for example, posting a review or saving a location for a business) that occurred after people clicked an ad. This metric applies to feed items only.",
          "type": "number",
          "format": "double"
        },
        "generalInvalidClicks": {
          "description": "Number of general invalid clicks. These are a subset of your invalid clicks that are detected through routine means of filtration (such as known invalid data-center traffic, bots and spiders or other crawlers, irregular patterns, etc.). You're not charged for them, and they don't affect your account statistics. See the help page at https://support.google.com/campaignmanager/answer/6076504 for details.",
          "type": "string",
          "format": "int64"
        },
        "conversionCustomMetrics": {
          "description": "The conversion custom metrics.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__Value"
          }
        },
        "clientAccountLeadCostOfGoodsSoldMicros": {
          "description": "Client account lead cost of goods sold (COGS) is the total cost of products sold as a result of advertising the same product. How it works: You report conversions with cart data for completed purchases on your website. If the ad that was interacted with has an associated product (see Shopping Ads) then this product is considered the advertised product. Any product included in the order the customer places is a sold product. If the advertised and sold products match, then the cost of these goods is counted under lead cost of goods sold. Example: Someone clicked on a Shopping ad for a hat then bought the same hat and a shirt. The hat has a cost of goods sold value of $3, the shirt has a cost of goods sold value of $5. The lead cost of goods sold for this order is $3. This metric is only available if you report conversions with cart data. This metric is a monetary value and returned in the customer's currency by default. See the metrics_currency parameter at https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause",
          "type": "string",
          "format": "int64"
        },
        "clientAccountLeadRevenueMicros": {
          "description": "Client account lead revenue is the total amount you made from products sold as a result of advertising the same product. How it works: You report conversions with cart data for completed purchases on your website. If the ad that was interacted with before the purchase has an associated product (see Shopping Ads) then this product is considered the advertised product. Any product included in the order the customer places is a sold product. If the advertised and sold products match, then the total value you made from the sales of these products is shown under lead revenue. Example: Someone clicked on a Shopping ad for a hat then bought the same hat and a shirt. The hat is priced $10 and the shirt is priced $20. The lead revenue of this order is $10. This metric is only available if you report conversions with cart data. This metric is a monetary value and returned in the customer's currency by default. See the metrics_currency parameter at https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause",
          "type": "string",
          "format": "int64"
        },
        "contentImpressionShare": {
          "type": "number",
          "format": "double",
          "description": "The impressions you've received on the Display Network divided by the estimated number of impressions you were eligible to receive. Note: Content impression share is reported in the range of 0.1 to 1. Any value below 0.1 is reported as 0.0999."
        },
        "clientAccountCrossSellGrossProfitMicros": {
          "description": "Client account cross-sell gross profit is the profit you made from products sold as a result of advertising a different product, minus cost of goods sold (COGS). How it works: You report conversions with cart data for completed purchases on your website. If the ad that was interacted with before the purchase has an associated product (see Shopping Ads) then this product is considered the advertised product. Any product included in the purchase is a sold product. If these products don't match then this is considered cross-sell. Cross-sell gross profit is the revenue you made from cross-sell attributed to your ads minus the cost of the goods sold. Example: Someone clicked on a Shopping ad for a hat then bought the same hat and a shirt. The shirt is priced $20 and has a cost of goods sold value of $5. The cross-sell gross profit of this order is $15 = $20 - $5. This metric is only available if you report conversions with cart data. This metric is a monetary value and returned in the customer's currency by default. See the metrics_currency parameter at https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause",
          "type": "string",
          "format": "int64"
        },
        "crossDeviceConversionsByConversionDate": {
          "description": "The number of cross-device conversions by conversion date. Details for the by_conversion_date columns are available at https://support.google.com/sa360/answer/9250611.",
          "type": "number",
          "format": "double"
        },
        "allConversionsValuePerCost": {
          "type": "number",
          "format": "double",
          "description": "The value of all conversions divided by the total cost of ad interactions (such as clicks for text ads or views for video ads)."
        },
        "conversionsValueByConversionDate": {
          "type": "number",
          "format": "double",
          "description": "The sum of biddable conversions value by conversion date. When this column is selected with date, the values in date column means the conversion date."
        },
        "interactionEventTypes": {
          "description": "The types of payable and free interactions.",
          "type": "array",
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "Click to site. In most cases, this interaction navigates to an external location, usually the advertiser's landing page. This is also the default InteractionEventType for click events.",
              "The user's expressed intent to engage with the ad in-place.",
              "User viewed a video ad.",
              "The default InteractionEventType for ad conversion events. This is used when an ad conversion row does NOT indicate that the free interactions (for example, the ad conversions) should be 'promoted' and reported as part of the core metrics. These are simply other (ad) conversions."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "CLICK",
              "ENGAGEMENT",
              "VIDEO_VIEW",
              "NONE"
            ]
          }
        },
        "searchRankLostTopImpressionShare": {
          "type": "number",
          "format": "double",
          "description": "The number estimating how often your ad didn't show adjacent to the top organic search results due to poor Ad Rank. Note: Search rank lost top impression share is reported in the range of 0 to 0.9. Any value above 0.9 is reported as 0.9001."
        },
        "crossSellUnitsSold": {
          "description": "Cross-sell units sold is the total number of products sold as a result of advertising a different product. How it works: You report conversions with cart data for completed purchases on your website. If the ad that was interacted with before the purchase has an associated product (see Shopping Ads) then this product is considered the advertised product. Any product included in the order the customer places is a sold product. If these products don't match then this is considered cross-sell. Cross-sell units sold is the total number of cross-sold products from all orders attributed to your ads. Example: Someone clicked on a Shopping ad for a hat then bought the same hat, a shirt and a jacket. The cross-sell units sold in this order is 2. This metric is only available if you report conversions with cart data.",
          "type": "number",
          "format": "double"
        },
        "rawEventConversionMetrics": {
          "description": "The raw event conversion metrics.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__Value"
          }
        },
        "searchRankLostAbsoluteTopImpressionShare": {
          "type": "number",
          "format": "double",
          "description": "The number estimating how often your ad wasn't the very first ad among the top ads in the search results due to poor Ad Rank. Note: Search rank lost absolute top impression share is reported in the range of 0 to 0.9. Any value above 0.9 is reported as 0.9001."
        },
        "searchBudgetLostImpressionShare": {
          "description": "The estimated percent of times that your ad was eligible to show on the Search Network but didn't because your budget was too low. Note: Search budget lost impression share is reported in the range of 0 to 0.9. Any value above 0.9 is reported as 0.9001.",
          "type": "number",
          "format": "double"
        },
        "searchBudgetLostTopImpressionShare": {
          "description": "The number estimating how often your ad didn't show adjacent to the top organic search results due to a low budget. Note: Search budget lost top impression share is reported in the range of 0 to 0.9. Any value above 0.9 is reported as 0.9001.",
          "type": "number",
          "format": "double"
        },
        "averageImpressionFrequencyPerUser": {
          "description": "The average number of times a unique user saw your ad during the requested time period. This metric cannot be aggregated, and can only be requested for date ranges of 92 days or less. This metric is available for following campaign types - Display, Video, Discovery and App.",
          "type": "number",
          "format": "double"
        },
        "clientAccountCrossSellRevenueMicros": {
          "type": "string",
          "format": "int64",
          "description": "Client account cross-sell revenue is the total amount you made from products sold as a result of advertising a different product. How it works: You report conversions with cart data for completed purchases on your website. If the ad that was interacted with before the purchase has an associated product (see Shopping Ads) then this product is considered the advertised product. Any product included in the order the customer places is a sold product. If these products don't match then this is considered cross-sell. Cross-sell revenue is the total value you made from cross-sell attributed to your ads. Example: Someone clicked on a Shopping ad for a hat then bought the same hat and a shirt. The hat is priced $10 and the shirt is priced $20. The cross-sell revenue of this order is $20. This metric is only available if you report conversions with cart data. This metric is a monetary value and returned in the customer's currency by default. See the metrics_currency parameter at https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause"
        },
        "revenueMicros": {
          "description": "Revenue is the total amount you made from orders attributed to your ads. How it works: You report conversions with cart data for completed purchases on your website. Revenue is the total value of all the orders you received attributed to your ads, minus any discount. Example: Someone clicked on a Shopping ad for a hat then bought the same hat and a shirt in an order from your website. The hat is priced $10 and the shirt is priced $20. The entire order has a $5 discount. The revenue from this order is $25 = ($10 + $20) - $5. This metric is only available if you report conversions with cart data.",
          "type": "string",
          "format": "int64"
        },
        "averageCost": {
          "type": "number",
          "format": "double",
          "description": "The average amount you pay per interaction. This amount is the total cost of your ads divided by the total number of interactions."
        },
        "allConversionsFromStoreWebsite": {
          "description": "The number of times that people were taken to a business's URL after clicking an ad. This metric applies to feed items only.",
          "type": "number",
          "format": "double"
        },
        "contentRankLostImpressionShare": {
          "type": "number",
          "format": "double",
          "description": "The estimated percentage of impressions on the Display Network that your ads didn't receive due to poor Ad Rank. Note: Content rank lost impression share is reported in the range of 0 to 0.9. Any value above 0.9 is reported as 0.9001."
        },
        "crossDeviceConversions": {
          "description": "Conversions from when a customer clicks on an ad on one device, then converts on a different device or browser. Cross-device conversions are already included in all_conversions.",
          "type": "number",
          "format": "double"
        },
        "valuePerConversion": {
          "type": "number",
          "format": "double",
          "description": "The value of biddable conversion divided by the number of biddable conversions. Shows how much, on average, each of the biddable conversions is worth."
        },
        "crossDeviceConversionsValue": {
          "type": "number",
          "format": "double",
          "description": "The sum of the value of cross-device conversions."
        },
        "clientAccountConversionsValue": {
          "description": "The value of client account conversions. This only includes conversion actions which include_in_client_account_conversions_metric attribute is set to true. If you use conversion-based bidding, your bid strategies will optimize for these conversions.",
          "type": "number",
          "format": "double"
        },
        "averageCpc": {
          "description": "The total cost of all clicks divided by the total number of clicks received. This metric is a monetary value and returned in the customer's currency by default. See the metrics_currency parameter at https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause",
          "type": "number",
          "format": "double"
        },
        "costPerCurrentModelAttributedConversion": {
          "type": "number",
          "format": "double",
          "description": "The cost of ad interactions divided by current model attributed conversions. This only includes conversion actions which include_in_conversions_metric attribute is set to true. If you use conversion-based bidding, your bid strategies will optimize for these conversions."
        },
        "costPerAllConversions": {
          "type": "number",
          "format": "double",
          "description": "The cost of ad interactions divided by all conversions."
        },
        "mobileFriendlyClicksPercentage": {
          "description": "The percentage of mobile clicks that go to a mobile-friendly page.",
          "type": "number",
          "format": "double"
        },
        "historicalSearchPredictedCtr": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Quality of the creative is below average.",
            "Quality of the creative is average.",
            "Quality of the creative is above average."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BELOW_AVERAGE",
            "AVERAGE",
            "ABOVE_AVERAGE"
          ],
          "description": "The historical search predicted click through rate (CTR)."
        },
        "unitsSold": {
          "description": "Units sold is the total number of products sold from orders attributed to your ads. How it works: You report conversions with cart data for completed purchases on your website. Units sold is the total number of products sold from all orders attributed to your ads. Example: Someone clicked on a Shopping ad for a hat then bought the same hat, a shirt and a jacket. The units sold in this order is 3. This metric is only available if you report conversions with cart data.",
          "type": "number",
          "format": "double"
        },
        "absoluteTopImpressionPercentage": {
          "description": "Search absolute top impression share is the percentage of your Search ad impressions that are shown in the most prominent Search position.",
          "type": "number",
          "format": "double"
        },
        "orders": {
          "description": "Orders is the total number of purchase conversions you received attributed to your ads. How it works: You report conversions with cart data for completed purchases on your website. If a conversion is attributed to previous interactions with your ads (clicks for text or Shopping ads, views for video ads etc.) it's counted as an order. Example: Someone clicked on a Shopping ad for a hat then bought the same hat and a shirt in an order on your website. Even though they bought 2 products, this would count as 1 order. This metric is only available if you report conversions with cart data.",
          "type": "number",
          "format": "double"
        },
        "generalInvalidClickRate": {
          "type": "number",
          "format": "double",
          "description": "The percentage of clicks that have been filtered out of your total number of clicks (filtered + non-filtered clicks) due to being general invalid clicks. These are clicks Google considers illegitimate that are detected through routine means of filtration (that is, known invalid data-center traffic, bots and spiders or other crawlers, irregular patterns, etc). You're not charged for them, and they don't affect your account statistics. See the help page at https://support.google.com/campaignmanager/answer/6076504 for details."
        },
        "historicalCreativeQualityScore": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Quality of the creative is below average.",
            "Quality of the creative is average.",
            "Quality of the creative is above average."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BELOW_AVERAGE",
            "AVERAGE",
            "ABOVE_AVERAGE"
          ],
          "description": "The creative historical quality score."
        },
        "ctr": {
          "type": "number",
          "format": "double",
          "description": "The number of clicks your ad receives (Clicks) divided by the number of times your ad is shown (Impressions)."
        },
        "conversions": {
          "description": "The number of conversions. This only includes conversion actions which include_in_conversions_metric attribute is set to true. If you use conversion-based bidding, your bid strategies will optimize for these conversions.",
          "type": "number",
          "format": "double"
        },
        "averageQualityScore": {
          "description": "The average quality score.",
          "type": "number",
          "format": "double"
        },
        "visits": {
          "description": "Clicks that Search Ads 360 has successfully recorded and forwarded to an advertiser's landing page.",
          "type": "number",
          "format": "double"
        },
        "allConversionsValue": {
          "type": "number",
          "format": "double",
          "description": "The value of all conversions."
        },
        "impressions": {
          "description": "Count of how often your ad has appeared on a search results page or website on the Google Network.",
          "type": "string",
          "format": "int64"
        },
        "averageCartSize": {
          "type": "number",
          "format": "double",
          "description": "Average cart size is the average number of products in each order attributed to your ads. How it works: You report conversions with cart data for completed purchases on your website. Average cart size is the total number of products sold divided by the total number of orders you received. Example: You received 2 orders, the first included 3 products and the second included 2. The average cart size is 2.5 products = (3+2)/2. This metric is only available if you report conversions with cart data."
        },
        "searchBudgetLostAbsoluteTopImpressionShare": {
          "description": "The number estimating how often your ad wasn't the very first ad among the top ads in the search results due to a low budget. Note: Search budget lost absolute top impression share is reported in the range of 0 to 0.9. Any value above 0.9 is reported as 0.9001.",
          "type": "number",
          "format": "double"
        },
        "allConversionsFromStoreVisit": {
          "description": "Estimated number of times people visited a business after clicking an ad. This metric applies to feed items only.",
          "type": "number",
          "format": "double"
        },
        "allConversionsValueByConversionDate": {
          "type": "number",
          "format": "double",
          "description": "The value of all conversions. When this column is selected with date, the values in date column means the conversion date. Details for the by_conversion_date columns are available at https://support.google.com/sa360/answer/9250611."
        },
        "interactions": {
          "type": "string",
          "format": "int64",
          "description": "The number of interactions. An interaction is the main user action associated with an ad format-clicks for text and shopping ads, views for video ads, and so on."
        },
        "clicks": {
          "type": "string",
          "format": "int64",
          "description": "The number of clicks."
        },
        "clientAccountCrossSellUnitsSold": {
          "type": "number",
          "format": "double",
          "description": "Client account cross-sell units sold is the total number of products sold as a result of advertising a different product. How it works: You report conversions with cart data for completed purchases on your website. If the ad that was interacted with before the purchase has an associated product (see Shopping Ads) then this product is considered the advertised product. Any product included in the order the customer places is a sold product. If these products don't match then this is considered cross-sell. Cross-sell units sold is the total number of cross-sold products from all orders attributed to your ads. Example: Someone clicked on a Shopping ad for a hat then bought the same hat, a shirt and a jacket. The cross-sell units sold in this order is 2. This metric is only available if you report conversions with cart data."
        },
        "averageOrderValueMicros": {
          "description": "Average order value is the average revenue you made per order attributed to your ads. How it works: You report conversions with cart data for completed purchases on your website. Average order value is the total revenue from your orders divided by the total number of orders. Example: You received 3 orders which made $10, $15 and $20 worth of revenue. The average order value is $15 = ($10 + $15 + $20)/3. This metric is only available if you report conversions with cart data.",
          "type": "string",
          "format": "int64"
        },
        "conversionsFromInteractionsRate": {
          "description": "Average biddable conversions (from interaction) per conversion eligible interaction. Shows how often, on average, an ad interaction leads to a biddable conversion.",
          "type": "number",
          "format": "double"
        },
        "valuePerAllConversionsByConversionDate": {
          "description": "The value of all conversions divided by the number of all conversions. When this column is selected with date, the values in date column means the conversion date. Details for the by_conversion_date columns are available at https://support.google.com/sa360/answer/9250611.",
          "type": "number",
          "format": "double"
        },
        "topImpressionPercentage": {
          "type": "number",
          "format": "double",
          "description": "The percent of your ad impressions that are shown adjacent to the top organic search results."
        },
        "grossProfitMargin": {
          "description": "Gross profit margin is the percentage gross profit you made from orders attributed to your ads, after taking out the cost of goods sold (COGS). How it works: You report conversions with cart data for completed purchases on your website. Gross profit margin is the gross profit you made divided by your total revenue and multiplied by 100%. Gross profit margin calculations only include products that have a cost of goods sold value in Merchant Center. Example: Someone bought a hat and a shirt in an order on your website. The hat is priced $10 and has a cost of goods sold value of $3. The shirt is priced $20 but has no cost of goods sold value. Gross profit margin for this order will only take into account the hat because it has a cost of goods sold value, so it's 70% = ($10 - $3)/$10 x 100%. This metric is only available if you report conversions with cart data.",
          "type": "number",
          "format": "double"
        },
        "allConversionsFromClickToCall": {
          "type": "number",
          "format": "double",
          "description": "The number of times people clicked the \"Call\" button to call a business during or after clicking an ad. This number doesn't include whether or not calls were connected, or the duration of any calls. This metric applies to feed items only."
        },
        "leadGrossProfitMicros": {
          "description": "Lead gross profit is the profit you made from products sold as a result of advertising the same product, minus cost of goods sold (COGS). How it works: You report conversions with cart data for completed purchases on your website. If the ad that was interacted with before the purchase has an associated product (see Shopping Ads) then this product is considered the advertised product. Any product included in the order the customer places is a sold product. If the advertised and sold products match, then the revenue you made from these sales minus the cost of goods sold is your lead gross profit. Example: Someone clicked on a Shopping ad for a hat then bought the same hat and a shirt. The hat is priced $10 and has a cost of goods sold value of $3. The lead gross profit of this order is $7 = $10 - $3. This metric is only available if you report conversions with cart data. This metric is a monetary value and returned in the customer's currency by default. See the metrics_currency parameter at https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause",
          "type": "string",
          "format": "int64"
        },
        "searchTopImpressionShare": {
          "description": "The impressions you've received among the top ads compared to the estimated number of impressions you were eligible to receive among the top ads. Note: Search top impression share is reported in the range of 0.1 to 1. Any value below 0.1 is reported as 0.0999. Top ads are generally above the top organic results, although they may show below the top organic results on certain queries.",
          "type": "number",
          "format": "double"
        },
        "historicalQualityScore": {
          "type": "string",
          "format": "int64",
          "description": "The historical quality score."
        },
        "searchAbsoluteTopImpressionShare": {
          "type": "number",
          "format": "double",
          "description": "The percentage of the customer's Shopping or Search ad impressions that are shown in the most prominent Shopping position. See https://support.google.com/sa360/answer/9566729 for details. Any value below 0.1 is reported as 0.0999."
        },
        "averageCpm": {
          "description": "Average cost-per-thousand impressions (CPM). This metric is a monetary value and returned in the customer's currency by default. See the metrics_currency parameter at https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause",
          "type": "number",
          "format": "double"
        },
        "crossSellGrossProfitMicros": {
          "type": "string",
          "format": "int64",
          "description": "Cross-sell gross profit is the profit you made from products sold as a result of advertising a different product, minus cost of goods sold (COGS). How it works: You report conversions with cart data for completed purchases on your website. If the ad that was interacted with before the purchase has an associated product (see Shopping Ads) then this product is considered the advertised product. Any product included in the purchase is a sold product. If these products don't match then this is considered cross-sell. Cross-sell gross profit is the revenue you made from cross-sell attributed to your ads minus the cost of the goods sold. Example: Someone clicked on a Shopping ad for a hat then bought the same hat and a shirt. The shirt is priced $20 and has a cost of goods sold value of $5. The cross-sell gross profit of this order is $15 = $20 - $5. This metric is only available if you report conversions with cart data. This metric is a monetary value and returned in the customer's currency by default. See the metrics_currency parameter at https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause"
        },
        "crossDeviceConversionsValueByConversionDate": {
          "type": "number",
          "format": "double",
          "description": "The sum of cross-device conversions value by conversion date. Details for the by_conversion_date columns are available at https://support.google.com/sa360/answer/9250611."
        },
        "searchClickShare": {
          "type": "number",
          "format": "double",
          "description": "The number of clicks you've received on the Search Network divided by the estimated number of clicks you were eligible to receive. Note: Search click share is reported in the range of 0.1 to 1. Any value below 0.1 is reported as 0.0999."
        },
        "leadCostOfGoodsSoldMicros": {
          "description": "Lead cost of goods sold (COGS) is the total cost of products sold as a result of advertising the same product. How it works: You report conversions with cart data for completed purchases on your website. If the ad that was interacted with has an associated product (see Shopping Ads) then this product is considered the advertised product. Any product included in the order the customer places is a sold product. If the advertised and sold products match, then the cost of these goods is counted under lead cost of goods sold. Example: Someone clicked on a Shopping ad for a hat then bought the same hat and a shirt. The hat has a cost of goods sold value of $3, the shirt has a cost of goods sold value of $5. The lead cost of goods sold for this order is $3. This metric is only available if you report conversions with cart data. This metric is a monetary value and returned in the customer's currency by default. See the metrics_currency parameter at https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause",
          "type": "string",
          "format": "int64"
        },
        "allConversionsFromMenu": {
          "description": "The number of times people clicked a link to view a business's menu after clicking an ad. This metric applies to feed items only.",
          "type": "number",
          "format": "double"
        },
        "grossProfitMicros": {
          "description": "Gross profit is the profit you made from orders attributed to your ads minus the cost of goods sold (COGS). How it works: Gross profit is the revenue you made from sales attributed to your ads minus cost of goods sold. Gross profit calculations only include products that have a cost of goods sold value in Merchant Center. Example: Someone clicked on a Shopping ad for a hat then bought the same hat and a shirt in an order from your website. The hat is priced $10 and the shirt is priced $20. The hat has a cost of goods sold value of $3, but the shirt has no cost of goods sold value. Gross profit for this order will only take into account the hat, so it's $7 = $10 - $3. This metric is only available if you report conversions with cart data.",
          "type": "string",
          "format": "int64"
        },
        "invalidClickRate": {
          "description": "The percentage of clicks filtered out of your total number of clicks (filtered + non-filtered clicks) during the reporting period.",
          "type": "number",
          "format": "double"
        },
        "costMicros": {
          "description": "The sum of your cost-per-click (CPC) and cost-per-thousand impressions (CPM) costs during this period. This metric is a monetary value and returned in the customer's currency by default. See the metrics_currency parameter at https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause",
          "type": "string",
          "format": "int64"
        },
        "allConversionsFromDirections": {
          "description": "The number of times people clicked a \"Get directions\" button to navigate to a business after clicking an ad. This metric applies to feed items only.",
          "type": "number",
          "format": "double"
        },
        "valuePerConversionsByConversionDate": {
          "description": "Biddable conversions value by conversion date divided by biddable conversions by conversion date. Shows how much, on average, each of the biddable conversions is worth (by conversion date). When this column is selected with date, the values in date column means the conversion date.",
          "type": "number",
          "format": "double"
        },
        "uniqueUsers": {
          "type": "string",
          "format": "int64",
          "description": "The number of unique users who saw your ad during the requested time period. This metric cannot be aggregated, and can only be requested for date ranges of 92 days or less. This metric is available for following campaign types - Display, Video, Discovery and App."
        },
        "clientAccountConversions": {
          "type": "number",
          "format": "double",
          "description": "The number of client account conversions. This only includes conversion actions which include_in_client_account_conversions_metric attribute is set to true. If you use conversion-based bidding, your bid strategies will optimize for these conversions."
        },
        "allConversions": {
          "type": "number",
          "format": "double",
          "description": "The total number of conversions. This includes all conversions regardless of the value of include_in_conversions_metric."
        },
        "searchRankLostImpressionShare": {
          "type": "number",
          "format": "double",
          "description": "The estimated percentage of impressions on the Search Network that your ads didn't receive due to poor Ad Rank. Note: Search rank lost impression share is reported in the range of 0 to 0.9. Any value above 0.9 is reported as 0.9001."
        },
        "leadRevenueMicros": {
          "description": "Lead revenue is the total amount you made from products sold as a result of advertising the same product. How it works: You report conversions with cart data for completed purchases on your website. If the ad that was interacted with before the purchase has an associated product (see Shopping Ads) then this product is considered the advertised product. Any product included in the order the customer places is a sold product. If the advertised and sold products match, then the total value you made from the sales of these products is shown under lead revenue. Example: Someone clicked on a Shopping ad for a hat then bought the same hat and a shirt. The hat is priced $10 and the shirt is priced $20. The lead revenue of this order is $10. This metric is only available if you report conversions with cart data. This metric is a monetary value and returned in the customer's currency by default. See the metrics_currency parameter at https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause",
          "type": "string",
          "format": "int64"
        },
        "allConversionsFromInteractionsValuePerInteraction": {
          "description": "The value of all conversions from interactions divided by the total number of interactions.",
          "type": "number",
          "format": "double"
        },
        "leadUnitsSold": {
          "type": "number",
          "format": "double",
          "description": "Lead units sold is the total number of products sold as a result of advertising the same product. How it works: You report conversions with cart data for completed purchases on your website. If the ad that was interacted with before the purchase has an associated product (see Shopping Ads) then this product is considered the advertised product. Any product included in the order the customer places is a sold product. If the advertised and sold products match, then the total number of these products sold is shown under lead units sold. Example: Someone clicked on a Shopping ad for a hat then bought the same hat, a shirt and a jacket. The lead units sold in this order is 1. This metric is only available if you report conversions with cart data."
        },
        "historicalLandingPageQualityScore": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Quality of the creative is below average.",
            "Quality of the creative is average.",
            "Quality of the creative is above average."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BELOW_AVERAGE",
            "AVERAGE",
            "ABOVE_AVERAGE"
          ],
          "description": "The quality of historical landing page experience."
        },
        "conversionsFromInteractionsValuePerInteraction": {
          "type": "number",
          "format": "double",
          "description": "The value of conversions from interactions divided by the number of ad interactions. This only includes conversion actions which include_in_conversions_metric attribute is set to true. If you use conversion-based bidding, your bid strategies will optimize for these conversions."
        },
        "allConversionsByConversionDate": {
          "type": "number",
          "format": "double",
          "description": "The total number of conversions. This includes all conversions regardless of the value of include_in_conversions_metric. When this column is selected with date, the values in date column means the conversion date. Details for the by_conversion_date columns are available at https://support.google.com/sa360/answer/9250611."
        },
        "clientAccountViewThroughConversions": {
          "description": "The total number of view-through conversions. These happen when a customer sees an image or rich media ad, then later completes a conversion on your site without interacting with (for example, clicking on) another ad.",
          "type": "string",
          "format": "int64"
        },
        "clientAccountLeadUnitsSold": {
          "type": "number",
          "format": "double",
          "description": "Client account lead units sold is the total number of products sold as a result of advertising the same product. How it works: You report conversions with cart data for completed purchases on your website. If the ad that was interacted with before the purchase has an associated product (see Shopping Ads) then this product is considered the advertised product. Any product included in the order the customer places is a sold product. If the advertised and sold products match, then the total number of these products sold is shown under lead units sold. Example: Someone clicked on a Shopping ad for a hat then bought the same hat, a shirt and a jacket. The lead units sold in this order is 1. This metric is only available if you report conversions with cart data."
        },
        "searchExactMatchImpressionShare": {
          "description": "The impressions you've received divided by the estimated number of impressions you were eligible to receive on the Search Network for search terms that matched your keywords exactly (or were close variants of your keyword), regardless of your keyword match types. Note: Search exact match impression share is reported in the range of 0.1 to 1. Any value below 0.1 is reported as 0.0999.",
          "type": "number",
          "format": "double"
        },
        "conversionsByConversionDate": {
          "type": "number",
          "format": "double",
          "description": "The sum of conversions by conversion date for biddable conversion types. Can be fractional due to attribution modeling. When this column is selected with date, the values in date column means the conversion date."
        },
        "conversionsValuePerCost": {
          "type": "number",
          "format": "double",
          "description": "The value of biddable conversion divided by the total cost of conversion eligible interactions."
        },
        "interactionRate": {
          "description": "How often people interact with your ad after it is shown to them. This is the number of interactions divided by the number of times your ad is shown.",
          "type": "number",
          "format": "double"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__Metrics",
      "description": "Metrics data."
    },
    "GoogleAdsSearchads360V23Services__SuggestSmartCampaignBudgetOptionsResponse": {
      "id": "GoogleAdsSearchads360V23Services__SuggestSmartCampaignBudgetOptionsResponse",
      "description": "Response message for SmartCampaignSuggestService.SuggestSmartCampaignBudgetOptions. Depending on whether the system could suggest the options, either all of the options or none of them might be returned.",
      "type": "object",
      "properties": {
        "low": {
          "description": "Optional. The lowest budget option.",
          "$ref": "GoogleAdsSearchads360V23Services_SuggestSmartCampaignBudgetOptionsResponse_BudgetOption"
        },
        "recommended": {
          "description": "Optional. The recommended budget option.",
          "$ref": "GoogleAdsSearchads360V23Services_SuggestSmartCampaignBudgetOptionsResponse_BudgetOption"
        },
        "high": {
          "description": "Optional. The highest budget option.",
          "$ref": "GoogleAdsSearchads360V23Services_SuggestSmartCampaignBudgetOptionsResponse_BudgetOption"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateCustomAudiencesResponse": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateCustomAudiencesResponse",
      "description": "Response message for custom audience mutate.",
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateCustomAudienceResult"
          },
          "description": "All results for the mutate."
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__AdGroupCriterion": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__AdGroupCriterion",
      "description": "An ad group criterion. The ad_group_criterion report only returns criteria that were explicitly added to the ad group.",
      "properties": {
        "finalUrls": {
          "description": "The list of possible final URLs after all cross-domain redirects for the ad.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "finalUrlSuffix": {
          "type": "string",
          "description": "URL template for appending params to final URL."
        },
        "engineId": {
          "type": "string",
          "description": "Output only. ID of the ad group criterion in the external engine account. This field is for non-Google Ads account only, for example, Yahoo Japan, Microsoft, Baidu etc. For Google Ads entity, use \"ad_group_criterion.criterion_id\" instead.",
          "readOnly": true
        },
        "lastModifiedTime": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The datetime when this ad group criterion was last modified. The datetime is in the customer's time zone and in \"yyyy-MM-dd HH:mm:ss.ssssss\" format."
        },
        "cpmBidMicros": {
          "type": "string",
          "format": "int64",
          "description": "The CPM (cost-per-thousand viewable impressions) bid."
        },
        "userList": {
          "description": "Immutable. User List.",
          "$ref": "GoogleAdsSearchads360V23Common__UserListInfo"
        },
        "status": {
          "description": "The status of the criterion. This is the status of the ad group criterion entity, set by the client. Note: UI reports may incorporate additional information that affects whether a criterion is eligible to run. In some cases a criterion that's REMOVED in the API can still show as enabled in the UI. For example, campaigns by default show to users of all age ranges unless excluded. The UI will show each age range as \"enabled\", since they're eligible to see the ads; but AdGroupCriterion.status will show \"removed\", since no positive criterion was added.",
          "type": "string",
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The ad group criterion is enabled.",
            "The ad group criterion is paused.",
            "The ad group criterion is removed."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "PAUSED",
            "REMOVED"
          ]
        },
        "approvalStatus": {
          "description": "Output only. Approval status of the criterion.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Approved.",
            "Disapproved.",
            "Pending Review.",
            "Under review."
          ],
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "APPROVED",
            "DISAPPROVED",
            "PENDING_REVIEW",
            "UNDER_REVIEW"
          ]
        },
        "criterionId": {
          "readOnly": true,
          "description": "Output only. The ID of the criterion.",
          "type": "string",
          "format": "int64"
        },
        "language": {
          "description": "Immutable. Language.",
          "$ref": "GoogleAdsSearchads360V23Common__LanguageInfo"
        },
        "cpcBidMicros": {
          "type": "string",
          "format": "int64",
          "description": "The CPC (cost-per-click) bid."
        },
        "mobileAppCategory": {
          "description": "Immutable. Mobile app category.",
          "$ref": "GoogleAdsSearchads360V23Common__MobileAppCategoryInfo"
        },
        "bidModifier": {
          "type": "number",
          "format": "double",
          "description": "The modifier for the bid when the criterion matches. The modifier must be in the range: 0.1 - 10.0. Most targetable criteria types support modifiers."
        },
        "ageRange": {
          "description": "Immutable. Age range.",
          "$ref": "GoogleAdsSearchads360V23Common__AgeRangeInfo"
        },
        "keyword": {
          "description": "Immutable. Keyword.",
          "$ref": "GoogleAdsSearchads360V23Common__KeywordInfo"
        },
        "combinedAudience": {
          "description": "Immutable. Combined Audience.",
          "$ref": "GoogleAdsSearchads360V23Common__CombinedAudienceInfo"
        },
        "positionEstimates": {
          "readOnly": true,
          "description": "Output only. Estimates for criterion bids at various positions.",
          "$ref": "GoogleAdsSearchads360V23Resources_AdGroupCriterion_PositionEstimates"
        },
        "primaryStatus": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The ad group criterion is eligible to serve.",
            "The ad group criterion is paused.",
            "The ad group criterion is removed.",
            "The ad group criterion is pending.",
            "The ad group criterion is not eligible to serve."
          ],
          "description": "Output only. The primary status for the ad group criterion.",
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ELIGIBLE",
            "PAUSED",
            "REMOVED",
            "PENDING",
            "NOT_ELIGIBLE"
          ]
        },
        "effectiveCpvBidSource": {
          "description": "Output only. Source of the effective CPV bid.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Effective bid or target is inherited from campaign bidding strategy.",
            "The bid or target is defined on the ad group.",
            "The bid or target is defined on the ad group criterion."
          ],
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CAMPAIGN_BIDDING_STRATEGY",
            "AD_GROUP",
            "AD_GROUP_CRITERION"
          ]
        },
        "effectivePercentCpcBidSource": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CAMPAIGN_BIDDING_STRATEGY",
            "AD_GROUP",
            "AD_GROUP_CRITERION"
          ],
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Effective bid or target is inherited from campaign bidding strategy.",
            "The bid or target is defined on the ad group.",
            "The bid or target is defined on the ad group criterion."
          ],
          "description": "Output only. Source of the effective Percent CPC bid."
        },
        "engineStatus": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Deprecated. Do not use.",
            "Baidu: Bid or quality too low to be displayed.",
            "Baidu: Bid or quality too low for mobile, but eligible to display for desktop.",
            "Baidu: Bid or quality too low for desktop, but eligible to display for mobile.",
            "Baidu: Bid or quality too low to be displayed.",
            "Baidu: Paused by Baidu due to low search volume.",
            "Baidu: Mobile URL in process to be reviewed.",
            "Baidu: The landing page for one device is invalid, while the landing page for the other device is valid.",
            "Baidu: Keyword has been created and paused by Baidu account management, and is now ready for you to activate it.",
            "Baidu: In process to be reviewed by Baidu. Gemini: Criterion under review.",
            "Baidu: Criterion to be reviewed.",
            "Deprecated. Do not use. Previously used by Gemini",
            "Y!J : Criterion pending review",
            "Criterion has been paused.",
            "Criterion has been removed.",
            "Criterion has been approved.",
            "Criterion has been disapproved.",
            "Criterion is active and serving.",
            "Criterion has been paused since the account is paused."
          ],
          "description": "Output only. The Engine Status for ad group criterion.",
          "enumDeprecated": [
            false,
            false,
            true,
            false,
            false,
            false,
            false,
            false,
            false,
            false,
            false,
            false,
            false,
            true,
            false,
            false,
            false,
            false,
            false,
            false,
            false
          ],
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AD_GROUP_CRITERION_ELIGIBLE",
            "AD_GROUP_CRITERION_INAPPROPRIATE_FOR_CAMPAIGN",
            "AD_GROUP_CRITERION_INVALID_MOBILE_SEARCH",
            "AD_GROUP_CRITERION_INVALID_PC_SEARCH",
            "AD_GROUP_CRITERION_INVALID_SEARCH",
            "AD_GROUP_CRITERION_LOW_SEARCH_VOLUME",
            "AD_GROUP_CRITERION_MOBILE_URL_UNDER_REVIEW",
            "AD_GROUP_CRITERION_PARTIALLY_INVALID",
            "AD_GROUP_CRITERION_TO_BE_ACTIVATED",
            "AD_GROUP_CRITERION_UNDER_REVIEW",
            "AD_GROUP_CRITERION_NOT_REVIEWED",
            "AD_GROUP_CRITERION_ON_HOLD",
            "AD_GROUP_CRITERION_PENDING_REVIEW",
            "AD_GROUP_CRITERION_PAUSED",
            "AD_GROUP_CRITERION_REMOVED",
            "AD_GROUP_CRITERION_APPROVED",
            "AD_GROUP_CRITERION_DISAPPROVED",
            "AD_GROUP_CRITERION_SERVING",
            "AD_GROUP_CRITERION_ACCOUNT_PAUSED"
          ]
        },
        "userInterest": {
          "description": "Immutable. User Interest.",
          "$ref": "GoogleAdsSearchads360V23Common__UserInterestInfo"
        },
        "cpvBidMicros": {
          "description": "The CPV (cost-per-view) bid.",
          "type": "string",
          "format": "int64"
        },
        "videoLineup": {
          "description": "Immutable. Video lineup criterion.",
          "$ref": "GoogleAdsSearchads360V23Common__VideoLineupInfo"
        },
        "customAffinity": {
          "description": "Immutable. Custom Affinity.",
          "$ref": "GoogleAdsSearchads360V23Common__CustomAffinityInfo"
        },
        "primaryStatusReasons": {
          "readOnly": true,
          "description": "Output only. The primary status reasons for the ad group criterion.",
          "type": "array",
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents unknown value in this version.",
              "The user-specified time for this campaign to start is in the future. Contributes to AdGroupCriterionPrimaryStatus.PENDING.",
              "The ad group criterion is overridden by negative campaign criterion. Contributes to AdGroupCriterionPrimaryStatus.NOT_ELIGIBLE.",
              "The user-specified campaign status is paused. Contributes to AdGroupCriterionPrimaryStatus.PAUSED.",
              "The user-specified campaign status is removed. Contributes to AdGroupCriterionPrimaryStatus.REMOVED.",
              "The user-specified time for this campaign to end has passed. Contributes to AdGroupCriterionPrimaryStatus.ENDED.",
              "The user-specified ad group status is paused. Contributes to AdGroupCriterionPrimaryStatus.PAUSED.",
              "The user-specified ad group status is removed. Contributes to AdGroupCriterionPrimaryStatus.REMOVED.",
              "The ad group criterion is disapproved by the ads approval system. Contributes to AdGroupCriterionPrimaryStatus.NOT_ELIGIBLE.",
              "The ad group criterion is rarely served. Contributes to AdGroupCriterionPrimaryStatus.NOT_ELIGIBLE.",
              "The ad group criterion has a low quality score. Contributes to AdGroupCriterionPrimaryStatus.LIMITED.",
              "The ad group criterion is under review. Contributes to AdGroupCriterionPrimaryStatus.PENDING.",
              "The ad group criterion is pending review. Contributes to AdGroupCriterionPrimaryStatus.NOT_ELIGIBLE.",
              "The ad group criterion's bid is below the value necessary to serve on the first page. Contributes to AdGroupCriterionPrimaryStatus.LIMITED.",
              "The ad group criterion is negative. Contributes to AdGroupCriterionPrimaryStatus.NOT_ELIGIBLE.",
              "The ad group criterion is restricted. Contributes to AdGroupCriterionPrimaryStatus.NOT_ELIGIBLE.",
              "The user-specified ad group criterion status is paused. Contributes to AdGroupCriterionPrimaryStatus.PAUSED.",
              "The ad group criterion has been paused due to prolonged low activity in serving. Contributes to AdGroupCriterionPrimaryStatus.PAUSED.",
              "The user-specified ad group criterion status is removed. Contributes to AdGroupCriterionPrimaryStatus.REMOVED."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "CAMPAIGN_PENDING",
              "CAMPAIGN_CRITERION_NEGATIVE",
              "CAMPAIGN_PAUSED",
              "CAMPAIGN_REMOVED",
              "CAMPAIGN_ENDED",
              "AD_GROUP_PAUSED",
              "AD_GROUP_REMOVED",
              "AD_GROUP_CRITERION_DISAPPROVED",
              "AD_GROUP_CRITERION_RARELY_SERVED",
              "AD_GROUP_CRITERION_LOW_QUALITY",
              "AD_GROUP_CRITERION_UNDER_REVIEW",
              "AD_GROUP_CRITERION_PENDING_REVIEW",
              "AD_GROUP_CRITERION_BELOW_FIRST_PAGE_BID",
              "AD_GROUP_CRITERION_NEGATIVE",
              "AD_GROUP_CRITERION_RESTRICTED",
              "AD_GROUP_CRITERION_PAUSED",
              "AD_GROUP_CRITERION_PAUSED_DUE_TO_LOW_ACTIVITY",
              "AD_GROUP_CRITERION_REMOVED"
            ]
          }
        },
        "percentCpcBidMicros": {
          "description": "The CPC bid amount, expressed as a fraction of the advertised price for some good or service. The valid range for the fraction is [0,1) and the value stored here is 1,000,000 * [fraction].",
          "type": "string",
          "format": "int64"
        },
        "extendedDemographic": {
          "description": "Immutable. Extended demographic criterion.",
          "$ref": "GoogleAdsSearchads360V23Common__ExtendedDemographicInfo"
        },
        "creationTime": {
          "description": "Output only. The timestamp when this ad group criterion was created. The timestamp is in the customer's time zone and in \"yyyy-MM-dd HH:mm:ss\" format.",
          "type": "string",
          "readOnly": true
        },
        "effectiveCpmBidMicros": {
          "readOnly": true,
          "description": "Output only. The effective CPM (cost-per-thousand viewable impressions) bid.",
          "type": "string",
          "format": "int64"
        },
        "adGroup": {
          "description": "Immutable. The ad group to which the criterion belongs.",
          "type": "string"
        },
        "qualityInfo": {
          "description": "Output only. Information regarding the quality of the criterion.",
          "$ref": "GoogleAdsSearchads360V23Resources_AdGroupCriterion_QualityInfo",
          "readOnly": true
        },
        "disapprovalReasons": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Output only. List of disapproval reasons of the criterion. The different reasons for disapproving a criterion can be found here: https://support.google.com/adspolicy/answer/6008942 This field is read-only.",
          "readOnly": true
        },
        "topic": {
          "description": "Immutable. Topic.",
          "$ref": "GoogleAdsSearchads360V23Common__TopicInfo"
        },
        "effectiveCpcBidSource": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CAMPAIGN_BIDDING_STRATEGY",
            "AD_GROUP",
            "AD_GROUP_CRITERION"
          ],
          "description": "Output only. Source of the effective CPC bid.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Effective bid or target is inherited from campaign bidding strategy.",
            "The bid or target is defined on the ad group.",
            "The bid or target is defined on the ad group criterion."
          ]
        },
        "youtubeChannel": {
          "description": "Immutable. YouTube Channel.",
          "$ref": "GoogleAdsSearchads360V23Common__YouTubeChannelInfo"
        },
        "audience": {
          "description": "Immutable. Audience.",
          "$ref": "GoogleAdsSearchads360V23Common__AudienceInfo"
        },
        "effectiveLabels": {
          "readOnly": true,
          "description": "Output only. The resource names of effective labels attached to this ad group criterion. An effective label is a label inherited or directly assigned to this ad group criterion.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "trackingUrlTemplate": {
          "description": "The URL template for constructing a tracking URL.",
          "type": "string"
        },
        "finalMobileUrls": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The list of possible final mobile URLs after all cross-domain redirects."
        },
        "labels": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Output only. The resource names of labels attached to this ad group criterion.",
          "readOnly": true
        },
        "customIntent": {
          "description": "Immutable. Custom Intent.",
          "$ref": "GoogleAdsSearchads360V23Common__CustomIntentInfo"
        },
        "negative": {
          "type": "boolean",
          "description": "Immutable. Whether to target (`false`) or exclude (`true`) the criterion. This field is immutable. To switch a criterion from positive to negative, remove then re-add it."
        },
        "effectiveCpmBidSource": {
          "description": "Output only. Source of the effective CPM bid.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Effective bid or target is inherited from campaign bidding strategy.",
            "The bid or target is defined on the ad group.",
            "The bid or target is defined on the ad group criterion."
          ],
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CAMPAIGN_BIDDING_STRATEGY",
            "AD_GROUP",
            "AD_GROUP_CRITERION"
          ]
        },
        "systemServingStatus": {
          "description": "Output only. Serving status of the criterion.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Eligible.",
            "Low search volume."
          ],
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ELIGIBLE",
            "RARELY_SERVED"
          ]
        },
        "effectiveCpcBidMicros": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. The effective CPC (cost-per-click) bid."
        },
        "effectivePercentCpcBidMicros": {
          "description": "Output only. The effective Percent CPC bid amount.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        },
        "lifeEvent": {
          "description": "Immutable. Life event campaign criterion.",
          "$ref": "GoogleAdsSearchads360V23Common__LifeEventInfo"
        },
        "listingGroup": {
          "description": "Immutable. Listing group.",
          "$ref": "GoogleAdsSearchads360V23Common__ListingGroupInfo"
        },
        "customAudience": {
          "description": "Immutable. Custom Audience.",
          "$ref": "GoogleAdsSearchads360V23Common__CustomAudienceInfo"
        },
        "gender": {
          "description": "Immutable. Gender.",
          "$ref": "GoogleAdsSearchads360V23Common__GenderInfo"
        },
        "incomeRange": {
          "description": "Immutable. Income range.",
          "$ref": "GoogleAdsSearchads360V23Common__IncomeRangeInfo"
        },
        "mobileApplication": {
          "description": "Immutable. Mobile application.",
          "$ref": "GoogleAdsSearchads360V23Common__MobileApplicationInfo"
        },
        "parentalStatus": {
          "description": "Immutable. Parental status.",
          "$ref": "GoogleAdsSearchads360V23Common__ParentalStatusInfo"
        },
        "appPaymentModel": {
          "description": "Immutable. App Payment Model.",
          "$ref": "GoogleAdsSearchads360V23Common__AppPaymentModelInfo"
        },
        "type": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "KEYWORD",
            "PLACEMENT",
            "MOBILE_APP_CATEGORY",
            "MOBILE_APPLICATION",
            "DEVICE",
            "LOCATION",
            "LISTING_GROUP",
            "AD_SCHEDULE",
            "AGE_RANGE",
            "GENDER",
            "INCOME_RANGE",
            "PARENTAL_STATUS",
            "YOUTUBE_VIDEO",
            "YOUTUBE_CHANNEL",
            "USER_LIST",
            "PROXIMITY",
            "TOPIC",
            "LISTING_SCOPE",
            "LANGUAGE",
            "IP_BLOCK",
            "CONTENT_LABEL",
            "CARRIER",
            "USER_INTEREST",
            "WEBPAGE",
            "OPERATING_SYSTEM_VERSION",
            "APP_PAYMENT_MODEL",
            "MOBILE_DEVICE",
            "CUSTOM_AFFINITY",
            "CUSTOM_INTENT",
            "LOCATION_GROUP",
            "CUSTOM_AUDIENCE",
            "COMBINED_AUDIENCE",
            "KEYWORD_THEME",
            "AUDIENCE",
            "NEGATIVE_KEYWORD_LIST",
            "LOCAL_SERVICE_ID",
            "SEARCH_THEME",
            "BRAND",
            "BRAND_LIST",
            "LIFE_EVENT",
            "WEBPAGE_LIST",
            "VIDEO_LINEUP",
            "PLACEMENT_LIST",
            "VERTICAL_ADS_ITEM_GROUP_RULE_LIST",
            "VERTICAL_ADS_ITEM_GROUP_RULE"
          ],
          "readOnly": true,
          "description": "Output only. The type of the criterion.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Keyword, for example, 'mars cruise'.",
            "Placement, also known as Website, for example, 'www.flowers4sale.com'",
            "Mobile application categories to target.",
            "Mobile applications to target.",
            "Devices to target.",
            "Locations to target.",
            "Listing groups to target.",
            "Ad Schedule.",
            "Age range.",
            "Gender.",
            "Income Range.",
            "Parental status.",
            "YouTube Video.",
            "YouTube Channel.",
            "User list.",
            "Proximity.",
            "A topic target on the display network (for example, \"Pets & Animals\").",
            "Listing scope to target.",
            "Language.",
            "IpBlock.",
            "Content Label for category exclusion.",
            "Carrier.",
            "A category the user is interested in.",
            "Webpage criterion for dynamic search ads.",
            "Operating system version.",
            "App payment model.",
            "Mobile device.",
            "Custom affinity.",
            "Custom intent.",
            "Location group.",
            "Custom audience",
            "Combined audience",
            "Smart Campaign keyword theme",
            "Audience",
            "Negative Keyword List",
            "Local Services Ads Service ID.",
            "Search Theme.",
            "Brand",
            "Brand List",
            "Life Event",
            "Webpage List",
            "Video lineup",
            "Placement List",
            "A list of rules for item groups in Vertical Ads.",
            "A rule for an item group in Vertical Ads."
          ]
        },
        "brandList": {
          "description": "Immutable. Brand list criterion.",
          "$ref": "GoogleAdsSearchads360V23Common__BrandListInfo"
        },
        "placement": {
          "description": "Immutable. Placement.",
          "$ref": "GoogleAdsSearchads360V23Common__PlacementInfo"
        },
        "location": {
          "description": "Immutable. Location.",
          "$ref": "GoogleAdsSearchads360V23Common__LocationInfo"
        },
        "effectiveCpvBidMicros": {
          "readOnly": true,
          "description": "Output only. The effective CPV (cost-per-view) bid.",
          "type": "string",
          "format": "int64"
        },
        "displayName": {
          "description": "Output only. The display name of the criterion.",
          "type": "string",
          "readOnly": true
        },
        "verticalAdsItemGroupRuleList": {
          "description": "Immutable. Vertical ads item group rule list criterion.",
          "$ref": "GoogleAdsSearchads360V23Common__VerticalAdsItemGroupRuleListInfo"
        },
        "urlCustomParameters": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__CustomParameter"
          },
          "description": "The list of mappings used to substitute custom parameter tags in a `tracking_url_template`, `final_urls`, or `mobile_final_urls`."
        },
        "webpage": {
          "description": "Immutable. Webpage",
          "$ref": "GoogleAdsSearchads360V23Common__WebpageInfo"
        },
        "resourceName": {
          "description": "Immutable. The resource name of the ad group criterion. Ad group criterion resource names have the form: `customers/{customer_id}/adGroupCriteria/{ad_group_id}~{criterion_id}`",
          "type": "string"
        },
        "youtubeVideo": {
          "description": "Immutable. YouTube Video.",
          "$ref": "GoogleAdsSearchads360V23Common__YouTubeVideoInfo"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateAssetGroupSignalResult": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateAssetGroupSignalResult",
      "description": "The result for the asset group signal mutate.",
      "properties": {
        "assetGroupSignal": {
          "description": "The mutated AssetGroupSignal with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsSearchads360V23Resources__AssetGroupSignal"
        },
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__CustomerThirdPartyBrandLiftIntegrationPartner": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__CustomerThirdPartyBrandLiftIntegrationPartner",
      "description": "Container for third party Brand Lift integration data for Customer.",
      "properties": {
        "brandLiftIntegrationPartner": {
          "description": "Allowed Third Party integration partners for Brand Lift verification.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Kantar",
            "Dynata",
            "Intage",
            "Macromill"
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "KANTAR_MILLWARD_BROWN",
            "DYNATA",
            "INTAGE",
            "MACROMILL"
          ]
        },
        "allowShareCost": {
          "description": "If true, cost data can be shared with this vendor.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__AdGroupAdAssetAutomationSetting": {
      "properties": {
        "assetAutomationType": {
          "description": "The asset automation type that this setting configures.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used as a return value only. Represents value unknown in this version.",
            "Text asset automation includes headlines and descriptions. By default, advertisers are opted-in for Performance Max and opted-out for Search.",
            "Converts horizontal video assets to vertical orientation using content-aware technology. By default, advertisers are opted in for DemandGenVideoResponsiveAd.",
            "Shortens video assets to better capture user attention using content-aware technology.",
            "Generates a preview of the landing page shown in the engagement panel. By using this feature, you confirm that you own all legal rights to the images on the landing page used by this account (or you have permission to share the images with Google). You hereby instruct Google to publish these images on your behalf for advertising or other commercial purposes.",
            "Generates video enhancements (vertical and shorter videos) for PMax campaigns. Opted in by default.",
            "Generates image enhancements (AutoCrop and AutoEnhance). Opted in by default for pmax.",
            "Generates image extraction. It defaults to account level Dynamic Image Extension control value.",
            "Adds design elements and embeds text assets into image assets to create images with different aspect ratios. By default, advertisers are opted in for DemandGenMultiAssetAd.",
            "Controls automation for text assets related to Final URL expansion. This includes automatically creating dynamic landing pages from the final URL and generating text assets from the content of those landing pages. This setting is turned OFF by default for Search campaigns, but it is turned ON by default for Performance Max campaigns.",
            "Generates videos using other Assets as input, such as images and text. By default, advertisers are opted in for DemandGenMultiAssetAd."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "TEXT_ASSET_AUTOMATION",
            "GENERATE_VERTICAL_YOUTUBE_VIDEOS",
            "GENERATE_SHORTER_YOUTUBE_VIDEOS",
            "GENERATE_LANDING_PAGE_PREVIEW",
            "GENERATE_ENHANCED_YOUTUBE_VIDEOS",
            "GENERATE_IMAGE_ENHANCEMENT",
            "GENERATE_IMAGE_EXTRACTION",
            "GENERATE_DESIGN_VERSIONS_FOR_IMAGES",
            "FINAL_URL_EXPANSION_TEXT_ASSET_AUTOMATION",
            "GENERATE_VIDEOS_FROM_OTHER_ASSETS"
          ]
        },
        "assetAutomationStatus": {
          "description": "The opt-in/out status for the specified asset automation type.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used as a return value only. Represents value unknown in this version.",
            "Opted-in will enable generating and serving an asset automation type.",
            "Opted-out will stop generating and serving an asset automation type."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "OPTED_IN",
            "OPTED_OUT"
          ]
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__AdGroupAdAssetAutomationSetting",
      "description": "Asset automation setting for an AdGroupAd.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources_Recommendation_RecommendationImpact": {
      "id": "GoogleAdsSearchads360V23Resources_Recommendation_RecommendationImpact",
      "description": "The impact of making the change as described in the recommendation. Some types of recommendations may not have impact information.",
      "type": "object",
      "properties": {
        "baseMetrics": {
          "description": "Output only. Base metrics at the time the recommendation was generated.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_RecommendationMetrics",
          "readOnly": true
        },
        "potentialMetrics": {
          "readOnly": true,
          "description": "Output only. Estimated metrics if the recommendation is applied.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_RecommendationMetrics"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateAdGroupCriterionCustomizerResult": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateAdGroupCriterionCustomizerResult",
      "description": "The result for the ad group criterion customizer mutate.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        },
        "adGroupCriterionCustomizer": {
          "description": "The mutated AdGroupCriterionCustomizer with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsSearchads360V23Resources__AdGroupCriterionCustomizer"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__MatchedLocationInterestView": {
      "properties": {
        "resourceName": {
          "description": "Output only. The resource name of the matched location interest view. Matched location interest view resource names have the form: `customers/{customer_id}/matchedLocationInterestViews/{country_criterion_id}`",
          "type": "string",
          "readOnly": true
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__MatchedLocationInterestView",
      "description": "A view that reports metrics for locations where users showed interest, and which matched the advertiser's location interest targeting (defined as geo targets at the AdGroup level). The data is aggregated at the country level by default. This view is currently only available for AI Max campaigns."
    },
    "GoogleAdsSearchads360V23Resources__PhoneCallDetails": {
      "properties": {
        "callRecordingUrl": {
          "readOnly": true,
          "description": "Output only. URL to the call recording audio file.",
          "type": "string"
        },
        "callDurationMillis": {
          "type": "string",
          "format": "int64",
          "description": "Output only. The duration (in milliseconds) of the phone call (end to end).",
          "readOnly": true
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__PhoneCallDetails",
      "description": "Represents details of a phone call conversation.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__ClickLocation": {
      "properties": {
        "city": {
          "type": "string",
          "description": "The city location criterion associated with the impression."
        },
        "mostSpecific": {
          "description": "The most specific location criterion associated with the impression.",
          "type": "string"
        },
        "metro": {
          "description": "The metro location criterion associated with the impression.",
          "type": "string"
        },
        "region": {
          "description": "The region location criterion associated with the impression.",
          "type": "string"
        },
        "country": {
          "description": "The country location criterion associated with the impression.",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V23Common__ClickLocation",
      "description": "Location criteria associated with a click.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__ForecastMetricOptions": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__ForecastMetricOptions",
      "description": "Controls forecast metrics to return.",
      "properties": {
        "includeCoview": {
          "description": "Indicates whether to include co-view metrics in the response forecast.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__AudienceInsightsEntity": {
      "id": "GoogleAdsSearchads360V23Common__AudienceInsightsEntity",
      "description": "A Knowledge Graph entity, represented by its machine id.",
      "type": "object",
      "properties": {
        "knowledgeGraphMachineId": {
          "type": "string",
          "description": "Required. The machine ID (mid) of the Knowledge Graph entity."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__GeoTargetConstantSuggestion": {
      "properties": {
        "geoTargetConstantParents": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Resources__GeoTargetConstant"
          },
          "description": "The list of parents of the geo target constant."
        },
        "locale": {
          "type": "string",
          "description": "The language this GeoTargetConstantSuggestion is currently translated to. It affects the name of geo target fields. For example, if locale=en, then name=Spain. If locale=es, then name=España. The default locale will be returned if no translation exists for the locale in the request."
        },
        "reach": {
          "description": "Approximate user population that will be targeted, rounded to the nearest 100.",
          "type": "string",
          "format": "int64"
        },
        "searchTerm": {
          "type": "string",
          "description": "If the request searched by location name, this is the location name that matched the geo target."
        },
        "geoTargetConstant": {
          "description": "The GeoTargetConstant result.",
          "$ref": "GoogleAdsSearchads360V23Resources__GeoTargetConstant"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__GeoTargetConstantSuggestion",
      "description": "A geo target constant suggestion."
    },
    "GoogleAdsSearchads360V23Services__MutateAdGroupAdLabelResult": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateAdGroupAdLabelResult",
      "description": "The result for an ad group ad label mutate.",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V0Errors__ErrorCode": {
      "properties": {
        "quotaError": {
          "description": "An error with the amount of quota remaining.",
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Too many requests.",
            "Too many requests in a short amount of time."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "RESOURCE_EXHAUSTED",
            "RESOURCE_TEMPORARILY_EXHAUSTED"
          ]
        },
        "invalidParameterError": {
          "description": "The reasons for invalid parameter errors.",
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The specified currency code is invalid."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_CURRENCY_CODE"
          ]
        },
        "requestError": {
          "description": "An error caused by the request",
          "type": "string",
          "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.",
            "Product name is invalid.",
            "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.",
            "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 login-customer-id parameter is required for this request.",
            "Either login-customer-id or linked-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.",
            "The product associated with the request is not supported for the current request."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "RESOURCE_NAME_MISSING",
            "RESOURCE_NAME_MALFORMED",
            "BAD_RESOURCE_ID",
            "INVALID_PRODUCT_NAME",
            "INVALID_CUSTOMER_ID",
            "OPERATION_REQUIRED",
            "RESOURCE_NOT_FOUND",
            "INVALID_PAGE_TOKEN",
            "EXPIRED_PAGE_TOKEN",
            "INVALID_PAGE_SIZE",
            "REQUIRED_FIELD_MISSING",
            "IMMUTABLE_FIELD",
            "TOO_MANY_MUTATE_OPERATIONS",
            "CANNOT_BE_EXECUTED_BY_MANAGER_ACCOUNT",
            "CANNOT_MODIFY_FOREIGN_FIELD",
            "INVALID_ENUM_VALUE",
            "LOGIN_CUSTOMER_ID_PARAMETER_MISSING",
            "LOGIN_OR_LINKED_CUSTOMER_ID_PARAMETER_REQUIRED",
            "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",
            "PRODUCT_NOT_SUPPORTED"
          ]
        },
        "customColumnError": {
          "description": "The reasons for the custom column error",
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CUSTOM_COLUMN_NOT_FOUND",
            "CUSTOM_COLUMN_NOT_AVAILABLE"
          ]
        },
        "dateRangeError": {
          "type": "string",
          "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."
          ],
          "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"
          ],
          "description": "The reasons for the date range error"
        },
        "queryError": {
          "type": "string",
          "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.",
            "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."
          ],
          "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",
            "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"
          ],
          "description": "An error with the query"
        },
        "authorizationError": {
          "type": "string",
          "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 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 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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "USER_PERMISSION_DENIED",
            "PROJECT_DISABLED",
            "AUTHORIZATION_ERROR",
            "ACTION_NOT_PERMITTED",
            "INCOMPLETE_SIGNUP",
            "CUSTOMER_NOT_ENABLED",
            "MISSING_TOS",
            "INVALID_LOGIN_CUSTOMER_ID_SERVING_CUSTOMER_ID_COMBINATION",
            "SERVICE_ACCESS_DENIED",
            "ACCESS_DENIED_FOR_ACCOUNT_TYPE",
            "METRIC_ACCESS_DENIED"
          ],
          "description": "An error encountered when trying to authorize a user."
        },
        "dateError": {
          "description": "The reasons for the date error",
          "type": "string",
          "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."
          ],
          "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"
          ]
        },
        "authenticationError": {
          "type": "string",
          "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.",
            "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."
          ],
          "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",
            "USER_ID_INVALID",
            "TWO_STEP_VERIFICATION_NOT_ENROLLED",
            "ADVANCED_PROTECTION_NOT_ENROLLED"
          ],
          "description": "Indicates failure to properly authenticate user."
        },
        "internalError": {
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INTERNAL_ERROR",
            "ERROR_CODE_NOT_PUBLISHED",
            "TRANSIENT_ERROR",
            "DEADLINE_EXCEEDED"
          ],
          "description": "An unexpected server-side error."
        },
        "headerError": {
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "The user selected customer ID could not be validated.",
            "The login customer ID could not be validated."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INVALID_USER_SELECTED_CUSTOMER_ID",
            "INVALID_LOGIN_CUSTOMER_ID"
          ],
          "description": "The reasons for the header error."
        },
        "distinctError": {
          "description": "The reasons for the distinct error",
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Duplicate element.",
            "Duplicate type."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DUPLICATE_ELEMENT",
            "DUPLICATE_TYPE"
          ]
        },
        "sizeLimitError": {
          "type": "string",
          "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "REQUEST_SIZE_LIMIT_EXCEEDED",
            "RESPONSE_SIZE_LIMIT_EXCEEDED"
          ],
          "description": "The reasons for the size limit error"
        },
        "conversionCustomVariableError": {
          "type": "string",
          "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.",
            "The conversion custom variable is not found.",
            "The conversion custom variable is not available for use.",
            "The conversion custom variable requested is incompatible with the current request.",
            "The conversion custom variable requested is not of type METRIC.",
            "The conversion custom variable's cardinality exceeds the segmentation limit.",
            "The conversion custom variable requested is not of type DIMENSION.",
            "The conversion custom variable requested is incompatible with the selected resource."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DUPLICATE_NAME",
            "DUPLICATE_TAG",
            "RESERVED_TAG",
            "NOT_FOUND",
            "NOT_AVAILABLE",
            "INCOMPATIBLE_TYPE",
            "INVALID_METRIC",
            "EXCEEDS_CARDINALITY_LIMIT",
            "INVALID_DIMENSION",
            "INCOMPATIBLE_WITH_SELECTED_RESOURCE"
          ],
          "description": "The reasons for the conversion custom variable error"
        }
      },
      "id": "GoogleAdsSearchads360V0Errors__ErrorCode",
      "description": "The error reason represented by type and enum.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateSearchAds360Request": {
      "properties": {
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        },
        "validateOnly": {
          "type": "boolean"
        },
        "mutateOperations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateOperation"
          },
          "description": "Required. The list of operations to perform on individual resources."
        },
        "responseContentType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation. The mutable resource will only be returned if the resource has the appropriate response field. For example, ."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateSearchAds360Request",
      "description": "Request message for Service.Mutate."
    },
    "GoogleAdsSearchads360V23Services__MutateAdGroupLabelsRequest": {
      "id": "GoogleAdsSearchads360V23Services__MutateAdGroupLabelsRequest",
      "description": "Request message for AdGroupLabelService.MutateAdGroupLabels.",
      "type": "object",
      "properties": {
        "operations": {
          "description": "Required. The list of operations to perform on ad group labels.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__AdGroupLabelOperation"
          }
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateAdResult": {
      "properties": {
        "ad": {
          "description": "The mutated ad with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsSearchads360V23Resources__Ad"
        },
        "resourceName": {
          "type": "string",
          "description": "The resource name returned for successful operations."
        }
      },
      "id": "GoogleAdsSearchads360V23Services__MutateAdResult",
      "description": "The result for the ad mutate.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__SmartCampaignRemovedDetails": {
      "id": "GoogleAdsSearchads360V23Services__SmartCampaignRemovedDetails",
      "description": "Details related to removed Smart campaigns.",
      "type": "object",
      "properties": {
        "removedDateTime": {
          "description": "The timestamp of when the campaign was removed. The timestamp is in the customer’s timezone and in “yyyy-MM-dd HH:mm:ss” format.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__BiddingStrategyOperation": {
      "properties": {
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "type": "string",
          "format": "google-fieldmask"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new bidding strategy.",
          "$ref": "GoogleAdsSearchads360V23Resources__BiddingStrategy"
        },
        "update": {
          "description": "Update operation: The bidding strategy is expected to have a valid resource name.",
          "$ref": "GoogleAdsSearchads360V23Resources__BiddingStrategy"
        },
        "remove": {
          "description": "Remove operation: A resource name for the removed bidding strategy is expected, in this format: `customers/{customer_id}/biddingStrategies/{bidding_strategy_id}`",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__BiddingStrategyOperation",
      "description": "A single operation (create, update, remove) on a bidding strategy.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__AdGroupAdLabelOperation": {
      "properties": {
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the ad group ad label being removed, in this format: `customers/{customer_id}/adGroupAdLabels/{ad_group_id}~{ad_id}~{label_id}`"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new ad group ad label.",
          "$ref": "GoogleAdsSearchads360V23Resources__AdGroupAdLabel"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__AdGroupAdLabelOperation",
      "description": "A single operation (create, remove) on an ad group ad label."
    },
    "GoogleAdsSearchads360V23Common__PromotionAsset": {
      "properties": {
        "termsAndConditionsUri": {
          "type": "string",
          "description": "URI to the terms and conditions of the promotion."
        },
        "endDate": {
          "description": "Last date of when this asset is effective and still serving, in yyyy-MM-dd format.",
          "type": "string"
        },
        "termsAndConditionsText": {
          "type": "string",
          "description": "Terms and conditions of the promotion."
        },
        "adScheduleTargets": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AdScheduleInfo"
          },
          "description": "List of non-overlapping schedules specifying all time intervals for which the asset may serve. There can be a maximum of 6 schedules per day, 42 in total."
        },
        "ordersOverAmount": {
          "description": "The amount the total order needs to be for the user to be eligible for the promotion.",
          "$ref": "GoogleAdsSearchads360V23Common__Money"
        },
        "promotionTarget": {
          "type": "string",
          "description": "Required. A freeform description of what the promotion is targeting."
        },
        "occasion": {
          "description": "The occasion the promotion was intended for. If an occasion is set, the redemption window will need to fall within the date range associated with the occasion.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "New Year's.",
            "Chinese New Year.",
            "Valentine's Day.",
            "Easter.",
            "Mother's Day.",
            "Father's Day.",
            "Labor Day.",
            "Back To School.",
            "Halloween.",
            "Black Friday.",
            "Cyber Monday.",
            "Christmas.",
            "Boxing Day.",
            "Independence Day in any country.",
            "National Day in any country.",
            "End of any season.",
            "Winter Sale.",
            "Summer sale.",
            "Fall Sale.",
            "Spring Sale.",
            "Ramadan.",
            "Eid al-Fitr.",
            "Eid al-Adha.",
            "Singles Day.",
            "Women's Day.",
            "Holi.",
            "Parent's Day.",
            "St. Nicholas Day.",
            "Carnival.",
            "Epiphany, also known as Three Kings' Day.",
            "Rosh Hashanah.",
            "Passover.",
            "Hanukkah.",
            "Diwali.",
            "Navratri.",
            "Available in Thai: Songkran.",
            "Available in Japanese: Year-end Gift."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NEW_YEARS",
            "CHINESE_NEW_YEAR",
            "VALENTINES_DAY",
            "EASTER",
            "MOTHERS_DAY",
            "FATHERS_DAY",
            "LABOR_DAY",
            "BACK_TO_SCHOOL",
            "HALLOWEEN",
            "BLACK_FRIDAY",
            "CYBER_MONDAY",
            "CHRISTMAS",
            "BOXING_DAY",
            "INDEPENDENCE_DAY",
            "NATIONAL_DAY",
            "END_OF_SEASON",
            "WINTER_SALE",
            "SUMMER_SALE",
            "FALL_SALE",
            "SPRING_SALE",
            "RAMADAN",
            "EID_AL_FITR",
            "EID_AL_ADHA",
            "SINGLES_DAY",
            "WOMENS_DAY",
            "HOLI",
            "PARENTS_DAY",
            "ST_NICHOLAS_DAY",
            "CARNIVAL",
            "EPIPHANY",
            "ROSH_HASHANAH",
            "PASSOVER",
            "HANUKKAH",
            "DIWALI",
            "NAVRATRI",
            "SONGKRAN",
            "YEAR_END_GIFT"
          ]
        },
        "startDate": {
          "description": "Start date of when this asset is effective and can begin serving, in yyyy-MM-dd format.",
          "type": "string"
        },
        "redemptionEndDate": {
          "type": "string",
          "description": "Last date of when the promotion is eligible to be redeemed, in yyyy-MM-dd format."
        },
        "promotionQrCodeInfo": {
          "description": "QR code info used to generate promotion QR code for user to be eligible for the promotion.",
          "$ref": "GoogleAdsSearchads360V23Common__PromotionQrCodeInfo"
        },
        "promotionCode": {
          "type": "string",
          "description": "A code the user should use in order to be eligible for the promotion."
        },
        "percentOff": {
          "description": "Percentage off discount in the promotion. 1,000,000 = 100%. Either this or money_amount_off is required.",
          "type": "string",
          "format": "int64"
        },
        "promotionBarcodeInfo": {
          "description": "Barcode info used to generate promotion barcode for user to be eligible for the promotion.",
          "$ref": "GoogleAdsSearchads360V23Common__PromotionBarcodeInfo"
        },
        "moneyAmountOff": {
          "description": "Money amount off for discount in the promotion. Either this or percent_off is required.",
          "$ref": "GoogleAdsSearchads360V23Common__Money"
        },
        "discountModifier": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "'Up to'."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "UP_TO"
          ],
          "description": "A modifier for qualification of the discount."
        },
        "redemptionStartDate": {
          "type": "string",
          "description": "Start date of when the promotion is eligible to be redeemed, in yyyy-MM-dd format."
        },
        "languageCode": {
          "description": "The language of the promotion. Represented as BCP 47 language tag.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__PromotionAsset",
      "description": "A Promotion asset."
    },
    "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_LeadFormAssetParameters": {
      "properties": {
        "adAssetApplyParameters": {
          "description": "Required. Lead form assets to be added. This is a required field.",
          "$ref": "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_AdAssetApplyParameters"
        },
        "setSubmitLeadFormAssetCampaignGoal": {
          "type": "boolean",
          "description": "If true, the \"Submit Lead Form\" goal will be set on the target campaign. As a result, ads will be shown as lead form creative ads. If false, the \"Submit Lead Form\" goal will not be set on the campaign and ads will contain lead form assets."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_LeadFormAssetParameters",
      "description": "Parameters to use when applying a lead form asset recommendation."
    },
    "GoogleAdsSearchads360V23Common__AudienceInsightsCategory": {
      "properties": {
        "categoryId": {
          "type": "string",
          "description": "Required. The criterion ID of the category."
        }
      },
      "id": "GoogleAdsSearchads360V23Common__AudienceInsightsCategory",
      "description": "A Product and Service category.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources__OfflineUserDataJobMetadata": {
      "properties": {
        "matchRateRange": {
          "readOnly": true,
          "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"
          ],
          "type": "string",
          "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%."
          ],
          "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\"."
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__OfflineUserDataJobMetadata",
      "description": "Metadata of offline user data job.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__AssetOperation": {
      "id": "GoogleAdsSearchads360V23Services__AssetOperation",
      "description": "A single operation to create an asset. Supported asset types are YoutubeVideoAsset, MediaBundleAsset, ImageAsset, LeadFormAsset, LocationAsset, and ImageAsset. TextAsset can be created with an Ad inline, but it can also be created apart from an Ad like other assets.",
      "type": "object",
      "properties": {
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "type": "string",
          "format": "google-fieldmask"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new asset.",
          "$ref": "GoogleAdsSearchads360V23Resources__Asset"
        },
        "update": {
          "description": "Update operation: The asset is expected to have a valid resource name in this format: `customers/{customer_id}/assets/{asset_id}`",
          "$ref": "GoogleAdsSearchads360V23Resources__Asset"
        }
      }
    },
    "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_CalloutExtensionParameters": {
      "properties": {
        "calloutExtensions": {
          "description": "Callout extensions to be added. This is a required field.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__CalloutFeedItem"
          }
        }
      },
      "id": "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_CalloutExtensionParameters",
      "description": "Parameters to use when applying callout extension recommendation.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__PromoteCampaignDraftRequest": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__PromoteCampaignDraftRequest",
      "description": "Request message for CampaignDraftService.PromoteCampaignDraft.",
      "properties": {
        "validateOnly": {
          "description": "If true, the request is validated but no Long Running Operation is created. Only errors are returned.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__CustomAudienceMember": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__CustomAudienceMember",
      "description": "A member of custom audience. A member can be a KEYWORD, URL, PLACE_CATEGORY or APP. It can only be created or removed but not changed.",
      "properties": {
        "memberType": {
          "description": "The type of custom audience member, KEYWORD, URL, PLACE_CATEGORY or APP.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Users whose interests or actions are described by a keyword.",
            "Users who have interests related to the website's content.",
            "Users who visit place types described by a place category.",
            "Users who have installed a mobile app."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "KEYWORD",
            "URL",
            "PLACE_CATEGORY",
            "APP"
          ]
        },
        "url": {
          "description": "An HTTP URL, protocol-included — at most 2048 characters, which includes contents users have interests in.",
          "type": "string"
        },
        "app": {
          "type": "string",
          "description": "A package name of Android apps which users installed such as com.google.example."
        },
        "placeCategory": {
          "description": "A place type described by a place category users visit.",
          "type": "string",
          "format": "int64"
        },
        "keyword": {
          "description": "A keyword or keyword phrase — at most 10 words and 80 characters. Languages with double-width characters such as Chinese, Japanese, or Korean, are allowed 40 characters, which describes the user's interests or actions.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__BrandListInfo": {
      "properties": {
        "sharedSet": {
          "description": "Shared set resource name of the brand list.",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V23Common__BrandListInfo",
      "description": "A Brand List Criterion is used to specify a list of brands. The list is represented as a SharedSet id type BRAND_HINT. A criterion of this type can be either targeted or excluded.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources__LocalServicesEmployee": {
      "properties": {
        "lastName": {
          "description": "Output only. Last name of the employee.",
          "type": "string",
          "readOnly": true
        },
        "residencies": {
          "description": "Output only. The institutions where the employee has completed their residency.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Resources__Residency"
          },
          "readOnly": true
        },
        "yearStartedPracticing": {
          "description": "Output only. The year that this employee started practicing in this field.",
          "type": "integer",
          "format": "int32",
          "readOnly": true
        },
        "id": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. The ID of the employee."
        },
        "nationalProviderIdNumber": {
          "type": "string",
          "description": "Output only. NPI id associated with the employee.",
          "readOnly": true
        },
        "firstName": {
          "readOnly": true,
          "description": "Output only. First name of the employee.",
          "type": "string"
        },
        "resourceName": {
          "description": "Immutable. The resource name of the Local Services Verification. Local Services Verification resource names have the form: `customers/{customer_id}/localServicesEmployees/{gls_employee_id}`",
          "type": "string"
        },
        "fellowships": {
          "description": "Output only. The institutions where the employee has completed their fellowship.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Resources__Fellowship"
          },
          "readOnly": true
        },
        "type": {
          "description": "Output only. Employee type.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Represents the owner of the business.",
            "Represents an employee of the business."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BUSINESS_OWNER",
            "EMPLOYEE"
          ],
          "readOnly": true
        },
        "emailAddress": {
          "description": "Output only. Email address of the employee.",
          "type": "string",
          "readOnly": true
        },
        "creationDateTime": {
          "type": "string",
          "description": "Output only. Timestamp of employee creation. The format is \"YYYY-MM-DD HH:MM:SS\" in the Google Ads account's timezone. Examples: \"2018-03-05 09:15:00\" or \"2018-02-01 14:34:30\"",
          "readOnly": true
        },
        "middleName": {
          "description": "Output only. Middle name of the employee.",
          "type": "string",
          "readOnly": true
        },
        "categoryIds": {
          "readOnly": true,
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Output only. Category of the employee. A list of Local Services category IDs can be found at https://developers.google.com/google-ads/api/data/codes-formats#local_services_ids."
        },
        "universityDegrees": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Resources__UniversityDegree"
          },
          "description": "Output only. A list of degrees this employee has obtained, and wants to feature.",
          "readOnly": true
        },
        "jobTitle": {
          "type": "string",
          "description": "Output only. Job title for this employee, such as \"Senior partner\" in legal verticals.",
          "readOnly": true
        },
        "languagesSpoken": {
          "readOnly": true,
          "description": "Output only. Languages that the employee speaks, represented as language tags from https://developers.google.com/admin-sdk/directory/v1/languages",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "status": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ],
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Employee is not removed, and employee status is active.",
            "Employee is removed. Used to delete an employee from the business."
          ],
          "description": "Output only. Employee status, such as DELETED or ENABLED."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__LocalServicesEmployee",
      "description": "A local services employee resource."
    },
    "GoogleAdsSearchads360V23Common__UnifiedCalloutAsset": {
      "id": "GoogleAdsSearchads360V23Common__UnifiedCalloutAsset",
      "description": "A unified callout asset.",
      "type": "object",
      "properties": {
        "startDate": {
          "description": "Start date of when this asset is effective and can begin serving, in yyyy-MM-dd format.",
          "type": "string"
        },
        "useSearcherTimeZone": {
          "description": "Whether to show the asset in search user's time zone. Applies to Microsoft Ads.",
          "type": "boolean"
        },
        "adScheduleTargets": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AdScheduleInfo"
          },
          "description": "List of non-overlapping schedules specifying all time intervals for which the asset may serve. There can be a maximum of 6 schedules per day, 42 in total."
        },
        "endDate": {
          "type": "string",
          "description": "Last date of when this asset is effective and still serving, in yyyy-MM-dd format."
        },
        "calloutText": {
          "description": "The callout text. The length of this string should be between 1 and 25, inclusive.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_AdAssetApplyParameters": {
      "properties": {
        "newAssets": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Resources__Asset"
          },
          "description": "The assets to create and attach to a scope. This may be combined with existing_assets in the same call."
        },
        "existingAssets": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The resource names of existing assets to attach to a scope. This may be combined with new_assets in the same call."
        },
        "scope": {
          "type": "string",
          "enumDescriptions": [
            "The apply scope has not been specified.",
            "Unknown.",
            "Apply at the customer scope.",
            "Apply at the campaign scope."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CUSTOMER",
            "CAMPAIGN"
          ],
          "description": "Required. The scope at which to apply the assets. Assets at the campaign scope level will be applied to the campaign associated with the recommendation. Assets at the customer scope will apply to the entire account. Assets at the campaign scope will override any attached at the customer scope."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_AdAssetApplyParameters",
      "description": "Common parameters used when applying ad asset recommendations."
    },
    "GoogleAdsSearchads360V23Services__MutateAdGroupAdLabelsResponse": {
      "id": "GoogleAdsSearchads360V23Services__MutateAdGroupAdLabelsResponse",
      "description": "Response message for an ad group ad labels mutate.",
      "type": "object",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "description": "All results for the mutate.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateAdGroupAdLabelResult"
          }
        }
      }
    },
    "GoogleAdsSearchads360V23Services__AdGroupBidModifierOperation": {
      "properties": {
        "updateMask": {
          "type": "string",
          "format": "google-fieldmask",
          "description": "FieldMask that determines which resource fields are modified in an update."
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new ad group bid modifier.",
          "$ref": "GoogleAdsSearchads360V23Resources__AdGroupBidModifier"
        },
        "update": {
          "description": "Update operation: The ad group bid modifier is expected to have a valid resource name.",
          "$ref": "GoogleAdsSearchads360V23Resources__AdGroupBidModifier"
        },
        "remove": {
          "description": "Remove operation: A resource name for the removed ad group bid modifier is expected, in this format: `customers/{customer_id}/adGroupBidModifiers/{ad_group_id}~{criterion_id}`",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__AdGroupBidModifierOperation",
      "description": "A single operation (create, remove, update) on an ad group bid modifier.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateAssetResult": {
      "properties": {
        "asset": {
          "description": "The mutated asset with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsSearchads360V23Resources__Asset"
        },
        "resourceName": {
          "description": "The resource name returned for successful operations.",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__MutateAssetResult",
      "description": "The result for the asset mutate.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateCustomerAssetResult": {
      "id": "GoogleAdsSearchads360V23Services__MutateCustomerAssetResult",
      "description": "The result for the customer asset mutate.",
      "type": "object",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        },
        "customerAsset": {
          "description": "The mutated customer asset with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsSearchads360V23Resources__CustomerAsset"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__ListCampaignDraftAsyncErrorsResponse": {
      "id": "GoogleAdsSearchads360V23Services__ListCampaignDraftAsyncErrorsResponse",
      "description": "Response message for CampaignDraftService.ListCampaignDraftAsyncErrors.",
      "type": "object",
      "properties": {
        "errors": {
          "description": "Details of the errors when performing the asynchronous operation.",
          "type": "array",
          "items": {
            "$ref": "GoogleRpc__Status"
          }
        },
        "nextPageToken": {
          "description": "Pagination token used to retrieve the next page of results. Pass the content of this string as the `page_token` attribute of the next request. `next_page_token` is not returned for the last page.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__UserListNumberRuleItemInfo": {
      "id": "GoogleAdsSearchads360V23Common__UserListNumberRuleItemInfo",
      "description": "A rule item composed of a number operation.",
      "type": "object",
      "properties": {
        "operator": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Greater than.",
            "Greater than or equal.",
            "Equals.",
            "Not equals.",
            "Less than.",
            "Less than or equal."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "GREATER_THAN",
            "GREATER_THAN_OR_EQUAL",
            "EQUALS",
            "NOT_EQUALS",
            "LESS_THAN",
            "LESS_THAN_OR_EQUAL"
          ],
          "description": "Number comparison operator. This field is required and must be populated when creating a new number rule item."
        },
        "value": {
          "type": "number",
          "format": "double",
          "description": "Number value to be compared with the variable. This field is required and must be populated when creating a new number rule item."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__GenerateAudienceDefinitionResponse": {
      "properties": {
        "highRelevanceAttributes": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AudienceInsightsAttributeMetadata"
          },
          "description": "The attributes that make up the audience definition."
        },
        "mediumRelevanceAttributes": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AudienceInsightsAttributeMetadata"
          },
          "description": "Additional attributes that are less relevant but still related to the audience description. Use these attributes to broaden the audience definition to reach more users."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__GenerateAudienceDefinitionResponse",
      "description": "Response message for AudienceInsightsService.GenerateAudienceDefinition."
    },
    "GoogleAdsSearchads360V23Resources__AiMaxSearchTermAdCombinationView": {
      "properties": {
        "adGroup": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Ad group where the search term served."
        },
        "searchTerm": {
          "description": "Output only. The search term that triggered the ad. This field is read-only.",
          "type": "string",
          "readOnly": true
        },
        "resourceName": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The resource name of the AI Max Search Term Ad Combination view AI Max Search Term Ad Combination view resource names have the form: `customers/{customer_id}/aiMaxSearchTermAdCombinationViews/{ad_group_id}~{URL-base64_search_term}~{URL-base64_landing_page}~{URL-base64_headline}`"
        },
        "landingPage": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The destination URL, which was dynamically generated. This field is read-only."
        },
        "headline": {
          "description": "Output only. The concatenated string containing headline assets for the ad. Up to three headline assets are concatenated, separated by \" | \". This field is read-only.",
          "type": "string",
          "readOnly": true
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__AiMaxSearchTermAdCombinationView",
      "description": "AiMaxSearchTermAdCombinationView Resource.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources__MediaImage": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__MediaImage",
      "description": "Encapsulates an Image.",
      "properties": {
        "fullSizeImageUrl": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The url to the full size version of the image."
        },
        "previewSizeImageUrl": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The url to the preview size version of the image."
        },
        "data": {
          "description": "Immutable. Raw image data.",
          "type": "string",
          "format": "byte"
        }
      }
    },
    "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_SitelinkAssetParameters": {
      "id": "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_SitelinkAssetParameters",
      "description": "Parameters to use when applying sitelink asset recommendations.",
      "type": "object",
      "properties": {
        "adAssetApplyParameters": {
          "description": "Required. Sitelink assets to be added. This is a required field.",
          "$ref": "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_AdAssetApplyParameters"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources_ConversionValueRule_ValueRuleAudienceCondition": {
      "id": "GoogleAdsSearchads360V23Resources_ConversionValueRule_ValueRuleAudienceCondition",
      "description": "Condition on Audience dimension.",
      "type": "object",
      "properties": {
        "userLists": {
          "description": "User Lists.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "userInterests": {
          "description": "User Interests.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "GoogleAdsSearchads360V23Common__LanguageInfo": {
      "properties": {
        "languageConstant": {
          "type": "string",
          "description": "The language constant resource name."
        }
      },
      "id": "GoogleAdsSearchads360V23Common__LanguageInfo",
      "description": "A language criterion.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__IncentiveOffer": {
      "properties": {
        "type": {
          "type": "string",
          "enumDescriptions": [
            "Unknown offer type. Should not be used as a value explicitly.",
            "Unknown offer type.",
            "An offer with no incentive.",
            "A CYO (Choose-Your-Own) offer with multiple incentives to choose from."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NO_INCENTIVE",
            "CYO_INCENTIVE"
          ],
          "description": "Required. The type of this acquisition incentive offer."
        },
        "consolidatedTermsAndConditionsUrl": {
          "type": "string",
          "description": "Optional. The URL of the terms and conditions for the incentive offer."
        },
        "cyoIncentives": {
          "description": "CYO incentives. Set when type is CYO_INCENTIVE.",
          "$ref": "GoogleAdsSearchads360V23Services__CyoIncentives"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__IncentiveOffer",
      "description": "An acquisition incentive offer for a user. An offer means how the user is treated. An offer can have no incentive or multiple incentives.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__FinalAppUrl": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__FinalAppUrl",
      "description": "A URL for deep linking into an app for the given operating system.",
      "properties": {
        "url": {
          "type": "string",
          "description": "The app deep link URL. Deep links specify a location in an app that corresponds to the content you'd like to show, and should be of the form {scheme}://{host_path} The scheme identifies which app to open. For your app, you can use a custom scheme that starts with the app's name. The host and path specify the unique location in the app where your content exists. Example: \"exampleapp://productid_1234\". Required."
        },
        "osType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The Apple IOS operating system.",
            "The Android operating system."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "IOS",
            "ANDROID"
          ],
          "description": "The operating system targeted by this URL. Required."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__CreateProductLinkInvitationResponse": {
      "id": "GoogleAdsSearchads360V23Services__CreateProductLinkInvitationResponse",
      "description": "Response message for product link invitation create.",
      "type": "object",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Resource name of the product link invitation."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__CampaignThirdPartyBrandSafetyIntegrationPartner": {
      "id": "GoogleAdsSearchads360V23Common__CampaignThirdPartyBrandSafetyIntegrationPartner",
      "description": "Container for third party brand safety integration data for Campaign.",
      "type": "object",
      "properties": {
        "brandSafetyIntegrationPartnerData": {
          "description": "Third party partner data for YouTube brand safety verification. This is optional metadata for partners to join or attach data to Ads campaigns.",
          "$ref": "GoogleAdsSearchads360V23Common__ThirdPartyIntegrationPartnerData"
        },
        "brandSafetyIntegrationPartner": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "DoubleVerify.",
            "Integral Ad Science.",
            "Zefr."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DOUBLE_VERIFY",
            "INTEGRAL_AD_SCIENCE",
            "ZEFR"
          ],
          "description": "Allowed third party integration partners for brand safety verification."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__AdGroupKeywordSuggestion": {
      "properties": {
        "suggestedMatchType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Exact match.",
            "Phrase match.",
            "Broad match."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "EXACT",
            "PHRASE",
            "BROAD"
          ],
          "description": "The suggested keyword match type."
        },
        "suggestedAdGroup": {
          "type": "string",
          "description": "The suggested AdGroup for the keyword. Resource name format: `customers/{customer_id}/adGroups/{ad_group_id}`"
        },
        "keywordText": {
          "type": "string",
          "description": "The original keyword text."
        },
        "suggestedKeywordText": {
          "description": "The normalized version of keyword_text for BROAD/EXACT/PHRASE suggestions.",
          "type": "string"
        },
        "suggestedCampaign": {
          "description": "The suggested Campaign for the keyword. Resource name format: `customers/{customer_id}/campaigns/{campaign_id}`",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__AdGroupKeywordSuggestion",
      "description": "The suggested text and AdGroup/Campaign pairing for a given keyword."
    },
    "GoogleAdsSearchads360V23Common__LineupAttributeMetadata": {
      "properties": {
        "channelCountLowerBound": {
          "description": "The lower end of a range containing the number of channels in the lineup.",
          "type": "string",
          "format": "int64"
        },
        "medianMonthlyInventory": {
          "type": "string",
          "format": "int64",
          "description": "The median number of impressions per month on this lineup."
        },
        "sampleChannels": {
          "description": "Examples of channels that are included in the lineup.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common_LineupAttributeMetadata_SampleChannel"
          }
        },
        "inventoryCountry": {
          "description": "The national market associated with the lineup.",
          "$ref": "GoogleAdsSearchads360V23Common__LocationInfo"
        },
        "channelCountUpperBound": {
          "description": "The upper end of a range containing the number of channels in the lineup.",
          "type": "string",
          "format": "int64"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__LineupAttributeMetadata",
      "description": "Metadata associated with a Lineup attribute."
    },
    "GoogleAdsSearchads360V23Services__SuggestSmartCampaignBudgetOptionsRequest": {
      "id": "GoogleAdsSearchads360V23Services__SuggestSmartCampaignBudgetOptionsRequest",
      "description": "Request message for SmartCampaignSuggestService.SuggestSmartCampaignBudgetOptions.",
      "type": "object",
      "properties": {
        "campaign": {
          "description": "Required. The resource name of the campaign to get suggestion for.",
          "type": "string"
        },
        "suggestionInfo": {
          "description": "Required. Information needed to get budget options",
          "$ref": "GoogleAdsSearchads360V23Services__SmartCampaignSuggestionInfo"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__VerticalAdsItemGroupRuleListInfo": {
      "properties": {
        "sharedSet": {
          "description": "The shared set resource name of the vertical ads item group rule list.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__VerticalAdsItemGroupRuleListInfo",
      "description": "A criterion for targeting a shared set of rules for item groups in Vertical Ads (e.g., for hotel ads)."
    },
    "GoogleAdsSearchads360V23Services__EnablementResult": {
      "properties": {
        "campaign": {
          "description": "This indicates the campaign for which enablement was tried, regardless of the outcome.",
          "type": "string"
        },
        "enablementError": {
          "description": "Details of the error when enablement fails.",
          "$ref": "GoogleRpc__Status"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__EnablementResult",
      "description": "A single enablement result of a campaign.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__SuggestKeywordThemeConstantsResponse": {
      "properties": {
        "keywordThemeConstants": {
          "description": "Smart Campaign keyword theme suggestions.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Resources__KeywordThemeConstant"
          }
        }
      },
      "id": "GoogleAdsSearchads360V23Services__SuggestKeywordThemeConstantsResponse",
      "description": "Response message for KeywordThemeConstantService.SuggestKeywordThemeConstants.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__AccountLinkOperation": {
      "properties": {
        "updateMask": {
          "type": "string",
          "format": "google-fieldmask",
          "description": "FieldMask that determines which resource fields are modified in an update."
        },
        "update": {
          "description": "Update operation: The account link is expected to have a valid resource name.",
          "$ref": "GoogleAdsSearchads360V23Resources__AccountLink"
        },
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the account link to remove is expected, in this format: `customers/{customer_id}/accountLinks/{account_link_id}`"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__AccountLinkOperation",
      "description": "A single update on an account link.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_ForecastingSetTargetCpaParameters": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_ForecastingSetTargetCpaParameters",
      "description": "Parameters to use when applying a set target CPA recommendation.",
      "properties": {
        "targetCpaMicros": {
          "description": "Average CPA to use for Target CPA bidding strategy.",
          "type": "string",
          "format": "int64"
        },
        "campaignBudgetAmountMicros": {
          "type": "string",
          "format": "int64",
          "description": "New campaign budget amount to set for a campaign resource."
        }
      }
    },
    "GoogleAdsSearchads360V23Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchema_FineGrainedConversionValueMappings": {
      "properties": {
        "fineGrainedConversionValue": {
          "type": "integer",
          "format": "int32",
          "description": "Output only. Fine grained conversion value. Valid values are in the inclusive range [0,63].",
          "readOnly": true
        },
        "conversionValueMapping": {
          "readOnly": true,
          "description": "Output only. Conversion events the fine grained conversion value maps to.",
          "$ref": "GoogleAdsSearchads360V23Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchema_ConversionValueMapping"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchema_FineGrainedConversionValueMappings",
      "description": "Mappings for fine grained conversion value."
    },
    "GoogleAdsSearchads360V23Resources_AdGroupCriterion_QualityInfo": {
      "properties": {
        "qualityScore": {
          "description": "Output only. The quality score. This field may not be populated if Google does not have enough information to determine a value.",
          "type": "integer",
          "format": "int32",
          "readOnly": true
        },
        "postClickQualityScore": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BELOW_AVERAGE",
            "AVERAGE",
            "ABOVE_AVERAGE"
          ],
          "readOnly": true,
          "description": "Output only. The quality score of the landing page.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Quality of the creative is below average.",
            "Quality of the creative is average.",
            "Quality of the creative is above average."
          ]
        },
        "searchPredictedCtr": {
          "description": "Output only. The click-through rate compared to that of other advertisers.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Quality of the creative is below average.",
            "Quality of the creative is average.",
            "Quality of the creative is above average."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BELOW_AVERAGE",
            "AVERAGE",
            "ABOVE_AVERAGE"
          ],
          "readOnly": true
        },
        "creativeQualityScore": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Quality of the creative is below average.",
            "Quality of the creative is average.",
            "Quality of the creative is above average."
          ],
          "description": "Output only. The performance of the ad compared to other advertisers.",
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BELOW_AVERAGE",
            "AVERAGE",
            "ABOVE_AVERAGE"
          ]
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources_AdGroupCriterion_QualityInfo",
      "description": "A container for ad group criterion quality information."
    },
    "GoogleAdsSearchads360V23Services__MutateAssetGroupSignalsRequest": {
      "id": "GoogleAdsSearchads360V23Services__MutateAssetGroupSignalsRequest",
      "description": "Request message for AssetGroupSignalService.MutateAssetGroupSignals.",
      "type": "object",
      "properties": {
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        },
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__AssetGroupSignalOperation"
          },
          "description": "Required. The list of operations to perform on individual asset group signals."
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "responseContentType": {
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "type": "string",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ]
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateCampaignGoalConfigsRequest": {
      "id": "GoogleAdsSearchads360V23Services__MutateCampaignGoalConfigsRequest",
      "description": "Request message for CampaignGoalConfigService.MutateCampaignGoalConfigs.",
      "type": "object",
      "properties": {
        "partialFailure": {
          "type": "boolean",
          "description": "Optional. If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        },
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__CampaignGoalConfigOperation"
          },
          "description": "Required. The list of operations to perform on the campaign goal configs."
        },
        "validateOnly": {
          "description": "Optional. If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__ApplyRecommendationResponse": {
      "properties": {
        "results": {
          "description": "Results of operations to apply recommendations.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__ApplyRecommendationResult"
          }
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors) we return the RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__ApplyRecommendationResponse",
      "description": "Response message for RecommendationService.ApplyRecommendation.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__KeywordPlanAdGroupOperation": {
      "properties": {
        "remove": {
          "description": "Remove operation: A resource name for the removed Keyword Plan ad group is expected, in this format: `customers/{customer_id}/keywordPlanAdGroups/{kp_ad_group_id}`",
          "type": "string"
        },
        "updateMask": {
          "type": "string",
          "format": "google-fieldmask",
          "description": "The FieldMask that determines which resource fields are modified in an update."
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new Keyword Plan ad group.",
          "$ref": "GoogleAdsSearchads360V23Resources__KeywordPlanAdGroup"
        },
        "update": {
          "description": "Update operation: The Keyword Plan ad group is expected to have a valid resource name.",
          "$ref": "GoogleAdsSearchads360V23Resources__KeywordPlanAdGroup"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__KeywordPlanAdGroupOperation",
      "description": "A single operation (create, update, remove) on a Keyword Plan ad group."
    },
    "GoogleAdsSearchads360V23Errors__SearchAds360Failure": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Errors__SearchAds360Failure",
      "description": "Describes how a Search Ads 360 API call failed. It's returned inside google.rpc.Status.details when a call fails.",
      "properties": {
        "requestId": {
          "type": "string",
          "description": "The unique ID of the request that is used for debugging purposes."
        },
        "errors": {
          "description": "The list of errors that occurred.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Errors__SearchAds360Error"
          }
        }
      }
    },
    "GoogleAdsSearchads360V23Services__GenerateKeywordHistoricalMetricsResult": {
      "id": "GoogleAdsSearchads360V23Services__GenerateKeywordHistoricalMetricsResult",
      "description": "The result of generating keyword historical metrics.",
      "type": "object",
      "properties": {
        "keywordMetrics": {
          "description": "The historical metrics for text and its close variants",
          "$ref": "GoogleAdsSearchads360V23Common__KeywordPlanHistoricalMetrics"
        },
        "text": {
          "type": "string",
          "description": "The text of the query associated with one or more keywords. Note that we de-dupe your keywords list, eliminating close variants before returning the keywords as text. For example, if your request originally contained the keywords \"car\" and \"cars\", the returned search query will only contain \"cars\". The list of de-duped queries will be included in close_variants field."
        },
        "closeVariants": {
          "description": "The list of close variants from the requested keywords whose stats are combined into this GenerateKeywordHistoricalMetricsResult.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "GoogleAdsSearchads360V23Resources_Recommendation_EnhancedCpcOptInRecommendation": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources_Recommendation_EnhancedCpcOptInRecommendation",
      "description": "The Enhanced Cost-Per-Click Opt-In recommendation.",
      "properties": {}
    },
    "GoogleAdsSearchads360V23Common__ExpandedDynamicSearchAdInfo": {
      "id": "GoogleAdsSearchads360V23Common__ExpandedDynamicSearchAdInfo",
      "description": "An expanded dynamic search ad.",
      "type": "object",
      "properties": {
        "description": {
          "type": "string",
          "description": "The description of the ad."
        },
        "description2": {
          "description": "The second description of the ad.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__AdGroupAsset": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__AdGroupAsset",
      "description": "A link between an ad group and an asset.",
      "properties": {
        "primaryStatusReasons": {
          "type": "array",
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "The asset is paused for its linked rollup level. Contributes to a PrimaryStatus of PAUSED.",
              "The asset is removed for its linked rollup level. Contributes to a PrimaryStatus of REMOVED.",
              "The asset has been marked as disapproved. Contributes to a PrimaryStatus of NOT_ELIGIBLE",
              "The asset has not completed policy review. Contributes to a PrimaryStatus of PENDING.",
              "The asset is approved with policies applied. Contributes to a PrimaryStatus of LIMITED."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "ASSET_LINK_PAUSED",
              "ASSET_LINK_REMOVED",
              "ASSET_DISAPPROVED",
              "ASSET_UNDER_REVIEW",
              "ASSET_APPROVED_LABELED"
            ]
          },
          "description": "Output only. Provides a list of reasons for why an asset is not serving or not serving at full capacity.",
          "readOnly": true
        },
        "adGroup": {
          "type": "string",
          "description": "Required. Immutable. The ad group to which the asset is linked."
        },
        "fieldType": {
          "description": "Required. Immutable. Role that the asset takes under the linked ad group.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is linked for use as a headline.",
            "The asset is linked for use as a description.",
            "The asset is linked for use as mandatory ad text.",
            "The asset is linked for use as a marketing image.",
            "The asset is linked for use as a media bundle.",
            "The asset is linked for use as a YouTube video.",
            "The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.",
            "The asset is linked for use as a Lead Form extension.",
            "The asset is linked for use as a Promotion extension.",
            "The asset is linked for use as a Callout extension.",
            "The asset is linked for use as a Structured Snippet extension.",
            "The asset is linked for use as a Sitelink.",
            "The asset is linked for use as a Mobile App extension.",
            "The asset is linked for use as a Hotel Callout extension.",
            "The asset is linked for use as a Call extension.",
            "The asset is linked for use as a Price extension.",
            "The asset is linked for use as a long headline.",
            "The asset is linked for use as a business name.",
            "The asset is linked for use as a square marketing image.",
            "The asset is linked for use as a portrait marketing image.",
            "The asset is linked for use as a logo.",
            "The asset is linked for use as a landscape logo.",
            "The asset is linked for use as a non YouTube logo.",
            "The asset is linked for use to select a call-to-action.",
            "The asset is linked for use to select an ad image.",
            "The asset is linked for use as a business logo.",
            "The asset is linked for use as a hotel property in a Performance Max for travel goals campaign.",
            "The asset is linked for use as a Demand Gen carousel card.",
            "The asset is linked for use as a Business Message.",
            "The asset is linked for use as a tall portrait marketing image.",
            "The asset is linked for use as a landing page preview image.",
            "The asset is linked for use as a long description.",
            "The asset is linked for use as a call-to-action."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HEADLINE",
            "DESCRIPTION",
            "MANDATORY_AD_TEXT",
            "MARKETING_IMAGE",
            "MEDIA_BUNDLE",
            "YOUTUBE_VIDEO",
            "BOOK_ON_GOOGLE",
            "LEAD_FORM",
            "PROMOTION",
            "CALLOUT",
            "STRUCTURED_SNIPPET",
            "SITELINK",
            "MOBILE_APP",
            "HOTEL_CALLOUT",
            "CALL",
            "PRICE",
            "LONG_HEADLINE",
            "BUSINESS_NAME",
            "SQUARE_MARKETING_IMAGE",
            "PORTRAIT_MARKETING_IMAGE",
            "LOGO",
            "LANDSCAPE_LOGO",
            "VIDEO",
            "CALL_TO_ACTION_SELECTION",
            "AD_IMAGE",
            "BUSINESS_LOGO",
            "HOTEL_PROPERTY",
            "DEMAND_GEN_CAROUSEL_CARD",
            "BUSINESS_MESSAGE",
            "TALL_PORTRAIT_MARKETING_IMAGE",
            "LANDING_PAGE_PREVIEW",
            "LONG_DESCRIPTION",
            "CALL_TO_ACTION"
          ]
        },
        "source": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset or asset link is provided by advertiser.",
            "The asset or asset link is generated by Google."
          ],
          "description": "Output only. Source of the adgroup asset link.",
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADVERTISER",
            "AUTOMATICALLY_CREATED"
          ]
        },
        "status": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Asset link is enabled.",
            "Asset link has been removed.",
            "Asset link is paused."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED",
            "PAUSED"
          ],
          "description": "Status of the ad group asset."
        },
        "primaryStatus": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ELIGIBLE",
            "PAUSED",
            "REMOVED",
            "PENDING",
            "LIMITED",
            "NOT_ELIGIBLE"
          ],
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is eligible to serve.",
            "The user-specified asset link status is paused.",
            "The user-specified asset link status is removed.",
            "The asset may serve in the future.",
            "The asset is serving in a partial capacity.",
            "The asset is not eligible to serve."
          ],
          "description": "Output only. Provides the PrimaryStatus of this asset link. Primary status is meant essentially to differentiate between the plain \"status\" field, which has advertiser set values of enabled, paused, or removed. The primary status takes into account other signals (for assets its mainly policy and quality approvals) to come up with a more comprehensive status to indicate its serving state."
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the ad group asset. AdGroupAsset resource names have the form: `customers/{customer_id}/adGroupAssets/{ad_group_id}~{asset_id}~{field_type}`"
        },
        "asset": {
          "type": "string",
          "description": "Required. Immutable. The asset which is linked to the ad group."
        },
        "primaryStatusDetails": {
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AssetLinkPrimaryStatusDetails"
          },
          "description": "Output only. Provides the details of the primary status and its associated reasons."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateCustomerLabelsResponse": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateCustomerLabelsResponse",
      "description": "Response message for a customer labels mutate.",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "description": "All results for the mutate.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateCustomerLabelResult"
          }
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateCustomerClientLinkRequest": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateCustomerClientLinkRequest",
      "description": "Request message for CustomerClientLinkService.MutateCustomerClientLink.",
      "properties": {
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "operation": {
          "description": "Required. The operation to perform on the individual CustomerClientLink.",
          "$ref": "GoogleAdsSearchads360V23Services__CustomerClientLinkOperation"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__UserListInfo": {
      "id": "GoogleAdsSearchads360V23Common__UserListInfo",
      "description": "A User List criterion. Represents a user list that is defined by the advertiser to be targeted.",
      "type": "object",
      "properties": {
        "userList": {
          "type": "string",
          "description": "The User List resource name."
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__CampaignEffectiveLabel": {
      "id": "GoogleAdsSearchads360V23Resources__CampaignEffectiveLabel",
      "description": "Represents a relationship between a campaign and an effective label. An effective label is a label inherited or directly assigned to this campaign.",
      "type": "object",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Immutable. Name of the resource. CampaignEffectivelabel resource names have the form: `customers/{owner_customer_id}/campaignEffectiveLabels/{campaign_id}~{label_id}`"
        },
        "campaign": {
          "type": "string",
          "description": "Immutable. The campaign to which the effective label is attached."
        },
        "label": {
          "type": "string",
          "description": "Immutable. The effective label assigned to the campaign."
        },
        "ownerCustomerId": {
          "description": "Output only. The ID of the Customer which owns the effective label.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        }
      }
    },
    "GoogleAdsSearchads360V23Services__ConversationOrError": {
      "properties": {
        "partialFailureError": {
          "description": "Failure status when the request could not be processed.",
          "$ref": "GoogleRpc__Status"
        },
        "localServicesLeadConversation": {
          "type": "string",
          "description": "The resource name of the appended local services lead conversation."
        }
      },
      "id": "GoogleAdsSearchads360V23Services__ConversationOrError",
      "description": "Result of the append conversation operation.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateCustomerAssetsRequest": {
      "properties": {
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        },
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__CustomerAssetOperation"
          },
          "description": "Required. The list of operations to perform on individual customer assets."
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "responseContentType": {
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "type": "string",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ]
        }
      },
      "id": "GoogleAdsSearchads360V23Services__MutateCustomerAssetsRequest",
      "description": "Request message for CustomerAssetService.MutateCustomerAssets.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__AudienceExclusionDimension": {
      "properties": {
        "exclusions": {
          "description": "Audience segment to be excluded.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__ExclusionSegment"
          }
        }
      },
      "id": "GoogleAdsSearchads360V23Common__AudienceExclusionDimension",
      "description": "Negative dimension specifying users to exclude from the audience.",
      "type": "object"
    },
    "GoogleLongrunning__Operation": {
      "type": "object",
      "id": "GoogleLongrunning__Operation",
      "description": "This resource represents a long-running operation that is the result of a network API call.",
      "properties": {
        "done": {
          "description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.",
          "type": "boolean"
        },
        "error": {
          "description": "The error result of the operation in case of failure or cancellation.",
          "$ref": "GoogleRpc__Status"
        },
        "metadata": {
          "type": "object",
          "additionalProperties": {
            "type": "any",
            "description": "Properties of the object. Contains field @type with type URL."
          },
          "description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any."
        },
        "name": {
          "type": "string",
          "description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`."
        },
        "response": {
          "description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.",
          "type": "object",
          "additionalProperties": {
            "type": "any",
            "description": "Properties of the object. Contains field @type with type URL."
          }
        }
      }
    },
    "GoogleAdsSearchads360V23Resources_ChangeEvent_ChangedResource": {
      "id": "GoogleAdsSearchads360V23Resources_ChangeEvent_ChangedResource",
      "description": "A wrapper proto presenting all supported resources. Only the resource of the change_resource_type will be set.",
      "type": "object",
      "properties": {
        "assetSetAsset": {
          "description": "Output only. Set if change_resource_type == ASSET_SET_ASSET.",
          "$ref": "GoogleAdsSearchads360V23Resources__AssetSetAsset",
          "readOnly": true
        },
        "ad": {
          "readOnly": true,
          "description": "Output only. Set if change_resource_type == AD.",
          "$ref": "GoogleAdsSearchads360V23Resources__Ad"
        },
        "campaignBudget": {
          "description": "Output only. Set if change_resource_type == CAMPAIGN_BUDGET.",
          "$ref": "GoogleAdsSearchads360V23Resources__CampaignBudget",
          "readOnly": true
        },
        "adGroup": {
          "readOnly": true,
          "description": "Output only. Set if change_resource_type == AD_GROUP.",
          "$ref": "GoogleAdsSearchads360V23Resources__AdGroup"
        },
        "campaignAsset": {
          "description": "Output only. Set if change_resource_type == CAMPAIGN_ASSET.",
          "$ref": "GoogleAdsSearchads360V23Resources__CampaignAsset",
          "readOnly": true
        },
        "asset": {
          "readOnly": true,
          "description": "Output only. Set if change_resource_type == ASSET.",
          "$ref": "GoogleAdsSearchads360V23Resources__Asset"
        },
        "customerAsset": {
          "readOnly": true,
          "description": "Output only. Set if change_resource_type == CUSTOMER_ASSET.",
          "$ref": "GoogleAdsSearchads360V23Resources__CustomerAsset"
        },
        "adGroupAsset": {
          "description": "Output only. Set if change_resource_type == AD_GROUP_ASSET.",
          "$ref": "GoogleAdsSearchads360V23Resources__AdGroupAsset",
          "readOnly": true
        },
        "adGroupBidModifier": {
          "description": "Output only. Set if change_resource_type == AD_GROUP_BID_MODIFIER.",
          "$ref": "GoogleAdsSearchads360V23Resources__AdGroupBidModifier",
          "readOnly": true
        },
        "assetSet": {
          "description": "Output only. Set if change_resource_type == ASSET_SET.",
          "$ref": "GoogleAdsSearchads360V23Resources__AssetSet",
          "readOnly": true
        },
        "campaignCriterion": {
          "readOnly": true,
          "description": "Output only. Set if change_resource_type == CAMPAIGN_CRITERION.",
          "$ref": "GoogleAdsSearchads360V23Resources__CampaignCriterion"
        },
        "adGroupAd": {
          "readOnly": true,
          "description": "Output only. Set if change_resource_type == AD_GROUP_AD.",
          "$ref": "GoogleAdsSearchads360V23Resources__AdGroupAd"
        },
        "campaign": {
          "readOnly": true,
          "description": "Output only. Set if change_resource_type == CAMPAIGN.",
          "$ref": "GoogleAdsSearchads360V23Resources__Campaign"
        },
        "adGroupCriterion": {
          "readOnly": true,
          "description": "Output only. Set if change_resource_type == AD_GROUP_CRITERION.",
          "$ref": "GoogleAdsSearchads360V23Resources__AdGroupCriterion"
        },
        "campaignAssetSet": {
          "readOnly": true,
          "description": "Output only. Set if change_resource_type == CAMPAIGN_ASSET_SET.",
          "$ref": "GoogleAdsSearchads360V23Resources__CampaignAssetSet"
        }
      }
    },
    "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_CampaignBudgetParameters": {
      "properties": {
        "newBudgetAmountMicros": {
          "description": "New budget amount to set for target budget resource. This is a required field.",
          "type": "string",
          "format": "int64"
        }
      },
      "id": "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_CampaignBudgetParameters",
      "description": "Parameters to use when applying a campaign budget recommendation.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateCampaignConversionGoalsRequest": {
      "id": "GoogleAdsSearchads360V23Services__MutateCampaignConversionGoalsRequest",
      "description": "Request message for CampaignConversionGoalService.MutateCampaignConversionGoals.",
      "type": "object",
      "properties": {
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__CampaignConversionGoalOperation"
          },
          "description": "Required. The list of operations to perform on individual campaign conversion goal."
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__RemoveAutomaticallyCreatedAssetsRequest": {
      "id": "GoogleAdsSearchads360V23Services__RemoveAutomaticallyCreatedAssetsRequest",
      "description": "Request message for AdGroupAdService.RemoveAutomaticallyCreatedAssets.",
      "type": "object",
      "properties": {
        "assetsWithFieldType": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__AssetsWithFieldType"
          },
          "description": "Required. List of assets with field type to be removed from the AdGroupAd."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateAudiencesResponse": {
      "id": "GoogleAdsSearchads360V23Services__MutateAudiencesResponse",
      "description": "Response message for an audience mutate.",
      "type": "object",
      "properties": {
        "results": {
          "description": "All results for the mutate.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateAudienceResult"
          }
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateCustomAudiencesRequest": {
      "id": "GoogleAdsSearchads360V23Services__MutateCustomAudiencesRequest",
      "description": "Request message for CustomAudienceService.MutateCustomAudiences.",
      "type": "object",
      "properties": {
        "operations": {
          "description": "Required. The list of operations to perform on individual custom audiences.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__CustomAudienceOperation"
          }
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__LicenseVerificationArtifact": {
      "properties": {
        "licenseType": {
          "type": "string",
          "description": "Output only. License type / name.",
          "readOnly": true
        },
        "expirationDateTime": {
          "type": "string",
          "description": "Output only. The timestamp when this license expires. The format is \"YYYY-MM-DD HH:MM:SS\" in the Google Ads account's timezone. Examples: \"2018-03-05 09:15:00\" or \"2018-02-01 14:34:30\"",
          "readOnly": true
        },
        "rejectionReason": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BUSINESS_NAME_MISMATCH",
            "UNAUTHORIZED",
            "EXPIRED",
            "POOR_QUALITY",
            "UNVERIFIABLE",
            "WRONG_DOCUMENT_OR_ID",
            "OTHER"
          ],
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Business name doesn't match business name for the Local Services Ad.",
            "License is unauthorized or been revoked.",
            "License is expired.",
            "License is poor quality - blurry images, illegible, etc...",
            "License cannot be verified due to a not legitimate image.",
            "License is not the requested document type or contains an invalid ID.",
            "License has another flaw not listed explicitly."
          ],
          "description": "Output only. License rejection reason."
        },
        "licenseNumber": {
          "readOnly": true,
          "description": "Output only. License number.",
          "type": "string"
        },
        "licenseeFirstName": {
          "readOnly": true,
          "description": "Output only. First name of the licensee.",
          "type": "string"
        },
        "licenseeLastName": {
          "type": "string",
          "description": "Output only. Last name of the licensee.",
          "readOnly": true
        },
        "licenseDocumentReadonly": {
          "description": "Output only. The readonly field containing the information for an uploaded license document.",
          "$ref": "GoogleAdsSearchads360V23Common__LocalServicesDocumentReadOnly",
          "readOnly": true
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__LicenseVerificationArtifact",
      "description": "specific to a local services license."
    },
    "GoogleAdsSearchads360V23Services_GenerateRecommendationsRequest_BiddingInfo": {
      "properties": {
        "biddingStrategyType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Commission is an automatic bidding strategy in which the advertiser pays a certain portion of the conversion value.",
            "Enhanced CPC is a bidding strategy that raises bids for clicks that seem more likely to lead to a conversion and lowers them for clicks where they seem less likely.",
            "Used for return value only. Indicates that a campaign does not have a bidding strategy. This prevents the campaign from serving. For example, a campaign may be attached to a manager bidding strategy and the serving account is subsequently unlinked from the manager account. In this case the campaign will automatically be detached from the now inaccessible manager bidding strategy and transition to the INVALID bidding strategy type.",
            "Manual bidding strategy that allows advertiser to set the bid per advertiser-specified action.",
            "Manual click based bidding where user pays per click.",
            "Manual impression based bidding where user pays per thousand impressions.",
            "A bidding strategy that pays a configurable amount per video view.",
            "A bidding strategy that automatically maximizes number of conversions given a daily budget.",
            "An automated bidding strategy that automatically sets bids to maximize revenue while spending your budget.",
            "Page-One Promoted bidding scheme, which sets max cpc bids to target impressions on page one or page one promoted slots on google.com. This enum value is deprecated.",
            "Percent Cpc is bidding strategy where bids are a fraction of the advertised price for some good or service.",
            "Target CPA is an automated bid strategy that sets bids to help get as many conversions as possible at the target cost-per-acquisition (CPA) you set.",
            "Target CPC is an automated bid strategy that sets bids to help get as many clicks as possible at the target cost-per-click (CPC) you set.",
            "Target CPM is an automated bid strategy that sets bids to help get as many impressions as possible at the target cost per one thousand impressions (CPM) you set.",
            "An automated bidding strategy that sets bids so that a certain percentage of search ads are shown at the top of the first page (or other targeted location).",
            "Target Outrank Share is an automated bidding strategy that sets bids based on the target fraction of auctions where the advertiser should outrank a specific competitor. This enum value is deprecated.",
            "Target ROAS is an automated bidding strategy that helps you maximize revenue while averaging a specific target Return On Average Spend (ROAS).",
            "Target Spend is an automated bid strategy that sets your bids to help get as many clicks as possible within your budget."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "COMMISSION",
            "ENHANCED_CPC",
            "INVALID",
            "MANUAL_CPA",
            "MANUAL_CPC",
            "MANUAL_CPM",
            "MANUAL_CPV",
            "MAXIMIZE_CONVERSIONS",
            "MAXIMIZE_CONVERSION_VALUE",
            "PAGE_ONE_PROMOTED",
            "PERCENT_CPC",
            "TARGET_CPA",
            "TARGET_CPC",
            "TARGET_CPM",
            "TARGET_IMPRESSION_SHARE",
            "TARGET_OUTRANK_SHARE",
            "TARGET_ROAS",
            "TARGET_SPEND"
          ],
          "description": "Current bidding strategy. This field is necessary for the following recommendation_types: MAXIMIZE_CLICKS_OPT_IN, MAXIMIZE_CONVERSIONS_OPT_IN, MAXIMIZE_CONVERSION_VALUE_OPT_IN, SET_TARGET_CPA, SET_TARGET_ROAS, TARGET_CPA_OPT_IN, TARGET_ROAS_OPT_IN"
        },
        "targetRoas": {
          "description": "Current target_roas. This can be populated for campaigns with a bidding strategy type of TARGET_ROAS or MAXIMIZE_CONVERSION_VALUE.",
          "type": "number",
          "format": "double"
        },
        "targetCpaMicros": {
          "description": "Current target_cpa in micros. This can be populated for campaigns with a bidding strategy type of TARGET_CPA or MAXIMIZE_CONVERSIONS.",
          "type": "string",
          "format": "int64"
        },
        "targetImpressionShareInfo": {
          "description": "Optional. Current Target Impression Share information of the campaign. This field is necessary for the following recommendation_types: CAMPAIGN_BUDGET",
          "$ref": "GoogleAdsSearchads360V23Services_GenerateRecommendationsRequest_TargetImpressionShareInfo"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services_GenerateRecommendationsRequest_BiddingInfo",
      "description": "Current bidding information of the campaign. Provides a wrapper for bidding-related signals that inform recommendations."
    },
    "GoogleAdsSearchads360V23Services__MutateAdGroupAssetSetsResponse": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateAdGroupAssetSetsResponse",
      "description": "Response message for an ad group asset set mutate.",
      "properties": {
        "results": {
          "description": "All results for the mutate.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateAdGroupAssetSetResult"
          }
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (e.g. auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__BatchJob": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__BatchJob",
      "description": "A list of mutates being processed asynchronously. The mutates are uploaded by the user. The mutates themselves aren't readable and the results of the job can only be read using BatchJobService.ListBatchJobResults.",
      "properties": {
        "id": {
          "description": "Output only. ID of this batch job.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        },
        "metadata": {
          "description": "Output only. Contains additional information about this batch job.",
          "$ref": "GoogleAdsSearchads360V23Resources_BatchJob_BatchJobMetadata",
          "readOnly": true
        },
        "resourceName": {
          "description": "Immutable. The resource name of the batch job. Batch job resource names have the form: `customers/{customer_id}/batchJobs/{batch_job_id}`",
          "type": "string"
        },
        "status": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PENDING",
            "RUNNING",
            "DONE"
          ],
          "description": "Output only. Status of this batch job.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The job is not currently running.",
            "The job is running.",
            "The job is done."
          ]
        },
        "longRunningOperation": {
          "type": "string",
          "description": "Output only. The resource name of the long-running operation that can be used to poll for completion. Only set when the batch job status is RUNNING or DONE.",
          "readOnly": true
        },
        "nextAddSequenceToken": {
          "type": "string",
          "description": "Output only. The next sequence token to use when adding operations. Only set when the batch job status is PENDING.",
          "readOnly": true
        }
      }
    },
    "GoogleAdsSearchads360V23Resources_ListingGroupFilterDimension_ProductCondition": {
      "properties": {
        "condition": {
          "description": "Value of the condition.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The product condition is new.",
            "The product condition is refurbished.",
            "The product condition is used."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NEW",
            "REFURBISHED",
            "USED"
          ]
        }
      },
      "id": "GoogleAdsSearchads360V23Resources_ListingGroupFilterDimension_ProductCondition",
      "description": "Condition of a product offer.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__ListInsightsEligibleDatesRequest": {
      "id": "GoogleAdsSearchads360V23Services__ListInsightsEligibleDatesRequest",
      "description": "Request message for AudienceInsightsService.ListInsightsEligibleDates.",
      "type": "object",
      "properties": {
        "insightsApplicationInfo": {
          "description": "Optional. Additional information on the application issuing the request.",
          "$ref": "GoogleAdsSearchads360V23Common__AdditionalApplicationInfo"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__YouTubeVideoInfo": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__YouTubeVideoInfo",
      "description": "A YouTube Video criterion.",
      "properties": {
        "videoId": {
          "description": "YouTube video id as it appears on the YouTube watch page.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Errors__SearchAds360Error": {
      "properties": {
        "message": {
          "type": "string",
          "description": "A human-readable description of the error."
        },
        "trigger": {
          "description": "The value that triggered the error.",
          "$ref": "GoogleAdsSearchads360V23Common__Value"
        },
        "errorCode": {
          "description": "An enum value that indicates which error occurred.",
          "$ref": "GoogleAdsSearchads360V23Errors__ErrorCode"
        },
        "location": {
          "description": "Describes the part of the request proto that caused the error.",
          "$ref": "GoogleAdsSearchads360V23Errors__ErrorLocation"
        },
        "details": {
          "description": "Additional error details, which are returned by certain error codes. Most error codes do not include details.",
          "$ref": "GoogleAdsSearchads360V23Errors__ErrorDetails"
        }
      },
      "id": "GoogleAdsSearchads360V23Errors__SearchAds360Error",
      "description": "Search Ads 360-specific error.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__AudienceSegmentDimension": {
      "id": "GoogleAdsSearchads360V23Common__AudienceSegmentDimension",
      "description": "Dimension specifying users by their membership in other audience segments.",
      "type": "object",
      "properties": {
        "segments": {
          "description": "Included audience segments. Users are included if they belong to at least one segment.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AudienceSegment"
          }
        }
      }
    },
    "GoogleAdsSearchads360V23Resources_Campaign_BrandGuidelines": {
      "id": "GoogleAdsSearchads360V23Resources_Campaign_BrandGuidelines",
      "description": "Settings that control the visual appearance of your brand in a campaign's automatically generated assets and formats. Only applicable to Performance Max campaigns.",
      "type": "object",
      "properties": {
        "accentColor": {
          "description": "The accent brand color, entered as a hex code (e.g., #00ff00). You must provide the accent_color if you provide a main_color.",
          "type": "string"
        },
        "mainColor": {
          "description": "The main brand color, entered as a hex code (e.g., #00ff00). You must provide the main_color if you provide an accent_color.",
          "type": "string"
        },
        "predefinedFontFamily": {
          "description": "The brand's font family. Must be one of the following Google Fonts (case sensitive): Open Sans, Roboto, Montserrat, Poppins, Lato, Oswald, Playfair Display, Roboto Slab.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__NegativeKeywordListInfo": {
      "properties": {
        "sharedSet": {
          "type": "string",
          "description": "The NegativeKeywordListInfo shared set resource name."
        }
      },
      "id": "GoogleAdsSearchads360V23Common__NegativeKeywordListInfo",
      "description": "A Negative Keyword List criterion. Represents a shared set of negative keywords that can be excluded at the account-level. Only one negative keyword list criterion can be attached per account.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateAdGroupsResponse": {
      "id": "GoogleAdsSearchads360V23Services__MutateAdGroupsResponse",
      "description": "Response message for an ad group mutate.",
      "type": "object",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateAdGroupResult"
          },
          "description": "All results for the mutate."
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__ChangeStatus": {
      "id": "GoogleAdsSearchads360V23Resources__ChangeStatus",
      "description": "Describes the status of returned resource. ChangeStatus could have up to 3 minutes delay to reflect a new change.",
      "type": "object",
      "properties": {
        "customerAsset": {
          "description": "Output only. The CustomerAsset affected by this change.",
          "type": "string",
          "readOnly": true
        },
        "adGroupAsset": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The AdGroupAsset affected by this change."
        },
        "resourceType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AD_GROUP",
            "AD_GROUP_AD",
            "AD_GROUP_CRITERION",
            "CAMPAIGN",
            "CAMPAIGN_CRITERION",
            "CAMPAIGN_BUDGET",
            "FEED",
            "FEED_ITEM",
            "AD_GROUP_FEED",
            "CAMPAIGN_FEED",
            "AD_GROUP_BID_MODIFIER",
            "SHARED_SET",
            "CAMPAIGN_SHARED_SET",
            "ASSET",
            "CUSTOMER_ASSET",
            "CAMPAIGN_ASSET",
            "AD_GROUP_ASSET",
            "COMBINED_AUDIENCE",
            "ASSET_GROUP",
            "ASSET_SET",
            "CAMPAIGN_ASSET_SET"
          ],
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "No value has been specified.",
            "Used for return value only. Represents an unclassified resource unknown in this version.",
            "An AdGroup resource change.",
            "An AdGroupAd resource change.",
            "An AdGroupCriterion resource change.",
            "A Campaign resource change.",
            "A CampaignCriterion resource change.",
            "A CampaignBudget resource change.",
            "A Feed resource change.",
            "A FeedItem resource change.",
            "An AdGroupFeed resource change.",
            "A CampaignFeed resource change.",
            "An AdGroupBidModifier resource change.",
            "A SharedSet resource change.",
            "A CampaignSharedSet resource change.",
            "An Asset resource change.",
            "A CustomerAsset resource change.",
            "A CampaignAsset resource change.",
            "An AdGroupAsset resource change.",
            "A CombinedAudience resource change.",
            "An AssetGroup resource change.",
            "An AssetSet resource change.",
            "A CampaignAssetSet resource change."
          ],
          "description": "Output only. Represents the type of the changed resource. This dictates what fields will be set. For example, for AD_GROUP, campaign and ad_group fields will be set."
        },
        "adGroupBidModifier": {
          "readOnly": true,
          "description": "Output only. The AdGroupBidModifier affected by this change.",
          "type": "string"
        },
        "assetSet": {
          "type": "string",
          "description": "Output only. The AssetSet affected by this change.",
          "readOnly": true
        },
        "campaignCriterion": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The CampaignCriterion affected by this change."
        },
        "lastChangeDateTime": {
          "readOnly": true,
          "description": "Output only. Time at which the most recent change has occurred on this resource.",
          "type": "string"
        },
        "adGroupAd": {
          "type": "string",
          "description": "Output only. The AdGroupAd affected by this change.",
          "readOnly": true
        },
        "campaign": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The Campaign affected by this change."
        },
        "resourceStatus": {
          "type": "string",
          "enumDescriptions": [
            "No value has been specified.",
            "Used for return value only. Represents an unclassified resource unknown in this version.",
            "The resource was created.",
            "The resource was modified.",
            "The resource was removed."
          ],
          "description": "Output only. Represents the status of the changed resource.",
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADDED",
            "CHANGED",
            "REMOVED"
          ]
        },
        "adGroupCriterion": {
          "readOnly": true,
          "description": "Output only. The AdGroupCriterion affected by this change.",
          "type": "string"
        },
        "campaignAssetSet": {
          "type": "string",
          "description": "Output only. The CampaignAssetSet affected by this change.",
          "readOnly": true
        },
        "campaignSharedSet": {
          "type": "string",
          "description": "Output only. The CampaignSharedSet affected by this change.",
          "readOnly": true
        },
        "sharedSet": {
          "readOnly": true,
          "description": "Output only. The SharedSet affected by this change.",
          "type": "string"
        },
        "campaignBudget": {
          "description": "Output only. The CampaignBudget affected by this change.",
          "type": "string",
          "readOnly": true
        },
        "adGroup": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The AdGroup affected by this change."
        },
        "campaignAsset": {
          "description": "Output only. The CampaignAsset affected by this change.",
          "type": "string",
          "readOnly": true
        },
        "combinedAudience": {
          "readOnly": true,
          "description": "Output only. The CombinedAudience affected by this change.",
          "type": "string"
        },
        "resourceName": {
          "readOnly": true,
          "description": "Output only. The resource name of the change status. Change status resource names have the form: `customers/{customer_id}/changeStatus/{change_status_id}`",
          "type": "string"
        },
        "assetGroup": {
          "readOnly": true,
          "description": "Output only. The AssetGroup affected by this change.",
          "type": "string"
        },
        "asset": {
          "type": "string",
          "description": "Output only. The Asset affected by this change.",
          "readOnly": true
        }
      }
    },
    "GoogleAdsSearchads360V23Common__CustomerMatchUserListMetadata": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__CustomerMatchUserListMetadata",
      "description": "Metadata for customer match user list.",
      "properties": {
        "userList": {
          "type": "string",
          "description": "The resource name of remarketing list to update data. Required for job of CUSTOMER_MATCH_USER_LIST type."
        },
        "consent": {
          "description": "The consent setting for all the users in this job.",
          "$ref": "GoogleAdsSearchads360V23Common__Consent"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__ConfigureCampaignLifecycleGoalsRequest": {
      "properties": {
        "operation": {
          "description": "Required. The operation to perform campaign lifecycle goal update.",
          "$ref": "GoogleAdsSearchads360V23Services__CampaignLifecycleGoalOperation"
        },
        "validateOnly": {
          "type": "boolean",
          "description": "Optional. If true, the request is validated but not executed. Only errors are returned, not results."
        }
      },
      "id": "GoogleAdsSearchads360V23Services__ConfigureCampaignLifecycleGoalsRequest",
      "description": "Request message for CampaignLifecycleGoalService.ConfigureCampaignLifecycleGoals.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateBiddingStrategyResult": {
      "id": "GoogleAdsSearchads360V23Services__MutateBiddingStrategyResult",
      "description": "The result for the bidding strategy mutate.",
      "type": "object",
      "properties": {
        "biddingStrategy": {
          "description": "The mutated bidding strategy with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsSearchads360V23Resources__BiddingStrategy"
        },
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateAssetSetAssetResult": {
      "id": "GoogleAdsSearchads360V23Services__MutateAssetSetAssetResult",
      "description": "The result for the asset set asset mutate.",
      "type": "object",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        },
        "assetSetAsset": {
          "description": "The mutated asset set asset with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsSearchads360V23Resources__AssetSetAsset"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__DoubleClickCampaignManagerSetting": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__DoubleClickCampaignManagerSetting",
      "description": "DoubleClick Campaign Manager (DCM) setting for a manager customer.",
      "properties": {
        "advertiserId": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. ID of the Campaign Manager advertiser associated with this customer."
        },
        "timeZone": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Time zone of the Campaign Manager network associated with this customer in IANA Time Zone Database format, such as America/New_York."
        },
        "networkId": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. ID of the Campaign Manager network associated with this customer."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateCustomConversionGoalsRequest": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateCustomConversionGoalsRequest",
      "description": "Request message for CustomConversionGoalService.MutateCustomConversionGoals.",
      "properties": {
        "operations": {
          "description": "Required. The list of operations to perform on individual custom conversion goal.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__CustomConversionGoalOperation"
          }
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "responseContentType": {
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "type": "string",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ]
        }
      }
    },
    "GoogleAdsSearchads360V23Services__DismissRecommendationResponse": {
      "id": "GoogleAdsSearchads360V23Services__DismissRecommendationResponse",
      "description": "Response message for RecommendationService.DismissRecommendation.",
      "type": "object",
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services_DismissRecommendationResponse_DismissRecommendationResult"
          },
          "description": "Results of operations to dismiss recommendations."
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors) we return the RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__GenerateKeywordHistoricalMetricsRequest": {
      "id": "GoogleAdsSearchads360V23Services__GenerateKeywordHistoricalMetricsRequest",
      "description": "Request message for KeywordPlanIdeaService.GenerateKeywordHistoricalMetrics.",
      "type": "object",
      "properties": {
        "language": {
          "description": "The resource name of the language to target. Each keyword belongs to some set of languages; a keyword is included if language is one of its languages. If not set, all keywords will be included.",
          "type": "string"
        },
        "includeAdultKeywords": {
          "type": "boolean",
          "description": "If true, adult keywords will be included in response. The default value is false."
        },
        "geoTargetConstants": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The resource names of the location to target. Maximum is 10. An empty list MAY be used to specify all targeting geos."
        },
        "keywords": {
          "description": "A list of keywords to get historical metrics. Not all inputs will be returned as a result of near-exact deduplication. For example, if stats for \"car\" and \"cars\" are requested, only \"car\" will be returned. A maximum of 10,000 keywords can be used.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "aggregateMetrics": {
          "description": "The aggregate fields to include in response.",
          "$ref": "GoogleAdsSearchads360V23Common__KeywordPlanAggregateMetrics"
        },
        "historicalMetricsOptions": {
          "description": "The options for historical metrics data.",
          "$ref": "GoogleAdsSearchads360V23Common__HistoricalMetricsOptions"
        },
        "keywordPlanNetwork": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Google Search.",
            "Google Search + Search partners."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "GOOGLE_SEARCH",
            "GOOGLE_SEARCH_AND_PARTNERS"
          ],
          "description": "Targeting network. If not set, Google Search And Partners Network will be used."
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__CustomerClientLink": {
      "properties": {
        "clientCustomer": {
          "type": "string",
          "description": "Immutable. The client customer linked to this customer."
        },
        "managerLinkId": {
          "type": "string",
          "format": "int64",
          "description": "Output only. This is uniquely identifies a customer client link. Read only.",
          "readOnly": true
        },
        "resourceName": {
          "description": "Immutable. Name of the resource. CustomerClientLink resource names have the form: `customers/{customer_id}/customerClientLinks/{client_customer_id}~{manager_link_id}`",
          "type": "string"
        },
        "status": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Indicates current in-effect relationship",
            "Indicates terminated relationship",
            "Indicates relationship has been requested by manager, but the client hasn't accepted yet.",
            "Relationship was requested by the manager, but the client has refused.",
            "Indicates relationship has been requested by manager, but manager canceled it."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ACTIVE",
            "INACTIVE",
            "PENDING",
            "REFUSED",
            "CANCELED"
          ],
          "description": "This is the status of the link between client and manager."
        },
        "hidden": {
          "type": "boolean",
          "description": "The visibility of the link. Users can choose whether or not to see hidden links in the Google Ads UI. Default value is false"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__CustomerClientLink",
      "description": "Represents customer client link relationship."
    },
    "GoogleAdsSearchads360V23Resources_ListingGroupFilterDimension_ProductChannel": {
      "properties": {
        "channel": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The item is sold online.",
            "The item is sold in local stores."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ONLINE",
            "LOCAL"
          ],
          "description": "Value of the locality."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources_ListingGroupFilterDimension_ProductChannel",
      "description": "Locality of a product offer."
    },
    "GoogleAdsSearchads360V23Common__ProductItemIdInfo": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__ProductItemIdInfo",
      "description": "Item id of a product offer.",
      "properties": {
        "value": {
          "description": "Value of the id.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateBiddingDataExclusionsResult": {
      "id": "GoogleAdsSearchads360V23Services__MutateBiddingDataExclusionsResult",
      "description": "The result for the data exclusion mutate.",
      "type": "object",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        },
        "biddingDataExclusion": {
          "description": "The mutated bidding data exclusion with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsSearchads360V23Resources__BiddingDataExclusion"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__CampaignThirdPartyIntegrationPartners": {
      "properties": {
        "brandLiftIntegrationPartners": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__CampaignThirdPartyBrandLiftIntegrationPartner"
          },
          "description": "Third party integration partners for Brand Lift verification for this Campaign."
        },
        "viewabilityIntegrationPartners": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__CampaignThirdPartyViewabilityIntegrationPartner"
          },
          "description": "Third party integration partners for YouTube viewability verification for this Campaign."
        },
        "brandSafetyIntegrationPartners": {
          "description": "Third party integration partners for brand safety verification for this Campaign.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__CampaignThirdPartyBrandSafetyIntegrationPartner"
          }
        },
        "reachIntegrationPartners": {
          "description": "Third party integration partners for reach verification for this Campaign.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__CampaignThirdPartyReachIntegrationPartner"
          }
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__CampaignThirdPartyIntegrationPartners",
      "description": "Container for Campaign level third party integration partners."
    },
    "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_TargetCpaOptInParameters": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_TargetCpaOptInParameters",
      "description": "Parameters to use when applying Target CPA recommendation.",
      "properties": {
        "newCampaignBudgetAmountMicros": {
          "description": "Optional, budget amount to set for the campaign.",
          "type": "string",
          "format": "int64"
        },
        "targetCpaMicros": {
          "type": "string",
          "format": "int64",
          "description": "Average CPA to use for Target CPA bidding strategy. This is a required field."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateAdGroupAssetSetResult": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateAdGroupAssetSetResult",
      "description": "The result for the ad group asset set mutate.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        },
        "adGroupAssetSet": {
          "description": "The mutated ad group asset set with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsSearchads360V23Resources__AdGroupAssetSet"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources_ListingGroupFilterDimension_ProductCustomAttribute": {
      "properties": {
        "index": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "First listing group filter custom attribute.",
            "Second listing group filter custom attribute.",
            "Third listing group filter custom attribute.",
            "Fourth listing group filter custom attribute.",
            "Fifth listing group filter custom attribute."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INDEX0",
            "INDEX1",
            "INDEX2",
            "INDEX3",
            "INDEX4"
          ],
          "description": "Indicates the index of the custom attribute."
        },
        "value": {
          "type": "string",
          "description": "String value of the product custom attribute."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources_ListingGroupFilterDimension_ProductCustomAttribute",
      "description": "Custom attribute of a product offer."
    },
    "GoogleAdsSearchads360V23Common__LeadFormSingleChoiceAnswers": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__LeadFormSingleChoiceAnswers",
      "description": "Defines possible answers for a single choice question, usually presented as a single-choice drop-down list.",
      "properties": {
        "answers": {
          "description": "List of choices for a single question field. The order of entries defines UI order. Minimum of 2 answers required and maximum of 12 allowed.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "GoogleAdsSearchads360V23Services__CustomerAssetSetOperation": {
      "id": "GoogleAdsSearchads360V23Services__CustomerAssetSetOperation",
      "description": "A single operation (create, remove) on a customer asset set.",
      "type": "object",
      "properties": {
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed customer asset set is expected, in this format: `customers/{customer_id}/customerAssetSets/{asset_set_id}`"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new customer asset set.",
          "$ref": "GoogleAdsSearchads360V23Resources__CustomerAssetSet"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__AdGroupBidModifier": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__AdGroupBidModifier",
      "description": "Represents an ad group bid modifier.",
      "properties": {
        "hotelAdvanceBookingWindow": {
          "description": "Immutable. Criterion for number of days prior to the stay the booking is being made.",
          "$ref": "GoogleAdsSearchads360V23Common__HotelAdvanceBookingWindowInfo"
        },
        "criterionId": {
          "type": "string",
          "format": "int64",
          "description": "Output only. The ID of the criterion to bid modify. This field is ignored for mutates.",
          "readOnly": true
        },
        "hotelLengthOfStay": {
          "description": "Immutable. Criterion for length of hotel stay in nights.",
          "$ref": "GoogleAdsSearchads360V23Common__HotelLengthOfStayInfo"
        },
        "hotelCheckInDateRange": {
          "description": "Immutable. Criterion for a hotel check-in date range.",
          "$ref": "GoogleAdsSearchads360V23Common__HotelCheckInDateRangeInfo"
        },
        "adGroup": {
          "type": "string",
          "description": "Immutable. The ad group to which this criterion belongs."
        },
        "bidModifierSource": {
          "description": "Output only. Bid modifier source.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The bid modifier is specified at the campaign level, on the campaign level criterion.",
            "The bid modifier is specified (overridden) at the ad group level."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CAMPAIGN",
            "AD_GROUP"
          ],
          "readOnly": true
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the ad group bid modifier. Ad group bid modifier resource names have the form: `customers/{customer_id}/adGroupBidModifiers/{ad_group_id}~{criterion_id}`"
        },
        "bidModifier": {
          "type": "number",
          "format": "double",
          "description": "The modifier for the bid when the criterion matches. The modifier must be in the range: 0.1 - 10.0. Use 0 to opt out of a Device type."
        },
        "hotelCheckInDay": {
          "description": "Immutable. Criterion for day of the week the booking is for.",
          "$ref": "GoogleAdsSearchads360V23Common__HotelCheckInDayInfo"
        },
        "device": {
          "description": "Immutable. A device criterion.",
          "$ref": "GoogleAdsSearchads360V23Common__DeviceInfo"
        },
        "baseAdGroup": {
          "description": "Output only. The base ad group from which this draft/trial adgroup bid modifier was created. If ad_group is a base ad group then this field will be equal to ad_group. If the ad group was created in the draft or trial and has no corresponding base ad group, then this field will be null. This field is readonly.",
          "type": "string",
          "readOnly": true
        },
        "hotelDateSelectionType": {
          "description": "Immutable. Criterion for hotel date selection (default dates versus user selected).",
          "$ref": "GoogleAdsSearchads360V23Common__HotelDateSelectionTypeInfo"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__GenderDimension": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__GenderDimension",
      "description": "Dimension specifying users by their gender.",
      "properties": {
        "genders": {
          "description": "Included gender demographic segments.",
          "type": "array",
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "Male.",
              "Female.",
              "Undetermined gender."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "MALE",
              "FEMALE",
              "UNDETERMINED"
            ]
          }
        },
        "includeUndetermined": {
          "type": "boolean",
          "description": "Include users whose gender is not determined."
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__DataPartnerIdentifier": {
      "properties": {
        "dataPartnerId": {
          "type": "string",
          "format": "int64",
          "description": "Immutable. The customer ID of the Data partner account. This field is required and should not be empty when creating a new data partner link. It is unable to be modified after the creation of the link."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__DataPartnerIdentifier",
      "description": "The identifier for Data Partner account."
    },
    "GoogleAdsSearchads360V23Resources__CampaignConversionGoal": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__CampaignConversionGoal",
      "description": "The biddability setting for the specified campaign only for all conversion actions with a matching category and origin.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the campaign conversion goal. Campaign conversion goal resource names have the form: `customers/{customer_id}/campaignConversionGoals/{campaign_id}~{category}~{origin}`"
        },
        "origin": {
          "type": "string",
          "enumDescriptions": [
            "The conversion origin has not been specified.",
            "The conversion origin is not known in this version.",
            "Conversion that occurs when a user visits a website or takes an action there after viewing an ad.",
            "Conversions reported by an offline pipeline which collects local actions from Google-hosted pages (for example, Google Maps, Google Place Page, etc) and attributes them to relevant ad events.",
            "Conversion that occurs when a user performs an action through any app platforms.",
            "Conversion that occurs when a user makes a call from ads.",
            "Conversion that occurs when a user visits or makes a purchase at a physical store.",
            "Conversion that occurs on YouTube.",
            "Conversions that occur through Floodlight tag."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "WEBSITE",
            "GOOGLE_HOSTED",
            "APP",
            "CALL_FROM_ADS",
            "STORE",
            "YOUTUBE_HOSTED",
            "FLOODLIGHT"
          ],
          "description": "The conversion origin of this campaign conversion goal."
        },
        "searchAds360Biddable": {
          "description": "Search Ads 360 biddability of the campaign conversion goal.",
          "type": "boolean"
        },
        "category": {
          "description": "The conversion category of this campaign conversion goal.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Default category.",
            "User visiting a page.",
            "Purchase, sales, or \"order placed\" event.",
            "Signup user action.",
            "Software download action (as for an app).",
            "The addition of items to a shopping cart or bag on an advertiser site.",
            "When someone enters the checkout flow on an advertiser site.",
            "The start of a paid subscription for a product or service.",
            "A call to indicate interest in an advertiser's offering.",
            "A lead conversion imported from an external source into Google Ads.",
            "A submission of a form on an advertiser site indicating business interest.",
            "A booking of an appointment with an advertiser's business.",
            "A quote or price estimate request.",
            "A search for an advertiser's business location with intention to visit.",
            "A click to an advertiser's partner's site.",
            "A call, SMS, email, chat or other type of contact to an advertiser.",
            "A website engagement event such as long site time or a Google Analytics (GA) Smart Goal. Intended to be used for GA, Firebase, GA Gold goal imports.",
            "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DEFAULT",
            "PAGE_VIEW",
            "PURCHASE",
            "SIGNUP",
            "DOWNLOAD",
            "ADD_TO_CART",
            "BEGIN_CHECKOUT",
            "SUBSCRIBE_PAID",
            "PHONE_CALL_LEAD",
            "IMPORTED_LEAD",
            "SUBMIT_LEAD_FORM",
            "BOOK_APPOINTMENT",
            "REQUEST_QUOTE",
            "GET_DIRECTIONS",
            "OUTBOUND_CLICK",
            "CONTACT",
            "ENGAGEMENT",
            "STORE_VISIT",
            "STORE_SALE",
            "QUALIFIED_LEAD",
            "CONVERTED_LEAD"
          ]
        },
        "campaign": {
          "description": "Immutable. The campaign with which this campaign conversion goal is associated.",
          "type": "string"
        },
        "biddable": {
          "type": "boolean",
          "description": "The biddability of the campaign conversion goal."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__WebpageSampleInfo": {
      "properties": {
        "sampleUrls": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Webpage sample urls"
        }
      },
      "id": "GoogleAdsSearchads360V23Common__WebpageSampleInfo",
      "description": "List of sample urls that match the website target",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateCustomizerAttributesResponse": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateCustomizerAttributesResponse",
      "description": "Response message for a customizer attribute mutate.",
      "properties": {
        "results": {
          "description": "All results for the mutate.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateCustomizerAttributeResult"
          }
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__LocationGroupInfo": {
      "id": "GoogleAdsSearchads360V23Common__LocationGroupInfo",
      "description": "A radius around a list of locations specified through a feed.",
      "type": "object",
      "properties": {
        "radiusUnits": {
          "description": "Unit of the radius. Miles and meters are supported for geo target constants. Milli miles and meters are supported for feed item sets. This is required and must be set in CREATE operations.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Meters",
            "Miles",
            "Milli Miles"
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "METERS",
            "MILES",
            "MILLI_MILES"
          ]
        },
        "geoTargetConstants": {
          "description": "Geo target constant(s) restricting the scope of the geographic area within the feed. Currently only one geo target constant is allowed.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "locationGroupAssetSets": {
          "description": "AssetSets whose Assets are targeted. If multiple IDs are specified, then all items that appear in at least one set are targeted. This field cannot be used with feed, geo target constants or feed item sets. When using asset sets, either this field or enable_customer_level_location_asset_set should be specified. Both cannot be used at the same time. This can only be set in CREATE operations.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "feedItemSets": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "FeedItemSets whose FeedItems are targeted. If multiple IDs are specified, then all items that appear in at least one set are targeted. This field cannot be used with geo_target_constants. This is optional and can only be set in CREATE operations."
        },
        "radius": {
          "description": "Distance in units specifying the radius around targeted locations. This is required and must be set in CREATE operations.",
          "type": "string",
          "format": "int64"
        },
        "enableCustomerLevelLocationAssetSet": {
          "type": "boolean",
          "description": "Denotes that the latest customer level asset set is used for targeting. Used with radius and radius_units. Cannot be used with feed, geo target constants or feed item sets. When using asset sets, either this field or location_group_asset_sets should be specified. Both cannot be used at the same time. This can only be set in CREATE operations."
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__ConversionGoalCampaignConfig": {
      "id": "GoogleAdsSearchads360V23Resources__ConversionGoalCampaignConfig",
      "description": "Conversion goal settings for a Campaign.",
      "type": "object",
      "properties": {
        "searchAds360GoalConfigLevel": {
          "type": "string",
          "enumDescriptions": [
            "The goal config level has not been specified.",
            "The goal config level is not known in this version.",
            "The goal config is defined at the customer level.",
            "The goal config is defined at the campaign level."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CUSTOMER",
            "CAMPAIGN"
          ],
          "description": "The level of Search Ads 360 goal config the campaign is using."
        },
        "goalConfigLevel": {
          "description": "The level of goal config the campaign is using.",
          "type": "string",
          "enumDescriptions": [
            "The goal config level has not been specified.",
            "The goal config level is not known in this version.",
            "The goal config is defined at the customer level.",
            "The goal config is defined at the campaign level."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CUSTOMER",
            "CAMPAIGN"
          ]
        },
        "resourceName": {
          "description": "Immutable. The resource name of the conversion goal campaign config. Conversion goal campaign config resource names have the form: `customers/{customer_id}/conversionGoalCampaignConfigs/{campaign_id}`",
          "type": "string"
        },
        "customConversionGoal": {
          "description": "The custom conversion goal the campaign is using for optimization.",
          "type": "string"
        },
        "searchAds360CustomConversionGoal": {
          "description": "The Search Ads 360 custom conversion goal the campaign is using for optimization.",
          "type": "string"
        },
        "campaign": {
          "description": "Immutable. The campaign with which this conversion goal campaign config is associated.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources_ShoppingProduct_ProductIssue": {
      "properties": {
        "description": {
          "description": "Output only. The short description of the issue in English.",
          "type": "string",
          "readOnly": true
        },
        "attributeName": {
          "description": "Output only. The name of the product's attribute, if any, that triggered the issue.",
          "type": "string",
          "readOnly": true
        },
        "adsSeverity": {
          "description": "Output only. The severity of the issue in Google Ads.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The issue limits the performance of the product in ads.",
            "The issue prevents the product from showing in ads."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "WARNING",
            "ERROR"
          ],
          "readOnly": true
        },
        "documentation": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The URL of the Help Center article for the issue."
        },
        "detail": {
          "readOnly": true,
          "description": "Output only. The detailed description of the issue in English.",
          "type": "string"
        },
        "affectedRegions": {
          "description": "Output only. List of upper-case two-letter ISO 3166-1 codes of the regions affected by the issue. If empty, all regions are affected.",
          "type": "array",
          "items": {
            "type": "string"
          },
          "readOnly": true
        },
        "errorCode": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The error code that identifies the issue."
        }
      },
      "id": "GoogleAdsSearchads360V23Resources_ShoppingProduct_ProductIssue",
      "description": "An issue affecting whether a product can show in ads.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources__WebpageView": {
      "properties": {
        "resourceName": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The resource name of the webpage view. Webpage view resource names have the form: `customers/{customer_id}/webpageViews/{ad_group_id}~{criterion_id}`"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__WebpageView",
      "description": "A webpage view."
    },
    "GoogleAdsSearchads360V23Common__HotelDateSelectionTypeInfo": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__HotelDateSelectionTypeInfo",
      "description": "Criterion for hotel date selection (default dates versus user selected).",
      "properties": {
        "type": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Dates selected by default.",
            "Dates selected by the user."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DEFAULT_SELECTION",
            "USER_SELECTED"
          ],
          "description": "Type of the hotel date selection"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources_Recommendation_RaiseTargetCpaRecommendation": {
      "id": "GoogleAdsSearchads360V23Resources_Recommendation_RaiseTargetCpaRecommendation",
      "description": "Recommendation to raise Target CPA.",
      "type": "object",
      "properties": {
        "appBiddingGoal": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Represents value unknown in this version of the API.",
            "The bidding strategy of the app campaign should aim to maximize installation of the app.",
            "The bidding strategy of the app campaign should aim to maximize the selected in-app conversions' volume.",
            "The bidding strategy of the app campaign should aim to maximize all conversions' value, that is, install and selected in-app conversions.",
            "The bidding strategy of the app campaign should aim to maximize just the selected in-app conversion's volume, while achieving or exceeding target cost per in-app conversion.",
            "The bidding strategy of the app campaign should aim to maximize all conversions' value, that is, install and selected in-app conversions while achieving or exceeding target return on advertising spend.",
            "This bidding strategy of the app campaign should aim to maximize installation of the app without advertiser-provided target cost-per-install.",
            "This bidding strategy of the app campaign should aim to maximize pre-registration of the app."
          ],
          "description": "Output only. Represents the goal towards which the bidding strategy should optimize. Only populated for App Campaigns.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "OPTIMIZE_FOR_INSTALL_CONVERSION_VOLUME",
            "OPTIMIZE_FOR_IN_APP_CONVERSION_VOLUME",
            "OPTIMIZE_FOR_TOTAL_CONVERSION_VALUE",
            "OPTIMIZE_FOR_TARGET_IN_APP_CONVERSION",
            "OPTIMIZE_FOR_RETURN_ON_ADVERTISING_SPEND",
            "OPTIMIZE_FOR_INSTALL_CONVERSION_VOLUME_WITHOUT_TARGET_CPI",
            "OPTIMIZE_FOR_PRE_REGISTRATION_CONVERSION_VOLUME"
          ],
          "readOnly": true
        },
        "targetAdjustment": {
          "readOnly": true,
          "description": "Output only. The relevant information describing the recommended target adjustment.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_TargetAdjustmentInfo"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateAssetGroupAssetsRequest": {
      "id": "GoogleAdsSearchads360V23Services__MutateAssetGroupAssetsRequest",
      "description": "Request message for AssetGroupAssetService.MutateAssetGroupAssets.",
      "type": "object",
      "properties": {
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__AssetGroupAssetOperation"
          },
          "description": "Required. The list of operations to perform on individual asset group assets."
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__UserListDateRuleItemInfo": {
      "id": "GoogleAdsSearchads360V23Common__UserListDateRuleItemInfo",
      "description": "A rule item composed of a date operation.",
      "type": "object",
      "properties": {
        "offsetInDays": {
          "type": "string",
          "format": "int64",
          "description": "The relative date value of the right hand side denoted by number of days offset from now. The value field will override this field when both are present."
        },
        "value": {
          "type": "string",
          "description": "String representing date value to be compared with the rule variable. Supported date format is YYYY-MM-DD. Times are reported in the customer's time zone."
        },
        "operator": {
          "description": "Date comparison operator. This field is required and must be populated when creating new date rule item.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Equals.",
            "Not Equals.",
            "Before.",
            "After."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "EQUALS",
            "NOT_EQUALS",
            "BEFORE",
            "AFTER"
          ]
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateCampaignsRequest": {
      "id": "GoogleAdsSearchads360V23Services__MutateCampaignsRequest",
      "description": "Request message for CampaignService.MutateCampaigns.",
      "type": "object",
      "properties": {
        "responseContentType": {
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "type": "string",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ]
        },
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        },
        "operations": {
          "description": "Required. The list of operations to perform on individual campaigns.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__CampaignOperation"
          }
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__HotelPerformanceView": {
      "properties": {
        "resourceName": {
          "description": "Output only. The resource name of the hotel performance view. Hotel performance view resource names have the form: `customers/{customer_id}/hotelPerformanceView`",
          "type": "string",
          "readOnly": true
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__HotelPerformanceView",
      "description": "A hotel performance view."
    },
    "GoogleAdsSearchads360V23Resources_AccessibleBiddingStrategy_TargetImpressionShare": {
      "id": "GoogleAdsSearchads360V23Resources_AccessibleBiddingStrategy_TargetImpressionShare",
      "description": "An automated bidding strategy that sets bids so that a certain percentage of search ads are shown at the top of the first page (or other targeted location).",
      "type": "object",
      "properties": {
        "location": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ANYWHERE_ON_PAGE",
            "TOP_OF_PAGE",
            "ABSOLUTE_TOP_OF_PAGE"
          ],
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Any location on the web page.",
            "Top box of ads.",
            "Top slot in the top box of ads."
          ],
          "description": "Output only. The targeted location on the search results page."
        },
        "cpcBidCeilingMicros": {
          "readOnly": true,
          "description": "Output only. The highest CPC bid the automated bidding system is permitted to specify. This is a required field entered by the advertiser that sets the ceiling and specified in local micros.",
          "type": "string",
          "format": "int64"
        },
        "locationFractionMicros": {
          "description": "The chosen fraction of ads to be shown in the targeted location in micros. For example, 1% equals 10,000.",
          "type": "string",
          "format": "int64"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__AdGroupCriterionLabel": {
      "properties": {
        "adGroupCriterion": {
          "type": "string",
          "description": "Immutable. The ad group criterion to which the label is attached."
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the ad group criterion label. Ad group criterion label resource names have the form: `customers/{owner_customer_id}/adGroupCriterionLabels/{ad_group_id}~{criterion_id}~{label_id}`"
        },
        "label": {
          "description": "Immutable. The label assigned to the ad group criterion.",
          "type": "string"
        },
        "ownerCustomerId": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. The ID of the Customer which owns the label."
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__AdGroupCriterionLabel",
      "description": "A relationship between an ad group criterion and a label.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources_Recommendation_CampaignBudget": {
      "id": "GoogleAdsSearchads360V23Resources_Recommendation_CampaignBudget",
      "description": "A campaign budget shared amongst various budget recommendation types.",
      "type": "object",
      "properties": {
        "recommendedNewAmountMicros": {
          "readOnly": true,
          "description": "Output only. Recommended budget amount.",
          "type": "string",
          "format": "int64"
        },
        "currentAmountMicros": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. Current budget amount."
        },
        "newStartDate": {
          "readOnly": true,
          "description": "Output only. The date when the new budget would start being used. This field will be set for the following recommendation types: FORECASTING_SET_TARGET_ROAS YYYY-MM-DD format, for example, 2018-04-17.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateAudiencesRequest": {
      "properties": {
        "responseContentType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation."
        },
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        },
        "operations": {
          "description": "Required. The list of operations to perform on individual audiences.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__AudienceOperation"
          }
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__MutateAudiencesRequest",
      "description": "Request message for AudienceService.MutateAudiences.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__AppendLeadConversationRequest": {
      "id": "GoogleAdsSearchads360V23Services__AppendLeadConversationRequest",
      "description": "Request message for LocalServicesLeadService.AppendLeadConversation.",
      "type": "object",
      "properties": {
        "conversations": {
          "description": "Required. Conversations that are being appended.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__Conversation"
          }
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__AssetGroupAsset": {
      "properties": {
        "status": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Asset link is enabled.",
            "Asset link has been removed.",
            "Asset link is paused."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED",
            "PAUSED"
          ],
          "description": "The status of the link between an asset and asset group."
        },
        "source": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADVERTISER",
            "AUTOMATICALLY_CREATED"
          ],
          "readOnly": true,
          "description": "Output only. Source of the asset group asset.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset or asset link is provided by advertiser.",
            "The asset or asset link is generated by Google."
          ]
        },
        "primaryStatus": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ELIGIBLE",
            "PAUSED",
            "REMOVED",
            "PENDING",
            "LIMITED",
            "NOT_ELIGIBLE"
          ],
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is eligible to serve.",
            "The user-specified asset link status is paused.",
            "The user-specified asset link status is removed.",
            "The asset may serve in the future.",
            "The asset is serving in a partial capacity.",
            "The asset is not eligible to serve."
          ],
          "description": "Output only. Provides the PrimaryStatus of this asset link. Primary status is meant essentially to differentiate between the plain \"status\" field, which has advertiser set values of enabled, paused, or removed. The primary status takes into account other signals (for assets its mainly policy and quality approvals) to come up with a more comprehensive status to indicate its serving state."
        },
        "primaryStatusReasons": {
          "type": "array",
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "The asset is paused for its linked rollup level. Contributes to a PrimaryStatus of PAUSED.",
              "The asset is removed for its linked rollup level. Contributes to a PrimaryStatus of REMOVED.",
              "The asset has been marked as disapproved. Contributes to a PrimaryStatus of NOT_ELIGIBLE",
              "The asset has not completed policy review. Contributes to a PrimaryStatus of PENDING.",
              "The asset is approved with policies applied. Contributes to a PrimaryStatus of LIMITED."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "ASSET_LINK_PAUSED",
              "ASSET_LINK_REMOVED",
              "ASSET_DISAPPROVED",
              "ASSET_UNDER_REVIEW",
              "ASSET_APPROVED_LABELED"
            ]
          },
          "description": "Output only. Provides a list of reasons for why an asset is not serving or not serving at full capacity.",
          "readOnly": true
        },
        "fieldType": {
          "description": "The description of the placement of the asset within the asset group. For example: HEADLINE, YOUTUBE_VIDEO etc",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is linked for use as a headline.",
            "The asset is linked for use as a description.",
            "The asset is linked for use as mandatory ad text.",
            "The asset is linked for use as a marketing image.",
            "The asset is linked for use as a media bundle.",
            "The asset is linked for use as a YouTube video.",
            "The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.",
            "The asset is linked for use as a Lead Form extension.",
            "The asset is linked for use as a Promotion extension.",
            "The asset is linked for use as a Callout extension.",
            "The asset is linked for use as a Structured Snippet extension.",
            "The asset is linked for use as a Sitelink.",
            "The asset is linked for use as a Mobile App extension.",
            "The asset is linked for use as a Hotel Callout extension.",
            "The asset is linked for use as a Call extension.",
            "The asset is linked for use as a Price extension.",
            "The asset is linked for use as a long headline.",
            "The asset is linked for use as a business name.",
            "The asset is linked for use as a square marketing image.",
            "The asset is linked for use as a portrait marketing image.",
            "The asset is linked for use as a logo.",
            "The asset is linked for use as a landscape logo.",
            "The asset is linked for use as a non YouTube logo.",
            "The asset is linked for use to select a call-to-action.",
            "The asset is linked for use to select an ad image.",
            "The asset is linked for use as a business logo.",
            "The asset is linked for use as a hotel property in a Performance Max for travel goals campaign.",
            "The asset is linked for use as a Demand Gen carousel card.",
            "The asset is linked for use as a Business Message.",
            "The asset is linked for use as a tall portrait marketing image.",
            "The asset is linked for use as a landing page preview image.",
            "The asset is linked for use as a long description.",
            "The asset is linked for use as a call-to-action."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HEADLINE",
            "DESCRIPTION",
            "MANDATORY_AD_TEXT",
            "MARKETING_IMAGE",
            "MEDIA_BUNDLE",
            "YOUTUBE_VIDEO",
            "BOOK_ON_GOOGLE",
            "LEAD_FORM",
            "PROMOTION",
            "CALLOUT",
            "STRUCTURED_SNIPPET",
            "SITELINK",
            "MOBILE_APP",
            "HOTEL_CALLOUT",
            "CALL",
            "PRICE",
            "LONG_HEADLINE",
            "BUSINESS_NAME",
            "SQUARE_MARKETING_IMAGE",
            "PORTRAIT_MARKETING_IMAGE",
            "LOGO",
            "LANDSCAPE_LOGO",
            "VIDEO",
            "CALL_TO_ACTION_SELECTION",
            "AD_IMAGE",
            "BUSINESS_LOGO",
            "HOTEL_PROPERTY",
            "DEMAND_GEN_CAROUSEL_CARD",
            "BUSINESS_MESSAGE",
            "TALL_PORTRAIT_MARKETING_IMAGE",
            "LANDING_PAGE_PREVIEW",
            "LONG_DESCRIPTION",
            "CALL_TO_ACTION"
          ]
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the asset group asset. Asset group asset resource name have the form: `customers/{customer_id}/assetGroupAssets/{asset_group_id}~{asset_id}~{field_type}`"
        },
        "asset": {
          "description": "Immutable. The asset which this asset group asset is linking.",
          "type": "string"
        },
        "assetGroup": {
          "type": "string",
          "description": "Immutable. The asset group which this asset group asset is linking."
        },
        "primaryStatusDetails": {
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AssetLinkPrimaryStatusDetails"
          },
          "description": "Output only. Provides the details of the primary status and its associated reasons."
        },
        "policySummary": {
          "description": "Output only. The policy information for this asset group asset.",
          "$ref": "GoogleAdsSearchads360V23Common__PolicySummary",
          "readOnly": true
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__AssetGroupAsset",
      "description": "AssetGroupAsset is the link between an asset and an asset group. Adding an AssetGroupAsset links an asset with an asset group.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateAdGroupCustomizersResponse": {
      "properties": {
        "results": {
          "description": "All results for the mutate.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateAdGroupCustomizerResult"
          }
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__MutateAdGroupCustomizersResponse",
      "description": "Response message for an ad group customizer mutate.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources_AssetSet_HotelPropertyData": {
      "properties": {
        "hotelCenterId": {
          "readOnly": true,
          "description": "Output only. The hotel center ID of the partner.",
          "type": "string",
          "format": "int64"
        },
        "partnerName": {
          "readOnly": true,
          "description": "Output only. Name of the hotel partner.",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V23Resources_AssetSet_HotelPropertyData",
      "description": "For Performance Max for travel goals campaigns with a Hotel Center account link. Read-only.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateUserListCustomerTypesResponse": {
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "description": "All results for the mutate.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateUserListCustomerTypeResult"
          }
        }
      },
      "id": "GoogleAdsSearchads360V23Services__MutateUserListCustomerTypesResponse",
      "description": "Response message for a user list customer type mutate.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__DynamicJobsAsset": {
      "properties": {
        "jobSubtitle": {
          "description": "Job subtitle, for example, Level II.",
          "type": "string"
        },
        "imageUrl": {
          "type": "string",
          "description": "Image URL, for example, http://www.example.com/image.png. The image will not be uploaded as image asset."
        },
        "jobId": {
          "type": "string",
          "description": "Required. Job ID which can be any sequence of letters and digits, and must be unique and match the values of remarketing tag. Required."
        },
        "iosAppLink": {
          "description": "iOS deep link, for example, exampleApp://content/page.",
          "type": "string"
        },
        "contextualKeywords": {
          "description": "Contextual keywords, for example, Software engineering job.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "jobCategory": {
          "type": "string",
          "description": "Job category, for example, Technical."
        },
        "description": {
          "description": "Description, for example, Apply your technical skills.",
          "type": "string"
        },
        "similarJobIds": {
          "description": "Similar job IDs, for example, 1275.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "iosAppStoreId": {
          "description": "iOS app store ID. This is used to check if the user has the app installed on their device before deep linking. If this field is set, then the ios_app_link field must also be present.",
          "type": "string",
          "format": "int64"
        },
        "locationId": {
          "type": "string",
          "description": "Location ID which can be any sequence of letters and digits. The ID sequence (job ID + location ID) must be unique."
        },
        "address": {
          "description": "Address which can be specified in one of the following formats. (1) City, state, code, country, for example, Mountain View, CA, USA. (2) Full address, for example, 123 Boulevard St, Mountain View, CA 94043. (3) Latitude-longitude in the DDD format, for example, 41.40338, 2.17403.",
          "type": "string"
        },
        "jobTitle": {
          "description": "Required. Job title, for example, Software engineer. Required.",
          "type": "string"
        },
        "salary": {
          "type": "string",
          "description": "Salary, for example, $100,000."
        },
        "androidAppLink": {
          "type": "string",
          "description": "Android deep link, for example, android-app://com.example.android/http/example.com/gizmos?1234."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__DynamicJobsAsset",
      "description": "A dynamic jobs asset."
    },
    "GoogleAdsSearchads360V23Resources__AssetSet": {
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the asset set. Asset set resource names have the form: `customers/{customer_id}/assetSets/{asset_set_id}`"
        },
        "locationGroupParentAssetSetId": {
          "type": "string",
          "format": "int64",
          "description": "Immutable. Parent asset set ID for the asset set where the elements of this asset set come from. For example: the sync level location AssetSet id where the elements in LocationGroup AssetSet come from. This field is required and only applicable for Location Group typed AssetSet."
        },
        "type": {
          "description": "Required. Immutable. The type of the asset set. Required.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Page asset set.",
            "Dynamic education asset set.",
            "Google Merchant Center asset set.",
            "Dynamic real estate asset set.",
            "Dynamic custom asset set.",
            "Dynamic hotels and rentals asset set.",
            "Dynamic flights asset set.",
            "Dynamic travel asset set.",
            "Dynamic local asset set.",
            "Dynamic jobs asset set.",
            "Location sync level asset set.",
            "Business Profile location group asset set.",
            "Chain location group asset set which can be used for both owned locations and affiliate locations.",
            "Static location group asset set which can be used for both owned locations and affiliate locations.",
            "Hotel Property asset set which is used to link a hotel property feed to Performance Max for travel goals campaigns.",
            "Travel Feed asset set type. Can represent either a Hotel feed or a Things to Do (activities) feed."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PAGE_FEED",
            "DYNAMIC_EDUCATION",
            "MERCHANT_CENTER_FEED",
            "DYNAMIC_REAL_ESTATE",
            "DYNAMIC_CUSTOM",
            "DYNAMIC_HOTELS_AND_RENTALS",
            "DYNAMIC_FLIGHTS",
            "DYNAMIC_TRAVEL",
            "DYNAMIC_LOCAL",
            "DYNAMIC_JOBS",
            "LOCATION_SYNC",
            "BUSINESS_PROFILE_DYNAMIC_LOCATION_GROUP",
            "CHAIN_DYNAMIC_LOCATION_GROUP",
            "STATIC_LOCATION_GROUP",
            "HOTEL_PROPERTY",
            "TRAVEL_FEED"
          ]
        },
        "merchantCenterFeed": {
          "description": "Merchant ID and Feed Label from Google Merchant Center.",
          "$ref": "GoogleAdsSearchads360V23Resources_AssetSet_MerchantCenterFeed"
        },
        "locationSet": {
          "description": "Location asset set data. This will be used for sync level location set. This can only be set if AssetSet's type is LOCATION_SYNC.",
          "$ref": "GoogleAdsSearchads360V23Common__LocationSet"
        },
        "id": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. The ID of the asset set."
        },
        "status": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ],
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "The status has not been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The asset set is enabled.",
            "The asset set is removed."
          ],
          "description": "Output only. The status of the asset set. Read-only."
        },
        "name": {
          "type": "string",
          "description": "Required. Name of the asset set. Required. It must have a minimum length of 1 and maximum length of 128."
        },
        "hotelPropertyData": {
          "readOnly": true,
          "description": "Output only. For Performance Max for travel goals campaigns with a Hotel Center account link. Read-only.",
          "$ref": "GoogleAdsSearchads360V23Resources_AssetSet_HotelPropertyData"
        },
        "chainLocationGroup": {
          "description": "Represents information about a Chain dynamic location group. Only applicable if the sync level AssetSet's type is LOCATION_SYNC and sync source is chain.",
          "$ref": "GoogleAdsSearchads360V23Common__ChainLocationGroup"
        },
        "businessProfileLocationGroup": {
          "description": "Business Profile location group asset set data.",
          "$ref": "GoogleAdsSearchads360V23Common__BusinessProfileLocationGroup"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__AssetSet",
      "description": "An asset set representing a collection of assets. Use AssetSetAsset to link an asset to the asset set."
    },
    "GoogleAdsSearchads360V23Services__CustomerCustomizerOperation": {
      "properties": {
        "create": {
          "description": "Create operation: No resource name is expected for the new customer customizer",
          "$ref": "GoogleAdsSearchads360V23Resources__CustomerCustomizer"
        },
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed customer customizer is expected, in this format: `customers/{customer_id}/customerCustomizers/{customizer_attribute_id}`"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__CustomerCustomizerOperation",
      "description": "A single operation (create, remove) on a customizer attribute.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources__AndroidPrivacySharedKeyGoogleCampaign": {
      "id": "GoogleAdsSearchads360V23Resources__AndroidPrivacySharedKeyGoogleCampaign",
      "description": "An Android privacy shared key view for Google campaign key.",
      "type": "object",
      "properties": {
        "sharedCampaignKey": {
          "readOnly": true,
          "description": "Output only. 128 bit hex string of the encoded shared campaign key, including a '0x' prefix. This key can be used to do a bitwise OR operator with the aggregate conversion key to create a full aggregation key to retrieve the Aggregate API Report in Android Privacy Sandbox.",
          "type": "string"
        },
        "campaignId": {
          "type": "string",
          "format": "int64",
          "description": "Output only. The campaign ID used in the share key encoding.",
          "readOnly": true
        },
        "androidPrivacyInteractionType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "The physical click interaction type.",
            "The 10 seconds engaged view interaction type.",
            "The view (ad impression) interaction type."
          ],
          "description": "Output only. The interaction type enum used in the share key encoding.",
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CLICK",
            "ENGAGED_VIEW",
            "VIEW"
          ]
        },
        "resourceName": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The resource name of the Android privacy shared key. Android privacy shared key resource names have the form: `customers/{customer_id}/androidPrivacySharedKeyGoogleCampaigns/{campaign_id}~{android_privacy_interaction_type}~{android_privacy_interaction_date(yyyy-mm-dd)}`"
        },
        "androidPrivacyInteractionDate": {
          "type": "string",
          "description": "Output only. The interaction date used in the shared key encoding in the format of \"YYYY-MM-DD\" in UTC timezone.",
          "readOnly": true
        }
      }
    },
    "GoogleAdsSearchads360V23Services__AddBatchJobOperationsResponse": {
      "properties": {
        "totalOperations": {
          "type": "string",
          "format": "int64",
          "description": "The total number of operations added so far for this batch job."
        },
        "nextSequenceToken": {
          "type": "string",
          "description": "The sequence token to be used when calling AddBatchJobOperations again if more operations need to be added. The next AddBatchJobOperations request must set the sequence_token field to the value of this field."
        }
      },
      "id": "GoogleAdsSearchads360V23Services__AddBatchJobOperationsResponse",
      "description": "Response message for BatchJobService.AddBatchJobOperations.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources_Invoice_AdjustmentSummary": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources_Invoice_AdjustmentSummary",
      "description": "Represents adjustment information associated with an account.",
      "properties": {
        "amountMicros": {
          "type": "string",
          "format": "int64",
          "description": "Output only. The amount of the adjustment, in micros. The currency code for this amount is the same as the Invoice.currency_code.",
          "readOnly": true
        },
        "adjustmentDescription": {
          "description": "Output only. The description of the adjustment. Example: Incentive Adjustment, discount.",
          "type": "string",
          "readOnly": true
        }
      }
    },
    "GoogleAdsSearchads360V23Services__Conversation": {
      "properties": {
        "localServicesLead": {
          "type": "string",
          "description": "Required. The resource name of the local services lead that the conversation should be applied to."
        },
        "text": {
          "description": "Required. Text message that user wanted to append to lead.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__Conversation",
      "description": "Details of the conversation that needs to be appended."
    },
    "GoogleAdsSearchads360V23Services__ApplyRecommendationRequest": {
      "properties": {
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, operations will be carried out as a transaction if and only if they are all valid. Default is false."
        },
        "operations": {
          "description": "Required. The list of operations to apply recommendations. If partial_failure=false all recommendations should be of the same type There is a limit of 100 operations per request.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__ApplyRecommendationOperation"
          }
        }
      },
      "id": "GoogleAdsSearchads360V23Services__ApplyRecommendationRequest",
      "description": "Request message for RecommendationService.ApplyRecommendation.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__AdMediaBundleAsset": {
      "id": "GoogleAdsSearchads360V23Common__AdMediaBundleAsset",
      "description": "A media bundle asset used inside an ad.",
      "type": "object",
      "properties": {
        "asset": {
          "type": "string",
          "description": "The Asset resource name of this media bundle."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__TargetRoas": {
      "id": "GoogleAdsSearchads360V23Common__TargetRoas",
      "description": "An automated bidding strategy that helps you maximize revenue while averaging a specific target return on ad spend (ROAS).",
      "type": "object",
      "properties": {
        "targetRoas": {
          "type": "number",
          "format": "double",
          "description": "Required. The chosen revenue (based on conversion data) per unit of spend. Value must be between 0.01 and 1000.0, inclusive."
        },
        "targetRoasTolerancePercentMillis": {
          "description": "The percent of ROAS(return on advertising spend) degradation tolerance allowed to increase traffic diversity and conversion volume, specified in millis (for example, 10,000 = 10%). A value of 10,000 means that the advertiser can expect ROAS degradation of up to 10% of the specified target ROAS. This field is only mutable for portfolio bidding strategies.",
          "type": "string",
          "format": "int64"
        },
        "cpcBidFloorMicros": {
          "description": "Minimum bid limit that can be set by the bid strategy. The limit applies to all keywords managed by the strategy. This should only be set for portfolio bid strategies.",
          "type": "string",
          "format": "int64"
        },
        "cpcBidCeilingMicros": {
          "type": "string",
          "format": "int64",
          "description": "Maximum bid limit that can be set by the bid strategy. The limit applies to all keywords managed by the strategy. This should only be set for portfolio bid strategies."
        }
      }
    },
    "GoogleAdsSearchads360V23Resources_Campaign_CategoryBid": {
      "properties": {
        "targetCpaBidMicros": {
          "description": "Target CPA bid for the category. Value is in micros and in the advertiser's currency.",
          "type": "string",
          "format": "int64"
        },
        "categoryId": {
          "description": "Category for which the bid will be associated with. For example, xcat:service_area_business_plumber.",
          "type": "string"
        },
        "manualCpaBidMicros": {
          "description": "Manual CPA bid for the category. Bid must be greater than the reserve price associated for that category. Value is in micros and in the advertiser's currency.",
          "type": "string",
          "format": "int64"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources_Campaign_CategoryBid",
      "description": "Category bids in LocalServicesReportingCampaignSettings."
    },
    "GoogleAdsSearchads360V23Resources_Recommendation_ShoppingTargetAllOffersRecommendation": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources_Recommendation_ShoppingTargetAllOffersRecommendation",
      "description": "The shopping recommendation to create a catch-all campaign that targets all offers.",
      "properties": {
        "feedLabel": {
          "description": "Output only. The offer feed label.",
          "type": "string",
          "readOnly": true
        },
        "untargetedOffersCount": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. The number of untargeted offers."
        },
        "merchant": {
          "readOnly": true,
          "description": "Output only. The details of the Merchant Center account.",
          "$ref": "GoogleAdsSearchads360V23Resources_Recommendation_MerchantInfo"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__CampaignSimulation": {
      "properties": {
        "cpcBidPointList": {
          "readOnly": true,
          "description": "Output only. Simulation points if the simulation type is CPC_BID.",
          "$ref": "GoogleAdsSearchads360V23Common__CpcBidSimulationPointList"
        },
        "budgetPointList": {
          "readOnly": true,
          "description": "Output only. Simulation points if the simulation type is BUDGET.",
          "$ref": "GoogleAdsSearchads360V23Common__BudgetSimulationPointList"
        },
        "startDate": {
          "type": "string",
          "description": "Output only. First day on which the simulation is based, in YYYY-MM-DD format.",
          "readOnly": true
        },
        "endDate": {
          "type": "string",
          "description": "Output only. Last day on which the simulation is based, in YYYY-MM-DD format",
          "readOnly": true
        },
        "campaignId": {
          "readOnly": true,
          "description": "Output only. Campaign id of the simulation.",
          "type": "string",
          "format": "int64"
        },
        "modificationMethod": {
          "description": "Output only. How the simulation modifies the field.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The values in a simulation were applied to all children of a given resource uniformly. Overrides on child resources were not respected.",
            "The values in a simulation were applied to the given resource. Overrides on child resources were respected, and traffic estimates do not include these resources.",
            "The values in a simulation were all scaled by the same factor. For example, in a simulated TargetCpa campaign, the campaign target and all ad group targets were scaled by a factor of X."
          ],
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "UNIFORM",
            "DEFAULT",
            "SCALING"
          ]
        },
        "targetRoasPointList": {
          "description": "Output only. Simulation points if the simulation type is TARGET_ROAS.",
          "$ref": "GoogleAdsSearchads360V23Common__TargetRoasSimulationPointList",
          "readOnly": true
        },
        "resourceName": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The resource name of the campaign simulation. Campaign simulation resource names have the form: `customers/{customer_id}/campaignSimulations/{campaign_id}~{type}~{modification_method}~{start_date}~{end_date}`"
        },
        "targetImpressionSharePointList": {
          "description": "Output only. Simulation points if the simulation type is TARGET_IMPRESSION_SHARE.",
          "$ref": "GoogleAdsSearchads360V23Common__TargetImpressionShareSimulationPointList",
          "readOnly": true
        },
        "type": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The simulation is for a CPC bid.",
            "The simulation is for a CPV bid.",
            "The simulation is for a CPA target.",
            "The simulation is for a bid modifier.",
            "The simulation is for a ROAS target.",
            "The simulation is for a percent CPC bid.",
            "The simulation is for an impression share target.",
            "The simulation is for a budget."
          ],
          "description": "Output only. The field that the simulation modifies.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CPC_BID",
            "CPV_BID",
            "TARGET_CPA",
            "BID_MODIFIER",
            "TARGET_ROAS",
            "PERCENT_CPC_BID",
            "TARGET_IMPRESSION_SHARE",
            "BUDGET"
          ],
          "readOnly": true
        },
        "targetCpaPointList": {
          "description": "Output only. Simulation points if the simulation type is TARGET_CPA.",
          "$ref": "GoogleAdsSearchads360V23Common__TargetCpaSimulationPointList",
          "readOnly": true
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__CampaignSimulation",
      "description": "A campaign simulation. Supported combinations of advertising channel type, simulation type and simulation modification method is detailed below respectively. * SEARCH - CPC_BID - UNIFORM * SEARCH - CPC_BID - SCALING * SEARCH - TARGET_CPA - UNIFORM * SEARCH - TARGET_CPA - SCALING * SEARCH - TARGET_ROAS - UNIFORM * SEARCH - TARGET_IMPRESSION_SHARE - UNIFORM * SEARCH - BUDGET - UNIFORM * SHOPPING - BUDGET - UNIFORM * SHOPPING - TARGET_ROAS - UNIFORM * MULTI_CHANNEL - TARGET_CPA - UNIFORM * MULTI_CHANNEL - TARGET_ROAS - UNIFORM * DEMAND_GEN - TARGET_CPA - DEFAULT * DISPLAY - TARGET_CPA - UNIFORM * PERFORMANCE_MAX - TARGET_CPA - UNIFORM * PERFORMANCE_MAX - TARGET_ROAS - UNIFORM * PERFORMANCE_MAX - BUDGET - UNIFORM",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateCustomerClientLinkResult": {
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        }
      },
      "id": "GoogleAdsSearchads360V23Services__MutateCustomerClientLinkResult",
      "description": "The result for a single customer client link mutate.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__CustomizerValue": {
      "properties": {
        "type": {
          "type": "string",
          "enumDescriptions": [
            "The status has not been specified.",
            "The received value is not known in this version.",
            "Text customizer.",
            "Number customizer.",
            "Price customizer consisting of a number and a currency.",
            "Percentage customizer consisting of a number and a '%'."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "TEXT",
            "NUMBER",
            "PRICE",
            "PERCENT"
          ],
          "description": "Required. The data type for the customizer value. It must match the attribute type. The string_value content must match the constraints associated with the type."
        },
        "stringValue": {
          "type": "string",
          "description": "Required. Value to insert in creative text. Customizer values of all types are stored as string to make formatting unambiguous."
        }
      },
      "id": "GoogleAdsSearchads360V23Common__CustomizerValue",
      "description": "A customizer value that is referenced in customizer linkage entities like CustomerCustomizer, CampaignCustomizer, etc.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateLabelsRequest": {
      "id": "GoogleAdsSearchads360V23Services__MutateLabelsRequest",
      "description": "Request message for LabelService.MutateLabels.",
      "type": "object",
      "properties": {
        "responseContentType": {
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "type": "string",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ]
        },
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        },
        "operations": {
          "description": "Required. The list of operations to perform on labels.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__LabelOperation"
          }
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources_ListingGroupFilterDimension_Webpage": {
      "properties": {
        "conditions": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Resources_ListingGroupFilterDimension_WebpageCondition"
          },
          "description": "The webpage conditions are case sensitive and these are and-ed together when evaluated for filtering. All the conditions should be of same type. Example1: for URL1 = www.ads.google.com?ocid=1&euid=2 and URL2 = www.ads.google.com?ocid=1 and with \"ocid\" and \"euid\" as url_contains conditions, URL1 will be matched, but URL2 not. Example2 : If URL1 has Label1, Label2 and URL2 has Label2, Label3, then with Label1 and Label2 as custom_label conditions, URL1 will be matched but not URL2. With Label2 as the only custom_label condition then both URL1 and URL2 will be matched."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources_ListingGroupFilterDimension_Webpage",
      "description": "Filters for URLs in a page feed and URLs from the advertiser web domain. Several root nodes with this dimension are allowed in an asset group and their conditions are considered in OR."
    },
    "GoogleAdsSearchads360V23Services__MutateCustomerNegativeCriteriaRequest": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateCustomerNegativeCriteriaRequest",
      "description": "Request message for CustomerNegativeCriterionService.MutateCustomerNegativeCriteria.",
      "properties": {
        "responseContentType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation."
        },
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        },
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__CustomerNegativeCriterionOperation"
          },
          "description": "Required. The list of operations to perform on individual criteria."
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__DeviceInfo": {
      "properties": {
        "type": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Mobile devices with full browsers.",
            "Tablets with full browsers.",
            "Computers.",
            "Smart TVs and game consoles.",
            "Other device types."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MOBILE",
            "TABLET",
            "DESKTOP",
            "CONNECTED_TV",
            "OTHER"
          ],
          "description": "Type of the device."
        }
      },
      "id": "GoogleAdsSearchads360V23Common__DeviceInfo",
      "description": "A device criterion.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources__CampaignAudienceView": {
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the campaign audience view. Campaign audience view resource names have the form: `customers/{customer_id}/campaignAudienceViews/{campaign_id}~{criterion_id}`",
          "readOnly": true
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__CampaignAudienceView",
      "description": "A campaign audience view. Includes performance data from interests and remarketing lists for Display Network and YouTube Network ads, and remarketing lists for search ads (RLSA), aggregated by campaign and audience criterion. This view only includes audiences attached at the campaign level.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__CampaignDuration": {
      "properties": {
        "durationInDays": {
          "description": "The duration value in days. This field cannot be combined with the date_range field.",
          "type": "integer",
          "format": "int32"
        },
        "dateRange": {
          "description": "Date range of the campaign. Dates are in the yyyy-mm-dd format and inclusive. The end date must be \u003c 1 year in the future and the date range must be \u003c= 92 days long. This field cannot be combined with the duration_in_days field.",
          "$ref": "GoogleAdsSearchads360V23Common__DateRange"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__CampaignDuration",
      "description": "The duration of a planned campaign."
    },
    "GoogleAdsSearchads360V23Resources__KeywordView": {
      "properties": {
        "resourceName": {
          "readOnly": true,
          "description": "Output only. The resource name of the keyword view. Keyword view resource names have the form: `customers/{customer_id}/keywordViews/{ad_group_id}~{criterion_id}`",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__KeywordView",
      "description": "A keyword view."
    },
    "GoogleAdsSearchads360V23Resources__AdGroupAd": {
      "properties": {
        "status": {
          "description": "The status of the ad.",
          "type": "string",
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The ad group ad is enabled.",
            "The ad group ad is paused.",
            "The ad group ad is removed."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "PAUSED",
            "REMOVED"
          ]
        },
        "creationTime": {
          "readOnly": true,
          "description": "Output only. The timestamp when this ad_group_ad was created. The datetime is in the customer's time zone and in \"yyyy-MM-dd HH:mm:ss.ssssss\" format.",
          "type": "string"
        },
        "engineId": {
          "readOnly": true,
          "description": "Output only. ID of the ad in the external engine account. This field is for Search Ads 360 account only, for example, Yahoo Japan, Microsoft, Baidu etc. For non-Search Ads 360 entity, use \"ad_group_ad.ad.id\" instead.",
          "type": "string"
        },
        "lastModifiedTime": {
          "type": "string",
          "description": "Output only. The datetime when this ad group ad was last modified. The datetime is in the customer's time zone and in \"yyyy-MM-dd HH:mm:ss.ssssss\" format.",
          "readOnly": true
        },
        "primaryStatusReasons": {
          "readOnly": true,
          "description": "Output only. Provides reasons for why an ad group ad is not serving or not serving optimally.",
          "type": "array",
          "items": {
            "type": "string",
            "enumDescriptions": [
              "No value has been specified.",
              "Used for return value only. Represents value unknown in this version.",
              "The user-specified campaign status is removed. Contributes to AdGroupAdPrimaryStatus.REMOVED.",
              "The user-specified campaign status is paused. Contributes to AdGroupAdPrimaryStatus.PAUSED.",
              "The user-specified time for this campaign to start is in the future. Contributes to AdGroupAdPrimaryStatus.PENDING.",
              "The user-specified time for this campaign to end has passed. Contributes to AdGroupAdPrimaryStatus.ENDED.",
              "The user-specified ad group status is paused. Contributes to AdGroupAdPrimaryStatus.PAUSED.",
              "The user-specified ad group status is removed. Contributes to AdGroupAdPrimaryStatus.REMOVED.",
              "The user-specified ad status is paused. Contributes to AdGroupAdPrimaryStatus.PAUSED.",
              "The user-specified ad status is removed. Contributes to AdGroupAdPrimaryStatus.REMOVED.",
              "The ad is disapproved. Contributes to AdGroupAdPrimaryStatus.NOT_ELIGIBLE.",
              "The ad is under review. Contributes to AdGroupAdPrimaryStatus.PENDING.",
              "The ad is poor quality. This is determined by the serving stack that served the Ad. Contributes to AdGroupAdPrimaryStatus.LIMITED.",
              "No eligible ads instances could be generated. Contributes to AdGroupAdPrimaryStatus.PENDING.",
              "The ad is internally labeled with a limiting label. Contributes to AdGroupAdPrimaryStatus.LIMITED.",
              "The ad is only serving in the user-specified area of interest. Contributes to AdGroupAdPrimaryStatus.LIMITED.",
              "The ad is part of an ongoing appeal. This reason does not impact AdGroupAdPrimaryStatus."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "CAMPAIGN_REMOVED",
              "CAMPAIGN_PAUSED",
              "CAMPAIGN_PENDING",
              "CAMPAIGN_ENDED",
              "AD_GROUP_PAUSED",
              "AD_GROUP_REMOVED",
              "AD_GROUP_AD_PAUSED",
              "AD_GROUP_AD_REMOVED",
              "AD_GROUP_AD_DISAPPROVED",
              "AD_GROUP_AD_UNDER_REVIEW",
              "AD_GROUP_AD_POOR_QUALITY",
              "AD_GROUP_AD_NO_ADS",
              "AD_GROUP_AD_APPROVED_LABELED",
              "AD_GROUP_AD_AREA_OF_INTEREST_ONLY",
              "AD_GROUP_AD_UNDER_APPEAL"
            ]
          }
        },
        "policySummary": {
          "description": "Output only. Policy information for the ad.",
          "$ref": "GoogleAdsSearchads360V23Resources__AdGroupAdPolicySummary",
          "readOnly": true
        },
        "actionItems": {
          "readOnly": true,
          "description": "Output only. A list of recommendations to improve the ad strength. For example, a recommendation could be \"Try adding a few more unique headlines or unpinning some assets.\".",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "ad": {
          "description": "Immutable. The ad.",
          "$ref": "GoogleAdsSearchads360V23Resources__Ad"
        },
        "primaryStatus": {
          "description": "Output only. Provides aggregated view into why an ad group ad is not serving or not serving optimally.",
          "type": "string",
          "enumDescriptions": [
            "No value has been specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The ad group ad is eligible to serve.",
            "The ad group ad is paused.",
            "The ad group ad is removed.",
            "The ad cannot serve now, but may serve later without advertiser action.",
            "The ad group ad is serving in a limited capacity.",
            "The ad group ad is not eligible to serve."
          ],
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ELIGIBLE",
            "PAUSED",
            "REMOVED",
            "PENDING",
            "LIMITED",
            "NOT_ELIGIBLE"
          ]
        },
        "effectiveLabels": {
          "readOnly": true,
          "description": "Output only. The resource names of effective labels attached to this ad. An effective label is a label inherited or directly assigned to this ad.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "adGroup": {
          "description": "Immutable. The ad group to which the ad belongs.",
          "type": "string"
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the ad. Ad group ad resource names have the form: `customers/{customer_id}/adGroupAds/{ad_group_id}~{ad_id}`"
        },
        "labels": {
          "readOnly": true,
          "description": "Output only. The resource names of labels attached to this ad group ad.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "adStrength": {
          "description": "Output only. Overall ad strength for this ad group ad.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The ad strength is currently pending.",
            "No ads could be generated.",
            "Poor strength.",
            "Average strength.",
            "Good strength.",
            "Excellent strength."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PENDING",
            "NO_ADS",
            "POOR",
            "AVERAGE",
            "GOOD",
            "EXCELLENT"
          ],
          "readOnly": true
        },
        "adGroupAdAssetAutomationSettings": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Resources__AdGroupAdAssetAutomationSetting"
          },
          "description": "Settings that control the types of asset automation. See the AssetAutomationTypeEnum documentation for the default opt in/out behavior of each type."
        },
        "engineStatus": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AD_GROUP_AD_ELIGIBLE",
            "AD_GROUP_AD_INAPPROPRIATE_FOR_CAMPAIGN",
            "AD_GROUP_AD_MOBILE_URL_UNDER_REVIEW",
            "AD_GROUP_AD_PARTIALLY_INVALID",
            "AD_GROUP_AD_TO_BE_ACTIVATED",
            "AD_GROUP_AD_NOT_REVIEWED",
            "AD_GROUP_AD_ON_HOLD",
            "AD_GROUP_AD_PAUSED",
            "AD_GROUP_AD_REMOVED",
            "AD_GROUP_AD_PENDING_REVIEW",
            "AD_GROUP_AD_UNDER_REVIEW",
            "AD_GROUP_AD_APPROVED",
            "AD_GROUP_AD_DISAPPROVED",
            "AD_GROUP_AD_SERVING",
            "AD_GROUP_AD_ACCOUNT_PAUSED",
            "AD_GROUP_AD_CAMPAIGN_PAUSED",
            "AD_GROUP_AD_AD_GROUP_PAUSED"
          ],
          "readOnly": true,
          "description": "Output only. Additional status of the ad in the external engine account. Possible statuses (depending on the type of external account) include active, eligible, pending review, etc.",
          "enumDeprecated": [
            false,
            false,
            true,
            false,
            false,
            false,
            false,
            false,
            true,
            false,
            false,
            false,
            false,
            false,
            false,
            false,
            false,
            false,
            false
          ],
          "type": "string",
          "enumDescriptions": [
            "No value has been specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Deprecated. Do not use.",
            "Baidu: Creative was not approved.",
            "Baidu: Mobile URL in process to be reviewed.",
            "Baidu: Creative is invalid on mobile device but valid on desktop.",
            "Baidu: Creative is ready for activation.",
            "Baidu: Creative not reviewed.",
            "Deprecated. Do not use. Previously used by Gemini",
            "Creative has been paused.",
            "Creative has been removed.",
            "Creative is pending review.",
            "Creative is under review.",
            "Creative has been approved.",
            "Creative has been disapproved.",
            "Creative is serving.",
            "Creative has been paused because the account is paused.",
            "Creative has been paused because the campaign is paused.",
            "Creative has been paused because the ad group is paused."
          ]
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__AdGroupAd",
      "description": "An ad group ad."
    },
    "GoogleAdsSearchads360V23Common__LogicalUserListOperandInfo": {
      "id": "GoogleAdsSearchads360V23Common__LogicalUserListOperandInfo",
      "description": "Operand of logical user list that consists of a user list.",
      "type": "object",
      "properties": {
        "userList": {
          "type": "string",
          "description": "Resource name of a user list as an operand."
        }
      }
    },
    "GoogleAdsSearchads360V23Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchema_ConversionValueMapping": {
      "properties": {
        "maxTimePostInstallHours": {
          "readOnly": true,
          "description": "Output only. The maximum of the time range in which a user was last active during the measurement window.",
          "type": "string",
          "format": "int64"
        },
        "mappedEvents": {
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchema_Event"
          },
          "description": "Output only. The conversion value may be mapped to multiple events with various attributes."
        },
        "minTimePostInstallHours": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. The minimum of the time range in which a user was last active during the measurement window."
        }
      },
      "id": "GoogleAdsSearchads360V23Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchema_ConversionValueMapping",
      "description": "Represents mapping from one conversion value to one or more conversion events.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services_CampaignToForecast_CampaignBiddingStrategy": {
      "properties": {
        "maximizeClicksBiddingStrategy": {
          "description": "Use maximize clicks bidding strategy for forecasting.",
          "$ref": "GoogleAdsSearchads360V23Services__MaximizeClicksBiddingStrategy"
        },
        "maximizeConversionsBiddingStrategy": {
          "description": "Use maximize conversions bidding strategy for forecasting.",
          "$ref": "GoogleAdsSearchads360V23Services__MaximizeConversionsBiddingStrategy"
        },
        "manualCpcBiddingStrategy": {
          "description": "Use manual CPC bidding strategy for forecasting.",
          "$ref": "GoogleAdsSearchads360V23Services__ManualCpcBiddingStrategy"
        }
      },
      "id": "GoogleAdsSearchads360V23Services_CampaignToForecast_CampaignBiddingStrategy",
      "description": "Supported bidding strategies for new campaign forecasts.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources__DynamicSearchAdsSearchTermView": {
      "properties": {
        "resourceName": {
          "readOnly": true,
          "description": "Output only. The resource name of the dynamic search ads search term view. Dynamic search ads search term view resource names have the form: `customers/{customer_id}/dynamicSearchAdsSearchTermViews/{ad_group_id}~{search_term_fingerprint}~{headline_fingerprint}~{landing_page_fingerprint}~{page_url_fingerprint}`",
          "type": "string"
        },
        "headline": {
          "type": "string",
          "description": "Output only. The dynamically generated headline of the Dynamic Search Ad. This field is read-only.",
          "readOnly": true
        },
        "landingPage": {
          "readOnly": true,
          "description": "Output only. The dynamically selected landing page URL of the impression. This field is read-only.",
          "type": "string"
        },
        "pageUrl": {
          "type": "string",
          "description": "Output only. The URL of page feed item served for the impression. This field is read-only.",
          "readOnly": true
        },
        "hasNegativeKeyword": {
          "type": "boolean",
          "description": "Output only. True if query matches a negative keyword. This field is read-only.",
          "readOnly": true
        },
        "hasNegativeUrl": {
          "readOnly": true,
          "type": "boolean",
          "description": "Output only. True if query matches a negative url. This field is read-only."
        },
        "searchTerm": {
          "readOnly": true,
          "description": "Output only. Search term This field is read-only.",
          "type": "string"
        },
        "hasMatchingKeyword": {
          "readOnly": true,
          "type": "boolean",
          "description": "Output only. True if query is added to targeted keywords. This field is read-only."
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__DynamicSearchAdsSearchTermView",
      "description": "A dynamic search ads search term view.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__PriceAsset": {
      "id": "GoogleAdsSearchads360V23Common__PriceAsset",
      "description": "An asset representing a list of price offers.",
      "type": "object",
      "properties": {
        "priceQualifier": {
          "description": "The price qualifier of the price asset.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "'From' qualifier for the price.",
            "'Up to' qualifier for the price.",
            "'Average' qualifier for the price."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "FROM",
            "UP_TO",
            "AVERAGE"
          ]
        },
        "type": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The type for showing a list of brands.",
            "The type for showing a list of events.",
            "The type for showing locations relevant to your business.",
            "The type for showing sub-regions or districts within a city or region.",
            "The type for showing a collection of product categories.",
            "The type for showing a collection of related product tiers.",
            "The type for showing a collection of services offered by your business.",
            "The type for showing a collection of service categories.",
            "The type for showing a collection of related service tiers."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BRANDS",
            "EVENTS",
            "LOCATIONS",
            "NEIGHBORHOODS",
            "PRODUCT_CATEGORIES",
            "PRODUCT_TIERS",
            "SERVICES",
            "SERVICE_CATEGORIES",
            "SERVICE_TIERS"
          ],
          "description": "Required. The type of the price asset."
        },
        "languageCode": {
          "description": "Required. The language of the price asset. Represented as BCP 47 language tag.",
          "type": "string"
        },
        "priceOfferings": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__PriceOffering"
          },
          "description": "The price offerings of the price asset. The size of this collection should be between 3 and 8, inclusive."
        }
      }
    },
    "GoogleAdsSearchads360V23Resources_Invoice_AccountSummary": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources_Invoice_AccountSummary",
      "description": "Represents a summarized view at account level.",
      "properties": {
        "excessCreditAdjustmentTaxAmountMicros": {
          "type": "string",
          "format": "int64",
          "description": "Output only. Tax on excess credit adjustment, in micros.",
          "readOnly": true
        },
        "regulatoryCostsTaxAmountMicros": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. Tax on regulatory costs, in micros."
        },
        "billingCorrectionTaxAmountMicros": {
          "description": "Output only. Tax on billing correction, in micros.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        },
        "billingCorrectionTotalAmountMicros": {
          "description": "Output only. Total billing correction amount, in micros.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        },
        "couponAdjustmentSubtotalAmountMicros": {
          "type": "string",
          "format": "int64",
          "description": "Output only. Pretax coupon adjustment subtotal amount, in micros.",
          "readOnly": true
        },
        "regulatoryCostsSubtotalAmountMicros": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. Pretax regulatory costs subtotal amount, in micros."
        },
        "exportChargeSubtotalAmountMicros": {
          "readOnly": true,
          "description": "Output only. Pretax export charge subtotal amount, in micros.",
          "type": "string",
          "format": "int64"
        },
        "excessCreditAdjustmentTotalAmountMicros": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. Total excess credit adjustment amount, in micros."
        },
        "taxAmountMicros": {
          "readOnly": true,
          "description": "Output only. Total tax amount attributable to the account during the service period, in micros.",
          "type": "string",
          "format": "int64"
        },
        "totalAmountMicros": {
          "readOnly": true,
          "description": "Output only. Total amount attributable to the account during the service period, in micros. This equals the sum of the subtotal_amount_micros and tax_amount_micros.",
          "type": "string",
          "format": "int64"
        },
        "exportChargeTotalAmountMicros": {
          "readOnly": true,
          "description": "Output only. Total export charge amount, in micros.",
          "type": "string",
          "format": "int64"
        },
        "adjustmentSummaries": {
          "description": "Output only. The list of adjustment information associated with this account.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Resources_Invoice_AdjustmentSummary"
          },
          "readOnly": true
        },
        "couponAdjustmentTotalAmountMicros": {
          "type": "string",
          "format": "int64",
          "description": "Output only. Total coupon adjustment amount, in micros.",
          "readOnly": true
        },
        "exportChargeTaxAmountMicros": {
          "readOnly": true,
          "description": "Output only. Tax on export charge, in micros.",
          "type": "string",
          "format": "int64"
        },
        "regulatoryCostSummaries": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Resources_Invoice_RegulatoryCostSummary"
          },
          "description": "Output only. The list of regulatory cost information associated with this account.",
          "readOnly": true
        },
        "excessCreditAdjustmentSubtotalAmountMicros": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. Pretax excess credit adjustment subtotal amount, in micros."
        },
        "billingCorrectionSubtotalAmountMicros": {
          "type": "string",
          "format": "int64",
          "description": "Output only. Pretax billing correction subtotal amount, in micros.",
          "readOnly": true
        },
        "customer": {
          "type": "string",
          "description": "Output only. The account associated with the account summary.",
          "readOnly": true
        },
        "couponAdjustmentTaxAmountMicros": {
          "description": "Output only. Tax on coupon adjustment, in micros.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        },
        "regulatoryCostsTotalAmountMicros": {
          "readOnly": true,
          "description": "Output only. Total regulatory costs amount, in micros.",
          "type": "string",
          "format": "int64"
        },
        "subtotalAmountMicros": {
          "type": "string",
          "format": "int64",
          "description": "Output only. Total pretax subtotal amount attributable to the account during the service period, in micros.",
          "readOnly": true
        }
      }
    },
    "GoogleAdsSearchads360V23Common__BusinessProfileLocation": {
      "properties": {
        "storeCode": {
          "type": "string",
          "description": "Business Profile store code of this location. This is synced from the Business Profile account."
        },
        "labels": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Advertiser specified label for the location on the Business Profile account. This is synced from the Business Profile account."
        },
        "listingId": {
          "type": "string",
          "format": "int64",
          "description": "Listing ID of this Business Profile location. This is synced from the linked Business Profile account."
        }
      },
      "id": "GoogleAdsSearchads360V23Common__BusinessProfileLocation",
      "description": "Business Profile location data synced from the linked Business Profile account.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources_AdGroup_AudienceSetting": {
      "properties": {
        "useAudienceGrouped": {
          "type": "boolean",
          "description": "Immutable. If true, this ad group uses an Audience resource for audience targeting. If false, this ad group may use audience segment criteria instead."
        }
      },
      "id": "GoogleAdsSearchads360V23Resources_AdGroup_AudienceSetting",
      "description": "Settings for the audience targeting.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateCampaignBidModifierResult": {
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        },
        "campaignBidModifier": {
          "description": "The mutated campaign bid modifier with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsSearchads360V23Resources__CampaignBidModifier"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__MutateCampaignBidModifierResult",
      "description": "The result for the criterion mutate.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources_AdStrengthActionItem_AddAssetDetails": {
      "properties": {
        "assetCount": {
          "type": "integer",
          "format": "int32",
          "description": "Output only. The number of assets to add.",
          "readOnly": true
        },
        "videoAspectRatioRequirement": {
          "description": "Output only. For video field types, the required aspect ratio of the video. When unset and asset_field_type is YOUTUBE_VIDEO, the system recommends the advertiser upload any YouTube video, regardless of aspect ratio.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The received value is not known in this version.",
            "The video requires a horizontal aspect ratio.",
            "The video requires a square aspect ratio.",
            "The video requires a vertical aspect ratio."
          ],
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HORIZONTAL",
            "SQUARE",
            "VERTICAL"
          ]
        },
        "assetFieldType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HEADLINE",
            "DESCRIPTION",
            "MANDATORY_AD_TEXT",
            "MARKETING_IMAGE",
            "MEDIA_BUNDLE",
            "YOUTUBE_VIDEO",
            "BOOK_ON_GOOGLE",
            "LEAD_FORM",
            "PROMOTION",
            "CALLOUT",
            "STRUCTURED_SNIPPET",
            "SITELINK",
            "MOBILE_APP",
            "HOTEL_CALLOUT",
            "CALL",
            "PRICE",
            "LONG_HEADLINE",
            "BUSINESS_NAME",
            "SQUARE_MARKETING_IMAGE",
            "PORTRAIT_MARKETING_IMAGE",
            "LOGO",
            "LANDSCAPE_LOGO",
            "VIDEO",
            "CALL_TO_ACTION_SELECTION",
            "AD_IMAGE",
            "BUSINESS_LOGO",
            "HOTEL_PROPERTY",
            "DEMAND_GEN_CAROUSEL_CARD",
            "BUSINESS_MESSAGE",
            "TALL_PORTRAIT_MARKETING_IMAGE",
            "LANDING_PAGE_PREVIEW",
            "LONG_DESCRIPTION",
            "CALL_TO_ACTION"
          ],
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is linked for use as a headline.",
            "The asset is linked for use as a description.",
            "The asset is linked for use as mandatory ad text.",
            "The asset is linked for use as a marketing image.",
            "The asset is linked for use as a media bundle.",
            "The asset is linked for use as a YouTube video.",
            "The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.",
            "The asset is linked for use as a Lead Form extension.",
            "The asset is linked for use as a Promotion extension.",
            "The asset is linked for use as a Callout extension.",
            "The asset is linked for use as a Structured Snippet extension.",
            "The asset is linked for use as a Sitelink.",
            "The asset is linked for use as a Mobile App extension.",
            "The asset is linked for use as a Hotel Callout extension.",
            "The asset is linked for use as a Call extension.",
            "The asset is linked for use as a Price extension.",
            "The asset is linked for use as a long headline.",
            "The asset is linked for use as a business name.",
            "The asset is linked for use as a square marketing image.",
            "The asset is linked for use as a portrait marketing image.",
            "The asset is linked for use as a logo.",
            "The asset is linked for use as a landscape logo.",
            "The asset is linked for use as a non YouTube logo.",
            "The asset is linked for use to select a call-to-action.",
            "The asset is linked for use to select an ad image.",
            "The asset is linked for use as a business logo.",
            "The asset is linked for use as a hotel property in a Performance Max for travel goals campaign.",
            "The asset is linked for use as a Demand Gen carousel card.",
            "The asset is linked for use as a Business Message.",
            "The asset is linked for use as a tall portrait marketing image.",
            "The asset is linked for use as a landing page preview image.",
            "The asset is linked for use as a long description.",
            "The asset is linked for use as a call-to-action."
          ],
          "description": "Output only. The asset field type of the asset(s) to add."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources_AdStrengthActionItem_AddAssetDetails",
      "description": "The details of the asset to add."
    },
    "GoogleAdsSearchads360V23Resources_Recommendation_KeywordRecommendation": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources_Recommendation_KeywordRecommendation",
      "description": "The keyword recommendation.",
      "properties": {
        "keyword": {
          "readOnly": true,
          "description": "Output only. The recommended keyword.",
          "$ref": "GoogleAdsSearchads360V23Common__KeywordInfo"
        },
        "recommendedCpcBidMicros": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. The recommended CPC (cost-per-click) bid."
        },
        "searchTerms": {
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Resources_RecommendationKeywordRecommendation_SearchTerm"
          },
          "description": "Output only. A list of search terms this keyword matches. The same search term may be repeated for multiple keywords."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateGoalsResponse": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateGoalsResponse",
      "description": "Response message for a goal mutate.",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateGoalResult"
          },
          "description": "All results for the mutate."
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__LocalServicesLead": {
      "properties": {
        "categoryId": {
          "description": "Output only. Service category of the lead. For example: `xcat:service_area_business_hvac`, `xcat:service_area_business_real_estate_agent`, etc. For more details see: https://developers.google.com/google-ads/api/data/codes-formats#local_services_ids",
          "type": "string",
          "readOnly": true
        },
        "id": {
          "description": "Output only. ID of this Lead.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the local services lead data. Local Services Lead resource name have the form `customers/{customer_id}/localServicesLead/{local_services_lead_id}`"
        },
        "leadStatus": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NEW",
            "ACTIVE",
            "BOOKED",
            "DECLINED",
            "EXPIRED",
            "DISABLED",
            "CONSUMER_DECLINED",
            "WIPED_OUT"
          ],
          "readOnly": true,
          "description": "Output only. Current status of lead.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "New lead which hasn't yet been seen by advertiser.",
            "Lead that thas been interacted by advertiser.",
            "Lead has been booked.",
            "Lead was declined by advertiser.",
            "Lead has expired due to inactivity.",
            "Disabled due to spam or dispute.",
            "Consumer declined the lead.",
            "Personally Identifiable Information of the lead is wiped out."
          ]
        },
        "creationDateTime": {
          "readOnly": true,
          "description": "Output only. The date time at which lead was created by Local Services Ads. The format is \"YYYY-MM-DD HH:MM:SS\" in the Google Ads account's timezone. Examples: \"2018-03-05 09:15:00\" or \"2018-02-01 14:34:30\"",
          "type": "string"
        },
        "creditDetails": {
          "readOnly": true,
          "description": "Output only. Credit details of the lead.",
          "$ref": "GoogleAdsSearchads360V23Resources__CreditDetails"
        },
        "locale": {
          "readOnly": true,
          "description": "Output only. Language used by the Local Services provider linked to lead. See https://developers.google.com/google-ads/api/data/codes-formats#locales",
          "type": "string"
        },
        "leadCharged": {
          "readOnly": true,
          "description": "Output only. True if the advertiser was charged for the lead.",
          "type": "boolean"
        },
        "leadType": {
          "description": "Output only. Type of Local Services lead: phone, message, booking, etc.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Message lead.",
            "Lead created by phone call.",
            "Booking lead."
          ],
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MESSAGE",
            "PHONE_CALL",
            "BOOKING"
          ]
        },
        "serviceId": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Service for the category. For example: `buyer_agent`, `seller_agent` for the category of `xcat:service_area_business_real_estate_agent`."
        },
        "leadFeedbackSubmitted": {
          "description": "Output only. True if the advertiser submitted feedback for the lead.",
          "type": "boolean",
          "readOnly": true
        },
        "note": {
          "description": "Output only. Note added by advertiser for the lead.",
          "$ref": "GoogleAdsSearchads360V23Resources__Note",
          "readOnly": true
        },
        "contactDetails": {
          "description": "Output only. Lead's contact details.",
          "$ref": "GoogleAdsSearchads360V23Resources__ContactDetails",
          "readOnly": true
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__LocalServicesLead",
      "description": "Data from Local Services Lead. Contains details of Lead which is generated when user calls, messages or books service from advertiser. More info: https://ads.google.com/local-services-ads",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__DynamicRealEstateAsset": {
      "properties": {
        "listingName": {
          "description": "Required. Listing name, for example, Boulevard Bungalow. Required.",
          "type": "string"
        },
        "androidAppLink": {
          "type": "string",
          "description": "Android deep link, for example, android-app://com.example.android/http/example.com/gizmos?1234."
        },
        "listingId": {
          "type": "string",
          "description": "Required. Listing ID which can be any sequence of letters and digits, and must be unique and match the values of remarketing tag. Required."
        },
        "listingType": {
          "description": "Listing type, for example, For sale.",
          "type": "string"
        },
        "iosAppStoreId": {
          "type": "string",
          "format": "int64",
          "description": "iOS app store ID. This is used to check if the user has the app installed on their device before deep linking. If this field is set, then the ios_app_link field must also be present."
        },
        "similarListingIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Similar listing IDs."
        },
        "address": {
          "description": "Address which can be specified in one of the following formats. (1) City, state, code, country, for example, Mountain View, CA, USA. (2) Full address, for example, 123 Boulevard St, Mountain View, CA 94043. (3) Latitude-longitude in the DDD format, for example, 41.40338, 2.17403",
          "type": "string"
        },
        "price": {
          "type": "string",
          "description": "Price which can be number followed by the alphabetic currency code, ISO 4217 standard. Use '.' as the decimal mark, for example, 200,000.00 USD."
        },
        "formattedPrice": {
          "type": "string",
          "description": "Formatted price which can be any characters. If set, this attribute will be used instead of 'price', for example, Starting at $200,000.00."
        },
        "imageUrl": {
          "type": "string",
          "description": "Image URL, for example, http://www.example.com/image.png. The image will not be uploaded as image asset."
        },
        "iosAppLink": {
          "type": "string",
          "description": "iOS deep link, for example, exampleApp://content/page."
        },
        "cityName": {
          "description": "City name, for example, Mountain View, California.",
          "type": "string"
        },
        "propertyType": {
          "description": "Property type, for example, House.",
          "type": "string"
        },
        "contextualKeywords": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Contextual keywords, for example, For sale; Houses for sale."
        },
        "description": {
          "description": "Description, for example, 3 beds, 2 baths, 1568 sq. ft.",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V23Common__DynamicRealEstateAsset",
      "description": "A dynamic real estate asset.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources__ConversionTrackingSetting": {
      "id": "GoogleAdsSearchads360V23Resources__ConversionTrackingSetting",
      "description": "A collection of customer-wide settings related to Search Ads 360 Conversion Tracking.",
      "type": "object",
      "properties": {
        "crossAccountConversionTrackingId": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. The conversion tracking id of the customer's manager. This is set when the customer is opted into cross-account conversion tracking, and it overrides conversion_tracking_id."
        },
        "googleAdsConversionCustomer": {
          "description": "The resource name of the customer where conversions are created and managed. This field is read-only.",
          "type": "string"
        },
        "acceptedCustomerDataTerms": {
          "readOnly": true,
          "type": "boolean",
          "description": "Output only. Whether the customer has accepted customer data terms. If using cross-account conversion tracking, this value is inherited from the manager. This field is read-only. For more information, see https://support.google.com/adspolicy/answer/7475709."
        },
        "conversionTrackingStatus": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Customer does not use any conversion tracking.",
            "The conversion actions are created and managed by this customer.",
            "The conversion actions are created and managed by the manager specified in the request's `login-customer-id`.",
            "The conversion actions are created and managed by a manager different from the customer or manager specified in the request's `login-customer-id`."
          ],
          "description": "Output only. Conversion tracking status. It indicates whether the customer is using conversion tracking, and who is the conversion tracking owner of this customer. If this customer is using cross-account conversion tracking, the value returned will differ based on the `login-customer-id` of the request.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NOT_CONVERSION_TRACKED",
            "CONVERSION_TRACKING_MANAGED_BY_SELF",
            "CONVERSION_TRACKING_MANAGED_BY_THIS_MANAGER",
            "CONVERSION_TRACKING_MANAGED_BY_ANOTHER_MANAGER"
          ],
          "readOnly": true
        },
        "enhancedConversionsForLeadsEnabled": {
          "readOnly": true,
          "description": "Output only. Whether the customer is opted-in for enhanced conversions for leads. If using cross-account conversion tracking, this value is inherited from the manager. This field is read-only.",
          "type": "boolean"
        },
        "googleAdsCrossAccountConversionTrackingId": {
          "readOnly": true,
          "description": "Output only. The conversion tracking id of the customer's manager. This is set when the customer is opted into conversion tracking, and it overrides conversion_tracking_id. This field can only be managed through the Google Ads UI. This field is read-only.",
          "type": "string",
          "format": "int64"
        },
        "conversionTrackingId": {
          "type": "string",
          "format": "int64",
          "description": "Output only. The conversion tracking id used for this account. This id doesn't indicate whether the customer uses conversion tracking (conversion_tracking_status does). This field is read-only.",
          "readOnly": true
        }
      }
    },
    "GoogleAdsSearchads360V23Services_ProductFilter_MarketingObjectiveList": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services_ProductFilter_MarketingObjectiveList",
      "description": "The list of marketing objectives to generate benchmarks metrics for.",
      "properties": {
        "marketingObjectives": {
          "type": "array",
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "The value is unknown in this version.",
              "The objective is to increase awareness.",
              "The objective is to encourage potential customers to consider the brand or products.",
              "The objective is to drive a specific conversion, such as a purchase."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "AWARENESS",
              "CONSIDERATION",
              "ACTION"
            ]
          },
          "description": "Required. Marketing objectives to generate benchmarks metrics for."
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__ExpandedLandingPageView": {
      "id": "GoogleAdsSearchads360V23Resources__ExpandedLandingPageView",
      "description": "A landing page view with metrics aggregated at the expanded final URL level.",
      "type": "object",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the expanded landing page view. Expanded landing page view resource names have the form: `customers/{customer_id}/expandedLandingPageViews/{expanded_final_url_fingerprint}`",
          "readOnly": true
        },
        "expandedFinalUrl": {
          "type": "string",
          "description": "Output only. The final URL that clicks are directed to.",
          "readOnly": true
        }
      }
    },
    "GoogleAdsSearchads360V23Common__AdAppDeepLinkAsset": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__AdAppDeepLinkAsset",
      "description": "An app deep link used inside an ad.",
      "properties": {
        "asset": {
          "type": "string",
          "description": "The Asset resource name of this app deep link asset."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__MonthlySearchVolume": {
      "properties": {
        "month": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "January.",
            "February.",
            "March.",
            "April.",
            "May.",
            "June.",
            "July.",
            "August.",
            "September.",
            "October.",
            "November.",
            "December."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "JANUARY",
            "FEBRUARY",
            "MARCH",
            "APRIL",
            "MAY",
            "JUNE",
            "JULY",
            "AUGUST",
            "SEPTEMBER",
            "OCTOBER",
            "NOVEMBER",
            "DECEMBER"
          ],
          "description": "The month of the search volume."
        },
        "year": {
          "description": "The year of the search volume (for example, 2020).",
          "type": "string",
          "format": "int64"
        },
        "monthlySearches": {
          "description": "Approximate number of searches for the month. A null value indicates the search volume is unavailable for that month.",
          "type": "string",
          "format": "int64"
        }
      },
      "id": "GoogleAdsSearchads360V23Common__MonthlySearchVolume",
      "description": "Monthly search volume.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources_Recommendation_MaximizeClicksOptInRecommendation": {
      "properties": {
        "recommendedBudgetAmountMicros": {
          "description": "Output only. The recommended new budget amount. Only set if the current budget is too high.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources_Recommendation_MaximizeClicksOptInRecommendation",
      "description": "The Maximize Clicks opt-in recommendation."
    },
    "GoogleAdsSearchads360V23Services__YouTubeSelectLineUp": {
      "properties": {
        "lineupName": {
          "description": "The unique name of the YouTube Select Lineup.",
          "type": "string"
        },
        "lineupId": {
          "description": "The ID of the YouTube Select Lineup.",
          "type": "string",
          "format": "int64"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__YouTubeSelectLineUp",
      "description": "A Plannable YouTube Select Lineup for product targeting."
    },
    "GoogleAdsSearchads360V23Services_Incentive_Requirement": {
      "properties": {
        "spend": {
          "description": "Optional. Spend requirement for an incentive.",
          "$ref": "GoogleAdsSearchads360V23Services_IncentiveRequirement_Spend"
        }
      },
      "id": "GoogleAdsSearchads360V23Services_Incentive_Requirement",
      "description": "Requirement for an incentive.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources__TravelActivityPerformanceView": {
      "properties": {
        "resourceName": {
          "description": "Output only. The resource name of the travel activity performance view. Travel Activity performance view resource names have the form: `customers/{customer_id}/travelActivityPerformanceView`",
          "type": "string",
          "readOnly": true
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__TravelActivityPerformanceView",
      "description": "A travel activity performance view."
    },
    "GoogleAdsSearchads360V23Common__TargetCpaSimulationPointList": {
      "properties": {
        "points": {
          "description": "Projected metrics for a series of target CPA amounts.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__TargetCpaSimulationPoint"
          }
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__TargetCpaSimulationPointList",
      "description": "A container for simulation points for simulations of type TARGET_CPA."
    },
    "GoogleAdsSearchads360V23Resources__OfflineConversionAlert": {
      "id": "GoogleAdsSearchads360V23Resources__OfflineConversionAlert",
      "description": "Alert for offline conversion client summary.",
      "type": "object",
      "properties": {
        "error": {
          "readOnly": true,
          "description": "Output only. Error for offline conversion client alert.",
          "$ref": "GoogleAdsSearchads360V23Resources__OfflineConversionError"
        },
        "errorPercentage": {
          "description": "Output only. Percentage of the error, the range of this field should be [0, 1.0].",
          "type": "number",
          "format": "double",
          "readOnly": true
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__AssetCoverage": {
      "properties": {
        "adStrengthActionItems": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Resources__AdStrengthActionItem"
          },
          "description": "Output only. A list of action items to improve the ad strength of an asset group.",
          "readOnly": true
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__AssetCoverage",
      "description": "Information about the asset coverage of an asset group."
    },
    "GoogleAdsSearchads360V23Resources__SearchAds360Field": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__SearchAds360Field",
      "description": "A field or resource (artifact) used by SearchAds360Service.",
      "properties": {
        "typeUrl": {
          "type": "string",
          "description": "Output only. The URL of proto describing the artifact's data type.",
          "readOnly": true
        },
        "isRepeated": {
          "readOnly": true,
          "description": "Output only. Whether the field artifact is repeated.",
          "type": "boolean"
        },
        "name": {
          "description": "Output only. The name of the artifact.",
          "type": "string",
          "readOnly": true
        },
        "attributeResources": {
          "readOnly": true,
          "description": "Output only. The names of all resources that are selectable with the described artifact. Fields from these resources do not segment metrics when included in search queries. This field is only set for artifacts whose category is RESOURCE.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "segments": {
          "readOnly": true,
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Output only. This field lists the names of all artifacts, whether a segment or another resource, that segment metrics when included in search queries and when the described artifact is used in the FROM clause. It is only set for artifacts whose category is RESOURCE."
        },
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the artifact. Artifact resource names have the form: `SearchAds360Fields/{name}`",
          "readOnly": true
        },
        "selectableWith": {
          "readOnly": true,
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Output only. The names of all resources, segments, and metrics that are selectable with the described artifact."
        },
        "dataType": {
          "type": "string",
          "enumDescriptions": [
            "Unspecified",
            "Unknown",
            "Maps to google.protobuf.BoolValue Applicable operators: =, !=",
            "Maps to google.protobuf.StringValue. It can be compared using the set of operators specific to dates however. Applicable operators: =, \u003c, \u003e, \u003c=, \u003e=, BETWEEN, DURING, and IN",
            "Maps to google.protobuf.DoubleValue Applicable operators: =, !=, \u003c, \u003e, IN, NOT IN",
            "Maps to an enum. It's specific definition can be found at type_url. Applicable operators: =, !=, IN, NOT IN",
            "Maps to google.protobuf.FloatValue Applicable operators: =, !=, \u003c, \u003e, IN, NOT IN",
            "Maps to google.protobuf.Int32Value Applicable operators: =, !=, \u003c, \u003e, \u003c=, \u003e=, BETWEEN, IN, NOT IN",
            "Maps to google.protobuf.Int64Value Applicable operators: =, !=, \u003c, \u003e, \u003c=, \u003e=, BETWEEN, IN, NOT IN",
            "Maps to a protocol buffer message type. The data type's details can be found in type_url. No operators work with MESSAGE fields.",
            "Maps to google.protobuf.StringValue. Represents the resource name (unique id) of a resource or one of its foreign keys. No operators work with RESOURCE_NAME fields.",
            "Maps to google.protobuf.StringValue. Applicable operators: =, !=, LIKE, NOT LIKE, IN, NOT IN",
            "Maps to google.protobuf.UInt64Value Applicable operators: =, !=, \u003c, \u003e, \u003c=, \u003e=, BETWEEN, IN, NOT IN"
          ],
          "description": "Output only. This field determines the operators that can be used with the artifact in WHERE clauses.",
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BOOLEAN",
            "DATE",
            "DOUBLE",
            "ENUM",
            "FLOAT",
            "INT32",
            "INT64",
            "MESSAGE",
            "RESOURCE_NAME",
            "STRING",
            "UINT64"
          ]
        },
        "enumValues": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Output only. Values the artifact can assume if it is a field of type ENUM. This field is only set for artifacts of category SEGMENT or ATTRIBUTE.",
          "readOnly": true
        },
        "selectable": {
          "type": "boolean",
          "description": "Output only. Whether the artifact can be used in a SELECT clause in search queries.",
          "readOnly": true
        },
        "sortable": {
          "type": "boolean",
          "description": "Output only. Whether the artifact can be used in a ORDER BY clause in search queries.",
          "readOnly": true
        },
        "filterable": {
          "description": "Output only. Whether the artifact can be used in a WHERE clause in search queries.",
          "type": "boolean",
          "readOnly": true
        },
        "category": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "RESOURCE",
            "ATTRIBUTE",
            "SEGMENT",
            "METRIC"
          ],
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "Unspecified",
            "Unknown",
            "The described artifact is a resource.",
            "The described artifact is a field and is an attribute of a resource. Including a resource attribute field in a query may segment the query if the resource to which it is attributed segments the resource found in the FROM clause.",
            "The described artifact is a field and always segments search queries.",
            "The described artifact is a field and is a metric. It never segments search queries."
          ],
          "description": "Output only. The category of the artifact."
        },
        "metrics": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Output only. This field lists the names of all metrics that are selectable with the described artifact when it is used in the FROM clause. It is only set for artifacts whose category is RESOURCE.",
          "readOnly": true
        }
      }
    },
    "GoogleAdsSearchads360V23Services__GenerateAudienceCompositionInsightsResponse": {
      "id": "GoogleAdsSearchads360V23Services__GenerateAudienceCompositionInsightsResponse",
      "description": "Response message for AudienceInsightsService.GenerateAudienceCompositionInsights.",
      "type": "object",
      "properties": {
        "sections": {
          "description": "The contents of the insights report, organized into sections. Each section is associated with one of the AudienceInsightsDimension values in the request. There may be more than one section per dimension.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__AudienceCompositionSection"
          }
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateConversionGoalCampaignConfigsResponse": {
      "properties": {
        "results": {
          "description": "All results for the mutate.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateConversionGoalCampaignConfigResult"
          }
        }
      },
      "id": "GoogleAdsSearchads360V23Services__MutateConversionGoalCampaignConfigsResponse",
      "description": "Response message for a conversion goal campaign config mutate.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__RemoveProductLinkRequest": {
      "properties": {
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "resourceName": {
          "description": "Required. Remove operation: A resource name for the product link to remove is expected, in this format: ` `",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__RemoveProductLinkRequest",
      "description": "Request message for ProductLinkService.RemoveProductLink."
    },
    "GoogleAdsSearchads360V23Resources__BiddingStrategySimulation": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__BiddingStrategySimulation",
      "description": "A bidding strategy simulation. Supported combinations of simulation type and simulation modification method are detailed below respectively. 1. TARGET_CPA - UNIFORM 2. TARGET_ROAS - UNIFORM",
      "properties": {
        "targetCpaPointList": {
          "readOnly": true,
          "description": "Output only. Simulation points if the simulation type is TARGET_CPA.",
          "$ref": "GoogleAdsSearchads360V23Common__TargetCpaSimulationPointList"
        },
        "endDate": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Last day on which the simulation is based, in YYYY-MM-DD format"
        },
        "biddingStrategyId": {
          "readOnly": true,
          "description": "Output only. Bidding strategy shared set id of the simulation.",
          "type": "string",
          "format": "int64"
        },
        "modificationMethod": {
          "description": "Output only. How the simulation modifies the field.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The values in a simulation were applied to all children of a given resource uniformly. Overrides on child resources were not respected.",
            "The values in a simulation were applied to the given resource. Overrides on child resources were respected, and traffic estimates do not include these resources.",
            "The values in a simulation were all scaled by the same factor. For example, in a simulated TargetCpa campaign, the campaign target and all ad group targets were scaled by a factor of X."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "UNIFORM",
            "DEFAULT",
            "SCALING"
          ],
          "readOnly": true
        },
        "targetRoasPointList": {
          "description": "Output only. Simulation points if the simulation type is TARGET_ROAS.",
          "$ref": "GoogleAdsSearchads360V23Common__TargetRoasSimulationPointList",
          "readOnly": true
        },
        "resourceName": {
          "description": "Output only. The resource name of the bidding strategy simulation. Bidding strategy simulation resource names have the form: `customers/{customer_id}/biddingStrategySimulations/{bidding_strategy_id}~{type}~{modification_method}~{start_date}~{end_date}`",
          "type": "string",
          "readOnly": true
        },
        "type": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CPC_BID",
            "CPV_BID",
            "TARGET_CPA",
            "BID_MODIFIER",
            "TARGET_ROAS",
            "PERCENT_CPC_BID",
            "TARGET_IMPRESSION_SHARE",
            "BUDGET"
          ],
          "readOnly": true,
          "description": "Output only. The field that the simulation modifies.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The simulation is for a CPC bid.",
            "The simulation is for a CPV bid.",
            "The simulation is for a CPA target.",
            "The simulation is for a bid modifier.",
            "The simulation is for a ROAS target.",
            "The simulation is for a percent CPC bid.",
            "The simulation is for an impression share target.",
            "The simulation is for a budget."
          ]
        },
        "startDate": {
          "description": "Output only. First day on which the simulation is based, in YYYY-MM-DD format.",
          "type": "string",
          "readOnly": true
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateSharedSetResult": {
      "properties": {
        "sharedSet": {
          "description": "The mutated shared set with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsSearchads360V23Resources__SharedSet"
        },
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateSharedSetResult",
      "description": "The result for the shared set mutate."
    },
    "GoogleAdsSearchads360V23Common__TargetCpm": {
      "id": "GoogleAdsSearchads360V23Common__TargetCpm",
      "description": "Target CPM (cost per thousand impressions) is an automated bidding strategy that sets bids to optimize performance given the target CPM you set.",
      "type": "object",
      "properties": {}
    },
    "GoogleAdsSearchads360V23Resources_Recommendation_CallAssetRecommendation": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources_Recommendation_CallAssetRecommendation",
      "description": "The call asset recommendation.",
      "properties": {}
    },
    "GoogleAdsSearchads360V23Resources__ShoppingPerformanceView": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__ShoppingPerformanceView",
      "description": "Shopping performance view. Provides Shopping campaign and Performance Max campaign statistics aggregated at several product dimension levels. Product dimension values from Merchant Center such as brand, category, custom attributes, product condition, and product type will reflect the state of each dimension as of the date and time when the corresponding event was recorded. The number of impressions and clicks that `shopping_performance_view` returns stats for may be different from campaign reports. `shopping_performance_view` shows impressions and clicks on products appearing in ads, while campaign reports show impressions and clicks on the ads themselves. Depending on the format, an ad can show from zero to several products, so the numbers may not match. In Search Ads 360 UI, you can query impressions and clicks of products appearing in ads by selecting a column from \"Product attributes\" in the report editor. For example, selecting the \"Brand\" column is equivalent to selecting `segments.product_brand`.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the Shopping performance view. Shopping performance view resource names have the form: `customers/{customer_id}/shoppingPerformanceView`",
          "readOnly": true
        }
      }
    },
    "GoogleAdsSearchads360V23Services__SmartCampaignEligibleDetails": {
      "properties": {
        "lastImpressionDateTime": {
          "description": "The timestamp of the last impression observed in the last 48 hours for this campaign. The timestamp is in the customer’s timezone and in “yyyy-MM-dd HH:mm:ss” format.",
          "type": "string"
        },
        "endDateTime": {
          "type": "string",
          "description": "The timestamp of when the campaign will end, if applicable. The timestamp is in the customer’s timezone and in “yyyy-MM-dd HH:mm:ss” format."
        }
      },
      "id": "GoogleAdsSearchads360V23Services__SmartCampaignEligibleDetails",
      "description": "Details related to Smart campaigns that are eligible to serve.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__GenerateKeywordIdeasRequest": {
      "properties": {
        "pageSize": {
          "type": "integer",
          "format": "int32",
          "description": "Number of results to retrieve in a single page. A maximum of 10,000 results may be returned, if the page_size exceeds this, it is ignored. If unspecified, at most 10,000 results will be returned. The server may decide to further limit the number of returned resources. If the response contains fewer than 10,000 results it may not be assumed as last page of results."
        },
        "geoTargetConstants": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The resource names of the location to target. Maximum is 10. An empty list MAY be used to specify all targeting geos."
        },
        "keywordPlanNetwork": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Google Search.",
            "Google Search + Search partners."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "GOOGLE_SEARCH",
            "GOOGLE_SEARCH_AND_PARTNERS"
          ],
          "description": "Targeting network. If not set, Google Search And Partners Network will be used."
        },
        "pageToken": {
          "description": "Token of the page to retrieve. If not specified, the first page of results will be returned. To request next page of results use the value obtained from `next_page_token` in the previous response. The request fields must match across pages.",
          "type": "string"
        },
        "aggregateMetrics": {
          "description": "The aggregate fields to include in response.",
          "$ref": "GoogleAdsSearchads360V23Common__KeywordPlanAggregateMetrics"
        },
        "urlSeed": {
          "description": "A specific url to generate ideas from, for example, www.example.com/cars.",
          "$ref": "GoogleAdsSearchads360V23Services__UrlSeed"
        },
        "includeAdultKeywords": {
          "description": "If true, adult keywords will be included in response. The default value is false.",
          "type": "boolean"
        },
        "keywordAndUrlSeed": {
          "description": "A Keyword and a specific Url to generate ideas from for example, cars, www.example.com/cars.",
          "$ref": "GoogleAdsSearchads360V23Services__KeywordAndUrlSeed"
        },
        "historicalMetricsOptions": {
          "description": "The options for historical metrics data.",
          "$ref": "GoogleAdsSearchads360V23Common__HistoricalMetricsOptions"
        },
        "keywordSeed": {
          "description": "A Keyword or phrase to generate ideas from, for example, cars.",
          "$ref": "GoogleAdsSearchads360V23Services__KeywordSeed"
        },
        "language": {
          "description": "The resource name of the language to target. Each keyword belongs to some set of languages; a keyword is included if language is one of its languages. If not set, all keywords will be included.",
          "type": "string"
        },
        "keywordAnnotation": {
          "description": "The keyword annotations to include in response.",
          "type": "array",
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "The value is unknown in this version.",
              "Return the keyword concept and concept group data."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "KEYWORD_CONCEPT"
            ]
          }
        },
        "siteSeed": {
          "description": "The site to generate ideas from, for example, www.example.com.",
          "$ref": "GoogleAdsSearchads360V23Services__SiteSeed"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__GenerateKeywordIdeasRequest",
      "description": "Request message for KeywordPlanIdeaService.GenerateKeywordIdeas."
    },
    "GoogleAdsSearchads360V23Common__SitelinkFeedItem": {
      "id": "GoogleAdsSearchads360V23Common__SitelinkFeedItem",
      "description": "Represents a sitelink.",
      "type": "object",
      "properties": {
        "line1": {
          "type": "string",
          "description": "First line of the description for the sitelink. If this value is set, line2 must also be set. The length of this string should be between 0 and 35, inclusive."
        },
        "finalMobileUrls": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of possible final mobile URLs after all cross domain redirects."
        },
        "line2": {
          "type": "string",
          "description": "Second line of the description for the sitelink. If this value is set, line1 must also be set. The length of this string should be between 0 and 35, inclusive."
        },
        "urlCustomParameters": {
          "description": "A list of mappings to be used for substituting URL custom parameter tags in the tracking_url_template, final_urls, and/or final_mobile_urls.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__CustomParameter"
          }
        },
        "finalUrls": {
          "description": "A list of possible final URLs after all cross domain redirects.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "finalUrlSuffix": {
          "description": "Final URL suffix to be appended to landing page URLs served with parallel tracking.",
          "type": "string"
        },
        "linkText": {
          "description": "URL display text for the sitelink. The length of this string should be between 1 and 25, inclusive.",
          "type": "string"
        },
        "trackingUrlTemplate": {
          "type": "string",
          "description": "URL template for constructing a tracking URL."
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__UserLocationView": {
      "properties": {
        "countryCriterionId": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. Criterion Id for the country."
        },
        "resourceName": {
          "readOnly": true,
          "description": "Output only. The resource name of the user location view. UserLocation view resource names have the form: `customers/{customer_id}/userLocationViews/{country_criterion_id}~{targeting_location}`",
          "type": "string"
        },
        "targetingLocation": {
          "readOnly": true,
          "type": "boolean",
          "description": "Output only. Indicates whether location was targeted or not."
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__UserLocationView",
      "description": "A user location view. User Location View includes all metrics aggregated at the country level, one row per country. It reports metrics at the actual physical location of the user by targeted or not targeted location. If other segment fields are used, you may get more than one row per country.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services_SuggestGeoTargetConstantsRequest_LocationNames": {
      "properties": {
        "names": {
          "description": "A list of location names.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services_SuggestGeoTargetConstantsRequest_LocationNames",
      "description": "A list of location names."
    },
    "GoogleAdsSearchads360V23Services__GenerateAudienceOverlapInsightsRequest": {
      "properties": {
        "customerInsightsGroup": {
          "type": "string",
          "description": "The name of the customer being planned for. This is a user-defined value."
        },
        "dimensions": {
          "description": "Required. The types of attributes of which to calculate the overlap with the primary_attribute. The values must be a subset of AFFINITY_USER_INTEREST, IN_MARKET_USER_INTEREST, AGE_RANGE and GENDER.",
          "type": "array",
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "The value is unknown in this version.",
              "A Product & Service category.",
              "A Knowledge Graph entity.",
              "A country, represented by a geo target.",
              "A geographic location within a country.",
              "A YouTube channel.",
              "An Affinity UserInterest.",
              "An In-Market UserInterest.",
              "A Parental Status value (parent, or not a parent).",
              "A household income percentile range.",
              "An age range.",
              "A gender.",
              "A YouTube video.",
              "A device type, such as Mobile, Desktop, Tablet, and Connected TV.",
              "A YouTube Lineup.",
              "A User List.",
              "A Life Event UserInterest."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "CATEGORY",
              "KNOWLEDGE_GRAPH",
              "GEO_TARGET_COUNTRY",
              "SUB_COUNTRY_LOCATION",
              "YOUTUBE_CHANNEL",
              "AFFINITY_USER_INTEREST",
              "IN_MARKET_USER_INTEREST",
              "PARENTAL_STATUS",
              "INCOME_RANGE",
              "AGE_RANGE",
              "GENDER",
              "YOUTUBE_VIDEO",
              "DEVICE",
              "YOUTUBE_LINEUP",
              "USER_LIST",
              "LIFE_EVENT_USER_INTEREST"
            ]
          }
        },
        "primaryAttribute": {
          "description": "Required. The audience attribute that should be intersected with all other eligible audiences. This must be an Affinity or In-Market UserInterest, an AgeRange or a Gender.",
          "$ref": "GoogleAdsSearchads360V23Common__AudienceInsightsAttribute"
        },
        "insightsApplicationInfo": {
          "description": "Optional. Additional information on the application issuing the request.",
          "$ref": "GoogleAdsSearchads360V23Common__AdditionalApplicationInfo"
        },
        "countryLocation": {
          "description": "Required. The country in which to calculate the sizes and overlaps of audiences.",
          "$ref": "GoogleAdsSearchads360V23Common__LocationInfo"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__GenerateAudienceOverlapInsightsRequest",
      "description": "Request message for AudienceInsightsService.GenerateAudienceOverlapInsights.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__CustomerClientLinkOperation": {
      "properties": {
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "type": "string",
          "format": "google-fieldmask"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new link.",
          "$ref": "GoogleAdsSearchads360V23Resources__CustomerClientLink"
        },
        "update": {
          "description": "Update operation: The link is expected to have a valid resource name.",
          "$ref": "GoogleAdsSearchads360V23Resources__CustomerClientLink"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__CustomerClientLinkOperation",
      "description": "A single operation (create, update) on a CustomerClientLink.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources_Campaign_DynamicSearchAdsSetting": {
      "properties": {
        "useSuppliedUrlsOnly": {
          "type": "boolean",
          "description": "Whether the campaign uses advertiser supplied URLs exclusively."
        },
        "domainName": {
          "description": "Required. The Internet domain name that this setting represents, for example, \"google.com\" or \"www.google.com\".",
          "type": "string"
        },
        "languageCode": {
          "type": "string",
          "description": "Required. The language code specifying the language of the domain, for example, \"en\"."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources_Campaign_DynamicSearchAdsSetting",
      "description": "The setting for controlling Dynamic Search Ads (DSA)."
    },
    "GoogleAdsSearchads360V23Common__ActivityStateInfo": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__ActivityStateInfo",
      "description": "The state where the travel activity is available.",
      "properties": {
        "value": {
          "description": "String value of the activity state. The Geo Target Constant resource name.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__Targeting": {
      "properties": {
        "ageRange": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Between 18 and 24 years old.",
            "Between 18 and 34 years old.",
            "Between 18 and 44 years old.",
            "Between 18 and 49 years old.",
            "Between 18 and 54 years old.",
            "Between 18 and 64 years old.",
            "Between 18 and 65+ years old.",
            "Between 21 and 34 years old.",
            "Between 25 and 34 years old.",
            "Between 25 and 44 years old.",
            "Between 25 and 49 years old.",
            "Between 25 and 54 years old.",
            "Between 25 and 64 years old.",
            "Between 25 and 65+ years old.",
            "Between 35 and 44 years old.",
            "Between 35 and 49 years old.",
            "Between 35 and 54 years old.",
            "Between 35 and 64 years old.",
            "Between 35 and 65+ years old.",
            "Between 45 and 54 years old.",
            "Between 45 and 64 years old.",
            "Between 45 and 65+ years old.",
            "Between 50 and 65+ years old.",
            "Between 55 and 64 years old.",
            "Between 55 and 65+ years old.",
            "65 years old and beyond."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AGE_RANGE_18_24",
            "AGE_RANGE_18_34",
            "AGE_RANGE_18_44",
            "AGE_RANGE_18_49",
            "AGE_RANGE_18_54",
            "AGE_RANGE_18_64",
            "AGE_RANGE_18_65_UP",
            "AGE_RANGE_21_34",
            "AGE_RANGE_25_34",
            "AGE_RANGE_25_44",
            "AGE_RANGE_25_49",
            "AGE_RANGE_25_54",
            "AGE_RANGE_25_64",
            "AGE_RANGE_25_65_UP",
            "AGE_RANGE_35_44",
            "AGE_RANGE_35_49",
            "AGE_RANGE_35_54",
            "AGE_RANGE_35_64",
            "AGE_RANGE_35_65_UP",
            "AGE_RANGE_45_54",
            "AGE_RANGE_45_64",
            "AGE_RANGE_45_65_UP",
            "AGE_RANGE_50_65_UP",
            "AGE_RANGE_55_64",
            "AGE_RANGE_55_65_UP",
            "AGE_RANGE_65_UP"
          ],
          "description": "Targeted age range. An unset value is equivalent to targeting all ages."
        },
        "devices": {
          "description": "Targeted devices. If not specified, targets all applicable devices. Applicable devices vary by product and region and can be obtained from ReachPlanService.ListPlannableProducts.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__DeviceInfo"
          }
        },
        "plannableLocationIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The list of plannable location IDs to target with this forecast. If more than one ID is provided, all IDs must have the same `parent_country_id`. Planning for more than `parent_county` is not supported. Plannable location IDs and their `parent_country_id` can be obtained from ReachPlanService.ListPlannableLocations. Requests must set either this field or `plannable_location_id`."
        },
        "genders": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__GenderInfo"
          },
          "description": "Targeted genders. An unset value is equivalent to targeting MALE and FEMALE."
        },
        "network": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used as a return value only. Represents value unknown in this version.",
            "YouTube network.",
            "Google Video Partners (GVP) network.",
            "A combination of the YouTube network and the Google Video Partners network."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "YOUTUBE",
            "GOOGLE_VIDEO_PARTNERS",
            "YOUTUBE_AND_GOOGLE_VIDEO_PARTNERS"
          ],
          "description": "Targetable network for the ad product. If not specified, targets all applicable networks. Applicable networks vary by product and region and can be obtained from ReachPlanService.ListPlannableProducts."
        },
        "plannableLocationId": {
          "type": "string",
          "description": "The ID of the selected location. Plannable location IDs can be obtained from ReachPlanService.ListPlannableLocations. Requests must set either this field or `plannable_location_ids`. This field is deprecated as of V12 and will be removed in a future release. Use `plannable_location_ids` instead."
        },
        "audienceTargeting": {
          "description": "Targeted audiences. If not specified, does not target any specific audience.",
          "$ref": "GoogleAdsSearchads360V23Services__AudienceTargeting"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__Targeting",
      "description": "The targeting for which traffic metrics will be reported.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__HotelIdInfo": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__HotelIdInfo",
      "description": "Advertiser-specific hotel ID.",
      "properties": {
        "value": {
          "description": "String value of the hotel ID.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__ExtendedDemographicInfo": {
      "id": "GoogleAdsSearchads360V23Common__ExtendedDemographicInfo",
      "description": "Represents an extended demographic criterion.",
      "type": "object",
      "properties": {
        "extendedDemographicId": {
          "description": "Taxonomy id of the extended demographic group.",
          "type": "string",
          "format": "int64"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__CampaignCriterion": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__CampaignCriterion",
      "description": "A campaign criterion.",
      "properties": {
        "campaign": {
          "type": "string",
          "description": "Immutable. The campaign to which the criterion belongs."
        },
        "bidModifier": {
          "description": "The modifier for the bids when the criterion matches. The modifier must be in the range: 0.1 - 10.0. Most targetable criteria types support modifiers. Use 0 to opt out of a Device type.",
          "type": "number",
          "format": "float"
        },
        "mobileAppCategory": {
          "description": "Immutable. Mobile app category.",
          "$ref": "GoogleAdsSearchads360V23Common__MobileAppCategoryInfo"
        },
        "lifeEvent": {
          "description": "Immutable. Life event campaign criterion.",
          "$ref": "GoogleAdsSearchads360V23Common__LifeEventInfo"
        },
        "language": {
          "description": "Immutable. Language.",
          "$ref": "GoogleAdsSearchads360V23Common__LanguageInfo"
        },
        "userList": {
          "description": "Immutable. User List.",
          "$ref": "GoogleAdsSearchads360V23Common__UserListInfo"
        },
        "negative": {
          "type": "boolean",
          "description": "Immutable. Whether to target (`false`) or exclude (`true`) the criterion."
        },
        "criterionId": {
          "description": "Output only. The ID of the criterion. This field is ignored during mutate.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        },
        "status": {
          "description": "The status of the criterion.",
          "type": "string",
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The campaign criterion is enabled.",
            "The campaign criterion is paused.",
            "The campaign criterion is removed."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "PAUSED",
            "REMOVED"
          ]
        },
        "lastModifiedTime": {
          "description": "Output only. The datetime when this campaign criterion was last modified. The datetime is in the customer's time zone and in \"yyyy-MM-dd HH:mm:ss.ssssss\" format.",
          "type": "string",
          "readOnly": true
        },
        "videoLineup": {
          "description": "Immutable. Video lineup criterion.",
          "$ref": "GoogleAdsSearchads360V23Common__VideoLineupInfo"
        },
        "type": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Keyword, for example, 'mars cruise'.",
            "Placement, also known as Website, for example, 'www.flowers4sale.com'",
            "Mobile application categories to target.",
            "Mobile applications to target.",
            "Devices to target.",
            "Locations to target.",
            "Listing groups to target.",
            "Ad Schedule.",
            "Age range.",
            "Gender.",
            "Income Range.",
            "Parental status.",
            "YouTube Video.",
            "YouTube Channel.",
            "User list.",
            "Proximity.",
            "A topic target on the display network (for example, \"Pets & Animals\").",
            "Listing scope to target.",
            "Language.",
            "IpBlock.",
            "Content Label for category exclusion.",
            "Carrier.",
            "A category the user is interested in.",
            "Webpage criterion for dynamic search ads.",
            "Operating system version.",
            "App payment model.",
            "Mobile device.",
            "Custom affinity.",
            "Custom intent.",
            "Location group.",
            "Custom audience",
            "Combined audience",
            "Smart Campaign keyword theme",
            "Audience",
            "Negative Keyword List",
            "Local Services Ads Service ID.",
            "Search Theme.",
            "Brand",
            "Brand List",
            "Life Event",
            "Webpage List",
            "Video lineup",
            "Placement List",
            "A list of rules for item groups in Vertical Ads.",
            "A rule for an item group in Vertical Ads."
          ],
          "description": "Output only. The type of the criterion.",
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "KEYWORD",
            "PLACEMENT",
            "MOBILE_APP_CATEGORY",
            "MOBILE_APPLICATION",
            "DEVICE",
            "LOCATION",
            "LISTING_GROUP",
            "AD_SCHEDULE",
            "AGE_RANGE",
            "GENDER",
            "INCOME_RANGE",
            "PARENTAL_STATUS",
            "YOUTUBE_VIDEO",
            "YOUTUBE_CHANNEL",
            "USER_LIST",
            "PROXIMITY",
            "TOPIC",
            "LISTING_SCOPE",
            "LANGUAGE",
            "IP_BLOCK",
            "CONTENT_LABEL",
            "CARRIER",
            "USER_INTEREST",
            "WEBPAGE",
            "OPERATING_SYSTEM_VERSION",
            "APP_PAYMENT_MODEL",
            "MOBILE_DEVICE",
            "CUSTOM_AFFINITY",
            "CUSTOM_INTENT",
            "LOCATION_GROUP",
            "CUSTOM_AUDIENCE",
            "COMBINED_AUDIENCE",
            "KEYWORD_THEME",
            "AUDIENCE",
            "NEGATIVE_KEYWORD_LIST",
            "LOCAL_SERVICE_ID",
            "SEARCH_THEME",
            "BRAND",
            "BRAND_LIST",
            "LIFE_EVENT",
            "WEBPAGE_LIST",
            "VIDEO_LINEUP",
            "PLACEMENT_LIST",
            "VERTICAL_ADS_ITEM_GROUP_RULE_LIST",
            "VERTICAL_ADS_ITEM_GROUP_RULE"
          ]
        },
        "webpageList": {
          "description": "Immutable. Webpage list. This criterion is not publicly available.",
          "$ref": "GoogleAdsSearchads360V23Common__WebpageListInfo"
        },
        "brandList": {
          "description": "Immutable. Brand list campaign criterion.",
          "$ref": "GoogleAdsSearchads360V23Common__BrandListInfo"
        },
        "parentalStatus": {
          "description": "Immutable. Parental status.",
          "$ref": "GoogleAdsSearchads360V23Common__ParentalStatusInfo"
        },
        "locationGroup": {
          "description": "Immutable. Location Group",
          "$ref": "GoogleAdsSearchads360V23Common__LocationGroupInfo"
        },
        "mobileApplication": {
          "description": "Immutable. Mobile application.",
          "$ref": "GoogleAdsSearchads360V23Common__MobileApplicationInfo"
        },
        "device": {
          "description": "Immutable. Device.",
          "$ref": "GoogleAdsSearchads360V23Common__DeviceInfo"
        },
        "userInterest": {
          "description": "Immutable. User Interest.",
          "$ref": "GoogleAdsSearchads360V23Common__UserInterestInfo"
        },
        "contentLabel": {
          "description": "Immutable. ContentLabel.",
          "$ref": "GoogleAdsSearchads360V23Common__ContentLabelInfo"
        },
        "incomeRange": {
          "description": "Immutable. Income range.",
          "$ref": "GoogleAdsSearchads360V23Common__IncomeRangeInfo"
        },
        "keyword": {
          "description": "Immutable. Keyword.",
          "$ref": "GoogleAdsSearchads360V23Common__KeywordInfo"
        },
        "combinedAudience": {
          "description": "Immutable. Combined Audience.",
          "$ref": "GoogleAdsSearchads360V23Common__CombinedAudienceInfo"
        },
        "ageRange": {
          "description": "Immutable. Age range.",
          "$ref": "GoogleAdsSearchads360V23Common__AgeRangeInfo"
        },
        "keywordTheme": {
          "description": "Immutable. Smart Campaign Keyword Theme.",
          "$ref": "GoogleAdsSearchads360V23Common__KeywordThemeInfo"
        },
        "gender": {
          "description": "Immutable. Gender.",
          "$ref": "GoogleAdsSearchads360V23Common__GenderInfo"
        },
        "operatingSystemVersion": {
          "description": "Immutable. Operating system version.",
          "$ref": "GoogleAdsSearchads360V23Common__OperatingSystemVersionInfo"
        },
        "extendedDemographic": {
          "description": "Immutable. Extended demographic criterion.",
          "$ref": "GoogleAdsSearchads360V23Common__ExtendedDemographicInfo"
        },
        "displayName": {
          "description": "Output only. The display name of the criterion. This field is ignored for mutates.",
          "type": "string",
          "readOnly": true
        },
        "proximity": {
          "description": "Immutable. Proximity.",
          "$ref": "GoogleAdsSearchads360V23Common__ProximityInfo"
        },
        "placement": {
          "description": "Immutable. Placement.",
          "$ref": "GoogleAdsSearchads360V23Common__PlacementInfo"
        },
        "location": {
          "description": "Immutable. Location.",
          "$ref": "GoogleAdsSearchads360V23Common__LocationInfo"
        },
        "ipBlock": {
          "description": "Immutable. IpBlock. You can exclude up to 500 IP addresses per campaign.",
          "$ref": "GoogleAdsSearchads360V23Common__IpBlockInfo"
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the campaign criterion. Campaign criterion resource names have the form: `customers/{customer_id}/campaignCriteria/{campaign_id}~{criterion_id}`"
        },
        "youtubeVideo": {
          "description": "Immutable. YouTube Video.",
          "$ref": "GoogleAdsSearchads360V23Common__YouTubeVideoInfo"
        },
        "listingScope": {
          "description": "Immutable. Listing scope.",
          "$ref": "GoogleAdsSearchads360V23Common__ListingScopeInfo"
        },
        "localServiceId": {
          "description": "Immutable. GLS service campaign criterion.",
          "$ref": "GoogleAdsSearchads360V23Common__LocalServiceIdInfo"
        },
        "webpage": {
          "description": "Immutable. Webpage.",
          "$ref": "GoogleAdsSearchads360V23Common__WebpageInfo"
        },
        "adSchedule": {
          "description": "Immutable. Ad Schedule.",
          "$ref": "GoogleAdsSearchads360V23Common__AdScheduleInfo"
        },
        "youtubeChannel": {
          "description": "Immutable. YouTube Channel.",
          "$ref": "GoogleAdsSearchads360V23Common__YouTubeChannelInfo"
        },
        "mobileDevice": {
          "description": "Immutable. Mobile Device.",
          "$ref": "GoogleAdsSearchads360V23Common__MobileDeviceInfo"
        },
        "carrier": {
          "description": "Immutable. Carrier.",
          "$ref": "GoogleAdsSearchads360V23Common__CarrierInfo"
        },
        "topic": {
          "description": "Immutable. Topic.",
          "$ref": "GoogleAdsSearchads360V23Common__TopicInfo"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__TargetingSetting": {
      "id": "GoogleAdsSearchads360V23Common__TargetingSetting",
      "description": "Settings for the targeting-related features, at the campaign and ad group levels. For more details about the targeting setting, visit https://support.google.com/google-ads/answer/7365594",
      "type": "object",
      "properties": {
        "targetRestrictions": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__TargetRestriction"
          },
          "description": "The per-targeting-dimension setting to restrict the reach of your campaign or ad group."
        },
        "targetRestrictionOperations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__TargetRestrictionOperation"
          },
          "description": "The list of operations changing the target restrictions. Adding a target restriction with a targeting dimension that already exists causes the existing target restriction to be replaced with the new value."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__UnifiedSitelinkAsset": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__UnifiedSitelinkAsset",
      "description": "A unified sitelink asset.",
      "properties": {
        "mobilePreferred": {
          "description": "Whether the preference is for the sitelink asset to be displayed on mobile devices. Applies to Microsoft Ads.",
          "type": "boolean"
        },
        "endDate": {
          "type": "string",
          "description": "Last date of when this asset is effective and still serving, in yyyy-MM-dd format."
        },
        "adScheduleTargets": {
          "description": "List of non-overlapping schedules specifying all time intervals for which the asset may serve. There can be a maximum of 6 schedules per day, 42 in total.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AdScheduleInfo"
          }
        },
        "linkText": {
          "description": "URL display text for the sitelink. The length of this string should be between 1 and 25, inclusive.",
          "type": "string"
        },
        "trackingId": {
          "description": "ID used for tracking clicks for the sitelink asset. This is a Yahoo! Japan only field.",
          "type": "string",
          "format": "int64"
        },
        "useSearcherTimeZone": {
          "type": "boolean",
          "description": "Whether to show the sitelink asset in search user's time zone. Applies to Microsoft Ads."
        },
        "description1": {
          "description": "First line of the description for the sitelink. If set, the length should be between 1 and 35, inclusive, and description2 must also be set.",
          "type": "string"
        },
        "startDate": {
          "description": "Start date of when this asset is effective and can begin serving, in yyyy-MM-dd format.",
          "type": "string"
        },
        "description2": {
          "description": "Second line of the description for the sitelink. If set, the length should be between 1 and 35, inclusive, and description1 must also be set.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources_Recommendation_ImprovePerformanceMaxAdStrengthRecommendation": {
      "properties": {
        "adStrength": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PENDING",
            "NO_ADS",
            "POOR",
            "AVERAGE",
            "GOOD",
            "EXCELLENT"
          ],
          "description": "Output only. The current ad strength score of the asset group.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The ad strength is currently pending.",
            "No ads could be generated.",
            "Poor strength.",
            "Average strength.",
            "Good strength.",
            "Excellent strength."
          ]
        },
        "assetGroup": {
          "type": "string",
          "description": "Output only. The asset group resource name.",
          "readOnly": true
        }
      },
      "id": "GoogleAdsSearchads360V23Resources_Recommendation_ImprovePerformanceMaxAdStrengthRecommendation",
      "description": "Recommendation to improve the asset group strength of a Performance Max campaign to an \"Excellent\" rating.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__FrequencyCapEntry": {
      "properties": {
        "key": {
          "description": "The key of a particular frequency cap. There can be no more than one frequency cap with the same key.",
          "$ref": "GoogleAdsSearchads360V23Common__FrequencyCapKey"
        },
        "cap": {
          "type": "integer",
          "format": "int32",
          "description": "Maximum number of events allowed during the time range by this cap."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__FrequencyCapEntry",
      "description": "A rule specifying the maximum number of times an ad (or some set of ads) can be shown to a user over a particular time period."
    },
    "GoogleAdsSearchads360V23Services__ListAccessibleCustomersResponse": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__ListAccessibleCustomersResponse",
      "description": "Response message for CustomerService.ListAccessibleCustomers.",
      "properties": {
        "resourceNames": {
          "description": "Resource name of customers directly accessible by the user authenticating the call.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "GoogleAdsSearchads360V23Resources_Recommendation_CalloutAssetRecommendation": {
      "properties": {
        "recommendedCampaignCalloutAssets": {
          "readOnly": true,
          "description": "Output only. New callout extension assets recommended at the campaign level.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Resources__Asset"
          }
        },
        "recommendedCustomerCalloutAssets": {
          "readOnly": true,
          "description": "Output only. New callout extension assets recommended at the customer level.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Resources__Asset"
          }
        }
      },
      "id": "GoogleAdsSearchads360V23Resources_Recommendation_CalloutAssetRecommendation",
      "description": "The callout asset recommendation.",
      "type": "object"
    },
    "GoogleRpc__Status": {
      "type": "object",
      "id": "GoogleRpc__Status",
      "description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "description": "The status code, which should be an enum value of google.rpc.Code."
        },
        "message": {
          "description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.",
          "type": "string"
        },
        "details": {
          "description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.",
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": {
              "type": "any",
              "description": "Properties of the object. Contains field @type with type URL."
            }
          }
        }
      }
    },
    "GoogleAdsSearchads360V23Services__ConversionActionOperation": {
      "id": "GoogleAdsSearchads360V23Services__ConversionActionOperation",
      "description": "A single operation (create, update, remove) on a conversion action.",
      "type": "object",
      "properties": {
        "remove": {
          "description": "Remove operation: A resource name for the removed conversion action is expected, in this format: `customers/{customer_id}/conversionActions/{conversion_action_id}`",
          "type": "string"
        },
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "type": "string",
          "format": "google-fieldmask"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new conversion action.",
          "$ref": "GoogleAdsSearchads360V23Resources__ConversionAction"
        },
        "update": {
          "description": "Update operation: The conversion action is expected to have a valid resource name.",
          "$ref": "GoogleAdsSearchads360V23Resources__ConversionAction"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__SharedSet": {
      "properties": {
        "id": {
          "description": "Output only. The ID of this shared set. Read only.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        },
        "memberCount": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. The number of shared criteria within this shared set. Read only."
        },
        "verticalAdsItemVerticalType": {
          "description": "Immutable. Shared sets of type VERTICAL_ADS_ITEM_GROUP_RULE_LIST are associated with a particular vertical (e.g. hotels, things to do, flights, etc.). This field is required for shared sets of type VERTICAL_ADS_ITEM_GROUP_RULE_LIST.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Hotels travel vertical.",
            "Vacation rentals travel vertical.",
            "Rental cars travel vertical.",
            "Events travel vertical.",
            "Things to do travel vertical.",
            "Flights travel vertical."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HOTELS",
            "VACATION_RENTALS",
            "RENTAL_CARS",
            "EVENTS",
            "THINGS_TO_DO",
            "FLIGHTS"
          ]
        },
        "type": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "A set of keywords that can be excluded from targeting.",
            "A set of placements that can be excluded from targeting.",
            "An account-level set of keywords that can be excluded from targeting.",
            "A set of brands can be included or excluded from targeting.",
            "A set of webpages that can be excluded from targeting. This shared set type is not publicly available.",
            "A set of vertical ads item group rules that can be included or excluded from targeting in Vertical Ads (e.g., for hotel ads)."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NEGATIVE_KEYWORDS",
            "NEGATIVE_PLACEMENTS",
            "ACCOUNT_LEVEL_NEGATIVE_KEYWORDS",
            "BRANDS",
            "WEBPAGES",
            "VERTICAL_ADS_ITEM_GROUP_RULE_LIST"
          ],
          "description": "Immutable. The type of this shared set: each shared set holds only a single kind of resource. Required. Immutable."
        },
        "referenceCount": {
          "readOnly": true,
          "description": "Output only. The number of campaigns associated with this shared set. Read only.",
          "type": "string",
          "format": "int64"
        },
        "name": {
          "type": "string",
          "description": "The name of this shared set. Required. Shared Sets must have names that are unique among active shared sets of the same type. The length of this string should be between 1 and 255 UTF-8 bytes, inclusive."
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the shared set. Shared set resource names have the form: `customers/{customer_id}/sharedSets/{shared_set_id}`"
        },
        "status": {
          "description": "Output only. The status of this shared set. Read only.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The shared set is enabled.",
            "The shared set is removed and can no longer be used."
          ],
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ]
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__SharedSet",
      "description": "SharedSets are used for sharing criterion exclusions across multiple campaigns.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__ListPlannableLocationsRequest": {
      "id": "GoogleAdsSearchads360V23Services__ListPlannableLocationsRequest",
      "description": "Request message for ReachPlanService.ListPlannableLocations.",
      "type": "object",
      "properties": {
        "reachApplicationInfo": {
          "description": "Optional. Additional information on the application issuing the request.",
          "$ref": "GoogleAdsSearchads360V23Common__AdditionalApplicationInfo"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__AdParameter": {
      "id": "GoogleAdsSearchads360V23Resources__AdParameter",
      "description": "An ad parameter that is used to update numeric values (such as prices or inventory levels) in any text line of an ad (including URLs). There can be a maximum of two AdParameters per ad group criterion. (One with parameter_index = 1 and one with parameter_index = 2.) In the ad the parameters are referenced by a placeholder of the form \"{param#:value}\". For example, \"{param1:$17}\"",
      "type": "object",
      "properties": {
        "parameterIndex": {
          "type": "string",
          "format": "int64",
          "description": "Immutable. The unique index of this ad parameter. Must be either 1 or 2."
        },
        "adGroupCriterion": {
          "description": "Immutable. The ad group criterion that this ad parameter belongs to.",
          "type": "string"
        },
        "insertionText": {
          "type": "string",
          "description": "Numeric value to insert into the ad text. The following restrictions apply: - Can use comma or period as a separator, with an optional period or comma (respectively) for fractional values. For example, 1,000,000.00 and 2.000.000,10 are valid. - Can be prepended or appended with a currency symbol. For example, $99.99 is valid. - Can be prepended or appended with a currency code. For example, 99.99USD and EUR200 are valid. - Can use '%'. For example, 1.0% and 1,0% are valid. - Can use plus or minus. For example, -10.99 and 25+ are valid. - Can use '/' between two numbers. For example 4/1 and 0.95/0.45 are valid."
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the ad parameter. Ad parameter resource names have the form: `customers/{customer_id}/adParameters/{ad_group_id}~{criterion_id}~{parameter_index}`"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__AdOperation": {
      "id": "GoogleAdsSearchads360V23Services__AdOperation",
      "description": "A single update operation on an ad.",
      "type": "object",
      "properties": {
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "type": "string",
          "format": "google-fieldmask"
        },
        "update": {
          "description": "Update operation: The ad is expected to have a valid resource name in this format: `customers/{customer_id}/ads/{ad_id}`",
          "$ref": "GoogleAdsSearchads360V23Resources__Ad"
        },
        "policyValidationParameter": {
          "description": "Configuration for how policies are validated.",
          "$ref": "GoogleAdsSearchads360V23Common__PolicyValidationParameter"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__CustomerSkAdNetworkConversionValueSchema": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__CustomerSkAdNetworkConversionValueSchema",
      "description": "A CustomerSkAdNetworkConversionValueSchema.",
      "properties": {
        "resourceName": {
          "readOnly": true,
          "description": "Output only. The resource name of the schema. CustomerSkAdNetworkConversionValueSchema resource names have the form: customers/{customer_id}/customerSkAdNetworkConversionValueSchemas/{account_link_id}",
          "type": "string"
        },
        "schema": {
          "readOnly": true,
          "description": "Output only. The schema for the specified resource.",
          "$ref": "GoogleAdsSearchads360V23Resources_CustomerSkAdNetworkConversionValueSchema_SkAdNetworkConversionValueSchema"
        }
      }
    },
    "GoogleAdsSearchads360V23Services_GenerateRecommendationsRequest_BudgetInfo": {
      "id": "GoogleAdsSearchads360V23Services_GenerateRecommendationsRequest_BudgetInfo",
      "description": "Current budget information of the campaign.",
      "type": "object",
      "properties": {
        "currentBudget": {
          "type": "string",
          "format": "int64",
          "description": "Required. Current budget amount in micros. This field is necessary for the following recommendation_types if budget_info is set: CAMPAIGN_BUDGET"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources_AccessibleBiddingStrategy_TargetSpend": {
      "properties": {
        "targetSpendMicros": {
          "format": "int64",
          "readOnly": true,
          "deprecated": true,
          "description": "Output only. The spend target under which to maximize clicks. A TargetSpend bidder will attempt to spend the smaller of this value or the natural throttling spend amount. If not specified, the budget is used as the spend target. This field is deprecated and should no longer be used. See https://ads-developers.googleblog.com/2020/05/reminder-about-sunset-creation-of.html for details.",
          "type": "string"
        },
        "cpcBidCeilingMicros": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. Maximum bid limit that can be set by the bid strategy. The limit applies to all keywords managed by the strategy."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources_AccessibleBiddingStrategy_TargetSpend",
      "description": "An automated bid strategy that sets your bids to help get as many clicks as possible within your budget."
    },
    "GoogleAdsSearchads360V23Common__AppDeepLinkAsset": {
      "properties": {
        "appDeepLinkUri": {
          "type": "string",
          "description": "The uri for the app deep link, The uri can be either a custom scheme uri (e.g. mystore://shoes) or universal uri (e.g. http://www.mystore.com/shoes)."
        }
      },
      "id": "GoogleAdsSearchads360V23Common__AppDeepLinkAsset",
      "description": "An app deep link asset",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__UserListRuleItemGroupInfo": {
      "id": "GoogleAdsSearchads360V23Common__UserListRuleItemGroupInfo",
      "description": "A group of rule items.",
      "type": "object",
      "properties": {
        "ruleItems": {
          "description": "Rule items that will be grouped together based on rule_type.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__UserListRuleItemInfo"
          }
        }
      }
    },
    "GoogleAdsSearchads360V23Common__AgeDimension": {
      "id": "GoogleAdsSearchads360V23Common__AgeDimension",
      "description": "Dimension specifying users by their age.",
      "type": "object",
      "properties": {
        "ageRanges": {
          "description": "Contiguous age range to be included in the dimension.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AgeSegment"
          }
        },
        "includeUndetermined": {
          "description": "Include users whose age is not determined.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__BiddingSeasonalityAdjustment": {
      "id": "GoogleAdsSearchads360V23Resources__BiddingSeasonalityAdjustment",
      "description": "Represents a bidding seasonality adjustment. Cannot be used in manager accounts. See \"About seasonality adjustments\" at https://support.google.com/google-ads/answer/10369906.",
      "type": "object",
      "properties": {
        "description": {
          "description": "The description of the seasonality adjustment. The description can be at most 2048 characters.",
          "type": "string"
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the seasonality adjustment. Seasonality adjustment resource names have the form: `customers/{customer_id}/biddingSeasonalityAdjustments/{seasonality_adjustment_id}`"
        },
        "scope": {
          "description": "The scope of the seasonality adjustment.",
          "type": "string",
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The seasonality event is applied to all the customer's traffic for supported advertising channel types and device types. The CUSTOMER scope cannot be used in mutates.",
            "The seasonality event is applied to all specified campaigns.",
            "The seasonality event is applied to all campaigns that belong to specified channel types."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CUSTOMER",
            "CAMPAIGN",
            "CHANNEL"
          ]
        },
        "campaigns": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The seasonality adjustment will apply to the campaigns listed when the scope of this adjustment is CAMPAIGN. The maximum number of campaigns per event is 2000. Note: a seasonality adjustment with both advertising_channel_types and campaign_ids is not supported."
        },
        "startDateTime": {
          "description": "Required. The inclusive start time of the seasonality adjustment in yyyy-MM-dd HH:mm:ss format. A seasonality adjustment is forward looking and should be used for events that start and end in the future.",
          "type": "string"
        },
        "devices": {
          "description": "If not specified, all devices will be included in this adjustment. Otherwise, only the specified targeted devices will be included in this adjustment.",
          "type": "array",
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "The value is unknown in this version.",
              "Mobile devices with full browsers.",
              "Tablets with full browsers.",
              "Computers.",
              "Smart TVs and game consoles.",
              "Other device types."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "MOBILE",
              "TABLET",
              "DESKTOP",
              "CONNECTED_TV",
              "OTHER"
            ]
          }
        },
        "seasonalityAdjustmentId": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. The ID of the seasonality adjustment."
        },
        "status": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ],
          "description": "Output only. The status of the seasonality adjustment.",
          "type": "string",
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The seasonality event is enabled.",
            "The seasonality event is removed."
          ]
        },
        "endDateTime": {
          "description": "Required. The exclusive end time of the seasonality adjustment in yyyy-MM-dd HH:mm:ss format. The length of [start_date_time, end_date_time) interval must be within (0, 14 days].",
          "type": "string"
        },
        "name": {
          "description": "The name of the seasonality adjustment. The name can be at most 255 characters.",
          "type": "string"
        },
        "conversionRateModifier": {
          "type": "number",
          "format": "double",
          "description": "Conversion rate modifier estimated based on expected conversion rate changes. When this field is unset or set to 1.0 no adjustment will be applied to traffic. The allowed range is 0.1 to 10.0."
        },
        "advertisingChannelTypes": {
          "description": "The seasonality adjustment will apply to all the campaigns under the listed channels retroactively as well as going forward when the scope of this adjustment is CHANNEL. The supported advertising channel types are DISPLAY, SEARCH and SHOPPING. Note: a seasonality adjustment with both advertising_channel_types and campaign_ids is not supported.",
          "type": "array",
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "Search Network. Includes display bundled, and Search+ campaigns.",
              "Google Display Network only.",
              "Shopping campaigns serve on the shopping property and on google.com search results.",
              "Hotel Ads campaigns.",
              "Video campaigns.",
              "App Campaigns, and App Campaigns for Engagement, that run across multiple channels.",
              "Local ads campaigns.",
              "Smart campaigns.",
              "Performance Max campaigns.",
              "Local services campaigns.",
              "Travel campaigns.",
              "Demand Gen campaigns.",
              "Social campaigns."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "SEARCH",
              "DISPLAY",
              "SHOPPING",
              "HOTEL",
              "VIDEO",
              "MULTI_CHANNEL",
              "LOCAL",
              "SMART",
              "PERFORMANCE_MAX",
              "LOCAL_SERVICES",
              "TRAVEL",
              "DEMAND_GEN",
              "SOCIAL"
            ]
          }
        }
      }
    },
    "GoogleAdsSearchads360V23Common__ShoppingProductAdInfo": {
      "id": "GoogleAdsSearchads360V23Common__ShoppingProductAdInfo",
      "description": "A standard Shopping ad.",
      "type": "object",
      "properties": {}
    },
    "GoogleAdsSearchads360V23Resources__PaidOrganicSearchTermView": {
      "properties": {
        "searchTerm": {
          "type": "string",
          "description": "Output only. The search term.",
          "readOnly": true
        },
        "resourceName": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The resource name of the search term view. Search term view resource names have the form: `customers/{customer_id}/paidOrganicSearchTermViews/{campaign_id}~ {ad_group_id}~{URL-base64 search term}`"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__PaidOrganicSearchTermView",
      "description": "A paid organic search term view providing a view of search stats across ads and organic listings aggregated by search term at the ad group level."
    },
    "GoogleAdsSearchads360V23Services__MutateCampaignGroupResult": {
      "id": "GoogleAdsSearchads360V23Services__MutateCampaignGroupResult",
      "description": "The result for the campaign group mutate.",
      "type": "object",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Required. Returned for successful operations."
        },
        "campaignGroup": {
          "description": "The mutated campaign group with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsSearchads360V23Resources__CampaignGroup"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateCustomerNegativeCriteriaResponse": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateCustomerNegativeCriteriaResponse",
      "description": "Response message for customer negative criterion mutate.",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "description": "All results for the mutate.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateCustomerNegativeCriteriaResult"
          }
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__LocalServicesSettings": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__LocalServicesSettings",
      "description": "Settings for Local Services customer.",
      "properties": {
        "granularLicenseStatuses": {
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Resources__GranularLicenseStatus"
          },
          "description": "Output only. A read-only list of geo vertical level license statuses."
        },
        "granularInsuranceStatuses": {
          "readOnly": true,
          "description": "Output only. A read-only list of geo vertical level insurance statuses.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Resources__GranularInsuranceStatus"
          }
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateConversionCustomVariableResult": {
      "id": "GoogleAdsSearchads360V23Services__MutateConversionCustomVariableResult",
      "description": "The result for the conversion custom variable mutate.",
      "type": "object",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        },
        "conversionCustomVariable": {
          "description": "The mutated conversion custom variable with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsSearchads360V23Resources__ConversionCustomVariable"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__MediaBundle": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__MediaBundle",
      "description": "Represents a ZIP archive media the content of which contains HTML5 assets.",
      "properties": {
        "data": {
          "type": "string",
          "format": "byte",
          "description": "Immutable. Raw zipped data."
        },
        "url": {
          "description": "Output only. The url to access the uploaded zipped data. For example, https://tpc.googlesyndication.com/simgad/123 This field is read-only.",
          "type": "string",
          "readOnly": true
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__SearchTermView": {
      "id": "GoogleAdsSearchads360V23Resources__SearchTermView",
      "description": "A search term view with metrics aggregated by search term at the ad group level. This view does not include Performance Max data. If you are looking for Performance Max search term data, use the CampaignSearchTermView instead.",
      "type": "object",
      "properties": {
        "adGroup": {
          "readOnly": true,
          "description": "Output only. The ad group the search term served in.",
          "type": "string"
        },
        "resourceName": {
          "description": "Output only. The resource name of the search term view. Search term view resource names have the form: `customers/{customer_id}/searchTermViews/{campaign_id}~{ad_group_id}~{URL-base64_search_term}`",
          "type": "string",
          "readOnly": true
        },
        "status": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Search term is added to targeted keywords.",
            "Search term matches a negative keyword.",
            "Search term has been both added and excluded.",
            "Search term is neither targeted nor excluded."
          ],
          "description": "Output only. Indicates whether the search term is currently one of your targeted or excluded keywords.",
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADDED",
            "EXCLUDED",
            "ADDED_EXCLUDED",
            "NONE"
          ]
        },
        "searchTerm": {
          "type": "string",
          "description": "Output only. The search term.",
          "readOnly": true
        }
      }
    },
    "GoogleAdsSearchads360V23Services__BiddingDataExclusionOperation": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__BiddingDataExclusionOperation",
      "description": "A single operation (create, remove, update) on a data exclusion.",
      "properties": {
        "remove": {
          "description": "Remove operation: A resource name for the removed data exclusion is expected, in this format: `customers/{customer_id}/biddingDataExclusions/{data_exclusion_id}`",
          "type": "string"
        },
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "type": "string",
          "format": "google-fieldmask"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new data exclusion.",
          "$ref": "GoogleAdsSearchads360V23Resources__BiddingDataExclusion"
        },
        "update": {
          "description": "Update operation: The data exclusion is expected to have a valid resource name.",
          "$ref": "GoogleAdsSearchads360V23Resources__BiddingDataExclusion"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__CustomerUserAccessOperation": {
      "properties": {
        "remove": {
          "description": "Remove operation: A resource name for the removed access is expected, in this format: `customers/{customer_id}/customerUserAccesses/{CustomerUserAccess.user_id}`",
          "type": "string"
        },
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "type": "string",
          "format": "google-fieldmask"
        },
        "update": {
          "description": "Update operation: The customer user access is expected to have a valid resource name.",
          "$ref": "GoogleAdsSearchads360V23Resources__CustomerUserAccess"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__CustomerUserAccessOperation",
      "description": "A single operation (update, remove) on customer user access."
    },
    "GoogleAdsSearchads360V23Services_GenerateRecommendationsRequest_SeedInfo": {
      "properties": {
        "keywordSeeds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Optional. Keywords or phrases to generate ideas from, for example: cars or \"car dealership near me\"."
        },
        "urlSeed": {
          "type": "string",
          "description": "A specific url to generate ideas from, for example: www.example.com/cars."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services_GenerateRecommendationsRequest_SeedInfo",
      "description": "A keyword seed and a specific url to generate keywords from."
    },
    "GoogleAdsSearchads360V23Common__KeywordAnnotations": {
      "properties": {
        "concepts": {
          "description": "The list of concepts for the keyword.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__KeywordConcept"
          }
        }
      },
      "id": "GoogleAdsSearchads360V23Common__KeywordAnnotations",
      "description": "The annotations for the keyword plan keywords.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateAssetGroupAssetsResponse": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateAssetGroupAssetsResponse",
      "description": "Response message for an asset group asset mutate.",
      "properties": {
        "results": {
          "description": "All results for the mutate.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateAssetGroupAssetResult"
          }
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__AudienceInsightsAttributeMetadataGroup": {
      "id": "GoogleAdsSearchads360V23Common__AudienceInsightsAttributeMetadataGroup",
      "description": "A group of audience attributes with metadata, returned in response to a search.",
      "type": "object",
      "properties": {
        "attributes": {
          "description": "Attributes with metadata returned in response to a search.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AudienceInsightsAttributeMetadata"
          }
        }
      }
    },
    "GoogleAdsSearchads360V23Resources_ListingGroupFilterDimension_ProductBrand": {
      "properties": {
        "value": {
          "type": "string",
          "description": "String value of the product brand."
        }
      },
      "id": "GoogleAdsSearchads360V23Resources_ListingGroupFilterDimension_ProductBrand",
      "description": "Brand of the product.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources__KeywordPlanGeoTarget": {
      "properties": {
        "geoTargetConstant": {
          "type": "string",
          "description": "Required. The resource name of the geo target."
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__KeywordPlanGeoTarget",
      "description": "A geo target.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__ItemAttribute": {
      "properties": {
        "languageCode": {
          "type": "string",
          "description": "ISO 639-1 code of the language associated with the feed where your items are uploaded. This information is useful to differentiate product information in cases where a product (identified by item_id) is associated with multiple languages."
        },
        "quantity": {
          "type": "string",
          "format": "int64",
          "description": "The number of items sold. Defaults to 1 if not set."
        },
        "merchantId": {
          "type": "string",
          "format": "int64",
          "description": "ID of the Merchant Center Account. Required."
        },
        "countryCode": {
          "description": "Common Locale Data Repository (CLDR) territory code of the country associated with the feed where your items are uploaded. See https://developers.google.com/google-ads/api/reference/data/codes-formats#country-codes for more information. This information is useful to differentiate product information in cases where a product (identified by item_id) is associated with multiple countries.",
          "type": "string"
        },
        "itemId": {
          "type": "string",
          "description": "A unique identifier of a product. It must be the exact same Merchant Center Item ID you use in your Google Merchant Center for this product. Required."
        }
      },
      "id": "GoogleAdsSearchads360V23Common__ItemAttribute",
      "description": "Item attributes of the transaction.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateCampaignLabelResult": {
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        }
      },
      "id": "GoogleAdsSearchads360V23Services__MutateCampaignLabelResult",
      "description": "The result for a campaign label mutate.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources_Campaign_ShoppingSetting": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources_Campaign_ShoppingSetting",
      "description": "The setting for Shopping campaigns. Defines the universe of products that can be advertised by the campaign, and how this campaign interacts with other Shopping campaigns.",
      "properties": {
        "merchantId": {
          "description": "ID of the Merchant Center account. This field is required for create operations. This field is immutable for Shopping campaigns.",
          "type": "string",
          "format": "int64"
        },
        "advertisingPartnerIds": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "int64"
          },
          "description": "The list of Google Ads accounts IDs of advertising partners cooperating within the campaign. This feature is currently available only for accounts having an advertising partner link. This feature is currently supported only for Performance Max, Shopping, Search and Demand Gen campaign types."
        },
        "campaignPriority": {
          "description": "Priority of the campaign. Campaigns with numerically higher priorities take precedence over those with lower priorities. This field is required for Shopping campaigns, with values between 0 and 2, inclusive. This field is optional for Smart Shopping campaigns, but must be equal to 3 if set.",
          "type": "integer",
          "format": "int32"
        },
        "feedLabel": {
          "type": "string",
          "description": "Feed label of products to include in the campaign. Valid feed labels may contain a maximum of 20 characters including uppercase letters, numbers, hyphens, and underscores. If you previously used the deprecated `sales_country` in the two-letter country code (`XX`) format, the `feed_label` field should be used instead. For more information see the [feed label](//support.google.com/merchants/answer/12453549) support article."
        },
        "useVehicleInventory": {
          "type": "boolean",
          "description": "Immutable. Whether to target Vehicle Listing inventory."
        },
        "disableProductFeed": {
          "type": "boolean",
          "description": "Disable the optional product feed. This field is currently supported only for Demand Gen campaigns. See https://support.google.com/google-ads/answer/13721750 to learn more about this feature."
        },
        "enableLocal": {
          "type": "boolean",
          "description": "Whether to include local products."
        }
      }
    },
    "GoogleAdsSearchads360V23Resources_RecommendationKeywordRecommendation_SearchTerm": {
      "id": "GoogleAdsSearchads360V23Resources_RecommendationKeywordRecommendation_SearchTerm",
      "description": "Information about a search term as related to a keyword recommendation.",
      "type": "object",
      "properties": {
        "estimatedWeeklySearchCount": {
          "type": "string",
          "format": "int64",
          "description": "Output only. Estimated number of historical weekly searches for this search term.",
          "readOnly": true
        },
        "text": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The text of the search term."
        }
      }
    },
    "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_CallAssetParameters": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_CallAssetParameters",
      "description": "Parameters to use when applying call asset recommendations.",
      "properties": {
        "adAssetApplyParameters": {
          "description": "Required. Call assets to be added. This is a required field.",
          "$ref": "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_AdAssetApplyParameters"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__GenerateInsightsFinderReportRequest": {
      "id": "GoogleAdsSearchads360V23Services__GenerateInsightsFinderReportRequest",
      "description": "Request message for AudienceInsightsService.GenerateInsightsFinderReport.",
      "type": "object",
      "properties": {
        "baselineAudience": {
          "description": "Required. A baseline audience for this report, typically all people in a region.",
          "$ref": "GoogleAdsSearchads360V23Services__InsightsAudience"
        },
        "specificAudience": {
          "description": "Required. The specific audience of interest for this report. The insights in the report will be based on attributes more prevalent in this audience than in the report's baseline audience.",
          "$ref": "GoogleAdsSearchads360V23Services__InsightsAudience"
        },
        "customerInsightsGroup": {
          "description": "The name of the customer being planned for. This is a user-defined value.",
          "type": "string"
        },
        "insightsApplicationInfo": {
          "description": "Optional. Additional information on the application issuing the request.",
          "$ref": "GoogleAdsSearchads360V23Common__AdditionalApplicationInfo"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__AssetGroupListingGroupFilterOperation": {
      "id": "GoogleAdsSearchads360V23Services__AssetGroupListingGroupFilterOperation",
      "description": "A single operation (create, remove) on an asset group listing group filter.",
      "type": "object",
      "properties": {
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed asset group listing group filter is expected, in this format: `customers/{customer_id}/assetGroupListingGroupFilters/{asset_group_id}~{listing_group_filter_id}` An entity can be removed only if it's not referenced by other parent_listing_group_id. If multiple entities are being deleted, the mutates must be in the correct order."
        },
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "type": "string",
          "format": "google-fieldmask"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new asset group listing group filter.",
          "$ref": "GoogleAdsSearchads360V23Resources__AssetGroupListingGroupFilter"
        },
        "update": {
          "description": "Update operation: The asset group listing group filter is expected to have a valid resource name.",
          "$ref": "GoogleAdsSearchads360V23Resources__AssetGroupListingGroupFilter"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateCampaignAssetResult": {
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        },
        "campaignAsset": {
          "description": "The mutated campaign asset with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsSearchads360V23Resources__CampaignAsset"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__MutateCampaignAssetResult",
      "description": "The result for the campaign asset mutate.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__CustomerOperation": {
      "properties": {
        "update": {
          "description": "Mutate operation. Only updates are supported for customer.",
          "$ref": "GoogleAdsSearchads360V23Resources__Customer"
        },
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "type": "string",
          "format": "google-fieldmask"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__CustomerOperation",
      "description": "A single update on a customer."
    },
    "GoogleAdsSearchads360V23Services__ConfigureCampaignLifecycleGoalsResponse": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__ConfigureCampaignLifecycleGoalsResponse",
      "description": "Response message for CampaignLifecycleGoalService.ConfigureCampaignLifecycleGoals.",
      "properties": {
        "result": {
          "description": "Result for the campaign lifecycle goal configuration.",
          "$ref": "GoogleAdsSearchads360V23Services__ConfigureCampaignLifecycleGoalsResult"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__AndroidPrivacySharedKeyGoogleAdGroup": {
      "id": "GoogleAdsSearchads360V23Resources__AndroidPrivacySharedKeyGoogleAdGroup",
      "description": "An Android privacy shared key view for Google ad group key.",
      "type": "object",
      "properties": {
        "campaignId": {
          "readOnly": true,
          "description": "Output only. The campaign ID used in the share key encoding.",
          "type": "string",
          "format": "int64"
        },
        "androidPrivacyInteractionType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CLICK",
            "ENGAGED_VIEW",
            "VIEW"
          ],
          "readOnly": true,
          "description": "Output only. The interaction type enum used in the share key encoding.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "The physical click interaction type.",
            "The 10 seconds engaged view interaction type.",
            "The view (ad impression) interaction type."
          ]
        },
        "adGroupId": {
          "description": "Output only. The ad group ID used in the share key encoding.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        },
        "sharedAdGroupKey": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. 128 bit hex string of the encoded shared ad group key, including a '0x' prefix. This key can be used to do a bitwise OR operator with the aggregate conversion key to create a full aggregation key to retrieve the Aggregate API Report in Android Privacy Sandbox."
        },
        "resourceName": {
          "readOnly": true,
          "description": "Output only. The resource name of the Android privacy shared key. Android privacy shared key resource names have the form: `customers/{customer_id}/androidPrivacySharedKeyGoogleAdGroups/{campaign_id}~{ad_group_id}~{android_privacy_interaction_type}~{android_privacy_network_type}~{android_privacy_interaction_date(yyyy-mm-dd)}`",
          "type": "string"
        },
        "androidPrivacyInteractionDate": {
          "description": "Output only. The interaction date used in the shared key encoding in the format of \"YYYY-MM-DD\" in UTC timezone.",
          "type": "string",
          "readOnly": true
        },
        "androidPrivacyNetworkType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Search Network.",
            "Display Network.",
            "YouTube Network."
          ],
          "description": "Output only. The network type enum used in the share key encoding.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SEARCH",
            "DISPLAY",
            "YOUTUBE"
          ],
          "readOnly": true
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__CombinedAudience": {
      "id": "GoogleAdsSearchads360V23Resources__CombinedAudience",
      "description": "Describe a resource for combined audiences which includes different audiences.",
      "type": "object",
      "properties": {
        "id": {
          "readOnly": true,
          "description": "Output only. ID of the combined audience.",
          "type": "string",
          "format": "int64"
        },
        "description": {
          "type": "string",
          "description": "Output only. Description of this combined audience.",
          "readOnly": true
        },
        "name": {
          "readOnly": true,
          "description": "Output only. Name of the combined audience. It should be unique across all combined audiences.",
          "type": "string"
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the combined audience. Combined audience names have the form: `customers/{customer_id}/combinedAudience/{combined_audience_id}`"
        },
        "status": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ],
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Enabled status - combined audience is enabled and can be targeted.",
            "Removed status - combined audience is removed and cannot be used for targeting."
          ],
          "description": "Output only. Status of this combined audience. Indicates whether the combined audience is enabled or removed."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__ListAudienceInsightsAttributesResponse": {
      "properties": {
        "attributes": {
          "description": "The attributes matching the search query.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AudienceInsightsAttributeMetadata"
          }
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__ListAudienceInsightsAttributesResponse",
      "description": "Response message for AudienceInsightsService.ListAudienceInsightsAttributes."
    },
    "GoogleAdsSearchads360V23Common__UserListStringRuleItemInfo": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__UserListStringRuleItemInfo",
      "description": "A rule item composed of a string operation.",
      "properties": {
        "value": {
          "type": "string",
          "description": "The right hand side of the string rule item. For URLs or referrer URLs, the value can not contain illegal URL chars such as newlines, quotes, tabs, or parentheses. This field is required and must be populated when creating a new string rule item."
        },
        "operator": {
          "description": "String comparison operator. This field is required and must be populated when creating a new string rule item.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Contains.",
            "Equals.",
            "Starts with.",
            "Ends with.",
            "Not equals.",
            "Not contains.",
            "Not starts with.",
            "Not ends with."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CONTAINS",
            "EQUALS",
            "STARTS_WITH",
            "ENDS_WITH",
            "NOT_EQUALS",
            "NOT_CONTAINS",
            "NOT_STARTS_WITH",
            "NOT_ENDS_WITH"
          ]
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateAccountLinkRequest": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateAccountLinkRequest",
      "description": "Request message for AccountLinkService.MutateAccountLink.",
      "properties": {
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "operation": {
          "description": "Required. The operation to perform on the link.",
          "$ref": "GoogleAdsSearchads360V23Services__AccountLinkOperation"
        },
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__IndustryVerticalInfo": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__IndustryVerticalInfo",
      "description": "The information associated with an Industry Vertical.",
      "properties": {
        "parentIndustryVerticalId": {
          "type": "string",
          "format": "int64",
          "description": "The unique identifier of the parent Industry Vertical, if exists."
        },
        "industryVerticalName": {
          "type": "string",
          "description": "The name of the Industry Vertical."
        },
        "industryVerticalId": {
          "description": "The unique identifier of the Industry Vertical.",
          "type": "string",
          "format": "int64"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateBiddingSeasonalityAdjustmentsResponse": {
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "description": "All results for the mutate.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateBiddingSeasonalityAdjustmentsResult"
          }
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateBiddingSeasonalityAdjustmentsResponse",
      "description": "Response message for seasonality adjustments mutate."
    },
    "GoogleAdsSearchads360V23Services__CustomColumnHeader": {
      "properties": {
        "id": {
          "description": "The custom column ID.",
          "type": "string",
          "format": "int64"
        },
        "referencesMetrics": {
          "type": "boolean",
          "description": "True when the custom column references metrics."
        },
        "name": {
          "description": "The user defined name of the custom column.",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__CustomColumnHeader",
      "description": "Message for custom column header.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources__ProductLink": {
      "properties": {
        "type": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "A link to Data partner.",
            "A link to Google Ads.",
            "A link to Hotel Center.",
            "A link to Google Merchant Center.",
            "A link to the Google Ads account of the advertising partner."
          ],
          "description": "Output only. The type of the linked product.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DATA_PARTNER",
            "GOOGLE_ADS",
            "HOTEL_CENTER",
            "MERCHANT_CENTER",
            "ADVERTISING_PARTNER"
          ],
          "readOnly": true
        },
        "dataPartner": {
          "description": "Immutable. Data partner link.",
          "$ref": "GoogleAdsSearchads360V23Resources__DataPartnerIdentifier"
        },
        "resourceName": {
          "description": "Immutable. Resource name of the product link. ProductLink resource names have the form: ` `",
          "type": "string"
        },
        "merchantCenter": {
          "description": "Immutable. Google Merchant Center link.",
          "$ref": "GoogleAdsSearchads360V23Resources__MerchantCenterIdentifier"
        },
        "productLinkId": {
          "readOnly": true,
          "description": "Output only. The ID of the link. This field is read only.",
          "type": "string",
          "format": "int64"
        },
        "googleAds": {
          "description": "Immutable. Google Ads link.",
          "$ref": "GoogleAdsSearchads360V23Resources__GoogleAdsIdentifier"
        },
        "advertisingPartner": {
          "readOnly": true,
          "description": "Output only. Advertising Partner link.",
          "$ref": "GoogleAdsSearchads360V23Resources__AdvertisingPartnerIdentifier"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__ProductLink",
      "description": "Represents the data sharing connection between"
    },
    "GoogleAdsSearchads360V23Services__MutateCustomInterestResult": {
      "id": "GoogleAdsSearchads360V23Services__MutateCustomInterestResult",
      "description": "The result for the custom interest mutate.",
      "type": "object",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources_Recommendation_ResponsiveSearchAdAssetRecommendation": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources_Recommendation_ResponsiveSearchAdAssetRecommendation",
      "description": "The add responsive search ad asset recommendation.",
      "properties": {
        "currentAd": {
          "description": "Output only. The current ad to be updated.",
          "$ref": "GoogleAdsSearchads360V23Resources__Ad",
          "readOnly": true
        },
        "recommendedAssets": {
          "description": "Output only. The recommended assets. This is populated only with the new headlines and/or descriptions, and is otherwise empty.",
          "$ref": "GoogleAdsSearchads360V23Resources__Ad",
          "readOnly": true
        }
      }
    },
    "GoogleAdsSearchads360V23Resources_AccessibleBiddingStrategy_TargetRoas": {
      "properties": {
        "targetRoas": {
          "readOnly": true,
          "description": "Output only. The chosen revenue (based on conversion data) per unit of spend.",
          "type": "number",
          "format": "double"
        }
      },
      "id": "GoogleAdsSearchads360V23Resources_AccessibleBiddingStrategy_TargetRoas",
      "description": "An automated bidding strategy that helps you maximize revenue while averaging a specific target return on ad spend (ROAS).",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__StructuredSnippetAsset": {
      "id": "GoogleAdsSearchads360V23Common__StructuredSnippetAsset",
      "description": "A Structured Snippet asset.",
      "type": "object",
      "properties": {
        "header": {
          "type": "string",
          "description": "Required. The header of the snippet. This string should be one of the predefined values at https://developers.google.com/google-ads/api/reference/data/structured-snippet-headers"
        },
        "values": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Required. The values in the snippet. The size of this collection should be between 3 and 10, inclusive. The length of each value should be between 1 and 25 characters, inclusive."
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__AdGroup": {
      "id": "GoogleAdsSearchads360V23Resources__AdGroup",
      "description": "An ad group.",
      "type": "object",
      "properties": {
        "adRotationMode": {
          "description": "The ad rotation mode of the ad group.",
          "type": "string",
          "enumDescriptions": [
            "The ad rotation mode has not been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "Optimize ad group ads based on clicks or conversions.",
            "Rotate evenly forever."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "OPTIMIZE",
            "ROTATE_FOREVER"
          ]
        },
        "targetRoas": {
          "type": "number",
          "format": "double",
          "description": "The target ROAS (return-on-ad-spend) for this ad group. This field lets you override the target ROAS specified in the campaign's bidding strategy, but only if the campaign is using a standard (not portfolio) `TargetRoas` strategy or a standard `MaximizeConversionValue` strategy with its `target_roas` field set. If the campaign is using a portfolio bidding strategy, this field cannot be set and attempting to do so will result in an error. For any other bidding strategies, this value is ignored. To see the actual target ROAS being used by the ad group, considering potential overrides, query the `effective_target_roas` and `effective_target_roas_source` fields."
        },
        "type": {
          "type": "string",
          "enumDescriptions": [
            "The type has not been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "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 default ad group type for Hotel campaigns.",
            "The type for ad groups in Smart Shopping campaigns.",
            "Short unskippable in-stream video ads.",
            "TrueView (skippable) in-stream video ads.",
            "TrueView in-display video ads.",
            "Unskippable in-stream video ads.",
            "Ad group type for Dynamic Search Ads ad groups.",
            "The type for ad groups in Shopping Comparison Listing campaigns.",
            "The ad group type for Promoted Hotel ad groups.",
            "Video responsive ad groups.",
            "Video efficient reach ad groups.",
            "Ad group type for Smart campaigns.",
            "Ad group type for Travel campaigns."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SEARCH_STANDARD",
            "DISPLAY_STANDARD",
            "SHOPPING_PRODUCT_ADS",
            "HOTEL_ADS",
            "SHOPPING_SMART_ADS",
            "VIDEO_BUMPER",
            "VIDEO_TRUE_VIEW_IN_STREAM",
            "VIDEO_TRUE_VIEW_IN_DISPLAY",
            "VIDEO_NON_SKIPPABLE_IN_STREAM",
            "SEARCH_DYNAMIC_ADS",
            "SHOPPING_COMPARISON_LISTING_ADS",
            "PROMOTED_HOTEL_ADS",
            "VIDEO_RESPONSIVE",
            "VIDEO_EFFICIENT_REACH",
            "SMART_CAMPAIGN_ADS",
            "TRAVEL_ADS"
          ],
          "description": "Immutable. The type of the ad group."
        },
        "baseAdGroup": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. For draft or experiment ad groups, this field is the resource name of the base ad group from which this ad group was created. If a draft or experiment ad group does not have a base ad group, then this field is null. For base ad groups, this field equals the ad group resource name. This field is read-only."
        },
        "effectiveTargetRoas": {
          "readOnly": true,
          "type": "number",
          "format": "double",
          "description": "Output only. The effective target ROAS (return-on-ad-spend). This field is read-only."
        },
        "effectiveTargetCpc": {
          "description": "Output only. The effective target CPC (cost-per-click). This field is read-only.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        },
        "endDate": {
          "readOnly": true,
          "description": "Output only. Date when the ad group ends serving ads. By default, the ad group ends on the ad group's end date. If this field is set, then the ad group ends at the end of the specified date in the customer's time zone. This field is only available for Microsoft Advertising and Facebook gateway accounts. Format: YYYY-MM-DD Example: 2019-03-14",
          "type": "string"
        },
        "languageCode": {
          "type": "string",
          "description": "Output only. The language of the ads and keywords in an ad group. This field is only available for Microsoft Advertising accounts. More details: https://docs.microsoft.com/en-us/advertising/guides/ad-languages?view=bingads-13#adlanguage",
          "readOnly": true
        },
        "effectiveCpcBidMicros": {
          "description": "Output only. Value will be same as that of the CPC (cost-per-click) bid value when the bidding strategy is one of manual cpc, enhanced cpc, page one promoted or target outrank share, otherwise the value will be null.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        },
        "startDate": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Date when this ad group starts serving ads. By default, the ad group starts now or the ad group's start date, whichever is later. If this field is set, then the ad group starts at the beginning of the specified date in the customer's time zone. This field is only available for Microsoft Advertising and Facebook gateway accounts. Format: YYYY-MM-DD Example: 2019-03-14"
        },
        "targetCpvMicros": {
          "description": "Average amount in micros that the advertiser is willing to pay for every ad view.",
          "type": "string",
          "format": "int64"
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the ad group. Ad group resource names have the form: `customers/{customer_id}/adGroups/{ad_group_id}`"
        },
        "targetCpmMicros": {
          "description": "Average amount in micros that the advertiser is willing to pay for every thousand times the ad is shown.",
          "type": "string",
          "format": "int64"
        },
        "name": {
          "description": "The name of the ad group. This field is required and should not be empty when creating new ad groups. It must contain fewer than 255 UTF-8 full-width characters. It must not contain any null (code point 0x0), NL line feed (code point 0xA) or carriage return (code point 0xD) characters.",
          "type": "string"
        },
        "urlCustomParameters": {
          "description": "The list of mappings used to substitute custom parameter tags in a `tracking_url_template`, `final_urls`, or `mobile_final_urls`.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__CustomParameter"
          }
        },
        "aiMaxAdGroupSetting": {
          "description": "Settings for AI Max feature in standard search adgroups.",
          "$ref": "GoogleAdsSearchads360V23Resources_AdGroup_AiMaxAdGroupSetting"
        },
        "verticalAdsFormatSetting": {
          "description": "Vertical ads setting feature to enable/disable ad group format controls in search campaigns. This setting requires AiMaxAdGroupSetting to be enabled and a travel feed to be attached to the campaign.",
          "$ref": "GoogleAdsSearchads360V23Resources_AdGroup_VerticalAdsFormatSetting"
        },
        "excludedParentAssetFieldTypes": {
          "type": "array",
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "The asset is linked for use as a headline.",
              "The asset is linked for use as a description.",
              "The asset is linked for use as mandatory ad text.",
              "The asset is linked for use as a marketing image.",
              "The asset is linked for use as a media bundle.",
              "The asset is linked for use as a YouTube video.",
              "The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.",
              "The asset is linked for use as a Lead Form extension.",
              "The asset is linked for use as a Promotion extension.",
              "The asset is linked for use as a Callout extension.",
              "The asset is linked for use as a Structured Snippet extension.",
              "The asset is linked for use as a Sitelink.",
              "The asset is linked for use as a Mobile App extension.",
              "The asset is linked for use as a Hotel Callout extension.",
              "The asset is linked for use as a Call extension.",
              "The asset is linked for use as a Price extension.",
              "The asset is linked for use as a long headline.",
              "The asset is linked for use as a business name.",
              "The asset is linked for use as a square marketing image.",
              "The asset is linked for use as a portrait marketing image.",
              "The asset is linked for use as a logo.",
              "The asset is linked for use as a landscape logo.",
              "The asset is linked for use as a non YouTube logo.",
              "The asset is linked for use to select a call-to-action.",
              "The asset is linked for use to select an ad image.",
              "The asset is linked for use as a business logo.",
              "The asset is linked for use as a hotel property in a Performance Max for travel goals campaign.",
              "The asset is linked for use as a Demand Gen carousel card.",
              "The asset is linked for use as a Business Message.",
              "The asset is linked for use as a tall portrait marketing image.",
              "The asset is linked for use as a landing page preview image.",
              "The asset is linked for use as a long description.",
              "The asset is linked for use as a call-to-action."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "HEADLINE",
              "DESCRIPTION",
              "MANDATORY_AD_TEXT",
              "MARKETING_IMAGE",
              "MEDIA_BUNDLE",
              "YOUTUBE_VIDEO",
              "BOOK_ON_GOOGLE",
              "LEAD_FORM",
              "PROMOTION",
              "CALLOUT",
              "STRUCTURED_SNIPPET",
              "SITELINK",
              "MOBILE_APP",
              "HOTEL_CALLOUT",
              "CALL",
              "PRICE",
              "LONG_HEADLINE",
              "BUSINESS_NAME",
              "SQUARE_MARKETING_IMAGE",
              "PORTRAIT_MARKETING_IMAGE",
              "LOGO",
              "LANDSCAPE_LOGO",
              "VIDEO",
              "CALL_TO_ACTION_SELECTION",
              "AD_IMAGE",
              "BUSINESS_LOGO",
              "HOTEL_PROPERTY",
              "DEMAND_GEN_CAROUSEL_CARD",
              "BUSINESS_MESSAGE",
              "TALL_PORTRAIT_MARKETING_IMAGE",
              "LANDING_PAGE_PREVIEW",
              "LONG_DESCRIPTION",
              "CALL_TO_ACTION"
            ]
          },
          "description": "The asset field types that should be excluded from this ad group. Asset links with these field types will not be inherited by this ad group from the upper levels."
        },
        "fixedCpmMicros": {
          "description": "The fixed amount in micros that the advertiser pays for every thousand impressions of the ad.",
          "type": "string",
          "format": "int64"
        },
        "effectiveTargetCpaSource": {
          "description": "Output only. Source of the effective target CPA. This field is read-only.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Effective bid or target is inherited from campaign bidding strategy.",
            "The bid or target is defined on the ad group.",
            "The bid or target is defined on the ad group criterion."
          ],
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CAMPAIGN_BIDDING_STRATEGY",
            "AD_GROUP",
            "AD_GROUP_CRITERION"
          ]
        },
        "cpvBidMicros": {
          "type": "string",
          "format": "int64",
          "description": "The CPV (cost-per-view) bid."
        },
        "audienceSetting": {
          "description": "Immutable. Setting for audience related features.",
          "$ref": "GoogleAdsSearchads360V23Resources_AdGroup_AudienceSetting"
        },
        "targetingSetting": {
          "description": "Setting for targeting related features.",
          "$ref": "GoogleAdsSearchads360V23Common__TargetingSetting"
        },
        "id": {
          "type": "string",
          "format": "int64",
          "description": "Output only. The ID of the ad group.",
          "readOnly": true
        },
        "engineStatus": {
          "description": "Output only. The Engine Status for ad group.",
          "enumDeprecated": [
            false,
            false,
            true,
            false,
            false,
            false,
            false,
            false,
            false,
            false,
            false
          ],
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Deprecated. Do not use.",
            "No ads are running for this ad group, because the ad group's end date has passed.",
            "The ad group has been deleted.",
            "No ads are running for this ad group because the associated ad group is still in draft form.",
            "The ad group has been paused.",
            "The ad group is active and currently serving ads.",
            "The ad group has been submitted (Microsoft Bing Ads legacy status).",
            "No ads are running for this ad group, because the campaign has been paused.",
            "No ads are running for this ad group, because the account has been paused."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AD_GROUP_ELIGIBLE",
            "AD_GROUP_EXPIRED",
            "AD_GROUP_REMOVED",
            "AD_GROUP_DRAFT",
            "AD_GROUP_PAUSED",
            "AD_GROUP_SERVING",
            "AD_GROUP_SUBMITTED",
            "CAMPAIGN_PAUSED",
            "ACCOUNT_PAUSED"
          ],
          "readOnly": true
        },
        "primaryStatus": {
          "description": "Output only. Provides aggregated view into why an ad group is not serving or not serving optimally.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The ad group is eligible to serve.",
            "The ad group is paused.",
            "The ad group is removed.",
            "The ad group may serve in the future.",
            "The ad group is not eligible to serve.",
            "The ad group has limited servability."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ELIGIBLE",
            "PAUSED",
            "REMOVED",
            "PENDING",
            "NOT_ELIGIBLE",
            "LIMITED"
          ],
          "readOnly": true
        },
        "campaign": {
          "type": "string",
          "description": "Immutable. The campaign to which the ad group belongs."
        },
        "cpcBidMicros": {
          "description": "The maximum CPC (cost-per-click) bid. This field is used when the ad group's effective bidding strategy is Manual CPC. This field is not applicable and will be ignored if the ad group's campaign is using a portfolio bidding strategy.",
          "type": "string",
          "format": "int64"
        },
        "targetCpaMicros": {
          "description": "The target CPA (cost-per-acquisition). If the ad group's campaign bidding strategy is TargetCpa or MaximizeConversions (with its target_cpa field set), then this field overrides the target CPA specified in the campaign's bidding strategy. Otherwise, this value is ignored.",
          "type": "string",
          "format": "int64"
        },
        "cpmBidMicros": {
          "type": "string",
          "format": "int64",
          "description": "The maximum CPM (cost-per-thousand viewable impressions) bid."
        },
        "status": {
          "type": "string",
          "enumDescriptions": [
            "The status has not been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The ad group is enabled.",
            "The ad group is paused.",
            "The ad group is removed."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "PAUSED",
            "REMOVED"
          ],
          "description": "The status of the ad group."
        },
        "lastModifiedTime": {
          "readOnly": true,
          "description": "Output only. The datetime when this ad group was last modified. The datetime is in the customer's time zone and in \"yyyy-MM-dd HH:mm:ss.ssssss\" format.",
          "type": "string"
        },
        "finalUrlSuffix": {
          "description": "URL template for appending params to Final URL.",
          "type": "string"
        },
        "engineId": {
          "readOnly": true,
          "description": "Output only. ID of the ad group in the external engine account. This field is for non-Google Ads account only, for example, Yahoo Japan, Microsoft, Baidu etc. For Google Ads entity, use \"ad_group.id\" instead.",
          "type": "string"
        },
        "excludeDemographicExpansion": {
          "description": "When this value is true, demographics will be excluded from the types of targeting which are expanded when optimized_targeting_enabled is true. When optimized_targeting_enabled is false, this field is ignored. Default is false.",
          "type": "boolean"
        },
        "labels": {
          "readOnly": true,
          "description": "Output only. The resource names of labels attached to this ad group.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "trackingUrlTemplate": {
          "type": "string",
          "description": "The URL template for constructing a tracking URL."
        },
        "displayCustomBidDimension": {
          "description": "Lets advertisers specify a targeting dimension on which to place absolute bids. This is only applicable for campaigns that target only the display network and not search.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Keyword criteria, for example, 'mars cruise'. KEYWORD may be used as a custom bid dimension. Keywords are always a targeting dimension, so may not be set as a target \"ALL\" dimension with TargetRestriction.",
            "Audience criteria, which include user list, user interest, custom affinity, and custom in market.",
            "Topic criteria for targeting categories of content, for example, 'category::Animals\u003ePets' Used for Display and Video targeting.",
            "Criteria for targeting gender.",
            "Criteria for targeting age ranges.",
            "Placement criteria, which include websites like 'www.flowers4sale.com', as well as mobile applications, mobile app categories, YouTube videos, and YouTube channels.",
            "Criteria for parental status targeting.",
            "Criteria for income range targeting."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "KEYWORD",
            "AUDIENCE",
            "TOPIC",
            "GENDER",
            "AGE_RANGE",
            "PLACEMENT",
            "PARENTAL_STATUS",
            "INCOME_RANGE"
          ]
        },
        "effectiveTargetCpaMicros": {
          "type": "string",
          "format": "int64",
          "description": "Output only. The effective target CPA (cost-per-acquisition). This field is read-only.",
          "readOnly": true
        },
        "targetCpcMicros": {
          "type": "string",
          "format": "int64",
          "description": "Average amount in micros that the advertiser is willing to pay for every ad click. Overrides the target CPC configured at the campaign level."
        },
        "effectiveLabels": {
          "readOnly": true,
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Output only. The resource names of effective labels attached to this ad group. An effective label is a label inherited or directly assigned to this ad group."
        },
        "effectiveTargetRoasSource": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CAMPAIGN_BIDDING_STRATEGY",
            "AD_GROUP",
            "AD_GROUP_CRITERION"
          ],
          "description": "Output only. Source of the effective target ROAS. This field is read-only.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Effective bid or target is inherited from campaign bidding strategy.",
            "The bid or target is defined on the ad group.",
            "The bid or target is defined on the ad group criterion."
          ]
        },
        "effectiveTargetCpcSource": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Effective bid or target is inherited from campaign bidding strategy.",
            "The bid or target is defined on the ad group.",
            "The bid or target is defined on the ad group criterion."
          ],
          "description": "Output only. Source of the effective target CPC. This field is read-only.",
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CAMPAIGN_BIDDING_STRATEGY",
            "AD_GROUP",
            "AD_GROUP_CRITERION"
          ]
        },
        "excludedParentAssetSetTypes": {
          "description": "The asset set types that should be excluded from this ad group. Asset set links with these types will not be inherited by this ad group from the upper levels. Location group types (GMB_DYNAMIC_LOCATION_GROUP, CHAIN_DYNAMIC_LOCATION_GROUP, and STATIC_LOCATION_GROUP) are child types of LOCATION_SYNC. Therefore, if LOCATION_SYNC is set for this field, all location group asset sets are not allowed to be linked to this ad group, and all Location Extension (LE) and Affiliate Location Extensions (ALE) will not be served under this ad group. Only LOCATION_SYNC is currently supported.",
          "type": "array",
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "Page asset set.",
              "Dynamic education asset set.",
              "Google Merchant Center asset set.",
              "Dynamic real estate asset set.",
              "Dynamic custom asset set.",
              "Dynamic hotels and rentals asset set.",
              "Dynamic flights asset set.",
              "Dynamic travel asset set.",
              "Dynamic local asset set.",
              "Dynamic jobs asset set.",
              "Location sync level asset set.",
              "Business Profile location group asset set.",
              "Chain location group asset set which can be used for both owned locations and affiliate locations.",
              "Static location group asset set which can be used for both owned locations and affiliate locations.",
              "Hotel Property asset set which is used to link a hotel property feed to Performance Max for travel goals campaigns.",
              "Travel Feed asset set type. Can represent either a Hotel feed or a Things to Do (activities) feed."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "PAGE_FEED",
              "DYNAMIC_EDUCATION",
              "MERCHANT_CENTER_FEED",
              "DYNAMIC_REAL_ESTATE",
              "DYNAMIC_CUSTOM",
              "DYNAMIC_HOTELS_AND_RENTALS",
              "DYNAMIC_FLIGHTS",
              "DYNAMIC_TRAVEL",
              "DYNAMIC_LOCAL",
              "DYNAMIC_JOBS",
              "LOCATION_SYNC",
              "BUSINESS_PROFILE_DYNAMIC_LOCATION_GROUP",
              "CHAIN_DYNAMIC_LOCATION_GROUP",
              "STATIC_LOCATION_GROUP",
              "HOTEL_PROPERTY",
              "TRAVEL_FEED"
            ]
          }
        },
        "percentCpcBidMicros": {
          "type": "string",
          "format": "int64",
          "description": "The percent cpc bid amount, expressed as a fraction of the advertised price for some good or service. The valid range for the fraction is [0,1) and the value stored here is 1,000,000 * [fraction]."
        },
        "creationTime": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The timestamp when this ad_group was created. The timestamp is in the customer's time zone and in \"yyyy-MM-dd HH:mm:ss\" format."
        },
        "demandGenAdGroupSettings": {
          "description": "Settings for Demand Gen ad groups.",
          "$ref": "GoogleAdsSearchads360V23Resources_AdGroup_DemandGenAdGroupSettings"
        },
        "optimizedTargetingEnabled": {
          "description": "True if optimized targeting is enabled. Optimized Targeting is the replacement for Audience Expansion.",
          "type": "boolean"
        },
        "primaryStatusReasons": {
          "readOnly": true,
          "description": "Output only. Provides reasons for why an ad group is not serving or not serving optimally.",
          "type": "array",
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "The user-specified campaign status is removed. Contributes to AdGroupPrimaryStatus.NOT_ELIGIBLE.",
              "The user-specified campaign status is paused. Contributes to AdGroupPrimaryStatus.NOT_ELIGIBLE.",
              "The user-specified time for this campaign to start is in the future. Contributes to AdGroupPrimaryStatus.NOT_ELIGIBLE",
              "The user-specified time for this campaign to end has passed. Contributes to AdGroupPrimaryStatus.NOT_ELIGIBLE.",
              "The user-specified ad group status is paused. Contributes to AdGroupPrimaryStatus.PAUSED.",
              "The user-specified ad group status is removed. Contributes to AdGroupPrimaryStatus.REMOVED.",
              "The construction of this ad group is not yet complete. Contributes to AdGroupPrimaryStatus.NOT_ELIGIBLE.",
              "The user-specified keyword statuses in this ad group are all paused. Contributes to AdGroupPrimaryStatus.NOT_ELIGIBLE.",
              "No eligible keywords exist in this ad group. Contributes to AdGroupPrimaryStatus.NOT_ELIGIBLE.",
              "The user-specified ad group ads statuses in this ad group are all paused. Contributes to AdGroupPrimaryStatus.NOT_ELIGIBLE.",
              "No eligible ad group ads exist in this ad group. Contributes to AdGroupPrimaryStatus.NOT_ELIGIBLE.",
              "Policy status reason when at least one ad is disapproved. Contributes to multiple AdGroupPrimaryStatus.",
              "Policy status reason when at least one ad is limited by policy. Contributes to multiple AdGroupPrimaryStatus.",
              "Policy status reason when most ads are pending review. Contributes to AdGroupPrimaryStatus.PENDING.",
              "The AdGroup belongs to a Draft campaign. Contributes to AdGroupPrimaryStatus.NOT_ELIGIBLE.",
              "Ad group has been paused due to prolonged low activity in serving. Contributes to AdGroupPrimaryStatus.PAUSED."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "CAMPAIGN_REMOVED",
              "CAMPAIGN_PAUSED",
              "CAMPAIGN_PENDING",
              "CAMPAIGN_ENDED",
              "AD_GROUP_PAUSED",
              "AD_GROUP_REMOVED",
              "AD_GROUP_INCOMPLETE",
              "KEYWORDS_PAUSED",
              "NO_KEYWORDS",
              "AD_GROUP_ADS_PAUSED",
              "NO_AD_GROUP_ADS",
              "HAS_ADS_DISAPPROVED",
              "HAS_ADS_LIMITED_BY_POLICY",
              "MOST_ADS_UNDER_REVIEW",
              "CAMPAIGN_DRAFT",
              "AD_GROUP_PAUSED_DUE_TO_LOW_ACTIVITY"
            ]
          }
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateAdGroupCriterionCustomizersRequest": {
      "properties": {
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        },
        "operations": {
          "description": "Required. The list of operations to perform on individual ad group criterion customizers.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__AdGroupCriterionCustomizerOperation"
          }
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "responseContentType": {
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "type": "string",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ]
        }
      },
      "id": "GoogleAdsSearchads360V23Services__MutateAdGroupCriterionCustomizersRequest",
      "description": "Request message for AdGroupCriterionCustomizerService.MutateAdGroupCriterionCustomizers.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__ConversionCustomVariableOperation": {
      "id": "GoogleAdsSearchads360V23Services__ConversionCustomVariableOperation",
      "description": "A single operation (create, update) on a conversion custom variable.",
      "type": "object",
      "properties": {
        "updateMask": {
          "type": "string",
          "format": "google-fieldmask",
          "description": "FieldMask that determines which resource fields are modified in an update."
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new conversion custom variable.",
          "$ref": "GoogleAdsSearchads360V23Resources__ConversionCustomVariable"
        },
        "update": {
          "description": "Update operation: The conversion custom variable is expected to have a valid resource name.",
          "$ref": "GoogleAdsSearchads360V23Resources__ConversionCustomVariable"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__CreateOfflineUserDataJobRequest": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__CreateOfflineUserDataJobRequest",
      "description": "Request message for OfflineUserDataJobService.CreateOfflineUserDataJob.",
      "properties": {
        "enableMatchRateRangePreview": {
          "description": "If true, match rate range for the offline user data job is calculated and made available in the resource.",
          "type": "boolean"
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "job": {
          "description": "Required. The offline user data job to be created.",
          "$ref": "GoogleAdsSearchads360V23Resources__OfflineUserDataJob"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__SearchSearchAds360FieldsRequest": {
      "properties": {
        "pageSize": {
          "type": "integer",
          "format": "int32",
          "description": "Number of elements to retrieve in a single page. When too large a page is requested, the server may decide to further limit the number of returned resources."
        },
        "query": {
          "description": "Required. The query string.",
          "type": "string"
        },
        "pageToken": {
          "type": "string",
          "description": "Token of the page to retrieve. If not specified, the first page of results will be returned. Use the value obtained from `next_page_token` in the previous response in order to request the next page of results."
        }
      },
      "id": "GoogleAdsSearchads360V23Services__SearchSearchAds360FieldsRequest",
      "description": "Request message for SearchAds360FieldService.SearchSearchAds360Fields.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__UserListActionInfo": {
      "properties": {
        "conversionAction": {
          "type": "string",
          "description": "A conversion action that's not generated from remarketing."
        },
        "remarketingAction": {
          "description": "A remarketing action.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__UserListActionInfo",
      "description": "Represents an action type used for building remarketing user lists."
    },
    "GoogleAdsSearchads360V23Services__SearchSearchAds360Response": {
      "properties": {
        "nextPageToken": {
          "type": "string",
          "description": "Pagination token used to retrieve the next page of results. Pass the content of this string as the `page_token` attribute of the next request. `next_page_token` is not returned for the last page."
        },
        "fieldMask": {
          "type": "string",
          "format": "google-fieldmask",
          "description": "FieldMask that represents what fields were requested by the user."
        },
        "queryResourceConsumption": {
          "type": "string",
          "format": "int64",
          "description": "The amount of resources consumed to serve the query."
        },
        "conversionCustomDimensionHeaders": {
          "description": "The headers of the conversion custom dimensions in the results.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__ConversionCustomDimensionHeader"
          }
        },
        "conversionCustomMetricHeaders": {
          "description": "The headers of the conversion custom metrics in the results.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__ConversionCustomMetricHeader"
          }
        },
        "totalResultsCount": {
          "type": "string",
          "format": "int64",
          "description": "Total number of results that match the query ignoring the LIMIT clause."
        },
        "customColumnHeaders": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__CustomColumnHeader"
          },
          "description": "The headers of the custom columns in the results."
        },
        "rawEventConversionMetricHeaders": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__RawEventConversionMetricHeader"
          },
          "description": "The headers of the raw event conversion metrics in the results."
        },
        "metricAttributes": {
          "description": "The metric attributes of the metrics in the results.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MetricAttributes"
          }
        },
        "summaryRow": {
          "description": "Summary row that contains summary of metrics in results. Summary of metrics means aggregation of metrics across all results, here aggregation could be sum, average, rate, etc.",
          "$ref": "GoogleAdsSearchads360V23Services__SearchAds360Row"
        },
        "rawEventConversionDimensionHeaders": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__RawEventConversionDimensionHeader"
          },
          "description": "The headers of the raw event conversion dimensions in the results."
        },
        "results": {
          "description": "The list of rows that matched the query.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__SearchAds360Row"
          }
        }
      },
      "id": "GoogleAdsSearchads360V23Services__SearchSearchAds360Response",
      "description": "Response message for SearchAds360Service.Search.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources_CampaignPmaxCampaignSettings_BrandTargetingOverrides": {
      "properties": {
        "ignoreExclusionsForShoppingAds": {
          "type": "boolean",
          "description": "If true, brand exclusions are ignored for Shopping ads."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources_CampaignPmaxCampaignSettings_BrandTargetingOverrides",
      "description": "Overrides of brand targeting for various ad types."
    },
    "GoogleAdsSearchads360V23Resources__ManagedPlacementView": {
      "properties": {
        "resourceName": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The resource name of the Managed Placement view. Managed placement view resource names have the form: `customers/{customer_id}/managedPlacementViews/{ad_group_id}~{criterion_id}`"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__ManagedPlacementView",
      "description": "A managed placement view."
    },
    "GoogleAdsSearchads360V23Resources_Recommendation_CustomAudienceOptInRecommendation": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources_Recommendation_CustomAudienceOptInRecommendation",
      "description": "The Custom Audience Opt In recommendation.",
      "properties": {
        "keywords": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__KeywordInfo"
          },
          "description": "Output only. The list of keywords to use for custom audience creation.",
          "readOnly": true
        }
      }
    },
    "GoogleAdsSearchads360V23Common__MaximizeConversionValue": {
      "properties": {
        "targetRoasTolerancePercentMillis": {
          "description": "The percent of ROAS(return on advertising spend) degradation tolerance allowed to increase traffic diversity and conversion volume, specified in millis (for example, 10,000 = 10%). A value of 10,000 means that the advertiser can expect ROAS degradation of up to 10% of the specified target ROAS.",
          "type": "string",
          "format": "int64"
        },
        "targetRoas": {
          "type": "number",
          "format": "double",
          "description": "The target return on ad spend (ROAS) option. If set, the bid strategy will maximize revenue while averaging the target return on ad spend. If the target ROAS is high, the bid strategy may not be able to spend the full budget. If the target ROAS is not set, the bid strategy will aim to achieve the highest possible ROAS for the budget."
        },
        "cpcBidCeilingMicros": {
          "type": "string",
          "format": "int64",
          "description": "Maximum bid limit that can be set by the bid strategy. The limit applies to all keywords managed by the strategy. Mutable for portfolio bidding strategies only."
        },
        "cpcBidFloorMicros": {
          "description": "Minimum bid limit that can be set by the bid strategy. The limit applies to all keywords managed by the strategy. Mutable for portfolio bidding strategies only.",
          "type": "string",
          "format": "int64"
        }
      },
      "id": "GoogleAdsSearchads360V23Common__MaximizeConversionValue",
      "description": "An automated bidding strategy to help get the most conversion value for your campaigns while spending your budget.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__GraduateExperimentRequest": {
      "id": "GoogleAdsSearchads360V23Services__GraduateExperimentRequest",
      "description": "Request message for ExperimentService.GraduateExperiment.",
      "type": "object",
      "properties": {
        "campaignBudgetMappings": {
          "description": "Required. List of campaign budget mappings for graduation. Each campaign that appears here will graduate, and will be assigned a new budget that is paired with it in the mapping. The maximum size is one.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__CampaignBudgetMapping"
          }
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__TargetRestriction": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__TargetRestriction",
      "description": "The list of per-targeting-dimension targeting settings.",
      "properties": {
        "bidOnly": {
          "description": "Indicates whether to restrict your ads to show only for the criteria you have selected for this targeting_dimension, or to target all values for this targeting_dimension and show ads based on your targeting in other TargetingDimensions. A value of `true` means that these criteria will only apply bid modifiers, and not affect targeting. A value of `false` means that these criteria will restrict targeting as well as applying bid modifiers.",
          "type": "boolean"
        },
        "targetingDimension": {
          "description": "The targeting dimension that these settings apply to.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Keyword criteria, for example, 'mars cruise'. KEYWORD may be used as a custom bid dimension. Keywords are always a targeting dimension, so may not be set as a target \"ALL\" dimension with TargetRestriction.",
            "Audience criteria, which include user list, user interest, custom affinity, and custom in market.",
            "Topic criteria for targeting categories of content, for example, 'category::Animals\u003ePets' Used for Display and Video targeting.",
            "Criteria for targeting gender.",
            "Criteria for targeting age ranges.",
            "Placement criteria, which include websites like 'www.flowers4sale.com', as well as mobile applications, mobile app categories, YouTube videos, and YouTube channels.",
            "Criteria for parental status targeting.",
            "Criteria for income range targeting."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "KEYWORD",
            "AUDIENCE",
            "TOPIC",
            "GENDER",
            "AGE_RANGE",
            "PLACEMENT",
            "PARENTAL_STATUS",
            "INCOME_RANGE"
          ]
        }
      }
    },
    "GoogleAdsSearchads360V23Common__ActivityCountryInfo": {
      "properties": {
        "value": {
          "type": "string",
          "description": "String value of the activity country. The Geo Target Constant resource name."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__ActivityCountryInfo",
      "description": "The country where the travel activity is available."
    },
    "GoogleAdsSearchads360V23Services__MutateBillingSetupResponse": {
      "properties": {
        "result": {
          "description": "A result that identifies the resource affected by the mutate request.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateBillingSetupResult"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__MutateBillingSetupResponse",
      "description": "Response message for a billing setup operation.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateAdParametersRequest": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateAdParametersRequest",
      "description": "Request message for AdParameterService.MutateAdParameters",
      "properties": {
        "responseContentType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation."
        },
        "operations": {
          "description": "Required. The list of operations to perform on individual ad parameters.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__AdParameterOperation"
          }
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateCampaignCriteriaRequest": {
      "id": "GoogleAdsSearchads360V23Services__MutateCampaignCriteriaRequest",
      "description": "Request message for CampaignCriterionService.MutateCampaignCriteria.",
      "type": "object",
      "properties": {
        "responseContentType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation."
        },
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__CampaignCriterionOperation"
          },
          "description": "Required. The list of operations to perform on individual criteria."
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateExperimentResult": {
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        }
      },
      "id": "GoogleAdsSearchads360V23Services__MutateExperimentResult",
      "description": "The result for the campaign experiment mutate.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources_Recommendation_ImproveGoogleTagCoverageRecommendation": {
      "id": "GoogleAdsSearchads360V23Resources_Recommendation_ImproveGoogleTagCoverageRecommendation",
      "description": "Recommendation to deploy Google Tag on more pages.",
      "type": "object",
      "properties": {}
    },
    "GoogleAdsSearchads360V23Services__ListPlannableUserListsRequest": {
      "properties": {
        "customerId": {
          "description": "Required. The ID of the customer.",
          "type": "string"
        },
        "customerReachGroup": {
          "type": "string",
          "description": "The name of the customer being planned for. This is a user-defined value."
        },
        "reachApplicationInfo": {
          "description": "Optional. Additional information on the application issuing the request.",
          "$ref": "GoogleAdsSearchads360V23Common__AdditionalApplicationInfo"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__ListPlannableUserListsRequest",
      "description": "Request message for ReachPlanService.ListPlannableUserLists that lists the available user lists for a customer."
    },
    "GoogleAdsSearchads360V23Services__ApplyRecommendationOperation": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__ApplyRecommendationOperation",
      "description": "Information about the operation to apply a recommendation and any parameters to customize it.",
      "properties": {
        "setTargetCpa": {
          "description": "Parameters to use when applying set target CPA recommendation.",
          "$ref": "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_ForecastingSetTargetCpaParameters"
        },
        "forecastingSetTargetRoas": {
          "description": "Parameters to use when applying a forecasting set target ROAS recommendation.",
          "$ref": "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_ForecastingSetTargetRoasParameters"
        },
        "raiseTargetCpa": {
          "description": "Parameters to use when applying raise Target CPA recommendation.",
          "$ref": "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_RaiseTargetCpaParameters"
        },
        "sitelinkExtension": {
          "description": "Parameters to use when applying sitelink recommendation.",
          "$ref": "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_SitelinkExtensionParameters"
        },
        "callAsset": {
          "description": "Parameters to use when applying call asset recommendation.",
          "$ref": "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_CallAssetParameters"
        },
        "calloutExtension": {
          "description": "Parameters to use when applying callout extension recommendation.",
          "$ref": "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_CalloutExtensionParameters"
        },
        "responsiveSearchAdAsset": {
          "description": "Parameters to use when applying a responsive search ad asset recommendation.",
          "$ref": "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_ResponsiveSearchAdAssetParameters"
        },
        "setTargetRoas": {
          "description": "Parameters to use when applying set target ROAS recommendation.",
          "$ref": "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_ForecastingSetTargetRoasParameters"
        },
        "forecastingSetTargetCpa": {
          "description": "Parameters to use when applying forecasting set target CPA recommendation.",
          "$ref": "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_ForecastingSetTargetCpaParameters"
        },
        "responsiveSearchAdImproveAdStrength": {
          "description": "Parameters to use when applying a responsive search ad improve ad strength recommendation.",
          "$ref": "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_ResponsiveSearchAdImproveAdStrengthParameters"
        },
        "targetCpaOptIn": {
          "description": "Optional parameters to use when applying target CPA opt-in recommendation.",
          "$ref": "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_TargetCpaOptInParameters"
        },
        "calloutAsset": {
          "description": "Parameters to use when applying callout asset recommendation.",
          "$ref": "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_CalloutAssetParameters"
        },
        "targetRoasOptIn": {
          "description": "Optional parameters to use when applying target ROAS opt-in recommendation.",
          "$ref": "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_TargetRoasOptInParameters"
        },
        "callExtension": {
          "description": "Parameters to use when applying call extension recommendation.",
          "$ref": "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_CallExtensionParameters"
        },
        "keyword": {
          "description": "Optional parameters to use when applying keyword recommendation.",
          "$ref": "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_KeywordParameters"
        },
        "campaignBudget": {
          "description": "Optional parameters to use when applying a campaign budget recommendation.",
          "$ref": "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_CampaignBudgetParameters"
        },
        "responsiveSearchAd": {
          "description": "Parameters to use when applying a responsive search ad recommendation.",
          "$ref": "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_ResponsiveSearchAdParameters"
        },
        "leadFormAsset": {
          "description": "Parameters to use when applying lead form asset recommendation.",
          "$ref": "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_LeadFormAssetParameters"
        },
        "moveUnusedBudget": {
          "description": "Parameters to use when applying move unused budget recommendation.",
          "$ref": "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_MoveUnusedBudgetParameters"
        },
        "useBroadMatchKeyword": {
          "description": "Parameters to use when applying a use broad match keyword recommendation.",
          "$ref": "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_UseBroadMatchKeywordParameters"
        },
        "lowerTargetRoas": {
          "description": "Parameters to use when applying lower Target ROAS recommendation.",
          "$ref": "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_LowerTargetRoasParameters"
        },
        "textAd": {
          "description": "Optional parameters to use when applying a text ad recommendation.",
          "$ref": "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_TextAdParameters"
        },
        "resourceName": {
          "type": "string",
          "description": "The resource name of the recommendation to apply."
        },
        "sitelinkAsset": {
          "description": "Parameters to use when applying sitelink asset recommendation.",
          "$ref": "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_SitelinkAssetParameters"
        },
        "raiseTargetCpaBidTooLow": {
          "description": "Parameters to use when applying a raise target CPA bid too low recommendation. The apply is asynchronous and can take minutes depending on the number of ad groups there is in the related campaign.",
          "$ref": "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_RaiseTargetCpaBidTooLowParameters"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__HotelReconciliation": {
      "properties": {
        "hotelCenterId": {
          "description": "Output only. Identifier for the Hotel Center account which provides the rates for the Hotel campaign.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the hotel reconciliation. Hotel reconciliation resource names have the form: `customers/{customer_id}/hotelReconciliations/{commission_id}`"
        },
        "orderId": {
          "type": "string",
          "description": "Output only. The order ID is the identifier for this booking as provided in the 'transaction_id' parameter of the conversion tracking tag.",
          "readOnly": true
        },
        "campaign": {
          "description": "Output only. The resource name for the Campaign associated with the conversion.",
          "type": "string",
          "readOnly": true
        },
        "reconciledValueMicros": {
          "readOnly": true,
          "description": "Required. Output only. Reconciled value is the final value of a booking as paid by the guest. If original booking value changes for any reason, such as itinerary changes or room upsells, the reconciled value should be the full final amount collected. If a booking is canceled, the reconciled value should include the value of any cancellation fees or non-refundable nights charged. Value is in millionths of the base unit currency. For example, $12.35 would be represented as 12350000. Currency unit is in the default customer currency.",
          "type": "string",
          "format": "int64"
        },
        "checkInDate": {
          "readOnly": true,
          "description": "Output only. Check-in date recorded when the booking is made. If the check-in date is modified at reconciliation, the revised date will then take the place of the original date in this column. Format is YYYY-MM-DD.",
          "type": "string"
        },
        "hotelId": {
          "description": "Output only. Unique identifier for the booked property, as provided in the Hotel Center feed. The hotel ID comes from the 'ID' parameter of the conversion tracking tag.",
          "type": "string",
          "readOnly": true
        },
        "commissionId": {
          "readOnly": true,
          "description": "Required. Output only. The commission ID is Google's ID for this booking. Every booking event is assigned a Commission ID to help you match it to a guest stay.",
          "type": "string"
        },
        "status": {
          "description": "Required. Output only. Current status of a booking with regards to reconciliation and billing. Bookings should be reconciled within 45 days after the check-out date. Any booking not reconciled within 45 days will be billed at its original value.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Bookings are for a future date, or a stay is underway but the check-out date hasn't passed. An active reservation can't be reconciled.",
            "Check-out has already taken place, or the booked dates have passed without cancellation. Bookings that are not reconciled within 45 days of the check-out date are billed based on the original booking price.",
            "These bookings have been reconciled. Reconciled bookings are billed 45 days after the check-out date.",
            "This booking was marked as canceled. Canceled stays with a value greater than zero (due to minimum stay rules or cancellation fees) are billed 45 days after the check-out date."
          ],
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "RESERVATION_ENABLED",
            "RECONCILIATION_NEEDED",
            "RECONCILED",
            "CANCELED"
          ]
        },
        "billed": {
          "description": "Output only. Whether a given booking has been billed. Once billed, a booking can't be modified.",
          "type": "boolean",
          "readOnly": true
        },
        "checkOutDate": {
          "readOnly": true,
          "description": "Output only. Check-out date recorded when the booking is made. If the check-in date is modified at reconciliation, the revised date will then take the place of the original date in this column. Format is YYYY-MM-DD.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__HotelReconciliation",
      "description": "A hotel reconciliation. It contains conversion information from Hotel bookings to reconcile with advertiser records. These rows may be updated or canceled before billing through Bulk Uploads."
    },
    "GoogleAdsSearchads360V23Services__CustomerLabelOperation": {
      "properties": {
        "create": {
          "description": "Create operation: No resource name is expected for the new customer-label relationship.",
          "$ref": "GoogleAdsSearchads360V23Resources__CustomerLabel"
        },
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the customer-label relationship being removed, in this format: `customers/{customer_id}/customerLabels/{label_id}`"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__CustomerLabelOperation",
      "description": "A single operation (create, remove) on a customer-label relationship.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateAdGroupCriterionResult": {
      "properties": {
        "adGroupCriterion": {
          "description": "The mutated ad group criterion with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsSearchads360V23Resources__AdGroupCriterion"
        },
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        }
      },
      "id": "GoogleAdsSearchads360V23Services__MutateAdGroupCriterionResult",
      "description": "The result for the criterion mutate.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__PercentCpcBidSimulationPoint": {
      "id": "GoogleAdsSearchads360V23Common__PercentCpcBidSimulationPoint",
      "description": "Projected metrics for a specific percent CPC amount. Only Hotel advertising channel type supports this field.",
      "type": "object",
      "properties": {
        "percentCpcBidMicros": {
          "type": "string",
          "format": "int64",
          "description": "The simulated percent CPC upon which projected metrics are based. Percent CPC expressed as fraction of the advertised price for some good or service. The value stored here is 1,000,000 * [fraction]."
        },
        "clicks": {
          "description": "Projected number of clicks.",
          "type": "string",
          "format": "int64"
        },
        "biddableConversionsValue": {
          "type": "number",
          "format": "double",
          "description": "Projected total value of biddable conversions in local currency."
        },
        "impressions": {
          "description": "Projected number of impressions.",
          "type": "string",
          "format": "int64"
        },
        "topSlotImpressions": {
          "type": "string",
          "format": "int64",
          "description": "Projected number of top slot impressions."
        },
        "costMicros": {
          "description": "Projected cost in micros.",
          "type": "string",
          "format": "int64"
        },
        "biddableConversions": {
          "type": "number",
          "format": "double",
          "description": "Projected number of biddable conversions."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateCampaignSharedSetsResponse": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateCampaignSharedSetsResponse",
      "description": "Response message for a campaign shared set mutate.",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "description": "All results for the mutate.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateCampaignSharedSetResult"
          }
        }
      }
    },
    "GoogleAdsSearchads360V23Services__OfflineUserDataJobOperation": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__OfflineUserDataJobOperation",
      "description": "Operation to be made for the AddOfflineUserDataJobOperationsRequest.",
      "properties": {
        "create": {
          "description": "Add the provided data to the transaction. Data cannot be retrieved after being uploaded.",
          "$ref": "GoogleAdsSearchads360V23Common__UserData"
        },
        "removeAll": {
          "description": "Remove all previously provided data. This is only supported for Customer Match.",
          "type": "boolean"
        },
        "remove": {
          "description": "Remove the provided data from the transaction. Data cannot be retrieved after being uploaded.",
          "$ref": "GoogleAdsSearchads360V23Common__UserData"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__AdVideoAsset": {
      "properties": {
        "asset": {
          "description": "The Asset resource name of this video.",
          "type": "string"
        },
        "adVideoAssetInfo": {
          "description": "Contains info fields for this AdVideoAsset.",
          "$ref": "GoogleAdsSearchads360V23Common__AdVideoAssetInfo"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__AdVideoAsset",
      "description": "A video asset used inside an ad."
    },
    "GoogleAdsSearchads360V23Services__MutateBiddingDataExclusionsRequest": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateBiddingDataExclusionsRequest",
      "description": "Request message for BiddingDataExclusionService.MutateBiddingDataExclusions.",
      "properties": {
        "responseContentType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation."
        },
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__BiddingDataExclusionOperation"
          },
          "description": "Required. The list of operations to perform on individual data exclusions."
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__UserInterestSegment": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__UserInterestSegment",
      "description": "User interest segment.",
      "properties": {
        "userInterestCategory": {
          "description": "The user interest resource.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__AddOfflineUserDataJobOperationsRequest": {
      "id": "GoogleAdsSearchads360V23Services__AddOfflineUserDataJobOperationsRequest",
      "description": "Request message for OfflineUserDataJobService.AddOfflineUserDataJobOperations.",
      "type": "object",
      "properties": {
        "operations": {
          "description": "Required. The list of operations to be done.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__OfflineUserDataJobOperation"
          }
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "enablePartialFailure": {
          "description": "True to enable partial failure for the offline user data job.",
          "type": "boolean"
        },
        "enableWarnings": {
          "type": "boolean",
          "description": "True to enable warnings for the offline user data job. When enabled, a warning will not block the OfflineUserDataJobOperation, and will also return warning messages about malformed field values."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateCustomerRequest": {
      "properties": {
        "responseContentType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation."
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "operation": {
          "description": "Required. The operation to perform on the customer",
          "$ref": "GoogleAdsSearchads360V23Services__CustomerOperation"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateCustomerRequest",
      "description": "Request message for CustomerService.MutateCustomer."
    },
    "GoogleAdsSearchads360V23Resources__CustomerUserAccess": {
      "properties": {
        "emailAddress": {
          "type": "string",
          "description": "Output only. Email address of the user. Read only field",
          "readOnly": true
        },
        "inviterUserEmailAddress": {
          "description": "Output only. The email address of the inviter user. Read only field",
          "type": "string",
          "readOnly": true
        },
        "resourceName": {
          "description": "Immutable. Name of the resource. Resource names have the form: `customers/{customer_id}/customerUserAccesses/{user_id}`",
          "type": "string"
        },
        "accessRole": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Owns its account and can control the addition of other users.",
            "Can modify , but can't affect other users.",
            "Can view and account changes, but cannot make edits.",
            "Role for \\\"email only\\\" access. Represents an email recipient rather than a true User entity."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADMIN",
            "STANDARD",
            "READ_ONLY",
            "EMAIL_ONLY"
          ],
          "description": "Access role of the user."
        },
        "userId": {
          "description": "Output only. User id of the user with the customer access. Read only field",
          "type": "string",
          "format": "int64",
          "readOnly": true
        },
        "accessCreationDateTime": {
          "type": "string",
          "description": "Output only. The customer user access creation time. Read only field The format is \"YYYY-MM-DD HH:MM:SS\". Examples: \"2018-03-05 09:15:00\" or \"2018-02-01 14:34:30\"",
          "readOnly": true
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__CustomerUserAccess",
      "description": "Represents the permission of a single user onto a single customer."
    },
    "GoogleAdsSearchads360V23Services__MutateCampaignBidModifiersResponse": {
      "id": "GoogleAdsSearchads360V23Services__MutateCampaignBidModifiersResponse",
      "description": "Response message for campaign bid modifiers mutate.",
      "type": "object",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "description": "All results for the mutate.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateCampaignBidModifierResult"
          }
        }
      }
    },
    "GoogleAdsSearchads360V0Errors_ErrorLocation_FieldPathElement": {
      "properties": {
        "fieldName": {
          "description": "The name of a field or a oneof",
          "type": "string"
        },
        "index": {
          "type": "integer",
          "format": "int32",
          "description": "If field_name is a repeated field, this is the element that failed"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V0Errors_ErrorLocation_FieldPathElement",
      "description": "A part of a field path."
    },
    "GoogleAdsSearchads360V23Services__MutateBillingSetupResult": {
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateBillingSetupResult",
      "description": "Result for a single billing setup mutate."
    },
    "GoogleAdsSearchads360V23Services__GenerateConversionRatesResponse": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__GenerateConversionRatesResponse",
      "description": "Response message for ReachPlanService.GenerateConversionRates, containing conversion rate suggestions for supported plannable products.",
      "properties": {
        "conversionRateSuggestions": {
          "description": "A list containing conversion rate suggestions. Each repeated element will have an associated product code. Multiple suggestions may share the same product code.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__ConversionRateSuggestion"
          }
        }
      }
    },
    "GoogleAdsSearchads360V23Resources_Campaign_GeoTargetTypeSetting": {
      "id": "GoogleAdsSearchads360V23Resources_Campaign_GeoTargetTypeSetting",
      "description": "Represents a collection of settings related to ads geotargeting.",
      "type": "object",
      "properties": {
        "positiveGeoTargetType": {
          "description": "The setting used for positive geotargeting in this particular campaign.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Specifies that an ad is triggered if the user is in, or shows interest in, advertiser's targeted locations.",
            "Specifies that an ad is triggered if the user searches for advertiser's targeted locations. This can only be used with Search and standard Shopping campaigns.",
            "Specifies that an ad is triggered if the user is in or regularly in advertiser's targeted locations."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PRESENCE_OR_INTEREST",
            "SEARCH_INTEREST",
            "PRESENCE"
          ]
        },
        "negativeGeoTargetType": {
          "description": "The setting used for negative geotargeting in this particular campaign.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Specifies that a user is excluded from seeing the ad if they are in, or show interest in, advertiser's excluded locations.",
            "Specifies that a user is excluded from seeing the ad if they are in advertiser's excluded locations."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PRESENCE_OR_INTEREST",
            "PRESENCE"
          ]
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__AdGroupEffectiveLabel": {
      "id": "GoogleAdsSearchads360V23Resources__AdGroupEffectiveLabel",
      "description": "A relationship between an ad group and an effective label. An effective label is a label inherited or directly assigned to this ad group.",
      "type": "object",
      "properties": {
        "adGroup": {
          "description": "Immutable. The ad group to which the effective label is attached.",
          "type": "string"
        },
        "label": {
          "description": "Immutable. The effective label assigned to the ad group.",
          "type": "string"
        },
        "ownerCustomerId": {
          "description": "Output only. The ID of the Customer which owns the effective label.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        },
        "resourceName": {
          "description": "Immutable. The resource name of the ad group effective label. Ad group effective label resource names have the form: `customers/{owner_customer_id}/adGroupEffectiveLabels/{ad_group_id}~{label_id}`",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__OfflineConversionUploadConversionActionSummary": {
      "properties": {
        "pendingEventCount": {
          "readOnly": true,
          "description": "Output only. Total count of pending uploaded events.",
          "type": "string",
          "format": "int64"
        },
        "alerts": {
          "readOnly": true,
          "description": "Output only. Details for each error code. Alerts are generated from most recent calendar day with upload stats.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Resources__OfflineConversionAlert"
          }
        },
        "conversionActionId": {
          "readOnly": true,
          "description": "Output only. Conversion action id.",
          "type": "string",
          "format": "int64"
        },
        "totalEventCount": {
          "readOnly": true,
          "description": "Output only. Total count of uploaded events.",
          "type": "string",
          "format": "int64"
        },
        "resourceName": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The resource name of the offline conversion upload summary at conversion action level. Offline conversion upload conversion action summary resource names have the form: `customers/{customer_id}/offlineConversionUploadConversionActionSummaries/{conversion_action_id}~{client}`"
        },
        "lastUploadDateTime": {
          "type": "string",
          "description": "Output only. Date for the latest upload batch. The format is \"yyyy-mm-dd hh:mm:ss\", and it's in the time zone of the Google Ads account.",
          "readOnly": true
        },
        "dailySummaries": {
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Resources__OfflineConversionSummary"
          },
          "description": "Output only. Summary of history stats by last N days."
        },
        "client": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Google Ads API.",
            "Google Ads web client, which could include multiple sources like Ads UI, SFTP, etc.",
            "Connection platform."
          ],
          "description": "Output only. Client type of the upload event.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "GOOGLE_ADS_API",
            "GOOGLE_ADS_WEB_CLIENT",
            "ADS_DATA_CONNECTOR"
          ],
          "readOnly": true
        },
        "conversionActionName": {
          "description": "Output only. The name of the conversion action.",
          "type": "string",
          "readOnly": true
        },
        "status": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "EXCELLENT",
            "GOOD",
            "NEEDS_ATTENTION",
            "NO_RECENT_UPLOAD"
          ],
          "description": "Output only. Overall status for offline conversion upload conversion action summary. Status is generated from most recent calendar day with upload stats.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Your offline data ingestion setup is active and optimal for downstream processing.",
            "Your offline ingestion setup is active, but there are further improvements you could make. See alerts.",
            "Your offline ingestion setup is active, but there are errors that require your attention. See alerts.",
            "Your offline ingestion setup has not received data in the last 28 days, there may be something wrong."
          ]
        },
        "jobSummaries": {
          "description": "Output only. Summary of history stats by last N jobs.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Resources__OfflineConversionSummary"
          },
          "readOnly": true
        },
        "successfulEventCount": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. Total count of successful uploaded events."
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__OfflineConversionUploadConversionActionSummary",
      "description": "Offline conversion upload summary at conversion action level.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateAdGroupAssetsRequest": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateAdGroupAssetsRequest",
      "description": "Request message for AdGroupAssetService.MutateAdGroupAssets.",
      "properties": {
        "operations": {
          "description": "Required. The list of operations to perform on individual ad group assets.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__AdGroupAssetOperation"
          }
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        },
        "responseContentType": {
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "type": "string",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ]
        }
      }
    },
    "GoogleAdsSearchads360V23Common__CpvBidSimulationPointList": {
      "properties": {
        "points": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__CpvBidSimulationPoint"
          },
          "description": "Projected metrics for a series of CPV bid amounts."
        }
      },
      "id": "GoogleAdsSearchads360V23Common__CpvBidSimulationPointList",
      "description": "A container for simulation points for simulations of type CPV_BID.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__GenerateBenchmarksMetricsRequest": {
      "id": "GoogleAdsSearchads360V23Services__GenerateBenchmarksMetricsRequest",
      "description": "Request message for BenchmarksService.GenerateBenchmarksMetrics.",
      "type": "object",
      "properties": {
        "location": {
          "description": "Required. The location to generate benchmarks metrics for.",
          "$ref": "GoogleAdsSearchads360V23Common__LocationInfo"
        },
        "currencyCode": {
          "description": "Optional. The three-character ISO 4217 currency code. If unspecified, the default currency for monetary values is USD.",
          "type": "string"
        },
        "productFilter": {
          "description": "Required. The products to aggregate metrics over. Product filter settings support a list of product IDs or a list of marketing objectives.",
          "$ref": "GoogleAdsSearchads360V23Services__ProductFilter"
        },
        "applicationInfo": {
          "description": "Additional information on the application issuing the request.",
          "$ref": "GoogleAdsSearchads360V23Common__AdditionalApplicationInfo"
        },
        "dateRange": {
          "description": "The date range to aggregate metrics over. If unset, data will be returned for the most recent quarter for which data is available. Dates can be retrieved using BenchmarksService.ListBenchmarksAvailableDates.",
          "$ref": "GoogleAdsSearchads360V23Common__DateRange"
        },
        "customerBenchmarksGroup": {
          "type": "string",
          "description": "The name of the customer being planned for. This is a user-defined value."
        },
        "benchmarksSource": {
          "description": "Required. The source used to generate benchmarks metrics for.",
          "$ref": "GoogleAdsSearchads360V23Services__BenchmarksSource"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateCampaignAssetSetResult": {
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        },
        "campaignAssetSet": {
          "description": "The mutated campaign asset set with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsSearchads360V23Resources__CampaignAssetSet"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateCampaignAssetSetResult",
      "description": "The result for the campaign asset set mutate."
    },
    "GoogleAdsSearchads360V23Resources__BusinessRegistrationCheckVerificationArtifact": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__BusinessRegistrationCheckVerificationArtifact",
      "description": "specific to a local services business registration check.",
      "properties": {
        "checkId": {
          "readOnly": true,
          "description": "Output only. The id of the check, such as vat_tax_id, representing \"VAT Tax ID\" requirement.",
          "type": "string"
        },
        "rejectionReason": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Business name doesn't match business name for the Local Services Ad.",
            "Business details mismatch.",
            "Business registration ID not found.",
            "Uploaded document not clear, blurry, etc.",
            "Uploaded document has expired.",
            "Document revoked or annuled.",
            "Document type mismatch.",
            "Uploaded document could not be verified as legitimate.",
            "The business registration process could not be completed due to an issue. Contact https://support.google.com/localservices to learn more."
          ],
          "description": "Output only. Registration document rejection reason.",
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BUSINESS_NAME_MISMATCH",
            "BUSINESS_DETAILS_MISMATCH",
            "ID_NOT_FOUND",
            "POOR_DOCUMENT_IMAGE_QUALITY",
            "DOCUMENT_EXPIRED",
            "DOCUMENT_INVALID",
            "DOCUMENT_TYPE_MISMATCH",
            "DOCUMENT_UNVERIFIABLE",
            "OTHER"
          ]
        },
        "registrationNumber": {
          "readOnly": true,
          "description": "Output only. Message storing government issued number for the business.",
          "$ref": "GoogleAdsSearchads360V23Resources__BusinessRegistrationNumber"
        },
        "registrationType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NUMBER",
            "DOCUMENT"
          ],
          "readOnly": true,
          "description": "Output only. The type of business registration check (number, document).",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Registration number check type.",
            "Registration document check type."
          ]
        },
        "registrationDocument": {
          "description": "Output only. Message storing document info for the business.",
          "$ref": "GoogleAdsSearchads360V23Resources__BusinessRegistrationDocument",
          "readOnly": true
        }
      }
    },
    "GoogleAdsSearchads360V23Common__BudgetSimulationPoint": {
      "properties": {
        "biddableConversions": {
          "type": "number",
          "format": "double",
          "description": "Projected number of biddable conversions."
        },
        "costMicros": {
          "type": "string",
          "format": "int64",
          "description": "Projected cost in micros."
        },
        "biddableConversionsValue": {
          "description": "Projected total value of biddable conversions.",
          "type": "number",
          "format": "double"
        },
        "clicks": {
          "type": "string",
          "format": "int64",
          "description": "Projected number of clicks."
        },
        "interactions": {
          "description": "Projected number of interactions. Only discovery advertising channel type supports this field.",
          "type": "string",
          "format": "int64"
        },
        "budgetAmountMicros": {
          "description": "The simulated budget upon which projected metrics are based.",
          "type": "string",
          "format": "int64"
        },
        "requiredCpcBidCeilingMicros": {
          "type": "string",
          "format": "int64",
          "description": "Projected required daily cpc bid ceiling that the advertiser must set to realize this simulation, in micros of the advertiser currency. Only campaigns with the Target Spend bidding strategy support this field."
        },
        "impressions": {
          "type": "string",
          "format": "int64",
          "description": "Projected number of impressions."
        },
        "topSlotImpressions": {
          "type": "string",
          "format": "int64",
          "description": "Projected number of top slot impressions. Only search advertising channel type supports this field."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__BudgetSimulationPoint",
      "description": "Projected metrics for a specific budget amount."
    },
    "GoogleAdsSearchads360V23Resources__RemarketingAction": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__RemarketingAction",
      "description": "A remarketing action. A snippet of JavaScript code that will collect the product id and the type of page people visited (product page, shopping cart page, purchase page, general site visit) on an advertiser's website.",
      "properties": {
        "resourceName": {
          "description": "Immutable. The resource name of the remarketing action. Remarketing action resource names have the form: `customers/{customer_id}/remarketingActions/{remarketing_action_id}`",
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "The name of the remarketing action. This field is required and should not be empty when creating new remarketing actions."
        },
        "id": {
          "description": "Output only. Id of the remarketing action.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        },
        "tagSnippets": {
          "description": "Output only. The snippets used for tracking remarketing actions.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__TagSnippet"
          },
          "readOnly": true
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__OperatingSystemVersionConstant": {
      "id": "GoogleAdsSearchads360V23Resources__OperatingSystemVersionConstant",
      "description": "A mobile operating system version or a range of versions, depending on `operator_type`. List of available mobile platforms at https://developers.google.com/google-ads/api/reference/data/codes-formats#mobile-platforms",
      "type": "object",
      "properties": {
        "name": {
          "description": "Output only. Name of the operating system.",
          "type": "string",
          "readOnly": true
        },
        "resourceName": {
          "readOnly": true,
          "description": "Output only. The resource name of the operating system version constant. Operating system version constant resource names have the form: `operatingSystemVersionConstants/{criterion_id}`",
          "type": "string"
        },
        "osMajorVersion": {
          "readOnly": true,
          "type": "integer",
          "format": "int32",
          "description": "Output only. The OS Major Version number."
        },
        "osMinorVersion": {
          "description": "Output only. The OS Minor Version number.",
          "type": "integer",
          "format": "int32",
          "readOnly": true
        },
        "operatorType": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "EQUALS_TO",
            "GREATER_THAN_EQUALS_TO"
          ],
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Equals to the specified version.",
            "Greater than or equals to the specified version."
          ],
          "description": "Output only. Determines whether this constant represents a single version or a range of versions."
        },
        "id": {
          "description": "Output only. The ID of the operating system version.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        }
      }
    },
    "GoogleAdsSearchads360V23Errors__PolicyViolationDetails": {
      "id": "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.",
      "type": "object",
      "properties": {
        "externalPolicyDescription": {
          "description": "Human readable description of policy violation.",
          "type": "string"
        },
        "externalPolicyName": {
          "description": "Human readable name of the policy.",
          "type": "string"
        },
        "key": {
          "description": "Unique identifier for this violation. If policy is exemptible, this key may be used to request exemption.",
          "$ref": "GoogleAdsSearchads360V23Common__PolicyViolationKey"
        },
        "isExemptible": {
          "description": "Whether user can file an exemption request for this violation.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__RemoveCampaignAutomaticallyCreatedAssetRequest": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__RemoveCampaignAutomaticallyCreatedAssetRequest",
      "description": "Request message for AutomaticallyCreatedAssetRemovalService.RemoveCampaignAutomaticallyCreatedAsset.",
      "properties": {
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__RemoveCampaignAutomaticallyCreatedAssetOperation"
          },
          "description": "Required. The list of operations."
        },
        "partialFailure": {
          "type": "boolean",
          "description": "Required. If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateKeywordPlanAdGroupsRequest": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateKeywordPlanAdGroupsRequest",
      "description": "Request message for KeywordPlanAdGroupService.MutateKeywordPlanAdGroups.",
      "properties": {
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__KeywordPlanAdGroupOperation"
          },
          "description": "Required. The list of operations to perform on individual Keyword Plan ad groups."
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__AssetSetOperation": {
      "properties": {
        "updateMask": {
          "type": "string",
          "format": "google-fieldmask",
          "description": "FieldMask that determines which resource fields are modified in an update."
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new asset set",
          "$ref": "GoogleAdsSearchads360V23Resources__AssetSet"
        },
        "update": {
          "description": "Update operation: The asset set is expected to have a valid resource name.",
          "$ref": "GoogleAdsSearchads360V23Resources__AssetSet"
        },
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed asset set is expected, in this format: `customers/{customer_id}/assetSets/{asset_set_id}`"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__AssetSetOperation",
      "description": "A single operation (create, remove) on an asset set."
    },
    "GoogleAdsSearchads360V23Services__MutateSmartCampaignSettingResult": {
      "id": "GoogleAdsSearchads360V23Services__MutateSmartCampaignSettingResult",
      "description": "The result for the Smart campaign setting mutate.",
      "type": "object",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        },
        "smartCampaignSetting": {
          "description": "The mutated Smart campaign setting with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsSearchads360V23Resources__SmartCampaignSetting"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__CampaignLifecycleGoal": {
      "properties": {
        "resourceName": {
          "description": "Immutable. The resource name of the customer lifecycle goal of a campaign. `customers/{customer_id}/campaignLifecycleGoal/{campaign_id}`",
          "type": "string"
        },
        "campaign": {
          "readOnly": true,
          "description": "Output only. The campaign where the goal is attached.",
          "type": "string"
        },
        "customerAcquisitionGoalSettings": {
          "description": "Output only. The customer acquisition goal settings for the campaign. The customer acquisition goal is described in this article: https://support.google.com/google-ads/answer/12080169",
          "$ref": "GoogleAdsSearchads360V23Resources__CustomerAcquisitionGoalSettings",
          "readOnly": true
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__CampaignLifecycleGoal",
      "description": "Campaign level customer lifecycle goal settings.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateRemarketingActionResult": {
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        }
      },
      "id": "GoogleAdsSearchads360V23Services__MutateRemarketingActionResult",
      "description": "The result for the remarketing action mutate.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__CustomizerAttributeOperation": {
      "properties": {
        "updateMask": {
          "type": "string",
          "format": "google-fieldmask",
          "description": "FieldMask that determines which resource fields are modified in an update."
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new customizer attribute",
          "$ref": "GoogleAdsSearchads360V23Resources__CustomizerAttribute"
        },
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed customizer attribute is expected, in this format: `customers/{customer_id}/customizerAttributes/{customizer_attribute_id}`"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__CustomizerAttributeOperation",
      "description": "A single operation (create, remove) on a customizer attribute.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources__ShoppingProduct": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__ShoppingProduct",
      "description": "A shopping product from Google Merchant Center that can be advertised by campaigns. The resource returns currently existing products from Google Merchant Center accounts linked with the customer. A campaign includes a product by specifying its merchant id (or, if available, the Multi Client Account id of the merchant) in the `ShoppingSetting`, and can limit the inclusion to products having a specified feed label. Standard Shopping campaigns can also limit the inclusion through a `campaign_criterion.listing_scope`. Queries to this resource specify a scope: * Account: - Filters on campaigns or ad groups are not specified. - All products from the linked Google Merchant Center accounts are returned. - Metrics and some fields (see the per-field documentation) are aggregated across all Shopping and Performance Max campaigns that include a product. * Campaign: - An equality filter on `campaign` is specified. Supported campaign types are Shopping, Performance Max, Demand Gen, Video, App. - Only products that are included by the specified campaign are returned. - Metrics and some fields (see the per-field documentation) are restricted to the specified campaign. - Only the following metrics are supported for Demand Gen, Video, App campaigns: impressions, clicks, ctr. * Ad group: - An equality filter on `ad_group` and `campaign` is specified. Supported campaign types are Shopping, Demand Gen, Video, App. - Only products that are included by the specified campaign are returned. - Metrics and some fields (see the per-field documentation) are restricted to the specified ad group. - Only the following metrics are supported for Demand Gen, Video, App campaigns: impressions, clicks, ctr. Note that segmentation by date segments is not permitted and will return UNSUPPORTED_DATE_SEGMENTATION error. On the other hand, filtering on date segments is allowed.",
      "properties": {
        "priceMicros": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. The price of the product in micros as provided by the merchant, in the currency specified in `currency_code` (e.g. $2.97 is reported as 2970000)."
        },
        "availability": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "IN_STOCK",
            "OUT_OF_STOCK",
            "PREORDER"
          ],
          "description": "Output only. The availability of the product as provided by the merchant.",
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "Used for return value only. Represents values unknown in this version.",
            "The product is in stock.",
            "The product is out of stock.",
            "The product can be preordered."
          ]
        },
        "resourceName": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The resource name of the shopping product. Shopping product resource names have the form: `customers/{customer_id}/shoppingProducts/{merchant_center_id}~{channel}~{language_code}~{feed_label}~{item_id}`"
        },
        "effectiveMaxCpcMicros": {
          "type": "string",
          "format": "int64",
          "description": "Output only. The effective maximum cost-per-click (effective max. CPC) of the product. This field is available only if the query specifies the campaign or ad group scope, and if the campaign uses manual bidding. The value is the highest bid set for the product in product groups across all enabled ad groups. It represents the most you're willing to pay for a click on the product. This field can take up to 24 hours to update.",
          "readOnly": true
        },
        "targetCountries": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Output only. Upper-case two-letter ISO 3166-1 code of the regions where the product is intended to be shown in ads.",
          "readOnly": true
        },
        "categoryLevel3": {
          "type": "string",
          "description": "Output only. The category level 3 of the product.",
          "readOnly": true
        },
        "productTypeLevel4": {
          "readOnly": true,
          "description": "Output only. The product type level 4 as provided by the merchant.",
          "type": "string"
        },
        "adGroup": {
          "type": "string",
          "description": "Output only. An ad group of a campaign that includes the product. This field is selectable only in the ad group scope, which requires an equality filter on `campaign` and `ad_group`.",
          "readOnly": true
        },
        "brand": {
          "readOnly": true,
          "description": "Output only. The brand of the product as provided by the merchant.",
          "type": "string"
        },
        "channel": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ONLINE",
            "LOCAL"
          ],
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The item is sold online.",
            "The item is sold in local stores."
          ],
          "description": "Output only. The product channel describing the locality of the product."
        },
        "merchantCenterId": {
          "type": "string",
          "format": "int64",
          "description": "Output only. The id of the merchant that owns the product.",
          "readOnly": true
        },
        "categoryLevel4": {
          "description": "Output only. The category level 4 of the product.",
          "type": "string",
          "readOnly": true
        },
        "customAttribute4": {
          "type": "string",
          "description": "Output only. The custom attribute 4 of the product as provided by the merchant.",
          "readOnly": true
        },
        "itemId": {
          "type": "string",
          "description": "Output only. The item id of the product as provided by the merchant.",
          "readOnly": true
        },
        "condition": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NEW",
            "REFURBISHED",
            "USED"
          ],
          "description": "Output only. The condition of the product as provided by the merchant.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The product condition is new.",
            "The product condition is refurbished.",
            "The product condition is used."
          ]
        },
        "categoryLevel1": {
          "type": "string",
          "description": "Output only. The category level 1 of the product.",
          "readOnly": true
        },
        "issues": {
          "readOnly": true,
          "description": "Output only. The list of issues affecting whether the product can show in ads. The value of this field is restricted to the scope specified in the query, see the documentation of the resource. This field can take up to 24 hours to update. This field is not supported for App campaigns.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Resources_ShoppingProduct_ProductIssue"
          }
        },
        "categoryLevel5": {
          "type": "string",
          "description": "Output only. The category level 5 of the product.",
          "readOnly": true
        },
        "productTypeLevel2": {
          "description": "Output only. The product type level 2 as provided by the merchant.",
          "type": "string",
          "readOnly": true
        },
        "currencyCode": {
          "type": "string",
          "description": "Output only. The currency code as provided by the merchant, in ISO 4217 format.",
          "readOnly": true
        },
        "customAttribute0": {
          "readOnly": true,
          "description": "Output only. The custom attribute 0 of the product as provided by the merchant.",
          "type": "string"
        },
        "title": {
          "readOnly": true,
          "description": "Output only. The title of the product as provided by the merchant.",
          "type": "string"
        },
        "channelExclusivity": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The item is sold through one channel only, either local stores or online as indicated by its ProductChannel.",
            "The item is matched to its online or local stores counterpart, indicating it is available for purchase in both ShoppingProductChannels."
          ],
          "description": "Output only. The channel exclusivity of the product as provided by the merchant.",
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SINGLE_CHANNEL",
            "MULTI_CHANNEL"
          ]
        },
        "categoryLevel2": {
          "readOnly": true,
          "description": "Output only. The category level 2 of the product.",
          "type": "string"
        },
        "productImageUri": {
          "readOnly": true,
          "description": "Output only. The URI of the product image as provided by the merchant.",
          "type": "string"
        },
        "customAttribute1": {
          "description": "Output only. The custom attribute 1 of the product as provided by the merchant.",
          "type": "string",
          "readOnly": true
        },
        "customAttribute3": {
          "description": "Output only. The custom attribute 3 of the product as provided by the merchant.",
          "type": "string",
          "readOnly": true
        },
        "multiClientAccountId": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. The id of the Multi Client Account of the merchant, if present."
        },
        "languageCode": {
          "type": "string",
          "description": "Output only. The language code as provided by the merchant, in BCP 47 format.",
          "readOnly": true
        },
        "customAttribute2": {
          "description": "Output only. The custom attribute 2 of the product as provided by the merchant.",
          "type": "string",
          "readOnly": true
        },
        "productTypeLevel1": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The product type level 1 as provided by the merchant."
        },
        "productTypeLevel5": {
          "type": "string",
          "description": "Output only. The product type level 5 as provided by the merchant.",
          "readOnly": true
        },
        "campaign": {
          "description": "Output only. A campaign that includes the product. This field is selectable only in the campaign scope, which requires an equality filter on `campaign`.",
          "type": "string",
          "readOnly": true
        },
        "feedLabel": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The product feed label as provided by the merchant."
        },
        "status": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NOT_ELIGIBLE",
            "ELIGIBLE_LIMITED",
            "ELIGIBLE"
          ],
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents values unknown in this version.",
            "The product cannot show in ads.",
            "The product can show in ads but may be limited in where and when it can show due to identified issues.",
            "The product can show in ads."
          ],
          "description": "Output only. The status that indicates whether the product can show in ads. The value of this field is restricted to the scope specified in the query, see the documentation of the resource. This field can take up to 24 hours to update. This field is not supported for App campaigns."
        },
        "productTypeLevel3": {
          "readOnly": true,
          "description": "Output only. The product type level 3 as provided by the merchant.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateAdGroupsRequest": {
      "properties": {
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__AdGroupOperation"
          },
          "description": "Required. The list of operations to perform on individual ad groups."
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        },
        "responseContentType": {
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
          "type": "string",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ]
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateAdGroupsRequest",
      "description": "Request message for AdGroupService.MutateAdGroups."
    },
    "GoogleAdsSearchads360V23Resources__CustomerClient": {
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the customer client. CustomerClient resource names have the form: `customers/{customer_id}/customerClients/{client_customer_id}`",
          "readOnly": true
        },
        "hidden": {
          "description": "Output only. Specifies whether this is a hidden account. Read only.",
          "type": "boolean",
          "readOnly": true
        },
        "testAccount": {
          "description": "Output only. Identifies if the client is a test account. Read only.",
          "type": "boolean",
          "readOnly": true
        },
        "descriptiveName": {
          "readOnly": true,
          "description": "Output only. Descriptive name for the client. Read only.",
          "type": "string"
        },
        "id": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. The ID of the client customer. Read only."
        },
        "status": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Indicates an active account able to serve ads.",
            "Indicates a canceled account unable to serve ads. Can be reactivated by an admin user.",
            "Indicates a suspended account unable to serve ads. May only be activated by Google support.",
            "Indicates a closed account unable to serve ads. Test account will also have CLOSED status. Status is permanent and may not be reopened."
          ],
          "description": "Output only. The status of the client customer. Read only.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "CANCELED",
            "SUSPENDED",
            "CLOSED"
          ],
          "readOnly": true
        },
        "appliedLabels": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Output only. The resource names of the labels owned by the requesting customer that are applied to the client customer. Label resource names have the form: `customers/{customer_id}/labels/{label_id}`",
          "readOnly": true
        },
        "level": {
          "readOnly": true,
          "description": "Output only. Distance between given customer and client. For self link, the level value will be 0. Read only.",
          "type": "string",
          "format": "int64"
        },
        "timeZone": {
          "type": "string",
          "description": "Output only. Common Locale Data Repository (CLDR) string representation of the time zone of the client, for example, America/Los_Angeles. Read only.",
          "readOnly": true
        },
        "currencyCode": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Currency code (for example, 'USD', 'EUR') for the client. Read only."
        },
        "clientCustomer": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The resource name of the client-customer which is linked to the given customer. Read only."
        },
        "manager": {
          "description": "Output only. Identifies if the client is a manager. Read only.",
          "type": "boolean",
          "readOnly": true
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__CustomerClient",
      "description": "A link between the given customer and a client customer. CustomerClients only exist for manager customers. All direct and indirect client customers are included, as well as the manager itself.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources__SmartCampaignSetting": {
      "id": "GoogleAdsSearchads360V23Resources__SmartCampaignSetting",
      "description": "Settings for configuring Smart campaigns.",
      "type": "object",
      "properties": {
        "phoneNumber": {
          "description": "Phone number and country code.",
          "$ref": "GoogleAdsSearchads360V23Resources_SmartCampaignSetting_PhoneNumber"
        },
        "adOptimizedBusinessProfileSetting": {
          "description": "Settings for configuring a business profile optimized for ads as this campaign's landing page. This campaign must be linked to a business profile to use this option. For more information on this feature, consult https://support.google.com/google-ads/answer/9827068.",
          "$ref": "GoogleAdsSearchads360V23Resources_SmartCampaignSetting_AdOptimizedBusinessProfileSetting"
        },
        "businessName": {
          "type": "string",
          "description": "The name of the business."
        },
        "advertisingLanguageCode": {
          "type": "string",
          "description": "The language code to advertise in from the set of [supported language codes] (https://developers.google.com/google-ads/api/reference/data/codes-formats#languages)."
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the Smart campaign setting. Smart campaign setting resource names have the form: `customers/{customer_id}/smartCampaignSettings/{campaign_id}`"
        },
        "campaign": {
          "description": "Output only. The campaign to which these settings apply.",
          "type": "string",
          "readOnly": true
        },
        "finalUrl": {
          "description": "The user-provided landing page URL for this Campaign.",
          "type": "string"
        },
        "businessProfileLocation": {
          "description": "The resource name of a Business Profile location. Business Profile location resource names can be fetched through the Business Profile API and adhere to the following format: `locations/{locationId}`. See the [Business Profile API] (https://developers.google.com/my-business/reference/businessinformation/rest/v1/accounts.locations) for additional details.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__CampaignBidModifier": {
      "properties": {
        "criterionId": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. The ID of the criterion to bid modify. This field is ignored for mutates."
        },
        "bidModifier": {
          "type": "number",
          "format": "double",
          "description": "The modifier for the bid when the criterion matches."
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the campaign bid modifier. Campaign bid modifier resource names have the form: `customers/{customer_id}/campaignBidModifiers/{campaign_id}~{criterion_id}`"
        },
        "campaign": {
          "type": "string",
          "description": "Output only. The campaign to which this criterion belongs.",
          "readOnly": true
        },
        "interactionType": {
          "description": "Immutable. Criterion for interaction type. Only supported for search campaigns.",
          "$ref": "GoogleAdsSearchads360V23Common__InteractionTypeInfo"
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__CampaignBidModifier",
      "description": "Represents a bid-modifiable only criterion at the campaign level.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources_Campaign_PmaxCampaignSettings": {
      "properties": {
        "brandTargetingOverrides": {
          "description": "Overrides of brand targeting for various ad types.",
          "$ref": "GoogleAdsSearchads360V23Resources_CampaignPmaxCampaignSettings_BrandTargetingOverrides"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources_Campaign_PmaxCampaignSettings",
      "description": "Settings for Performance Max campaigns."
    },
    "GoogleAdsSearchads360V23Resources__LanguageConstant": {
      "properties": {
        "id": {
          "description": "Output only. The ID of the language constant.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        },
        "code": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The language code, for example, \"en_US\", \"en_AU\", \"es\", \"fr\", etc."
        },
        "name": {
          "description": "Output only. The full name of the language in English, for example, \"English (US)\", \"Spanish\", etc.",
          "type": "string",
          "readOnly": true
        },
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the language constant. Language constant resource names have the form: `languageConstants/{criterion_id}`",
          "readOnly": true
        },
        "targetable": {
          "readOnly": true,
          "type": "boolean",
          "description": "Output only. Whether the language is targetable."
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__LanguageConstant",
      "description": "A language.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources__MediaAudio": {
      "properties": {
        "adDurationMillis": {
          "readOnly": true,
          "description": "Output only. The duration of the Audio in milliseconds.",
          "type": "string",
          "format": "int64"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__MediaAudio",
      "description": "Encapsulates an Audio."
    },
    "GoogleAdsSearchads360V23Common__DynamicEducationAsset": {
      "properties": {
        "imageUrl": {
          "type": "string",
          "description": "Image url, for example, http://www.example.com/image.png. The image will not be uploaded as image asset."
        },
        "programId": {
          "type": "string",
          "description": "Required. Program ID which can be any sequence of letters and digits, and must be unique and match the values of remarketing tag. Required."
        },
        "iosAppLink": {
          "type": "string",
          "description": "iOS deep link, for example, exampleApp://content/page."
        },
        "thumbnailImageUrl": {
          "description": "Thumbnail image url, for example, http://www.example.com/thumbnail.png. The thumbnail image will not be uploaded as image asset.",
          "type": "string"
        },
        "programName": {
          "description": "Required. Program name, for example, Nursing. Required.",
          "type": "string"
        },
        "contextualKeywords": {
          "description": "Contextual keywords, for example, Nursing certification, Health, Mountain View.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "similarProgramIds": {
          "description": "Similar program IDs.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "schoolName": {
          "description": "School name, for example, Mountain View School of Nursing.",
          "type": "string"
        },
        "iosAppStoreId": {
          "type": "string",
          "format": "int64",
          "description": "iOS app store ID. This is used to check if the user has the app installed on their device before deep linking. If this field is set, then the ios_app_link field must also be present."
        },
        "programDescription": {
          "description": "Program description, for example, Nursing Certification.",
          "type": "string"
        },
        "locationId": {
          "type": "string",
          "description": "Location ID which can be any sequence of letters and digits and must be unique."
        },
        "address": {
          "description": "School address which can be specified in one of the following formats. (1) City, state, code, country, for example, Mountain View, CA, USA. (2) Full address, for example, 123 Boulevard St, Mountain View, CA 94043. (3) Latitude-longitude in the DDD format, for example, 41.40338, 2.17403",
          "type": "string"
        },
        "subject": {
          "type": "string",
          "description": "Subject of study, for example, Health."
        },
        "androidAppLink": {
          "description": "Android deep link, for example, android-app://com.example.android/http/example.com/gizmos?1234.",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V23Common__DynamicEducationAsset",
      "description": "A Dynamic Education asset.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources__AccountBudgetProposal": {
      "id": "GoogleAdsSearchads360V23Resources__AccountBudgetProposal",
      "description": "An account-level budget proposal. All fields prefixed with 'proposed' may not necessarily be applied directly. For example, proposed spending limits may be adjusted before their application. This is true if the 'proposed' field has an 'approved' counterpart, for example, spending limits. Note that the proposal type (proposal_type) changes which fields are required and which must remain empty.",
      "type": "object",
      "properties": {
        "approvedEndDateTime": {
          "type": "string",
          "description": "Output only. The approved end date time in yyyy-mm-dd hh:mm:ss format.",
          "readOnly": true
        },
        "accountBudget": {
          "type": "string",
          "description": "Immutable. The resource name of the account-level budget associated with this proposal."
        },
        "creationDateTime": {
          "type": "string",
          "description": "Output only. The date time when this account-level budget proposal was created, which is not the same as its approval date time, if applicable.",
          "readOnly": true
        },
        "approvedSpendingLimitMicros": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. The approved spending limit in micros. One million is equivalent to one unit."
        },
        "approvedStartDateTime": {
          "description": "Output only. The approved start date time in yyyy-mm-dd hh:mm:ss format.",
          "type": "string",
          "readOnly": true
        },
        "proposedEndTimeType": {
          "description": "Immutable. The proposed end date time as a well-defined type, for example, FOREVER.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "As soon as possible.",
            "An infinite point in the future."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NOW",
            "FOREVER"
          ]
        },
        "resourceName": {
          "description": "Immutable. The resource name of the proposal. AccountBudgetProposal resource names have the form: `customers/{customer_id}/accountBudgetProposals/{account_budget_proposal_id}`",
          "type": "string"
        },
        "id": {
          "description": "Output only. The ID of the proposal.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        },
        "proposedSpendingLimitType": {
          "description": "Immutable. The proposed spending limit as a well-defined type, for example, INFINITE.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Infinite, indicates unlimited spending power."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INFINITE"
          ]
        },
        "billingSetup": {
          "type": "string",
          "description": "Immutable. The resource name of the billing setup associated with this proposal."
        },
        "status": {
          "description": "Output only. The status of this proposal. When a new proposal is created, the status defaults to PENDING.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The proposal is pending approval.",
            "The proposal has been approved but the corresponding billing setup has not. This can occur for proposals that set up the first budget when signing up for billing or when performing a change of bill-to operation.",
            "The proposal has been approved.",
            "The proposal has been cancelled by the user.",
            "The proposal has been rejected by the user, for example, by rejecting an acceptance email."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PENDING",
            "APPROVED_HELD",
            "APPROVED",
            "CANCELLED",
            "REJECTED"
          ],
          "readOnly": true
        },
        "proposedPurchaseOrderNumber": {
          "description": "Immutable. A purchase order number is a value that enables the user to help them reference this budget in their monthly invoices.",
          "type": "string"
        },
        "proposedName": {
          "type": "string",
          "description": "Immutable. The name to assign to the account-level budget."
        },
        "proposedNotes": {
          "description": "Immutable. Notes associated with this budget.",
          "type": "string"
        },
        "proposedStartTimeType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "As soon as possible.",
            "An infinite point in the future."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NOW",
            "FOREVER"
          ],
          "description": "Immutable. The proposed start date time as a well-defined type, for example, NOW."
        },
        "proposalType": {
          "description": "Immutable. The type of this proposal, for example, END to end the budget associated with this proposal.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Identifies a request to create a new budget.",
            "Identifies a request to edit an existing budget.",
            "Identifies a request to end a budget that has already started.",
            "Identifies a request to remove a budget that hasn't started yet."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CREATE",
            "UPDATE",
            "END",
            "REMOVE"
          ]
        },
        "proposedSpendingLimitMicros": {
          "type": "string",
          "format": "int64",
          "description": "Immutable. The proposed spending limit in micros. One million is equivalent to one unit."
        },
        "proposedEndDateTime": {
          "description": "Immutable. The proposed end date time in yyyy-mm-dd hh:mm:ss format.",
          "type": "string"
        },
        "approvedSpendingLimitType": {
          "description": "Output only. The approved spending limit as a well-defined type, for example, INFINITE.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Infinite, indicates unlimited spending power."
          ],
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INFINITE"
          ]
        },
        "approvalDateTime": {
          "readOnly": true,
          "description": "Output only. The date time when this account-level budget was approved, if applicable.",
          "type": "string"
        },
        "approvedEndTimeType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NOW",
            "FOREVER"
          ],
          "readOnly": true,
          "description": "Output only. The approved end date time as a well-defined type, for example, FOREVER.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "As soon as possible.",
            "An infinite point in the future."
          ]
        },
        "proposedStartDateTime": {
          "description": "Immutable. The proposed start date time in yyyy-mm-dd hh:mm:ss format.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__PlannedProductForecast": {
      "properties": {
        "totalCoviewImpressions": {
          "description": "Total number of ad impressions including co-viewers. This includes impressions that may fall outside the specified Targeting, due to insufficient information on signed-in users.",
          "type": "string",
          "format": "int64"
        },
        "averageFrequency": {
          "description": "The number of times per selected time unit a user will see an ad, averaged over the number of time units in the forecast length. This field will only be populated for a Target Frequency campaign. See https://support.google.com/google-ads/answer/12400225 for more information about Target Frequency campaigns.",
          "type": "number",
          "format": "double"
        },
        "viewableImpressions": {
          "description": "Number of times the ad's impressions were considered viewable. See https://support.google.com/google-ads/answer/7029393 for more information about what makes an ad viewable and how viewability is measured.",
          "type": "string",
          "format": "int64"
        },
        "conversions": {
          "type": "number",
          "format": "double",
          "description": "The number of conversions. This metric is only available for DEMAND_GEN plannable products. See https://support.google.com/google-ads/answer/2375431 for more information on conversions."
        },
        "trueviewViews": {
          "type": "string",
          "format": "int64",
          "description": "Number of ad views forecasted for the specified product and targeting. A TrueView View is counted when a viewer views a larger portion or the entirety of an ad beyond an impression. See https://support.google.com/google-ads/answer/2375431 for more information on TrueView Views."
        },
        "onTargetImpressions": {
          "type": "string",
          "format": "int64",
          "description": "Number of ad impressions that exactly matches the Targeting."
        },
        "onTargetCoviewReach": {
          "description": "Number of unique people reached that exactly matches the Targeting including co-viewers.",
          "type": "string",
          "format": "int64"
        },
        "onTargetCoviewImpressions": {
          "description": "Number of ad impressions that exactly matches the Targeting including co-viewers.",
          "type": "string",
          "format": "int64"
        },
        "onTargetReach": {
          "description": "Number of unique people reached that exactly matches the Targeting. Note that a minimum number of unique people must be reached in order for data to be reported. If the minimum number is not met, the on_target_reach value will be rounded to 0.",
          "type": "string",
          "format": "int64"
        },
        "totalCoviewReach": {
          "type": "string",
          "format": "int64",
          "description": "Number of unique people reached including co-viewers. This includes people that may fall outside the specified Targeting."
        },
        "totalReach": {
          "type": "string",
          "format": "int64",
          "description": "Number of unique people reached. This includes people that may fall outside the specified Targeting. Note that a minimum number of unique people must be reached in order for data to be reported. If the minimum number is not met, the total_reach value will be rounded to 0."
        },
        "totalImpressions": {
          "description": "Total number of ad impressions. This includes impressions that may fall outside the specified Targeting, due to insufficient information on signed-in users.",
          "type": "string",
          "format": "int64"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__PlannedProductForecast",
      "description": "Forecasted traffic metrics for a planned product.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__CampaignSharedSetOperation": {
      "properties": {
        "remove": {
          "description": "Remove operation: A resource name for the removed campaign shared set is expected, in this format: `customers/{customer_id}/campaignSharedSets/{campaign_id}~{shared_set_id}`",
          "type": "string"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new campaign shared set.",
          "$ref": "GoogleAdsSearchads360V23Resources__CampaignSharedSet"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__CampaignSharedSetOperation",
      "description": "A single operation (create, remove) on a campaign shared set."
    },
    "GoogleAdsSearchads360V23Common__StoreSalesThirdPartyMetadata": {
      "id": "GoogleAdsSearchads360V23Common__StoreSalesThirdPartyMetadata",
      "description": "Metadata for a third party Store Sales. This product is only for customers on the allow-list. Contact your Google business development representative for details on the upload configuration.",
      "type": "object",
      "properties": {
        "partnerId": {
          "description": "ID of the third party partner updating the transaction feed.",
          "type": "string",
          "format": "int64"
        },
        "advertiserUploadDateTime": {
          "description": "Time the advertiser uploaded the data to the partner. Required. 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"
        },
        "validTransactionFraction": {
          "type": "number",
          "format": "double",
          "description": "The fraction of transactions that are valid. Invalid transactions may include invalid formats or values. Required. The fraction needs to be between 0 and 1 (excluding 0)."
        },
        "bridgeMapVersionId": {
          "type": "string",
          "description": "Version of partner IDs to be used for uploads. Required."
        },
        "partnerUploadFraction": {
          "description": "The fraction of valid transactions that are uploaded by the partner to Google. Required. The fraction needs to be between 0 and 1 (excluding 0).",
          "type": "number",
          "format": "double"
        },
        "partnerMatchFraction": {
          "type": "number",
          "format": "double",
          "description": "The fraction of valid transactions that are matched to a third party assigned user ID on the partner side. Required. The fraction needs to be between 0 and 1 (excluding 0)."
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__ProductLinkInvitation": {
      "properties": {
        "advertisingPartner": {
          "description": "Output only. Advertising Partner link invitation.",
          "$ref": "GoogleAdsSearchads360V23Resources__AdvertisingPartnerLinkInvitationIdentifier",
          "readOnly": true
        },
        "type": {
          "description": "Output only. The type of the invited account. This field is read only and can be used for filtering invitations with {@code GoogleAdsService.SearchGoogleAdsRequest}.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "A link to Data partner.",
            "A link to Google Ads.",
            "A link to Hotel Center.",
            "A link to Google Merchant Center.",
            "A link to the Google Ads account of the advertising partner."
          ],
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DATA_PARTNER",
            "GOOGLE_ADS",
            "HOTEL_CENTER",
            "MERCHANT_CENTER",
            "ADVERTISING_PARTNER"
          ]
        },
        "productLinkInvitationId": {
          "readOnly": true,
          "description": "Output only. The ID of the product link invitation. This field is read only.",
          "type": "string",
          "format": "int64"
        },
        "hotelCenter": {
          "readOnly": true,
          "description": "Output only. Hotel link invitation.",
          "$ref": "GoogleAdsSearchads360V23Resources__HotelCenterLinkInvitationIdentifier"
        },
        "resourceName": {
          "description": "Immutable. The resource name of a product link invitation. Product link invitation resource names have the form: `customers/{customer_id}/productLinkInvitations/{product_link_invitation_id}`",
          "type": "string"
        },
        "status": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ACCEPTED",
            "REQUESTED",
            "PENDING_APPROVAL",
            "REVOKED",
            "REJECTED",
            "EXPIRED"
          ],
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The invitation is accepted.",
            "An invitation has been sent to the other account. A user on the other account may now accept the invitation by setting the status to ACCEPTED.",
            "This invitation has been sent by a user on the other account. It may be accepted by a user on this account by setting the status to ACCEPTED.",
            "The invitation is revoked by the user who sent the invitation.",
            "The invitation has been rejected by the invitee.",
            "The invitation has timed out before being accepted by the invitee."
          ],
          "description": "Output only. The status of the product link invitation. This field is read only."
        },
        "merchantCenter": {
          "description": "Output only. Merchant Center link invitation.",
          "$ref": "GoogleAdsSearchads360V23Resources__MerchantCenterLinkInvitationIdentifier",
          "readOnly": true
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__ProductLinkInvitation",
      "description": "Represents an invitation for data sharing connection between a Google Ads account and another account."
    },
    "GoogleAdsSearchads360V23Services__GenerateKeywordForecastMetricsResponse": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__GenerateKeywordForecastMetricsResponse",
      "description": "Response message for KeywordPlanIdeaService.GenerateKeywordForecastMetrics.",
      "properties": {
        "campaignForecastMetrics": {
          "description": "Results of the campaign forecast.",
          "$ref": "GoogleAdsSearchads360V23Services__KeywordForecastMetrics"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__AudienceOverlapItem": {
      "properties": {
        "potentialYoutubeReachIntersection": {
          "description": "The estimated size of the intersection of this audience attribute with the primary attribute, that is, the number of reachable YouTube users who match BOTH the primary attribute and this one.",
          "type": "string",
          "format": "int64"
        },
        "attributeMetadata": {
          "description": "The attribute and its metadata, including potential YouTube reach.",
          "$ref": "GoogleAdsSearchads360V23Common__AudienceInsightsAttributeMetadata"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__AudienceOverlapItem",
      "description": "An audience attribute, with metadata including the overlap between this attribute's potential YouTube reach and that of a primary attribute."
    },
    "GoogleAdsSearchads360V23Services__PlannableUserList": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__PlannableUserList",
      "description": "A plannable user list.",
      "properties": {
        "userListInfo": {
          "description": "The user list ID.",
          "$ref": "GoogleAdsSearchads360V23Common__UserListInfo"
        },
        "displayName": {
          "type": "string",
          "description": "The name of the user list."
        },
        "plannableUserListMetadata": {
          "description": "The relevant metadata for this user list.",
          "$ref": "GoogleAdsSearchads360V23Services__PlannableUserListMetadata"
        },
        "userListType": {
          "description": "The user list type.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "UserList represented as a collection of conversion types.",
            "UserList represented as a combination of other user lists/interests.",
            "UserList created in the Google Ad Manager platform.",
            "UserList associated with a rule.",
            "UserList with users similar to users of another UserList.",
            "UserList of first-party CRM data provided by advertiser in the form of emails or other formats.",
            "LookalikeUserlist, composed of users similar to those of a configurable seed (set of UserLists)"
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "REMARKETING",
            "LOGICAL",
            "EXTERNAL_REMARKETING",
            "RULE_BASED",
            "SIMILAR",
            "CRM_BASED",
            "LOOKALIKE"
          ]
        },
        "plannableStatus": {
          "description": "The plannable status of the user list.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The user list is plannable.",
            "The user list is not plannable."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PLANNABLE",
            "UNPLANNABLE"
          ]
        }
      }
    },
    "GoogleAdsSearchads360V23Common__MapsLocationInfo": {
      "properties": {
        "placeId": {
          "description": "Place ID of the Maps location.",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V23Common__MapsLocationInfo",
      "description": "Wrapper for place ids",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__CreateAccountLinkRequest": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__CreateAccountLinkRequest",
      "description": "Request message for AccountLinkService.CreateAccountLink.",
      "properties": {
        "accountLink": {
          "description": "Required. The account link to be created.",
          "$ref": "GoogleAdsSearchads360V23Resources__AccountLink"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__BudgetSimulationPointList": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__BudgetSimulationPointList",
      "description": "A container for simulation points for simulations of type BUDGET.",
      "properties": {
        "points": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__BudgetSimulationPoint"
          },
          "description": "Projected metrics for a series of budget amounts."
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__AdGroupAssetSet": {
      "properties": {
        "resourceName": {
          "description": "Immutable. The resource name of the ad group asset set. Ad group asset set resource names have the form: `customers/{customer_id}/adGroupAssetSets/{ad_group_id}~{asset_set_id}`",
          "type": "string"
        },
        "status": {
          "description": "Output only. The status of the ad group asset set. Read-only.",
          "type": "string",
          "enumDescriptions": [
            "The status has not been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The linkage between asset set and its container is enabled.",
            "The linkage between asset set and its container is removed."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ],
          "readOnly": true
        },
        "adGroup": {
          "description": "Immutable. The ad group to which this asset set is linked.",
          "type": "string"
        },
        "assetSet": {
          "description": "Immutable. The asset set which is linked to the ad group.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__AdGroupAssetSet",
      "description": "AdGroupAssetSet is the linkage between an ad group and an asset set. Creating an AdGroupAssetSet links an asset set with an ad group."
    },
    "GoogleAdsSearchads360V23Common__ImageAdInfo": {
      "properties": {
        "mimeType": {
          "description": "The mime type of the image.",
          "type": "string",
          "enumDescriptions": [
            "The mime type has not been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "MIME type of image/jpeg.",
            "MIME type of image/gif.",
            "MIME type of image/png.",
            "MIME type of application/x-shockwave-flash.",
            "MIME type of text/html.",
            "MIME type of application/pdf.",
            "MIME type of application/msword.",
            "MIME type of application/vnd.ms-excel.",
            "MIME type of application/rtf.",
            "MIME type of audio/wav.",
            "MIME type of audio/mp3.",
            "MIME type of application/x-html5-ad-zip."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "IMAGE_JPEG",
            "IMAGE_GIF",
            "IMAGE_PNG",
            "FLASH",
            "TEXT_HTML",
            "PDF",
            "MSWORD",
            "MSEXCEL",
            "RTF",
            "AUDIO_WAV",
            "AUDIO_MP3",
            "HTML5_AD_ZIP"
          ]
        },
        "imageAsset": {
          "description": "The image assets used for the ad.",
          "$ref": "GoogleAdsSearchads360V23Common__AdImageAsset"
        },
        "imageUrl": {
          "type": "string",
          "description": "URL of the full size image."
        },
        "data": {
          "type": "string",
          "format": "byte",
          "description": "Raw image data as bytes."
        },
        "adIdToCopyImageFrom": {
          "type": "string",
          "format": "int64",
          "description": "An ad ID to copy the image from."
        },
        "previewImageUrl": {
          "type": "string",
          "description": "URL of the preview size image."
        },
        "pixelWidth": {
          "description": "Width in pixels of the full size image.",
          "type": "string",
          "format": "int64"
        },
        "name": {
          "description": "The name of the image. If the image was created from a MediaFile, this is the MediaFile's name. If the image was created from bytes, this is empty.",
          "type": "string"
        },
        "previewPixelWidth": {
          "type": "string",
          "format": "int64",
          "description": "Width in pixels of the preview size image."
        },
        "pixelHeight": {
          "description": "Height in pixels of the full size image.",
          "type": "string",
          "format": "int64"
        },
        "previewPixelHeight": {
          "description": "Height in pixels of the preview size image.",
          "type": "string",
          "format": "int64"
        }
      },
      "id": "GoogleAdsSearchads360V23Common__ImageAdInfo",
      "description": "An image ad.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__RemoveProductLinkResponse": {
      "id": "GoogleAdsSearchads360V23Services__RemoveProductLinkResponse",
      "description": "Response message for product link removal.",
      "type": "object",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Result for the remove request."
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__SharedCriterion": {
      "properties": {
        "type": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Keyword, for example, 'mars cruise'.",
            "Placement, also known as Website, for example, 'www.flowers4sale.com'",
            "Mobile application categories to target.",
            "Mobile applications to target.",
            "Devices to target.",
            "Locations to target.",
            "Listing groups to target.",
            "Ad Schedule.",
            "Age range.",
            "Gender.",
            "Income Range.",
            "Parental status.",
            "YouTube Video.",
            "YouTube Channel.",
            "User list.",
            "Proximity.",
            "A topic target on the display network (for example, \"Pets & Animals\").",
            "Listing scope to target.",
            "Language.",
            "IpBlock.",
            "Content Label for category exclusion.",
            "Carrier.",
            "A category the user is interested in.",
            "Webpage criterion for dynamic search ads.",
            "Operating system version.",
            "App payment model.",
            "Mobile device.",
            "Custom affinity.",
            "Custom intent.",
            "Location group.",
            "Custom audience",
            "Combined audience",
            "Smart Campaign keyword theme",
            "Audience",
            "Negative Keyword List",
            "Local Services Ads Service ID.",
            "Search Theme.",
            "Brand",
            "Brand List",
            "Life Event",
            "Webpage List",
            "Video lineup",
            "Placement List",
            "A list of rules for item groups in Vertical Ads.",
            "A rule for an item group in Vertical Ads."
          ],
          "description": "Output only. The type of the criterion.",
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "KEYWORD",
            "PLACEMENT",
            "MOBILE_APP_CATEGORY",
            "MOBILE_APPLICATION",
            "DEVICE",
            "LOCATION",
            "LISTING_GROUP",
            "AD_SCHEDULE",
            "AGE_RANGE",
            "GENDER",
            "INCOME_RANGE",
            "PARENTAL_STATUS",
            "YOUTUBE_VIDEO",
            "YOUTUBE_CHANNEL",
            "USER_LIST",
            "PROXIMITY",
            "TOPIC",
            "LISTING_SCOPE",
            "LANGUAGE",
            "IP_BLOCK",
            "CONTENT_LABEL",
            "CARRIER",
            "USER_INTEREST",
            "WEBPAGE",
            "OPERATING_SYSTEM_VERSION",
            "APP_PAYMENT_MODEL",
            "MOBILE_DEVICE",
            "CUSTOM_AFFINITY",
            "CUSTOM_INTENT",
            "LOCATION_GROUP",
            "CUSTOM_AUDIENCE",
            "COMBINED_AUDIENCE",
            "KEYWORD_THEME",
            "AUDIENCE",
            "NEGATIVE_KEYWORD_LIST",
            "LOCAL_SERVICE_ID",
            "SEARCH_THEME",
            "BRAND",
            "BRAND_LIST",
            "LIFE_EVENT",
            "WEBPAGE_LIST",
            "VIDEO_LINEUP",
            "PLACEMENT_LIST",
            "VERTICAL_ADS_ITEM_GROUP_RULE_LIST",
            "VERTICAL_ADS_ITEM_GROUP_RULE"
          ]
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the shared criterion. Shared set resource names have the form: `customers/{customer_id}/sharedCriteria/{shared_set_id}~{criterion_id}`"
        },
        "youtubeVideo": {
          "description": "Immutable. YouTube Video.",
          "$ref": "GoogleAdsSearchads360V23Common__YouTubeVideoInfo"
        },
        "mobileApplication": {
          "description": "Immutable. Mobile application.",
          "$ref": "GoogleAdsSearchads360V23Common__MobileApplicationInfo"
        },
        "webpage": {
          "description": "Immutable. Webpage.",
          "$ref": "GoogleAdsSearchads360V23Common__WebpageInfo"
        },
        "youtubeChannel": {
          "description": "Immutable. YouTube Channel.",
          "$ref": "GoogleAdsSearchads360V23Common__YouTubeChannelInfo"
        },
        "sharedSet": {
          "description": "Immutable. The shared set to which the shared criterion belongs.",
          "type": "string"
        },
        "keyword": {
          "description": "Immutable. Keyword.",
          "$ref": "GoogleAdsSearchads360V23Common__KeywordInfo"
        },
        "verticalAdsItemGroupRule": {
          "description": "Immutable. Vertical ads item group rule.",
          "$ref": "GoogleAdsSearchads360V23Common__VerticalAdsItemGroupRuleInfo"
        },
        "mobileAppCategory": {
          "description": "Immutable. Mobile App Category.",
          "$ref": "GoogleAdsSearchads360V23Common__MobileAppCategoryInfo"
        },
        "brand": {
          "description": "Immutable. Brand.",
          "$ref": "GoogleAdsSearchads360V23Common__BrandInfo"
        },
        "negative": {
          "type": "boolean",
          "description": "Immutable. If true, the criterion is excluded. If false, the criterion is targeted."
        },
        "criterionId": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. The ID of the criterion. This field is ignored for mutates."
        },
        "placement": {
          "description": "Immutable. Placement.",
          "$ref": "GoogleAdsSearchads360V23Common__PlacementInfo"
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__SharedCriterion",
      "description": "A criterion belonging to a shared set.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__InteractionTypeInfo": {
      "properties": {
        "type": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Calls."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CALLS"
          ],
          "description": "The interaction type."
        }
      },
      "id": "GoogleAdsSearchads360V23Common__InteractionTypeInfo",
      "description": "Criterion for Interaction Type.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources__DistanceView": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__DistanceView",
      "description": "A distance view with metrics aggregated by the user's distance from an advertiser's location extensions. Each DistanceBucket includes all impressions that fall within its distance and a single impression will contribute to the metrics for all DistanceBuckets that include the user's distance.",
      "properties": {
        "resourceName": {
          "description": "Output only. The resource name of the distance view. Distance view resource names have the form: `customers/{customer_id}/distanceViews/1~{distance_bucket}`",
          "type": "string",
          "readOnly": true
        },
        "distanceBucket": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "WITHIN_700M",
            "WITHIN_1KM",
            "WITHIN_5KM",
            "WITHIN_10KM",
            "WITHIN_15KM",
            "WITHIN_20KM",
            "WITHIN_25KM",
            "WITHIN_30KM",
            "WITHIN_35KM",
            "WITHIN_40KM",
            "WITHIN_45KM",
            "WITHIN_50KM",
            "WITHIN_55KM",
            "WITHIN_60KM",
            "WITHIN_65KM",
            "BEYOND_65KM",
            "WITHIN_0_7MILES",
            "WITHIN_1MILE",
            "WITHIN_5MILES",
            "WITHIN_10MILES",
            "WITHIN_15MILES",
            "WITHIN_20MILES",
            "WITHIN_25MILES",
            "WITHIN_30MILES",
            "WITHIN_35MILES",
            "WITHIN_40MILES",
            "BEYOND_40MILES"
          ],
          "description": "Output only. Grouping of user distance from location extensions.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "User was within 700m of the location.",
            "User was within 1KM of the location.",
            "User was within 5KM of the location.",
            "User was within 10KM of the location.",
            "User was within 15KM of the location.",
            "User was within 20KM of the location.",
            "User was within 25KM of the location.",
            "User was within 30KM of the location.",
            "User was within 35KM of the location.",
            "User was within 40KM of the location.",
            "User was within 45KM of the location.",
            "User was within 50KM of the location.",
            "User was within 55KM of the location.",
            "User was within 60KM of the location.",
            "User was within 65KM of the location.",
            "User was beyond 65KM of the location.",
            "User was within 0.7 miles of the location.",
            "User was within 1 mile of the location.",
            "User was within 5 miles of the location.",
            "User was within 10 miles of the location.",
            "User was within 15 miles of the location.",
            "User was within 20 miles of the location.",
            "User was within 25 miles of the location.",
            "User was within 30 miles of the location.",
            "User was within 35 miles of the location.",
            "User was within 40 miles of the location.",
            "User was beyond 40 miles of the location."
          ]
        },
        "metricSystem": {
          "readOnly": true,
          "type": "boolean",
          "description": "Output only. True if the DistanceBucket is using the metric system, false otherwise."
        }
      }
    },
    "GoogleAdsSearchads360V23Resources_Recommendation_MaximizeConversionValueOptInRecommendation": {
      "properties": {},
      "id": "GoogleAdsSearchads360V23Resources_Recommendation_MaximizeConversionValueOptInRecommendation",
      "description": "Recommendation to opt into Maximize Conversion Value bidding strategy.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateAdGroupAdResult": {
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "The resource name returned for successful operations."
        },
        "adGroupAd": {
          "description": "The mutated ad group ad with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsSearchads360V23Resources__AdGroupAd"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__MutateAdGroupAdResult",
      "description": "The result for the ad mutate.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources__CustomLeadFormSubmissionField": {
      "id": "GoogleAdsSearchads360V23Resources__CustomLeadFormSubmissionField",
      "description": "Fields in the submitted custom question",
      "type": "object",
      "properties": {
        "questionText": {
          "description": "Output only. Question text for custom question, maximum number of characters is 300.",
          "type": "string",
          "readOnly": true
        },
        "fieldValue": {
          "description": "Output only. Field value for custom question response, maximum number of characters is 70.",
          "type": "string",
          "readOnly": true
        }
      }
    },
    "GoogleAdsSearchads360V23Common__CustomerThirdPartyBrandSafetyIntegrationPartner": {
      "id": "GoogleAdsSearchads360V23Common__CustomerThirdPartyBrandSafetyIntegrationPartner",
      "description": "Container for third party brand safety integration data for Customer.",
      "type": "object",
      "properties": {
        "brandSafetyIntegrationPartner": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "DoubleVerify.",
            "Integral Ad Science.",
            "Zefr."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DOUBLE_VERIFY",
            "INTEGRAL_AD_SCIENCE",
            "ZEFR"
          ],
          "description": "Allowed third party integration partners for brand safety verification."
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__PerformanceMaxPlacementView": {
      "properties": {
        "resourceName": {
          "description": "Output only. The resource name of the Performance Max placement view. Performance Max placement view resource names have the form: `customers/{customer_id}/performanceMaxPlacementViews/{base_64_placement}`",
          "type": "string",
          "readOnly": true
        },
        "displayName": {
          "description": "Output only. The name displayed to represent the placement, such as the URL name for websites, YouTube video name for YouTube videos, and translated mobile app name for mobile apps.",
          "type": "string",
          "readOnly": true
        },
        "placement": {
          "readOnly": true,
          "description": "Output only. The default placement string, such as the website URL, mobile application ID, or a YouTube video ID.",
          "type": "string"
        },
        "targetUrl": {
          "readOnly": true,
          "description": "Output only. URL of the placement, for example, website, link to the mobile application in app store, or a YouTube video URL.",
          "type": "string"
        },
        "placementType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "WEBSITE",
            "MOBILE_APP_CATEGORY",
            "MOBILE_APPLICATION",
            "YOUTUBE_VIDEO",
            "YOUTUBE_CHANNEL",
            "GOOGLE_PRODUCTS"
          ],
          "readOnly": true,
          "description": "Output only. Type of the placement. Possible values for Performance Max placements are WEBSITE, MOBILE_APPLICATION, or YOUTUBE_VIDEO.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Websites(for example, 'www.flowers4sale.com').",
            "Mobile application categories(for example, 'Games').",
            "mobile applications(for example, 'mobileapp::2-com.whatsthewordanswers').",
            "YouTube videos(for example, 'youtube.com/video/wtLJPvx7-ys').",
            "YouTube channels(for example, 'youtube.com::L8ZULXASCc1I_oaOT0NaOQ').",
            "Surfaces owned and operated by Google(for example, 'tv.google.com')."
          ]
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__PerformanceMaxPlacementView",
      "description": "A view with impression metrics for Performance Max campaign placements."
    },
    "GoogleAdsSearchads360V23Services__MutateCampaignGoalConfigsResponse": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateCampaignGoalConfigsResponse",
      "description": "Response message for a campaign goal config mutate.",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateCampaignGoalConfigResult"
          },
          "description": "All results for the mutate."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__UpdateProductLinkInvitationResponse": {
      "id": "GoogleAdsSearchads360V23Services__UpdateProductLinkInvitationResponse",
      "description": "Response message for product link invitation update.",
      "type": "object",
      "properties": {
        "resourceName": {
          "description": "Result of the update.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__CampaignConversionGoalOperation": {
      "id": "GoogleAdsSearchads360V23Services__CampaignConversionGoalOperation",
      "description": "A single operation (update) on a campaign conversion goal.",
      "type": "object",
      "properties": {
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "type": "string",
          "format": "google-fieldmask"
        },
        "update": {
          "description": "Update operation: The customer conversion goal is expected to have a valid resource name.",
          "$ref": "GoogleAdsSearchads360V23Resources__CampaignConversionGoal"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateExperimentsRequest": {
      "properties": {
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        },
        "operations": {
          "description": "Required. The list of operations to perform on individual experiments.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__ExperimentOperation"
          }
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        }
      },
      "id": "GoogleAdsSearchads360V23Services__MutateExperimentsRequest",
      "description": "Request message for ExperimentService.MutateExperiments.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__PolicyValidationParameter": {
      "properties": {
        "exemptPolicyViolationKeys": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__PolicyViolationKey"
          },
          "description": "The list of policy violation keys that should not cause a `PolicyViolationError` to be reported. Not all policy violations are exemptable. Refer to the `is_exemptible` field in the returned `PolicyViolationError`. This field is used for keyword policy exemptions. If this field is populated, then `ignorable_policy_topics` must be empty. Resources that violate these policies will be saved, but will not be eligible to serve. They may begin serving at a later time due to a change in policies, re-review of the resource, or a change in advertiser certificates."
        },
        "ignorablePolicyTopics": {
          "description": "The list of policy topics that should not cause a `PolicyFindingError` to be reported. This field is used for ad policy exemptions. It corresponds to the `PolicyTopicEntry.topic` field. If this field is populated, then `exempt_policy_violation_keys` must be empty. Resources that violate these policies will be saved, but will not be eligible to serve. They may begin serving at a later time due to a change in policies, re-review of the resource, or a change in advertiser certificates.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "id": "GoogleAdsSearchads360V23Common__PolicyValidationParameter",
      "description": "Parameter for controlling how policy exemption is done.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateCampaignConversionGoalResult": {
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__MutateCampaignConversionGoalResult",
      "description": "The result for the campaign conversion goal mutate.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateOperationResponse": {
      "properties": {
        "adGroupCriterionLabelResult": {
          "description": "The result for the ad group criterion label mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateAdGroupCriterionLabelResult"
        },
        "conversionActionResult": {
          "description": "The result for the conversion action mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateConversionActionResult"
        },
        "keywordPlanAdGroupKeywordResult": {
          "description": "The result for the keyword plan ad group keyword mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateKeywordPlanAdGroupKeywordResult"
        },
        "sharedCriterionResult": {
          "description": "The result for the shared criterion mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateSharedCriterionResult"
        },
        "biddingStrategyResult": {
          "description": "The result for the bidding strategy mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateBiddingStrategyResult"
        },
        "experimentResult": {
          "description": "The result for the experiment mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateExperimentResult"
        },
        "customerResult": {
          "description": "The result for the customer mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateCustomerResult"
        },
        "recommendationSubscriptionResult": {
          "description": "The result for the recommendation subscription mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateRecommendationSubscriptionResult"
        },
        "adGroupCriterionResult": {
          "description": "The result for the ad group criterion mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateAdGroupCriterionResult"
        },
        "campaignAssetSetResult": {
          "description": "The result for the campaign asset set mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateCampaignAssetSetResult"
        },
        "campaignResult": {
          "description": "The result for the campaign mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateCampaignResult"
        },
        "campaignAssetResult": {
          "description": "The result for the campaign asset mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateCampaignAssetResult"
        },
        "searchAds360CampaignResult": {
          "description": "The result for the Search Ads 360 campaign mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateSearchAds360CampaignResult"
        },
        "campaignLabelResult": {
          "description": "The result for the campaign label mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateCampaignLabelResult"
        },
        "campaignCriterionResult": {
          "description": "The result for the campaign criterion mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateCampaignCriterionResult"
        },
        "keywordPlanCampaignResult": {
          "description": "The result for the keyword plan campaign mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateKeywordPlanCampaignResult"
        },
        "customerLabelResult": {
          "description": "The result for the customer label mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateCustomerLabelResult"
        },
        "campaignCustomizerResult": {
          "description": "The result for the campaign customizer mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateCampaignCustomizerResult"
        },
        "adResult": {
          "description": "The result for the ad mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateAdResult"
        },
        "assetGroupAssetResult": {
          "description": "The result for the asset group asset mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateAssetGroupAssetResult"
        },
        "customConversionGoalResult": {
          "description": "The result for the custom conversion goal mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateCustomConversionGoalResult"
        },
        "biddingSeasonalityAdjustmentResult": {
          "description": "The result for the bidding seasonality adjustment mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateBiddingSeasonalityAdjustmentsResult"
        },
        "keywordPlanResult": {
          "description": "The result for the keyword plan mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateKeywordPlansResult"
        },
        "assetSetResult": {
          "description": "The result for the asset set mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateAssetSetResult"
        },
        "campaignSharedSetResult": {
          "description": "The result for the campaign shared set mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateCampaignSharedSetResult"
        },
        "customerConversionGoalResult": {
          "description": "The result for the customer conversion goal mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateCustomerConversionGoalResult"
        },
        "conversionValueRuleSetResult": {
          "description": "The result for the conversion value rule set mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateConversionValueRuleSetResult"
        },
        "sharedSetResult": {
          "description": "The result for the shared set mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateSharedSetResult"
        },
        "campaignBidModifierResult": {
          "description": "The result for the campaign bid modifier mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateCampaignBidModifierResult"
        },
        "customerAssetResult": {
          "description": "The result for the customer asset mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateCustomerAssetResult"
        },
        "smartCampaignSettingResult": {
          "description": "The result for the Smart campaign setting mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateSmartCampaignSettingResult"
        },
        "remarketingActionResult": {
          "description": "The result for the remarketing action mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateRemarketingActionResult"
        },
        "customerCustomizerResult": {
          "description": "The result for the customer customizer mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateCustomerCustomizerResult"
        },
        "adGroupLabelResult": {
          "description": "The result for the ad group label mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateAdGroupLabelResult"
        },
        "campaignConversionGoalResult": {
          "description": "The result for the campaign conversion goal mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateCampaignConversionGoalResult"
        },
        "adGroupAdLabelResult": {
          "description": "The result for the ad group ad label mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateAdGroupAdLabelResult"
        },
        "adGroupBidModifierResult": {
          "description": "The result for the ad group bid modifier mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateAdGroupBidModifierResult"
        },
        "campaignGroupResult": {
          "description": "The result for the campaign group mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateCampaignGroupResult"
        },
        "conversionValueRuleResult": {
          "description": "The result for the conversion value rule mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateConversionValueRuleResult"
        },
        "customizerAttributeResult": {
          "description": "The result for the customizer attribute mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateCustomizerAttributeResult"
        },
        "userListResult": {
          "description": "The result for the user list mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateUserListResult"
        },
        "assetResult": {
          "description": "The result for the asset mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateAssetResult"
        },
        "adGroupCustomizerResult": {
          "description": "The result for the ad group customizer mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateAdGroupCustomizerResult"
        },
        "experimentArmResult": {
          "description": "The result for the experiment arm mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateExperimentArmResult"
        },
        "conversionCustomVariableResult": {
          "description": "The result for the conversion custom variable mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateConversionCustomVariableResult"
        },
        "campaignDraftResult": {
          "description": "The result for the campaign draft mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateCampaignDraftResult"
        },
        "biddingDataExclusionResult": {
          "description": "The result for the bidding data exclusion mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateBiddingDataExclusionsResult"
        },
        "customerNegativeCriterionResult": {
          "description": "The result for the customer negative criterion mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateCustomerNegativeCriteriaResult"
        },
        "conversionGoalCampaignConfigResult": {
          "description": "The result for the conversion goal campaign config mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateConversionGoalCampaignConfigResult"
        },
        "labelResult": {
          "description": "The result for the label mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateLabelResult"
        },
        "keywordPlanCampaignKeywordResult": {
          "description": "The result for the keyword plan campaign keyword mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateKeywordPlanCampaignKeywordResult"
        },
        "assetGroupListingGroupFilterResult": {
          "description": "The result for the asset group listing group filter mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateAssetGroupListingGroupFilterResult"
        },
        "adGroupAdResult": {
          "description": "The result for the ad group ad mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateAdGroupAdResult"
        },
        "adGroupCriterionCustomizerResult": {
          "description": "The result for the ad group criterion customizer mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateAdGroupCriterionCustomizerResult"
        },
        "assetGroupResult": {
          "description": "The result for the asset group mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateAssetGroupResult"
        },
        "keywordPlanAdGroupResult": {
          "description": "The result for the keyword plan ad group mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateKeywordPlanAdGroupResult"
        },
        "adParameterResult": {
          "description": "The result for the ad parameter mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateAdParameterResult"
        },
        "adGroupResult": {
          "description": "The result for the ad group mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateAdGroupResult"
        },
        "assetSetAssetResult": {
          "description": "The result for the asset set asset mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateAssetSetAssetResult"
        },
        "campaignBudgetResult": {
          "description": "The result for the campaign budget mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateCampaignBudgetResult"
        },
        "assetGroupSignalResult": {
          "description": "The result for the asset group signal mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateAssetGroupSignalResult"
        },
        "audienceResult": {
          "description": "The result for the audience mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateAudienceResult"
        },
        "adGroupAssetResult": {
          "description": "The result for the ad group asset mutate.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateAdGroupAssetResult"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__MutateOperationResponse",
      "description": "Response message for the resource mutate.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources_Campaign_LocalServicesCampaignSettings": {
      "properties": {
        "categoryBids": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Resources_Campaign_CategoryBid"
          },
          "description": "Categorical level bids associated with MANUAL_CPA bidding strategy."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources_Campaign_LocalServicesCampaignSettings",
      "description": "Settings for LocalServicesCampaign subresource."
    },
    "GoogleAdsSearchads360V23Services__MutateConversionActionResult": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateConversionActionResult",
      "description": "The result for the conversion action mutate.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        },
        "conversionAction": {
          "description": "The mutated conversion action with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsSearchads360V23Resources__ConversionAction"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__CustomerCustomizer": {
      "properties": {
        "value": {
          "description": "Required. The value to associate with the customizer attribute at this level. The value must be of the type specified for the CustomizerAttribute.",
          "$ref": "GoogleAdsSearchads360V23Common__CustomizerValue"
        },
        "customizerAttribute": {
          "description": "Required. Immutable. The customizer attribute which is linked to the customer.",
          "type": "string"
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the customer customizer. Customer customizer resource names have the form: `customers/{customer_id}/customerCustomizers/{customizer_attribute_id}`"
        },
        "status": {
          "description": "Output only. The status of the customer customizer attribute.",
          "type": "string",
          "enumDescriptions": [
            "The status has not been specified.",
            "The received value is not known in this version.",
            "The customizer value is enabled.",
            "The customizer value is removed."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ],
          "readOnly": true
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__CustomerCustomizer",
      "description": "A customizer value for the associated CustomizerAttribute at the Customer level."
    },
    "GoogleAdsSearchads360V23Resources__CustomerAgreementSetting": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__CustomerAgreementSetting",
      "description": "Customer Agreement Setting for a customer.",
      "properties": {
        "acceptedLeadFormTerms": {
          "description": "Output only. Whether the customer has accepted lead form term of service.",
          "type": "boolean",
          "readOnly": true
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__MerchantCenterIdentifier": {
      "id": "GoogleAdsSearchads360V23Resources__MerchantCenterIdentifier",
      "description": "The identifier for Google Merchant Center account",
      "type": "object",
      "properties": {
        "merchantCenterId": {
          "description": "Immutable. The customer ID of the Google Merchant Center account. This field is required and should not be empty when creating a new Merchant Center link. It is unable to be modified after the creation of the link.",
          "type": "string",
          "format": "int64"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__UniversityDegree": {
      "properties": {
        "institutionName": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Name of the university at which the degree was obtained."
        },
        "graduationYear": {
          "readOnly": true,
          "type": "integer",
          "format": "int32",
          "description": "Output only. Year of graduation."
        },
        "degree": {
          "readOnly": true,
          "description": "Output only. Name of the degree obtained.",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__UniversityDegree",
      "description": "A list of degrees this employee has obtained, and wants to feature.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources__OfflineConversionSummary": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__OfflineConversionSummary",
      "description": "Historical upload summary, grouped by upload date or job.",
      "properties": {
        "successfulCount": {
          "description": "Output only. Total count of successful event.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        },
        "pendingCount": {
          "type": "string",
          "format": "int64",
          "description": "Output only. Total count of pending uploaded event.",
          "readOnly": true
        },
        "uploadDate": {
          "description": "Output only. Dimension key for last N days.",
          "type": "string",
          "readOnly": true
        },
        "failedCount": {
          "description": "Output only. Total count of failed event.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        },
        "jobId": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. Dimension key for last N jobs."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateKeywordPlanAdGroupResult": {
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateKeywordPlanAdGroupResult",
      "description": "The result for the Keyword Plan ad group mutate."
    },
    "GoogleAdsSearchads360V23Common__VerticalAdsItemGroupRuleInfo": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__VerticalAdsItemGroupRuleInfo",
      "description": "A criterion to represent a single item group rule in Vertical Ads.",
      "properties": {
        "countryCriterionId": {
          "type": "string",
          "description": "The resource name of the Geo Target Constant for the country."
        },
        "itemCode": {
          "description": "The id specifying a particular Vertical Ad listing.",
          "type": "string"
        },
        "regionCriterionId": {
          "description": "The resource name of the Geo Target Constant for the region.",
          "type": "string"
        },
        "hotelClass": {
          "type": "string",
          "format": "int64",
          "description": "Integer value specifying the class rating for a hotel. Ranges from 1 to 5 stars."
        },
        "cityCriterionId": {
          "description": "The resource name of the Geo Target Constant for the city.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__AddOfflineUserDataJobOperationsResponse": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__AddOfflineUserDataJobOperationsResponse",
      "description": "Response message for OfflineUserDataJobService.AddOfflineUserDataJobOperations.",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "warning": {
          "description": "Non blocking errors that pertain to operation failures in the warnings mode. Returned only when enable_warnings = true.",
          "$ref": "GoogleRpc__Status"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__BillingSetupOperation": {
      "properties": {
        "create": {
          "description": "Creates a billing setup. No resource name is expected for the new billing setup.",
          "$ref": "GoogleAdsSearchads360V23Resources__BillingSetup"
        },
        "remove": {
          "description": "Resource name of the billing setup to remove. A setup cannot be removed unless it is in a pending state or its scheduled start time is in the future. The resource name looks like `customers/{customer_id}/billingSetups/{billing_id}`.",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__BillingSetupOperation",
      "description": "A single operation on a billing setup, which describes the cancellation of an existing billing setup.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_UseBroadMatchKeywordParameters": {
      "id": "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_UseBroadMatchKeywordParameters",
      "description": "Parameters to use when applying a use broad match keyword recommendation.",
      "type": "object",
      "properties": {
        "newBudgetAmountMicros": {
          "type": "string",
          "format": "int64",
          "description": "New budget amount to set for target budget resource."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__SurveySatisfied": {
      "id": "GoogleAdsSearchads360V23Services__SurveySatisfied",
      "description": "Details about various factors for being satisfied with the lead.",
      "type": "object",
      "properties": {
        "surveySatisfiedReason": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Other reasons.",
            "Lead converted into a booked customer or client.",
            "Lead could convert into a booked customer or client soon.",
            "Lead was related to the services the business offers.",
            "Lead was for a service that generates high value for the business."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "OTHER_SATISFIED_REASON",
            "BOOKED_CUSTOMER",
            "LIKELY_BOOKED_CUSTOMER",
            "SERVICE_RELATED",
            "HIGH_VALUE_SERVICE"
          ],
          "description": "Required. Provider's reason for being satisfied with the lead."
        },
        "otherReasonComment": {
          "description": "Optional. Provider's free form comments. This field is required when OTHER_SATISFIED_REASON is selected as the reason.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__GenerateAudienceOverlapInsightsResponse": {
      "id": "GoogleAdsSearchads360V23Services__GenerateAudienceOverlapInsightsResponse",
      "description": "Response message for AudienceInsightsService.GenerateAudienceOverlapInsights.",
      "type": "object",
      "properties": {
        "dimensionResults": {
          "description": "Lists of attributes and their overlap with the primary attribute, one list per requested dimension.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__DimensionOverlapResult"
          }
        },
        "primaryAttributeMetadata": {
          "description": "Metadata for the primary attribute, including potential YouTube reach.",
          "$ref": "GoogleAdsSearchads360V23Common__AudienceInsightsAttributeMetadata"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateCustomerCustomizersResponse": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateCustomerCustomizersResponse",
      "description": "Response message for a customizer attribute mutate.",
      "properties": {
        "results": {
          "description": "All results for the mutate.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateCustomerCustomizerResult"
          }
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateCampaignSharedSetResult": {
      "properties": {
        "campaignSharedSet": {
          "description": "The mutated campaign shared set with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsSearchads360V23Resources__CampaignSharedSet"
        },
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateCampaignSharedSetResult",
      "description": "The result for the campaign shared set mutate."
    },
    "GoogleAdsSearchads360V23Common__CustomAudienceSegment": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__CustomAudienceSegment",
      "description": "Custom audience segment.",
      "properties": {
        "customAudience": {
          "description": "The custom audience resource.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__ProductTypeInfo": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__ProductTypeInfo",
      "description": "Type of a product offer.",
      "properties": {
        "value": {
          "description": "Value of the type.",
          "type": "string"
        },
        "level": {
          "description": "Level of the type.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Level 1.",
            "Level 2.",
            "Level 3.",
            "Level 4.",
            "Level 5."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "LEVEL1",
            "LEVEL2",
            "LEVEL3",
            "LEVEL4",
            "LEVEL5"
          ]
        }
      }
    },
    "GoogleAdsSearchads360V23Services__SharedSetOperation": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__SharedSetOperation",
      "description": "A single operation (create, update, remove) on an shared set.",
      "properties": {
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed shared set is expected, in this format: `customers/{customer_id}/sharedSets/{shared_set_id}`"
        },
        "updateMask": {
          "type": "string",
          "format": "google-fieldmask",
          "description": "FieldMask that determines which resource fields are modified in an update."
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new shared set.",
          "$ref": "GoogleAdsSearchads360V23Resources__SharedSet"
        },
        "update": {
          "description": "Update operation: The shared set is expected to have a valid resource name.",
          "$ref": "GoogleAdsSearchads360V23Resources__SharedSet"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__HotelAdInfo": {
      "properties": {},
      "id": "GoogleAdsSearchads360V23Common__HotelAdInfo",
      "description": "A hotel ad.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__AdParameterOperation": {
      "properties": {
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "type": "string",
          "format": "google-fieldmask"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new ad parameter.",
          "$ref": "GoogleAdsSearchads360V23Resources__AdParameter"
        },
        "update": {
          "description": "Update operation: The ad parameter is expected to have a valid resource name.",
          "$ref": "GoogleAdsSearchads360V23Resources__AdParameter"
        },
        "remove": {
          "description": "Remove operation: A resource name for the ad parameter to remove is expected in this format: `customers/{customer_id}/adParameters/{ad_group_id}~{criterion_id}~{parameter_index}`",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__AdParameterOperation",
      "description": "A single operation (create, update, remove) on ad parameter."
    },
    "GoogleAdsSearchads360V23Resources__Residency": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__Residency",
      "description": "Details about the employee's medical residency. Residency is a stage of graduate medical education in which a qualified medical professional practices under the supervision of a senior clinician.",
      "properties": {
        "completionYear": {
          "type": "integer",
          "format": "int32",
          "description": "Output only. Year of completion.",
          "readOnly": true
        },
        "institutionName": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Name of the institution at which the residency was completed."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__SmartCampaignPausedDetails": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__SmartCampaignPausedDetails",
      "description": "Details related to paused Smart campaigns.",
      "properties": {
        "pausedDateTime": {
          "description": "The timestamp of when the campaign was last paused. The timestamp is in the customer’s timezone and in “yyyy-MM-dd HH:mm:ss” format.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__ProductBrandInfo": {
      "properties": {
        "value": {
          "type": "string",
          "description": "String value of the product brand."
        }
      },
      "id": "GoogleAdsSearchads360V23Common__ProductBrandInfo",
      "description": "Brand of the product.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources__MerchantCenterLinkInvitationIdentifier": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__MerchantCenterLinkInvitationIdentifier",
      "description": "The identifier for Merchant Center Account.",
      "properties": {
        "merchantCenterId": {
          "readOnly": true,
          "description": "Output only. The Merchant Center id of the Merchant account. This field is read only",
          "type": "string",
          "format": "int64"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__UserInterest": {
      "properties": {
        "userInterestId": {
          "type": "string",
          "format": "int64",
          "description": "Output only. The ID of the user interest.",
          "readOnly": true
        },
        "taxonomyType": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AFFINITY",
            "IN_MARKET",
            "MOBILE_APP_INSTALL_USER",
            "VERTICAL_GEO",
            "NEW_SMART_PHONE_USER"
          ],
          "description": "Output only. Taxonomy type of the user interest.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The affinity for this user interest.",
            "The market for this user interest.",
            "Users known to have installed applications in the specified categories.",
            "The geographical location of the interest-based vertical.",
            "User interest criteria for new smart phone users."
          ]
        },
        "userInterestParent": {
          "description": "Output only. The parent of the user interest.",
          "type": "string",
          "readOnly": true
        },
        "availabilities": {
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__CriterionCategoryAvailability"
          },
          "description": "Output only. Availability information of the user interest."
        },
        "name": {
          "type": "string",
          "description": "Output only. The name of the user interest.",
          "readOnly": true
        },
        "resourceName": {
          "readOnly": true,
          "description": "Output only. The resource name of the user interest. User interest resource names have the form: `customers/{customer_id}/userInterests/{user_interest_id}`",
          "type": "string"
        },
        "launchedToAll": {
          "readOnly": true,
          "type": "boolean",
          "description": "Output only. True if the user interest is launched to all channels and locales."
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__UserInterest",
      "description": "A user interest: a particular interest-based vertical to be targeted.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources_Invoice_RegulatoryCostSummary": {
      "id": "GoogleAdsSearchads360V23Resources_Invoice_RegulatoryCostSummary",
      "description": "Represents regulatory cost information associated with an account.",
      "type": "object",
      "properties": {
        "regulatoryFeeType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AUSTRIA_DST_FEE",
            "TURKIYE_REGULATORY_OPERATING_COST",
            "UK_DST_FEE",
            "SPAIN_REGULATORY_OPERATING_COST",
            "FRANCE_REGULATORY_OPERATING_COST",
            "ITALY_REGULATORY_OPERATING_COST",
            "INDIA_REGULATORY_OPERATING_COST",
            "POLAND_REGULATORY_OPERATING_COST",
            "OPERATING_CHARGES",
            "CANADA_DST_FEE"
          ],
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Represents Austria DST fee.",
            "Represents Türkiye regulatory operating cost.",
            "Represents UK DST fee.",
            "Represents Spain regulatory operating cost.",
            "Represents France regulatory operating cost.",
            "Represents Italy regulatory operating cost.",
            "Represents India regulatory operating cost.",
            "Represents Poland regulatory operating cost.",
            "Represents operating charges.",
            "Represents Canada DST fee."
          ],
          "description": "Output only. The type of regulatory fee."
        },
        "amountMicros": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. The amount of the regulatory fee, in micros. The currency code for this amount is the same as the Invoice.currency_code."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__PlannableUserInterest": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__PlannableUserInterest",
      "description": "A plannable user interest that can be targeted in a reach forecast using ReachPlanService.GenerateReachForecast.",
      "properties": {
        "userInterestDisplayName": {
          "description": "The user interest display name. For example, \"Autos & Vehicles\"",
          "type": "string"
        },
        "userInterest": {
          "description": "The user interest id.",
          "$ref": "GoogleAdsSearchads360V23Common__UserInterestInfo"
        },
        "userInterestType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The affinity for this user interest.",
            "The market for this user interest.",
            "Users known to have installed applications in the specified categories.",
            "The geographical location of the interest-based vertical.",
            "User interest criteria for new smart phone users."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AFFINITY",
            "IN_MARKET",
            "MOBILE_APP_INSTALL_USER",
            "VERTICAL_GEO",
            "NEW_SMART_PHONE_USER"
          ],
          "description": "The user interest type."
        },
        "userInterestPath": {
          "type": "string",
          "description": "The user interest path. For example, \"/Autos & Vehicles/Motor Vehicles/Motor Vehicles by Type/Off-Road Vehicles\""
        }
      }
    },
    "GoogleAdsSearchads360V23Services__SurfaceTargeting": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__SurfaceTargeting",
      "description": "Container for surfaces for a product. Surfaces refer to the available types of ad inventories such as In-Feed, In-Stream, and Shorts.",
      "properties": {
        "surfaces": {
          "type": "array",
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "The value is unknown in this version.",
              "Discover feed ad surface.",
              "Gmail ad surface.",
              "In-Feed ad surface.",
              "In-Stream bumper ad surface.",
              "In-Stream non-skippable ad surface.",
              "In-Stream skippable ad surface.",
              "Shorts ad surface."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "DISCOVER_FEED",
              "GMAIL",
              "IN_FEED",
              "IN_STREAM_BUMPER",
              "IN_STREAM_NON_SKIPPABLE",
              "IN_STREAM_SKIPPABLE",
              "SHORTS"
            ]
          },
          "description": "List of surfaces available to target."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__TextAdInfo": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__TextAdInfo",
      "description": "A text ad.",
      "properties": {
        "description2": {
          "description": "The second line of the ad's description.",
          "type": "string"
        },
        "headline": {
          "description": "The headline of the ad.",
          "type": "string"
        },
        "description1": {
          "description": "The first line of the ad's description.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateCampaignsResponse": {
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateCampaignResult"
          },
          "description": "All results for the mutate."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateCampaignsResponse",
      "description": "Response message for campaign mutate."
    },
    "GoogleAdsSearchads360V23Services__MutateCampaignAssetsResponse": {
      "id": "GoogleAdsSearchads360V23Services__MutateCampaignAssetsResponse",
      "description": "Response message for a campaign asset mutate.",
      "type": "object",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateCampaignAssetResult"
          },
          "description": "All results for the mutate."
        }
      }
    },
    "GoogleAdsSearchads360V23Common_CampaignGoalSettings_CampaignRetentionGoalSettings": {
      "properties": {
        "valueSettingsOverride": {
          "description": "Retention goal campaign specific value settings.",
          "$ref": "GoogleAdsSearchads360V23Common__CustomerLifecycleOptimizationValueSettings"
        },
        "targetOption": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The mode is used when the campaign optimizes for all customers, which is the default value.",
            "This mode configures the campaign to target only customers who have previously interacted but are now lapsed or disengaged."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "TARGET_ALL",
            "TARGET_SPECIFIC"
          ],
          "description": "Retention goal optimization mode for this campaign. Defaults to TARGET_ALL. Only customers on the allowlist can set target_option."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common_CampaignGoalSettings_CampaignRetentionGoalSettings",
      "description": "Retention campaign goal settings."
    },
    "GoogleAdsSearchads360V23Services__DismissRecommendationRequest": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__DismissRecommendationRequest",
      "description": "Request message for RecommendationService.DismissRecommendation.",
      "properties": {
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services_DismissRecommendationRequest_DismissRecommendationOperation"
          },
          "description": "Required. The list of operations to dismiss recommendations. If partial_failure=false all recommendations should be of the same type There is a limit of 100 operations per request."
        },
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, operations will be carried in a single transaction if and only if they are all valid. Default is false."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__AdDemandGenCarouselCardAsset": {
      "id": "GoogleAdsSearchads360V23Common__AdDemandGenCarouselCardAsset",
      "description": "A Demand Gen carousel card asset used inside an ad.",
      "type": "object",
      "properties": {
        "asset": {
          "description": "The Asset resource name of this discovery carousel card.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateCustomerUserAccessResult": {
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateCustomerUserAccessResult",
      "description": "The result for the customer user access mutate."
    },
    "GoogleAdsSearchads360V23Services__RemoveProductLinkInvitationResponse": {
      "id": "GoogleAdsSearchads360V23Services__RemoveProductLinkInvitationResponse",
      "description": "Response message for product link invitation removeal.",
      "type": "object",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Result for the remove request."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__AdGroupAssetSetOperation": {
      "properties": {
        "remove": {
          "description": "Remove operation: A resource name for the removed ad group asset set is expected, in this format: `customers/{customer_id}/adGroupAssetSets/{ad_group_id}~{asset_set_id}`",
          "type": "string"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new ad group asset set.",
          "$ref": "GoogleAdsSearchads360V23Resources__AdGroupAssetSet"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__AdGroupAssetSetOperation",
      "description": "A single operation (create, remove) on an ad group asset set."
    },
    "GoogleAdsSearchads360V23Services__KeywordPlanOperation": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__KeywordPlanOperation",
      "description": "A single operation (create, update, remove) on a keyword plan.",
      "properties": {
        "remove": {
          "description": "Remove operation: A resource name for the removed keyword plan is expected in this format: `customers/{customer_id}/keywordPlans/{keyword_plan_id}`",
          "type": "string"
        },
        "updateMask": {
          "type": "string",
          "format": "google-fieldmask",
          "description": "The FieldMask that determines which resource fields are modified in an update."
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new keyword plan.",
          "$ref": "GoogleAdsSearchads360V23Resources__KeywordPlan"
        },
        "update": {
          "description": "Update operation: The keyword plan is expected to have a valid resource name.",
          "$ref": "GoogleAdsSearchads360V23Resources__KeywordPlan"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__ContactDetails": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__ContactDetails",
      "description": "Fields containing consumer contact details.",
      "properties": {
        "email": {
          "readOnly": true,
          "description": "Output only. Consumer email address.",
          "type": "string"
        },
        "phoneNumber": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Phone number of the consumer for the lead. This can be a real phone number or a tracking number. The phone number is returned in E164 format. See https://support.google.com/google-ads/answer/16355235?hl=en to learn more. Example: +16504519489."
        },
        "consumerName": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Consumer name if consumer provided name from Message or Booking form on google.com"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateCampaignBudgetsResponse": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateCampaignBudgetsResponse",
      "description": "Response message for campaign budget mutate.",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateCampaignBudgetResult"
          },
          "description": "All results for the mutate."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__CriterionCategoryChannelAvailability": {
      "properties": {
        "advertisingChannelType": {
          "description": "Channel type the category is available to.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Search Network. Includes display bundled, and Search+ campaigns.",
            "Google Display Network only.",
            "Shopping campaigns serve on the shopping property and on google.com search results.",
            "Hotel Ads campaigns.",
            "Video campaigns.",
            "App Campaigns, and App Campaigns for Engagement, that run across multiple channels.",
            "Local ads campaigns.",
            "Smart campaigns.",
            "Performance Max campaigns.",
            "Local services campaigns.",
            "Travel campaigns.",
            "Demand Gen campaigns.",
            "Social campaigns."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SEARCH",
            "DISPLAY",
            "SHOPPING",
            "HOTEL",
            "VIDEO",
            "MULTI_CHANNEL",
            "LOCAL",
            "SMART",
            "PERFORMANCE_MAX",
            "LOCAL_SERVICES",
            "TRAVEL",
            "DEMAND_GEN",
            "SOCIAL"
          ]
        },
        "availabilityMode": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The category is available to campaigns of all channel types and subtypes.",
            "The category is available to campaigns of a specific channel type, including all subtypes under it.",
            "The category is available to campaigns of a specific channel type and subtype(s)."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ALL_CHANNELS",
            "CHANNEL_TYPE_AND_ALL_SUBTYPES",
            "CHANNEL_TYPE_AND_SUBSET_SUBTYPES"
          ],
          "description": "Format of the channel availability. Can be ALL_CHANNELS (the rest of the fields will not be set), CHANNEL_TYPE (only advertising_channel_type type will be set, the category is available to all sub types under it) or CHANNEL_TYPE_AND_SUBTYPES (advertising_channel_type, advertising_channel_sub_type, and include_default_channel_sub_type will all be set)."
        },
        "advertisingChannelSubType": {
          "description": "Channel subtypes under the channel type the category is available to.",
          "type": "array",
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "Used as a return value only. Represents value unknown in this version.",
              "Mobile app campaigns for Search.",
              "Mobile app campaigns for Display.",
              "AdWords express campaigns for search.",
              "AdWords Express campaigns for display.",
              "Smart Shopping campaigns.",
              "Gmail Ad campaigns.",
              "Smart display campaigns. New campaigns of this sub type cannot be created.",
              "Video TrueView for Action campaigns.",
              "Video campaigns with non-skippable video ads.",
              "App Campaign that lets you easily promote your Android or iOS app across Google's top properties including Search, Play, YouTube, and the Google Display Network.",
              "App Campaign for engagement, focused on driving re-engagement with the app across several of Google's top properties including Search, YouTube, and the Google Display Network.",
              "Campaigns specialized for local advertising.",
              "Shopping Comparison Listing campaigns.",
              "Standard Smart campaigns.",
              "Video campaigns with sequence video ads.",
              "App Campaign for pre registration, specialized for advertising mobile app pre-registration, that targets multiple advertising channels across Google Play, YouTube and Display Network.",
              "Video reach campaign with Target Frequency bidding strategy.",
              "Travel Activities campaigns.",
              "Facebook tracking only social campaigns."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "SEARCH_MOBILE_APP",
              "DISPLAY_MOBILE_APP",
              "SEARCH_EXPRESS",
              "DISPLAY_EXPRESS",
              "SHOPPING_SMART_ADS",
              "DISPLAY_GMAIL_AD",
              "DISPLAY_SMART_CAMPAIGN",
              "VIDEO_ACTION",
              "VIDEO_NON_SKIPPABLE",
              "APP_CAMPAIGN",
              "APP_CAMPAIGN_FOR_ENGAGEMENT",
              "LOCAL_CAMPAIGN",
              "SHOPPING_COMPARISON_LISTING_ADS",
              "SMART_CAMPAIGN",
              "VIDEO_SEQUENCE",
              "APP_CAMPAIGN_FOR_PRE_REGISTRATION",
              "VIDEO_REACH_TARGET_FREQUENCY",
              "TRAVEL_ACTIVITIES",
              "SOCIAL_FACEBOOK_TRACKING_ONLY"
            ]
          }
        },
        "includeDefaultChannelSubType": {
          "description": "Whether default channel sub type is included. For example, advertising_channel_type being DISPLAY and include_default_channel_sub_type being false means that the default display campaign where channel sub type is not set is not included in this availability configuration.",
          "type": "boolean"
        }
      },
      "id": "GoogleAdsSearchads360V23Common__CriterionCategoryChannelAvailability",
      "description": "Information of advertising channel type and subtypes a category is available in.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources__RemarketingSetting": {
      "properties": {
        "googleGlobalSiteTag": {
          "readOnly": true,
          "description": "Output only. The Google tag.",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__RemarketingSetting",
      "description": "Remarketing setting for a customer.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__CampaignBudgetMapping": {
      "properties": {
        "experimentCampaign": {
          "type": "string",
          "description": "Required. The experiment campaign to graduate."
        },
        "campaignBudget": {
          "description": "Required. The budget that should be attached to the graduating experiment campaign.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__CampaignBudgetMapping",
      "description": "The mapping of experiment campaign and budget to be graduated."
    },
    "GoogleAdsSearchads360V23Services__LabelOperation": {
      "id": "GoogleAdsSearchads360V23Services__LabelOperation",
      "description": "A single operation (create, remove, update) on a label.",
      "type": "object",
      "properties": {
        "updateMask": {
          "type": "string",
          "format": "google-fieldmask",
          "description": "FieldMask that determines which resource fields are modified in an update."
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new label.",
          "$ref": "GoogleAdsSearchads360V23Resources__Label"
        },
        "update": {
          "description": "Update operation: The label is expected to have a valid resource name.",
          "$ref": "GoogleAdsSearchads360V23Resources__Label"
        },
        "remove": {
          "description": "Remove operation: A resource name for the label being removed, in this format: `customers/{customer_id}/labels/{label_id}`",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__ReachForecast": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__ReachForecast",
      "description": "A point on reach curve.",
      "properties": {
        "forecast": {
          "description": "Forecasted traffic metrics for this point.",
          "$ref": "GoogleAdsSearchads360V23Services__Forecast"
        },
        "costMicros": {
          "description": "The cost in micros.",
          "type": "string",
          "format": "int64"
        },
        "plannedProductReachForecasts": {
          "description": "The forecasted allocation and traffic metrics for each planned product at this point on the reach curve.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__PlannedProductReachForecast"
          }
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateUserListResult": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateUserListResult",
      "description": "The result for the user list mutate.",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        }
      }
    },
    "GoogleAdsSearchads360V23Resources_Campaign_SelectiveOptimization": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources_Campaign_SelectiveOptimization",
      "description": "Selective optimization setting for this campaign, which includes a set of conversion actions to optimize this campaign towards. This feature only applies to app campaigns that use MULTI_CHANNEL as AdvertisingChannelType and APP_CAMPAIGN or APP_CAMPAIGN_FOR_ENGAGEMENT as AdvertisingChannelSubType.",
      "properties": {
        "conversionActions": {
          "description": "The selected set of resource names for conversion actions for optimizing this campaign.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "GoogleAdsSearchads360V23Services__AdGroupCriterionOperation": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__AdGroupCriterionOperation",
      "description": "A single operation (create, remove, update) on an ad group criterion.",
      "properties": {
        "exemptPolicyViolationKeys": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__PolicyViolationKey"
          },
          "description": "The list of policy violation keys that should not cause a PolicyViolationError to be reported. Not all policy violations are exemptable, refer to the is_exemptible field in the returned PolicyViolationError. Resources violating these polices will be saved, but will not be eligible to serve. They may begin serving at a later time due to a change in policies, re-review of the resource, or a change in advertiser certificates."
        },
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "type": "string",
          "format": "google-fieldmask"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new criterion.",
          "$ref": "GoogleAdsSearchads360V23Resources__AdGroupCriterion"
        },
        "update": {
          "description": "Update operation: The criterion is expected to have a valid resource name.",
          "$ref": "GoogleAdsSearchads360V23Resources__AdGroupCriterion"
        },
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed criterion is expected, in this format: `customers/{customer_id}/adGroupCriteria/{ad_group_id}~{criterion_id}`"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__SearchAds360ExpandedTextAdInfo": {
      "properties": {
        "description2": {
          "description": "The second line of the ad's description.",
          "type": "string"
        },
        "description1": {
          "type": "string",
          "description": "The first line of the ad's description."
        },
        "path1": {
          "description": "Text appended to the auto-generated visible URL with a delimiter.",
          "type": "string"
        },
        "adTrackingId": {
          "description": "The tracking id of the ad.",
          "type": "string",
          "format": "int64"
        },
        "headline": {
          "type": "string",
          "description": "The headline of the ad."
        },
        "headline2": {
          "description": "The second headline of the ad.",
          "type": "string"
        },
        "headline3": {
          "type": "string",
          "description": "The third headline of the ad."
        },
        "path2": {
          "description": "Text appended to path1 with a delimiter.",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V23Common__SearchAds360ExpandedTextAdInfo",
      "description": "A Search Ads 360 expanded text ad.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__YearMonthRange": {
      "id": "GoogleAdsSearchads360V23Common__YearMonthRange",
      "description": "The year month range inclusive of the start and end months. Eg: A year month range to represent Jan 2020 would be: (Jan 2020, Jan 2020).",
      "type": "object",
      "properties": {
        "end": {
          "description": "The inclusive end year month.",
          "$ref": "GoogleAdsSearchads360V23Common__YearMonth"
        },
        "start": {
          "description": "The inclusive start year month.",
          "$ref": "GoogleAdsSearchads360V23Common__YearMonth"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__Campaign": {
      "properties": {
        "biddingStrategyType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Commission is an automatic bidding strategy in which the advertiser pays a certain portion of the conversion value.",
            "Enhanced CPC is a bidding strategy that raises bids for clicks that seem more likely to lead to a conversion and lowers them for clicks where they seem less likely.",
            "Used for return value only. Indicates that a campaign does not have a bidding strategy. This prevents the campaign from serving. For example, a campaign may be attached to a manager bidding strategy and the serving account is subsequently unlinked from the manager account. In this case the campaign will automatically be detached from the now inaccessible manager bidding strategy and transition to the INVALID bidding strategy type.",
            "Manual bidding strategy that allows advertiser to set the bid per advertiser-specified action.",
            "Manual click based bidding where user pays per click.",
            "Manual impression based bidding where user pays per thousand impressions.",
            "A bidding strategy that pays a configurable amount per video view.",
            "A bidding strategy that automatically maximizes number of conversions given a daily budget.",
            "An automated bidding strategy that automatically sets bids to maximize revenue while spending your budget.",
            "Page-One Promoted bidding scheme, which sets max cpc bids to target impressions on page one or page one promoted slots on google.com. This enum value is deprecated.",
            "Percent Cpc is bidding strategy where bids are a fraction of the advertised price for some good or service.",
            "Target CPA is an automated bid strategy that sets bids to help get as many conversions as possible at the target cost-per-acquisition (CPA) you set.",
            "Target CPC is an automated bid strategy that sets bids to help get as many clicks as possible at the target cost-per-click (CPC) you set.",
            "Target CPM is an automated bid strategy that sets bids to help get as many impressions as possible at the target cost per one thousand impressions (CPM) you set.",
            "An automated bidding strategy that sets bids so that a certain percentage of search ads are shown at the top of the first page (or other targeted location).",
            "Target Outrank Share is an automated bidding strategy that sets bids based on the target fraction of auctions where the advertiser should outrank a specific competitor. This enum value is deprecated.",
            "Target ROAS is an automated bidding strategy that helps you maximize revenue while averaging a specific target Return On Average Spend (ROAS).",
            "Target Spend is an automated bid strategy that sets your bids to help get as many clicks as possible within your budget."
          ],
          "description": "Output only. The type of bidding strategy. A bidding strategy can be created by setting either the bidding scheme to create a standard bidding strategy or the `bidding_strategy` field to create a portfolio bidding strategy. This field is read-only.",
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "COMMISSION",
            "ENHANCED_CPC",
            "INVALID",
            "MANUAL_CPA",
            "MANUAL_CPC",
            "MANUAL_CPM",
            "MANUAL_CPV",
            "MAXIMIZE_CONVERSIONS",
            "MAXIMIZE_CONVERSION_VALUE",
            "PAGE_ONE_PROMOTED",
            "PERCENT_CPC",
            "TARGET_CPA",
            "TARGET_CPC",
            "TARGET_CPM",
            "TARGET_IMPRESSION_SHARE",
            "TARGET_OUTRANK_SHARE",
            "TARGET_ROAS",
            "TARGET_SPEND"
          ]
        },
        "finalUrlSuffix": {
          "type": "string",
          "description": "Suffix used to append query parameters to landing pages that are served with parallel tracking."
        },
        "engineId": {
          "type": "string",
          "description": "Output only. ID of the campaign in the external engine account. This field is for non-Google Ads account only, for example, Yahoo Japan, Microsoft, Baidu etc. For Google Ads entity, use \"campaign.id\" instead.",
          "readOnly": true
        },
        "lastModifiedTime": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The datetime when this campaign was last modified. The datetime is in the customer's time zone and in \"yyyy-MM-dd HH:mm:ss.ssssss\" format."
        },
        "selectiveOptimizationMode": {
          "description": "Selective optimization mode for this campaign.",
          "type": "string",
          "enumDescriptions": [
            "The selective optimization mode has not been specified.",
            "The selective optimization mode is not known in this version.",
            "Google Ads selective optimization setting has no constraints.",
            "Google Ads selective optimization setting matches Search Ads 360 effective campaign level selective optimization setting."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "UNCONSTRAINED",
            "MATCHES_SEARCH_ADS360_EFFECTIVE_CAMPAIGN_LEVEL_CONFIG"
          ]
        },
        "hotelPropertyAssetSet": {
          "type": "string",
          "description": "Immutable. The resource name for a set of hotel properties for Performance Max for travel goals campaigns."
        },
        "feedTypes": {
          "description": "Output only. Types of feeds that are attached directly to this campaign.",
          "type": "array",
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "Page asset set.",
              "Dynamic education asset set.",
              "Google Merchant Center asset set.",
              "Dynamic real estate asset set.",
              "Dynamic custom asset set.",
              "Dynamic hotels and rentals asset set.",
              "Dynamic flights asset set.",
              "Dynamic travel asset set.",
              "Dynamic local asset set.",
              "Dynamic jobs asset set.",
              "Location sync level asset set.",
              "Business Profile location group asset set.",
              "Chain location group asset set which can be used for both owned locations and affiliate locations.",
              "Static location group asset set which can be used for both owned locations and affiliate locations.",
              "Hotel Property asset set which is used to link a hotel property feed to Performance Max for travel goals campaigns.",
              "Travel Feed asset set type. Can represent either a Hotel feed or a Things to Do (activities) feed."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "PAGE_FEED",
              "DYNAMIC_EDUCATION",
              "MERCHANT_CENTER_FEED",
              "DYNAMIC_REAL_ESTATE",
              "DYNAMIC_CUSTOM",
              "DYNAMIC_HOTELS_AND_RENTALS",
              "DYNAMIC_FLIGHTS",
              "DYNAMIC_TRAVEL",
              "DYNAMIC_LOCAL",
              "DYNAMIC_JOBS",
              "LOCATION_SYNC",
              "BUSINESS_PROFILE_DYNAMIC_LOCATION_GROUP",
              "CHAIN_DYNAMIC_LOCATION_GROUP",
              "STATIC_LOCATION_GROUP",
              "HOTEL_PROPERTY",
              "TRAVEL_FEED"
            ]
          },
          "readOnly": true
        },
        "dynamicSearchAdsSetting": {
          "description": "The setting for controlling Dynamic Search Ads (DSA).",
          "$ref": "GoogleAdsSearchads360V23Resources_Campaign_DynamicSearchAdsSetting"
        },
        "status": {
          "description": "The status of the campaign. When a new campaign is added, the status defaults to ENABLED.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Campaign is active and can show ads.",
            "Campaign has been paused by the user.",
            "Campaign has been removed."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "PAUSED",
            "REMOVED"
          ]
        },
        "trackingSetting": {
          "description": "Output only. Campaign-level settings for tracking information.",
          "$ref": "GoogleAdsSearchads360V23Resources_Campaign_TrackingSetting",
          "readOnly": true
        },
        "travelCampaignSettings": {
          "description": "Settings for Travel campaign.",
          "$ref": "GoogleAdsSearchads360V23Resources_Campaign_TravelCampaignSettings"
        },
        "selectiveOptimization": {
          "description": "Selective optimization setting for this campaign, which includes a set of conversion actions to optimize this campaign towards. This feature only applies to app campaigns that use MULTI_CHANNEL as AdvertisingChannelType and APP_CAMPAIGN or APP_CAMPAIGN_FOR_ENGAGEMENT as AdvertisingChannelSubType.",
          "$ref": "GoogleAdsSearchads360V23Resources_Campaign_SelectiveOptimization"
        },
        "campaignBudget": {
          "type": "string",
          "description": "The resource name of the campaign budget of the campaign."
        },
        "primaryStatus": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The campaign is eligible to serve.",
            "The user-specified campaign status is paused.",
            "The user-specified campaign status is removed.",
            "The user-specified time for this campaign to end has passed.",
            "The campaign may serve in the future.",
            "The campaign or its associated entities have incorrect user-specified settings.",
            "The campaign or its associated entities are limited by user-specified settings.",
            "The automated bidding system is adjusting to user-specified changes to the campaign or associated entities.",
            "The campaign is not eligible to serve."
          ],
          "description": "Output only. The primary status of the campaign. Provides insight into why a campaign is not serving or not serving optimally. Modification to the campaign and its related entities might take a while to be reflected in this status.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ELIGIBLE",
            "PAUSED",
            "REMOVED",
            "ENDED",
            "PENDING",
            "MISCONFIGURED",
            "LIMITED",
            "LEARNING",
            "NOT_ELIGIBLE"
          ],
          "readOnly": true
        },
        "manualCpv": {
          "description": "A bidding strategy that pays a configurable amount per video view.",
          "$ref": "GoogleAdsSearchads360V23Common__ManualCpv"
        },
        "shoppingSetting": {
          "description": "The setting for controlling Shopping campaigns.",
          "$ref": "GoogleAdsSearchads360V23Resources_Campaign_ShoppingSetting"
        },
        "id": {
          "type": "string",
          "format": "int64",
          "description": "Output only. The ID of the campaign.",
          "readOnly": true
        },
        "manualCpa": {
          "description": "Standard Manual CPA bidding strategy. Manual bidding strategy that allows advertiser to set the bid per advertiser-specified action. Supported only for Local Services campaigns.",
          "$ref": "GoogleAdsSearchads360V23Common__ManualCpa"
        },
        "hotelSetting": {
          "description": "Output only. The hotel setting for the campaign.",
          "$ref": "GoogleAdsSearchads360V23Resources_Campaign_HotelSettingInfo",
          "readOnly": true
        },
        "performanceMaxUpgrade": {
          "readOnly": true,
          "description": "Output only. Information about campaigns being upgraded to Performance Max.",
          "$ref": "GoogleAdsSearchads360V23Resources_Campaign_PerformanceMaxUpgrade"
        },
        "pmaxCampaignSettings": {
          "description": "Settings for Performance Max campaign.",
          "$ref": "GoogleAdsSearchads360V23Resources_Campaign_PmaxCampaignSettings"
        },
        "targetingSetting": {
          "description": "Setting for targeting related features.",
          "$ref": "GoogleAdsSearchads360V23Common__TargetingSetting"
        },
        "audienceSetting": {
          "description": "Immutable. Setting for audience related features.",
          "$ref": "GoogleAdsSearchads360V23Resources_Campaign_AudienceSetting"
        },
        "localServicesCampaignSettings": {
          "description": "The Local Services Campaign related settings.",
          "$ref": "GoogleAdsSearchads360V23Resources_Campaign_LocalServicesCampaignSettings"
        },
        "optimizationScore": {
          "description": "Output only. Optimization score of the campaign. Optimization score is an estimate of how well a campaign is set to perform. It ranges from 0% (0.0) to 100% (1.0), with 100% indicating that the campaign is performing at full potential. This field is null for unscored campaigns. See \"About optimization score\" at https://support.google.com/google-ads/answer/9061546. This field is read-only.",
          "type": "number",
          "format": "double",
          "readOnly": true
        },
        "targetCpc": {
          "description": "An automated bidding strategy that sets bids to help get as many clicks as possible at the target cost-per-click (CPC) you set.",
          "$ref": "GoogleAdsSearchads360V23Common__TargetCpc"
        },
        "primaryStatusReasons": {
          "description": "Output only. The primary status reasons of the campaign. Provides insight into why a campaign is not serving or not serving optimally. These reasons are aggregated to determine an overall CampaignPrimaryStatus.",
          "type": "array",
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "The user-specified campaign status is removed.",
              "The user-specified campaign status is paused.",
              "The user-specified time for this campaign to start is in the future.",
              "The user-specified time for this campaign to end has passed.",
              "The campaign is a draft.",
              "The bidding strategy has incorrect user-specified settings.",
              "The bidding strategy is limited by user-specified settings such as lack of data or similar.",
              "The automated bidding system is adjusting to user-specified changes to the bidding strategy.",
              "Campaign could capture more conversion value by adjusting CPA/ROAS targets.",
              "The budget is limiting the campaign's ability to serve.",
              "The budget has incorrect user-specified settings.",
              "Campaign is not targeting all relevant queries.",
              "The user-specified ad group statuses are all paused.",
              "No eligible ad groups exist in this campaign.",
              "The user-specified keyword statuses are all paused.",
              "No eligible keywords exist in this campaign.",
              "The user-specified ad group ad statuses are all paused.",
              "No eligible ad group ads exist in this campaign.",
              "At least one ad in this campaign is limited by policy.",
              "At least one ad in this campaign is disapproved.",
              "Most ads in this campaign are pending review.",
              "The campaign has a lead form goal, and the lead form extension is missing.",
              "The campaign has a call goal, and the call extension is missing.",
              "The lead form extension is under review.",
              "The lead extension is disapproved.",
              "The call extension is under review.",
              "The call extension is disapproved.",
              "No eligible mobile application ad group criteria exist in this campaign.",
              "The user-specified campaign group status is paused.",
              "The user-specified times of all group budgets associated with the parent campaign group has passed.",
              "The app associated with this ACi campaign is not released in the target countries of the campaign.",
              "The app associated with this ACi campaign is partially released in the target countries of the campaign.",
              "At least one asset group in this campaign is disapproved.",
              "At least one asset group in this campaign is limited by policy.",
              "Most asset groups in this campaign are pending review.",
              "No eligible asset groups exist in this campaign.",
              "All asset groups in this campaign are paused.",
              "The campaign has location restrictions but does not specify location targeting."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "CAMPAIGN_REMOVED",
              "CAMPAIGN_PAUSED",
              "CAMPAIGN_PENDING",
              "CAMPAIGN_ENDED",
              "CAMPAIGN_DRAFT",
              "BIDDING_STRATEGY_MISCONFIGURED",
              "BIDDING_STRATEGY_LIMITED",
              "BIDDING_STRATEGY_LEARNING",
              "BIDDING_STRATEGY_CONSTRAINED",
              "BUDGET_CONSTRAINED",
              "BUDGET_MISCONFIGURED",
              "SEARCH_VOLUME_LIMITED",
              "AD_GROUPS_PAUSED",
              "NO_AD_GROUPS",
              "KEYWORDS_PAUSED",
              "NO_KEYWORDS",
              "AD_GROUP_ADS_PAUSED",
              "NO_AD_GROUP_ADS",
              "HAS_ADS_LIMITED_BY_POLICY",
              "HAS_ADS_DISAPPROVED",
              "MOST_ADS_UNDER_REVIEW",
              "MISSING_LEAD_FORM_EXTENSION",
              "MISSING_CALL_EXTENSION",
              "LEAD_FORM_EXTENSION_UNDER_REVIEW",
              "LEAD_FORM_EXTENSION_DISAPPROVED",
              "CALL_EXTENSION_UNDER_REVIEW",
              "CALL_EXTENSION_DISAPPROVED",
              "NO_MOBILE_APPLICATION_AD_GROUP_CRITERIA",
              "CAMPAIGN_GROUP_PAUSED",
              "CAMPAIGN_GROUP_ALL_GROUP_BUDGETS_ENDED",
              "APP_NOT_RELEASED",
              "APP_PARTIALLY_RELEASED",
              "HAS_ASSET_GROUPS_DISAPPROVED",
              "HAS_ASSET_GROUPS_LIMITED_BY_POLICY",
              "MOST_ASSET_GROUPS_UNDER_REVIEW",
              "NO_ASSET_GROUPS",
              "ASSET_GROUPS_PAUSED",
              "MISSING_LOCATION_TARGETING"
            ]
          },
          "readOnly": true
        },
        "excludedParentAssetSetTypes": {
          "type": "array",
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "Page asset set.",
              "Dynamic education asset set.",
              "Google Merchant Center asset set.",
              "Dynamic real estate asset set.",
              "Dynamic custom asset set.",
              "Dynamic hotels and rentals asset set.",
              "Dynamic flights asset set.",
              "Dynamic travel asset set.",
              "Dynamic local asset set.",
              "Dynamic jobs asset set.",
              "Location sync level asset set.",
              "Business Profile location group asset set.",
              "Chain location group asset set which can be used for both owned locations and affiliate locations.",
              "Static location group asset set which can be used for both owned locations and affiliate locations.",
              "Hotel Property asset set which is used to link a hotel property feed to Performance Max for travel goals campaigns.",
              "Travel Feed asset set type. Can represent either a Hotel feed or a Things to Do (activities) feed."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "PAGE_FEED",
              "DYNAMIC_EDUCATION",
              "MERCHANT_CENTER_FEED",
              "DYNAMIC_REAL_ESTATE",
              "DYNAMIC_CUSTOM",
              "DYNAMIC_HOTELS_AND_RENTALS",
              "DYNAMIC_FLIGHTS",
              "DYNAMIC_TRAVEL",
              "DYNAMIC_LOCAL",
              "DYNAMIC_JOBS",
              "LOCATION_SYNC",
              "BUSINESS_PROFILE_DYNAMIC_LOCATION_GROUP",
              "CHAIN_DYNAMIC_LOCATION_GROUP",
              "STATIC_LOCATION_GROUP",
              "HOTEL_PROPERTY",
              "TRAVEL_FEED"
            ]
          },
          "description": "The asset set types that should be excluded from this campaign. Asset set links with these types will not be inherited by this campaign from the upper level. Location group types (GMB_DYNAMIC_LOCATION_GROUP, CHAIN_DYNAMIC_LOCATION_GROUP, and STATIC_LOCATION_GROUP) are child types of LOCATION_SYNC. Therefore, if LOCATION_SYNC is set for this field, all location group asset sets are not allowed to be linked to this campaign, and all Location Extension (LE) and Affiliate Location Extensions (ALE) will not be served under this campaign. Only LOCATION_SYNC is currently supported."
        },
        "optimizationGoalSetting": {
          "description": "Optimization goal setting for this campaign, which includes a set of optimization goal types.",
          "$ref": "GoogleAdsSearchads360V23Resources_Campaign_OptimizationGoalSetting"
        },
        "maximizeConversions": {
          "description": "Standard Maximize Conversions bidding strategy that automatically maximizes number of conversions while spending your budget.",
          "$ref": "GoogleAdsSearchads360V23Common__MaximizeConversions"
        },
        "geoTargetTypeSetting": {
          "description": "The setting for ads geotargeting.",
          "$ref": "GoogleAdsSearchads360V23Resources_Campaign_GeoTargetTypeSetting"
        },
        "demandGenCampaignSettings": {
          "description": "Settings for Demand Gen campaign.",
          "$ref": "GoogleAdsSearchads360V23Resources_Campaign_DemandGenCampaignSettings"
        },
        "localCampaignSetting": {
          "description": "The setting for local campaign.",
          "$ref": "GoogleAdsSearchads360V23Resources_Campaign_LocalCampaignSetting"
        },
        "targetImpressionShare": {
          "description": "Target Impression Share bidding strategy. An automated bidding strategy that sets bids to achieve a chosen percentage of impressions.",
          "$ref": "GoogleAdsSearchads360V23Common__TargetImpressionShare"
        },
        "targetCpm": {
          "description": "A bidding strategy that automatically optimizes cost per thousand impressions.",
          "$ref": "GoogleAdsSearchads360V23Common__TargetCpm"
        },
        "effectiveLabels": {
          "readOnly": true,
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Output only. The resource names of effective labels attached to this campaign. An effective label is a label inherited or directly assigned to this campaign."
        },
        "endDateTime": {
          "type": "string",
          "description": "The last day and time of the campaign in serving customer's timezone in \"yyyy-MM-dd HH:mm:ss\" format. Set the time component to 23:59:59 for daily granularity, time granularity is only supported for some campaign types. On create, defaults to running indefinitely. To set an existing campaign to run indefinitely, clear this field."
        },
        "trackingUrlTemplate": {
          "description": "The URL template for constructing a tracking URL.",
          "type": "string"
        },
        "startDateTime": {
          "description": "The date and time when campaign started in serving. The timestamp is in the customer's time zone and in \"yyyy-MM-dd HH:mm:ss\" format. Set the time component to 00:00:00 for daily granularity, time granularity is only supported for some campaign types.",
          "type": "string"
        },
        "brandGuidelinesEnabled": {
          "type": "boolean",
          "description": "Immutable. Whether Brand Guidelines are enabled for this Campaign. Only applicable to Performance Max campaigns. If enabled, business name and logo assets must be linked as CampaignAssets instead of AssetGroupAssets."
        },
        "frequencyCaps": {
          "description": "A list that limits how often each user will see this campaign's ads.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__FrequencyCapEntry"
          }
        },
        "commission": {
          "description": "Commission is an automatic bidding strategy in which the advertiser pays a certain portion of the conversion value.",
          "$ref": "GoogleAdsSearchads360V23Common__Commission"
        },
        "labels": {
          "readOnly": true,
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Output only. The resource names of labels attached to this campaign."
        },
        "manualCpc": {
          "description": "Standard Manual CPC bidding strategy. Manual click-based bidding where user pays per click.",
          "$ref": "GoogleAdsSearchads360V23Common__ManualCpc"
        },
        "assetAutomationSettings": {
          "description": "Contains the opt-in/out status of each AssetAutomationType. See documentation of each asset automation type enum for default opt in/out behavior.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Resources_Campaign_AssetAutomationSetting"
          }
        },
        "appCampaignSetting": {
          "description": "The setting related to App Campaign.",
          "$ref": "GoogleAdsSearchads360V23Resources_Campaign_AppCampaignSetting"
        },
        "containsEuPoliticalAdvertising": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The campaign contains political advertising targeted towards the EU. The campaign will be restricted from serving ads in the EU.",
            "The campaign does not contain political advertising targeted towards the EU. No additional serving restrictions will apply."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CONTAINS_EU_POLITICAL_ADVERTISING",
            "DOES_NOT_CONTAIN_EU_POLITICAL_ADVERTISING"
          ],
          "description": "The advertiser should self-declare whether this campaign contains political advertising content targeted towards the European Union."
        },
        "listingType": {
          "description": "Immutable. Listing type of ads served for this campaign. Field is restricted for usage with Performance Max campaigns.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "This campaign serves vehicle ads."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "VEHICLES"
          ]
        },
        "adServingOptimizationStatus": {
          "description": "The ad serving optimization status of the campaign.",
          "type": "string",
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "Ad serving is optimized based on CTR for the campaign.",
            "Ad serving is optimized based on CTR * Conversion for the campaign. If the campaign is not in the conversion optimizer bidding strategy, it will default to OPTIMIZED.",
            "Ads are rotated evenly for 90 days, then optimized for clicks.",
            "Show lower performing ads more evenly with higher performing ads, and do not optimize.",
            "Ad serving optimization status is not available."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "OPTIMIZE",
            "CONVERSION_OPTIMIZE",
            "ROTATE",
            "ROTATE_INDEFINITELY",
            "UNAVAILABLE"
          ]
        },
        "thirdPartyIntegrationPartners": {
          "description": "Third-Party integration partners.",
          "$ref": "GoogleAdsSearchads360V23Common__CampaignThirdPartyIntegrationPartners"
        },
        "biddingStrategySystemStatus": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "LEARNING_NEW",
            "LEARNING_SETTING_CHANGE",
            "LEARNING_BUDGET_CHANGE",
            "LEARNING_COMPOSITION_CHANGE",
            "LEARNING_CONVERSION_TYPE_CHANGE",
            "LEARNING_CONVERSION_SETTING_CHANGE",
            "LIMITED_BY_CPC_BID_CEILING",
            "LIMITED_BY_CPC_BID_FLOOR",
            "LIMITED_BY_DATA",
            "LIMITED_BY_BUDGET",
            "LIMITED_BY_LOW_PRIORITY_SPEND",
            "LIMITED_BY_LOW_QUALITY",
            "LIMITED_BY_INVENTORY",
            "MISCONFIGURED_ZERO_ELIGIBILITY",
            "MISCONFIGURED_CONVERSION_TYPES",
            "MISCONFIGURED_CONVERSION_SETTINGS",
            "MISCONFIGURED_SHARED_BUDGET",
            "MISCONFIGURED_STRATEGY_TYPE",
            "PAUSED",
            "UNAVAILABLE",
            "MULTIPLE_LEARNING",
            "MULTIPLE_LIMITED",
            "MULTIPLE_MISCONFIGURED",
            "MULTIPLE"
          ],
          "type": "string",
          "enumDescriptions": [
            "Signals that an unexpected error occurred, for example, no bidding strategy type was found, or no status information was found.",
            "Used for return value only. Represents value unknown in this version.",
            "The bid strategy is active, and AdWords cannot find any specific issues with the strategy.",
            "The bid strategy is learning because it has been recently created or recently reactivated.",
            "The bid strategy is learning because of a recent setting change.",
            "The bid strategy is learning because of a recent budget change.",
            "The bid strategy is learning because of recent change in number of campaigns, ad groups or keywords attached to it.",
            "The bid strategy depends on conversion reporting and the customer recently modified conversion types that were relevant to the bid strategy.",
            "The bid strategy depends on conversion reporting and the customer recently changed their conversion settings.",
            "The bid strategy is limited by its bid ceiling.",
            "The bid strategy is limited by its bid floor.",
            "The bid strategy is limited because there was not enough conversion traffic over the past weeks.",
            "A significant fraction of keywords in this bid strategy are limited by budget.",
            "The bid strategy cannot reach its target spend because its spend has been de-prioritized.",
            "A significant fraction of keywords in this bid strategy have a low Quality Score.",
            "The bid strategy cannot fully spend its budget because of narrow targeting.",
            "Missing conversion tracking (no pings present) and/or remarketing lists for SSC.",
            "The bid strategy depends on conversion reporting and the customer is lacking conversion types that might be reported against this strategy.",
            "The bid strategy depends on conversion reporting and the customer's conversion settings are misconfigured.",
            "There are campaigns outside the bid strategy that share budgets with campaigns included in the strategy.",
            "The campaign has an invalid strategy type and is not serving.",
            "The bid strategy is not active. Either there are no active campaigns, ad groups or keywords attached to the bid strategy. Or there are no active budgets connected to the bid strategy.",
            "This bid strategy currently does not support status reporting.",
            "There were multiple LEARNING_* system statuses for this bid strategy during the time in question.",
            "There were multiple LIMITED_* system statuses for this bid strategy during the time in question.",
            "There were multiple MISCONFIGURED_* system statuses for this bid strategy during the time in question.",
            "There were multiple system statuses for this bid strategy during the time in question."
          ],
          "description": "Output only. The system status of the campaign's bidding strategy."
        },
        "missingEuPoliticalAdvertisingDeclaration": {
          "type": "boolean",
          "description": "Output only. Indicates whether this campaign is missing a declaration about whether it contains political advertising targeted towards the EU and is ineligible for any exemptions. If this field is true, use the contains_eu_political_advertising field to add the required declaration. This field is read-only.",
          "readOnly": true
        },
        "maximizeConversionValue": {
          "description": "Standard Maximize Conversion Value bidding strategy that automatically sets bids to maximize revenue while spending your budget.",
          "$ref": "GoogleAdsSearchads360V23Common__MaximizeConversionValue"
        },
        "baseCampaign": {
          "type": "string",
          "description": "Output only. The resource name of the base campaign of a draft or experiment campaign. For base campaigns, this is equal to `resource_name`. This field is read-only.",
          "readOnly": true
        },
        "targetSpend": {
          "description": "Standard Target Spend bidding strategy that automatically sets your bids to help get as many clicks as possible within your budget.",
          "$ref": "GoogleAdsSearchads360V23Common__TargetSpend"
        },
        "experimentType": {
          "description": "Output only. The type of campaign: normal, draft, or experiment.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "This is a regular campaign.",
            "This is a draft version of a campaign. It has some modifications from a base campaign, but it does not serve or accrue metrics.",
            "This is an experiment version of a campaign. It has some modifications from a base campaign, and a percentage of traffic is being diverted from the BASE campaign to this experiment campaign."
          ],
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BASE",
            "DRAFT",
            "EXPERIMENT"
          ]
        },
        "campaignGroup": {
          "description": "The resource name of the campaign group that this campaign belongs to.",
          "type": "string"
        },
        "realTimeBiddingSetting": {
          "description": "Settings for Real-Time Bidding, a feature only available for campaigns targeting the Ad Exchange network.",
          "$ref": "GoogleAdsSearchads360V23Common__RealTimeBiddingSetting"
        },
        "aiMaxSetting": {
          "description": "Settings for AI Max in search campaigns.",
          "$ref": "GoogleAdsSearchads360V23Resources_Campaign_AiMaxSetting"
        },
        "networkSettings": {
          "description": "The network settings for the campaign.",
          "$ref": "GoogleAdsSearchads360V23Resources_Campaign_NetworkSettings"
        },
        "targetRoas": {
          "description": "Standard Target ROAS bidding strategy that automatically maximizes revenue while averaging a specific target return on ad spend (ROAS).",
          "$ref": "GoogleAdsSearchads360V23Common__TargetRoas"
        },
        "manualCpm": {
          "description": "Standard Manual CPM bidding strategy. Manual impression-based bidding where user pays per thousand impressions.",
          "$ref": "GoogleAdsSearchads360V23Common__ManualCpm"
        },
        "servingStatus": {
          "description": "Output only. The ad serving status of the campaign.",
          "type": "string",
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "Serving.",
            "None.",
            "Ended.",
            "Pending.",
            "Suspended."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SERVING",
            "NONE",
            "ENDED",
            "PENDING",
            "SUSPENDED"
          ],
          "readOnly": true
        },
        "paymentMode": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Pay per interaction.",
            "Pay per conversion value. This mode is only supported by campaigns with AdvertisingChannelType.HOTEL, BiddingStrategyType.COMMISSION, and BudgetType..",
            "Pay per conversion. This mode is only supported by campaigns with AdvertisingChannelType.DISPLAY (excluding AdvertisingChannelSubType.DISPLAY_GMAIL), BiddingStrategyType.TARGET_CPA, and BudgetType.FIXED_CPA. The customer must also be eligible for this mode. See Customer.eligibility_failure_reasons for details.",
            "Pay per guest stay value. This mode is only supported by campaigns with AdvertisingChannelType.HOTEL, BiddingStrategyType.COMMISSION, and BudgetType.STANDARD."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CLICKS",
            "CONVERSION_VALUE",
            "CONVERSIONS",
            "GUEST_STAY"
          ],
          "description": "Payment mode for the campaign."
        },
        "excludedParentAssetFieldTypes": {
          "type": "array",
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "The asset is linked for use as a headline.",
              "The asset is linked for use as a description.",
              "The asset is linked for use as mandatory ad text.",
              "The asset is linked for use as a marketing image.",
              "The asset is linked for use as a media bundle.",
              "The asset is linked for use as a YouTube video.",
              "The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.",
              "The asset is linked for use as a Lead Form extension.",
              "The asset is linked for use as a Promotion extension.",
              "The asset is linked for use as a Callout extension.",
              "The asset is linked for use as a Structured Snippet extension.",
              "The asset is linked for use as a Sitelink.",
              "The asset is linked for use as a Mobile App extension.",
              "The asset is linked for use as a Hotel Callout extension.",
              "The asset is linked for use as a Call extension.",
              "The asset is linked for use as a Price extension.",
              "The asset is linked for use as a long headline.",
              "The asset is linked for use as a business name.",
              "The asset is linked for use as a square marketing image.",
              "The asset is linked for use as a portrait marketing image.",
              "The asset is linked for use as a logo.",
              "The asset is linked for use as a landscape logo.",
              "The asset is linked for use as a non YouTube logo.",
              "The asset is linked for use to select a call-to-action.",
              "The asset is linked for use to select an ad image.",
              "The asset is linked for use as a business logo.",
              "The asset is linked for use as a hotel property in a Performance Max for travel goals campaign.",
              "The asset is linked for use as a Demand Gen carousel card.",
              "The asset is linked for use as a Business Message.",
              "The asset is linked for use as a tall portrait marketing image.",
              "The asset is linked for use as a landing page preview image.",
              "The asset is linked for use as a long description.",
              "The asset is linked for use as a call-to-action."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "HEADLINE",
              "DESCRIPTION",
              "MANDATORY_AD_TEXT",
              "MARKETING_IMAGE",
              "MEDIA_BUNDLE",
              "YOUTUBE_VIDEO",
              "BOOK_ON_GOOGLE",
              "LEAD_FORM",
              "PROMOTION",
              "CALLOUT",
              "STRUCTURED_SNIPPET",
              "SITELINK",
              "MOBILE_APP",
              "HOTEL_CALLOUT",
              "CALL",
              "PRICE",
              "LONG_HEADLINE",
              "BUSINESS_NAME",
              "SQUARE_MARKETING_IMAGE",
              "PORTRAIT_MARKETING_IMAGE",
              "LOGO",
              "LANDSCAPE_LOGO",
              "VIDEO",
              "CALL_TO_ACTION_SELECTION",
              "AD_IMAGE",
              "BUSINESS_LOGO",
              "HOTEL_PROPERTY",
              "DEMAND_GEN_CAROUSEL_CARD",
              "BUSINESS_MESSAGE",
              "TALL_PORTRAIT_MARKETING_IMAGE",
              "LANDING_PAGE_PREVIEW",
              "LONG_DESCRIPTION",
              "CALL_TO_ACTION"
            ]
          },
          "description": "The asset field types that should be excluded from this campaign. Asset links with these field types will not be inherited by this campaign from the upper level."
        },
        "biddingStrategy": {
          "description": "The resource name of the portfolio bidding strategy used by the campaign.",
          "type": "string"
        },
        "targetCpa": {
          "description": "Standard Target CPA bidding strategy that automatically sets bids to help get as many conversions as possible at the target cost-per-acquisition (CPA) you set.",
          "$ref": "GoogleAdsSearchads360V23Common__TargetCpa"
        },
        "vanityPharma": {
          "description": "Describes how unbranded pharma ads will be displayed.",
          "$ref": "GoogleAdsSearchads360V23Resources_Campaign_VanityPharma"
        },
        "advertisingChannelSubType": {
          "description": "Immutable. Optional refinement to `advertising_channel_type`. Must be a valid sub-type of the parent channel type. Can be set only when creating campaigns. After campaign is created, the field can not be changed.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used as a return value only. Represents value unknown in this version.",
            "Mobile app campaigns for Search.",
            "Mobile app campaigns for Display.",
            "AdWords express campaigns for search.",
            "AdWords Express campaigns for display.",
            "Smart Shopping campaigns.",
            "Gmail Ad campaigns.",
            "Smart display campaigns. New campaigns of this sub type cannot be created.",
            "Video TrueView for Action campaigns.",
            "Video campaigns with non-skippable video ads.",
            "App Campaign that lets you easily promote your Android or iOS app across Google's top properties including Search, Play, YouTube, and the Google Display Network.",
            "App Campaign for engagement, focused on driving re-engagement with the app across several of Google's top properties including Search, YouTube, and the Google Display Network.",
            "Campaigns specialized for local advertising.",
            "Shopping Comparison Listing campaigns.",
            "Standard Smart campaigns.",
            "Video campaigns with sequence video ads.",
            "App Campaign for pre registration, specialized for advertising mobile app pre-registration, that targets multiple advertising channels across Google Play, YouTube and Display Network.",
            "Video reach campaign with Target Frequency bidding strategy.",
            "Travel Activities campaigns.",
            "Facebook tracking only social campaigns."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SEARCH_MOBILE_APP",
            "DISPLAY_MOBILE_APP",
            "SEARCH_EXPRESS",
            "DISPLAY_EXPRESS",
            "SHOPPING_SMART_ADS",
            "DISPLAY_GMAIL_AD",
            "DISPLAY_SMART_CAMPAIGN",
            "VIDEO_ACTION",
            "VIDEO_NON_SKIPPABLE",
            "APP_CAMPAIGN",
            "APP_CAMPAIGN_FOR_ENGAGEMENT",
            "LOCAL_CAMPAIGN",
            "SHOPPING_COMPARISON_LISTING_ADS",
            "SMART_CAMPAIGN",
            "VIDEO_SEQUENCE",
            "APP_CAMPAIGN_FOR_PRE_REGISTRATION",
            "VIDEO_REACH_TARGET_FREQUENCY",
            "TRAVEL_ACTIVITIES",
            "SOCIAL_FACEBOOK_TRACKING_ONLY"
          ]
        },
        "videoBrandSafetySuitability": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "This option lets you show ads across all inventory on YouTube and video partners that meet our standards for monetization. This option may be an appropriate choice for brands that want maximum access to the full breadth of videos eligible for ads, including, for example, videos that have strong profanity in the context of comedy or a documentary, or excessive violence as featured in video games.",
            "This option lets you show ads across a wide range of content that's appropriate for most brands, such as popular music videos, documentaries, and movie trailers. The content you can show ads on is based on YouTube's advertiser-friendly content guidelines that take into account, for example, the strength or frequency of profanity, or the appropriateness of subject matter like sensitive events. Ads won't show, for example, on content with repeated strong profanity, strong sexual content, or graphic violence.",
            "This option lets you show ads on a reduced range of content that's appropriate for brands with particularly strict guidelines around inappropriate language and sexual suggestiveness; above and beyond what YouTube's advertiser-friendly content guidelines address. The videos accessible in this sensitive category meet heightened requirements, especially for inappropriate language and sexual suggestiveness. For example, your ads will be excluded from showing on some of YouTube's most popular music videos and other pop culture content across YouTube and Google video partners."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "EXPANDED_INVENTORY",
            "STANDARD_INVENTORY",
            "LIMITED_INVENTORY"
          ],
          "description": "Brand Safety setting at the individual campaign level. Allows for selecting an inventory type to show your ads on content that is the right fit for your brand. See https://support.google.com/google-ads/answer/7515513."
        },
        "urlCustomParameters": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__CustomParameter"
          },
          "description": "The list of mappings used to substitute custom parameter tags in a `tracking_url_template`, `final_urls`, or `mobile_final_urls`."
        },
        "name": {
          "type": "string",
          "description": "The name of the campaign. This field is required and should not be empty when creating new campaigns. It must not contain any null (code point 0x0), NL line feed (code point 0xA) or carriage return (code point 0xD) characters."
        },
        "accessibleBiddingStrategy": {
          "description": "Output only. Resource name of AccessibleBiddingStrategy, a read-only view of the unrestricted attributes of the attached portfolio bidding strategy identified by 'bidding_strategy'. Empty, if the campaign does not use a portfolio strategy. Unrestricted strategy attributes are available to all customers with whom the strategy is shared and are read from the AccessibleBiddingStrategy resource. In contrast, restricted attributes are only available to the owner customer of the strategy and their managers. Restricted attributes can only be read from the BiddingStrategy resource.",
          "type": "string",
          "readOnly": true
        },
        "brandGuidelines": {
          "$ref": "GoogleAdsSearchads360V23Resources_Campaign_BrandGuidelines"
        },
        "advertisingChannelType": {
          "description": "Immutable. The primary serving target for ads within the campaign. The targeting options can be refined in `network_settings`. This field is required and should not be empty when creating new campaigns. Can be set only when creating campaigns. After the campaign is created, the field can not be changed.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Search Network. Includes display bundled, and Search+ campaigns.",
            "Google Display Network only.",
            "Shopping campaigns serve on the shopping property and on google.com search results.",
            "Hotel Ads campaigns.",
            "Video campaigns.",
            "App Campaigns, and App Campaigns for Engagement, that run across multiple channels.",
            "Local ads campaigns.",
            "Smart campaigns.",
            "Performance Max campaigns.",
            "Local services campaigns.",
            "Travel campaigns.",
            "Demand Gen campaigns.",
            "Social campaigns."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SEARCH",
            "DISPLAY",
            "SHOPPING",
            "HOTEL",
            "VIDEO",
            "MULTI_CHANNEL",
            "LOCAL",
            "SMART",
            "PERFORMANCE_MAX",
            "LOCAL_SERVICES",
            "TRAVEL",
            "DEMAND_GEN",
            "SOCIAL"
          ]
        },
        "percentCpc": {
          "description": "Standard Percent Cpc bidding strategy where bids are a fraction of the advertised price for some good or service.",
          "$ref": "GoogleAdsSearchads360V23Common__PercentCpc"
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the campaign. Campaign resource names have the form: `customers/{customer_id}/campaigns/{campaign_id}`"
        },
        "keywordMatchType": {
          "type": "string",
          "enumDescriptions": [
            "No value has been specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Campaign level broad match."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BROAD"
          ],
          "description": "Keyword match type of Campaign. Set to BROAD to set broad matching for all keywords in a campaign."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__Campaign",
      "description": "A campaign."
    },
    "GoogleAdsSearchads360V23Services__BenchmarksProductMetadata": {
      "id": "GoogleAdsSearchads360V23Services__BenchmarksProductMetadata",
      "description": "The metadata associated with a product supported for benchmarks data.",
      "type": "object",
      "properties": {
        "productName": {
          "type": "string",
          "description": "The name of the product."
        },
        "productCode": {
          "type": "string",
          "description": "The identifier of the product. The identifier can be used as inputs for BenchmarksService.GenerateBenchmarksMetrics."
        },
        "marketingObjective": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "The objective is to increase awareness.",
            "The objective is to encourage potential customers to consider the brand or products.",
            "The objective is to drive a specific conversion, such as a purchase."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AWARENESS",
            "CONSIDERATION",
            "ACTION"
          ],
          "description": "The marketing objective associated with the product. A marketing objective is a broader classification of products."
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__PaymentsAccount": {
      "id": "GoogleAdsSearchads360V23Resources__PaymentsAccount",
      "description": "A payments account, which can be used to set up billing for an Ads customer.",
      "type": "object",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the payments account. PaymentsAccount resource names have the form: `customers/{customer_id}/paymentsAccounts/{payments_account_id}`",
          "readOnly": true
        },
        "secondaryPaymentsProfileId": {
          "description": "Output only. A secondary payments profile ID present in uncommon situations, for example, when a sequential liability agreement has been arranged.",
          "type": "string",
          "readOnly": true
        },
        "payingManagerCustomer": {
          "readOnly": true,
          "description": "Output only. Paying manager of this payment account.",
          "type": "string"
        },
        "name": {
          "description": "Output only. The name of the payments account.",
          "type": "string",
          "readOnly": true
        },
        "paymentsProfileId": {
          "description": "Output only. A 12 digit ID used to identify the payments profile associated with the payments account.",
          "type": "string",
          "readOnly": true
        },
        "paymentsAccountId": {
          "readOnly": true,
          "description": "Output only. A 16 digit ID used to identify a payments account.",
          "type": "string"
        },
        "currencyCode": {
          "type": "string",
          "description": "Output only. The currency code of the payments account. A subset of the currency codes derived from the ISO 4217 standard is supported.",
          "readOnly": true
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateConversionCustomVariablesResponse": {
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateConversionCustomVariableResult"
          },
          "description": "All results for the mutate."
        }
      },
      "id": "GoogleAdsSearchads360V23Services__MutateConversionCustomVariablesResponse",
      "description": "Response message for ConversionCustomVariableService.MutateConversionCustomVariables.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateLabelsResponse": {
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "description": "All results for the mutate.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateLabelResult"
          }
        }
      },
      "id": "GoogleAdsSearchads360V23Services__MutateLabelsResponse",
      "description": "Response message for a labels mutate.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__KeywordAndUrlSeed": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__KeywordAndUrlSeed",
      "description": "Keyword And Url Seed",
      "properties": {
        "keywords": {
          "description": "Requires at least one keyword and no more than 20 keywords.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "url": {
          "type": "string",
          "description": "The URL to crawl in order to generate keyword ideas."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateRecommendationSubscriptionResult": {
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Resource name of the subscription that was modified."
        },
        "recommendationSubscription": {
          "description": "The mutated recommendation subscription with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsSearchads360V23Resources__RecommendationSubscription"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateRecommendationSubscriptionResult",
      "description": "Result message for RecommendationSubscriptionService.MutateRecommendationSubscription"
    },
    "GoogleAdsSearchads360V23Services__ListBenchmarksAvailableDatesResponse": {
      "id": "GoogleAdsSearchads360V23Services__ListBenchmarksAvailableDatesResponse",
      "description": "Response message for BenchmarksService.ListBenchmarksAvailableDates.",
      "type": "object",
      "properties": {
        "supportedDates": {
          "description": "The dates that support benchmarks metrics. Data is supported for any dates within this date range inclusive.",
          "$ref": "GoogleAdsSearchads360V23Common__DateRange"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__Value": {
      "id": "GoogleAdsSearchads360V23Common__Value",
      "description": "A generic data container.",
      "type": "object",
      "properties": {
        "doubleValue": {
          "type": "number",
          "format": "double",
          "description": "A double."
        },
        "floatValue": {
          "description": "A float.",
          "type": "number",
          "format": "float"
        },
        "stringValue": {
          "description": "A string.",
          "type": "string"
        },
        "int64Value": {
          "description": "An int64.",
          "type": "string",
          "format": "int64"
        },
        "booleanValue": {
          "description": "A boolean.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__ConversionGoalCampaignConfigOperation": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__ConversionGoalCampaignConfigOperation",
      "description": "A single operation (update) on a conversion goal campaign config.",
      "properties": {
        "updateMask": {
          "type": "string",
          "format": "google-fieldmask",
          "description": "FieldMask that determines which resource fields are modified in an update."
        },
        "update": {
          "description": "Update operation: The conversion goal campaign config is expected to have a valid resource name.",
          "$ref": "GoogleAdsSearchads360V23Resources__ConversionGoalCampaignConfig"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__GenerateAdGroupThemesResponse": {
      "properties": {
        "adGroupKeywordSuggestions": {
          "description": "A list of suggested AdGroup/keyword pairings.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__AdGroupKeywordSuggestion"
          }
        },
        "unusableAdGroups": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__UnusableAdGroup"
          },
          "description": "A list of provided AdGroups that could not be used as suggestions."
        }
      },
      "id": "GoogleAdsSearchads360V23Services__GenerateAdGroupThemesResponse",
      "description": "Response message for KeywordPlanIdeaService.GenerateAdGroupThemes.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__CreateOfflineUserDataJobResponse": {
      "properties": {
        "resourceName": {
          "description": "The resource name of the OfflineUserDataJob.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__CreateOfflineUserDataJobResponse",
      "description": "Response message for OfflineUserDataJobService.CreateOfflineUserDataJob."
    },
    "GoogleAdsSearchads360V23Services__AudienceOperation": {
      "id": "GoogleAdsSearchads360V23Services__AudienceOperation",
      "description": "A single operation (create, update) on an audience.",
      "type": "object",
      "properties": {
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "type": "string",
          "format": "google-fieldmask"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new audience",
          "$ref": "GoogleAdsSearchads360V23Resources__Audience"
        },
        "update": {
          "description": "Update operation: The audience is expected to have a valid resource name.",
          "$ref": "GoogleAdsSearchads360V23Resources__Audience"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__CreateProductLinkRequest": {
      "properties": {
        "productLink": {
          "description": "Required. The product link to be created.",
          "$ref": "GoogleAdsSearchads360V23Resources__ProductLink"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__CreateProductLinkRequest",
      "description": "Request message for ProductLinkService.CreateProductLink.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources_Recommendation_AccountInfo": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources_Recommendation_AccountInfo",
      "description": "Wrapper for information about a Google Ads account.",
      "properties": {
        "customerId": {
          "readOnly": true,
          "description": "Output only. The customer ID of the account.",
          "type": "string",
          "format": "int64"
        },
        "descriptiveName": {
          "description": "Output only. The descriptive name of the account.",
          "type": "string",
          "readOnly": true
        }
      }
    },
    "GoogleAdsSearchads360V23Common__ConceptGroup": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__ConceptGroup",
      "description": "The concept group for the keyword concept.",
      "properties": {
        "name": {
          "description": "The concept group name.",
          "type": "string"
        },
        "type": {
          "description": "The concept group type.",
          "type": "string",
          "enumDescriptions": [
            "The concept group classification different from brand/non-brand. This is a catch all bucket for all classifications that are none of the below.",
            "The value is unknown in this version.",
            "The concept group classification is based on BRAND.",
            "The concept group classification based on BRAND, that didn't fit well with the BRAND classifications. These are generally outliers and can have very few keywords in this type of classification.",
            "These concept group classification is not based on BRAND. This is returned for generic keywords that don't have a brand association."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "BRAND",
            "OTHER_BRANDS",
            "NON_BRAND"
          ]
        }
      }
    },
    "GoogleAdsSearchads360V23Common__ChainFilter": {
      "id": "GoogleAdsSearchads360V23Common__ChainFilter",
      "description": "One chain level filter on location in a feed item set. The filtering logic among all the fields is AND.",
      "type": "object",
      "properties": {
        "locationAttributes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Used to filter chain locations by location attributes. Only chain locations that belong to all of the specified attribute(s) will be in the asset set. If this field is empty, it means no filtering on this field."
        },
        "chainId": {
          "description": "Required. Used to filter chain locations by chain id. Only chain locations that belong to the specified chain will be in the asset set.",
          "type": "string",
          "format": "int64"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__BusinessRegistrationNumber": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__BusinessRegistrationNumber",
      "description": "specific to a local services business registration number.",
      "properties": {
        "number": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Government-issued number for the business."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__SimilarUserListInfo": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__SimilarUserListInfo",
      "description": "SimilarUserList is a list of users which are similar to users from another UserList. These lists are read-only and automatically created by Google.",
      "properties": {
        "seedUserList": {
          "type": "string",
          "description": "Seed UserList from which this list is derived."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__InsightsAudienceDefinition": {
      "properties": {
        "audience": {
          "description": "Required. The audience of interest for which insights are being requested.",
          "$ref": "GoogleAdsSearchads360V23Services__InsightsAudience"
        },
        "dataMonth": {
          "description": "Optional. The one-month range of historical data to use for insights, in the format \"yyyy-mm\". If unset, insights will be returned for the last thirty days of data.",
          "type": "string"
        },
        "baselineAudience": {
          "description": "Optional. The baseline audience. The default, if unspecified, is all people in the same country as the audience of interest.",
          "$ref": "GoogleAdsSearchads360V23Services__InsightsAudience"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__InsightsAudienceDefinition",
      "description": "A structured definition of the audience of interest for which insights are being requested in AudienceInsightsService.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources_ConversionCustomVariable_FloodlightConversionCustomVariableInfo": {
      "id": "GoogleAdsSearchads360V23Resources_ConversionCustomVariable_FloodlightConversionCustomVariableInfo",
      "description": "Information for Search Ads 360 Floodlight Conversion Custom Variables.",
      "type": "object",
      "properties": {
        "floodlightVariableDataType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NUMBER",
            "STRING"
          ],
          "readOnly": true,
          "description": "Output only. Floodlight variable data type defined in Search Ads 360.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Represents a floodlight variable of \"Number\" type. This variable may be assigned to floodlight variables of DIMENSION or METRIC types.",
            "Represents a floodlight variable of \"String\" type. This variable may be assigned to floodlight variables of DIMENSION type."
          ]
        },
        "floodlightVariableType": {
          "description": "Output only. Floodlight variable type defined in Search Ads 360.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Dimension floodlight variable type.",
            "Metric floodlight variable type.",
            "Floodlight variable type is unset."
          ],
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DIMENSION",
            "METRIC",
            "UNSET"
          ]
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateBatchJobResult": {
      "properties": {
        "resourceName": {
          "description": "The resource name of the batch job.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateBatchJobResult",
      "description": "The result for the batch job mutate."
    },
    "GoogleAdsSearchads360V23Common__ListingScopeInfo": {
      "properties": {
        "dimensions": {
          "description": "Scope of the campaign criterion.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__ListingDimensionInfo"
          }
        }
      },
      "id": "GoogleAdsSearchads360V23Common__ListingScopeInfo",
      "description": "A listing scope criterion.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_MoveUnusedBudgetParameters": {
      "id": "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_MoveUnusedBudgetParameters",
      "description": "Parameters to use when applying move unused budget recommendation.",
      "type": "object",
      "properties": {
        "budgetMicrosToMove": {
          "type": "string",
          "format": "int64",
          "description": "Budget amount to move from excess budget to constrained budget. This is a required field."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateAdGroupAdsResponse": {
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateAdGroupAdResult"
          },
          "description": "All results for the mutate."
        }
      },
      "id": "GoogleAdsSearchads360V23Services__MutateAdGroupAdsResponse",
      "description": "Response message for an ad group ad mutate.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateConversionValueRuleSetResult": {
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        },
        "conversionValueRuleSet": {
          "description": "The mutated conversion value rule set with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsSearchads360V23Resources__ConversionValueRuleSet"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__MutateConversionValueRuleSetResult",
      "description": "The result for the conversion value rule set mutate.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__BenchmarksSource": {
      "id": "GoogleAdsSearchads360V23Services__BenchmarksSource",
      "description": "The source used to generate benchmarks metrics for. The ID of the source can be obtained from BenchmarksService.ListBenchmarksSources.",
      "type": "object",
      "properties": {
        "industryVerticalId": {
          "type": "string",
          "format": "int64",
          "description": "The ID of the Industry Vertical."
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__ProductGroupView": {
      "properties": {
        "resourceName": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The resource name of the product group view. Product group view resource names have the form: `customers/{customer_id}/productGroupViews/{ad_group_id}~{criterion_id}`"
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__ProductGroupView",
      "description": "A product group view.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__YearMonth": {
      "properties": {
        "year": {
          "description": "The year (for example, 2020).",
          "type": "string",
          "format": "int64"
        },
        "month": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "January.",
            "February.",
            "March.",
            "April.",
            "May.",
            "June.",
            "July.",
            "August.",
            "September.",
            "October.",
            "November.",
            "December."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "JANUARY",
            "FEBRUARY",
            "MARCH",
            "APRIL",
            "MAY",
            "JUNE",
            "JULY",
            "AUGUST",
            "SEPTEMBER",
            "OCTOBER",
            "NOVEMBER",
            "DECEMBER"
          ],
          "description": "The month of the year. (for example, FEBRUARY)."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__YearMonth",
      "description": "Year month."
    },
    "GoogleAdsSearchads360V23Services__SuggestKeywordThemesRequest": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__SuggestKeywordThemesRequest",
      "description": "Request message for SmartCampaignSuggestService.SuggestKeywordThemes.",
      "properties": {
        "suggestionInfo": {
          "description": "Required. Information to get keyword theme suggestions. Required fields: * suggestion_info.final_url * suggestion_info.language_code * suggestion_info.geo_target Recommended fields: * suggestion_info.business_setting",
          "$ref": "GoogleAdsSearchads360V23Services__SmartCampaignSuggestionInfo"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__UnifiedPageFeedAsset": {
      "id": "GoogleAdsSearchads360V23Common__UnifiedPageFeedAsset",
      "description": "A Unified Page Feed asset.",
      "type": "object",
      "properties": {
        "pageUrl": {
          "type": "string",
          "description": "The webpage that advertisers want to target."
        },
        "labels": {
          "description": "Labels used to group the page urls.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "GoogleAdsSearchads360V23Services__AdGroupAssetOperation": {
      "properties": {
        "updateMask": {
          "type": "string",
          "format": "google-fieldmask",
          "description": "FieldMask that determines which resource fields are modified in an update."
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new ad group asset.",
          "$ref": "GoogleAdsSearchads360V23Resources__AdGroupAsset"
        },
        "update": {
          "description": "Update operation: The ad group asset is expected to have a valid resource name.",
          "$ref": "GoogleAdsSearchads360V23Resources__AdGroupAsset"
        },
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed ad group asset is expected, in this format: `customers/{customer_id}/adGroupAssets/{ad_group_id}~{asset_id}~{field_type}`"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__AdGroupAssetOperation",
      "description": "A single operation (create, update, remove) on an ad group asset."
    },
    "GoogleAdsSearchads360V23Services__BatchJobResult": {
      "properties": {
        "operationIndex": {
          "type": "string",
          "format": "int64",
          "description": "Index of the mutate operation."
        },
        "mutateOperationResponse": {
          "description": "Response for the mutate. May be empty if errors occurred.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateOperationResponse"
        },
        "status": {
          "description": "Details of the errors when processing the operation.",
          "$ref": "GoogleRpc__Status"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__BatchJobResult",
      "description": "An individual batch job result."
    },
    "GoogleAdsSearchads360V23Services__FetchIncentiveResponse": {
      "id": "GoogleAdsSearchads360V23Services__FetchIncentiveResponse",
      "description": "Response from getting the acquisition incentive for a user when they visit a specific marketing page.",
      "type": "object",
      "properties": {
        "incentiveOffer": {
          "description": "Required. The acquisition incentive offer for the user.",
          "$ref": "GoogleAdsSearchads360V23Services__IncentiveOffer"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateCampaignCustomizersRequest": {
      "properties": {
        "operations": {
          "description": "Required. The list of operations to perform on individual campaign customizers.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__CampaignCustomizerOperation"
          }
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        },
        "responseContentType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateCampaignCustomizersRequest",
      "description": "Request message for CampaignCustomizerService.MutateCampaignCustomizers."
    },
    "GoogleAdsSearchads360V23Services__CampaignCustomizerOperation": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__CampaignCustomizerOperation",
      "description": "A single operation (create, remove) on a customizer attribute.",
      "properties": {
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed campaign customizer is expected, in this format: `customers/{customer_id}/campaignCustomizers/{campaign_id}~{customizer_attribute_id}`"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new campaign customizer",
          "$ref": "GoogleAdsSearchads360V23Resources__CampaignCustomizer"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__BiddingSeasonalityAdjustmentOperation": {
      "id": "GoogleAdsSearchads360V23Services__BiddingSeasonalityAdjustmentOperation",
      "description": "A single operation (create, remove, update) on a seasonality adjustment.",
      "type": "object",
      "properties": {
        "updateMask": {
          "type": "string",
          "format": "google-fieldmask",
          "description": "FieldMask that determines which resource fields are modified in an update."
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new seasonality adjustment.",
          "$ref": "GoogleAdsSearchads360V23Resources__BiddingSeasonalityAdjustment"
        },
        "update": {
          "description": "Update operation: The seasonality adjustment is expected to have a valid resource name.",
          "$ref": "GoogleAdsSearchads360V23Resources__BiddingSeasonalityAdjustment"
        },
        "remove": {
          "description": "Remove operation: A resource name for the removed seasonality adjustment is expected, in this format: `customers/{customer_id}/biddingSeasonalityAdjustments/{seasonality_adjustment_id}`",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__Segments": {
      "id": "GoogleAdsSearchads360V23Common__Segments",
      "description": "Segment only fields.",
      "type": "object",
      "properties": {
        "geoTargetRegion": {
          "description": "Resource name of the geo target constant that represents a region.",
          "type": "string"
        },
        "productLanguage": {
          "type": "string",
          "description": "Resource name of the language constant for the language of the product."
        },
        "verticalAdsListingCountry": {
          "description": "The country where the vertical ads listing is located.",
          "type": "string"
        },
        "productSoldTypeL5": {
          "description": "Type (level 5) of the product sold.",
          "type": "string"
        },
        "productTypeL1": {
          "type": "string",
          "description": "Type (level 1) of the product."
        },
        "productSoldBiddingCategoryLevel5": {
          "type": "string",
          "description": "Bidding category (level 5) of the product sold."
        },
        "productCustomAttribute2": {
          "description": "Custom attribute 2 of the product.",
          "type": "string"
        },
        "verticalAdsListing": {
          "type": "string",
          "description": "The listing associated with a listing impression, click or conversion."
        },
        "productSoldCustomAttribute3": {
          "description": "Custom attribute 3 of the product sold.",
          "type": "string"
        },
        "verticalAdsVertical": {
          "description": "Type of vertical ad, such as Vacation Rentals, Car Rentals, or Events, used to categorize and segment data in the context of Vertical Ads.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Hotels travel vertical.",
            "Vacation rentals travel vertical.",
            "Rental cars travel vertical.",
            "Events travel vertical.",
            "Things to do travel vertical.",
            "Flights travel vertical."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HOTELS",
            "VACATION_RENTALS",
            "RENTAL_CARS",
            "EVENTS",
            "THINGS_TO_DO",
            "FLIGHTS"
          ]
        },
        "productSoldTypeL1": {
          "type": "string",
          "description": "Type (level 1) of the product sold."
        },
        "month": {
          "description": "Month as represented by the date of the first day of a month. Formatted as yyyy-MM-dd.",
          "type": "string"
        },
        "productBiddingCategoryLevel1": {
          "description": "Bidding category (level 1) of the product.",
          "type": "string"
        },
        "productSoldTypeL2": {
          "type": "string",
          "description": "Type (level 2) of the product sold."
        },
        "assetInteractionTarget": {
          "description": "Only used with CustomerAsset, CampaignAsset and AdGroupAsset metrics. Indicates whether the interaction metrics occurred on the asset itself or a different asset or ad unit. Interactions (for example, clicks) are counted across all the parts of the served ad (for example, Ad itself and other components like Sitelinks) when they are served together. When interaction_on_this_asset is true, it means the interactions are on this specific asset and when interaction_on_this_asset is false, it means the interactions is not on this specific asset but on other parts of the served ad this asset is served with.",
          "$ref": "GoogleAdsSearchads360V23Common__AssetInteractionTarget"
        },
        "productSoldBrand": {
          "type": "string",
          "description": "Brand of the product sold."
        },
        "productTypeL4": {
          "description": "Type (level 4) of the product.",
          "type": "string"
        },
        "verticalAdsListingRegion": {
          "description": "The region where the vertical ads listing is located.",
          "type": "string"
        },
        "productChannelExclusivity": {
          "description": "Channel exclusivity of the product.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The item is sold through one channel only, either local stores or online as indicated by its ProductChannel.",
            "The item is matched to its online or local stores counterpart, indicating it is available for purchase in both ShoppingProductChannels."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SINGLE_CHANNEL",
            "MULTI_CHANNEL"
          ]
        },
        "geoTargetCountry": {
          "description": "Resource name of the geo target constant that represents a country.",
          "type": "string"
        },
        "productTypeL2": {
          "description": "Type (level 2) of the product.",
          "type": "string"
        },
        "conversionAction": {
          "description": "Resource name of the conversion action.",
          "type": "string"
        },
        "productCustomAttribute4": {
          "type": "string",
          "description": "Custom attribute 4 of the product."
        },
        "week": {
          "description": "Week as defined as Monday through Sunday, and represented by the date of Monday. Formatted as yyyy-MM-dd.",
          "type": "string"
        },
        "productItemId": {
          "description": "Item ID of the product.",
          "type": "string"
        },
        "geoTargetPostalCode": {
          "type": "string",
          "description": "Resource name of the geo target constant that represents a postal code."
        },
        "productBiddingCategoryLevel4": {
          "description": "Bidding category (level 4) of the product.",
          "type": "string"
        },
        "productSoldCustomAttribute4": {
          "type": "string",
          "description": "Custom attribute 4 of the product sold."
        },
        "rawEventConversionDimensions": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__Value"
          },
          "description": "The raw event conversion dimensions."
        },
        "productCustomAttribute1": {
          "description": "Custom attribute 1 of the product.",
          "type": "string"
        },
        "verticalAdsPartnerAccount": {
          "type": "string",
          "format": "int64",
          "description": "A specific partner account within a Partner Center (for example, Hotel Center) that supplies inventory feed data for Vertical Ads."
        },
        "productSoldBiddingCategoryLevel1": {
          "type": "string",
          "description": "Bidding category (level 1) of the product sold."
        },
        "geoTargetCity": {
          "type": "string",
          "description": "Resource name of the geo target constant that represents a city."
        },
        "productTitle": {
          "description": "Title of the product.",
          "type": "string"
        },
        "productSoldTypeL3": {
          "description": "Type (level 3) of the product sold.",
          "type": "string"
        },
        "year": {
          "description": "Year, formatted as yyyy.",
          "type": "integer",
          "format": "int32"
        },
        "date": {
          "type": "string",
          "description": "Date to which metrics apply. yyyy-MM-dd format, for example, 2018-04-17."
        },
        "productSoldBiddingCategoryLevel2": {
          "type": "string",
          "description": "Bidding category (level 2) of the product sold."
        },
        "productBiddingCategoryLevel2": {
          "type": "string",
          "description": "Bidding category (level 2) of the product."
        },
        "productBrand": {
          "description": "Brand of the product.",
          "type": "string"
        },
        "adFormatType": {
          "type": "string",
          "enumDescriptions": [
            "No value has been specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Value assigned to formats (such as experimental formats) which don't support format segmentation in Video and Demand Gen campaigns. Note that these formats may change categories in the future, for example if an experimental format is exposed or a new format is added. We strongly recommend to not rely on this field for long term decisions.",
            "Value assigned for Video TrueView for Action campaigns statistics. Note that statistics with this value may change categories in the future, for example if format segmentation support is added for new campaign types. We strongly recommend to not rely on this field for long term decisions.",
            "Skippable in-stream ads.",
            "Non-skippable in-stream ads.",
            "In-feed YouTube or image ads served on feed surfaces (e.g. Discover Feed, YouTube Home, etc.).",
            "Short (\u003c7 secs) in-stream non-skippable YouTube ads.",
            "Outstream ads.",
            "Masthead ads.",
            "Audio ads.",
            "Vertical full-screen video or image ads served on YouTube Shorts or BrandConnect ads served as organic YouTube Shorts.",
            "Image ads served when a user pauses an organic YouTube video on a TV screen. These ads are displayed directly next to the static video frame on the pause screen itself. Note that this does not include Demand Gen image ads served on the ad panel below or on top of a paused organic video. Those are reported under INFEED.",
            "An ad format that promotes a specific entity within a vertical, for example, a hotel ad in the Travel vertical on Search.",
            "An ad format for a booking link call-to-action within a vertical ad, for example a 'Book Now' link for a hotel ad.",
            "A standard text ad format. This is currently only used for ads on the Search network."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "OTHER",
            "UNSEGMENTED",
            "INSTREAM_SKIPPABLE",
            "INSTREAM_NON_SKIPPABLE",
            "INFEED",
            "BUMPER",
            "OUTSTREAM",
            "MASTHEAD",
            "AUDIO",
            "SHORTS",
            "PAUSE",
            "VERTICAL_ADS_PROMOTION",
            "VERTICAL_ADS_BOOKING_LINK",
            "TEXT"
          ],
          "description": "Ad Format type."
        },
        "conversionActionName": {
          "type": "string",
          "description": "Conversion action name."
        },
        "dayOfWeek": {
          "description": "Day of the week, for example, MONDAY.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Monday.",
            "Tuesday.",
            "Wednesday.",
            "Thursday.",
            "Friday.",
            "Saturday.",
            "Sunday."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MONDAY",
            "TUESDAY",
            "WEDNESDAY",
            "THURSDAY",
            "FRIDAY",
            "SATURDAY",
            "SUNDAY"
          ]
        },
        "keyword": {
          "description": "Keyword criterion.",
          "$ref": "GoogleAdsSearchads360V23Common__Keyword"
        },
        "productStoreId": {
          "description": "Store ID of the product.",
          "type": "string"
        },
        "productSoldTypeL4": {
          "type": "string",
          "description": "Type (level 4) of the product sold."
        },
        "productCustomAttribute3": {
          "type": "string",
          "description": "Custom attribute 3 of the product."
        },
        "productTypeL3": {
          "description": "Type (level 3) of the product.",
          "type": "string"
        },
        "productSoldCondition": {
          "description": "Condition of the product sold.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The product condition is new.",
            "The product condition is refurbished.",
            "The product condition is used."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NEW",
            "REFURBISHED",
            "USED"
          ]
        },
        "verticalAdsListingCity": {
          "description": "The city where the vertical ads listing is located.",
          "type": "string"
        },
        "productBiddingCategoryLevel5": {
          "description": "Bidding category (level 5) of the product.",
          "type": "string"
        },
        "geoTargetMetro": {
          "description": "Resource name of the geo target constant that represents a metro.",
          "type": "string"
        },
        "productSoldCustomAttribute2": {
          "type": "string",
          "description": "Custom attribute 2 of the product sold."
        },
        "conversionActionCategory": {
          "description": "Conversion action category.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Default category.",
            "User visiting a page.",
            "Purchase, sales, or \"order placed\" event.",
            "Signup user action.",
            "Software download action (as for an app).",
            "The addition of items to a shopping cart or bag on an advertiser site.",
            "When someone enters the checkout flow on an advertiser site.",
            "The start of a paid subscription for a product or service.",
            "A call to indicate interest in an advertiser's offering.",
            "A lead conversion imported from an external source into Google Ads.",
            "A submission of a form on an advertiser site indicating business interest.",
            "A booking of an appointment with an advertiser's business.",
            "A quote or price estimate request.",
            "A search for an advertiser's business location with intention to visit.",
            "A click to an advertiser's partner's site.",
            "A call, SMS, email, chat or other type of contact to an advertiser.",
            "A website engagement event such as long site time or a Google Analytics (GA) Smart Goal. Intended to be used for GA, Firebase, GA Gold goal imports.",
            "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."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DEFAULT",
            "PAGE_VIEW",
            "PURCHASE",
            "SIGNUP",
            "DOWNLOAD",
            "ADD_TO_CART",
            "BEGIN_CHECKOUT",
            "SUBSCRIBE_PAID",
            "PHONE_CALL_LEAD",
            "IMPORTED_LEAD",
            "SUBMIT_LEAD_FORM",
            "BOOK_APPOINTMENT",
            "REQUEST_QUOTE",
            "GET_DIRECTIONS",
            "OUTBOUND_CLICK",
            "CONTACT",
            "ENGAGEMENT",
            "STORE_VISIT",
            "STORE_SALE",
            "QUALIFIED_LEAD",
            "CONVERTED_LEAD"
          ]
        },
        "verticalAdsHotelClass": {
          "description": "The class of the hotel. Generally in the range of 1 to 5 stars, but fully customizable in the hotel feed.",
          "type": "string",
          "format": "int64"
        },
        "conversionCustomDimensions": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__Value"
          },
          "description": "The conversion custom dimensions."
        },
        "quarter": {
          "type": "string",
          "description": "Quarter as represented by the date of the first day of a quarter. Uses the calendar year for quarters, for example, the second quarter of 2018 starts on 2018-04-01. Formatted as yyyy-MM-dd."
        },
        "productTypeL5": {
          "description": "Type (level 5) of the product.",
          "type": "string"
        },
        "productBiddingCategoryLevel3": {
          "type": "string",
          "description": "Bidding category (level 3) of the product."
        },
        "productCondition": {
          "description": "Condition of the product.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The product condition is new.",
            "The product condition is refurbished.",
            "The product condition is used."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NEW",
            "REFURBISHED",
            "USED"
          ]
        },
        "productCountry": {
          "type": "string",
          "description": "Resource name of the geo target constant for the country of sale of the product."
        },
        "hour": {
          "description": "Hour of day as a number between 0 and 23, inclusive.",
          "type": "integer",
          "format": "int32"
        },
        "productChannel": {
          "description": "Channel of the product.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The item is sold online.",
            "The item is sold in local stores."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ONLINE",
            "LOCAL"
          ]
        },
        "productSoldBiddingCategoryLevel4": {
          "type": "string",
          "description": "Bidding category (level 4) of the product sold."
        },
        "productSoldCustomAttribute1": {
          "type": "string",
          "description": "Custom attribute 1 of the product sold."
        },
        "productSoldBiddingCategoryLevel3": {
          "type": "string",
          "description": "Bidding category (level 3) of the product sold."
        },
        "verticalAdsEventParticipantDisplayNames": {
          "description": "The display names of participants in an event listing, like performers, speakers, or teams.",
          "type": "string"
        },
        "verticalAdsListingBrand": {
          "type": "string",
          "description": "The brand associated with a specific listing within a Vertical Ads context, for example, the brand of a car rental, a vacation home, or an event."
        },
        "device": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Mobile devices with full browsers.",
            "Tablets with full browsers.",
            "Computers.",
            "Smart TVs and game consoles.",
            "Other device types."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MOBILE",
            "TABLET",
            "DESKTOP",
            "CONNECTED_TV",
            "OTHER"
          ],
          "description": "Device to which metrics apply."
        },
        "productSoldTitle": {
          "description": "Title of the product sold.",
          "type": "string"
        },
        "adNetworkType": {
          "description": "Ad network type.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Google search.",
            "Search partners.",
            "Display Network.",
            "Cross-network.",
            "YouTube",
            "Google TV",
            "",
            "Gmail",
            "Discover Feed",
            "Maps"
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SEARCH",
            "SEARCH_PARTNERS",
            "CONTENT",
            "MIXED",
            "YOUTUBE",
            "GOOGLE_TV",
            "GOOGLE_OWNED_CHANNELS",
            "GMAIL",
            "DISCOVER",
            "MAPS"
          ]
        },
        "productCustomAttribute0": {
          "description": "Custom attribute 0 of the product.",
          "type": "string"
        },
        "productSoldItemId": {
          "description": "Item ID of the product sold.",
          "type": "string"
        },
        "productSoldCustomAttribute0": {
          "type": "string",
          "description": "Custom attribute 0 of the product sold."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__IpBlockInfo": {
      "properties": {
        "ipAddress": {
          "description": "The IP address or the CIDR block to be excluded.",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V23Common__IpBlockInfo",
      "description": "An IpBlock criterion used for excluding IP addresses. We support excluding individual IP addresses or CIDR blocks. Create one IpBlockInfo criterion for each individual IP address or CIDR block you want to exclude. You can exclude up to 500 IP addresses per campaign. For more details, see [Exclude IP addresses](//support.google.com/google-ads/answer/2456098). IPv4 examples: * Individual address: 192.168.0.1 * Individual address as CIDR block: 192.168.0.1/32 * CIDR block: 192.168.0.0/24 IPv6 examples: * Individual address: 2001:db8:a0b:12f0::1 * Individual address as CIDR block: 2001:db8:a0b:12f0::1/128 * CIDR block: 2001:db8::/48",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__IdentityVerificationRequirement": {
      "properties": {
        "verificationStartDeadlineTime": {
          "type": "string",
          "description": "The deadline to start verification in \"yyyy-MM-dd HH:mm:ss\" format."
        },
        "verificationCompletionDeadlineTime": {
          "description": "The deadline to submit verification.",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__IdentityVerificationRequirement",
      "description": "Information regarding the verification requirement for a verification program type.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateRecommendationSubscriptionResponse": {
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateRecommendationSubscriptionResult"
          },
          "description": "Results, one per operation."
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors) we return the RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateRecommendationSubscriptionResponse",
      "description": "Response message for RecommendationSubscriptionService.MutateRecommendationSubscription"
    },
    "GoogleAdsSearchads360V23Services__MutateGoalsRequest": {
      "id": "GoogleAdsSearchads360V23Services__MutateGoalsRequest",
      "description": "Request message for GoalService.MutateGoals.",
      "type": "object",
      "properties": {
        "partialFailure": {
          "description": "Optional. If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        },
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__GoalOperation"
          },
          "description": "Required. The list of operations to perform on the goals."
        },
        "validateOnly": {
          "description": "Optional. If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__TopicInfo": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__TopicInfo",
      "description": "A topic criterion. Use topics to target or exclude placements in the Google Display Network based on the category into which the placement falls (for example, \"Pets & Animals/Pets/Dogs\").",
      "properties": {
        "topicConstant": {
          "description": "The Topic Constant resource name.",
          "type": "string"
        },
        "path": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The category to target or exclude. Each subsequent element in the array describes a more specific sub-category. For example, \"Pets & Animals\", \"Pets\", \"Dogs\" represents the \"Pets & Animals/Pets/Dogs\" category."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__ThirdPartyIntegrationPartnerData": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__ThirdPartyIntegrationPartnerData",
      "description": "Contains third party measurement partner related data for video campaigns.",
      "properties": {
        "clientId": {
          "description": "The client ID that allows the measurement partner to join multiple campaigns for a particular advertiser.",
          "type": "string"
        },
        "thirdPartyPlacementId": {
          "type": "string",
          "description": "The third party placement ID that maps the measurement partner data with a campaign (or a group of related campaigns) specific data."
        }
      }
    },
    "GoogleAdsSearchads360V23Resources_SmartCampaignSetting_AdOptimizedBusinessProfileSetting": {
      "properties": {
        "includeLeadForm": {
          "type": "boolean",
          "description": "Enabling a lead form on your business profile enables prospective customers to contact your business by filling out a simple form, and you'll receive their information through email."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources_SmartCampaignSetting_AdOptimizedBusinessProfileSetting",
      "description": "Settings for configuring a business profile optimized for ads as this campaign's landing page."
    },
    "GoogleAdsSearchads360V23Common__ProductTypeFullInfo": {
      "id": "GoogleAdsSearchads360V23Common__ProductTypeFullInfo",
      "description": "Full type of a product offer. This listing dimension is deprecated and it is supported only in Display campaigns.",
      "type": "object",
      "properties": {
        "value": {
          "type": "string",
          "description": "String value of the product full type."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__SearchAds360ResponsiveSearchAdInfo": {
      "id": "GoogleAdsSearchads360V23Common__SearchAds360ResponsiveSearchAdInfo",
      "description": "A Search Ads 360 responsive search ad.",
      "type": "object",
      "properties": {
        "path1": {
          "type": "string",
          "description": "Text appended to the auto-generated visible URL with a delimiter."
        },
        "adTrackingId": {
          "type": "string",
          "format": "int64",
          "description": "The tracking id of the ad."
        },
        "path2": {
          "type": "string",
          "description": "Text appended to path1 with a delimiter."
        },
        "headlines": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AdTextAsset"
          },
          "description": "List of text assets for headlines. When the ad serves the headlines will be selected from this list."
        },
        "descriptions": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AdTextAsset"
          },
          "description": "List of text assets for descriptions. When the ad serves the descriptions will be selected from this list."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__TargetRoasSimulationPointList": {
      "properties": {
        "points": {
          "description": "Projected metrics for a series of target ROAS amounts.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__TargetRoasSimulationPoint"
          }
        }
      },
      "id": "GoogleAdsSearchads360V23Common__TargetRoasSimulationPointList",
      "description": "A container for simulation points for simulations of type TARGET_ROAS.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateUserListsRequest": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateUserListsRequest",
      "description": "Request message for UserListService.MutateUserLists.",
      "properties": {
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__UserListOperation"
          },
          "description": "Required. The list of operations to perform on individual user lists."
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__SearchSearchAds360Request": {
      "properties": {
        "query": {
          "description": "Required. The query string.",
          "type": "string"
        },
        "pageToken": {
          "type": "string",
          "description": "Token of the page to retrieve. If not specified, the first page of results will be returned. Use the value obtained from `next_page_token` in the previous response in order to request the next page of results."
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed.",
          "type": "boolean"
        },
        "pageSize": {
          "type": "integer",
          "format": "int32",
          "description": "Number of elements to retrieve in a single page. When too large a page is requested, the server may decide to further limit the number of returned resources."
        },
        "searchSettings": {
          "description": "Settings that allow users to specify request count, summary row, and results behavior.",
          "$ref": "GoogleAdsSearchads360V23Services__SearchSettings"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__SearchSearchAds360Request",
      "description": "Request message for SearchAds360Service.Search.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__ActivityCityInfo": {
      "properties": {
        "value": {
          "type": "string",
          "description": "String value of the activity city. The Geo Target Constant resource name."
        }
      },
      "id": "GoogleAdsSearchads360V23Common__ActivityCityInfo",
      "description": "The city where the travel activity is available.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateCustomerSkAdNetworkConversionValueSchemaRequest": {
      "properties": {
        "enableWarnings": {
          "description": "Optional. If true, enables returning warnings. Warnings return error messages and error codes without blocking the execution of the mutate operation.",
          "type": "boolean"
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "operation": {
          "description": "The operation to perform.",
          "$ref": "GoogleAdsSearchads360V23Services__CustomerSkAdNetworkConversionValueSchemaOperation"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateCustomerSkAdNetworkConversionValueSchemaRequest",
      "description": "Request message for CustomerSkAdNetworkConversionValueSchemaService.MutateCustomerSkAdNetworkConversionValueSchema."
    },
    "GoogleAdsSearchads360V23Resources__AndroidPrivacySharedKeyGoogleNetworkType": {
      "properties": {
        "resourceName": {
          "description": "Output only. The resource name of the Android privacy shared key. Android privacy shared key resource names have the form: `customers/{customer_id}/androidPrivacySharedKeyGoogleNetworkTypes/{campaign_id}~{android_privacy_interaction_type}~{android_privacy_network_type}~{android_privacy_interaction_date(yyyy-mm-dd)}`",
          "type": "string",
          "readOnly": true
        },
        "androidPrivacyInteractionDate": {
          "type": "string",
          "description": "Output only. The interaction date used in the shared key encoding in the format of \"YYYY-MM-DD\" in UTC timezone.",
          "readOnly": true
        },
        "androidPrivacyNetworkType": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "SEARCH",
            "DISPLAY",
            "YOUTUBE"
          ],
          "description": "Output only. The network type enum used in the share key encoding.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Search Network.",
            "Display Network.",
            "YouTube Network."
          ]
        },
        "campaignId": {
          "readOnly": true,
          "description": "Output only. The campaign ID used in the share key encoding.",
          "type": "string",
          "format": "int64"
        },
        "androidPrivacyInteractionType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CLICK",
            "ENGAGED_VIEW",
            "VIEW"
          ],
          "readOnly": true,
          "description": "Output only. The interaction type enum used in the share key encoding.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "The physical click interaction type.",
            "The 10 seconds engaged view interaction type.",
            "The view (ad impression) interaction type."
          ]
        },
        "sharedNetworkTypeKey": {
          "readOnly": true,
          "description": "Output only. 128 bit hex string of the encoded shared network type key, including a '0x' prefix. This key can be used to do a bitwise OR operator with the aggregate conversion key to create a full aggregation key to retrieve the Aggregate API Report in Android Privacy Sandbox.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__AndroidPrivacySharedKeyGoogleNetworkType",
      "description": "An Android privacy shared key view for Google network type key."
    },
    "GoogleAdsSearchads360V23Services__ScheduleExperimentMetadata": {
      "id": "GoogleAdsSearchads360V23Services__ScheduleExperimentMetadata",
      "description": "The metadata of the scheduled experiment.",
      "type": "object",
      "properties": {
        "experiment": {
          "type": "string",
          "description": "Required. The scheduled experiment."
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__RecommendationSubscription": {
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the recommendation subscription. `customers/{customer_id}/recommendationSubscriptions/{recommendation_type}`"
        },
        "modifyDateTime": {
          "type": "string",
          "description": "Output only. Contains the time in microseconds, when the Recommendation Subscription was last updated. The datetime is in the customer's time zone and in \"yyyy-MM-dd HH:mm:ss.ssssss\" format.",
          "readOnly": true
        },
        "status": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Output-only. Represents a format not yet defined in this enum.",
            "A subscription in the enabled state will automatically apply any recommendations of that type.",
            "Recommendations of the relevant type will not be automatically applied. Subscriptions cannot be deleted. Once created, they can only move between enabled and paused states."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "PAUSED"
          ],
          "description": "Required. Status of the subscription, either enabled or paused."
        },
        "type": {
          "description": "Required. Immutable. The type of recommendation subscribed to.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Provides optimized budget recommendations for campaigns.",
            "Keyword recommendation.",
            "Recommendation to add a new text ad.",
            "Recommendation to update a campaign to use a Target CPA bidding strategy.",
            "Recommendation to update a campaign to use the Maximize Conversions bidding strategy.",
            "Recommendation to enable Enhanced Cost Per Click for a campaign.",
            "Recommendation to start showing your campaign's ads on Google Search Partners Websites.",
            "Recommendation to update a campaign to use a Maximize Clicks bidding strategy.",
            "Recommendation to start using the \"Optimize\" ad rotation setting for the given ad group.",
            "Recommendation to change an existing keyword from one match type to a broader match type.",
            "Recommendation to move unused budget from one budget to a constrained budget.",
            "Budget recommendation for campaigns that are expected to become budget-constrained in the future (as opposed to the CAMPAIGN_BUDGET recommendation, which applies to campaigns that are currently budget-constrained).",
            "Recommendation to update a campaign to use a Target ROAS bidding strategy.",
            "Recommendation to add a new responsive search ad.",
            "Budget recommendation for campaigns whose ROI is predicted to increase with a budget adjustment.",
            "Recommendation to add broad match versions of keywords for fully automated conversion-based bidding campaigns.",
            "Recommendation to add new responsive search ad assets.",
            "Recommendation to upgrade a Smart Shopping campaign to a Performance Max campaign.",
            "Recommendation to improve strength of responsive search ad.",
            "Recommendation to update a campaign to use Display Expansion.",
            "Recommendation to upgrade a Local campaign to a Performance Max campaign.",
            "Recommendation to raise target CPA when it is too low and there are very few or no conversions. It is applied asynchronously and can take minutes depending on the number of ad groups there are in the related campaign.",
            "Recommendation to raise the budget in advance of a seasonal event that is forecasted to increase traffic, and change bidding strategy from maximize conversion value to target ROAS.",
            "Recommendation to add callout assets to campaign or customer level.",
            "Recommendation to add sitelink assets to campaign or customer level.",
            "Recommendation to add call assets to campaign or customer level.",
            "Recommendation to add the age group attribute to offers that are demoted because of a missing age group.",
            "Recommendation to add a color to offers that are demoted because of a missing color.",
            "Recommendation to add a gender to offers that are demoted because of a missing gender.",
            "Recommendation to add a GTIN (Global Trade Item Number) to offers that are demoted because of a missing GTIN.",
            "Recommendation to add more identifiers to offers that are demoted because of missing identifiers.",
            "Recommendation to add the size to offers that are demoted because of a missing size.",
            "Recommendation informing a customer about a campaign that cannot serve because no products are being targeted.",
            "The shopping recommendation informing a customer about campaign with a high percentage of disapproved products.",
            "Recommendation to create a catch-all campaign that targets all offers.",
            "Recommendation to fix Merchant Center account suspension issues.",
            "Recommendation to fix Merchant Center account suspension warning issues.",
            "Recommendation to migrate offers targeted by Regular Shopping Campaigns to existing Performance Max campaigns.",
            "Recommendation to enable dynamic image extensions on the account, allowing Google to find the best images from ad landing pages and complement text ads.",
            "Recommendation to raise Target CPA based on Google predictions modeled from past conversions. It is applied asynchronously and can take minutes depending on the number of ad groups there are in the related campaign.",
            "Recommendation to lower Target ROAS.",
            "Recommendation to opt into Performance Max campaigns.",
            "Recommendation to improve the asset group strength of a Performance Max campaign to an \"Excellent\" rating.",
            "Recommendation to migrate Dynamic Search Ads to Performance Max campaigns.",
            "Recommendation to set a target CPA for campaigns that do not have one specified, in advance of a seasonal event that is forecasted to increase traffic.",
            "Recommendation to set a target CPA for campaigns that do not have one specified.",
            "Recommendation to set a target ROAS for campaigns that do not have one specified.",
            "Recommendation to update a campaign to use the Maximize Conversion Value bidding strategy.",
            "Recommendation to deploy Google Tag on more pages.",
            "Recommendation to turn on Final URL expansion for your Performance Max campaigns.",
            "Recommendation to update a customer list that hasn't been updated in the last 90 days.",
            "Recommendation to create a custom audience.",
            "Recommendation to add lead form assets to campaign or customer level.",
            "Recommendation to improve the strength of ads in Demand Gen campaigns."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CAMPAIGN_BUDGET",
            "KEYWORD",
            "TEXT_AD",
            "TARGET_CPA_OPT_IN",
            "MAXIMIZE_CONVERSIONS_OPT_IN",
            "ENHANCED_CPC_OPT_IN",
            "SEARCH_PARTNERS_OPT_IN",
            "MAXIMIZE_CLICKS_OPT_IN",
            "OPTIMIZE_AD_ROTATION",
            "KEYWORD_MATCH_TYPE",
            "MOVE_UNUSED_BUDGET",
            "FORECASTING_CAMPAIGN_BUDGET",
            "TARGET_ROAS_OPT_IN",
            "RESPONSIVE_SEARCH_AD",
            "MARGINAL_ROI_CAMPAIGN_BUDGET",
            "USE_BROAD_MATCH_KEYWORD",
            "RESPONSIVE_SEARCH_AD_ASSET",
            "UPGRADE_SMART_SHOPPING_CAMPAIGN_TO_PERFORMANCE_MAX",
            "RESPONSIVE_SEARCH_AD_IMPROVE_AD_STRENGTH",
            "DISPLAY_EXPANSION_OPT_IN",
            "UPGRADE_LOCAL_CAMPAIGN_TO_PERFORMANCE_MAX",
            "RAISE_TARGET_CPA_BID_TOO_LOW",
            "FORECASTING_SET_TARGET_ROAS",
            "CALLOUT_ASSET",
            "SITELINK_ASSET",
            "CALL_ASSET",
            "SHOPPING_ADD_AGE_GROUP",
            "SHOPPING_ADD_COLOR",
            "SHOPPING_ADD_GENDER",
            "SHOPPING_ADD_GTIN",
            "SHOPPING_ADD_MORE_IDENTIFIERS",
            "SHOPPING_ADD_SIZE",
            "SHOPPING_ADD_PRODUCTS_TO_CAMPAIGN",
            "SHOPPING_FIX_DISAPPROVED_PRODUCTS",
            "SHOPPING_TARGET_ALL_OFFERS",
            "SHOPPING_FIX_SUSPENDED_MERCHANT_CENTER_ACCOUNT",
            "SHOPPING_FIX_MERCHANT_CENTER_ACCOUNT_SUSPENSION_WARNING",
            "SHOPPING_MIGRATE_REGULAR_SHOPPING_CAMPAIGN_OFFERS_TO_PERFORMANCE_MAX",
            "DYNAMIC_IMAGE_EXTENSION_OPT_IN",
            "RAISE_TARGET_CPA",
            "LOWER_TARGET_ROAS",
            "PERFORMANCE_MAX_OPT_IN",
            "IMPROVE_PERFORMANCE_MAX_AD_STRENGTH",
            "MIGRATE_DYNAMIC_SEARCH_ADS_CAMPAIGN_TO_PERFORMANCE_MAX",
            "FORECASTING_SET_TARGET_CPA",
            "SET_TARGET_CPA",
            "SET_TARGET_ROAS",
            "MAXIMIZE_CONVERSION_VALUE_OPT_IN",
            "IMPROVE_GOOGLE_TAG_COVERAGE",
            "PERFORMANCE_MAX_FINAL_URL_OPT_IN",
            "REFRESH_CUSTOMER_MATCH_LIST",
            "CUSTOM_AUDIENCE_OPT_IN",
            "LEAD_FORM_ASSET",
            "IMPROVE_DEMAND_GEN_AD_STRENGTH"
          ]
        },
        "createDateTime": {
          "readOnly": true,
          "description": "Output only. Time in seconds when the subscription was first created. The datetime is in the customer's time zone and in \"yyyy-MM-dd HH:mm:ss\" format.",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__RecommendationSubscription",
      "description": "Recommendation Subscription resource",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateKeywordPlansResponse": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateKeywordPlansResponse",
      "description": "Response message for a keyword plan mutate.",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateKeywordPlansResult"
          },
          "description": "All results for the mutate."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__UpdateDataLinkResponse": {
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations. Resource name of the data link."
        }
      },
      "id": "GoogleAdsSearchads360V23Services__UpdateDataLinkResponse",
      "description": "Response message for DataLinkService.UpdateDataLink.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__UnusableAdGroup": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__UnusableAdGroup",
      "description": "An AdGroup/Campaign pair that could not be used as a suggestion for keywords. AdGroups may not be usable if the AdGroup * belongs to a Campaign that is not ENABLED or PAUSED * is itself not ENABLED",
      "properties": {
        "adGroup": {
          "description": "The AdGroup resource name. Resource name format: `customers/{customer_id}/adGroups/{ad_group_id}`",
          "type": "string"
        },
        "campaign": {
          "description": "The Campaign resource name. Resource name format: `customers/{customer_id}/campaigns/{campaign_id}`",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__ListBenchmarksProductsResponse": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__ListBenchmarksProductsResponse",
      "description": "Response message for BenchmarksService.ListBenchmarksProducts.",
      "properties": {
        "benchmarksProducts": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__BenchmarksProductMetadata"
          },
          "description": "The list of products available for benchmarks data."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__ZaloBusinessMessageInfo": {
      "properties": {
        "customName": {
          "type": "string",
          "description": "Custom name generated by the advertiser for their Zalo Account. These names will usually be registered brands or trademarks."
        },
        "oaId": {
          "description": "Zalo Official Account ID of the advertiser.",
          "type": "string",
          "format": "int64"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__ZaloBusinessMessageInfo",
      "description": "Zalo information to use for messaging."
    },
    "GoogleAdsSearchads360V23Services__MutateCustomerConversionGoalsRequest": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateCustomerConversionGoalsRequest",
      "description": "Request message for CustomerConversionGoalService.MutateCustomerConversionGoals.",
      "properties": {
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__CustomerConversionGoalOperation"
          },
          "description": "Required. The list of operations to perform on individual customer conversion goal."
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__AdGroupAdAssetView": {
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Output only. The resource name of the ad group ad asset view. Ad group ad asset view resource names have the form (Before V4): `customers/{customer_id}/adGroupAdAssets/{AdGroupAdAsset.ad_group_id}~{AdGroupAdAsset.ad.ad_id}~{AdGroupAdAsset.asset_id}~{AdGroupAdAsset.field_type}` Ad group ad asset view resource names have the form (Beginning from V4): `customers/{customer_id}/adGroupAdAssetViews/{AdGroupAdAsset.ad_group_id}~{AdGroupAdAsset.ad_id}~{AdGroupAdAsset.asset_id}~{AdGroupAdAsset.field_type}`",
          "readOnly": true
        },
        "adGroupAd": {
          "description": "Output only. The ad group ad to which the asset is linked.",
          "type": "string",
          "readOnly": true
        },
        "policySummary": {
          "readOnly": true,
          "description": "Output only. Policy information for the ad group ad asset.",
          "$ref": "GoogleAdsSearchads360V23Resources__AdGroupAdAssetPolicySummary"
        },
        "asset": {
          "readOnly": true,
          "description": "Output only. The asset which is linked to the ad group ad.",
          "type": "string"
        },
        "source": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset or asset link is provided by advertiser.",
            "The asset or asset link is generated by Google."
          ],
          "description": "Output only. Source of the ad group ad asset.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADVERTISER",
            "AUTOMATICALLY_CREATED"
          ],
          "readOnly": true
        },
        "performanceLabel": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PENDING",
            "LEARNING",
            "LOW",
            "GOOD",
            "BEST",
            "NOT_APPLICABLE"
          ],
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "This asset does not yet have any performance informantion. This may be because it is still under review.",
            "The asset has started getting impressions but the stats are not statistically significant enough to get an asset performance label.",
            "Worst performing assets.",
            "Good performing assets.",
            "Best performing assets.",
            "Performance label cannot be assigned to this asset. This may be because it's not used by asset based creatives."
          ],
          "description": "Output only. Performance of an asset linkage."
        },
        "fieldType": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HEADLINE",
            "DESCRIPTION",
            "MANDATORY_AD_TEXT",
            "MARKETING_IMAGE",
            "MEDIA_BUNDLE",
            "YOUTUBE_VIDEO",
            "BOOK_ON_GOOGLE",
            "LEAD_FORM",
            "PROMOTION",
            "CALLOUT",
            "STRUCTURED_SNIPPET",
            "SITELINK",
            "MOBILE_APP",
            "HOTEL_CALLOUT",
            "CALL",
            "PRICE",
            "LONG_HEADLINE",
            "BUSINESS_NAME",
            "SQUARE_MARKETING_IMAGE",
            "PORTRAIT_MARKETING_IMAGE",
            "LOGO",
            "LANDSCAPE_LOGO",
            "VIDEO",
            "CALL_TO_ACTION_SELECTION",
            "AD_IMAGE",
            "BUSINESS_LOGO",
            "HOTEL_PROPERTY",
            "DEMAND_GEN_CAROUSEL_CARD",
            "BUSINESS_MESSAGE",
            "TALL_PORTRAIT_MARKETING_IMAGE",
            "LANDING_PAGE_PREVIEW",
            "LONG_DESCRIPTION",
            "CALL_TO_ACTION"
          ],
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is linked for use as a headline.",
            "The asset is linked for use as a description.",
            "The asset is linked for use as mandatory ad text.",
            "The asset is linked for use as a marketing image.",
            "The asset is linked for use as a media bundle.",
            "The asset is linked for use as a YouTube video.",
            "The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.",
            "The asset is linked for use as a Lead Form extension.",
            "The asset is linked for use as a Promotion extension.",
            "The asset is linked for use as a Callout extension.",
            "The asset is linked for use as a Structured Snippet extension.",
            "The asset is linked for use as a Sitelink.",
            "The asset is linked for use as a Mobile App extension.",
            "The asset is linked for use as a Hotel Callout extension.",
            "The asset is linked for use as a Call extension.",
            "The asset is linked for use as a Price extension.",
            "The asset is linked for use as a long headline.",
            "The asset is linked for use as a business name.",
            "The asset is linked for use as a square marketing image.",
            "The asset is linked for use as a portrait marketing image.",
            "The asset is linked for use as a logo.",
            "The asset is linked for use as a landscape logo.",
            "The asset is linked for use as a non YouTube logo.",
            "The asset is linked for use to select a call-to-action.",
            "The asset is linked for use to select an ad image.",
            "The asset is linked for use as a business logo.",
            "The asset is linked for use as a hotel property in a Performance Max for travel goals campaign.",
            "The asset is linked for use as a Demand Gen carousel card.",
            "The asset is linked for use as a Business Message.",
            "The asset is linked for use as a tall portrait marketing image.",
            "The asset is linked for use as a landing page preview image.",
            "The asset is linked for use as a long description.",
            "The asset is linked for use as a call-to-action."
          ],
          "description": "Output only. Role that the asset takes in the ad."
        },
        "enabled": {
          "readOnly": true,
          "description": "Output only. The status between the asset and the latest version of the ad. If true, the asset is linked to the latest version of the ad. If false, it means the link once existed but has been removed and is no longer present in the latest version of the ad.",
          "type": "boolean"
        },
        "pinnedField": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HEADLINE_1",
            "HEADLINE_2",
            "HEADLINE_3",
            "DESCRIPTION_1",
            "DESCRIPTION_2",
            "HEADLINE",
            "HEADLINE_IN_PORTRAIT",
            "LONG_HEADLINE",
            "DESCRIPTION",
            "DESCRIPTION_IN_PORTRAIT",
            "BUSINESS_NAME_IN_PORTRAIT",
            "BUSINESS_NAME",
            "MARKETING_IMAGE",
            "MARKETING_IMAGE_IN_PORTRAIT",
            "SQUARE_MARKETING_IMAGE",
            "PORTRAIT_MARKETING_IMAGE",
            "LOGO",
            "LANDSCAPE_LOGO",
            "CALL_TO_ACTION",
            "YOU_TUBE_VIDEO",
            "SITELINK",
            "CALL",
            "MOBILE_APP",
            "CALLOUT",
            "STRUCTURED_SNIPPET",
            "PRICE",
            "PROMOTION",
            "AD_IMAGE",
            "LEAD_FORM",
            "BUSINESS_LOGO",
            "DESCRIPTION_PREFIX",
            "HEADLINE_AS_SITELINK_POSITION_ONE",
            "HEADLINE_AS_SITELINK_POSITION_TWO",
            "DESCRIPTION_LINE_HEADLINE_AS_SITELINK_POSITION_ONE",
            "DESCRIPTION_LINE_HEADLINE_AS_SITELINK_POSITION_TWO"
          ],
          "readOnly": true,
          "description": "Output only. Pinned field.",
          "type": "string",
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The asset is used in headline 1.",
            "The asset is used in headline 2.",
            "The asset is used in headline 3.",
            "The asset is used in description 1.",
            "The asset is used in description 2.",
            "The asset was used in a headline. Use this only if there is only one headline in the ad. Otherwise, use the HEADLINE_1, HEADLINE_2 or HEADLINE_3 enums",
            "The asset was used as a headline in portrait image.",
            "The asset was used in a long headline (used in MultiAssetResponsiveAd).",
            "The asset was used in a description. Use this only if there is only one description in the ad. Otherwise, use the DESCRIPTION_1 or DESCRIPTION_@ enums",
            "The asset was used as description in portrait image.",
            "The asset was used as business name in portrait image.",
            "The asset was used as business name.",
            "The asset was used as a marketing image.",
            "The asset was used as a marketing image in portrait image.",
            "The asset was used as a square marketing image.",
            "The asset was used as a portrait marketing image.",
            "The asset was used as a logo.",
            "The asset was used as a landscape logo.",
            "The asset was used as a call-to-action.",
            "The asset was used as a YouTube video.",
            "This asset is used as a sitelink.",
            "This asset is used as a call.",
            "This asset is used as a mobile app.",
            "This asset is used as a callout.",
            "This asset is used as a structured snippet.",
            "This asset is used as a price.",
            "This asset is used as a promotion.",
            "This asset is used as an image.",
            "The asset is used as a lead form.",
            "The asset is used as a business logo.",
            "The asset is used as a description prefix.",
            "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.",
            "A description line asset used as a sitelink in position 2."
          ]
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__AdGroupAdAssetView",
      "description": "Represents a link between an AdGroupAd and an Asset. This view provides insights into the performance of assets within specific ads. AdGroupAdAssetView supports the following ad types: * App Ads * Demand Gen campaigns * Responsive Search Ads It does not support Responsive Display Ads."
    },
    "GoogleAdsSearchads360V23Services__ListPlannableUserInterestsResponse": {
      "properties": {
        "plannableUserInterests": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__PlannableUserInterest"
          },
          "description": "The list of plannable user interests."
        }
      },
      "id": "GoogleAdsSearchads360V23Services__ListPlannableUserInterestsResponse",
      "description": "Response message for ReachPlanService.ListPlannableUserInterests.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateCampaignDraftsResponse": {
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "description": "All results for the mutate.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateCampaignDraftResult"
          }
        }
      },
      "id": "GoogleAdsSearchads360V23Services__MutateCampaignDraftsResponse",
      "description": "Response message for campaign draft mutate.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__StoreAttribute": {
      "id": "GoogleAdsSearchads360V23Common__StoreAttribute",
      "description": "Store attributes of the transaction.",
      "type": "object",
      "properties": {
        "storeCode": {
          "type": "string",
          "description": "Store code from https://support.google.com/business/answer/3370250#storecode"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources_Campaign_AppCampaignSetting": {
      "id": "GoogleAdsSearchads360V23Resources_Campaign_AppCampaignSetting",
      "description": "Campaign-level settings for App Campaigns.",
      "type": "object",
      "properties": {
        "biddingStrategyGoalType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Aim to maximize the number of app installs. The cpa bid is the target cost per install.",
            "Aim to maximize the long term number of selected in-app conversions from app installs. The cpa bid is the target cost per install.",
            "Aim to maximize the long term number of selected in-app conversions from app installs. The cpa bid is the target cost per in-app conversion. Note that the actual cpa may seem higher than the target cpa at first, since the long term conversions haven't happened yet.",
            "Aim to maximize all conversions' value, for example, install + selected in-app conversions while achieving or exceeding target return on advertising spend.",
            "Aim to maximize the pre-registration of the app.",
            "Aim to maximize installation of the app without target cost-per-install.",
            "Aim to maximize the selected in-app conversion's volume while spending the full budget. No advertiser-specific target CPA.",
            "Aim to maximize total conversion value, such as install and selected in-app conversions, while spending the full budget. No advertiser-specified target ROAS."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "OPTIMIZE_INSTALLS_TARGET_INSTALL_COST",
            "OPTIMIZE_IN_APP_CONVERSIONS_TARGET_INSTALL_COST",
            "OPTIMIZE_IN_APP_CONVERSIONS_TARGET_CONVERSION_COST",
            "OPTIMIZE_RETURN_ON_ADVERTISING_SPEND",
            "OPTIMIZE_PRE_REGISTRATION_CONVERSION_VOLUME",
            "OPTIMIZE_INSTALLS_WITHOUT_TARGET_INSTALL_COST",
            "OPTIMIZE_IN_APP_CONVERSIONS_WITHOUT_TARGET_CPA",
            "OPTIMIZE_TOTAL_VALUE_WITHOUT_TARGET_ROAS"
          ],
          "description": "Represents the goal which the bidding strategy of this app campaign should optimize towards."
        },
        "appId": {
          "description": "Immutable. A string that uniquely identifies a mobile application.",
          "type": "string"
        },
        "appStore": {
          "description": "Immutable. The application store that distributes this specific app.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Apple app store.",
            "Google play."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "APPLE_APP_STORE",
            "GOOGLE_APP_STORE"
          ]
        }
      }
    },
    "GoogleAdsSearchads360V23Common__IncomeRangeInfo": {
      "properties": {
        "type": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "0%-50%.",
            "50% to 60%.",
            "60% to 70%.",
            "70% to 80%.",
            "80% to 90%.",
            "Greater than 90%.",
            "Undetermined income range."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INCOME_RANGE_0_50",
            "INCOME_RANGE_50_60",
            "INCOME_RANGE_60_70",
            "INCOME_RANGE_70_80",
            "INCOME_RANGE_80_90",
            "INCOME_RANGE_90_UP",
            "INCOME_RANGE_UNDETERMINED"
          ],
          "description": "Type of the income range."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__IncomeRangeInfo",
      "description": "An income range criterion."
    },
    "GoogleAdsSearchads360V23Resources_ExperimentArm_AssetGroupAssetInfo": {
      "properties": {
        "fieldType": {
          "description": "Field type of the asset group asset.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is linked for use as a headline.",
            "The asset is linked for use as a description.",
            "The asset is linked for use as mandatory ad text.",
            "The asset is linked for use as a marketing image.",
            "The asset is linked for use as a media bundle.",
            "The asset is linked for use as a YouTube video.",
            "The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.",
            "The asset is linked for use as a Lead Form extension.",
            "The asset is linked for use as a Promotion extension.",
            "The asset is linked for use as a Callout extension.",
            "The asset is linked for use as a Structured Snippet extension.",
            "The asset is linked for use as a Sitelink.",
            "The asset is linked for use as a Mobile App extension.",
            "The asset is linked for use as a Hotel Callout extension.",
            "The asset is linked for use as a Call extension.",
            "The asset is linked for use as a Price extension.",
            "The asset is linked for use as a long headline.",
            "The asset is linked for use as a business name.",
            "The asset is linked for use as a square marketing image.",
            "The asset is linked for use as a portrait marketing image.",
            "The asset is linked for use as a logo.",
            "The asset is linked for use as a landscape logo.",
            "The asset is linked for use as a non YouTube logo.",
            "The asset is linked for use to select a call-to-action.",
            "The asset is linked for use to select an ad image.",
            "The asset is linked for use as a business logo.",
            "The asset is linked for use as a hotel property in a Performance Max for travel goals campaign.",
            "The asset is linked for use as a Demand Gen carousel card.",
            "The asset is linked for use as a Business Message.",
            "The asset is linked for use as a tall portrait marketing image.",
            "The asset is linked for use as a landing page preview image.",
            "The asset is linked for use as a long description.",
            "The asset is linked for use as a call-to-action."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HEADLINE",
            "DESCRIPTION",
            "MANDATORY_AD_TEXT",
            "MARKETING_IMAGE",
            "MEDIA_BUNDLE",
            "YOUTUBE_VIDEO",
            "BOOK_ON_GOOGLE",
            "LEAD_FORM",
            "PROMOTION",
            "CALLOUT",
            "STRUCTURED_SNIPPET",
            "SITELINK",
            "MOBILE_APP",
            "HOTEL_CALLOUT",
            "CALL",
            "PRICE",
            "LONG_HEADLINE",
            "BUSINESS_NAME",
            "SQUARE_MARKETING_IMAGE",
            "PORTRAIT_MARKETING_IMAGE",
            "LOGO",
            "LANDSCAPE_LOGO",
            "VIDEO",
            "CALL_TO_ACTION_SELECTION",
            "AD_IMAGE",
            "BUSINESS_LOGO",
            "HOTEL_PROPERTY",
            "DEMAND_GEN_CAROUSEL_CARD",
            "BUSINESS_MESSAGE",
            "TALL_PORTRAIT_MARKETING_IMAGE",
            "LANDING_PAGE_PREVIEW",
            "LONG_DESCRIPTION",
            "CALL_TO_ACTION"
          ]
        },
        "asset": {
          "type": "string",
          "description": "Asset resource name of the asset group asset."
        }
      },
      "id": "GoogleAdsSearchads360V23Resources_ExperimentArm_AssetGroupAssetInfo",
      "description": "Holds the details of an asset within an asset group for an Optimize Assets experiment arm.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__DetailedDemographicSegment": {
      "id": "GoogleAdsSearchads360V23Common__DetailedDemographicSegment",
      "description": "Detailed demographic segment.",
      "type": "object",
      "properties": {
        "detailedDemographic": {
          "type": "string",
          "description": "The detailed demographic resource."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateCampaignGroupsRequest": {
      "properties": {
        "responseContentType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation."
        },
        "operations": {
          "description": "Required. The list of operations to perform on individual campaign groups.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__CampaignGroupOperation"
          }
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateCampaignGroupsRequest",
      "description": "Request message for CampaignGroupService.MutateCampaignGroups."
    },
    "GoogleAdsSearchads360V23Services__MutateBillingSetupRequest": {
      "properties": {
        "operation": {
          "description": "Required. The operation to perform.",
          "$ref": "GoogleAdsSearchads360V23Services__BillingSetupOperation"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__MutateBillingSetupRequest",
      "description": "Request message for billing setup mutate operations.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__CustomerNegativeCriterionOperation": {
      "id": "GoogleAdsSearchads360V23Services__CustomerNegativeCriterionOperation",
      "description": "A single operation (create or remove) on a customer level negative criterion.",
      "type": "object",
      "properties": {
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed criterion is expected, in this format: `customers/{customer_id}/customerNegativeCriteria/{criterion_id}`"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new criterion.",
          "$ref": "GoogleAdsSearchads360V23Resources__CustomerNegativeCriterion"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__ActivityIdInfo": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__ActivityIdInfo",
      "description": "Advertiser-specific activity ID.",
      "properties": {
        "value": {
          "description": "String value of the activity ID.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__CriterionBidModifier": {
      "id": "GoogleAdsSearchads360V23Services__CriterionBidModifier",
      "description": "Location Criterion bid modifier.",
      "type": "object",
      "properties": {
        "geoTargetConstant": {
          "description": "The resource name of the geo location to target. The resource name is of the format \"geoTargetConstants/{criterion_id}\".",
          "type": "string"
        },
        "bidModifier": {
          "description": "The associated multiplier for the criterion_id. If set, this value cannot be 0.",
          "type": "number",
          "format": "double"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateKeywordPlanCampaignKeywordsRequest": {
      "properties": {
        "partialFailure": {
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
          "type": "boolean"
        },
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__KeywordPlanCampaignKeywordOperation"
          },
          "description": "Required. The list of operations to perform on individual Keyword Plan campaign keywords."
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        }
      },
      "id": "GoogleAdsSearchads360V23Services__MutateKeywordPlanCampaignKeywordsRequest",
      "description": "Request message for KeywordPlanCampaignKeywordService.MutateKeywordPlanCampaignKeywords.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateOperation": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateOperation",
      "description": "A single operation (create, update, remove) on a resource.",
      "properties": {
        "keywordPlanCampaignOperation": {
          "description": "A keyword plan campaign operation.",
          "$ref": "GoogleAdsSearchads360V23Services__KeywordPlanCampaignOperation"
        },
        "campaignDraftOperation": {
          "description": "A campaign draft mutate operation.",
          "$ref": "GoogleAdsSearchads360V23Services__CampaignDraftOperation"
        },
        "adGroupLabelOperation": {
          "description": "An ad group label mutate operation.",
          "$ref": "GoogleAdsSearchads360V23Services__AdGroupLabelOperation"
        },
        "campaignSharedSetOperation": {
          "description": "A campaign shared set mutate operation.",
          "$ref": "GoogleAdsSearchads360V23Services__CampaignSharedSetOperation"
        },
        "userListOperation": {
          "description": "A user list mutate operation.",
          "$ref": "GoogleAdsSearchads360V23Services__UserListOperation"
        },
        "searchAds360CampaignOperation": {
          "description": "A Search Ads 360 campaign mutate operation.",
          "$ref": "GoogleAdsSearchads360V23Services__SearchAds360CampaignOperation"
        },
        "assetGroupAssetOperation": {
          "description": "An asset group asset mutate operation.",
          "$ref": "GoogleAdsSearchads360V23Services__AssetGroupAssetOperation"
        },
        "customerNegativeCriterionOperation": {
          "description": "A customer negative criterion mutate operation.",
          "$ref": "GoogleAdsSearchads360V23Services__CustomerNegativeCriterionOperation"
        },
        "keywordPlanCampaignKeywordOperation": {
          "description": "A keyword plan campaign keyword operation.",
          "$ref": "GoogleAdsSearchads360V23Services__KeywordPlanCampaignKeywordOperation"
        },
        "sharedSetOperation": {
          "description": "A shared set mutate operation.",
          "$ref": "GoogleAdsSearchads360V23Services__SharedSetOperation"
        },
        "campaignConversionGoalOperation": {
          "description": "A campaign conversion goal mutate operation.",
          "$ref": "GoogleAdsSearchads360V23Services__CampaignConversionGoalOperation"
        },
        "conversionValueRuleSetOperation": {
          "description": "A conversion value rule set mutate operation.",
          "$ref": "GoogleAdsSearchads360V23Services__ConversionValueRuleSetOperation"
        },
        "experimentOperation": {
          "description": "An experiment mutate operation.",
          "$ref": "GoogleAdsSearchads360V23Services__ExperimentOperation"
        },
        "assetSetOperation": {
          "description": "An asset set mutate operation.",
          "$ref": "GoogleAdsSearchads360V23Services__AssetSetOperation"
        },
        "adGroupCriterionCustomizerOperation": {
          "description": "An ad group criterion customizer mutate operation.",
          "$ref": "GoogleAdsSearchads360V23Services__AdGroupCriterionCustomizerOperation"
        },
        "assetGroupListingGroupFilterOperation": {
          "description": "An asset group listing group filter mutate operation.",
          "$ref": "GoogleAdsSearchads360V23Services__AssetGroupListingGroupFilterOperation"
        },
        "adGroupCriterionOperation": {
          "description": "An ad group criterion mutate operation.",
          "$ref": "GoogleAdsSearchads360V23Services__AdGroupCriterionOperation"
        },
        "adGroupAdLabelOperation": {
          "description": "An ad group ad label mutate operation.",
          "$ref": "GoogleAdsSearchads360V23Services__AdGroupAdLabelOperation"
        },
        "customConversionGoalOperation": {
          "description": "A custom conversion goal mutate operation.",
          "$ref": "GoogleAdsSearchads360V23Services__CustomConversionGoalOperation"
        },
        "customerLabelOperation": {
          "description": "A customer label mutate operation.",
          "$ref": "GoogleAdsSearchads360V23Services__CustomerLabelOperation"
        },
        "adGroupCustomizerOperation": {
          "description": "An ad group customizer mutate operation.",
          "$ref": "GoogleAdsSearchads360V23Services__AdGroupCustomizerOperation"
        },
        "audienceOperation": {
          "description": "An audience mutate operation.",
          "$ref": "GoogleAdsSearchads360V23Services__AudienceOperation"
        },
        "campaignBidModifierOperation": {
          "description": "A campaign bid modifier mutate operation.",
          "$ref": "GoogleAdsSearchads360V23Services__CampaignBidModifierOperation"
        },
        "biddingDataExclusionOperation": {
          "description": "A bidding data exclusion mutate operation.",
          "$ref": "GoogleAdsSearchads360V23Services__BiddingDataExclusionOperation"
        },
        "adGroupAssetOperation": {
          "description": "An ad group asset mutate operation.",
          "$ref": "GoogleAdsSearchads360V23Services__AdGroupAssetOperation"
        },
        "conversionActionOperation": {
          "description": "A conversion action mutate operation.",
          "$ref": "GoogleAdsSearchads360V23Services__ConversionActionOperation"
        },
        "assetSetAssetOperation": {
          "description": "An asset set asset mutate operation.",
          "$ref": "GoogleAdsSearchads360V23Services__AssetSetAssetOperation"
        },
        "campaignAssetSetOperation": {
          "description": "A campaign asset mutate operation.",
          "$ref": "GoogleAdsSearchads360V23Services__CampaignAssetSetOperation"
        },
        "conversionValueRuleOperation": {
          "description": "A conversion value rule mutate operation.",
          "$ref": "GoogleAdsSearchads360V23Services__ConversionValueRuleOperation"
        },
        "smartCampaignSettingOperation": {
          "description": "A Smart campaign setting mutate operation.",
          "$ref": "GoogleAdsSearchads360V23Services__SmartCampaignSettingOperation"
        },
        "adGroupAdOperation": {
          "description": "An ad group ad mutate operation.",
          "$ref": "GoogleAdsSearchads360V23Services__AdGroupAdOperation"
        },
        "adGroupOperation": {
          "description": "An ad group mutate operation.",
          "$ref": "GoogleAdsSearchads360V23Services__AdGroupOperation"
        },
        "adParameterOperation": {
          "description": "An ad parameter mutate operation.",
          "$ref": "GoogleAdsSearchads360V23Services__AdParameterOperation"
        },
        "campaignBudgetOperation": {
          "description": "A campaign budget mutate operation.",
          "$ref": "GoogleAdsSearchads360V23Services__CampaignBudgetOperation"
        },
        "recommendationSubscriptionOperation": {
          "description": "A recommendation subscription mutate operation.",
          "$ref": "GoogleAdsSearchads360V23Services__RecommendationSubscriptionOperation"
        },
        "experimentArmOperation": {
          "description": "An experiment arm mutate operation.",
          "$ref": "GoogleAdsSearchads360V23Services__ExperimentArmOperation"
        },
        "keywordPlanAdGroupKeywordOperation": {
          "description": "A keyword plan ad group keyword operation.",
          "$ref": "GoogleAdsSearchads360V23Services__KeywordPlanAdGroupKeywordOperation"
        },
        "campaignCriterionOperation": {
          "description": "A campaign criterion mutate operation.",
          "$ref": "GoogleAdsSearchads360V23Services__CampaignCriterionOperation"
        },
        "assetGroupOperation": {
          "description": "An asset group mutate operation.",
          "$ref": "GoogleAdsSearchads360V23Services__AssetGroupOperation"
        },
        "conversionCustomVariableOperation": {
          "description": "A conversion custom variable mutate operation.",
          "$ref": "GoogleAdsSearchads360V23Services__ConversionCustomVariableOperation"
        },
        "biddingSeasonalityAdjustmentOperation": {
          "description": "A bidding seasonality adjustment mutate operation.",
          "$ref": "GoogleAdsSearchads360V23Services__BiddingSeasonalityAdjustmentOperation"
        },
        "assetGroupSignalOperation": {
          "description": "An asset group signal mutate operation.",
          "$ref": "GoogleAdsSearchads360V23Services__AssetGroupSignalOperation"
        },
        "campaignOperation": {
          "description": "A campaign mutate operation.",
          "$ref": "GoogleAdsSearchads360V23Services__CampaignOperation"
        },
        "keywordPlanOperation": {
          "description": "A keyword plan operation.",
          "$ref": "GoogleAdsSearchads360V23Services__KeywordPlanOperation"
        },
        "keywordPlanAdGroupOperation": {
          "description": "A keyword plan ad group operation.",
          "$ref": "GoogleAdsSearchads360V23Services__KeywordPlanAdGroupOperation"
        },
        "labelOperation": {
          "description": "A label mutate operation.",
          "$ref": "GoogleAdsSearchads360V23Services__LabelOperation"
        },
        "customerCustomizerOperation": {
          "description": "A customer customizer mutate operation.",
          "$ref": "GoogleAdsSearchads360V23Services__CustomerCustomizerOperation"
        },
        "customerOperation": {
          "description": "A customer mutate operation.",
          "$ref": "GoogleAdsSearchads360V23Services__CustomerOperation"
        },
        "customerConversionGoalOperation": {
          "description": "A customer conversion goal mutate operation.",
          "$ref": "GoogleAdsSearchads360V23Services__CustomerConversionGoalOperation"
        },
        "campaignLabelOperation": {
          "description": "A campaign label mutate operation.",
          "$ref": "GoogleAdsSearchads360V23Services__CampaignLabelOperation"
        },
        "conversionGoalCampaignConfigOperation": {
          "description": "A conversion goal campaign config mutate operation.",
          "$ref": "GoogleAdsSearchads360V23Services__ConversionGoalCampaignConfigOperation"
        },
        "biddingStrategyOperation": {
          "description": "A bidding strategy mutate operation.",
          "$ref": "GoogleAdsSearchads360V23Services__BiddingStrategyOperation"
        },
        "customizerAttributeOperation": {
          "description": "A customizer attribute mutate operation.",
          "$ref": "GoogleAdsSearchads360V23Services__CustomizerAttributeOperation"
        },
        "remarketingActionOperation": {
          "description": "A remarketing action mutate operation.",
          "$ref": "GoogleAdsSearchads360V23Services__RemarketingActionOperation"
        },
        "assetOperation": {
          "description": "An asset mutate operation.",
          "$ref": "GoogleAdsSearchads360V23Services__AssetOperation"
        },
        "campaignCustomizerOperation": {
          "description": "A campaign customizer mutate operation.",
          "$ref": "GoogleAdsSearchads360V23Services__CampaignCustomizerOperation"
        },
        "adGroupBidModifierOperation": {
          "description": "An ad group bid modifier mutate operation.",
          "$ref": "GoogleAdsSearchads360V23Services__AdGroupBidModifierOperation"
        },
        "sharedCriterionOperation": {
          "description": "A shared criterion mutate operation.",
          "$ref": "GoogleAdsSearchads360V23Services__SharedCriterionOperation"
        },
        "adOperation": {
          "description": "An ad mutate operation.",
          "$ref": "GoogleAdsSearchads360V23Services__AdOperation"
        },
        "customerAssetOperation": {
          "description": "A customer asset mutate operation.",
          "$ref": "GoogleAdsSearchads360V23Services__CustomerAssetOperation"
        },
        "campaignAssetOperation": {
          "description": "A campaign asset mutate operation.",
          "$ref": "GoogleAdsSearchads360V23Services__CampaignAssetOperation"
        },
        "adGroupCriterionLabelOperation": {
          "description": "An ad group criterion label mutate operation.",
          "$ref": "GoogleAdsSearchads360V23Services__AdGroupCriterionLabelOperation"
        },
        "campaignGroupOperation": {
          "description": "A campaign group mutate operation.",
          "$ref": "GoogleAdsSearchads360V23Services__CampaignGroupOperation"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__CampaignBidModifierOperation": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__CampaignBidModifierOperation",
      "description": "A single operation (create, remove, update) on a campaign bid modifier.",
      "properties": {
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "type": "string",
          "format": "google-fieldmask"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new campaign bid modifier.",
          "$ref": "GoogleAdsSearchads360V23Resources__CampaignBidModifier"
        },
        "update": {
          "description": "Update operation: The campaign bid modifier is expected to have a valid resource name.",
          "$ref": "GoogleAdsSearchads360V23Resources__CampaignBidModifier"
        },
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed campaign bid modifier is expected, in this format: `customers/{customer_id}/CampaignBidModifiers/{campaign_id}~{criterion_id}`"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__TargetSpend": {
      "properties": {
        "targetSpendMicros": {
          "type": "string",
          "format": "int64",
          "description": "Deprecated: The spend target under which to maximize clicks. A TargetSpend bidder will attempt to spend the smaller of this value or the natural throttling spend amount. If not specified, the budget is used as the spend target. This field is deprecated and should no longer be used. See https://ads-developers.googleblog.com/2020/05/reminder-about-sunset-creation-of.html for details.",
          "deprecated": true
        },
        "cpcBidCeilingMicros": {
          "description": "Maximum bid limit that can be set by the bid strategy. The limit applies to all keywords managed by the strategy.",
          "type": "string",
          "format": "int64"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__TargetSpend",
      "description": "An automated bid strategy that sets your bids to help get as many clicks as possible within your budget."
    },
    "GoogleAdsSearchads360V23Services__DimensionOverlapResult": {
      "properties": {
        "items": {
          "description": "The attributes and their overlap with the primary attribute.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__AudienceOverlapItem"
          }
        },
        "dimension": {
          "description": "The dimension of all the attributes in this section.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "A Product & Service category.",
            "A Knowledge Graph entity.",
            "A country, represented by a geo target.",
            "A geographic location within a country.",
            "A YouTube channel.",
            "An Affinity UserInterest.",
            "An In-Market UserInterest.",
            "A Parental Status value (parent, or not a parent).",
            "A household income percentile range.",
            "An age range.",
            "A gender.",
            "A YouTube video.",
            "A device type, such as Mobile, Desktop, Tablet, and Connected TV.",
            "A YouTube Lineup.",
            "A User List.",
            "A Life Event UserInterest."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CATEGORY",
            "KNOWLEDGE_GRAPH",
            "GEO_TARGET_COUNTRY",
            "SUB_COUNTRY_LOCATION",
            "YOUTUBE_CHANNEL",
            "AFFINITY_USER_INTEREST",
            "IN_MARKET_USER_INTEREST",
            "PARENTAL_STATUS",
            "INCOME_RANGE",
            "AGE_RANGE",
            "GENDER",
            "YOUTUBE_VIDEO",
            "DEVICE",
            "YOUTUBE_LINEUP",
            "USER_LIST",
            "LIFE_EVENT_USER_INTEREST"
          ]
        }
      },
      "id": "GoogleAdsSearchads360V23Services__DimensionOverlapResult",
      "description": "A list of audience attributes of a single dimension, including their overlap with a primary attribute, returned as part of a GenerateAudienceOverlapInsightsResponse.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources__AdGroupAdAssetPolicySummary": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__AdGroupAdAssetPolicySummary",
      "description": "Contains policy information for an ad group ad asset.",
      "properties": {
        "reviewStatus": {
          "type": "string",
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "Currently under review.",
            "Primary review complete. Other reviews may be continuing.",
            "The resource has been resubmitted for approval or its policy decision has been appealed.",
            "The resource is eligible and may be serving but could still undergo further review."
          ],
          "description": "Output only. Where in the review process this ad group ad asset is.",
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "REVIEW_IN_PROGRESS",
            "REVIEWED",
            "UNDER_APPEAL",
            "ELIGIBLE_MAY_SERVE"
          ]
        },
        "approvalStatus": {
          "description": "Output only. The overall approval status of this ad group ad asset, calculated based on the status of its individual policy topic entries.",
          "type": "string",
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "Will not serve.",
            "Serves with restrictions.",
            "Serves without restrictions.",
            "Will not serve in targeted countries, but may serve for users who are searching for information about the targeted countries."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DISAPPROVED",
            "APPROVED_LIMITED",
            "APPROVED",
            "AREA_OF_INTEREST_ONLY"
          ],
          "readOnly": true
        },
        "policyTopicEntries": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__PolicyTopicEntry"
          },
          "description": "Output only. The list of policy findings for the ad group ad asset.",
          "readOnly": true
        }
      }
    },
    "GoogleAdsSearchads360V23Resources_Recommendation_PerformanceMaxFinalUrlOptInRecommendation": {
      "properties": {},
      "id": "GoogleAdsSearchads360V23Resources_Recommendation_PerformanceMaxFinalUrlOptInRecommendation",
      "description": "Recommendation to turn on Final URL expansion for your Performance Max campaigns.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__ListingDimensionInfo": {
      "id": "GoogleAdsSearchads360V23Common__ListingDimensionInfo",
      "description": "Listing dimensions for listing group criterion.",
      "type": "object",
      "properties": {
        "productLegacyCondition": {
          "description": "Legacy condition of a product offer. This listing dimension is deprecated and it is supported only in Display campaigns.",
          "$ref": "GoogleAdsSearchads360V23Common__ProductLegacyConditionInfo"
        },
        "activityCity": {
          "description": "The city where the travel activity is available.",
          "$ref": "GoogleAdsSearchads360V23Common__ActivityCityInfo"
        },
        "productCategory": {
          "description": "Category of a product offer.",
          "$ref": "GoogleAdsSearchads360V23Common__ProductCategoryInfo"
        },
        "productType": {
          "description": "Type of a product offer.",
          "$ref": "GoogleAdsSearchads360V23Common__ProductTypeInfo"
        },
        "hotelClass": {
          "description": "Class of the hotel as a number of stars 1 to 5.",
          "$ref": "GoogleAdsSearchads360V23Common__HotelClassInfo"
        },
        "hotelCity": {
          "description": "City the hotel is located in.",
          "$ref": "GoogleAdsSearchads360V23Common__HotelCityInfo"
        },
        "productTypeFull": {
          "description": "Full type of a product offer. This listing dimension is deprecated and it is supported only in Display campaigns.",
          "$ref": "GoogleAdsSearchads360V23Common__ProductTypeFullInfo"
        },
        "productCondition": {
          "description": "Condition of a product offer.",
          "$ref": "GoogleAdsSearchads360V23Common__ProductConditionInfo"
        },
        "productBrand": {
          "description": "Brand of a product offer.",
          "$ref": "GoogleAdsSearchads360V23Common__ProductBrandInfo"
        },
        "productLabels": {
          "description": "Labels of a product offer. This listing dimension is deprecated and it is supported only in Display campaigns.",
          "$ref": "GoogleAdsSearchads360V23Common__ProductLabelsInfo"
        },
        "productChannel": {
          "description": "Locality of a product offer.",
          "$ref": "GoogleAdsSearchads360V23Common__ProductChannelInfo"
        },
        "activityCountry": {
          "description": "The country where the travel activity is available.",
          "$ref": "GoogleAdsSearchads360V23Common__ActivityCountryInfo"
        },
        "productChannelExclusivity": {
          "description": "Availability of a product offer.",
          "$ref": "GoogleAdsSearchads360V23Common__ProductChannelExclusivityInfo"
        },
        "unknownListingDimension": {
          "description": "Unknown dimension. Set when no other listing dimension is set.",
          "$ref": "GoogleAdsSearchads360V23Common__UnknownListingDimensionInfo"
        },
        "hotelId": {
          "description": "Advertiser-specific hotel ID.",
          "$ref": "GoogleAdsSearchads360V23Common__HotelIdInfo"
        },
        "activityId": {
          "description": "Advertiser-specific activity ID.",
          "$ref": "GoogleAdsSearchads360V23Common__ActivityIdInfo"
        },
        "productCustomAttribute": {
          "description": "Custom attribute of a product offer.",
          "$ref": "GoogleAdsSearchads360V23Common__ProductCustomAttributeInfo"
        },
        "productGrouping": {
          "description": "Grouping of a product offer. This listing dimension is deprecated and it is supported only in Display campaigns.",
          "$ref": "GoogleAdsSearchads360V23Common__ProductGroupingInfo"
        },
        "activityRating": {
          "description": "Rating of the activity as a number 1 to 5, where 5 is the best.",
          "$ref": "GoogleAdsSearchads360V23Common__ActivityRatingInfo"
        },
        "hotelCountryRegion": {
          "description": "Country or Region the hotel is located in.",
          "$ref": "GoogleAdsSearchads360V23Common__HotelCountryRegionInfo"
        },
        "productItemId": {
          "description": "Item id of a product offer.",
          "$ref": "GoogleAdsSearchads360V23Common__ProductItemIdInfo"
        },
        "activityState": {
          "description": "The state where the travel activity is available.",
          "$ref": "GoogleAdsSearchads360V23Common__ActivityStateInfo"
        },
        "hotelState": {
          "description": "State the hotel is located in.",
          "$ref": "GoogleAdsSearchads360V23Common__HotelStateInfo"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__HotelCountryRegionInfo": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__HotelCountryRegionInfo",
      "description": "Country or Region the hotel is located in.",
      "properties": {
        "countryRegionCriterion": {
          "description": "The Geo Target Constant resource name.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__CallView": {
      "id": "GoogleAdsSearchads360V23Resources__CallView",
      "description": "A call view that includes data for call tracking of call-only ads or call extensions.",
      "type": "object",
      "properties": {
        "callDurationSeconds": {
          "description": "Output only. The advertiser-provided call duration in seconds.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        },
        "callerCountryCode": {
          "readOnly": true,
          "description": "Output only. code of the caller.",
          "type": "string"
        },
        "callTrackingDisplayLocation": {
          "description": "Output only. The call tracking display location.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The phone call placed from the ad.",
            "The phone call placed from the landing page ad points to."
          ],
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AD",
            "LANDING_PAGE"
          ]
        },
        "startCallDateTime": {
          "description": "Output only. The advertiser-provided call start date time.",
          "type": "string",
          "readOnly": true
        },
        "endCallDateTime": {
          "readOnly": true,
          "description": "Output only. The advertiser-provided call end date time.",
          "type": "string"
        },
        "callStatus": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MISSED",
            "RECEIVED"
          ],
          "description": "Output only. The status of the call.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The call was missed.",
            "The call was received."
          ]
        },
        "callerAreaCode": {
          "readOnly": true,
          "description": "Output only. Area code of the caller. Null if the call duration is shorter than 15 seconds.",
          "type": "string"
        },
        "type": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MANUALLY_DIALED",
            "HIGH_END_MOBILE_SEARCH"
          ],
          "readOnly": true,
          "description": "Output only. The type of the call.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The phone call was manually dialed.",
            "The phone call was a mobile click-to-call."
          ]
        },
        "resourceName": {
          "readOnly": true,
          "description": "Output only. The resource name of the call view. Call view resource names have the form: `customers/{customer_id}/callViews/{call_detail_id}`",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__CustomerSearchTermInsight": {
      "properties": {
        "resourceName": {
          "readOnly": true,
          "description": "Output only. The resource name of the customer level search term insight. Customer level search term insight resource names have the form: `customers/{customer_id}/customerSearchTermInsights/{category_id}`",
          "type": "string"
        },
        "categoryLabel": {
          "description": "Output only. The label for the search category. An empty string denotes the catch-all category for search terms that didn't fit into another category.",
          "type": "string",
          "readOnly": true
        },
        "id": {
          "type": "string",
          "format": "int64",
          "description": "Output only. The ID of the insight.",
          "readOnly": true
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__CustomerSearchTermInsight",
      "description": "This report provides a high-level view of search demand at the customer level by grouping similar search terms into categories and showing their search volume. Historical data is available starting March 2023.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchemaEvent_RevenueRange": {
      "properties": {
        "minEventRevenue": {
          "readOnly": true,
          "description": "Output only. For revenue ranges, the minimum value in `currency_code` for which this conversion value would be updated. A value of 0 will be treated as unset.",
          "type": "number",
          "format": "double"
        },
        "maxEventRevenue": {
          "readOnly": true,
          "type": "number",
          "format": "double",
          "description": "Output only. For revenue ranges, the maximum value in `currency_code` for which this conversion value would be updated. A value of 0 will be treated as unset."
        }
      },
      "id": "GoogleAdsSearchads360V23Resources_CustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchemaEvent_RevenueRange",
      "description": "Defines a range for revenue values.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__FacebookMessengerBusinessMessageInfo": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__FacebookMessengerBusinessMessageInfo",
      "description": "Facebook Messenger information to use for messaging.",
      "properties": {
        "pageName": {
          "description": "Required. Facebook page name used for starting a chat on Facebook Messenger.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__CustomerManagerLink": {
      "id": "GoogleAdsSearchads360V23Resources__CustomerManagerLink",
      "description": "Represents customer-manager link relationship.",
      "type": "object",
      "properties": {
        "resourceName": {
          "description": "Immutable. Name of the resource. CustomerManagerLink resource names have the form: `customers/{customer_id}/customerManagerLinks/{manager_customer_id}~{manager_link_id}`",
          "type": "string"
        },
        "managerCustomer": {
          "description": "Output only. The manager customer linked to the customer.",
          "type": "string",
          "readOnly": true
        },
        "status": {
          "description": "Status of the link between the customer and the manager.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Indicates current in-effect relationship",
            "Indicates terminated relationship",
            "Indicates relationship has been requested by manager, but the client hasn't accepted yet.",
            "Relationship was requested by the manager, but the client has refused.",
            "Indicates relationship has been requested by manager, but manager canceled it."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ACTIVE",
            "INACTIVE",
            "PENDING",
            "REFUSED",
            "CANCELED"
          ]
        },
        "startTime": {
          "description": "Output only. The timestamp when the CustomerManagerLink was created. The timestamp is in the customer's time zone and in \"yyyy-MM-dd HH:mm:ss\" format.",
          "type": "string",
          "readOnly": true
        },
        "managerLinkId": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. ID of the customer-manager link. This field is read only."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__GenderInfo": {
      "id": "GoogleAdsSearchads360V23Common__GenderInfo",
      "description": "A gender criterion.",
      "type": "object",
      "properties": {
        "type": {
          "description": "Type of the gender.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Male.",
            "Female.",
            "Undetermined gender."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MALE",
            "FEMALE",
            "UNDETERMINED"
          ]
        }
      }
    },
    "GoogleAdsSearchads360V23Resources_Recommendation_ResponsiveSearchAdRecommendation": {
      "id": "GoogleAdsSearchads360V23Resources_Recommendation_ResponsiveSearchAdRecommendation",
      "description": "The add responsive search ad recommendation.",
      "type": "object",
      "properties": {
        "ad": {
          "readOnly": true,
          "description": "Output only. Recommended ad.",
          "$ref": "GoogleAdsSearchads360V23Resources__Ad"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateCustomerUserAccessInvitationResult": {
      "id": "GoogleAdsSearchads360V23Services__MutateCustomerUserAccessInvitationResult",
      "description": "The result for the access invitation mutate.",
      "type": "object",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__LeadFormAsset": {
      "properties": {
        "businessName": {
          "type": "string",
          "description": "Required. The name of the business being advertised."
        },
        "desiredIntent": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Deliver more leads at a potentially lower quality.",
            "Deliver leads that are more qualified."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "LOW_INTENT",
            "HIGH_INTENT"
          ],
          "description": "Chosen intent for the lead form, for example, more volume or more qualified."
        },
        "privacyPolicyUrl": {
          "type": "string",
          "description": "Required. Link to a page describing the policy on how the collected data is handled by the advertiser/business."
        },
        "deliveryMethods": {
          "description": "Configured methods for collected lead data to be delivered to advertiser. Only one method typed as WebhookDelivery can be configured.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__LeadFormDeliveryMethod"
          }
        },
        "fields": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__LeadFormField"
          },
          "description": "Ordered list of input fields. This field can be updated by reordering questions, but not by adding or removing questions."
        },
        "headline": {
          "type": "string",
          "description": "Required. Headline of the expanded form to describe what the form is asking for or facilitating."
        },
        "customDisclosure": {
          "type": "string",
          "description": "Custom disclosure shown along with Google disclaimer on the lead form. Accessible to allowed customers only."
        },
        "postSubmitHeadline": {
          "type": "string",
          "description": "Headline of text shown after form submission that describes how the advertiser will follow up with the user."
        },
        "postSubmitDescription": {
          "type": "string",
          "description": "Detailed description shown after form submission that describes how the advertiser will follow up with the user."
        },
        "backgroundImageAsset": {
          "description": "Asset resource name of the background image. The image dimensions must be exactly 1200x628.",
          "type": "string"
        },
        "description": {
          "description": "Required. Detailed description of the expanded form to describe what the form is asking for or facilitating.",
          "type": "string"
        },
        "customQuestionFields": {
          "description": "Ordered list of custom question fields. This field is subject to a limit of 5 qualifying questions per form.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__LeadFormCustomQuestionField"
          }
        },
        "callToActionType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Learn more.",
            "Get quote.",
            "Apply now.",
            "Sign Up.",
            "Contact us.",
            "Subscribe.",
            "Download.",
            "Book now.",
            "Get offer.",
            "Register.",
            "Get info.",
            "Request a demo.",
            "Join now.",
            "Get started."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "LEARN_MORE",
            "GET_QUOTE",
            "APPLY_NOW",
            "SIGN_UP",
            "CONTACT_US",
            "SUBSCRIBE",
            "DOWNLOAD",
            "BOOK_NOW",
            "GET_OFFER",
            "REGISTER",
            "GET_INFO",
            "REQUEST_DEMO",
            "JOIN_NOW",
            "GET_STARTED"
          ],
          "description": "Required. Pre-defined display text that encourages user to expand the form."
        },
        "callToActionDescription": {
          "description": "Required. Text giving a clear value proposition of what users expect once they expand the form.",
          "type": "string"
        },
        "postSubmitCallToActionType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Visit site.",
            "Download.",
            "Learn more.",
            "Shop now."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "VISIT_SITE",
            "DOWNLOAD",
            "LEARN_MORE",
            "SHOP_NOW"
          ],
          "description": "Pre-defined display text that encourages user action after the form is submitted."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__LeadFormAsset",
      "description": "A Lead Form asset."
    },
    "GoogleAdsSearchads360V23Common__CpcBidSimulationPoint": {
      "properties": {
        "impressions": {
          "description": "Projected number of impressions.",
          "type": "string",
          "format": "int64"
        },
        "topSlotImpressions": {
          "description": "Projected number of top slot impressions. Only search advertising channel type supports this field.",
          "type": "string",
          "format": "int64"
        },
        "clicks": {
          "type": "string",
          "format": "int64",
          "description": "Projected number of clicks."
        },
        "biddableConversionsValue": {
          "description": "Projected total value of biddable conversions.",
          "type": "number",
          "format": "double"
        },
        "cpcBidScalingModifier": {
          "description": "The simulated scaling modifier upon which projected metrics are based. All CPC bids relevant to the simulated entity are scaled by this modifier.",
          "type": "number",
          "format": "double"
        },
        "costMicros": {
          "description": "Projected cost in micros.",
          "type": "string",
          "format": "int64"
        },
        "biddableConversions": {
          "description": "Projected number of biddable conversions.",
          "type": "number",
          "format": "double"
        },
        "requiredBudgetAmountMicros": {
          "description": "Projected required daily budget that the advertiser must set in order to receive the estimated traffic, in micros of advertiser currency.",
          "type": "string",
          "format": "int64"
        },
        "cpcBidMicros": {
          "description": "The simulated CPC bid upon which projected metrics are based.",
          "type": "string",
          "format": "int64"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__CpcBidSimulationPoint",
      "description": "Projected metrics for a specific CPC bid amount."
    },
    "GoogleAdsSearchads360V23Resources__MessageDetails": {
      "id": "GoogleAdsSearchads360V23Resources__MessageDetails",
      "description": "Represents details of text message in case of email, message or SMS.",
      "type": "object",
      "properties": {
        "attachmentUrls": {
          "readOnly": true,
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Output only. URL to the SMS or email attachments. These URLs can be used to download the contents of the attachment by using the developer token."
        },
        "text": {
          "description": "Output only. Textual content of the message.",
          "type": "string",
          "readOnly": true
        }
      }
    },
    "GoogleAdsSearchads360V23Services__GenerateAudienceDefinitionRequest": {
      "properties": {
        "customerInsightsGroup": {
          "type": "string",
          "description": "Optional. The name of the customer being planned for. This is a user-defined value."
        },
        "audienceDescription": {
          "description": "Required. Provide a text description of an audience to get AI-generated structured suggestions. This can take around 5 or more seconds to complete Supported marketing objectives are: AWARENESS, CONSIDERATION and RESEARCH. Supported dimensions are: AGE_RANGE, GENDER, PARENTAL_STATUS, AFFINITY_USER_INTEREST, IN_MARKET_USER_INTEREST, LIFE_EVENT_USER_INTEREST, CATEGORY and KNOWLEDGE_GRAPH.",
          "$ref": "GoogleAdsSearchads360V23Services__InsightsAudienceDescription"
        },
        "insightsApplicationInfo": {
          "description": "Optional. Additional information on the application issuing the request.",
          "$ref": "GoogleAdsSearchads360V23Common__AdditionalApplicationInfo"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__GenerateAudienceDefinitionRequest",
      "description": "Request message for AudienceInsightsService.GenerateAudienceDefinition.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MaximizeConversionsBiddingStrategy": {
      "id": "GoogleAdsSearchads360V23Services__MaximizeConversionsBiddingStrategy",
      "description": "Maximize Conversions Bidding Strategy.",
      "type": "object",
      "properties": {
        "dailyTargetSpendMicros": {
          "description": "Required. The daily target spend in micros to be used for estimation. This value must be greater than zero.",
          "type": "string",
          "format": "int64"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__ProductLabelsInfo": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__ProductLabelsInfo",
      "description": "Labels of a product offer. This listing dimension is deprecated and it is supported only in Display campaigns.",
      "properties": {
        "value": {
          "type": "string",
          "description": "String value of the product labels."
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__AssetGroup": {
      "id": "GoogleAdsSearchads360V23Resources__AssetGroup",
      "description": "An asset group. AssetGroupAsset is used to link an asset to the asset group. AssetGroupSignal is used to associate a signal to an asset group.",
      "type": "object",
      "properties": {
        "campaign": {
          "description": "Immutable. The campaign with which this asset group is associated. The asset which is linked to the asset group.",
          "type": "string"
        },
        "finalUrls": {
          "description": "A list of final URLs after all cross domain redirects. In performance max, by default, the urls are eligible for expansion unless opted out.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "primaryStatusReasons": {
          "readOnly": true,
          "description": "Output only. Provides reasons into why an asset group is not serving or not serving optimally. It will be empty when the asset group is serving without issues.",
          "type": "array",
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "The user-specified asset group status is paused. Contributes to AssetGroupPrimaryStatus.PAUSED",
              "The user-specified asset group status is removed. Contributes to AssetGroupPrimaryStatus.REMOVED.",
              "The user-specified campaign status is removed. Contributes to AssetGroupPrimaryStatus.NOT_ELIGIBLE.",
              "The user-specified campaign status is paused. Contributes to AssetGroupPrimaryStatus.NOT_ELIGIBLE.",
              "The user-specified time for this campaign to start is in the future. Contributes to AssetGroupPrimaryStatus.NOT_ELIGIBLE.",
              "The user-specified time for this campaign to end has passed. Contributes to AssetGroupPrimaryStatus.NOT_ELIGIBLE.",
              "The asset group is approved but only serves in limited capacity due to policies. Contributes to AssetGroupPrimaryStatus.LIMITED.",
              "The asset group has been marked as disapproved. Contributes to AssetGroupPrimaryStatus.NOT_ELIGIBLE.",
              "The asset group has not completed policy review. Contributes to AssetGroupPrimaryStatus.PENDING."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "ASSET_GROUP_PAUSED",
              "ASSET_GROUP_REMOVED",
              "CAMPAIGN_REMOVED",
              "CAMPAIGN_PAUSED",
              "CAMPAIGN_PENDING",
              "CAMPAIGN_ENDED",
              "ASSET_GROUP_LIMITED",
              "ASSET_GROUP_DISAPPROVED",
              "ASSET_GROUP_UNDER_REVIEW"
            ]
          }
        },
        "path1": {
          "type": "string",
          "description": "First part of text that may appear appended to the url displayed in the ad."
        },
        "status": {
          "type": "string",
          "enumDescriptions": [
            "The status has not been specified.",
            "The received value is not known in this version.",
            "The asset group is enabled.",
            "The asset group is paused.",
            "The asset group is removed."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "PAUSED",
            "REMOVED"
          ],
          "description": "The status of the asset group."
        },
        "id": {
          "description": "Output only. The ID of the asset group.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        },
        "path2": {
          "type": "string",
          "description": "Second part of text that may appear appended to the url displayed in the ad. This field can only be set when path1 is set."
        },
        "finalMobileUrls": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of final mobile URLs after all cross domain redirects. In performance max, by default, the urls are eligible for expansion unless opted out."
        },
        "adStrength": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PENDING",
            "NO_ADS",
            "POOR",
            "AVERAGE",
            "GOOD",
            "EXCELLENT"
          ],
          "readOnly": true,
          "description": "Output only. Overall ad strength of this asset group.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The ad strength is currently pending.",
            "No ads could be generated.",
            "Poor strength.",
            "Average strength.",
            "Good strength.",
            "Excellent strength."
          ]
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the asset group. Asset group resource names have the form: `customers/{customer_id}/assetGroups/{asset_group_id}`"
        },
        "assetCoverage": {
          "readOnly": true,
          "description": "Output only. The asset coverage of this asset group.",
          "$ref": "GoogleAdsSearchads360V23Resources__AssetCoverage"
        },
        "primaryStatus": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ELIGIBLE",
            "PAUSED",
            "REMOVED",
            "NOT_ELIGIBLE",
            "LIMITED",
            "PENDING"
          ],
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset group is eligible to serve.",
            "The asset group is paused.",
            "The asset group is removed.",
            "The asset group is not eligible to serve.",
            "The asset group has limited servability.",
            "The asset group is pending approval and may serve in the future."
          ],
          "description": "Output only. The primary status of the asset group. Provides insights into why an asset group is not serving or not serving optimally."
        },
        "name": {
          "description": "Required. Name of the asset group. Required. It must have a minimum length of 1 and maximum length of 128. It must be unique under a campaign.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__ListPlannableLocationsResponse": {
      "id": "GoogleAdsSearchads360V23Services__ListPlannableLocationsResponse",
      "description": "The list of plannable locations.",
      "type": "object",
      "properties": {
        "plannableLocations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__PlannableLocation"
          },
          "description": "The list of locations available for planning. See https://developers.google.com/google-ads/api/reference/data/geotargets for sample locations."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__ManualCpa": {
      "id": "GoogleAdsSearchads360V23Common__ManualCpa",
      "description": "Manual bidding strategy that allows advertiser to set the bid per advertiser-specified action.",
      "type": "object",
      "properties": {}
    },
    "GoogleAdsSearchads360V23Services__MutateKeywordPlanCampaignsResponse": {
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateKeywordPlanCampaignResult"
          },
          "description": "All results for the mutate."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateKeywordPlanCampaignsResponse",
      "description": "Response message for a Keyword Plan campaign mutate."
    },
    "GoogleAdsSearchads360V23Services__MutateKeywordPlanAdGroupKeywordsRequest": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateKeywordPlanAdGroupKeywordsRequest",
      "description": "Request message for KeywordPlanAdGroupKeywordService.MutateKeywordPlanAdGroupKeywords.",
      "properties": {
        "operations": {
          "description": "Required. The list of operations to perform on individual Keyword Plan ad group keywords.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__KeywordPlanAdGroupKeywordOperation"
          }
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__KeywordPlanAggregateMetrics": {
      "properties": {
        "aggregateMetricTypes": {
          "description": "The list of aggregate metrics to fetch data.",
          "type": "array",
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "The value is unknown in this version.",
              "The device breakdown of aggregate search volume."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "DEVICE"
            ]
          }
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__KeywordPlanAggregateMetrics",
      "description": "The aggregate metrics specification of the request."
    },
    "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_CallExtensionParameters": {
      "id": "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_CallExtensionParameters",
      "description": "Parameters to use when applying call extension recommendation.",
      "type": "object",
      "properties": {
        "callExtensions": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__CallFeedItem"
          },
          "description": "Call extensions to be added. This is a required field."
        }
      }
    },
    "GoogleAdsSearchads360V23Resources_Campaign_HotelSettingInfo": {
      "properties": {
        "hotelCenterId": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. The linked Hotel Center account."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources_Campaign_HotelSettingInfo",
      "description": "Campaign-level settings for hotel ads."
    },
    "GoogleAdsSearchads360V23Services_SuggestGeoTargetConstantsRequest_GeoTargets": {
      "id": "GoogleAdsSearchads360V23Services_SuggestGeoTargetConstantsRequest_GeoTargets",
      "description": "A list of geo target constant resource names.",
      "type": "object",
      "properties": {
        "geoTargetConstants": {
          "description": "A list of geo target constant resource names.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "GoogleAdsSearchads360V23Services__GenerateSuggestedTargetingInsightsRequest": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__GenerateSuggestedTargetingInsightsRequest",
      "description": "Request message for AudienceInsightsService.GenerateSuggestedTargetingInsights.",
      "properties": {
        "customerInsightsGroup": {
          "description": "Optional. The name of the customer being planned for. This is a user-defined value.",
          "type": "string"
        },
        "audienceDefinition": {
          "description": "Provide a seed audience to get suggestions for.",
          "$ref": "GoogleAdsSearchads360V23Services__InsightsAudienceDefinition"
        },
        "insightsApplicationInfo": {
          "description": "Optional. Additional information on the application issuing the request.",
          "$ref": "GoogleAdsSearchads360V23Common__AdditionalApplicationInfo"
        },
        "audienceDescription": {
          "description": "Provide a text description of an audience to get AI-generated targeting suggestions. This can take around 5 or more seconds to complete.",
          "$ref": "GoogleAdsSearchads360V23Services__InsightsAudienceDescription"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateCustomerClientLinkResponse": {
      "properties": {
        "result": {
          "description": "A result that identifies the resource affected by the mutate request.",
          "$ref": "GoogleAdsSearchads360V23Services__MutateCustomerClientLinkResult"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__MutateCustomerClientLinkResponse",
      "description": "Response message for a CustomerClientLink mutate.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources_AdGroupDemandGenAdGroupSettingsDemandGenChannelControls_DemandGenSelectedChannels": {
      "properties": {
        "youtubeInStream": {
          "description": "Whether to enable ads on the YouTube In-Stream channel.",
          "type": "boolean"
        },
        "display": {
          "description": "Whether to enable ads on the Display channel.",
          "type": "boolean"
        },
        "discover": {
          "type": "boolean",
          "description": "Whether to enable ads on the Discover channel."
        },
        "gmail": {
          "type": "boolean",
          "description": "Whether to enable ads on the Gmail channel."
        },
        "youtubeInFeed": {
          "description": "Whether to enable ads on the YouTube In-Feed channel.",
          "type": "boolean"
        },
        "youtubeShorts": {
          "type": "boolean",
          "description": "Whether to enable ads on the YouTube Shorts channel."
        }
      },
      "id": "GoogleAdsSearchads360V23Resources_AdGroupDemandGenAdGroupSettingsDemandGenChannelControls_DemandGenSelectedChannels",
      "description": "Explicitly selected channels for channel controls in Demand Gen ad groups.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateAdGroupLabelResult": {
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__MutateAdGroupLabelResult",
      "description": "The result for an ad group label mutate.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources__CallReportingSetting": {
      "properties": {
        "callReportingEnabled": {
          "description": "Enable reporting of phone call events by redirecting them through Google System.",
          "type": "boolean"
        },
        "callConversionReportingEnabled": {
          "description": "Whether to enable call conversion reporting.",
          "type": "boolean"
        },
        "callConversionAction": {
          "type": "string",
          "description": "Customer-level call conversion action to attribute a call conversion to. If not set a default conversion action is used. Only in effect when call_conversion_reporting_enabled is set to true."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__CallReportingSetting",
      "description": "Call reporting setting for a customer."
    },
    "GoogleAdsSearchads360V23Common__CallFeedItem": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__CallFeedItem",
      "description": "Represents a Call extension.",
      "properties": {
        "phoneNumber": {
          "description": "The advertiser's phone number to append to the ad. This string must not be empty.",
          "type": "string"
        },
        "callConversionTrackingDisabled": {
          "description": "If true, disable call conversion tracking. call_conversion_action should not be set if this is true. Optional.",
          "type": "boolean"
        },
        "callConversionReportingState": {
          "description": "Enum value that indicates whether this call extension uses its own call conversion setting (or just have call conversion disabled), or following the account level setting.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Call conversion action is disabled.",
            "Call conversion action will use call conversion type set at the account level.",
            "Call conversion action will use call conversion type set at the resource (call only ads/call extensions) level."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DISABLED",
            "USE_ACCOUNT_LEVEL_CALL_CONVERSION_ACTION",
            "USE_RESOURCE_LEVEL_CALL_CONVERSION_ACTION"
          ]
        },
        "callTrackingEnabled": {
          "type": "boolean",
          "description": "Indicates whether call tracking is enabled. By default, call tracking is not enabled."
        },
        "callConversionAction": {
          "description": "The conversion action to attribute a call conversion to. If not set a default conversion action is used. This field only has effect if call_tracking_enabled is set to true. Otherwise this field is ignored.",
          "type": "string"
        },
        "countryCode": {
          "type": "string",
          "description": "Uppercase two-letter country code of the advertiser's phone number. This string must not be empty."
        }
      }
    },
    "GoogleAdsSearchads360V23Resources_Invoice_AccountBudgetSummary": {
      "properties": {
        "servedAmountMicros": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. The pretax served amount attributable to this budget during the service period, in micros. This is only useful to reconcile invoice and delivery data."
        },
        "customerDescriptiveName": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The descriptive name of the account budget's customer. It appears on the invoice PDF as \"Account\"."
        },
        "accountBudget": {
          "readOnly": true,
          "description": "Output only. The resource name of the account budget associated with this summarized billable cost. AccountBudget resource names have the form: `customers/{customer_id}/accountBudgets/{account_budget_id}`",
          "type": "string"
        },
        "customer": {
          "type": "string",
          "description": "Output only. The resource name of the customer associated with this account budget. This contains the customer ID, which appears on the invoice PDF as \"Account ID\". Customer resource names have the form: `customers/{customer_id}`",
          "readOnly": true
        },
        "subtotalAmountMicros": {
          "description": "Output only. The pretax subtotal amount attributable to this budget during the service period, in micros.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        },
        "accountBudgetName": {
          "description": "Output only. The name of the account budget. It appears on the invoice PDF as \"Account budget\".",
          "type": "string",
          "readOnly": true
        },
        "billableActivityDateRange": {
          "description": "Output only. The billable activity date range of the account budget, within the service date range of this invoice. The end date is inclusive. This can be different from the account budget's start and end time.",
          "$ref": "GoogleAdsSearchads360V23Common__DateRange",
          "readOnly": true
        },
        "invalidActivitySummaries": {
          "description": "Output only. The list of summarized invalid activity credits with original linkages.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Resources_Invoice_InvalidActivitySummary"
          },
          "readOnly": true
        },
        "purchaseOrderNumber": {
          "type": "string",
          "description": "Output only. The purchase order number of the account budget. It appears on the invoice PDF as \"Purchase order\".",
          "readOnly": true
        },
        "totalAmountMicros": {
          "description": "Output only. The total amount attributable to this budget during the service period, in micros. This equals the sum of the account budget subtotal amount and the account budget tax amount.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        },
        "overdeliveryAmountMicros": {
          "description": "Output only. The pretax overdelivery amount attributable to this budget during the service period, in micros (negative value).",
          "type": "string",
          "format": "int64",
          "readOnly": true
        },
        "billedAmountMicros": {
          "type": "string",
          "format": "int64",
          "description": "Output only. The pretax billed amount attributable to this budget during the service period, in micros. This does not account for any adjustments.",
          "readOnly": true
        },
        "campaignSummaries": {
          "description": "Output only. The list of summarized campaign level information associated with this account budget.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Resources_Invoice_CampaignSummary"
          },
          "readOnly": true
        },
        "taxAmountMicros": {
          "description": "Output only. The tax amount attributable to this budget during the service period, in micros.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        },
        "invalidActivityAmountMicros": {
          "readOnly": true,
          "type": "string",
          "format": "int64",
          "description": "Output only. The pretax invalid activity amount attributable to this budget in previous months, in micros (negative value)."
        }
      },
      "id": "GoogleAdsSearchads360V23Resources_Invoice_AccountBudgetSummary",
      "description": "Represents a summarized account budget billable cost.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateCustomerLabelResult": {
      "id": "GoogleAdsSearchads360V23Services__MutateCustomerLabelResult",
      "description": "The result for a customer label mutate.",
      "type": "object",
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateCustomizerAttributeResult": {
      "id": "GoogleAdsSearchads360V23Services__MutateCustomizerAttributeResult",
      "description": "The result for the customizer attribute mutate.",
      "type": "object",
      "properties": {
        "customizerAttribute": {
          "description": "The mutated CustomizerAttribute with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsSearchads360V23Resources__CustomizerAttribute"
        },
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateAssetsRequest": {
      "properties": {
        "responseContentType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation."
        },
        "operations": {
          "description": "Required. The list of operations to perform on individual assets.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__AssetOperation"
          }
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        },
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        }
      },
      "id": "GoogleAdsSearchads360V23Services__MutateAssetsRequest",
      "description": "Request message for AssetService.MutateAssets",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources__BusinessRegistrationDocument": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__BusinessRegistrationDocument",
      "description": "specific to a local services business registration document.",
      "properties": {
        "documentReadonly": {
          "readOnly": true,
          "description": "Output only. The readonly field containing the information for an uploaded business registration document.",
          "$ref": "GoogleAdsSearchads360V23Common__LocalServicesDocumentReadOnly"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__Incentive": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__Incentive",
      "description": "An incentive that a user can claim for their account.",
      "properties": {
        "incentiveId": {
          "type": "string",
          "format": "int64",
          "description": "The incentive ID of this incentive. This is used to identify which incentive is selected by the user in the CYO flow."
        },
        "requirement": {
          "description": "The requirement for this incentive.",
          "$ref": "GoogleAdsSearchads360V23Services_Incentive_Requirement"
        },
        "incentiveTermsAndConditionsUrl": {
          "type": "string",
          "description": "The URL of the terms and conditions for THIS incentive offer ONLY. This is different from the terms_and_conditions_url field in AcquisitionIncentiveOffer which is a combination of all the Incentive offers in a CYO offer."
        },
        "type": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Unknown incentive type. Should not be used as a value explicitly.",
            "An acquisition incentive."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ACQUISITION"
          ],
          "description": "The type of the incentive."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__CreateProductLinkInvitationRequest": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__CreateProductLinkInvitationRequest",
      "description": "Request message for ProductLinkInvitationService.CreateProductLinkInvitation.",
      "properties": {
        "productLinkInvitation": {
          "description": "Required. The product link invitation to be created.",
          "$ref": "GoogleAdsSearchads360V23Resources__ProductLinkInvitation"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__FinalUrlExpansionAssetView": {
      "properties": {
        "finalUrl": {
          "readOnly": true,
          "description": "Output only. Final URL of the FinalUrlExpansionAsset.",
          "type": "string"
        },
        "assetGroup": {
          "description": "Output only. Asset Group in which FinalUrlExpansionAsset served.",
          "type": "string",
          "readOnly": true
        },
        "campaign": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Campaign in which the asset served."
        },
        "asset": {
          "readOnly": true,
          "description": "Output only. The ID of the asset.",
          "type": "string"
        },
        "resourceName": {
          "readOnly": true,
          "description": "Output only. The resource name of the FinalUrlExpansionAsset.",
          "type": "string"
        },
        "status": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED",
            "PAUSED"
          ],
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Asset link is enabled.",
            "Asset link has been removed.",
            "Asset link is paused."
          ],
          "description": "Output only. Status of the FinalUrlExpansionAsset."
        },
        "fieldType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is linked for use as a headline.",
            "The asset is linked for use as a description.",
            "The asset is linked for use as mandatory ad text.",
            "The asset is linked for use as a marketing image.",
            "The asset is linked for use as a media bundle.",
            "The asset is linked for use as a YouTube video.",
            "The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.",
            "The asset is linked for use as a Lead Form extension.",
            "The asset is linked for use as a Promotion extension.",
            "The asset is linked for use as a Callout extension.",
            "The asset is linked for use as a Structured Snippet extension.",
            "The asset is linked for use as a Sitelink.",
            "The asset is linked for use as a Mobile App extension.",
            "The asset is linked for use as a Hotel Callout extension.",
            "The asset is linked for use as a Call extension.",
            "The asset is linked for use as a Price extension.",
            "The asset is linked for use as a long headline.",
            "The asset is linked for use as a business name.",
            "The asset is linked for use as a square marketing image.",
            "The asset is linked for use as a portrait marketing image.",
            "The asset is linked for use as a logo.",
            "The asset is linked for use as a landscape logo.",
            "The asset is linked for use as a non YouTube logo.",
            "The asset is linked for use to select a call-to-action.",
            "The asset is linked for use to select an ad image.",
            "The asset is linked for use as a business logo.",
            "The asset is linked for use as a hotel property in a Performance Max for travel goals campaign.",
            "The asset is linked for use as a Demand Gen carousel card.",
            "The asset is linked for use as a Business Message.",
            "The asset is linked for use as a tall portrait marketing image.",
            "The asset is linked for use as a landing page preview image.",
            "The asset is linked for use as a long description.",
            "The asset is linked for use as a call-to-action."
          ],
          "description": "Output only. The field type of the asset.",
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HEADLINE",
            "DESCRIPTION",
            "MANDATORY_AD_TEXT",
            "MARKETING_IMAGE",
            "MEDIA_BUNDLE",
            "YOUTUBE_VIDEO",
            "BOOK_ON_GOOGLE",
            "LEAD_FORM",
            "PROMOTION",
            "CALLOUT",
            "STRUCTURED_SNIPPET",
            "SITELINK",
            "MOBILE_APP",
            "HOTEL_CALLOUT",
            "CALL",
            "PRICE",
            "LONG_HEADLINE",
            "BUSINESS_NAME",
            "SQUARE_MARKETING_IMAGE",
            "PORTRAIT_MARKETING_IMAGE",
            "LOGO",
            "LANDSCAPE_LOGO",
            "VIDEO",
            "CALL_TO_ACTION_SELECTION",
            "AD_IMAGE",
            "BUSINESS_LOGO",
            "HOTEL_PROPERTY",
            "DEMAND_GEN_CAROUSEL_CARD",
            "BUSINESS_MESSAGE",
            "TALL_PORTRAIT_MARKETING_IMAGE",
            "LANDING_PAGE_PREVIEW",
            "LONG_DESCRIPTION",
            "CALL_TO_ACTION"
          ]
        },
        "adGroup": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Ad Group in which FinalUrlExpansionAsset served."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__FinalUrlExpansionAssetView",
      "description": "FinalUrlExpansionAssetView Resource."
    },
    "GoogleAdsSearchads360V23Common__ChainSet": {
      "properties": {
        "chains": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__ChainFilter"
          },
          "description": "Required. A list of chain level filters, all filters are OR'ed together."
        },
        "relationshipType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Auto dealer relationship.",
            "General retailer relationship."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AUTO_DEALERS",
            "GENERAL_RETAILERS"
          ],
          "description": "Required. Immutable. Relationship type the specified chains have with this advertiser."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__ChainSet",
      "description": "Data used to configure a location set populated with the specified chains."
    },
    "GoogleAdsSearchads360V23Resources__ThirdPartyAppAnalyticsLink": {
      "id": "GoogleAdsSearchads360V23Resources__ThirdPartyAppAnalyticsLink",
      "description": "A data sharing connection, allowing the import of third party app analytics into a Google Ads Customer.",
      "type": "object",
      "properties": {
        "shareableLinkId": {
          "readOnly": true,
          "description": "Output only. The shareable link ID that should be provided to the third party when setting up app analytics. This is able to be regenerated using regenerate method in the ThirdPartyAppAnalyticsLinkService.",
          "type": "string"
        },
        "resourceName": {
          "description": "Immutable. The resource name of the third party app analytics link. Third party app analytics link resource names have the form: `customers/{customer_id}/thirdPartyAppAnalyticsLinks/{account_link_id}`",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__TravelActivityGroupView": {
      "properties": {
        "resourceName": {
          "readOnly": true,
          "description": "Output only. The resource name of the travel activity group view. Travel Activity Group view resource names have the form: `customers/{customer_id}/travelActivityGroupViews/{ad_group_id}~{criterion_id}`",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__TravelActivityGroupView",
      "description": "A travel activity group view."
    },
    "GoogleAdsSearchads360V23Errors__ErrorLocation": {
      "properties": {
        "fieldPathElements": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Errors_ErrorLocation_FieldPathElement"
          },
          "description": "A field path that indicates which field was invalid in the request."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Errors__ErrorLocation",
      "description": "Describes the part of the request proto that caused the error."
    },
    "GoogleAdsSearchads360V23Resources__HotelGroupView": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__HotelGroupView",
      "description": "A hotel group view.",
      "properties": {
        "resourceName": {
          "readOnly": true,
          "description": "Output only. The resource name of the hotel group view. Hotel Group view resource names have the form: `customers/{customer_id}/hotelGroupViews/{ad_group_id}~{criterion_id}`",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__ActivityRatingInfo": {
      "id": "GoogleAdsSearchads360V23Common__ActivityRatingInfo",
      "description": "Rating of the activity as a number 1 to 5, where 5 is the best.",
      "type": "object",
      "properties": {
        "value": {
          "description": "Long value of the activity rating.",
          "type": "string",
          "format": "int64"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__ProductMetadata": {
      "properties": {
        "plannableProductName": {
          "type": "string",
          "description": "The name associated with the ad product."
        },
        "plannableTargeting": {
          "description": "The allowed plannable targeting for this product.",
          "$ref": "GoogleAdsSearchads360V23Services__PlannableTargeting"
        },
        "plannableProductCode": {
          "description": "The code associated with the ad product (for example: BUMPER, TRUEVIEW_IN_STREAM). To list the available plannable product codes use ReachPlanService.ListPlannableProducts.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__ProductMetadata",
      "description": "The metadata associated with an available plannable product."
    },
    "GoogleAdsSearchads360V23Services__AssetsWithFieldType": {
      "properties": {
        "assetFieldType": {
          "description": "Required. The asset field type.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is linked for use as a headline.",
            "The asset is linked for use as a description.",
            "The asset is linked for use as mandatory ad text.",
            "The asset is linked for use as a marketing image.",
            "The asset is linked for use as a media bundle.",
            "The asset is linked for use as a YouTube video.",
            "The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.",
            "The asset is linked for use as a Lead Form extension.",
            "The asset is linked for use as a Promotion extension.",
            "The asset is linked for use as a Callout extension.",
            "The asset is linked for use as a Structured Snippet extension.",
            "The asset is linked for use as a Sitelink.",
            "The asset is linked for use as a Mobile App extension.",
            "The asset is linked for use as a Hotel Callout extension.",
            "The asset is linked for use as a Call extension.",
            "The asset is linked for use as a Price extension.",
            "The asset is linked for use as a long headline.",
            "The asset is linked for use as a business name.",
            "The asset is linked for use as a square marketing image.",
            "The asset is linked for use as a portrait marketing image.",
            "The asset is linked for use as a logo.",
            "The asset is linked for use as a landscape logo.",
            "The asset is linked for use as a non YouTube logo.",
            "The asset is linked for use to select a call-to-action.",
            "The asset is linked for use to select an ad image.",
            "The asset is linked for use as a business logo.",
            "The asset is linked for use as a hotel property in a Performance Max for travel goals campaign.",
            "The asset is linked for use as a Demand Gen carousel card.",
            "The asset is linked for use as a Business Message.",
            "The asset is linked for use as a tall portrait marketing image.",
            "The asset is linked for use as a landing page preview image.",
            "The asset is linked for use as a long description.",
            "The asset is linked for use as a call-to-action."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HEADLINE",
            "DESCRIPTION",
            "MANDATORY_AD_TEXT",
            "MARKETING_IMAGE",
            "MEDIA_BUNDLE",
            "YOUTUBE_VIDEO",
            "BOOK_ON_GOOGLE",
            "LEAD_FORM",
            "PROMOTION",
            "CALLOUT",
            "STRUCTURED_SNIPPET",
            "SITELINK",
            "MOBILE_APP",
            "HOTEL_CALLOUT",
            "CALL",
            "PRICE",
            "LONG_HEADLINE",
            "BUSINESS_NAME",
            "SQUARE_MARKETING_IMAGE",
            "PORTRAIT_MARKETING_IMAGE",
            "LOGO",
            "LANDSCAPE_LOGO",
            "VIDEO",
            "CALL_TO_ACTION_SELECTION",
            "AD_IMAGE",
            "BUSINESS_LOGO",
            "HOTEL_PROPERTY",
            "DEMAND_GEN_CAROUSEL_CARD",
            "BUSINESS_MESSAGE",
            "TALL_PORTRAIT_MARKETING_IMAGE",
            "LANDING_PAGE_PREVIEW",
            "LONG_DESCRIPTION",
            "CALL_TO_ACTION"
          ]
        },
        "asset": {
          "type": "string",
          "description": "Required. The resource name of the asset to be removed."
        }
      },
      "id": "GoogleAdsSearchads360V23Services__AssetsWithFieldType",
      "description": "The combination of system asset and field type to remove.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__CalloutAsset": {
      "id": "GoogleAdsSearchads360V23Common__CalloutAsset",
      "description": "A Callout asset.",
      "type": "object",
      "properties": {
        "startDate": {
          "type": "string",
          "description": "Start date of when this asset is effective and can begin serving, in yyyy-MM-dd format."
        },
        "adScheduleTargets": {
          "description": "List of non-overlapping schedules specifying all time intervals for which the asset may serve. There can be a maximum of 6 schedules per day, 42 in total.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AdScheduleInfo"
          }
        },
        "calloutText": {
          "type": "string",
          "description": "Required. The callout text. The length of this string should be between 1 and 25, inclusive."
        },
        "endDate": {
          "type": "string",
          "description": "Last date of when this asset is effective and still serving, in yyyy-MM-dd format."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__KnowledgeGraphAttributeMetadata": {
      "id": "GoogleAdsSearchads360V23Common__KnowledgeGraphAttributeMetadata",
      "description": "Metadata associated with a Knowledge Graph Entity attribute.",
      "type": "object",
      "properties": {
        "entityCapabilities": {
          "type": "array",
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "The value is unknown in this version.",
              "An entity that is supported to use as a trending topic in ContentCreatorInsightsService.GenerateTrendingInsights.",
              "An entity that is supported to use as a creator attribute in ContentCreatorInsightsService.GenerateCreatorInsights."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "CONTENT_TRENDING_INSIGHTS",
              "CREATOR_ATTRIBUTE"
            ]
          },
          "description": "The capabilities of the entity used in ContentCreatorInsightsService."
        },
        "relatedCategories": {
          "description": "A list of CATEGORY attributes related to this entity.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AudienceInsightsAttributeMetadata"
          }
        }
      }
    },
    "GoogleAdsSearchads360V23Services__ExperimentArmOperation": {
      "properties": {
        "remove": {
          "description": "Remove operation: The experiment arm is expected to have a valid resource name, in this format: `customers/{customer_id}/experiments/{campaign_experiment_id}`",
          "type": "string"
        },
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "type": "string",
          "format": "google-fieldmask"
        },
        "create": {
          "description": "Create operation",
          "$ref": "GoogleAdsSearchads360V23Resources__ExperimentArm"
        },
        "update": {
          "description": "Update operation: The experiment arm is expected to have a valid resource name.",
          "$ref": "GoogleAdsSearchads360V23Resources__ExperimentArm"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__ExperimentArmOperation",
      "description": "A single operation on an experiment arm."
    },
    "GoogleAdsSearchads360V23Services__GenerateKeywordIdeaResult": {
      "properties": {
        "text": {
          "description": "Text of the keyword idea. As in Keyword Plan historical metrics, this text may not be an actual keyword, but the canonical form of multiple keywords. See KeywordPlanKeywordHistoricalMetrics message in KeywordPlanService.",
          "type": "string"
        },
        "keywordAnnotations": {
          "description": "The annotations for the keyword. The annotation data is only provided if requested.",
          "$ref": "GoogleAdsSearchads360V23Common__KeywordAnnotations"
        },
        "closeVariants": {
          "description": "The list of close variants from the requested keywords that are combined into this GenerateKeywordIdeaResult. See https://support.google.com/google-ads/answer/9342105 for the definition of \"close variants\".",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "keywordIdeaMetrics": {
          "description": "The historical metrics for the keyword.",
          "$ref": "GoogleAdsSearchads360V23Common__KeywordPlanHistoricalMetrics"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__GenerateKeywordIdeaResult",
      "description": "The result of generating keyword ideas.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateAdGroupAssetResult": {
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        },
        "adGroupAsset": {
          "description": "The mutated ad group asset with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsSearchads360V23Resources__AdGroupAsset"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateAdGroupAssetResult",
      "description": "The result for the ad group asset mutate."
    },
    "GoogleAdsSearchads360V23Common__TargetRestrictionOperation": {
      "properties": {
        "value": {
          "description": "The target restriction being added to or removed from the list.",
          "$ref": "GoogleAdsSearchads360V23Common__TargetRestriction"
        },
        "operator": {
          "description": "Type of list operation to perform.",
          "type": "string",
          "enumDescriptions": [
            "Unspecified.",
            "Used for return value only. Represents value unknown in this version.",
            "Add the restriction to the existing restrictions.",
            "Remove the restriction from the existing restrictions."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADD",
            "REMOVE"
          ]
        }
      },
      "id": "GoogleAdsSearchads360V23Common__TargetRestrictionOperation",
      "description": "Operation to be performed on a target restriction list in a mutate.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateAssetGroupsResponse": {
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateAssetGroupResult"
          },
          "description": "All results for the mutate."
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__MutateAssetGroupsResponse",
      "description": "Response message for an asset group mutate.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateCampaignGoalConfigResult": {
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateCampaignGoalConfigResult",
      "description": "The result for the campaign goal config mutate."
    },
    "GoogleAdsSearchads360V23Resources_ConversionValueRule_ValueRuleDeviceCondition": {
      "properties": {
        "deviceTypes": {
          "type": "array",
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "Mobile device.",
              "Desktop device.",
              "Tablet device."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "MOBILE",
              "DESKTOP",
              "TABLET"
            ]
          },
          "description": "Value for device type condition."
        }
      },
      "id": "GoogleAdsSearchads360V23Resources_ConversionValueRule_ValueRuleDeviceCondition",
      "description": "Condition on Device dimension.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__TargetCpaSimulationPoint": {
      "properties": {
        "targetCpaMicros": {
          "type": "string",
          "format": "int64",
          "description": "The simulated target CPA upon which projected metrics are based."
        },
        "requiredBudgetAmountMicros": {
          "description": "Projected required daily budget that the advertiser must set in order to receive the estimated traffic, in micros of advertiser currency.",
          "type": "string",
          "format": "int64"
        },
        "inAppActions": {
          "type": "number",
          "format": "double",
          "description": "Projected number of in-app actions."
        },
        "appInstalls": {
          "description": "Projected number of app installs.",
          "type": "number",
          "format": "double"
        },
        "targetCpaScalingModifier": {
          "type": "number",
          "format": "double",
          "description": "The simulated scaling modifier upon which projected metrics are based. All CPA targets relevant to the simulated entity are scaled by this modifier."
        },
        "biddableConversions": {
          "description": "Projected number of biddable conversions.",
          "type": "number",
          "format": "double"
        },
        "costMicros": {
          "type": "string",
          "format": "int64",
          "description": "Projected cost in micros."
        },
        "interactions": {
          "description": "Projected number of interactions. Only discovery advertising channel type supports this field.",
          "type": "string",
          "format": "int64"
        },
        "biddableConversionsValue": {
          "type": "number",
          "format": "double",
          "description": "Projected total value of biddable conversions."
        },
        "clicks": {
          "type": "string",
          "format": "int64",
          "description": "Projected number of clicks."
        },
        "impressions": {
          "description": "Projected number of impressions.",
          "type": "string",
          "format": "int64"
        },
        "topSlotImpressions": {
          "description": "Projected number of top slot impressions. Only search advertising channel type supports this field.",
          "type": "string",
          "format": "int64"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__TargetCpaSimulationPoint",
      "description": "Projected metrics for a specific target CPA amount."
    },
    "GoogleAdsSearchads360V23Services__MutateCustomerManagerLinkRequest": {
      "properties": {
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__CustomerManagerLinkOperation"
          },
          "description": "Required. The list of operations to perform on individual customer manager links."
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateCustomerManagerLinkRequest",
      "description": "Request message for CustomerManagerLinkService.MutateCustomerManagerLink."
    },
    "GoogleType__Money": {
      "type": "object",
      "id": "GoogleType__Money",
      "description": "Represents an amount of money with its currency type.",
      "properties": {
        "nanos": {
          "type": "integer",
          "format": "int32",
          "description": "Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000."
        },
        "currencyCode": {
          "type": "string",
          "description": "The three-letter currency code defined in ISO 4217."
        },
        "units": {
          "type": "string",
          "format": "int64",
          "description": "The whole units of the amount. For example if `currencyCode` is `\"USD\"`, then 1 unit is one US dollar."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__WebpageListInfo": {
      "properties": {
        "sharedSet": {
          "description": "Shared set resource name of the webpage list.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__WebpageListInfo",
      "description": "Represents a list of webpage criteria."
    },
    "GoogleAdsSearchads360V23Services__RemoveDataLinkResponse": {
      "id": "GoogleAdsSearchads360V23Services__RemoveDataLinkResponse",
      "description": "Response message for DataLinkService.RemoveDataLink.",
      "type": "object",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Result for the remove request."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__AppEngagementAdInfo": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__AppEngagementAdInfo",
      "description": "App engagement ads allow you to write text encouraging a specific action in the app, like checking in, making a purchase, or booking a flight. They allow you to send users to a specific part of your app where they can find what they're looking for easier and faster.",
      "properties": {
        "images": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AdImageAsset"
          },
          "description": "List of image assets that may be displayed with the ad."
        },
        "headlines": {
          "description": "List of text assets for headlines. When the ad serves the headlines will be selected from this list.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AdTextAsset"
          }
        },
        "descriptions": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AdTextAsset"
          },
          "description": "List of text assets for descriptions. When the ad serves the descriptions will be selected from this list."
        },
        "videos": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AdVideoAsset"
          },
          "description": "List of video assets that may be displayed with the ad."
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__OfflineConversionError": {
      "properties": {
        "fieldError": {
          "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"
          ],
          "readOnly": true,
          "description": "Output only. Field error.",
          "type": "string",
          "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."
          ]
        },
        "stringFormatError": {
          "type": "string",
          "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."
          ],
          "description": "Output only. String format error.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ILLEGAL_CHARS",
            "INVALID_FORMAT"
          ],
          "readOnly": true
        },
        "mutateError": {
          "description": "Output only. Mutate error.",
          "type": "string",
          "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."
          ],
          "readOnly": true,
          "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"
          ]
        },
        "notAllowlistedError": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CUSTOMER_NOT_ALLOWLISTED_FOR_THIS_FEATURE"
          ],
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Customer is not allowlisted for accessing this feature."
          ],
          "description": "Output only. Not allowlisted error."
        },
        "conversionAdjustmentUploadError": {
          "readOnly": true,
          "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"
          ],
          "description": "Output only. Conversion adjustment upload error.",
          "type": "string",
          "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`."
          ]
        },
        "stringLengthError": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "EMPTY",
            "TOO_SHORT",
            "TOO_LONG"
          ],
          "readOnly": true,
          "type": "string",
          "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."
          ],
          "description": "Output only. String length error."
        },
        "conversionUploadError": {
          "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"
          ],
          "readOnly": true,
          "description": "Output only. Conversion upload error.",
          "type": "string",
          "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."
          ]
        },
        "collectionSizeError": {
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Too few.",
            "Too many."
          ],
          "description": "Output only. Collection size error.",
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "TOO_FEW",
            "TOO_MANY"
          ]
        },
        "distinctError": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DUPLICATE_ELEMENT",
            "DUPLICATE_TYPE"
          ],
          "description": "Output only. Distinct error.",
          "type": "string",
          "enumDescriptions": [
            "Enum unspecified.",
            "The received error code is not known in this version.",
            "Duplicate element.",
            "Duplicate type."
          ]
        },
        "dateError": {
          "type": "string",
          "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."
          ],
          "description": "Output only. Date error.",
          "readOnly": true,
          "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"
          ]
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__OfflineConversionError",
      "description": "Possible errors for offline conversion client summary."
    },
    "GoogleAdsSearchads360V23Resources__AssetSetTypeView": {
      "properties": {
        "resourceName": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The resource name of the asset set type view. Asset set type view resource names have the form: `customers/{customer_id}/assetSetTypeViews/{asset_set_type}`"
        },
        "assetSetType": {
          "readOnly": true,
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PAGE_FEED",
            "DYNAMIC_EDUCATION",
            "MERCHANT_CENTER_FEED",
            "DYNAMIC_REAL_ESTATE",
            "DYNAMIC_CUSTOM",
            "DYNAMIC_HOTELS_AND_RENTALS",
            "DYNAMIC_FLIGHTS",
            "DYNAMIC_TRAVEL",
            "DYNAMIC_LOCAL",
            "DYNAMIC_JOBS",
            "LOCATION_SYNC",
            "BUSINESS_PROFILE_DYNAMIC_LOCATION_GROUP",
            "CHAIN_DYNAMIC_LOCATION_GROUP",
            "STATIC_LOCATION_GROUP",
            "HOTEL_PROPERTY",
            "TRAVEL_FEED"
          ],
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Page asset set.",
            "Dynamic education asset set.",
            "Google Merchant Center asset set.",
            "Dynamic real estate asset set.",
            "Dynamic custom asset set.",
            "Dynamic hotels and rentals asset set.",
            "Dynamic flights asset set.",
            "Dynamic travel asset set.",
            "Dynamic local asset set.",
            "Dynamic jobs asset set.",
            "Location sync level asset set.",
            "Business Profile location group asset set.",
            "Chain location group asset set which can be used for both owned locations and affiliate locations.",
            "Static location group asset set which can be used for both owned locations and affiliate locations.",
            "Hotel Property asset set which is used to link a hotel property feed to Performance Max for travel goals campaigns.",
            "Travel Feed asset set type. Can represent either a Hotel feed or a Things to Do (activities) feed."
          ],
          "description": "Output only. The asset set type of the asset set type view."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__AssetSetTypeView",
      "description": "An asset set type view. This view reports non-overcounted metrics for each asset set type. Child asset set types are not included in this report. Their stats are aggregated under the parent asset set type."
    },
    "GoogleAdsSearchads360V23Services__SurveyDissatisfied": {
      "properties": {
        "otherReasonComment": {
          "type": "string",
          "description": "Optional. Provider's free form comments. This field is required when OTHER_DISSATISFIED_REASON is selected as the reason."
        },
        "surveyDissatisfiedReason": {
          "description": "Required. Provider's reason for not being satisfied with the lead.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Other reasons.",
            "Lead was for a service that does not match the business' service area.",
            "Lead was for a service that is not offered by the business.",
            "Lead was by a customer that was not ready to book.",
            "Lead was a spam. Example: lead was from a bot, silent called, scam, etc.",
            "Lead was a duplicate of another lead that is, customer contacted the business more than once.",
            "Lead due to solicitation. Example: a person trying to get a job or selling a product, etc."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "OTHER_DISSATISFIED_REASON",
            "GEO_MISMATCH",
            "JOB_TYPE_MISMATCH",
            "NOT_READY_TO_BOOK",
            "SPAM",
            "DUPLICATE",
            "SOLICITATION"
          ]
        }
      },
      "id": "GoogleAdsSearchads360V23Services__SurveyDissatisfied",
      "description": "Details about various factors for not being satisfied with the lead.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__AudienceCompositionSection": {
      "properties": {
        "clusteredAttributes": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__AudienceCompositionAttributeCluster"
          },
          "description": "Additional attributes for this audience, grouped into clusters. Only populated if dimension is YOUTUBE_CHANNEL."
        },
        "dimension": {
          "description": "The type of the attributes in this section.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "A Product & Service category.",
            "A Knowledge Graph entity.",
            "A country, represented by a geo target.",
            "A geographic location within a country.",
            "A YouTube channel.",
            "An Affinity UserInterest.",
            "An In-Market UserInterest.",
            "A Parental Status value (parent, or not a parent).",
            "A household income percentile range.",
            "An age range.",
            "A gender.",
            "A YouTube video.",
            "A device type, such as Mobile, Desktop, Tablet, and Connected TV.",
            "A YouTube Lineup.",
            "A User List.",
            "A Life Event UserInterest."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CATEGORY",
            "KNOWLEDGE_GRAPH",
            "GEO_TARGET_COUNTRY",
            "SUB_COUNTRY_LOCATION",
            "YOUTUBE_CHANNEL",
            "AFFINITY_USER_INTEREST",
            "IN_MARKET_USER_INTEREST",
            "PARENTAL_STATUS",
            "INCOME_RANGE",
            "AGE_RANGE",
            "GENDER",
            "YOUTUBE_VIDEO",
            "DEVICE",
            "YOUTUBE_LINEUP",
            "USER_LIST",
            "LIFE_EVENT_USER_INTEREST"
          ]
        },
        "topAttributes": {
          "description": "The most relevant segments for this audience. If dimension is GENDER, AGE_RANGE or PARENTAL_STATUS, then this list of attributes is exhaustive.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__AudienceCompositionAttribute"
          }
        }
      },
      "id": "GoogleAdsSearchads360V23Services__AudienceCompositionSection",
      "description": "A collection of related attributes of the same type in an audience composition insights report.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources__AdGroupAudienceView": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__AdGroupAudienceView",
      "description": "An ad group audience view. Includes performance data from interests and remarketing lists for Display Network and YouTube Network ads, and remarketing lists for search ads (RLSA), aggregated at the audience level.",
      "properties": {
        "resourceName": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The resource name of the ad group audience view. Ad group audience view resource names have the form: `customers/{customer_id}/adGroupAudienceViews/{ad_group_id}~{criterion_id}`"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__CombinedAudienceInfo": {
      "id": "GoogleAdsSearchads360V23Common__CombinedAudienceInfo",
      "description": "A combined audience criterion.",
      "type": "object",
      "properties": {
        "combinedAudience": {
          "type": "string",
          "description": "The CombinedAudience resource name."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateAssetGroupAssetResult": {
      "id": "GoogleAdsSearchads360V23Services__MutateAssetGroupAssetResult",
      "description": "The result for the asset group asset mutate.",
      "type": "object",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__BasicUserListInfo": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__BasicUserListInfo",
      "properties": {
        "actions": {
          "description": "Actions associated with this user list.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__UserListActionInfo"
          }
        }
      }
    },
    "GoogleAdsSearchads360V23Common__SmartCampaignAdInfo": {
      "properties": {
        "descriptions": {
          "description": "List of text assets, each of which corresponds to a description when the ad serves. This list consists of a minimum of 2 and up to 4 text assets.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AdTextAsset"
          }
        },
        "headlines": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AdTextAsset"
          },
          "description": "List of text assets, each of which corresponds to a headline when the ad serves. This list consists of a minimum of 3 and up to 15 text assets."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__SmartCampaignAdInfo",
      "description": "A Smart campaign ad."
    },
    "GoogleAdsSearchads360V23Common__CustomIntentInfo": {
      "properties": {
        "customIntent": {
          "type": "string",
          "description": "The CustomInterest resource name."
        }
      },
      "id": "GoogleAdsSearchads360V23Common__CustomIntentInfo",
      "description": "A custom intent criterion. A criterion of this type is only targetable.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__ManualCpv": {
      "properties": {},
      "id": "GoogleAdsSearchads360V23Common__ManualCpv",
      "description": "View based bidding where user pays per video view.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateCampaignLabelsResponse": {
      "id": "GoogleAdsSearchads360V23Services__MutateCampaignLabelsResponse",
      "description": "Response message for a campaign labels mutate.",
      "type": "object",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateCampaignLabelResult"
          },
          "description": "All results for the mutate."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__PolicyViolationKey": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__PolicyViolationKey",
      "description": "Key of the violation. The key is used for referring to a violation when filing an exemption request.",
      "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"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__CallAsset": {
      "properties": {
        "countryCode": {
          "description": "Required. Two-letter country code of the phone number. Examples: 'US', 'us'.",
          "type": "string"
        },
        "callConversionAction": {
          "type": "string",
          "description": "The conversion action to attribute a call conversion to. If not set, the default conversion action is used. This field only has effect if call_conversion_reporting_state is set to USE_RESOURCE_LEVEL_CALL_CONVERSION_ACTION."
        },
        "callConversionReportingState": {
          "description": "Indicates whether this CallAsset should use its own call conversion setting, follow the account level setting, or disable call conversion.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Call conversion action is disabled.",
            "Call conversion action will use call conversion type set at the account level.",
            "Call conversion action will use call conversion type set at the resource (call only ads/call extensions) level."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DISABLED",
            "USE_ACCOUNT_LEVEL_CALL_CONVERSION_ACTION",
            "USE_RESOURCE_LEVEL_CALL_CONVERSION_ACTION"
          ]
        },
        "adScheduleTargets": {
          "description": "List of non-overlapping schedules specifying all time intervals for which the asset may serve. There can be a maximum of 6 schedules per day, 42 in total.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AdScheduleInfo"
          }
        },
        "phoneNumber": {
          "type": "string",
          "description": "Required. The advertiser's raw phone number. Examples: '1234567890', '(123)456-7890'"
        }
      },
      "id": "GoogleAdsSearchads360V23Common__CallAsset",
      "description": "A Call asset.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__Commission": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__Commission",
      "description": "Commission is an automatic bidding strategy in which the advertiser pays a certain portion of the conversion value.",
      "properties": {
        "commissionRateMicros": {
          "type": "string",
          "format": "int64",
          "description": "Commission rate defines the portion of the conversion value that the advertiser will be billed. A commission rate of x should be passed into this field as (x * 1,000,000). For example, 106,000 represents a commission rate of 0.106 (10.6%)."
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__ClickView": {
      "properties": {
        "locationOfPresence": {
          "readOnly": true,
          "description": "Output only. The location criteria matching the location of presence associated with the impression.",
          "$ref": "GoogleAdsSearchads360V23Common__ClickLocation"
        },
        "campaignLocationTarget": {
          "readOnly": true,
          "description": "Output only. The associated campaign location target, if one exists.",
          "type": "string"
        },
        "keywordInfo": {
          "readOnly": true,
          "description": "Output only. Basic information about the associated keyword, if it exists.",
          "$ref": "GoogleAdsSearchads360V23Common__KeywordInfo"
        },
        "areaOfInterest": {
          "readOnly": true,
          "description": "Output only. The location criteria matching the area of interest associated with the impression.",
          "$ref": "GoogleAdsSearchads360V23Common__ClickLocation"
        },
        "adGroupAd": {
          "type": "string",
          "description": "Output only. The associated ad.",
          "readOnly": true
        },
        "resourceName": {
          "description": "Output only. The resource name of the click view. Click view resource names have the form: `customers/{customer_id}/clickViews/{date (yyyy-MM-dd)}~{gclid}`",
          "type": "string",
          "readOnly": true
        },
        "keyword": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The associated keyword, if one exists and the click corresponds to the SEARCH channel."
        },
        "gclid": {
          "description": "Output only. The Google Click ID.",
          "type": "string",
          "readOnly": true
        },
        "pageNumber": {
          "description": "Output only. Page number in search results where the ad was shown.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        },
        "userList": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The associated user list, if one exists."
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__ClickView",
      "description": "A click view with metrics aggregated at each click level, including both valid and invalid clicks. For non-Search campaigns, metrics.clicks represents the number of valid and invalid interactions. Queries including ClickView must have a filter limiting the results to one day and can be requested for dates back to 90 days before the time of the request. GCLIDs are not available in this report for App Campaigns for Installs (ACi) and App Campaigns for Pre-registration (ACpre).",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources__AdGroupLabel": {
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the ad group label. Ad group label resource names have the form: `customers/{owner_customer_id}/adGroupLabels/{ad_group_id}~{label_id}`"
        },
        "adGroup": {
          "type": "string",
          "description": "Immutable. The ad group to which the label is attached."
        },
        "label": {
          "description": "Immutable. The label assigned to the ad group.",
          "type": "string"
        },
        "ownerCustomerId": {
          "type": "string",
          "format": "int64",
          "description": "Output only. The ID of the Customer which owns the label.",
          "readOnly": true
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__AdGroupLabel",
      "description": "A relationship between an ad group and a label.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateCampaignAssetSetsResponse": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateCampaignAssetSetsResponse",
      "description": "Response message for a campaign asset set mutate.",
      "properties": {
        "results": {
          "description": "All results for the mutate.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateCampaignAssetSetResult"
          }
        },
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__AssetUsage": {
      "properties": {
        "asset": {
          "type": "string",
          "description": "Resource name of the asset."
        },
        "servedAssetFieldType": {
          "type": "string",
          "enumDescriptions": [
            "No value has been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The asset is used in headline 1.",
            "The asset is used in headline 2.",
            "The asset is used in headline 3.",
            "The asset is used in description 1.",
            "The asset is used in description 2.",
            "The asset was used in a headline. Use this only if there is only one headline in the ad. Otherwise, use the HEADLINE_1, HEADLINE_2 or HEADLINE_3 enums",
            "The asset was used as a headline in portrait image.",
            "The asset was used in a long headline (used in MultiAssetResponsiveAd).",
            "The asset was used in a description. Use this only if there is only one description in the ad. Otherwise, use the DESCRIPTION_1 or DESCRIPTION_@ enums",
            "The asset was used as description in portrait image.",
            "The asset was used as business name in portrait image.",
            "The asset was used as business name.",
            "The asset was used as a marketing image.",
            "The asset was used as a marketing image in portrait image.",
            "The asset was used as a square marketing image.",
            "The asset was used as a portrait marketing image.",
            "The asset was used as a logo.",
            "The asset was used as a landscape logo.",
            "The asset was used as a call-to-action.",
            "The asset was used as a YouTube video.",
            "This asset is used as a sitelink.",
            "This asset is used as a call.",
            "This asset is used as a mobile app.",
            "This asset is used as a callout.",
            "This asset is used as a structured snippet.",
            "This asset is used as a price.",
            "This asset is used as a promotion.",
            "This asset is used as an image.",
            "The asset is used as a lead form.",
            "The asset is used as a business logo.",
            "The asset is used as a description prefix.",
            "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.",
            "A description line asset used as a sitelink in position 2."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HEADLINE_1",
            "HEADLINE_2",
            "HEADLINE_3",
            "DESCRIPTION_1",
            "DESCRIPTION_2",
            "HEADLINE",
            "HEADLINE_IN_PORTRAIT",
            "LONG_HEADLINE",
            "DESCRIPTION",
            "DESCRIPTION_IN_PORTRAIT",
            "BUSINESS_NAME_IN_PORTRAIT",
            "BUSINESS_NAME",
            "MARKETING_IMAGE",
            "MARKETING_IMAGE_IN_PORTRAIT",
            "SQUARE_MARKETING_IMAGE",
            "PORTRAIT_MARKETING_IMAGE",
            "LOGO",
            "LANDSCAPE_LOGO",
            "CALL_TO_ACTION",
            "YOU_TUBE_VIDEO",
            "SITELINK",
            "CALL",
            "MOBILE_APP",
            "CALLOUT",
            "STRUCTURED_SNIPPET",
            "PRICE",
            "PROMOTION",
            "AD_IMAGE",
            "LEAD_FORM",
            "BUSINESS_LOGO",
            "DESCRIPTION_PREFIX",
            "HEADLINE_AS_SITELINK_POSITION_ONE",
            "HEADLINE_AS_SITELINK_POSITION_TWO",
            "DESCRIPTION_LINE_HEADLINE_AS_SITELINK_POSITION_ONE",
            "DESCRIPTION_LINE_HEADLINE_AS_SITELINK_POSITION_TWO"
          ],
          "description": "The served field type of the asset."
        }
      },
      "id": "GoogleAdsSearchads360V23Common__AssetUsage",
      "description": "Contains the usage information of the asset.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources_ConversionAction_FirebaseSettings": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources_ConversionAction_FirebaseSettings",
      "description": "Settings related to a Firebase conversion action.",
      "properties": {
        "projectId": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The Firebase project ID of the conversion."
        },
        "propertyId": {
          "description": "Output only. The GA property ID of the conversion.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        },
        "propertyName": {
          "type": "string",
          "description": "Output only. The GA property name of the conversion.",
          "readOnly": true
        },
        "eventName": {
          "readOnly": true,
          "description": "Output only. The event name of a Firebase conversion.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_TextAdParameters": {
      "properties": {
        "ad": {
          "description": "New ad to add to recommended ad group. All necessary fields need to be set in this message. This is a required field.",
          "$ref": "GoogleAdsSearchads360V23Resources__Ad"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_TextAdParameters",
      "description": "Parameters to use when applying a text ad recommendation."
    },
    "GoogleAdsSearchads360V23Services__ListBenchmarksProductsRequest": {
      "properties": {
        "applicationInfo": {
          "description": "Additional information on the application issuing the request.",
          "$ref": "GoogleAdsSearchads360V23Common__AdditionalApplicationInfo"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__ListBenchmarksProductsRequest",
      "description": "Request message for BenchmarksService.ListBenchmarksProducts."
    },
    "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_ResponsiveSearchAdAssetParameters": {
      "properties": {
        "updatedAd": {
          "description": "Updated ad. The current ad's content will be replaced.",
          "$ref": "GoogleAdsSearchads360V23Resources__Ad"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_ResponsiveSearchAdAssetParameters",
      "description": "Parameters to use when applying a responsive search ad asset recommendation."
    },
    "GoogleAdsSearchads360V23Common__CalloutFeedItem": {
      "id": "GoogleAdsSearchads360V23Common__CalloutFeedItem",
      "description": "Represents a callout extension.",
      "type": "object",
      "properties": {
        "calloutText": {
          "type": "string",
          "description": "The callout text. The length of this string should be between 1 and 25, inclusive."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__ListBenchmarksLocationsRequest": {
      "properties": {
        "applicationInfo": {
          "description": "Additional information on the application issuing the request.",
          "$ref": "GoogleAdsSearchads360V23Common__AdditionalApplicationInfo"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__ListBenchmarksLocationsRequest",
      "description": "Request message for BenchmarksService.ListBenchmarksLocations.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__MutateLabelResult": {
      "properties": {
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        },
        "label": {
          "description": "The mutated label with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsSearchads360V23Resources__Label"
        }
      },
      "id": "GoogleAdsSearchads360V23Services__MutateLabelResult",
      "description": "The result for a label mutate.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__DemandGenVideoResponsiveAdInfo": {
      "id": "GoogleAdsSearchads360V23Common__DemandGenVideoResponsiveAdInfo",
      "description": "A Demand Gen video responsive ad.",
      "type": "object",
      "properties": {
        "headlines": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AdTextAsset"
          },
          "description": "List of text assets used for the short headline."
        },
        "logoImages": {
          "description": "Logo image to be used in the ad. Valid image types are GIF, JPEG, and PNG. The minimum size is 128x128 and the aspect ratio must be 1:1 (+-1%).",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AdImageAsset"
          }
        },
        "callToActions": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AdCallToActionAsset"
          },
          "description": "Assets of type CallToActionAsset used for the \"Call To Action\" button."
        },
        "companionBanners": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AdImageAsset"
          },
          "description": "List of image assets used for the companion banner. Currently, only a single value for the companion banner asset is supported."
        },
        "longHeadlines": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AdTextAsset"
          },
          "description": "List of text assets used for the long headline."
        },
        "breadcrumb1": {
          "type": "string",
          "description": "First part of text that appears in the ad with the displayed URL."
        },
        "breadcrumb2": {
          "type": "string",
          "description": "Second part of text that appears in the ad with the displayed URL."
        },
        "businessName": {
          "description": "Required. The advertiser/brand name.",
          "$ref": "GoogleAdsSearchads360V23Common__AdTextAsset"
        },
        "descriptions": {
          "description": "List of text assets used for the description.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AdTextAsset"
          }
        },
        "videos": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__AdVideoAsset"
          },
          "description": "List of YouTube video assets used for the ad."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateConversionGoalCampaignConfigResult": {
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        },
        "conversionGoalCampaignConfig": {
          "description": "The mutated ConversionGoalCampaignConfig with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsSearchads360V23Resources__ConversionGoalCampaignConfig"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateConversionGoalCampaignConfigResult",
      "description": "The result for the conversion goal campaign config mutate."
    },
    "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_LowerTargetRoasParameters": {
      "id": "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_LowerTargetRoasParameters",
      "description": "Parameters to use when applying lower Target ROAS recommendations.",
      "type": "object",
      "properties": {
        "targetRoasMultiplier": {
          "description": "Required. Target to set ROAS multiplier to. This is a required field.",
          "type": "number",
          "format": "double"
        }
      }
    },
    "GoogleAdsSearchads360V23Resources_ConversionAction_AttributionModelSettings": {
      "properties": {
        "attributionModel": {
          "description": "The attribution model type of this conversion action.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Uses external attribution.",
            "Attributes all credit for a conversion to its last click.",
            "Attributes all credit for a conversion to its first click using Google Search attribution.",
            "Attributes credit for a conversion equally across all of its clicks using Google Search attribution.",
            "Attributes exponentially more credit for a conversion to its more recent clicks using Google Search attribution (half-life is 1 week).",
            "Attributes 40% of the credit for a conversion to its first and last clicks. Remaining 20% is evenly distributed across all other clicks. This uses Google Search attribution.",
            "Flexible model that uses machine learning to determine the appropriate distribution of credit among clicks using Google Search attribution."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "EXTERNAL",
            "GOOGLE_ADS_LAST_CLICK",
            "GOOGLE_SEARCH_ATTRIBUTION_FIRST_CLICK",
            "GOOGLE_SEARCH_ATTRIBUTION_LINEAR",
            "GOOGLE_SEARCH_ATTRIBUTION_TIME_DECAY",
            "GOOGLE_SEARCH_ATTRIBUTION_POSITION_BASED",
            "GOOGLE_SEARCH_ATTRIBUTION_DATA_DRIVEN"
          ]
        },
        "dataDrivenModelStatus": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The data driven model is available.",
            "The data driven model is stale. It hasn't been updated for at least 7 days. It is still being used, but will become expired if it does not get updated for 30 days.",
            "The data driven model expired. It hasn't been updated for at least 30 days and cannot be used. Most commonly this is because there hasn't been the required number of events in a recent 30-day period.",
            "The data driven model has never been generated. Most commonly this is because there has never been the required number of events in any 30-day period."
          ],
          "description": "Output only. The status of the data-driven attribution model for the conversion action.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AVAILABLE",
            "STALE",
            "EXPIRED",
            "NEVER_GENERATED"
          ],
          "readOnly": true
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources_ConversionAction_AttributionModelSettings",
      "description": "Settings related to this conversion action's attribution model."
    },
    "GoogleAdsSearchads360V23Common__TargetRoasSimulationPoint": {
      "properties": {
        "targetRoas": {
          "description": "The simulated target ROAS upon which projected metrics are based.",
          "type": "number",
          "format": "double"
        },
        "requiredBudgetAmountMicros": {
          "description": "Projected required daily budget that the advertiser must set in order to receive the estimated traffic, in micros of advertiser currency.",
          "type": "string",
          "format": "int64"
        },
        "biddableConversionsValue": {
          "description": "Projected total value of biddable conversions.",
          "type": "number",
          "format": "double"
        },
        "clicks": {
          "description": "Projected number of clicks.",
          "type": "string",
          "format": "int64"
        },
        "biddableConversions": {
          "type": "number",
          "format": "double",
          "description": "Projected number of biddable conversions."
        },
        "costMicros": {
          "description": "Projected cost in micros.",
          "type": "string",
          "format": "int64"
        },
        "impressions": {
          "description": "Projected number of impressions.",
          "type": "string",
          "format": "int64"
        },
        "topSlotImpressions": {
          "type": "string",
          "format": "int64",
          "description": "Projected number of top slot impressions. Only Search advertising channel type supports this field."
        }
      },
      "id": "GoogleAdsSearchads360V23Common__TargetRoasSimulationPoint",
      "description": "Projected metrics for a specific target ROAS amount.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__PolicyTopicEvidence": {
      "id": "GoogleAdsSearchads360V23Common__PolicyTopicEvidence",
      "description": "Additional information that explains a policy finding.",
      "type": "object",
      "properties": {
        "destinationMismatch": {
          "description": "Mismatch between the destinations of a resource's URLs.",
          "$ref": "GoogleAdsSearchads360V23Common_PolicyTopicEvidence_DestinationMismatch"
        },
        "websiteList": {
          "description": "List of websites linked with this resource.",
          "$ref": "GoogleAdsSearchads360V23Common_PolicyTopicEvidence_WebsiteList"
        },
        "textList": {
          "description": "List of evidence found in the text of a resource.",
          "$ref": "GoogleAdsSearchads360V23Common_PolicyTopicEvidence_TextList"
        },
        "languageCode": {
          "description": "The language the resource was detected to be written in. This is an IETF language tag such as \"en-US\".",
          "type": "string"
        },
        "destinationNotWorking": {
          "description": "Details when the destination is returning an HTTP error code or isn't functional in all locations for commonly used devices.",
          "$ref": "GoogleAdsSearchads360V23Common_PolicyTopicEvidence_DestinationNotWorking"
        },
        "destinationTextList": {
          "description": "The text in the destination of the resource that is causing a policy finding.",
          "$ref": "GoogleAdsSearchads360V23Common_PolicyTopicEvidence_DestinationTextList"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__EnhancedCpc": {
      "properties": {},
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__EnhancedCpc",
      "description": "An automated bidding strategy that raises bids for clicks that seem more likely to lead to a conversion and lowers them for clicks where they seem less likely. This bidding strategy is deprecated and cannot be created anymore. Use ManualCpc with enhanced_cpc_enabled set to true for equivalent functionality."
    },
    "GoogleAdsSearchads360V23Resources__CustomInterestMember": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__CustomInterestMember",
      "description": "A member of custom interest audience. A member can be a keyword or url. It is immutable, that is, it can only be created or removed but not changed.",
      "properties": {
        "memberType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Custom interest member type KEYWORD.",
            "Custom interest member type URL."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "KEYWORD",
            "URL"
          ],
          "description": "The type of custom interest member, KEYWORD or URL."
        },
        "parameter": {
          "type": "string",
          "description": "Keyword text when member_type is KEYWORD or URL string when member_type is URL."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateCustomerManagerLinkResponse": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateCustomerManagerLinkResponse",
      "description": "Response message for a CustomerManagerLink mutate.",
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateCustomerManagerLinkResult"
          },
          "description": "A result that identifies the resource affected by the mutate request."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__UserAttribute": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__UserAttribute",
      "description": "User attribute, can only be used with CUSTOMER_MATCH_WITH_ATTRIBUTES job type.",
      "properties": {
        "lifecycleStage": {
          "description": "Optional. Advertiser defined lifecycle stage for the user. The accepted values are \"Lead\", \"Active\" and \"Churned\".",
          "type": "string"
        },
        "firstPurchaseDateTime": {
          "type": "string",
          "description": "Optional. Timestamp of the first purchase made by the user. The format is YYYY-MM-DD HH:MM:SS[+/-HH:MM], where [+/-HH:MM] is an optional timezone offset from UTC. If the offset is absent, the API will use the account's timezone as default."
        },
        "lifetimeValueBucket": {
          "description": "Advertiser defined lifetime value bucket for the user. The valid range for a lifetime value bucket is from 1 (low) to 10 (high), except for remove operation where 0 will also be accepted.",
          "type": "integer",
          "format": "int32"
        },
        "shoppingLoyalty": {
          "description": "The shopping loyalty related data. Shopping utilizes this data to provide users with a better experience. Accessible only to merchants on the allow-list with the user's consent.",
          "$ref": "GoogleAdsSearchads360V23Common__ShoppingLoyalty"
        },
        "lastPurchaseDateTime": {
          "type": "string",
          "description": "Timestamp of the last purchase made by the user. The format is YYYY-MM-DD HH:MM:SS[+/-HH:MM], where [+/-HH:MM] is an optional timezone offset from UTC. If the offset is absent, the API will use the account's timezone as default."
        },
        "acquisitionDateTime": {
          "description": "Timestamp when the user was acquired. The format is YYYY-MM-DD HH:MM:SS[+/-HH:MM], where [+/-HH:MM] is an optional timezone offset from UTC. If the offset is absent, the API will use the account's timezone as default.",
          "type": "string"
        },
        "averagePurchaseCount": {
          "description": "Advertiser defined average number of purchases that are made by the user in a 30 day period.",
          "type": "integer",
          "format": "int32"
        },
        "lifetimeValueMicros": {
          "type": "string",
          "format": "int64",
          "description": "Advertiser defined lifetime value for the user."
        },
        "averagePurchaseValueMicros": {
          "type": "string",
          "format": "int64",
          "description": "Advertiser defined average purchase value in micros for the user."
        },
        "eventAttribute": {
          "description": "Optional. Advertiser defined events and their attributes. All the values in the nested fields are required. Currently this field is in beta.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__EventAttribute"
          }
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateCustomInterestsRequest": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateCustomInterestsRequest",
      "description": "Request message for CustomInterestService.MutateCustomInterests.",
      "properties": {
        "operations": {
          "description": "Required. The list of operations to perform on individual custom interests.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__CustomInterestOperation"
          }
        },
        "validateOnly": {
          "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateAssetGroupListingGroupFilterResult": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateAssetGroupListingGroupFilterResult",
      "description": "The result for the asset group listing group filter mutate.",
      "properties": {
        "assetGroupListingGroupFilter": {
          "description": "The mutated AssetGroupListingGroupFilter with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsSearchads360V23Resources__AssetGroupListingGroupFilter"
        },
        "resourceName": {
          "description": "Returned for successful operations.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__GenerateConversionRatesRequest": {
      "id": "GoogleAdsSearchads360V23Services__GenerateConversionRatesRequest",
      "description": "Request message for ReachPlanService.GenerateConversionRates.",
      "type": "object",
      "properties": {
        "customerReachGroup": {
          "type": "string",
          "description": "The name of the customer being planned for. This is a user-defined value."
        },
        "reachApplicationInfo": {
          "description": "Optional. Additional information on the application issuing the request.",
          "$ref": "GoogleAdsSearchads360V23Common__AdditionalApplicationInfo"
        },
        "customerId": {
          "type": "string",
          "description": "Required. The ID of the customer. A conversion rate based on the historical data of this customer may be suggested."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__MobileAppCategoryInfo": {
      "id": "GoogleAdsSearchads360V23Common__MobileAppCategoryInfo",
      "description": "A mobile app category criterion.",
      "type": "object",
      "properties": {
        "mobileAppCategoryConstant": {
          "type": "string",
          "description": "The mobile app category constant resource name."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__EffectiveFrequencyLimit": {
      "id": "GoogleAdsSearchads360V23Services__EffectiveFrequencyLimit",
      "description": "Effective frequency limit.",
      "type": "object",
      "properties": {
        "effectiveFrequencyBreakdownLimit": {
          "type": "integer",
          "format": "int32",
          "description": "The highest effective frequency value to include in Forecast.effective_frequency_breakdowns. This field supports frequencies 1-10, inclusive."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateAdParameterResult": {
      "properties": {
        "adParameter": {
          "description": "The mutated AdParameter with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "GoogleAdsSearchads360V23Resources__AdParameter"
        },
        "resourceName": {
          "description": "The resource name returned for successful operations.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateAdParameterResult",
      "description": "The result for the ad parameter mutate."
    },
    "GoogleAdsSearchads360V23Services__MutateAdsResponse": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__MutateAdsResponse",
      "description": "Response message for an ad mutate.",
      "properties": {
        "partialFailureError": {
          "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error.",
          "$ref": "GoogleRpc__Status"
        },
        "results": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__MutateAdResult"
          },
          "description": "All results for the mutate."
        }
      }
    },
    "GoogleAdsSearchads360V23Services_DismissRecommendationRequest_DismissRecommendationOperation": {
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "The resource name of the recommendation to dismiss."
        }
      },
      "id": "GoogleAdsSearchads360V23Services_DismissRecommendationRequest_DismissRecommendationOperation",
      "description": "Operation to dismiss a single recommendation identified by resource_name.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Resources_Recommendation_PerformanceMaxOptInRecommendation": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources_Recommendation_PerformanceMaxOptInRecommendation",
      "description": "The Performance Max Opt In recommendation.",
      "properties": {}
    },
    "GoogleAdsSearchads360V23Common__AssetDisapproved": {
      "properties": {
        "offlineEvaluationErrorReasons": {
          "description": "Provides the quality evaluation disapproval reason of an asset.",
          "type": "array",
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "Used for return value only. Represents value unknown in this version.",
              "One or more descriptions repeats its corresponding row header.",
              "Price asset contains repetitive headers.",
              "Price item header is not relevant to the price type.",
              "Price item description is not relevant to the item header.",
              "Price asset has a price qualifier in a description.",
              "Unsupported language for price assets",
              "Human raters identified an issue with the price asset that isn't captured by other error reasons. The primary purpose of this value is to represent legacy FeedItem disapprovals that are no longer produced."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "PRICE_ASSET_DESCRIPTION_REPEATS_ROW_HEADER",
              "PRICE_ASSET_REPETITIVE_HEADERS",
              "PRICE_ASSET_HEADER_INCOMPATIBLE_WITH_PRICE_TYPE",
              "PRICE_ASSET_DESCRIPTION_INCOMPATIBLE_WITH_ITEM_HEADER",
              "PRICE_ASSET_DESCRIPTION_HAS_PRICE_QUALIFIER",
              "PRICE_ASSET_UNSUPPORTED_LANGUAGE",
              "PRICE_ASSET_OTHER_ERROR"
            ]
          }
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__AssetDisapproved",
      "description": "Details related to AssetLinkPrimaryStatusReasonPB.ASSET_DISAPPROVED"
    },
    "GoogleAdsSearchads360V23Services__PlannableUserListMetadata": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__PlannableUserListMetadata",
      "description": "The metadata associated with a plannable user list.",
      "properties": {
        "userListCrmDataSourceType": {
          "description": "The data source type of a CRM based user list.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The uploaded data is first-party data.",
            "The uploaded data is from a third-party credit bureau.",
            "The uploaded data is from a third-party voter file.",
            "The uploaded data is third party partner data."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "FIRST_PARTY",
            "THIRD_PARTY_CREDIT_BUREAU",
            "THIRD_PARTY_VOTER_FILE",
            "THIRD_PARTY_PARTNER_DATA"
          ]
        }
      }
    },
    "GoogleAdsSearchads360V23Common__ResponsiveDisplayAdControlSpec": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__ResponsiveDisplayAdControlSpec",
      "description": "Specification for various creative controls for a responsive display ad.",
      "properties": {
        "enableAssetEnhancements": {
          "description": "Whether the advertiser has opted into the asset enhancements feature.",
          "type": "boolean"
        },
        "enableAutogenVideo": {
          "type": "boolean",
          "description": "Whether the advertiser has opted into auto-gen video feature."
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__ListingGroupFilterDimension": {
      "properties": {
        "productCustomAttribute": {
          "description": "Custom attribute of a product offer.",
          "$ref": "GoogleAdsSearchads360V23Resources_ListingGroupFilterDimension_ProductCustomAttribute"
        },
        "productCategory": {
          "description": "Category of a product offer.",
          "$ref": "GoogleAdsSearchads360V23Resources_ListingGroupFilterDimension_ProductCategory"
        },
        "productBrand": {
          "description": "Brand of a product offer.",
          "$ref": "GoogleAdsSearchads360V23Resources_ListingGroupFilterDimension_ProductBrand"
        },
        "productType": {
          "description": "Type of a product offer.",
          "$ref": "GoogleAdsSearchads360V23Resources_ListingGroupFilterDimension_ProductType"
        },
        "productCondition": {
          "description": "Condition of a product offer.",
          "$ref": "GoogleAdsSearchads360V23Resources_ListingGroupFilterDimension_ProductCondition"
        },
        "webpage": {
          "description": "Filters for URLs in a page feed and URLs from the advertiser web domain.",
          "$ref": "GoogleAdsSearchads360V23Resources_ListingGroupFilterDimension_Webpage"
        },
        "productItemId": {
          "description": "Item id of a product offer.",
          "$ref": "GoogleAdsSearchads360V23Resources_ListingGroupFilterDimension_ProductItemId"
        },
        "productChannel": {
          "description": "Locality of a product offer.",
          "$ref": "GoogleAdsSearchads360V23Resources_ListingGroupFilterDimension_ProductChannel"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources__ListingGroupFilterDimension",
      "description": "Listing dimensions for the asset group listing group filter."
    },
    "GoogleAdsSearchads360V23Services__MutateCampaignSharedSetsRequest": {
      "id": "GoogleAdsSearchads360V23Services__MutateCampaignSharedSetsRequest",
      "description": "Request message for CampaignSharedSetService.MutateCampaignSharedSets.",
      "type": "object",
      "properties": {
        "operations": {
          "description": "Required. The list of operations to perform on individual campaign shared sets.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__CampaignSharedSetOperation"
          }
        },
        "validateOnly": {
          "type": "boolean",
          "description": "If true, the request is validated but not executed. Only errors are returned, not results."
        },
        "partialFailure": {
          "type": "boolean",
          "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
        },
        "responseContentType": {
          "type": "string",
          "enumDescriptions": [
            "Not specified. Will return the resource name only in the response.",
            "The mutate response will be the resource name.",
            "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
          ],
          "enum": [
            "UNSPECIFIED",
            "RESOURCE_NAME_ONLY",
            "MUTABLE_RESOURCE"
          ],
          "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation."
        }
      }
    },
    "GoogleAdsSearchads360V23Common__ProductConditionInfo": {
      "id": "GoogleAdsSearchads360V23Common__ProductConditionInfo",
      "description": "Condition of a product offer.",
      "type": "object",
      "properties": {
        "condition": {
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The product condition is new.",
            "The product condition is refurbished.",
            "The product condition is used."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NEW",
            "REFURBISHED",
            "USED"
          ],
          "description": "Value of the condition."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__BenchmarksLocation": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__BenchmarksLocation",
      "description": "A location that supports benchmarks data.",
      "properties": {
        "locationType": {
          "description": "The location's type. Location types correspond to target_type returned by searching location type in GoogleAdsService.Search/SearchStream.",
          "type": "string"
        },
        "locationInfo": {
          "description": "Information on the geographic location, including the location ID.",
          "$ref": "GoogleAdsSearchads360V23Common__LocationInfo"
        },
        "locationName": {
          "type": "string",
          "description": "The unique location name in English."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__SearchAds360Row": {
      "properties": {
        "conversionGoalCampaignConfig": {
          "description": "The ConversionGoalCampaignConfig referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__ConversionGoalCampaignConfig"
        },
        "smartCampaignSearchTermView": {
          "description": "The Smart campaign search term view referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__SmartCampaignSearchTermView"
        },
        "accountBudgetProposal": {
          "description": "The account budget proposal referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__AccountBudgetProposal"
        },
        "hotelPerformanceView": {
          "description": "The hotel performance view referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__HotelPerformanceView"
        },
        "clickView": {
          "description": "The ClickView referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__ClickView"
        },
        "remarketingAction": {
          "description": "The remarketing action referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__RemarketingAction"
        },
        "carrierConstant": {
          "description": "The carrier constant referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__CarrierConstant"
        },
        "assetGroupSignal": {
          "description": "The asset group signal referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__AssetGroupSignal"
        },
        "customerSearchTermInsight": {
          "description": "The customer search term insight referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__CustomerSearchTermInsight"
        },
        "searchTermView": {
          "description": "The search term view referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__SearchTermView"
        },
        "label": {
          "description": "The label referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__Label"
        },
        "assetGroupListingGroupFilter": {
          "description": "The asset group listing group filter referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__AssetGroupListingGroupFilter"
        },
        "campaignLifecycleGoal": {
          "description": "The campaign lifecycle goal referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__CampaignLifecycleGoal"
        },
        "accountLink": {
          "description": "The AccountLink referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__AccountLink"
        },
        "adGroup": {
          "description": "The ad group referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__AdGroup"
        },
        "topicView": {
          "description": "The topic view referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__TopicView"
        },
        "conversionAction": {
          "description": "The conversion action referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__ConversionAction"
        },
        "keywordPlanAdGroupKeyword": {
          "description": "The keyword plan ad group referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__KeywordPlanAdGroupKeyword"
        },
        "performanceMaxPlacementView": {
          "description": "The performance max placement view referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__PerformanceMaxPlacementView"
        },
        "assetSetAsset": {
          "description": "The asset set asset referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__AssetSetAsset"
        },
        "changeEvent": {
          "description": "The ChangeEvent referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__ChangeEvent"
        },
        "audience": {
          "description": "The Audience referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__Audience"
        },
        "detailPlacementView": {
          "description": "The detail placement view referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__DetailPlacementView"
        },
        "localServicesVerificationArtifact": {
          "description": "The local services verification artifact referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__LocalServicesVerificationArtifact"
        },
        "travelActivityGroupView": {
          "description": "The travel activity group view referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__TravelActivityGroupView"
        },
        "accountBudget": {
          "description": "The account budget in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__AccountBudget"
        },
        "assetGroupTopCombinationView": {
          "description": "The asset group top combination view referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__AssetGroupTopCombinationView"
        },
        "dataLink": {
          "description": "The data link referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__DataLink"
        },
        "batchJob": {
          "description": "The batch job referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__BatchJob"
        },
        "adGroupEffectiveLabel": {
          "description": "The ad group effective label referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__AdGroupEffectiveLabel"
        },
        "geoTargetConstant": {
          "description": "The geo target constant referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__GeoTargetConstant"
        },
        "assetSet": {
          "description": "The asset set referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__AssetSet"
        },
        "campaignGoalConfig": {
          "description": "The campaign goal config referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__CampaignGoalConfig"
        },
        "conversionValueRuleSet": {
          "description": "The conversion value rule set referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__ConversionValueRuleSet"
        },
        "shoppingProduct": {
          "description": "The shopping product referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__ShoppingProduct"
        },
        "customerManagerLink": {
          "description": "The CustomerManagerLink referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__CustomerManagerLink"
        },
        "incomeRangeView": {
          "description": "The income range view referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__IncomeRangeView"
        },
        "userList": {
          "description": "The user list referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__UserList"
        },
        "androidPrivacySharedKeyGoogleNetworkType": {
          "description": "The android privacy shared key google network type referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__AndroidPrivacySharedKeyGoogleNetworkType"
        },
        "adGroupAsset": {
          "description": "The ad group asset referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__AdGroupAsset"
        },
        "thirdPartyAppAnalyticsLink": {
          "description": "The AccountLink referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__ThirdPartyAppAnalyticsLink"
        },
        "customerUserAccess": {
          "description": "The CustomerUserAccess referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__CustomerUserAccess"
        },
        "campaignAssetSet": {
          "description": "The campaign asset set referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__CampaignAssetSet"
        },
        "campaignSharedSet": {
          "description": "Campaign Shared Set referenced in AWQL query.",
          "$ref": "GoogleAdsSearchads360V23Resources__CampaignSharedSet"
        },
        "localServicesLead": {
          "description": "The local services lead referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__LocalServicesLead"
        },
        "video": {
          "description": "The video referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__Video"
        },
        "adGroupAdAssetView": {
          "description": "The ad group ad asset view in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__AdGroupAdAssetView"
        },
        "productLinkInvitation": {
          "description": "The product link invitation in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__ProductLinkInvitation"
        },
        "assetFieldTypeView": {
          "description": "The asset field type view referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__AssetFieldTypeView"
        },
        "campaignLabel": {
          "description": "The campaign label referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__CampaignLabel"
        },
        "combinedAudience": {
          "description": "The CombinedAudience referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__CombinedAudience"
        },
        "campaignBudget": {
          "description": "The campaign budget referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__CampaignBudget"
        },
        "customerUserAccessInvitation": {
          "description": "The CustomerUserAccessInvitation referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__CustomerUserAccessInvitation"
        },
        "userInterest": {
          "description": "The user interest referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__UserInterest"
        },
        "asset": {
          "description": "The asset referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__Asset"
        },
        "webpageView": {
          "description": "The webpage view referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__WebpageView"
        },
        "segments": {
          "description": "The segments.",
          "$ref": "GoogleAdsSearchads360V23Common__Segments"
        },
        "perStoreView": {
          "description": "The per store view referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__PerStoreView"
        },
        "assetGroupAsset": {
          "description": "The asset group asset referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__AssetGroupAsset"
        },
        "adGroupBidModifier": {
          "description": "The bid modifier referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__AdGroupBidModifier"
        },
        "ageRangeView": {
          "description": "The age range view referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__AgeRangeView"
        },
        "androidPrivacySharedKeyGoogleAdGroup": {
          "description": "The android privacy shared key google ad group referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__AndroidPrivacySharedKeyGoogleAdGroup"
        },
        "biddingStrategy": {
          "description": "The bidding strategy referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__BiddingStrategy"
        },
        "customConversionGoal": {
          "description": "The CustomConversionGoal referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__CustomConversionGoal"
        },
        "detailedDemographic": {
          "description": "The detailed demographic referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__DetailedDemographic"
        },
        "locationView": {
          "description": "The location view referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__LocationView"
        },
        "assetSetTypeView": {
          "description": "The asset set type view referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__AssetSetTypeView"
        },
        "conversion": {
          "description": "The event level conversion referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__Conversion"
        },
        "recommendation": {
          "description": "The recommendation referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__Recommendation"
        },
        "sharedCriterion": {
          "description": "The shared set referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__SharedCriterion"
        },
        "detailContentSuitabilityPlacementView": {
          "description": "The detail content suitability placement view referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__DetailContentSuitabilityPlacementView"
        },
        "hotelReconciliation": {
          "description": "The hotel reconciliation referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__HotelReconciliation"
        },
        "recommendationSubscription": {
          "description": "The recommendation subscription referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__RecommendationSubscription"
        },
        "matchedLocationInterestView": {
          "description": "The matched location interest view referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__MatchedLocationInterestView"
        },
        "targetingExpansionView": {
          "description": "The Targeting expansion view referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__TargetingExpansionView"
        },
        "groupPlacementView": {
          "description": "The group placement view referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__GroupPlacementView"
        },
        "customer": {
          "description": "The customer referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__Customer"
        },
        "accessibleBiddingStrategy": {
          "description": "The accessible bidding strategy referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__AccessibleBiddingStrategy"
        },
        "androidPrivacySharedKeyGoogleCampaign": {
          "description": "The android privacy shared key google campaign referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__AndroidPrivacySharedKeyGoogleCampaign"
        },
        "campaignConversionGoal": {
          "description": "The CampaignConversionGoal referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__CampaignConversionGoal"
        },
        "assetGroupProductGroupView": {
          "description": "The asset group product group view referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__AssetGroupProductGroupView"
        },
        "adGroupCriterionEffectiveLabel": {
          "description": "The ad group criterion effective label referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__AdGroupCriterionEffectiveLabel"
        },
        "customerCustomizer": {
          "description": "The customer customizer referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__CustomerCustomizer"
        },
        "customizerAttribute": {
          "description": "The customizer attribute referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__CustomizerAttribute"
        },
        "cartDataSalesView": {
          "description": "The cart data sales view referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__CartDataSalesView"
        },
        "smartCampaignSetting": {
          "description": "The Smart campaign setting referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__SmartCampaignSetting"
        },
        "keywordPlan": {
          "description": "The keyword plan referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__KeywordPlan"
        },
        "mobileDeviceConstant": {
          "description": "The mobile device constant referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__MobileDeviceConstant"
        },
        "lifeEvent": {
          "description": "The life event referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__LifeEvent"
        },
        "adGroupAdAssetCombinationView": {
          "description": "The ad group ad asset combination view in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__AdGroupAdAssetCombinationView"
        },
        "keywordThemeConstant": {
          "description": "The keyword theme constant referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__KeywordThemeConstant"
        },
        "customerClientLink": {
          "description": "The CustomerClientLink referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__CustomerClientLink"
        },
        "aiMaxSearchTermAdCombinationView": {
          "description": "The AI Max search term ad combination view referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__AiMaxSearchTermAdCombinationView"
        },
        "campaignAsset": {
          "description": "The campaign asset referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__CampaignAsset"
        },
        "customAudience": {
          "description": "The CustomAudience referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__CustomAudience"
        },
        "customerNegativeCriterion": {
          "description": "The customer negative criterion referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__CustomerNegativeCriterion"
        },
        "conversionValueRule": {
          "description": "The conversion value rule referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__ConversionValueRule"
        },
        "sharedSet": {
          "description": "The shared set referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__SharedSet"
        },
        "adGroupSimulation": {
          "description": "The ad group simulation referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__AdGroupSimulation"
        },
        "productCategoryConstant": {
          "description": "The product category referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__ProductCategoryConstant"
        },
        "campaignGroup": {
          "description": "Campaign Group referenced in AWQL query.",
          "$ref": "GoogleAdsSearchads360V23Resources__CampaignGroup"
        },
        "finalUrlExpansionAssetView": {
          "description": "The final url expansion asset view referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__FinalUrlExpansionAssetView"
        },
        "campaignAudienceView": {
          "description": "The campaign audience view referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__CampaignAudienceView"
        },
        "currencyConstant": {
          "description": "The currency constant referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__CurrencyConstant"
        },
        "offlineUserDataJob": {
          "description": "The offline user data job referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__OfflineUserDataJob"
        },
        "experimentArm": {
          "description": "The experiment arm referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__ExperimentArm"
        },
        "visit": {
          "description": "The event level visit referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__Visit"
        },
        "productLink": {
          "description": "The product link referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__ProductLink"
        },
        "biddingSeasonalityAdjustment": {
          "description": "The bidding seasonality adjustment referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__BiddingSeasonalityAdjustment"
        },
        "campaignBidModifier": {
          "description": "The campaign bid modifier referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__CampaignBidModifier"
        },
        "adGroupCriterionLabel": {
          "description": "The ad group criterion label referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__AdGroupCriterionLabel"
        },
        "customerLabel": {
          "description": "The customer label referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__CustomerLabel"
        },
        "groupContentSuitabilityPlacementView": {
          "description": "The group content suitability placement view referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__GroupContentSuitabilityPlacementView"
        },
        "biddingDataExclusion": {
          "description": "The bidding data exclusion referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__BiddingDataExclusion"
        },
        "campaignCriterion": {
          "description": "The campaign criterion referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__CampaignCriterion"
        },
        "campaignSimulation": {
          "description": "The campaign simulation referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__CampaignSimulation"
        },
        "keywordPlanCampaignKeyword": {
          "description": "The keyword plan campaign keyword referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__KeywordPlanCampaignKeyword"
        },
        "customerConversionGoal": {
          "description": "The CustomerConversionGoal referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__CustomerConversionGoal"
        },
        "localServicesEmployee": {
          "description": "The local services employee referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__LocalServicesEmployee"
        },
        "adGroupCriterionSimulation": {
          "description": "The ad group criterion simulation referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__AdGroupCriterionSimulation"
        },
        "mobileAppCategoryConstant": {
          "description": "The mobile app category constant referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__MobileAppCategoryConstant"
        },
        "geographicView": {
          "description": "The geographic view referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__GeographicView"
        },
        "offlineConversionUploadConversionActionSummary": {
          "description": "Offline conversion upload summary at conversion type level.",
          "$ref": "GoogleAdsSearchads360V23Resources__OfflineConversionUploadConversionActionSummary"
        },
        "customColumns": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__Value"
          },
          "description": "The custom columns."
        },
        "genderView": {
          "description": "The gender view referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__GenderView"
        },
        "callView": {
          "description": "The call view referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__CallView"
        },
        "locationInterestView": {
          "description": "The location interest view referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__LocationInterestView"
        },
        "customInterest": {
          "description": "The CustomInterest referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__CustomInterest"
        },
        "changeStatus": {
          "description": "The ChangeStatus referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__ChangeStatus"
        },
        "operatingSystemVersionConstant": {
          "description": "The operating system version constant referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__OperatingSystemVersionConstant"
        },
        "parentalStatusView": {
          "description": "The parental status view referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__ParentalStatusView"
        },
        "biddingStrategySimulation": {
          "description": "The bidding strategy simulation referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__BiddingStrategySimulation"
        },
        "campaignDraft": {
          "description": "The campaign draft referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__CampaignDraft"
        },
        "expandedLandingPageView": {
          "description": "The expanded landing page view referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__ExpandedLandingPageView"
        },
        "userLocationView": {
          "description": "The user location view referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__UserLocationView"
        },
        "campaign": {
          "description": "The campaign referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__Campaign"
        },
        "productGroupView": {
          "description": "The product group view referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__ProductGroupView"
        },
        "adGroupAssetSet": {
          "description": "The ad group asset set referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__AdGroupAssetSet"
        },
        "campaignCustomizer": {
          "description": "The campaign customizer referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__CampaignCustomizer"
        },
        "campaignSearchTermView": {
          "description": "The campaign-level search term view referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__CampaignSearchTermView"
        },
        "adScheduleView": {
          "description": "The ad schedule view referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__AdScheduleView"
        },
        "customerClient": {
          "description": "The CustomerClient referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__CustomerClient"
        },
        "ad": {
          "description": "The Ad referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__Ad"
        },
        "adParameter": {
          "description": "The ad parameter referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__AdParameter"
        },
        "leadFormSubmissionData": {
          "description": "The lead form user submission referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__LeadFormSubmissionData"
        },
        "travelActivityPerformanceView": {
          "description": "The travel activity performance view referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__TravelActivityPerformanceView"
        },
        "displayKeywordView": {
          "description": "The display keyword view referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__DisplayKeywordView"
        },
        "goal": {
          "description": "The goal in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__Goal"
        },
        "adGroupAd": {
          "description": "The ad referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__AdGroupAd"
        },
        "keywordPlanCampaign": {
          "description": "The keyword plan campaign referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__KeywordPlanCampaign"
        },
        "experiment": {
          "description": "The experiment referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__Experiment"
        },
        "adGroupAdLabel": {
          "description": "The ad group ad label referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__AdGroupAdLabel"
        },
        "mediaFile": {
          "description": "The media file referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__MediaFile"
        },
        "conversionCustomVariable": {
          "description": "The conversion custom variable referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__ConversionCustomVariable"
        },
        "distanceView": {
          "description": "The distance view referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__DistanceView"
        },
        "landingPageView": {
          "description": "The landing page view referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__LandingPageView"
        },
        "qualifyingQuestion": {
          "description": "The qualifying question referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__QualifyingQuestion"
        },
        "campaignEffectiveLabel": {
          "description": "The campaign effective label referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__CampaignEffectiveLabel"
        },
        "assetGroup": {
          "description": "The asset group referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__AssetGroup"
        },
        "searchAds360Campaign": {
          "description": "The Search Ads 360 campaign referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__SearchAds360Campaign"
        },
        "dynamicSearchAdsSearchTermView": {
          "description": "The dynamic search ads search term view referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__DynamicSearchAdsSearchTermView"
        },
        "keywordView": {
          "description": "The keyword view referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__KeywordView"
        },
        "offlineConversionUploadClientSummary": {
          "description": "Offline conversion upload summary at customer level.",
          "$ref": "GoogleAdsSearchads360V23Resources__OfflineConversionUploadClientSummary"
        },
        "contentCriterionView": {
          "description": "The content criterion view referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__ContentCriterionView"
        },
        "billingSetup": {
          "description": "The billing setup referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__BillingSetup"
        },
        "languageConstant": {
          "description": "The language constant referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__LanguageConstant"
        },
        "customerAsset": {
          "description": "The customer asset referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__CustomerAsset"
        },
        "adGroupCriterionCustomizer": {
          "description": "The ad group criterion customizer referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__AdGroupCriterionCustomizer"
        },
        "keywordPlanAdGroup": {
          "description": "The keyword plan ad group referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__KeywordPlanAdGroup"
        },
        "adGroupLabel": {
          "description": "The ad group label referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__AdGroupLabel"
        },
        "adGroupCriterion": {
          "description": "The criterion referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__AdGroupCriterion"
        },
        "shoppingPerformanceView": {
          "description": "The shopping performance view referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__ShoppingPerformanceView"
        },
        "customerAssetSet": {
          "description": "The customer asset set referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__CustomerAssetSet"
        },
        "metrics": {
          "description": "The metrics.",
          "$ref": "GoogleAdsSearchads360V23Common__Metrics"
        },
        "managedPlacementView": {
          "description": "The managed placement view referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__ManagedPlacementView"
        },
        "topicConstant": {
          "description": "The topic constant referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__TopicConstant"
        },
        "adGroupCustomizer": {
          "description": "The ad group customizer referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__AdGroupCustomizer"
        },
        "paidOrganicSearchTermView": {
          "description": "The paid organic search term view referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__PaidOrganicSearchTermView"
        },
        "customerLifecycleGoal": {
          "description": "The customer lifecycle goal referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__CustomerLifecycleGoal"
        },
        "hotelGroupView": {
          "description": "The hotel group view referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__HotelGroupView"
        },
        "localServicesLeadConversation": {
          "description": "The local services lead conversationreferenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__LocalServicesLeadConversation"
        },
        "campaignSearchTermInsight": {
          "description": "The campaign search term insight referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__CampaignSearchTermInsight"
        },
        "adGroupAdEffectiveLabel": {
          "description": "The ad group ad effective label referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__AdGroupAdEffectiveLabel"
        },
        "adGroupAudienceView": {
          "description": "The ad group audience view referenced in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__AdGroupAudienceView"
        },
        "userListCustomerType": {
          "description": "The user list customer type in the query.",
          "$ref": "GoogleAdsSearchads360V23Resources__UserListCustomerType"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__SearchAds360Row",
      "description": "A returned row from the query."
    },
    "GoogleAdsSearchads360V23Resources_Campaign_OptimizationGoalSetting": {
      "properties": {
        "optimizationGoalTypes": {
          "type": "array",
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Not specified.",
              "Used as a return value only. Represents value unknown in this version.",
              "Optimize for call clicks. Call click conversions are times people selected 'Call' to contact a store after viewing an ad.",
              "Optimize for driving directions. Driving directions conversions are times people selected 'Get directions' to navigate to a store after viewing an ad.",
              "Optimize for pre-registration. Pre-registration conversions are the number of pre-registration signups to receive a notification when the app is released."
            ],
            "enum": [
              "UNSPECIFIED",
              "UNKNOWN",
              "CALL_CLICKS",
              "DRIVING_DIRECTIONS",
              "APP_PRE_REGISTRATION"
            ]
          },
          "description": "The list of optimization goal types."
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Resources_Campaign_OptimizationGoalSetting",
      "description": "Optimization goal setting for this campaign, which includes a set of optimization goal types."
    },
    "GoogleAdsSearchads360V23Resources_ConversionAction_FloodlightSettings": {
      "properties": {
        "activityTag": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. String used to identify a Floodlight activity when reporting conversions."
        },
        "activityId": {
          "readOnly": true,
          "description": "Output only. ID of the Floodlight activity in DoubleClick Campaign Manager (DCM).",
          "type": "string",
          "format": "int64"
        },
        "activityGroupTag": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. String used to identify a Floodlight activity group when reporting conversions."
        }
      },
      "id": "GoogleAdsSearchads360V23Resources_ConversionAction_FloodlightSettings",
      "description": "Settings related to a Floodlight conversion action.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Common__LocationInfo": {
      "id": "GoogleAdsSearchads360V23Common__LocationInfo",
      "description": "A location criterion.",
      "type": "object",
      "properties": {
        "geoTargetConstant": {
          "type": "string",
          "description": "The geo target constant resource name."
        }
      }
    },
    "GoogleAdsSearchads360V23Resources__PerStoreView": {
      "properties": {
        "address1": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. First line of the store's address."
        },
        "placeId": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The place ID of the per store view."
        },
        "address2": {
          "type": "string",
          "description": "Output only. Second line of the store's address.",
          "readOnly": true
        },
        "postalCode": {
          "readOnly": true,
          "description": "Output only. The postal code of the store's address.",
          "type": "string"
        },
        "countryCode": {
          "readOnly": true,
          "description": "Output only. The two-letter country code for the store's location (e.g., \"US\").",
          "type": "string"
        },
        "phoneNumber": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The phone number of the store."
        },
        "province": {
          "type": "string",
          "description": "Output only. The province or state of the store's address.",
          "readOnly": true
        },
        "resourceName": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The resource name of the per store view. Per Store view resource names have the form: `customers/{customer_id}/perStoreViews/{place_id}`"
        },
        "businessName": {
          "description": "Output only. The name of the business.",
          "type": "string",
          "readOnly": true
        },
        "city": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The city where the store is located."
        }
      },
      "id": "GoogleAdsSearchads360V23Resources__PerStoreView",
      "description": "A per store view. This view provides per store impression reach and local action conversion stats for advertisers.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__StartIdentityVerificationRequest": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__StartIdentityVerificationRequest",
      "description": "Request message for StartIdentityVerification.",
      "properties": {
        "verificationProgram": {
          "description": "Required. The verification program type for which we want to start the verification.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Advertiser submits documents to verify their identity."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADVERTISER_IDENTITY_VERIFICATION"
          ]
        }
      }
    },
    "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_SitelinkExtensionParameters": {
      "id": "GoogleAdsSearchads360V23Services_ApplyRecommendationOperation_SitelinkExtensionParameters",
      "description": "Parameters to use when applying sitelink recommendation.",
      "type": "object",
      "properties": {
        "sitelinkExtensions": {
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Common__SitelinkFeedItem"
          },
          "description": "Sitelinks to be added. This is a required field."
        }
      }
    },
    "GoogleAdsSearchads360V23Services__EnablePMaxBrandGuidelinesResponse": {
      "properties": {
        "results": {
          "description": "Campaign enablement results per campaign.",
          "type": "array",
          "items": {
            "$ref": "GoogleAdsSearchads360V23Services__EnablementResult"
          }
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__EnablePMaxBrandGuidelinesResponse",
      "description": "Brand Guidelines campaign enablement response."
    },
    "GoogleAdsSearchads360V23Common__ShoppingLoyalty": {
      "id": "GoogleAdsSearchads360V23Common__ShoppingLoyalty",
      "description": "The shopping loyalty related data. Shopping utilizes this data to provide users with a better experience. Accessible only to merchants on the allow-list.",
      "type": "object",
      "properties": {
        "loyaltyTier": {
          "description": "The membership tier. It is a free-form string as each merchant may have their own loyalty system. For example, it could be a number from 1 to 10, or a string such as \"Golden\" or \"Silver\", or even empty string \"\".",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Services__MutateKeywordPlansResult": {
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        }
      },
      "id": "GoogleAdsSearchads360V23Services__MutateKeywordPlansResult",
      "description": "The result for the keyword plan mutate.",
      "type": "object"
    },
    "GoogleAdsSearchads360V23Services__SearchAds360CampaignOperation": {
      "properties": {
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "type": "string",
          "format": "google-fieldmask"
        },
        "update": {
          "description": "Update operation: The Search Ads 360 campaign is expected to have a valid resource name.",
          "$ref": "GoogleAdsSearchads360V23Resources__SearchAds360Campaign"
        }
      },
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__SearchAds360CampaignOperation",
      "description": "A single operation (update) on a Search Ads 360 campaign."
    },
    "GoogleAdsSearchads360V23Services__HotelImageAsset": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Services__HotelImageAsset",
      "description": "A single image asset suggestion for a hotel.",
      "properties": {
        "assetFieldType": {
          "description": "The Image asset type. For example, MARKETING_IMAGE, PORTRAIT_MARKETING_IMAGE, etc.",
          "type": "string",
          "enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is linked for use as a headline.",
            "The asset is linked for use as a description.",
            "The asset is linked for use as mandatory ad text.",
            "The asset is linked for use as a marketing image.",
            "The asset is linked for use as a media bundle.",
            "The asset is linked for use as a YouTube video.",
            "The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.",
            "The asset is linked for use as a Lead Form extension.",
            "The asset is linked for use as a Promotion extension.",
            "The asset is linked for use as a Callout extension.",
            "The asset is linked for use as a Structured Snippet extension.",
            "The asset is linked for use as a Sitelink.",
            "The asset is linked for use as a Mobile App extension.",
            "The asset is linked for use as a Hotel Callout extension.",
            "The asset is linked for use as a Call extension.",
            "The asset is linked for use as a Price extension.",
            "The asset is linked for use as a long headline.",
            "The asset is linked for use as a business name.",
            "The asset is linked for use as a square marketing image.",
            "The asset is linked for use as a portrait marketing image.",
            "The asset is linked for use as a logo.",
            "The asset is linked for use as a landscape logo.",
            "The asset is linked for use as a non YouTube logo.",
            "The asset is linked for use to select a call-to-action.",
            "The asset is linked for use to select an ad image.",
            "The asset is linked for use as a business logo.",
            "The asset is linked for use as a hotel property in a Performance Max for travel goals campaign.",
            "The asset is linked for use as a Demand Gen carousel card.",
            "The asset is linked for use as a Business Message.",
            "The asset is linked for use as a tall portrait marketing image.",
            "The asset is linked for use as a landing page preview image.",
            "The asset is linked for use as a long description.",
            "The asset is linked for use as a call-to-action."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HEADLINE",
            "DESCRIPTION",
            "MANDATORY_AD_TEXT",
            "MARKETING_IMAGE",
            "MEDIA_BUNDLE",
            "YOUTUBE_VIDEO",
            "BOOK_ON_GOOGLE",
            "LEAD_FORM",
            "PROMOTION",
            "CALLOUT",
            "STRUCTURED_SNIPPET",
            "SITELINK",
            "MOBILE_APP",
            "HOTEL_CALLOUT",
            "CALL",
            "PRICE",
            "LONG_HEADLINE",
            "BUSINESS_NAME",
            "SQUARE_MARKETING_IMAGE",
            "PORTRAIT_MARKETING_IMAGE",
            "LOGO",
            "LANDSCAPE_LOGO",
            "VIDEO",
            "CALL_TO_ACTION_SELECTION",
            "AD_IMAGE",
            "BUSINESS_LOGO",
            "HOTEL_PROPERTY",
            "DEMAND_GEN_CAROUSEL_CARD",
            "BUSINESS_MESSAGE",
            "TALL_PORTRAIT_MARKETING_IMAGE",
            "LANDING_PAGE_PREVIEW",
            "LONG_DESCRIPTION",
            "CALL_TO_ACTION"
          ]
        },
        "uri": {
          "description": "URI for the image.",
          "type": "string"
        }
      }
    },
    "GoogleAdsSearchads360V23Common__WebhookDelivery": {
      "type": "object",
      "id": "GoogleAdsSearchads360V23Common__WebhookDelivery",
      "description": "Google notifies the advertiser of leads by making HTTP calls to an endpoint they specify. The requests contain JSON matching a schema that Google publishes as part of form ads documentation.",
      "properties": {
        "advertiserWebhookUrl": {
          "type": "string",
          "description": "Webhook url specified by advertiser to send the lead."
        },
        "payloadSchemaVersion": {
          "type": "string",
          "format": "int64",
          "description": "The schema version that this delivery instance will use."
        },
        "googleSecret": {
          "description": "Anti-spoofing secret set by the advertiser as part of the webhook payload.",
          "type": "string"
        }
      }
    }
  },
  "mtlsRootUrl": "https://searchads360.mtls.googleapis.com/",
  "ownerDomain": "google.com",
  "basePath": "",
  "fullyEncodeReservedExpansion": true,
  "description": "The Search Ads 360 API allows developers to automate downloading reports from Search Ads 360.",
  "protocol": "rest",
  "icons": {
    "x16": "http://www.google.com/images/icons/product/search-16.gif",
    "x32": "http://www.google.com/images/icons/product/search-32.gif"
  },
  "canonicalName": "SA360",
  "baseUrl": "https://searchads360.googleapis.com/",
  "documentationLink": "https://developers.google.com/search-ads/reporting",
  "name": "searchads360",
  "version": "v23",
  "parameters": {
    "upload_protocol": {
      "type": "string",
      "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
      "location": "query"
    },
    "prettyPrint": {
      "default": "true",
      "location": "query",
      "description": "Returns response with indentations and line breaks.",
      "type": "boolean"
    },
    "access_token": {
      "location": "query",
      "type": "string",
      "description": "OAuth access token."
    },
    "oauth_token": {
      "type": "string",
      "description": "OAuth 2.0 token for the current user.",
      "location": "query"
    },
    "$.xgafv": {
      "description": "V1 error format.",
      "type": "string",
      "enumDescriptions": [
        "v1 error format",
        "v2 error format"
      ],
      "enum": [
        "1",
        "2"
      ],
      "location": "query"
    },
    "callback": {
      "description": "JSONP",
      "type": "string",
      "location": "query"
    },
    "uploadType": {
      "location": "query",
      "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
      "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.",
      "type": "string",
      "location": "query"
    },
    "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.",
      "type": "string",
      "location": "query"
    },
    "alt": {
      "enum": [
        "json",
        "media",
        "proto"
      ],
      "default": "json",
      "location": "query",
      "type": "string",
      "enumDescriptions": [
        "Responses with Content-Type of application/json",
        "Media download with context-dependent Content-Type",
        "Responses with Content-Type of application/x-protobuf"
      ],
      "description": "Data format for response."
    },
    "fields": {
      "description": "Selector specifying which fields to include in a partial response.",
      "type": "string",
      "location": "query"
    }
  }
}
