# Cloud Storage API . buckets

## Instance Methods

Deletes an empty bucket.

Returns metadata for the specified bucket.

Creates a new bucket.

Retrieves a list of buckets for a given project.

Retrieves the next page of results.

Updates a bucket. This method supports patch semantics.

Updates a bucket.

### Method Details

`delete(bucket)`

    Deletes an empty bucket.

    Args:
      bucket: string, Name of a bucket. (required)

`get(bucket, projection=None)`

    Returns metadata for the specified bucket.

    Args:
      bucket: string, Name of a bucket. (required)
      projection: string, Set of properties to return. Defaults to no_acl.
        Allowed values
          full - Include all properties.
          no_acl - Omit acl and defaultObjectAcl properties.

    Returns:
      An object of the form:

        { # A bucket.
          "website": { # The bucket's website configuration.
            "notFoundPage": "A String", # The custom object to return when a requested resource is not found.
            "mainPageSuffix": "A String", # Behaves as the bucket's directory index where missing objects are treated as potential directories.
          },
          "kind": "storage#bucket", # The kind of item this is. For buckets, this is always storage#bucket.
          "timeCreated": "A String", # Creation time of the bucket in RFC 3339 format.
          "projectId": "A String", # The project the bucket belongs to.
          "acl": [ # Access controls on the bucket.
            { # 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.
                "id": "A String", # The ID of the access-control entry.
                "role": "A String", # The access permission for the entity. Can be READER, WRITER, or OWNER.
                "entityId": "A String", # The ID for the entity, if any.
                "entity": "A String", # The entity holding the permission, in one of the following forms:
                    # - user-userId
                    # - user-email
                    # - group-groupId
                    # - group-email
                    # - allUsers
                    # - allAuthenticatedUsers
                "email": "A String", # The email address associated with the entity, if any.
                "selfLink": "A String", # The link to this access-control entry.
              },
          ],
          "defaultObjectAcl": [ # Default access controls to apply to new objects when no ACL is provided.
            { # An access-control entry.
              "domain": "A String", # The domain associated with the entity, if any.
              "object": "A String", # The name of the object.
              "bucket": "A String", # The name of the bucket.
              "kind": "storage#objectAccessControl", # The kind of item this is. For object access control entries, this is always storage#objectAccessControl.
              "id": "A String", # The ID of the access-control entry.
              "role": "A String", # The access permission for the entity. Can be READER or OWNER.
              "entityId": "A String", # The ID for the entity, if any.
              "entity": "A String", # The entity holding the permission, in one of the following forms:
                  # - user-userId
                  # - user-email
                  # - group-groupId
                  # - group-email
                  # - allUsers
                  # - allAuthenticatedUsers
              "email": "A String", # The email address associated with the entity, if any.
              "selfLink": "A String", # The link to this access-control entry.
            },
          ],
          "location": "A String", # The location of the bucket. Object data for objects in the bucket resides in physical storage in this location. Can be US or EU. Defaults to US.
          "owner": { # The owner of the bucket. This will always be the project team's owner group.
            "entityId": "A String", # The ID for the entity.
            "entity": "A String", # The entity, in the form group-groupId.
          },
          "id": "A String", # The name of the bucket.
          "selfLink": "A String", # The URI of this bucket.
        }

