pub struct Client { /* private fields */ }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
This crate has been renamed to s2-sdk. Please update your Cargo.toml to use s2-sdk instead.
Create a new SDK client.
Examples found in repository?
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
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}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}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}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}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
This crate has been renamed to 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
This crate has been renamed to s2-sdk. Please update your Cargo.toml to use s2-sdk instead.
Create basin client from the given name.
Examples found in repository?
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>
This crate has been renamed to s2-sdk. Please update your Cargo.toml to use s2-sdk instead.
List basins.
Examples found in repository?
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>
This crate has been renamed to 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?
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>
This crate has been renamed to 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?
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>
This crate has been renamed to s2-sdk. Please update your Cargo.toml to use s2-sdk instead.
Get basin configuration.
Examples found in repository?
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>
This crate has been renamed to s2-sdk. Please update your Cargo.toml to use s2-sdk instead.
Update basin configuration.
Examples found in repository?
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>
This crate has been renamed to s2-sdk. Please update your Cargo.toml to use s2-sdk instead.
Issue a new access token.
Examples found in repository?
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>
This crate has been renamed to 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>
This crate has been renamed to 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 !UnwindSafe for Client
impl Send for Client
impl Sync for Client
impl Unpin for Client
impl UnsafeUnpin 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
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>
T in a tonic::Request