{
  "$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-customer-user-access-request-schema.json",
  "title": "GoogleAdsGoogleadsV25Services__MutateCustomerUserAccessRequest",
  "description": "Mutate Request for CustomerUserAccessService.MutateCustomerUserAccess.",
  "x-generated": "2026-11-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/google-ads-customers-customeruseraccesses-api-openapi.yml#/components/schemas/GoogleAdsGoogleadsV25Services__MutateCustomerUserAccessRequest",
  "type": "object",
  "properties": {
    "operation": {
      "$ref": "#/$defs/GoogleAdsGoogleadsV25Services__CustomerUserAccessOperation",
      "description": "Required. The operation to perform on the customer"
    }
  },
  "$defs": {
    "GoogleAdsGoogleadsV25Resources__CustomerUserAccess": {
      "type": "object",
      "properties": {
        "emailAddress": {
          "description": "Output only. Email address of the user. Read only field",
          "type": "string"
        },
        "accessRole": {
          "type": "string",
          "description": "Access role of the user.",
          "x-enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Owns its account and can control the addition of other users.",
            "Can modify campaigns, but can't affect other users.",
            "Can view campaigns and account changes, but cannot make edits.",
            "Role for \\\"email only\\\" access. Represents an email recipient rather than a true User entity."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADMIN",
            "STANDARD",
            "READ_ONLY",
            "EMAIL_ONLY"
          ]
        },
        "passkeyEnabled": {
          "type": "boolean",
          "description": "Output only. Whether the user has passkey enabled. Read only field"
        },
        "inviterUserEmailAddress": {
          "description": "Output only. The email address of the inviter user. Read only field",
          "type": "string"
        },
        "resourceName": {
          "description": "Immutable. Name of the resource. Resource names have the form: `customers/{customer_id}/customerUserAccesses/{user_id}`",
          "type": "string"
        },
        "userId": {
          "format": "int64",
          "description": "Output only. User id of the user with the customer access. Read only field",
          "type": "string"
        },
        "accessCreationDateTime": {
          "description": "Output only. The customer user access creation time. Read only field 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"
        },
        "pendingMultiPartyAuthReview": {
          "description": "Output only. The resource name of the pending Multi-Party Authorization review. Read only field",
          "type": "string"
        }
      },
      "description": "Represents the permission of a single user onto a single customer."
    },
    "GoogleAdsGoogleadsV25Services__CustomerUserAccessOperation": {
      "description": "A single operation (update, remove) on customer user access.",
      "type": "object",
      "properties": {
        "remove": {
          "description": "Remove operation: A resource name for the removed access is expected, in this format: `customers/{customer_id}/customerUserAccesses/{CustomerUserAccess.user_id}`",
          "type": "string"
        },
        "update": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Resources__CustomerUserAccess",
          "description": "Update operation: The customer user access is expected to have a valid resource name."
        },
        "updateMask": {
          "format": "google-fieldmask",
          "type": "string",
          "description": "FieldMask that determines which resource fields are modified in an update."
        }
      }
    }
  }
}