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
sourceimpl BucketAccessControl
impl BucketAccessControl
sourcepub async fn create(
bucket: &str,
new_bucket_access_control: &NewBucketAccessControl
) -> Result<Self>
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?;
sourcepub fn create_sync(
bucket: &str,
new_bucket_access_control: &NewBucketAccessControl
) -> Result<Self>
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
.
sourcepub async fn list(bucket: &str) -> Result<Vec<Self>>
pub async fn list(bucket: &str) -> Result<Vec<Self>>
Returns all BucketAccessControl
s 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?;
sourcepub fn list_sync(bucket: &str) -> Result<Vec<Self>>
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
.
sourcepub async fn read(bucket: &str, entity: &Entity) -> Result<Self>
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?;
sourcepub fn read_sync(bucket: &str, entity: &Entity) -> Result<Self>
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
.
sourcepub async fn update(&self) -> Result<Self>
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?;
sourcepub fn update_sync(&self) -> Result<Self>
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
.
sourcepub async fn delete(self) -> Result<()>
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?;
sourcepub fn delete_sync(self) -> Result<()>
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
sourceimpl Debug for BucketAccessControl
impl Debug for BucketAccessControl
sourceimpl<'de> Deserialize<'de> for BucketAccessControl
impl<'de> Deserialize<'de> for BucketAccessControl
sourcefn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
sourceimpl PartialEq<BucketAccessControl> for BucketAccessControl
impl PartialEq<BucketAccessControl> for BucketAccessControl
sourcefn eq(&self, other: &BucketAccessControl) -> bool
fn eq(&self, other: &BucketAccessControl) -> bool
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
sourcefn ne(&self, other: &BucketAccessControl) -> bool
fn ne(&self, other: &BucketAccessControl) -> bool
This method tests for !=
.
sourceimpl Serialize for BucketAccessControl
impl Serialize for BucketAccessControl
impl StructuralPartialEq for BucketAccessControl
Auto Trait Implementations
impl RefUnwindSafe for BucketAccessControl
impl Send for BucketAccessControl
impl Sync for BucketAccessControl
impl Unpin for BucketAccessControl
impl UnwindSafe for BucketAccessControl
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
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
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more