v5.0.0
Major changes
- Soto: The rename to Soto is complete. The package name is "soto" and all libraries are prefixed with the name "Soto".
AWSClient
has now been split from the service objects. So you can have oneAWSClient
that is used by many services.- HTTP Client: We are now using the swift server
async-http-client
instead of our custom http client. We also provide the ability for the user to replace this client with their own. - Credential providers: Abstracted credential acquisition to make it easier to write credential providers and control which credential providers you want to use. Added new credential providers for STS and Cognito.
- Swift server eco-system: On top of using
async-http-client
we have added support forswift-log
andswift-metrics
. - Crypto: There is no dependency on openssl libraries anymore. Instead we use
swift-crypto
on Linux andCommonCrypto
on macOS and iOS. - Request/Response encoding/decoding:
- We have added a
Codable
basedQueryEncoder
so all protocols now useCodable
for serialisation. - Added property wrappers for Collection types
Array
andDictionary
to define how they are serialised. We have also included property wrappers forDate
which has allowed us to removeTimestamp
and replace it withDate
. - Fixed many serialisation bugs.
- We have added a
- Request Signing: The V4 signer has been completely re-written and is available as a separate library. This also added support for signing streamed S3 requests.
- Streaming: We have added support for both streaming of request data and streaming of response data thus allowing the uploading and downloading of large files without requiring a large memory footprint. Added
AWSPayload
for raw payloads. Allows the user to supply a payload as aString
,Data
,ByteBuffer
or closure supplying a stream ofByteBuffers
. - Retrying Requests: AWSClient now retries requests that have failed. You can define how the client does this using a
RetryPolicy
object. - DynamoDB Codable: Added
Codable
encoder and decoder for DynamoDBAttributeValue
arrays. Wrapped versions of standard functions (getItem
,putItem
,updateItem
,queryItem
,scanItem
) to use the encoder or decoder where applicable. This simplifies working with DynamoDB considerably. - S3 Multipart upload: Added support for resuming S3 multipart uploads, and S3 multipart copying and the upload part functions now stream their payloads to reduce memory impact.
- Errors: Errors thrown by Soto are now structs and not enums. They also hold additional data like the response code and http headers returned.
- Added
AWSService
protocol with support for signing URLs and creating edited versions of services. All service objects now conform to this protocol. - Added new
Array.reduce
style paginator functions.
New AWS Services include
- AppRegistry: Provides a repository of your applications, their resources, and the application metadata.
- GlueDataBrew: A visual, cloud-scale data-preparation service.
- MWAA: Amazon Managed Workflows for Apache Airflow.
- NetworkFirewall: A managed service that makes it easy to deploy essential network protections for all of your Amazon Virtual Private Clouds.
- S3Outposts: Access S3 from AWS Outposts.
- TimestreamQuery and TimestreamWrite: Time series database service for IoT and operational applications.
- AmplifyBackend: AWS Amplify Administration API.
- AppIntegrationsService: Enables you to configure and reuse connections to external applications.
- ConnectContactLens: Contact Lens for Amazon Connect.
- CustomerProfiles: Amazon Connect Customer Profiles.
- DevOpsGuru: Help Identify Application Errors and Fixes.
- ECRPublic: Public Amazon Elastic Container Registry.
- LookoutforVision: Machine learning (ML) service that spots defects and anomalies in visual representations.
- SageMakerFeatureStoreRuntime: A fully managed, purpose-built repository for machine learning (ML) features.
Using v5.0.0 of soto-core.
Sync'ed service models to v1.36.0 of aws-sdk-go.