`insert(body, projection=None)`

    Creates a new bucket.

    Args:
      body: object, The request body. (required)
        The object takes the form of:

    { # A bucket.
        "website": { # The bucket's website configuration.
          "notFoundPage": "A String", # The custom object to return when a requested resource is not found.
          "mainPageSuffix": "A String", # Behaves as the bucket's directory index where missing objects are treated as potential directories.
        },
        "kind": "storage#bucket", # The kind of item this is. For buckets, this is always storage#bucket.
        "timeCreated": "A String", # Creation time of the bucket in RFC 3339 format.
        "projectId": "A String", # The project the bucket belongs to.
        "acl": [ # Access controls on the bucket.
          { # 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.
              "id": "A String", # The ID of the access-control entry.
              "role": "A String", # The access permission for the entity. Can be READER, WRITER, or OWNER.
              "entityId": "A String", # The ID for the entity, if any.
              "entity": "A String", # The entity holding the permission, in one of the following forms:
                  # - user-userId
                  # - user-email
                  # - group-groupId
                  # - group-email
                  # - allUsers
                  # - allAuthenticatedUsers
              "email": "A String", # The email address associated with the entity, if any.
              "selfLink": "A String", # The link to this access-control entry.
            },
        ],
        "defaultObjectAcl": [ # Default access controls to apply to new objects when no ACL is provided.
          { # An access-control entry.
            "domain": "A String", # The domain associated with the entity, if any.
            "object": "A String", # The name of the object.
            "bucket": "A String", # The name of the bucket.
            "kind": "storage#objectAccessControl", # The kind of item this is. For object access control entries, this is always storage#objectAccessControl.
            "id": "A String", # The ID of the access-control entry.
            "role": "A String", # The access permission for the entity. Can be READER or OWNER.
            "entityId": "A String", # The ID for the entity, if any.
            "entity": "A String", # The entity holding the permission, in one of the following forms:
                # - user-userId
                # - user-email
                # - group-groupId
                # - group-email
                # - allUsers
                # - allAuthenticatedUsers
            "email": "A String", # The email address associated with the entity, if any.
            "selfLink": "A String", # The link to this access-control entry.
          },
        ],
        "location": "A String", # The location of the bucket. Object data for objects in the bucket resides in physical storage in this location. Can be US or EU. Defaults to US.
        "owner": { # The owner of the bucket. This will always be the project team's owner group.
          "entityId": "A String", # The ID for the entity.
          "entity": "A String", # The entity, in the form group-groupId.
        },
        "id": "A String", # The name of the bucket.
        "selfLink": "A String", # The URI of this bucket.
      }

      projection: string, Set of properties to return. Defaults to no_acl, unless the bucket resource specifies acl or defaultObjectAcl properties, when it defaults to full.
        Allowed values
          full - Include all properties.
          no_acl - Omit acl and defaultObjectAcl properties.

    Returns:
      An object of the form:

        { # A bucket.
          "website": { # The bucket's website configuration.
            "notFoundPage": "A String", # The custom object to return when a requested resource is not found.
            "mainPageSuffix": "A String", # Behaves as the bucket's directory index where missing objects are treated as potential directories.
          },
          "kind": "storage#bucket", # The kind of item this is. For buckets, this is always storage#bucket.
          "timeCreated": "A String", # Creation time of the bucket in RFC 3339 format.
          "projectId": "A String", # The project the bucket belongs to.
          "acl": [ # Access controls on the bucket.
            { # 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.
                "id": "A String", # The ID of the access-control entry.
                "role": "A String", # The access permission for the entity. Can be READER, WRITER, or OWNER.
                "entityId": "A String", # The ID for the entity, if any.
                "entity": "A String", # The entity holding the permission, in one of the following forms:
                    # - user-userId
                    # - user-email
                    # - group-groupId
                    # - group-email
                    # - allUsers
                    # - allAuthenticatedUsers
                "email": "A String", # The email address associated with the entity, if any.
                "selfLink": "A String", # The link to this access-control entry.
              },
          ],
          "defaultObjectAcl": [ # Default access controls to apply to new objects when no ACL is provided.
            { # An access-control entry.
              "domain": "A String", # The domain associated with the entity, if any.
              "object": "A String", # The name of the object.
              "bucket": "A String", # The name of the bucket.
              "kind": "storage#objectAccessControl", # The kind of item this is. For object access control entries, this is always storage#objectAccessControl.
              "id": "A String", # The ID of the access-control entry.
              "role": "A String", # The access permission for the entity. Can be READER or OWNER.
              "entityId": "A String", # The ID for the entity, if any.
              "entity": "A String", # The entity holding the permission, in one of the following forms:
                  # - user-userId
                  # - user-email
                  # - group-groupId
                  # - group-email
                  # - allUsers
                  # - allAuthenticatedUsers
              "email": "A String", # The email address associated with the entity, if any.
              "selfLink": "A String", # The link to this access-control entry.
            },
          ],
          "location": "A String", # The location of the bucket. Object data for objects in the bucket resides in physical storage in this location. Can be US or EU. Defaults to US.
          "owner": { # The owner of the bucket. This will always be the project team's owner group.
            "entityId": "A String", # The ID for the entity.
            "entity": "A String", # The entity, in the form group-groupId.
          },
          "id": "A String", # The name of the bucket.
          "selfLink": "A String", # The URI of this bucket.
        }

