chore(deps): bump github.com/aws/aws-sdk-go-v2/feature/s3/manager (#3220)
Bumps [github.com/aws/aws-sdk-go-v2/feature/s3/manager](https://github.com/aws/aws-sdk-go-v2) from 1.16.24 to 1.17.1. - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/v1.17.1/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/ram/v1.16.24...v1.17.1) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2/feature/s3/manager dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
This commit is contained in:
parent
31f27d6717
commit
d6aab15db1
14
go.mod
14
go.mod
|
|
@ -6,8 +6,8 @@ require (
|
||||||
cloud.google.com/go/storage v1.42.0
|
cloud.google.com/go/storage v1.42.0
|
||||||
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.3.2
|
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.3.2
|
||||||
github.com/aws/aws-sdk-go-v2 v1.30.0
|
github.com/aws/aws-sdk-go-v2 v1.30.0
|
||||||
github.com/aws/aws-sdk-go-v2/config v1.27.18
|
github.com/aws/aws-sdk-go-v2/config v1.27.21
|
||||||
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.24
|
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.1
|
||||||
github.com/aws/aws-sdk-go-v2/service/s3 v1.56.1
|
github.com/aws/aws-sdk-go-v2/service/s3 v1.56.1
|
||||||
github.com/awslabs/amazon-ecr-credential-helper/ecr-login v0.0.0-20240419161514-af205d85bb44
|
github.com/awslabs/amazon-ecr-credential-helper/ecr-login v0.0.0-20240419161514-af205d85bb44
|
||||||
github.com/chrismellard/docker-credential-acr-env v0.0.0-20230304212654-82a0ddb27589
|
github.com/chrismellard/docker-credential-acr-env v0.0.0-20230304212654-82a0ddb27589
|
||||||
|
|
@ -58,8 +58,8 @@ require (
|
||||||
github.com/ProtonMail/go-crypto v1.0.0 // indirect
|
github.com/ProtonMail/go-crypto v1.0.0 // indirect
|
||||||
github.com/agext/levenshtein v1.2.3 // indirect
|
github.com/agext/levenshtein v1.2.3 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 // indirect
|
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/credentials v1.17.18 // indirect
|
github.com/aws/aws-sdk-go-v2/credentials v1.17.21 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.5 // indirect
|
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.8 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.12 // indirect
|
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.12 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.12 // indirect
|
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.12 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 // indirect
|
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 // indirect
|
||||||
|
|
@ -68,9 +68,9 @@ require (
|
||||||
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.14 // indirect
|
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.14 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.14 // indirect
|
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.14 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.12 // indirect
|
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.12 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/service/sso v1.20.11 // indirect
|
github.com/aws/aws-sdk-go-v2/service/sso v1.21.1 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.24.5 // indirect
|
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.25.1 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/service/sts v1.28.12 // indirect
|
github.com/aws/aws-sdk-go-v2/service/sts v1.29.1 // indirect
|
||||||
github.com/aws/smithy-go v1.20.2 // indirect
|
github.com/aws/smithy-go v1.20.2 // indirect
|
||||||
github.com/beorn7/perks v1.0.1 // indirect
|
github.com/beorn7/perks v1.0.1 // indirect
|
||||||
github.com/cespare/xxhash/v2 v2.2.0 // indirect
|
github.com/cespare/xxhash/v2 v2.2.0 // indirect
|
||||||
|
|
|
||||||
28
go.sum
28
go.sum
|
|
@ -80,14 +80,14 @@ github.com/aws/aws-sdk-go-v2 v1.30.0 h1:6qAwtzlfcTtcL8NHtbDQAqgM5s6NDipQTkPxyH/6
|
||||||
github.com/aws/aws-sdk-go-v2 v1.30.0/go.mod h1:ffIFB97e2yNsv4aTSGkqtHnppsIJzw7G7BReUZ3jCXM=
|
github.com/aws/aws-sdk-go-v2 v1.30.0/go.mod h1:ffIFB97e2yNsv4aTSGkqtHnppsIJzw7G7BReUZ3jCXM=
|
||||||
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 h1:x6xsQXGSmW6frevwDA+vi/wqhp1ct18mVXYN08/93to=
|
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 h1:x6xsQXGSmW6frevwDA+vi/wqhp1ct18mVXYN08/93to=
|
||||||
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2/go.mod h1:lPprDr1e6cJdyYeGXnRaJoP4Md+cDBvi2eOj00BlGmg=
|
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2/go.mod h1:lPprDr1e6cJdyYeGXnRaJoP4Md+cDBvi2eOj00BlGmg=
|
||||||
github.com/aws/aws-sdk-go-v2/config v1.27.18 h1:wFvAnwOKKe7QAyIxziwSKjmer9JBMH1vzIL6W+fYuKk=
|
github.com/aws/aws-sdk-go-v2/config v1.27.21 h1:yPX3pjGCe2hJsetlmGNB4Mngu7UPmvWPzzWCv1+boeM=
|
||||||
github.com/aws/aws-sdk-go-v2/config v1.27.18/go.mod h1:0xz6cgdX55+kmppvPm2IaKzIXOheGJhAufacPJaXZ7c=
|
github.com/aws/aws-sdk-go-v2/config v1.27.21/go.mod h1:4XtlEU6DzNai8RMbjSF5MgGZtYvrhBP/aKZcRtZAVdM=
|
||||||
github.com/aws/aws-sdk-go-v2/credentials v1.17.18 h1:D/ALDWqK4JdY3OFgA2thcPO1c9aYTT5STS/CvnkqY1c=
|
github.com/aws/aws-sdk-go-v2/credentials v1.17.21 h1:pjAqgzfgFhTv5grc7xPHtXCAaMapzmwA7aU+c/SZQGw=
|
||||||
github.com/aws/aws-sdk-go-v2/credentials v1.17.18/go.mod h1:JuitCWq+F5QGUrmMPsk945rop6bB57jdscu+Glozdnc=
|
github.com/aws/aws-sdk-go-v2/credentials v1.17.21/go.mod h1:nhK6PtBlfHTUDVmBLr1dg+WHCOCK+1Fu/WQyVHPsgNQ=
|
||||||
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.5 h1:dDgptDO9dxeFkXy+tEgVkzSClHZje/6JkPW5aZyEvrQ=
|
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.8 h1:FR+oWPFb/8qMVYMWN98bUZAGqPvLHiyqg1wqQGfUAXY=
|
||||||
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.5/go.mod h1:gjvE2KBUgUQhcv89jqxrIxH9GaKs1JbZzWejj/DaHGA=
|
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.8/go.mod h1:EgSKcHiuuakEIxJcKGzVNWh5srVAQ3jKaSrBGRYvM48=
|
||||||
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.24 h1:FzNwpVTZDCvm597Ty6mGYvxTolyC1oup0waaKntZI4E=
|
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.1 h1:D9VqWMuw7lJAX6d5eINfRQ/PkvtcJAK3Qmd6f6xEeUw=
|
||||||
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.24/go.mod h1:wM9NElT/Wn6n3CT1eyVcXtfCy8lSVjjQXfdawQbSShc=
|
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.1/go.mod h1:ckvBx7codI4wzc5inOfDp5ZbK7TjMFa7eXwmLvXQrRk=
|
||||||
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.12 h1:SJ04WXGTwnHlWIODtC5kJzKbeuHt+OUNOgKg7nfnUGw=
|
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.12 h1:SJ04WXGTwnHlWIODtC5kJzKbeuHt+OUNOgKg7nfnUGw=
|
||||||
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.12/go.mod h1:FkpvXhA92gb3GE9LD6Og0pHHycTxW7xGpnEh5E7Opwo=
|
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.12/go.mod h1:FkpvXhA92gb3GE9LD6Og0pHHycTxW7xGpnEh5E7Opwo=
|
||||||
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.12 h1:hb5KgeYfObi5MHkSSZMEudnIvX30iB+E21evI4r6BnQ=
|
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.12 h1:hb5KgeYfObi5MHkSSZMEudnIvX30iB+E21evI4r6BnQ=
|
||||||
|
|
@ -110,12 +110,12 @@ github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.12 h1:tzha+v1SCEBpX
|
||||||
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.12/go.mod h1:n+nt2qjHGoseWeLHt1vEr6ZRCCxIN2KcNpJxBcYQSwI=
|
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.12/go.mod h1:n+nt2qjHGoseWeLHt1vEr6ZRCCxIN2KcNpJxBcYQSwI=
|
||||||
github.com/aws/aws-sdk-go-v2/service/s3 v1.56.1 h1:wsg9Z/vNnCmxWikfGIoOlnExtEU459cR+2d+iDJ8elo=
|
github.com/aws/aws-sdk-go-v2/service/s3 v1.56.1 h1:wsg9Z/vNnCmxWikfGIoOlnExtEU459cR+2d+iDJ8elo=
|
||||||
github.com/aws/aws-sdk-go-v2/service/s3 v1.56.1/go.mod h1:8rDw3mVwmvIWWX/+LWY3PPIMZuwnQdJMCt0iVFVT3qw=
|
github.com/aws/aws-sdk-go-v2/service/s3 v1.56.1/go.mod h1:8rDw3mVwmvIWWX/+LWY3PPIMZuwnQdJMCt0iVFVT3qw=
|
||||||
github.com/aws/aws-sdk-go-v2/service/sso v1.20.11 h1:gEYM2GSpr4YNWc6hCd5nod4+d4kd9vWIAWrmGuLdlMw=
|
github.com/aws/aws-sdk-go-v2/service/sso v1.21.1 h1:sd0BsnAvLH8gsp2e3cbaIr+9D7T1xugueQ7V/zUAsS4=
|
||||||
github.com/aws/aws-sdk-go-v2/service/sso v1.20.11/go.mod h1:gVvwPdPNYehHSP9Rs7q27U1EU+3Or2ZpXvzAYJNh63w=
|
github.com/aws/aws-sdk-go-v2/service/sso v1.21.1/go.mod h1:lcQG/MmxydijbeTOp04hIuJwXGWPZGI3bwdFDGRTv14=
|
||||||
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.24.5 h1:iXjh3uaH3vsVcnyZX7MqCoCfcyxIrVE9iOQruRaWPrQ=
|
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.25.1 h1:1uEFNNskK/I1KoZ9Q8wJxMz5V9jyBlsiaNrM7vA3YUQ=
|
||||||
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.24.5/go.mod h1:5ZXesEuy/QcO0WUnt+4sDkxhdXRHTu2yG0uCSH8B6os=
|
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.25.1/go.mod h1:z0P8K+cBIsFXUr5rzo/psUeJ20XjPN0+Nn8067Nd+E4=
|
||||||
github.com/aws/aws-sdk-go-v2/service/sts v1.28.12 h1:M/1u4HBpwLuMtjlxuI2y6HoVLzF5e2mfxHCg7ZVMYmk=
|
github.com/aws/aws-sdk-go-v2/service/sts v1.29.1 h1:myX5CxqXE0QMZNja6FA1/FSE3Vu1rVmeUmpJMMzeZg0=
|
||||||
github.com/aws/aws-sdk-go-v2/service/sts v1.28.12/go.mod h1:kcfd+eTdEi/40FIbLq4Hif3XMXnl5b/+t/KTfLt9xIk=
|
github.com/aws/aws-sdk-go-v2/service/sts v1.29.1/go.mod h1:N2mQiucsO0VwK9CYuS4/c2n6Smeh1v47Rz3dWCPFLdE=
|
||||||
github.com/aws/smithy-go v1.20.2 h1:tbp628ireGtzcHDDmLT/6ADHidqnwgF57XOXZe6tp4Q=
|
github.com/aws/smithy-go v1.20.2 h1:tbp628ireGtzcHDDmLT/6ADHidqnwgF57XOXZe6tp4Q=
|
||||||
github.com/aws/smithy-go v1.20.2/go.mod h1:krry+ya/rV9RDcV/Q16kpu6ypI4K2czasz0NC3qS14E=
|
github.com/aws/smithy-go v1.20.2/go.mod h1:krry+ya/rV9RDcV/Q16kpu6ypI4K2czasz0NC3qS14E=
|
||||||
github.com/awslabs/amazon-ecr-credential-helper/ecr-login v0.0.0-20240419161514-af205d85bb44 h1:oNDkocd5/+6jUuxyz07jQWnKhgpNtKQoZSXKMb7emqQ=
|
github.com/awslabs/amazon-ecr-credential-helper/ecr-login v0.0.0-20240419161514-af205d85bb44 h1:oNDkocd5/+6jUuxyz07jQWnKhgpNtKQoZSXKMb7emqQ=
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,15 @@
|
||||||
|
# v1.27.21 (2024-06-19)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
|
# v1.27.20 (2024-06-18)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
|
# v1.27.19 (2024-06-17)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
# v1.27.18 (2024-06-07)
|
# v1.27.18 (2024-06-07)
|
||||||
|
|
||||||
* **Dependency Update**: Updated to the latest SDK module versions
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
|
||||||
|
|
@ -80,6 +80,9 @@ var defaultAWSConfigResolvers = []awsConfigResolver{
|
||||||
|
|
||||||
// Sets the RequestMinCompressSizeBytes if present in env var or shared config profile
|
// Sets the RequestMinCompressSizeBytes if present in env var or shared config profile
|
||||||
resolveRequestMinCompressSizeBytes,
|
resolveRequestMinCompressSizeBytes,
|
||||||
|
|
||||||
|
// Sets the AccountIDEndpointMode if present in env var or shared config profile
|
||||||
|
resolveAccountIDEndpointMode,
|
||||||
}
|
}
|
||||||
|
|
||||||
// A Config represents a generic configuration value or set of values. This type
|
// A Config represents a generic configuration value or set of values. This type
|
||||||
|
|
|
||||||
|
|
@ -80,6 +80,9 @@ const (
|
||||||
awsRequestMinCompressionSizeBytes = "AWS_REQUEST_MIN_COMPRESSION_SIZE_BYTES"
|
awsRequestMinCompressionSizeBytes = "AWS_REQUEST_MIN_COMPRESSION_SIZE_BYTES"
|
||||||
|
|
||||||
awsS3DisableExpressSessionAuthEnv = "AWS_S3_DISABLE_EXPRESS_SESSION_AUTH"
|
awsS3DisableExpressSessionAuthEnv = "AWS_S3_DISABLE_EXPRESS_SESSION_AUTH"
|
||||||
|
|
||||||
|
awsAccountIDEnv = "AWS_ACCOUNT_ID"
|
||||||
|
awsAccountIDEndpointModeEnv = "AWS_ACCOUNT_ID_ENDPOINT_MODE"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
|
@ -290,6 +293,9 @@ type EnvConfig struct {
|
||||||
// will only bypass the modified endpoint routing and signing behaviors
|
// will only bypass the modified endpoint routing and signing behaviors
|
||||||
// associated with the feature.
|
// associated with the feature.
|
||||||
S3DisableExpressAuth *bool
|
S3DisableExpressAuth *bool
|
||||||
|
|
||||||
|
// Indicates whether account ID will be required/ignored in endpoint2.0 routing
|
||||||
|
AccountIDEndpointMode aws.AccountIDEndpointMode
|
||||||
}
|
}
|
||||||
|
|
||||||
// loadEnvConfig reads configuration values from the OS's environment variables.
|
// loadEnvConfig reads configuration values from the OS's environment variables.
|
||||||
|
|
@ -309,6 +315,7 @@ func NewEnvConfig() (EnvConfig, error) {
|
||||||
setStringFromEnvVal(&creds.AccessKeyID, credAccessEnvKeys)
|
setStringFromEnvVal(&creds.AccessKeyID, credAccessEnvKeys)
|
||||||
setStringFromEnvVal(&creds.SecretAccessKey, credSecretEnvKeys)
|
setStringFromEnvVal(&creds.SecretAccessKey, credSecretEnvKeys)
|
||||||
if creds.HasKeys() {
|
if creds.HasKeys() {
|
||||||
|
creds.AccountID = os.Getenv(awsAccountIDEnv)
|
||||||
creds.SessionToken = os.Getenv(awsSessionTokenEnvVar)
|
creds.SessionToken = os.Getenv(awsSessionTokenEnvVar)
|
||||||
cfg.Credentials = creds
|
cfg.Credentials = creds
|
||||||
}
|
}
|
||||||
|
|
@ -389,6 +396,10 @@ func NewEnvConfig() (EnvConfig, error) {
|
||||||
return cfg, err
|
return cfg, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if err := setAIDEndPointModeFromEnvVal(&cfg.AccountIDEndpointMode, []string{awsAccountIDEndpointModeEnv}); err != nil {
|
||||||
|
return cfg, err
|
||||||
|
}
|
||||||
|
|
||||||
return cfg, nil
|
return cfg, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -417,6 +428,10 @@ func (c EnvConfig) getRequestMinCompressSizeBytes(context.Context) (int64, bool,
|
||||||
return *c.RequestMinCompressSizeBytes, true, nil
|
return *c.RequestMinCompressSizeBytes, true, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (c EnvConfig) getAccountIDEndpointMode(context.Context) (aws.AccountIDEndpointMode, bool, error) {
|
||||||
|
return c.AccountIDEndpointMode, len(c.AccountIDEndpointMode) > 0, nil
|
||||||
|
}
|
||||||
|
|
||||||
// GetRetryMaxAttempts returns the value of AWS_MAX_ATTEMPTS if was specified,
|
// GetRetryMaxAttempts returns the value of AWS_MAX_ATTEMPTS if was specified,
|
||||||
// and not 0.
|
// and not 0.
|
||||||
func (c EnvConfig) GetRetryMaxAttempts(ctx context.Context) (int, bool, error) {
|
func (c EnvConfig) GetRetryMaxAttempts(ctx context.Context) (int, bool, error) {
|
||||||
|
|
@ -491,6 +506,28 @@ func setEC2IMDSEndpointMode(mode *imds.EndpointModeState, keys []string) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func setAIDEndPointModeFromEnvVal(m *aws.AccountIDEndpointMode, keys []string) error {
|
||||||
|
for _, k := range keys {
|
||||||
|
value := os.Getenv(k)
|
||||||
|
if len(value) == 0 {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
switch value {
|
||||||
|
case "preferred":
|
||||||
|
*m = aws.AccountIDEndpointModePreferred
|
||||||
|
case "required":
|
||||||
|
*m = aws.AccountIDEndpointModeRequired
|
||||||
|
case "disabled":
|
||||||
|
*m = aws.AccountIDEndpointModeDisabled
|
||||||
|
default:
|
||||||
|
return fmt.Errorf("invalid value for environment variable, %s=%s, must be preferred/required/disabled", k, value)
|
||||||
|
}
|
||||||
|
break
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
// GetRegion returns the AWS Region if set in the environment. Returns an empty
|
// GetRegion returns the AWS Region if set in the environment. Returns an empty
|
||||||
// string if not set.
|
// string if not set.
|
||||||
func (c EnvConfig) getRegion(ctx context.Context) (string, bool, error) {
|
func (c EnvConfig) getRegion(ctx context.Context) (string, bool, error) {
|
||||||
|
|
|
||||||
|
|
@ -3,4 +3,4 @@
|
||||||
package config
|
package config
|
||||||
|
|
||||||
// goModuleVersion is the tagged release for this module
|
// goModuleVersion is the tagged release for this module
|
||||||
const goModuleVersion = "1.27.18"
|
const goModuleVersion = "1.27.21"
|
||||||
|
|
|
||||||
|
|
@ -215,6 +215,8 @@ type LoadOptions struct {
|
||||||
|
|
||||||
// Whether S3 Express auth is disabled.
|
// Whether S3 Express auth is disabled.
|
||||||
S3DisableExpressAuth *bool
|
S3DisableExpressAuth *bool
|
||||||
|
|
||||||
|
AccountIDEndpointMode aws.AccountIDEndpointMode
|
||||||
}
|
}
|
||||||
|
|
||||||
func (o LoadOptions) getDefaultsMode(ctx context.Context) (aws.DefaultsMode, bool, error) {
|
func (o LoadOptions) getDefaultsMode(ctx context.Context) (aws.DefaultsMode, bool, error) {
|
||||||
|
|
@ -278,6 +280,10 @@ func (o LoadOptions) getRequestMinCompressSizeBytes(ctx context.Context) (int64,
|
||||||
return *o.RequestMinCompressSizeBytes, true, nil
|
return *o.RequestMinCompressSizeBytes, true, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (o LoadOptions) getAccountIDEndpointMode(ctx context.Context) (aws.AccountIDEndpointMode, bool, error) {
|
||||||
|
return o.AccountIDEndpointMode, len(o.AccountIDEndpointMode) > 0, nil
|
||||||
|
}
|
||||||
|
|
||||||
// WithRegion is a helper function to construct functional options
|
// WithRegion is a helper function to construct functional options
|
||||||
// that sets Region on config's LoadOptions. Setting the region to
|
// that sets Region on config's LoadOptions. Setting the region to
|
||||||
// an empty string, will result in the region value being ignored.
|
// an empty string, will result in the region value being ignored.
|
||||||
|
|
@ -323,6 +329,17 @@ func WithRequestMinCompressSizeBytes(RequestMinCompressSizeBytes *int64) LoadOpt
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// WithAccountIDEndpointMode is a helper function to construct functional options
|
||||||
|
// that sets AccountIDEndpointMode on config's LoadOptions
|
||||||
|
func WithAccountIDEndpointMode(m aws.AccountIDEndpointMode) LoadOptionsFunc {
|
||||||
|
return func(o *LoadOptions) error {
|
||||||
|
if m != "" {
|
||||||
|
o.AccountIDEndpointMode = m
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// getDefaultRegion returns DefaultRegion from config's LoadOptions
|
// getDefaultRegion returns DefaultRegion from config's LoadOptions
|
||||||
func (o LoadOptions) getDefaultRegion(ctx context.Context) (string, bool, error) {
|
func (o LoadOptions) getDefaultRegion(ctx context.Context) (string, bool, error) {
|
||||||
if len(o.DefaultRegion) == 0 {
|
if len(o.DefaultRegion) == 0 {
|
||||||
|
|
|
||||||
|
|
@ -225,6 +225,23 @@ func getRequestMinCompressSizeBytes(ctx context.Context, configs configs) (value
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// accountIDEndpointModeProvider provides access to the AccountIDEndpointMode
|
||||||
|
type accountIDEndpointModeProvider interface {
|
||||||
|
getAccountIDEndpointMode(context.Context) (aws.AccountIDEndpointMode, bool, error)
|
||||||
|
}
|
||||||
|
|
||||||
|
func getAccountIDEndpointMode(ctx context.Context, configs configs) (value aws.AccountIDEndpointMode, found bool, err error) {
|
||||||
|
for _, cfg := range configs {
|
||||||
|
if p, ok := cfg.(accountIDEndpointModeProvider); ok {
|
||||||
|
value, found, err = p.getAccountIDEndpointMode(ctx)
|
||||||
|
if err != nil || found {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
// ec2IMDSRegionProvider provides access to the ec2 imds region
|
// ec2IMDSRegionProvider provides access to the ec2 imds region
|
||||||
// configuration value
|
// configuration value
|
||||||
type ec2IMDSRegionProvider interface {
|
type ec2IMDSRegionProvider interface {
|
||||||
|
|
|
||||||
|
|
@ -166,6 +166,22 @@ func resolveRequestMinCompressSizeBytes(ctx context.Context, cfg *aws.Config, co
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// resolveAccountIDEndpointMode extracts the AccountIDEndpointMode from the configs slice's
|
||||||
|
// SharedConfig or EnvConfig
|
||||||
|
func resolveAccountIDEndpointMode(ctx context.Context, cfg *aws.Config, configs configs) error {
|
||||||
|
m, found, err := getAccountIDEndpointMode(ctx, configs)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if !found {
|
||||||
|
m = aws.AccountIDEndpointModePreferred
|
||||||
|
}
|
||||||
|
|
||||||
|
cfg.AccountIDEndpointMode = m
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
// resolveDefaultRegion extracts the first instance of a default region and sets `aws.Config.Region` to the default
|
// resolveDefaultRegion extracts the first instance of a default region and sets `aws.Config.Region` to the default
|
||||||
// region if region had not been resolved from other sources.
|
// region if region had not been resolved from other sources.
|
||||||
func resolveDefaultRegion(ctx context.Context, cfg *aws.Config, configs configs) error {
|
func resolveDefaultRegion(ctx context.Context, cfg *aws.Config, configs configs) error {
|
||||||
|
|
|
||||||
|
|
@ -115,6 +115,9 @@ const (
|
||||||
requestMinCompressionSizeBytes = "request_min_compression_size_bytes"
|
requestMinCompressionSizeBytes = "request_min_compression_size_bytes"
|
||||||
|
|
||||||
s3DisableExpressSessionAuthKey = "s3_disable_express_session_auth"
|
s3DisableExpressSessionAuthKey = "s3_disable_express_session_auth"
|
||||||
|
|
||||||
|
accountIDKey = "aws_account_id"
|
||||||
|
accountIDEndpointMode = "account_id_endpoint_mode"
|
||||||
)
|
)
|
||||||
|
|
||||||
// defaultSharedConfigProfile allows for swapping the default profile for testing
|
// defaultSharedConfigProfile allows for swapping the default profile for testing
|
||||||
|
|
@ -341,6 +344,8 @@ type SharedConfig struct {
|
||||||
// will only bypass the modified endpoint routing and signing behaviors
|
// will only bypass the modified endpoint routing and signing behaviors
|
||||||
// associated with the feature.
|
// associated with the feature.
|
||||||
S3DisableExpressAuth *bool
|
S3DisableExpressAuth *bool
|
||||||
|
|
||||||
|
AccountIDEndpointMode aws.AccountIDEndpointMode
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c SharedConfig) getDefaultsMode(ctx context.Context) (value aws.DefaultsMode, ok bool, err error) {
|
func (c SharedConfig) getDefaultsMode(ctx context.Context) (value aws.DefaultsMode, ok bool, err error) {
|
||||||
|
|
@ -1124,12 +1129,17 @@ func (c *SharedConfig) setFromIniSection(profile string, section ini.Section) er
|
||||||
return fmt.Errorf("failed to load %s from shared config, %w", requestMinCompressionSizeBytes, err)
|
return fmt.Errorf("failed to load %s from shared config, %w", requestMinCompressionSizeBytes, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if err := updateAIDEndpointMode(&c.AccountIDEndpointMode, section, accountIDEndpointMode); err != nil {
|
||||||
|
return fmt.Errorf("failed to load %s from shared config, %w", accountIDEndpointMode, err)
|
||||||
|
}
|
||||||
|
|
||||||
// Shared Credentials
|
// Shared Credentials
|
||||||
creds := aws.Credentials{
|
creds := aws.Credentials{
|
||||||
AccessKeyID: section.String(accessKeyIDKey),
|
AccessKeyID: section.String(accessKeyIDKey),
|
||||||
SecretAccessKey: section.String(secretAccessKey),
|
SecretAccessKey: section.String(secretAccessKey),
|
||||||
SessionToken: section.String(sessionTokenKey),
|
SessionToken: section.String(sessionTokenKey),
|
||||||
Source: fmt.Sprintf("SharedConfigCredentials: %s", section.SourceFile[accessKeyIDKey]),
|
Source: fmt.Sprintf("SharedConfigCredentials: %s", section.SourceFile[accessKeyIDKey]),
|
||||||
|
AccountID: section.String(accountIDKey),
|
||||||
}
|
}
|
||||||
|
|
||||||
if creds.HasKeys() {
|
if creds.HasKeys() {
|
||||||
|
|
@ -1177,6 +1187,26 @@ func updateDisableRequestCompression(disable **bool, sec ini.Section, key string
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func updateAIDEndpointMode(m *aws.AccountIDEndpointMode, sec ini.Section, key string) error {
|
||||||
|
if !sec.Has(key) {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
v := sec.String(key)
|
||||||
|
switch v {
|
||||||
|
case "preferred":
|
||||||
|
*m = aws.AccountIDEndpointModePreferred
|
||||||
|
case "required":
|
||||||
|
*m = aws.AccountIDEndpointModeRequired
|
||||||
|
case "disabled":
|
||||||
|
*m = aws.AccountIDEndpointModeDisabled
|
||||||
|
default:
|
||||||
|
return fmt.Errorf("invalid value for shared config profile field, %s=%s, must be preferred/required/disabled", key, v)
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func (c SharedConfig) getRequestMinCompressSizeBytes(ctx context.Context) (int64, bool, error) {
|
func (c SharedConfig) getRequestMinCompressSizeBytes(ctx context.Context) (int64, bool, error) {
|
||||||
if c.RequestMinCompressSizeBytes == nil {
|
if c.RequestMinCompressSizeBytes == nil {
|
||||||
return 0, false, nil
|
return 0, false, nil
|
||||||
|
|
@ -1191,6 +1221,10 @@ func (c SharedConfig) getDisableRequestCompression(ctx context.Context) (bool, b
|
||||||
return *c.DisableRequestCompression, true, nil
|
return *c.DisableRequestCompression, true, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (c SharedConfig) getAccountIDEndpointMode(ctx context.Context) (aws.AccountIDEndpointMode, bool, error) {
|
||||||
|
return c.AccountIDEndpointMode, len(c.AccountIDEndpointMode) > 0, nil
|
||||||
|
}
|
||||||
|
|
||||||
func updateDefaultsMode(mode *aws.DefaultsMode, section ini.Section, key string) error {
|
func updateDefaultsMode(mode *aws.DefaultsMode, section ini.Section, key string) error {
|
||||||
if !section.Has(key) {
|
if !section.Has(key) {
|
||||||
return nil
|
return nil
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,15 @@
|
||||||
|
# v1.17.21 (2024-06-19)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
|
# v1.17.20 (2024-06-18)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
|
# v1.17.19 (2024-06-17)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
# v1.17.18 (2024-06-07)
|
# v1.17.18 (2024-06-07)
|
||||||
|
|
||||||
* **Dependency Update**: Updated to the latest SDK module versions
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
|
||||||
|
|
@ -128,6 +128,7 @@ type GetCredentialsOutput struct {
|
||||||
AccessKeyID string
|
AccessKeyID string
|
||||||
SecretAccessKey string
|
SecretAccessKey string
|
||||||
Token string
|
Token string
|
||||||
|
AccountID string
|
||||||
}
|
}
|
||||||
|
|
||||||
// EndpointError is an error returned from the endpoint service
|
// EndpointError is an error returned from the endpoint service
|
||||||
|
|
|
||||||
|
|
@ -152,6 +152,7 @@ func (p *Provider) Retrieve(ctx context.Context) (aws.Credentials, error) {
|
||||||
SecretAccessKey: resp.SecretAccessKey,
|
SecretAccessKey: resp.SecretAccessKey,
|
||||||
SessionToken: resp.Token,
|
SessionToken: resp.Token,
|
||||||
Source: ProviderName,
|
Source: ProviderName,
|
||||||
|
AccountID: resp.AccountID,
|
||||||
}
|
}
|
||||||
|
|
||||||
if resp.Expiration != nil {
|
if resp.Expiration != nil {
|
||||||
|
|
|
||||||
|
|
@ -3,4 +3,4 @@
|
||||||
package credentials
|
package credentials
|
||||||
|
|
||||||
// goModuleVersion is the tagged release for this module
|
// goModuleVersion is the tagged release for this module
|
||||||
const goModuleVersion = "1.17.18"
|
const goModuleVersion = "1.17.21"
|
||||||
|
|
|
||||||
|
|
@ -167,6 +167,9 @@ type CredentialProcessResponse struct {
|
||||||
|
|
||||||
// The date on which the current credentials expire.
|
// The date on which the current credentials expire.
|
||||||
Expiration *time.Time
|
Expiration *time.Time
|
||||||
|
|
||||||
|
// The ID of the account for credentials
|
||||||
|
AccountID string `json:"AccountId"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// Retrieve executes the credential process command and returns the
|
// Retrieve executes the credential process command and returns the
|
||||||
|
|
@ -208,6 +211,7 @@ func (p *Provider) Retrieve(ctx context.Context) (aws.Credentials, error) {
|
||||||
AccessKeyID: resp.AccessKeyID,
|
AccessKeyID: resp.AccessKeyID,
|
||||||
SecretAccessKey: resp.SecretAccessKey,
|
SecretAccessKey: resp.SecretAccessKey,
|
||||||
SessionToken: resp.SessionToken,
|
SessionToken: resp.SessionToken,
|
||||||
|
AccountID: resp.AccountID,
|
||||||
}
|
}
|
||||||
|
|
||||||
// Handle expiration
|
// Handle expiration
|
||||||
|
|
|
||||||
1
vendor/github.com/aws/aws-sdk-go-v2/credentials/ssocreds/sso_credentials_provider.go
generated
vendored
1
vendor/github.com/aws/aws-sdk-go-v2/credentials/ssocreds/sso_credentials_provider.go
generated
vendored
|
|
@ -129,6 +129,7 @@ func (p *Provider) Retrieve(ctx context.Context) (aws.Credentials, error) {
|
||||||
CanExpire: true,
|
CanExpire: true,
|
||||||
Expires: time.Unix(0, output.RoleCredentials.Expiration*int64(time.Millisecond)).UTC(),
|
Expires: time.Unix(0, output.RoleCredentials.Expiration*int64(time.Millisecond)).UTC(),
|
||||||
Source: ProviderName,
|
Source: ProviderName,
|
||||||
|
AccountID: p.options.AccountID,
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
6
vendor/github.com/aws/aws-sdk-go-v2/credentials/stscreds/assume_role_provider.go
generated
vendored
6
vendor/github.com/aws/aws-sdk-go-v2/credentials/stscreds/assume_role_provider.go
generated
vendored
|
|
@ -308,6 +308,11 @@ func (p *AssumeRoleProvider) Retrieve(ctx context.Context) (aws.Credentials, err
|
||||||
return aws.Credentials{Source: ProviderName}, err
|
return aws.Credentials{Source: ProviderName}, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var accountID string
|
||||||
|
if resp.AssumedRoleUser != nil {
|
||||||
|
accountID = getAccountID(resp.AssumedRoleUser)
|
||||||
|
}
|
||||||
|
|
||||||
return aws.Credentials{
|
return aws.Credentials{
|
||||||
AccessKeyID: *resp.Credentials.AccessKeyId,
|
AccessKeyID: *resp.Credentials.AccessKeyId,
|
||||||
SecretAccessKey: *resp.Credentials.SecretAccessKey,
|
SecretAccessKey: *resp.Credentials.SecretAccessKey,
|
||||||
|
|
@ -316,5 +321,6 @@ func (p *AssumeRoleProvider) Retrieve(ctx context.Context) (aws.Credentials, err
|
||||||
|
|
||||||
CanExpire: true,
|
CanExpire: true,
|
||||||
Expires: *resp.Credentials.Expiration,
|
Expires: *resp.Credentials.Expiration,
|
||||||
|
AccountID: accountID,
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
|
||||||
19
vendor/github.com/aws/aws-sdk-go-v2/credentials/stscreds/web_identity_provider.go
generated
vendored
19
vendor/github.com/aws/aws-sdk-go-v2/credentials/stscreds/web_identity_provider.go
generated
vendored
|
|
@ -5,6 +5,7 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/aws/aws-sdk-go-v2/aws"
|
"github.com/aws/aws-sdk-go-v2/aws"
|
||||||
|
|
@ -135,6 +136,11 @@ func (p *WebIdentityRoleProvider) Retrieve(ctx context.Context) (aws.Credentials
|
||||||
return aws.Credentials{}, fmt.Errorf("failed to retrieve credentials, %w", err)
|
return aws.Credentials{}, fmt.Errorf("failed to retrieve credentials, %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var accountID string
|
||||||
|
if resp.AssumedRoleUser != nil {
|
||||||
|
accountID = getAccountID(resp.AssumedRoleUser)
|
||||||
|
}
|
||||||
|
|
||||||
// InvalidIdentityToken error is a temporary error that can occur
|
// InvalidIdentityToken error is a temporary error that can occur
|
||||||
// when assuming an Role with a JWT web identity token.
|
// when assuming an Role with a JWT web identity token.
|
||||||
|
|
||||||
|
|
@ -145,6 +151,19 @@ func (p *WebIdentityRoleProvider) Retrieve(ctx context.Context) (aws.Credentials
|
||||||
Source: WebIdentityProviderName,
|
Source: WebIdentityProviderName,
|
||||||
CanExpire: true,
|
CanExpire: true,
|
||||||
Expires: *resp.Credentials.Expiration,
|
Expires: *resp.Credentials.Expiration,
|
||||||
|
AccountID: accountID,
|
||||||
}
|
}
|
||||||
return value, nil
|
return value, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// extract accountID from arn with format "arn:partition:service:region:account-id:[resource-section]"
|
||||||
|
func getAccountID(u *types.AssumedRoleUser) string {
|
||||||
|
if u.Arn == nil {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
parts := strings.Split(*u.Arn, ":")
|
||||||
|
if len(parts) < 5 {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
return parts[4]
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,15 @@
|
||||||
|
# v1.16.8 (2024-06-19)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
|
# v1.16.7 (2024-06-18)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
|
# v1.16.6 (2024-06-17)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
# v1.16.5 (2024-06-07)
|
# v1.16.5 (2024-06-07)
|
||||||
|
|
||||||
* **Dependency Update**: Updated to the latest SDK module versions
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
|
||||||
|
|
@ -3,4 +3,4 @@
|
||||||
package imds
|
package imds
|
||||||
|
|
||||||
// goModuleVersion is the tagged release for this module
|
// goModuleVersion is the tagged release for this module
|
||||||
const goModuleVersion = "1.16.5"
|
const goModuleVersion = "1.16.8"
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,16 @@
|
||||||
|
# v1.17.1 (2024-06-19)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
|
# v1.17.0 (2024-06-18)
|
||||||
|
|
||||||
|
* **Feature**: Track usage of various AWS SDK features in user-agent string.
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
|
# v1.16.25 (2024-06-17)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
# v1.16.24 (2024-06-07)
|
# v1.16.24 (2024-06-07)
|
||||||
|
|
||||||
* **Dependency Update**: Updated to the latest SDK module versions
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
|
||||||
|
|
@ -183,7 +183,10 @@ func (d Downloader) Download(ctx context.Context, w io.WriterAt, input *s3.GetOb
|
||||||
// Copy ClientOptions
|
// Copy ClientOptions
|
||||||
clientOptions := make([]func(*s3.Options), 0, len(impl.cfg.ClientOptions)+1)
|
clientOptions := make([]func(*s3.Options), 0, len(impl.cfg.ClientOptions)+1)
|
||||||
clientOptions = append(clientOptions, func(o *s3.Options) {
|
clientOptions = append(clientOptions, func(o *s3.Options) {
|
||||||
o.APIOptions = append(o.APIOptions, middleware.AddSDKAgentKey(middleware.FeatureMetadata, userAgentKey))
|
o.APIOptions = append(o.APIOptions,
|
||||||
|
middleware.AddSDKAgentKey(middleware.FeatureMetadata, userAgentKey),
|
||||||
|
addFeatureUserAgent, // yes, there are two of these
|
||||||
|
)
|
||||||
})
|
})
|
||||||
clientOptions = append(clientOptions, impl.cfg.ClientOptions...)
|
clientOptions = append(clientOptions, impl.cfg.ClientOptions...)
|
||||||
impl.cfg.ClientOptions = clientOptions
|
impl.cfg.ClientOptions = clientOptions
|
||||||
|
|
|
||||||
|
|
@ -3,4 +3,4 @@
|
||||||
package manager
|
package manager
|
||||||
|
|
||||||
// goModuleVersion is the tagged release for this module
|
// goModuleVersion is the tagged release for this module
|
||||||
const goModuleVersion = "1.16.24"
|
const goModuleVersion = "1.17.1"
|
||||||
|
|
|
||||||
|
|
@ -311,6 +311,7 @@ func (u Uploader) Upload(ctx context.Context, input *s3.PutObjectInput, opts ...
|
||||||
clientOptions = append(clientOptions, func(o *s3.Options) {
|
clientOptions = append(clientOptions, func(o *s3.Options) {
|
||||||
o.APIOptions = append(o.APIOptions,
|
o.APIOptions = append(o.APIOptions,
|
||||||
middleware.AddSDKAgentKey(middleware.FeatureMetadata, userAgentKey),
|
middleware.AddSDKAgentKey(middleware.FeatureMetadata, userAgentKey),
|
||||||
|
addFeatureUserAgent, // yes, there are two of these
|
||||||
func(s *smithymiddleware.Stack) error {
|
func(s *smithymiddleware.Stack) error {
|
||||||
return s.Finalize.Insert(&setS3ExpressDefaultChecksum{}, "ResolveEndpointV2", smithymiddleware.After)
|
return s.Finalize.Insert(&setS3ExpressDefaultChecksum{}, "ResolveEndpointV2", smithymiddleware.After)
|
||||||
},
|
},
|
||||||
|
|
@ -853,3 +854,31 @@ func (*setS3ExpressDefaultChecksum) HandleFinalize(
|
||||||
|
|
||||||
return next.HandleFinalize(ctx, in)
|
return next.HandleFinalize(ctx, in)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func addFeatureUserAgent(stack *smithymiddleware.Stack) error {
|
||||||
|
ua, err := getOrAddRequestUserAgent(stack)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
ua.AddUserAgentFeature(middleware.UserAgentFeatureS3Transfer)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func getOrAddRequestUserAgent(stack *smithymiddleware.Stack) (*middleware.RequestUserAgent, error) {
|
||||||
|
id := (*middleware.RequestUserAgent)(nil).ID()
|
||||||
|
mw, ok := stack.Build.Get(id)
|
||||||
|
if !ok {
|
||||||
|
mw = middleware.NewRequestUserAgent()
|
||||||
|
if err := stack.Build.Add(mw, smithymiddleware.After); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ua, ok := mw.(*middleware.RequestUserAgent)
|
||||||
|
if !ok {
|
||||||
|
return nil, fmt.Errorf("%T for %s middleware did not match expected type", mw, id)
|
||||||
|
}
|
||||||
|
|
||||||
|
return ua, nil
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,16 @@
|
||||||
|
# v1.21.1 (2024-06-19)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
|
# v1.21.0 (2024-06-18)
|
||||||
|
|
||||||
|
* **Feature**: Track usage of various AWS SDK features in user-agent string.
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
|
# v1.20.12 (2024-06-17)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
# v1.20.11 (2024-06-07)
|
# v1.20.11 (2024-06-07)
|
||||||
|
|
||||||
* **Bug Fix**: Add clock skew correction on all service clients
|
* **Bug Fix**: Add clock skew correction on all service clients
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@ import (
|
||||||
internalConfig "github.com/aws/aws-sdk-go-v2/internal/configsources"
|
internalConfig "github.com/aws/aws-sdk-go-v2/internal/configsources"
|
||||||
internalmiddleware "github.com/aws/aws-sdk-go-v2/internal/middleware"
|
internalmiddleware "github.com/aws/aws-sdk-go-v2/internal/middleware"
|
||||||
smithy "github.com/aws/smithy-go"
|
smithy "github.com/aws/smithy-go"
|
||||||
|
smithyauth "github.com/aws/smithy-go/auth"
|
||||||
smithydocument "github.com/aws/smithy-go/document"
|
smithydocument "github.com/aws/smithy-go/document"
|
||||||
"github.com/aws/smithy-go/logging"
|
"github.com/aws/smithy-go/logging"
|
||||||
"github.com/aws/smithy-go/middleware"
|
"github.com/aws/smithy-go/middleware"
|
||||||
|
|
@ -236,15 +237,16 @@ func setResolvedDefaultsMode(o *Options) {
|
||||||
// NewFromConfig returns a new client from the provided config.
|
// NewFromConfig returns a new client from the provided config.
|
||||||
func NewFromConfig(cfg aws.Config, optFns ...func(*Options)) *Client {
|
func NewFromConfig(cfg aws.Config, optFns ...func(*Options)) *Client {
|
||||||
opts := Options{
|
opts := Options{
|
||||||
Region: cfg.Region,
|
Region: cfg.Region,
|
||||||
DefaultsMode: cfg.DefaultsMode,
|
DefaultsMode: cfg.DefaultsMode,
|
||||||
RuntimeEnvironment: cfg.RuntimeEnvironment,
|
RuntimeEnvironment: cfg.RuntimeEnvironment,
|
||||||
HTTPClient: cfg.HTTPClient,
|
HTTPClient: cfg.HTTPClient,
|
||||||
Credentials: cfg.Credentials,
|
Credentials: cfg.Credentials,
|
||||||
APIOptions: cfg.APIOptions,
|
APIOptions: cfg.APIOptions,
|
||||||
Logger: cfg.Logger,
|
Logger: cfg.Logger,
|
||||||
ClientLogMode: cfg.ClientLogMode,
|
ClientLogMode: cfg.ClientLogMode,
|
||||||
AppID: cfg.AppID,
|
AppID: cfg.AppID,
|
||||||
|
AccountIDEndpointMode: cfg.AccountIDEndpointMode,
|
||||||
}
|
}
|
||||||
resolveAWSRetryerProvider(cfg, &opts)
|
resolveAWSRetryerProvider(cfg, &opts)
|
||||||
resolveAWSRetryMaxAttempts(cfg, &opts)
|
resolveAWSRetryMaxAttempts(cfg, &opts)
|
||||||
|
|
@ -448,6 +450,30 @@ func addContentSHA256Header(stack *middleware.Stack) error {
|
||||||
return stack.Finalize.Insert(&v4.ContentSHA256Header{}, (*v4.ComputePayloadSHA256)(nil).ID(), middleware.After)
|
return stack.Finalize.Insert(&v4.ContentSHA256Header{}, (*v4.ComputePayloadSHA256)(nil).ID(), middleware.After)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func addIsWaiterUserAgent(o *Options) {
|
||||||
|
o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error {
|
||||||
|
ua, err := getOrAddRequestUserAgent(stack)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
ua.AddUserAgentFeature(awsmiddleware.UserAgentFeatureWaiter)
|
||||||
|
return nil
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
func addIsPaginatorUserAgent(o *Options) {
|
||||||
|
o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error {
|
||||||
|
ua, err := getOrAddRequestUserAgent(stack)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
ua.AddUserAgentFeature(awsmiddleware.UserAgentFeaturePaginator)
|
||||||
|
return nil
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
func addRetry(stack *middleware.Stack, o Options) error {
|
func addRetry(stack *middleware.Stack, o Options) error {
|
||||||
attempt := retry.NewAttemptMiddleware(o.Retryer, smithyhttp.RequestCloner, func(m *retry.Attempt) {
|
attempt := retry.NewAttemptMiddleware(o.Retryer, smithyhttp.RequestCloner, func(m *retry.Attempt) {
|
||||||
m.LogAttempts = o.ClientLogMode.IsRetries()
|
m.LogAttempts = o.ClientLogMode.IsRetries()
|
||||||
|
|
@ -491,6 +517,18 @@ func resolveUseFIPSEndpoint(cfg aws.Config, o *Options) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func resolveAccountID(identity smithyauth.Identity, mode aws.AccountIDEndpointMode) *string {
|
||||||
|
if mode == aws.AccountIDEndpointModeDisabled {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
if ca, ok := identity.(*internalauthsmithy.CredentialsAdapter); ok && ca.Credentials.AccountID != "" {
|
||||||
|
return aws.String(ca.Credentials.AccountID)
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func addTimeOffsetBuild(stack *middleware.Stack, c *Client) error {
|
func addTimeOffsetBuild(stack *middleware.Stack, c *Client) error {
|
||||||
mw := internalmiddleware.AddTimeOffsetMiddleware{Offset: c.timeOffset}
|
mw := internalmiddleware.AddTimeOffsetMiddleware{Offset: c.timeOffset}
|
||||||
if err := stack.Build.Add(&mw, middleware.After); err != nil {
|
if err := stack.Build.Add(&mw, middleware.After); err != nil {
|
||||||
|
|
@ -502,6 +540,40 @@ func initializeTimeOffsetResolver(c *Client) {
|
||||||
c.timeOffset = new(atomic.Int64)
|
c.timeOffset = new(atomic.Int64)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func checkAccountID(identity smithyauth.Identity, mode aws.AccountIDEndpointMode) error {
|
||||||
|
switch mode {
|
||||||
|
case aws.AccountIDEndpointModeUnset:
|
||||||
|
case aws.AccountIDEndpointModePreferred:
|
||||||
|
case aws.AccountIDEndpointModeDisabled:
|
||||||
|
case aws.AccountIDEndpointModeRequired:
|
||||||
|
if ca, ok := identity.(*internalauthsmithy.CredentialsAdapter); !ok {
|
||||||
|
return fmt.Errorf("accountID is required but not set")
|
||||||
|
} else if ca.Credentials.AccountID == "" {
|
||||||
|
return fmt.Errorf("accountID is required but not set")
|
||||||
|
}
|
||||||
|
// default check in case invalid mode is configured through request config
|
||||||
|
default:
|
||||||
|
return fmt.Errorf("invalid accountID endpoint mode %s, must be preferred/required/disabled", mode)
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func addUserAgentRetryMode(stack *middleware.Stack, options Options) error {
|
||||||
|
ua, err := getOrAddRequestUserAgent(stack)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
switch options.Retryer.(type) {
|
||||||
|
case *retry.Standard:
|
||||||
|
ua.AddUserAgentFeature(awsmiddleware.UserAgentFeatureRetryModeStandard)
|
||||||
|
case *retry.AdaptiveMode:
|
||||||
|
ua.AddUserAgentFeature(awsmiddleware.UserAgentFeatureRetryModeAdaptive)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func addRecursionDetection(stack *middleware.Stack) error {
|
func addRecursionDetection(stack *middleware.Stack) error {
|
||||||
return stack.Build.Add(&awsmiddleware.RecursionDetection{}, middleware.After)
|
return stack.Build.Add(&awsmiddleware.RecursionDetection{}, middleware.After)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -117,6 +117,9 @@ func (c *Client) addOperationGetRoleCredentialsMiddlewares(stack *middleware.Sta
|
||||||
if err = addTimeOffsetBuild(stack, c); err != nil {
|
if err = addTimeOffsetBuild(stack, c); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
if err = addUserAgentRetryMode(stack, options); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
if err = addOpGetRoleCredentialsValidationMiddleware(stack); err != nil {
|
if err = addOpGetRoleCredentialsValidationMiddleware(stack); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -122,6 +122,9 @@ func (c *Client) addOperationListAccountRolesMiddlewares(stack *middleware.Stack
|
||||||
if err = addTimeOffsetBuild(stack, c); err != nil {
|
if err = addTimeOffsetBuild(stack, c); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
if err = addUserAgentRetryMode(stack, options); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
if err = addOpListAccountRolesValidationMiddleware(stack); err != nil {
|
if err = addOpListAccountRolesValidationMiddleware(stack); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
@ -146,14 +149,6 @@ func (c *Client) addOperationListAccountRolesMiddlewares(stack *middleware.Stack
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// ListAccountRolesAPIClient is a client that implements the ListAccountRoles
|
|
||||||
// operation.
|
|
||||||
type ListAccountRolesAPIClient interface {
|
|
||||||
ListAccountRoles(context.Context, *ListAccountRolesInput, ...func(*Options)) (*ListAccountRolesOutput, error)
|
|
||||||
}
|
|
||||||
|
|
||||||
var _ ListAccountRolesAPIClient = (*Client)(nil)
|
|
||||||
|
|
||||||
// ListAccountRolesPaginatorOptions is the paginator options for ListAccountRoles
|
// ListAccountRolesPaginatorOptions is the paginator options for ListAccountRoles
|
||||||
type ListAccountRolesPaginatorOptions struct {
|
type ListAccountRolesPaginatorOptions struct {
|
||||||
// The number of items that clients can request per page.
|
// The number of items that clients can request per page.
|
||||||
|
|
@ -217,6 +212,9 @@ func (p *ListAccountRolesPaginator) NextPage(ctx context.Context, optFns ...func
|
||||||
}
|
}
|
||||||
params.MaxResults = limit
|
params.MaxResults = limit
|
||||||
|
|
||||||
|
optFns = append([]func(*Options){
|
||||||
|
addIsPaginatorUserAgent,
|
||||||
|
}, optFns...)
|
||||||
result, err := p.client.ListAccountRoles(ctx, ¶ms, optFns...)
|
result, err := p.client.ListAccountRoles(ctx, ¶ms, optFns...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
|
@ -236,6 +234,14 @@ func (p *ListAccountRolesPaginator) NextPage(ctx context.Context, optFns ...func
|
||||||
return result, nil
|
return result, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ListAccountRolesAPIClient is a client that implements the ListAccountRoles
|
||||||
|
// operation.
|
||||||
|
type ListAccountRolesAPIClient interface {
|
||||||
|
ListAccountRoles(context.Context, *ListAccountRolesInput, ...func(*Options)) (*ListAccountRolesOutput, error)
|
||||||
|
}
|
||||||
|
|
||||||
|
var _ ListAccountRolesAPIClient = (*Client)(nil)
|
||||||
|
|
||||||
func newServiceMetadataMiddleware_opListAccountRoles(region string) *awsmiddleware.RegisterServiceMetadata {
|
func newServiceMetadataMiddleware_opListAccountRoles(region string) *awsmiddleware.RegisterServiceMetadata {
|
||||||
return &awsmiddleware.RegisterServiceMetadata{
|
return &awsmiddleware.RegisterServiceMetadata{
|
||||||
Region: region,
|
Region: region,
|
||||||
|
|
|
||||||
|
|
@ -121,6 +121,9 @@ func (c *Client) addOperationListAccountsMiddlewares(stack *middleware.Stack, op
|
||||||
if err = addTimeOffsetBuild(stack, c); err != nil {
|
if err = addTimeOffsetBuild(stack, c); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
if err = addUserAgentRetryMode(stack, options); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
if err = addOpListAccountsValidationMiddleware(stack); err != nil {
|
if err = addOpListAccountsValidationMiddleware(stack); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
@ -145,13 +148,6 @@ func (c *Client) addOperationListAccountsMiddlewares(stack *middleware.Stack, op
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// ListAccountsAPIClient is a client that implements the ListAccounts operation.
|
|
||||||
type ListAccountsAPIClient interface {
|
|
||||||
ListAccounts(context.Context, *ListAccountsInput, ...func(*Options)) (*ListAccountsOutput, error)
|
|
||||||
}
|
|
||||||
|
|
||||||
var _ ListAccountsAPIClient = (*Client)(nil)
|
|
||||||
|
|
||||||
// ListAccountsPaginatorOptions is the paginator options for ListAccounts
|
// ListAccountsPaginatorOptions is the paginator options for ListAccounts
|
||||||
type ListAccountsPaginatorOptions struct {
|
type ListAccountsPaginatorOptions struct {
|
||||||
// This is the number of items clients can request per page.
|
// This is the number of items clients can request per page.
|
||||||
|
|
@ -215,6 +211,9 @@ func (p *ListAccountsPaginator) NextPage(ctx context.Context, optFns ...func(*Op
|
||||||
}
|
}
|
||||||
params.MaxResults = limit
|
params.MaxResults = limit
|
||||||
|
|
||||||
|
optFns = append([]func(*Options){
|
||||||
|
addIsPaginatorUserAgent,
|
||||||
|
}, optFns...)
|
||||||
result, err := p.client.ListAccounts(ctx, ¶ms, optFns...)
|
result, err := p.client.ListAccounts(ctx, ¶ms, optFns...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
|
@ -234,6 +233,13 @@ func (p *ListAccountsPaginator) NextPage(ctx context.Context, optFns ...func(*Op
|
||||||
return result, nil
|
return result, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ListAccountsAPIClient is a client that implements the ListAccounts operation.
|
||||||
|
type ListAccountsAPIClient interface {
|
||||||
|
ListAccounts(context.Context, *ListAccountsInput, ...func(*Options)) (*ListAccountsOutput, error)
|
||||||
|
}
|
||||||
|
|
||||||
|
var _ ListAccountsAPIClient = (*Client)(nil)
|
||||||
|
|
||||||
func newServiceMetadataMiddleware_opListAccounts(region string) *awsmiddleware.RegisterServiceMetadata {
|
func newServiceMetadataMiddleware_opListAccounts(region string) *awsmiddleware.RegisterServiceMetadata {
|
||||||
return &awsmiddleware.RegisterServiceMetadata{
|
return &awsmiddleware.RegisterServiceMetadata{
|
||||||
Region: region,
|
Region: region,
|
||||||
|
|
|
||||||
|
|
@ -116,6 +116,9 @@ func (c *Client) addOperationLogoutMiddlewares(stack *middleware.Stack, options
|
||||||
if err = addTimeOffsetBuild(stack, c); err != nil {
|
if err = addTimeOffsetBuild(stack, c); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
if err = addUserAgentRetryMode(stack, options); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
if err = addOpLogoutValidationMiddleware(stack); err != nil {
|
if err = addOpLogoutValidationMiddleware(stack); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ import (
|
||||||
smithyhttp "github.com/aws/smithy-go/transport/http"
|
smithyhttp "github.com/aws/smithy-go/transport/http"
|
||||||
)
|
)
|
||||||
|
|
||||||
func bindAuthParamsRegion(params *AuthResolverParameters, _ interface{}, options Options) {
|
func bindAuthParamsRegion(_ interface{}, params *AuthResolverParameters, _ interface{}, options Options) {
|
||||||
params.Region = options.Region
|
params.Region = options.Region
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -90,12 +90,12 @@ type AuthResolverParameters struct {
|
||||||
Region string
|
Region string
|
||||||
}
|
}
|
||||||
|
|
||||||
func bindAuthResolverParams(operation string, input interface{}, options Options) *AuthResolverParameters {
|
func bindAuthResolverParams(ctx context.Context, operation string, input interface{}, options Options) *AuthResolverParameters {
|
||||||
params := &AuthResolverParameters{
|
params := &AuthResolverParameters{
|
||||||
Operation: operation,
|
Operation: operation,
|
||||||
}
|
}
|
||||||
|
|
||||||
bindAuthParamsRegion(params, input, options)
|
bindAuthParamsRegion(ctx, params, input, options)
|
||||||
|
|
||||||
return params
|
return params
|
||||||
}
|
}
|
||||||
|
|
@ -169,7 +169,7 @@ func (*resolveAuthSchemeMiddleware) ID() string {
|
||||||
func (m *resolveAuthSchemeMiddleware) HandleFinalize(ctx context.Context, in middleware.FinalizeInput, next middleware.FinalizeHandler) (
|
func (m *resolveAuthSchemeMiddleware) HandleFinalize(ctx context.Context, in middleware.FinalizeInput, next middleware.FinalizeHandler) (
|
||||||
out middleware.FinalizeOutput, metadata middleware.Metadata, err error,
|
out middleware.FinalizeOutput, metadata middleware.Metadata, err error,
|
||||||
) {
|
) {
|
||||||
params := bindAuthResolverParams(m.operation, getOperationInput(ctx), m.options)
|
params := bindAuthResolverParams(ctx, m.operation, getOperationInput(ctx), m.options)
|
||||||
options, err := m.options.AuthSchemeResolver.ResolveAuthSchemes(ctx, params)
|
options, err := m.options.AuthSchemeResolver.ResolveAuthSchemes(ctx, params)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return out, metadata, fmt.Errorf("resolve auth scheme: %w", err)
|
return out, metadata, fmt.Errorf("resolve auth scheme: %w", err)
|
||||||
|
|
|
||||||
|
|
@ -465,7 +465,7 @@ type endpointParamsBinder interface {
|
||||||
bindEndpointParams(*EndpointParameters)
|
bindEndpointParams(*EndpointParameters)
|
||||||
}
|
}
|
||||||
|
|
||||||
func bindEndpointParams(input interface{}, options Options) *EndpointParameters {
|
func bindEndpointParams(ctx context.Context, input interface{}, options Options) *EndpointParameters {
|
||||||
params := &EndpointParameters{}
|
params := &EndpointParameters{}
|
||||||
|
|
||||||
params.Region = bindRegion(options.Region)
|
params.Region = bindRegion(options.Region)
|
||||||
|
|
@ -495,6 +495,10 @@ func (m *resolveEndpointV2Middleware) HandleFinalize(ctx context.Context, in mid
|
||||||
return next.HandleFinalize(ctx, in)
|
return next.HandleFinalize(ctx, in)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if err := checkAccountID(getIdentity(ctx), m.options.AccountIDEndpointMode); err != nil {
|
||||||
|
return out, metadata, fmt.Errorf("invalid accountID set: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
req, ok := in.Request.(*smithyhttp.Request)
|
req, ok := in.Request.(*smithyhttp.Request)
|
||||||
if !ok {
|
if !ok {
|
||||||
return out, metadata, fmt.Errorf("unknown transport type %T", in.Request)
|
return out, metadata, fmt.Errorf("unknown transport type %T", in.Request)
|
||||||
|
|
@ -504,7 +508,7 @@ func (m *resolveEndpointV2Middleware) HandleFinalize(ctx context.Context, in mid
|
||||||
return out, metadata, fmt.Errorf("expected endpoint resolver to not be nil")
|
return out, metadata, fmt.Errorf("expected endpoint resolver to not be nil")
|
||||||
}
|
}
|
||||||
|
|
||||||
params := bindEndpointParams(getOperationInput(ctx), m.options)
|
params := bindEndpointParams(ctx, getOperationInput(ctx), m.options)
|
||||||
endpt, err := m.options.EndpointResolverV2.ResolveEndpoint(ctx, *params)
|
endpt, err := m.options.EndpointResolverV2.ResolveEndpoint(ctx, *params)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return out, metadata, fmt.Errorf("failed to resolve service endpoint, %w", err)
|
return out, metadata, fmt.Errorf("failed to resolve service endpoint, %w", err)
|
||||||
|
|
|
||||||
|
|
@ -3,4 +3,4 @@
|
||||||
package sso
|
package sso
|
||||||
|
|
||||||
// goModuleVersion is the tagged release for this module
|
// goModuleVersion is the tagged release for this module
|
||||||
const goModuleVersion = "1.20.11"
|
const goModuleVersion = "1.21.1"
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,9 @@ type Options struct {
|
||||||
// modify this list for per operation behavior.
|
// modify this list for per operation behavior.
|
||||||
APIOptions []func(*middleware.Stack) error
|
APIOptions []func(*middleware.Stack) error
|
||||||
|
|
||||||
|
// Indicates how aws account ID is applied in endpoint2.0 routing
|
||||||
|
AccountIDEndpointMode aws.AccountIDEndpointMode
|
||||||
|
|
||||||
// The optional application specific identifier appended to the User-Agent header.
|
// The optional application specific identifier appended to the User-Agent header.
|
||||||
AppID string
|
AppID string
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,16 @@
|
||||||
|
# v1.25.1 (2024-06-19)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
|
# v1.25.0 (2024-06-18)
|
||||||
|
|
||||||
|
* **Feature**: Track usage of various AWS SDK features in user-agent string.
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
|
# v1.24.6 (2024-06-17)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
# v1.24.5 (2024-06-07)
|
# v1.24.5 (2024-06-07)
|
||||||
|
|
||||||
* **Bug Fix**: Add clock skew correction on all service clients
|
* **Bug Fix**: Add clock skew correction on all service clients
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@ import (
|
||||||
internalConfig "github.com/aws/aws-sdk-go-v2/internal/configsources"
|
internalConfig "github.com/aws/aws-sdk-go-v2/internal/configsources"
|
||||||
internalmiddleware "github.com/aws/aws-sdk-go-v2/internal/middleware"
|
internalmiddleware "github.com/aws/aws-sdk-go-v2/internal/middleware"
|
||||||
smithy "github.com/aws/smithy-go"
|
smithy "github.com/aws/smithy-go"
|
||||||
|
smithyauth "github.com/aws/smithy-go/auth"
|
||||||
smithydocument "github.com/aws/smithy-go/document"
|
smithydocument "github.com/aws/smithy-go/document"
|
||||||
"github.com/aws/smithy-go/logging"
|
"github.com/aws/smithy-go/logging"
|
||||||
"github.com/aws/smithy-go/middleware"
|
"github.com/aws/smithy-go/middleware"
|
||||||
|
|
@ -236,15 +237,16 @@ func setResolvedDefaultsMode(o *Options) {
|
||||||
// NewFromConfig returns a new client from the provided config.
|
// NewFromConfig returns a new client from the provided config.
|
||||||
func NewFromConfig(cfg aws.Config, optFns ...func(*Options)) *Client {
|
func NewFromConfig(cfg aws.Config, optFns ...func(*Options)) *Client {
|
||||||
opts := Options{
|
opts := Options{
|
||||||
Region: cfg.Region,
|
Region: cfg.Region,
|
||||||
DefaultsMode: cfg.DefaultsMode,
|
DefaultsMode: cfg.DefaultsMode,
|
||||||
RuntimeEnvironment: cfg.RuntimeEnvironment,
|
RuntimeEnvironment: cfg.RuntimeEnvironment,
|
||||||
HTTPClient: cfg.HTTPClient,
|
HTTPClient: cfg.HTTPClient,
|
||||||
Credentials: cfg.Credentials,
|
Credentials: cfg.Credentials,
|
||||||
APIOptions: cfg.APIOptions,
|
APIOptions: cfg.APIOptions,
|
||||||
Logger: cfg.Logger,
|
Logger: cfg.Logger,
|
||||||
ClientLogMode: cfg.ClientLogMode,
|
ClientLogMode: cfg.ClientLogMode,
|
||||||
AppID: cfg.AppID,
|
AppID: cfg.AppID,
|
||||||
|
AccountIDEndpointMode: cfg.AccountIDEndpointMode,
|
||||||
}
|
}
|
||||||
resolveAWSRetryerProvider(cfg, &opts)
|
resolveAWSRetryerProvider(cfg, &opts)
|
||||||
resolveAWSRetryMaxAttempts(cfg, &opts)
|
resolveAWSRetryMaxAttempts(cfg, &opts)
|
||||||
|
|
@ -448,6 +450,30 @@ func addContentSHA256Header(stack *middleware.Stack) error {
|
||||||
return stack.Finalize.Insert(&v4.ContentSHA256Header{}, (*v4.ComputePayloadSHA256)(nil).ID(), middleware.After)
|
return stack.Finalize.Insert(&v4.ContentSHA256Header{}, (*v4.ComputePayloadSHA256)(nil).ID(), middleware.After)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func addIsWaiterUserAgent(o *Options) {
|
||||||
|
o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error {
|
||||||
|
ua, err := getOrAddRequestUserAgent(stack)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
ua.AddUserAgentFeature(awsmiddleware.UserAgentFeatureWaiter)
|
||||||
|
return nil
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
func addIsPaginatorUserAgent(o *Options) {
|
||||||
|
o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error {
|
||||||
|
ua, err := getOrAddRequestUserAgent(stack)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
ua.AddUserAgentFeature(awsmiddleware.UserAgentFeaturePaginator)
|
||||||
|
return nil
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
func addRetry(stack *middleware.Stack, o Options) error {
|
func addRetry(stack *middleware.Stack, o Options) error {
|
||||||
attempt := retry.NewAttemptMiddleware(o.Retryer, smithyhttp.RequestCloner, func(m *retry.Attempt) {
|
attempt := retry.NewAttemptMiddleware(o.Retryer, smithyhttp.RequestCloner, func(m *retry.Attempt) {
|
||||||
m.LogAttempts = o.ClientLogMode.IsRetries()
|
m.LogAttempts = o.ClientLogMode.IsRetries()
|
||||||
|
|
@ -491,6 +517,18 @@ func resolveUseFIPSEndpoint(cfg aws.Config, o *Options) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func resolveAccountID(identity smithyauth.Identity, mode aws.AccountIDEndpointMode) *string {
|
||||||
|
if mode == aws.AccountIDEndpointModeDisabled {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
if ca, ok := identity.(*internalauthsmithy.CredentialsAdapter); ok && ca.Credentials.AccountID != "" {
|
||||||
|
return aws.String(ca.Credentials.AccountID)
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func addTimeOffsetBuild(stack *middleware.Stack, c *Client) error {
|
func addTimeOffsetBuild(stack *middleware.Stack, c *Client) error {
|
||||||
mw := internalmiddleware.AddTimeOffsetMiddleware{Offset: c.timeOffset}
|
mw := internalmiddleware.AddTimeOffsetMiddleware{Offset: c.timeOffset}
|
||||||
if err := stack.Build.Add(&mw, middleware.After); err != nil {
|
if err := stack.Build.Add(&mw, middleware.After); err != nil {
|
||||||
|
|
@ -502,6 +540,40 @@ func initializeTimeOffsetResolver(c *Client) {
|
||||||
c.timeOffset = new(atomic.Int64)
|
c.timeOffset = new(atomic.Int64)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func checkAccountID(identity smithyauth.Identity, mode aws.AccountIDEndpointMode) error {
|
||||||
|
switch mode {
|
||||||
|
case aws.AccountIDEndpointModeUnset:
|
||||||
|
case aws.AccountIDEndpointModePreferred:
|
||||||
|
case aws.AccountIDEndpointModeDisabled:
|
||||||
|
case aws.AccountIDEndpointModeRequired:
|
||||||
|
if ca, ok := identity.(*internalauthsmithy.CredentialsAdapter); !ok {
|
||||||
|
return fmt.Errorf("accountID is required but not set")
|
||||||
|
} else if ca.Credentials.AccountID == "" {
|
||||||
|
return fmt.Errorf("accountID is required but not set")
|
||||||
|
}
|
||||||
|
// default check in case invalid mode is configured through request config
|
||||||
|
default:
|
||||||
|
return fmt.Errorf("invalid accountID endpoint mode %s, must be preferred/required/disabled", mode)
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func addUserAgentRetryMode(stack *middleware.Stack, options Options) error {
|
||||||
|
ua, err := getOrAddRequestUserAgent(stack)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
switch options.Retryer.(type) {
|
||||||
|
case *retry.Standard:
|
||||||
|
ua.AddUserAgentFeature(awsmiddleware.UserAgentFeatureRetryModeStandard)
|
||||||
|
case *retry.AdaptiveMode:
|
||||||
|
ua.AddUserAgentFeature(awsmiddleware.UserAgentFeatureRetryModeAdaptive)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func addRecursionDetection(stack *middleware.Stack) error {
|
func addRecursionDetection(stack *middleware.Stack) error {
|
||||||
return stack.Build.Add(&awsmiddleware.RecursionDetection{}, middleware.After)
|
return stack.Build.Add(&awsmiddleware.RecursionDetection{}, middleware.After)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -189,6 +189,9 @@ func (c *Client) addOperationCreateTokenMiddlewares(stack *middleware.Stack, opt
|
||||||
if err = addTimeOffsetBuild(stack, c); err != nil {
|
if err = addTimeOffsetBuild(stack, c); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
if err = addUserAgentRetryMode(stack, options); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
if err = addOpCreateTokenValidationMiddleware(stack); err != nil {
|
if err = addOpCreateTokenValidationMiddleware(stack); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
|
||||||
3
vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/api_op_CreateTokenWithIAM.go
generated
vendored
3
vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/api_op_CreateTokenWithIAM.go
generated
vendored
|
|
@ -220,6 +220,9 @@ func (c *Client) addOperationCreateTokenWithIAMMiddlewares(stack *middleware.Sta
|
||||||
if err = addTimeOffsetBuild(stack, c); err != nil {
|
if err = addTimeOffsetBuild(stack, c); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
if err = addUserAgentRetryMode(stack, options); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
if err = addOpCreateTokenWithIAMValidationMiddleware(stack); err != nil {
|
if err = addOpCreateTokenWithIAMValidationMiddleware(stack); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -150,6 +150,9 @@ func (c *Client) addOperationRegisterClientMiddlewares(stack *middleware.Stack,
|
||||||
if err = addTimeOffsetBuild(stack, c); err != nil {
|
if err = addTimeOffsetBuild(stack, c); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
if err = addUserAgentRetryMode(stack, options); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
if err = addOpRegisterClientValidationMiddleware(stack); err != nil {
|
if err = addOpRegisterClientValidationMiddleware(stack); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -140,6 +140,9 @@ func (c *Client) addOperationStartDeviceAuthorizationMiddlewares(stack *middlewa
|
||||||
if err = addTimeOffsetBuild(stack, c); err != nil {
|
if err = addTimeOffsetBuild(stack, c); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
if err = addUserAgentRetryMode(stack, options); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
if err = addOpStartDeviceAuthorizationValidationMiddleware(stack); err != nil {
|
if err = addOpStartDeviceAuthorizationValidationMiddleware(stack); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ import (
|
||||||
smithyhttp "github.com/aws/smithy-go/transport/http"
|
smithyhttp "github.com/aws/smithy-go/transport/http"
|
||||||
)
|
)
|
||||||
|
|
||||||
func bindAuthParamsRegion(params *AuthResolverParameters, _ interface{}, options Options) {
|
func bindAuthParamsRegion(_ interface{}, params *AuthResolverParameters, _ interface{}, options Options) {
|
||||||
params.Region = options.Region
|
params.Region = options.Region
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -90,12 +90,12 @@ type AuthResolverParameters struct {
|
||||||
Region string
|
Region string
|
||||||
}
|
}
|
||||||
|
|
||||||
func bindAuthResolverParams(operation string, input interface{}, options Options) *AuthResolverParameters {
|
func bindAuthResolverParams(ctx context.Context, operation string, input interface{}, options Options) *AuthResolverParameters {
|
||||||
params := &AuthResolverParameters{
|
params := &AuthResolverParameters{
|
||||||
Operation: operation,
|
Operation: operation,
|
||||||
}
|
}
|
||||||
|
|
||||||
bindAuthParamsRegion(params, input, options)
|
bindAuthParamsRegion(ctx, params, input, options)
|
||||||
|
|
||||||
return params
|
return params
|
||||||
}
|
}
|
||||||
|
|
@ -163,7 +163,7 @@ func (*resolveAuthSchemeMiddleware) ID() string {
|
||||||
func (m *resolveAuthSchemeMiddleware) HandleFinalize(ctx context.Context, in middleware.FinalizeInput, next middleware.FinalizeHandler) (
|
func (m *resolveAuthSchemeMiddleware) HandleFinalize(ctx context.Context, in middleware.FinalizeInput, next middleware.FinalizeHandler) (
|
||||||
out middleware.FinalizeOutput, metadata middleware.Metadata, err error,
|
out middleware.FinalizeOutput, metadata middleware.Metadata, err error,
|
||||||
) {
|
) {
|
||||||
params := bindAuthResolverParams(m.operation, getOperationInput(ctx), m.options)
|
params := bindAuthResolverParams(ctx, m.operation, getOperationInput(ctx), m.options)
|
||||||
options, err := m.options.AuthSchemeResolver.ResolveAuthSchemes(ctx, params)
|
options, err := m.options.AuthSchemeResolver.ResolveAuthSchemes(ctx, params)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return out, metadata, fmt.Errorf("resolve auth scheme: %w", err)
|
return out, metadata, fmt.Errorf("resolve auth scheme: %w", err)
|
||||||
|
|
|
||||||
|
|
@ -465,7 +465,7 @@ type endpointParamsBinder interface {
|
||||||
bindEndpointParams(*EndpointParameters)
|
bindEndpointParams(*EndpointParameters)
|
||||||
}
|
}
|
||||||
|
|
||||||
func bindEndpointParams(input interface{}, options Options) *EndpointParameters {
|
func bindEndpointParams(ctx context.Context, input interface{}, options Options) *EndpointParameters {
|
||||||
params := &EndpointParameters{}
|
params := &EndpointParameters{}
|
||||||
|
|
||||||
params.Region = bindRegion(options.Region)
|
params.Region = bindRegion(options.Region)
|
||||||
|
|
@ -495,6 +495,10 @@ func (m *resolveEndpointV2Middleware) HandleFinalize(ctx context.Context, in mid
|
||||||
return next.HandleFinalize(ctx, in)
|
return next.HandleFinalize(ctx, in)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if err := checkAccountID(getIdentity(ctx), m.options.AccountIDEndpointMode); err != nil {
|
||||||
|
return out, metadata, fmt.Errorf("invalid accountID set: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
req, ok := in.Request.(*smithyhttp.Request)
|
req, ok := in.Request.(*smithyhttp.Request)
|
||||||
if !ok {
|
if !ok {
|
||||||
return out, metadata, fmt.Errorf("unknown transport type %T", in.Request)
|
return out, metadata, fmt.Errorf("unknown transport type %T", in.Request)
|
||||||
|
|
@ -504,7 +508,7 @@ func (m *resolveEndpointV2Middleware) HandleFinalize(ctx context.Context, in mid
|
||||||
return out, metadata, fmt.Errorf("expected endpoint resolver to not be nil")
|
return out, metadata, fmt.Errorf("expected endpoint resolver to not be nil")
|
||||||
}
|
}
|
||||||
|
|
||||||
params := bindEndpointParams(getOperationInput(ctx), m.options)
|
params := bindEndpointParams(ctx, getOperationInput(ctx), m.options)
|
||||||
endpt, err := m.options.EndpointResolverV2.ResolveEndpoint(ctx, *params)
|
endpt, err := m.options.EndpointResolverV2.ResolveEndpoint(ctx, *params)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return out, metadata, fmt.Errorf("failed to resolve service endpoint, %w", err)
|
return out, metadata, fmt.Errorf("failed to resolve service endpoint, %w", err)
|
||||||
|
|
|
||||||
|
|
@ -3,4 +3,4 @@
|
||||||
package ssooidc
|
package ssooidc
|
||||||
|
|
||||||
// goModuleVersion is the tagged release for this module
|
// goModuleVersion is the tagged release for this module
|
||||||
const goModuleVersion = "1.24.5"
|
const goModuleVersion = "1.25.1"
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,9 @@ type Options struct {
|
||||||
// modify this list for per operation behavior.
|
// modify this list for per operation behavior.
|
||||||
APIOptions []func(*middleware.Stack) error
|
APIOptions []func(*middleware.Stack) error
|
||||||
|
|
||||||
|
// Indicates how aws account ID is applied in endpoint2.0 routing
|
||||||
|
AccountIDEndpointMode aws.AccountIDEndpointMode
|
||||||
|
|
||||||
// The optional application specific identifier appended to the User-Agent header.
|
// The optional application specific identifier appended to the User-Agent header.
|
||||||
AppID string
|
AppID string
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,16 @@
|
||||||
|
# v1.29.1 (2024-06-19)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
|
# v1.29.0 (2024-06-18)
|
||||||
|
|
||||||
|
* **Feature**: Track usage of various AWS SDK features in user-agent string.
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
|
# v1.28.13 (2024-06-17)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
# v1.28.12 (2024-06-07)
|
# v1.28.12 (2024-06-07)
|
||||||
|
|
||||||
* **Bug Fix**: Add clock skew correction on all service clients
|
* **Bug Fix**: Add clock skew correction on all service clients
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,7 @@ import (
|
||||||
acceptencodingcust "github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding"
|
acceptencodingcust "github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding"
|
||||||
presignedurlcust "github.com/aws/aws-sdk-go-v2/service/internal/presigned-url"
|
presignedurlcust "github.com/aws/aws-sdk-go-v2/service/internal/presigned-url"
|
||||||
smithy "github.com/aws/smithy-go"
|
smithy "github.com/aws/smithy-go"
|
||||||
|
smithyauth "github.com/aws/smithy-go/auth"
|
||||||
smithydocument "github.com/aws/smithy-go/document"
|
smithydocument "github.com/aws/smithy-go/document"
|
||||||
"github.com/aws/smithy-go/logging"
|
"github.com/aws/smithy-go/logging"
|
||||||
"github.com/aws/smithy-go/middleware"
|
"github.com/aws/smithy-go/middleware"
|
||||||
|
|
@ -240,15 +241,16 @@ func setResolvedDefaultsMode(o *Options) {
|
||||||
// NewFromConfig returns a new client from the provided config.
|
// NewFromConfig returns a new client from the provided config.
|
||||||
func NewFromConfig(cfg aws.Config, optFns ...func(*Options)) *Client {
|
func NewFromConfig(cfg aws.Config, optFns ...func(*Options)) *Client {
|
||||||
opts := Options{
|
opts := Options{
|
||||||
Region: cfg.Region,
|
Region: cfg.Region,
|
||||||
DefaultsMode: cfg.DefaultsMode,
|
DefaultsMode: cfg.DefaultsMode,
|
||||||
RuntimeEnvironment: cfg.RuntimeEnvironment,
|
RuntimeEnvironment: cfg.RuntimeEnvironment,
|
||||||
HTTPClient: cfg.HTTPClient,
|
HTTPClient: cfg.HTTPClient,
|
||||||
Credentials: cfg.Credentials,
|
Credentials: cfg.Credentials,
|
||||||
APIOptions: cfg.APIOptions,
|
APIOptions: cfg.APIOptions,
|
||||||
Logger: cfg.Logger,
|
Logger: cfg.Logger,
|
||||||
ClientLogMode: cfg.ClientLogMode,
|
ClientLogMode: cfg.ClientLogMode,
|
||||||
AppID: cfg.AppID,
|
AppID: cfg.AppID,
|
||||||
|
AccountIDEndpointMode: cfg.AccountIDEndpointMode,
|
||||||
}
|
}
|
||||||
resolveAWSRetryerProvider(cfg, &opts)
|
resolveAWSRetryerProvider(cfg, &opts)
|
||||||
resolveAWSRetryMaxAttempts(cfg, &opts)
|
resolveAWSRetryMaxAttempts(cfg, &opts)
|
||||||
|
|
@ -452,6 +454,30 @@ func addContentSHA256Header(stack *middleware.Stack) error {
|
||||||
return stack.Finalize.Insert(&v4.ContentSHA256Header{}, (*v4.ComputePayloadSHA256)(nil).ID(), middleware.After)
|
return stack.Finalize.Insert(&v4.ContentSHA256Header{}, (*v4.ComputePayloadSHA256)(nil).ID(), middleware.After)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func addIsWaiterUserAgent(o *Options) {
|
||||||
|
o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error {
|
||||||
|
ua, err := getOrAddRequestUserAgent(stack)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
ua.AddUserAgentFeature(awsmiddleware.UserAgentFeatureWaiter)
|
||||||
|
return nil
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
func addIsPaginatorUserAgent(o *Options) {
|
||||||
|
o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error {
|
||||||
|
ua, err := getOrAddRequestUserAgent(stack)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
ua.AddUserAgentFeature(awsmiddleware.UserAgentFeaturePaginator)
|
||||||
|
return nil
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
func addRetry(stack *middleware.Stack, o Options) error {
|
func addRetry(stack *middleware.Stack, o Options) error {
|
||||||
attempt := retry.NewAttemptMiddleware(o.Retryer, smithyhttp.RequestCloner, func(m *retry.Attempt) {
|
attempt := retry.NewAttemptMiddleware(o.Retryer, smithyhttp.RequestCloner, func(m *retry.Attempt) {
|
||||||
m.LogAttempts = o.ClientLogMode.IsRetries()
|
m.LogAttempts = o.ClientLogMode.IsRetries()
|
||||||
|
|
@ -495,6 +521,18 @@ func resolveUseFIPSEndpoint(cfg aws.Config, o *Options) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func resolveAccountID(identity smithyauth.Identity, mode aws.AccountIDEndpointMode) *string {
|
||||||
|
if mode == aws.AccountIDEndpointModeDisabled {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
if ca, ok := identity.(*internalauthsmithy.CredentialsAdapter); ok && ca.Credentials.AccountID != "" {
|
||||||
|
return aws.String(ca.Credentials.AccountID)
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func addTimeOffsetBuild(stack *middleware.Stack, c *Client) error {
|
func addTimeOffsetBuild(stack *middleware.Stack, c *Client) error {
|
||||||
mw := internalmiddleware.AddTimeOffsetMiddleware{Offset: c.timeOffset}
|
mw := internalmiddleware.AddTimeOffsetMiddleware{Offset: c.timeOffset}
|
||||||
if err := stack.Build.Add(&mw, middleware.After); err != nil {
|
if err := stack.Build.Add(&mw, middleware.After); err != nil {
|
||||||
|
|
@ -506,6 +544,40 @@ func initializeTimeOffsetResolver(c *Client) {
|
||||||
c.timeOffset = new(atomic.Int64)
|
c.timeOffset = new(atomic.Int64)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func checkAccountID(identity smithyauth.Identity, mode aws.AccountIDEndpointMode) error {
|
||||||
|
switch mode {
|
||||||
|
case aws.AccountIDEndpointModeUnset:
|
||||||
|
case aws.AccountIDEndpointModePreferred:
|
||||||
|
case aws.AccountIDEndpointModeDisabled:
|
||||||
|
case aws.AccountIDEndpointModeRequired:
|
||||||
|
if ca, ok := identity.(*internalauthsmithy.CredentialsAdapter); !ok {
|
||||||
|
return fmt.Errorf("accountID is required but not set")
|
||||||
|
} else if ca.Credentials.AccountID == "" {
|
||||||
|
return fmt.Errorf("accountID is required but not set")
|
||||||
|
}
|
||||||
|
// default check in case invalid mode is configured through request config
|
||||||
|
default:
|
||||||
|
return fmt.Errorf("invalid accountID endpoint mode %s, must be preferred/required/disabled", mode)
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func addUserAgentRetryMode(stack *middleware.Stack, options Options) error {
|
||||||
|
ua, err := getOrAddRequestUserAgent(stack)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
switch options.Retryer.(type) {
|
||||||
|
case *retry.Standard:
|
||||||
|
ua.AddUserAgentFeature(awsmiddleware.UserAgentFeatureRetryModeStandard)
|
||||||
|
case *retry.AdaptiveMode:
|
||||||
|
ua.AddUserAgentFeature(awsmiddleware.UserAgentFeatureRetryModeAdaptive)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func addRecursionDetection(stack *middleware.Stack) error {
|
func addRecursionDetection(stack *middleware.Stack) error {
|
||||||
return stack.Build.Add(&awsmiddleware.RecursionDetection{}, middleware.After)
|
return stack.Build.Add(&awsmiddleware.RecursionDetection{}, middleware.After)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -460,6 +460,9 @@ func (c *Client) addOperationAssumeRoleMiddlewares(stack *middleware.Stack, opti
|
||||||
if err = addTimeOffsetBuild(stack, c); err != nil {
|
if err = addTimeOffsetBuild(stack, c); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
if err = addUserAgentRetryMode(stack, options); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
if err = addOpAssumeRoleValidationMiddleware(stack); err != nil {
|
if err = addOpAssumeRoleValidationMiddleware(stack); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -400,6 +400,9 @@ func (c *Client) addOperationAssumeRoleWithSAMLMiddlewares(stack *middleware.Sta
|
||||||
if err = addTimeOffsetBuild(stack, c); err != nil {
|
if err = addTimeOffsetBuild(stack, c); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
if err = addUserAgentRetryMode(stack, options); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
if err = addOpAssumeRoleWithSAMLValidationMiddleware(stack); err != nil {
|
if err = addOpAssumeRoleWithSAMLValidationMiddleware(stack); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
|
||||||
3
vendor/github.com/aws/aws-sdk-go-v2/service/sts/api_op_AssumeRoleWithWebIdentity.go
generated
vendored
3
vendor/github.com/aws/aws-sdk-go-v2/service/sts/api_op_AssumeRoleWithWebIdentity.go
generated
vendored
|
|
@ -411,6 +411,9 @@ func (c *Client) addOperationAssumeRoleWithWebIdentityMiddlewares(stack *middlew
|
||||||
if err = addTimeOffsetBuild(stack, c); err != nil {
|
if err = addTimeOffsetBuild(stack, c); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
if err = addUserAgentRetryMode(stack, options); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
if err = addOpAssumeRoleWithWebIdentityValidationMiddleware(stack); err != nil {
|
if err = addOpAssumeRoleWithWebIdentityValidationMiddleware(stack); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
|
||||||
3
vendor/github.com/aws/aws-sdk-go-v2/service/sts/api_op_DecodeAuthorizationMessage.go
generated
vendored
3
vendor/github.com/aws/aws-sdk-go-v2/service/sts/api_op_DecodeAuthorizationMessage.go
generated
vendored
|
|
@ -141,6 +141,9 @@ func (c *Client) addOperationDecodeAuthorizationMessageMiddlewares(stack *middle
|
||||||
if err = addTimeOffsetBuild(stack, c); err != nil {
|
if err = addTimeOffsetBuild(stack, c); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
if err = addUserAgentRetryMode(stack, options); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
if err = addOpDecodeAuthorizationMessageValidationMiddleware(stack); err != nil {
|
if err = addOpDecodeAuthorizationMessageValidationMiddleware(stack); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -132,6 +132,9 @@ func (c *Client) addOperationGetAccessKeyInfoMiddlewares(stack *middleware.Stack
|
||||||
if err = addTimeOffsetBuild(stack, c); err != nil {
|
if err = addTimeOffsetBuild(stack, c); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
if err = addUserAgentRetryMode(stack, options); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
if err = addOpGetAccessKeyInfoValidationMiddleware(stack); err != nil {
|
if err = addOpGetAccessKeyInfoValidationMiddleware(stack); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -123,6 +123,9 @@ func (c *Client) addOperationGetCallerIdentityMiddlewares(stack *middleware.Stac
|
||||||
if err = addTimeOffsetBuild(stack, c); err != nil {
|
if err = addTimeOffsetBuild(stack, c); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
if err = addUserAgentRetryMode(stack, options); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
if err = stack.Initialize.Add(newServiceMetadataMiddleware_opGetCallerIdentity(options.Region), middleware.Before); err != nil {
|
if err = stack.Initialize.Add(newServiceMetadataMiddleware_opGetCallerIdentity(options.Region), middleware.Before); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -345,6 +345,9 @@ func (c *Client) addOperationGetFederationTokenMiddlewares(stack *middleware.Sta
|
||||||
if err = addTimeOffsetBuild(stack, c); err != nil {
|
if err = addTimeOffsetBuild(stack, c); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
if err = addUserAgentRetryMode(stack, options); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
if err = addOpGetFederationTokenValidationMiddleware(stack); err != nil {
|
if err = addOpGetFederationTokenValidationMiddleware(stack); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -194,6 +194,9 @@ func (c *Client) addOperationGetSessionTokenMiddlewares(stack *middleware.Stack,
|
||||||
if err = addTimeOffsetBuild(stack, c); err != nil {
|
if err = addTimeOffsetBuild(stack, c); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
if err = addUserAgentRetryMode(stack, options); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
if err = stack.Initialize.Add(newServiceMetadataMiddleware_opGetSessionToken(options.Region), middleware.Before); err != nil {
|
if err = stack.Initialize.Add(newServiceMetadataMiddleware_opGetSessionToken(options.Region), middleware.Before); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ import (
|
||||||
smithyhttp "github.com/aws/smithy-go/transport/http"
|
smithyhttp "github.com/aws/smithy-go/transport/http"
|
||||||
)
|
)
|
||||||
|
|
||||||
func bindAuthParamsRegion(params *AuthResolverParameters, _ interface{}, options Options) {
|
func bindAuthParamsRegion(_ interface{}, params *AuthResolverParameters, _ interface{}, options Options) {
|
||||||
params.Region = options.Region
|
params.Region = options.Region
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -90,12 +90,12 @@ type AuthResolverParameters struct {
|
||||||
Region string
|
Region string
|
||||||
}
|
}
|
||||||
|
|
||||||
func bindAuthResolverParams(operation string, input interface{}, options Options) *AuthResolverParameters {
|
func bindAuthResolverParams(ctx context.Context, operation string, input interface{}, options Options) *AuthResolverParameters {
|
||||||
params := &AuthResolverParameters{
|
params := &AuthResolverParameters{
|
||||||
Operation: operation,
|
Operation: operation,
|
||||||
}
|
}
|
||||||
|
|
||||||
bindAuthParamsRegion(params, input, options)
|
bindAuthParamsRegion(ctx, params, input, options)
|
||||||
|
|
||||||
return params
|
return params
|
||||||
}
|
}
|
||||||
|
|
@ -157,7 +157,7 @@ func (*resolveAuthSchemeMiddleware) ID() string {
|
||||||
func (m *resolveAuthSchemeMiddleware) HandleFinalize(ctx context.Context, in middleware.FinalizeInput, next middleware.FinalizeHandler) (
|
func (m *resolveAuthSchemeMiddleware) HandleFinalize(ctx context.Context, in middleware.FinalizeInput, next middleware.FinalizeHandler) (
|
||||||
out middleware.FinalizeOutput, metadata middleware.Metadata, err error,
|
out middleware.FinalizeOutput, metadata middleware.Metadata, err error,
|
||||||
) {
|
) {
|
||||||
params := bindAuthResolverParams(m.operation, getOperationInput(ctx), m.options)
|
params := bindAuthResolverParams(ctx, m.operation, getOperationInput(ctx), m.options)
|
||||||
options, err := m.options.AuthSchemeResolver.ResolveAuthSchemes(ctx, params)
|
options, err := m.options.AuthSchemeResolver.ResolveAuthSchemes(ctx, params)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return out, metadata, fmt.Errorf("resolve auth scheme: %w", err)
|
return out, metadata, fmt.Errorf("resolve auth scheme: %w", err)
|
||||||
|
|
|
||||||
|
|
@ -1045,7 +1045,7 @@ type endpointParamsBinder interface {
|
||||||
bindEndpointParams(*EndpointParameters)
|
bindEndpointParams(*EndpointParameters)
|
||||||
}
|
}
|
||||||
|
|
||||||
func bindEndpointParams(input interface{}, options Options) *EndpointParameters {
|
func bindEndpointParams(ctx context.Context, input interface{}, options Options) *EndpointParameters {
|
||||||
params := &EndpointParameters{}
|
params := &EndpointParameters{}
|
||||||
|
|
||||||
params.Region = bindRegion(options.Region)
|
params.Region = bindRegion(options.Region)
|
||||||
|
|
@ -1075,6 +1075,10 @@ func (m *resolveEndpointV2Middleware) HandleFinalize(ctx context.Context, in mid
|
||||||
return next.HandleFinalize(ctx, in)
|
return next.HandleFinalize(ctx, in)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if err := checkAccountID(getIdentity(ctx), m.options.AccountIDEndpointMode); err != nil {
|
||||||
|
return out, metadata, fmt.Errorf("invalid accountID set: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
req, ok := in.Request.(*smithyhttp.Request)
|
req, ok := in.Request.(*smithyhttp.Request)
|
||||||
if !ok {
|
if !ok {
|
||||||
return out, metadata, fmt.Errorf("unknown transport type %T", in.Request)
|
return out, metadata, fmt.Errorf("unknown transport type %T", in.Request)
|
||||||
|
|
@ -1084,7 +1088,7 @@ func (m *resolveEndpointV2Middleware) HandleFinalize(ctx context.Context, in mid
|
||||||
return out, metadata, fmt.Errorf("expected endpoint resolver to not be nil")
|
return out, metadata, fmt.Errorf("expected endpoint resolver to not be nil")
|
||||||
}
|
}
|
||||||
|
|
||||||
params := bindEndpointParams(getOperationInput(ctx), m.options)
|
params := bindEndpointParams(ctx, getOperationInput(ctx), m.options)
|
||||||
endpt, err := m.options.EndpointResolverV2.ResolveEndpoint(ctx, *params)
|
endpt, err := m.options.EndpointResolverV2.ResolveEndpoint(ctx, *params)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return out, metadata, fmt.Errorf("failed to resolve service endpoint, %w", err)
|
return out, metadata, fmt.Errorf("failed to resolve service endpoint, %w", err)
|
||||||
|
|
|
||||||
|
|
@ -3,4 +3,4 @@
|
||||||
package sts
|
package sts
|
||||||
|
|
||||||
// goModuleVersion is the tagged release for this module
|
// goModuleVersion is the tagged release for this module
|
||||||
const goModuleVersion = "1.28.12"
|
const goModuleVersion = "1.29.1"
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,9 @@ type Options struct {
|
||||||
// modify this list for per operation behavior.
|
// modify this list for per operation behavior.
|
||||||
APIOptions []func(*middleware.Stack) error
|
APIOptions []func(*middleware.Stack) error
|
||||||
|
|
||||||
|
// Indicates how aws account ID is applied in endpoint2.0 routing
|
||||||
|
AccountIDEndpointMode aws.AccountIDEndpointMode
|
||||||
|
|
||||||
// The optional application specific identifier appended to the User-Agent header.
|
// The optional application specific identifier appended to the User-Agent header.
|
||||||
AppID string
|
AppID string
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -226,10 +226,10 @@ github.com/aws/aws-sdk-go-v2/internal/timeconv
|
||||||
## explicit; go 1.20
|
## explicit; go 1.20
|
||||||
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream
|
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream
|
||||||
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream/eventstreamapi
|
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream/eventstreamapi
|
||||||
# github.com/aws/aws-sdk-go-v2/config v1.27.18
|
# github.com/aws/aws-sdk-go-v2/config v1.27.21
|
||||||
## explicit; go 1.20
|
## explicit; go 1.20
|
||||||
github.com/aws/aws-sdk-go-v2/config
|
github.com/aws/aws-sdk-go-v2/config
|
||||||
# github.com/aws/aws-sdk-go-v2/credentials v1.17.18
|
# github.com/aws/aws-sdk-go-v2/credentials v1.17.21
|
||||||
## explicit; go 1.20
|
## explicit; go 1.20
|
||||||
github.com/aws/aws-sdk-go-v2/credentials
|
github.com/aws/aws-sdk-go-v2/credentials
|
||||||
github.com/aws/aws-sdk-go-v2/credentials/ec2rolecreds
|
github.com/aws/aws-sdk-go-v2/credentials/ec2rolecreds
|
||||||
|
|
@ -238,11 +238,11 @@ github.com/aws/aws-sdk-go-v2/credentials/endpointcreds/internal/client
|
||||||
github.com/aws/aws-sdk-go-v2/credentials/processcreds
|
github.com/aws/aws-sdk-go-v2/credentials/processcreds
|
||||||
github.com/aws/aws-sdk-go-v2/credentials/ssocreds
|
github.com/aws/aws-sdk-go-v2/credentials/ssocreds
|
||||||
github.com/aws/aws-sdk-go-v2/credentials/stscreds
|
github.com/aws/aws-sdk-go-v2/credentials/stscreds
|
||||||
# github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.5
|
# github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.8
|
||||||
## explicit; go 1.20
|
## explicit; go 1.20
|
||||||
github.com/aws/aws-sdk-go-v2/feature/ec2/imds
|
github.com/aws/aws-sdk-go-v2/feature/ec2/imds
|
||||||
github.com/aws/aws-sdk-go-v2/feature/ec2/imds/internal/config
|
github.com/aws/aws-sdk-go-v2/feature/ec2/imds/internal/config
|
||||||
# github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.24
|
# github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.1
|
||||||
## explicit; go 1.20
|
## explicit; go 1.20
|
||||||
github.com/aws/aws-sdk-go-v2/feature/s3/manager
|
github.com/aws/aws-sdk-go-v2/feature/s3/manager
|
||||||
# github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.12
|
# github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.12
|
||||||
|
|
@ -290,17 +290,17 @@ github.com/aws/aws-sdk-go-v2/service/s3/internal/arn
|
||||||
github.com/aws/aws-sdk-go-v2/service/s3/internal/customizations
|
github.com/aws/aws-sdk-go-v2/service/s3/internal/customizations
|
||||||
github.com/aws/aws-sdk-go-v2/service/s3/internal/endpoints
|
github.com/aws/aws-sdk-go-v2/service/s3/internal/endpoints
|
||||||
github.com/aws/aws-sdk-go-v2/service/s3/types
|
github.com/aws/aws-sdk-go-v2/service/s3/types
|
||||||
# github.com/aws/aws-sdk-go-v2/service/sso v1.20.11
|
# github.com/aws/aws-sdk-go-v2/service/sso v1.21.1
|
||||||
## explicit; go 1.20
|
## explicit; go 1.20
|
||||||
github.com/aws/aws-sdk-go-v2/service/sso
|
github.com/aws/aws-sdk-go-v2/service/sso
|
||||||
github.com/aws/aws-sdk-go-v2/service/sso/internal/endpoints
|
github.com/aws/aws-sdk-go-v2/service/sso/internal/endpoints
|
||||||
github.com/aws/aws-sdk-go-v2/service/sso/types
|
github.com/aws/aws-sdk-go-v2/service/sso/types
|
||||||
# github.com/aws/aws-sdk-go-v2/service/ssooidc v1.24.5
|
# github.com/aws/aws-sdk-go-v2/service/ssooidc v1.25.1
|
||||||
## explicit; go 1.20
|
## explicit; go 1.20
|
||||||
github.com/aws/aws-sdk-go-v2/service/ssooidc
|
github.com/aws/aws-sdk-go-v2/service/ssooidc
|
||||||
github.com/aws/aws-sdk-go-v2/service/ssooidc/internal/endpoints
|
github.com/aws/aws-sdk-go-v2/service/ssooidc/internal/endpoints
|
||||||
github.com/aws/aws-sdk-go-v2/service/ssooidc/types
|
github.com/aws/aws-sdk-go-v2/service/ssooidc/types
|
||||||
# github.com/aws/aws-sdk-go-v2/service/sts v1.28.12
|
# github.com/aws/aws-sdk-go-v2/service/sts v1.29.1
|
||||||
## explicit; go 1.20
|
## explicit; go 1.20
|
||||||
github.com/aws/aws-sdk-go-v2/service/sts
|
github.com/aws/aws-sdk-go-v2/service/sts
|
||||||
github.com/aws/aws-sdk-go-v2/service/sts/internal/endpoints
|
github.com/aws/aws-sdk-go-v2/service/sts/internal/endpoints
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue