Skip to content

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented Oct 30, 2020

This PR contains the following updates:

Package Type Update Change
github.com/aws/aws-sdk-go-v2/config require minor v0.2.1 -> v0.29.0

Release Notes

aws/aws-sdk-go-v2

v0.29.0

Compare Source

  • API Clients ResolverOptions type renamed to EndpointResolverOptions

v0.28.0

Compare Source

  • API Clients ResolverOptions type renamed to EndpointResolverOptions

v0.27.0

Compare Source

Configuration

The config module's exported types were trimmed down to add clarity and reduce confusion. Additional changes to the config module' helpers.

  • Refactored WithCredentialsProvider, WithHTTPClient, and WithEndpointResolver to functions instead of structs.
  • Removed MFATokenFuncProvider, use AssumeRoleCredentialOptionsProvider for setting options for stscreds.AssumeRoleOptions.
  • Renamed WithWebIdentityCredentialProviderOptions to WithWebIdentityRoleCredentialOptions
  • Renamed AssumeRoleCredentialProviderOptions to AssumeRoleCredentialOptionsProvider
  • Renamed EndpointResolverFuncProvider to EndpointResolverProvider
API Client
  • API Client Options type getter methods have been removed. Use the struct members instead.
  • The error returned by API Client operations was renamed from smithy.OperationError to smithy.OperationInvokeError.

v0.26.0

Compare Source

Configuration

The config module's exported types were trimmed down to add clarity and reduce confusion. Additional changes to the config module' helpers.

  • Refactored WithCredentialsProvider, WithHTTPClient, and WithEndpointResolver to functions instead of structs.
  • Removed MFATokenFuncProvider, use AssumeRoleCredentialOptionsProvider for setting options for stscreds.AssumeRoleOptions.
  • Renamed WithWebIdentityCredentialProviderOptions to WithWebIdentityRoleCredentialOptions
  • Renamed AssumeRoleCredentialProviderOptions to AssumeRoleCredentialOptionsProvider
  • Renamed EndpointResolverFuncProvider to EndpointResolverProvider
API Client
  • API Client Options type getter methods have been removed. Use the struct members instead.
  • The error returned by API Client operations was renamed from smithy.OperationError to smithy.OperationInvokeError.

v0.25.0

Compare Source

Design changes

The v2 preview SDK v0.25.0 release represents a significant stepping stone bringing the v2 SDK closer to its target design and usability. This release includes significant breaking changes to the v2 preview SDK. The updates in the v0.25.0 release focus on refactoring and modularization of the SDK’s API clients to use the new client design, updated request pipeline (aka middleware), refactored credential providers, and configuration loading packages.

We've also bumped the minimum supported Go version with this release. Starting with v0.25.0 the SDK requires a minimum version of Go v1.15.

As a part of the refactoring done to v2 preview SDK some components have not been included in this update. The following is a non exhaustive list of features that are not available.

  • API Paginators - #​439
  • API Waiters - #​442
  • Presign URL - #​794
  • Amazon S3 Upload and Download manager - #​802
  • Amazon DynamoDB's AttributeValue marshaler, and Expression package - #​790
  • Debug Logging - #​594

We expect additional breaking changes to the v2 preview SDK in the coming releases. We expect these changes to focus on organizational, naming, and hardening the SDK's design for future feature capabilities after it is released for general availability.

Relocated Packages

In this release packages within the SDK were relocated, and in some cases those packages were converted to Go modules. The following is a list of packages have were relocated.

  • github.com/aws/aws-sdk-go-v2/aws/external => github.com/aws/aws-sdk-go-v2/config module
  • github.com/aws/aws-sdk-go-v2/aws/ec2metadata => github.com/aws/aws-sdk-go-v2/ec2imds module

The github.com/aws/aws-sdk-go-v2/credentials module contains refactored credentials providers.

  • github.com/aws/aws-sdk-go-v2/ec2rolecreds => github.com/aws/aws-sdk-go-v2/credentials/ec2rolecreds
  • github.com/aws/aws-sdk-go-v2/endpointcreds => github.com/aws/aws-sdk-go-v2/credentials/endpointcreds
  • github.com/aws/aws-sdk-go-v2/processcreds => github.com/aws/aws-sdk-go-v2/credentials/processcreds
  • github.com/aws/aws-sdk-go-v2/stscreds => github.com/aws/aws-sdk-go-v2/credentials/stscreds
Modularization

New modules were added to the v2 preview SDK to allow the components to be versioned independently from each other. This allows your application to depend on specific versions of an API client module, and take discrete updates from the SDK core and other API client modules as desired.

API Clients

The following is a list of the major changes to the API client modules

  • Removed paginators: we plan to add these back once they are implemented to integrate with the SDK's new API client design.
  • Removed waiters: we need to further investigate how the V2 SDK should expose waiters, and how their behavior should be modeled.
  • API Clients are now Go modules. When migrating to the v2 preview SDK v0.25.0, you'll need to add the API client's module to your application's go.mod file.
  • API parameter nested types have been moved to a types package within the API client's module, e.g. github.com/aws/aws-sdk-go-v2/service/s3/types These types were moved to improve documentation and discovery of the API client, operation, and input/output types. For example Amazon S3's ListObject's operation ListObjectOutput.Contents input parameter is a slice of types.Object.
  • The client operation method has been renamed, removing the Request suffix. The method now invokes the operation instead of constructing a request, which needed to be invoked separately. The operation methods were also expanded to include functional options for providing operation specific configuration, such as modifying the request pipeline.
