* Split SDK service checks from example checks
* Delete examples
* Take examples from `aws-doc-sdk-examples`
* Fix example checkout
* Fix example manifests after relocation
* Update changelog
* Add SSO to the list of circular dep supressions
* Update CHANGELOG.next.toml
Co-authored-by: John DiSanti <jdisanti@amazon.com>
Co-authored-by: John DiSanti <jdisanti@amazon.com>
* Fix paginator bug where `None` was returned immediately
The escape hatch added by aws-sdk-rust#391 did not properly handle the case where the first response was `None` and _not_ the empty string. This diff:
- Checks for emptiness for both maps and strings
- Fixes the check so that an initial `None` input does not cause an incorrect paginator error
* Update changelog
* Apply suggestions from code review
Co-authored-by: Zelda Hessler <zhessler@amazon.com>
* rustfmt
Co-authored-by: Zelda Hessler <zhessler@amazon.com>
* Add Support for SSO
This commit adds support for the SSO credential provider, which enables the aws-config to support using SSO when specified in `~/.aws/config`.
* Rename & add test of configuration failure
* Add SSO to the smoke test list
* CR improvements
- Improve error messages
- zeroize token
- add track_caller to improve test failure error messages
* Apply suggestions from code review
Co-authored-by: John DiSanti <jdisanti@amazon.com>
* Update changelogs
Co-authored-by: John DiSanti <jdisanti@amazon.com>
* add: links to related types for fluent builders
* update: CHANGELOG.next.toml
* update: generate fancy documented lists
* refactor: put docs on client builder methods instead of fluent builder
rename: generateShapeMemberList -> generateShapeMemberDocs
refactor: move generateShapeMemberList to FluentClientDecorator.kt
update: appease spellchecker
* remove: extra line in docs
* remove: unnecessary snake case conversion
* 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>
* fix: in generated docs, convert bare anchor tags to pre
* update: CHANGELOG.next.toml
* update: use html transformation instead of regex find/replace
* Update codegen/src/main/kotlin/software/amazon/smithy/rust/codegen/rustlang/RustWriter.kt
* Clone-able structs
* Change log entry
* Update CHANGELOG.next.toml
Co-authored-by: Russell Cohen <russell.r.cohen@gmail.com>
* Added two Clone directives and integration test
Co-authored-by: Russell Cohen <russell.r.cohen@gmail.com>
Co-authored-by: Russell Cohen <rcoh@amazon.com>
* region function documented
* Example changelogs back
* Solve doc error
* text fixes (still fails)
* added back changelog items accidently removed
* refactor and fix test
* fix test
Co-authored-by: Russell Cohen <rcoh@amazon.com>
* update: don't generate useless Into<impl T>
* update: changelog
* remove: unnecessary into
* update: use helper fns to generate shared code
* refactor: simplify type-to-argument converter and make it act on all RustTypes
update: fixes predating this PR
* Add recursion detection middleware to the default middleware stack
Side refactorings:
- move AWS retry logic into its own module
- small update to protocol test to make it a little easier to use
* fixups
* Fix clippy
* Add more tests and comments
* Add Route53 Hosted Zone Trimming
Route53 requires a customization where `/hostedzone/` is stripped from hosted zone arguments when round-tripped. This adds a trait and customization to the route53 model to trim hosted zone prefixes.
* Add missing copyright header
* Also allow no leading slash
* Add route53 to smoke test because it has unit tests
* Update changelog
* Add missing call to flush()
* Remove unused env_logger depedendency
* [fix] Sleep not passed to ECS provider
When constructing an ECS credential provider, sleep_impl was not properly passed along from the provider config. This adds a test that asserts that retries will be made, and fixes the bug.
* Fix clippy lint
* Update changelog
Co-authored-by: Zelda Hessler <zhessler@amazon.com>
* Move additional-ci step into SDK smoke test
* Add `cargo hack` test to `aws-config` and make it pass
* Fix warning introduced by merge
* Incorporate feedback
* Fix native-tls example
* Include non-service-specific examples in the generated workspace
* Update changelog
* Fix missing dependency for compilation
* Fix typo in Kinesis example
* update: use shared encoder definition when encoding url paths, query strings
add: query string writer test
add: changelog entry for bugfix
* format: test file
* fix: integration test
add: ", ^, `, \, (space), {, }, and | to list of chars to percent encode
* add: tracing and tracing-subscriber dep to generated integration tests
* add: canonical req query param test
remove: obsolete LABEL_SET ascii set
* fix: outdated aws-hyper import
* add: native-tls example and test
update: aws-config to correctly separate the native-tls and rustls features for its dependencies
fix: native-tls feature gate typo
update: prefix unused id field with an underscore
* update: CHANGELOG.next.toml
* remove: unnecessary aws-sdk-sts feature deps from aws-config
* remove: obsolete dep features
* Fix label & query URI encoding
https://github.com/awslabs/aws-sdk-rust/issues/331 demonstrated that we were failing to properly encode characters for URI path components and query components in several situation. This:
- Fixes the specific bugs
- Adds proptests (run locally with 16K cases) to verify that this is the complete set.
- Adds an S3-specific protocol test that targets this issue
* Make the test a bit stronger
* Update changelog
* Fix several bugs associated with retry/sleep
The sleep implementation was late-bound but early loaded in retry which created a large surface area for bugs & meant that we emitted a lot of spurious warnings. This commit:
- Removes more kruft from aws-hyper and deals with the consequences
- Cleans up the way that HTTP clients are generated
- Passes in sleep to each incarnation of the retry controller to work around issues caused by late-binding vs. early binding sleep.
* first round of cleanups
* delete unused import
* Update integration tests
* Fix examples
* Fix aws-smithy-client docs
* Clippy fix
* fix flaky test
* Fix which relies on tokio/io
* Use provided sleep_impl in aws-smithy-client::retry
Previously, aws_smithy_client was hard coded to use tokio::sleep. This change:
- threads the sleep implementation into the retry controller
- moves the integration test out of aws-hyper and into aws-smithy-client
- takes a first pass at fixing the cargo featres (cargo hack --feature-powerset passes now)
* cleanups
* several test fixups
* Use tristate to conditionally log
* Update changelog