pub struct Client { /* private fields */ }👎Deprecated since 0.21.1: This crate has been renamed to
s2-sdk. Please update your Cargo.toml to use s2-sdk instead.Expand description
Client for account-level operations.
Implementations§
Source§impl Client
impl Client
Sourcepub fn new(config: ClientConfig) -> Self
👎Deprecated since 0.21.1: This crate has been renamed to s2-sdk. Please update your Cargo.toml to use s2-sdk instead.
pub fn new(config: ClientConfig) -> Self
s2-sdk. Please update your Cargo.toml to use s2-sdk instead.Create a new SDK client.
Examples found in repository?
examples/delete_basin.rs (line 10)
7async fn main() -> Result<(), Box<dyn std::error::Error>> {
8 let token = std::env::var("S2_ACCESS_TOKEN")?;
9 let config = ClientConfig::new(token);
10 let client = Client::new(config);
11
12 let basin: BasinName = "my-favorite-basin".parse()?;
13
14 let delete_basin_request = DeleteBasinRequest::new(basin)
15 // Don't error if the basin doesn't exist.
16 .with_if_exists(true);
17
18 client.delete_basin(delete_basin_request).await?;
19
20 Ok(())
21}More examples
examples/create_stream.rs (line 10)
7async fn main() -> Result<(), Box<dyn std::error::Error>> {
8 let token = std::env::var("S2_ACCESS_TOKEN")?;
9 let config = ClientConfig::new(token);
10 let client = Client::new(config);
11
12 let basin: BasinName = "my-favorite-basin".parse()?;
13 let basin_client = client.basin_client(basin);
14
15 let stream = "my-favorite-stream";
16
17 let stream_config = StreamConfig::new().with_storage_class(StorageClass::Express);
18
19 let create_stream_request = CreateStreamRequest::new(stream).with_config(stream_config);
20
21 let created_stream = basin_client.create_stream(create_stream_request).await?;
22 println!("{created_stream:#?}");
23
24 let stream_config = basin_client.get_stream_config(stream).await?;
25 println!("{stream_config:#?}");
26
27 Ok(())
28}examples/list_all_basins.rs (line 10)
7async fn main() -> Result<(), Box<dyn std::error::Error>> {
8 let token = std::env::var("S2_ACCESS_TOKEN")?;
9 let config = ClientConfig::new(token);
10 let client = Client::new(config);
11
12 let mut all_basins = Vec::new();
13
14 let mut has_more = true;
15 let mut start_after: Option<String> = None;
16
17 while has_more {
18 let mut list_basins_request = ListBasinsRequest::new();
19 if let Some(start_after) = start_after.take() {
20 list_basins_request = list_basins_request.with_start_after(start_after);
21 }
22
23 let list_basins_response = client.list_basins(list_basins_request).await?;
24
25 all_basins.extend(list_basins_response.basins);
26
27 start_after = all_basins.last().map(|b| b.name.clone());
28 has_more = list_basins_response.has_more;
29 }
30
31 println!("{all_basins:#?}");
32
33 Ok(())
34}examples/issue_access_token.rs (line 13)
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}examples/create_basin.rs (line 12)
9async fn main() -> Result<(), Box<dyn std::error::Error>> {
10 let token = std::env::var("S2_ACCESS_TOKEN")?;
11 let config = ClientConfig::new(token);
12 let client = Client::new(config);
13
14 let basin: BasinName = "my-favorite-basin".parse()?;
15
16 let default_stream_config = StreamConfig::new().with_retention_policy(RetentionPolicy::Age(
17 // Set the default retention age to 10 days.
18 Duration::from_secs(10 * 24 * 60 * 60),
19 ));
20
21 let basin_config = BasinConfig::new()
22 .with_default_stream_config(default_stream_config)
23 .with_create_stream_on_append(false)
24 .with_create_stream_on_read(false);
25
26 let create_basin_request = CreateBasinRequest::new(basin.clone()).with_config(basin_config);
27
28 let created_basin = client.create_basin(create_basin_request).await?;
29 println!("{created_basin:#?}");
30
31 let basin_config = client.get_basin_config(basin).await?;
32 println!("{basin_config:#?}");
33
34 Ok(())
35}examples/reconfigure_basin.rs (line 10)
7async fn main() -> Result<(), Box<dyn std::error::Error>> {
8 let token = std::env::var("S2_ACCESS_TOKEN")?;
9 let config = ClientConfig::new(token);
10 let client = Client::new(config);
11
12 let basin: BasinName = "my-favorite-basin".parse()?;
13
14 let default_stream_config_updates =
15 StreamConfig::new().with_storage_class(StorageClass::Standard);
16 let basin_config_updates = BasinConfig::new()
17 .with_default_stream_config(default_stream_config_updates)
18 .with_create_stream_on_append(true)
19 .with_create_stream_on_read(true);
20
21 let reconfigure_basin_request = ReconfigureBasinRequest::new(basin)
22 .with_config(basin_config_updates)
23 // Field mask specifies which fields to update.
24 .with_mask(vec!["default_stream_config.retention_policy".to_string()]);
25
26 let updated_basin_config = client.reconfigure_basin(reconfigure_basin_request).await?;
27
28 println!("{updated_basin_config:#?}");
29
30 Ok(())
31}Sourcepub fn new_with_connector<C>(config: ClientConfig, connector: C) -> Self
👎Deprecated since 0.21.1: This crate has been renamed to s2-sdk. Please update your Cargo.toml to use s2-sdk instead.
pub fn new_with_connector<C>(config: ClientConfig, connector: C) -> Self
s2-sdk. Please update your Cargo.toml to use s2-sdk instead.Create a new SDK client using a custom connector.
Sourcepub fn basin_client(&self, basin: BasinName) -> BasinClient
👎Deprecated since 0.21.1: This crate has been renamed to s2-sdk. Please update your Cargo.toml to use s2-sdk instead.
pub fn basin_client(&self, basin: BasinName) -> BasinClient
s2-sdk. Please update your Cargo.toml to use s2-sdk instead.Create basin client from the given name.
Examples found in repository?
examples/create_stream.rs (line 13)
7async fn main() -> Result<(), Box<dyn std::error::Error>> {
8 let token = std::env::var("S2_ACCESS_TOKEN")?;
9 let config = ClientConfig::new(token);
10 let client = Client::new(config);
11
12 let basin: BasinName = "my-favorite-basin".parse()?;
13 let basin_client = client.basin_client(basin);
14
15 let stream = "my-favorite-stream";
16
17 let stream_config = StreamConfig::new().with_storage_class(StorageClass::Express);
18
19 let create_stream_request = CreateStreamRequest::new(stream).with_config(stream_config);
20
21 let created_stream = basin_client.create_stream(create_stream_request).await?;
22 println!("{created_stream:#?}");
23
24 let stream_config = basin_client.get_stream_config(stream).await?;
25 println!("{stream_config:#?}");
26
27 Ok(())
28}Sourcepub async fn list_basins(
&self,
req: ListBasinsRequest,
) -> Result<ListBasinsResponse, ClientError>
👎Deprecated since 0.21.1: This crate has been renamed to s2-sdk. Please update your Cargo.toml to use s2-sdk instead.
pub async fn list_basins( &self, req: ListBasinsRequest, ) -> Result<ListBasinsResponse, ClientError>
s2-sdk. Please update your Cargo.toml to use s2-sdk instead.List basins.
Examples found in repository?
examples/list_all_basins.rs (line 23)
7async fn main() -> Result<(), Box<dyn std::error::Error>> {
8 let token = std::env::var("S2_ACCESS_TOKEN")?;
9 let config = ClientConfig::new(token);
10 let client = Client::new(config);
11
12 let mut all_basins = Vec::new();
13
14 let mut has_more = true;
15 let mut start_after: Option<String> = None;
16
17 while has_more {
18 let mut list_basins_request = ListBasinsRequest::new();
19 if let Some(start_after) = start_after.take() {
20 list_basins_request = list_basins_request.with_start_after(start_after);
21 }
22
23 let list_basins_response = client.list_basins(list_basins_request).await?;
24
25 all_basins.extend(list_basins_response.basins);
26
27 start_after = all_basins.last().map(|b| b.name.clone());
28 has_more = list_basins_response.has_more;
29 }
30
31 println!("{all_basins:#?}");
32
33 Ok(())
34}Sourcepub async fn create_basin(
&self,
req: CreateBasinRequest,
) -> Result<BasinInfo, ClientError>
👎Deprecated since 0.21.1: This crate has been renamed to s2-sdk. Please update your Cargo.toml to use s2-sdk instead.
pub async fn create_basin( &self, req: CreateBasinRequest, ) -> Result<BasinInfo, ClientError>
s2-sdk. Please update your Cargo.toml to use s2-sdk instead.Create a new basin.
Provide a client request token with the S2-Request-Token header for idempotent retry behaviour.
Examples found in repository?
examples/create_basin.rs (line 28)
9async fn main() -> Result<(), Box<dyn std::error::Error>> {
10 let token = std::env::var("S2_ACCESS_TOKEN")?;
11 let config = ClientConfig::new(token);
12 let client = Client::new(config);
13
14 let basin: BasinName = "my-favorite-basin".parse()?;
15
16 let default_stream_config = StreamConfig::new().with_retention_policy(RetentionPolicy::Age(
17 // Set the default retention age to 10 days.
18 Duration::from_secs(10 * 24 * 60 * 60),
19 ));
20
21 let basin_config = BasinConfig::new()
22 .with_default_stream_config(default_stream_config)
23 .with_create_stream_on_append(false)
24 .with_create_stream_on_read(false);
25
26 let create_basin_request = CreateBasinRequest::new(basin.clone()).with_config(basin_config);
27
28 let created_basin = client.create_basin(create_basin_request).await?;
29 println!("{created_basin:#?}");
30
31 let basin_config = client.get_basin_config(basin).await?;
32 println!("{basin_config:#?}");
33
34 Ok(())
35}Sourcepub async fn delete_basin(
&self,
req: DeleteBasinRequest,
) -> Result<(), ClientError>
👎Deprecated since 0.21.1: This crate has been renamed to s2-sdk. Please update your Cargo.toml to use s2-sdk instead.
pub async fn delete_basin( &self, req: DeleteBasinRequest, ) -> Result<(), ClientError>
s2-sdk. Please update your Cargo.toml to use s2-sdk instead.Delete a basin. Basin deletion is asynchronous, and may take a few minutes to complete.
Examples found in repository?
examples/delete_basin.rs (line 18)
7async fn main() -> Result<(), Box<dyn std::error::Error>> {
8 let token = std::env::var("S2_ACCESS_TOKEN")?;
9 let config = ClientConfig::new(token);
10 let client = Client::new(config);
11
12 let basin: BasinName = "my-favorite-basin".parse()?;
13
14 let delete_basin_request = DeleteBasinRequest::new(basin)
15 // Don't error if the basin doesn't exist.
16 .with_if_exists(true);
17
18 client.delete_basin(delete_basin_request).await?;
19
20 Ok(())
21}Sourcepub async fn get_basin_config(
&self,
basin: BasinName,
) -> Result<BasinConfig, ClientError>
👎Deprecated since 0.21.1: This crate has been renamed to s2-sdk. Please update your Cargo.toml to use s2-sdk instead.
pub async fn get_basin_config( &self, basin: BasinName, ) -> Result<BasinConfig, ClientError>
s2-sdk. Please update your Cargo.toml to use s2-sdk instead.Get basin configuration.
Examples found in repository?
examples/create_basin.rs (line 31)
9async fn main() -> Result<(), Box<dyn std::error::Error>> {
10 let token = std::env::var("S2_ACCESS_TOKEN")?;
11 let config = ClientConfig::new(token);
12 let client = Client::new(config);
13
14 let basin: BasinName = "my-favorite-basin".parse()?;
15
16 let default_stream_config = StreamConfig::new().with_retention_policy(RetentionPolicy::Age(
17 // Set the default retention age to 10 days.
18 Duration::from_secs(10 * 24 * 60 * 60),
19 ));
20
21 let basin_config = BasinConfig::new()
22 .with_default_stream_config(default_stream_config)
23 .with_create_stream_on_append(false)
24 .with_create_stream_on_read(false);
25
26 let create_basin_request = CreateBasinRequest::new(basin.clone()).with_config(basin_config);
27
28 let created_basin = client.create_basin(create_basin_request).await?;
29 println!("{created_basin:#?}");
30
31 let basin_config = client.get_basin_config(basin).await?;
32 println!("{basin_config:#?}");
33
34 Ok(())
35}Sourcepub async fn reconfigure_basin(
&self,
req: ReconfigureBasinRequest,
) -> Result<BasinConfig, ClientError>
👎Deprecated since 0.21.1: This crate has been renamed to s2-sdk. Please update your Cargo.toml to use s2-sdk instead.
pub async fn reconfigure_basin( &self, req: ReconfigureBasinRequest, ) -> Result<BasinConfig, ClientError>
s2-sdk. Please update your Cargo.toml to use s2-sdk instead.Update basin configuration.
Examples found in repository?
examples/reconfigure_basin.rs (line 26)
7async fn main() -> Result<(), Box<dyn std::error::Error>> {
8 let token = std::env::var("S2_ACCESS_TOKEN")?;
9 let config = ClientConfig::new(token);
10 let client = Client::new(config);
11
12 let basin: BasinName = "my-favorite-basin".parse()?;
13
14 let default_stream_config_updates =
15 StreamConfig::new().with_storage_class(StorageClass::Standard);
16 let basin_config_updates = BasinConfig::new()
17 .with_default_stream_config(default_stream_config_updates)
18 .with_create_stream_on_append(true)
19 .with_create_stream_on_read(true);
20
21 let reconfigure_basin_request = ReconfigureBasinRequest::new(basin)
22 .with_config(basin_config_updates)
23 // Field mask specifies which fields to update.
24 .with_mask(vec!["default_stream_config.retention_policy".to_string()]);
25
26 let updated_basin_config = client.reconfigure_basin(reconfigure_basin_request).await?;
27
28 println!("{updated_basin_config:#?}");
29
30 Ok(())
31}Sourcepub async fn issue_access_token(
&self,
info: AccessTokenInfo,
) -> Result<String, ClientError>
👎Deprecated since 0.21.1: This crate has been renamed to s2-sdk. Please update your Cargo.toml to use s2-sdk instead.
pub async fn issue_access_token( &self, info: AccessTokenInfo, ) -> Result<String, ClientError>
s2-sdk. Please update your Cargo.toml to use s2-sdk instead.Issue a new access token.
Examples found in repository?
examples/issue_access_token.rs (line 26)
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 async fn revoke_access_token(
&self,
id: AccessTokenId,
) -> Result<AccessTokenInfo, ClientError>
👎Deprecated since 0.21.1: This crate has been renamed to s2-sdk. Please update your Cargo.toml to use s2-sdk instead.
pub async fn revoke_access_token( &self, id: AccessTokenId, ) -> Result<AccessTokenInfo, ClientError>
s2-sdk. Please update your Cargo.toml to use s2-sdk instead.Revoke an access token.
Sourcepub async fn list_access_tokens(
&self,
req: ListAccessTokensRequest,
) -> Result<ListAccessTokensResponse, ClientError>
👎Deprecated since 0.21.1: This crate has been renamed to s2-sdk. Please update your Cargo.toml to use s2-sdk instead.
pub async fn list_access_tokens( &self, req: ListAccessTokensRequest, ) -> Result<ListAccessTokensResponse, ClientError>
s2-sdk. Please update your Cargo.toml to use s2-sdk instead.List access tokens.
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for Client
impl !RefUnwindSafe for Client
impl Send for Client
impl Sync for Client
impl Unpin for Client
impl !UnwindSafe for Client
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