* Create workspaces for AWS SDK examples and tests and add CI step to verify them
* Centralize the Cargo target directory
* Remove the separate example workspace for now since it conflicts with the generated one
* Fix the rustfmt step
* Fix build path
* Fix mkdir in standalone tests
* assume role chain parse tree
This commit builds the parsing half of our AssumeRoleProvider implementation. Our implementation decouples
the (fairly complex) task of actually turning a profile file into a series of providers from the (fairly simple)
task if iterating through credential providers and executing them.
The descriptive test cases from the spec have been ported to JSON and some new ones have been added and they cover our implementation fairly exhaustively.
Future commits will implement a named-provider factory, wire up the STS client and actually turn this into a credentials provider.
* assume role chain parse tree
This commit builds the parsing half of our AssumeRoleProvider implementation. Our implementation decouples
the (fairly complex) task of actually turning a profile file into a series of providers from the (fairly simple)
task if iterating through credential providers and executing them.
The descriptive test cases from the spec have been ported to JSON and some new ones have been added and they cover our implementation fairly exhaustively.
Future commits will implement a named-provider factory, wire up the STS client and actually turn this into a credentials provider.
* Update aws/rust-runtime/aws-auth-providers/src/profile/repr.rs
Co-authored-by: John DiSanti <jdisanti@amazon.com>
* Deal with the aws-auth-providers package being special
* add copyright header
* update changelog
Co-authored-by: John DiSanti <jdisanti@amazon.com>
* 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
Also add ability to write headers to a buffer by themselves.
* Fix Event Stream timestamp representation
* Fix epoch milli conversions and move them into smithy-types
* merge path in smithy endpoint
Fixes#574. This commit fixes a bug in Smithy Endpoint merging that caused it to ignore the path of a custom endpoint.
* fix clippy error
* Backport array iter
* smithy 1.9.1 upgrade & primitive encode/decode
This upgrades to Smithy 1.10, but the major change is a complete overhaul of how primitives are formatted and parsed. Primitive serialization was migrated and unified into Smithy Types with the end requirement of dealing with special float serialization semantics.
* Switch to Smithy Core S3 Customization Trait
Smithy 1.9.1 brings S3UnwrappedXmlOutput as a vended trait. This commit pulls in the new model & uses that trait.
* Fix clippy warnings
* Fix doc links
* fix kotlin formatting
* Fix s3 customization to use the operation shape
* Ensure that numbers in string don't parse as numbers
* remove unused itoa
* Apply suggestions from code review
Co-authored-by: John DiSanti <jdisanti@amazon.com>
* Fix tests, CR feedback
* rename parse to parse_smithy_primitive
* Fix some more clippy errors
* Update changelog
Co-authored-by: John DiSanti <jdisanti@amazon.com>
* change http checksums to be base64 encoded
due to a misreading of the spec, the http checksums where hex encoded when they should actually be base64 encoded
* Update changelog
* prepare for all services release
- denylist glacier & iotdevice manager which are known to not work pending custom SDK work
- update CI job to have the all-service artifact be named `aws-sdk` and the smaller tier1 artifact be named `tier1`
* fix ci, update changelog
* Update .github/workflows/ci.yaml
* Error on disabled service mismatch & fix typo
* update changelog entry with suggestions
Co-authored-by: John DiSanti <jdisanti@amazon.com>
* Updated EBS code example docs (#587)
* Updated EBS code example docs; added delete-snapshot, get-snapshot-state, and list-snapshots code examples
* Updated EBS code examples based on feedback
* Updated EBS code examples to follow latest code guidelines and proper service naming
* Refactored Kinesis code examples (#549)
* Reordered crates in Cargo.toml; refactored code examples to use common example pattern
* Updated Kinesis code examples to use ? instead of expect()
* Updated Kinesis code examples based on feedback
* Refactored Lambda code examples (#552)
* Re-ordered crates in Cargo.toml; refactored Lambda code examples to use common example pattern; added change-java-runtime and list-all-functin-runtimes code examples
* Updated Lambda code examples to use ? instead of expect()
* Updated Lambda invoke-function code example to use InvokeErrorKind::ResourceNotFoundException
* Updated Lambda code examples to use latest pattern
* Refactored CognitoIdentity code examples (#584)
* Updated CognitoIdentity code examples to use -v (verbose) option; added describe-identity-pool and list-pool-identities
* Updated docs for Cognito identity pool code examples
* Updated CognitoIdentity list-pool-identies code example based on feedback
* Updated Cognito identity pool code examples based on feedback
Co-authored-by: Doug <dougsch@amazon.com>
* breaking: Remove make test-util and optional feature
for historical reasons, `test-util` was enabled by default in aws-hyper. This change:
* removes the pub use for test util in aws-hyper
* updates usages to use it in smithy-client
* updates the crate dependencies to correctly pull in the new feature but only for development
NOTE: please wait for a full cargoTest all crates prior to merging this change.
* Update CHANGELOG.md
* fix non-optional smithy client dependencies
* Update CHANGELOG.md
Co-authored-by: John DiSanti <jdisanti@amazon.com>
Co-authored-by: John DiSanti <jdisanti@amazon.com>
* Added CloudFormation code examples
* Updated CloudFormation create-stack example based on feedback
* Updated CloudFormation describe-stack example based on feedback
* Removed extra line breaks in Cargo.toml file and orphaned comments in CloudFormation create-stack example
* Clarified how we get stack status in CloudFormation describe-stack example
* Updated CloudFormation code examples to follow latest code guidelines and proper service naming
Co-authored-by: Russell Cohen <rcoh@amazon.com>
* Introduce environment abstraction
* Update region provider to use ProcessEnvironment
* Update credentials provider to use env var abstraction
* implement the "source" side of profile parsing
This commit adds support for the "source" side of profile file parsing:
Given a filesystem/environment, what files should we actually be reading?
* run runtime tests on windows
* Update changelog
* Update ci.yaml
don't run rustfmt on windows
* Apply suggestions from code review
Co-authored-by: John DiSanti <jdisanti@amazon.com>
* cr feedback / refactorings to profile source loading
* refactor runtime test job
* Add missing workspace cargo.toml
* Fix working directory issue
* fix windows test for new API
* special case test for windows behavior
* Always compile the tests but conditionally ignore
* Apply suggestions from code review
Co-authored-by: John DiSanti <jdisanti@amazon.com>
Co-authored-by: John DiSanti <jdisanti@amazon.com>
* Implement initial lazy caching credentials provider
* Rename TimeProvider to TimeSource
* Move TimeSource to its own module
* Eliminate Inner layer and add expiry_mut to Credentials
* Move Cache to its own module and fix multithreading issue
* Add comments
* Make refresh_timeout unimplemented
* Combine Provider with LazyCachingCredentialsProvider
* CR feedback
* don't strip whitespace when reading XML data nodes
smithy-xml had a bug that erroneously stripped whitespace when parsing data nodes. This created incorrect parsers when parsing keys that contained spaces. An S3 protocol test is included.
* Update CHANGELOG.md
* fix s3 list-objects
* Updated Snowball code examples to use -v (verbose) option.
* Updated Snowball code examples based on feedback
Co-authored-by: Russell Cohen <rcoh@amazon.com>
* Do not append additional headers when already added by add_headers()
* Add S3 protocol test and incorporate feedback
* Remove unnecessary lint attribute
Co-authored-by: John DiSanti <jdisanti@amazon.com>
* Adding a list-jobs example for the Snowball API
* Adding functional examples for Snowball APIs describe-addresses and create-addresses (which is a little meatier and shows the builder pattern)
* updating copyright notices
* cleaning up one copyright notice I missed
Co-authored-by: Landon James <lnj@amazon.com>
* ebs + unsignedPayloadTrait support
1. Add support for the "unsignedPayoad" Smithy trait. When an operation is targetted with this trait, rather than signing the body of the operation, we will sign the literal string `Unsigned-Payload`.
This is the same behavior that will occur if the body is streaming and not directly signable.
2. Add an EBS example which utilizes this new signing behavior.
* Back out debugging change
* remove unused mut
* remove unused import
* fix clippy error
* Add protocol test for EBS
* Fix gradle build
* remove idempotency token trait
There is no compelling reason to provide your own implementation of the `IdempotencyToken` trait. Exposing this trait left us open to unecessary backwards compatibility risks. Instead,
this commit refactors idempotency token to be a simple struct/enum.
* fix clippy
* Deleted KMS helloworld code example as it is a verbose version of generate-random; re-ordered crates in Cargo.toml; refactored KMS code examples to use common example pattern
* Updated KMS code examples to use ? instead of expect()
Co-authored-by: Russell Cohen <rcoh@amazon.com>
* Refactored Polly code examples to use common example pattern; re-ordered crates in Cargo.toml
* Updated Polly code examples to use ? instead of expect()