pub struct BasinClient { /* private fields */ }
Expand description
Client for basin-level operations.
Implementations§
Source§impl BasinClient
impl BasinClient
Sourcepub fn new(config: ClientConfig, basin: BasinName) -> Self
pub fn new(config: ClientConfig, basin: BasinName) -> Self
Create a new basin client.
Examples found in repository?
examples/delete_stream.rs (line 11)
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 basin: BasinName = "my-favorite-basin".parse()?;
11 let basin_client = BasinClient::new(config, basin);
12
13 let stream = "my-favorite-stream";
14
15 let delete_stream_request = DeleteStreamRequest::new(stream);
16
17 basin_client.delete_stream(delete_stream_request).await?;
18
19 Ok(())
20}
More examples
examples/list_streams.rs (line 11)
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 basin: BasinName = "my-favorite-basin".parse()?;
11 let basin_client = BasinClient::new(config, basin);
12
13 let prefix = "my-";
14 let list_streams_request = ListStreamsRequest::new().with_prefix(prefix);
15
16 let list_streams_response = basin_client.list_streams(list_streams_request).await?;
17
18 println!("{list_streams_response:#?}");
19
20 Ok(())
21}
examples/reconfigure_stream.rs (line 13)
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 basin: BasinName = "my-favorite-basin".parse()?;
13 let basin_client = BasinClient::new(config, basin);
14
15 let stream = "my-favorite-stream";
16
17 let stream_config_updates = StreamConfig::new().with_retention_policy(RetentionPolicy::Age(
18 // Change to retention policy to 1 day
19 Duration::from_secs(24 * 60 * 60),
20 ));
21
22 let reconfigure_stream_request = ReconfigureStreamRequest::new(stream)
23 .with_config(stream_config_updates)
24 // Field mask specifies which fields to update.
25 .with_mask(vec!["retention_policy".to_string()]);
26
27 let updated_stream_config = basin_client
28 .reconfigure_stream(reconfigure_stream_request)
29 .await?;
30
31 println!("{updated_stream_config:#?}");
32
33 Ok(())
34}
Sourcepub fn new_with_connector<C>(
config: ClientConfig,
basin: BasinName,
connector: C,
) -> Self
pub fn new_with_connector<C>( config: ClientConfig, basin: BasinName, connector: C, ) -> Self
Create a new basin client using a custom connector.
Sourcepub fn stream_client(&self, stream: impl Into<String>) -> StreamClient
pub fn stream_client(&self, stream: impl Into<String>) -> StreamClient
Create a new client for stream-level operations.
Sourcepub async fn create_stream(
&self,
req: CreateStreamRequest,
) -> Result<StreamInfo, ClientError>
pub async fn create_stream( &self, req: CreateStreamRequest, ) -> Result<StreamInfo, ClientError>
Create a stream.
Provide a client request token with the S2-Request-Token
header for idempotent retry behaviour.
Examples found in repository?
examples/create_stream.rs (line 21)
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_streams(
&self,
req: ListStreamsRequest,
) -> Result<ListStreamsResponse, ClientError>
pub async fn list_streams( &self, req: ListStreamsRequest, ) -> Result<ListStreamsResponse, ClientError>
List streams.
Examples found in repository?
examples/list_streams.rs (line 16)
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 basin: BasinName = "my-favorite-basin".parse()?;
11 let basin_client = BasinClient::new(config, basin);
12
13 let prefix = "my-";
14 let list_streams_request = ListStreamsRequest::new().with_prefix(prefix);
15
16 let list_streams_response = basin_client.list_streams(list_streams_request).await?;
17
18 println!("{list_streams_response:#?}");
19
20 Ok(())
21}
Sourcepub async fn get_stream_config(
&self,
stream: impl Into<String>,
) -> Result<StreamConfig, ClientError>
pub async fn get_stream_config( &self, stream: impl Into<String>, ) -> Result<StreamConfig, ClientError>
Get stream configuration.
Examples found in repository?
examples/create_stream.rs (line 24)
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 reconfigure_stream(
&self,
req: ReconfigureStreamRequest,
) -> Result<StreamConfig, ClientError>
pub async fn reconfigure_stream( &self, req: ReconfigureStreamRequest, ) -> Result<StreamConfig, ClientError>
Update stream configuration.
Examples found in repository?
examples/reconfigure_stream.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 basin: BasinName = "my-favorite-basin".parse()?;
13 let basin_client = BasinClient::new(config, basin);
14
15 let stream = "my-favorite-stream";
16
17 let stream_config_updates = StreamConfig::new().with_retention_policy(RetentionPolicy::Age(
18 // Change to retention policy to 1 day
19 Duration::from_secs(24 * 60 * 60),
20 ));
21
22 let reconfigure_stream_request = ReconfigureStreamRequest::new(stream)
23 .with_config(stream_config_updates)
24 // Field mask specifies which fields to update.
25 .with_mask(vec!["retention_policy".to_string()]);
26
27 let updated_stream_config = basin_client
28 .reconfigure_stream(reconfigure_stream_request)
29 .await?;
30
31 println!("{updated_stream_config:#?}");
32
33 Ok(())
34}
Sourcepub async fn delete_stream(
&self,
req: DeleteStreamRequest,
) -> Result<(), ClientError>
pub async fn delete_stream( &self, req: DeleteStreamRequest, ) -> Result<(), ClientError>
Delete a stream. Stream deletion is asynchronous, and may take a few minutes to complete.
Examples found in repository?
examples/delete_stream.rs (line 17)
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 basin: BasinName = "my-favorite-basin".parse()?;
11 let basin_client = BasinClient::new(config, basin);
12
13 let stream = "my-favorite-stream";
14
15 let delete_stream_request = DeleteStreamRequest::new(stream);
16
17 basin_client.delete_stream(delete_stream_request).await?;
18
19 Ok(())
20}
Trait Implementations§
Source§impl Clone for BasinClient
impl Clone for BasinClient
Source§fn clone(&self) -> BasinClient
fn clone(&self) -> BasinClient
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 BasinClient
impl !RefUnwindSafe for BasinClient
impl Send for BasinClient
impl Sync for BasinClient
impl Unpin for BasinClient
impl !UnwindSafe for BasinClient
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