[][src]Struct cloud_storage::Bucket

pub struct Bucket {
    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: 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,
}

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: 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.

Methods

impl Bucket[src]

pub fn create(new_bucket: &NewBucket) -> Result<Self, Error>[src]

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)?;

pub fn list() -> Result<Vec<Self>, Error>[src]

Returns all Buckets within this project.

Example

use cloud_storage::Bucket;

let buckets = Bucket::list()?;

pub fn read(name: &str) -> Result<Self, Error>[src]

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")?;

pub fn update(&self) -> Result<Self, Error>[src]

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")?;
bucket.retention_policy = Some(RetentionPolicy {
    retention_period: 50,
    effective_time: chrono::Utc::now() + chrono::Duration::seconds(50),
    is_locked: Some(false),
});
bucket.update()?;

pub fn delete(self) -> Result<(), Error>[src]

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")?;
bucket.delete()?;

pub fn get_iam_policy(&self) -> Result<IamPolicy, Error>[src]

Returns the IAM Policy for this bucket.

Example

use cloud_storage::Bucket;

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

pub fn set_iam_policy(&self, iam: &IamPolicy) -> Result<IamPolicy, Error>[src]

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")?;
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)?;

pub fn test_iam_permission(
    &self,
    permission: &str
) -> Result<TestIamPermission, Error>
[src]

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

Example

use cloud_storage::Bucket;

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

Trait Implementations

impl Debug for Bucket[src]

impl<'de> Deserialize<'de> for Bucket[src]

impl PartialEq<Bucket> for Bucket[src]

impl Serialize for Bucket[src]

impl StructuralPartialEq for Bucket[src]

Auto Trait Implementations

impl RefUnwindSafe for Bucket

impl Send for Bucket

impl Sync for Bucket

impl Unpin for Bucket

impl UnwindSafe for Bucket

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> DeserializeOwned for T where
    T: for<'de> Deserialize<'de>, 
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.