pub struct Bucket {
Show 26 fields pub kind: String, pub id: String, pub self_link: String, pub project_number: u64, pub name: String, pub time_created: DateTime<Utc>, pub updated: DateTime<Utc>, pub default_event_based_hold: Option<bool>, pub retention_policy: Option<RetentionPolicy>, pub metageneration: i64, pub acl: Option<Vec<BucketAccessControl>>, pub default_object_acl: Option<Vec<DefaultObjectAccessControl>>, pub iam_configuration: Option<IamConfiguration>, pub encryption: Option<Encryption>, pub owner: Option<Owner>, pub location: Location, pub location_type: String, pub website: Option<Website>, pub logging: Option<Logging>, pub versioning: Option<Versioning>, pub cors: Option<Vec<Cors>>, pub lifecycle: Option<Lifecycle>, pub labels: Option<HashMap<String, String>>, pub storage_class: StorageClass, pub billing: Option<Billing>, pub etag: String,
}
Expand description

The Buckets resource represents a bucket in Google Cloud Storage. There is a single global namespace shared by all buckets. For more information, see Bucket Name Requirements.

Buckets contain objects which can be accessed by their own methods. In addition to the ACL property, buckets contain BucketAccessControls, for use in fine-grained manipulation of an existing bucket’s access controls.

A bucket is always owned by the project team owners group.

Fields

kind: String

The kind of item this is. For buckets, this is always storage#bucket.

id: String

The ID of the bucket. For buckets, the id and name properties are the same.

self_link: String

The URI of this bucket.

project_number: u64

The project number of the project the bucket belongs to.

name: String

The name of the bucket.

time_created: DateTime<Utc>

The creation time of the bucket in RFC 3339 format.

updated: DateTime<Utc>

The modification time of the bucket in RFC 3339 format.

default_event_based_hold: Option<bool>

Whether or not to automatically apply an eventBasedHold to new objects added to the bucket.

retention_policy: Option<RetentionPolicy>

The bucket’s retention policy, which defines the minimum age an object in the bucket must reach before it can be deleted or overwritten.

metageneration: i64

The metadata generation of this bucket.

acl: Option<Vec<BucketAccessControl>>

Access controls on the bucket, containing one or more bucketAccessControls Resources. If iamConfiguration.uniformBucketLevelAccess.enabled is set to true, this field is omitted in responses, and requests that specify this field fail with a 400 Bad Request response.

default_object_acl: Option<Vec<DefaultObjectAccessControl>>

Default access controls to apply to new objects when no ACL is provided. This list contains one or more defaultObjectAccessControls Resources. If iamConfiguration.uniformBucketLevelAccess.enabled is set to true, this field is omitted in responses, and requests that specify this field fail.

iam_configuration: Option<IamConfiguration>

The bucket’s IAM configuration.

encryption: Option<Encryption>

Encryption configuration for a bucket.

owner: Option<Owner>

The owner of the bucket. This is always the project team’s owner group.

location: Location

The location of the bucket. Object data for objects in the bucket resides in physical storage within this region. Defaults to US. See Cloud Storage bucket locations for the authoritative list.

location_type: String

The type of location that the bucket resides in, as determined by the location property.

website: Option<Website>

The bucket’s website configuration, controlling how the service behaves when accessing bucket contents as a web site. See the Static Website Examples for more information.

logging: Option<Logging>

The bucket’s logging configuration, which defines the destination bucket and optional name prefix for the current bucket’s logs.

versioning: Option<Versioning>

The bucket’s versioning configuration.

cors: Option<Vec<Cors>>

The bucket’s Cross-Origin Resource Sharing (CORS) configuration.

lifecycle: Option<Lifecycle>

The bucket’s lifecycle configuration. See lifecycle management for more information.

labels: Option<HashMap<String, String>>

User-provided bucket labels, in key/value pairs.

storage_class: StorageClass

The bucket’s default storage class, used whenever no storageClass is specified for a newly-created object. If storageClass is not specified when the bucket is created, it defaults to STANDARD. For more information, see storage classes.

billing: Option<Billing>

The bucket’s billing configuration.

