Metadata-Version: 2.4
Name: botobuddy
Version: 0.9.0
Summary: A Collection of Extension Functions Based on Boto3
Project-URL: Homepage, https://github.com/scartill/botobuddy
Project-URL: Changelog, https://github.com/scartill/botobuddy/blob/main/CHANGELOG.md
Author-email: Boris Resnick <boris.resnick@gmail.com>
License-File: LICENSE
Requires-Python: >=3.12
Requires-Dist: boto3>=1.38.15
Requires-Dist: click>=8.1.0
Requires-Dist: python-benedict[s3,toml,yaml]>=0.34.1
Requires-Dist: rich>=13.0.0
Requires-Dist: types-boto3[apigateway,cloudformation,cognito-idp,essential,lambda,route53,sagemaker,secretsmanager,ssm,sts]>=1.38.35
Description-Content-Type: text/markdown

# A Collection of Extension Functions Based on Boto3

## Supported CLI Commands

### DynamoDB Commands
- **truncate-table**: Truncate a DynamoDB table by deleting all its items.

### S3 Commands
- **delete-bucket**: Clean and delete an S3 bucket completely, including all objects and versions.
- **ls**: List all objects in an S3 bucket. The same as `aws s3 ls`, but useful with `--assume-role`.
- **view-dict**: View a dictionary stored in an S3 bucket as a JSON object.

### Route 53 Commands
- **export-hosted-zone**: Export all resource record sets from a specified hosted zone.
- **import-hosted-zone**: Import resource record sets into a specified hosted zone from a file, skipping NS and SOA records.

### SageMaker Commands
- **human-effort**: Generate a report on the human effort that a SageMaker job required.

## Session Configuration

This library uses the `session_config` transversely for AWS Session configuration and other general configuration parameters, generally supplied to the CLI.

This is a dictionary with the following keys, all optional:

- `profile`: The AWS profile to use.
- `region`: The AWS region to use.
- `assume_role`: The AWS role to assume.

## Noteable Functions and Classes

### General

#### `botobuddy.utils.dslice`

This function is used to slice a dictionary into a new dictionary, using the keys to define the slice.
Each key can be a string, or a dictionary with the following keys:
- `k`: the key to slice
- `c`: the cast or conversion function
- `d`: the default value
- `n`: the name of the key in the result dictionary

### S3

#### `botobuddy.s3.S3Uri`

This class is used to represent an S3 URI, and provides methods to parse and manipulate it.

### API Gateway

#### `botobuddy.apigw.get_api_uri`

This function is used to get the URI of an API Gateway API.

### Lambda

#### `botobuddy.awslambda.response`

This function is used to return a response from a Lambda function.

#### `botobuddy.awslambda.request_params`

This function is used to get the parameters passed to REST API-based Lambda function.

### Secrets Manager

#### `botobuddy.secman.get_sm_secret`

This utility is used to get a JSON-formatted secret from Secrets Manager.

## Development Environment Quickstart

```pwsh
uv sync
uv run botobuddy --help
```
