{
  "$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-customizer-attributes-request-schema.json",
  "title": "GoogleAdsGoogleadsV25Services__MutateCustomizerAttributesRequest",
  "description": "Request message for CustomizerAttributeService.MutateCustomizerAttributes.",
  "x-generated": "2026-11-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/google-ads-customers-customizerattributes-api-openapi.yml#/components/schemas/GoogleAdsGoogleadsV25Services__MutateCustomizerAttributesRequest",
  "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 customizer attributes.",
      "items": {
        "$ref": "#/$defs/GoogleAdsGoogleadsV25Services__CustomizerAttributeOperation"
      }
    },
    "validateOnly": {
      "description": "If true, the request is validated but not executed. Only errors are returned, not results.",
      "type": "boolean"
    },
    "responseContentType": {
      "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"
      ],
      "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
      "type": "string"
    }
  },
  "$defs": {
    "GoogleAdsGoogleadsV25Resources__CustomizerAttribute": {
      "type": "object",
      "properties": {
        "type": {
          "description": "Immutable. The type of the customizer attribute.",
          "type": "string",
          "x-enumDescriptions": [
            "The status has not been specified.",
            "The received value is not known in this version.",
            "Text customizer.",
            "Number customizer.",
            "Price customizer consisting of a number and a currency.",
            "Percentage customizer consisting of a number and a '%'."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "TEXT",
            "NUMBER",
            "PRICE",
            "PERCENT"
          ]
        },
        "id": {
          "type": "string",
          "description": "Output only. The ID of the customizer attribute.",
          "format": "int64"
        },
        "status": {
          "x-enumDescriptions": [
            "The status has not been specified.",
            "The received value is not known in this version.",
            "The customizer attribute is enabled.",
            "The customizer attribute is removed."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ],
          "description": "Output only. The status of the customizer attribute.",
          "type": "string"
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the customizer attribute. Customizer Attribute resource names have the form: `customers/{customer_id}/customizerAttributes/{customizer_attribute_id}`"
        },
        "name": {
          "type": "string",
          "description": "Required. Immutable. Name of the customizer attribute. Required. It must have a minimum length of 1 and maximum length of 40. Name of an enabled customizer attribute must be unique (case insensitive)."
        }
      },
      "description": "A customizer attribute. Use CustomerCustomizer, CampaignCustomizer, AdGroupCustomizer, or AdGroupCriterionCustomizer to associate a customizer attribute and set its value at the customer, campaign, ad group, or ad group criterion level, respectively."
    },
    "GoogleAdsGoogleadsV25Services__CustomizerAttributeOperation": {
      "type": "object",
      "properties": {
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "type": "string",
          "format": "google-fieldmask"
        },
        "create": {
          "description": "Create operation: No resource name is expected for the new customizer attribute",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Resources__CustomizerAttribute"
        },
        "remove": {
          "description": "Remove operation: A resource name for the removed customizer attribute is expected, in this format: `customers/{customer_id}/customizerAttributes/{customizer_attribute_id}`",
          "type": "string"
        }
      },
      "description": "A single operation (create, remove) on a customizer attribute."
    }
  }
}