create_basin/
create_basin.rs

1use s2_sdk::{
2    S2,
3    types::{BasinConfig, BasinName, CreateBasinInput, RetentionPolicy, S2Config, StreamConfig},
4};
5
6#[tokio::main]
7async fn main() -> Result<(), Box<dyn std::error::Error>> {
8    let access_token =
9        std::env::var("S2_ACCESS_TOKEN").map_err(|_| "S2_ACCESS_TOKEN env var not set")?;
10    let basin_name: BasinName = std::env::var("S2_BASIN")
11        .map_err(|_| "S2_BASIN env var not set")?
12        .parse()?;
13
14    let config = S2Config::new(access_token);
15    let s2 = S2::new(config)?;
16
17    let input = CreateBasinInput::new(basin_name.clone()).with_config(
18        BasinConfig::new().with_default_stream_config(
19            StreamConfig::new().with_retention_policy(RetentionPolicy::Age(10 * 24 * 60 * 60)),
20        ),
21    );
22    let basin_info = s2.create_basin(input).await?;
23    println!("{basin_info:#?}");
24
25    let basin_config = s2.get_basin_config(basin_name).await?;
26    println!("{basin_config:#?}");
27
28    Ok(())
29}