etag: String

HTTP 1.1 Entity tag for the bucket.

Implementations

Creates a new Bucket. There are many options that you can provide for creating a new bucket, so the NewBucket resource contains all of them. Note that NewBucket implements Default, so you don’t have to specify the fields you’re not using. And error is returned if that bucket name is already taken.

Example
use cloud_storage::bucket::{Bucket, NewBucket};
use cloud_storage::bucket::{Location, MultiRegion};

let new_bucket = NewBucket {
   name: "cloud-storage-rs-doc-1".to_string(), // this is the only mandatory field
   location: Location::Multi(MultiRegion::Eu),
   ..Default::default()
};
let bucket = Bucket::create(&new_bucket).await?;

The synchronous equivalent of Bucket::create.

Features

This function requires that the feature flag sync is enabled in Cargo.toml.

Returns all Buckets within this project.

Note

When using incorrect permissions, this function fails silently and returns an empty list.

Example
use cloud_storage::Bucket;

let buckets = Bucket::list().await?;

The synchronous equivalent of Bucket::list.

Features

This function requires that the feature flag sync is enabled in Cargo.toml.

Returns a single Bucket by its name. If the Bucket does not exist, an error is returned.

Example
use cloud_storage::Bucket;

let bucket = Bucket::read("cloud-storage-rs-doc-2").await?;

The synchronous equivalent of Bucket::read.

Features

This function requires that the feature flag sync is enabled in Cargo.toml.

Update an existing Bucket. If you declare you bucket as mutable, you can edit its fields. You can then flush your changes to Google Cloud Storage using this method.

Example
use cloud_storage::bucket::{Bucket, RetentionPolicy};

let mut bucket = Bucket::read("cloud-storage-rs-doc-3").await?;
bucket.retention_policy = Some(RetentionPolicy {
    retention_period: 50,
    effective_time: chrono::Utc::now() + chrono::Duration::seconds(50),
    is_locked: Some(false),
});
bucket.update().await?;

The synchronous equivalent of Bucket::update.

Features

This function requires that the feature flag sync is enabled in Cargo.toml.

Delete an existing Bucket. This permanently removes a bucket from Google Cloud Storage. An error is returned when you don’t have sufficient permissions, or when the retention_policy prevents you from deleting your Bucket.

Example
use cloud_storage::Bucket;

let bucket = Bucket::read("unnecessary-bucket").await?;
bucket.delete().await?;

The synchronous equivalent of Bucket::delete.

Features

This function requires that the feature flag sync is enabled in Cargo.toml.

Returns the IAM Policy for this bucket.

Example
use cloud_storage::Bucket;

let bucket = Bucket::read("cloud-storage-rs-doc-4").await?;
let policy = bucket.get_iam_policy().await?;

The synchronous equivalent of Bucket::get_iam_policy.

Features

This function requires that the feature flag sync is enabled in Cargo.toml.

Updates the IAM Policy for this bucket.

Example
use cloud_storage::Bucket;
use cloud_storage::bucket::{IamPolicy, Binding, IamRole, StandardIamRole, Entity};

let bucket = Bucket::read("cloud-storage-rs-doc-5").await?;
let iam_policy = IamPolicy {
    version: 1,
    bindings: vec![
        Binding {
            role: IamRole::Standard(StandardIamRole::ObjectViewer),
            members: vec!["allUsers".to_string()],
            condition: None,
        }
    ],
    ..Default::default()
};
let policy = bucket.set_iam_policy(&iam_policy).await?;

The synchronous equivalent of Bucket::set_iam_policy.

Features

This function requires that the feature flag sync is enabled in Cargo.toml.

Checks whether the user provided in the service account has this permission.

Example
use cloud_storage::Bucket;

let bucket = Bucket::read("my-bucket").await?;
bucket.test_iam_permission("storage.buckets.get").await?;

The synchronous equivalent of Bucket::test_iam_policy.

Features

This function requires that the feature flag sync is enabled in Cargo.toml.

Trait Implementations

Formats the value using the given formatter. Read more

Deserialize this value from the given Serde deserializer. Read more

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more