徐总多门店
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

422 lines
10 KiB

2 months ago
# Change Log
## NOT RELEASED
## 1.19.0
### Added
- 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
### Fixed
- Fix potential malformed URI in discovered endpoints
## 1.18.1
### Changed
- AWS enhancement: Documentation updates.
- Fix deprecation by adding return type on reset methods
## 1.18.0
### Added
- Support for Scheduler
## 1.17.0
### Added
- Support for Iot Data
## 1.16.0
### Added
- Support for endpoint discovery
- Support for Iot Core
## 1.15.0
### Added
- 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
### Changed
- Set default value to `false` for the `sendChunkedBody` option.
## 1.14.0
### Added
- Make the injected HttpClient decorated by our `RetryableHttpClient`
- Support for KMS
### Fixed
- Issue with symfony http-client when posting empty payload
## 1.13.0
### Added
- 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
## 1.12.0
### Added
- Support for Firehose
- Support for ElastiCache
- Support for CloudWatchClient
- Support for psr/log 2.0 and 3.0
## 1.11.0
### Added
- Support for StepFunctions
- Support for Kinesis
- Support for SecretsManager
- Support for Symfony contracts v3
- AWS enhancement: Documentation updates for AWS Security Token Service.
### Fixed
- Wrap the HttpClient's decoding exception in UnparsableResponse.
## 1.10.0
### Added
- 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
## 1.9.2
### Fixed
- Support for psr/cache v2 and v3
- Fix forming signature with multiple spaces
## 1.9.1
### Fixed
- Make sure mocked results have a response with `Response::$bodyDownloaded = true`.
## 1.9.0
### Added
- Changed case of object's properties to camelCase.
- Added documentation in class headers.
- Removed `final` from `ClientException` and `ServerException`.
- Make Responses thrown Business Exception when AwsErrorCode <-> Exception class mapping provided through RequestContext.
- Added domain exceptions.
- Improved Aws Error parsing by using specialized AwsErrorFactory.
### Fixed
- Exception thrown twice by waiters.
## 1.8.0
### Added
- Added option `sendChunkedBody` dedicated to S3.
## 1.7.2
- Make sure we can get credentials even if the cache storage fails
- Clear `realpath` cache to make sure we get the latest credentials token
## 1.7.1
### Fixed
- Fix for an edge case where aws config file could be a directory
- Fix when AWS profile name is only digits
## 1.7.0
### Added
- 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` in `ConfigurationProvider`
- Added exception `AsyncAws\Core\Exception\UnexpectedValue` and `AsyncAws\Core\Exception\UnparsableResponse`
### Fixed
- 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`
## 1.6.0
### Added
- Support for Rekognition in `AwsClientFactory`
## 1.5.0
### Added
- Support for `debug` configuration option to log HTTP requests and responses
- Use Symfony `RetryableHttpClient` when available.
### Fixed
- Allow signing request with non-standard region when using custom endpoint?
- Fix unresolved Env Variable in some php configuration
## 1.4.2
### Fixed
- Fixed logic in `AbstractApi::getSigner()` when passing `@region` to an API operation
## 1.4.1
### Fixed
- Make sure passing `@region` to an API operation has effect.
- Check that both AWS access id and secret exists before using them.
## 1.4.0
### Added
- Allow to pass additional content to `ResultMockFactory::createFailing()`
## 1.3.0
### Added
- Support for PHP 8
- Added second parameter `$preferredChunkSize` to `StreamFactory::create()`
- Support for CloudFront in `AwsClientFactory`
- Support for RdsDataService in `AwsClientFactory`
### Fixed
- Allows non-AWS regions when using custom endpoints
### Changed
- Add more context to error logs
- Log level for 404 responses changed to "info".
## 1.2.0
### Added
- Support for EventBridge in `AwsClientFactory`
- Support for IAM in `AwsClientFactory`
- Add a `PsrCacheProvider` and `SymfonyCacheProvider` 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)
### Deprecation
- Clients extending `AbstractApi` should override `getEndpointMetata`. 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` and `getSignatureScopeName` of AbstractApi are deprecated and will be removed in 2.0
### Fixed
- Fix signing of requests with a header containing a date (like `expires` in `S3`).
- Fix thread safety regarding env vars by using `$_SERVER` instead of `getenv()`.
## 1.1.0
### Added
- Support for ECS Credentials Provider
- Support for Cognito Identity Provider client in `AwsClientFactory`
- Support for Cloud Watch Log client in `AwsClientFactory`
### Fixed
- 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.
## 1.0.0
### Added
- Support for CodeDeploy client in `AwsClientFactory`
### Fixed
- Handle Aws Error type in JsonRest error responses
## 0.5.4
### Added
- Logging on HTTP exceptions.
## 0.5.3
### Added
- Support for SSM client in `AwsClientFactory`
- Support for Waiters in `ResultMockFactory`
## 0.5.2
### Fixed
- Add support for `Content-Type: application/x-amz-json-1.1` in test case.
## 0.5.1
### Added
- Add `Configuration::isDefault` methods.
### Fixed
- Allow mocking of Results classes named "*Result"
## 0.5.0
### Added
- Add support for multiregion via `@region` input parameter.
- DynamoDB support.
- `ResultMockFactory` was updated with `createFailing()` and support for pagination.
- `AbstractApi::presign()`.
- `Result::wait()` for multiplexing downloads.
- Interface `AsyncAws\Core\Input`.
- `AsyncAws\Core\Stream\ResponseBodyResourceStream` and `AsyncAws\Core\Stream\ResponseBodyStream`.
- Internal `AsyncAws\Core\Response` to encapsulate the HTTP client.
- Internal `AsyncAws\Core\RequestContext`.
- Internal `AsyncAws\Core\Stream\RewindableStream`.
### Removed
- The input's `validate()` function was merged with the `request()` function.
- `Configuration::isDefault()`.
- Protected property `AbstractApi::$logger`.
- `AsyncAws\Core\StreamableBody` in favor of `AsyncAws\Core\Stream\ResponseBodyStream`.
### Changed
- Exceptions will contain more information from the HTTP response.
- Moved STS value objects to a dedicated namespace.
- The `AsyncAws\Core\Sts\Input\*` and `AsyncAws\Core\Sts\ValueObject*` classes are marked final.
- Using `DateTimeImmutable` instead of `DateTimeInterface`.
- Protected properties `AbstractApi::$httpClient`, `AbstractApi::$configuration` and `AbstractApi::$credentialProvider` are now private.
- `AbstractApi::getResponse()` has new signature. New optional second argument `?RequestContext $context = null` and the return type is `AsyncAws\Core\Response`.
- The `CredentialProvider`s and `Configuration` are now `final`.
- Renamed `AsyncAws\Core\Stream\Stream` to `AsyncAws\Core\Stream\RequestStream`.
- Renamed `AsyncAws\Core\StreamableBodyInterface` to `AsyncAws\Core\Stream\ResultStream`.
- The `ResultStream::getChunks()` now returns a iterable of string.
### Fixed
- Bugfix in `WebIdentityProvider`
## 0.4.0
### Added
- Test class `AsyncAws\Core\Test\SimpleStreamableBody`
### Changed
- Moved `AsyncAws\Core\Signer\Request` to `AsyncAws\Core\Request`.
- Added constructor argument to `AsyncAws\Core\Request::__construct()` to support query parameters.
- Renamed `AsyncAws\Core\Request::getUrl()` to `AsyncAws\Core\Request::getEndpoint()`
- Class `AsyncAws\Core\Stream\StreamFactory` is not internal anymore.
- Removed `requestBody()`, `requestHeaders()`, `requestQuery()` and `requestUri()` input classes. They are replaced with `request()`.
### Removed
- Public `AbstractApi::request()` was removed.
- Protected function `AbstractApi::getEndpoint()` was made private.
### Fixed
- Fix Instance Provider Role fetching
## 0.3.3
### Added
- Added a `ResultMockFactory` to helps creating tests
### Fixed
- Http method is replaced by PUT in REST calls
## 0.3.2
### Fixed
- `Configuration` don't mix anymore attributes injected by php array and env variables.
## 0.3.1
### Added
- `AbstractApi::getConfiguration()`
### Fixed
- Make sure `Configuration::create(['foo'=>null])` is using the default value of "foo".
## 0.3.0
### Added
- 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`)
### Changed
- Rename namespace `Signers` into `Signer`.
## 0.2.0
### Added
- Class `AsyncAws\Core\Credentials\NullProvider`
- Methods `AwsClient::cloudFormation()`, `AwsClient::lambda()`, `AwsClient::sns()`
- Protected methods `Result::registerPrefetch()` and `Result::unregisterPrefetch()`
- Timeout parameter to `InstanceProvider::__construct()`
### Changed
- Removed `AwsClient` and replaced it with `AwsClientFactory`
- Class `AsyncAws\Core\Signer\Request` is marked as internal
- Make sure behavior of calling `Result::resolve()` is consistent
## 0.1.0
First version