Struct BucketAccessControl

Source
pub struct BucketAccessControl {
    pub kind: String,
    pub id: String,
    pub self_link: String,
    pub bucket: String,
    pub entity: Entity,
    pub role: Role,
    pub email: Option<String>,
    pub entity_id: Option<String>,
    pub domain: Option<String>,
    pub project_team: Option<ProjectTeam>,
    pub etag: String,
}
Expand description

The BucketAccessControl resource represents the Access Control Lists (ACLs) for buckets within Google Cloud Storage. ACLs let you specify who has access to your data and to what extent.

Important: This method fails with a 400 Bad Request response for buckets with uniform
bucket-level access enabled. Use `Bucket::get_iam_policy` and `Bucket::set_iam_policy` to
control access instead.

There are three roles that can be assigned to an entity:

  • READERs can get the bucket, though no acl property will be returned, and list the bucket’s objects.
  • WRITERs are READERs, and they can insert objects into the bucket and delete the bucket’s objects.
  • OWNERs are WRITERs, and they can get the acl property of a bucket, update a bucket, and call all BucketAccessControl methods on the bucket.

Fields§

§kind: String

The kind of item this is. For bucket access control entries, this is always storage#bucketAccessControl.

§id: String

The ID of the access-control entry.

§self_link: String

The link to this access-control entry.

§bucket: String

The name of the bucket.

§entity: Entity

The entity holding the permission, in one of the following forms:

  • user-userId
  • user-email
  • group-groupId
  • group-email
  • domain-domain
  • project-team-projectId
  • allUsers
  • allAuthenticatedUsers

Examples:

  • The user liz@example.com would be user-liz@example.com.
  • The group example@googlegroups.com would be group-example@googlegroups.com.
  • To refer to all members of the G Suite for Business domain example.com, the entity would be domain-example.com.
§role: Role

The access permission for the entity.

§email: Option<String>

The email address associated with the entity, if any.

§entity_id: Option<String>

The ID for the entity, if any.

§domain: Option<String>

The domain associated with the entity, if any.

§project_team: Option<ProjectTeam>

The project team associated with the entity, if any.

§etag: String

HTTP 1.1 Entity tag for the access-control entry.

Implementations§

Source§

impl BucketAccessControl

Source

pub async fn create( bucket: &str, new_bucket_access_control: &NewBucketAccessControl, ) -> Result<Self>

Create a new BucketAccessControl using the provided NewBucketAccessControl, related to the Bucket provided by the bucket_name argument.

§Important

Important: This method fails with a 400 Bad Request response for buckets with uniform bucket-level access enabled. Use Bucket::get_iam_policy and Bucket::set_iam_policy to control access instead.

§Example
use cloud_storage::bucket_access_control::{BucketAccessControl, NewBucketAccessControl};
use cloud_storage::bucket_access_control::{Role, Entity};

let new_bucket_access_control = NewBucketAccessControl {
    entity: Entity::AllUsers,
    role: Role::Reader,
};
BucketAccessControl::create("mybucket", &new_bucket_access_control).await?;
Source

pub fn create_sync( bucket: &str, new_bucket_access_control: &NewBucketAccessControl, ) -> Result<Self>

The synchronous equivalent of BucketAccessControl::create.

§Features

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

Source

pub async fn list(bucket: &str) -> Result<Vec<Self>>

Returns all BucketAccessControls related to this bucket.

§Important

Important: This method fails with a 400 Bad Request response for buckets with uniform bucket-level access enabled. Use Bucket::get_iam_policy and Bucket::set_iam_policy to control access instead.

§Example
use cloud_storage::bucket_access_control::BucketAccessControl;

let acls = BucketAccessControl::list("mybucket").await?;
Source

pub fn list_sync(bucket: &str) -> Result<Vec<Self>>

The synchronous equivalent of BucketAccessControl::list.

§Features

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

Source

pub async fn read(bucket: &str, entity: &Entity) -> Result<Self>

Returns the ACL entry for the specified entity on the specified bucket.

§Important

Important: This method fails with a 400 Bad Request response for buckets with uniform bucket-level access enabled. Use Bucket::get_iam_policy and Bucket::set_iam_policy to control access instead.

§Example
use cloud_storage::bucket_access_control::{BucketAccessControl, Entity};

let controls = BucketAccessControl::read("mybucket", &Entity::AllUsers).await?;
Source

pub fn read_sync(bucket: &str, entity: &Entity) -> Result<Self>

The synchronous equivalent of BucketAccessControl::read.

§Features

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

Source

pub async fn update(&self) -> Result<Self>

Update this BucketAccessControl.

§Important

Important: This method fails with a 400 Bad Request response for buckets with uniform bucket-level access enabled. Use Bucket::get_iam_policy and Bucket::set_iam_policy to control access instead.

§Example
use cloud_storage::bucket_access_control::{BucketAccessControl, Entity};

let mut acl = BucketAccessControl::read("mybucket", &Entity::AllUsers).await?;
acl.entity = Entity::AllAuthenticatedUsers;
acl.update().await?;
Source

pub fn update_sync(&self) -> Result<Self>

The synchronous equivalent of BucketAccessControl::update.

§Features

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

Source

pub async fn delete(self) -> Result<()>

Permanently deletes the ACL entry for the specified entity on the specified bucket.

§Important

Important: This method fails with a 400 Bad Request response for buckets with uniform bucket-level access enabled. Use Bucket::get_iam_policy and Bucket::set_iam_policy to control access instead.

§Example
use cloud_storage::bucket_access_control::{BucketAccessControl, Entity};

let controls = BucketAccessControl::read("mybucket", &Entity::AllUsers).await?;
controls.delete().await?;
Source

pub fn delete_sync(self) -> Result<()>

The synchronous equivalent of BucketAccessControl::delete.

§Features

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

Trait Implementations§

Source§

impl Debug for BucketAccessControl

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for BucketAccessControl

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl PartialEq for BucketAccessControl

Source§

fn eq(&self, other: &BucketAccessControl) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Serialize for BucketAccessControl

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for BucketAccessControl

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

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

fn in_current_span(self) -> Instrumented<Self>

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

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

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

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

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

fn with_current_subscriber(self) -> WithDispatch<Self>

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

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

Source§

impl<T> ErasedDestructor for T
where T: 'static,