{
  "$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-drafts-response-schema.json",
  "title": "GoogleAdsGoogleadsV25Services__MutateCampaignDraftsResponse",
  "description": "Response message for campaign draft mutate.",
  "x-generated": "2026-11-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/google-ads-customers-campaigndrafts-api-openapi.yml#/components/schemas/GoogleAdsGoogleadsV25Services__MutateCampaignDraftsResponse",
  "type": "object",
  "properties": {
    "partialFailureError": {
      "$ref": "#/$defs/GoogleRpc__Status",
      "description": "Errors that pertain to operation failures in the partial failure mode. Returned only when partial_failure = true and all errors occur inside the operations. If any errors occur outside the operations (for example, auth errors), we return an RPC level error."
    },
    "results": {
      "description": "All results for the mutate.",
      "items": {
        "$ref": "#/$defs/GoogleAdsGoogleadsV25Services__MutateCampaignDraftResult"
      },
      "type": "array"
    }
  },
  "$defs": {
    "GoogleAdsGoogleadsV25Resources__CampaignDraft": {
      "description": "A campaign draft.",
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "The name of the campaign draft. This field is required and should not be empty when creating new campaign drafts. It must not contain any null (code point 0x0), NL line feed (code point 0xA) or carriage return (code point 0xD) characters."
        },
        "draftId": {
          "format": "int64",
          "type": "string",
          "description": "Output only. The ID of the draft. This field is read-only."
        },
        "resourceName": {
          "description": "Immutable. The resource name of the campaign draft. Campaign draft resource names have the form: `customers/{customer_id}/campaignDrafts/{base_campaign_id}~{draft_id}`",
          "type": "string"
        },
        "hasExperimentRunning": {
          "type": "boolean",
          "description": "Output only. Whether there is an experiment based on this draft currently serving."
        },
        "status": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PROPOSED",
            "REMOVED",
            "PROMOTING",
            "PROMOTED",
            "PROMOTE_FAILED"
          ],
          "description": "Output only. The status of the campaign draft. This field is read-only. When a new campaign draft is added, the status defaults to PROPOSED.",
          "type": "string",
          "x-enumDescriptions": [
            "The status has not been specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Initial state of the draft, the advertiser can start adding changes with no effect on serving.",
            "The campaign draft is removed.",
            "Advertiser requested to promote draft's changes back into the original campaign. Advertiser can poll the long running operation returned by the promote action to see the status of the promotion.",
            "The process to merge changes in the draft back to the original campaign has completed successfully.",
            "The promotion failed after it was partially applied. Promote cannot be attempted again safely, so the issue must be corrected in the original campaign."
          ]
        },
        "baseCampaign": {
          "description": "Immutable. The base campaign to which the draft belongs.",
          "type": "string"
        },
        "draftCampaign": {
          "description": "Output only. Resource name of the Campaign that results from overlaying the draft changes onto the base campaign. This field is read-only.",
          "type": "string"
        },
        "longRunningOperation": {
          "description": "Output only. The resource name of the long-running operation that can be used to poll for completion of draft promotion. This is only set if the draft promotion is in progress or finished.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV25Services__MutateCampaignDraftResult": {
      "description": "The result for the campaign draft mutate.",
      "type": "object",
      "properties": {
        "resourceName": {
          "type": "string",
          "description": "Returned for successful operations."
        },
        "campaignDraft": {
          "description": "The mutated campaign draft with only mutable fields after mutate. The field will only be returned when response_content_type is set to \"MUTABLE_RESOURCE\".",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Resources__CampaignDraft"
        }
      }
    },
    "GoogleRpc__Status": {
      "description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).",
      "type": "object",
      "properties": {
        "message": {
          "description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.",
          "type": "string"
        },
        "code": {
          "type": "integer",
          "description": "The status code, which should be an enum value of google.rpc.Code.",
          "format": "int32"
        },
        "details": {
          "type": "array",
          "description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.",
          "items": {
            "type": "object",
            "additionalProperties": {
              "description": "Properties of the object. Contains field @type with type URL."
            }
          }
        }
      }
    }
  }
}