`list(projectId, projection=None, pageToken=None, max_results=None)`

    Retrieves a list of buckets for a given project.

    Args:
      projectId: string, A valid API project identifier. (required)
      projection: string, Set of properties to return. Defaults to no_acl.
        Allowed values
          full - Include all properties.
          no_acl - Omit acl and defaultObjectAcl properties.
      pageToken: string, A previously-returned page token representing part of the larger set of results to view.
      max_results: integer, Maximum number of buckets to return.

    Returns:
      An object of the form:

        { # A list of buckets.
        "nextPageToken": "A String", # The continuation token, used to page through large result sets. Provide this value in a subsequent request to return the next page of results.
        "items": [ # The list of items.
          { # A bucket.
              "website": { # The bucket's website configuration.
                "notFoundPage": "A String", # The custom object to return when a requested resource is not found.
                "mainPageSuffix": "A String", # Behaves as the bucket's directory index where missing objects are treated as potential directories.
              },
              "kind": "storage#bucket", # The kind of item this is. For buckets, this is always storage#bucket.
              "timeCreated": "A String", # Creation time of the bucket in RFC 3339 format.
              "projectId": "A String", # The project the bucket belongs to.
              "acl": [ # Access controls on the bucket.
                { # 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.
                    "id": "A String", # The ID of the access-control entry.
                    "role": "A String", # The access permission for the entity. Can be READER, WRITER, or OWNER.
                    "entityId": "A String", # The ID for the entity, if any.
                    "entity": "A String", # The entity holding the permission, in one of the following forms:
                        # - user-userId
                        # - user-email
                        # - group-groupId
                        # - group-email
                        # - allUsers
                        # - allAuthenticatedUsers
                    "email": "A String", # The email address associated with the entity, if any.
                    "selfLink": "A String", # The link to this access-control entry.
                  },
              ],
              "defaultObjectAcl": [ # Default access controls to apply to new objects when no ACL is provided.
                { # An access-control entry.
                  "domain": "A String", # The domain associated with the entity, if any.
                  "object": "A String", # The name of the object.
                  "bucket": "A String", # The name of the bucket.
                  "kind": "storage#objectAccessControl", # The kind of item this is. For object access control entries, this is always storage#objectAccessControl.
                  "id": "A String", # The ID of the access-control entry.
                  "role": "A String", # The access permission for the entity. Can be READER or OWNER.
                  "entityId": "A String", # The ID for the entity, if any.
                  "entity": "A String", # The entity holding the permission, in one of the following forms:
                      # - user-userId
                      # - user-email
                      # - group-groupId
                      # - group-email
                      # - allUsers
                      # - allAuthenticatedUsers
                  "email": "A String", # The email address associated with the entity, if any.
                  "selfLink": "A String", # The link to this access-control entry.
                },
              ],
              "location": "A String", # The location of the bucket. Object data for objects in the bucket resides in physical storage in this location. Can be US or EU. Defaults to US.
              "owner": { # The owner of the bucket. This will always be the project team's owner group.
                "entityId": "A String", # The ID for the entity.
                "entity": "A String", # The entity, in the form group-groupId.
              },
              "id": "A String", # The name of the bucket.
              "selfLink": "A String", # The URI of this bucket.
            },
        ],
        "kind": "storage#buckets", # The kind of item this is. For lists of buckets, this is always storage#buckets.
      }

`list_next(previous_request, previous_response)`

    Retrieves the next page of results.

    Args:
      previous_request: The request for the previous page. (required)
      previous_response: The response from the request for the previous page. (required)

    Returns:
      A request object that you can call 'execute()' on to request the next
      page. Returns None if there are no more items in the collection.

