aws-sdk
WIP!!!
This is not as much as an AWS library itself, as much as a reverse-engeneered codegen for smithy json AST + simple general aws client.
Smithy types are up to date with typescript aws sdk v3 library/
TODO
- [x] Turn Smithy JSON-AST into AST nodes
- [x] Turn the AST nodes into Type structures with traits
- [x] Accurately parse traits according to types
- [x] Turn the Type --structures into macros-- generate code via ECR
--- OBSOLETE ---
-
[x] Process request to set query vars
-
[x] Process request to set headers
-
[ ] Make the scalar structures be both JSON and XML serializable
-
- [ ] Process request to set xml body
-
- [ ] Process response to parse xml
-
[ ] Process request to set json --- /OBSOLETE ---
-
[x] Place location data into annotations
-
[ ] Protocols
-
- [x] XML Rest (Functional! 💫)
-
-
- [x] Serialize \ Deserialize
-
-
-
- [x] Request \ Response processing
-
-
-
- [ ] Exceptions
-
-
- [ ] JSON Rest
-
-
- [ ] Serialize \ Deserialize
-
-
-
- [ ] Request \ Response processing
-
-
-
- [ ] Exceptions
-
-
- [ ] JSON 1.1
-
-
- [ ] Serialize \ Deserialize
-
-
-
- [ ] Request \ Response processing
-
-
-
- [ ] Exceptions
-
-
- [ ] Query
-
-
- [ ] Serialize \ Deserialize
-
-
-
- [ ] Request \ Response processing
-
-
-
- [ ] Exceptions
-
-
- [ ] EC2
-
-
- [ ] Serialize \ Deserialize
-
-
-
- [ ] Request \ Response processing
-
-
-
- [ ] Exceptions
-
-
[x] Figure out modular client architecture
-
[ ] Add macro settings for the client
-
[ ] Use awscr-signer to sign requests
-
[ ] Specs and docs
Installation
-
Add the dependency to your
shard.yml
:dependencies: aws-sdk: github: klirix/aws-sdk
-
Run
shards install
Usage
Do not
Do not use it for now
class MyClient < AWSSDK::Client
include AmazonS3::Methods
include AmazonLightsail::Methods
access_key ENV["ACCESS_KEY"]
secret_key ENV["SECRET_KEY"]
region "us-east-1"
end
aws_client = MyClient.new(region: "region_override")
buckets = aws_client.s3.get_bucket_objects "buck"
instances = aws_client.lightsail.get_instances
Development
TODO Write development instructions here
Known Issues
Cant annotate already existing message field on Exception Special cases are weird
Contributing
- Fork it (https://github.com/klirix/aws-sdk/fork)
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request
Contributors
- Askhat Saiapov - creator and maintainer