- Support for AWS_ENDPOINT_URL environment variable
- Allow passing explicit null values for optional fields of input objects
- AWS enhancement: Documentation updates.
- Treat empty env variable as undefined
- Support for LocationService
- Support for hostPrefix in requests
- AWS api-change: API updates for the AWS Security Token Service
- Support for SSO credentials
- Avoid overriding the exception message with the raw message
- Improve parameter type and return type in phpdoc
- Support for Symfony 7
- Support for Athena
- Support for MediaConvert
- Support for IMDS v2 authentication
- Support for using endpoint discovery with parameters passed in the query string or the path
- Fix potential malformed URI in discovered endpoints
- AWS enhancement: Documentation updates.
- Fix deprecation by adding return type on reset methods
- Support for Scheduler
- Support for Iot Data
- Support for endpoint discovery
- Support for Iot Core
- Support for CodeBuild
- Support for CodeCommit
- Support for TimestreamQuery
- Support for TimestreamWrite
- AWS enhancement: Documentation updates.
- Reverted the automated decoration of the injected HttpClient
- Added an AwsHttpClientFactory to help people creating retryable clients
- Add 403 errors in the list of potential retryiable operations
- Set default value to
false
for thesendChunkedBody
option.
- Make the injected HttpClient decorated by our
RetryableHttpClient
- Support for KMS
- Issue with symfony http-client when posting empty payload
- AWS api-change: Added
us-iso-west-1
region - AWS api-change: Used regional endpoint for
us
regions - AWS enhancement: Documentation updates.
- Support for AppSync
- Support for XRay
- Support for Firehose
- Support for ElastiCache
- Support for CloudWatchClient
- Support for psr/log 2.0 and 3.0
- Support for StepFunctions
- Support for Kinesis
- Support for SecretsManager
- Support for Symfony contracts v3
- AWS enhancement: Documentation updates for AWS Security Token Service.
- Wrap the HttpClient's decoding exception in UnparsableResponse.
- AWS enhancement: STS now supports assume role with Web Identity using JWT token length upto 20000 characters
- AWS api-change: This release adds the SourceIdentity parameter that can be set when assuming a role.
- Support for Symfony 6
- Support for psr/cache v2 and v3
- Fix forming signature with multiple spaces
- Make sure mocked results have a response with
Response::$bodyDownloaded = true
.
- Changed case of object's properties to camelCase.
- Added documentation in class headers.
- Removed
final
fromClientException
andServerException
. - Make Responses thrown Business Exception when AwsErrorCode <-> Exception class mapping provided through RequestContext.
- Added domain exceptions.
- Improved Aws Error parsing by using specialized AwsErrorFactory.
- Exception thrown twice by waiters.
- Added option
sendChunkedBody
dedicated to S3.
- Make sure we can get credentials even if the cache storage fails
- Clear
realpath
cache to make sure we get the latest credentials token
- Fix for an edge case where aws config file could be a directory
- Fix when AWS profile name is only digits
- A
AwsRetryStrategy
to define what HTTP request we retry - Support for Elastic Container Registry (ECR) in
AwsClientFactory
- Read "region" from ini files.
- Support for hard coded
roleArn
inConfigurationProvider
- Added exception
AsyncAws\Core\Exception\UnexpectedValue
andAsyncAws\Core\Exception\UnparsableResponse
- Merge configuration if a profile is spread out over multiple files. Ie if
[profile company]
is defined in both~/.aws/config
and~/.aws/credentials
. - All exceptions thrown must extend
AsyncAws\Core\Exception\Exception
- Support for Rekognition in
AwsClientFactory
- Support for
debug
configuration option to log HTTP requests and responses - Use Symfony
RetryableHttpClient
when available.
- Allow signing request with non-standard region when using custom endpoint?
- Fix unresolved Env Variable in some php configuration
- Fixed logic in
AbstractApi::getSigner()
when passing@region
to an API operation
- Make sure passing
@region
to an API operation has effect. - Check that both AWS access id and secret exists before using them.
- Allow to pass additional content to
ResultMockFactory::createFailing()
- Support for PHP 8
- Added second parameter
$preferredChunkSize
toStreamFactory::create()
- Support for CloudFront in
AwsClientFactory
- Support for RdsDataService in
AwsClientFactory
- Add more context to error logs
- Log level for 404 responses changed to "info".
- Allows non-AWS regions when using custom endpoints
- Support for EventBridge in
AwsClientFactory
- Support for IAM in
AwsClientFactory
- Add a
PsrCacheProvider
andSymfonyCacheProvider
to persists crendentials in a cache pool - Add a
Credential::adjustExpireDate
method for adjusting the time according to the time difference with AWS clock - Support for global and regional endpoints
- Add a
Configuration::optionExists
to allow third parties to check if an option is available (needed by libraries supporting several versions of core)
- Clients extending
AbstractApi
should overridegetEndpointMetata
. The method will be abstract in 2.0 - Custom endpoints should not contain
%region%
and%service
placeholder. They won't be replaced anymore in 2.0 - Protected methods
getServiceCode
,getSignatureVersion
andgetSignatureScopeName
of AbstractApi are deprecated and will be removed in 2.0
- Fix signing of requests with a header containing a date (like
expires
inS3
). - Fix thread safety regarding env vars by using
$_SERVER
instead ofgetenv()
.
- Support for ECS Credentials Provider
- Support for Cognito Identity Provider client in
AwsClientFactory
- Support for Cloud Watch Log client in
AwsClientFactory
- Fixed invalid chunking of request with large body for most clients but S3. This version removed the invalid code from SignerV4 to make sure requests are not chunked.
- Use camelCase for all getter methods.
- Support for CodeDeploy client in
AwsClientFactory
- Handle Aws Error type in JsonRest error responses
- Logging on HTTP exceptions.
- Support for SSM client in
AwsClientFactory
- Support for Waiters in
ResultMockFactory
- Add support for
Content-Type: application/x-amz-json-1.1
in test case.
- Add
Configuration::isDefault
methods.
- Allow mocking of Results classes named "*Result"
- The input's
validate()
function was merged with therequest()
function. Configuration::isDefault()
.- Protected property
AbstractApi::$logger
. AsyncAws\Core\StreamableBody
in favor ofAsyncAws\Core\Stream\ResponseBodyStream
.
- Add support for multiregion via
@region
input parameter. - DynamoDB support.
ResultMockFactory
was updated withcreateFailing()
and support for pagination.AbstractApi::presign()
.Result::wait()
for multiplexing downloads.- Interface
AsyncAws\Core\Input
. AsyncAws\Core\Stream\ResponseBodyResourceStream
andAsyncAws\Core\Stream\ResponseBodyStream
.- Internal
AsyncAws\Core\Response
to encapsulate the HTTP client. - Internal
AsyncAws\Core\RequestContext
. - Internal
AsyncAws\Core\Stream\RewindableStream
.
- Exceptions will contain more information from the HTTP response.
- Moved STS value objects to a dedicated namespace.
- The
AsyncAws\Core\Sts\Input\*
andAsyncAws\Core\Sts\ValueObject*
classes are marked final. - Using
DateTimeImmutable
instead ofDateTimeInterface
. - Protected properties
AbstractApi::$httpClient
,AbstractApi::$configuration
andAbstractApi::$credentialProvider
are now private. AbstractApi::getResponse()
has new signature. New optional second argument?RequestContext $context = null
and the return type isAsyncAws\Core\Response
.- The
CredentialProvider
s andConfiguration
are nowfinal
. - Renamed
AsyncAws\Core\Stream\Stream
toAsyncAws\Core\Stream\RequestStream
. - Renamed
AsyncAws\Core\StreamableBodyInterface
toAsyncAws\Core\Stream\ResultStream
. - The
ResultStream::getChunks()
now returns a iterable of string.
- Bugfix in
WebIdentityProvider
- Public
AbstractApi::request()
was removed. - Protected function
AbstractApi::getEndpoint()
was made private.
- Test class
AsyncAws\Core\Test\SimpleStreamableBody
- Moved
AsyncAws\Core\Signer\Request
toAsyncAws\Core\Request
. - Added constructor argument to
AsyncAws\Core\Request::__construct()
to support query parameters. - Renamed
AsyncAws\Core\Request::getUrl()
toAsyncAws\Core\Request::getEndpoint()
- Class
AsyncAws\Core\Stream\StreamFactory
is not internal anymore. - Removed
requestBody()
,requestHeaders()
,requestQuery()
andrequestUri()
input classes. They are replaced withrequest()
.
- Fix Instance Provider Role fetching
- Added a
ResultMockFactory
to helps creating tests
- Http method is replaced by PUT in REST calls
Configuration
don't mix anymore attributes injected by php array and env variables.
AbstractApi::getConfiguration()
- Make sure
Configuration::create(['foo'=>null])
is using the default value of "foo".
- Requests can now be streamed
- Streamable request accepts iterable alongside string, callable, resource
- Support for getting credentials from Web Identity or OpenID Connect Federation. (
WebIdentityProvider
)
- Rename namespace
Signers
intoSigner
.
- Class
AsyncAws\Core\Credentials\NullProvider
- Methods
AwsClient::cloudFormation()
,AwsClient::lambda()
,AwsClient::sns()
- Protected methods
Result::registerPrefetch()
andResult::unregisterPrefetch()
- Timeout parameter to
InstanceProvider::__construct()
- Removed
AwsClient
and replaced it withAwsClientFactory
- Class
AsyncAws\Core\Signer\Request
is marked as internal - Make sure behavior of calling
Result::resolve()
is consistent
First version