create_stream/
create_stream.rs1use s2_sdk::{
2 S2,
3 types::{
4 BasinName, CreateStreamInput, S2Config, StreamConfig, StreamName, TimestampingConfig,
5 TimestampingMode,
6 },
7};
8
9#[tokio::main]
10async fn main() -> Result<(), Box<dyn std::error::Error>> {
11 let access_token =
12 std::env::var("S2_ACCESS_TOKEN").map_err(|_| "S2_ACCESS_TOKEN env var not set")?;
13 let basin_name: BasinName = std::env::var("S2_BASIN")
14 .map_err(|_| "S2_BASIN env var not set")?
15 .parse()?;
16 let stream_name: StreamName = std::env::var("S2_STREAM")
17 .map_err(|_| "S2_STREAM env var not set")?
18 .parse()?;
19
20 let s2 = S2::new(S2Config::new(access_token))?;
21 let basin = s2.basin(basin_name);
22
23 let input = CreateStreamInput::new(stream_name.clone()).with_config(
24 StreamConfig::new().with_timestamping(
25 TimestampingConfig::new().with_mode(TimestampingMode::ClientRequire),
26 ),
27 );
28 let stream_info = basin.create_stream(input).await?;
29 println!("{stream_info:#?}");
30
31 let stream_config = basin.get_stream_config(stream_name).await?;
32 println!("{stream_config:#?}");
33
34 Ok(())
35}