pub struct AccessTokenScope {
pub basins: Option<ResourceSet>,
pub streams: Option<ResourceSet>,
pub access_tokens: Option<ResourceSet>,
pub op_groups: Option<PermittedOperationGroups>,
pub ops: HashSet<Operation>,
}
Expand description
Access token scope.
Fields§
§basins: Option<ResourceSet>
Basin names allowed.
streams: Option<ResourceSet>
Stream names allowed.
access_tokens: Option<ResourceSet>
Token IDs allowed.
op_groups: Option<PermittedOperationGroups>
Access permissions at operation group level.
ops: HashSet<Operation>
Operations allowed for the token. A union of allowed operations and groups is used as an effective set of allowed operations.
Implementations§
Source§impl AccessTokenScope
impl AccessTokenScope
Sourcepub fn new() -> Self
pub fn new() -> Self
Create a new access token scope.
Examples found in repository?
examples/issue_access_token.rs (line 17)
10async fn main() -> Result<(), Box<dyn std::error::Error>> {
11 let token = std::env::var("S2_ACCESS_TOKEN")?;
12 let config = ClientConfig::new(token);
13 let client = Client::new(config);
14
15 let access_token_id: AccessTokenId = "my-access-token".parse()?;
16 let access_token_info = AccessTokenInfo::new(access_token_id).with_scope(
17 AccessTokenScope::new()
18 .with_op_groups(
19 PermittedOperationGroups::new()
20 .with_account(ReadWritePermissions::new().with_read(true)),
21 )
22 .with_op(Operation::CreateStream)
23 .with_streams(ResourceSet::Prefix("my-stream-prefix".to_string()))
24 .with_basins(ResourceSet::Exact("my-perfect-basin".to_string())),
25 );
26 let token = client.issue_access_token(access_token_info).await?;
27
28 println!("Access token: {token}");
29
30 Ok(())
31}
Sourcepub fn with_basins(self, basins: ResourceSet) -> Self
pub fn with_basins(self, basins: ResourceSet) -> Self
Overwrite resource set for access tokens.
Examples found in repository?
examples/issue_access_token.rs (line 24)
10async fn main() -> Result<(), Box<dyn std::error::Error>> {
11 let token = std::env::var("S2_ACCESS_TOKEN")?;
12 let config = ClientConfig::new(token);
13 let client = Client::new(config);
14
15 let access_token_id: AccessTokenId = "my-access-token".parse()?;
16 let access_token_info = AccessTokenInfo::new(access_token_id).with_scope(
17 AccessTokenScope::new()
18 .with_op_groups(
19 PermittedOperationGroups::new()
20 .with_account(ReadWritePermissions::new().with_read(true)),
21 )
22 .with_op(Operation::CreateStream)
23 .with_streams(ResourceSet::Prefix("my-stream-prefix".to_string()))
24 .with_basins(ResourceSet::Exact("my-perfect-basin".to_string())),
25 );
26 let token = client.issue_access_token(access_token_info).await?;
27
28 println!("Access token: {token}");
29
30 Ok(())
31}
Sourcepub fn with_streams(self, streams: ResourceSet) -> Self
pub fn with_streams(self, streams: ResourceSet) -> Self
Overwrite resource set for streams.
Examples found in repository?
examples/issue_access_token.rs (line 23)
10async fn main() -> Result<(), Box<dyn std::error::Error>> {
11 let token = std::env::var("S2_ACCESS_TOKEN")?;
12 let config = ClientConfig::new(token);
13 let client = Client::new(config);
14
15 let access_token_id: AccessTokenId = "my-access-token".parse()?;
16 let access_token_info = AccessTokenInfo::new(access_token_id).with_scope(
17 AccessTokenScope::new()
18 .with_op_groups(
19 PermittedOperationGroups::new()
20 .with_account(ReadWritePermissions::new().with_read(true)),
21 )
22 .with_op(Operation::CreateStream)
23 .with_streams(ResourceSet::Prefix("my-stream-prefix".to_string()))
24 .with_basins(ResourceSet::Exact("my-perfect-basin".to_string())),
25 );
26 let token = client.issue_access_token(access_token_info).await?;
27
28 println!("Access token: {token}");
29
30 Ok(())
31}
Sourcepub fn with_tokens(self, access_tokens: ResourceSet) -> Self
pub fn with_tokens(self, access_tokens: ResourceSet) -> Self
Overwrite resource set for access tokens.
Sourcepub fn with_op_groups(self, op_groups: PermittedOperationGroups) -> Self
pub fn with_op_groups(self, op_groups: PermittedOperationGroups) -> Self
Overwrite operation groups.
Examples found in repository?
examples/issue_access_token.rs (lines 18-21)
10async fn main() -> Result<(), Box<dyn std::error::Error>> {
11 let token = std::env::var("S2_ACCESS_TOKEN")?;
12 let config = ClientConfig::new(token);
13 let client = Client::new(config);
14
15 let access_token_id: AccessTokenId = "my-access-token".parse()?;
16 let access_token_info = AccessTokenInfo::new(access_token_id).with_scope(
17 AccessTokenScope::new()
18 .with_op_groups(
19 PermittedOperationGroups::new()
20 .with_account(ReadWritePermissions::new().with_read(true)),
21 )
22 .with_op(Operation::CreateStream)
23 .with_streams(ResourceSet::Prefix("my-stream-prefix".to_string()))
24 .with_basins(ResourceSet::Exact("my-perfect-basin".to_string())),
25 );
26 let token = client.issue_access_token(access_token_info).await?;
27
28 println!("Access token: {token}");
29
30 Ok(())
31}
Sourcepub fn with_ops(self, ops: impl IntoIterator<Item = Operation>) -> Self
pub fn with_ops(self, ops: impl IntoIterator<Item = Operation>) -> Self
Overwrite operations.
Sourcepub fn with_op(self, op: Operation) -> Self
pub fn with_op(self, op: Operation) -> Self
Add an operation to operations.
Examples found in repository?
examples/issue_access_token.rs (line 22)
10async fn main() -> Result<(), Box<dyn std::error::Error>> {
11 let token = std::env::var("S2_ACCESS_TOKEN")?;
12 let config = ClientConfig::new(token);
13 let client = Client::new(config);
14
15 let access_token_id: AccessTokenId = "my-access-token".parse()?;
16 let access_token_info = AccessTokenInfo::new(access_token_id).with_scope(
17 AccessTokenScope::new()
18 .with_op_groups(
19 PermittedOperationGroups::new()
20 .with_account(ReadWritePermissions::new().with_read(true)),
21 )
22 .with_op(Operation::CreateStream)
23 .with_streams(ResourceSet::Prefix("my-stream-prefix".to_string()))
24 .with_basins(ResourceSet::Exact("my-perfect-basin".to_string())),
25 );
26 let token = client.issue_access_token(access_token_info).await?;
27
28 println!("Access token: {token}");
29
30 Ok(())
31}
Trait Implementations§
Source§impl Clone for AccessTokenScope
impl Clone for AccessTokenScope
Source§fn clone(&self) -> AccessTokenScope
fn clone(&self) -> AccessTokenScope
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl Debug for AccessTokenScope
impl Debug for AccessTokenScope
Source§impl Default for AccessTokenScope
impl Default for AccessTokenScope
Source§fn default() -> AccessTokenScope
fn default() -> AccessTokenScope
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for AccessTokenScope
impl RefUnwindSafe for AccessTokenScope
impl Send for AccessTokenScope
impl Sync for AccessTokenScope
impl Unpin for AccessTokenScope
impl UnwindSafe for AccessTokenScope
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T
in a tonic::Request