aws-sdk

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:

  • Turn Smithy JSON-AST into AST nodes
  • Turn the AST nodes into Type structures with traits
  • Accurately parse traits according to types
  • Turn the Type --structures into macros-- generate code via ECR

--- OBSOLETE ---

  • Process request to set query vars

  • 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 ---

  • Place location data into annotations

  • Protocols

    • [x] XML Rest (Functional! 💫)
      1. [x] Serialize \ Deserialize
      1. [x] Request \ Response processing
      1. [ ] Exceptions
    • [ ] JSON Rest
      1. [ ] Serialize \ Deserialize
      1. [ ] Request \ Response processing
      1. [ ] Exceptions
    • [ ] JSON 1.1
      1. [ ] Serialize \ Deserialize
      1. [ ] Request \ Response processing
      1. [ ] Exceptions
    • [ ] Query
      1. [ ] Serialize \ Deserialize
      1. [ ] Request \ Response processing
      1. [ ] Exceptions
    • [ ] EC2
      1. [ ] Serialize \ Deserialize
      1. [ ] Request \ Response processing
      1. [ ] Exceptions
  • Figure out modular client architecture

  • Add macro settings for the client

  • Use awscr-signer to sign requests

  • Specs and docs

Installation

  1. Add the dependency to your shard.yml:

    dependencies:
      aws-sdk:
        github: klirix/aws-sdk
    
  2. 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

  1. Fork it (https://github.com/klirix/aws-sdk/fork)
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

Contributors

Owner
github statistic
  • 0
  • 0
  • 0
  • 0
  • 2 days ago
  • March 28, 2021
License

MIT License

Links
Synced at

Tue, 20 Apr 2021 07:18:04 GMT