pub struct BucketClient<'a>(/* private fields */);Expand description
Operations on Buckets.
Implementations§
Source§impl<'a> BucketClient<'a>
 
impl<'a> BucketClient<'a>
Sourcepub async fn create(&self, new_bucket: &NewBucket) -> Result<Bucket>
 
pub async fn create(&self, new_bucket: &NewBucket) -> Result<Bucket>
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::Client;
use cloud_storage::bucket::{Bucket, NewBucket};
use cloud_storage::bucket::{Location, MultiRegion};
let client = Client::default();
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 = client.bucket().create(&new_bucket).await?;Sourcepub async fn read(&self, name: &str) -> Result<Bucket>
 
pub async fn read(&self, name: &str) -> Result<Bucket>
Returns a single Bucket by its name. If the Bucket does not exist, an error is returned.
§Example
use cloud_storage::Client;
use cloud_storage::Bucket;
let client = Client::default();
let bucket = client.bucket().read("cloud-storage-rs-doc-2").await?;Sourcepub async fn update(&self, bucket: &Bucket) -> Result<Bucket>
 
pub async fn update(&self, bucket: &Bucket) -> Result<Bucket>
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::Client;
use cloud_storage::bucket::{Bucket, RetentionPolicy};
let client = Client::default();
let mut bucket = client.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),
});
client.bucket().update(&bucket).await?;Sourcepub async fn delete(&self, bucket: Bucket) -> Result<()>
 
pub async fn delete(&self, bucket: Bucket) -> Result<()>
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::Client;
use cloud_storage::Bucket;
let client = Client::default();
let bucket = client.bucket().read("unnecessary-bucket").await?;
client.bucket().delete(bucket).await?;Sourcepub async fn get_iam_policy(&self, bucket: &Bucket) -> Result<IamPolicy>
 
pub async fn get_iam_policy(&self, bucket: &Bucket) -> Result<IamPolicy>
Returns the IAM Policy for this bucket.
§Example
use cloud_storage::Client;
use cloud_storage::Bucket;
let client = Client::default();
let bucket = client.bucket().read("cloud-storage-rs-doc-4").await?;
let policy = client.bucket().get_iam_policy(&bucket).await?;Sourcepub async fn set_iam_policy(
    &self,
    bucket: &Bucket,
    iam: &IamPolicy,
) -> Result<IamPolicy>
 
pub async fn set_iam_policy( &self, bucket: &Bucket, iam: &IamPolicy, ) -> Result<IamPolicy>
Updates the IAM Policy for this bucket.
§Example
use cloud_storage::Client;
use cloud_storage::Bucket;
use cloud_storage::bucket::{IamPolicy, Binding, IamRole, StandardIamRole, Entity};
let client = Client::default();
let bucket = client.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 = client.bucket().set_iam_policy(&bucket, &iam_policy).await?;Sourcepub async fn test_iam_permission(
    &self,
    bucket: &Bucket,
    permission: &str,
) -> Result<TestIamPermission>
 
pub async fn test_iam_permission( &self, bucket: &Bucket, permission: &str, ) -> Result<TestIamPermission>
Checks whether the user provided in the service account has this permission.
§Example
use cloud_storage::Client;
use cloud_storage::Bucket;
let client = Client::default();
let bucket = client.bucket().read("my-bucket").await?;
client.bucket().test_iam_permission(&bucket, "storage.buckets.get").await?;Trait Implementations§
Auto Trait Implementations§
impl<'a> Freeze for BucketClient<'a>
impl<'a> !RefUnwindSafe for BucketClient<'a>
impl<'a> Send for BucketClient<'a>
impl<'a> Sync for BucketClient<'a>
impl<'a> Unpin for BucketClient<'a>
impl<'a> !UnwindSafe for BucketClient<'a>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
 
impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
 
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Instrument for T
 
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
 
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
 
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
 
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
 
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
 
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more