Releases: soto-project/soto
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.
v5.0.0 Release Candidate 1.0
Using v5.0.0-rc.1.0 of soto-core.
Sync service models to v1.35.33 of aws-sdk-go.
New services
- AppRegistry: Provides a repository of your applications, their resources, and the application metadata.
- GlueDataBrew: A visual, cloud-scale data-preparation service.
- NetworkFirewall: A managed service that makes it easy to deploy essential network protections for all of your Amazon Virtual Private Clouds.
Major version changes
- Use
RawRepresentable
for enums that change frequently. Use this forEC2.InstanceType
andS3.BucketLocationConstraint
. PR #422 Logger
andEventLoop
parameter order swapped in public functions. PR #426- Added
Logger
parameter to credential providers and S3 multipart functions
Minor version changes
- Added versions of STS credential providers with callback that provides the request struct instead of using a static request. PR #421
- Added versions of
S3.multipart
andS3.resumeMultipartUpload
which take anNIOFileHandle
and upload size parameters. PR #430 - Added
S3.multipartCopy
. PR #434
Patch version changes
- Fix tests while using Localstack. PR #417
- DynamoDB: Encode String and Number arrays as lists and not sets. PR #424
Code Generator
- Order enum cases alphabetically. PR #427
v5.0.0 Beta 3.0
Using v5.0.0-beta.3.0 of soto-core.
Sync service models to v1.35.14 of aws-sdk-go.
Major version changes
- Library
SotoELB
renamed toSotoElasticLoadBalancing
.ELB
struct renamed toElasticLoadBalancing
. PR #404 - Library
SotoELBV2
renamed toSotoElasticLoadBalancingv2
.ELBV2
struct renamed toElasticLoadBalancingv2
. PR #404 DynamoDB.TransactWriteItem
is now an enum with associated values. PR #408- Service error types have been changed from enums to a struct with private enum. This allows for additional error types to be added without requiring a major version update. PR #409
- Extended service errors to include http status code and http headers. PR #410
Minor version changes
- Add new
Array.reduce
style paginator functions. PR #398
Patch version changes
v5.0.0 Beta 2.0
Using v5.0.0-beta.2 of soto-core.
Sync service models to v1.35.3 of aws-sdk-go.
New services
- S3Outposts: Access S3 from AWS Outposts
- TimestreamQuery and TimestreamWrite: Time series database service for IoT and operational applications
Major version changes
- Removed Date wrapping struct
Timestamp
. Dates are now decoded based on service protocol. This can be overidden with aDateFormatCoder
property wrapper. PR #386 - Renamed
Coding
toCustomCoding
,OptionalCoding
toOptionalCustomCoding
. PR #383 - Renamed
DefaultArrayCoder
toStandardArrayCoder
,DefaultDictionaryCoder
toStandardDictionaryCoder
. PR #383
Minor version changes
- Lambda:
ListFunctions
usesSotoCore.Region
inListFunctionsRequest.masterRegion
. PR #384
Patch version changes
- Lambda: Fixed issue with errors not being parsed correctly
v5.0.0 Beta 1.0
AWS SDK Swift has been renamed to Soto
Using v5.0.0-beta.1 of soto-core.
Sync service models to v1.34.22 of aws-sdk-go.
Major version changes
- The package name has changed to "soto".
- All service libraries are prefixed with "Soto".
Minor version changes
- All services conform to
AWSService
. PR #355 - S3 multipart upload now uses streaming payloads in
S3.UploadPart
calls. PR #356 - Added
S3.resumeMultipartUpload
for resuming a failed multipart upload. PR #358 - Add Paginator functions that need to test a "more results" variable. Fixes issue where some paginators never returned. PR #359
- Add
context
parameter to service middlewares. S3.multipartUpload/Download
eventLoop parameter is now optional.
Patch version changes
- S3/Glacier middleware updated to supply
ByteBufferAllocator
torequest.body.asByteBuffer
calls. PR #357
v4.9.0
AWS SDK Swift has been renamed to Soto
Use soto-project/soto-core
dependency instead of old swift-aws/aws-sdk-swift-core
dependency.
Sync service models to v1.34.22 of aws-sdk-go.
Include new services Appflow, Braket, CodeArtifact, Honeycode, IVS, IdentityStore, Macie2, RedshiftData and SSOAdmin
v5.0.0 Alpha 6.0
Using v5.0.0-alpha.6 of aws-sdk-swift-core.
Sync service models to v1.34.6 of aws-sdk-go.
- Add new targets for services Braket(Quantum computing), IVS(Interactive video service)
Major version changes
- Add support for logging. All api calls now have a
logger: Logger
parameter. PR #339 - Add HTTP client timeout parameter to
AWSServiceConfig
. PR #335
Minor version changes
- Add STS credential providers
.stsAssumeRole
,.stsSAML
,.stsWebIdentity
,.stsFederationToken
,.stsSessionToken
. PR #333, #343 - Add CognitoIdentity credential provider
.cognitoIdentity
. PR #333 - Add
Codable
support for commonDynamoDB
operations:putItem
,getItem
,updateItem
,query
andscan
. Instead of using aDynamoDB.AttributeValue
array aCodable
object can be supplied. PR #319
Patch version changes
- Use NIOHTTP1.HTTPMethod instead of String in
execute
calls. PR #336 - Use SwiftFormat to format code.
- Fix
S3.GetBucketLocation
for when region is us-east-1.
v4.8.0
v5.0.0 Alpha 5.0
Using v5.0.0-alpha.5 of aws-sdk-swift-core.
Sync service models to v1.33.1 of aws-sdk-go.
- Add new targets for services CodeArtifact, Honeycode
Major version changes:
- Split
AWSClient
away from services. Instead of services owning anAWSClient
they are provided one in theirinit
. This means you can have oneAWSClient
being used by many services. Ideally your application would have oneAWSClient
constructed at initialisation which is used by all the AWS services you create. PR #328 from @Ro-M, PR #330 - Added
CredentialProvider
protocol which defines a method of acquiring AWS credentials.AWSClient
is initialised with aCredentialProviderFactory
which creates aCredentialProvider
once theAWSClient
is initialised. Possible credential provider factories arestatic
: provide credentials directly,environment
: from environment variables,ec2
: from EC2 metadata,ecs
: from ECS metadata,configFile
: from ~/.aws/credentials file,empty
: no credentials orselector
: choose from a list of credential providers. If you don't provide aCredentialProvider
the default is.selector(.environment, .ecs, .ec2, .configFile())
. - Remove
AWSMemberEncoding.encoding
. Raw payload flag is now OptionSet entryPayloadOptions.raw
. PR #318
Minor version changes:
- Generate streaming versions of commands that can stream the response payload eg
S3.getObjectStreaming
. PR #268
Patch version changes:
- Use Localstack single service for tests. PR #300
- Use new AWSXML library
- Use
-enable-test-discovery
for tests. PR #320 - Don't output partition endpoint for "regionalized services". Affects only S3. If S3 service is created without region defined it finds the region from
AWS_DEFAULT_REGION
environment variable if it exists. Previously would be set to.useast1
. PR #323 - Replace all Node.js scripts with swift scripts. Version 2.0 of
swift-sh
is required to run these scripts. PR #324
Service specific changes:
- CloudTrail: Patch request timestamps to use epoch time
- DynamoDB:
AttributeValue
is now an enum with associated values. PR #309 - S3: Cleanup path when using an endpoint. rg Remove double "//", "/" prefix. PR #307
- S3: Fix
CopyObjectRequest
validation to allowcopySource
of format "bucket/key". PR #312 - S3: Add support for
SelectObjectContent
event streams. PR #268 - S3: Add
usEast1
to enumBucketLocationConstraint
Code Generator: