{
  "$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-campaign-groups-request-schema.json",
  "title": "GoogleAdsGoogleadsV25Services__MutateCampaignGroupsRequest",
  "description": "Request message for CampaignGroupService.MutateCampaignGroups.",
  "x-generated": "2026-11-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/google-ads-customers-campaigngroups-api-openapi.yml#/components/schemas/GoogleAdsGoogleadsV25Services__MutateCampaignGroupsRequest",
  "type": "object",
  "properties": {
    "partialFailure": {
      "type": "boolean",
      "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
    },
    "operations": {
      "type": "array",
      "description": "Required. The list of operations to perform on individual campaign groups.",
      "items": {
        "$ref": "#/$defs/GoogleAdsGoogleadsV25Services__CampaignGroupOperation"
      }
    },
    "validateOnly": {
      "type": "boolean",
      "description": "If true, the request is validated but not executed. Only errors are returned, not results."
    },
    "responseContentType": {
      "type": "string",
      "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
      "x-enumDescriptions": [
        "Not specified. Will return the resource name only in the response.",
        "The mutate response will be the resource name.",
        "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
      ],
      "enum": [
        "UNSPECIFIED",
        "RESOURCE_NAME_ONLY",
        "MUTABLE_RESOURCE"
      ]
    }
  },
  "$defs": {
    "GoogleAdsGoogleadsV25Resources__CampaignGroup": {
      "description": "A campaign group.",
      "type": "object",
      "properties": {
        "resourceName": {
          "description": "Immutable. The resource name of the campaign group. Campaign group resource names have the form: `customers/{customer_id}/campaignGroups/{campaign_group_id}`",
          "type": "string"
        },
        "id": {
          "type": "string",
          "description": "Output only. The ID of the campaign group.",
          "format": "int64"
        },
        "name": {
          "description": "The name of the campaign group. This field is required and should not be empty when creating new campaign groups. It must not contain any null (code point 0x0), NL line feed (code point 0xA) or carriage return (code point 0xD) characters.",
          "type": "string"
        },
        "status": {
          "description": "The status of the campaign group. When a new campaign group is added, the status defaults to ENABLED.",
          "type": "string",
          "x-enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The campaign group is active.",
            "The campaign group has been removed."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ]
        }
      }
    },
    "GoogleAdsGoogleadsV25Services__CampaignGroupOperation": {
      "type": "object",
      "properties": {
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "type": "string",
          "format": "google-fieldmask"
        },
        "create": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Resources__CampaignGroup",
          "description": "Create operation: No resource name is expected for the new campaign group."
        },
        "update": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Resources__CampaignGroup",
          "description": "Update operation: The campaign group is expected to have a valid resource name."
        },
        "remove": {
          "description": "Remove operation: A resource name for the removed campaign group is expected, in this format: `customers/{customer_id}/campaignGroups/{campaign_group_id}`",
          "type": "string"
        }
      },
      "description": "A single operation (create, update, remove) on a campaign group."
    }
  }
}