result, err := client.Scan(context.TODO(), &dynamodb.ScanInput{
    TableName: aws.String("exampleTable"),
}, func(o *Options) {
    // Limit operation calls to only 1 attempt.
    o.Retryer = retry.AddWithMaxAttempts(o.Retryer, 1)
})
Configuration

In addition to the github.com/aws/aws-sdk-go-v2/aws/external package being made a module at github.com/aws/aws-sdk-go-v2/config, the LoadDefaultAWSConfig function was renamed to LoadDefaultConfig.

The github.com/aws/aws-sdk-go-v2/aws/defaults package has been removed. Its components have been migrated to the github.com/aws/aws-sdk-go-v2/aws package, and github.com/aws/aws-sdk-go-v2/config module.

Error Handling

The github.com/aws/aws-sdk-go-v2/aws/awserr package was removed as a part of the SDK error handling refactor. The SDK now uses typed errors built around Go v1.13's errors.As and errors.Unwrap features. All SDK error types that wrap other errors implement the Unwrap method. Generic v2 preview SDK errors created with fmt.Errorf use %w to wrap the underlying error.

The SDK API clients now include generated public error types for errors modeled for an API. The SDK will automatically deserialize the error response from the API into the appropriate error type. Your application should use errors.As to check if the returned error matches one it is interested in. Your application can also use the generic interface smithy.APIError to test if the API client's operation method returned an API error, but not check against a specific error.

API client errors returned to the caller will use error wrapping to layer the error values. This allows underlying error types to be specific to their use case, and the SDK's more generic error types to wrap the underlying error.

For example, if an Amazon DynamoDB Scan operation call cannot find the TableName requested, the error returned will contain dynamodb.ResourceNotFoundException. The SDK will return this error value wrapped in a couple layers, with each layer adding additional contextual information such as ResponseError for AWS HTTP response error metadata , and smithy.OperationError for API operation call metadata.

result, err := client.Scan(context.TODO(), params)
if err != nil {
    // To get a specific API error
    var notFoundErr *types.ResourceNotFoundException
    if errors.As(err, &notFoundErr) {
        log.Printf("scan failed because the table was not found, %v",
            notFoundErr.ErrorMessage())
    }

    // To get any API error
    var apiErr smithy.APIError
    if errors.As(err, &apiErr) {
        log.Printf("scan failed because of an API error, Code: %v, Message: %v",
            apiErr.ErrorCode(), apiErr.ErrorMessage())
    }

    // To get the AWS response metadata, such as RequestID
    var respErr *awshttp.ResponseError // Using import alias "awshttp" for package github.com/aws/aws-sdk-go-v2/aws/transport/http
    if errors.As(err, &respErr) {
        log.Printf("scan failed with HTTP status code %v, Request ID %v and error %v",
            respErr.HTTPStatusCode(), respErr.ServiceRequestID(), respErr)
    }

    return err
}

Logging an error value will include information from each wrapped error. For example, the following is a mock error logged for a Scan operation call that failed because the table was not found.

2020/10/15 16:03:37 operation error DynamoDB: Scan, https response error StatusCode: 400, RequestID: ABCREQUESTID123, ResourceNotFoundException: Requested resource not found

Endpoints

The github.com/aws/aws-sdk-go-v2/aws/endpoints has been removed from the SDK, along with all exported endpoint definitions and iteration behavior. Each generated API client now includes its own endpoint definition internally to the module.

API clients can optionally be configured with a generic aws.EndpointResolver via the aws.Config.EndpointResolver. If the API client is not configured with a custom endpoint resolver it will defer to the endpoint resolver the client module was generated with.

v0.24.0

Compare Source

Design changes

The v2 preview SDK v0.25.0 release represents a significant stepping stone bringing the v2 SDK closer to its target design and usability. This release includes significant breaking changes to the v2 preview SDK. The updates in the v0.25.0 release focus on refactoring and modularization of the SDK’s API clients to use the new client design, updated request pipeline (aka middleware), refactored credential providers, and configuration loading packages.

We've also bumped the minimum supported Go version with this release. Starting with v0.25.0 the SDK requires a minimum version of Go v1.15.

As a part of the refactoring done to v2 preview SDK some components have not been included in this update. The following is a non exhaustive list of features that are not available.

  • API Paginators - #​439
  • API Waiters - #​442
  • Presign URL - #​794
  • Amazon S3 Upload and Download manager - #​802
  • Amazon DynamoDB's AttributeValue marshaler, and Expression package - #​790
  • Debug Logging - #​594

We expect additional breaking changes to the v2 preview SDK in the coming releases. We expect these changes to focus on organizational, naming, and hardening the SDK's design for future feature capabilities after it is released for general availability.

Relocated Packages

In this release packages within the SDK were relocated, and in some cases those packages were converted to Go modules. The following is a list of packages have were relocated.

  • github.com/aws/aws-sdk-go-v2/aws/external => github.com/aws/aws-sdk-go-v2/config module
  • github.com/aws/aws-sdk-go-v2/aws/ec2metadata => github.com/aws/aws-sdk-go-v2/ec2imds module