`patch(bucket, body, projection=None)`

    Updates a bucket. This method supports patch semantics.

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

    { # A bucket.
        "website": { # The bucket's website configuration.
          "notFoundPage": "A String", # The custom object to return when a requested resource is not found.
          "mainPageSuffix": "A String", # Behaves as the bucket's directory index where missing objects are treated as potential directories.
        },
        "kind": "storage#bucket", # The kind of item this is. For buckets, this is always storage#bucket.
        "timeCreated": "A String", # Creation time of the bucket in RFC 3339 format.
        "projectId": "A String", # The project the bucket belongs to.
        "acl": [ # Access controls on the bucket.
          { # 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.
              "id": "A String", # The ID of the access-control entry.
              "role": "A String", # The access permission for the entity. Can be READER, WRITER, or OWNER.
              "entityId": "A String", # The ID for the entity, if any.
              "entity": "A String", # The entity holding the permission, in one of the following forms:
                  # - user-userId
                  # - user-email
                  # - group-groupId
                  # - group-email
                  # - allUsers
                  # - allAuthenticatedUsers
              "email": "A String", # The email address associated with the entity, if any.
              "selfLink": "A String", # The link to this access-control entry.
            },
        ],
        "defaultObjectAcl": [ # Default access controls to apply to new objects when no ACL is provided.
          { # An access-control entry.
            "domain": "A String", # The domain associated with the entity, if any.
            "object": "A String", # The name of the object.
            "bucket": "A String", # The name of the bucket.
            "kind": "storage#objectAccessControl", # The kind of item this is. For object access control entries, this is always storage#objectAccessControl.
            "id": "A String", # The ID of the access-control entry.
            "role": "A String", # The access permission for the entity. Can be READER or OWNER.
            "entityId": "A String", # The ID for the entity, if any.
            "entity": "A String", # The entity holding the permission, in one of the following forms:
                # - user-userId
                # - user-email
                # - group-groupId
                # - group-email
                # - allUsers
                # - allAuthenticatedUsers
            "email": "A String", # The email address associated with the entity, if any.
            "selfLink": "A String", # The link to this access-control entry.
          },
        ],
        "location": "A String", # The location of the bucket. Object data for objects in the bucket resides in physical storage in this location. Can be US or EU. Defaults to US.
        "owner": { # The owner of the bucket. This will always be the project team's owner group.
          "entityId": "A String", # The ID for the entity.
          "entity": "A String", # The entity, in the form group-groupId.
        },
        "id": "A String", # The name of the bucket.
        "selfLink": "A String", # The URI of this bucket.
      }

      projection: string, Set of properties to return. Defaults to full.
        Allowed values
          full - Include all properties.
          no_acl - Omit acl and defaultObjectAcl properties.

    Returns:
      An object of the form:

        { # A bucket.
          "website": { # The bucket's website configuration.
            "notFoundPage": "A String", # The custom object to return when a requested resource is not found.
            "mainPageSuffix": "A String", # Behaves as the bucket's directory index where missing objects are treated as potential directories.
          },
          "kind": "storage#bucket", # The kind of item this is. For buckets, this is always storage#bucket.
          "timeCreated": "A String", # Creation time of the bucket in RFC 3339 format.
          "projectId": "A String", # The project the bucket belongs to.
          "acl": [ # Access controls on the bucket.
            { # 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.
                "id": "A String", # The ID of the access-control entry.
                "role": "A String", # The access permission for the entity. Can be READER, WRITER, or OWNER.
                "entityId": "A String", # The ID for the entity, if any.
                "entity": "A String", # The entity holding the permission, in one of the following forms:
                    # - user-userId
                    # - user-email
                    # - group-groupId
                    # - group-email
                    # - allUsers
                    # - allAuthenticatedUsers
                "email": "A String", # The email address associated with the entity, if any.
                "selfLink": "A String", # The link to this access-control entry.
              },
          ],
          "defaultObjectAcl": [ # Default access controls to apply to new objects when no ACL is provided.
            { # An access-control entry.
              "domain": "A String", # The domain associated with the entity, if any.
              "object": "A String", # The name of the object.
              "bucket": "A String", # The name of the bucket.
              "kind": "storage#objectAccessControl", # The kind of item this is. For object access control entries, this is always storage#objectAccessControl.
              "id": "A String", # The ID of the access-control entry.
              "role": "A String", # The access permission for the entity. Can be READER or OWNER.
              "entityId": "A String", # The ID for the entity, if any.
              "entity": "A String", # The entity holding the permission, in one of the following forms:
                  # - user-userId
                  # - user-email
                  # - group-groupId
                  # - group-email
                  # - allUsers
                  # - allAuthenticatedUsers
              "email": "A String", # The email address associated with the entity, if any.
              "selfLink": "A String", # The link to this access-control entry.
            },
          ],
          "location": "A String", # The location of the bucket. Object data for objects in the bucket resides in physical storage in this location. Can be US or EU. Defaults to US.
          "owner": { # The owner of the bucket. This will always be the project team's owner group.
            "entityId": "A String", # The ID for the entity.
            "entity": "A String", # The entity, in the form group-groupId.
          },
          "id": "A String", # The name of the bucket.
          "selfLink": "A String", # The URI of this bucket.
        }

