{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/gcp-cloud-storage/json-schema/gcp-cloud-storage-object-access-control-schema.json",
  "title": "ObjectAccessControl",
  "description": "An access-control entry.",
  "x-generated": "2026-11-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/gcp-cloud-storage-json-api-openapi.yml#/components/schemas/ObjectAccessControl",
  "type": "object",
  "properties": {
    "bucket": {
      "type": "string",
      "description": "The name of the bucket."
    },
    "domain": {
      "type": "string",
      "description": "The domain associated with the entity, if any."
    },
    "email": {
      "type": "string",
      "description": "The email address associated with the entity, if any."
    },
    "entity": {
      "type": "string",
      "description": "The entity holding the permission, in one of the following forms: \n- user-userId \n- user-email \n- group-groupId \n- group-email \n- domain-domain \n- project-team-projectId \n- allUsers \n- allAuthenticatedUsers Examples: \n- The user liz@example.com would be user-liz@example.com. \n- The group example@googlegroups.com would be group-example@googlegroups.com. \n- To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com."
    },
    "entityId": {
      "type": "string",
      "description": "The ID for the entity, if any."
    },
    "etag": {
      "type": "string",
      "description": "HTTP 1.1 Entity tag for the access-control entry."
    },
    "generation": {
      "type": "string",
      "description": "The content generation of the object, if applied to an object.",
      "format": "int64"
    },
    "id": {
      "type": "string",
      "description": "The ID of the access-control entry."
    },
    "kind": {
      "type": "string",
      "description": "The kind of item this is. For object access control entries, this is always storage#objectAccessControl.",
      "default": "storage#objectAccessControl"
    },
    "object": {
      "type": "string",
      "description": "The name of the object, if applied to an object."
    },
    "projectTeam": {
      "type": "object",
      "description": "The project team associated with the entity, if any.",
      "properties": {
        "projectNumber": {
          "type": "string",
          "description": "The project number."
        },
        "team": {
          "type": "string",
          "description": "The team."
        }
      }
    },
    "role": {
      "type": "string",
      "description": "The access permission for the entity."
    },
    "selfLink": {
      "type": "string",
      "description": "The link to this access-control entry."
    }
  }
}