cloud_storage::default_object_access_control

Struct DefaultObjectAccessControl

Source
pub struct DefaultObjectAccessControl {
    pub kind: 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,
    pub bucket: String,
}
Expand description

The DefaultObjectAccessControls resources represent the Access Control Lists (ACLs) applied to a new object within Google Cloud Storage when no ACL was provided for that object. ACLs let you specify who has access to your data and to what extent.

Fields§

§kind: String

The kind of item this is. For object access control entries, this is always storage#objectAccessControl.

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

§bucket: String

The bucket this resource belongs to.

Implementations§

Source§

impl DefaultObjectAccessControl

Source

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

Create a new DefaultObjectAccessControl entry 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::default_object_access_control::{
    DefaultObjectAccessControl, NewDefaultObjectAccessControl, Role, Entity,
};

let new_acl = NewDefaultObjectAccessControl {
    entity: Entity::AllAuthenticatedUsers,
    role: Role::Reader,
};
let default_acl = DefaultObjectAccessControl::create("mybucket", &new_acl).await?;
Source

pub fn create_sync( bucket: &str, new_acl: &NewDefaultObjectAccessControl, ) -> Result<Self>

The synchronous equivalent of DefautObjectAccessControl::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>>

Retrieves default object ACL entries 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::default_object_access_control::DefaultObjectAccessControl;

let default_acls = DefaultObjectAccessControl::list("mybucket").await?;
Source

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

The synchronous equivalent of DefautObjectAccessControl::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>

Read a single DefaultObjectAccessControl. The bucket argument is the name of the bucket whose DefaultObjectAccessControl is to be read, and the entity argument is the entity holding the permission. Options are Can be “user-userId”, “user-email_address”, “group-group_id”, “group-email_address”, “allUsers”, or “allAuthenticatedUsers”.

§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::default_object_access_control::{DefaultObjectAccessControl, Entity};

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

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

The synchronous equivalent of DefautObjectAccessControl::read.

§Features

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

Source

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

Update the current DefaultObjectAccessControl.

§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::default_object_access_control::{DefaultObjectAccessControl, Entity};

let mut default_acl = DefaultObjectAccessControl::read("my_bucket", &Entity::AllUsers).await?;
default_acl.entity = Entity::AllAuthenticatedUsers;
default_acl.update().await?;
Source

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

The synchronous equivalent of DefautObjectAccessControl::update.

§Features

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

Source

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

Delete this ’DefaultObjectAccessControl`.

§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::default_object_access_control::{DefaultObjectAccessControl, Entity};

let mut default_acl = DefaultObjectAccessControl::read("my_bucket", &Entity::AllUsers).await?;
default_acl.delete().await?;
Source

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

The synchronous equivalent of DefautObjectAccessControl::delete.

§Features

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

Trait Implementations§

Source§

impl Debug for DefaultObjectAccessControl

Source§

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

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

impl<'de> Deserialize<'de> for DefaultObjectAccessControl

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 DefaultObjectAccessControl

Source§

fn eq(&self, other: &DefaultObjectAccessControl) -> 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 DefaultObjectAccessControl

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 DefaultObjectAccessControl

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,

Source§

impl<T> MaybeSendSync for T