# Cloud Storage JSON API . bucketAccessControls

## Instance Methods

Permanently deletes the ACL entry for the specified entity on the specified bucket.

Returns the ACL entry for the specified entity on the specified bucket.

Creates a new ACL entry on the specified bucket.

Retrieves ACL entries on the specified bucket.

Patches an ACL entry on the specified bucket.

Updates an ACL entry on the specified bucket.

### Method Details

`delete(bucket, entity, userProject=None, provisionalUserProject=None)`

    Permanently deletes the ACL entry for the specified entity on the specified bucket.

    Args:
      bucket: string, Name of a bucket. (required)
      entity: string, The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group-emailAddress, allUsers, or allAuthenticatedUsers. (required)
      userProject: string, The project to be billed for this request. Required for Requester Pays buckets.
      provisionalUserProject: string, The project to be billed for this request if the target bucket is requester-pays bucket.

`get(bucket, entity, userProject=None, provisionalUserProject=None)`

    Returns the ACL entry for the specified entity on the specified bucket.

    Args:
      bucket: string, Name of a bucket. (required)
      entity: string, The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group-emailAddress, allUsers, or allAuthenticatedUsers. (required)
      userProject: string, The project to be billed for this request. Required for Requester Pays buckets.
      provisionalUserProject: string, The project to be billed for this request if the target bucket is requester-pays bucket.

    Returns:
      An object of the form:

        { # An access-control entry.
          "domain": "A String", # The domain associated with the entity, if any.
          "bucket": "A String", # The name of the bucket.
          "kind": "storage#bucketAccessControl", # The kind of item this is. For bucket access control entries, this is always storage#bucketAccessControl.
          "entity": "A String", # The entity holding the permission, in one of the following forms:
              # - user-userId
              # - user-email
              # - group-groupId
              # - group-email
              # - domain-domain
              # - project-team-projectId
              # - allUsers
              # - allAuthenticatedUsers Examples:
              # - The user liz@example.com would be user-liz@example.com.
              # - The group example@googlegroups.com would be group-example@googlegroups.com.
              # - To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com.
          "etag": "A String", # HTTP 1.1 Entity tag for the access-control entry.
          "role": "A String", # The access permission for the entity.
          "id": "A String", # The ID of the access-control entry.
          "entityId": "A String", # The ID for the entity, if any.
          "projectTeam": { # The project team associated with the entity, if any.
            "projectNumber": "A String", # The project number.
            "team": "A String", # The team.
          },
          "email": "A String", # The email address associated with the entity, if any.
          "selfLink": "A String", # The link to this access-control entry.
        }

`insert(bucket, body, userProject=None, provisionalUserProject=None)`

    Creates a new ACL entry on the specified bucket.

    Args:
      bucket: string, Name of a bucket. (required)
      body: object, The request body. (required)
        The object takes the form of:

    { # An access-control entry.
        "domain": "A String", # The domain associated with the entity, if any.
        "bucket": "A String", # The name of the bucket.
        "kind": "storage#bucketAccessControl", # The kind of item this is. For bucket access control entries, this is always storage#bucketAccessControl.
        "entity": "A String", # The entity holding the permission, in one of the following forms:
            # - user-userId
            # - user-email
            # - group-groupId
            # - group-email
            # - domain-domain
            # - project-team-projectId
            # - allUsers
            # - allAuthenticatedUsers Examples:
            # - The user liz@example.com would be user-liz@example.com.
            # - The group example@googlegroups.com would be group-example@googlegroups.com.
            # - To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com.
        "etag": "A String", # HTTP 1.1 Entity tag for the access-control entry.
        "role": "A String", # The access permission for the entity.
        "id": "A String", # The ID of the access-control entry.
        "entityId": "A String", # The ID for the entity, if any.
        "projectTeam": { # The project team associated with the entity, if any.
          "projectNumber": "A String", # The project number.
          "team": "A String", # The team.
        },
        "email": "A String", # The email address associated with the entity, if any.
        "selfLink": "A String", # The link to this access-control entry.
      }

      userProject: string, The project to be billed for this request. Required for Requester Pays buckets.
      provisionalUserProject: string, The project to be billed for this request if the target bucket is requester-pays bucket.

    Returns:
      An object of the form:

        { # An access-control entry.
          "domain": "A String", # The domain associated with the entity, if any.
          "bucket": "A String", # The name of the bucket.
          "kind": "storage#bucketAccessControl", # The kind of item this is. For bucket access control entries, this is always storage#bucketAccessControl.
          "entity": "A String", # The entity holding the permission, in one of the following forms:
              # - user-userId
              # - user-email
              # - group-groupId
              # - group-email
              # - domain-domain
              # - project-team-projectId
              # - allUsers
              # - allAuthenticatedUsers Examples:
              # - The user liz@example.com would be user-liz@example.com.
              # - The group example@googlegroups.com would be group-example@googlegroups.com.
              # - To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com.
          "etag": "A String", # HTTP 1.1 Entity tag for the access-control entry.
          "role": "A String", # The access permission for the entity.
          "id": "A String", # The ID of the access-control entry.
          "entityId": "A String", # The ID for the entity, if any.
          "projectTeam": { # The project team associated with the entity, if any.
            "projectNumber": "A String", # The project number.
            "team": "A String", # The team.
          },
          "email": "A String", # The email address associated with the entity, if any.
          "selfLink": "A String", # The link to this access-control entry.
        }