The github.com/aws/aws-sdk-go-v2/credentials module contains refactored credentials providers.

  • github.com/aws/aws-sdk-go-v2/ec2rolecreds => github.com/aws/aws-sdk-go-v2/credentials/ec2rolecreds
  • github.com/aws/aws-sdk-go-v2/endpointcreds => github.com/aws/aws-sdk-go-v2/credentials/endpointcreds
  • github.com/aws/aws-sdk-go-v2/processcreds => github.com/aws/aws-sdk-go-v2/credentials/processcreds
  • github.com/aws/aws-sdk-go-v2/stscreds => github.com/aws/aws-sdk-go-v2/credentials/stscreds
Modularization

New modules were added to the v2 preview SDK to allow the components to be versioned independently from each other. This allows your application to depend on specific versions of an API client module, and take discrete updates from the SDK core and other API client modules as desired.

API Clients

The following is a list of the major changes to the API client modules

  • Removed paginators: we plan to add these back once they are implemented to integrate with the SDK's new API client design.
  • Removed waiters: we need to further investigate how the V2 SDK should expose waiters, and how their behavior should be modeled.
  • API Clients are now Go modules. When migrating to the v2 preview SDK v0.25.0, you'll need to add the API client's module to your application's go.mod file.
  • API parameter nested types have been moved to a types package within the API client's module, e.g. github.com/aws/aws-sdk-go-v2/service/s3/types These types were moved to improve documentation and discovery of the API client, operation, and input/output types. For example Amazon S3's ListObject's operation ListObjectOutput.Contents input parameter is a slice of types.Object.
  • The client operation method has been renamed, removing the Request suffix. The method now invokes the operation instead of constructing a request, which needed to be invoked separately. The operation methods were also expanded to include functional options for providing operation specific configuration, such as modifying the request pipeline.
result, err := client.Scan(context.TODO(), &dynamodb.ScanInput{
    TableName: aws.String("exampleTable"),
}, func(o *Options) {
    // Limit operation calls to only 1 attempt.
    o.Retryer = retry.AddWithMaxAttempts(o.Retryer, 1)
})
Configuration

In addition to the github.com/aws/aws-sdk-go-v2/aws/external package being made a module at github.com/aws/aws-sdk-go-v2/config, the LoadDefaultAWSConfig function was renamed to LoadDefaultConfig.

The github.com/aws/aws-sdk-go-v2/aws/defaults package has been removed. Its components have been migrated to the github.com/aws/aws-sdk-go-v2/aws package, and github.com/aws/aws-sdk-go-v2/config module.

Error Handling

The github.com/aws/aws-sdk-go-v2/aws/awserr package was removed as a part of the SDK error handling refactor. The SDK now uses typed errors built around Go v1.13's errors.As and errors.Unwrap features. All SDK error types that wrap other errors implement the Unwrap method. Generic v2 preview SDK errors created with fmt.Errorf use %w to wrap the underlying error.

The SDK API clients now include generated public error types for errors modeled for an API. The SDK will automatically deserialize the error response from the API into the appropriate error type. Your application should use errors.As to check if the returned error matches one it is interested in. Your application can also use the generic interface smithy.APIError to test if the API client's operation method returned an API error, but not check against a specific error.

API client errors returned to the caller will use error wrapping to layer the error values. This allows underlying error types to be specific to their use case, and the SDK's more generic error types to wrap the underlying error.

For example, if an Amazon DynamoDB Scan operation call cannot find the TableName requested, the error returned will contain dynamodb.ResourceNotFoundException. The SDK will return this error value wrapped in a couple layers, with each layer adding additional contextual information such as ResponseError for AWS HTTP response error metadata , and smithy.OperationError for API operation call metadata.

result, err := client.Scan(context.TODO(), params)
if err != nil {
    // To get a specific API error
    var notFoundErr *types.ResourceNotFoundException
    if errors.As(err, &notFoundErr) {
        log.Printf("scan failed because the table was not found, %v",
            notFoundErr.ErrorMessage())
    }

    // To get any API error
    var apiErr smithy.APIError
    if errors.As(err, &apiErr) {
        log.Printf("scan failed because of an API error, Code: %v, Message: %v",
            apiErr.ErrorCode(), apiErr.ErrorMessage())
    }

    // To get the AWS response metadata, such as RequestID
    var respErr *awshttp.ResponseError // Using import alias "awshttp" for package github.com/aws/aws-sdk-go-v2/aws/transport/http
    if errors.As(err, &respErr) {
        log.Printf("scan failed with HTTP status code %v, Request ID %v and error %v",
            respErr.HTTPStatusCode(), respErr.ServiceRequestID(), respErr)
    }

    return err
}

Logging an error value will include information from each wrapped error. For example, the following is a mock error logged for a Scan operation call that failed because the table was not found.

2020/10/15 16:03:37 operation error DynamoDB: Scan, https response error StatusCode: 400, RequestID: ABCREQUESTID123, ResourceNotFoundException: Requested resource not found

Endpoints

The github.com/aws/aws-sdk-go-v2/aws/endpoints has been removed from the SDK, along with all exported endpoint definitions and iteration behavior. Each generated API client now includes its own endpoint definition internally to the module.

