{"id":18779165,"url":"https://github.com/trisongz/aws-sdk","last_synced_at":"2025-12-17T21:30:20.848Z","repository":{"id":57413334,"uuid":"433686894","full_name":"trisongz/aws-sdk","owner":"trisongz","description":"Async boto3 with Autogenerated Data Classes","archived":false,"fork":false,"pushed_at":"2021-12-05T01:04:40.000Z","size":11,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-11T04:06:56.596Z","etag":null,"topics":["aws","aws-api","boto3"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/trisongz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-12-01T04:50:48.000Z","updated_at":"2021-12-05T01:04:43.000Z","dependencies_parsed_at":"2022-09-15T03:31:04.149Z","dependency_job_id":null,"html_url":"https://github.com/trisongz/aws-sdk","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trisongz%2Faws-sdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trisongz%2Faws-sdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trisongz%2Faws-sdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trisongz%2Faws-sdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/trisongz","download_url":"https://codeload.github.com/trisongz/aws-sdk/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239690330,"owners_count":19681085,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","aws-api","boto3"],"created_at":"2024-11-07T20:19:01.903Z","updated_at":"2025-12-17T21:30:20.816Z","avatar_url":"https://github.com/trisongz.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# awspydk\n Async boto3 with Autogenerated JIT Data Classes\n\n---\n\n## Motivation\n\nThis library is forked from an internal project that works with a _lot_ of backend AWS APIs, and I got tired of having to constantly parse the returned responses before being able to work with them for (most of the time), a few seconds. Any API-driven application that uses `boto3` tends to suffer from being syncronous only. So this library solves a few major problems:\n\n- Enables both `sync` and `async` from the same client.\n\n- Client can be called implicitly without needing initialization, i.e. you can directly use `AwsClient` without needing to initialize.\n\n- Dynamically generates class functions based on the `boto3.client` child functions, and allows you to call them. This is useful in `repl` or `ipython` environments where type-hints are _always_ helpful, especially when the names are so long.\n\n- Automatically initializes the `aws` client if its not initialized from the defaults, simply by calling it.\n\n- Translates all results into Automatically Generated Dataclasses through `lazycls`.\n    - Can be disabled by setting `aws.config.AutoCls = False`\n\n\n---\n\n## Quickstart\n\n```bash\npip install --upgrade awspydk\n```\n\n```python\nfrom aws import AwsClient\n\n# Sync Method\nbuckets = AwsClient.v1.s3_list_buckets(as_cls=True)\n\n# Async Method\nbuckets = await AwsClient.v1.async_s3_list_buckets(as_cls=True)\n\n\"\"\"\nBoth yield the same results.\nThe underlying classes are auto-generated from Pydantic BaseModels, so anything you can do with Pydantic Models, you can do with these.\n\n{\n    'Buckets': [\n        AwsS3Bucket(CreationDate=datetime.datetime(2021, 8, 25, 16, 42, 46, tzinfo=tzutc()), Name='...'),\n        AwsS3Bucket(CreationDate=datetime.datetime(2021, 9, 2, 17, 54, 56, tzinfo=tzutc()), Name='...',\n        AwsS3Bucket(CreationDate=datetime.datetime(2021, 9, 3, 4, 20, 10, tzinfo=tzutc()), Name='...'),\n        AwsS3Bucket(CreationDate=datetime.datetime(2021, 9, 1, 20, 50, 33, tzinfo=tzutc()), Name='...'),\n        AwsS3Bucket(CreationDate=datetime.datetime(2021, 9, 2, 4, 2, 28, tzinfo=tzutc()), Name='...')\n    ],\n    'Owner': AwsS3Owner(DisplayName='...', ID='...')\n}\n\"\"\"\n\n## Change Regions\nAwsClient.reset(region='us-west-1')\n\n## Change the defaut clients created\nfrom aws.config import DefaultClients\n\n## Modify to only create ec2 client\nDefaultClients = {\n    'ec2': 'ec2'\n}\n\n## Reset implicitly\nAwsClient.reset()\n\n\nBotoKwargs = {\n    'AWS_PROFILE': ...,\n}\n\n## Reset Explicitly\nAwsClient.reset(clients=DefaultClients, boto_kwargs=BotoKwargs)\n\n\n```\n\n## Client Defaults\n\nThese are found in `aws.config`\n\n```python\nAwsRegion = envToStr('AWS_REGION', 'us-east-1')\nAutoCls = envToBool('AWSSDK_AUTOCLS', 'true')\n\n## These are the default clients that will be autogenerated.\n## Key is the shorthand, value is the actual AWS API Name in boto3\nDefaultClients = {\n    'ec2': 'ec2', \n    'ecr': 'ecr', \n    'r53' :'route53', \n    'acm': 'acm',\n    'elb': 'elb',\n    'elbv2': 'elbv2',\n    'asg': 'autoscaling',\n    's3': 's3'\n}\n\n## These are the default resources that will be autogenerated.\n## Key is the shorthand, value is the actual AWS Resource API Name in boto3\nDefaultResources = {\n    'Ec2': 'ec2',\n    'S3': 's3',\n    'Iam': 'iam'\n}\n\n# These are the default filter args for querying\nDefaultFilterArgs = {\n    'string_only': True,\n    'remove_null': True\n}\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrisongz%2Faws-sdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftrisongz%2Faws-sdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrisongz%2Faws-sdk/lists"}