Releases: soto-project/soto-core
v4.2.0
- Deprecated the typealias
Future
. From this point on you will need to useEventLoopFuture
- Added support for EC2 Instance Metadata Service V2.
- Refactored Hypertext Application Language Support. Removed unused link loading code that was broken.
- Response middleware is now run after the HAL code has run.
- Added support for processing paginated results from AWS services.
v4.1.0
- If GET request has a header, then sign request using "authorization" header instead of in the URL.
- Allow xml decoder to decode attributes as members. This fixes #149
- Added performance tests to profile various elements of aws-sdk-swift-core.
- Remove the addition of `` around swift keywords when working out a swift variable name.
- Optimization: Don't create default
DateFormatter
everytime we need it. - The dictionary encoder/decoder defaults to using base64 when encoding/decoding Foundation class
Data
. - Use NIOAtomic instead of Atomic in HTTPClient.
- Use github action to rebuild documentation on publishing of a new release.
v3.5.0
v4.0.0
Major version changes
- aws-sdk-swift-core now requires Swift 5.0 or later.
- We are now using Swift NIO 2.x. If you are dependent on a package using Swift NIO 1.14 or earlier eg Vapor 3, do not update to this version of aws-sdk-swift-core.
- Re-worked HTTPClient so can work with NIO transport services. This means aws-sdk-swift-core works on iOS.
- AWSClient.init() requires a EventLoopGroupProvider parameter, an enum with which you can provide your own eventLoopGroup for aws-sdk-swift-core to use, or use the one internal to AWSClient.
Other changes
- If processing an XML response, ensure the header values in the response are also processed.
- Tests now compile in release.
- If AWSClient is initialised with
accessKeyId
andsecretAccessKey
set to "" then requests are sent to AWS unsigned. This gives access to AWS services such as CognitoIdentityProvider without credentials. - Refactored MetaDataService.
v3.4.0
- Fixed issue with compiling for Swift 5.1 on Linux.
- Rename
XMLContainerCodingMap
toXMLCodable
. - Move
ShapeEncoding
andLocation
enums insideAWSShapeMember
. - Move
Request
,Response
andHTTPClientError
insideHTTPClient
. - Remove
middlewares
andamzTarget
parameters fromAWSRequest.init()
. These are applied elsewhere.
v3.3.0
- Added
AWSLoggingMiddleware
which logs raw requests sent to AWS and raw responses received back. - Changed restjson protocol Content-Type header to be 'application/json'.
- Created
AWSResponse
struct which holds a processed response. - Middleware now has the ability to edit the contents of a
AWSResponse
. - Separated service signing name from service endpoint name as these can sometimes be different. This affects
V4.Signer.init()
where theservice
parameter has been renamed tosigningName
. - If response has a payload path then create top level objects to contain the response json or xml.
- Mac uses CommonCrypto for SHA256, HMAC and MD5 calculations.
- Added
AWSClient.signURL()
to return a signed URL. AWSErrorType
now conforms toCustomStringConvertible
.- Add additional methods for decoding timestamps (HTTP date format and seconds from UNIX epoch time).
AWSClient.send()
functions don't throw errors so have removed throws from them.- Min/max collection length validation errors output the length and not the full collection.
- String pattern validation does not expect the whole string to match the pattern.
v3.2.0
- If dictionary decoder expects an array but doesn't find one then stick object found inside an array. Fixes issue in API Gateway where single element arrays are just returned as the element.
- AWSClient.init() has a new sessionToken parameter.
- Add session tokens to headers before constructing authorization header.
- XML Parser ignores newlines as well as whitespace in between XML nodes.
- Don't encode single or double quotation marks in XML
- Added general purpose validation code to be used by auto-generated validate() functions in aws-sdk-swift.
- Added AWSShape.idempotencyToken() for auto-generating idempotency tokens.
- Added support for OpenSSL 1.1 while still supporting earlier versions.
- New me-south-1 region is available.
- Added the ability to edit response bodies before they are decoded into an AWSShape.
v3.1.1
v3.1.0
Adam Fowler:
Use Codable for serializing XML requests and parsing XML responses
Using query encoder for ec2
Added xmlNamespace to the root payload xml element when required
Only add a body to an AWSRequest if there are shape members that are included in the body
Store Timestamp internally as a Date
Add DictionaryEncoder and use this when encoding JSON payloads
Decode JSON dictionary data as base64
Add encoding hints for serializing arrays and dictionaries. Hints include naming of XML, query elements and whether container is flattened
Percent encode more characters in query body
Add code for ec2 to flatten all arrays, regardless of encoding hints
Added regions ap-east-1, eu-west-3 and eu-north-1
Updated core XML loader
giginet:
Avoid warning on Xcode