Releases: soto-project/soto-core
Releases · soto-project/soto-core
v5.0.0 Beta 2.0
Major version changes
AWSService.signURL
no longer has a default for the expiration timeexpires
. It has also been changed to aNIO.TimeAmount
from a integer. PR #373- Removed Date wrapping struct
Timestamp
. Dates are now decoded based on service protocol. This can be overidden with aDateFormatCoder
property wrapper. PR #383 - Renamed
Coding
toCustomCoding
,OptionalCoding
toOptionalCustomCoding
. PR #376 - Renamed
DefaultArrayCoder
toStandardArrayCoder
,DefaultDictionaryCoder
toStandardDictionaryCoder
. PR #376
Minor version changes
- Add ability to include headers when generating a signed URL. When you use the URL you will need to supply the exact same headers. PR #367
- Added
AWSService.with
which creates a new copy of a service with edited values. Values you can edit includemiddlewares
,timeout
,byteBufferAllocator
andoptions
. PR #377 Region
now conforms toCodable
. PR #375
Patch version changes
v4.7.1
v5.0.0 Beta 1.0
AWS SDK Swift has been renamed to Soto
Major version changes
- AWS SDK Swift Core has changed name and is now called SotoCore. The package name is "soto-core".
Body.json
now holds aByteBuffer
instead ofData
. PR #350- Add
offset
function parameter toAWSPayload.fileHandle
. PR #352 - Add 'context' parameter to
AWSServiceMiddleware.chain()
functions AWSClient.signURL
useHTTPMethod
instead of aString
for the http method.- Renamed
TimeStampFormatterCoder
toTimeStampFormatCoder
and made it internal. PR #364
Minor version changes
AWSClient.HTTPResponseError
is now public. This eases the writing of customRetryPolicy
objects.- Added
AWSService
a protocol for AWS services which provides helper vars to access the service region, endpoint and eventLoopGroup and a function for signing a URL for use by the service. PR #347 - Added
ByteBufferAllocator
toAWSServiceConfig
to be used throughoutAWSClient
. PR #351 - Add pagination functions that include a test for a moreResults flag.
- Add support to
TimeStampFormatCoder
for multiple time formats and add both with millisecond and without millisecond formats to theISO8601TimeStampCoder
. PR #364 - Make
AWSPayload.size
public
Patch version changes
- Provide common internal
execute
function used by all the publicexecute
functions. PR #349 - Fix bug in
DeferredCredentialProvider
wherecredential
can be accessed and written at same time. PR #357 - Add Glibc import at top of Expat.swift to aid cross compiler compilation
- Tilda expansion for config file loading on macOS sandboxed apps expands to the home folder, instead of folder inside container. PR #361 from @sebsto
- Fix v4 signer issue when the URL ends in a slash. This fixes signing issue for Lambda.ListFunctions. PR #363
v5.0.0 Alpha 6.0
Major version changes
- Use AsyncHTTPClient for macOS and iOS builds. This requires v1.2.0 of AsyncHTTPClient.
NIOTSHTTPClient
has been removed from the project. PR #339 - Use Expat for XML parsing. This allows us to remove our dependency on FoundationXML. PR #342
- Add
RetryPolicyFactory
setup in similar manner to theCredentialProviderFactory
. Allows you to chooseRetryPolicy
using dot notation egAWSClient(retryPolicy: .jitter(), ...)
. Also allows us to remove a number of public symbols. PR #323 - AWSClient.ClientError is now a struct. PR #338
- Add progress callback to AWSPayload.fileHandle. PR #334
- Replace HTTP method string with enum
NIOHTTP1.HTTPMethod
. PR #329 - Add logging to
AWSClient
. Pass in a swift-logLogger
to output log information. PR #330, #331, #332 Partition
renamed toAWSPartition
PayloadOptions
renamed toAWSShapePayloadOptions
. PR #322
Minor version changes
- Add
AWSClient.credentialProvider.shutdown()
to shutdown AWSClient asynchronously. PR #327, #333 - Add HTTP client timeout value to
AWSServiceConfig
. PR #328 - Added ap-northeast-3 (Osaka Local) region.
AWSClient.credentialProvider
is now public.
Internal changes
- Use SwiftFormat for code formatting.
v4.7.0
Add Region ap-northeast-3 (Asia Pacific (Osaka-Local))
v5.0.0 Alpha 5.1
- Use full .package() enum in Package.swift for swift-crypto package. This appears to resolve issues with latest version of swift 5.3
v5.0.0 Alpha 5.0
Major version changes:
- AWS Service configuration data is now stored in a
AWSServiceConfig
class. - Renamed
AWSClient.send
methods toexecute
. PR #309 from @Ro-M AWSClient
no longer owns the service configuration data. This is passed to theAWSClient
in theexecute
methods. This allows us to separate the client from the services and have one client serving multiple services. PR #309 from @Ro-M- AWS Credentials are supplied via a
CredentialProvider
. Possible credential provider parameters 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())
. PR #258, #303, #314, #318, #306 - Added support for streaming response payloads. This is only available if you are using
AsyncHTTPClient
though. PR #236 - Added
AWSClient.syncShutdown()
to shutdownHTTPClient
and any activeCredentialProviders
. It is required to call this before deleting theAWSClient
. PR #293 - Move XML code to separate target
AWSXML
. PR #271 - Removed
AWSMemberEncoding.encoding
. Raw payload flag is now OptionSet entryPayloadOptions.raw
. PR #294 AWSRequest
uses NIOHTTPHeaders
instead of a dictionary for headers. PR #301AWSPayload.stream
returns aStreamReaderResult
instead of aByteBuffer
. Instead of returning an emptyByteBuffer
to indicate the stream is done you now return.end
. PR #316
Minor version changes:
- S3 streamed requests are now signed. PR #277
- Moved
AWSClient.validate
andAWSClient.createError
toAWSResponse
. PR #295 - Moved
AWSClient.createAWSRequest
intoAWSRequest.init
. PR #296 from @Ro-M AWSTestServer
andTestUtils
have been moved to separate targetAWSTestUtils
. PR #271- Requests are always signed using Authorization header. PR #272 by @Ro-M
- Retry time calculation is more in line with
aws-sdk-go
sdk. PR #282 - Set
User-Agent
header to "AWSSDKSwift/5.0". PR #288 - Add port to
host
header. PR #291 - Run middleware on
AWSResponse
inAWSClient.createError
Patch version changes:
- The list of characters allowed in queries has been edited to be inline with AWS docs. PR #281
- Replace all usages of
String.components
withString.split
. PR #286 - Provide better error messaging when we get an unparseable error. PR #287
- Fixed crash when XML parser returned no XML.
- Fixed head uri for NIOTSHTTPClient. It is no longer the full path. PR #298
v3.5.2
Encode Foundation Data
as base64 when encoding queries. This fixes an issue with SES.SendRawEmail()
v5.0.0 Alpha 4.0
Major version changes:
AWSPayload
is used for payloads in responses. PR #243- Use property wrappers to define how collections are encoded/decoded. PR #215
- Added ability to stream request payloads. Added
AWSPayload.stream
which has a function that providesByteBuffers
to a request. AddedAWSPayload.fileHandle
which streams a file for a request. - Added support for all AWS partitions. This gives access to china and government regions. PR #242
Region
is now a struct so we can add new regions without requiring a major version change. PR #246- Change
AWSClientError
andAWSServerError
to structs so they can be extended without a major version change. Removed some service specific errors from them. PR #247 - Renamed
RetryController
toRetryPolicy
and defaulted it toJitterRetry
which retries failed requests with a random wait time taken from an exponential increasing range.
Minor version changes:
AWSClient.httpClient
is now public- Added TimeStampCoder property wrappers that enforces how a
TimeStamp
would be encoded/decoded. PR #249 - Added RED (Request, Error, Durarion) metrics using
swift-metrics
. PR #245
Patch version changes:
- Check for os Linux instead of availability of swift-crypto when chosing between which crypto to run.
- Don't set Content-Type header if it is already set
- Fixed issue with decoding empty XML arrays
- Add query encoding specialisation for EC2. EC2 requires all query variables to have their first character capitalised. PR #253
- Added iOS CI
- Replace using
ProcessInfo
to get environment variables with the C functiongetenv
. PR #257
v4.6.0
- Upped swift-nio version package requirements to ensure we get swift 5.3 versions
- Ensure EC2 labels all have their first letter uppercased