`list(bucket, userProject=None, provisionalUserProject=None)`

    Retrieves ACL entries on the specified bucket.

    Args:
      bucket: string, Name of a bucket. (required)
      userProject: string, The project to be billed for this request. Required for Requester Pays buckets.
      provisionalUserProject: string, The project to be billed for this request if the target bucket is requester-pays bucket.

    Returns:
      An object of the form:

        { # An access-control list.
        "items": [ # The list of items.
          { # An access-control entry.
              "domain": "A String", # The domain associated with the entity, if any.
              "bucket": "A String", # The name of the bucket.
              "kind": "storage#bucketAccessControl", # The kind of item this is. For bucket access control entries, this is always storage#bucketAccessControl.
              "entity": "A String", # The entity holding the permission, in one of the following forms:
                  # - user-userId
                  # - user-email
                  # - group-groupId
                  # - group-email
                  # - domain-domain
                  # - project-team-projectId
                  # - allUsers
                  # - allAuthenticatedUsers Examples:
                  # - The user liz@example.com would be user-liz@example.com.
                  # - The group example@googlegroups.com would be group-example@googlegroups.com.
                  # - To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com.
              "etag": "A String", # HTTP 1.1 Entity tag for the access-control entry.
              "role": "A String", # The access permission for the entity.
              "id": "A String", # The ID of the access-control entry.
              "entityId": "A String", # The ID for the entity, if any.
              "projectTeam": { # The project team associated with the entity, if any.
                "projectNumber": "A String", # The project number.
                "team": "A String", # The team.
              },
              "email": "A String", # The email address associated with the entity, if any.
              "selfLink": "A String", # The link to this access-control entry.
            },
        ],
        "kind": "storage#bucketAccessControls", # The kind of item this is. For lists of bucket access control entries, this is always storage#bucketAccessControls.
      }

`patch(bucket, entity, body, userProject=None, provisionalUserProject=None)`

    Patches an ACL entry on the specified bucket.

    Args:
      bucket: string, Name of a bucket. (required)
      entity: string, The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group-emailAddress, allUsers, or allAuthenticatedUsers. (required)
      body: object, The request body. (required)
        The object takes the form of:

    { # An access-control entry.
        "domain": "A String", # The domain associated with the entity, if any.
        "bucket": "A String", # The name of the bucket.
        "kind": "storage#bucketAccessControl", # The kind of item this is. For bucket access control entries, this is always storage#bucketAccessControl.
        "entity": "A String", # The entity holding the permission, in one of the following forms:
            # - user-userId
            # - user-email
            # - group-groupId
            # - group-email
            # - domain-domain
            # - project-team-projectId
            # - allUsers
            # - allAuthenticatedUsers Examples:
            # - The user liz@example.com would be user-liz@example.com.
            # - The group example@googlegroups.com would be group-example@googlegroups.com.
            # - To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com.
        "etag": "A String", # HTTP 1.1 Entity tag for the access-control entry.
        "role": "A String", # The access permission for the entity.
        "id": "A String", # The ID of the access-control entry.
        "entityId": "A String", # The ID for the entity, if any.
        "projectTeam": { # The project team associated with the entity, if any.
          "projectNumber": "A String", # The project number.
          "team": "A String", # The team.
        },
        "email": "A String", # The email address associated with the entity, if any.
        "selfLink": "A String", # The link to this access-control entry.
      }

      userProject: string, The project to be billed for this request. Required for Requester Pays buckets.
      provisionalUserProject: string, The project to be billed for this request if the target bucket is requester-pays bucket.

    Returns:
      An object of the form:

        { # An access-control entry.
          "domain": "A String", # The domain associated with the entity, if any.
          "bucket": "A String", # The name of the bucket.
          "kind": "storage#bucketAccessControl", # The kind of item this is. For bucket access control entries, this is always storage#bucketAccessControl.
          "entity": "A String", # The entity holding the permission, in one of the following forms:
              # - user-userId
              # - user-email
              # - group-groupId
              # - group-email
              # - domain-domain
              # - project-team-projectId
              # - allUsers
              # - allAuthenticatedUsers Examples:
              # - The user liz@example.com would be user-liz@example.com.
              # - The group example@googlegroups.com would be group-example@googlegroups.com.
              # - To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com.
          "etag": "A String", # HTTP 1.1 Entity tag for the access-control entry.
          "role": "A String", # The access permission for the entity.
          "id": "A String", # The ID of the access-control entry.
          "entityId": "A String", # The ID for the entity, if any.
          "projectTeam": { # The project team associated with the entity, if any.
            "projectNumber": "A String", # The project number.
            "team": "A String", # The team.
          },
          "email": "A String", # The email address associated with the entity, if any.
          "selfLink": "A String", # The link to this access-control entry.
        }

