[−][src]Struct cloud_storage::Bucket
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.
Implementations
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 Bucket
s 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]
&self,
permission: &str
) -> Result<TestIamPermission, Error>
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]
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
[src]
__D: Deserializer<'de>,
impl PartialEq<Bucket> for Bucket
[src]
impl Serialize for Bucket
[src]
fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error> where
__S: Serializer,
[src]
__S: Serializer,
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]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> DeserializeOwned for T where
T: for<'de> Deserialize<'de>,
[src]
T: for<'de> Deserialize<'de>,
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,