Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rebase rusoto master #1

Merged
merged 206 commits into from
Nov 18, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
206 commits
Select commit Hold shift + click to select a range
399b255
Deserialize PostTextResponse correctly by allowing null values in the…
Jul 6, 2019
0e2a0b4
Allow creating a HttpClient from a Builder
Aaron1011 Jul 11, 2019
8bf099f
update botocore to 1.12.187
softprops Jul 12, 2019
0da0191
add special case generation of PostTextResponse slots field
Jul 12, 2019
4204bbf
regenerate services with the updated botocore data
softprops Jul 12, 2019
f8de949
update changelog
softprops Jul 12, 2019
6bda35a
fix markdown fmt
softprops Jul 12, 2019
a56ee73
avoid type name collision for CodeCommit#BatchDescribeMergeConflictsE…
softprops Jul 12, 2019
fc2fef9
regen services
softprops Jul 12, 2019
136eeb8
update code comment
softprops Jul 12, 2019
f138851
add missing else to lex runtime slots generation
Jul 12, 2019
b8c4c83
Merge pull request #1472 from Aaron1011/feature/add-builder
matthewkmayer Jul 19, 2019
51435a1
Take some clippy lints.
matthewkmayer Jul 23, 2019
831dcfd
Apply more clippy lints.
matthewkmayer Jul 23, 2019
c51812f
More clippy lints.
matthewkmayer Jul 23, 2019
6392cfe
Clippy linting again.
matthewkmayer Jul 23, 2019
66cca37
Merge pull request #1479 from rusoto/clippy-crategen
matthewkmayer Jul 24, 2019
ca68028
Merge branch 'master' of github.com:rusoto/rusoto into lex-runtime-nu…
Jul 25, 2019
d9335af
dont change the .values() call brought in from merge conflict
Jul 25, 2019
0b8a299
Merge pull request #1464 from itsHabib/lex-runtime-null-slots
matthewkmayer Jul 26, 2019
2d68b42
Add me-south-1 region (Bahrain)
Aug 1, 2019
d4bbe89
Add x-amz-content-sha256 header to signed and canonical headers. Chec…
fan-tom Aug 19, 2019
a851616
impl Eq and Hash on Region
akshayknarayan Aug 20, 2019
6ffc955
Merge pull request #1480 from mcqueenjordan/patch-1
matthewkmayer Aug 22, 2019
f241be5
Merge pull request #1487 from akshayknarayan/master
matthewkmayer Aug 22, 2019
7c98c2c
Fix FMS integration test.
matthewkmayer Aug 23, 2019
fa25bbc
Merge pull request #1490 from rusoto/fix-fms-int-test
matthewkmayer Aug 23, 2019
7b32d94
Merge pull request #1486 from fan-tom/feature/#1463_content_sha_header
matthewkmayer Aug 24, 2019
715fd3f
Fix Pipelines badges in READMEs.
matthewkmayer Aug 25, 2019
d3960eb
Merge pull request #1491 from rusoto/fix-pipelines-badge
matthewkmayer Aug 25, 2019
609378a
Fix for ignoring profile config comments
Aug 25, 2019
05c255d
Fix for ignoring profile config comments
Aug 25, 2019
47a3317
Merge branch 'fix_profile_config_comments' of github.com:rflaperuta/r…
Aug 25, 2019
0ca2f3e
Fix Profile Config Loading should ignore comments
Aug 26, 2019
2450431
Merge branch 'fix_profile_config_comments' of github.com:rflaperuta/r…
Aug 26, 2019
ea3aa3d
Update hyper-rustls to 0.17.1
matthewkmayer Aug 30, 2019
43d8804
Merge pull request #1494 from rusoto/update-hyper-rustls-0.17.1
matthewkmayer Aug 30, 2019
958d9fa
Merge pull request #1492 from rflaperuta/fix_profile_config_comments
matthewkmayer Aug 31, 2019
0406334
Handle match as a field name in models
May 10, 2019
9c32226
Add App Mesh as a generated service
May 10, 2019
457fb7c
Update CHANGELOG
Sep 8, 2019
3bed5e8
Merge pull request #1382 from dastbe/add-appmesh
matthewkmayer Sep 8, 2019
c47fec3
Fix service_crategen to parse operations with multiple static params
Sep 10, 2019
f6bdcf1
Merge pull request #1502 from clumsy/master
matthewkmayer Sep 13, 2019
7d49e9a
refactor integration tests- roughly test per behavior, use a struct …
Sep 13, 2019
a60be44
udpdate CHANGELOG
Sep 13, 2019
1a56709
resolve merge conflict
Sep 13, 2019
e8e52d4
PR comments, set bucket name on test client creation, use println ove…
Sep 17, 2019
25be37b
update botocore to 1.12.230
softprops Sep 18, 2019
38d7daa
regenerate services with the updated botocore data
softprops Sep 18, 2019
6d45991
Merge branch 'master' of https://github.com/rusoto/rusoto into update…
softprops Sep 18, 2019
23b1f7e
avoid name conflict with CodeCommit BatchGetCommitsError enum
softprops Sep 18, 2019
e5315c1
regenerate services with the updated botocore data
softprops Sep 18, 2019
dc876b8
parse Athena error message
hhatto Sep 18, 2019
6b2113a
CloudWatchEvents is now officially called EventBridge
softprops Sep 18, 2019
acdbff1
special note about EventBridge rename in changelog
softprops Sep 18, 2019
9fe140b
regenerate services with the updated botocore data
softprops Sep 18, 2019
7e74dd1
Recover original environment after a failed test
iliana Sep 18, 2019
3969784
Read session token from `credential_process`
iliana Sep 18, 2019
b566317
Read `credential_process` setting from correct profile
iliana Sep 18, 2019
44615d4
Update to latest sha2 and hmac crates.
metajack Sep 24, 2019
eb5d43b
build(deps): replace `url` 1.7.4 with `percent-encoding` 2.1.0
ErichDonGubler Sep 24, 2019
bda52ec
Update to latest md5, base64 and xml-rs
paolobarbolini Sep 25, 2019
57807b8
Merge pull request #1474 from softprops/update-botocore-1.12.187
matthewkmayer Sep 26, 2019
b50e6dc
Merge pull request #1511 from ErichDonGubler/percent-encoding-2.1.0
matthewkmayer Sep 26, 2019
ef51ca5
Add support for non-signing clients to make request signing an orthog…
Sep 26, 2019
cac6331
Formatting changes caused by cargo fmt.
Sep 9, 2019
7046b00
Make cargo clippy happy by fixing two warnings.
Sep 9, 2019
d1466e3
Updated services with new constructor function taking Client and Regi…
Sep 26, 2019
f291ac6
add changelog entry
Sep 13, 2019
e6412d4
- Fix doc test if environment is not clear
Sep 12, 2019
eeff21e
Generated services after clippy fixes.
Sep 26, 2019
3c1d6e4
- Added integration tests
Sep 12, 2019
5025cee
- Used "make generate" to ensure consistent/reproducible formatting o…
Sep 26, 2019
09f6e59
Merge pull request #1500 from alex-berger/feature/non-signing-client
matthewkmayer Sep 27, 2019
37bd6df
Regenerate crates with Rust 1.38.0.
matthewkmayer Sep 27, 2019
fdd67f8
Merge pull request #1506 from hhatto/improve-parse-error-message-on-o…
matthewkmayer Sep 27, 2019
0c4ab6f
Merge pull request #1514 from rusoto/regenerate-rust-1.38.0
matthewkmayer Sep 27, 2019
e5b5484
Merge pull request #1513 from paolobarbolini/update-md5-base64-xml
matthewkmayer Sep 27, 2019
d3eafcd
Merge branch 'master' of https://github.com/rusoto/rusoto into s3-int…
Sep 29, 2019
6c54073
Merge pull request #1510 from metajack/update-sha2-hmac
matthewkmayer Sep 29, 2019
6d8207f
PR comments - remove unused code
Sep 30, 2019
260169a
Merge pull request #1505 from itsHabib/s3-integration-tests
matthewkmayer Sep 30, 2019
93e6f41
dont decode uri before encoding it
Oct 2, 2019
2ce81aa
update CHANGELOG
Oct 2, 2019
301ce9a
Merge pull request #1508 from iliana/credential-test-env
matthewkmayer Oct 3, 2019
bca58a7
Add EC2 Instance Connect
Oct 3, 2019
a9d9e43
Add words on support for non-AWS services like Ceph etc...
matthewkmayer Oct 4, 2019
b060a9b
some clippy fxing
sepiropht Oct 4, 2019
8ebae02
Merge pull request #1517 from dmcgillen/add-ec2-instance-connect
matthewkmayer Oct 4, 2019
9cd6d57
Merge pull request #1519 from sepiropht/clippy-fixes
matthewkmayer Oct 4, 2019
7fb7244
more clippy-fixes
sepiropht Oct 7, 2019
1124cd0
Merge pull request #1518 from rusoto/other-s3-services
matthewkmayer Oct 8, 2019
7d7f1e4
Merge pull request #1520 from sepiropht/clippy-fixes-#2
matthewkmayer Oct 8, 2019
f82fb0c
Start of 0.41.0 release
matthewkmayer Oct 8, 2019
81b501c
Regenerate services, get CHANGELOG up to date.
matthewkmayer Oct 8, 2019
8ff5a2e
add top level documentation about not expecting already encoded URI's
Oct 8, 2019
2dc36f4
Merge branch 'master' of https://github.com/rusoto/rusoto into decode…
Oct 8, 2019
4fa0fc8
Merge pull request #1521 from rusoto/release-0.41.0
matthewkmayer Oct 8, 2019
bca3729
Update RELEASING doc with better guidance on versions.
matthewkmayer Oct 9, 2019
3809584
Merge branch 'master' of https://github.com/rusoto/rusoto into decode…
Oct 9, 2019
ebd309f
Fix regression in session token handling (#1527)
iliana Oct 10, 2019
2153462
chore: update skeptical dependencies
drexler Oct 10, 2019
df96e8c
Merge pull request #1528 from iliana/issue-1527
matthewkmayer Oct 11, 2019
0323695
Rusoto credential 0.41.1
matthewkmayer Oct 12, 2019
56ba0ae
Merge pull request #1532 from rusoto/bump-rusoto-credential-0.41.1
matthewkmayer Oct 12, 2019
6ad41ea
Merge pull request #1529 from drexler/update-skeptic-deps
matthewkmayer Oct 12, 2019
6f1a24b
Merge pull request #1525 from rusoto/update-releasing-docs
matthewkmayer Oct 12, 2019
8cba60a
Merge pull request #1515 from itsHabib/decode-b4-encode-params-list-objs
matthewkmayer Oct 12, 2019
67c2c48
Try without clap dependencies.
matthewkmayer Oct 12, 2019
8dcfe9d
Adds textract service.
matthewkmayer Oct 12, 2019
a325c35
Update appveyor badges
matthewkmayer Oct 12, 2019
5cbc44e
Merge pull request #1537 from rusoto/update-appveyor-badges
matthewkmayer Oct 13, 2019
78150f2
Merge pull request #1535 from rusoto/add-textract
matthewkmayer Oct 13, 2019
40df93c
Update CloudDirectory API definition.
matthewkmayer Oct 12, 2019
3fd847b
Add QLDB service.
matthewkmayer Oct 13, 2019
8646369
Merge pull request #1536 from rusoto/update-clouddirectory-api
matthewkmayer Oct 13, 2019
09dab1c
Merge pull request #1538 from rusoto/add-qldb
matthewkmayer Oct 14, 2019
5a0ec4d
Add SecurityHub service.
matthewkmayer Oct 13, 2019
7ec759f
Merge pull request #1539 from rusoto/add-securityhub
matthewkmayer Oct 14, 2019
334d4e9
Add QLDB Session.
matthewkmayer Oct 15, 2019
abea619
Add Transfer service.
matthewkmayer Oct 15, 2019
1da6aa4
Add integration test for instance profile provider.
matthewkmayer Oct 15, 2019
9ec0000
One test hook working.
matthewkmayer Oct 15, 2019
56d6d1d
Warp server up.
matthewkmayer Oct 15, 2019
303bc32
Makefile entry for credential integration tests.
matthewkmayer Oct 15, 2019
48234af
Merge pull request #1541 from rusoto/add-qldb-session
matthewkmayer Oct 15, 2019
9b24b65
Merge pull request #1542 from rusoto/add-transfer-service
matthewkmayer Oct 16, 2019
e4d5998
Run via shell script and makefile and on pipelines.
matthewkmayer Oct 16, 2019
ff758f6
Update docs and a Makefile comment
matthewkmayer Oct 16, 2019
bcb380e
Ignore credential integration test unless specifically called.
matthewkmayer Oct 16, 2019
109ed87
Fix deserialization of Region
alecmocatta Oct 17, 2019
4ee002d
re-add test that would have caught this in https://github.com/rusoto/…
alecmocatta Oct 17, 2019
493098e
Add x-amz-content-sha256 header to signed and canonical headers
dima74 Oct 17, 2019
7662ac2
Merge pull request #1544 from alecmocatta/serde-fix
iliana Oct 18, 2019
9dcd5ed
Add test to check that x-amz-content-sha256 header is signed
dima74 Oct 19, 2019
6677050
Merge pull request #1533 from rusoto/no-clap-deps
matthewkmayer Oct 20, 2019
cbc8c01
Update inflector dep for crategen.
matthewkmayer Oct 12, 2019
cfac410
Merge pull request #1545 from dima74/x-amz-content-sha256
matthewkmayer Oct 21, 2019
0de5fb1
Merge pull request #1534 from rusoto/update-inflector
matthewkmayer Oct 21, 2019
2f26679
more clippy fixes
sepiropht Oct 8, 2019
bc65a6d
file regenerated
sepiropht Oct 23, 2019
9f7476f
Merge pull request #1523 from sepiropht/clippy-fixes-#3
matthewkmayer Oct 24, 2019
ed1f373
pull signature signing types into their own crate
softprops Oct 24, 2019
baac274
Replace with `hyper::Body`
Oct 24, 2019
1436bb3
perf: use static initializer for profile regex
drexler Oct 24, 2019
6b53b9f
add a test asserting successful TryInto usage.
Oct 24, 2019
01072ef
Merge pull request #1 from davidbarsky/rusoto_signature
softprops Oct 24, 2019
69be544
ditch custom payload
softprops Oct 24, 2019
550e95a
Appveyor may not have been compiling beta.
matthewkmayer Oct 24, 2019
5d79745
keep previous error message
softprops Oct 24, 2019
9030ded
retain previous behavior of setting default user agent
softprops Oct 24, 2019
9ca3cc7
remove unused dependencies per crate
softprops Oct 24, 2019
a374274
remove reference comment. we've got this
softprops Oct 24, 2019
71f1a8d
Merge pull request #1556 from drexler/perf-improvement
iliana Oct 25, 2019
5e23543
Merge pull request #1554 from rusoto/appveyor-actually-do-beta
iliana Oct 25, 2019
979062a
Allow rustls testing for all.
matthewkmayer Oct 26, 2019
a282a29
Let integration tests use native-tls by default.
matthewkmayer Oct 26, 2019
d7798d4
Clean up before running rustls tests.
matthewkmayer Oct 26, 2019
14d40f3
Add note on why integration test is ignored, check token and expirati…
matthewkmayer Oct 26, 2019
c0039f5
Rework how we allow instance metadata overriding.
matthewkmayer Oct 26, 2019
24375f4
Cargo fmt it.
matthewkmayer Oct 26, 2019
7217e93
Add example to overriding instance profile location.
matthewkmayer Oct 26, 2019
3c44458
Split rustls unit tests into their own jobs on Pipelines.
matthewkmayer Oct 26, 2019
f44d976
add serialize_structs compilation feature
durangatan Oct 26, 2019
8f9643c
Update serde_urlencoded.
khuey Oct 27, 2019
f2a596e
declare feature in Cargo.toml generation
durangatan Oct 27, 2019
eb8e8c5
Remove unused TravisCI files.
matthewkmayer Oct 27, 2019
dd0f8c9
Remove some Clone derivations in crategen.
matthewkmayer Oct 27, 2019
af491ec
Merge pull request #1561 from rusoto/byebye-travis
iliana Oct 28, 2019
88a0aaa
Merge pull request #1557 from rusoto/rustls-testing-for-all
iliana Oct 28, 2019
fb291cc
Merge pull request #1563 from rusoto/crategen-tweaks
iliana Oct 28, 2019
f1d5bae
generate section of readme about cargo features
durangatan Oct 30, 2019
24355e6
Merge pull request #1543 from rusoto/integration-test-for-credentials
matthewkmayer Nov 1, 2019
683c122
Merge pull request #1555 from softprops/rusoto_signature
softprops Nov 2, 2019
8197050
avoid panicing while parsing credential file
softprops Nov 2, 2019
a686f1c
iterate on credential docs
softprops Nov 2, 2019
761169e
fix broken hyperlink
softprops Nov 6, 2019
765f0ce
dont trim whitespaces when parsing xml payloads
Nov 6, 2019
075fc22
Merge branch 'master' of https://github.com/rusoto/rusoto into xml-pa…
Nov 6, 2019
f5fae74
update skeptic build to 2018 edition rust
softprops Nov 8, 2019
662573e
generate service changes
Nov 8, 2019
4331bef
remove new line in generated route53 test
Nov 8, 2019
3e32c39
update base64 md5 hex env_logger rand
paolobarbolini Nov 8, 2019
c405fa5
Merge pull request #1558 from khuey/depupdate
matthewkmayer Nov 8, 2019
16d0fe4
more clippy fixes on service crategen
sepiropht Nov 9, 2019
61df4f5
Less doctests for Appveyor.
matthewkmayer Nov 9, 2019
473f1c6
Skip rustls unit tests on Appveyor
matthewkmayer Nov 10, 2019
32036aa
Merge pull request #1560 from durangatan/serialize_structs_feature
matthewkmayer Nov 10, 2019
4b9cced
Merge pull request #1573 from softprops/profile-panic
softprops Nov 10, 2019
a09f9a7
remove incorrect docs
softprops Nov 10, 2019
38f3dbf
empty value based anon credentials
softprops Nov 2, 2019
37e462a
changelog entry
jhwgh1968 Nov 6, 2019
c4a230b
s3: test anonymous credentials and acls
jhwgh1968 Nov 10, 2019
f90464d
fix missing unit test dependencies
jhwgh1968 Nov 12, 2019
a734de4
code review comment
jhwgh1968 Nov 12, 2019
3dec259
Merge pull request #1585 from rusoto/less-doctests-for-appveyor
matthewkmayer Nov 13, 2019
82f0e82
Merge pull request #1574 from softprops/credential-docs
matthewkmayer Nov 13, 2019
4bdda05
Merge pull request #1584 from sepiropht/fix-clippy-service-crategen
matthewkmayer Nov 13, 2019
4e67d6d
Merge pull request #1578 from paolobarbolini/update-deps2
matthewkmayer Nov 13, 2019
bacf2c6
clippy fixes
sepiropht Nov 13, 2019
d606c4c
Merge pull request #1566 from jhwgh1968/anonymous_provider
softprops Nov 14, 2019
1f9ef52
Merge branch 'master' of https://github.com/rusoto/rusoto into xml-pa…
Nov 15, 2019
c4f324b
remove TODO
sepiropht Nov 15, 2019
081d70b
Merge pull request #1581 from itsHabib/xml-payload-whitespace
itsHabib Nov 15, 2019
bd03edc
Merge pull request #1588 from sepiropht/service-crategen-clippy-fixes
matthewkmayer Nov 17, 2019
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
42 changes: 0 additions & 42 deletions .travis.yml

This file was deleted.

43 changes: 0 additions & 43 deletions .travis/split_workspace

This file was deleted.

50 changes: 21 additions & 29 deletions AWS-CREDENTIALS.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,26 @@
### Credentials

Rusoto has the ability to source AWS access credentials in a few different ways:
#### Best Practices

1. Environment variables via `rusoto_core::EnvironmentProvider` (`AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY`)
2. AWS credentials file via `rusoto_core::ProfileProvider`
3. IAM ECS container profile via `rusoto_core::ContainerProvider`
4. IAM EC2 instance profile via `rusoto_core::InstanceMetadataProvider`
Please follow the [AWS documentation on best practices](https://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html) for managing credentials for your account. These credentials provide anyone who has access to them access to your AWS account. You can mitigate risk that goes along with that access by following these best practices.

There is also `rusoto_core::ChainProvider`, which is a convenience for attempting to source access credentials using the methods above in order.
#### Usage

Much like the [standard AWS toolchain](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html), Rusoto has the ability to source AWS access credentials from multiple sources, either independently or in a tiered fashion.

1. Environment variables via [`rusoto_core::EnvironmentProvider`](https://docs.rs/rusoto_credential/latest/rusoto_credential/struct.EnvironmentProvider.html) (`AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY`)
2. AWS credentials file via [`rusoto_core::ProfileProvider`](https://docs.rs/rusoto_credential/latest/rusoto_credential/struct.ProfileProvider.html)
3. IAM ECS container profile via [`rusoto_core::ContainerProvider`](https://docs.rs/rusoto_credential/latest/rusoto_credential/struct.ContainerProvider.html)
4. IAM EC2 instance profile via [`rusoto_core::InstanceMetadataProvider`](https://docs.rs/rusoto_credential/latest/rusoto_credential/struct.InstanceMetadataProvider.html)

The [`rusoto_core::ChainProvider`](https://docs.rs/rusoto_credential/latest/rusoto_credential/struct.ChainProvider.html) is a convenience for attempting to source access credentials using all the methods above in that order.
If credentials cannot be obtained through one method, it falls back to the next.
If all possibilites are exhausted, an error will be returned.

`ProfileProvider` (and `ChainProvider`) also allow you to specify a custom path to the credentials file and the name of the profile to use.
If not explicitly provided as arguments, the values for these two parameters are computed according to the following rules:
* **location of credentials file:** if set and not empty the value of the environment variable ```AWS_SHARED_CREDENTIALS_FILE``` otherwise ```"~/.aws/credentials"```.
* **profile name:** if set and not empty the value of the environment variable ```AWS_PROFILE``` otherwise ```"default"```
* **location of credentials file:** if set and not empty the value of the environment variable `AWS_SHARED_CREDENTIALS_FILE` otherwise `"~/.aws/credentials"`.
* **profile name:** if set and not empty the value of the environment variable ```AWS_PROFILE``` otherwise `"default"`

It's also possible to implement your own credentials sourcing mechanism by creating a type that implements `rusoto_core::ProvideAwsCredentials`.

Expand All @@ -23,11 +29,6 @@ It's also possible to implement your own credentials sourcing mechanism by creat
If your aws account belongs to an organization and you need to use sts:AssumeRole, you're probably looking for `rusoto_sts::StsAssumeRoleSessionCredentialsProvider`. A simple program that uses sts:AssumeRole looks like this:

```rust,no_run
extern crate env_logger;
extern crate rusoto_core;
extern crate rusoto_ec2;
extern crate rusoto_sts;

use std::default::Default;

use rusoto_core::{Region, HttpClient};
Expand All @@ -36,7 +37,7 @@ use rusoto_ec2::{Ec2Client, Ec2, DescribeSpotInstanceRequestsRequest};
use rusoto_sts::{StsClient, StsAssumeRoleSessionCredentialsProvider};

fn main() {
let _ = env_logger::try_init();
env_logger::init();

let sts = StsClient::new(Region::EuWest1);

Expand All @@ -56,11 +57,12 @@ fn main() {
}
```

### Important note about using the StsAssumeRoleSessionCredentialsProvider in the recommended way
**Be careful** that the current behavior of `rusoto_sts::StsAssumeRoleSessionCredentialsProvider` needs to be used with `rusoto_credential::AutoRefreshingProvider` as a wrapper to get advantage of using the already cached token of AssumeRole as it lives by default for 1 hour.
Current implementation is not using the cached token returned by the AssumeRole by default so it will be refreshed with every call to AWS resource.
### Important note about using the StsAssumeRoleSessionCredentialsProvider

This will affect the performance as well as the billing of AWS.
**Be careful**. The current `rusoto_sts::StsAssumeRoleSessionCredentialsProvider` should be used with `rusoto_credential::AutoRefreshingProvider` as a wrapper to take advantage of using the already cached token of AssumeRole as its only valid for 1 hour by default.
The current implementation does not reuse the cached token returned by the AssumeRole by default so it will be refreshed with every call to AWS resource.

This will affect the performance as well as the size of you AWS bill.

- https://docs.rs/rusoto_credential
- https://crates.io/crates/rusoto_credential
Expand All @@ -75,21 +77,11 @@ let provider = StsAssumeRoleSessionCredentialsProvider::new(
let auto_refreshing_provider = rusoto_credential::AutoRefreshingProvider::new(provider);
```

#### Credential refreshing

Credentials obtained from environment variables and credential files expire ten minutes after being acquired and are refreshed on subsequent calls to `credentials()` (a method from the `ProvideAwsCredentials` trait).

IAM instance profile credentials are refreshed as needed.
Upon calling `credentials()` it will see if they are expired or not.
If expired, it attempts to get new credentials from the metadata service.
If that fails it will return an error.
IAM credentials expiration time comes from the IAM metadata response.

#### Local integration testing of IAM credentials

Edit the relevant `address`/IP locations in [credential/src/container.rs](credential/src/container.rs) and [credential/src/instance_metadata.rs](credential/src/instance_metadata.rs).
For local testing, you can use [moe](https://github.com/matthewkmayer/moe) and set the string to this:

```rust,ignore
let mut address: String = "http://localhost:8080/latest/meta-data/iam/security-credentials".to_owned();
let address: String = "http://localhost:8080/latest/meta-data/iam/security-credentials".to_owned();
```
36 changes: 36 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,42 @@
## [Unreleased]

(Please put changes here)
- Use static initializer for AWS profile regex
- Add QLDB service
- Add QLDB Session service
- Update Skeptic tests for Rusoto v0.41
- Don't decode query string parameters before encoding it. Results in fixing the prefix and marker
params for s3 `list_objects` methods
- Add Textract service
- Update CloudDirectory API definition to `2017-01-11`
- Add SecurityHub service
- Add Transfer service
- Introducing `rusoto_signature`, a standalone crate for signing HTTP requests.
- Make static credentials into a credential provider
- Add anonymous credentials support
- Don't trim whitepsace when parsing xml payload. Fixes truncating of items with spaces in payloads
such as an S3 key returned in `list_objects_v2`

## [0.41.0] - 2019-10-07

- Add `HttpClient::from_builder`
- Upgrade to botocore from `1.12.163` to `1.12.230`
- The types `rusoto_events::{CloudWatchEvents,CloudWatchEventsClient}` were renamed to `rusoto_events::{EventBridge,EventBridgeClient}`
- Deserialize PostTextResponse correctly by allowing null values in the slots field
- Fix Profile Config Loading: should ignore comments with '=' chars
- Add App Mesh service
- Fix service_crategen to parse operations with multiple static params
- Refactor S3 integration tests - about a `#[test]` per behavior
- Add support for non signing clients
- Add EC2 Instance Connect service
- Allow deserialization of regions without an endpoint specified
- Add ApNortheast3 region
- Add MeSouth1 region
- Add x-amz-content-sha256 header to signed and canonical headers
- Added `Eq` and `Hash` implementations on `Region`
- Fixed parsing of Athena error messages
- Fix credential_process behavior when using the non-default profile
- Correctly read session tokens from credential_process

## [0.40.0] - 2019-06-28

Expand Down
11 changes: 10 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
[workspace]
members = [
"mock",
"rusoto/credential_service_mock",
"rusoto/core",
"rusoto/credential",
"rusoto/signature",
"rusoto/services/acm",
"rusoto/services/acm-pca",
"rusoto/services/alexaforbusiness",
Expand All @@ -11,6 +13,7 @@ members = [
"rusoto/services/apigatewaymanagementapi",
"rusoto/services/apigatewayv2",
"rusoto/services/application-autoscaling",
"rusoto/services/appmesh",
"rusoto/services/appstream",
"rusoto/services/appsync",
"rusoto/services/athena",
Expand Down Expand Up @@ -54,6 +57,7 @@ members = [
"rusoto/services/dynamodb",
"rusoto/services/dynamodbstreams",
"rusoto/services/ec2",
"rusoto/services/ec2-instance-connect",
"rusoto/services/ecr",
"rusoto/services/ecs",
"rusoto/services/elasticache",
Expand Down Expand Up @@ -117,6 +121,8 @@ members = [
"rusoto/services/pi",
"rusoto/services/polly",
"rusoto/services/pricing",
"rusoto/services/qldb",
"rusoto/services/qldb-session",
"rusoto/services/ram",
"rusoto/services/rds",
"rusoto/services/rds-data",
Expand All @@ -131,6 +137,7 @@ members = [
"rusoto/services/sagemaker-runtime",
"rusoto/services/sdb",
"rusoto/services/secretsmanager",
"rusoto/services/securityhub",
"rusoto/services/serverlessrepo",
"rusoto/services/servicecatalog",
"rusoto/services/servicediscovery",
Expand All @@ -146,7 +153,9 @@ members = [
"rusoto/services/sts",
"rusoto/services/support",
"rusoto/services/swf",
"rusoto/services/textract",
"rusoto/services/transcribe",
"rusoto/services/transfer",
"rusoto/services/translate",
"rusoto/services/waf",
"rusoto/services/waf-regional",
Expand All @@ -167,4 +176,4 @@ exclude = [
[profile.bench]
opt-level = 3
debug = false
debug-assertions = false
debug-assertions = false
12 changes: 11 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,11 @@ docs:
unit_test:
cargo +$$RUST_VERSION test --all

# Doctests can be very slow to compile and run. This option lets us skip those if needed.
.PHONY: unit_test_no_doctests
unit_test_no_doctests:
cargo +$$RUST_VERSION test --all --lib

.PHONY: skeptical
skeptical:
(cd skeptical && cargo +$$RUST_VERSION test)
Expand All @@ -41,7 +46,8 @@ check_integration_test:

.PHONY: rustls_unit_test
rustls_unit_test:
cargo +$$RUST_VERSION test --all -v --no-default-features --features=rustls
(cd rusoto/core && cargo +$$RUST_VERSION test --no-default-features --features=rustls)
(cd rusoto/services && ./rustls-unit-test.sh $$RUST_VERSION)

.PHONY: check_service_defintions
check_service_defintions:
Expand All @@ -54,3 +60,7 @@ time_credentials:
.PHONY: bench_s3
bench_s3:
(cd rusoto/services/s3 && cargo +nightly bench)

.PHONY: credential_integration_test
credential_integration_test:
(cd rusoto/credential_service_mock && ./run-and-test.sh )
10 changes: 6 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,9 +43,9 @@ For example, to include only S3 and SQS:

```toml
[dependencies]
rusoto_core = "0.40.0"
rusoto_sqs = "0.40.0"
rusoto_s3 = "0.40.0"
rusoto_core = "0.41.0"
rusoto_sqs = "0.41.0"
rusoto_s3 = "0.41.0"
```

## Migration notes
Expand Down Expand Up @@ -110,12 +110,14 @@ Information on release schedules and procedures are in [RELEASING](RELEASING.md)

See [CONTRIBUTING](CONTRIBUTING.md).

## Supported OSs and Rust versions
## Supported OSs, Rust versions and non-AWS projects

Linux, OSX and Windows are supported and tested via Azure Pipelines and Appveyor.

Rust stable, beta and nightly are supported.

Rusoto's primary aim is to be used with AWS. Other projects that provide AWS-like APIs, such as Ceph, Minio, Yandex Object Storage, etc... are not a focus at this time. PRs to fix issues with Rusoto and AWS-like APIs are welcome but generally won't be created by Rusoto maintainers.

## License

Rusoto is distributed under the terms of the MIT license.
Expand Down
12 changes: 7 additions & 5 deletions RELEASING.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,18 +27,20 @@ Rusoto uses [semantic versioning 2.0.0](http://semver.org/).
3. Publish new version of `rusoto_credential` if changes have been made to it.
4. Publish new version of `rusoto_core` if changes have been made to it.
5. Publish new version of `rusoto_mock` if it changes have been made to it.
6. Run `publish-services.sh` in the `rusoto/services` dir. *Warning*: takes >2 hours on a low end Macbook. The script can be run again if an issue comes up without problems - crates.io prevents republishing.
6. Run `publish-services.sh` in the `rusoto/services` dir. *Warning*: takes >4 hours on a low end Macbook. The script can be run again if an issue comes up without problems - crates.io prevents republishing.
7. Tag master branch with the new version. Example: `git tag -a rusoto-v0.21.0 -m "Rusoto 0.21.0 release."` then `git push --tags origin`.

### Git tags

Due to multiple crates being in the repo, releases for each crate will be in the format `crate-vmajor.minor.patch`.
Due to multiple crates being in the repo, releases for each crate will be in the format `crate-vmajor.minor.patch`. Rusoto core, service crates, credentials and `rusoto_mock` will all have the same versions for a new release:

Examples:

* `rusoto-v0.21.0`
* `credentials-v0.3.0`
* `mock-v0.27.0`
* `rusoto-v0.41.0`
* `credentials-v0.41.0`
* `mock-v0.41.0`

When bug fixes for a crate are published, all crates get a new release.

### Release notes

Expand Down
5 changes: 3 additions & 2 deletions appveyor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,9 @@ install:
build: off
test_script:
- cargo update
- make unit_test
- make rustls_unit_test
- set RUST_VERSION=%CHANNEL%
- echo using rust_version %RUST_VERSION%
- make unit_test_no_doctests
- make check_integration_test

branches:
Expand Down
Loading