> ## Documentation Index
> Fetch the complete documentation index at: https://s2.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Basin Resources

> Manage basins with S2 SDKs: list basins, create them, inspect configuration, and delete them.

Basins are containers for streams, similar to buckets in object storage.

Each basin belongs to an account and has its own configuration for default stream settings, which will be used when creating new streams unless explicitly overridden.

<Tabs>
  <Tab title="TypeScript">
    ```typescript theme={null}
    // List basins
    const basins = await client.basins.list();

    // Create a basin
    await client.basins.create({ basin: "my-events" });

    // Get configuration
    const config = await client.basins.getConfig({ basin: "my-events" });

    // Delete
    await client.basins.delete({ basin: "my-events" });
    ```
  </Tab>

  <Tab title="Python">
    ```python theme={null}
    # List basins
    basins = await client.list_basins()

    # Create a basin
    await client.create_basin("my-events")

    # Get configuration
    config = await client.get_basin_config("my-events")

    # Delete
    await client.delete_basin("my-events")
    ```
  </Tab>

  <Tab title="Go">
    ```go theme={null}
    // List basins
    basins, _ := client.Basins.List(ctx, nil)

    // Create a basin
    client.Basins.Create(ctx, s2.CreateBasinArgs{Basin: "my-events"})

    // Get configuration
    config, _ := client.Basins.GetConfig(ctx, "my-events")

    // Delete
    client.Basins.Delete(ctx, "my-events")
    ```
  </Tab>

  <Tab title="Rust">
    ```rust theme={null}
    // List basins
    let basins = client.list_basins(ListBasinsInput::new()).await?;

    // Create a basin
    client
        .create_basin(CreateBasinInput::new("my-events".parse()?))
        .await?;

    // Get configuration
    let config = client.get_basin_config("my-events".parse()?).await?;

    // Delete
    client
        .delete_basin(DeleteBasinInput::new("my-events".parse()?))
        .await?;
    ```
  </Tab>
</Tabs>

See [basin configuration](/api/basins/get-config) for details on available options.
