{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/google-ads/json-schema/google-ads-google-ads-googleads-v25-services-apply-recommendation-request-schema.json",
  "title": "GoogleAdsGoogleadsV25Services__ApplyRecommendationRequest",
  "description": "Request message for RecommendationService.ApplyRecommendation.",
  "x-generated": "2026-11-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/google-ads-customers-recommendations-api-openapi.yml#/components/schemas/GoogleAdsGoogleadsV25Services__ApplyRecommendationRequest",
  "type": "object",
  "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.",
      "items": {
        "$ref": "#/$defs/GoogleAdsGoogleadsV25Services__ApplyRecommendationOperation"
      },
      "type": "array"
    }
  },
  "$defs": {
    "GoogleAdsGoogleadsV25Common_PolicyTopicConstraint_CountryConstraint": {
      "type": "object",
      "properties": {
        "countryCriterion": {
          "description": "Geo target constant resource name of the country in which serving is constrained.",
          "type": "string"
        }
      },
      "description": "Indicates that a resource's ability to serve in a particular country is constrained."
    },
    "GoogleAdsGoogleadsV25Common_PolicyTopicConstraint_CountryConstraintList": {
      "description": "A list of countries where a resource's serving is constrained.",
      "type": "object",
      "properties": {
        "totalTargetedCountries": {
          "format": "int32",
          "type": "integer",
          "description": "Total number of countries targeted by the resource."
        },
        "countries": {
          "type": "array",
          "description": "Countries in which serving is restricted.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common_PolicyTopicConstraint_CountryConstraint"
          }
        }
      }
    },
    "GoogleAdsGoogleadsV25Common_PolicyTopicConstraint_ResellerConstraint": {
      "description": "Indicates that a policy topic was constrained due to disapproval of the website for reseller purposes.",
      "type": "object",
      "properties": {}
    },
    "GoogleAdsGoogleadsV25Common_PolicyTopicEvidence_DestinationMismatch": {
      "type": "object",
      "properties": {
        "urlTypes": {
          "type": "array",
          "description": "The set of URLs that did not match each other.",
          "items": {
            "x-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"
            ],
            "type": "string"
          }
        }
      },
      "description": "Evidence of mismatches between the URLs of a resource."
    },
    "GoogleAdsGoogleadsV25Common_PolicyTopicEvidence_DestinationNotWorking": {
      "type": "object",
      "properties": {
        "httpErrorCode": {
          "format": "int64",
          "type": "string",
          "description": "The HTTP error code."
        },
        "expandedUrl": {
          "type": "string",
          "description": "The full URL that didn't work."
        },
        "device": {
          "x-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"
          ],
          "type": "string",
          "description": "The type of device that failed to load the URL."
        },
        "dnsErrorType": {
          "description": "The type of DNS error.",
          "type": "string",
          "x-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"
          ]
        },
        "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"
        }
      },
      "description": "Evidence details when the destination is returning an HTTP error code or isn't functional in all locations for commonly used devices."
    },
    "GoogleAdsGoogleadsV25Common_PolicyTopicEvidence_DestinationTextList": {
      "type": "object",
      "properties": {
        "destinationTexts": {
          "type": "array",
          "description": "List of text found in the resource's destination page.",
          "items": {
            "type": "string"
          }
        }
      },
      "description": "A list of strings found in a destination page that caused a policy finding."
    },
    "GoogleAdsGoogleadsV25Common_PolicyTopicEvidence_TextList": {
      "type": "object",
      "properties": {
        "texts": {
          "description": "The fragments of text from the resource that caused the policy finding.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "description": "A list of fragments of text that violated a policy."
    },
    "GoogleAdsGoogleadsV25Common_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.",
      "type": "object",
      "properties": {
        "websites": {
          "type": "array",
          "description": "Websites that caused the policy finding.",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__AdAppDeepLinkAsset": {
      "description": "An app deep link used inside an ad.",
      "type": "object",
      "properties": {
        "asset": {
          "type": "string",
          "description": "The Asset resource name of this app deep link asset."
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__AdAssetPolicySummary": {
      "type": "object",
      "properties": {
        "policyTopicEntries": {
          "description": "The list of policy findings for this asset.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__PolicyTopicEntry"
          },
          "type": "array"
        },
        "reviewStatus": {
          "description": "Where in the review process this asset.",
          "type": "string",
          "x-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"
          ]
        },
        "approvalStatus": {
          "x-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 of this asset, which is calculated based on the status of its individual policy topic entries.",
          "type": "string"
        }
      },
      "description": "Contains policy information for an asset inside an ad."
    },
    "GoogleAdsGoogleadsV25Common__AdCallToActionAsset": {
      "description": "A call to action asset used inside an ad.",
      "type": "object",
      "properties": {
        "asset": {
          "type": "string",
          "description": "The Asset resource name of this call to action asset."
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__AdDemandGenCarouselCardAsset": {
      "type": "object",
      "properties": {
        "asset": {
          "description": "The Asset resource name of this discovery carousel card.",
          "type": "string"
        }
      },
      "description": "A Demand Gen carousel card asset used inside an ad."
    },
    "GoogleAdsGoogleadsV25Common__AdImageAsset": {
      "type": "object",
      "properties": {
        "asset": {
          "description": "The Asset resource name of this image.",
          "type": "string"
        }
      },
      "description": "An image asset used inside an ad."
    },
    "GoogleAdsGoogleadsV25Common__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."
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__AdScheduleInfo": {
      "type": "object",
      "properties": {
        "dayOfWeek": {
          "description": "Day of the week the schedule applies to. This field is required for CREATE operations and is prohibited on UPDATE operations.",
          "type": "string",
          "x-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"
          ]
        },
        "startHour": {
          "type": "integer",
          "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.",
          "format": "int32"
        },
        "endHour": {
          "type": "integer",
          "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.",
          "format": "int32"
        },
        "endMinute": {
          "type": "string",
          "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.",
          "x-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"
          ]
        },
        "startMinute": {
          "description": "Minutes after the start hour at which this schedule starts. This field is required for CREATE operations and is prohibited on UPDATE operations.",
          "type": "string",
          "x-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": "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."
    },
    "GoogleAdsGoogleadsV25Common__AdTextAsset": {
      "description": "A text asset used inside an ad.",
      "type": "object",
      "properties": {
        "pinnedField": {
          "type": "string",
          "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.",
          "x-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"
          ]
        },
        "assetPerformanceLabel": {
          "x-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"
          ],
          "type": "string",
          "description": "The performance label of this text asset."
        },
        "text": {
          "type": "string",
          "description": "Asset text."
        },
        "policySummaryInfo": {
          "description": "The policy summary of this text asset.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdAssetPolicySummary"
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__AdVideoAsset": {
      "description": "A video asset used inside an ad.",
      "type": "object",
      "properties": {
        "asset": {
          "type": "string",
          "description": "The Asset resource name of this video."
        },
        "adVideoAssetInfo": {
          "description": "Contains info fields for this AdVideoAsset.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdVideoAssetInfo"
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__AdVideoAssetInfo": {
      "description": "Contains info fields for AdVideoAssets.",
      "type": "object",
      "properties": {
        "adVideoAssetInventoryPreferences": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdVideoAssetInventoryPreferences",
          "description": "List of inventory preferences for this AdVideoAsset. This field can only be set for DiscoveryVideoResponsiveAd. The video assets with an inventory asset preference set will be preferred over other videos from the same ad during serving time. For example, consider this ad being served for a specific inventory. The server will first try to match an eligible video with a matching preference for that inventory. Videos with no preferences are chosen only when a video with matching preference and eligible for a given ad slot can be found."
        },
        "adVideoAssetFeatureControl": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdVideoAssetLinkFeatureControl",
          "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."
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__AdVideoAssetInventoryPreferences": {
      "type": "object",
      "properties": {
        "inStreamPreference": {
          "description": "When true, YouTube Video Asset with this inventory preference will be preferred when choosing a video to serve In Stream.",
          "type": "boolean"
        },
        "shortsPreference": {
          "type": "boolean",
          "description": "When true, YouTube Video Asset with this inventory preference will be preferred when choosing a video to serve on YouTube Shorts."
        },
        "inFeedPreference": {
          "description": "When true, YouTube Video Asset with this inventory preference will be preferred when choosing a video to serve In Feed.",
          "type": "boolean"
        }
      },
      "description": "YouTube Video Asset inventory preferences."
    },
    "GoogleAdsGoogleadsV25Common__AdVideoAssetLinkFeatureControl": {
      "type": "object",
      "properties": {
        "allowYoutubeComments": {
          "type": "boolean",
          "description": "Defines if YouTube comments should be enabled for the creative using this YouTube video asset served on YouTube Shorts."
        }
      },
      "description": "YouTube Video Asset feature controls."
    },
    "GoogleAdsGoogleadsV25Common__AppAdInfo": {
      "type": "object",
      "properties": {
        "mandatoryAdText": {
          "description": "Mandatory ad text.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdTextAsset"
        },
        "youtubeVideos": {
          "type": "array",
          "description": "List of YouTube video assets that may be displayed with the ad.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdVideoAsset"
          }
        },
        "descriptions": {
          "description": "List of text assets for descriptions. When the ad serves the descriptions will be selected from this list.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdTextAsset"
          },
          "type": "array"
        },
        "html5MediaBundles": {
          "type": "array",
          "description": "List of media bundle assets that may be used with the ad.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdMediaBundleAsset"
          }
        },
        "headlines": {
          "description": "List of text assets for headlines. When the ad serves the headlines will be selected from this list.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdTextAsset"
          },
          "type": "array"
        },
        "appDeepLink": {
          "description": "An app deep link asset that may be used with the ad.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdAppDeepLinkAsset"
        },
        "images": {
          "type": "array",
          "description": "List of image assets that may be displayed with the ad.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdImageAsset"
          }
        }
      },
      "description": "An app ad."
    },
    "GoogleAdsGoogleadsV25Common__AppDeepLinkAsset": {
      "type": "object",
      "properties": {
        "appDeepLinkUri": {
          "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`).",
          "type": "string"
        }
      },
      "description": "An app deep link asset"
    },
    "GoogleAdsGoogleadsV25Common__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.",
      "type": "object",
      "properties": {
        "descriptions": {
          "type": "array",
          "description": "List of text assets for descriptions. When the ad serves the descriptions will be selected from this list.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdTextAsset"
          }
        },
        "headlines": {
          "description": "List of text assets for headlines. When the ad serves the headlines will be selected from this list.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdTextAsset"
          },
          "type": "array"
        },
        "images": {
          "description": "List of image assets that may be displayed with the ad.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdImageAsset"
          },
          "type": "array"
        },
        "videos": {
          "type": "array",
          "description": "List of video assets that may be displayed with the ad.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdVideoAsset"
          }
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__AppPreRegistrationAdInfo": {
      "type": "object",
      "properties": {
        "headlines": {
          "description": "List of text assets for headlines. When the ad serves the headlines will be selected from this list.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdTextAsset"
          },
          "type": "array"
        },
        "youtubeVideos": {
          "description": "List of YouTube video asset IDs whose videos may be displayed with the ad.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdVideoAsset"
          },
          "type": "array"
        },
        "images": {
          "type": "array",
          "description": "List of image asset IDs whose images may be displayed with the ad.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdImageAsset"
          }
        },
        "descriptions": {
          "type": "array",
          "description": "List of text assets for descriptions. When the ad serves the descriptions will be selected from this list.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdTextAsset"
          }
        }
      },
      "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."
    },
    "GoogleAdsGoogleadsV25Common__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": {}
    },
    "GoogleAdsGoogleadsV25Common__BusinessMessageAsset": {
      "type": "object",
      "properties": {
        "messageProvider": {
          "x-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.",
          "type": "string"
        },
        "callToAction": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__BusinessMessageCallToActionInfo",
          "description": "A call to action for the business message asset."
        },
        "whatsappInfo": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__WhatsappBusinessMessageInfo",
          "description": "Whatsapp."
        },
        "zaloInfo": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__ZaloBusinessMessageInfo",
          "description": "Zalo."
        },
        "facebookMessengerInfo": {
          "description": "Facebook Messenger.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__FacebookMessengerBusinessMessageInfo"
        },
        "starterMessage": {
          "description": "Required. A welcome message to prompt the user to initiate a conversation.",
          "type": "string"
        }
      },
      "description": "A business message asset."
    },
    "GoogleAdsGoogleadsV25Common__BusinessMessageCallToActionInfo": {
      "type": "object",
      "properties": {
        "callToActionDescription": {
          "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": "string"
        },
        "callToActionSelection": {
          "x-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"
          ],
          "type": "string",
          "description": "Required. Pre-defined call to action text."
        }
      },
      "description": "Display information that encourages the user to take action."
    },
    "GoogleAdsGoogleadsV25Common__BusinessProfileLocation": {
      "description": "Business Profile location data synced from the linked Business Profile account.",
      "type": "object",
      "properties": {
        "storeCode": {
          "type": "string",
          "description": "Business Profile store code of this location. This is synced from the Business Profile account."
        },
        "labels": {
          "description": "Advertiser specified label for the location on the Business Profile account. This is synced from the Business Profile account.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "listingId": {
          "format": "int64",
          "description": "Listing ID of this Business Profile location. This is synced from the linked Business Profile account.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__CallAsset": {
      "description": "A Call asset.",
      "type": "object",
      "properties": {
        "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."
        },
        "phoneNumber": {
          "description": "Required. The advertiser's raw phone number. Examples: '1234567890', '(123)456-7890'",
          "type": "string"
        },
        "adScheduleTargets": {
          "type": "array",
          "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.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdScheduleInfo"
          }
        },
        "countryCode": {
          "description": "Required. Two-letter country code of the phone number. Examples: 'US', 'us'.",
          "type": "string"
        },
        "callConversionReportingState": {
          "type": "string",
          "description": "Indicates whether this CallAsset should use its own call conversion setting, follow the account level setting, or disable call conversion.",
          "x-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"
          ]
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__CallFeedItem": {
      "type": "object",
      "properties": {
        "phoneNumber": {
          "description": "The advertiser's phone number to append to the ad. This string must not be empty.",
          "type": "string"
        },
        "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"
        },
        "callConversionReportingState": {
          "type": "string",
          "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.",
          "x-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"
          ]
        },
        "countryCode": {
          "description": "Uppercase two-letter country code of the advertiser's phone number. 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"
        },
        "callTrackingEnabled": {
          "type": "boolean",
          "description": "Indicates whether call tracking is enabled. By default, call tracking is not enabled."
        }
      },
      "description": "Represents a Call extension."
    },
    "GoogleAdsGoogleadsV25Common__CallToActionAsset": {
      "type": "object",
      "properties": {
        "callToAction": {
          "x-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": "string"
        }
      },
      "description": "A call to action asset."
    },
    "GoogleAdsGoogleadsV25Common__CalloutAsset": {
      "description": "A 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"
        },
        "endDate": {
          "description": "Last date of when this asset is effective and still serving, in yyyy-MM-dd format.",
          "type": "string"
        },
        "adScheduleTargets": {
          "type": "array",
          "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.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdScheduleInfo"
          }
        },
        "calloutText": {
          "description": "Required. The callout text. The length of this string should be between 1 and 25, inclusive.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__CalloutFeedItem": {
      "type": "object",
      "properties": {
        "calloutText": {
          "description": "The callout text. The length of this string should be between 1 and 25, inclusive.",
          "type": "string"
        }
      },
      "description": "Represents a callout extension."
    },
    "GoogleAdsGoogleadsV25Common__CustomParameter": {
      "type": "object",
      "properties": {
        "key": {
          "description": "The key matching the parameter tag name.",
          "type": "string"
        },
        "value": {
          "type": "string",
          "description": "The value to be substituted."
        }
      },
      "description": "A mapping that can be used by custom parameter tags in a `tracking_url_template`, `final_urls`, or `mobile_final_urls`."
    },
    "GoogleAdsGoogleadsV25Common__DemandGenCarouselAdInfo": {
      "type": "object",
      "properties": {
        "carouselCards": {
          "description": "Required. Carousel cards that will display with the ad. Min 2 max 10.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdDemandGenCarouselCardAsset"
          },
          "type": "array"
        },
        "callToActionText": {
          "description": "Call to action text.",
          "type": "string"
        },
        "headline": {
          "description": "Required. Headline of the ad.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdTextAsset"
        },
        "businessName": {
          "type": "string",
          "description": "Required. The Advertiser/brand name."
        },
        "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": "#/$defs/GoogleAdsGoogleadsV25Common__AdImageAsset"
        },
        "description": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdTextAsset",
          "description": "Required. The descriptive text of the ad."
        }
      },
      "description": "A Demand Gen carousel ad."
    },
    "GoogleAdsGoogleadsV25Common__DemandGenCarouselCardAsset": {
      "type": "object",
      "properties": {
        "headline": {
          "type": "string",
          "description": "Required. Headline of the carousel card."
        },
        "callToActionText": {
          "description": "Call to action text.",
          "type": "string"
        },
        "portraitMarketingImageAsset": {
          "type": "string",
          "description": "Asset resource name of the associated 4:5 portrait marketing image."
        },
        "marketingImageAsset": {
          "description": "Asset resource name of the associated 1.91:1 marketing image. This and/or square marketing image asset is required.",
          "type": "string"
        },
        "squareMarketingImageAsset": {
          "type": "string",
          "description": "Asset resource name of the associated square marketing image. This and/or a marketing image asset is required."
        }
      },
      "description": "A Demand Gen Carousel Card asset."
    },
    "GoogleAdsGoogleadsV25Common__DemandGenMultiAssetAdInfo": {
      "type": "object",
      "properties": {
        "portraitMarketingImages": {
          "type": "array",
          "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%). Combined with `marketing_images`, `square_marketing_images`, and `tall_portrait_marketing_images` the maximum is 20.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdImageAsset"
          }
        },
        "classicDisplayImages": {
          "type": "array",
          "description": "Classic display image assets to be used in the ad. Valid image types are GIF, JPEG, and PNG. At most 20 classic display images can be specified per ad.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdImageAsset"
          }
        },
        "tallPortraitMarketingImages": {
          "type": "array",
          "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.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdImageAsset"
          }
        },
        "businessName": {
          "type": "string",
          "description": "The Advertiser/brand name. Maximum display width is 25. Required."
        },
        "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.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdImageAsset"
          },
          "type": "array"
        },
        "descriptions": {
          "type": "array",
          "description": "The descriptive text of the ad. Maximum display width is 90. At least 1 and max 5 descriptions can be specified.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdTextAsset"
          }
        },
        "callToActionText": {
          "type": "string",
          "description": "Call to action text."
        },
        "headlines": {
          "type": "array",
          "description": "Headline text asset of the ad. Maximum display width is 30. At least 1 and max 5 headlines can be specified.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdTextAsset"
          }
        },
        "marketingImages": {
          "type": "array",
          "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. Combined with `square_marketing_images`, `portrait_marketing_images`, and `tall_portrait_marketing_images` the maximum is 20.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdImageAsset"
          }
        },
        "squareMarketingImages": {
          "type": "array",
          "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. Combined with `marketing_images`, `portrait_marketing_images`, and `tall_portrait_marketing_images` the maximum is 20.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdImageAsset"
          }
        }
      },
      "description": "A Demand Gen multi asset ad."
    },
    "GoogleAdsGoogleadsV25Common__DemandGenProductAdInfo": {
      "description": "A Demand Gen product ad.",
      "type": "object",
      "properties": {
        "description": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdTextAsset",
          "description": "Required. Text asset used for the description."
        },
        "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"
        },
        "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": "#/$defs/GoogleAdsGoogleadsV25Common__AdImageAsset"
        },
        "businessName": {
          "description": "Required. The advertiser/brand name.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdTextAsset"
        },
        "callToAction": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdCallToActionAsset",
          "description": "Asset of type CallToActionAsset used for the \"Call To Action\" button."
        },
        "headline": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdTextAsset",
          "description": "Required. Text asset used for the short headline."
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__DemandGenVideoResponsiveAdInfo": {
      "description": "A Demand Gen video responsive ad.",
      "type": "object",
      "properties": {
        "companionBanners": {
          "type": "array",
          "description": "List of image assets used for the companion banner. Currently, only a single value for the companion banner asset is supported.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdImageAsset"
          }
        },
        "longHeadlines": {
          "type": "array",
          "description": "List of text assets used for the long headline.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdTextAsset"
          }
        },
        "videos": {
          "type": "array",
          "description": "Required. List of YouTube video assets used for the ad.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdVideoAsset"
          }
        },
        "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"
        },
        "callToActions": {
          "description": "Assets of type CallToActionAsset used for the \"Call To Action\" button.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdCallToActionAsset"
          },
          "type": "array"
        },
        "businessName": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdTextAsset",
          "description": "Required. The advertiser/brand name."
        },
        "headlines": {
          "type": "array",
          "description": "List of text assets used for the short headline.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdTextAsset"
          }
        },
        "descriptions": {
          "type": "array",
          "description": "List of text assets used for the description.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdTextAsset"
          }
        },
        "logoImages": {
          "type": "array",
          "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%).",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdImageAsset"
          }
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__DisplayUploadAdInfo": {
      "type": "object",
      "properties": {
        "displayUploadProductType": {
          "type": "string",
          "description": "The product type of this ad. See comments on the enum for details.",
          "x-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": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdMediaBundleAsset",
          "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."
        }
      },
      "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."
    },
    "GoogleAdsGoogleadsV25Common__DynamicCustomAsset": {
      "description": "A dynamic custom asset.",
      "type": "object",
      "properties": {
        "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"
        },
        "iosAppLink": {
          "description": "iOS deep link, for example, exampleApp://content/page.",
          "type": "string"
        },
        "iosAppStoreId": {
          "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.",
          "type": "string"
        },
        "androidAppLink": {
          "type": "string",
          "description": "Android deep link, for example, android-app://com.example.android/http/example.com/gizmos?1234."
        },
        "contextualKeywords": {
          "type": "array",
          "description": "Contextual keywords, for example, Sedans, 4 door sedans.",
          "items": {
            "type": "string"
          }
        },
        "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."
        },
        "imageUrl": {
          "type": "string",
          "description": "Image URL, for example, http://www.example.com/image.png. The image will not be uploaded as image asset."
        },
        "itemSubtitle": {
          "type": "string",
          "description": "Item subtitle, for example, At your Mountain View dealership."
        },
        "itemCategory": {
          "type": "string",
          "description": "Item category, for example, Sedans."
        },
        "itemDescription": {
          "description": "Item description, for example, Best selling mid-size car.",
          "type": "string"
        },
        "itemAddress": {
          "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",
          "type": "string"
        },
        "similarIds": {
          "type": "array",
          "description": "Similar IDs.",
          "items": {
            "type": "string"
          }
        },
        "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 $15,000.00.",
          "type": "string"
        },
        "id2": {
          "description": "ID2 which can be any sequence of letters and digits, for example, red. ID sequence (ID + ID2) must be unique.",
          "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"
        },
        "itemTitle": {
          "type": "string",
          "description": "Required. Item title, for example, Mid-size sedan. Required."
        },
        "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"
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__DynamicEducationAsset": {
      "type": "object",
      "properties": {
        "contextualKeywords": {
          "type": "array",
          "description": "Contextual keywords, for example, Nursing certification, Health, Mountain View.",
          "items": {
            "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."
        },
        "locationId": {
          "type": "string",
          "description": "Location ID which can be any sequence of letters and digits and must be unique."
        },
        "programDescription": {
          "description": "Program description, for example, Nursing Certification.",
          "type": "string"
        },
        "iosAppLink": {
          "description": "iOS deep link, for example, exampleApp://content/page.",
          "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"
        },
        "androidAppLink": {
          "description": "Android deep link, for example, android-app://com.example.android/http/example.com/gizmos?1234.",
          "type": "string"
        },
        "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."
        },
        "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": {
          "description": "Subject of study, for example, Health.",
          "type": "string"
        },
        "similarProgramIds": {
          "description": "Similar program IDs.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "schoolName": {
          "type": "string",
          "description": "School name, for example, Mountain View School of Nursing."
        },
        "thumbnailImageUrl": {
          "type": "string",
          "description": "Thumbnail image url, for example, http://www.example.com/thumbnail.png. The thumbnail image will not be uploaded as image asset."
        },
        "programName": {
          "type": "string",
          "description": "Required. Program name, for example, Nursing. Required."
        }
      },
      "description": "A Dynamic Education asset."
    },
    "GoogleAdsGoogleadsV25Common__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"
        },
        "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."
        },
        "destinationName": {
          "description": "Destination name, for example, Paris.",
          "type": "string"
        },
        "originName": {
          "description": "Origin name, for example, London.",
          "type": "string"
        },
        "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"
        },
        "originId": {
          "description": "Origin ID which can be any sequence of letters and digits. The ID sequence (destination ID + origin ID) must be unique.",
          "type": "string"
        },
        "similarDestinationIds": {
          "type": "array",
          "description": "Similar destination IDs, for example, PAR,LON.",
          "items": {
            "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"
        },
        "flightDescription": {
          "type": "string",
          "description": "Required. Flight description, for example, Book your ticket. Required."
        },
        "imageUrl": {
          "description": "Image URL, for example, http://www.example.com/image.png. The image will not be uploaded as image asset.",
          "type": "string"
        },
        "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"
        },
        "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"
        },
        "iosAppLink": {
          "type": "string",
          "description": "iOS deep link, for example, exampleApp://content/page."
        },
        "iosAppStoreId": {
          "format": "int64",
          "type": "string",
          "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"
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__DynamicHotelsAndRentalsAsset": {
      "description": "A dynamic hotels and rentals asset.",
      "type": "object",
      "properties": {
        "contextualKeywords": {
          "description": "Contextual keywords, for example, Mountain View \"Hotels\", South Bay hotels.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "imageUrl": {
          "type": "string",
          "description": "Image URL, for example, http://www.example.com/image.png. The image will not be uploaded as image asset."
        },
        "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"
        },
        "category": {
          "description": "Category, for example, Hotel suite.",
          "type": "string"
        },
        "description": {
          "type": "string",
          "description": "Description, for example, Close to SJC Airport."
        },
        "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"
        },
        "iosAppLink": {
          "type": "string",
          "description": "iOS deep link, for example, exampleApp://content/page."
        },
        "iosAppStoreId": {
          "type": "string",
          "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.",
          "format": "int64"
        },
        "androidAppLink": {
          "type": "string",
          "description": "Android deep link, for example, android-app://com.example.android/http/example.com/gizmos?1234."
        },
        "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"
        },
        "destinationName": {
          "type": "string",
          "description": "Destination name, for example, Downtown Mountain View."
        },
        "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."
        },
        "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"
        },
        "similarPropertyIds": {
          "description": "Similar property IDs.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "starRating": {
          "description": "Star rating. Must be a number between 1 to 5, inclusive.",
          "type": "string",
          "format": "int64"
        },
        "propertyId": {
          "type": "string",
          "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."
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__DynamicJobsAsset": {
      "description": "A dynamic jobs asset.",
      "type": "object",
      "properties": {
        "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."
        },
        "salary": {
          "type": "string",
          "description": "Salary, for example, $100,000."
        },
        "jobTitle": {
          "type": "string",
          "description": "Required. Job title, for example, Software engineer. Required."
        },
        "contextualKeywords": {
          "type": "array",
          "description": "Contextual keywords, for example, Software engineering job.",
          "items": {
            "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."
        },
        "iosAppLink": {
          "description": "iOS deep link, for example, exampleApp://content/page.",
          "type": "string"
        },
        "iosAppStoreId": {
          "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.",
          "type": "string"
        },
        "androidAppLink": {
          "type": "string",
          "description": "Android deep link, for example, android-app://com.example.android/http/example.com/gizmos?1234."
        },
        "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."
        },
        "description": {
          "type": "string",
          "description": "Description, for example, Apply your technical skills."
        },
        "similarJobIds": {
          "type": "array",
          "description": "Similar job IDs, for example, 1275.",
          "items": {
            "type": "string"
          }
        },
        "jobCategory": {
          "description": "Job category, for example, Technical.",
          "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."
        },
        "jobSubtitle": {
          "description": "Job subtitle, for example, Level II.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__DynamicLocalAsset": {
      "description": "A dynamic local asset.",
      "type": "object",
      "properties": {
        "description": {
          "description": "Description, for example, Save on your weekly bill.",
          "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"
        },
        "similarDealIds": {
          "description": "Similar deal IDs, for example, 1275.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "category": {
          "type": "string",
          "description": "Category, for example, Food."
        },
        "androidAppLink": {
          "description": "Android deep link, for example, android-app://com.example.android/http/example.com/gizmos?1234.",
          "type": "string"
        },
        "iosAppLink": {
          "description": "iOS deep link, for example, exampleApp://content/page.",
          "type": "string"
        },
        "iosAppStoreId": {
          "format": "int64",
          "type": "string",
          "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."
        },
        "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"
        },
        "imageUrl": {
          "description": "Image URL, for example, http://www.example.com/image.png. The image will not be uploaded as image asset.",
          "type": "string"
        },
        "contextualKeywords": {
          "description": "Contextual keywords, for example, Save groceries coupons.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "subtitle": {
          "type": "string",
          "description": "Subtitle, for example, Groceries."
        },
        "dealId": {
          "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.",
          "type": "string"
        },
        "dealName": {
          "description": "Required. Deal name, for example, 50% off at Mountain View Grocers. Required.",
          "type": "string"
        },
        "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"
        },
        "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."
        },
        "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."
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__DynamicRealEstateAsset": {
      "description": "A dynamic real estate asset.",
      "type": "object",
      "properties": {
        "price": {
          "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.",
          "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"
        },
        "propertyType": {
          "description": "Property type, for example, House.",
          "type": "string"
        },
        "listingName": {
          "type": "string",
          "description": "Required. Listing name, for example, Boulevard Bungalow. Required."
        },
        "listingType": {
          "description": "Listing type, for example, For sale.",
          "type": "string"
        },
        "contextualKeywords": {
          "description": "Contextual keywords, for example, For sale; Houses for sale.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "imageUrl": {
          "description": "Image URL, for example, http://www.example.com/image.png. The image will not be uploaded as image asset.",
          "type": "string"
        },
        "cityName": {
          "description": "City name, for example, Mountain View, California.",
          "type": "string"
        },
        "iosAppLink": {
          "type": "string",
          "description": "iOS deep link, for example, exampleApp://content/page."
        },
        "iosAppStoreId": {
          "type": "string",
          "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.",
          "format": "int64"
        },
        "listingId": {
          "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.",
          "type": "string"
        },
        "androidAppLink": {
          "description": "Android deep link, for example, android-app://com.example.android/http/example.com/gizmos?1234.",
          "type": "string"
        },
        "description": {
          "type": "string",
          "description": "Description, for example, 3 beds, 2 baths, 1568 sq. ft."
        },
        "similarListingIds": {
          "type": "array",
          "description": "Similar listing IDs.",
          "items": {
            "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 $200,000.00."
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__DynamicTravelAsset": {
      "description": "A dynamic travel asset.",
      "type": "object",
      "properties": {
        "androidAppLink": {
          "description": "Android deep link, for example, android-app://com.example.android/http/example.com/gizmos?1234.",
          "type": "string"
        },
        "iosAppLink": {
          "description": "iOS deep link, for example, exampleApp://content/page.",
          "type": "string"
        },
        "iosAppStoreId": {
          "format": "int64",
          "type": "string",
          "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."
        },
        "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."
        },
        "category": {
          "type": "string",
          "description": "Category, for example, Express."
        },
        "salePrice": {
          "type": "string",
          "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."
        },
        "imageUrl": {
          "type": "string",
          "description": "Image URL, for example, http://www.example.com/image.png. The image will not be uploaded as image asset."
        },
        "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"
        },
        "contextualKeywords": {
          "type": "array",
          "description": "Contextual keywords, for example, Paris trains.",
          "items": {
            "type": "string"
          }
        },
        "similarDestinationIds": {
          "description": "Similar destination IDs, for example, NYC.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "title": {
          "description": "Required. Title, for example, Book your train ticket. Required.",
          "type": "string"
        },
        "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."
        },
        "originName": {
          "type": "string",
          "description": "Origin name, for example, London."
        },
        "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"
        },
        "destinationName": {
          "description": "Destination name, for example, Paris.",
          "type": "string"
        },
        "destinationAddress": {
          "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.",
          "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."
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__ExpandedDynamicSearchAdInfo": {
      "type": "object",
      "properties": {
        "description": {
          "description": "The description of the ad.",
          "type": "string"
        },
        "description2": {
          "type": "string",
          "description": "The second description of the ad."
        }
      },
      "description": "An expanded dynamic search ad."
    },
    "GoogleAdsGoogleadsV25Common__ExpandedTextAdInfo": {
      "type": "object",
      "properties": {
        "headlinePart2": {
          "description": "The second part of the ad's headline.",
          "type": "string"
        },
        "description2": {
          "type": "string",
          "description": "The second description of the ad."
        },
        "headlinePart3": {
          "description": "The third part of the ad's headline.",
          "type": "string"
        },
        "description": {
          "description": "The description of the ad.",
          "type": "string"
        },
        "path1": {
          "type": "string",
          "description": "The text that can appear alongside the ad's displayed URL."
        },
        "headlinePart1": {
          "type": "string",
          "description": "The first part of the ad's headline."
        },
        "path2": {
          "description": "Additional text that can appear alongside the ad's displayed URL.",
          "type": "string"
        }
      },
      "description": "An expanded text ad. Expanded text ads are deprecated."
    },
    "GoogleAdsGoogleadsV25Common__FacebookMessengerBusinessMessageInfo": {
      "type": "object",
      "properties": {
        "pageName": {
          "type": "string",
          "description": "Required. Facebook page name used for starting a chat on Facebook Messenger."
        }
      },
      "description": "Facebook Messenger information to use for messaging."
    },
    "GoogleAdsGoogleadsV25Common__FinalAppUrl": {
      "description": "A URL for deep linking into an app for the given operating system.",
      "type": "object",
      "properties": {
        "osType": {
          "x-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"
          ],
          "type": "string",
          "description": "The operating system targeted by this URL. Required."
        },
        "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."
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__HotelAdInfo": {
      "description": "A hotel ad.",
      "type": "object",
      "properties": {}
    },
    "GoogleAdsGoogleadsV25Common__HotelCalloutAsset": {
      "description": "An asset representing a hotel callout.",
      "type": "object",
      "properties": {
        "text": {
          "description": "Required. The text of the hotel callout asset. The length of this string should be between 1 and 25, inclusive.",
          "type": "string"
        },
        "languageCode": {
          "type": "string",
          "description": "Required. The language of the hotel callout. Represented as BCP 47 language tag."
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__HotelPropertyAsset": {
      "description": "A hotel property asset.",
      "type": "object",
      "properties": {
        "hotelAddress": {
          "description": "Address of the hotel. Read-only.",
          "type": "string"
        },
        "placeId": {
          "type": "string",
          "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."
        },
        "hotelName": {
          "type": "string",
          "description": "Name of the hotel. Read-only."
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__ImageAdInfo": {
      "type": "object",
      "properties": {
        "imageAsset": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdImageAsset",
          "description": "The image assets used for the ad."
        },
        "pixelHeight": {
          "description": "Height in pixels of the full size image.",
          "type": "string",
          "format": "int64"
        },
        "adIdToCopyImageFrom": {
          "format": "int64",
          "description": "An ad ID to copy the image from.",
          "type": "string"
        },
        "imageUrl": {
          "description": "URL of the full size image.",
          "type": "string"
        },
        "pixelWidth": {
          "format": "int64",
          "type": "string",
          "description": "Width in pixels of the full size image."
        },
        "previewImageUrl": {
          "description": "URL of the preview size image.",
          "type": "string"
        },
        "name": {
          "type": "string",
          "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."
        },
        "previewPixelHeight": {
          "description": "Height in pixels of the preview size image.",
          "type": "string",
          "format": "int64"
        },
        "data": {
          "format": "byte",
          "type": "string",
          "description": "Raw image data as bytes."
        },
        "previewPixelWidth": {
          "description": "Width in pixels of the preview size image.",
          "type": "string",
          "format": "int64"
        },
        "mimeType": {
          "x-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"
          ],
          "type": "string",
          "description": "The mime type of the image."
        }
      },
      "description": "An image ad."
    },
    "GoogleAdsGoogleadsV25Common__ImageAsset": {
      "type": "object",
      "properties": {
        "mimeType": {
          "x-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"
          ],
          "type": "string",
          "description": "MIME type of the image asset."
        },
        "fullSize": {
          "description": "Metadata for this image at its original size.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__ImageDimension"
        },
        "data": {
          "format": "byte",
          "type": "string",
          "description": "The raw bytes data of an image. This field is mutate only."
        },
        "fileSize": {
          "description": "File size of the image asset in bytes.",
          "type": "string",
          "format": "int64"
        }
      },
      "description": "An Image asset."
    },
    "GoogleAdsGoogleadsV25Common__ImageDimension": {
      "description": "Metadata for an image at a certain size, either original or resized.",
      "type": "object",
      "properties": {
        "heightPixels": {
          "description": "Height of the image.",
          "type": "string",
          "format": "int64"
        },
        "widthPixels": {
          "format": "int64",
          "description": "Width of the image.",
          "type": "string"
        },
        "url": {
          "description": "A URL that returns the image with this height and width.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__InFeedVideoAdInfo": {
      "type": "object",
      "properties": {
        "headline": {
          "description": "The headline of the ad.",
          "type": "string"
        },
        "description1": {
          "type": "string",
          "description": "First text line for the ad."
        },
        "description2": {
          "description": "Second text line for the ad.",
          "type": "string"
        },
        "thumbnail": {
          "x-enumDescriptions": [
            "The type has not been specified.",
            "The received value is not known in this version. This is a response-only value.",
            "The default thumbnail. Can be auto-generated or user-uploaded.",
            "Thumbnail 1, generated from the video.",
            "Thumbnail 2, generated from the video.",
            "Thumbnail 3, generated from the video."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DEFAULT_THUMBNAIL",
            "THUMBNAIL_1",
            "THUMBNAIL_2",
            "THUMBNAIL_3"
          ],
          "type": "string",
          "description": "Video thumbnail image to use."
        }
      },
      "description": "Representation of In-feed video ad format."
    },
    "GoogleAdsGoogleadsV25Common__LeadFormAsset": {
      "description": "A Lead Form asset.",
      "type": "object",
      "properties": {
        "headline": {
          "description": "Required. Headline of the expanded form to describe what the form is asking for or facilitating.",
          "type": "string"
        },
        "customDisclosure": {
          "description": "Custom disclosure shown along with Google disclaimer on the lead form. Accessible to allowed customers only.",
          "type": "string"
        },
        "customQuestionFields": {
          "description": "Ordered list of custom question fields. This field is subject to a limit of 5 qualifying questions per form.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__LeadFormCustomQuestionField"
          },
          "type": "array"
        },
        "postSubmitDescription": {
          "description": "Detailed description shown after form submission that describes how the advertiser will follow up with the user.",
          "type": "string"
        },
        "callToActionType": {
          "description": "Required. Pre-defined display text that encourages user to expand the form.",
          "type": "string",
          "x-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"
          ]
        },
        "privacyPolicyUrl": {
          "description": "Required. Link to a page describing the policy on how the collected data is handled by the advertiser/business.",
          "type": "string"
        },
        "deliveryMethods": {
          "type": "array",
          "description": "Configured methods for collected lead data to be delivered to advertiser. Only one method typed as WebhookDelivery can be configured.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__LeadFormDeliveryMethod"
          }
        },
        "businessName": {
          "description": "Required. The name of the business being advertised.",
          "type": "string"
        },
        "backgroundImageAsset": {
          "description": "Asset resource name of the background image. The image dimensions must be exactly 1200x628.",
          "type": "string"
        },
        "description": {
          "type": "string",
          "description": "Required. Detailed description of the expanded form to describe what the form is asking for or facilitating."
        },
        "postSubmitHeadline": {
          "type": "string",
          "description": "Headline of text shown after form submission that describes how the advertiser will follow up with the user."
        },
        "callToActionDescription": {
          "description": "Required. Text giving a clear value proposition of what users expect once they expand the form.",
          "type": "string"
        },
        "desiredIntent": {
          "type": "string",
          "description": "Chosen intent for the lead form, for example, more volume or more qualified.",
          "x-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"
          ]
        },
        "fields": {
          "type": "array",
          "description": "Ordered list of input fields. This field can be updated by reordering questions, but not by adding or removing questions.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__LeadFormField"
          }
        },
        "postSubmitCallToActionType": {
          "x-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"
          ],
          "type": "string",
          "description": "Pre-defined display text that encourages user action after the form is submitted."
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__LeadFormCustomQuestionField": {
      "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": "#/$defs/GoogleAdsGoogleadsV25Common__LeadFormSingleChoiceAnswers"
        },
        "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."
        }
      },
      "description": "One custom question input field instance within a form."
    },
    "GoogleAdsGoogleadsV25Common__LeadFormDeliveryMethod": {
      "type": "object",
      "properties": {
        "webhook": {
          "description": "Webhook method of delivery.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__WebhookDelivery"
        }
      },
      "description": "A configuration of how leads are delivered to the advertiser."
    },
    "GoogleAdsGoogleadsV25Common__LeadFormField": {
      "description": "One input field instance within a form.",
      "type": "object",
      "properties": {
        "inputType": {
          "type": "string",
          "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?\".",
          "x-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"
          ]
        },
        "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": "#/$defs/GoogleAdsGoogleadsV25Common__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"
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__LeadFormSingleChoiceAnswers": {
      "description": "Defines possible answers for a single choice question, usually presented as a single-choice drop-down list.",
      "type": "object",
      "properties": {
        "answers": {
          "type": "array",
          "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.",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__LegacyAppInstallAdInfo": {
      "description": "A legacy app install ad that only can be used by a few select customers.",
      "type": "object",
      "properties": {
        "appStore": {
          "description": "The app store the mobile app is available in.",
          "type": "string",
          "x-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"
          ]
        },
        "description1": {
          "type": "string",
          "description": "The first description line of the ad."
        },
        "description2": {
          "type": "string",
          "description": "The second description line of the ad."
        },
        "headline": {
          "type": "string",
          "description": "The headline of the ad."
        },
        "appId": {
          "description": "The ID of the mobile app.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__LegacyResponsiveDisplayAdInfo": {
      "description": "A legacy responsive display ad. Ads of this type are labeled 'Responsive ads' in the Google Ads UI.",
      "type": "object",
      "properties": {
        "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"
        },
        "callToActionText": {
          "description": "The call-to-action text for the ad.",
          "type": "string"
        },
        "squareLogoImage": {
          "type": "string",
          "description": "The MediaFile resource name of the square logo image used in the ad."
        },
        "accentColor": {
          "type": "string",
          "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."
        },
        "marketingImage": {
          "description": "The MediaFile resource name of the marketing image used in the ad.",
          "type": "string"
        },
        "squareMarketingImage": {
          "description": "The MediaFile resource name of the square marketing image used in the ad.",
          "type": "string"
        },
        "shortHeadline": {
          "type": "string",
          "description": "The short version of the ad's headline."
        },
        "description": {
          "description": "The description of the ad.",
          "type": "string"
        },
        "longHeadline": {
          "type": "string",
          "description": "The long version of the ad's headline."
        },
        "businessName": {
          "type": "string",
          "description": "The business name in 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"
        },
        "formatSetting": {
          "x-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"
          ],
          "type": "string",
          "description": "Specifies which format the ad will be served in. Default is ALL_FORMATS."
        },
        "pricePrefix": {
          "type": "string",
          "description": "Prefix before price. For example, 'as low as'."
        },
        "promoText": {
          "type": "string",
          "description": "Promotion text used for dynamic formats of responsive ads. For example 'Free two-day shipping'."
        },
        "logoImage": {
          "description": "The MediaFile resource name of the logo image used in the ad.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__LocalAdInfo": {
      "type": "object",
      "properties": {
        "callToActions": {
          "type": "array",
          "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.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdTextAsset"
          }
        },
        "path1": {
          "type": "string",
          "description": "First part of optional text that can be appended to the URL in the ad."
        },
        "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"
        },
        "descriptions": {
          "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.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdTextAsset"
          },
          "type": "array"
        },
        "logoImages": {
          "type": "array",
          "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.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdImageAsset"
          }
        },
        "headlines": {
          "type": "array",
          "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.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdTextAsset"
          }
        },
        "marketingImages": {
          "type": "array",
          "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.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdImageAsset"
          }
        },
        "videos": {
          "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.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdVideoAsset"
          },
          "type": "array"
        }
      },
      "description": "A local ad."
    },
    "GoogleAdsGoogleadsV25Common__LocationAsset": {
      "type": "object",
      "properties": {
        "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.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__BusinessProfileLocation"
          },
          "type": "array"
        },
        "locationOwnershipType": {
          "x-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"
          ],
          "type": "string",
          "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."
        },
        "placeId": {
          "type": "string",
          "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."
        }
      },
      "description": "A location asset."
    },
    "GoogleAdsGoogleadsV25Common__MediaBundleAsset": {
      "description": "A MediaBundle asset.",
      "type": "object",
      "properties": {
        "data": {
          "format": "byte",
          "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"
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__MobileAppAsset": {
      "type": "object",
      "properties": {
        "appStore": {
          "x-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": "Required. The application store that distributes this specific app.",
          "type": "string"
        },
        "linkText": {
          "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.",
          "type": "string"
        },
        "startDate": {
          "description": "Start date of when this asset is effective and can begin serving, in yyyy-MM-dd format.",
          "type": "string"
        },
        "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"
        }
      },
      "description": "An asset representing a mobile app."
    },
    "GoogleAdsGoogleadsV25Common__Money": {
      "type": "object",
      "properties": {
        "currencyCode": {
          "description": "Three-character ISO 4217 currency code.",
          "type": "string"
        },
        "amountMicros": {
          "description": "Amount in micros. One million is equivalent to one unit.",
          "type": "string",
          "format": "int64"
        }
      },
      "description": "Represents a price in a particular currency."
    },
    "GoogleAdsGoogleadsV25Common__PageFeedAsset": {
      "description": "A Page Feed asset.",
      "type": "object",
      "properties": {
        "labels": {
          "description": "Labels used to group the page urls.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "pageUrl": {
          "type": "string",
          "description": "Required. The webpage that advertisers want to target."
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__PolicyTopicConstraint": {
      "type": "object",
      "properties": {
        "resellerConstraint": {
          "description": "Reseller constraint.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common_PolicyTopicConstraint_ResellerConstraint"
        },
        "certificateMissingInCountryList": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common_PolicyTopicConstraint_CountryConstraintList",
          "description": "Countries where a certificate is required for serving."
        },
        "countryConstraintList": {
          "description": "Countries where the resource cannot serve.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common_PolicyTopicConstraint_CountryConstraintList"
        },
        "certificateDomainMismatchInCountryList": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common_PolicyTopicConstraint_CountryConstraintList",
          "description": "Countries where the resource's domain is not covered by the certificates associated with it."
        }
      },
      "description": "Describes the effect on serving that a policy topic entry will have."
    },
    "GoogleAdsGoogleadsV25Common__PolicyTopicEntry": {
      "type": "object",
      "properties": {
        "topic": {
          "description": "Policy topic this finding refers to. For example, \"ALCOHOL\", \"TRADEMARKS_IN_AD_TEXT\", or \"DESTINATION_NOT_WORKING\". The set of possible policy topics is not fixed for a particular API version and may change at any time.",
          "type": "string"
        },
        "type": {
          "type": "string",
          "description": "Describes the negative or positive effect this policy will have on serving.",
          "x-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"
          ]
        },
        "constraints": {
          "description": "Indicates how serving of this resource may be affected (for example, not serving in a country).",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__PolicyTopicConstraint"
          },
          "type": "array"
        },
        "evidences": {
          "type": "array",
          "description": "Additional information that explains policy finding (for example, the brand name for a trademark finding).",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__PolicyTopicEvidence"
          }
        }
      },
      "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."
    },
    "GoogleAdsGoogleadsV25Common__PolicyTopicEvidence": {
      "description": "Additional information that explains a policy finding.",
      "type": "object",
      "properties": {
        "websiteList": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common_PolicyTopicEvidence_WebsiteList",
          "description": "List of websites linked with this resource."
        },
        "languageCode": {
          "description": "The language the resource was detected to be written in. This is an IETF language tag such as \"en-US\".",
          "type": "string"
        },
        "destinationTextList": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common_PolicyTopicEvidence_DestinationTextList",
          "description": "The text in the destination of the resource that is causing a policy finding."
        },
        "destinationMismatch": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common_PolicyTopicEvidence_DestinationMismatch",
          "description": "Mismatch between the destinations of a resource's URLs."
        },
        "destinationNotWorking": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common_PolicyTopicEvidence_DestinationNotWorking",
          "description": "Details when the destination is returning an HTTP error code or isn't functional in all locations for commonly used devices."
        },
        "textList": {
          "description": "List of evidence found in the text of a resource.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common_PolicyTopicEvidence_TextList"
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__PriceAsset": {
      "type": "object",
      "properties": {
        "priceQualifier": {
          "description": "The price qualifier of the price asset.",
          "type": "string",
          "x-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"
          ]
        },
        "languageCode": {
          "description": "Required. The language of the price asset. Represented as BCP 47 language tag.",
          "type": "string"
        },
        "type": {
          "x-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"
          ],
          "type": "string",
          "description": "Required. The type of the price asset."
        },
        "priceOfferings": {
          "description": "The price offerings of the price asset. The size of this collection should be between 3 and 8, inclusive.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__PriceOffering"
          },
          "type": "array"
        }
      },
      "description": "An asset representing a list of price offers."
    },
    "GoogleAdsGoogleadsV25Common__PriceOffering": {
      "description": "A single price offering within a PriceAsset.",
      "type": "object",
      "properties": {
        "finalUrl": {
          "description": "Required. The final URL after all cross domain redirects.",
          "type": "string"
        },
        "description": {
          "description": "Required. The description of the price offering. The length of this string should be between 1 and 25, inclusive.",
          "type": "string"
        },
        "unit": {
          "x-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"
          ],
          "type": "string",
          "description": "The price unit of the price offering."
        },
        "header": {
          "description": "Required. The header of the price offering. The length of this string should be between 1 and 25, inclusive.",
          "type": "string"
        },
        "price": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__Money",
          "description": "Required. The price value of the price offering."
        },
        "finalMobileUrl": {
          "type": "string",
          "description": "The final mobile URL after all cross domain redirects."
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__PromotionAsset": {
      "description": "A Promotion asset.",
      "type": "object",
      "properties": {
        "ordersOverAmount": {
          "description": "The amount the total order needs to be for the user to be eligible for the promotion.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__Money"
        },
        "promotionTarget": {
          "description": "Required. A freeform description of what the promotion is targeting.",
          "type": "string"
        },
        "termsAndConditionsText": {
          "description": "Terms and conditions of the promotion.",
          "type": "string"
        },
        "promotionQrCodeInfo": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__PromotionQrCodeInfo",
          "description": "QR code info used to generate promotion QR code for user to be eligible for the promotion."
        },
        "moneyAmountOff": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__Money",
          "description": "Money amount off for discount in the promotion. Either this or percent_off is required."
        },
        "promotionCode": {
          "description": "A code the user should use in order to be eligible for the promotion.",
          "type": "string"
        },
        "termsAndConditionsUri": {
          "description": "URI to the terms and conditions of the promotion.",
          "type": "string"
        },
        "startDate": {
          "description": "Start date of when this asset is effective and can begin serving, in yyyy-MM-dd format.",
          "type": "string"
        },
        "redemptionStartDate": {
          "description": "Start date of when the promotion is eligible to be redeemed, in yyyy-MM-dd format.",
          "type": "string"
        },
        "promotionBarcodeInfo": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__PromotionBarcodeInfo",
          "description": "Barcode info used to generate promotion barcode for user to be eligible for the promotion."
        },
        "endDate": {
          "type": "string",
          "description": "Last date of when this asset is effective and still serving, in yyyy-MM-dd format."
        },
        "redemptionEndDate": {
          "description": "Last date of when the promotion is eligible to be redeemed, in yyyy-MM-dd format.",
          "type": "string"
        },
        "languageCode": {
          "type": "string",
          "description": "The language of the promotion. Represented as BCP 47 language tag."
        },
        "adScheduleTargets": {
          "type": "array",
          "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.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdScheduleInfo"
          }
        },
        "discountModifier": {
          "description": "A modifier for qualification of the discount.",
          "type": "string",
          "x-enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "'Up to'."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "UP_TO"
          ]
        },
        "occasion": {
          "type": "string",
          "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.",
          "x-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"
          ]
        },
        "percentOff": {
          "description": "Percentage off discount in the promotion. 1,000,000 = 100%. Either this or money_amount_off is required.",
          "type": "string",
          "format": "int64"
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__PromotionBarcodeInfo": {
      "description": "Barcode info to generate promotion barcode.",
      "type": "object",
      "properties": {
        "barcodeContent": {
          "type": "string",
          "description": "Promotion message to be encoded in the barcode."
        },
        "type": {
          "type": "string",
          "description": "Barcode type used to generate barcode with the correct format.",
          "x-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"
          ]
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__PromotionQrCodeInfo": {
      "type": "object",
      "properties": {
        "qrCodeContent": {
          "description": "Promotion message to be encoded in the QR code.",
          "type": "string"
        }
      },
      "description": "QR code info to generate promotion QR code."
    },
    "GoogleAdsGoogleadsV25Common__ResponsiveDisplayAdControlSpec": {
      "description": "Specification for various creative controls for a responsive display ad.",
      "type": "object",
      "properties": {
        "enableAutogenVideo": {
          "description": "Whether the advertiser has opted into auto-gen video feature.",
          "type": "boolean"
        },
        "enableAssetEnhancements": {
          "description": "Whether the advertiser has opted into the asset enhancements feature.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__ResponsiveDisplayAdInfo": {
      "description": "A responsive display ad.",
      "type": "object",
      "properties": {
        "promoText": {
          "description": "Promotion text used for dynamic formats of responsive ads. For example 'Free two-day shipping'.",
          "type": "string"
        },
        "pricePrefix": {
          "type": "string",
          "description": "Prefix before price. For example, 'as low as'."
        },
        "formatSetting": {
          "type": "string",
          "description": "Specifies which format the ad will be served in. Default is ALL_FORMATS.",
          "x-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"
          ]
        },
        "youtubeVideos": {
          "description": "Optional YouTube videos for the ad. A maximum of 5 videos can be specified.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdVideoAsset"
          },
          "type": "array"
        },
        "controlSpec": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__ResponsiveDisplayAdControlSpec",
          "description": "Specification for various creative controls."
        },
        "logoImages": {
          "type": "array",
          "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.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdImageAsset"
          }
        },
        "descriptions": {
          "type": "array",
          "description": "Descriptive texts for the ad. The maximum length is 90 characters. At least 1 and max 5 headlines can be specified.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdTextAsset"
          }
        },
        "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"
        },
        "callToActionText": {
          "description": "The call-to-action text for the ad. Maximum display width is 30.",
          "type": "string"
        },
        "headlines": {
          "type": "array",
          "description": "Short format headlines for the ad. The maximum length is 30 characters. At least 1 and max 5 headlines can be specified.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdTextAsset"
          }
        },
        "accentColor": {
          "type": "string",
          "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."
        },
        "marketingImages": {
          "type": "array",
          "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.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdImageAsset"
          }
        },
        "squareMarketingImages": {
          "type": "array",
          "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.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdImageAsset"
          }
        },
        "longHeadline": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdTextAsset",
          "description": "A required long format headline. The maximum length is 90 characters."
        },
        "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"
        },
        "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.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdImageAsset"
          },
          "type": "array"
        },
        "businessName": {
          "type": "string",
          "description": "The advertiser/brand name. Maximum display width is 25."
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__ResponsiveSearchAdInfo": {
      "type": "object",
      "properties": {
        "headlines": {
          "description": "List of text assets for headlines. When the ad serves the headlines will be selected from this list.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdTextAsset"
          },
          "type": "array"
        },
        "path1": {
          "description": "First part of text that can be appended to the URL in the ad.",
          "type": "string"
        },
        "path2": {
          "type": "string",
          "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."
        },
        "descriptions": {
          "type": "array",
          "description": "List of text assets for descriptions. When the ad serves the descriptions will be selected from this list.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdTextAsset"
          }
        }
      },
      "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"
    },
    "GoogleAdsGoogleadsV25Common__ShoppingComparisonListingAdInfo": {
      "type": "object",
      "properties": {
        "headline": {
          "type": "string",
          "description": "Headline of the ad. This field is required. Allowed length is between 25 and 45 characters."
        }
      },
      "description": "A Shopping Comparison Listing ad."
    },
    "GoogleAdsGoogleadsV25Common__ShoppingProductAdInfo": {
      "type": "object",
      "properties": {},
      "description": "A standard Shopping ad."
    },
    "GoogleAdsGoogleadsV25Common__ShoppingSmartAdInfo": {
      "type": "object",
      "properties": {},
      "description": "A Smart Shopping ad."
    },
    "GoogleAdsGoogleadsV25Common__SitelinkAsset": {
      "description": "A Sitelink asset.",
      "type": "object",
      "properties": {
        "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."
        },
        "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."
        },
        "linkText": {
          "description": "Required. URL display text for the sitelink. The length of this string should be between 1 and 25, inclusive.",
          "type": "string"
        },
        "startDate": {
          "description": "Start date of when this asset is effective and can begin serving, in yyyy-MM-dd format.",
          "type": "string"
        },
        "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.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdScheduleInfo"
          },
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__SitelinkFeedItem": {
      "description": "Represents a sitelink.",
      "type": "object",
      "properties": {
        "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."
        },
        "line1": {
          "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.",
          "type": "string"
        },
        "finalUrls": {
          "description": "A list of possible final URLs after all cross domain redirects.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "finalMobileUrls": {
          "type": "array",
          "description": "A list of possible final mobile URLs after all cross domain redirects.",
          "items": {
            "type": "string"
          }
        },
        "urlCustomParameters": {
          "type": "array",
          "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.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__CustomParameter"
          }
        },
        "finalUrlSuffix": {
          "type": "string",
          "description": "Final URL suffix to be appended to landing page URLs served with parallel tracking."
        },
        "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."
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__SmartCampaignAdInfo": {
      "type": "object",
      "properties": {
        "headlines": {
          "type": "array",
          "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.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdTextAsset"
          }
        },
        "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.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdTextAsset"
          },
          "type": "array"
        }
      },
      "description": "A Smart campaign ad."
    },
    "GoogleAdsGoogleadsV25Common__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",
          "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.",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__SyntheticContentAttestation": {
      "description": "Represents an attestation about synthetic content from a single source.",
      "type": "object",
      "properties": {
        "source": {
          "x-enumDescriptions": [
            "Not specified.",
            "Used for return values only. Represents value unknown in this version.",
            "Attestation provided by the advertiser.",
            "Google-generated content with advertiser review or input.",
            "Google-autogenerated content without advertiser review."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADVERTISER_ATTESTED",
            "GOOGLE_GENERATED_ADVERTISER_REVIEWED",
            "GOOGLE_GENERATED_FULLY_AUTOMATED"
          ],
          "type": "string",
          "description": "The source of the synthetic content attestation."
        },
        "status": {
          "description": "Indicates whether the content is considered synthetic by this source.",
          "type": "string",
          "x-enumDescriptions": [
            "Not specified.",
            "Used for return values only. Represents value unknown in this version.",
            "The content is attested as not synthetic.",
            "The content is attested as synthetic."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NOT_SYNTHETIC",
            "IS_SYNTHETIC"
          ]
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__SyntheticContentInfo": {
      "description": "Container for synthetic content attestations from different sources, such as the advertiser and Google systems.",
      "type": "object",
      "properties": {
        "systemAttestation": {
          "description": "Output only. Information about synthetic content generated by Google's systems.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__SyntheticContentAttestation"
        },
        "advertiserAttestation": {
          "description": "Input provided by the advertiser.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__SyntheticContentAttestation"
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__TextAdInfo": {
      "type": "object",
      "properties": {
        "description1": {
          "type": "string",
          "description": "The first line of the ad's description."
        },
        "description2": {
          "description": "The second line of the ad's description.",
          "type": "string"
        },
        "headline": {
          "type": "string",
          "description": "The headline of the ad."
        }
      },
      "description": "A text ad."
    },
    "GoogleAdsGoogleadsV25Common__TextAsset": {
      "description": "A Text asset.",
      "type": "object",
      "properties": {
        "text": {
          "type": "string",
          "description": "Text content of the text asset."
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__TravelAdInfo": {
      "description": "A travel ad.",
      "type": "object",
      "properties": {}
    },
    "GoogleAdsGoogleadsV25Common__UrlCollection": {
      "description": "Collection of urls that is tagged with a unique identifier.",
      "type": "object",
      "properties": {
        "urlCollectionId": {
          "type": "string",
          "description": "Unique identifier for this UrlCollection instance."
        },
        "trackingUrlTemplate": {
          "type": "string",
          "description": "URL template for constructing a tracking URL."
        },
        "finalUrls": {
          "type": "array",
          "description": "A list of possible final URLs.",
          "items": {
            "type": "string"
          }
        },
        "finalMobileUrls": {
          "description": "A list of possible final mobile URLs.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__VideoAdInfo": {
      "type": "object",
      "properties": {
        "video": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdVideoAsset",
          "description": "The YouTube video assets used for the ad."
        },
        "inStream": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__VideoTrueViewInStreamAdInfo",
          "description": "Video TrueView in-stream ad format."
        },
        "nonSkippable": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__VideoNonSkippableInStreamAdInfo",
          "description": "Video non-skippable in-stream ad format."
        },
        "bumper": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__VideoBumperInStreamAdInfo",
          "description": "Video bumper in-stream ad format."
        },
        "outStream": {
          "description": "Video out-stream ad format.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__VideoOutstreamAdInfo"
        },
        "inFeed": {
          "description": "In-feed video ad format.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__InFeedVideoAdInfo"
        },
        "audio": {
          "description": "YouTube Audio ad format.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__YouTubeAudioAdInfo"
        }
      },
      "description": "A video ad."
    },
    "GoogleAdsGoogleadsV25Common__VideoBumperInStreamAdInfo": {
      "type": "object",
      "properties": {
        "actionButtonLabel": {
          "description": "Label on the \"Call To Action\" button taking the user to the video ad's final URL.",
          "type": "string"
        },
        "actionHeadline": {
          "type": "string",
          "description": "Additional text displayed with the CTA (call-to-action) button to give context and encourage clicking on the button."
        },
        "companionBanner": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdImageAsset",
          "description": "The image assets of the companion banner used with the ad."
        }
      },
      "description": "Representation of video bumper in-stream ad format (very short in-stream non-skippable video ad)."
    },
    "GoogleAdsGoogleadsV25Common__VideoNonSkippableInStreamAdInfo": {
      "description": "Representation of video non-skippable in-stream ad format (15 second in-stream non-skippable video ad).",
      "type": "object",
      "properties": {
        "actionButtonLabel": {
          "type": "string",
          "description": "Label on the \"Call To Action\" button taking the user to the video ad's final URL."
        },
        "actionHeadline": {
          "type": "string",
          "description": "Additional text displayed with the \"Call To Action\" button to give context and encourage clicking on the button."
        },
        "companionBanner": {
          "description": "The image assets of the companion banner used with the ad.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdImageAsset"
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__VideoOutstreamAdInfo": {
      "description": "Representation of video out-stream ad format (ad shown alongside a feed with automatic playback, without sound).",
      "type": "object",
      "properties": {
        "headline": {
          "description": "The headline of the ad.",
          "type": "string"
        },
        "description": {
          "type": "string",
          "description": "The description line."
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__VideoResponsiveAdInfo": {
      "type": "object",
      "properties": {
        "businessName": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdTextAsset",
          "description": "Required. Advertiser/brand name. Maximum display width is 25 characters."
        },
        "callToActions": {
          "description": "List of text assets used for the button, for example, the \"Call To Action\" button. Currently, only a single value for the button is supported.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdTextAsset"
          },
          "type": "array"
        },
        "breadcrumb1": {
          "description": "First part of text that appears in the ad with the displayed URL.",
          "type": "string"
        },
        "breadcrumb2": {
          "type": "string",
          "description": "Second part of text that appears in the ad with the displayed URL."
        },
        "longHeadlines": {
          "description": "List of text assets used for the long headline. Currently, only a single value for the long headline is supported.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdTextAsset"
          },
          "type": "array"
        },
        "videos": {
          "type": "array",
          "description": "Required. List of YouTube video assets used for the ad. Currently, only a single value for the YouTube video asset is supported.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdVideoAsset"
          }
        },
        "companionBanners": {
          "type": "array",
          "description": "List of image assets used for the companion banner. Currently, only a single value for the companion banner asset is supported.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdImageAsset"
          }
        },
        "descriptions": {
          "description": "List of text assets used for the description. Currently, only a single value for the description is supported.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdTextAsset"
          },
          "type": "array"
        },
        "logoImages": {
          "description": "Required. Logo image to be used in the ad. The minimum size is 128x128 and the aspect ratio must be 1:1(+-1%).",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdImageAsset"
          },
          "type": "array"
        },
        "headlines": {
          "description": "List of text assets used for the short headline. Currently, only a single value for the short headline is supported.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdTextAsset"
          },
          "type": "array"
        }
      },
      "description": "A video responsive ad."
    },
    "GoogleAdsGoogleadsV25Common__VideoTrueViewInStreamAdInfo": {
      "description": "Representation of video TrueView in-stream ad format (ad shown during video playback, often at beginning, which displays a skip button a few seconds into the video).",
      "type": "object",
      "properties": {
        "actionHeadline": {
          "description": "Additional text displayed with the CTA (call-to-action) button to give context and encourage clicking on the button.",
          "type": "string"
        },
        "actionButtonLabel": {
          "description": "Label on the CTA (call-to-action) button taking the user to the video ad's final URL. Required for TrueView for action campaigns, optional otherwise.",
          "type": "string"
        },
        "companionBanner": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdImageAsset",
          "description": "The image assets of the companion banner used with the ad."
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__WebhookDelivery": {
      "type": "object",
      "properties": {
        "advertiserWebhookUrl": {
          "description": "Webhook url specified by advertiser to send the lead.",
          "type": "string"
        },
        "payloadSchemaVersion": {
          "format": "int64",
          "type": "string",
          "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"
        }
      },
      "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."
    },
    "GoogleAdsGoogleadsV25Common__WhatsappBusinessMessageInfo": {
      "type": "object",
      "properties": {
        "countryCode": {
          "description": "Required. Two-letter country code of the phone number. Examples: 'US', 'us'.",
          "type": "string"
        },
        "phoneNumber": {
          "description": "Required. Whatsapp phone number of the business. Examples: '1234567890', '(123)456-7890'.",
          "type": "string"
        }
      },
      "description": "Whatsapp information to use for messaging."
    },
    "GoogleAdsGoogleadsV25Common__YouTubeAudioAdInfo": {
      "type": "object",
      "properties": {},
      "description": "Representation of YouTube Audio ad format."
    },
    "GoogleAdsGoogleadsV25Common__YouTubeVideoListAsset": {
      "description": "A YouTube video list asset.",
      "type": "object",
      "properties": {
        "youtubeVideos": {
          "type": "array",
          "description": "List of videos. Each is a reference to a YouTube video asset. Minimum of 2 videos required and maximum of 5 allowed.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdVideoAsset"
          }
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__YoutubeVideoAsset": {
      "description": "A YouTube asset.",
      "type": "object",
      "properties": {
        "youtubeVideoId": {
          "description": "YouTube video id. This is the 11 character string value used in the YouTube video URL.",
          "type": "string"
        },
        "youtubeVideoTitle": {
          "description": "YouTube video title.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__ZaloBusinessMessageInfo": {
      "type": "object",
      "properties": {
        "customName": {
          "description": "Custom name generated by the advertiser for their Zalo Account. These names will usually be registered brands or trademarks.",
          "type": "string"
        },
        "oaId": {
          "type": "string",
          "description": "Zalo Official Account ID of the advertiser.",
          "format": "int64"
        }
      },
      "description": "Zalo information to use for messaging."
    },
    "GoogleAdsGoogleadsV25Resources__Ad": {
      "type": "object",
      "properties": {
        "appPreRegistrationAd": {
          "description": "Details pertaining to an app pre-registration ad.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AppPreRegistrationAdInfo"
        },
        "smartCampaignAd": {
          "description": "Details pertaining to a Smart campaign ad.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__SmartCampaignAdInfo"
        },
        "appEngagementAd": {
          "description": "Details pertaining to an app engagement ad.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AppEngagementAdInfo"
        },
        "syntheticContentInfo": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__SyntheticContentInfo",
          "description": "Synthetic content info for the ad."
        },
        "displayUrl": {
          "type": "string",
          "description": "The URL that appears in the ad description for some ad formats."
        },
        "responsiveDisplayAd": {
          "description": "Details pertaining to a responsive display ad.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__ResponsiveDisplayAdInfo"
        },
        "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": "#/$defs/GoogleAdsGoogleadsV25Common__ExpandedDynamicSearchAdInfo"
        },
        "finalUrlSuffix": {
          "description": "The suffix to use when constructing a final URL.",
          "type": "string"
        },
        "imageAd": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__ImageAdInfo",
          "description": "Immutable. Details pertaining to an Image ad."
        },
        "addedByGoogleAds": {
          "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.",
          "type": "boolean"
        },
        "responsiveSearchAd": {
          "description": "Details pertaining to a responsive search ad.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__ResponsiveSearchAdInfo"
        },
        "expandedTextAd": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__ExpandedTextAdInfo",
          "description": "Details pertaining to an expanded text ad. Expanded text ads are deprecated. Use `ResponsiveSearchAd` instead."
        },
        "type": {
          "x-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. Expanded text ads are deprecated.",
            "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.",
            "In-feed video ad.",
            "Demand Gen multi asset ad.",
            "Demand Gen carousel ad.",
            "Travel ad.",
            "Demand Gen video responsive ad.",
            "Demand Gen product ad.",
            "YouTube Audio ad."
          ],
          "type": "string",
          "description": "Output only. The type of ad.",
          "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",
            "IN_FEED_VIDEO_AD",
            "DEMAND_GEN_MULTI_ASSET_AD",
            "DEMAND_GEN_CAROUSEL_AD",
            "TRAVEL_AD",
            "DEMAND_GEN_VIDEO_RESPONSIVE_AD",
            "DEMAND_GEN_PRODUCT_AD",
            "YOUTUBE_AUDIO_AD"
          ]
        },
        "shoppingProductAd": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__ShoppingProductAdInfo",
          "description": "Details pertaining to a Shopping product ad."
        },
        "displayUploadAd": {
          "description": "Details pertaining to a display upload ad.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__DisplayUploadAdInfo"
        },
        "finalAppUrls": {
          "description": "A list of final app URLs that will be used on mobile if the user has the specific app installed.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__FinalAppUrl"
          },
          "type": "array"
        },
        "devicePreference": {
          "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.",
          "type": "string",
          "x-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"
          ]
        },
        "travelAd": {
          "description": "Details pertaining to a travel ad.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__TravelAdInfo"
        },
        "appAd": {
          "description": "Details pertaining to an app ad.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AppAdInfo"
        },
        "finalMobileUrls": {
          "type": "array",
          "description": "The list of possible final mobile URLs after all cross-domain redirects for the ad.",
          "items": {
            "type": "string"
          }
        },
        "shoppingSmartAd": {
          "description": "Details pertaining to a Smart Shopping ad.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__ShoppingSmartAdInfo"
        },
        "textAd": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__TextAdInfo",
          "description": "Immutable. Details pertaining to a text ad."
        },
        "legacyAppInstallAd": {
          "description": "Immutable. Details pertaining to a legacy app install ad.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__LegacyAppInstallAdInfo"
        },
        "demandGenMultiAssetAd": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__DemandGenMultiAssetAdInfo",
          "description": "Details pertaining to a Demand Gen multi asset ad."
        },
        "videoAd": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__VideoAdInfo",
          "description": "Details pertaining to a Video ad."
        },
        "urlCustomParameters": {
          "type": "array",
          "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.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__CustomParameter"
          }
        },
        "systemManagedResourceSource": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AD_VARIATIONS"
          ],
          "description": "Output only. If this ad is system managed, then this field will indicate the source. This field is read-only.",
          "type": "string",
          "x-enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Generated ad variations experiment ad."
          ]
        },
        "videoResponsiveAd": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__VideoResponsiveAdInfo",
          "description": "Details pertaining to a Video responsive ad."
        },
        "shoppingComparisonListingAd": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__ShoppingComparisonListingAdInfo",
          "description": "Details pertaining to a Shopping Comparison Listing ad."
        },
        "legacyResponsiveDisplayAd": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__LegacyResponsiveDisplayAdInfo",
          "description": "Details pertaining to a legacy responsive display ad."
        },
        "demandGenVideoResponsiveAd": {
          "description": "Details pertaining to a Demand Gen video responsive ad.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__DemandGenVideoResponsiveAdInfo"
        },
        "localAd": {
          "description": "Details pertaining to a local ad.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__LocalAdInfo"
        },
        "demandGenProductAd": {
          "description": "Details pertaining to a Demand Gen product ad.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__DemandGenProductAdInfo"
        },
        "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. The name field is currently only supported for DisplayUploadAd, ImageAd, LegacyAppInstallAd, ShoppingComparisonListingAd, VideoAd, VideoResponsiveAd and DemandGen ads.",
          "type": "string"
        },
        "urlCollections": {
          "type": "array",
          "description": "Additional URLs for the ad that are tagged with a unique identifier that can be referenced from other fields in the ad.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__UrlCollection"
          }
        },
        "id": {
          "type": "string",
          "description": "Output only. The ID of the ad.",
          "format": "int64"
        },
        "finalUrls": {
          "type": "array",
          "description": "The list of possible final URLs after all cross-domain redirects for the ad.",
          "items": {
            "type": "string"
          }
        },
        "demandGenCarouselAd": {
          "description": "Details pertaining to a Demand Gen carousel ad.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__DemandGenCarouselAdInfo"
        },
        "resourceName": {
          "description": "Immutable. The resource name of the ad. Ad resource names have the form: `customers/{customer_id}/ads/{ad_id}`",
          "type": "string"
        },
        "hotelAd": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__HotelAdInfo",
          "description": "Details pertaining to a hotel ad."
        },
        "trackingUrlTemplate": {
          "type": "string",
          "description": "The URL template for constructing a tracking URL."
        }
      },
      "description": "An ad."
    },
    "GoogleAdsGoogleadsV25Resources__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": {
        "source": {
          "x-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."
          ],
          "type": "string",
          "description": "Output only. Source of the asset.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADVERTISER",
            "AUTOMATICALLY_CREATED"
          ]
        },
        "callAsset": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__CallAsset",
          "description": "A call asset."
        },
        "dynamicHotelsAndRentalsAsset": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__DynamicHotelsAndRentalsAsset",
          "description": "A dynamic hotels and rentals asset."
        },
        "callToActionAsset": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__CallToActionAsset",
          "description": "Immutable. A call to action asset."
        },
        "dynamicFlightsAsset": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__DynamicFlightsAsset",
          "description": "A dynamic flights asset."
        },
        "dynamicTravelAsset": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__DynamicTravelAsset",
          "description": "A dynamic travel asset."
        },
        "dynamicJobsAsset": {
          "description": "A dynamic jobs asset.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__DynamicJobsAsset"
        },
        "pageFeedAsset": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__PageFeedAsset",
          "description": "A page feed asset."
        },
        "finalUrlSuffix": {
          "description": "URL template for appending params to landing page URLs served with parallel tracking.",
          "type": "string"
        },
        "locationAsset": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__LocationAsset",
          "description": "Output only. A location asset."
        },
        "textAsset": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__TextAsset",
          "description": "Immutable. A text asset."
        },
        "type": {
          "description": "Output only. Type of the asset.",
          "type": "string",
          "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",
            "YOUTUBE_VIDEO_LIST"
          ],
          "x-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.",
            "YouTube video list asset."
          ]
        },
        "sitelinkAsset": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__SitelinkAsset",
          "description": "A sitelink asset."
        },
        "mediaBundleAsset": {
          "description": "Immutable. A media bundle asset.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__MediaBundleAsset"
        },
        "priceAsset": {
          "description": "A price asset.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__PriceAsset"
        },
        "youtubeVideoListAsset": {
          "description": "Immutable. A YouTube video list asset.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__YouTubeVideoListAsset"
        },
        "structuredSnippetAsset": {
          "description": "A structured snippet asset.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__StructuredSnippetAsset"
        },
        "hotelPropertyAsset": {
          "description": "Immutable. A hotel property asset.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__HotelPropertyAsset"
        },
        "dynamicCustomAsset": {
          "description": "A dynamic custom asset.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__DynamicCustomAsset"
        },
        "fieldTypePolicySummaries": {
          "type": "array",
          "description": "Output only. Policy information for the asset for each FieldType.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Resources__AssetFieldTypePolicySummary"
          }
        },
        "orientation": {
          "x-enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Landscape orientation.",
            "Portrait orientation.",
            "Square orientation."
          ],
          "description": "Output only. Orientation of the asset. This is only supported for image and video assets.",
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "LANDSCAPE",
            "PORTRAIT",
            "SQUARE"
          ]
        },
        "syntheticContentInfo": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__SyntheticContentInfo",
          "description": "Synthetic content info for the asset."
        },
        "name": {
          "type": "string",
          "description": "Optional name of the asset."
        },
        "hotelCalloutAsset": {
          "description": "A hotel callout asset.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__HotelCalloutAsset"
        },
        "leadFormAsset": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__LeadFormAsset",
          "description": "A lead form asset."
        },
        "calloutAsset": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__CalloutAsset",
          "description": "A callout asset."
        },
        "dynamicRealEstateAsset": {
          "description": "A dynamic real estate asset.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__DynamicRealEstateAsset"
        },
        "finalUrls": {
          "description": "A list of possible final URLs after all cross domain redirects.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "dynamicEducationAsset": {
          "description": "A dynamic education asset.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__DynamicEducationAsset"
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the asset. Asset resource names have the form: `customers/{customer_id}/assets/{asset_id}`"
        },
        "trackingUrlTemplate": {
          "description": "URL template for constructing a tracking URL.",
          "type": "string"
        },
        "appDeepLinkAsset": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AppDeepLinkAsset",
          "description": "Immutable. An app deep link asset."
        },
        "id": {
          "format": "int64",
          "description": "Output only. The ID of the asset.",
          "type": "string"
        },
        "finalMobileUrls": {
          "type": "array",
          "description": "A list of possible final mobile URLs after all cross domain redirects.",
          "items": {
            "type": "string"
          }
        },
        "policySummary": {
          "description": "Output only. Policy information for the asset.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Resources__AssetPolicySummary"
        },
        "bookOnGoogleAsset": {
          "description": "A book on google asset.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__BookOnGoogleAsset"
        },
        "imageAsset": {
          "description": "Output only. An image asset.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__ImageAsset"
        },
        "demandGenCarouselCardAsset": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__DemandGenCarouselCardAsset",
          "description": "Immutable. A Demand Gen carousel card asset."
        },
        "mobileAppAsset": {
          "description": "A mobile app asset.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__MobileAppAsset"
        },
        "youtubeVideoAsset": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__YoutubeVideoAsset",
          "description": "Immutable. A YouTube video asset."
        },
        "promotionAsset": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__PromotionAsset",
          "description": "A promotion asset."
        },
        "dynamicLocalAsset": {
          "description": "A dynamic local asset.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__DynamicLocalAsset"
        },
        "businessMessageAsset": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__BusinessMessageAsset",
          "description": "A business message asset."
        },
        "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.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__CustomParameter"
          },
          "type": "array"
        }
      }
    },
    "GoogleAdsGoogleadsV25Resources__AssetFieldTypePolicySummary": {
      "type": "object",
      "properties": {
        "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",
            "RELATED_YOUTUBE_VIDEOS",
            "LANDING_PAGE_PREVIEW",
            "LONG_DESCRIPTION",
            "CALL_TO_ACTION",
            "CLASSIC_DISPLAY_IMAGE"
          ],
          "type": "string",
          "description": "Output only. FieldType of this asset.",
          "x-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 related YouTube videos.",
            "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.",
            "The asset is linked for use as a classic display image."
          ]
        },
        "assetSource": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADVERTISER",
            "AUTOMATICALLY_CREATED"
          ],
          "description": "Output only. Source of this asset.",
          "type": "string",
          "x-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."
          ]
        },
        "policySummaryInfo": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Resources__AssetPolicySummary",
          "description": "Output only. Policy summary."
        }
      },
      "description": "Contains policy information for an asset under AssetFieldType context."
    },
    "GoogleAdsGoogleadsV25Resources__AssetPolicySummary": {
      "description": "Contains policy information for an asset.",
      "type": "object",
      "properties": {
        "approvalStatus": {
          "type": "string",
          "description": "Output only. The overall approval status of this asset, calculated based on the status of its individual policy topic entries.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DISAPPROVED",
            "APPROVED_LIMITED",
            "APPROVED",
            "AREA_OF_INTEREST_ONLY"
          ],
          "x-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": {
          "description": "Output only. The list of policy findings for this asset.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__PolicyTopicEntry"
          },
          "type": "array"
        },
        "reviewStatus": {
          "description": "Output only. Where in the review process this asset is.",
          "type": "string",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "REVIEW_IN_PROGRESS",
            "REVIEWED",
            "UNDER_APPEAL",
            "ELIGIBLE_MAY_SERVE"
          ],
          "x-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."
          ]
        }
      }
    },
    "GoogleAdsGoogleadsV25Services_ApplyRecommendationOperation_AdAssetApplyParameters": {
      "type": "object",
      "properties": {
        "existingAssets": {
          "type": "array",
          "description": "The resource names of existing assets to attach to a scope. This may be combined with new_assets in the same call.",
          "items": {
            "type": "string"
          }
        },
        "newAssets": {
          "type": "array",
          "description": "The assets to create and attach to a scope. This may be combined with existing_assets in the same call.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Resources__Asset"
          }
        },
        "scope": {
          "x-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": "string"
        }
      },
      "description": "Common parameters used when applying ad asset recommendations."
    },
    "GoogleAdsGoogleadsV25Services_ApplyRecommendationOperation_CallAssetParameters": {
      "type": "object",
      "properties": {
        "adAssetApplyParameters": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Services_ApplyRecommendationOperation_AdAssetApplyParameters",
          "description": "Required. Call assets to be added. This is a required field."
        }
      },
      "description": "Parameters to use when applying call asset recommendations."
    },
    "GoogleAdsGoogleadsV25Services_ApplyRecommendationOperation_CallExtensionParameters": {
      "type": "object",
      "properties": {
        "callExtensions": {
          "type": "array",
          "description": "Call extensions to be added. This is a required field.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__CallFeedItem"
          }
        }
      },
      "description": "Parameters to use when applying call extension recommendation."
    },
    "GoogleAdsGoogleadsV25Services_ApplyRecommendationOperation_CalloutAssetParameters": {
      "type": "object",
      "properties": {
        "adAssetApplyParameters": {
          "description": "Required. Callout assets to be added. This is a required field.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Services_ApplyRecommendationOperation_AdAssetApplyParameters"
        }
      },
      "description": "Parameters to use when applying callout asset recommendations."
    },
    "GoogleAdsGoogleadsV25Services_ApplyRecommendationOperation_CalloutExtensionParameters": {
      "description": "Parameters to use when applying callout extension recommendation.",
      "type": "object",
      "properties": {
        "calloutExtensions": {
          "type": "array",
          "description": "Callout extensions to be added. This is a required field.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__CalloutFeedItem"
          }
        }
      }
    },
    "GoogleAdsGoogleadsV25Services_ApplyRecommendationOperation_CampaignBudgetParameters": {
      "type": "object",
      "properties": {
        "newBudgetAmountMicros": {
          "type": "string",
          "description": "New budget amount to set for target budget resource. This is a required field.",
          "format": "int64"
        }
      },
      "description": "Parameters to use when applying a campaign budget recommendation."
    },
    "GoogleAdsGoogleadsV25Services_ApplyRecommendationOperation_ForecastingSetTargetCpaParameters": {
      "description": "Parameters to use when applying a set target CPA recommendation.",
      "type": "object",
      "properties": {
        "targetCpaMicros": {
          "type": "string",
          "description": "Average CPA to use for Target CPA bidding strategy.",
          "format": "int64"
        },
        "campaignBudgetAmountMicros": {
          "type": "string",
          "description": "New campaign budget amount to set for a campaign resource.",
          "format": "int64"
        }
      }
    },
    "GoogleAdsGoogleadsV25Services_ApplyRecommendationOperation_ForecastingSetTargetRoasParameters": {
      "description": "Parameters to use when applying a forecasting set target roas recommendation.",
      "type": "object",
      "properties": {
        "targetRoas": {
          "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.",
          "type": "number"
        },
        "campaignBudgetAmountMicros": {
          "description": "New campaign budget amount to set for a campaign resource.",
          "type": "string",
          "format": "int64"
        }
      }
    },
    "GoogleAdsGoogleadsV25Services_ApplyRecommendationOperation_KeywordParameters": {
      "description": "Parameters to use when applying keyword recommendation.",
      "type": "object",
      "properties": {
        "matchType": {
          "type": "string",
          "description": "The match type of the keyword. This is a required field.",
          "x-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"
        },
        "adGroup": {
          "description": "The ad group resource to add keyword to. This is a required field.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV25Services_ApplyRecommendationOperation_LeadFormAssetParameters": {
      "description": "Parameters to use when applying a lead form asset recommendation.",
      "type": "object",
      "properties": {
        "adAssetApplyParameters": {
          "description": "Required. Lead form assets to be added. This is a required field.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Services_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."
        }
      }
    },
    "GoogleAdsGoogleadsV25Services_ApplyRecommendationOperation_LowerTargetRoasParameters": {
      "type": "object",
      "properties": {
        "targetRoasMultiplier": {
          "type": "number",
          "description": "Required. Target to set ROAS multiplier to. This is a required field.",
          "format": "double"
        }
      },
      "description": "Parameters to use when applying lower Target ROAS recommendations."
    },
    "GoogleAdsGoogleadsV25Services_ApplyRecommendationOperation_MoveUnusedBudgetParameters": {
      "type": "object",
      "properties": {
        "budgetMicrosToMove": {
          "type": "string",
          "description": "Budget amount to move from excess budget to constrained budget. This is a required field.",
          "format": "int64"
        }
      },
      "description": "Parameters to use when applying move unused budget recommendation."
    },
    "GoogleAdsGoogleadsV25Services_ApplyRecommendationOperation_RaiseTargetCpaBidTooLowParameters": {
      "type": "object",
      "properties": {
        "targetMultiplier": {
          "format": "double",
          "type": "number",
          "description": "Required. A number greater than 1.0 indicating the factor by which to increase the target CPA. This is a required field."
        }
      },
      "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.."
    },
    "GoogleAdsGoogleadsV25Services_ApplyRecommendationOperation_RaiseTargetCpaParameters": {
      "type": "object",
      "properties": {
        "targetCpaMultiplier": {
          "format": "double",
          "description": "Required. Target to set CPA multiplier to. This is a required field.",
          "type": "number"
        }
      },
      "description": "Parameters to use when applying raise Target CPA recommendations."
    },
    "GoogleAdsGoogleadsV25Services_ApplyRecommendationOperation_ResponsiveSearchAdAssetParameters": {
      "description": "Parameters to use when applying a responsive search ad asset recommendation.",
      "type": "object",
      "properties": {
        "updatedAd": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Resources__Ad",
          "description": "Updated ad. The current ad's content will be replaced."
        }
      }
    },
    "GoogleAdsGoogleadsV25Services_ApplyRecommendationOperation_ResponsiveSearchAdImproveAdStrengthParameters": {
      "description": "Parameters to use when applying a responsive search ad improve ad strength recommendation.",
      "type": "object",
      "properties": {
        "updatedAd": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Resources__Ad",
          "description": "Updated ad. The current ad's content will be replaced."
        }
      }
    },
    "GoogleAdsGoogleadsV25Services_ApplyRecommendationOperation_ResponsiveSearchAdParameters": {
      "description": "Parameters to use when applying a responsive search ad recommendation.",
      "type": "object",
      "properties": {
        "ad": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Resources__Ad",
          "description": "Required. New ad to add to recommended ad group."
        }
      }
    },
    "GoogleAdsGoogleadsV25Services_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": "#/$defs/GoogleAdsGoogleadsV25Services_ApplyRecommendationOperation_AdAssetApplyParameters"
        }
      }
    },
    "GoogleAdsGoogleadsV25Services_ApplyRecommendationOperation_SitelinkExtensionParameters": {
      "type": "object",
      "properties": {
        "sitelinkExtensions": {
          "type": "array",
          "description": "Sitelinks to be added. This is a required field.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__SitelinkFeedItem"
          }
        }
      },
      "description": "Parameters to use when applying sitelink recommendation."
    },
    "GoogleAdsGoogleadsV25Services_ApplyRecommendationOperation_TargetCpaOptInParameters": {
      "description": "Parameters to use when applying Target CPA recommendation.",
      "type": "object",
      "properties": {
        "targetCpaMicros": {
          "format": "int64",
          "type": "string",
          "description": "Average CPA to use for Target CPA bidding strategy. This is a required field."
        },
        "newCampaignBudgetAmountMicros": {
          "format": "int64",
          "description": "Optional, budget amount to set for the campaign.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV25Services_ApplyRecommendationOperation_TargetRoasOptInParameters": {
      "type": "object",
      "properties": {
        "targetRoas": {
          "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.",
          "type": "number"
        },
        "newCampaignBudgetAmountMicros": {
          "format": "int64",
          "type": "string",
          "description": "Optional, budget amount to set for the campaign."
        }
      },
      "description": "Parameters to use when applying a Target ROAS opt-in recommendation."
    },
    "GoogleAdsGoogleadsV25Services_ApplyRecommendationOperation_TextAdParameters": {
      "description": "Parameters to use when applying a text ad recommendation.",
      "type": "object",
      "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": "#/$defs/GoogleAdsGoogleadsV25Resources__Ad"
        }
      }
    },
    "GoogleAdsGoogleadsV25Services_ApplyRecommendationOperation_UseBroadMatchKeywordParameters": {
      "description": "Parameters to use when applying a use broad match keyword recommendation.",
      "type": "object",
      "properties": {
        "newBudgetAmountMicros": {
          "format": "int64",
          "description": "New budget amount to set for target budget resource.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV25Services__ApplyRecommendationOperation": {
      "description": "Information about the operation to apply a recommendation and any parameters to customize it.",
      "type": "object",
      "properties": {
        "targetCpaOptIn": {
          "description": "Optional parameters to use when applying target CPA opt-in recommendation.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Services_ApplyRecommendationOperation_TargetCpaOptInParameters"
        },
        "useBroadMatchKeyword": {
          "description": "Parameters to use when applying a use broad match keyword recommendation.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Services_ApplyRecommendationOperation_UseBroadMatchKeywordParameters"
        },
        "targetRoasOptIn": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Services_ApplyRecommendationOperation_TargetRoasOptInParameters",
          "description": "Optional parameters to use when applying target ROAS opt-in recommendation."
        },
        "sitelinkExtension": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Services_ApplyRecommendationOperation_SitelinkExtensionParameters",
          "description": "Parameters to use when applying sitelink recommendation."
        },
        "textAd": {
          "description": "Optional parameters to use when applying a text ad recommendation.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Services_ApplyRecommendationOperation_TextAdParameters"
        },
        "responsiveSearchAdImproveAdStrength": {
          "description": "Parameters to use when applying a responsive search ad improve ad strength recommendation.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Services_ApplyRecommendationOperation_ResponsiveSearchAdImproveAdStrengthParameters"
        },
        "keyword": {
          "description": "Optional parameters to use when applying keyword recommendation.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Services_ApplyRecommendationOperation_KeywordParameters"
        },
        "raiseTargetCpa": {
          "description": "Parameters to use when applying raise Target CPA recommendation.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Services_ApplyRecommendationOperation_RaiseTargetCpaParameters"
        },
        "calloutExtension": {
          "description": "Parameters to use when applying callout extension recommendation.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Services_ApplyRecommendationOperation_CalloutExtensionParameters"
        },
        "resourceName": {
          "description": "The resource name of the recommendation to apply.",
          "type": "string"
        },
        "calloutAsset": {
          "description": "Parameters to use when applying callout asset recommendation.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Services_ApplyRecommendationOperation_CalloutAssetParameters"
        },
        "leadFormAsset": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Services_ApplyRecommendationOperation_LeadFormAssetParameters",
          "description": "Parameters to use when applying lead form asset recommendation."
        },
        "responsiveSearchAdAsset": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Services_ApplyRecommendationOperation_ResponsiveSearchAdAssetParameters",
          "description": "Parameters to use when applying a responsive search ad asset recommendation."
        },
        "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": "#/$defs/GoogleAdsGoogleadsV25Services_ApplyRecommendationOperation_RaiseTargetCpaBidTooLowParameters"
        },
        "forecastingSetTargetRoas": {
          "description": "Parameters to use when applying a forecasting set target ROAS recommendation.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Services_ApplyRecommendationOperation_ForecastingSetTargetRoasParameters"
        },
        "setTargetCpa": {
          "description": "Parameters to use when applying set target CPA recommendation.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Services_ApplyRecommendationOperation_ForecastingSetTargetCpaParameters"
        },
        "callExtension": {
          "description": "Parameters to use when applying call extension recommendation.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Services_ApplyRecommendationOperation_CallExtensionParameters"
        },
        "lowerTargetRoas": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Services_ApplyRecommendationOperation_LowerTargetRoasParameters",
          "description": "Parameters to use when applying lower Target ROAS recommendation."
        },
        "forecastingSetTargetCpa": {
          "description": "Parameters to use when applying forecasting set target CPA recommendation.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Services_ApplyRecommendationOperation_ForecastingSetTargetCpaParameters"
        },
        "moveUnusedBudget": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Services_ApplyRecommendationOperation_MoveUnusedBudgetParameters",
          "description": "Parameters to use when applying move unused budget recommendation."
        },
        "campaignBudget": {
          "description": "Optional parameters to use when applying a campaign budget recommendation.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Services_ApplyRecommendationOperation_CampaignBudgetParameters"
        },
        "setTargetRoas": {
          "description": "Parameters to use when applying set target ROAS recommendation.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Services_ApplyRecommendationOperation_ForecastingSetTargetRoasParameters"
        },
        "sitelinkAsset": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Services_ApplyRecommendationOperation_SitelinkAssetParameters",
          "description": "Parameters to use when applying sitelink asset recommendation."
        },
        "responsiveSearchAd": {
          "description": "Parameters to use when applying a responsive search ad recommendation.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Services_ApplyRecommendationOperation_ResponsiveSearchAdParameters"
        },
        "callAsset": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Services_ApplyRecommendationOperation_CallAssetParameters",
          "description": "Parameters to use when applying call asset recommendation."
        }
      }
    }
  }
}