Skip to content

Releases: awslabs/aws-sdk-rust

May 1st, 2023

01 May 17:47
Compare
Choose a tag to compare
May 1st, 2023 Pre-release
Pre-release

Breaking Changes:

New this release:

  • πŸŽ‰ (smithy-rs#2254, @eduardomourar) The AWS SDK now compiles for the wasm32-unknown-unknown and wasm32-wasi targets when no default features are enabled. WebAssembly is not officially supported yet, but this is a great first step towards it!
  • πŸ›πŸŽ‰ (smithy-rs#2562) Update the std::fmt::Debug implementation for aws-sigv4::SigningParams so that it will no longer print sensitive information.
  • (aws-sdk-rust#784, @abusch) Implement std::error::Error#source() properly for the service meta Error enum.
  • πŸ› (smithy-rs#2496) The outputs for event stream operations (for example, S3's SelectObjectContent) now implement the Sync auto-trait.
  • πŸ› (aws-sdk-rust#764) S3's GetObject will no longer panic when checksum validation is enabled and the target object was uploaded as a multi-part upload.
    However, these objects cannot be checksum validated by the SDK due to the way checksums are calculated for multipart uploads.
    For more information, see this page.
  • πŸ› (smithy-rs#2513) AppName is now configurable from within ConfigLoader.
  • (smithy-rs#2473, @martinjlowm) Add support for omitting session token in canonical requests for SigV4 signing.
  • (smithy-rs#2525, @parker-timmerman) Add into_segments method to AggregatedBytes, for zero-copy conversions.
  • πŸ› (smithy-rs#781, aws-sdk-rust#781) Fix bug where an incorrect endpoint was produced for WriteGetObjectResponse
  • (smithy-rs#2534) aws_smithy_types::date_time::Format has been re-exported in SDK crates.
  • (smithy-rs#2603) Reduce several instances of credential exposure in the SDK logs:
    • IMDS now suppresses the body of the response from logs
    • aws-sigv4 marks the x-amz-session-token header as sensitive
    • STS & SSO credentials have been manually marked as sensitive which suppresses logging of response bodies for relevant operations

Contributors
Thank you for your contributions! ❀

Crate Versions

Click to expand to view crate versions...
Crate Version
aws-config 0.55.2
aws-credential-types 0.55.2
aws-endpoint 0.55.2
aws-http 0.55.2
aws-hyper 0.55.2
aws-runtime 0.55.2
aws-runtime-api 0.55.2
aws-sdk-accessanalyzer 0.27.0
aws-sdk-account 0.27.0
aws-sdk-acm 0.27.0
aws-sdk-acmpca 0.27.0
aws-sdk-alexaforbusiness 0.27.0
aws-sdk-amp 0.27.0
aws-sdk-amplify 0.27.0
aws-sdk-amplifybackend 0.27.0
aws-sdk-amplifyuibuilder 0.27.0
aws-sdk-apigateway 0.27.0
aws-sdk-apigatewaymanagement 0.27.0
aws-sdk-apigatewayv2 0.27.0
aws-sdk-appconfig 0.27.0
aws-sdk-appconfigdata 0.27.0
aws-sdk-appflow 0.27.0
aws-sdk-appintegrations 0.27.0
aws-sdk-applicationautoscaling 0.27.0
aws-sdk-applicationcostprofiler 0.27.0
aws-sdk-applicationdiscovery 0.27.0
aws-sdk-applicationinsights 0.27.0
aws-sdk-appmesh 0.27.0
aws-sdk-apprunner 0.27.0
aws-sdk-appstream 0.27.0
aws-sdk-appsync 0.27.0
aws-sdk-arczonalshift 0.5.0
aws-sdk-athena 0.27.0
aws-sdk-auditmanager 0.27.0
aws-sdk-autoscaling 0.27.0
aws-sdk-autoscalingplans 0.27.0
aws-sdk-backup 0.27.0
aws-sdk-backupgateway 0.27.0
aws-sdk-backupstorage 0.10.0
aws-sdk-batch 0.27.0
aws-sdk-billingconductor 0.27.0
aws-sdk-braket 0.27.0
aws-sdk-budgets 0.27.0
aws-sdk-chime 0.27.0
aws-sdk-chimesdkidentity 0.27.0
aws-sdk-chimesdkmediapipelines 0.27.0
aws-sdk-chimesdkmeetings 0.27.0
aws-sdk-chimesdkmessaging 0.27.0
aws-sdk-chimesdkvoice 0.5.0
aws-sdk-cleanrooms 0.4.0
aws-sdk-cloud9 0.27.0
aws-sdk-cloudcontrol 0.27.0
aws-sdk-clouddirectory 0.27.0
aws-sdk-cloudformation 0.27.0
aws-sdk-cloudfront 0.27.0
aws-sdk-cloudhsm 0.27.0
aws-sdk-cloudhsmv2 0.27.0
aws-sdk-cloudsearch 0.27.0
aws-sdk-cloudsearchdomain 0.27.0
aws-sdk-cloudtrail 0.27.0
aws-sdk-cloudtraildata 0.3.0
aws-sdk-cloudwatch 0.27.0
aws-sdk-cloudwatchevents 0.27.0
aws-sdk-cloudwatchlogs 0.27.0
aws-sdk-codeartifact 0.27.0
aws-sdk-codebuild 0.27.0
aws-sdk-codecatalyst 0.5.0
aws-sdk-codecommit 0.27.0
aws-sdk-codedeploy 0.27.0
aws-sdk-codeguruprofiler 0.27.0
aws-sdk-codegurureviewer 0.27.0
aws-sdk-codepipeline 0.27.0
aws-sdk-codestar 0.27.0
aws-sdk-codestarconnections 0.27.0
aws-sdk-codestarnotifications 0.27.0
aws-sdk-cognitoidentity 0.27.0
aws-sdk-cognitoidentityprovider 0.27.0
aws-sdk-cognitosync 0.27.0
aws-sdk-comprehend 0.27.0
aws-sdk-comprehendmedical 0.27.0
aws-sdk-computeoptimizer 0.27.0
aws-sdk-config 0.27.0
aws-sdk-connect 0.27.0
aws-sdk-connectcampaigns 0.27.0
aws-sdk-connectcases 0.8.0
aws-sdk-connectcontactlens 0.27.0
aws-sdk-connectparticipant 0.27.0
aws-sdk-controltower 0.8.0
aws-sdk-costandusagereport 0.27.0
aws-sdk-costexplorer 0.27.0
aws-sdk-customerprofiles 0.27.0
aws-sdk-databasemigration 0.27.0
aws-sdk-databrew 0.27.0
aws-sdk-dataexchange 0.27.0
aws-sdk-datapipeline 0.27.0
aws-sdk-datasync 0.27.0
aws-sdk-dax 0.27.0
aws-sdk-detective 0.27.0
aws-sdk-devicefarm 0.27.0
aws-sdk-devopsguru 0.27.0
aws-sdk-directconnect 0.27.0
aws-sdk-directory 0.27.0
aws-sdk-dlm 0.27.0
aws-sdk-docdb 0.27.0
aws-sdk-docdbelastic 0.5.0
aws-sdk-drs 0.27.0
aws-sdk-dynamodb 0.27.0
aws-sdk-dynamodbstreams 0.27.0
aws-sdk-ebs 0.27.0
aws-sdk-ec2 0.27.0
aws-sdk-ec2instanceconnect 0.27.0
aws-sdk-ecr 0.27.0
aws-sdk-ecrpublic 0.27.0
aws-sdk-ecs 0.27.0
aws-sdk-efs 0.27.0
aws-sdk-eks 0.27.0
aws-sdk-elasticache 0.27.0
aws-sdk-elasticbeanstalk 0.27.0
aws-sdk-elasticinference 0.27.0
aws-sdk-elasticloadbalancing 0.27.0
aws-sdk-elasticloadbalancingv2 0.27.0
aws-sdk-elasticsearch 0.27.0
aws-sdk-elastictranscoder 0.27.0
aws-sdk-emr 0.27.0
aws-sdk-emrcontainers 0.27.0
aws-sdk-emrserverless 0.27.0
aws-sdk-eventbridge 0.27.0
aws-sdk-evidently 0.27.0
aws-sdk-finspace 0.27.0
aws-sdk-finspacedata 0.27.0
aws-sdk-firehose 0.27.0
aws-sdk-fis 0.27.0
aws-sdk-fms 0.27.0
aws-sdk-forecast 0.27.0
aws-sdk-forecastquery 0.27.0
aws-sdk-frauddetector 0.27.0
aws-sdk-fsx 0.27.0
aws-sdk-gamelift 0.27.0
aws-sdk-gamesparks 0.27.0
aws-sdk-glacier 0.27.0
aws-sdk-globalaccelerator 0.27.0
aws-sdk-glue 0.27.0
aws-sdk-grafana 0.27.0
aws-sdk-greengrass 0.27.0
aws-sdk-greengrassv2 0.27.0
aws-sdk-groundstation 0.27.0
aws-sdk-guardduty 0.27.0
aws-sdk-health 0.27.0
aws-sdk-healthlake 0.27.0
aws-sdk-honeycode 0.27.0
aws-sdk-iam 0.27.0
aws-sdk-identitystore 0.27.0
aws-sdk-imagebuilder 0.27.0
aws-sdk-inspector 0.27.0
aws-sdk-inspector2 0.27.0
aws-sdk-internetmonitor 0.3.0
aws-sdk-iot 0.27.0
aws-sdk-iot1clickdevices 0.27.0
aws-sdk-iot1clickprojects 0.27.0
aws-sdk-iotanalytics 0.27.0
aws-sdk-iotdataplane 0.27.0
aws-sdk-iotdeviceadvisor 0.27.0
aws-sdk-iotevents 0.27.0
aws-sdk-ioteventsdata 0.27.0
aws-sdk-iotfleethub 0.27.0
aws-sdk-iotfleetwise 0.8.0
aws-sdk-iotjobsdataplane 0.27.0
aws-sdk-iotroborunner 0.5.0
aws-sdk-iotsecuretunneling 0.27.0
aws-sdk-iotsitewise 0.27.0
aws-sdk-iotthingsgraph 0.27.0
aws-sdk-iottwinmaker 0.27.0
aws-sdk-iotwireless 0.27.0
aws-sdk-ivs 0.27.0
aws-sdk-ivschat 0.27.0
aws-sdk-ivsrealtime 0.3.0
aws-sdk-kafka 0.27.0
aws-sdk-kafkaconnect 0.27.0
aws-sdk-kendra 0.27.0
aws-sdk-kendraranking 0.5.0
aws-sdk-keyspaces 0.27.0
aws-sdk-kinesis 0.27.0
aws-sdk-kinesisanalytics 0.27.0
aws-sdk-kinesisanalyticsv2 0.27.0
aws-sdk-kinesisvideo 0.27.0
aws-sdk-kinesisvideoarchivedmedia 0.27.0
aws-sdk-kinesisvideomedia 0.27.0
aws-sdk-kinesisvideosignaling 0.27.0
aws-sdk-kinesisvideowebrtcstorage 0.5.0
aws-sdk-kms 0.27.0
aws-sdk-lakeformation 0.27.0
aws-sdk-lambda 0.27.0
aws-sdk-lexmodelbuilding 0.27.0
aws-sdk-lexmodelsv2 0.27.0
aws-sdk-lexruntime 0.27.0
aws-sdk-lexruntimev2 0.27.0
aws-sdk-licensemanager 0.27.0
aws-sdk-licensemanagerlinuxsubscriptions 0.5.0
aws-sdk-licensemanagerusersubscriptions 0.11.0
aws-sdk-lightsail 0.27.0
aws-sdk-location 0.27.0
aws-sdk-lookoutequipment 0.27.0
aws-sdk-lookoutmetrics 0.27.0
aws-sdk-lookoutvision 0.27.0
aws-sdk-m2 0.27.0
aws-sdk-machinelearning 0.27.0
aws-sdk-macie 0.27.0
aws-sdk-macie2 0.27.0
aws-sdk-managedblockchain 0.27.0
aws-sdk-marketplacecatalog 0.27.0
aws-sdk-marketplacecommerceanalytics 0.27.0
aws-sdk-marketplaceentitlement 0.27.0
aws-sdk-marketplacemetering 0.27.0
aws-sdk-mediaconnect 0.27.0
aws-sdk-mediaconvert 0.27.0
aws-sdk-medialive 0.27.0
aws-sdk-mediapackage 0.27.0
aws-sdk-mediapackagevod 0.27.0
aws-sdk-mediastore 0.27.0
aws-sdk-mediastoredata 0.27.0
aws-sdk-mediatailo...
Read more

April 12th, 2023

12 Apr 22:10
Compare
Choose a tag to compare
April 12th, 2023 Pre-release
Pre-release

New this release:

  • πŸ›πŸŽ‰ (smithy-rs#2562) Update the std::fmt::Debug implementation for aws-sigv4::SigningParams so that it will no longer print sensitive information.

Crate Versions

Click to expand to view crate versions...
Crate Version
aws-config 0.55.1
aws-credential-types 0.55.1
aws-endpoint 0.55.1
aws-http 0.55.1
aws-hyper 0.55.1
aws-sdk-accessanalyzer 0.26.0
aws-sdk-account 0.26.0
aws-sdk-acm 0.26.0
aws-sdk-acmpca 0.26.0
aws-sdk-alexaforbusiness 0.26.0
aws-sdk-amp 0.26.0
aws-sdk-amplify 0.26.0
aws-sdk-amplifybackend 0.26.0
aws-sdk-amplifyuibuilder 0.26.0
aws-sdk-apigateway 0.26.0
aws-sdk-apigatewaymanagement 0.26.0
aws-sdk-apigatewayv2 0.26.0
aws-sdk-appconfig 0.26.0
aws-sdk-appconfigdata 0.26.0
aws-sdk-appflow 0.26.0
aws-sdk-appintegrations 0.26.0
aws-sdk-applicationautoscaling 0.26.0
aws-sdk-applicationcostprofiler 0.26.0
aws-sdk-applicationdiscovery 0.26.0
aws-sdk-applicationinsights 0.26.0
aws-sdk-appmesh 0.26.0
aws-sdk-apprunner 0.26.0
aws-sdk-appstream 0.26.0
aws-sdk-appsync 0.26.0
aws-sdk-arczonalshift 0.4.0
aws-sdk-athena 0.26.0
aws-sdk-auditmanager 0.26.0
aws-sdk-autoscaling 0.26.0
aws-sdk-autoscalingplans 0.26.0
aws-sdk-backup 0.26.0
aws-sdk-backupgateway 0.26.0
aws-sdk-backupstorage 0.9.0
aws-sdk-batch 0.26.0
aws-sdk-billingconductor 0.26.0
aws-sdk-braket 0.26.0
aws-sdk-budgets 0.26.0
aws-sdk-chime 0.26.0
aws-sdk-chimesdkidentity 0.26.0
aws-sdk-chimesdkmediapipelines 0.26.0
aws-sdk-chimesdkmeetings 0.26.0
aws-sdk-chimesdkmessaging 0.26.0
aws-sdk-chimesdkvoice 0.4.0
aws-sdk-cleanrooms 0.3.0
aws-sdk-cloud9 0.26.0
aws-sdk-cloudcontrol 0.26.0
aws-sdk-clouddirectory 0.26.0
aws-sdk-cloudformation 0.26.0
aws-sdk-cloudfront 0.26.0
aws-sdk-cloudhsm 0.26.0
aws-sdk-cloudhsmv2 0.26.0
aws-sdk-cloudsearch 0.26.0
aws-sdk-cloudsearchdomain 0.26.0
aws-sdk-cloudtrail 0.26.0
aws-sdk-cloudtraildata 0.2.0
aws-sdk-cloudwatch 0.26.0
aws-sdk-cloudwatchevents 0.26.0
aws-sdk-cloudwatchlogs 0.26.0
aws-sdk-codeartifact 0.26.0
aws-sdk-codebuild 0.26.0
aws-sdk-codecatalyst 0.4.0
aws-sdk-codecommit 0.26.0
aws-sdk-codedeploy 0.26.0
aws-sdk-codeguruprofiler 0.26.0
aws-sdk-codegurureviewer 0.26.0
aws-sdk-codepipeline 0.26.0
aws-sdk-codestar 0.26.0
aws-sdk-codestarconnections 0.26.0
aws-sdk-codestarnotifications 0.26.0
aws-sdk-cognitoidentity 0.26.0
aws-sdk-cognitoidentityprovider 0.26.0
aws-sdk-cognitosync 0.26.0
aws-sdk-comprehend 0.26.0
aws-sdk-comprehendmedical 0.26.0
aws-sdk-computeoptimizer 0.26.0
aws-sdk-config 0.26.0
aws-sdk-connect 0.26.0
aws-sdk-connectcampaigns 0.26.0
aws-sdk-connectcases 0.7.0
aws-sdk-connectcontactlens 0.26.0
aws-sdk-connectparticipant 0.26.0
aws-sdk-controltower 0.7.0
aws-sdk-costandusagereport 0.26.0
aws-sdk-costexplorer 0.26.0
aws-sdk-customerprofiles 0.26.0
aws-sdk-databasemigration 0.26.0
aws-sdk-databrew 0.26.0
aws-sdk-dataexchange 0.26.0
aws-sdk-datapipeline 0.26.0
aws-sdk-datasync 0.26.0
aws-sdk-dax 0.26.0
aws-sdk-detective 0.26.0
aws-sdk-devicefarm 0.26.0
aws-sdk-devopsguru 0.26.0
aws-sdk-directconnect 0.26.0
aws-sdk-directory 0.26.0
aws-sdk-dlm 0.26.0
aws-sdk-docdb 0.26.0
aws-sdk-docdbelastic 0.4.0
aws-sdk-drs 0.26.0
aws-sdk-dynamodb 0.26.0
aws-sdk-dynamodbstreams 0.26.0
aws-sdk-ebs 0.26.0
aws-sdk-ec2 0.26.0
aws-sdk-ec2instanceconnect 0.26.0
aws-sdk-ecr 0.26.0
aws-sdk-ecrpublic 0.26.0
aws-sdk-ecs 0.26.0
aws-sdk-efs 0.26.0
aws-sdk-eks 0.26.0
aws-sdk-elasticache 0.26.0
aws-sdk-elasticbeanstalk 0.26.0
aws-sdk-elasticinference 0.26.0
aws-sdk-elasticloadbalancing 0.26.0
aws-sdk-elasticloadbalancingv2 0.26.0
aws-sdk-elasticsearch 0.26.0
aws-sdk-elastictranscoder 0.26.0
aws-sdk-emr 0.26.0
aws-sdk-emrcontainers 0.26.0
aws-sdk-emrserverless 0.26.0
aws-sdk-eventbridge 0.26.0
aws-sdk-evidently 0.26.0
aws-sdk-finspace 0.26.0
aws-sdk-finspacedata 0.26.0
aws-sdk-firehose 0.26.0
aws-sdk-fis 0.26.0
aws-sdk-fms 0.26.0
aws-sdk-forecast 0.26.0
aws-sdk-forecastquery 0.26.0
aws-sdk-frauddetector 0.26.0
aws-sdk-fsx 0.26.0
aws-sdk-gamelift 0.26.0
aws-sdk-gamesparks 0.26.0
aws-sdk-glacier 0.26.0
aws-sdk-globalaccelerator 0.26.0
aws-sdk-glue 0.26.0
aws-sdk-grafana 0.26.0
aws-sdk-greengrass 0.26.0
aws-sdk-greengrassv2 0.26.0
aws-sdk-groundstation 0.26.0
aws-sdk-guardduty 0.26.0
aws-sdk-health 0.26.0
aws-sdk-healthlake 0.26.0
aws-sdk-honeycode 0.26.0
aws-sdk-iam 0.26.0
aws-sdk-identitystore 0.26.0
aws-sdk-imagebuilder 0.26.0
aws-sdk-inspector 0.26.0
aws-sdk-inspector2 0.26.0
aws-sdk-internetmonitor 0.2.0
aws-sdk-iot 0.26.0
aws-sdk-iot1clickdevices 0.26.0
aws-sdk-iot1clickprojects 0.26.0
aws-sdk-iotanalytics 0.26.0
aws-sdk-iotdataplane 0.26.0
aws-sdk-iotdeviceadvisor 0.26.0
aws-sdk-iotevents 0.26.0
aws-sdk-ioteventsdata 0.26.0
aws-sdk-iotfleethub 0.26.0
aws-sdk-iotfleetwise 0.7.0
aws-sdk-iotjobsdataplane 0.26.0
aws-sdk-iotroborunner 0.4.0
aws-sdk-iotsecuretunneling 0.26.0
aws-sdk-iotsitewise 0.26.0
aws-sdk-iotthingsgraph 0.26.0
aws-sdk-iottwinmaker 0.26.0
aws-sdk-iotwireless 0.26.0
aws-sdk-ivs 0.26.0
aws-sdk-ivschat 0.26.0
aws-sdk-ivsrealtime 0.2.0
aws-sdk-kafka 0.26.0
aws-sdk-kafkaconnect 0.26.0
aws-sdk-kendra 0.26.0
aws-sdk-kendraranking 0.4.0
aws-sdk-keyspaces 0.26.0
aws-sdk-kinesis 0.26.0
aws-sdk-kinesisanalytics 0.26.0
aws-sdk-kinesisanalyticsv2 0.26.0
aws-sdk-kinesisvideo 0.26.0
aws-sdk-kinesisvideoarchivedmedia 0.26.0
aws-sdk-kinesisvideomedia 0.26.0
aws-sdk-kinesisvideosignaling 0.26.0
aws-sdk-kinesisvideowebrtcstorage 0.4.0
aws-sdk-kms 0.26.0
aws-sdk-lakeformation 0.26.0
aws-sdk-lambda 0.26.0
aws-sdk-lexmodelbuilding 0.26.0
aws-sdk-lexmodelsv2 0.26.0
aws-sdk-lexruntime 0.26.0
aws-sdk-lexruntimev2 0.26.0
aws-sdk-licensemanager 0.26.0
aws-sdk-licensemanagerlinuxsubscriptions 0.4.0
aws-sdk-licensemanagerusersubscriptions 0.10.0
aws-sdk-lightsail 0.26.0
aws-sdk-location 0.26.0
aws-sdk-lookoutequipment 0.26.0
aws-sdk-lookoutmetrics 0.26.0
aws-sdk-lookoutvision 0.26.0
aws-sdk-m2 0.26.0
aws-sdk-machinelearning 0.26.0
aws-sdk-macie 0.26.0
aws-sdk-macie2 0.26.0
aws-sdk-managedblockchain 0.26.0
aws-sdk-marketplacecatalog 0.26.0
aws-sdk-marketplacecommerceanalytics 0.26.0
aws-sdk-marketplaceentitlement 0.26.0
aws-sdk-marketplacemetering 0.26.0
aws-sdk-mediaconnect 0.26.0
aws-sdk-mediaconvert 0.26.0
aws-sdk-medialive 0.26.0
aws-sdk-mediapackage 0.26.0
aws-sdk-mediapackagevod 0.26.0
aws-sdk-mediastore 0.26.0
aws-sdk-mediastoredata 0.26.0
aws-sdk-mediatailor 0.26.0
aws-sdk-memorydb 0.26.0
aws-sdk-mgn 0.26.0
aws-sdk-migrationhub 0.26.0
aws-sdk-migrationhubconfig 0.26.0
aws-sdk-migrationhuborchestrator 0.7.0
aws-sdk-migrationhubrefactorspaces 0.26.0
aws-sdk-migrationhubstrategy 0.26.0
aws-sdk-mobile 0.26.0
aws-sdk-mq 0.26.0
aws-sdk-mturk 0.26.0
aws-sdk-mwaa 0.26.0
aws-sdk-neptune 0.26.0
aws-sdk-networkfirewall 0.26.0
aws-sdk-networkmanager 0.26.0
aws-sdk-nimble 0.26.0
aws-sdk-oam 0.4.0
aws-sdk-omics 0.4.0
aws-sdk-opensearch 0.26.0
aws-sdk-opensearchserverless 0.4.0
aws-sdk-opsworks 0.26.0
aws-sdk-opsworkscm 0.26.0
aws-sdk-organizations 0.26.0
aws-sdk-outposts 0.26.0
aws-sdk-panorama 0.26.0
aws-sdk-personalize 0.26.0
aws-sdk-personalizeevents 0.26.0
aws-sdk-personalizeruntime 0.26.0
aws-sdk-pi 0.26.0
aws-sdk-pinpoint 0.26.0
aws-sdk-pinpointemail 0.26.0
aws-sdk-pinpointsmsvoice 0.26.0
aws-sdk-pinpointsmsvoicev2 0.26.0
aws-sdk-pipes 0.4.0
aws-sdk-polly 0.26.0
aws-sdk-pricing 0.26.0
aws-sdk-privatenetworks 0.9.0
aws-sdk-proton 0.26.0
aws-sdk-qldb 0.26.0
aws-sdk-qldbsession 0.26.0
aws-sdk-quicksight 0.26.0
aws-sdk-ram 0.26.0
aws-sdk-rbin 0.26.0
aws-sdk-rds 0.26.0
aws-sdk-rdsdata 0.26.0
aws-sdk-redshift 0.26.0
aws-sdk-redshiftdata 0.26.0
aws-sdk-redshiftserverless 0.26.0
aws-sdk-rekognition 0.26.0
aws-sdk-resiliencehub 0.26.0
aws-sdk-resourceexplorer2 0.4.0
aws-sdk-resourcegroups 0.26.0
aws-sdk-resourcegroupstagging 0.26.0
aws-sdk-robomaker 0.26.0
aws-sdk-rolesanywhere 0.11.0
aws-sdk-route53 0.26.0
aws-sdk-route53domains 0.26.0
aws-sdk-route53recoverycluster 0.26.0
aws-sdk-route53recoverycontrolconfig 0.26.0
aws-sdk-route53recoveryreadiness 0.26.0
aws-sdk-route53resolver 0.26.0
aws-sdk-rum 0.26.0
aws-sdk-s3 0.26.0
aws-sdk-s3control 0.26.0
aws-sdk-s3outposts 0.26.0
aws-sdk-sagemaker 0.26.0
aws-sdk-sagemakera2iruntime 0.26.0
aws-sdk-sagemakeredge 0.26.0
aws-sdk-sagemakerfeaturestoreruntime 0.26.0
aws-sdk-sagemakergeospatial 0.4.0
aws-sdk-sagemakermetrics 0.4.0
aws-sdk-sagemakerruntime 0.26.0
aws-sdk-savingsplans 0.26.0
aws-sdk-scheduler 0.4.0
aws-sdk-schemas 0.26.0
aws-sdk-secretsmanager 0.26.0
aws-sdk-securityhub 0.26.0
aws-sdk-securitylake 0.4.0
aws-sdk-serverlessapplicationrepository 0.26.0
aws-sdk-servicecatalog 0.26.0
aws-sdk-servicecatalogappregistry 0.26.0
aws-sdk-servicediscovery 0.26.0
aws-sdk-servicequotas 0.26.0
aws-sdk-ses 0.26.0
aws-sdk-sesv2 0.26.0
aws-sdk-sfn 0.26.0
aws-sdk-shield 0.26.0
aws-sdk-signer 0.26.0
aws-sdk-simspaceweaver 0.4.0
aws-sdk-sms 0.26.0
aws-sdk-snowball 0.26.0
aws-sdk-snowdevicemanagement 0.26.0
aws-sdk-sns 0.26.0
aws-sdk-sqs 0.26.0
aws-sdk-ssm 0.26.0
aws-sdk-ssmcontacts 0.26.0
aws-sdk-ssmincidents 0.26.0
aws-sdk-ssmsap 0.4.0
aws-sdk-sso 0.26.0
aws-s...
Read more

April 5th, 2023

05 Apr 21:29
Compare
Choose a tag to compare
April 5th, 2023 Pre-release
Pre-release

Crate Versions

Click to expand to view crate versions...
Crate Version
aws-config 0.55.0
aws-credential-types 0.55.0
aws-endpoint 0.55.0
aws-http 0.55.0
aws-hyper 0.55.0
aws-sdk-accessanalyzer 0.25.1
aws-sdk-account 0.25.1
aws-sdk-acm 0.25.1
aws-sdk-acmpca 0.25.1
aws-sdk-alexaforbusiness 0.25.1
aws-sdk-amp 0.25.1
aws-sdk-amplify 0.25.1
aws-sdk-amplifybackend 0.25.1
aws-sdk-amplifyuibuilder 0.25.1
aws-sdk-apigateway 0.25.1
aws-sdk-apigatewaymanagement 0.25.1
aws-sdk-apigatewayv2 0.25.1
aws-sdk-appconfig 0.25.1
aws-sdk-appconfigdata 0.25.1
aws-sdk-appflow 0.25.1
aws-sdk-appintegrations 0.25.1
aws-sdk-applicationautoscaling 0.25.1
aws-sdk-applicationcostprofiler 0.25.1
aws-sdk-applicationdiscovery 0.25.1
aws-sdk-applicationinsights 0.25.1
aws-sdk-appmesh 0.25.1
aws-sdk-apprunner 0.25.1
aws-sdk-appstream 0.25.1
aws-sdk-appsync 0.25.1
aws-sdk-arczonalshift 0.3.1
aws-sdk-athena 0.25.1
aws-sdk-auditmanager 0.25.1
aws-sdk-autoscaling 0.25.1
aws-sdk-autoscalingplans 0.25.1
aws-sdk-backup 0.25.1
aws-sdk-backupgateway 0.25.1
aws-sdk-backupstorage 0.8.1
aws-sdk-batch 0.25.1
aws-sdk-billingconductor 0.25.1
aws-sdk-braket 0.25.1
aws-sdk-budgets 0.25.1
aws-sdk-chime 0.25.1
aws-sdk-chimesdkidentity 0.25.1
aws-sdk-chimesdkmediapipelines 0.25.1
aws-sdk-chimesdkmeetings 0.25.1
aws-sdk-chimesdkmessaging 0.25.1
aws-sdk-chimesdkvoice 0.3.1
aws-sdk-cleanrooms 0.2.1
aws-sdk-cloud9 0.25.1
aws-sdk-cloudcontrol 0.25.1
aws-sdk-clouddirectory 0.25.1
aws-sdk-cloudformation 0.25.1
aws-sdk-cloudfront 0.25.1
aws-sdk-cloudhsm 0.25.1
aws-sdk-cloudhsmv2 0.25.1
aws-sdk-cloudsearch 0.25.1
aws-sdk-cloudsearchdomain 0.25.1
aws-sdk-cloudtrail 0.25.1
aws-sdk-cloudtraildata 0.1.0
aws-sdk-cloudwatch 0.25.1
aws-sdk-cloudwatchevents 0.25.1
aws-sdk-cloudwatchlogs 0.25.1
aws-sdk-codeartifact 0.25.1
aws-sdk-codebuild 0.25.1
aws-sdk-codecatalyst 0.3.1
aws-sdk-codecommit 0.25.1
aws-sdk-codedeploy 0.25.1
aws-sdk-codeguruprofiler 0.25.1
aws-sdk-codegurureviewer 0.25.1
aws-sdk-codepipeline 0.25.1
aws-sdk-codestar 0.25.1
aws-sdk-codestarconnections 0.25.1
aws-sdk-codestarnotifications 0.25.1
aws-sdk-cognitoidentity 0.25.1
aws-sdk-cognitoidentityprovider 0.25.1
aws-sdk-cognitosync 0.25.1
aws-sdk-comprehend 0.25.1
aws-sdk-comprehendmedical 0.25.1
aws-sdk-computeoptimizer 0.25.1
aws-sdk-config 0.25.1
aws-sdk-connect 0.25.1
aws-sdk-connectcampaigns 0.25.1
aws-sdk-connectcases 0.6.1
aws-sdk-connectcontactlens 0.25.1
aws-sdk-connectparticipant 0.25.1
aws-sdk-controltower 0.6.1
aws-sdk-costandusagereport 0.25.1
aws-sdk-costexplorer 0.25.1
aws-sdk-customerprofiles 0.25.1
aws-sdk-databasemigration 0.25.1
aws-sdk-databrew 0.25.1
aws-sdk-dataexchange 0.25.1
aws-sdk-datapipeline 0.25.1
aws-sdk-datasync 0.25.1
aws-sdk-dax 0.25.1
aws-sdk-detective 0.25.1
aws-sdk-devicefarm 0.25.1
aws-sdk-devopsguru 0.25.1
aws-sdk-directconnect 0.25.1
aws-sdk-directory 0.25.1
aws-sdk-dlm 0.25.1
aws-sdk-docdb 0.25.1
aws-sdk-docdbelastic 0.3.1
aws-sdk-drs 0.25.1
aws-sdk-dynamodb 0.25.1
aws-sdk-dynamodbstreams 0.25.1
aws-sdk-ebs 0.25.1
aws-sdk-ec2 0.25.1
aws-sdk-ec2instanceconnect 0.25.1
aws-sdk-ecr 0.25.1
aws-sdk-ecrpublic 0.25.1
aws-sdk-ecs 0.25.1
aws-sdk-efs 0.25.1
aws-sdk-eks 0.25.1
aws-sdk-elasticache 0.25.1
aws-sdk-elasticbeanstalk 0.25.1
aws-sdk-elasticinference 0.25.1
aws-sdk-elasticloadbalancing 0.25.1
aws-sdk-elasticloadbalancingv2 0.25.1
aws-sdk-elasticsearch 0.25.1
aws-sdk-elastictranscoder 0.25.1
aws-sdk-emr 0.25.1
aws-sdk-emrcontainers 0.25.1
aws-sdk-emrserverless 0.25.1
aws-sdk-eventbridge 0.25.1
aws-sdk-evidently 0.25.1
aws-sdk-finspace 0.25.1
aws-sdk-finspacedata 0.25.1
aws-sdk-firehose 0.25.1
aws-sdk-fis 0.25.1
aws-sdk-fms 0.25.1
aws-sdk-forecast 0.25.1
aws-sdk-forecastquery 0.25.1
aws-sdk-frauddetector 0.25.1
aws-sdk-fsx 0.25.1
aws-sdk-gamelift 0.25.1
aws-sdk-gamesparks 0.25.1
aws-sdk-glacier 0.25.1
aws-sdk-globalaccelerator 0.25.1
aws-sdk-glue 0.25.1
aws-sdk-grafana 0.25.1
aws-sdk-greengrass 0.25.1
aws-sdk-greengrassv2 0.25.1
aws-sdk-groundstation 0.25.1
aws-sdk-guardduty 0.25.1
aws-sdk-health 0.25.1
aws-sdk-healthlake 0.25.1
aws-sdk-honeycode 0.25.1
aws-sdk-iam 0.25.1
aws-sdk-identitystore 0.25.1
aws-sdk-imagebuilder 0.25.1
aws-sdk-inspector 0.25.1
aws-sdk-inspector2 0.25.1
aws-sdk-internetmonitor 0.1.0
aws-sdk-iot 0.25.1
aws-sdk-iot1clickdevices 0.25.1
aws-sdk-iot1clickprojects 0.25.1
aws-sdk-iotanalytics 0.25.1
aws-sdk-iotdataplane 0.25.1
aws-sdk-iotdeviceadvisor 0.25.1
aws-sdk-iotevents 0.25.1
aws-sdk-ioteventsdata 0.25.1
aws-sdk-iotfleethub 0.25.1
aws-sdk-iotfleetwise 0.6.1
aws-sdk-iotjobsdataplane 0.25.1
aws-sdk-iotroborunner 0.3.1
aws-sdk-iotsecuretunneling 0.25.1
aws-sdk-iotsitewise 0.25.1
aws-sdk-iotthingsgraph 0.25.1
aws-sdk-iottwinmaker 0.25.1
aws-sdk-iotwireless 0.25.1
aws-sdk-ivs 0.25.1
aws-sdk-ivschat 0.25.1
aws-sdk-ivsrealtime 0.1.0
aws-sdk-kafka 0.25.1
aws-sdk-kafkaconnect 0.25.1
aws-sdk-kendra 0.25.1
aws-sdk-kendraranking 0.3.1
aws-sdk-keyspaces 0.25.1
aws-sdk-kinesis 0.25.1
aws-sdk-kinesisanalytics 0.25.1
aws-sdk-kinesisanalyticsv2 0.25.1
aws-sdk-kinesisvideo 0.25.1
aws-sdk-kinesisvideoarchivedmedia 0.25.1
aws-sdk-kinesisvideomedia 0.25.1
aws-sdk-kinesisvideosignaling 0.25.1
aws-sdk-kinesisvideowebrtcstorage 0.3.1
aws-sdk-kms 0.25.1
aws-sdk-lakeformation 0.25.1
aws-sdk-lambda 0.25.1
aws-sdk-lexmodelbuilding 0.25.1
aws-sdk-lexmodelsv2 0.25.1
aws-sdk-lexruntime 0.25.1
aws-sdk-lexruntimev2 0.25.1
aws-sdk-licensemanager 0.25.1
aws-sdk-licensemanagerlinuxsubscriptions 0.3.1
aws-sdk-licensemanagerusersubscriptions 0.9.1
aws-sdk-lightsail 0.25.1
aws-sdk-location 0.25.1
aws-sdk-lookoutequipment 0.25.1
aws-sdk-lookoutmetrics 0.25.1
aws-sdk-lookoutvision 0.25.1
aws-sdk-m2 0.25.1
aws-sdk-machinelearning 0.25.1
aws-sdk-macie 0.25.1
aws-sdk-macie2 0.25.1
aws-sdk-managedblockchain 0.25.1
aws-sdk-marketplacecatalog 0.25.1
aws-sdk-marketplacecommerceanalytics 0.25.1
aws-sdk-marketplaceentitlement 0.25.1
aws-sdk-marketplacemetering 0.25.1
aws-sdk-mediaconnect 0.25.1
aws-sdk-mediaconvert 0.25.1
aws-sdk-medialive 0.25.1
aws-sdk-mediapackage 0.25.1
aws-sdk-mediapackagevod 0.25.1
aws-sdk-mediastore 0.25.1
aws-sdk-mediastoredata 0.25.1
aws-sdk-mediatailor 0.25.1
aws-sdk-memorydb 0.25.1
aws-sdk-mgn 0.25.1
aws-sdk-migrationhub 0.25.1
aws-sdk-migrationhubconfig 0.25.1
aws-sdk-migrationhuborchestrator 0.6.1
aws-sdk-migrationhubrefactorspaces 0.25.1
aws-sdk-migrationhubstrategy 0.25.1
aws-sdk-mobile 0.25.1
aws-sdk-mq 0.25.1
aws-sdk-mturk 0.25.1
aws-sdk-mwaa 0.25.1
aws-sdk-neptune 0.25.1
aws-sdk-networkfirewall 0.25.1
aws-sdk-networkmanager 0.25.1
aws-sdk-nimble 0.25.1
aws-sdk-oam 0.3.1
aws-sdk-omics 0.3.1
aws-sdk-opensearch 0.25.1
aws-sdk-opensearchserverless 0.3.1
aws-sdk-opsworks 0.25.1
aws-sdk-opsworkscm 0.25.1
aws-sdk-organizations 0.25.1
aws-sdk-outposts 0.25.1
aws-sdk-panorama 0.25.1
aws-sdk-personalize 0.25.1
aws-sdk-personalizeevents 0.25.1
aws-sdk-personalizeruntime 0.25.1
aws-sdk-pi 0.25.1
aws-sdk-pinpoint 0.25.1
aws-sdk-pinpointemail 0.25.1
aws-sdk-pinpointsmsvoice 0.25.1
aws-sdk-pinpointsmsvoicev2 0.25.1
aws-sdk-pipes 0.3.1
aws-sdk-polly 0.25.1
aws-sdk-pricing 0.25.1
aws-sdk-privatenetworks 0.8.1
aws-sdk-proton 0.25.1
aws-sdk-qldb 0.25.1
aws-sdk-qldbsession 0.25.1
aws-sdk-quicksight 0.25.1
aws-sdk-ram 0.25.1
aws-sdk-rbin 0.25.1
aws-sdk-rds 0.25.1
aws-sdk-rdsdata 0.25.1
aws-sdk-redshift 0.25.1
aws-sdk-redshiftdata 0.25.1
aws-sdk-redshiftserverless 0.25.1
aws-sdk-rekognition 0.25.1
aws-sdk-resiliencehub 0.25.1
aws-sdk-resourceexplorer2 0.3.1
aws-sdk-resourcegroups 0.25.1
aws-sdk-resourcegroupstagging 0.25.1
aws-sdk-robomaker 0.25.1
aws-sdk-rolesanywhere 0.10.1
aws-sdk-route53 0.25.1
aws-sdk-route53domains 0.25.1
aws-sdk-route53recoverycluster 0.25.1
aws-sdk-route53recoverycontrolconfig 0.25.1
aws-sdk-route53recoveryreadiness 0.25.1
aws-sdk-route53resolver 0.25.1
aws-sdk-rum 0.25.1
aws-sdk-s3 0.25.1
aws-sdk-s3control 0.25.1
aws-sdk-s3outposts 0.25.1
aws-sdk-sagemaker 0.25.1
aws-sdk-sagemakera2iruntime 0.25.1
aws-sdk-sagemakeredge 0.25.1
aws-sdk-sagemakerfeaturestoreruntime 0.25.1
aws-sdk-sagemakergeospatial 0.3.1
aws-sdk-sagemakermetrics 0.3.1
aws-sdk-sagemakerruntime 0.25.1
aws-sdk-savingsplans 0.25.1
aws-sdk-scheduler 0.3.1
aws-sdk-schemas 0.25.1
aws-sdk-secretsmanager 0.25.1
aws-sdk-securityhub 0.25.1
aws-sdk-securitylake 0.3.1
aws-sdk-serverlessapplicationrepository 0.25.1
aws-sdk-servicecatalog 0.25.1
aws-sdk-servicecatalogappregistry 0.25.1
aws-sdk-servicediscovery 0.25.1
aws-sdk-servicequotas 0.25.1
aws-sdk-ses 0.25.1
aws-sdk-sesv2 0.25.1
aws-sdk-sfn 0.25.1
aws-sdk-shield 0.25.1
aws-sdk-signer 0.25.1
aws-sdk-simspaceweaver 0.3.1
aws-sdk-sms 0.25.1
aws-sdk-snowball 0.25.1
aws-sdk-snowdevicemanagement 0.25.1
aws-sdk-sns 0.25.1
aws-sdk-sqs 0.25.1
aws-sdk-ssm 0.25.1
aws-sdk-ssmcontacts 0.25.1
aws-sdk-ssmincidents 0.25.1
aws-sdk-ssmsap 0.3.1
aws-sdk-sso 0.25.1
aws-sdk-ssoadmin 0.25.1
aws-sdk-ssooidc 0.25.1
aws-sdk-storagegateway 0.25.1
aws-sdk-sts 0.25.1
aws-sdk-support 0.25.1
aws-sdk-supportapp 0.8.1
aws-sdk-swf 0.25.1
aws-sdk-synthetics 0.25.1
aws-sdk-textract 0.25.1...
Read more

March 30th, 2023

30 Mar 19:18
Compare
Choose a tag to compare
March 30th, 2023 Pre-release
Pre-release

Breaking Changes:

  • βš πŸŽ‰ (smithy-rs#2467) Update MSRV to 1.66.1

  • ⚠ (smithy-rs#76, smithy-rs#2129) Request IDs can now be easily retrieved on successful responses. For example, with S3:

    // Import the trait to get the `request_id` method on outputs
    use aws_sdk_s3::types::RequestId;
    let output = client.list_buckets().send().await?;
    println!("Request ID: {:?}", output.request_id());
  • ⚠ (smithy-rs#76, smithy-rs#2129) Retrieving a request ID from errors now requires importing the RequestId trait. For example, with S3:

    use aws_sdk_s3::types::RequestId;
    println!("Request ID: {:?}", error.request_id());
  • ⚠ (smithy-rs#76, smithy-rs#2129) The message() and code() methods on errors have been moved into ProvideErrorMetadata trait. This trait will need to be imported to continue calling these.

  • ⚠ (smithy-rs#76, smithy-rs#2129, smithy-rs#2075) The *Error and *ErrorKind types have been combined to make error matching simpler.

    Example with S3

    Before:

    let result = client
        .get_object()
        .bucket(BUCKET_NAME)
        .key("some-key")
        .send()
        .await;
    match result {
        Ok(_output) => { /* Do something with the output */ }
        Err(err) => match err.into_service_error() {
            GetObjectError { kind, .. } => match kind {
                GetObjectErrorKind::InvalidObjectState(value) => println!("invalid object state: {:?}", value),
                GetObjectErrorKind::NoSuchKey(_) => println!("object didn't exist"),
            }
            err @ GetObjectError { .. } if err.code() == Some("SomeUnmodeledError") => {}
            err @ _ => return Err(err.into()),
        },
    }

    After:

    // Needed to access the `.code()` function on the error type:
    use aws_sdk_s3::types::ProvideErrorMetadata;
    let result = client
        .get_object()
        .bucket(BUCKET_NAME)
        .key("some-key")
        .send()
        .await;
    match result {
        Ok(_output) => { /* Do something with the output */ }
        Err(err) => match err.into_service_error() {
            GetObjectError::InvalidObjectState(value) => {
                println!("invalid object state: {:?}", value);
            }
            GetObjectError::NoSuchKey(_) => {
                println!("object didn't exist");
            }
            err if err.code() == Some("SomeUnmodeledError") => {}
            err @ _ => return Err(err.into()),
        },
    }
  • ⚠ (smithy-rs#76, smithy-rs#2129) aws_smithy_types::Error has been renamed to aws_smithy_types::error::ErrorMetadata.

  • ⚠ (smithy-rs#2433) The modules in the SDK crates have been reorganized. See the SDK Crate Reorganization Upgrade Guidance to see how to fix your code after this change.

  • ⚠ (aws-sdk-rust#160, smithy-rs#2445) Reconnect on transient errors.

    If a transient error (timeout, 500, 503, 503) is encountered, the connection will be evicted from the pool and will not
    be reused. This is enabled by default for all AWS services. It can be disabled by setting RetryConfig::with_reconnect_mode

    Although there is no API breakage from this change, it alters the client behavior in a way that may cause breakage for customers.

  • ⚠ (smithy-rs#2390, smithy-rs#1784) Remove deprecated ResolveAwsEndpoint interfaces.
    For details see the longform changelog entry.

  • βš πŸŽ‰ (smithy-rs#2222, @Nugine) Upgrade Rust MSRV to 1.63.0

New this release:

  • πŸ›πŸŽ‰ (aws-sdk-rust#740) Fluent builder methods on the client are now marked as deprecated when the related operation is deprecated.

  • πŸŽ‰ (smithy-rs#2428, smithy-rs#2208) SdkError variants can now be constructed for easier unit testing.

  • πŸŽ‰ (aws-sdk-rust#753, smithy-rs#2451) Enable presigning for S3's HeadObject operation.

  • (smithy-rs#2437, aws-sdk-rust#600) Add more client re-exports. Specifically, it re-exports aws_smithy_http::body::SdkBody, aws_smithy_http::byte_stream::error::Error, and aws_smithy_http::operation::{Request, Response}.

  • πŸ› (smithy-rs#2471, smithy-rs#2333, smithy-rs#2151) Default connector provided by aws-config now respects ConnectorSettings.

    Previously, it used the timeout settings provided by aws-config. A test from @Oliboy50 has been incorporated to verify this behavior.

    Behavior Change: Prior to this change, the Hyper client would be shared between all service clients. After this change, each service client will use its own Hyper Client.
    To revert to the previous behavior, set HttpConnector::Prebuilt on SdkConfig::http_connector.

  • (smithy-rs#2474) Increase Tokio version to 1.23.1 for all crates. This is to address RUSTSEC-2023-0001

  • πŸŽ‰ (smithy-rs#2258) Add static stability support to IMDS credentials provider. It does not alter common use cases for the provider, but allows the provider to serve expired credentials in case IMDS is unreachable. This allows requests to be dispatched to a target service with expired credentials. This, in turn, allows the target service to make the ultimate decision as to whether requests sent are valid or not.

  • (smithy-rs#2246) Provide a way to retrieve fallback credentials if a call to provide_credentials is interrupted. An interrupt can occur when a timeout future is raced against a future for provide_credentials, and the former wins the race. A new method, fallback_on_interrupt on the ProvideCredentials trait, can be used in that case. The following code snippet from LazyCredentialsCache::provide_cached_credentials has been updated like so:

    Before:

    let timeout_future = self.sleeper.sleep(self.load_timeout);
    // --snip--
    let future = Timeout::new(provider.provide_credentials(), timeout_future);
    let result = cache
        .get_or_load(|| {
            async move {
                let credentials = future.await.map_err(|_err| {
                    CredentialsError::provider_timed_out(load_timeout)
                })??;
                // --snip--
            }
        }).await;
    // --snip--

    After:

    let timeout_future = self.sleeper.sleep(self.load_timeout);
    // --snip--
    let future = Timeout::new(provider.provide_credentials(), timeout_future);
    let result = cache
        .get_or_load(|| {
            async move {
               let credentials = match future.await {
                    Ok(creds) => creds?,
                    Err(_err) => match provider.fallback_on_interrupt() { // can provide fallback credentials
                        Some(creds) => creds,
                        None => return Err(CredentialsError::provider_timed_out(load_timeout)),
                    }
                };
                // --snip--
            }
        }).await;
    // --snip--
  • πŸ› (smithy-rs#2271) Fix broken doc link for tokio_stream::Stream that is a re-export of futures_core::Stream.

  • πŸ› (smithy-rs#2261, aws-sdk-rust#720, @nipunn1313) Fix request canonicalization for HTTP requests with repeated headers (for example S3's GetObjectAttributes). Previously requests with repeated headers would fail with a 403 signature mismatch due to this bug.

  • (smithy-rs#2335) Adds jitter to LazyCredentialsCache. This allows credentials with the same expiry to expire at slightly different times, thereby preventing thundering herds.

  • πŸ› (aws-sdk-rust#736) Fix issue where clients using native-tls connector were prevented from making HTTPS requests.

Crate Versions

Click to expand to view crate versions...
Crate Version
aws-config 0.55.0
aws-credential-types 0.55.0
aws-endpoint 0.55.0
aws-http 0.55.0
aws-hyper 0.55.0
aws-sdk-accessanalyzer 0.25.0
aws-sdk-...
Read more

January 26th, 2023

26 Jan 21:43
Compare
Choose a tag to compare
January 26th, 2023 Pre-release
Pre-release

Breaking Changes:

  • ⚠ (smithy-rs#2122, smithy-rs#2227) Improve SDK credentials caching through type safety. LazyCachingCredentialsProvider has been renamed to LazyCredentialsCache and is no longer treated as a credentials provider. Furthermore, you do not create a LazyCredentialsCache directly, and instead you interact with CredentialsCache. This introduces the following breaking changes.

    If you previously used LazyCachingCredentialsProvider, you can replace it with CredentialsCache.

    Example

    Before:

    use aws_config::meta::credentials::lazy_caching::LazyCachingCredentialsProvider;
    use aws_types::provider::ProvideCredentials;
    
    fn make_provider() -> impl ProvideCredentials {
        // --snip--
    }
    
    let credentials_provider =
        LazyCachingCredentialsProvider::builder()
            .load(make_provider())
            .build();
    
    let sdk_config = aws_config::from_env()
        .credentials_provider(credentials_provider)
        .load()
        .await;
    
    let client = aws_sdk_s3::Client::new(&sdk_config);

    After:

    use aws_credential_types::cache::CredentialsCache;
    use aws_types::provider::ProvideCredentials;
    
    fn make_provider() -> impl ProvideCredentials {
        // --snip--
    }
    
    // Wrapping a result of `make_provider` in `LazyCredentialsCache` is done automatically.
    let sdk_config = aws_config::from_env()
        .credentials_cache(CredentialsCache::lazy()) // This line can be omitted because it is on by default.
        .credentials_provider(make_provider())
        .load()
        .await;
    
    let client = aws_sdk_s3::Client::new(&sdk_config);

    If you previously configured a LazyCachingCredentialsProvider, you can use the builder for LazyCredentialsCache instead.

    Before:

    use aws_config::meta::credentials::lazy_caching::LazyCachingCredentialsProvider;
    use aws_types::provider::ProvideCredentials;
    use std::time::Duration;
    
    fn make_provider() -> impl ProvideCredentials {
        // --snip--
    }
    
    let credentials_provider =
        LazyCachingCredentialsProvider::builder()
            .load(make_provider())
            .load_timeout(Duration::from_secs(60)) // Configures timeout.
            .build();
    
    let sdk_config = aws_config::from_env()
        .credentials_provider(credentials_provider)
        .load()
        .await;
    
    let client = aws_sdk_s3::Client::new(&sdk_config);

    After:

    use aws_credential_types::cache::CredentialsCache;
    use aws_types::provider::ProvideCredentials;
    use std::time::Duration;
    
    fn make_provider() -> impl ProvideCredentials {
        // --snip--
    }
    
    let sdk_config = aws_config::from_env()
        .credentials_cache(
            CredentialsCache::lazy_builder()
                .load_timeout(Duration::from_secs(60)) // Configures timeout.
                .into_credentials_cache(),
        )
        .credentials_provider(make_provider())
        .load()
        .await;
    
    let client = aws_sdk_s3::Client::new(&sdk_config);

    The examples above only demonstrate how to use credentials_cache and credentials_provider methods on aws_config::ConfigLoader but the same code update can be applied when you interact with aws_types::sdk_config::Builder or the builder for a service-specific config, e.g. aws_sdk_s3::config::Builder.

    If you previously configured a DefaultCredentialsChain by calling load_timeout, buffer_time, or default_credential_expiration on its builder, you need to call the same set of methods on the builder for LazyCredentialsCache instead.

    Example

    Before:

    use aws_config::default_provider::credentials::DefaultCredentialsChain;
    use std::time::Duration;
    
    let credentials_provider = DefaultCredentialsChain::builder()
        .buffer_time(Duration::from_secs(30))
        .default_credential_expiration(Duration::from_secs(20 * 60))
        .build()
        .await;
    
    let sdk_config = aws_config::from_env()
        .credentials_provider(credentials_provider)
        .load()
        .await;
    
    let client = aws_sdk_s3::Client::new(&sdk_config);

    After:

    use aws_config::default_provider::credentials::default_provider;
    use aws_credential_types::cache::CredentialsCache;
    use std::time::Duration;
    
    // Previously used methods no longer exist on the builder for `DefaultCredentialsChain`.
    let credentials_provider = default_provider().await;
    
    let sdk_config = aws_config::from_env()
        .credentials_cache(
            CredentialsCache::lazy_builder()
                .buffer_time(Duration::from_secs(30))
                .default_credential_expiration(Duration::from_secs(20 * 60))
                .into_credentials_cache(),
        )
        .credentials_provider(credentials_provider)
        .load()
        .await;
    
    let client = aws_sdk_s3::Client::new(&sdk_config);
  • ⚠ (smithy-rs#2122, smithy-rs#2227) The introduction of CredentialsCache comes with an accompanying type SharedCredentialsCache, which we will store in the property bag instead of a SharedCredentialsProvider. As a result, aws_http::auth:set_provider has been updated to aws_http::auth::set_credentials_cache.

    Before:

    use aws_credential_types::Credentials;
    use aws_credential_types::provider::SharedCredentialsProvider;
    use aws_http::auth::set_provider;
    use aws_smithy_http::body::SdkBody;
    use aws_smithy_http::operation;
    
    let mut req = operation::Request::new(http::Request::new(SdkBody::from("some body")));
    let credentials = Credentials::new("example", "example", None, None, "my_provider_name");
    set_provider(
        &mut req.properties_mut(),
        SharedCredentialsProvider::new(credentials),
    );

    After:

    use aws_credential_types::Credentials;
    use aws_credential_types::cache::{CredentialsCache, SharedCredentialsCache};
    use aws_credential_types::provider::SharedCredentialsProvider;
    use aws_http::auth::set_credentials_cache;
    use aws_smithy_http::body::SdkBody;
    use aws_smithy_http::operation;
    
    let mut req = operation::Request::new(http::Request::new(SdkBody::from("some body")));
    let credentials = Credentials::new("example", "example", None, None, "my_provider_name");
    let credentials_cache = CredentialsCache::lazy_builder()
        .into_credentials_cache()
        .create_cache(SharedCredentialsProvider::new(credentials));
    set_credentials_cache(
        &mut req.properties_mut(),
        SharedCredentialsCache::new(credentials_cache),
    );

New this release:

  • πŸ› (smithy-rs#2204) Fix endpoint for s3.write_get_object_response(). This bug was introduced in 0.53.
  • (smithy-rs#2204) Add with_test_defaults() and set_test_defaults() to <service>::Config. These methods fill in defaults for configuration that is mandatory to successfully send a request.

January 13th, 2023

13 Jan 22:08
Compare
Choose a tag to compare
January 13th, 2023 Pre-release
Pre-release

Breaking Changes:

  • βš πŸŽ‰ (smithy-rs#1784, smithy-rs#2074) Integrate Endpoints 2.0 into the Rust SDK. Endpoints 2.0 enables features like S3 virtual addressing & S3
    object lambda. As part of this change, there are several breaking changes although efforts have been made to deprecate
    where possible to smooth the upgrade path.

    1. aws_smithy_http::endpoint::Endpoint and the endpoint_resolver methods have been deprecated. In general, these usages
      should be replaced with usages of endpoint_url instead. endpoint_url accepts a string so an aws_smithy_http::Endpoint
      does not need to be constructed. This structure and methods will be removed in a future release.
    2. The endpoint_resolver method on <service>::config::Builder now accepts a service specific endpoint resolver instead
      of an implementation of ResolveAwsEndpoint. Most users will be able to replace these usages with a usage of endpoint_url.
    3. ResolveAwsEndpoint has been deprecated and will be removed in a future version of the SDK.
    4. The SDK does not support "pseudo regions" anymore. Specifically, regions like iam-fips will no longer resolve to a FIPS endpoint.
  • βš πŸŽ‰ (smithy-rs#1784, smithy-rs#2074) Add additional configuration parameters to aws_sdk_s3::Config.

    The launch of endpoints 2.0 includes more configuration options for S3. The default behavior for endpoint resolution has
    been changed. Before, all requests hit the path-style endpoint. Going forward, all requests that can be routed to the
    virtually hosted bucket will be routed there automatically.

    • force_path_style: Requests will now default to the virtually-hosted endpoint <bucketname>.s3.<region>.amazonaws.com
    • use_arn_region: Enables this client to use an ARN’s region when constructing an endpoint instead of the client’s configured region.
    • accelerate: Enables this client to use S3 Transfer Acceleration endpoints.

    Note: the AWS SDK for Rust does not currently support Multi Region Access Points (MRAP).

  • ⚠ (smithy-rs#2108) Move types for AWS SDK credentials to a separate crate.
    A new AWS runtime crate called aws-credential-types has been introduced. Types for AWS SDK credentials have been moved to that crate from aws-config and aws-types. The new crate is placed at the top of the dependency graph among AWS runtime crates with the aim of the downstream crates having access to the types defined in it.

  • ⚠ (smithy-rs#2162) aws_config::profile::retry_config && aws_config::environment::retry_config have been removed. Use aws_config::default_provider::retry_config instead.

New this release:

  • πŸŽ‰ (smithy-rs#2168) Add support for resolving FIPS and dual-stack endpoints.

    FIPS and dual-stack endpoints can each be configured in multiple ways:

    1. Automatically from the environment and AWS profile
    2. Across all clients loaded from the same SdkConfig via from_env().use_dual_stack(true).load().await
    3. At a client level when constructing the configuration for an individual client.

    Note: Not all services support FIPS and dual-stack.

  • (smithy-rs#2152) Add support for overriding profile name and profile file location across all providers. Prior to this change, each provider needed to be updated individually.

    Before

    use aws_config::profile::{ProfileFileCredentialsProvider, ProfileFileRegionProvider};
    use aws_config::profile::profile_file::{ProfileFiles, ProfileFileKind};
    
    let profile_files = ProfileFiles::builder()
        .with_file(ProfileFileKind::Credentials, "some/path/to/credentials-file")
        .build();
    let credentials_provider = ProfileFileCredentialsProvider::builder()
        .profile_files(profile_files.clone())
        .build();
    let region_provider = ProfileFileRegionProvider::builder()
        .profile_files(profile_files)
        .build();
    
    let sdk_config = aws_config::from_env()
        .credentials_provider(credentials_provider)
        .region(region_provider)
        .load()
        .await;

    After

    use aws_config::profile::{ProfileFileCredentialsProvider, ProfileFileRegionProvider};
    use aws_config::profile::profile_file::{ProfileFiles, ProfileFileKind};
    
    let profile_files = ProfileFiles::builder()
        .with_file(ProfileFileKind::Credentials, "some/path/to/credentials-file")
        .build();
    let sdk_config = aws_config::from_env()
        .profile_files(profile_files)
        .load()
        .await;
    /// ```
    

December 14th, 2022

14 Dec 23:29
Compare
Choose a tag to compare
December 14th, 2022 Pre-release
Pre-release

Breaking Changes:

  • πŸ›βš  (smithy-rs#1847) Support Sigv4 signature generation on PowerPC 32 and 64 bit. This architecture cannot compile ring, so the implementation has been updated to rely on hamc + sha2 to achive the same result with broader platform compatibility and higher performance. We also updated the CI which is now running as many tests as possible against i686 and PowerPC 32 and 64 bit.

  • ⚠ (smithy-rs#1225, smithy-rs#1918) <service>::Client::from_conf_conn has been removed since it's now possible to configure the connection from the
    shared and service configs. To update your code, pass connections to the http_connector method during config creation.

    Example

    before:

        let conf = aws_sdk_sts::Config::builder()
            // The builder has no defaults but setting other fields is omitted for brevity...
            .build();
        let (server, request) = capture_request(None);
        let client = aws_sdk_sts::Client::from_conf_conn(conf, server);

    after:

        let (server, request) = capture_request(None);
        let conf = aws_sdk_sts::Config::builder()
            // The builder has no defaults but setting other fields is omitted for brevity...
            .http_connector(server)
            .build();
        let client = aws_sdk_sts::Client::from_conf(conf);
  • ⚠ (smithy-rs#1935) Removed re-export of aws_smithy_client::retry::Config from the middleware module.

  • ⚠ (smithy-rs#1926, smithy-rs#1819) Several breaking changes have been made to errors. See the upgrade guide for more information.

  • ⚠ (smithy-rs#1945) Generate enums that guide the users to write match expressions in a forward-compatible way.
    Before this change, users could write a match expression against an enum in a non-forward-compatible way:

    match some_enum {
        SomeEnum::Variant1 => { /* ... */ },
        SomeEnum::Variant2 => { /* ... */ },
        Unknown(value) if value == "NewVariant" => { /* ... */ },
        _ => { /* ... */ },
    }

    This code can handle a case for "NewVariant" with a version of SDK where the enum does not yet include SomeEnum::NewVariant, but breaks with another version of SDK where the enum defines SomeEnum::NewVariant because the execution will hit a different match arm, i.e. the last one.
    After this change, users are guided to write the above match expression as follows:

    match some_enum {
        SomeEnum::Variant1 => { /* ... */ },
        SomeEnum::Variant2 => { /* ... */ },
        other @ _ if other.as_str() == "NewVariant" => { /* ... */ },
        _ => { /* ... */ },
    }

    This is forward-compatible because the execution will hit the second last match arm regardless of whether the enum defines SomeEnum::NewVariant or not.

  • ⚠ (smithy-rs#1984, smithy-rs#1496) Functions on aws_smithy_http::endpoint::Endpoint now return a Result instead of panicking.

  • ⚠ (smithy-rs#1984, smithy-rs#1496) Endpoint::mutable now takes impl AsRef<str> instead of Uri. For the old functionality, use Endpoint::mutable_uri.

  • ⚠ (smithy-rs#1984, smithy-rs#1496) Endpoint::immutable now takes impl AsRef<str> instead of Uri. For the old functionality, use Endpoint::immutable_uri.

  • ⚠ (smithy-rs#1983, smithy-rs#2029) Implementation of the Debug trait for container shapes now redacts what is printed per the sensitive trait.

  • ⚠ (smithy-rs#2065) SdkBody callbacks have been removed. If you were using these, please file an issue so that we can better understand your use-case and provide the support you need.

  • ⚠ (smithy-rs#2063) AwsEndpointStage, a middleware which set endpoints and auth has been split into AwsAuthStage and SmithyEndpointStage. Related types have also been renamed.

  • ⚠ (smithy-rs#1989) The Unit type for a Union member is no longer rendered. The serializers and parsers generated now function accordingly in the absence of the inner data associated with the Unit type.

New this release:

  • πŸŽ‰ (smithy-rs#1225, smithy-rs#1918)

    The HTTP connector used when making requests is now configurable through `SdkConfig`.
    use std::time::Duration;
    use aws_smithy_client::{Client, hyper_ext};
    use aws_smithy_client::erase::DynConnector;
    use aws_smithy_client::http_connector::ConnectorSettings;
    use aws_types::SdkConfig;
    
    let https_connector = hyper_rustls::HttpsConnectorBuilder::new()
        .with_webpki_roots()
        .https_only()
        .enable_http1()
        .enable_http2()
        .build();
    
    let smithy_connector = hyper_ext::Adapter::builder()
        // Optionally set things like timeouts as well
        .connector_settings(
            ConnectorSettings::builder()
                .connect_timeout(Duration::from_secs(5))
                .build()
        )
        .build(https_connector);
    
    let sdk_config = aws_config::from_env()
        .http_connector(smithy_connector)
        .load()
        .await;
    
    let client = Client::new(&sdk_config);
    
    // When sent, this operation will go through the custom smithy connector instead of
    // the default HTTP connector.
    let op = client
        .get_object()
        .bucket("some-test-bucket")
        .key("test.txt")
        .send()
        .await
        .unwrap();
  • πŸŽ‰ (aws-sdk-rust#641, smithy-rs#1892, @albe-rosado) Ability to add an inline policy or a list of policy ARNs to the AssumeRoleProvider builder.

  • πŸŽ‰ (smithy-rs#2044, smithy-rs#371) Fixed and improved the request tracing span hierarchy to improve log messages, profiling, and debuggability.

  • (smithy-rs#1890) Add test to exercise excluded headers in aws-sigv4.

  • (smithy-rs#1801) Add test ensuring that a response will error if the response body returns an EOF before the entire body has been read.

  • (smithy-rs#1923) Fix cargo audit issue on criterion.

  • (smithy-rs#1918) Add to_vec method to aws_smithy_http::byte_stream::AggregatedBytes.

  • πŸ› (smithy-rs#1957) It was possible in some cases to send some S3 requests without a required upload ID, causing a risk of unintended data
    deletion and modification. Now, when an operation has query parameters that are marked as required, the omission of
    those query parameters will cause a BuildError, preventing the invalid operation from being sent.

  • πŸ› (smithy-rs#2018) Normalize URI paths per RFC3986 when constructing canonical requests, except for S3.

  • (smithy-rs#2064, aws-sdk-rust#632) The SDK clients now default max idle connections to 70 (previously unlimited) to reduce the likelihood of hitting max file handles in AWS Lambda.

  • (smithy-rs#2057, smithy-rs#371) Add more tracing events to signing and event streams

  • (smithy-rs#2062) Log an info on credentials cache miss and adjust level of some credential tracing spans/events.

Contributors
Thank you for your contributions! ❀

October 26th, 2022

26 Oct 23:01
Compare
Choose a tag to compare
October 26th, 2022 Pre-release
Pre-release

Breaking Changes:

  • ⚠ (smithy-rs#1825) Bump MSRV to be 1.62.0.
  • ⚠ (smithy-rs#1740, smithy-rs#256) The SDK, by default, now times out if socket connect or time to first byte read takes longer than
    3.1 seconds. There are a large number of breaking changes that come with this change that may
    affect you if you customize the client configuration at all.
    See the upgrade guide for information
    on how to configure timeouts, and how to resolve compilation issues after upgrading.

New this release:

  • πŸŽ‰ (aws-sdk-rust#237, smithy-rs#1770) It is now possible to programmatically customize the locations of the profile config/credentials files in aws-config:
    use aws_config::profile::{ProfileFileCredentialsProvider, ProfileFileRegionProvider};
    use aws_config::profile::profile_file::{ProfileFiles, ProfileFileKind};
    
    let profile_files = ProfileFiles::builder()
        .with_file(ProfileFileKind::Credentials, "some/path/to/credentials-file")
        .build();
    let credentials_provider = ProfileFileCredentialsProvider::builder()
        .profile_files(profile_files.clone())
        .build();
    let region_provider = ProfileFileRegionProvider::builder()
        .profile_files(profile_files)
        .build();
    
    let sdk_config = aws_config::from_env()
        .credentials_provider(credentials_provider)
        .region(region_provider)
        .load()
        .await;
  • πŸ› (smithy-rs#1740, smithy-rs#256) Setting connect/read timeouts with SdkConfig now works. Previously, these timeout config values
    were lost during connector creation, so the only reliable way to set them was to manually override
    the HTTP connector.
  • πŸ› (aws-sdk-rust#620, smithy-rs#1748) Paginators now stop on encountering a duplicate token by default rather than panic. This behavior can be customized by toggling the stop_on_duplicate_token property on the paginator before calling send.
  • πŸ› (smithy-rs#1747, @kastolars) The client Config now has getters for every value that it holds.
  • πŸ› (smithy-rs#1822, @kevinpark1217) Fix regression where connect_timeout and read_timeout fields are unused in the IMDS client
  • (aws-sdk-rust#625, @kevinpark1217) Ability to override the IMDS client in DefaultCredentialsChain
  • πŸ› (smithy-rs#1656) Fix aws-sigv4 canonical request formatting fallibility.
  • (smithy-rs#1890) Add test to exercise excluded headers in aws-sigv4.

Contributors
Thank you for your contributions! ❀

October 13th, 2022

13 Oct 21:45
Compare
Choose a tag to compare
October 13th, 2022 Pre-release
Pre-release

There were issues with release automation for this release, and it has been yanked from crates.io.

September 21st, 2022

21 Sep 00:40
Compare
Choose a tag to compare
September 21st, 2022 Pre-release
Pre-release

Breaking Changes:

  • ⚠ (smithy-rs#1603, aws-sdk-rust#586) aws_config::RetryConfig no longer implements Default, and its new function has been replaced with standard.
  • ⚠ (smithy-rs#1603, aws-sdk-rust#586) Direct configuration of aws_config::SdkConfig now defaults to retries being disabled.
    If you're using aws_config::load_from_env() or aws_config::from_env() to configure
    the SDK, then you are NOT affected by this change. If you use SdkConfig::builder() to
    configure the SDK, then you ARE affected by this change and should set the retry config
    on that builder.
  • ⚠ (smithy-rs#1603, aws-sdk-rust#586) Client creation now panics if retries or timeouts are enabled without an async sleep
    implementation set on the SDK config.
    If you're using the Tokio runtime and have the rt-tokio feature enabled (which is enabled by default),
    then you shouldn't notice this change at all.
    Otherwise, if using something other than Tokio as the async runtime, the AsyncSleep trait must be implemented,
    and that implementation given to the config builder via the sleep_impl method. Alternatively, retry can be
    explicitly turned off by setting the retry config to RetryConfig::disabled(), which will result in successful
    client creation without an async sleep implementation.
  • ⚠ (smithy-rs#1715, smithy-rs#1717) ClassifyResponse was renamed to ClassifyRetry and is no longer implemented for the unit type.
  • ⚠ (smithy-rs#1715, smithy-rs#1717) The with_retry_policy and retry_policy functions on aws_smithy_http::operation::Operation have been
    renamed to with_retry_classifier and retry_classifier respectively. Public member retry_policy on
    aws_smithy_http::operation::Parts has been renamed to retry_classifier.

New this release:

  • πŸŽ‰ (smithy-rs#1647, smithy-rs#1112) Implemented customizable operations per RFC-0017.

    Before this change, modifying operations before sending them required using lower-level APIs:

    let input = SomeOperationInput::builder().some_value(5).build()?;
    
    let operation = {
        let op = input.make_operation(&service_config).await?;
        let (request, response) = op.into_request_response();
    
        let request = request.augment(|req, _props| {
            req.headers_mut().insert(
                HeaderName::from_static("x-some-header"),
                HeaderValue::from_static("some-value")
            );
            Result::<_, Infallible>::Ok(req)
        })?;
    
        Operation::from_parts(request, response)
    };
    
    let response = smithy_client.call(operation).await?;

    Now, users may easily modify operations before sending with the customize method:

    let response = client.some_operation()
        .some_value(5)
        .customize()
        .await?
        .mutate_request(|mut req| {
            req.headers_mut().insert(
                HeaderName::from_static("x-some-header"),
                HeaderValue::from_static("some-value")
            );
        })
        .send()
        .await?;
  • πŸ› (smithy-rs#966, smithy-rs#1718) The AWS STS SDK now automatically retries IDPCommunicationError when calling AssumeRoleWithWebIdentity

  • πŸ› (aws-sdk-rust#303, smithy-rs#1717) The SdkError::ResponseError, typically caused by a connection terminating before the full response is received, is now treated as a transient failure and retried.