* add: initial draft of bytestream callback RFC
* add: builder-style method
* update: remove callback insert method in favor of builder method
update: Arc callbacks instead of boxing them
remove: most bounds from ByteStreamReadCallback trait
add: PartialEq/Eq impl for Inner that disregards callback list
* update: RFC with SdkBody impl
update: RFC with checksum callback example
* update: respond to PR comments
* update: callback impls
* remove: Sync bounds from callback traits
* update: consolidate and simplify callback API
* fix: leftover terminology
* Add Support for Paginators
This commit adds pagination support for both clients. It does this via the `FnStream` abstraction which combines a rendezvous-channel with a closure to produce a stream. When the stream is polled, the underlying closure is polled to advance the computation which then pushes data into the channel.
Two paginators are generated:
1. `.paginate()` which produces a stream of `Result<Page, Err>`
2. `.paginate().items()` which produces a stream of `Result<Item, Err>` where items are flattened from the individual pages. This uses `TryFlatMap` to support conveniently generating a flat page iterator.
In addition, docs are generated to point customers towards the paginators.
* Add RFC, more tests
* backout unrelated changes
* Fix paginators for glacier
* Fix clippy error
* Add test for paginators that point to maps & fix apigateway paginator
* Fix docs
* remove extraeneous println
* Fix DynamoDB examples
* Disallow paginating operations with the idempotency token trait
* Apply suggestions from code review
misc typos / cleanups
Co-authored-by: Zelda Hessler <zhessler@amazon.com>
* CR feedback
* Fix typo
* Update changelog
* Apply suggestions from code review
Co-authored-by: John DiSanti <jdisanti@amazon.com>
* CR feedback round 1
* Rename paginate to into_paginator()
* update pr bot comment
Co-authored-by: Zelda Hessler <zhessler@amazon.com>
Co-authored-by: John DiSanti <jdisanti@amazon.com>
* Add RFC for a split release process
* Incorporate feedback
* Fix change checklist
* Simplify release process further
Co-authored-by: Russell Cohen <rcoh@amazon.com>
* service specific middleware
* Uncheck the boxes
* Update design/src/rfcs/rfc0006_service_specific_middleware.md
Co-authored-by: John DiSanti <jdisanti@amazon.com>
Co-authored-by: John DiSanti <jdisanti@amazon.com>
* Split out MakeOperationGenerator for HttpProtocolGenerator
* Clean up body metadata calculation
* Add debug instructions to readme
* Add example for Polly presigned requests
* Add ability to change payload signing type for query signing
* Generate special cased make operation functions for presigning
* Reorganize protocol generators
* Rename ProtocolConfig to CodegenContext and move to a central location
* Consolidate protocol classes in protocols package
* Make protocol generator names consistent
* Fully decompose ProtocolGenerator
* Add integration test for Polly presigning
* Add make_operation and presigned to reserved words
* Update presigning RFC
* Make Polly transforms reusable and add tests
* Fix RequestBindingGeneratorTest
* Update changelogs
* Remove `HttpBodySigningType`
* Perform model transformations up front
* Add checks to presigning transformers
* Fix `codegen-server` build
* Initial implementation of RestJson and Http ser/de
Signed-off-by: Bigo <1781140+crisidev@users.noreply.github.com>
* Visitor render operation shapes from server generators
Signed-off-by: Bigo <1781140+crisidev@users.noreply.github.com>
* Use a symlink for the ebs test model
* Revert "Use a symlink for the ebs test model"
This reverts commit 0c2adcbf12.
* Now the model is emitted in different files
* A little more general model generation
Signed-off-by: Bigo <1781140+crisidev@users.noreply.github.com>
* Use a very simple model to try the service generators
* Move serializer in its own folder
* Initial implementation of RestJson and Http ser/de
Signed-off-by: Bigo <1781140+crisidev@users.noreply.github.com>
* Visitor render operation shapes from server generators
Signed-off-by: Bigo <1781140+crisidev@users.noreply.github.com>
* Use a symlink for the ebs test model
* Revert "Use a symlink for the ebs test model"
This reverts commit 0c2adcbf12.
* Now the model is emitted in different files
* A little more general model generation
Signed-off-by: Bigo <1781140+crisidev@users.noreply.github.com>
* Use a very simple model to try the service generators
* Move serializer in its own folder
* Refactor RestJson to accomodate upstream changes
* Refactor a little RestJson1 and add simple RFC doc
* Remove inheritance from Json ser/de and refactor codegen visitor to
directly use the rendering functions
* Make operation.rs module public
* Use the protocol ID instead of its string representation
Signed-off-by: Bigo <1781140+crisidev@users.noreply.github.com>
* add: incomplete draft rfc for retry configuraion
* update: rfc based on suggestions
add: reference to SDK reference page on max_attempts
fix: heading levels
update: simplify shared config example
fix: copypaste error in EnvironmentVariableRegionProvider
* update: to use builder method called max_attempts
* fix: leftover language
* update: go back to RetryConfig
add: more definitions
update: examples
add: explainer for process of sending a request
add: note about breaking change to
update: changes checklist
add: note about breaking changes
* fix: use correct module for shard config
update: emit warn log for invalid AWS_MAX_ATTEMPTS
* add: note about where RetryConfigDecorator will be defined
add: note about panics when setting invalid max_attempts
* Add initial draft RFC for pre-signed URLs
* Change "pre-sign" to "presign" to match other AWS documentation
* Incorporate initial round of feedback
* Change `http::Request` to `PresignedRequest`
Co-authored-by: Russell Cohen <rcoh@amazon.com>
* Add initial RFC doc for supporting multiple HTTP versions
* Incorporate `SharedConfig` design and HTTP settings requirements
* Improve design for HTTP settings that vary per operation
* Create a place for RFCs to be merged into
* Refactor Smithy service tower to include a property bag with the response
* Add doc comments and rename functions on operation Request/Response
* Fix codegen
* Update CHANGELOG
* Attach PR number to CHANGELOG
* Fix test compile error
* CR feedback
* Fix AWS runtime tests
* Fix doc comment link
* Fix API gateway customization
* Fix AWS integration tests and update design doc
* Make it possible to run IAM test outside CI and fix it
* Add initial set of docs
* More design documentation updates
* Updates to the docs
* Update tenets again to remove the dependeny tenet
* Remove `!`
* Add more design documentation
* More updates to tenets
* More tenets updates
* tenets typo
* Rephrase as 'AWS SDK for Rust'
* rephrase tenets
* Add AwsEndpointResolver when constructing operations
This commit adds a customization for AWS-services to allow specifying an EndpointResolver, with a default fallback provided.
* Enforce no doc warnings, fix bug, add cargoCheck to CI
* Implement core Smithy endpoint support
This commit adds `Endpoint` to smithy-http & records our design decisions in `endpoint.md`. This provides support for the endpoint trait in Smithy. A design for endpoint discovery is proposed but is not currently implemented.
* Apply suggestions from code review
Co-authored-by: Lucio Franco <luciofranco14@gmail.com>
* More cleanups
Co-authored-by: Lucio Franco <luciofranco14@gmail.com>
* Http Operation traits and structures
Initial implementation of `Operation` for HTTP based services and `ParseHttpResponse`. I'm also starting to collect design documentation in `design`, an mdBook intended to serve as a repository for public facing design documentation.
* Update rust-runtime/smithy-http/src/body.rs
Co-authored-by: Jonathan Esterhazy <jonathan.esterhazy@gmail.com>
* Add retry policy
* Fix doctest failures
* Update rust-runtime/smithy-http/src/operation.rs
Co-authored-by: Kerem Kat <keremkat@gmail.com>
* Update rust-runtime/smithy-http/src/operation.rs
Co-authored-by: Kerem Kat <keremkat@gmail.com>
* Update design/src/operation.md
Co-authored-by: Kerem Kat <keremkat@gmail.com>
* Update design/src/operation.md
Co-authored-by: Kerem Kat <keremkat@gmail.com>
* Update rust-runtime/smithy-http/src/response.rs
Co-authored-by: Kerem Kat <keremkat@gmail.com>
* Update design/src/operation.md
Co-authored-by: Kerem Kat <keremkat@gmail.com>
* Update design/src/operation.md
Co-authored-by: Kerem Kat <keremkat@gmail.com>
Co-authored-by: Jonathan Esterhazy <jonathan.esterhazy@gmail.com>
Co-authored-by: Kerem Kat <keremkat@gmail.com>