{
  "$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-mutate-keyword-plans-request-schema.json",
  "title": "GoogleAdsGoogleadsV25Services__MutateKeywordPlansRequest",
  "description": "Request message for KeywordPlanService.MutateKeywordPlans.",
  "x-generated": "2026-11-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/google-ads-customers-keywordplans-api-openapi.yml#/components/schemas/GoogleAdsGoogleadsV25Services__MutateKeywordPlansRequest",
  "type": "object",
  "properties": {
    "partialFailure": {
      "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
      "type": "boolean"
    },
    "operations": {
      "type": "array",
      "description": "Required. The list of operations to perform on individual keyword plans.",
      "items": {
        "$ref": "#/$defs/GoogleAdsGoogleadsV25Services__KeywordPlanOperation"
      }
    },
    "validateOnly": {
      "type": "boolean",
      "description": "If true, the request is validated but not executed. Only errors are returned, not results."
    }
  },
  "$defs": {
    "GoogleAdsGoogleadsV25Common__DateRange": {
      "type": "object",
      "properties": {
        "startDate": {
          "type": "string",
          "description": "The start date, in yyyy-mm-dd format. This date is inclusive."
        },
        "endDate": {
          "description": "The end date, in yyyy-mm-dd format. This date is inclusive.",
          "type": "string"
        }
      },
      "description": "A date range."
    },
    "GoogleAdsGoogleadsV25Resources__KeywordPlan": {
      "description": "A Keyword Planner plan. Max number of saved keyword plans: 10000. It's possible to remove plans if limit is reached.",
      "type": "object",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the Keyword Planner plan. KeywordPlan resource names have the form: `customers/{customer_id}/keywordPlans/{kp_plan_id}`"
        },
        "forecastPeriod": {
          "description": "The date period used for forecasting the plan.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Resources__KeywordPlanForecastPeriod"
        },
        "id": {
          "format": "int64",
          "description": "Output only. The ID of the keyword plan.",
          "type": "string"
        },
        "name": {
          "description": "The name of the keyword plan. This field is required and should not be empty when creating new keyword plans.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV25Resources__KeywordPlanForecastPeriod": {
      "description": "The forecasting period associated with the keyword plan.",
      "type": "object",
      "properties": {
        "dateInterval": {
          "type": "string",
          "description": "A future date range relative to the current date used for forecasting.",
          "x-enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "The next week date range for keyword plan. The next week is based on the default locale of the user's account and is mostly SUN-SAT or MON-SUN. This can be different from next-7 days.",
            "The next month date range for keyword plan.",
            "The next quarter date range for keyword plan."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "NEXT_WEEK",
            "NEXT_MONTH",
            "NEXT_QUARTER"
          ]
        },
        "dateRange": {
          "description": "The custom date range used for forecasting. It cannot be greater than a year. The start and end dates must be in the future. Otherwise, an error will be returned when the forecasting action is performed. The start and end dates are inclusive.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__DateRange"
        }
      }
    },
    "GoogleAdsGoogleadsV25Services__KeywordPlanOperation": {
      "type": "object",
      "properties": {
        "remove": {
          "type": "string",
          "description": "Remove operation: A resource name for the removed keyword plan is expected in this format: `customers/{customer_id}/keywordPlans/{keyword_plan_id}`"
        },
        "update": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Resources__KeywordPlan",
          "description": "Update operation: The keyword plan is expected to have a valid resource name."
        },
        "updateMask": {
          "type": "string",
          "description": "The FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new keyword plan.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Resources__KeywordPlan"
        }
      },
      "description": "A single operation (create, update, remove) on a keyword plan."
    }
  }
}