`update(bucket, body, projection=None)`

    Updates a bucket.

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

    { # A bucket.
        "website": { # The bucket's website configuration.
          "notFoundPage": "A String", # The custom object to return when a requested resource is not found.
          "mainPageSuffix": "A String", # Behaves as the bucket's directory index where missing objects are treated as potential directories.
        },
        "kind": "storage#bucket", # The kind of item this is. For buckets, this is always storage#bucket.
        "timeCreated": "A String", # Creation time of the bucket in RFC 3339 format.
        "projectId": "A String", # The project the bucket belongs to.
        "acl": [ # Access controls on the bucket.
          { # 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.
              "id": "A String", # The ID of the access-control entry.
              "role": "A String", # The access permission for the entity. Can be READER, WRITER, or OWNER.
              "entityId": "A String", # The ID for the entity, if any.
              "entity": "A String", # The entity holding the permission, in one of the following forms:
                  # - user-userId
                  # - user-email
                  # - group-groupId
                  # - group-email
                  # - allUsers
                  # - allAuthenticatedUsers
              "email": "A String", # The email address associated with the entity, if any.
              "selfLink": "A String", # The link to this access-control entry.
            },
        ],
        "defaultObjectAcl": [ # Default access controls to apply to new objects when no ACL is provided.
          { # An access-control entry.
            "domain": "A String", # The domain associated with the entity, if any.
            "object": "A String", # The name of the object.
            "bucket": "A String", # The name of the bucket.
            "kind": "storage#objectAccessControl", # The kind of item this is. For object access control entries, this is always storage#objectAccessControl.
            "id": "A String", # The ID of the access-control entry.
            "role": "A String", # The access permission for the entity. Can be READER or OWNER.
            "entityId": "A String", # The ID for the entity, if any.
            "entity": "A String", # The entity holding the permission, in one of the following forms:
                # - user-userId
                # - user-email
                # - group-groupId
                # - group-email
                # - allUsers
                # - allAuthenticatedUsers
            "email": "A String", # The email address associated with the entity, if any.
            "selfLink": "A String", # The link to this access-control entry.
          },
        ],
        "location": "A String", # The location of the bucket. Object data for objects in the bucket resides in physical storage in this location. Can be US or EU. Defaults to US.
        "owner": { # The owner of the bucket. This will always be the project team's owner group.
          "entityId": "A String", # The ID for the entity.
          "entity": "A String", # The entity, in the form group-groupId.
        },
        "id": "A String", # The name of the bucket.
        "selfLink": "A String", # The URI of this bucket.
      }

      projection: string, Set of properties to return. Defaults to full.
        Allowed values
          full - Include all properties.
          no_acl - Omit acl and defaultObjectAcl properties.

    Returns:
      An object of the form:

        { # A bucket.
          "website": { # The bucket's website configuration.
            "notFoundPage": "A String", # The custom object to return when a requested resource is not found.
            "mainPageSuffix": "A String", # Behaves as the bucket's directory index where missing objects are treated as potential directories.
          },
          "kind": "storage#bucket", # The kind of item this is. For buckets, this is always storage#bucket.
          "timeCreated": "A String", # Creation time of the bucket in RFC 3339 format.
          "projectId": "A String", # The project the bucket belongs to.
          "acl": [ # Access controls on the bucket.
            { # 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.
                "id": "A String", # The ID of the access-control entry.
                "role": "A String", # The access permission for the entity. Can be READER, WRITER, or OWNER.
                "entityId": "A String", # The ID for the entity, if any.
                "entity": "A String", # The entity holding the permission, in one of the following forms:
                    # - user-userId
                    # - user-email
                    # - group-groupId
                    # - group-email
                    # - allUsers
                    # - allAuthenticatedUsers
                "email": "A String", # The email address associated with the entity, if any.
                "selfLink": "A String", # The link to this access-control entry.
              },
          ],
          "defaultObjectAcl": [ # Default access controls to apply to new objects when no ACL is provided.
            { # An access-control entry.
              "domain": "A String", # The domain associated with the entity, if any.
              "object": "A String", # The name of the object.
              "bucket": "A String", # The name of the bucket.
              "kind": "storage#objectAccessControl", # The kind of item this is. For object access control entries, this is always storage#objectAccessControl.
              "id": "A String", # The ID of the access-control entry.
              "role": "A String", # The access permission for the entity. Can be READER or OWNER.
              "entityId": "A String", # The ID for the entity, if any.
              "entity": "A String", # The entity holding the permission, in one of the following forms:
                  # - user-userId
                  # - user-email
                  # - group-groupId
                  # - group-email
                  # - allUsers
                  # - allAuthenticatedUsers
              "email": "A String", # The email address associated with the entity, if any.
              "selfLink": "A String", # The link to this access-control entry.
            },
          ],
          "location": "A String", # The location of the bucket. Object data for objects in the bucket resides in physical storage in this location. Can be US or EU. Defaults to US.
          "owner": { # The owner of the bucket. This will always be the project team's owner group.
            "entityId": "A String", # The ID for the entity.
            "entity": "A String", # The entity, in the form group-groupId.
          },
          "id": "A String", # The name of the bucket.
          "selfLink": "A String", # The URI of this bucket.
        }