mirror of
https://github.com/ceph/ceph-csi.git
synced 2024-11-26 08:10:20 +00:00
rebase: bump github.com/aws/aws-sdk-go from 1.44.220 to 1.44.249
Bumps [github.com/aws/aws-sdk-go](https://github.com/aws/aws-sdk-go) from 1.44.220 to 1.44.249. - [Release notes](https://github.com/aws/aws-sdk-go/releases) - [Commits](https://github.com/aws/aws-sdk-go/compare/v1.44.220...v1.44.249) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
This commit is contained in:
parent
c702264708
commit
dbb680e77b
2
go.mod
2
go.mod
@ -4,7 +4,7 @@ go 1.19
|
|||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/IBM/keyprotect-go-client v0.10.0
|
github.com/IBM/keyprotect-go-client v0.10.0
|
||||||
github.com/aws/aws-sdk-go v1.44.220
|
github.com/aws/aws-sdk-go v1.44.249
|
||||||
github.com/aws/aws-sdk-go-v2/service/sts v1.18.6
|
github.com/aws/aws-sdk-go-v2/service/sts v1.18.6
|
||||||
github.com/ceph/ceph-csi/api v0.0.0-00010101000000-000000000000
|
github.com/ceph/ceph-csi/api v0.0.0-00010101000000-000000000000
|
||||||
// TODO: API for managing subvolume metadata and snapshot metadata requires `ceph_ci_untested` build-tag
|
// TODO: API for managing subvolume metadata and snapshot metadata requires `ceph_ci_untested` build-tag
|
||||||
|
4
go.sum
4
go.sum
@ -155,8 +155,8 @@ github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a h1:idn718Q4
|
|||||||
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
|
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
|
||||||
github.com/aws/aws-sdk-go v1.25.37/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
|
github.com/aws/aws-sdk-go v1.25.37/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
|
||||||
github.com/aws/aws-sdk-go v1.25.41/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
|
github.com/aws/aws-sdk-go v1.25.41/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
|
||||||
github.com/aws/aws-sdk-go v1.44.220 h1:yAj99qAt0Htjle9Up3DglgHfOP77lmFPrElA4jKnrBo=
|
github.com/aws/aws-sdk-go v1.44.249 h1:UbUvh/oYHdAD3vZjNi316M0NIupJsrqAcJckVuhaCB8=
|
||||||
github.com/aws/aws-sdk-go v1.44.220/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI=
|
github.com/aws/aws-sdk-go v1.44.249/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI=
|
||||||
github.com/aws/aws-sdk-go-v2 v1.17.6 h1:Y773UK7OBqhzi5VDXMi1zVGsoj+CVHs2eaC2bDsLwi0=
|
github.com/aws/aws-sdk-go-v2 v1.17.6 h1:Y773UK7OBqhzi5VDXMi1zVGsoj+CVHs2eaC2bDsLwi0=
|
||||||
github.com/aws/aws-sdk-go-v2 v1.17.6/go.mod h1:uzbQtefpm44goOPmdKyAlXSNcwlRgF3ePWVW6EtJvvw=
|
github.com/aws/aws-sdk-go-v2 v1.17.6/go.mod h1:uzbQtefpm44goOPmdKyAlXSNcwlRgF3ePWVW6EtJvvw=
|
||||||
github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.30 h1:y+8n9AGDjikyXoMBTRaHHHSaFEB8267ykmvyPodJfys=
|
github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.30 h1:y+8n9AGDjikyXoMBTRaHHHSaFEB8267ykmvyPodJfys=
|
||||||
|
28
vendor/github.com/aws/aws-sdk-go/aws/config.go
generated
vendored
28
vendor/github.com/aws/aws-sdk-go/aws/config.go
generated
vendored
@ -192,6 +192,23 @@ type Config struct {
|
|||||||
//
|
//
|
||||||
EC2MetadataDisableTimeoutOverride *bool
|
EC2MetadataDisableTimeoutOverride *bool
|
||||||
|
|
||||||
|
// Set this to `false` to disable EC2Metadata client from falling back to IMDSv1.
|
||||||
|
// By default, EC2 role credentials will fall back to IMDSv1 as needed for backwards compatibility.
|
||||||
|
// You can disable this behavior by explicitly setting this flag to `false`. When false, the EC2Metadata
|
||||||
|
// client will return any errors encountered from attempting to fetch a token instead of silently
|
||||||
|
// using the insecure data flow of IMDSv1.
|
||||||
|
//
|
||||||
|
// Example:
|
||||||
|
// sess := session.Must(session.NewSession(aws.NewConfig()
|
||||||
|
// .WithEC2MetadataEnableFallback(false)))
|
||||||
|
//
|
||||||
|
// svc := s3.New(sess)
|
||||||
|
//
|
||||||
|
// See [configuring IMDS] for more information.
|
||||||
|
//
|
||||||
|
// [configuring IMDS]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html
|
||||||
|
EC2MetadataEnableFallback *bool
|
||||||
|
|
||||||
// Instructs the endpoint to be generated for a service client to
|
// Instructs the endpoint to be generated for a service client to
|
||||||
// be the dual stack endpoint. The dual stack endpoint will support
|
// be the dual stack endpoint. The dual stack endpoint will support
|
||||||
// both IPv4 and IPv6 addressing.
|
// both IPv4 and IPv6 addressing.
|
||||||
@ -432,6 +449,13 @@ func (c *Config) WithEC2MetadataDisableTimeoutOverride(enable bool) *Config {
|
|||||||
return c
|
return c
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// WithEC2MetadataEnableFallback sets a config EC2MetadataEnableFallback value
|
||||||
|
// returning a Config pointer for chaining.
|
||||||
|
func (c *Config) WithEC2MetadataEnableFallback(v bool) *Config {
|
||||||
|
c.EC2MetadataEnableFallback = &v
|
||||||
|
return c
|
||||||
|
}
|
||||||
|
|
||||||
// WithSleepDelay overrides the function used to sleep while waiting for the
|
// WithSleepDelay overrides the function used to sleep while waiting for the
|
||||||
// next retry. Defaults to time.Sleep.
|
// next retry. Defaults to time.Sleep.
|
||||||
func (c *Config) WithSleepDelay(fn func(time.Duration)) *Config {
|
func (c *Config) WithSleepDelay(fn func(time.Duration)) *Config {
|
||||||
@ -576,6 +600,10 @@ func mergeInConfig(dst *Config, other *Config) {
|
|||||||
dst.EC2MetadataDisableTimeoutOverride = other.EC2MetadataDisableTimeoutOverride
|
dst.EC2MetadataDisableTimeoutOverride = other.EC2MetadataDisableTimeoutOverride
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if other.EC2MetadataEnableFallback != nil {
|
||||||
|
dst.EC2MetadataEnableFallback = other.EC2MetadataEnableFallback
|
||||||
|
}
|
||||||
|
|
||||||
if other.SleepDelay != nil {
|
if other.SleepDelay != nil {
|
||||||
dst.SleepDelay = other.SleepDelay
|
dst.SleepDelay = other.SleepDelay
|
||||||
}
|
}
|
||||||
|
2
vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/service.go
generated
vendored
2
vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/service.go
generated
vendored
@ -57,8 +57,8 @@ type EC2Metadata struct {
|
|||||||
// New creates a new instance of the EC2Metadata client with a session.
|
// New creates a new instance of the EC2Metadata client with a session.
|
||||||
// This client is safe to use across multiple goroutines.
|
// This client is safe to use across multiple goroutines.
|
||||||
//
|
//
|
||||||
//
|
|
||||||
// Example:
|
// Example:
|
||||||
|
//
|
||||||
// // Create a EC2Metadata client from just a session.
|
// // Create a EC2Metadata client from just a session.
|
||||||
// svc := ec2metadata.New(mySession)
|
// svc := ec2metadata.New(mySession)
|
||||||
//
|
//
|
||||||
|
25
vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/token_provider.go
generated
vendored
25
vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/token_provider.go
generated
vendored
@ -1,6 +1,7 @@
|
|||||||
package ec2metadata
|
package ec2metadata
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
"net/http"
|
"net/http"
|
||||||
"sync/atomic"
|
"sync/atomic"
|
||||||
"time"
|
"time"
|
||||||
@ -33,11 +34,15 @@ func newTokenProvider(c *EC2Metadata, duration time.Duration) *tokenProvider {
|
|||||||
return &tokenProvider{client: c, configuredTTL: duration}
|
return &tokenProvider{client: c, configuredTTL: duration}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// check if fallback is enabled
|
||||||
|
func (t *tokenProvider) fallbackEnabled() bool {
|
||||||
|
return t.client.Config.EC2MetadataEnableFallback == nil || *t.client.Config.EC2MetadataEnableFallback
|
||||||
|
}
|
||||||
|
|
||||||
// fetchTokenHandler fetches token for EC2Metadata service client by default.
|
// fetchTokenHandler fetches token for EC2Metadata service client by default.
|
||||||
func (t *tokenProvider) fetchTokenHandler(r *request.Request) {
|
func (t *tokenProvider) fetchTokenHandler(r *request.Request) {
|
||||||
|
|
||||||
// short-circuits to insecure data flow if tokenProvider is disabled.
|
// short-circuits to insecure data flow if tokenProvider is disabled.
|
||||||
if v := atomic.LoadUint32(&t.disabled); v == 1 {
|
if v := atomic.LoadUint32(&t.disabled); v == 1 && t.fallbackEnabled() {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -49,23 +54,21 @@ func (t *tokenProvider) fetchTokenHandler(r *request.Request) {
|
|||||||
output, err := t.client.getToken(r.Context(), t.configuredTTL)
|
output, err := t.client.getToken(r.Context(), t.configuredTTL)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
// only attempt fallback to insecure data flow if IMDSv1 is enabled
|
||||||
|
if !t.fallbackEnabled() {
|
||||||
|
r.Error = awserr.New("EC2MetadataError", "failed to get IMDSv2 token and fallback to IMDSv1 is disabled", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
// change the disabled flag on token provider to true,
|
// change the disabled flag on token provider to true and fallback
|
||||||
// when error is request timeout error.
|
|
||||||
if requestFailureError, ok := err.(awserr.RequestFailure); ok {
|
if requestFailureError, ok := err.(awserr.RequestFailure); ok {
|
||||||
switch requestFailureError.StatusCode() {
|
switch requestFailureError.StatusCode() {
|
||||||
case http.StatusForbidden, http.StatusNotFound, http.StatusMethodNotAllowed:
|
case http.StatusForbidden, http.StatusNotFound, http.StatusMethodNotAllowed:
|
||||||
atomic.StoreUint32(&t.disabled, 1)
|
atomic.StoreUint32(&t.disabled, 1)
|
||||||
|
t.client.Config.Logger.Log(fmt.Sprintf("WARN: failed to get session token, falling back to IMDSv1: %v", requestFailureError))
|
||||||
case http.StatusBadRequest:
|
case http.StatusBadRequest:
|
||||||
r.Error = requestFailureError
|
r.Error = requestFailureError
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check if request timed out while waiting for response
|
|
||||||
if e, ok := requestFailureError.OrigErr().(awserr.Error); ok {
|
|
||||||
if e.Code() == request.ErrCodeRequestError {
|
|
||||||
atomic.StoreUint32(&t.disabled, 1)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
1284
vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go
generated
vendored
1284
vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go
generated
vendored
File diff suppressed because it is too large
Load Diff
24
vendor/github.com/aws/aws-sdk-go/aws/session/session.go
generated
vendored
24
vendor/github.com/aws/aws-sdk-go/aws/session/session.go
generated
vendored
@ -174,7 +174,6 @@ const (
|
|||||||
|
|
||||||
// Options provides the means to control how a Session is created and what
|
// Options provides the means to control how a Session is created and what
|
||||||
// configuration values will be loaded.
|
// configuration values will be loaded.
|
||||||
//
|
|
||||||
type Options struct {
|
type Options struct {
|
||||||
// Provides config values for the SDK to use when creating service clients
|
// Provides config values for the SDK to use when creating service clients
|
||||||
// and making API requests to services. Any value set in with this field
|
// and making API requests to services. Any value set in with this field
|
||||||
@ -224,7 +223,7 @@ type Options struct {
|
|||||||
// from stdin for the MFA token code.
|
// from stdin for the MFA token code.
|
||||||
//
|
//
|
||||||
// This field is only used if the shared configuration is enabled, and
|
// This field is only used if the shared configuration is enabled, and
|
||||||
// the config enables assume role wit MFA via the mfa_serial field.
|
// the config enables assume role with MFA via the mfa_serial field.
|
||||||
AssumeRoleTokenProvider func() (string, error)
|
AssumeRoleTokenProvider func() (string, error)
|
||||||
|
|
||||||
// When the SDK's shared config is configured to assume a role this option
|
// When the SDK's shared config is configured to assume a role this option
|
||||||
@ -780,16 +779,6 @@ func mergeConfigSrcs(cfg, userCfg *aws.Config,
|
|||||||
cfg.EndpointResolver = wrapEC2IMDSEndpoint(cfg.EndpointResolver, ec2IMDSEndpoint, endpointMode)
|
cfg.EndpointResolver = wrapEC2IMDSEndpoint(cfg.EndpointResolver, ec2IMDSEndpoint, endpointMode)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Configure credentials if not already set by the user when creating the
|
|
||||||
// Session.
|
|
||||||
if cfg.Credentials == credentials.AnonymousCredentials && userCfg.Credentials == nil {
|
|
||||||
creds, err := resolveCredentials(cfg, envCfg, sharedCfg, handlers, sessOpts)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
cfg.Credentials = creds
|
|
||||||
}
|
|
||||||
|
|
||||||
cfg.S3UseARNRegion = userCfg.S3UseARNRegion
|
cfg.S3UseARNRegion = userCfg.S3UseARNRegion
|
||||||
if cfg.S3UseARNRegion == nil {
|
if cfg.S3UseARNRegion == nil {
|
||||||
cfg.S3UseARNRegion = &envCfg.S3UseARNRegion
|
cfg.S3UseARNRegion = &envCfg.S3UseARNRegion
|
||||||
@ -812,6 +801,17 @@ func mergeConfigSrcs(cfg, userCfg *aws.Config,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Configure credentials if not already set by the user when creating the Session.
|
||||||
|
// Credentials are resolved last such that all _resolved_ config values are propagated to credential providers.
|
||||||
|
// ticket: P83606045
|
||||||
|
if cfg.Credentials == credentials.AnonymousCredentials && userCfg.Credentials == nil {
|
||||||
|
creds, err := resolveCredentials(cfg, envCfg, sharedCfg, handlers, sessOpts)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
cfg.Credentials = creds
|
||||||
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
2
vendor/github.com/aws/aws-sdk-go/aws/version.go
generated
vendored
2
vendor/github.com/aws/aws-sdk-go/aws/version.go
generated
vendored
@ -5,4 +5,4 @@ package aws
|
|||||||
const SDKName = "aws-sdk-go"
|
const SDKName = "aws-sdk-go"
|
||||||
|
|
||||||
// SDKVersion is the version of this SDK
|
// SDKVersion is the version of this SDK
|
||||||
const SDKVersion = "1.44.220"
|
const SDKVersion = "1.44.249"
|
||||||
|
4
vendor/github.com/aws/aws-sdk-go/private/protocol/restjson/unmarshal_error.go
generated
vendored
4
vendor/github.com/aws/aws-sdk-go/private/protocol/restjson/unmarshal_error.go
generated
vendored
@ -45,7 +45,7 @@ func (u *UnmarshalTypedError) UnmarshalError(
|
|||||||
msg := resp.Header.Get(errorMessageHeader)
|
msg := resp.Header.Get(errorMessageHeader)
|
||||||
|
|
||||||
body := resp.Body
|
body := resp.Body
|
||||||
if len(code) == 0 {
|
if len(code) == 0 || len(msg) == 0 {
|
||||||
// If unable to get code from HTTP headers have to parse JSON message
|
// If unable to get code from HTTP headers have to parse JSON message
|
||||||
// to determine what kind of exception this will be.
|
// to determine what kind of exception this will be.
|
||||||
var buf bytes.Buffer
|
var buf bytes.Buffer
|
||||||
@ -57,7 +57,9 @@ func (u *UnmarshalTypedError) UnmarshalError(
|
|||||||
}
|
}
|
||||||
|
|
||||||
body = ioutil.NopCloser(&buf)
|
body = ioutil.NopCloser(&buf)
|
||||||
|
if len(code) == 0 {
|
||||||
code = jsonErr.Code
|
code = jsonErr.Code
|
||||||
|
}
|
||||||
msg = jsonErr.Message
|
msg = jsonErr.Message
|
||||||
}
|
}
|
||||||
|
|
||||||
|
1635
vendor/github.com/aws/aws-sdk-go/service/ec2/api.go
generated
vendored
1635
vendor/github.com/aws/aws-sdk-go/service/ec2/api.go
generated
vendored
File diff suppressed because it is too large
Load Diff
22
vendor/github.com/aws/aws-sdk-go/service/ec2/customizations.go
generated
vendored
22
vendor/github.com/aws/aws-sdk-go/service/ec2/customizations.go
generated
vendored
@ -11,6 +11,9 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
// ec2CopySnapshotPresignedUrlCustomization handler name
|
||||||
|
ec2CopySnapshotPresignedUrlCustomization = "ec2CopySnapshotPresignedUrl"
|
||||||
|
|
||||||
// customRetryerMinRetryDelay sets min retry delay
|
// customRetryerMinRetryDelay sets min retry delay
|
||||||
customRetryerMinRetryDelay = 1 * time.Second
|
customRetryerMinRetryDelay = 1 * time.Second
|
||||||
|
|
||||||
@ -21,7 +24,10 @@ const (
|
|||||||
func init() {
|
func init() {
|
||||||
initRequest = func(r *request.Request) {
|
initRequest = func(r *request.Request) {
|
||||||
if r.Operation.Name == opCopySnapshot { // fill the PresignedURL parameter
|
if r.Operation.Name == opCopySnapshot { // fill the PresignedURL parameter
|
||||||
r.Handlers.Build.PushFront(fillPresignedURL)
|
r.Handlers.Build.PushFrontNamed(request.NamedHandler{
|
||||||
|
Name: ec2CopySnapshotPresignedUrlCustomization,
|
||||||
|
Fn: fillPresignedURL,
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// only set the retryer on request if config doesn't have a retryer
|
// only set the retryer on request if config doesn't have a retryer
|
||||||
@ -48,13 +54,15 @@ func fillPresignedURL(r *request.Request) {
|
|||||||
|
|
||||||
origParams := r.Params.(*CopySnapshotInput)
|
origParams := r.Params.(*CopySnapshotInput)
|
||||||
|
|
||||||
// Stop if PresignedURL/DestinationRegion is set
|
// Stop if PresignedURL is set
|
||||||
if origParams.PresignedUrl != nil || origParams.DestinationRegion != nil {
|
if origParams.PresignedUrl != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Always use config region as destination region for SDKs
|
||||||
origParams.DestinationRegion = r.Config.Region
|
origParams.DestinationRegion = r.Config.Region
|
||||||
newParams := awsutil.CopyOf(r.Params).(*CopySnapshotInput)
|
|
||||||
|
newParams := awsutil.CopyOf(origParams).(*CopySnapshotInput)
|
||||||
|
|
||||||
// Create a new request based on the existing request. We will use this to
|
// Create a new request based on the existing request. We will use this to
|
||||||
// presign the CopySnapshot request against the source region.
|
// presign the CopySnapshot request against the source region.
|
||||||
@ -82,8 +90,12 @@ func fillPresignedURL(r *request.Request) {
|
|||||||
clientInfo.Endpoint = resolved.URL
|
clientInfo.Endpoint = resolved.URL
|
||||||
clientInfo.SigningRegion = resolved.SigningRegion
|
clientInfo.SigningRegion = resolved.SigningRegion
|
||||||
|
|
||||||
|
// Copy handlers without Presigned URL customization to avoid an infinite loop
|
||||||
|
handlersWithoutPresignCustomization := r.Handlers.Copy()
|
||||||
|
handlersWithoutPresignCustomization.Build.RemoveByName(ec2CopySnapshotPresignedUrlCustomization)
|
||||||
|
|
||||||
// Presign a CopySnapshot request with modified params
|
// Presign a CopySnapshot request with modified params
|
||||||
req := request.New(*cfg, clientInfo, r.Handlers, r.Retryer, r.Operation, newParams, r.Data)
|
req := request.New(*cfg, clientInfo, handlersWithoutPresignCustomization, r.Retryer, r.Operation, newParams, r.Data)
|
||||||
url, err := req.Presign(5 * time.Minute) // 5 minutes should be enough.
|
url, err := req.Presign(5 * time.Minute) // 5 minutes should be enough.
|
||||||
if err != nil { // bubble error back up to original request
|
if err != nil { // bubble error back up to original request
|
||||||
r.Error = err
|
r.Error = err
|
||||||
|
2
vendor/modules.txt
vendored
2
vendor/modules.txt
vendored
@ -8,7 +8,7 @@ github.com/ansel1/merry
|
|||||||
# github.com/ansel1/merry/v2 v2.0.1
|
# github.com/ansel1/merry/v2 v2.0.1
|
||||||
## explicit; go 1.12
|
## explicit; go 1.12
|
||||||
github.com/ansel1/merry/v2
|
github.com/ansel1/merry/v2
|
||||||
# github.com/aws/aws-sdk-go v1.44.220
|
# github.com/aws/aws-sdk-go v1.44.249
|
||||||
## explicit; go 1.11
|
## explicit; go 1.11
|
||||||
github.com/aws/aws-sdk-go/aws
|
github.com/aws/aws-sdk-go/aws
|
||||||
github.com/aws/aws-sdk-go/aws/awserr
|
github.com/aws/aws-sdk-go/aws/awserr
|
||||||
|
Loading…
Reference in New Issue
Block a user