Metadata-Version: 2.4
Name: typed-boto3-sdk
Version: 0.1.0
Summary: Strongly-typed, SDK-like wrapper around boto3 powered by Pydantic models from aws-resource-validator.
Author: Alexy Grabov
Requires-Python: >=3.11,<4.0
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Dist: aws-resource-validator (>=2.0,<3.0)
Requires-Dist: aws-resource-validator-apigateway (>=2.0,<3.0)
Requires-Dist: aws-resource-validator-apigatewayv2 (>=2.0,<3.0)
Requires-Dist: aws-resource-validator-athena (>=2.0,<3.0)
Requires-Dist: aws-resource-validator-bedrock (>=2.0,<3.0)
Requires-Dist: aws-resource-validator-cloudformation (>=2.0,<3.0)
Requires-Dist: aws-resource-validator-cloudwatch (>=2.0,<3.0)
Requires-Dist: aws-resource-validator-cognito-idp (>=2.0,<3.0)
Requires-Dist: aws-resource-validator-dynamodb (>=2.0,<3.0)
Requires-Dist: aws-resource-validator-ec2 (>=2.0,<3.0)
Requires-Dist: aws-resource-validator-ecs (>=2.0,<3.0)
Requires-Dist: aws-resource-validator-elbv2 (>=2.0,<3.0)
Requires-Dist: aws-resource-validator-events (>=2.0,<3.0)
Requires-Dist: aws-resource-validator-firehose (>=2.0,<3.0)
Requires-Dist: aws-resource-validator-glue (>=2.0,<3.0)
Requires-Dist: aws-resource-validator-iam (>=2.0,<3.0)
Requires-Dist: aws-resource-validator-kinesis (>=2.0,<3.0)
Requires-Dist: aws-resource-validator-kms (>=2.0,<3.0)
Requires-Dist: aws-resource-validator-lambda (>=2.0,<3.0)
Requires-Dist: aws-resource-validator-logs (>=2.0,<3.0)
Requires-Dist: aws-resource-validator-rds (>=2.0,<3.0)
Requires-Dist: aws-resource-validator-redshift (>=2.0,<3.0)
Requires-Dist: aws-resource-validator-route53 (>=2.0,<3.0)
Requires-Dist: aws-resource-validator-s3 (>=2.0,<3.0)
Requires-Dist: aws-resource-validator-sagemaker (>=2.0,<3.0)
Requires-Dist: aws-resource-validator-secretsmanager (>=2.0,<3.0)
Requires-Dist: aws-resource-validator-sns (>=2.0,<3.0)
Requires-Dist: aws-resource-validator-sqs (>=2.0,<3.0)
Requires-Dist: aws-resource-validator-ssm (>=2.0,<3.0)
Requires-Dist: aws-resource-validator-stepfunctions (>=2.0,<3.0)
Requires-Dist: aws-resource-validator-sts (>=2.0,<3.0)
Requires-Dist: boto3
Requires-Dist: botocore
Requires-Dist: jinja2
Requires-Dist: pydantic (>=2.8,<3.0)
Description-Content-Type: text/markdown

# typed_boto3

A strongly-typed, SDK-like wrapper around `boto3`. Inputs and outputs on every
client method are concrete Pydantic models — no dicts, no magic strings.

## Install

```bash
poetry install
```

`typed_boto3` depends on [`aws-resource-validator`](https://pypi.org/project/aws-resource-validator/)
for the generated Pydantic models that describe every AWS request/response shape.

## Usage

```python
import typed_boto3
from typed_boto3 import ServiceName, Region, ClientConfig
from aws_resource_validator.pydantic_models.lambda_.lambda__classes import (
    CreateFunctionRequestTypeDef,
    FunctionCodeTypeDef,
)

config = ClientConfig(region=Region.US_EAST_1)
client = typed_boto3.client(ServiceName.LAMBDA, config)  # typed as LambdaClient

resp = client.create_function(
    CreateFunctionRequestTypeDef(
        FunctionName="my-fn",
        Runtime="python3.11",
        Role="arn:aws:iam::123456789012:role/my-role",
        Handler="app.handler",
        Code=FunctionCodeTypeDef(ZipFile=b"..."),
    )
)
# resp is a FunctionConfigurationResponseTypeDef
print(resp.FunctionArn)
```

The direct form is also supported:

```python
from typed_boto3 import LambdaClient
client = LambdaClient(ClientConfig(region=Region.US_EAST_1))
```

## Regenerating

```bash
poetry run python -m typed_boto3.generator --regions
poetry run python -m typed_boto3.generator --service lambda s3
```

