Commit Graph

365 Commits

Author SHA1 Message Date
John DiSanti 21df7234a6
Include SDK example/test projects in CI and centralize Cargo target directory (#636)
* 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
2021-08-09 12:25:40 -07:00
John DiSanti 04e09c2d3b
Allow the closure passed to `async_provide_credentials_fn` to borrow (#637)
* Allow the closure passed to `async_provide_credentials_fn` to borrow

* Update the CHANGELOG
2021-08-09 11:07:31 -07:00
Russell Cohen b2dff509e7
assume role chain parse tree (#632)
* 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>
2021-08-06 03:26:46 +00:00
John DiSanti 68984dc408
Refactor middleware to use new `operation::Response` instead of `http::Response<SdkBody>` (#635)
* 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
2021-08-05 17:44:58 -07:00
John DiSanti 8aa3a74af9
Remove generic body from `ParseHttpResponse` (#626)
* Remove generic body from `ParseHttpResponse`

* Update CHANGELOG
2021-08-04 17:31:48 -07:00
Russell Cohen 8011dc325d
Create PULL_REQUEST_TEMPLATE.md (#633)
Add a new PR template with more structure & a checkbox for updating the changelog
2021-08-04 20:50:54 +00:00
John DiSanti f7d270244d
Improve the sync models script and pull in new models (#631)
* Improve the sync models script

* Remove sdb model and add new route53 models
2021-08-03 15:03:54 -07:00
John DiSanti 1e92258691
Update AWS SDK models (#630) 2021-08-03 12:09:10 -07:00
John DiSanti dba6ec4093
Prepare August 3rd release (#628)
* Version bump generated SDK

* Update the CHANGELOG

* Make the changelog readable in a normal text editor
2021-08-03 17:50:06 +00:00
John DiSanti 7fa4af4a93
Fix Event Stream timestamp representation (#619)
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
2021-08-03 16:39:16 +00:00
Russell Cohen e5b7e22a0e
Cleanups in smithy_http::Operation (#625)
* Add copyright attribution to http

* Remove needless optimization in PropertyBag

* fix comment
2021-08-02 23:27:54 +00:00
John DiSanti 5d84a12085
Include `iotdataplane` in tier-2 services (#624)
* Include `iotdataplane` in tier-2 services

* Update CHANGELOG
2021-08-02 15:49:40 -07:00
John DiSanti 70999dadce
Implement timeouts for LazyCachingCredentialsProvider (#595)
* Implement timeouts for LazyCachingCredentialsProvider

* Rename refresh to reload

* Update CHANGELOG

* Fix clippy

* CR feedback

* Add note about panic on `LazyCachedCredentialsProvider` builder

* Fix doc comment code reference
2021-08-02 14:54:59 -07:00
Russell Cohen 03ae7cc6a1
Overhaul gradle inclusion/exclusion logic (#620)
* Overhaul gradle inclusion/exclusion logic

* Update changelog

* split tier1 services onto multiple lines
2021-07-30 21:18:54 +00:00
Russell Cohen 7a6414ea35
Backport change from aws-sdk-rust (#622)
* Backport change from https://github.com/awslabs/aws-sdk-rust/pull/162/files

* Update changelog
2021-07-30 21:08:57 +00:00
Russell Cohen 5e6c63b5f9
merge path in smithy endpoint (#621)
* 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
2021-07-30 16:58:57 -04:00
Russell Cohen f1a726c1d7
Smithy 1.9/1.10 Upgrade (#618)
* 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>
2021-07-30 15:25:10 +00:00
John DiSanti 9fef09af72
Implement Event Stream message frame ser/de in smithy-eventstream (#609)
* Implement Event Stream message frame ser/de in smithy-eventstream

* Add roundtrip fuzz target to smithy-eventstream

* Add more fuzz testing targets to smithy-eventstream

* Incorporate feedback

* Rename fuzz tests

* Refactor streaming use-case into MessageFrameDecoder

* Add fuzz target for fuzzing the message prelude

* Incorporate feedback
2021-07-29 11:17:59 -07:00
Russell Cohen a50c966ef2
change http checksums to be base64 encoded (#615)
* 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
2021-07-28 15:29:02 +00:00
Russell Cohen 6201a3833b
drop timestream services from full SDK (#613)
* drop timestream services from full SDK

* update changelog
2021-07-28 00:16:37 +00:00
Russell Cohen 08961db587
Update CHANGELOG for v0.18 (#612)
* Update CHANGELOG for v0.17

* Update CHANGELOG.md

* backport v0.16 and v0.17
2021-07-27 19:52:58 -04:00
Russell Cohen afa09008b5
prepare for all services release (#607)
* 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>
2021-07-27 19:35:55 -04:00
Russell Cohen b0d68dd120
Rollup of 4 pull requests (#610)
* 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>
2021-07-27 16:23:33 -04:00
Russell Cohen a88fff1afd
breaking: Remove make test-util and optional feature (#608)
* 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>
2021-07-27 14:15:46 +00:00
Doug 0e9a986bd0
Added CloudFormation code examples (#517)
* 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>
2021-07-26 18:59:15 +00:00
Russell Cohen 8aabc0fba8
Add support for parsing profiles (#600)
* Add support for parsing profiles

* Rewrite & simplify normalize

* missed a constant

* Cleanup a comment
2021-07-23 10:33:00 -04:00
Russell Cohen 6e3ebaaa44
Implement the "source" side of profile parsing (#594)
* 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>
2021-07-21 17:36:19 -04:00
John DiSanti 6342fdc68d
Constrain RFC-3339 timestamps to microsecond precision (#596)
* Constrain RFC-3339 timestamps to microsecond precision

* Update CHANGELOG

* Incorporate feedback
2021-07-21 19:57:08 +00:00
Russell Cohen fb00603c9a
Extract a function to set headers only when absent (#591) 2021-07-21 18:38:32 +00:00
Russell Cohen cd31c9c230
Bump generated SDK version to 0.0.13-alpha (#592) 2021-07-21 14:25:58 -04:00
John DiSanti 11029ed38f
Implement initial lazy caching credentials provider (#578)
* 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
2021-07-20 10:42:37 -07:00
John DiSanti f08a60cfa5
Fix `token_generator` test against different fastrand algorithms (#593) 2021-07-20 00:23:20 +00:00
Russell Cohen f810b1c3f5
don't strip whitespace when reading XML data nodes (#590)
* 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
2021-07-19 18:29:00 -04:00
Doug ea47391f87
Updated Snowball code examples to use -v (verbose) option. (#585)
* Updated Snowball code examples to use -v (verbose) option.

* Updated Snowball code examples based on feedback

Co-authored-by: Russell Cohen <rcoh@amazon.com>
2021-07-15 21:23:56 +00:00
Russell Cohen 346cdfe9e8
Make async provide credentials async-trait compatible (#588) 2021-07-13 11:07:56 -07:00
Kohei Suzuki 4002a7403f
Do not append additional headers when already added by add_headers() (#566)
* 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>
2021-07-12 15:52:19 -07:00
John DiSanti d25be58abd
Add Auto Scaling Plans and Application Auto Scaling to Tier-1 (#582)
* Add Auto Scaling Plans and Application Auto Scaling to Tier-1

* Apply suggestions from code review
2021-07-12 21:53:46 +00:00
Doug ba7ec2b639
Added AutoScaling code examples (#576)
* Added AutoScaling code examples

* CR feedback

Co-authored-by: Russell Cohen <rcoh@amazon.com>
Co-authored-by: John DiSanti <jdisanti@amazon.com>
2021-07-06 16:27:07 -07:00
John DiSanti 82cb50eae0
Use ChainProvider for region in Snowball examples (#580)
* Use ChainProvider for region in Snowball examples

* Change default_region to region in Cognito and Snowball examples
2021-07-06 10:27:42 -07:00
Landon James 3e4cec3774
Adding Snowball APIs and Corresponding Examples (#579)
* 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>
2021-07-06 09:29:12 -07:00
John DiSanti ba0d182e87
Add convenience to async provide credentials from a closure (#577) 2021-07-02 15:05:53 -07:00
John DiSanti 081387bda1
Breaking: Make it possible to asynchronously provide credentials (#572)
* Make it possible to asynchronously provide credentials

* CR feedback

* Add access key ID to credential debug print
2021-07-02 11:20:36 -07:00
John DiSanti 45f4e3d6a3
Update AWS SDK models (#575) 2021-07-02 10:21:07 -07:00
John DiSanti 4c36d8cce1
Add support for Cognito (#573)
* Add support for Cognito

* Use region ChainProvider in Cognito examples

* Minor fixes
2021-07-02 10:10:39 -07:00
Russell Cohen 33348f2a2a
ebs + unsignedPayloadTrait support (#567)
* 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
2021-07-01 17:07:28 -07:00
Russell Cohen 8e9b91d6a4
Add support for AWS-config and related improvements (#570)
* add AwsConfig example

* Error if tier 1 service fails to generate

* Generate `values` for named enum variants
2021-07-01 19:00:22 +00:00
Russell Cohen bef5278161
Remove idempotency token trait (#571)
* 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
2021-06-30 16:26:35 -07:00
Russell Cohen c10899da08
Backfill message & parse without case sensitivity (#565)
* Backfill message & parse without case sensitivity

* Allow empty errors for XML protocols
2021-06-30 21:59:01 +00:00
Doug 59f9c42ba6
Refactored KMS code examples (#550)
* 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>
2021-06-30 20:22:03 +00:00
Doug a4f2f512bb Refactored Polly code examples (#556)
* Refactored Polly code examples to use common example pattern; re-ordered crates in Cargo.toml

* Updated Polly code examples to use ? instead of expect()
2021-06-30 12:58:50 -07:00