API clients can optionally be configured with a generic aws.EndpointResolver via the aws.Config.EndpointResolver. If the API client is not configured with a custom endpoint resolver it will defer to the endpoint resolver the client module was generated with.

v0.23.0

Compare Source

Services

  • Synced the V2 SDK with latest AWS service API definitions.

SDK Enhancements

  • aws/stscreds: PolicyArns can now be passed in to stscreds.AssumeRoleProvider and stscreds.WebIdentityRoleProvider in the same way as sts.AssumeRoleInput.

SDK Bugs

  • aws/defaults: Fix handling of unexpected Date response header value (#​560)
  • Fixes the SDK's behavior to parse unexpected HTTP Date header received that was formated with single digit day of the month instead of two digit RFC822 datetime like defined in RFC 2616. This should prevent log messages about unable to compute clock skew.
  • Fixes #​556
  • service/s3: Fix S3 client behavior wrt 200 OK response with empty payload

v0.22.0

Compare Source

Services

  • Synced the V2 SDK with latest AWS service API definitions.

Breaking Changes

  • Removed prototype and experiment types from master branch of SDK.

v0.21.0

Compare Source

Breaking Change

  • aws/endpoints: Several functions and types have been removed
    • Removes DecodeModel and DecodeModelOptions from the package (#​509)
    • Remove Region Constants, Partition Constants, and types use for exploring the endpoint data model (#​512)
  • service/s3/s3crypto: Package and associated encryption/decryption clients have been removed from the SDK (#​511)
  • aws/external: Removes several export constants and types (#​508)
    • No longer exports AWS environment constants used by the external environment configuration loader
    • DefaultSharedConfigProfile is now defined an exported constant
  • aws: ErrMissingRegion, ErrMissingEndpoint, ErrStaticCredentialsEmpty are now concrete error types (#​510)

Services

  • Synced the V2 SDK with latest AWS service API definitions.

SDK Features

  • aws/signer/v4: New methods SignHTTP and PresignHTTP have been added (#​519)
    • SignHTTP replaces Sign, and usage of Sign should be migrated before it's removal at a later date
    • PresignHTTP replaces Presign, and usage of Presign should be migrated before it's removal at a later date
    • DisableRequestBodyOverwrite and UnsignedPayload are now deprecated options and have no effect on SignHTTP or PresignHTTP. These options will be removed at a later date.
  • aws/external: Add Support for setting a default fallback region and resolving region from EC2 IMDS (#​523)
    • WithDefaultRegion helper has been added which can be passed to LoadDefaultAWSConfig
      • This helper can be used to configure a default fallback region in the event a region fails to be resolved from other sources
    • Support has been added to resolve region using EC2 IMDS when available
      • The IMDS region will be used if region as not found configured in either the shared config or the process environment.
    • Fixes #​244
    • Fixes #​515

SDK Enhancements

  • service/dynamodb/expression: Add IsSet helper for ConditionBuilder and KeyConditionBuilder (#​494)
    • Adds a IsSet helper for ConditionBuilder and KeyConditionBuilder to make it easier to determine if the condition builders have any conditions added to them.
    • Implements #​493.
  • internal/ini: Normalize Section keys to lowercase (#​495)
    • Update's SDK's ini utility to store all keys as lowercase. This brings the SDK inline with the AWS CLI's behavior.

SDK Bugs

  • internal/sdk: Fix SDK's UUID utility to handle partial read (#​536)
    • Fixes the SDK's UUID utility to correctly handle partial reads from its crypto rand source. This error was sometimes causing the SDK's InvocationID value to fail to be obtained, due to a partial read from crypto.Rand.
    • Fix #​534
  • aws/defaults: Fix request metadata headers causing signature errors (#​536)
    • Fixes the SDK's adding the request metadata headers in the wrong location within the request handler stack. This created a situation where a request that was retried would sign the new attempt using the old value of the header. The header value would then be changed before sending the request.
    • Fix #​533
    • Fix #​521

v0.20.0

Compare Source

Breaking Change

  • Update SDK retry behavior
    • Significant updates were made the SDK's retry behavior. The SDK will now retry all connections error. In addition, to changing what errors are retried the SDK's retry behavior not distinguish the difference between throttling errors, and regular retryable errors. All errors will be retried with the same backoff jitter delay scaling.
    • The SDK will attempt an operation request 3 times by default. This is one less than the previous initial request with 3 retires.
    • New helper functions in the new aws/retry package allow wrapping a Retrier with custom behavior, overriding the base Retrier, (e.g. AddWithErrorCodes, and AddWithMaxAttempts)
  • Update SDK error handling
    • Updates the SDK's handling of errors to take advantage of Go 1.13's new errors.As, Is, and Unwrap. The SDK's errors were updated to satisfy the Unwrap interface, returning the underlying error.
    • With this update, you can now more easily access the SDK's layered errors, and meaningful state such as, Timeout, Temporary, and other states added to the SDK such as CanceledError.
  • Bump SDK minimum supported version from Go 1.12 to Go 1.13
    • The SDK's minimum supported version is bumped to take advantage of Go 1.13's updated errors package.

Services

  • Synced the V2 SDK with latest AWS service API definitions.

SDK Features

  • aws: Add Support for additional credential providers and credential configuration chaining (#​488)
    • aws/processcreds: Adds Support for the Process Credential Provider
    • aws/stscreds: Adds Support for the Web Identity Credential Provider
    • Adds Support for credential_source
  • aws/awserr: Adds support for Go 1.13's errors.Unwrap (#​487)
  • aws: Updates SDK retry behavior (#​487)
    • aws/retry: New package defining logic to determine if a request should be retried, and backoff.
    • aws/ratelimit: New package defining rate limit logic such as token bucket used by the retry.Standard retrier.

SDK Enhancements

  • aws: Add grouping of concurrent refresh of credentials (#​503)
    • Concurrent calls to Retrieve are now grouped in order to prevent numerous synchronous calls to refresh the credentials. Replacing the mutex with a singleflight reduces the overall amount of time request signatures need to wait while retrieving credentials. This is improvement becomes pronounced when many requests are made concurrently.
  • service/s3/s3manager: Improve memory allocation behavior by replacing sync.Pool with custom pool implementation
    • Improves memory allocations that occur when the provided io.Reader to upload does not satisfy both the io.ReaderAt and io.ReadSeeker interfaces.

SDK Bugs

  • service/s3/s3manager: Fix resource leaks when the following occurred:
    • Failed CreateMultipartUpload call
    • Failed UploadPart call

v0.19.0

Compare Source

Breaking Change

  • service: Add generated service for wafregional and dynamodbstreams #​463
    • Updates the wafregional and dynamodbstreams API clients to include all API operations, and types that were previously shared between waf and dynamodb API clients respectively. This update ensures that all API clients include all operations and types needed for that client, and shares no types with another client package.
    • To migrate your applications to use the updated wafregional and dynamodbstreams you'll need to update the package the impacted type is imported from to match the client the type is being used with.
  • aws: Context has been added to EC2Metadata operations.(#​461)
    • Also updates utilities that directly or indirectly depend on EC2Metadata client. Signer utilities, credential providers now take in context.
  • private/model: Add utility for validating shape names for structs and enums for the service packages (#​471)
    • Fixes bug which allowed service package structs, enums to start with non alphabetic character
    • Fixes the incorrect enum types in mediapackage service package, changing enum types **AdTriggersElement, **PeriodTriggersElement to AdTriggersElement, PeriodTriggersElement respectively.
  • aws: Client, Metadata, and Request structures have been refactored to simplify the usage of resolved endpoints (#​473)
    • aws.Client.Endpoint struct member has been removed, and aws.Request.Endpoint struct member has been added of type aws.Endpoint
    • aws.Client.Region structure member has been removed

Services

  • Synced the V2 SDK with latest AWS service API definitions.

SDK Features

  • aws: PartitionID has been added to aws.Endpoint structure, and is used by the endpoint resolver to indicate which AWS partition an endpoint was resolved for (#​473)
  • aws/endpoints: Updated resolvers to populate PartitionID for a resolved aws.Endpoint (#​473)
  • service/s3: Add support for Access Point resources
    • Adds support for using Access Point resource with Amazon S3 API operation calls. The Access Point resource are identified by an Amazon Resource Name (ARN).
    • To make operation calls to an S3 Access Point instead of a S3 Bucket, provide the Access Point ARN string as the value of the Bucket parameter. You can create an Access Point for your bucket with the Amazon S3 Control API. The Access Point ARN can be obtained from the S3 Control API. You should avoid building the ARN directly.

SDK Enhancements

  • internal/sdkio: Adds RingBuffer data structure to the sdk #​417
    • Adds an implementation of RingBuffer data structure which acts as a revolving buffer of a predefined length. The RingBuffer implements io.ReadWriter interface.
    • Adds unit tests to test the behavior of the ring buffer.
  • aws/ec2metadata: Adds support for EC2Metadata client to use secure tokens provided by the IMDS (#​453)
    • Modifies EC2Metadata client to use request context within its operations (#​462)
    • Reduces the default dialer timeout and response header timeout to help reduce latency for known issues with EC2Metadata client running inside a container
    • Modifies and adds tests to verify the behavior of the EC2Metadata client.
  • service/dynamodb/dynamodbattribute: Adds clarifying docs on dynamodbattribute.UnixTime (#​464)
  • example/service/sts/assumeRole: added sts assume role example (#​224)
    • Fixes #​157 by adding an example for Amazon STS assume role to retrieve credentials.

SDK Bugs

  • service/dynamodb/dynamodbattribute: Fixes a panic when decoding into a map with a key string type alias. (#​465)
    • Fixes #​410, by adding support for keys that are string aliases.

v0.18.0

Compare Source

Services

  • Synced the V2 SDK with latest AWS service API definitions.

SDK Bugs

  • aws/endpoints: aws/endpoints: Fix SDK resolving endpoint without region (#​420)
    • Fixes the SDK's endpoint resolve incorrectly resolving endpoints for a service when the region is empty. Also fixes the SDK attempting to resolve a service when the service value is empty.
    • Related to aws/aws-sdk-go#​2909

v0.17.0

Compare Source

Services

  • Synced the V2 SDK with latest AWS service API definitions.

SDK Enhancements

  • SDK minimum version requirement has been updated to Go 1.12 (#​432)

v0.16.0

Compare Source

Services

  • Synced the V2 SDK with latest AWS service API definitions.

v0.15.0

Compare Source

Services

  • Synced the V2 SDK with latest AWS service API definitions.

v0.14.0

Compare Source

Services

  • Synced the V2 SDK with latest AWS service API definitions.

v0.13.0

Compare Source

Services
  • Synced the V2 SDK with latest AWS service API definitions.
SDK Breaking changes
  • This update includes breaking changes to how the DynamoDB AttributeValue (un)marshier handles empty collections.
Deprecations
  • service/s3/s3crypto: Deprecates the crypto client from the SDK (#​394)
    • s3crypto client is now deprecated and may be removed from the future versions of the SDK.
  • aws: Removes plugin credential provider (#​391)
    • Removing plugin credential provider from the v2 SDK developer preview. This feature may be made available as a separate module.
  • Removes support for deprecated Go versions (#​393)
    • Removes support for Go version specific files from the SDK. Also removes irrelevant build tags, and updates the README.md file.
    • Raises the minimum supported version to Go 1.11 for the SDK. Older versions may work, but are not actively supported
SDK Features
  • service/s3/s3manager: Add Upload Buffer Provider (#​404)
    • Adds a new BufferProvider member for specifying how part data can be buffered in memory.
    • Windows platforms will now default to buffering 1MB per part to reduce contention when uploading files.
    • Non-Windows platforms will continue to employ a non-buffering behavior.
  • service/s3/s3manager: Add Download Buffer Provider (#​404)
    • Adds a new BufferProvider member for specifying how part data can be buffered in memory when copying from the http response body.
    • Windows platforms will now default to buffering 1MB per part to reduce contention when downloading files.
    • Non-Windows platforms will continue to employ a non-buffering behavior.
  • service/dynamodb/dynamodbattribute: New Encoder and Decoder Behavior for Empty Collections (#​401)
    • The Encoder and Decoder types have been enhanced to support the marshaling of empty structures, maps, and slices to and from their respective DynamoDB AttributeValues.
    • This change incorporates the behavior changes introduced via a marshal option in V1 (#​2834)
SDK Enhancements
  • internal/awsutil: Add suppressing logging sensitive API parameters (#​398)
    • Adds suppressing logging sensitive API parameters marked with the sensitive trait. This prevents the API type's String method returning a string representation of the API type with sensitive fields printed such as keys and passwords.
    • Related to aws/aws-sdk-go#​2310
    • Fixes #​251
  • aws/request : Retryer is now a named field on Request. (#​393)
  • service/s3/s3manager: Adds sync.Pool to allow reuse of part buffers for streaming payloads (#​404)
    • Fixes #​402
    • Uses the new behavior introduced in V1 #​2863 which allows the reuse of the sync.Pool across multiple Upload request that match part sizes.
SDK Bugs
  • service/s3/s3manager: Fix index out of range when a streaming reader returns -1 (#​378)
    • Fixes the S3 Upload Manager's handling of an unbounded streaming reader that returns negative bytes read.
  • internal/ini: Fix ini parser to handle empty values #​406
    • Fixes incorrect modifications to the previous token value of the skipper. Adds checks for cases where a skipped statement should be marked as complete and not be ignored.
    • Adds tests for nested and empty field value parsing, along with tests suggested in aws/aws-sdk-go#​2801

v0.12.0

Compare Source

Services

  • Synced the V2 SDK with latest AWS service API definitions.

SDK Enhancements

  • aws/endpoints: Expose DNSSuffix for partitions (#​369)

    • Exposes the underlying partition metadata's DNSSuffix value via the DNSSuffix method on the endpoint's Partition type. This allows access to the partition's DNS suffix, e.g. "amazon.com".
    • Fixes #​347
  • private/protocol: Add support for parsing fractional timestamp (#​367)

    • Fixes the SDK's ability to parse fractional unix timestamp values and adds tests.
    • Fixes #​365
  • aws/ec2metadata: Add marketplaceProductCodes to EC2 Instance Identity Document (#​374)

    • Adds MarketplaceProductCodes to the EC2 Instance Metadata's Identity Document. The ec2metadata client will now retrieve these values if they are available.
    • Related to: aws/aws-sdk-go#​2781
  • aws: Adds configurations to the default retryer (#​375)

    • Provides more customization options for retryer by adding a constructor for default Retryer which accepts functional options. Adds NoOpRetryer to support no retry behavior. Exposes members of default retryer.
    • Updates the underlying logic used by the default retryer to calculate jittered delay for retry. Handles int overflow for retry delay.
    • Fixes #​370
  • aws : Refactors request retry behavior path logic (#​384)

    • Retry utilities now follow a consistent code path. aws.IsErrorRetryable is the primary entry point to determine if a request is retryable.
    • Corrects sdk's behavior by not retrying errors with status code 501. Adds support for retrying the Kinesis API error, LimitExceededException.
    • Fixes #​372, #​145

SDK Bugs

  • aws: Fixes bug in calculating throttled retry delay (#​373)
    • The Retry-After duration specified in the request is now added to the Retry delay for throttled exception. Adds test for retry delays for throttled exceptions. Fixes bug where the throttled retry's math was off.
    • Fixes #​45
  • aws : Adds missing sdk error checking when seeking readers (#​379)
    • Adds support for nonseekable io.Reader. Adds support for streamed payloads for unsigned body request.
    • Fixes #​371
  • service/s3 : Fixes unexpected EOF error by s3manager (#​386)
    • Fixes bug which threw unexpected EOF error when s3 upload is performed for a file of maximum allowed size
    • Fixes #​316
  • private/model : Fixes generated API Reference docs links being invalid (387)

v0.11.0

Compare Source

Services

  • Synced the V2 SDK with latest AWS service API definitions.

SDK Features

SDK Enhancements

  • private/protocol: Add support for TimestampFormat in protocols (#​358)
    • Adds support for the timestampForamt API model trait to the V2 SDK. The SDK will now generate API client parameters with the correct time format for APIs modeled with custom time stamp formats specified.
    • Fixes #​202
    • Fixes #​286
  • aws: Add example for custom HTTP client idle connection options (#​350)
    • Adds example to the SDK for configuring custom HTTP client idle connection keep alive options.

SDK Bugs

  • private/model/api: Fix API doc being generated with wrong value (#​359)
    • Fixes the SDK's generated API documentation for structure member being generated with the wrong documentation value when the member was included multiple times in the model doc-2.json file, but under different types.
    • V2 port of to v1 aws/aws-sdk-go#​2748
  • aws/ec2rolecreds: Fix security creds path to include trailing slash (#​356)
    • Fixes the iamSecurityCredsPath var to include a trailing slash preventing redirects when making requests to the EC2 Instance Metadata service.
    • Fixes #​351
  • service/dynamodb/expression: Improved reporting of bad key conditions (#​360)
    • Improved error reporting when invalid key conditions are constructed using KeyConditionBuilder

v0.10.0

Compare Source

Services

  • Synced the V2 SDK with latest AWS service API definitions.
  • Fixes #​341
  • Fixes #​342

SDK Breaking Changes

  • aws: Add default HTTP client instead of http.DefaultClient/Transport (#​315)
    • Adds a new BuildableHTTPClient type to the SDK's aws package. The type uses the builder pattern with immutable changes. Modifications to the buildable client create copies of the client. Adds a HTTPClient interface to the aws package that the SDK will use as an abstraction over the specific HTTP client implementation. The SDK will default to the BuildableHTTPClient, but a *http.Client can be also provided for custom configuration. When the SDK's aws.Config.HTTPClient value is a BuildableHTTPClient the SDK will be able to use API client specific request timeout options.
    • Fixes #​279
    • Fixes #​269

SDK Enhancements

  • service/s3/s3manager: Update S3 Upload Multipart location (#​324)
    • Updates the Location returned value of S3 Upload's Multipart UploadOutput type to be consistent with single part upload URL. This update also brings the multipart upload Location inline with the S3 object URLs created by the SDK.
    • Fixes #​323
    • V2 Port aws/aws-sdk-go#​2453

SDK Bugs

  • private/model: Handles empty map vs unset map behavior in send request (#​337)
    • Updated shape marshal model to handle the empty map vs nil map behavior. Adding a test case to assert behavior when a user sends an empty map vs nil map.
    • Fix #​332
  • service/rds: Fix presign URL for same region (#​331)
    • Fixes RDS no-autopresign URL for same region issue for aws-sdk-go-v2. Solves the issue by making sure that the presigned URLs are not created, when the source and destination regions are the same. Added and updated the tests accordingly.
    • Fix #​271
  • private/protocola/json/jsonutil: Fix Unmarshal map[string]bool (#​320)
    • Fixes the JSON unmarshaling of maps of bools. The unmarshal case was missing the condition for bool value, in addition the bool pointer.
    • Fix #​319

v0.9.0

Compare Source

Services
  • Synced the V2 SDK with latest AWS service API definitions.
  • Fixes #​304
  • Fixes #​295
SDK Breaking changes

This update includes multiple breaking changes to the SDK. These updates improve the SDK's usability, consistency.

Client type name

The API client type is renamed to Client for consistency, and remove stutter between package and client type name. Using Amazon S3 API client as an example, the s3.S3 type is renamed to s3.Client.

New API operation response type

API operations' Request.Send method now returns a Response type for the specific operation. The Response type wraps the operation's Output parameter, and includes a method for the response's metadata such as RequestID. The Output type is an anonymous embedded field within the Output type. If your application was passing the Output value around you'll need to extract it directly, or pass the Response type instead.

New API operation paginator utility

This change removes the Paginate method from API operation Request types, (e.g. ListObjectsRequest). A new Paginator constructor is added that can be used to page these operations. To update your application to use the new pattern, where Paginate was being called, replace this with the Paginator type's constructor. The usage of the returned Paginator type is unchanged.

req := svc.ListObjectsRequest(params)
p := req.Paginate()

Is updated to to use the Paginator constructor instead of Paginate method.

req := svc.ListObjectsRequest(params)
p := s3.NewListObjectsPaginator(req)
Other changes
  • Standardizes API client package name to be based on the API model's ServiceID.
  • Standardizes API client operation input and output type names.
  • Removes endpoints package's service identifier constants. These values were unstable. Each API client package contains an EndpointsID constant that can be used for service specific endpoint lookup.
  • Fix API endpoint lookup to use the API's modeled EndpointsID (aka enpdointPrefix). Searching for API endpoints in the endpoints package should use the API client package's, EndpointsID.
SDK Enhancements
  • Update CI tests to ensure all codegen changes are accounted for in PR (#​183)

  • Updates the CI tests to ensure that any code generation changes are accounted for in the PR, and that there were no mistaken changes made without also running code generation. This change should also help ensure that code generation order is stable, and there are no ordering issues with the SDK's codegen.

  • Related aws/aws-sdk-go#​1966

  • service/dynamodb/expression: Fix Builder with KeyCondition example (#​306)

    • Fixes the ExampleBuilder_WithKeyCondition example to include the ExpressionAttributeNames member being set.
    • Fixes #​285
  • aws/defaults: Fix UserAgent execution environment key (#​307)

    • Fixes the SDK's UserAgent key for the execution environment.
    • Fixes #​276
  • private/model/api: Improve SDK API reference doc generation (#​309)

    • Improves the SDK's generated documentation for API client, operation, and types. This fixes several bugs in the doc generation causing poor formatting, an difficult to read reference documentation.
    • Fix #​308
    • Related aws/aws-sdk-go#​2617

v0.8.0

Compare Source

Services

  • Synced the V2 SDK with latest AWS service API definitions.

SDK Breaking changes

  • Update SDK API operation request send to required Context (#​265)
    • Updates the SDK's API operation request Send method to require a context.Context value when called. This is done to encourage best applications to use Context for cancellation and request tracing. Standardizing on this pattern will also help reduce code paths which accidentally do not have the Context causing the cancellation and tracing chain to be lost. Leading to difficult to trace down losses of cancellation and tracing within an application.
    • Fixes #​264

SDK Enhancements

  • Update README.md for getting SDK without Go Modules
    • Updates the README.md with instructions how to get the SDK without Go Modules enabled, or using the SDK within a GOPATH with Go 1.11, and Go 1.12.
  • Refactor SDK's integration tests to be code generated (#​283)
  • aws: Add RequestThrottledException to set of throttled exceptions (#​292)
  • private/model/api: Backfill authtype, STS and Cognito Identity (#​293)
    • Backfills the authtype=none modeled trait for STS and Cognito Identity services. This removes the in code customization for these two services' APIs that should not be signed.

SDK Bugs

  • Fix HTTP endpoint credential provider test for unresolved hosts (#​262)
    • Fixes the HTTP endpoint credential provider's tests to check for a host that resolves to no addresses.
  • example/service/s3/mockPaginator: Update example to not use internal pkg (#​278)
    • Updates the SDK's S3 Mock Paginator example to not use internal SDK packages and instead use the SDK's provided defaults package for default configuration.
    • Fixes #​116
  • Cleanup go mod unused dependencies (#​284)
  • service/s3/s3manager: Fix brittle Upload unit test (#​288)
  • aws/ec2metadata: Fix EC2 Metadata client panic with debug logging (#​290)
    • Fixes a panic that could occur within the EC2 Metadata client when both AWS_EC2_METADATA_DISABLED env var is set and log level is LogDebugWithHTTPBody. The SDK's client response body debug functionality would panic because the Request.HTTPResponse value was not specified.
  • aws: Fix RequestUserAgent test to be stable ([#​289](https://togithu

Renovate configuration

📅 Schedule: "every weekend" in timezone Asia/Tokyo.

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

♻️ Rebasing: Renovate will not automatically rebase this PR, because other commits have been found.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by WhiteSource Renovate. View repository job log here.

@renovate
Copy link
Contributor Author

renovate bot commented Oct 30, 2020

⚠️ Artifact update problem

Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.

♻️ Renovate will retry this branch, including artifacts, only when one of the following happens:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you check the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: go.sum
Command failed: docker run --rm --name=renovate_go --label=renovate_child -v "/mnt/renovate/gh/seqsense/uawscli":"/mnt/renovate/gh/seqsense/uawscli" -v "/tmp/renovate-cache":"/tmp/renovate-cache" -v "/tmp/renovate-cache/others/go":"/tmp/renovate-cache/others/go" -e GOPATH -e CGO_ENABLED -w "/mnt/renovate/gh/seqsense/uawscli" docker.io/renovate/go:1.15.3 bash -l -c "git config --global url.\"https://**redacted**@github.com/\".insteadOf \"https://github.com/\" && go get -d ./... && go mod tidy && go mod tidy"
go: github.com/aws/aws-sdk-go-v2/config@v0.29.0: reading github.com/aws/aws-sdk-go-v2/config/config/go.mod at revision config/v0.29.0: unknown revision config/v0.29.0

@renovate renovate bot force-pushed the renovate/github.com-aws-aws-sdk-go-v2-config-0.x branch from 9e5a2cb to a502b64 Compare October 31, 2020 01:41
@renovate renovate bot changed the title Update module aws/aws-sdk-go-v2/config to v0.28.0 Update module aws/aws-sdk-go-v2/config to v0.29.0 Oct 31, 2020
@at-wat at-wat changed the title Update module aws/aws-sdk-go-v2/config to v0.29.0 Update module aws/aws-sdk-go-v2/config to v0.2.2 Oct 31, 2020
@at-wat at-wat merged commit f89f67f into master Oct 31, 2020
@at-wat at-wat deleted the renovate/github.com-aws-aws-sdk-go-v2-config-0.x branch October 31, 2020 02:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants