Skip to content

Releases: soto-project/soto

v5.0.0

07 Dec 08:00
Compare
Choose a tag to compare

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 one AWSClient 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 for swift-log and swift-metrics.
  • Crypto: There is no dependency on openssl libraries anymore. Instead we use swift-crypto on Linux and CommonCrypto on macOS and iOS.
  • Request/Response encoding/decoding:
    • We have added a Codable based QueryEncoder so all protocols now use Codable for serialisation.
    • Added property wrappers for Collection types Array and Dictionary to define how they are serialised. We have also included property wrappers for Date which has allowed us to remove Timestamp and replace it with Date.
    • Fixed many serialisation bugs.
  • 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 a String, Data, ByteBuffer or closure supplying a stream of ByteBuffers.
  • 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 DynamoDB AttributeValue 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

23 Nov 12:18
Compare
Choose a tag to compare
Pre-release

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 for EC2.InstanceType and S3.BucketLocationConstraint. PR #422
  • Logger and EventLoop 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 and S3.resumeMultipartUpload which take an NIOFileHandle 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

26 Oct 10:35
ed8eee7
Compare
Choose a tag to compare
v5.0.0 Beta 3.0 Pre-release
Pre-release

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 to SotoElasticLoadBalancing. ELB struct renamed to ElasticLoadBalancing. PR #404
  • Library SotoELBV2 renamed to SotoElasticLoadBalancingv2. ELBV2 struct renamed to ElasticLoadBalancingv2. 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

  • S3: Don't do MD5 calculation if an MD5 hash is already provided. PR #396
  • S3: When reconstructing the S3 URL for virtual addressing make sure we percent encode "+" signs. PR #411

v5.0.0 Beta 2.0

06 Oct 16:29
Compare
Choose a tag to compare
v5.0.0 Beta 2.0 Pre-release
Pre-release

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 a DateFormatCoder property wrapper. PR #386
  • Renamed Coding to CustomCoding, OptionalCoding to OptionalCustomCoding. PR #383
  • Renamed DefaultArrayCoder to StandardArrayCoder, DefaultDictionaryCoder to StandardDictionaryCoder. PR #383

Minor version changes

  • Lambda: ListFunctions uses SotoCore.Region in ListFunctionsRequest.masterRegion. PR #384

Patch version changes

  • Lambda: Fixed issue with errors not being parsed correctly

v5.0.0 Beta 1.0

18 Sep 08:53
Compare
Choose a tag to compare
v5.0.0 Beta 1.0 Pre-release
Pre-release

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 to request.body.asByteBuffer calls. PR #357

v4.9.0

13 Sep 17:40
Compare
Choose a tag to compare

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

20 Aug 17:49
Compare
Choose a tag to compare
v5.0.0 Alpha 6.0 Pre-release
Pre-release

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 common DynamoDB operations: putItem, getItem, updateItem, query and scan. Instead of using a DynamoDB.AttributeValue array a Codable 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

13 Aug 13:53
Compare
Choose a tag to compare

Using v4.7.0 of aws-sdk-swift-core.
Sync service models to v1.34.3 of aws-sdk-go.

v5.0.0 Alpha 5.0

06 Jul 07:41
Compare
Choose a tag to compare
v5.0.0 Alpha 5.0 Pre-release
Pre-release

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 an AWSClient they are provided one in their init. This means you can have one AWSClient being used by many services. Ideally your application would have one AWSClient 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 a CredentialProviderFactory which creates a CredentialProvider once the AWSClient is initialised. Possible credential provider factories are static: provide credentials directly, environment: from environment variables, ec2: from EC2 metadata, ecs: from ECS metadata, configFile: from ~/.aws/credentials file, empty: no credentials or selector: choose from a list of credential providers. If you don't provide a CredentialProvider the default is .selector(.environment, .ecs, .ec2, .configFile()).
  • Remove AWSMemberEncoding.encoding. Raw payload flag is now OptionSet entry PayloadOptions.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 allow copySource of format "bucket/key". PR #312
  • S3: Add support for SelectObjectContent event streams. PR #268
  • S3: Add usEast1 to enum BucketLocationConstraint

Code Generator:

  • Add PatchKeyPath1, PatchKeyPath2, PatchKeyPath3, PatchKeyPath4 to generalise the patching operations. PR #313
  • Add comment with documentationUrl whenever it exists in models. PR #321

v4.7.0

02 Jun 15:24
Compare
Choose a tag to compare

Using v4.6.0 of aws-sdk-swift-core.
Sync service models to v1.31.8 of aws-sdk-go.

  • Add new targets for services Synthetics and IoTSitewise
  • S3: Response metadata fixup is now case insensitive. PR #305