`update(bucket, entity, body, userProject=None, provisionalUserProject=None)`

    Updates an ACL entry on the specified bucket.

    Args:
      bucket: string, Name of a bucket. (required)
      entity: string, The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group-emailAddress, allUsers, or allAuthenticatedUsers. (required)
      body: object, The request body. (required)
        The object takes the form of:

    { # An access-control entry.
        "domain": "A String", # The domain associated with the entity, if any.
        "bucket": "A String", # The name of the bucket.
        "kind": "storage#bucketAccessControl", # The kind of item this is. For bucket access control entries, this is always storage#bucketAccessControl.
        "entity": "A String", # The entity holding the permission, in one of the following forms:
            # - user-userId
            # - user-email
            # - group-groupId
            # - group-email
            # - domain-domain
            # - project-team-projectId
            # - allUsers
            # - allAuthenticatedUsers Examples:
            # - The user liz@example.com would be user-liz@example.com.
            # - The group example@googlegroups.com would be group-example@googlegroups.com.
            # - To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com.
        "etag": "A String", # HTTP 1.1 Entity tag for the access-control entry.
        "role": "A String", # The access permission for the entity.
        "id": "A String", # The ID of the access-control entry.
        "entityId": "A String", # The ID for the entity, if any.
        "projectTeam": { # The project team associated with the entity, if any.
          "projectNumber": "A String", # The project number.
          "team": "A String", # The team.
        },
        "email": "A String", # The email address associated with the entity, if any.
        "selfLink": "A String", # The link to this access-control entry.
      }

      userProject: string, The project to be billed for this request. Required for Requester Pays buckets.
      provisionalUserProject: string, The project to be billed for this request if the target bucket is requester-pays bucket.

    Returns:
      An object of the form:

        { # An access-control entry.
          "domain": "A String", # The domain associated with the entity, if any.
          "bucket": "A String", # The name of the bucket.
          "kind": "storage#bucketAccessControl", # The kind of item this is. For bucket access control entries, this is always storage#bucketAccessControl.
          "entity": "A String", # The entity holding the permission, in one of the following forms:
              # - user-userId
              # - user-email
              # - group-groupId
              # - group-email
              # - domain-domain
              # - project-team-projectId
              # - allUsers
              # - allAuthenticatedUsers Examples:
              # - The user liz@example.com would be user-liz@example.com.
              # - The group example@googlegroups.com would be group-example@googlegroups.com.
              # - To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com.
          "etag": "A String", # HTTP 1.1 Entity tag for the access-control entry.
          "role": "A String", # The access permission for the entity.
          "id": "A String", # The ID of the access-control entry.
          "entityId": "A String", # The ID for the entity, if any.
          "projectTeam": { # The project team associated with the entity, if any.
            "projectNumber": "A String", # The project number.
            "team": "A String", # The team.
          },
          "email": "A String", # The email address associated with the entity, if any.
          "selfLink": "A String", # The link to this access-control entry.
        }