pub struct AccessTokenInfo {
pub id: AccessTokenId,
pub expires_at: Option<u32>,
pub auto_prefix_streams: bool,
pub scope: Option<AccessTokenScope>,
}
Expand description
Access token information.
Fields§
§id: AccessTokenId
Access token ID. It must be unique to the account and between 1 and 96 characters.
expires_at: Option<u32>
Expiration time in seconds since Unix epoch. If not set, the expiration will be set to that of the requestor’s token.
auto_prefix_streams: bool
Namespace streams based on the configured stream-level scope, which must be a prefix. Stream name arguments will be automatically prefixed, and the prefix will be stripped when listing streams.
scope: Option<AccessTokenScope>
Access token scope.
Implementations§
Source§impl AccessTokenInfo
impl AccessTokenInfo
Sourcepub fn new(id: AccessTokenId) -> Self
pub fn new(id: AccessTokenId) -> Self
Create a new access token info.
Examples found in repository?
examples/issue_access_token.rs (line 16)
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_expires_at(self, expires_at: u32) -> Self
pub fn with_expires_at(self, expires_at: u32) -> Self
Overwrite expiration time.
Sourcepub fn with_auto_prefix_streams(self, auto_prefix_streams: bool) -> Self
pub fn with_auto_prefix_streams(self, auto_prefix_streams: bool) -> Self
Overwrite auto prefix streams.
Sourcepub fn with_scope(self, scope: AccessTokenScope) -> Self
pub fn with_scope(self, scope: AccessTokenScope) -> Self
Overwrite scope.
Examples found in repository?
examples/issue_access_token.rs (lines 16-25)
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 AccessTokenInfo
impl Clone for AccessTokenInfo
Source§fn clone(&self) -> AccessTokenInfo
fn clone(&self) -> AccessTokenInfo
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 moreAuto Trait Implementations§
impl Freeze for AccessTokenInfo
impl RefUnwindSafe for AccessTokenInfo
impl Send for AccessTokenInfo
impl Sync for AccessTokenInfo
impl Unpin for AccessTokenInfo
impl UnwindSafe for AccessTokenInfo
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