Codebase list amazon-ecr-credential-helper / efd1603
Merge pull request #267 from lachlancooper/update-aws-sdk-go Update aws sdk to v1.37.32 Kazuyoshi Kato authored 3 years ago GitHub committed 3 years ago
37 changed file(s) with 5858 addition(s) and 1349 deletion(s). Raw diff Collapse all Expand all
00 module github.com/awslabs/amazon-ecr-credential-helper/ecr-login
11
22 require (
3 github.com/aws/aws-sdk-go v1.36.0
3 github.com/aws/aws-sdk-go v1.37.32
44 github.com/docker/docker-credential-helpers v0.6.3
55 github.com/konsorten/go-windows-terminal-sequences v1.0.2 // indirect
66 github.com/mitchellh/go-homedir v1.1.0
0 github.com/aws/aws-sdk-go v1.36.0 h1:CscTrS+szX5iu34zk2bZrChnGO/GMtUYgMK1Xzs2hYo=
1 github.com/aws/aws-sdk-go v1.36.0/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro=
0 github.com/aws/aws-sdk-go v1.37.32 h1:gLEASuX1phzqb00APUZU/xVIqf13IoA250RlgQ9rz28=
1 github.com/aws/aws-sdk-go v1.37.32/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro=
22 github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
33 github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
44 github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
3434 golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3535 golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f h1:+Nyd8tzPX9R7BWHguqsrbFdRx3WQ/1ib8I44HXV5yTA=
3636 golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
37 golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=
3837 golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
3938 golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k=
4039 golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
8787 // AddDebugHandlers injects debug logging handlers into the service to log request
8888 // debug information.
8989 func (c *Client) AddDebugHandlers() {
90 if !c.Config.LogLevel.AtLeast(aws.LogDebug) {
91 return
92 }
93
9490 c.Handlers.Send.PushFrontNamed(LogHTTPRequestHandler)
9591 c.Handlers.Send.PushBackNamed(LogHTTPResponseHandler)
9692 }
5252 }
5353
5454 func logRequest(r *request.Request) {
55 if !r.Config.LogLevel.AtLeast(aws.LogDebug) {
56 return
57 }
58
5559 logBody := r.Config.LogLevel.Matches(aws.LogDebugWithHTTPBody)
5660 bodySeekable := aws.IsReaderSeekable(r.Body)
5761
119123 }
120124
121125 func logResponse(r *request.Request) {
126 if !r.Config.LogLevel.AtLeast(aws.LogDebug) {
127 return
128 }
129
122130 lw := &logWriter{r.Config.Logger, bytes.NewBuffer(nil)}
123131
124132 if r.HTTPResponse == nil {
437437 return c
438438 }
439439
440 // WithSTSRegionalEndpoint will set whether or not to use regional endpoint flag
441 // when resolving the endpoint for a service
442 func (c *Config) WithSTSRegionalEndpoint(sre endpoints.STSRegionalEndpoint) *Config {
443 c.STSRegionalEndpoint = sre
444 return c
445 }
446
447 // WithS3UsEast1RegionalEndpoint will set whether or not to use regional endpoint flag
448 // when resolving the endpoint for a service
449 func (c *Config) WithS3UsEast1RegionalEndpoint(sre endpoints.S3UsEast1RegionalEndpoint) *Config {
450 c.S3UsEast1RegionalEndpoint = sre
451 return c
452 }
453
454 // WithLowerCaseHeaderMaps sets a config LowerCaseHeaderMaps value
455 // returning a Config pointer for chaining.
456 func (c *Config) WithLowerCaseHeaderMaps(t bool) *Config {
457 c.LowerCaseHeaderMaps = &t
458 return c
459 }
460
461 // WithDisableRestProtocolURICleaning sets a config DisableRestProtocolURICleaning value
462 // returning a Config pointer for chaining.
463 func (c *Config) WithDisableRestProtocolURICleaning(t bool) *Config {
464 c.DisableRestProtocolURICleaning = &t
465 return c
466 }
467
440468 // MergeIn merges the passed in configs into the existing config object.
441469 func (c *Config) MergeIn(cfgs ...*Config) {
442470 for _, other := range cfgs {
444472 }
445473 }
446474
447 // WithSTSRegionalEndpoint will set whether or not to use regional endpoint flag
448 // when resolving the endpoint for a service
449 func (c *Config) WithSTSRegionalEndpoint(sre endpoints.STSRegionalEndpoint) *Config {
450 c.STSRegionalEndpoint = sre
451 return c
452 }
453
454 // WithS3UsEast1RegionalEndpoint will set whether or not to use regional endpoint flag
455 // when resolving the endpoint for a service
456 func (c *Config) WithS3UsEast1RegionalEndpoint(sre endpoints.S3UsEast1RegionalEndpoint) *Config {
457 c.S3UsEast1RegionalEndpoint = sre
458 return c
459 }
460
461475 func mergeInConfig(dst *Config, other *Config) {
462476 if other == nil {
463477 return
569583
570584 if other.S3UsEast1RegionalEndpoint != endpoints.UnsetS3UsEast1Endpoint {
571585 dst.S3UsEast1RegionalEndpoint = other.S3UsEast1RegionalEndpoint
586 }
587
588 if other.LowerCaseHeaderMaps != nil {
589 dst.LowerCaseHeaderMaps = other.LowerCaseHeaderMaps
572590 }
573591 }
574592
0 // Package ssocreds provides a credential provider for retrieving temporary AWS credentials using an SSO access token.
1 //
2 // IMPORTANT: The provider in this package does not initiate or perform the AWS SSO login flow. The SDK provider
3 // expects that you have already performed the SSO login flow using AWS CLI using the "aws sso login" command, or by
4 // some other mechanism. The provider must find a valid non-expired access token for the AWS SSO user portal URL in
5 // ~/.aws/sso/cache. If a cached token is not found, it is expired, or the file is malformed an error will be returned.
6 //
7 // Loading AWS SSO credentials with the AWS shared configuration file
8 //
9 // You can use configure AWS SSO credentials from the AWS shared configuration file by
10 // providing the specifying the required keys in the profile:
11 //
12 // sso_account_id
13 // sso_region
14 // sso_role_name
15 // sso_start_url
16 //
17 // For example, the following defines a profile "devsso" and specifies the AWS SSO parameters that defines the target
18 // account, role, sign-on portal, and the region where the user portal is located. Note: all SSO arguments must be
19 // provided, or an error will be returned.
20 //
21 // [profile devsso]
22 // sso_start_url = https://my-sso-portal.awsapps.com/start
23 // sso_role_name = SSOReadOnlyRole
24 // sso_region = us-east-1
25 // sso_account_id = 123456789012
26 //
27 // Using the config module, you can load the AWS SDK shared configuration, and specify that this profile be used to
28 // retrieve credentials. For example:
29 //
30 // sess, err := session.NewSessionWithOptions(session.Options{
31 // SharedConfigState: session.SharedConfigEnable,
32 // Profile: "devsso",
33 // })
34 // if err != nil {
35 // return err
36 // }
37 //
38 // Programmatically loading AWS SSO credentials directly
39 //
40 // You can programmatically construct the AWS SSO Provider in your application, and provide the necessary information
41 // to load and retrieve temporary credentials using an access token from ~/.aws/sso/cache.
42 //
43 // svc := sso.New(sess, &aws.Config{
44 // Region: aws.String("us-west-2"), // Client Region must correspond to the AWS SSO user portal region
45 // })
46 //
47 // provider := ssocreds.NewCredentialsWithClient(svc, "123456789012", "SSOReadOnlyRole", "https://my-sso-portal.awsapps.com/start")
48 //
49 // credentials, err := provider.Get()
50 // if err != nil {
51 // return err
52 // }
53 //
54 // Additional Resources
55 //
56 // Configuring the AWS CLI to use AWS Single Sign-On: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html
57 //
58 // AWS Single Sign-On User Guide: https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html
59 package ssocreds
0 // +build !windows
1
2 package ssocreds
3
4 import "os"
5
6 func getHomeDirectory() string {
7 return os.Getenv("HOME")
8 }
0 package ssocreds
1
2 import "os"
3
4 func getHomeDirectory() string {
5 return os.Getenv("USERPROFILE")
6 }
0 package ssocreds
1
2 import (
3 "crypto/sha1"
4 "encoding/hex"
5 "encoding/json"
6 "fmt"
7 "io/ioutil"
8 "path/filepath"
9 "strings"
10 "time"
11
12 "github.com/aws/aws-sdk-go/aws"
13 "github.com/aws/aws-sdk-go/aws/awserr"
14 "github.com/aws/aws-sdk-go/aws/client"
15 "github.com/aws/aws-sdk-go/aws/credentials"
16 "github.com/aws/aws-sdk-go/service/sso"
17 "github.com/aws/aws-sdk-go/service/sso/ssoiface"
18 )
19
20 // ErrCodeSSOProviderInvalidToken is the code type that is returned if loaded token has expired or is otherwise invalid.
21 // To refresh the SSO session run aws sso login with the corresponding profile.
22 const ErrCodeSSOProviderInvalidToken = "SSOProviderInvalidToken"
23
24 const invalidTokenMessage = "the SSO session has expired or is invalid"
25
26 func init() {
27 nowTime = time.Now
28 defaultCacheLocation = defaultCacheLocationImpl
29 }
30
31 var nowTime func() time.Time
32
33 // ProviderName is the name of the provider used to specify the source of credentials.
34 const ProviderName = "SSOProvider"
35
36 var defaultCacheLocation func() string
37
38 func defaultCacheLocationImpl() string {
39 return filepath.Join(getHomeDirectory(), ".aws", "sso", "cache")
40 }
41
42 // Provider is an AWS credential provider that retrieves temporary AWS credentials by exchanging an SSO login token.
43 type Provider struct {
44 credentials.Expiry
45
46 // The Client which is configured for the AWS Region where the AWS SSO user portal is located.
47 Client ssoiface.SSOAPI
48
49 // The AWS account that is assigned to the user.
50 AccountID string
51
52 // The role name that is assigned to the user.
53 RoleName string
54
55 // The URL that points to the organization's AWS Single Sign-On (AWS SSO) user portal.
56 StartURL string
57 }
58
59 // NewCredentials returns a new AWS Single Sign-On (AWS SSO) credential provider. The ConfigProvider is expected to be configured
60 // for the AWS Region where the AWS SSO user portal is located.
61 func NewCredentials(configProvider client.ConfigProvider, accountID, roleName, startURL string, optFns ...func(provider *Provider)) *credentials.Credentials {
62 return NewCredentialsWithClient(sso.New(configProvider), accountID, roleName, startURL, optFns...)
63 }
64
65 // NewCredentialsWithClient returns a new AWS Single Sign-On (AWS SSO) credential provider. The provided client is expected to be configured
66 // for the AWS Region where the AWS SSO user portal is located.
67 func NewCredentialsWithClient(client ssoiface.SSOAPI, accountID, roleName, startURL string, optFns ...func(provider *Provider)) *credentials.Credentials {
68 p := &Provider{
69 Client: client,
70 AccountID: accountID,
71 RoleName: roleName,
72 StartURL: startURL,
73 }
74
75 for _, fn := range optFns {
76 fn(p)
77 }
78
79 return credentials.NewCredentials(p)
80 }
81
82 // Retrieve retrieves temporary AWS credentials from the configured Amazon Single Sign-On (AWS SSO) user portal
83 // by exchanging the accessToken present in ~/.aws/sso/cache.
84 func (p *Provider) Retrieve() (credentials.Value, error) {
85 return p.RetrieveWithContext(aws.BackgroundContext())
86 }
87
88 // RetrieveWithContext retrieves temporary AWS credentials from the configured Amazon Single Sign-On (AWS SSO) user portal
89 // by exchanging the accessToken present in ~/.aws/sso/cache.
90 func (p *Provider) RetrieveWithContext(ctx credentials.Context) (credentials.Value, error) {
91 tokenFile, err := loadTokenFile(p.StartURL)
92 if err != nil {
93 return credentials.Value{}, err
94 }
95
96 output, err := p.Client.GetRoleCredentialsWithContext(ctx, &sso.GetRoleCredentialsInput{
97 AccessToken: &tokenFile.AccessToken,
98 AccountId: &p.AccountID,
99 RoleName: &p.RoleName,
100 })
101 if err != nil {
102 return credentials.Value{}, err
103 }
104
105 expireTime := time.Unix(0, aws.Int64Value(output.RoleCredentials.Expiration)*int64(time.Millisecond)).UTC()
106 p.SetExpiration(expireTime, 0)
107
108 return credentials.Value{
109 AccessKeyID: aws.StringValue(output.RoleCredentials.AccessKeyId),
110 SecretAccessKey: aws.StringValue(output.RoleCredentials.SecretAccessKey),
111 SessionToken: aws.StringValue(output.RoleCredentials.SessionToken),
112 ProviderName: ProviderName,
113 }, nil
114 }
115
116 func getCacheFileName(url string) (string, error) {
117 hash := sha1.New()
118 _, err := hash.Write([]byte(url))
119 if err != nil {
120 return "", err
121 }
122 return strings.ToLower(hex.EncodeToString(hash.Sum(nil))) + ".json", nil
123 }
124
125 type rfc3339 time.Time
126
127 func (r *rfc3339) UnmarshalJSON(bytes []byte) error {
128 var value string
129
130 if err := json.Unmarshal(bytes, &value); err != nil {
131 return err
132 }
133
134 parse, err := time.Parse(time.RFC3339, value)
135 if err != nil {
136 return fmt.Errorf("expected RFC3339 timestamp: %v", err)
137 }
138
139 *r = rfc3339(parse)
140
141 return nil
142 }
143
144 type token struct {
145 AccessToken string `json:"accessToken"`
146 ExpiresAt rfc3339 `json:"expiresAt"`
147 Region string `json:"region,omitempty"`
148 StartURL string `json:"startUrl,omitempty"`
149 }
150
151 func (t token) Expired() bool {
152 return nowTime().Round(0).After(time.Time(t.ExpiresAt))
153 }
154
155 func loadTokenFile(startURL string) (t token, err error) {
156 key, err := getCacheFileName(startURL)
157 if err != nil {
158 return token{}, awserr.New(ErrCodeSSOProviderInvalidToken, invalidTokenMessage, err)
159 }
160
161 fileBytes, err := ioutil.ReadFile(filepath.Join(defaultCacheLocation(), key))
162 if err != nil {
163 return token{}, awserr.New(ErrCodeSSOProviderInvalidToken, invalidTokenMessage, err)
164 }
165
166 if err := json.Unmarshal(fileBytes, &t); err != nil {
167 return token{}, awserr.New(ErrCodeSSOProviderInvalidToken, invalidTokenMessage, err)
168 }
169
170 if len(t.AccessToken) == 0 {
171 return token{}, awserr.New(ErrCodeSSOProviderInvalidToken, invalidTokenMessage, nil)
172 }
173
174 if t.Expired() {
175 return token{}, awserr.New(ErrCodeSSOProviderInvalidToken, invalidTokenMessage, nil)
176 }
177
178 return t, nil
179 }
9494 // StdinTokenProvider will prompt on stderr and read from stdin for a string value.
9595 // An error is returned if reading from stdin fails.
9696 //
97 // Use this function go read MFA tokens from stdin. The function makes no attempt
97 // Use this function to read MFA tokens from stdin. The function makes no attempt
9898 // to make atomic prompts from stdin across multiple gorouties.
9999 //
100100 // Using StdinTokenProvider with multiple AssumeRoleProviders, or Credentials will
243243 MaxJitterFrac float64
244244 }
245245
246 // NewCredentials returns a pointer to a new Credentials object wrapping the
246 // NewCredentials returns a pointer to a new Credentials value wrapping the
247247 // AssumeRoleProvider. The credentials will expire every 15 minutes and the
248 // role will be named after a nanosecond timestamp of this operation.
248 // role will be named after a nanosecond timestamp of this operation. The
249 // Credentials value will attempt to refresh the credentials using the provider
250 // when Credentials.Get is called, if the cached credentials are expiring.
249251 //
250252 // Takes a Config provider to create the STS client. The ConfigProvider is
251253 // satisfied by the session.Session type.
267269 return credentials.NewCredentials(p)
268270 }
269271
270 // NewCredentialsWithClient returns a pointer to a new Credentials object wrapping the
272 // NewCredentialsWithClient returns a pointer to a new Credentials value wrapping the
271273 // AssumeRoleProvider. The credentials will expire every 15 minutes and the
272 // role will be named after a nanosecond timestamp of this operation.
274 // role will be named after a nanosecond timestamp of this operation. The
275 // Credentials value will attempt to refresh the credentials using the provider
276 // when Credentials.Get is called, if the cached credentials are expiring.
273277 //
274278 // Takes an AssumeRoler which can be satisfied by the STS client.
275279 //
2020 ApEast1RegionID = "ap-east-1" // Asia Pacific (Hong Kong).
2121 ApNortheast1RegionID = "ap-northeast-1" // Asia Pacific (Tokyo).
2222 ApNortheast2RegionID = "ap-northeast-2" // Asia Pacific (Seoul).
23 ApNortheast3RegionID = "ap-northeast-3" // Asia Pacific (Osaka).
2324 ApSouth1RegionID = "ap-south-1" // Asia Pacific (Mumbai).
2425 ApSoutheast1RegionID = "ap-southeast-1" // Asia Pacific (Singapore).
2526 ApSoutheast2RegionID = "ap-southeast-2" // Asia Pacific (Sydney).
120121 "ap-northeast-2": region{
121122 Description: "Asia Pacific (Seoul)",
122123 },
124 "ap-northeast-3": region{
125 Description: "Asia Pacific (Osaka)",
126 },
123127 "ap-south-1": region{
124128 Description: "Asia Pacific (Mumbai)",
125129 },
183187 "ap-east-1": endpoint{},
184188 "ap-northeast-1": endpoint{},
185189 "ap-northeast-2": endpoint{},
190 "ap-northeast-3": endpoint{},
186191 "ap-south-1": endpoint{},
187192 "ap-southeast-1": endpoint{},
188193 "ap-southeast-2": endpoint{},
238243 "ap-east-1": endpoint{},
239244 "ap-northeast-1": endpoint{},
240245 "ap-northeast-2": endpoint{},
246 "ap-northeast-3": endpoint{},
241247 "ap-south-1": endpoint{},
242248 "ap-southeast-1": endpoint{},
243249 "ap-southeast-2": endpoint{},
357363 "us-west-2": endpoint{},
358364 },
359365 },
366 "amplifybackend": service{
367
368 Endpoints: endpoints{
369 "ap-northeast-1": endpoint{},
370 "ap-northeast-2": endpoint{},
371 "ap-south-1": endpoint{},
372 "ap-southeast-1": endpoint{},
373 "ap-southeast-2": endpoint{},
374 "ca-central-1": endpoint{},
375 "eu-central-1": endpoint{},
376 "eu-west-1": endpoint{},
377 "eu-west-2": endpoint{},
378 "us-east-1": endpoint{},
379 "us-east-2": endpoint{},
380 "us-west-2": endpoint{},
381 },
382 },
360383 "api.detective": service{
361384 Defaults: endpoint{
362385 Protocols: []string{"https"},
366389 "ap-east-1": endpoint{},
367390 "ap-northeast-1": endpoint{},
368391 "ap-northeast-2": endpoint{},
392 "ap-south-1": endpoint{},
393 "ap-southeast-1": endpoint{},
394 "ap-southeast-2": endpoint{},
395 "ca-central-1": endpoint{},
396 "eu-central-1": endpoint{},
397 "eu-north-1": endpoint{},
398 "eu-south-1": endpoint{},
399 "eu-west-1": endpoint{},
400 "eu-west-2": endpoint{},
401 "eu-west-3": endpoint{},
402 "me-south-1": endpoint{},
403 "sa-east-1": endpoint{},
404 "us-east-1": endpoint{},
405 "us-east-1-fips": endpoint{
406 Hostname: "api.detective-fips.us-east-1.amazonaws.com",
407 CredentialScope: credentialScope{
408 Region: "us-east-1",
409 },
410 },
411 "us-east-2": endpoint{},
412 "us-east-2-fips": endpoint{
413 Hostname: "api.detective-fips.us-east-2.amazonaws.com",
414 CredentialScope: credentialScope{
415 Region: "us-east-2",
416 },
417 },
418 "us-west-1": endpoint{},
419 "us-west-1-fips": endpoint{
420 Hostname: "api.detective-fips.us-west-1.amazonaws.com",
421 CredentialScope: credentialScope{
422 Region: "us-west-1",
423 },
424 },
425 "us-west-2": endpoint{},
426 "us-west-2-fips": endpoint{
427 Hostname: "api.detective-fips.us-west-2.amazonaws.com",
428 CredentialScope: credentialScope{
429 Region: "us-west-2",
430 },
431 },
432 },
433 },
434 "api.ecr": service{
435
436 Endpoints: endpoints{
437 "af-south-1": endpoint{
438 Hostname: "api.ecr.af-south-1.amazonaws.com",
439 CredentialScope: credentialScope{
440 Region: "af-south-1",
441 },
442 },
443 "ap-east-1": endpoint{
444 Hostname: "api.ecr.ap-east-1.amazonaws.com",
445 CredentialScope: credentialScope{
446 Region: "ap-east-1",
447 },
448 },
449 "ap-northeast-1": endpoint{
450 Hostname: "api.ecr.ap-northeast-1.amazonaws.com",
451 CredentialScope: credentialScope{
452 Region: "ap-northeast-1",
453 },
454 },
455 "ap-northeast-2": endpoint{
456 Hostname: "api.ecr.ap-northeast-2.amazonaws.com",
457 CredentialScope: credentialScope{
458 Region: "ap-northeast-2",
459 },
460 },
461 "ap-northeast-3": endpoint{
462 Hostname: "api.ecr.ap-northeast-3.amazonaws.com",
463 CredentialScope: credentialScope{
464 Region: "ap-northeast-3",
465 },
466 },
467 "ap-south-1": endpoint{
468 Hostname: "api.ecr.ap-south-1.amazonaws.com",
469 CredentialScope: credentialScope{
470 Region: "ap-south-1",
471 },
472 },
473 "ap-southeast-1": endpoint{
474 Hostname: "api.ecr.ap-southeast-1.amazonaws.com",
475 CredentialScope: credentialScope{
476 Region: "ap-southeast-1",
477 },
478 },
479 "ap-southeast-2": endpoint{
480 Hostname: "api.ecr.ap-southeast-2.amazonaws.com",
481 CredentialScope: credentialScope{
482 Region: "ap-southeast-2",
483 },
484 },
485 "ca-central-1": endpoint{
486 Hostname: "api.ecr.ca-central-1.amazonaws.com",
487 CredentialScope: credentialScope{
488 Region: "ca-central-1",
489 },
490 },
491 "eu-central-1": endpoint{
492 Hostname: "api.ecr.eu-central-1.amazonaws.com",
493 CredentialScope: credentialScope{
494 Region: "eu-central-1",
495 },
496 },
497 "eu-north-1": endpoint{
498 Hostname: "api.ecr.eu-north-1.amazonaws.com",
499 CredentialScope: credentialScope{
500 Region: "eu-north-1",
501 },
502 },
503 "eu-south-1": endpoint{
504 Hostname: "api.ecr.eu-south-1.amazonaws.com",
505 CredentialScope: credentialScope{
506 Region: "eu-south-1",
507 },
508 },
509 "eu-west-1": endpoint{
510 Hostname: "api.ecr.eu-west-1.amazonaws.com",
511 CredentialScope: credentialScope{
512 Region: "eu-west-1",
513 },
514 },
515 "eu-west-2": endpoint{
516 Hostname: "api.ecr.eu-west-2.amazonaws.com",
517 CredentialScope: credentialScope{
518 Region: "eu-west-2",
519 },
520 },
521 "eu-west-3": endpoint{
522 Hostname: "api.ecr.eu-west-3.amazonaws.com",
523 CredentialScope: credentialScope{
524 Region: "eu-west-3",
525 },
526 },
527 "fips-dkr-us-east-1": endpoint{
528 Hostname: "ecr-fips.us-east-1.amazonaws.com",
529 CredentialScope: credentialScope{
530 Region: "us-east-1",
531 },
532 },
533 "fips-dkr-us-east-2": endpoint{
534 Hostname: "ecr-fips.us-east-2.amazonaws.com",
535 CredentialScope: credentialScope{
536 Region: "us-east-2",
537 },
538 },
539 "fips-dkr-us-west-1": endpoint{
540 Hostname: "ecr-fips.us-west-1.amazonaws.com",
541 CredentialScope: credentialScope{
542 Region: "us-west-1",
543 },
544 },
545 "fips-dkr-us-west-2": endpoint{
546 Hostname: "ecr-fips.us-west-2.amazonaws.com",
547 CredentialScope: credentialScope{
548 Region: "us-west-2",
549 },
550 },
551 "fips-us-east-1": endpoint{
552 Hostname: "ecr-fips.us-east-1.amazonaws.com",
553 CredentialScope: credentialScope{
554 Region: "us-east-1",
555 },
556 },
557 "fips-us-east-2": endpoint{
558 Hostname: "ecr-fips.us-east-2.amazonaws.com",
559 CredentialScope: credentialScope{
560 Region: "us-east-2",
561 },
562 },
563 "fips-us-west-1": endpoint{
564 Hostname: "ecr-fips.us-west-1.amazonaws.com",
565 CredentialScope: credentialScope{
566 Region: "us-west-1",
567 },
568 },
569 "fips-us-west-2": endpoint{
570 Hostname: "ecr-fips.us-west-2.amazonaws.com",
571 CredentialScope: credentialScope{
572 Region: "us-west-2",
573 },
574 },
575 "me-south-1": endpoint{
576 Hostname: "api.ecr.me-south-1.amazonaws.com",
577 CredentialScope: credentialScope{
578 Region: "me-south-1",
579 },
580 },
581 "sa-east-1": endpoint{
582 Hostname: "api.ecr.sa-east-1.amazonaws.com",
583 CredentialScope: credentialScope{
584 Region: "sa-east-1",
585 },
586 },
587 "us-east-1": endpoint{
588 Hostname: "api.ecr.us-east-1.amazonaws.com",
589 CredentialScope: credentialScope{
590 Region: "us-east-1",
591 },
592 },
593 "us-east-2": endpoint{
594 Hostname: "api.ecr.us-east-2.amazonaws.com",
595 CredentialScope: credentialScope{
596 Region: "us-east-2",
597 },
598 },
599 "us-west-1": endpoint{
600 Hostname: "api.ecr.us-west-1.amazonaws.com",
601 CredentialScope: credentialScope{
602 Region: "us-west-1",
603 },
604 },
605 "us-west-2": endpoint{
606 Hostname: "api.ecr.us-west-2.amazonaws.com",
607 CredentialScope: credentialScope{
608 Region: "us-west-2",
609 },
610 },
611 },
612 },
613 "api.elastic-inference": service{
614
615 Endpoints: endpoints{
616 "ap-northeast-1": endpoint{
617 Hostname: "api.elastic-inference.ap-northeast-1.amazonaws.com",
618 },
619 "ap-northeast-2": endpoint{
620 Hostname: "api.elastic-inference.ap-northeast-2.amazonaws.com",
621 },
622 "eu-west-1": endpoint{
623 Hostname: "api.elastic-inference.eu-west-1.amazonaws.com",
624 },
625 "us-east-1": endpoint{
626 Hostname: "api.elastic-inference.us-east-1.amazonaws.com",
627 },
628 "us-east-2": endpoint{
629 Hostname: "api.elastic-inference.us-east-2.amazonaws.com",
630 },
631 "us-west-2": endpoint{
632 Hostname: "api.elastic-inference.us-west-2.amazonaws.com",
633 },
634 },
635 },
636 "api.fleethub.iot": service{
637
638 Endpoints: endpoints{
639 "us-east-1": endpoint{},
640 },
641 },
642 "api.mediatailor": service{
643
644 Endpoints: endpoints{
645 "ap-northeast-1": endpoint{},
646 "ap-southeast-1": endpoint{},
647 "ap-southeast-2": endpoint{},
648 "eu-central-1": endpoint{},
649 "eu-west-1": endpoint{},
650 "us-east-1": endpoint{},
651 "us-west-2": endpoint{},
652 },
653 },
654 "api.pricing": service{
655 Defaults: endpoint{
656 CredentialScope: credentialScope{
657 Service: "pricing",
658 },
659 },
660 Endpoints: endpoints{
661 "ap-south-1": endpoint{},
662 "us-east-1": endpoint{},
663 },
664 },
665 "api.sagemaker": service{
666
667 Endpoints: endpoints{
668 "af-south-1": endpoint{},
669 "ap-east-1": endpoint{},
670 "ap-northeast-1": endpoint{},
671 "ap-northeast-2": endpoint{},
672 "ap-south-1": endpoint{},
673 "ap-southeast-1": endpoint{},
674 "ap-southeast-2": endpoint{},
675 "ca-central-1": endpoint{},
676 "eu-central-1": endpoint{},
677 "eu-north-1": endpoint{},
678 "eu-south-1": endpoint{},
679 "eu-west-1": endpoint{},
680 "eu-west-2": endpoint{},
681 "eu-west-3": endpoint{},
682 "me-south-1": endpoint{},
683 "sa-east-1": endpoint{},
684 "us-east-1": endpoint{},
685 "us-east-1-fips": endpoint{
686 Hostname: "api-fips.sagemaker.us-east-1.amazonaws.com",
687 CredentialScope: credentialScope{
688 Region: "us-east-1",
689 },
690 },
691 "us-east-2": endpoint{},
692 "us-east-2-fips": endpoint{
693 Hostname: "api-fips.sagemaker.us-east-2.amazonaws.com",
694 CredentialScope: credentialScope{
695 Region: "us-east-2",
696 },
697 },
698 "us-west-1": endpoint{},
699 "us-west-1-fips": endpoint{
700 Hostname: "api-fips.sagemaker.us-west-1.amazonaws.com",
701 CredentialScope: credentialScope{
702 Region: "us-west-1",
703 },
704 },
705 "us-west-2": endpoint{},
706 "us-west-2-fips": endpoint{
707 Hostname: "api-fips.sagemaker.us-west-2.amazonaws.com",
708 CredentialScope: credentialScope{
709 Region: "us-west-2",
710 },
711 },
712 },
713 },
714 "apigateway": service{
715
716 Endpoints: endpoints{
717 "af-south-1": endpoint{},
718 "ap-east-1": endpoint{},
719 "ap-northeast-1": endpoint{},
720 "ap-northeast-2": endpoint{},
721 "ap-northeast-3": endpoint{},
369722 "ap-south-1": endpoint{},
370723 "ap-southeast-1": endpoint{},
371724 "ap-southeast-2": endpoint{},
384737 "us-west-2": endpoint{},
385738 },
386739 },
387 "api.ecr": service{
388
389 Endpoints: endpoints{
390 "af-south-1": endpoint{
391 Hostname: "api.ecr.af-south-1.amazonaws.com",
392 CredentialScope: credentialScope{
393 Region: "af-south-1",
394 },
395 },
396 "ap-east-1": endpoint{
397 Hostname: "api.ecr.ap-east-1.amazonaws.com",
398 CredentialScope: credentialScope{
399 Region: "ap-east-1",
400 },
401 },
402 "ap-northeast-1": endpoint{
403 Hostname: "api.ecr.ap-northeast-1.amazonaws.com",
404 CredentialScope: credentialScope{
405 Region: "ap-northeast-1",
406 },
407 },
408 "ap-northeast-2": endpoint{
409 Hostname: "api.ecr.ap-northeast-2.amazonaws.com",
410 CredentialScope: credentialScope{
411 Region: "ap-northeast-2",
412 },
413 },
414 "ap-south-1": endpoint{
415 Hostname: "api.ecr.ap-south-1.amazonaws.com",
416 CredentialScope: credentialScope{
417 Region: "ap-south-1",
418 },
419 },
420 "ap-southeast-1": endpoint{
421 Hostname: "api.ecr.ap-southeast-1.amazonaws.com",
422 CredentialScope: credentialScope{
423 Region: "ap-southeast-1",
424 },
425 },
426 "ap-southeast-2": endpoint{
427 Hostname: "api.ecr.ap-southeast-2.amazonaws.com",
428 CredentialScope: credentialScope{
429 Region: "ap-southeast-2",
430 },
431 },
432 "ca-central-1": endpoint{
433 Hostname: "api.ecr.ca-central-1.amazonaws.com",
434 CredentialScope: credentialScope{
435 Region: "ca-central-1",
436 },
437 },
438 "eu-central-1": endpoint{
439 Hostname: "api.ecr.eu-central-1.amazonaws.com",
440 CredentialScope: credentialScope{
441 Region: "eu-central-1",
442 },
443 },
444 "eu-north-1": endpoint{
445 Hostname: "api.ecr.eu-north-1.amazonaws.com",
446 CredentialScope: credentialScope{
447 Region: "eu-north-1",
448 },
449 },
450 "eu-south-1": endpoint{
451 Hostname: "api.ecr.eu-south-1.amazonaws.com",
452 CredentialScope: credentialScope{
453 Region: "eu-south-1",
454 },
455 },
456 "eu-west-1": endpoint{
457 Hostname: "api.ecr.eu-west-1.amazonaws.com",
458 CredentialScope: credentialScope{
459 Region: "eu-west-1",
460 },
461 },
462 "eu-west-2": endpoint{
463 Hostname: "api.ecr.eu-west-2.amazonaws.com",
464 CredentialScope: credentialScope{
465 Region: "eu-west-2",
466 },
467 },
468 "eu-west-3": endpoint{
469 Hostname: "api.ecr.eu-west-3.amazonaws.com",
470 CredentialScope: credentialScope{
471 Region: "eu-west-3",
472 },
473 },
474 "fips-dkr-us-east-1": endpoint{
475 Hostname: "ecr-fips.us-east-1.amazonaws.com",
476 CredentialScope: credentialScope{
477 Region: "us-east-1",
478 },
479 },
480 "fips-dkr-us-east-2": endpoint{
481 Hostname: "ecr-fips.us-east-2.amazonaws.com",
482 CredentialScope: credentialScope{
483 Region: "us-east-2",
484 },
485 },
486 "fips-dkr-us-west-1": endpoint{
487 Hostname: "ecr-fips.us-west-1.amazonaws.com",
488 CredentialScope: credentialScope{
489 Region: "us-west-1",
490 },
491 },
492 "fips-dkr-us-west-2": endpoint{
493 Hostname: "ecr-fips.us-west-2.amazonaws.com",
494 CredentialScope: credentialScope{
495 Region: "us-west-2",
496 },
497 },
498 "fips-us-east-1": endpoint{
499 Hostname: "ecr-fips.us-east-1.amazonaws.com",
500 CredentialScope: credentialScope{
501 Region: "us-east-1",
502 },
503 },
504 "fips-us-east-2": endpoint{
505 Hostname: "ecr-fips.us-east-2.amazonaws.com",
506 CredentialScope: credentialScope{
507 Region: "us-east-2",
508 },
509 },
510 "fips-us-west-1": endpoint{
511 Hostname: "ecr-fips.us-west-1.amazonaws.com",
512 CredentialScope: credentialScope{
513 Region: "us-west-1",
514 },
515 },
516 "fips-us-west-2": endpoint{
517 Hostname: "ecr-fips.us-west-2.amazonaws.com",
518 CredentialScope: credentialScope{
519 Region: "us-west-2",
520 },
521 },
522 "me-south-1": endpoint{
523 Hostname: "api.ecr.me-south-1.amazonaws.com",
524 CredentialScope: credentialScope{
525 Region: "me-south-1",
526 },
527 },
528 "sa-east-1": endpoint{
529 Hostname: "api.ecr.sa-east-1.amazonaws.com",
530 CredentialScope: credentialScope{
531 Region: "sa-east-1",
532 },
533 },
534 "us-east-1": endpoint{
535 Hostname: "api.ecr.us-east-1.amazonaws.com",
536 CredentialScope: credentialScope{
537 Region: "us-east-1",
538 },
539 },
540 "us-east-2": endpoint{
541 Hostname: "api.ecr.us-east-2.amazonaws.com",
542 CredentialScope: credentialScope{
543 Region: "us-east-2",
544 },
545 },
546 "us-west-1": endpoint{
547 Hostname: "api.ecr.us-west-1.amazonaws.com",
548 CredentialScope: credentialScope{
549 Region: "us-west-1",
550 },
551 },
552 "us-west-2": endpoint{
553 Hostname: "api.ecr.us-west-2.amazonaws.com",
554 CredentialScope: credentialScope{
555 Region: "us-west-2",
556 },
557 },
558 },
559 },
560 "api.elastic-inference": service{
561
562 Endpoints: endpoints{
563 "ap-northeast-1": endpoint{
564 Hostname: "api.elastic-inference.ap-northeast-1.amazonaws.com",
565 },
566 "ap-northeast-2": endpoint{
567 Hostname: "api.elastic-inference.ap-northeast-2.amazonaws.com",
568 },
569 "eu-west-1": endpoint{
570 Hostname: "api.elastic-inference.eu-west-1.amazonaws.com",
571 },
572 "us-east-1": endpoint{
573 Hostname: "api.elastic-inference.us-east-1.amazonaws.com",
574 },
575 "us-east-2": endpoint{
576 Hostname: "api.elastic-inference.us-east-2.amazonaws.com",
577 },
578 "us-west-2": endpoint{
579 Hostname: "api.elastic-inference.us-west-2.amazonaws.com",
580 },
581 },
582 },
583 "api.mediatailor": service{
584
585 Endpoints: endpoints{
586 "ap-northeast-1": endpoint{},
587 "ap-southeast-1": endpoint{},
588 "ap-southeast-2": endpoint{},
589 "eu-central-1": endpoint{},
590 "eu-west-1": endpoint{},
740 "app-integrations": service{
741
742 Endpoints: endpoints{
743 "ap-northeast-1": endpoint{},
744 "ap-southeast-1": endpoint{},
745 "ap-southeast-2": endpoint{},
746 "eu-central-1": endpoint{},
747 "eu-west-2": endpoint{},
591748 "us-east-1": endpoint{},
592749 "us-west-2": endpoint{},
593750 },
594751 },
595 "api.pricing": service{
752 "appflow": service{
753
754 Endpoints: endpoints{
755 "ap-northeast-1": endpoint{},
756 "ap-northeast-2": endpoint{},
757 "ap-south-1": endpoint{},
758 "ap-southeast-1": endpoint{},
759 "ap-southeast-2": endpoint{},
760 "ca-central-1": endpoint{},
761 "eu-central-1": endpoint{},
762 "eu-west-1": endpoint{},
763 "eu-west-2": endpoint{},
764 "eu-west-3": endpoint{},
765 "sa-east-1": endpoint{},
766 "us-east-1": endpoint{},
767 "us-east-2": endpoint{},
768 "us-west-1": endpoint{},
769 "us-west-2": endpoint{},
770 },
771 },
772 "application-autoscaling": service{
596773 Defaults: endpoint{
597 CredentialScope: credentialScope{
598 Service: "pricing",
599 },
600 },
601 Endpoints: endpoints{
602 "ap-south-1": endpoint{},
603 "us-east-1": endpoint{},
604 },
605 },
606 "api.sagemaker": service{
607
774 Protocols: []string{"http", "https"},
775 },
608776 Endpoints: endpoints{
609777 "af-south-1": endpoint{},
610778 "ap-east-1": endpoint{},
611779 "ap-northeast-1": endpoint{},
612780 "ap-northeast-2": endpoint{},
613 "ap-south-1": endpoint{},
614 "ap-southeast-1": endpoint{},
615 "ap-southeast-2": endpoint{},
616 "ca-central-1": endpoint{},
617 "eu-central-1": endpoint{},
618 "eu-north-1": endpoint{},
619 "eu-south-1": endpoint{},
620 "eu-west-1": endpoint{},
621 "eu-west-2": endpoint{},
622 "eu-west-3": endpoint{},
623 "me-south-1": endpoint{},
624 "sa-east-1": endpoint{},
625 "us-east-1": endpoint{},
626 "us-east-1-fips": endpoint{
627 Hostname: "api-fips.sagemaker.us-east-1.amazonaws.com",
628 CredentialScope: credentialScope{
629 Region: "us-east-1",
630 },
631 },
632 "us-east-2": endpoint{},
633 "us-east-2-fips": endpoint{
634 Hostname: "api-fips.sagemaker.us-east-2.amazonaws.com",
635 CredentialScope: credentialScope{
636 Region: "us-east-2",
637 },
638 },
639 "us-west-1": endpoint{},
640 "us-west-1-fips": endpoint{
641 Hostname: "api-fips.sagemaker.us-west-1.amazonaws.com",
642 CredentialScope: credentialScope{
643 Region: "us-west-1",
644 },
645 },
646 "us-west-2": endpoint{},
647 "us-west-2-fips": endpoint{
648 Hostname: "api-fips.sagemaker.us-west-2.amazonaws.com",
649 CredentialScope: credentialScope{
650 Region: "us-west-2",
651 },
652 },
653 },
654 },
655 "apigateway": service{
656
657 Endpoints: endpoints{
658 "af-south-1": endpoint{},
659 "ap-east-1": endpoint{},
660 "ap-northeast-1": endpoint{},
661 "ap-northeast-2": endpoint{},
781 "ap-northeast-3": endpoint{},
662782 "ap-south-1": endpoint{},
663783 "ap-southeast-1": endpoint{},
664784 "ap-southeast-2": endpoint{},
677797 "us-west-2": endpoint{},
678798 },
679799 },
680 "app-integrations": service{
681
682 Endpoints: endpoints{
683 "ap-northeast-1": endpoint{},
684 "ap-southeast-1": endpoint{},
685 "ap-southeast-2": endpoint{},
686 "eu-central-1": endpoint{},
687 "eu-west-2": endpoint{},
688 "us-east-1": endpoint{},
689 "us-west-2": endpoint{},
690 },
691 },
692 "appflow": service{
693
694 Endpoints: endpoints{
695 "ap-northeast-1": endpoint{},
696 "ap-northeast-2": endpoint{},
697 "ap-south-1": endpoint{},
698 "ap-southeast-1": endpoint{},
699 "ap-southeast-2": endpoint{},
700 "ca-central-1": endpoint{},
701 "eu-central-1": endpoint{},
702 "eu-west-1": endpoint{},
703 "eu-west-2": endpoint{},
704 "eu-west-3": endpoint{},
705 "sa-east-1": endpoint{},
706 "us-east-1": endpoint{},
707 "us-east-2": endpoint{},
708 "us-west-1": endpoint{},
709 "us-west-2": endpoint{},
710 },
711 },
712 "application-autoscaling": service{
713 Defaults: endpoint{
714 Protocols: []string{"http", "https"},
715 },
800 "appmesh": service{
801
716802 Endpoints: endpoints{
717803 "af-south-1": endpoint{},
718804 "ap-east-1": endpoint{},
736822 "us-west-2": endpoint{},
737823 },
738824 },
739 "appmesh": service{
825 "appstream2": service{
826 Defaults: endpoint{
827 Protocols: []string{"https"},
828 CredentialScope: credentialScope{
829 Service: "appstream",
830 },
831 },
832 Endpoints: endpoints{
833 "ap-northeast-1": endpoint{},
834 "ap-northeast-2": endpoint{},
835 "ap-south-1": endpoint{},
836 "ap-southeast-1": endpoint{},
837 "ap-southeast-2": endpoint{},
838 "eu-central-1": endpoint{},
839 "eu-west-1": endpoint{},
840 "fips": endpoint{
841 Hostname: "appstream2-fips.us-west-2.amazonaws.com",
842 CredentialScope: credentialScope{
843 Region: "us-west-2",
844 },
845 },
846 "us-east-1": endpoint{},
847 "us-west-2": endpoint{},
848 },
849 },
850 "appsync": service{
740851
741852 Endpoints: endpoints{
742853 "ap-east-1": endpoint{},
760871 "us-west-2": endpoint{},
761872 },
762873 },
763 "appstream2": service{
874 "athena": service{
875
876 Endpoints: endpoints{
877 "af-south-1": endpoint{},
878 "ap-east-1": endpoint{},
879 "ap-northeast-1": endpoint{},
880 "ap-northeast-2": endpoint{},
881 "ap-south-1": endpoint{},
882 "ap-southeast-1": endpoint{},
883 "ap-southeast-2": endpoint{},
884 "ca-central-1": endpoint{},
885 "eu-central-1": endpoint{},
886 "eu-north-1": endpoint{},
887 "eu-south-1": endpoint{},
888 "eu-west-1": endpoint{},
889 "eu-west-2": endpoint{},
890 "eu-west-3": endpoint{},
891 "fips-us-east-1": endpoint{
892 Hostname: "athena-fips.us-east-1.amazonaws.com",
893 CredentialScope: credentialScope{
894 Region: "us-east-1",
895 },
896 },
897 "fips-us-east-2": endpoint{
898 Hostname: "athena-fips.us-east-2.amazonaws.com",
899 CredentialScope: credentialScope{
900 Region: "us-east-2",
901 },
902 },
903 "fips-us-west-1": endpoint{
904 Hostname: "athena-fips.us-west-1.amazonaws.com",
905 CredentialScope: credentialScope{
906 Region: "us-west-1",
907 },
908 },
909 "fips-us-west-2": endpoint{
910 Hostname: "athena-fips.us-west-2.amazonaws.com",
911 CredentialScope: credentialScope{
912 Region: "us-west-2",
913 },
914 },
915 "me-south-1": endpoint{},
916 "sa-east-1": endpoint{},
917 "us-east-1": endpoint{},
918 "us-east-2": endpoint{},
919 "us-west-1": endpoint{},
920 "us-west-2": endpoint{},
921 },
922 },
923 "autoscaling": service{
764924 Defaults: endpoint{
765 Protocols: []string{"https"},
766 CredentialScope: credentialScope{
767 Service: "appstream",
768 },
769 },
770 Endpoints: endpoints{
771 "ap-northeast-1": endpoint{},
772 "ap-northeast-2": endpoint{},
773 "ap-south-1": endpoint{},
774 "ap-southeast-1": endpoint{},
775 "ap-southeast-2": endpoint{},
776 "eu-central-1": endpoint{},
777 "eu-west-1": endpoint{},
778 "fips": endpoint{
779 Hostname: "appstream2-fips.us-west-2.amazonaws.com",
780 CredentialScope: credentialScope{
781 Region: "us-west-2",
782 },
783 },
784 "us-east-1": endpoint{},
785 "us-west-2": endpoint{},
786 },
787 },
788 "appsync": service{
789
790 Endpoints: endpoints{
925 Protocols: []string{"http", "https"},
926 },
927 Endpoints: endpoints{
928 "af-south-1": endpoint{},
791929 "ap-east-1": endpoint{},
792930 "ap-northeast-1": endpoint{},
793931 "ap-northeast-2": endpoint{},
932 "ap-northeast-3": endpoint{},
794933 "ap-south-1": endpoint{},
795934 "ap-southeast-1": endpoint{},
796935 "ap-southeast-2": endpoint{},
809948 "us-west-2": endpoint{},
810949 },
811950 },
812 "athena": service{
813
951 "autoscaling-plans": service{
952 Defaults: endpoint{
953 Protocols: []string{"http", "https"},
954 },
814955 Endpoints: endpoints{
815956 "af-south-1": endpoint{},
816957 "ap-east-1": endpoint{},
834975 "us-west-2": endpoint{},
835976 },
836977 },
837 "autoscaling": service{
838 Defaults: endpoint{
839 Protocols: []string{"http", "https"},
840 },
978 "backup": service{
979
841980 Endpoints: endpoints{
842981 "af-south-1": endpoint{},
843982 "ap-east-1": endpoint{},
8611000 "us-west-2": endpoint{},
8621001 },
8631002 },
864 "autoscaling-plans": service{
1003 "batch": service{
1004
1005 Endpoints: endpoints{
1006 "ap-east-1": endpoint{},
1007 "ap-northeast-1": endpoint{},
1008 "ap-northeast-2": endpoint{},
1009 "ap-south-1": endpoint{},
1010 "ap-southeast-1": endpoint{},
1011 "ap-southeast-2": endpoint{},
1012 "ca-central-1": endpoint{},
1013 "eu-central-1": endpoint{},
1014 "eu-north-1": endpoint{},
1015 "eu-south-1": endpoint{},
1016 "eu-west-1": endpoint{},
1017 "eu-west-2": endpoint{},
1018 "eu-west-3": endpoint{},
1019 "fips-us-east-1": endpoint{
1020 Hostname: "fips.batch.us-east-1.amazonaws.com",
1021 CredentialScope: credentialScope{
1022 Region: "us-east-1",
1023 },
1024 },
1025 "fips-us-east-2": endpoint{
1026 Hostname: "fips.batch.us-east-2.amazonaws.com",
1027 CredentialScope: credentialScope{
1028 Region: "us-east-2",
1029 },
1030 },
1031 "fips-us-west-1": endpoint{
1032 Hostname: "fips.batch.us-west-1.amazonaws.com",
1033 CredentialScope: credentialScope{
1034 Region: "us-west-1",
1035 },
1036 },
1037 "fips-us-west-2": endpoint{
1038 Hostname: "fips.batch.us-west-2.amazonaws.com",
1039 CredentialScope: credentialScope{
1040 Region: "us-west-2",
1041 },
1042 },
1043 "me-south-1": endpoint{},
1044 "sa-east-1": endpoint{},
1045 "us-east-1": endpoint{},
1046 "us-east-2": endpoint{},
1047 "us-west-1": endpoint{},
1048 "us-west-2": endpoint{},
1049 },
1050 },
1051 "budgets": service{
1052 PartitionEndpoint: "aws-global",
1053 IsRegionalized: boxedFalse,
1054
1055 Endpoints: endpoints{
1056 "aws-global": endpoint{
1057 Hostname: "budgets.amazonaws.com",
1058 CredentialScope: credentialScope{
1059 Region: "us-east-1",
1060 },
1061 },
1062 },
1063 },
1064 "ce": service{
1065 PartitionEndpoint: "aws-global",
1066 IsRegionalized: boxedFalse,
1067
1068 Endpoints: endpoints{
1069 "aws-global": endpoint{
1070 Hostname: "ce.us-east-1.amazonaws.com",
1071 CredentialScope: credentialScope{
1072 Region: "us-east-1",
1073 },
1074 },
1075 },
1076 },
1077 "chime": service{
1078 PartitionEndpoint: "aws-global",
1079 IsRegionalized: boxedFalse,
8651080 Defaults: endpoint{
866 Protocols: []string{"http", "https"},
867 },
868 Endpoints: endpoints{
869 "af-south-1": endpoint{},
1081 Protocols: []string{"https"},
1082 },
1083 Endpoints: endpoints{
1084 "aws-global": endpoint{
1085 Hostname: "chime.us-east-1.amazonaws.com",
1086 Protocols: []string{"https"},
1087 CredentialScope: credentialScope{
1088 Region: "us-east-1",
1089 },
1090 },
1091 },
1092 },
1093 "cloud9": service{
1094
1095 Endpoints: endpoints{
8701096 "ap-east-1": endpoint{},
8711097 "ap-northeast-1": endpoint{},
8721098 "ap-northeast-2": endpoint{},
8881114 "us-west-2": endpoint{},
8891115 },
8901116 },
891 "backup": service{
892
1117 "clouddirectory": service{
1118
1119 Endpoints: endpoints{
1120 "ap-southeast-1": endpoint{},
1121 "ap-southeast-2": endpoint{},
1122 "ca-central-1": endpoint{},
1123 "eu-central-1": endpoint{},
1124 "eu-west-1": endpoint{},
1125 "eu-west-2": endpoint{},
1126 "us-east-1": endpoint{},
1127 "us-east-2": endpoint{},
1128 "us-west-2": endpoint{},
1129 },
1130 },
1131 "cloudformation": service{
1132
1133 Endpoints: endpoints{
1134 "af-south-1": endpoint{},
1135 "ap-east-1": endpoint{},
1136 "ap-northeast-1": endpoint{},
1137 "ap-northeast-2": endpoint{},
1138 "ap-northeast-3": endpoint{},
1139 "ap-south-1": endpoint{},
1140 "ap-southeast-1": endpoint{},
1141 "ap-southeast-2": endpoint{},
1142 "ca-central-1": endpoint{},
1143 "eu-central-1": endpoint{},
1144 "eu-north-1": endpoint{},
1145 "eu-south-1": endpoint{},
1146 "eu-west-1": endpoint{},
1147 "eu-west-2": endpoint{},
1148 "eu-west-3": endpoint{},
1149 "me-south-1": endpoint{},
1150 "sa-east-1": endpoint{},
1151 "us-east-1": endpoint{},
1152 "us-east-1-fips": endpoint{
1153 Hostname: "cloudformation-fips.us-east-1.amazonaws.com",
1154 CredentialScope: credentialScope{
1155 Region: "us-east-1",
1156 },
1157 },
1158 "us-east-2": endpoint{},
1159 "us-east-2-fips": endpoint{
1160 Hostname: "cloudformation-fips.us-east-2.amazonaws.com",
1161 CredentialScope: credentialScope{
1162 Region: "us-east-2",
1163 },
1164 },
1165 "us-west-1": endpoint{},
1166 "us-west-1-fips": endpoint{
1167 Hostname: "cloudformation-fips.us-west-1.amazonaws.com",
1168 CredentialScope: credentialScope{
1169 Region: "us-west-1",
1170 },
1171 },
1172 "us-west-2": endpoint{},
1173 "us-west-2-fips": endpoint{
1174 Hostname: "cloudformation-fips.us-west-2.amazonaws.com",
1175 CredentialScope: credentialScope{
1176 Region: "us-west-2",
1177 },
1178 },
1179 },
1180 },
1181 "cloudfront": service{
1182 PartitionEndpoint: "aws-global",
1183 IsRegionalized: boxedFalse,
1184
1185 Endpoints: endpoints{
1186 "aws-global": endpoint{
1187 Hostname: "cloudfront.amazonaws.com",
1188 Protocols: []string{"http", "https"},
1189 CredentialScope: credentialScope{
1190 Region: "us-east-1",
1191 },
1192 },
1193 },
1194 },
1195 "cloudhsm": service{
1196
1197 Endpoints: endpoints{
1198 "ap-northeast-1": endpoint{},
1199 "ap-southeast-1": endpoint{},
1200 "ap-southeast-2": endpoint{},
1201 "ca-central-1": endpoint{},
1202 "eu-central-1": endpoint{},
1203 "eu-west-1": endpoint{},
1204 "us-east-1": endpoint{},
1205 "us-east-2": endpoint{},
1206 "us-west-1": endpoint{},
1207 "us-west-2": endpoint{},
1208 },
1209 },
1210 "cloudhsmv2": service{
1211 Defaults: endpoint{
1212 CredentialScope: credentialScope{
1213 Service: "cloudhsm",
1214 },
1215 },
8931216 Endpoints: endpoints{
8941217 "af-south-1": endpoint{},
8951218 "ap-east-1": endpoint{},
9131236 "us-west-2": endpoint{},
9141237 },
9151238 },
916 "batch": service{
917
918 Endpoints: endpoints{
1239 "cloudsearch": service{
1240
1241 Endpoints: endpoints{
1242 "ap-northeast-1": endpoint{},
1243 "ap-northeast-2": endpoint{},
1244 "ap-southeast-1": endpoint{},
1245 "ap-southeast-2": endpoint{},
1246 "eu-central-1": endpoint{},
1247 "eu-west-1": endpoint{},
1248 "sa-east-1": endpoint{},
1249 "us-east-1": endpoint{},
1250 "us-west-1": endpoint{},
1251 "us-west-2": endpoint{},
1252 },
1253 },
1254 "cloudtrail": service{
1255
1256 Endpoints: endpoints{
1257 "af-south-1": endpoint{},
9191258 "ap-east-1": endpoint{},
9201259 "ap-northeast-1": endpoint{},
9211260 "ap-northeast-2": endpoint{},
9301269 "eu-west-2": endpoint{},
9311270 "eu-west-3": endpoint{},
9321271 "fips-us-east-1": endpoint{
933 Hostname: "fips.batch.us-east-1.amazonaws.com",
1272 Hostname: "cloudtrail-fips.us-east-1.amazonaws.com",
9341273 CredentialScope: credentialScope{
9351274 Region: "us-east-1",
9361275 },
9371276 },
9381277 "fips-us-east-2": endpoint{
939 Hostname: "fips.batch.us-east-2.amazonaws.com",
1278 Hostname: "cloudtrail-fips.us-east-2.amazonaws.com",
9401279 CredentialScope: credentialScope{
9411280 Region: "us-east-2",
9421281 },
9431282 },
9441283 "fips-us-west-1": endpoint{
945 Hostname: "fips.batch.us-west-1.amazonaws.com",
1284 Hostname: "cloudtrail-fips.us-west-1.amazonaws.com",
9461285 CredentialScope: credentialScope{
9471286 Region: "us-west-1",
9481287 },
9491288 },
9501289 "fips-us-west-2": endpoint{
951 Hostname: "fips.batch.us-west-2.amazonaws.com",
1290 Hostname: "cloudtrail-fips.us-west-2.amazonaws.com",
9521291 CredentialScope: credentialScope{
9531292 Region: "us-west-2",
9541293 },
9611300 "us-west-2": endpoint{},
9621301 },
9631302 },
964 "budgets": service{
965 PartitionEndpoint: "aws-global",
966 IsRegionalized: boxedFalse,
967
968 Endpoints: endpoints{
969 "aws-global": endpoint{
970 Hostname: "budgets.amazonaws.com",
971 CredentialScope: credentialScope{
972 Region: "us-east-1",
973 },
974 },
975 },
976 },
977 "ce": service{
978 PartitionEndpoint: "aws-global",
979 IsRegionalized: boxedFalse,
980
981 Endpoints: endpoints{
982 "aws-global": endpoint{
983 Hostname: "ce.us-east-1.amazonaws.com",
984 CredentialScope: credentialScope{
985 Region: "us-east-1",
986 },
987 },
988 },
989 },
990 "chime": service{
991 PartitionEndpoint: "aws-global",
992 IsRegionalized: boxedFalse,
993 Defaults: endpoint{
994 Protocols: []string{"https"},
995 },
996 Endpoints: endpoints{
997 "aws-global": endpoint{
998 Hostname: "chime.us-east-1.amazonaws.com",
999 Protocols: []string{"https"},
1000 CredentialScope: credentialScope{
1001 Region: "us-east-1",
1002 },
1003 },
1004 },
1005 },
1006 "cloud9": service{
1007
1008 Endpoints: endpoints{
1009 "ap-east-1": endpoint{},
1010 "ap-northeast-1": endpoint{},
1011 "ap-northeast-2": endpoint{},
1012 "ap-south-1": endpoint{},
1013 "ap-southeast-1": endpoint{},
1014 "ap-southeast-2": endpoint{},
1015 "ca-central-1": endpoint{},
1303 "codeartifact": service{
1304
1305 Endpoints: endpoints{
1306 "ap-northeast-1": endpoint{},
1307 "ap-south-1": endpoint{},
1308 "ap-southeast-1": endpoint{},
1309 "ap-southeast-2": endpoint{},
10161310 "eu-central-1": endpoint{},
10171311 "eu-north-1": endpoint{},
1018 "eu-south-1": endpoint{},
1019 "eu-west-1": endpoint{},
1020 "eu-west-2": endpoint{},
1021 "eu-west-3": endpoint{},
1022 "me-south-1": endpoint{},
1023 "sa-east-1": endpoint{},
1024 "us-east-1": endpoint{},
1025 "us-east-2": endpoint{},
1026 "us-west-1": endpoint{},
1027 "us-west-2": endpoint{},
1028 },
1029 },
1030 "clouddirectory": service{
1031
1032 Endpoints: endpoints{
1033 "ap-southeast-1": endpoint{},
1034 "ap-southeast-2": endpoint{},
1035 "ca-central-1": endpoint{},
1036 "eu-central-1": endpoint{},
1037 "eu-west-1": endpoint{},
1038 "eu-west-2": endpoint{},
1312 "eu-west-1": endpoint{},
10391313 "us-east-1": endpoint{},
10401314 "us-east-2": endpoint{},
10411315 "us-west-2": endpoint{},
10421316 },
10431317 },
1044 "cloudformation": service{
1318 "codebuild": service{
10451319
10461320 Endpoints: endpoints{
10471321 "af-south-1": endpoint{},
10621336 "sa-east-1": endpoint{},
10631337 "us-east-1": endpoint{},
10641338 "us-east-1-fips": endpoint{
1065 Hostname: "cloudformation-fips.us-east-1.amazonaws.com",
1339 Hostname: "codebuild-fips.us-east-1.amazonaws.com",
10661340 CredentialScope: credentialScope{
10671341 Region: "us-east-1",
10681342 },
10691343 },
10701344 "us-east-2": endpoint{},
10711345 "us-east-2-fips": endpoint{
1072 Hostname: "cloudformation-fips.us-east-2.amazonaws.com",
1346 Hostname: "codebuild-fips.us-east-2.amazonaws.com",
10731347 CredentialScope: credentialScope{
10741348 Region: "us-east-2",
10751349 },
10761350 },
10771351 "us-west-1": endpoint{},
10781352 "us-west-1-fips": endpoint{
1079 Hostname: "cloudformation-fips.us-west-1.amazonaws.com",
1353 Hostname: "codebuild-fips.us-west-1.amazonaws.com",
10801354 CredentialScope: credentialScope{
10811355 Region: "us-west-1",
10821356 },
10831357 },
10841358 "us-west-2": endpoint{},
10851359 "us-west-2-fips": endpoint{
1086 Hostname: "cloudformation-fips.us-west-2.amazonaws.com",
1360 Hostname: "codebuild-fips.us-west-2.amazonaws.com",
10871361 CredentialScope: credentialScope{
10881362 Region: "us-west-2",
10891363 },
10901364 },
10911365 },
10921366 },
1093 "cloudfront": service{
1094 PartitionEndpoint: "aws-global",
1095 IsRegionalized: boxedFalse,
1096
1097 Endpoints: endpoints{
1098 "aws-global": endpoint{
1099 Hostname: "cloudfront.amazonaws.com",
1100 Protocols: []string{"http", "https"},
1101 CredentialScope: credentialScope{
1102 Region: "us-east-1",
1103 },
1104 },
1105 },
1106 },
1107 "cloudhsm": service{
1108
1109 Endpoints: endpoints{
1110 "ap-northeast-1": endpoint{},
1111 "ap-southeast-1": endpoint{},
1112 "ap-southeast-2": endpoint{},
1113 "ca-central-1": endpoint{},
1114 "eu-central-1": endpoint{},
1115 "eu-west-1": endpoint{},
1116 "us-east-1": endpoint{},
1117 "us-east-2": endpoint{},
1118 "us-west-1": endpoint{},
1119 "us-west-2": endpoint{},
1120 },
1121 },
1122 "cloudhsmv2": service{
1123 Defaults: endpoint{
1124 CredentialScope: credentialScope{
1125 Service: "cloudhsm",
1126 },
1127 },
1128 Endpoints: endpoints{
1129 "af-south-1": endpoint{},
1367 "codecommit": service{
1368
1369 Endpoints: endpoints{
11301370 "ap-east-1": endpoint{},
11311371 "ap-northeast-1": endpoint{},
11321372 "ap-northeast-2": endpoint{},
11401380 "eu-west-1": endpoint{},
11411381 "eu-west-2": endpoint{},
11421382 "eu-west-3": endpoint{},
1143 "me-south-1": endpoint{},
1144 "sa-east-1": endpoint{},
1145 "us-east-1": endpoint{},
1146 "us-east-2": endpoint{},
1147 "us-west-1": endpoint{},
1148 "us-west-2": endpoint{},
1149 },
1150 },
1151 "cloudsearch": service{
1152
1153 Endpoints: endpoints{
1154 "ap-northeast-1": endpoint{},
1155 "ap-northeast-2": endpoint{},
1156 "ap-southeast-1": endpoint{},
1157 "ap-southeast-2": endpoint{},
1158 "eu-central-1": endpoint{},
1159 "eu-west-1": endpoint{},
1160 "sa-east-1": endpoint{},
1161 "us-east-1": endpoint{},
1162 "us-west-1": endpoint{},
1163 "us-west-2": endpoint{},
1164 },
1165 },
1166 "cloudtrail": service{
1167
1168 Endpoints: endpoints{
1169 "af-south-1": endpoint{},
1170 "ap-east-1": endpoint{},
1171 "ap-northeast-1": endpoint{},
1172 "ap-northeast-2": endpoint{},
1173 "ap-south-1": endpoint{},
1174 "ap-southeast-1": endpoint{},
1175 "ap-southeast-2": endpoint{},
1176 "ca-central-1": endpoint{},
1177 "eu-central-1": endpoint{},
1178 "eu-north-1": endpoint{},
1179 "eu-south-1": endpoint{},
1180 "eu-west-1": endpoint{},
1181 "eu-west-2": endpoint{},
1182 "eu-west-3": endpoint{},
1183 "fips-us-east-1": endpoint{
1184 Hostname: "cloudtrail-fips.us-east-1.amazonaws.com",
1185 CredentialScope: credentialScope{
1186 Region: "us-east-1",
1187 },
1188 },
1189 "fips-us-east-2": endpoint{
1190 Hostname: "cloudtrail-fips.us-east-2.amazonaws.com",
1191 CredentialScope: credentialScope{
1192 Region: "us-east-2",
1193 },
1194 },
1195 "fips-us-west-1": endpoint{
1196 Hostname: "cloudtrail-fips.us-west-1.amazonaws.com",
1197 CredentialScope: credentialScope{
1198 Region: "us-west-1",
1199 },
1200 },
1201 "fips-us-west-2": endpoint{
1202 Hostname: "cloudtrail-fips.us-west-2.amazonaws.com",
1203 CredentialScope: credentialScope{
1204 Region: "us-west-2",
1383 "fips": endpoint{
1384 Hostname: "codecommit-fips.ca-central-1.amazonaws.com",
1385 CredentialScope: credentialScope{
1386 Region: "ca-central-1",
12051387 },
12061388 },
12071389 "me-south-1": endpoint{},
12121394 "us-west-2": endpoint{},
12131395 },
12141396 },
1215 "codeartifact": service{
1216
1217 Endpoints: endpoints{
1218 "ap-northeast-1": endpoint{},
1219 "ap-south-1": endpoint{},
1220 "ap-southeast-1": endpoint{},
1221 "ap-southeast-2": endpoint{},
1222 "eu-central-1": endpoint{},
1223 "eu-north-1": endpoint{},
1224 "eu-west-1": endpoint{},
1225 "us-east-1": endpoint{},
1226 "us-east-2": endpoint{},
1227 "us-west-2": endpoint{},
1228 },
1229 },
1230 "codebuild": service{
1231
1232 Endpoints: endpoints{
1397 "codedeploy": service{
1398
1399 Endpoints: endpoints{
1400 "af-south-1": endpoint{},
12331401 "ap-east-1": endpoint{},
12341402 "ap-northeast-1": endpoint{},
12351403 "ap-northeast-2": endpoint{},
1404 "ap-northeast-3": endpoint{},
12361405 "ap-south-1": endpoint{},
12371406 "ap-southeast-1": endpoint{},
12381407 "ap-southeast-2": endpoint{},
12471416 "sa-east-1": endpoint{},
12481417 "us-east-1": endpoint{},
12491418 "us-east-1-fips": endpoint{
1250 Hostname: "codebuild-fips.us-east-1.amazonaws.com",
1419 Hostname: "codedeploy-fips.us-east-1.amazonaws.com",
12511420 CredentialScope: credentialScope{
12521421 Region: "us-east-1",
12531422 },
12541423 },
12551424 "us-east-2": endpoint{},
12561425 "us-east-2-fips": endpoint{
1257 Hostname: "codebuild-fips.us-east-2.amazonaws.com",
1426 Hostname: "codedeploy-fips.us-east-2.amazonaws.com",
12581427 CredentialScope: credentialScope{
12591428 Region: "us-east-2",
12601429 },
12611430 },
12621431 "us-west-1": endpoint{},
12631432 "us-west-1-fips": endpoint{
1264 Hostname: "codebuild-fips.us-west-1.amazonaws.com",
1433 Hostname: "codedeploy-fips.us-west-1.amazonaws.com",
12651434 CredentialScope: credentialScope{
12661435 Region: "us-west-1",
12671436 },
12681437 },
12691438 "us-west-2": endpoint{},
12701439 "us-west-2-fips": endpoint{
1271 Hostname: "codebuild-fips.us-west-2.amazonaws.com",
1440 Hostname: "codedeploy-fips.us-west-2.amazonaws.com",
12721441 CredentialScope: credentialScope{
12731442 Region: "us-west-2",
12741443 },
12751444 },
12761445 },
12771446 },
1278 "codecommit": service{
1447 "codeguru-reviewer": service{
1448
1449 Endpoints: endpoints{
1450 "ap-northeast-1": endpoint{},
1451 "ap-southeast-1": endpoint{},
1452 "ap-southeast-2": endpoint{},
1453 "eu-central-1": endpoint{},
1454 "eu-north-1": endpoint{},
1455 "eu-west-1": endpoint{},
1456 "eu-west-2": endpoint{},
1457 "us-east-1": endpoint{},
1458 "us-east-2": endpoint{},
1459 "us-west-2": endpoint{},
1460 },
1461 },
1462 "codepipeline": service{
12791463
12801464 Endpoints: endpoints{
12811465 "ap-east-1": endpoint{},
12911475 "eu-west-1": endpoint{},
12921476 "eu-west-2": endpoint{},
12931477 "eu-west-3": endpoint{},
1294 "fips": endpoint{
1295 Hostname: "codecommit-fips.ca-central-1.amazonaws.com",
1478 "fips-ca-central-1": endpoint{
1479 Hostname: "codepipeline-fips.ca-central-1.amazonaws.com",
12961480 CredentialScope: credentialScope{
12971481 Region: "ca-central-1",
1482 },
1483 },
1484 "fips-us-east-1": endpoint{
1485 Hostname: "codepipeline-fips.us-east-1.amazonaws.com",
1486 CredentialScope: credentialScope{
1487 Region: "us-east-1",
1488 },
1489 },
1490 "fips-us-east-2": endpoint{
1491 Hostname: "codepipeline-fips.us-east-2.amazonaws.com",
1492 CredentialScope: credentialScope{
1493 Region: "us-east-2",
1494 },
1495 },
1496 "fips-us-west-1": endpoint{
1497 Hostname: "codepipeline-fips.us-west-1.amazonaws.com",
1498 CredentialScope: credentialScope{
1499 Region: "us-west-1",
1500 },
1501 },
1502 "fips-us-west-2": endpoint{
1503 Hostname: "codepipeline-fips.us-west-2.amazonaws.com",
1504 CredentialScope: credentialScope{
1505 Region: "us-west-2",
1506 },
1507 },
1508 "sa-east-1": endpoint{},
1509 "us-east-1": endpoint{},
1510 "us-east-2": endpoint{},
1511 "us-west-1": endpoint{},
1512 "us-west-2": endpoint{},
1513 },
1514 },
1515 "codestar": service{
1516
1517 Endpoints: endpoints{
1518 "ap-northeast-1": endpoint{},
1519 "ap-northeast-2": endpoint{},
1520 "ap-southeast-1": endpoint{},
1521 "ap-southeast-2": endpoint{},
1522 "ca-central-1": endpoint{},
1523 "eu-central-1": endpoint{},
1524 "eu-north-1": endpoint{},
1525 "eu-west-1": endpoint{},
1526 "eu-west-2": endpoint{},
1527 "us-east-1": endpoint{},
1528 "us-east-2": endpoint{},
1529 "us-west-1": endpoint{},
1530 "us-west-2": endpoint{},
1531 },
1532 },
1533 "codestar-connections": service{
1534
1535 Endpoints: endpoints{
1536 "ap-northeast-1": endpoint{},
1537 "ap-northeast-2": endpoint{},
1538 "ap-south-1": endpoint{},
1539 "ap-southeast-1": endpoint{},
1540 "ap-southeast-2": endpoint{},
1541 "ca-central-1": endpoint{},
1542 "eu-central-1": endpoint{},
1543 "eu-north-1": endpoint{},
1544 "eu-west-1": endpoint{},
1545 "eu-west-2": endpoint{},
1546 "eu-west-3": endpoint{},
1547 "sa-east-1": endpoint{},
1548 "us-east-1": endpoint{},
1549 "us-east-2": endpoint{},
1550 "us-west-1": endpoint{},
1551 "us-west-2": endpoint{},
1552 },
1553 },
1554 "cognito-identity": service{
1555
1556 Endpoints: endpoints{
1557 "ap-northeast-1": endpoint{},
1558 "ap-northeast-2": endpoint{},
1559 "ap-south-1": endpoint{},
1560 "ap-southeast-1": endpoint{},
1561 "ap-southeast-2": endpoint{},
1562 "ca-central-1": endpoint{},
1563 "eu-central-1": endpoint{},
1564 "eu-north-1": endpoint{},
1565 "eu-west-1": endpoint{},
1566 "eu-west-2": endpoint{},
1567 "eu-west-3": endpoint{},
1568 "fips-us-east-1": endpoint{
1569 Hostname: "cognito-identity-fips.us-east-1.amazonaws.com",
1570 CredentialScope: credentialScope{
1571 Region: "us-east-1",
1572 },
1573 },
1574 "fips-us-east-2": endpoint{
1575 Hostname: "cognito-identity-fips.us-east-2.amazonaws.com",
1576 CredentialScope: credentialScope{
1577 Region: "us-east-2",
1578 },
1579 },
1580 "fips-us-west-2": endpoint{
1581 Hostname: "cognito-identity-fips.us-west-2.amazonaws.com",
1582 CredentialScope: credentialScope{
1583 Region: "us-west-2",
1584 },
1585 },
1586 "sa-east-1": endpoint{},
1587 "us-east-1": endpoint{},
1588 "us-east-2": endpoint{},
1589 "us-west-1": endpoint{},
1590 "us-west-2": endpoint{},
1591 },
1592 },
1593 "cognito-idp": service{
1594
1595 Endpoints: endpoints{
1596 "ap-northeast-1": endpoint{},
1597 "ap-northeast-2": endpoint{},
1598 "ap-south-1": endpoint{},
1599 "ap-southeast-1": endpoint{},
1600 "ap-southeast-2": endpoint{},
1601 "ca-central-1": endpoint{},
1602 "eu-central-1": endpoint{},
1603 "eu-north-1": endpoint{},
1604 "eu-west-1": endpoint{},
1605 "eu-west-2": endpoint{},
1606 "eu-west-3": endpoint{},
1607 "fips-us-east-1": endpoint{
1608 Hostname: "cognito-idp-fips.us-east-1.amazonaws.com",
1609 CredentialScope: credentialScope{
1610 Region: "us-east-1",
1611 },
1612 },
1613 "fips-us-east-2": endpoint{
1614 Hostname: "cognito-idp-fips.us-east-2.amazonaws.com",
1615 CredentialScope: credentialScope{
1616 Region: "us-east-2",
1617 },
1618 },
1619 "fips-us-west-1": endpoint{
1620 Hostname: "cognito-idp-fips.us-west-1.amazonaws.com",
1621 CredentialScope: credentialScope{
1622 Region: "us-west-1",
1623 },
1624 },
1625 "fips-us-west-2": endpoint{
1626 Hostname: "cognito-idp-fips.us-west-2.amazonaws.com",
1627 CredentialScope: credentialScope{
1628 Region: "us-west-2",
1629 },
1630 },
1631 "sa-east-1": endpoint{},
1632 "us-east-1": endpoint{},
1633 "us-east-2": endpoint{},
1634 "us-west-1": endpoint{},
1635 "us-west-2": endpoint{},
1636 },
1637 },
1638 "cognito-sync": service{
1639
1640 Endpoints: endpoints{
1641 "ap-northeast-1": endpoint{},
1642 "ap-northeast-2": endpoint{},
1643 "ap-south-1": endpoint{},
1644 "ap-southeast-1": endpoint{},
1645 "ap-southeast-2": endpoint{},
1646 "eu-central-1": endpoint{},
1647 "eu-west-1": endpoint{},
1648 "eu-west-2": endpoint{},
1649 "us-east-1": endpoint{},
1650 "us-east-2": endpoint{},
1651 "us-west-2": endpoint{},
1652 },
1653 },
1654 "comprehend": service{
1655 Defaults: endpoint{
1656 Protocols: []string{"https"},
1657 },
1658 Endpoints: endpoints{
1659 "ap-northeast-1": endpoint{},
1660 "ap-northeast-2": endpoint{},
1661 "ap-south-1": endpoint{},
1662 "ap-southeast-1": endpoint{},
1663 "ap-southeast-2": endpoint{},
1664 "ca-central-1": endpoint{},
1665 "eu-central-1": endpoint{},
1666 "eu-west-1": endpoint{},
1667 "eu-west-2": endpoint{},
1668 "fips-us-east-1": endpoint{
1669 Hostname: "comprehend-fips.us-east-1.amazonaws.com",
1670 CredentialScope: credentialScope{
1671 Region: "us-east-1",
1672 },
1673 },
1674 "fips-us-east-2": endpoint{
1675 Hostname: "comprehend-fips.us-east-2.amazonaws.com",
1676 CredentialScope: credentialScope{
1677 Region: "us-east-2",
1678 },
1679 },
1680 "fips-us-west-2": endpoint{
1681 Hostname: "comprehend-fips.us-west-2.amazonaws.com",
1682 CredentialScope: credentialScope{
1683 Region: "us-west-2",
1684 },
1685 },
1686 "us-east-1": endpoint{},
1687 "us-east-2": endpoint{},
1688 "us-west-2": endpoint{},
1689 },
1690 },
1691 "comprehendmedical": service{
1692
1693 Endpoints: endpoints{
1694 "ap-southeast-2": endpoint{},
1695 "ca-central-1": endpoint{},
1696 "eu-west-1": endpoint{},
1697 "eu-west-2": endpoint{},
1698 "fips-us-east-1": endpoint{
1699 Hostname: "comprehendmedical-fips.us-east-1.amazonaws.com",
1700 CredentialScope: credentialScope{
1701 Region: "us-east-1",
1702 },
1703 },
1704 "fips-us-east-2": endpoint{
1705 Hostname: "comprehendmedical-fips.us-east-2.amazonaws.com",
1706 CredentialScope: credentialScope{
1707 Region: "us-east-2",
1708 },
1709 },
1710 "fips-us-west-2": endpoint{
1711 Hostname: "comprehendmedical-fips.us-west-2.amazonaws.com",
1712 CredentialScope: credentialScope{
1713 Region: "us-west-2",
1714 },
1715 },
1716 "us-east-1": endpoint{},
1717 "us-east-2": endpoint{},
1718 "us-west-2": endpoint{},
1719 },
1720 },
1721 "config": service{
1722
1723 Endpoints: endpoints{
1724 "af-south-1": endpoint{},
1725 "ap-east-1": endpoint{},
1726 "ap-northeast-1": endpoint{},
1727 "ap-northeast-2": endpoint{},
1728 "ap-northeast-3": endpoint{},
1729 "ap-south-1": endpoint{},
1730 "ap-southeast-1": endpoint{},
1731 "ap-southeast-2": endpoint{},
1732 "ca-central-1": endpoint{},
1733 "eu-central-1": endpoint{},
1734 "eu-north-1": endpoint{},
1735 "eu-south-1": endpoint{},
1736 "eu-west-1": endpoint{},
1737 "eu-west-2": endpoint{},
1738 "eu-west-3": endpoint{},
1739 "fips-us-east-1": endpoint{
1740 Hostname: "config-fips.us-east-1.amazonaws.com",
1741 CredentialScope: credentialScope{
1742 Region: "us-east-1",
1743 },
1744 },
1745 "fips-us-east-2": endpoint{
1746 Hostname: "config-fips.us-east-2.amazonaws.com",
1747 CredentialScope: credentialScope{
1748 Region: "us-east-2",
1749 },
1750 },
1751 "fips-us-west-1": endpoint{
1752 Hostname: "config-fips.us-west-1.amazonaws.com",
1753 CredentialScope: credentialScope{
1754 Region: "us-west-1",
1755 },
1756 },
1757 "fips-us-west-2": endpoint{
1758 Hostname: "config-fips.us-west-2.amazonaws.com",
1759 CredentialScope: credentialScope{
1760 Region: "us-west-2",
12981761 },
12991762 },
13001763 "me-south-1": endpoint{},
13051768 "us-west-2": endpoint{},
13061769 },
13071770 },
1308 "codedeploy": service{
1309
1310 Endpoints: endpoints{
1311 "af-south-1": endpoint{},
1312 "ap-east-1": endpoint{},
1313 "ap-northeast-1": endpoint{},
1314 "ap-northeast-2": endpoint{},
1315 "ap-south-1": endpoint{},
1316 "ap-southeast-1": endpoint{},
1317 "ap-southeast-2": endpoint{},
1318 "ca-central-1": endpoint{},
1771 "connect": service{
1772
1773 Endpoints: endpoints{
1774 "ap-northeast-1": endpoint{},
1775 "ap-southeast-1": endpoint{},
1776 "ap-southeast-2": endpoint{},
1777 "eu-central-1": endpoint{},
1778 "eu-west-2": endpoint{},
1779 "us-east-1": endpoint{},
1780 "us-west-2": endpoint{},
1781 },
1782 },
1783 "contact-lens": service{
1784
1785 Endpoints: endpoints{
1786 "ap-northeast-1": endpoint{},
1787 "ap-southeast-2": endpoint{},
1788 "eu-central-1": endpoint{},
1789 "eu-west-2": endpoint{},
1790 "us-east-1": endpoint{},
1791 "us-west-2": endpoint{},
1792 },
1793 },
1794 "cur": service{
1795
1796 Endpoints: endpoints{
1797 "us-east-1": endpoint{},
1798 },
1799 },
1800 "data.mediastore": service{
1801
1802 Endpoints: endpoints{
1803 "ap-northeast-1": endpoint{},
1804 "ap-northeast-2": endpoint{},
1805 "ap-southeast-2": endpoint{},
13191806 "eu-central-1": endpoint{},
13201807 "eu-north-1": endpoint{},
1321 "eu-south-1": endpoint{},
1322 "eu-west-1": endpoint{},
1323 "eu-west-2": endpoint{},
1324 "eu-west-3": endpoint{},
1325 "me-south-1": endpoint{},
1326 "sa-east-1": endpoint{},
1808 "eu-west-1": endpoint{},
1809 "eu-west-2": endpoint{},
13271810 "us-east-1": endpoint{},
1328 "us-east-1-fips": endpoint{
1329 Hostname: "codedeploy-fips.us-east-1.amazonaws.com",
1330 CredentialScope: credentialScope{
1331 Region: "us-east-1",
1332 },
1333 },
1334 "us-east-2": endpoint{},
1335 "us-east-2-fips": endpoint{
1336 Hostname: "codedeploy-fips.us-east-2.amazonaws.com",
1337 CredentialScope: credentialScope{
1338 Region: "us-east-2",
1339 },
1340 },
1341 "us-west-1": endpoint{},
1342 "us-west-1-fips": endpoint{
1343 Hostname: "codedeploy-fips.us-west-1.amazonaws.com",
1344 CredentialScope: credentialScope{
1345 Region: "us-west-1",
1346 },
1347 },
1348 "us-west-2": endpoint{},
1349 "us-west-2-fips": endpoint{
1350 Hostname: "codedeploy-fips.us-west-2.amazonaws.com",
1351 CredentialScope: credentialScope{
1352 Region: "us-west-2",
1353 },
1354 },
1355 },
1356 },
1357 "codepipeline": service{
1358
1359 Endpoints: endpoints{
1360 "ap-northeast-1": endpoint{},
1361 "ap-northeast-2": endpoint{},
1362 "ap-south-1": endpoint{},
1363 "ap-southeast-1": endpoint{},
1364 "ap-southeast-2": endpoint{},
1365 "ca-central-1": endpoint{},
1366 "eu-central-1": endpoint{},
1367 "eu-north-1": endpoint{},
1368 "eu-west-1": endpoint{},
1369 "eu-west-2": endpoint{},
1370 "eu-west-3": endpoint{},
1371 "fips-ca-central-1": endpoint{
1372 Hostname: "codepipeline-fips.ca-central-1.amazonaws.com",
1373 CredentialScope: credentialScope{
1374 Region: "ca-central-1",
1375 },
1376 },
1377 "fips-us-east-1": endpoint{
1378 Hostname: "codepipeline-fips.us-east-1.amazonaws.com",
1379 CredentialScope: credentialScope{
1380 Region: "us-east-1",
1381 },
1382 },
1383 "fips-us-east-2": endpoint{
1384 Hostname: "codepipeline-fips.us-east-2.amazonaws.com",
1385 CredentialScope: credentialScope{
1386 Region: "us-east-2",
1387 },
1388 },
1389 "fips-us-west-1": endpoint{
1390 Hostname: "codepipeline-fips.us-west-1.amazonaws.com",
1391 CredentialScope: credentialScope{
1392 Region: "us-west-1",
1393 },
1394 },
1395 "fips-us-west-2": endpoint{
1396 Hostname: "codepipeline-fips.us-west-2.amazonaws.com",
1397 CredentialScope: credentialScope{
1398 Region: "us-west-2",
1399 },
1400 },
1401 "sa-east-1": endpoint{},
1402 "us-east-1": endpoint{},
1403 "us-east-2": endpoint{},
1404 "us-west-1": endpoint{},
1405 "us-west-2": endpoint{},
1406 },
1407 },
1408 "codestar": service{
1409
1410 Endpoints: endpoints{
1411 "ap-northeast-1": endpoint{},
1412 "ap-northeast-2": endpoint{},
1413 "ap-southeast-1": endpoint{},
1414 "ap-southeast-2": endpoint{},
1415 "ca-central-1": endpoint{},
1416 "eu-central-1": endpoint{},
1417 "eu-north-1": endpoint{},
1811 "us-west-2": endpoint{},
1812 },
1813 },
1814 "dataexchange": service{
1815
1816 Endpoints: endpoints{
1817 "ap-northeast-1": endpoint{},
1818 "ap-northeast-2": endpoint{},
1819 "ap-southeast-1": endpoint{},
1820 "ap-southeast-2": endpoint{},
1821 "eu-central-1": endpoint{},
14181822 "eu-west-1": endpoint{},
14191823 "eu-west-2": endpoint{},
14201824 "us-east-1": endpoint{},
14231827 "us-west-2": endpoint{},
14241828 },
14251829 },
1426 "codestar-connections": service{
1427
1428 Endpoints: endpoints{
1830 "datapipeline": service{
1831
1832 Endpoints: endpoints{
1833 "ap-northeast-1": endpoint{},
1834 "ap-southeast-2": endpoint{},
1835 "eu-west-1": endpoint{},
1836 "us-east-1": endpoint{},
1837 "us-west-2": endpoint{},
1838 },
1839 },
1840 "datasync": service{
1841
1842 Endpoints: endpoints{
1843 "af-south-1": endpoint{},
1844 "ap-east-1": endpoint{},
14291845 "ap-northeast-1": endpoint{},
14301846 "ap-northeast-2": endpoint{},
14311847 "ap-south-1": endpoint{},
14341850 "ca-central-1": endpoint{},
14351851 "eu-central-1": endpoint{},
14361852 "eu-north-1": endpoint{},
1853 "eu-south-1": endpoint{},
1854 "eu-west-1": endpoint{},
1855 "eu-west-2": endpoint{},
1856 "eu-west-3": endpoint{},
1857 "fips-ca-central-1": endpoint{
1858 Hostname: "datasync-fips.ca-central-1.amazonaws.com",
1859 CredentialScope: credentialScope{
1860 Region: "ca-central-1",
1861 },
1862 },
1863 "fips-us-east-1": endpoint{
1864 Hostname: "datasync-fips.us-east-1.amazonaws.com",
1865 CredentialScope: credentialScope{
1866 Region: "us-east-1",
1867 },
1868 },
1869 "fips-us-east-2": endpoint{
1870 Hostname: "datasync-fips.us-east-2.amazonaws.com",
1871 CredentialScope: credentialScope{
1872 Region: "us-east-2",
1873 },
1874 },
1875 "fips-us-west-1": endpoint{
1876 Hostname: "datasync-fips.us-west-1.amazonaws.com",
1877 CredentialScope: credentialScope{
1878 Region: "us-west-1",
1879 },
1880 },
1881 "fips-us-west-2": endpoint{
1882 Hostname: "datasync-fips.us-west-2.amazonaws.com",
1883 CredentialScope: credentialScope{
1884 Region: "us-west-2",
1885 },
1886 },
1887 "me-south-1": endpoint{},
1888 "sa-east-1": endpoint{},
1889 "us-east-1": endpoint{},
1890 "us-east-2": endpoint{},
1891 "us-west-1": endpoint{},
1892 "us-west-2": endpoint{},
1893 },
1894 },
1895 "dax": service{
1896
1897 Endpoints: endpoints{
1898 "ap-northeast-1": endpoint{},
1899 "ap-south-1": endpoint{},
1900 "ap-southeast-1": endpoint{},
1901 "ap-southeast-2": endpoint{},
1902 "eu-central-1": endpoint{},
14371903 "eu-west-1": endpoint{},
14381904 "eu-west-2": endpoint{},
14391905 "eu-west-3": endpoint{},
14441910 "us-west-2": endpoint{},
14451911 },
14461912 },
1447 "cognito-identity": service{
1448
1449 Endpoints: endpoints{
1450 "ap-northeast-1": endpoint{},
1451 "ap-northeast-2": endpoint{},
1913 "devicefarm": service{
1914
1915 Endpoints: endpoints{
1916 "us-west-2": endpoint{},
1917 },
1918 },
1919 "directconnect": service{
1920
1921 Endpoints: endpoints{
1922 "af-south-1": endpoint{},
1923 "ap-east-1": endpoint{},
1924 "ap-northeast-1": endpoint{},
1925 "ap-northeast-2": endpoint{},
1926 "ap-northeast-3": endpoint{},
14521927 "ap-south-1": endpoint{},
14531928 "ap-southeast-1": endpoint{},
14541929 "ap-southeast-2": endpoint{},
14551930 "ca-central-1": endpoint{},
14561931 "eu-central-1": endpoint{},
14571932 "eu-north-1": endpoint{},
1933 "eu-south-1": endpoint{},
14581934 "eu-west-1": endpoint{},
14591935 "eu-west-2": endpoint{},
14601936 "eu-west-3": endpoint{},
14611937 "fips-us-east-1": endpoint{
1462 Hostname: "cognito-identity-fips.us-east-1.amazonaws.com",
1938 Hostname: "directconnect-fips.us-east-1.amazonaws.com",
14631939 CredentialScope: credentialScope{
14641940 Region: "us-east-1",
14651941 },
14661942 },
14671943 "fips-us-east-2": endpoint{
1468 Hostname: "cognito-identity-fips.us-east-2.amazonaws.com",
1944 Hostname: "directconnect-fips.us-east-2.amazonaws.com",
14691945 CredentialScope: credentialScope{
14701946 Region: "us-east-2",
14711947 },
14721948 },
1949 "fips-us-west-1": endpoint{
1950 Hostname: "directconnect-fips.us-west-1.amazonaws.com",
1951 CredentialScope: credentialScope{
1952 Region: "us-west-1",
1953 },
1954 },
14731955 "fips-us-west-2": endpoint{
1474 Hostname: "cognito-identity-fips.us-west-2.amazonaws.com",
1475 CredentialScope: credentialScope{
1476 Region: "us-west-2",
1477 },
1478 },
1479 "sa-east-1": endpoint{},
1480 "us-east-1": endpoint{},
1481 "us-east-2": endpoint{},
1482 "us-west-1": endpoint{},
1483 "us-west-2": endpoint{},
1484 },
1485 },
1486 "cognito-idp": service{
1487
1488 Endpoints: endpoints{
1489 "ap-northeast-1": endpoint{},
1490 "ap-northeast-2": endpoint{},
1491 "ap-south-1": endpoint{},
1492 "ap-southeast-1": endpoint{},
1493 "ap-southeast-2": endpoint{},
1494 "ca-central-1": endpoint{},
1495 "eu-central-1": endpoint{},
1496 "eu-north-1": endpoint{},
1497 "eu-west-1": endpoint{},
1498 "eu-west-2": endpoint{},
1499 "eu-west-3": endpoint{},
1500 "fips-us-east-1": endpoint{
1501 Hostname: "cognito-idp-fips.us-east-1.amazonaws.com",
1502 CredentialScope: credentialScope{
1503 Region: "us-east-1",
1504 },
1505 },
1506 "fips-us-east-2": endpoint{
1507 Hostname: "cognito-idp-fips.us-east-2.amazonaws.com",
1508 CredentialScope: credentialScope{
1509 Region: "us-east-2",
1510 },
1511 },
1512 "fips-us-west-2": endpoint{
1513 Hostname: "cognito-idp-fips.us-west-2.amazonaws.com",
1514 CredentialScope: credentialScope{
1515 Region: "us-west-2",
1516 },
1517 },
1518 "sa-east-1": endpoint{},
1519 "us-east-1": endpoint{},
1520 "us-east-2": endpoint{},
1521 "us-west-1": endpoint{},
1522 "us-west-2": endpoint{},
1523 },
1524 },
1525 "cognito-sync": service{
1526
1527 Endpoints: endpoints{
1528 "ap-northeast-1": endpoint{},
1529 "ap-northeast-2": endpoint{},
1530 "ap-south-1": endpoint{},
1531 "ap-southeast-1": endpoint{},
1532 "ap-southeast-2": endpoint{},
1533 "eu-central-1": endpoint{},
1534 "eu-west-1": endpoint{},
1535 "eu-west-2": endpoint{},
1536 "us-east-1": endpoint{},
1537 "us-east-2": endpoint{},
1538 "us-west-2": endpoint{},
1539 },
1540 },
1541 "comprehend": service{
1542 Defaults: endpoint{
1543 Protocols: []string{"https"},
1544 },
1545 Endpoints: endpoints{
1546 "ap-northeast-1": endpoint{},
1547 "ap-northeast-2": endpoint{},
1548 "ap-south-1": endpoint{},
1549 "ap-southeast-1": endpoint{},
1550 "ap-southeast-2": endpoint{},
1551 "ca-central-1": endpoint{},
1552 "eu-central-1": endpoint{},
1553 "eu-west-1": endpoint{},
1554 "eu-west-2": endpoint{},
1555 "fips-us-east-1": endpoint{
1556 Hostname: "comprehend-fips.us-east-1.amazonaws.com",
1557 CredentialScope: credentialScope{
1558 Region: "us-east-1",
1559 },
1560 },
1561 "fips-us-east-2": endpoint{
1562 Hostname: "comprehend-fips.us-east-2.amazonaws.com",
1563 CredentialScope: credentialScope{
1564 Region: "us-east-2",
1565 },
1566 },
1567 "fips-us-west-2": endpoint{
1568 Hostname: "comprehend-fips.us-west-2.amazonaws.com",
1569 CredentialScope: credentialScope{
1570 Region: "us-west-2",
1571 },
1572 },
1573 "us-east-1": endpoint{},
1574 "us-east-2": endpoint{},
1575 "us-west-2": endpoint{},
1576 },
1577 },
1578 "comprehendmedical": service{
1579
1580 Endpoints: endpoints{
1581 "ap-southeast-2": endpoint{},
1582 "ca-central-1": endpoint{},
1583 "eu-west-1": endpoint{},
1584 "eu-west-2": endpoint{},
1585 "fips-us-east-1": endpoint{
1586 Hostname: "comprehendmedical-fips.us-east-1.amazonaws.com",
1587 CredentialScope: credentialScope{
1588 Region: "us-east-1",
1589 },
1590 },
1591 "fips-us-east-2": endpoint{
1592 Hostname: "comprehendmedical-fips.us-east-2.amazonaws.com",
1593 CredentialScope: credentialScope{
1594 Region: "us-east-2",
1595 },
1596 },
1597 "fips-us-west-2": endpoint{
1598 Hostname: "comprehendmedical-fips.us-west-2.amazonaws.com",
1599 CredentialScope: credentialScope{
1600 Region: "us-west-2",
1601 },
1602 },
1603 "us-east-1": endpoint{},
1604 "us-east-2": endpoint{},
1605 "us-west-2": endpoint{},
1606 },
1607 },
1608 "config": service{
1609
1610 Endpoints: endpoints{
1611 "af-south-1": endpoint{},
1612 "ap-east-1": endpoint{},
1613 "ap-northeast-1": endpoint{},
1614 "ap-northeast-2": endpoint{},
1615 "ap-south-1": endpoint{},
1616 "ap-southeast-1": endpoint{},
1617 "ap-southeast-2": endpoint{},
1618 "ca-central-1": endpoint{},
1619 "eu-central-1": endpoint{},
1620 "eu-north-1": endpoint{},
1621 "eu-south-1": endpoint{},
1622 "eu-west-1": endpoint{},
1623 "eu-west-2": endpoint{},
1624 "eu-west-3": endpoint{},
1625 "fips-us-east-1": endpoint{
1626 Hostname: "config-fips.us-east-1.amazonaws.com",
1627 CredentialScope: credentialScope{
1628 Region: "us-east-1",
1629 },
1630 },
1631 "fips-us-east-2": endpoint{
1632 Hostname: "config-fips.us-east-2.amazonaws.com",
1633 CredentialScope: credentialScope{
1634 Region: "us-east-2",
1635 },
1636 },
1637 "fips-us-west-1": endpoint{
1638 Hostname: "config-fips.us-west-1.amazonaws.com",
1639 CredentialScope: credentialScope{
1640 Region: "us-west-1",
1641 },
1642 },
1643 "fips-us-west-2": endpoint{
1644 Hostname: "config-fips.us-west-2.amazonaws.com",
1956 Hostname: "directconnect-fips.us-west-2.amazonaws.com",
16451957 CredentialScope: credentialScope{
16461958 Region: "us-west-2",
16471959 },
16541966 "us-west-2": endpoint{},
16551967 },
16561968 },
1657 "connect": service{
1658
1659 Endpoints: endpoints{
1660 "ap-northeast-1": endpoint{},
1661 "ap-southeast-1": endpoint{},
1662 "ap-southeast-2": endpoint{},
1663 "eu-central-1": endpoint{},
1969 "discovery": service{
1970
1971 Endpoints: endpoints{
1972 "ap-northeast-1": endpoint{},
1973 "ap-southeast-2": endpoint{},
1974 "eu-central-1": endpoint{},
1975 "eu-west-1": endpoint{},
16641976 "eu-west-2": endpoint{},
16651977 "us-east-1": endpoint{},
16661978 "us-west-2": endpoint{},
16671979 },
16681980 },
1669 "contact-lens": service{
1670
1671 Endpoints: endpoints{
1672 "ap-southeast-2": endpoint{},
1673 "us-east-1": endpoint{},
1674 "us-west-2": endpoint{},
1675 },
1676 },
1677 "cur": service{
1678
1679 Endpoints: endpoints{
1680 "us-east-1": endpoint{},
1681 },
1682 },
1683 "data.mediastore": service{
1684
1685 Endpoints: endpoints{
1686 "ap-northeast-1": endpoint{},
1687 "ap-northeast-2": endpoint{},
1688 "ap-southeast-2": endpoint{},
1689 "eu-central-1": endpoint{},
1690 "eu-north-1": endpoint{},
1691 "eu-west-1": endpoint{},
1692 "eu-west-2": endpoint{},
1693 "us-east-1": endpoint{},
1694 "us-west-2": endpoint{},
1695 },
1696 },
1697 "dataexchange": service{
1698
1699 Endpoints: endpoints{
1700 "ap-northeast-1": endpoint{},
1701 "ap-northeast-2": endpoint{},
1702 "ap-southeast-1": endpoint{},
1703 "ap-southeast-2": endpoint{},
1704 "eu-central-1": endpoint{},
1705 "eu-west-1": endpoint{},
1706 "eu-west-2": endpoint{},
1707 "us-east-1": endpoint{},
1708 "us-east-2": endpoint{},
1709 "us-west-1": endpoint{},
1710 "us-west-2": endpoint{},
1711 },
1712 },
1713 "datapipeline": service{
1714
1715 Endpoints: endpoints{
1716 "ap-northeast-1": endpoint{},
1717 "ap-southeast-2": endpoint{},
1718 "eu-west-1": endpoint{},
1719 "us-east-1": endpoint{},
1720 "us-west-2": endpoint{},
1721 },
1722 },
1723 "datasync": service{
1981 "dms": service{
17241982
17251983 Endpoints: endpoints{
17261984 "af-south-1": endpoint{},
17271985 "ap-east-1": endpoint{},
17281986 "ap-northeast-1": endpoint{},
17291987 "ap-northeast-2": endpoint{},
1730 "ap-south-1": endpoint{},
1731 "ap-southeast-1": endpoint{},
1732 "ap-southeast-2": endpoint{},
1733 "ca-central-1": endpoint{},
1734 "eu-central-1": endpoint{},
1735 "eu-north-1": endpoint{},
1736 "eu-south-1": endpoint{},
1737 "eu-west-1": endpoint{},
1738 "eu-west-2": endpoint{},
1739 "eu-west-3": endpoint{},
1740 "fips-ca-central-1": endpoint{
1741 Hostname: "datasync-fips.ca-central-1.amazonaws.com",
1742 CredentialScope: credentialScope{
1743 Region: "ca-central-1",
1744 },
1745 },
1746 "fips-us-east-1": endpoint{
1747 Hostname: "datasync-fips.us-east-1.amazonaws.com",
1748 CredentialScope: credentialScope{
1749 Region: "us-east-1",
1750 },
1751 },
1752 "fips-us-east-2": endpoint{
1753 Hostname: "datasync-fips.us-east-2.amazonaws.com",
1754 CredentialScope: credentialScope{
1755 Region: "us-east-2",
1756 },
1757 },
1758 "fips-us-west-1": endpoint{
1759 Hostname: "datasync-fips.us-west-1.amazonaws.com",
1760 CredentialScope: credentialScope{
1761 Region: "us-west-1",
1762 },
1763 },
1764 "fips-us-west-2": endpoint{
1765 Hostname: "datasync-fips.us-west-2.amazonaws.com",
1766 CredentialScope: credentialScope{
1767 Region: "us-west-2",
1768 },
1769 },
1770 "me-south-1": endpoint{},
1771 "sa-east-1": endpoint{},
1772 "us-east-1": endpoint{},
1773 "us-east-2": endpoint{},
1774 "us-west-1": endpoint{},
1775 "us-west-2": endpoint{},
1776 },
1777 },
1778 "dax": service{
1779
1780 Endpoints: endpoints{
1781 "ap-northeast-1": endpoint{},
1782 "ap-south-1": endpoint{},
1783 "ap-southeast-1": endpoint{},
1784 "ap-southeast-2": endpoint{},
1785 "eu-central-1": endpoint{},
1786 "eu-west-1": endpoint{},
1787 "eu-west-2": endpoint{},
1788 "eu-west-3": endpoint{},
1789 "sa-east-1": endpoint{},
1790 "us-east-1": endpoint{},
1791 "us-east-2": endpoint{},
1792 "us-west-1": endpoint{},
1793 "us-west-2": endpoint{},
1794 },
1795 },
1796 "devicefarm": service{
1797
1798 Endpoints: endpoints{
1799 "us-west-2": endpoint{},
1800 },
1801 },
1802 "directconnect": service{
1803
1804 Endpoints: endpoints{
1805 "af-south-1": endpoint{},
1806 "ap-east-1": endpoint{},
1807 "ap-northeast-1": endpoint{},
1808 "ap-northeast-2": endpoint{},
1809 "ap-south-1": endpoint{},
1810 "ap-southeast-1": endpoint{},
1811 "ap-southeast-2": endpoint{},
1812 "ca-central-1": endpoint{},
1813 "eu-central-1": endpoint{},
1814 "eu-north-1": endpoint{},
1815 "eu-south-1": endpoint{},
1816 "eu-west-1": endpoint{},
1817 "eu-west-2": endpoint{},
1818 "eu-west-3": endpoint{},
1819 "fips-us-east-1": endpoint{
1820 Hostname: "directconnect-fips.us-east-1.amazonaws.com",
1821 CredentialScope: credentialScope{
1822 Region: "us-east-1",
1823 },
1824 },
1825 "fips-us-east-2": endpoint{
1826 Hostname: "directconnect-fips.us-east-2.amazonaws.com",
1827 CredentialScope: credentialScope{
1828 Region: "us-east-2",
1829 },
1830 },
1831 "fips-us-west-1": endpoint{
1832 Hostname: "directconnect-fips.us-west-1.amazonaws.com",
1833 CredentialScope: credentialScope{
1834 Region: "us-west-1",
1835 },
1836 },
1837 "fips-us-west-2": endpoint{
1838 Hostname: "directconnect-fips.us-west-2.amazonaws.com",
1839 CredentialScope: credentialScope{
1840 Region: "us-west-2",
1841 },
1842 },
1843 "me-south-1": endpoint{},
1844 "sa-east-1": endpoint{},
1845 "us-east-1": endpoint{},
1846 "us-east-2": endpoint{},
1847 "us-west-1": endpoint{},
1848 "us-west-2": endpoint{},
1849 },
1850 },
1851 "discovery": service{
1852
1853 Endpoints: endpoints{
1854 "ap-northeast-1": endpoint{},
1855 "ap-southeast-2": endpoint{},
1856 "eu-central-1": endpoint{},
1857 "eu-west-1": endpoint{},
1858 "eu-west-2": endpoint{},
1859 "us-east-1": endpoint{},
1860 "us-west-2": endpoint{},
1861 },
1862 },
1863 "dms": service{
1864
1865 Endpoints: endpoints{
1866 "af-south-1": endpoint{},
1867 "ap-east-1": endpoint{},
1868 "ap-northeast-1": endpoint{},
1869 "ap-northeast-2": endpoint{},
1988 "ap-northeast-3": endpoint{},
18701989 "ap-south-1": endpoint{},
18711990 "ap-southeast-1": endpoint{},
18721991 "ap-southeast-2": endpoint{},
20442163 "ap-east-1": endpoint{},
20452164 "ap-northeast-1": endpoint{},
20462165 "ap-northeast-2": endpoint{},
2166 "ap-northeast-3": endpoint{},
20472167 "ap-south-1": endpoint{},
20482168 "ap-southeast-1": endpoint{},
20492169 "ap-southeast-2": endpoint{},
21062226 "ap-east-1": endpoint{},
21072227 "ap-northeast-1": endpoint{},
21082228 "ap-northeast-2": endpoint{},
2229 "ap-northeast-3": endpoint{},
21092230 "ap-south-1": endpoint{},
21102231 "ap-southeast-1": endpoint{},
21112232 "ap-southeast-2": endpoint{},
21632284 "ap-east-1": endpoint{},
21642285 "ap-northeast-1": endpoint{},
21652286 "ap-northeast-2": endpoint{},
2287 "ap-northeast-3": endpoint{},
21662288 "ap-south-1": endpoint{},
21672289 "ap-southeast-1": endpoint{},
21682290 "ap-southeast-2": endpoint{},
22292351 "ap-east-1": endpoint{},
22302352 "ap-northeast-1": endpoint{},
22312353 "ap-northeast-2": endpoint{},
2354 "ap-northeast-3": endpoint{},
22322355 "ap-south-1": endpoint{},
22332356 "ap-southeast-1": endpoint{},
22342357 "ap-southeast-2": endpoint{},
22802403 "ap-east-1": endpoint{},
22812404 "ap-northeast-1": endpoint{},
22822405 "ap-northeast-2": endpoint{},
2406 "ap-northeast-3": endpoint{},
22832407 "ap-south-1": endpoint{},
22842408 "ap-southeast-1": endpoint{},
22852409 "ap-southeast-2": endpoint{},
23292453 "ap-east-1": endpoint{},
23302454 "ap-northeast-1": endpoint{},
23312455 "ap-northeast-2": endpoint{},
2456 "ap-northeast-3": endpoint{},
23322457 "ap-south-1": endpoint{},
23332458 "ap-southeast-1": endpoint{},
23342459 "ap-southeast-2": endpoint{},
23602485 "ap-east-1": endpoint{},
23612486 "ap-northeast-1": endpoint{},
23622487 "ap-northeast-2": endpoint{},
2488 "ap-northeast-3": endpoint{},
23632489 "ap-south-1": endpoint{},
23642490 "ap-southeast-1": endpoint{},
23652491 "ap-southeast-2": endpoint{},
24092535 "ap-east-1": endpoint{},
24102536 "ap-northeast-1": endpoint{},
24112537 "ap-northeast-2": endpoint{},
2538 "ap-northeast-3": endpoint{},
24122539 "ap-south-1": endpoint{},
24132540 "ap-southeast-1": endpoint{},
24142541 "ap-southeast-2": endpoint{},
24412568 Hostname: "elasticfilesystem-fips.ap-northeast-2.amazonaws.com",
24422569 CredentialScope: credentialScope{
24432570 Region: "ap-northeast-2",
2571 },
2572 },
2573 "fips-ap-northeast-3": endpoint{
2574 Hostname: "elasticfilesystem-fips.ap-northeast-3.amazonaws.com",
2575 CredentialScope: credentialScope{
2576 Region: "ap-northeast-3",
24442577 },
24452578 },
24462579 "fips-ap-south-1": endpoint{
25562689 "ap-east-1": endpoint{},
25572690 "ap-northeast-1": endpoint{},
25582691 "ap-northeast-2": endpoint{},
2692 "ap-northeast-3": endpoint{},
25592693 "ap-south-1": endpoint{},
25602694 "ap-southeast-1": endpoint{},
25612695 "ap-southeast-2": endpoint{},
26082742 "ap-east-1": endpoint{},
26092743 "ap-northeast-1": endpoint{},
26102744 "ap-northeast-2": endpoint{},
2745 "ap-northeast-3": endpoint{},
26112746 "ap-south-1": endpoint{},
26122747 "ap-southeast-1": endpoint{},
26132748 "ap-southeast-2": endpoint{},
26842819 "us-west-2": endpoint{},
26852820 },
26862821 },
2822 "emr-containers": service{
2823
2824 Endpoints: endpoints{
2825 "ap-northeast-1": endpoint{},
2826 "ap-northeast-2": endpoint{},
2827 "ap-south-1": endpoint{},
2828 "ap-southeast-1": endpoint{},
2829 "ap-southeast-2": endpoint{},
2830 "ca-central-1": endpoint{},
2831 "eu-central-1": endpoint{},
2832 "eu-west-1": endpoint{},
2833 "eu-west-2": endpoint{},
2834 "us-east-1": endpoint{},
2835 "us-east-2": endpoint{},
2836 "us-west-1": endpoint{},
2837 "us-west-2": endpoint{},
2838 },
2839 },
26872840 "entitlement.marketplace": service{
26882841 Defaults: endpoint{
26892842 CredentialScope: credentialScope{
27012854 "ap-east-1": endpoint{},
27022855 "ap-northeast-1": endpoint{},
27032856 "ap-northeast-2": endpoint{},
2857 "ap-northeast-3": endpoint{},
27042858 "ap-south-1": endpoint{},
27052859 "ap-southeast-1": endpoint{},
27062860 "ap-southeast-2": endpoint{},
27322886 "ap-east-1": endpoint{},
27332887 "ap-northeast-1": endpoint{},
27342888 "ap-northeast-2": endpoint{},
2889 "ap-northeast-3": endpoint{},
27352890 "ap-south-1": endpoint{},
27362891 "ap-southeast-1": endpoint{},
27372892 "ap-southeast-2": endpoint{},
27812936 "ap-east-1": endpoint{},
27822937 "ap-northeast-1": endpoint{},
27832938 "ap-northeast-2": endpoint{},
2939 "ap-northeast-3": endpoint{},
27842940 "ap-south-1": endpoint{},
27852941 "ap-southeast-1": endpoint{},
27862942 "ap-southeast-2": endpoint{},
28422998 "eu-west-1": endpoint{},
28432999 "eu-west-2": endpoint{},
28443000 "eu-west-3": endpoint{},
3001 "fips-af-south-1": endpoint{
3002 Hostname: "fms-fips.af-south-1.amazonaws.com",
3003 CredentialScope: credentialScope{
3004 Region: "af-south-1",
3005 },
3006 },
3007 "fips-ap-east-1": endpoint{
3008 Hostname: "fms-fips.ap-east-1.amazonaws.com",
3009 CredentialScope: credentialScope{
3010 Region: "ap-east-1",
3011 },
3012 },
28453013 "fips-ap-northeast-1": endpoint{
28463014 Hostname: "fms-fips.ap-northeast-1.amazonaws.com",
28473015 CredentialScope: credentialScope{
28843052 Region: "eu-central-1",
28853053 },
28863054 },
3055 "fips-eu-south-1": endpoint{
3056 Hostname: "fms-fips.eu-south-1.amazonaws.com",
3057 CredentialScope: credentialScope{
3058 Region: "eu-south-1",
3059 },
3060 },
28873061 "fips-eu-west-1": endpoint{
28883062 Hostname: "fms-fips.eu-west-1.amazonaws.com",
28893063 CredentialScope: credentialScope{
29003074 Hostname: "fms-fips.eu-west-3.amazonaws.com",
29013075 CredentialScope: credentialScope{
29023076 Region: "eu-west-3",
3077 },
3078 },
3079 "fips-me-south-1": endpoint{
3080 Hostname: "fms-fips.me-south-1.amazonaws.com",
3081 CredentialScope: credentialScope{
3082 Region: "me-south-1",
29033083 },
29043084 },
29053085 "fips-sa-east-1": endpoint{
29733153 "fsx": service{
29743154
29753155 Endpoints: endpoints{
2976 "ap-east-1": endpoint{},
2977 "ap-northeast-1": endpoint{},
2978 "ap-northeast-2": endpoint{},
2979 "ap-south-1": endpoint{},
2980 "ap-southeast-1": endpoint{},
2981 "ap-southeast-2": endpoint{},
2982 "ca-central-1": endpoint{},
2983 "eu-central-1": endpoint{},
2984 "eu-north-1": endpoint{},
2985 "eu-west-1": endpoint{},
2986 "eu-west-2": endpoint{},
2987 "eu-west-3": endpoint{},
2988 "sa-east-1": endpoint{},
2989 "us-east-1": endpoint{},
2990 "us-east-2": endpoint{},
2991 "us-west-1": endpoint{},
2992 "us-west-2": endpoint{},
2993 },
2994 },
2995 "gamelift": service{
2996
2997 Endpoints: endpoints{
2998 "ap-northeast-1": endpoint{},
2999 "ap-northeast-2": endpoint{},
3000 "ap-south-1": endpoint{},
3001 "ap-southeast-1": endpoint{},
3002 "ap-southeast-2": endpoint{},
3003 "ca-central-1": endpoint{},
3004 "eu-central-1": endpoint{},
3005 "eu-west-1": endpoint{},
3006 "eu-west-2": endpoint{},
3007 "sa-east-1": endpoint{},
3008 "us-east-1": endpoint{},
3009 "us-east-2": endpoint{},
3010 "us-west-1": endpoint{},
3011 "us-west-2": endpoint{},
3012 },
3013 },
3014 "glacier": service{
3015 Defaults: endpoint{
3016 Protocols: []string{"http", "https"},
3017 },
3018 Endpoints: endpoints{
30193156 "af-south-1": endpoint{},
30203157 "ap-east-1": endpoint{},
30213158 "ap-northeast-1": endpoint{},
30303167 "eu-west-1": endpoint{},
30313168 "eu-west-2": endpoint{},
30323169 "eu-west-3": endpoint{},
3033 "fips-ca-central-1": endpoint{
3034 Hostname: "glacier-fips.ca-central-1.amazonaws.com",
3170 "fips-prod-ca-central-1": endpoint{
3171 Hostname: "fsx-fips.ca-central-1.amazonaws.com",
30353172 CredentialScope: credentialScope{
30363173 Region: "ca-central-1",
30373174 },
30383175 },
3039 "fips-us-east-1": endpoint{
3040 Hostname: "glacier-fips.us-east-1.amazonaws.com",
3041 CredentialScope: credentialScope{
3042 Region: "us-east-1",
3043 },
3044 },
3045 "fips-us-east-2": endpoint{
3046 Hostname: "glacier-fips.us-east-2.amazonaws.com",
3176 "fips-prod-us-east-1": endpoint{
3177 Hostname: "fsx-fips.us-east-1.amazonaws.com",
3178 CredentialScope: credentialScope{
3179 Region: "us-east-1",
3180 },
3181 },
3182 "fips-prod-us-east-2": endpoint{
3183 Hostname: "fsx-fips.us-east-2.amazonaws.com",
30473184 CredentialScope: credentialScope{
30483185 Region: "us-east-2",
30493186 },
30503187 },
3051 "fips-us-west-1": endpoint{
3052 Hostname: "glacier-fips.us-west-1.amazonaws.com",
3188 "fips-prod-us-west-1": endpoint{
3189 Hostname: "fsx-fips.us-west-1.amazonaws.com",
30533190 CredentialScope: credentialScope{
30543191 Region: "us-west-1",
30553192 },
30563193 },
3057 "fips-us-west-2": endpoint{
3058 Hostname: "glacier-fips.us-west-2.amazonaws.com",
3194 "fips-prod-us-west-2": endpoint{
3195 Hostname: "fsx-fips.us-west-2.amazonaws.com",
30593196 CredentialScope: credentialScope{
30603197 Region: "us-west-2",
30613198 },
30683205 "us-west-2": endpoint{},
30693206 },
30703207 },
3071 "glue": service{
3072
3208 "gamelift": service{
3209
3210 Endpoints: endpoints{
3211 "ap-northeast-1": endpoint{},
3212 "ap-northeast-2": endpoint{},
3213 "ap-south-1": endpoint{},
3214 "ap-southeast-1": endpoint{},
3215 "ap-southeast-2": endpoint{},
3216 "ca-central-1": endpoint{},
3217 "eu-central-1": endpoint{},
3218 "eu-west-1": endpoint{},
3219 "eu-west-2": endpoint{},
3220 "sa-east-1": endpoint{},
3221 "us-east-1": endpoint{},
3222 "us-east-2": endpoint{},
3223 "us-west-1": endpoint{},
3224 "us-west-2": endpoint{},
3225 },
3226 },
3227 "glacier": service{
3228 Defaults: endpoint{
3229 Protocols: []string{"http", "https"},
3230 },
30733231 Endpoints: endpoints{
30743232 "af-south-1": endpoint{},
30753233 "ap-east-1": endpoint{},
30763234 "ap-northeast-1": endpoint{},
30773235 "ap-northeast-2": endpoint{},
3236 "ap-northeast-3": endpoint{},
30783237 "ap-south-1": endpoint{},
30793238 "ap-southeast-1": endpoint{},
30803239 "ap-southeast-2": endpoint{},
30853244 "eu-west-1": endpoint{},
30863245 "eu-west-2": endpoint{},
30873246 "eu-west-3": endpoint{},
3247 "fips-ca-central-1": endpoint{
3248 Hostname: "glacier-fips.ca-central-1.amazonaws.com",
3249 CredentialScope: credentialScope{
3250 Region: "ca-central-1",
3251 },
3252 },
30883253 "fips-us-east-1": endpoint{
3089 Hostname: "glue-fips.us-east-1.amazonaws.com",
3254 Hostname: "glacier-fips.us-east-1.amazonaws.com",
30903255 CredentialScope: credentialScope{
30913256 Region: "us-east-1",
30923257 },
30933258 },
30943259 "fips-us-east-2": endpoint{
3095 Hostname: "glue-fips.us-east-2.amazonaws.com",
3260 Hostname: "glacier-fips.us-east-2.amazonaws.com",
30963261 CredentialScope: credentialScope{
30973262 Region: "us-east-2",
30983263 },
30993264 },
31003265 "fips-us-west-1": endpoint{
3101 Hostname: "glue-fips.us-west-1.amazonaws.com",
3266 Hostname: "glacier-fips.us-west-1.amazonaws.com",
31023267 CredentialScope: credentialScope{
31033268 Region: "us-west-1",
31043269 },
31053270 },
31063271 "fips-us-west-2": endpoint{
3107 Hostname: "glue-fips.us-west-2.amazonaws.com",
3272 Hostname: "glacier-fips.us-west-2.amazonaws.com",
31083273 CredentialScope: credentialScope{
31093274 Region: "us-west-2",
31103275 },
31173282 "us-west-2": endpoint{},
31183283 },
31193284 },
3285 "glue": service{
3286
3287 Endpoints: endpoints{
3288 "af-south-1": endpoint{},
3289 "ap-east-1": endpoint{},
3290 "ap-northeast-1": endpoint{},
3291 "ap-northeast-2": endpoint{},
3292 "ap-northeast-3": endpoint{},
3293 "ap-south-1": endpoint{},
3294 "ap-southeast-1": endpoint{},
3295 "ap-southeast-2": endpoint{},
3296 "ca-central-1": endpoint{},
3297 "eu-central-1": endpoint{},
3298 "eu-north-1": endpoint{},
3299 "eu-south-1": endpoint{},
3300 "eu-west-1": endpoint{},
3301 "eu-west-2": endpoint{},
3302 "eu-west-3": endpoint{},
3303 "fips-us-east-1": endpoint{
3304 Hostname: "glue-fips.us-east-1.amazonaws.com",
3305 CredentialScope: credentialScope{
3306 Region: "us-east-1",
3307 },
3308 },
3309 "fips-us-east-2": endpoint{
3310 Hostname: "glue-fips.us-east-2.amazonaws.com",
3311 CredentialScope: credentialScope{
3312 Region: "us-east-2",
3313 },
3314 },
3315 "fips-us-west-1": endpoint{
3316 Hostname: "glue-fips.us-west-1.amazonaws.com",
3317 CredentialScope: credentialScope{
3318 Region: "us-west-1",
3319 },
3320 },
3321 "fips-us-west-2": endpoint{
3322 Hostname: "glue-fips.us-west-2.amazonaws.com",
3323 CredentialScope: credentialScope{
3324 Region: "us-west-2",
3325 },
3326 },
3327 "me-south-1": endpoint{},
3328 "sa-east-1": endpoint{},
3329 "us-east-1": endpoint{},
3330 "us-east-2": endpoint{},
3331 "us-west-1": endpoint{},
3332 "us-west-2": endpoint{},
3333 },
3334 },
31203335 "greengrass": service{
31213336 IsRegionalized: boxedTrue,
31223337 Defaults: endpoint{
32213436 Region: "us-east-2",
32223437 },
32233438 },
3439 },
3440 },
3441 "healthlake": service{
3442 Defaults: endpoint{
3443 Protocols: []string{"https"},
3444 },
3445 Endpoints: endpoints{
3446 "us-east-1": endpoint{},
32243447 },
32253448 },
32263449 "honeycode": service{
34793702 "us-west-2": endpoint{},
34803703 },
34813704 },
3705 "iotwireless": service{
3706
3707 Endpoints: endpoints{
3708 "eu-west-1": endpoint{
3709 Hostname: "api.iotwireless.eu-west-1.amazonaws.com",
3710 CredentialScope: credentialScope{
3711 Region: "eu-west-1",
3712 },
3713 },
3714 "us-east-1": endpoint{
3715 Hostname: "api.iotwireless.us-east-1.amazonaws.com",
3716 CredentialScope: credentialScope{
3717 Region: "us-east-1",
3718 },
3719 },
3720 },
3721 },
34823722 "kafka": service{
34833723
34843724 Endpoints: endpoints{
35103750 "ap-east-1": endpoint{},
35113751 "ap-northeast-1": endpoint{},
35123752 "ap-northeast-2": endpoint{},
3753 "ap-northeast-3": endpoint{},
35133754 "ap-south-1": endpoint{},
35143755 "ap-southeast-1": endpoint{},
35153756 "ap-southeast-2": endpoint{},
36033844 "ap-east-1": endpoint{},
36043845 "ap-northeast-1": endpoint{},
36053846 "ap-northeast-2": endpoint{},
3847 "ap-northeast-3": endpoint{},
36063848 "ap-south-1": endpoint{},
36073849 "ap-southeast-1": endpoint{},
36083850 "ap-southeast-2": endpoint{},
36243866 "lakeformation": service{
36253867
36263868 Endpoints: endpoints{
3869 "ap-east-1": endpoint{},
36273870 "ap-northeast-1": endpoint{},
36283871 "ap-northeast-2": endpoint{},
36293872 "ap-south-1": endpoint{},
36563899 },
36573900 "fips-us-west-2": endpoint{
36583901 Hostname: "lakeformation-fips.us-west-2.amazonaws.com",
3659 CredentialScope: credentialScope{
3660 Region: "us-west-2",
3661 },
3662 },
3663 "sa-east-1": endpoint{},
3664 "us-east-1": endpoint{},
3665 "us-east-2": endpoint{},
3666 "us-west-1": endpoint{},
3667 "us-west-2": endpoint{},
3668 },
3669 },
3670 "lambda": service{
3671
3672 Endpoints: endpoints{
3673 "af-south-1": endpoint{},
3674 "ap-east-1": endpoint{},
3675 "ap-northeast-1": endpoint{},
3676 "ap-northeast-2": endpoint{},
3677 "ap-south-1": endpoint{},
3678 "ap-southeast-1": endpoint{},
3679 "ap-southeast-2": endpoint{},
3680 "ca-central-1": endpoint{},
3681 "eu-central-1": endpoint{},
3682 "eu-north-1": endpoint{},
3683 "eu-south-1": endpoint{},
3684 "eu-west-1": endpoint{},
3685 "eu-west-2": endpoint{},
3686 "eu-west-3": endpoint{},
3687 "fips-us-east-1": endpoint{
3688 Hostname: "lambda-fips.us-east-1.amazonaws.com",
3689 CredentialScope: credentialScope{
3690 Region: "us-east-1",
3691 },
3692 },
3693 "fips-us-east-2": endpoint{
3694 Hostname: "lambda-fips.us-east-2.amazonaws.com",
3695 CredentialScope: credentialScope{
3696 Region: "us-east-2",
3697 },
3698 },
3699 "fips-us-west-1": endpoint{
3700 Hostname: "lambda-fips.us-west-1.amazonaws.com",
3701 CredentialScope: credentialScope{
3702 Region: "us-west-1",
3703 },
3704 },
3705 "fips-us-west-2": endpoint{
3706 Hostname: "lambda-fips.us-west-2.amazonaws.com",
37073902 CredentialScope: credentialScope{
37083903 Region: "us-west-2",
37093904 },
37163911 "us-west-2": endpoint{},
37173912 },
37183913 },
3719 "license-manager": service{
3914 "lambda": service{
37203915
37213916 Endpoints: endpoints{
37223917 "af-south-1": endpoint{},
37233918 "ap-east-1": endpoint{},
37243919 "ap-northeast-1": endpoint{},
37253920 "ap-northeast-2": endpoint{},
3921 "ap-northeast-3": endpoint{},
37263922 "ap-south-1": endpoint{},
37273923 "ap-southeast-1": endpoint{},
37283924 "ap-southeast-2": endpoint{},
37343930 "eu-west-2": endpoint{},
37353931 "eu-west-3": endpoint{},
37363932 "fips-us-east-1": endpoint{
3737 Hostname: "license-manager-fips.us-east-1.amazonaws.com",
3933 Hostname: "lambda-fips.us-east-1.amazonaws.com",
37383934 CredentialScope: credentialScope{
37393935 Region: "us-east-1",
37403936 },
37413937 },
37423938 "fips-us-east-2": endpoint{
3743 Hostname: "license-manager-fips.us-east-2.amazonaws.com",
3939 Hostname: "lambda-fips.us-east-2.amazonaws.com",
37443940 CredentialScope: credentialScope{
37453941 Region: "us-east-2",
37463942 },
37473943 },
37483944 "fips-us-west-1": endpoint{
3749 Hostname: "license-manager-fips.us-west-1.amazonaws.com",
3945 Hostname: "lambda-fips.us-west-1.amazonaws.com",
37503946 CredentialScope: credentialScope{
37513947 Region: "us-west-1",
37523948 },
37533949 },
37543950 "fips-us-west-2": endpoint{
3755 Hostname: "license-manager-fips.us-west-2.amazonaws.com",
3951 Hostname: "lambda-fips.us-west-2.amazonaws.com",
37563952 CredentialScope: credentialScope{
37573953 Region: "us-west-2",
37583954 },
37653961 "us-west-2": endpoint{},
37663962 },
37673963 },
3768 "lightsail": service{
3769
3770 Endpoints: endpoints{
3771 "ap-northeast-1": endpoint{},
3772 "ap-northeast-2": endpoint{},
3773 "ap-south-1": endpoint{},
3774 "ap-southeast-1": endpoint{},
3775 "ap-southeast-2": endpoint{},
3776 "ca-central-1": endpoint{},
3777 "eu-central-1": endpoint{},
3778 "eu-west-1": endpoint{},
3779 "eu-west-2": endpoint{},
3780 "eu-west-3": endpoint{},
3781 "us-east-1": endpoint{},
3782 "us-east-2": endpoint{},
3783 "us-west-2": endpoint{},
3784 },
3785 },
3786 "logs": service{
3964 "license-manager": service{
37873965
37883966 Endpoints: endpoints{
37893967 "af-south-1": endpoint{},
38013979 "eu-west-2": endpoint{},
38023980 "eu-west-3": endpoint{},
38033981 "fips-us-east-1": endpoint{
3804 Hostname: "logs-fips.us-east-1.amazonaws.com",
3982 Hostname: "license-manager-fips.us-east-1.amazonaws.com",
38053983 CredentialScope: credentialScope{
38063984 Region: "us-east-1",
38073985 },
38083986 },
38093987 "fips-us-east-2": endpoint{
3810 Hostname: "logs-fips.us-east-2.amazonaws.com",
3988 Hostname: "license-manager-fips.us-east-2.amazonaws.com",
38113989 CredentialScope: credentialScope{
38123990 Region: "us-east-2",
38133991 },
38143992 },
38153993 "fips-us-west-1": endpoint{
3816 Hostname: "logs-fips.us-west-1.amazonaws.com",
3994 Hostname: "license-manager-fips.us-west-1.amazonaws.com",
38173995 CredentialScope: credentialScope{
38183996 Region: "us-west-1",
38193997 },
38203998 },
38213999 "fips-us-west-2": endpoint{
3822 Hostname: "logs-fips.us-west-2.amazonaws.com",
4000 Hostname: "license-manager-fips.us-west-2.amazonaws.com",
38234001 CredentialScope: credentialScope{
38244002 Region: "us-west-2",
38254003 },
38324010 "us-west-2": endpoint{},
38334011 },
38344012 },
3835 "lookoutvision": service{
3836
3837 Endpoints: endpoints{
3838 "ap-northeast-1": endpoint{},
3839 "ap-northeast-2": endpoint{},
3840 "eu-central-1": endpoint{},
3841 "eu-west-1": endpoint{},
4013 "lightsail": service{
4014
4015 Endpoints: endpoints{
4016 "ap-northeast-1": endpoint{},
4017 "ap-northeast-2": endpoint{},
4018 "ap-south-1": endpoint{},
4019 "ap-southeast-1": endpoint{},
4020 "ap-southeast-2": endpoint{},
4021 "ca-central-1": endpoint{},
4022 "eu-central-1": endpoint{},
4023 "eu-west-1": endpoint{},
4024 "eu-west-2": endpoint{},
4025 "eu-west-3": endpoint{},
38424026 "us-east-1": endpoint{},
38434027 "us-east-2": endpoint{},
38444028 "us-west-2": endpoint{},
38454029 },
38464030 },
4031 "logs": service{
4032
4033 Endpoints: endpoints{
4034 "af-south-1": endpoint{},
4035 "ap-east-1": endpoint{},
4036 "ap-northeast-1": endpoint{},
4037 "ap-northeast-2": endpoint{},
4038 "ap-northeast-3": endpoint{},
4039 "ap-south-1": endpoint{},
4040 "ap-southeast-1": endpoint{},
4041 "ap-southeast-2": endpoint{},
4042 "ca-central-1": endpoint{},
4043 "eu-central-1": endpoint{},
4044 "eu-north-1": endpoint{},
4045 "eu-south-1": endpoint{},
4046 "eu-west-1": endpoint{},
4047 "eu-west-2": endpoint{},
4048 "eu-west-3": endpoint{},
4049 "fips-us-east-1": endpoint{
4050 Hostname: "logs-fips.us-east-1.amazonaws.com",
4051 CredentialScope: credentialScope{
4052 Region: "us-east-1",
4053 },
4054 },
4055 "fips-us-east-2": endpoint{
4056 Hostname: "logs-fips.us-east-2.amazonaws.com",
4057 CredentialScope: credentialScope{
4058 Region: "us-east-2",
4059 },
4060 },
4061 "fips-us-west-1": endpoint{
4062 Hostname: "logs-fips.us-west-1.amazonaws.com",
4063 CredentialScope: credentialScope{
4064 Region: "us-west-1",
4065 },
4066 },
4067 "fips-us-west-2": endpoint{
4068 Hostname: "logs-fips.us-west-2.amazonaws.com",
4069 CredentialScope: credentialScope{
4070 Region: "us-west-2",
4071 },
4072 },
4073 "me-south-1": endpoint{},
4074 "sa-east-1": endpoint{},
4075 "us-east-1": endpoint{},
4076 "us-east-2": endpoint{},
4077 "us-west-1": endpoint{},
4078 "us-west-2": endpoint{},
4079 },
4080 },
4081 "lookoutvision": service{
4082
4083 Endpoints: endpoints{
4084 "ap-northeast-1": endpoint{},
4085 "ap-northeast-2": endpoint{},
4086 "eu-central-1": endpoint{},
4087 "eu-west-1": endpoint{},
4088 "us-east-1": endpoint{},
4089 "us-east-2": endpoint{},
4090 "us-west-2": endpoint{},
4091 },
4092 },
38474093 "machinelearning": service{
38484094
38494095 Endpoints: endpoints{
38734119 "macie2": service{
38744120
38754121 Endpoints: endpoints{
4122 "af-south-1": endpoint{},
38764123 "ap-east-1": endpoint{},
38774124 "ap-northeast-1": endpoint{},
38784125 "ap-northeast-2": endpoint{},
38824129 "ca-central-1": endpoint{},
38834130 "eu-central-1": endpoint{},
38844131 "eu-north-1": endpoint{},
4132 "eu-south-1": endpoint{},
38854133 "eu-west-1": endpoint{},
38864134 "eu-west-2": endpoint{},
38874135 "eu-west-3": endpoint{},
39094157 Region: "us-west-2",
39104158 },
39114159 },
3912 "sa-east-1": endpoint{},
3913 "us-east-1": endpoint{},
3914 "us-east-2": endpoint{},
3915 "us-west-1": endpoint{},
3916 "us-west-2": endpoint{},
4160 "me-south-1": endpoint{},
4161 "sa-east-1": endpoint{},
4162 "us-east-1": endpoint{},
4163 "us-east-2": endpoint{},
4164 "us-west-1": endpoint{},
4165 "us-west-2": endpoint{},
39174166 },
39184167 },
39194168 "managedblockchain": service{
40864335 "ap-east-1": endpoint{},
40874336 "ap-northeast-1": endpoint{},
40884337 "ap-northeast-2": endpoint{},
4338 "ap-northeast-3": endpoint{},
40894339 "ap-south-1": endpoint{},
40904340 "ap-southeast-1": endpoint{},
40914341 "ap-southeast-2": endpoint{},
41364386 "eu-west-1": endpoint{},
41374387 "eu-west-2": endpoint{},
41384388 "us-east-1": endpoint{},
4139 "us-west-2": endpoint{},
4389 "us-east-1-fips": endpoint{
4390 Hostname: "models-fips.lex.us-east-1.amazonaws.com",
4391 CredentialScope: credentialScope{
4392 Region: "us-east-1",
4393 },
4394 },
4395 "us-west-2": endpoint{},
4396 "us-west-2-fips": endpoint{
4397 Hostname: "models-fips.lex.us-west-2.amazonaws.com",
4398 CredentialScope: credentialScope{
4399 Region: "us-west-2",
4400 },
4401 },
41404402 },
41414403 },
41424404 "monitoring": service{
41484410 "ap-east-1": endpoint{},
41494411 "ap-northeast-1": endpoint{},
41504412 "ap-northeast-2": endpoint{},
4413 "ap-northeast-3": endpoint{},
41514414 "ap-south-1": endpoint{},
41524415 "ap-southeast-1": endpoint{},
41534416 "ap-southeast-2": endpoint{},
46984961 Region: "us-west-2",
46994962 },
47004963 },
4964 },
4965 },
4966 "profile": service{
4967
4968 Endpoints: endpoints{
4969 "ap-northeast-1": endpoint{},
4970 "ap-southeast-1": endpoint{},
4971 "ap-southeast-2": endpoint{},
4972 "eu-central-1": endpoint{},
4973 "eu-west-2": endpoint{},
4974 "us-east-1": endpoint{},
4975 "us-west-2": endpoint{},
47014976 },
47024977 },
47034978 "projects.iot1click": service{
47585033 "ap-east-1": endpoint{},
47595034 "ap-northeast-1": endpoint{},
47605035 "ap-northeast-2": endpoint{},
5036 "ap-northeast-3": endpoint{},
47615037 "ap-south-1": endpoint{},
47625038 "ap-southeast-1": endpoint{},
47635039 "ap-southeast-2": endpoint{},
48155091 "ap-east-1": endpoint{},
48165092 "ap-northeast-1": endpoint{},
48175093 "ap-northeast-2": endpoint{},
5094 "ap-northeast-3": endpoint{},
48185095 "ap-south-1": endpoint{},
48195096 "ap-southeast-1": endpoint{},
48205097 "ap-southeast-2": endpoint{},
49185195 "ap-east-1": endpoint{},
49195196 "ap-northeast-1": endpoint{},
49205197 "ap-northeast-2": endpoint{},
5198 "ap-northeast-3": endpoint{},
49215199 "ap-south-1": endpoint{},
49225200 "ap-southeast-1": endpoint{},
49235201 "ap-southeast-2": endpoint{},
50385316 "eu-west-1": endpoint{},
50395317 "eu-west-2": endpoint{},
50405318 "us-east-1": endpoint{},
5041 "us-west-2": endpoint{},
5319 "us-east-1-fips": endpoint{
5320 Hostname: "runtime-fips.lex.us-east-1.amazonaws.com",
5321 CredentialScope: credentialScope{
5322 Region: "us-east-1",
5323 },
5324 },
5325 "us-west-2": endpoint{},
5326 "us-west-2-fips": endpoint{
5327 Hostname: "runtime-fips.lex.us-west-2.amazonaws.com",
5328 CredentialScope: credentialScope{
5329 Region: "us-west-2",
5330 },
5331 },
50425332 },
50435333 },
50445334 "runtime.sagemaker": service{
51085398 SignatureVersions: []string{"s3", "s3v4"},
51095399 },
51105400 "ap-northeast-2": endpoint{},
5401 "ap-northeast-3": endpoint{},
51115402 "ap-south-1": endpoint{},
51125403 "ap-southeast-1": endpoint{
51135404 Hostname: "s3.ap-southeast-1.amazonaws.com",
51845475 Region: "ap-northeast-2",
51855476 },
51865477 },
5478 "ap-northeast-3": endpoint{
5479 Hostname: "s3-control.ap-northeast-3.amazonaws.com",
5480 SignatureVersions: []string{"s3v4"},
5481 CredentialScope: credentialScope{
5482 Region: "ap-northeast-3",
5483 },
5484 },
51875485 "ap-south-1": endpoint{
51885486 Hostname: "s3-control.ap-south-1.amazonaws.com",
51895487 SignatureVersions: []string{"s3v4"},
53795677 "ap-east-1": endpoint{},
53805678 "ap-northeast-1": endpoint{},
53815679 "ap-northeast-2": endpoint{},
5680 "ap-northeast-3": endpoint{},
53825681 "ap-south-1": endpoint{},
53835682 "ap-southeast-1": endpoint{},
53845683 "ap-southeast-2": endpoint{},
55835882 "servicediscovery": service{
55845883
55855884 Endpoints: endpoints{
5885 "af-south-1": endpoint{},
55865886 "ap-east-1": endpoint{},
55875887 "ap-northeast-1": endpoint{},
55885888 "ap-northeast-2": endpoint{},
55925892 "ca-central-1": endpoint{},
55935893 "eu-central-1": endpoint{},
55945894 "eu-north-1": endpoint{},
5895 "eu-south-1": endpoint{},
55955896 "eu-west-1": endpoint{},
55965897 "eu-west-2": endpoint{},
55975898 "eu-west-3": endpoint{},
56185919 "ap-east-1": endpoint{},
56195920 "ap-northeast-1": endpoint{},
56205921 "ap-northeast-2": endpoint{},
5922 "ap-northeast-3": endpoint{},
56215923 "ap-south-1": endpoint{},
56225924 "ap-southeast-1": endpoint{},
56235925 "ap-southeast-2": endpoint{},
57286030 "ap-east-1": endpoint{},
57296031 "ap-northeast-1": endpoint{},
57306032 "ap-northeast-2": endpoint{},
6033 "ap-northeast-3": endpoint{},
57316034 "ap-south-1": endpoint{},
57326035 "ap-southeast-1": endpoint{},
57336036 "ap-southeast-2": endpoint{},
58506153 "ap-east-1": endpoint{},
58516154 "ap-northeast-1": endpoint{},
58526155 "ap-northeast-2": endpoint{},
6156 "ap-northeast-3": endpoint{},
58536157 "ap-south-1": endpoint{},
58546158 "ap-southeast-1": endpoint{},
58556159 "ap-southeast-2": endpoint{},
59026206 "ap-east-1": endpoint{},
59036207 "ap-northeast-1": endpoint{},
59046208 "ap-northeast-2": endpoint{},
6209 "ap-northeast-3": endpoint{},
59056210 "ap-south-1": endpoint{},
59066211 "ap-southeast-1": endpoint{},
59076212 "ap-southeast-2": endpoint{},
59536258 "ap-east-1": endpoint{},
59546259 "ap-northeast-1": endpoint{},
59556260 "ap-northeast-2": endpoint{},
6261 "ap-northeast-3": endpoint{},
59566262 "ap-south-1": endpoint{},
59576263 "ap-southeast-1": endpoint{},
59586264 "ap-southeast-2": endpoint{},
60086314 "ap-east-1": endpoint{},
60096315 "ap-northeast-1": endpoint{},
60106316 "ap-northeast-2": endpoint{},
6317 "ap-northeast-3": endpoint{},
60116318 "ap-south-1": endpoint{},
60126319 "ap-southeast-1": endpoint{},
60136320 "ap-southeast-2": endpoint{},
61536460 "ap-east-1": endpoint{},
61546461 "ap-northeast-1": endpoint{},
61556462 "ap-northeast-2": endpoint{},
6463 "ap-northeast-3": endpoint{},
61566464 "ap-south-1": endpoint{},
61576465 "ap-southeast-1": endpoint{},
61586466 "ap-southeast-2": endpoint{},
62206528 "ap-east-1": endpoint{},
62216529 "ap-northeast-1": endpoint{},
62226530 "ap-northeast-2": endpoint{},
6531 "ap-northeast-3": endpoint{},
62236532 "ap-south-1": endpoint{},
62246533 "ap-southeast-1": endpoint{},
62256534 "ap-southeast-2": endpoint{},
62696578 "ap-east-1": endpoint{},
62706579 "ap-northeast-1": endpoint{},
62716580 "ap-northeast-2": endpoint{},
6581 "ap-northeast-3": endpoint{},
62726582 "ap-south-1": endpoint{},
62736583 "ap-southeast-1": endpoint{},
62746584 "ap-southeast-2": endpoint{},
63546664 "transfer": service{
63556665
63566666 Endpoints: endpoints{
6667 "af-south-1": endpoint{},
6668 "ap-east-1": endpoint{},
63576669 "ap-northeast-1": endpoint{},
63586670 "ap-northeast-2": endpoint{},
63596671 "ap-south-1": endpoint{},
63956707 Region: "us-west-2",
63966708 },
63976709 },
6398 "sa-east-1": endpoint{},
6399 "us-east-1": endpoint{},
6400 "us-east-2": endpoint{},
6401 "us-west-1": endpoint{},
6402 "us-west-2": endpoint{},
6710 "me-south-1": endpoint{},
6711 "sa-east-1": endpoint{},
6712 "us-east-1": endpoint{},
6713 "us-east-2": endpoint{},
6714 "us-west-1": endpoint{},
6715 "us-west-2": endpoint{},
64036716 },
64046717 },
64056718 "translate": service{
67457058 Endpoints: endpoints{
67467059 "ap-northeast-1": endpoint{},
67477060 "ap-northeast-2": endpoint{},
7061 "ap-south-1": endpoint{},
67487062 "ap-southeast-1": endpoint{},
67497063 "ap-southeast-2": endpoint{},
67507064 "ca-central-1": endpoint{},
67757089 "ap-east-1": endpoint{},
67767090 "ap-northeast-1": endpoint{},
67777091 "ap-northeast-2": endpoint{},
7092 "ap-northeast-3": endpoint{},
67787093 "ap-south-1": endpoint{},
67797094 "ap-southeast-1": endpoint{},
67807095 "ap-southeast-2": endpoint{},
67857100 "eu-west-1": endpoint{},
67867101 "eu-west-2": endpoint{},
67877102 "eu-west-3": endpoint{},
6788 "me-south-1": endpoint{},
6789 "sa-east-1": endpoint{},
6790 "us-east-1": endpoint{},
6791 "us-east-2": endpoint{},
6792 "us-west-1": endpoint{},
6793 "us-west-2": endpoint{},
7103 "fips-us-east-1": endpoint{
7104 Hostname: "xray-fips.us-east-1.amazonaws.com",
7105 CredentialScope: credentialScope{
7106 Region: "us-east-1",
7107 },
7108 },
7109 "fips-us-east-2": endpoint{
7110 Hostname: "xray-fips.us-east-2.amazonaws.com",
7111 CredentialScope: credentialScope{
7112 Region: "us-east-2",
7113 },
7114 },
7115 "fips-us-west-1": endpoint{
7116 Hostname: "xray-fips.us-west-1.amazonaws.com",
7117 CredentialScope: credentialScope{
7118 Region: "us-west-1",
7119 },
7120 },
7121 "fips-us-west-2": endpoint{
7122 Hostname: "xray-fips.us-west-2.amazonaws.com",
7123 CredentialScope: credentialScope{
7124 Region: "us-west-2",
7125 },
7126 },
7127 "me-south-1": endpoint{},
7128 "sa-east-1": endpoint{},
7129 "us-east-1": endpoint{},
7130 "us-east-2": endpoint{},
7131 "us-west-1": endpoint{},
7132 "us-west-2": endpoint{},
67947133 },
67957134 },
67967135 },
72197558 "cn-north-1": endpoint{},
72207559 },
72217560 },
7561 "guardduty": service{
7562 IsRegionalized: boxedTrue,
7563 Defaults: endpoint{
7564 Protocols: []string{"https"},
7565 },
7566 Endpoints: endpoints{
7567 "cn-north-1": endpoint{},
7568 "cn-northwest-1": endpoint{},
7569 },
7570 },
72227571 "health": service{
72237572
72247573 Endpoints: endpoints{
80938442 "us-gov-west-1": endpoint{},
80948443 },
80958444 },
8445 "connect": service{
8446
8447 Endpoints: endpoints{
8448 "us-gov-west-1": endpoint{},
8449 },
8450 },
80968451 "datasync": service{
80978452
80988453 Endpoints: endpoints{
84108765 },
84118766 "fips-us-gov-west-1": endpoint{
84128767 Hostname: "firehose-fips.us-gov-west-1.amazonaws.com",
8768 CredentialScope: credentialScope{
8769 Region: "us-gov-west-1",
8770 },
8771 },
8772 "us-gov-east-1": endpoint{},
8773 "us-gov-west-1": endpoint{},
8774 },
8775 },
8776 "fsx": service{
8777
8778 Endpoints: endpoints{
8779 "fips-prod-us-gov-east-1": endpoint{
8780 Hostname: "fsx-fips.us-gov-east-1.amazonaws.com",
8781 CredentialScope: credentialScope{
8782 Region: "us-gov-east-1",
8783 },
8784 },
8785 "fips-prod-us-gov-west-1": endpoint{
8786 Hostname: "fsx-fips.us-gov-west-1.amazonaws.com",
84138787 CredentialScope: credentialScope{
84148788 Region: "us-gov-west-1",
84158789 },
84798853 Region: "us-gov-east-1",
84808854 },
84818855 },
8482 "us-gov-east-1": endpoint{},
8856 "us-gov-east-1": endpoint{
8857 Hostname: "greengrass.us-gov-east-1.amazonaws.com",
8858 CredentialScope: credentialScope{
8859 Region: "us-gov-east-1",
8860 },
8861 },
84838862 "us-gov-west-1": endpoint{
84848863 Hostname: "greengrass.us-gov-west-1.amazonaws.com",
84858864 CredentialScope: credentialScope{
87109089 "us-gov-west-1": endpoint{},
87119090 },
87129091 },
9092 "models.lex": service{
9093 Defaults: endpoint{
9094 CredentialScope: credentialScope{
9095 Service: "lex",
9096 },
9097 },
9098 Endpoints: endpoints{
9099 "us-gov-west-1": endpoint{},
9100 "us-gov-west-1-fips": endpoint{
9101 Hostname: "models-fips.lex.us-gov-west-1.amazonaws.com",
9102 CredentialScope: credentialScope{
9103 Region: "us-gov-west-1",
9104 },
9105 },
9106 },
9107 },
87139108 "monitoring": service{
87149109
87159110 Endpoints: endpoints{
89159310 "us-gov-west-1": endpoint{},
89169311 },
89179312 },
9313 "runtime.lex": service{
9314 Defaults: endpoint{
9315 CredentialScope: credentialScope{
9316 Service: "lex",
9317 },
9318 },
9319 Endpoints: endpoints{
9320 "us-gov-west-1": endpoint{},
9321 "us-gov-west-1-fips": endpoint{
9322 Hostname: "runtime-fips.lex.us-gov-west-1.amazonaws.com",
9323 CredentialScope: credentialScope{
9324 Region: "us-gov-west-1",
9325 },
9326 },
9327 },
9328 },
89189329 "runtime.sagemaker": service{
89199330
89209331 Endpoints: endpoints{
89219332 "us-gov-west-1": endpoint{},
9333 "us-gov-west-1-fips": endpoint{
9334 Hostname: "runtime.sagemaker.us-gov-west-1.amazonaws.com",
9335 CredentialScope: credentialScope{
9336 Region: "us-gov-west-1",
9337 },
9338 },
89229339 },
89239340 },
89249341 "s3": service{
93299746 "waf-regional": service{
93309747
93319748 Endpoints: endpoints{
9749 "fips-us-gov-east-1": endpoint{
9750 Hostname: "waf-regional-fips.us-gov-east-1.amazonaws.com",
9751 CredentialScope: credentialScope{
9752 Region: "us-gov-east-1",
9753 },
9754 },
93329755 "fips-us-gov-west-1": endpoint{
93339756 Hostname: "waf-regional-fips.us-gov-west-1.amazonaws.com",
93349757 CredentialScope: credentialScope{
93359758 Region: "us-gov-west-1",
93369759 },
93379760 },
9761 "us-gov-east-1": endpoint{
9762 Hostname: "waf-regional.us-gov-east-1.amazonaws.com",
9763 CredentialScope: credentialScope{
9764 Region: "us-gov-east-1",
9765 },
9766 },
93389767 "us-gov-west-1": endpoint{
93399768 Hostname: "waf-regional.us-gov-west-1.amazonaws.com",
93409769 CredentialScope: credentialScope{
93589787 "xray": service{
93599788
93609789 Endpoints: endpoints{
9790 "fips-us-gov-east-1": endpoint{
9791 Hostname: "xray-fips.us-gov-east-1.amazonaws.com",
9792 CredentialScope: credentialScope{
9793 Region: "us-gov-east-1",
9794 },
9795 },
9796 "fips-us-gov-west-1": endpoint{
9797 Hostname: "xray-fips.us-gov-west-1.amazonaws.com",
9798 CredentialScope: credentialScope{
9799 Region: "us-gov-west-1",
9800 },
9801 },
93619802 "us-gov-east-1": endpoint{},
93629803 "us-gov-west-1": endpoint{},
93639804 },
961410055 "us-iso-east-1": endpoint{},
961510056 },
961610057 },
10058 "medialive": service{
10059
10060 Endpoints: endpoints{
10061 "us-iso-east-1": endpoint{},
10062 },
10063 },
10064 "mediapackage": service{
10065
10066 Endpoints: endpoints{
10067 "us-iso-east-1": endpoint{},
10068 },
10069 },
961710070 "monitoring": service{
10071
10072 Endpoints: endpoints{
10073 "us-iso-east-1": endpoint{},
10074 },
10075 },
10076 "outposts": service{
961810077
961910078 Endpoints: endpoints{
962010079 "us-iso-east-1": endpoint{},
966210121 },
966310122 },
966410123 },
10124 "secretsmanager": service{
10125
10126 Endpoints: endpoints{
10127 "us-iso-east-1": endpoint{},
10128 },
10129 },
966510130 "snowball": service{
966610131
966710132 Endpoints: endpoints{
968210147 "us-iso-east-1": endpoint{
968310148 Protocols: []string{"http", "https"},
968410149 },
10150 },
10151 },
10152 "ssm": service{
10153
10154 Endpoints: endpoints{
10155 "us-iso-east-1": endpoint{},
968510156 },
968610157 },
968710158 "states": service{
999710468 "us-isob-east-1": endpoint{},
999810469 },
999910470 },
10471 "route53": service{
10472 PartitionEndpoint: "aws-iso-b-global",
10473 IsRegionalized: boxedFalse,
10474
10475 Endpoints: endpoints{
10476 "aws-iso-b-global": endpoint{
10477 Hostname: "route53.sc2s.sgov.gov",
10478 CredentialScope: credentialScope{
10479 Region: "us-isob-east-1",
10480 },
10481 },
10482 },
10483 },
1000010484 "s3": service{
1000110485 Defaults: endpoint{
1000210486 Protocols: []string{"http", "https"},
+0
-26
ecr-login/vendor/github.com/aws/aws-sdk-go/aws/session/cabundle_transport.go less more
0 // +build go1.7
1
2 package session
3
4 import (
5 "net"
6 "net/http"
7 "time"
8 )
9
10 // Transport that should be used when a custom CA bundle is specified with the
11 // SDK.
12 func getCABundleTransport() *http.Transport {
13 return &http.Transport{
14 Proxy: http.ProxyFromEnvironment,
15 DialContext: (&net.Dialer{
16 Timeout: 30 * time.Second,
17 KeepAlive: 30 * time.Second,
18 DualStack: true,
19 }).DialContext,
20 MaxIdleConns: 100,
21 IdleConnTimeout: 90 * time.Second,
22 TLSHandshakeTimeout: 10 * time.Second,
23 ExpectContinueTimeout: 1 * time.Second,
24 }
25 }
+0
-22
ecr-login/vendor/github.com/aws/aws-sdk-go/aws/session/cabundle_transport_1_5.go less more
0 // +build !go1.6,go1.5
1
2 package session
3
4 import (
5 "net"
6 "net/http"
7 "time"
8 )
9
10 // Transport that should be used when a custom CA bundle is specified with the
11 // SDK.
12 func getCABundleTransport() *http.Transport {
13 return &http.Transport{
14 Proxy: http.ProxyFromEnvironment,
15 Dial: (&net.Dialer{
16 Timeout: 30 * time.Second,
17 KeepAlive: 30 * time.Second,
18 }).Dial,
19 TLSHandshakeTimeout: 10 * time.Second,
20 }
21 }
+0
-23
ecr-login/vendor/github.com/aws/aws-sdk-go/aws/session/cabundle_transport_1_6.go less more
0 // +build !go1.7,go1.6
1
2 package session
3
4 import (
5 "net"
6 "net/http"
7 "time"
8 )
9
10 // Transport that should be used when a custom CA bundle is specified with the
11 // SDK.
12 func getCABundleTransport() *http.Transport {
13 return &http.Transport{
14 Proxy: http.ProxyFromEnvironment,
15 Dial: (&net.Dialer{
16 Timeout: 30 * time.Second,
17 KeepAlive: 30 * time.Second,
18 }).Dial,
19 TLSHandshakeTimeout: 10 * time.Second,
20 ExpectContinueTimeout: 1 * time.Second,
21 }
22 }
88 "github.com/aws/aws-sdk-go/aws/awserr"
99 "github.com/aws/aws-sdk-go/aws/credentials"
1010 "github.com/aws/aws-sdk-go/aws/credentials/processcreds"
11 "github.com/aws/aws-sdk-go/aws/credentials/ssocreds"
1112 "github.com/aws/aws-sdk-go/aws/credentials/stscreds"
1213 "github.com/aws/aws-sdk-go/aws/defaults"
1314 "github.com/aws/aws-sdk-go/aws/request"
9899 creds = credentials.NewStaticCredentialsFromCreds(
99100 sharedCfg.Creds,
100101 )
102
103 case sharedCfg.hasSSOConfiguration():
104 creds, err = resolveSSOCredentials(cfg, sharedCfg, handlers)
101105
102106 case len(sharedCfg.CredentialProcess) != 0:
103107 // Get credentials from CredentialProcess
150154 return creds, nil
151155 }
152156
157 func resolveSSOCredentials(cfg *aws.Config, sharedCfg sharedConfig, handlers request.Handlers) (*credentials.Credentials, error) {
158 if err := sharedCfg.validateSSOConfiguration(); err != nil {
159 return nil, err
160 }
161
162 cfgCopy := cfg.Copy()
163 cfgCopy.Region = &sharedCfg.SSORegion
164
165 return ssocreds.NewCredentials(
166 &Session{
167 Config: cfgCopy,
168 Handlers: handlers.Copy(),
169 },
170 sharedCfg.SSOAccountID,
171 sharedCfg.SSORoleName,
172 sharedCfg.SSOStartURL,
173 ), nil
174 }
175
153176 // valid credential source values
154177 const (
155178 credSourceEc2Metadata = "Ec2InstanceMetadata"
0 // +build go1.13
1
2 package session
3
4 import (
5 "net"
6 "net/http"
7 "time"
8 )
9
10 // Transport that should be used when a custom CA bundle is specified with the
11 // SDK.
12 func getCustomTransport() *http.Transport {
13 return &http.Transport{
14 Proxy: http.ProxyFromEnvironment,
15 DialContext: (&net.Dialer{
16 Timeout: 30 * time.Second,
17 KeepAlive: 30 * time.Second,
18 DualStack: true,
19 }).DialContext,
20 ForceAttemptHTTP2: true,
21 MaxIdleConns: 100,
22 IdleConnTimeout: 90 * time.Second,
23 TLSHandshakeTimeout: 10 * time.Second,
24 ExpectContinueTimeout: 1 * time.Second,
25 }
26 }
0 // +build !go1.13,go1.7
1
2 package session
3
4 import (
5 "net"
6 "net/http"
7 "time"
8 )
9
10 // Transport that should be used when a custom CA bundle is specified with the
11 // SDK.
12 func getCustomTransport() *http.Transport {
13 return &http.Transport{
14 Proxy: http.ProxyFromEnvironment,
15 DialContext: (&net.Dialer{
16 Timeout: 30 * time.Second,
17 KeepAlive: 30 * time.Second,
18 DualStack: true,
19 }).DialContext,
20 MaxIdleConns: 100,
21 IdleConnTimeout: 90 * time.Second,
22 TLSHandshakeTimeout: 10 * time.Second,
23 ExpectContinueTimeout: 1 * time.Second,
24 }
25 }
0 // +build !go1.6,go1.5
1
2 package session
3
4 import (
5 "net"
6 "net/http"
7 "time"
8 )
9
10 // Transport that should be used when a custom CA bundle is specified with the
11 // SDK.
12 func getCustomTransport() *http.Transport {
13 return &http.Transport{
14 Proxy: http.ProxyFromEnvironment,
15 Dial: (&net.Dialer{
16 Timeout: 30 * time.Second,
17 KeepAlive: 30 * time.Second,
18 }).Dial,
19 TLSHandshakeTimeout: 10 * time.Second,
20 }
21 }
0 // +build !go1.7,go1.6
1
2 package session
3
4 import (
5 "net"
6 "net/http"
7 "time"
8 )
9
10 // Transport that should be used when a custom CA bundle is specified with the
11 // SDK.
12 func getCustomTransport() *http.Transport {
13 return &http.Transport{
14 Proxy: http.ProxyFromEnvironment,
15 Dial: (&net.Dialer{
16 Timeout: 30 * time.Second,
17 KeepAlive: 30 * time.Second,
18 }).Dial,
19 TLSHandshakeTimeout: 10 * time.Second,
20 ExpectContinueTimeout: 1 * time.Second,
21 }
22 }
207207
208208 AWS_SDK_LOAD_CONFIG=1
209209
210 Custom Shared Config and Credential Files
211
210212 Shared credentials file path can be set to instruct the SDK to use an alternative
211213 file for the shared credentials. If not set the file will be loaded from
212214 $HOME/.aws/credentials on Linux/Unix based systems, and
220222 %USERPROFILE%\.aws\config on Windows.
221223
222224 AWS_CONFIG_FILE=$HOME/my_shared_config
225
226 Custom CA Bundle
223227
224228 Path to a custom Credentials Authority (CA) bundle PEM file that the SDK
225229 will use instead of the default system's root CA bundle. Use this only
241245 To use this option and custom HTTP client, the HTTP client needs to be provided
242246 when creating the session. Not the service client.
243247
248 Custom Client TLS Certificate
249
250 The SDK supports the environment and session option being configured with
251 Client TLS certificates that are sent as a part of the client's TLS handshake
252 for client authentication. If used, both Cert and Key values are required. If
253 one is missing, or either fail to load the contents of the file an error will
254 be returned.
255
256 HTTP Client's Transport concrete implementation must be a http.Transport
257 or creating the session will fail.
258
259 AWS_SDK_GO_CLIENT_TLS_KEY=$HOME/my_client_key
260 AWS_SDK_GO_CLIENT_TLS_CERT=$HOME/my_client_cert
261
262 This can also be configured via the session.Options ClientTLSCert and ClientTLSKey.
263
264 sess, err := session.NewSessionWithOptions(session.Options{
265 ClientTLSCert: myCertFile,
266 ClientTLSKey: myKeyFile,
267 })
268
269 Custom EC2 IMDS Endpoint
270
244271 The endpoint of the EC2 IMDS client can be configured via the environment
245272 variable, AWS_EC2_METADATA_SERVICE_ENDPOINT when creating the client with a
246273 Session. See Options.EC2IMDSEndpoint for more details.
100100 // AWS_CA_BUNDLE=$HOME/my_custom_ca_bundle
101101 CustomCABundle string
102102
103 // Sets the TLC client certificate that should be used by the SDK's HTTP transport
104 // when making requests. The certificate must be paired with a TLS client key file.
105 //
106 // AWS_SDK_GO_CLIENT_TLS_CERT=$HOME/my_client_cert
107 ClientTLSCert string
108
109 // Sets the TLC client key that should be used by the SDK's HTTP transport
110 // when making requests. The key must be paired with a TLS client certificate file.
111 //
112 // AWS_SDK_GO_CLIENT_TLS_KEY=$HOME/my_client_key
113 ClientTLSKey string
114
103115 csmEnabled string
104116 CSMEnabled *bool
105117 CSMPort string
217229 }
218230 ec2IMDSEndpointEnvKey = []string{
219231 "AWS_EC2_METADATA_SERVICE_ENDPOINT",
232 }
233 useCABundleKey = []string{
234 "AWS_CA_BUNDLE",
235 }
236 useClientTLSCert = []string{
237 "AWS_SDK_GO_CLIENT_TLS_CERT",
238 }
239 useClientTLSKey = []string{
240 "AWS_SDK_GO_CLIENT_TLS_KEY",
220241 }
221242 )
222243
301322 cfg.SharedConfigFile = defaults.SharedConfigFilename()
302323 }
303324
304 cfg.CustomCABundle = os.Getenv("AWS_CA_BUNDLE")
325 setFromEnvVal(&cfg.CustomCABundle, useCABundleKey)
326 setFromEnvVal(&cfg.ClientTLSCert, useClientTLSCert)
327 setFromEnvVal(&cfg.ClientTLSKey, useClientTLSKey)
305328
306329 var err error
307330 // STS Regional Endpoint variable
2424 // ErrCodeSharedConfig represents an error that occurs in the shared
2525 // configuration logic
2626 ErrCodeSharedConfig = "SharedConfigErr"
27
28 // ErrCodeLoadCustomCABundle error code for unable to load custom CA bundle.
29 ErrCodeLoadCustomCABundle = "LoadCustomCABundleError"
30
31 // ErrCodeLoadClientTLSCert error code for unable to load client TLS
32 // certificate or key
33 ErrCodeLoadClientTLSCert = "LoadClientTLSCertError"
2734 )
2835
2936 // ErrSharedConfigSourceCollision will be returned if a section contains both
3037 // source_profile and credential_source
31 var ErrSharedConfigSourceCollision = awserr.New(ErrCodeSharedConfig, "only source profile or credential source can be specified, not both", nil)
38 var ErrSharedConfigSourceCollision = awserr.New(ErrCodeSharedConfig, "only one credential type may be specified per profile: source profile, credential source, credential process, web identity token, or sso", nil)
3239
3340 // ErrSharedConfigECSContainerEnvVarEmpty will be returned if the environment
3441 // variables are empty and Environment was set as the credential source
228235 // the SDK will use instead of the default system's root CA bundle. Use this
229236 // only if you want to replace the CA bundle the SDK uses for TLS requests.
230237 //
231 // Enabling this option will attempt to merge the Transport into the SDK's HTTP
232 // client. If the client's Transport is not a http.Transport an error will be
233 // returned. If the Transport's TLS config is set this option will cause the SDK
238 // HTTP Client's Transport concrete implementation must be a http.Transport
239 // or creating the session will fail.
240 //
241 // If the Transport's TLS config is set this option will cause the SDK
234242 // to overwrite the Transport's TLS config's RootCAs value. If the CA
235243 // bundle reader contains multiple certificates all of them will be loaded.
236244 //
237 // The Session option CustomCABundle is also available when creating sessions
238 // to also enable this feature. CustomCABundle session option field has priority
239 // over the AWS_CA_BUNDLE environment variable, and will be used if both are set.
245 // Can also be specified via the environment variable:
246 //
247 // AWS_CA_BUNDLE=$HOME/ca_bundle
248 //
249 // Can also be specified via the shared config field:
250 //
251 // ca_bundle = $HOME/ca_bundle
240252 CustomCABundle io.Reader
253
254 // Reader for the TLC client certificate that should be used by the SDK's
255 // HTTP transport when making requests. The certificate must be paired with
256 // a TLS client key file. Will be ignored if both are not provided.
257 //
258 // HTTP Client's Transport concrete implementation must be a http.Transport
259 // or creating the session will fail.
260 //
261 // Can also be specified via the environment variable:
262 //
263 // AWS_SDK_GO_CLIENT_TLS_CERT=$HOME/my_client_cert
264 ClientTLSCert io.Reader
265
266 // Reader for the TLC client key that should be used by the SDK's HTTP
267 // transport when making requests. The key must be paired with a TLS client
268 // certificate file. Will be ignored if both are not provided.
269 //
270 // HTTP Client's Transport concrete implementation must be a http.Transport
271 // or creating the session will fail.
272 //
273 // Can also be specified via the environment variable:
274 //
275 // AWS_SDK_GO_CLIENT_TLS_KEY=$HOME/my_client_key
276 ClientTLSKey io.Reader
241277
242278 // The handlers that the session and all API clients will be created with.
243279 // This must be a complete set of handlers. Use the defaults.Handlers()
316352 envCfg.EnableSharedConfig = false
317353 case SharedConfigEnable:
318354 envCfg.EnableSharedConfig = true
319 }
320
321 // Only use AWS_CA_BUNDLE if session option is not provided.
322 if len(envCfg.CustomCABundle) != 0 && opts.CustomCABundle == nil {
323 f, err := os.Open(envCfg.CustomCABundle)
324 if err != nil {
325 return nil, awserr.New("LoadCustomCABundleError",
326 "failed to open custom CA bundle PEM file", err)
327 }
328 defer f.Close()
329 opts.CustomCABundle = f
330355 }
331356
332357 return newSession(opts, envCfg, &opts.Config)
459484 return nil, err
460485 }
461486
487 if err := setTLSOptions(&opts, cfg, envCfg, sharedCfg); err != nil {
488 return nil, err
489 }
490
462491 s := &Session{
463492 Config: cfg,
464493 Handlers: handlers,
474503 } else if csmCfg.Enabled {
475504 err = enableCSM(&s.Handlers, csmCfg, s.Config.Logger)
476505 if err != nil {
477 return nil, err
478 }
479 }
480
481 // Setup HTTP client with custom cert bundle if enabled
482 if opts.CustomCABundle != nil {
483 if err := loadCustomCABundle(s, opts.CustomCABundle); err != nil {
484506 return nil, err
485507 }
486508 }
528550 return csmConfig{}, nil
529551 }
530552
531 func loadCustomCABundle(s *Session, bundle io.Reader) error {
553 func setTLSOptions(opts *Options, cfg *aws.Config, envCfg envConfig, sharedCfg sharedConfig) error {
554 // CA Bundle can be specified in both environment variable shared config file.
555 var caBundleFilename = envCfg.CustomCABundle
556 if len(caBundleFilename) == 0 {
557 caBundleFilename = sharedCfg.CustomCABundle
558 }
559
560 // Only use environment value if session option is not provided.
561 customTLSOptions := map[string]struct {
562 filename string
563 field *io.Reader
564 errCode string
565 }{
566 "custom CA bundle PEM": {filename: caBundleFilename, field: &opts.CustomCABundle, errCode: ErrCodeLoadCustomCABundle},
567 "custom client TLS cert": {filename: envCfg.ClientTLSCert, field: &opts.ClientTLSCert, errCode: ErrCodeLoadClientTLSCert},
568 "custom client TLS key": {filename: envCfg.ClientTLSKey, field: &opts.ClientTLSKey, errCode: ErrCodeLoadClientTLSCert},
569 }
570 for name, v := range customTLSOptions {
571 if len(v.filename) != 0 && *v.field == nil {
572 f, err := os.Open(v.filename)
573 if err != nil {
574 return awserr.New(v.errCode, fmt.Sprintf("failed to open %s file", name), err)
575 }
576 defer f.Close()
577 *v.field = f
578 }
579 }
580
581 // Setup HTTP client with custom cert bundle if enabled
582 if opts.CustomCABundle != nil {
583 if err := loadCustomCABundle(cfg.HTTPClient, opts.CustomCABundle); err != nil {
584 return err
585 }
586 }
587
588 // Setup HTTP client TLS certificate and key for client TLS authentication.
589 if opts.ClientTLSCert != nil && opts.ClientTLSKey != nil {
590 if err := loadClientTLSCert(cfg.HTTPClient, opts.ClientTLSCert, opts.ClientTLSKey); err != nil {
591 return err
592 }
593 } else if opts.ClientTLSCert == nil && opts.ClientTLSKey == nil {
594 // Do nothing if neither values are available.
595
596 } else {
597 return awserr.New(ErrCodeLoadClientTLSCert,
598 fmt.Sprintf("client TLS cert(%t) and key(%t) must both be provided",
599 opts.ClientTLSCert != nil, opts.ClientTLSKey != nil), nil)
600 }
601
602 return nil
603 }
604
605 func getHTTPTransport(client *http.Client) (*http.Transport, error) {
532606 var t *http.Transport
533 switch v := s.Config.HTTPClient.Transport.(type) {
607 switch v := client.Transport.(type) {
534608 case *http.Transport:
535609 t = v
536610 default:
537 if s.Config.HTTPClient.Transport != nil {
538 return awserr.New("LoadCustomCABundleError",
539 "unable to load custom CA bundle, HTTPClient's transport unsupported type", nil)
611 if client.Transport != nil {
612 return nil, fmt.Errorf("unsupported transport, %T", client.Transport)
540613 }
541614 }
542615 if t == nil {
543616 // Nil transport implies `http.DefaultTransport` should be used. Since
544617 // the SDK cannot modify, nor copy the `DefaultTransport` specifying
545618 // the values the next closest behavior.
546 t = getCABundleTransport()
619 t = getCustomTransport()
620 }
621
622 return t, nil
623 }
624
625 func loadCustomCABundle(client *http.Client, bundle io.Reader) error {
626 t, err := getHTTPTransport(client)
627 if err != nil {
628 return awserr.New(ErrCodeLoadCustomCABundle,
629 "unable to load custom CA bundle, HTTPClient's transport unsupported type", err)
547630 }
548631
549632 p, err := loadCertPool(bundle)
555638 }
556639 t.TLSClientConfig.RootCAs = p
557640
558 s.Config.HTTPClient.Transport = t
641 client.Transport = t
559642
560643 return nil
561644 }
563646 func loadCertPool(r io.Reader) (*x509.CertPool, error) {
564647 b, err := ioutil.ReadAll(r)
565648 if err != nil {
566 return nil, awserr.New("LoadCustomCABundleError",
649 return nil, awserr.New(ErrCodeLoadCustomCABundle,
567650 "failed to read custom CA bundle PEM file", err)
568651 }
569652
570653 p := x509.NewCertPool()
571654 if !p.AppendCertsFromPEM(b) {
572 return nil, awserr.New("LoadCustomCABundleError",
655 return nil, awserr.New(ErrCodeLoadCustomCABundle,
573656 "failed to load custom CA bundle PEM file", err)
574657 }
575658
576659 return p, nil
660 }
661
662 func loadClientTLSCert(client *http.Client, certFile, keyFile io.Reader) error {
663 t, err := getHTTPTransport(client)
664 if err != nil {
665 return awserr.New(ErrCodeLoadClientTLSCert,
666 "unable to get usable HTTP transport from client", err)
667 }
668
669 cert, err := ioutil.ReadAll(certFile)
670 if err != nil {
671 return awserr.New(ErrCodeLoadClientTLSCert,
672 "unable to get read client TLS cert file", err)
673 }
674
675 key, err := ioutil.ReadAll(keyFile)
676 if err != nil {
677 return awserr.New(ErrCodeLoadClientTLSCert,
678 "unable to get read client TLS key file", err)
679 }
680
681 clientCert, err := tls.X509KeyPair(cert, key)
682 if err != nil {
683 return awserr.New(ErrCodeLoadClientTLSCert,
684 "unable to load x509 key pair from client cert", err)
685 }
686
687 tlsCfg := t.TLSClientConfig
688 if tlsCfg == nil {
689 tlsCfg = &tls.Config{}
690 }
691
692 tlsCfg.Certificates = append(tlsCfg.Certificates, clientCert)
693
694 t.TLSClientConfig = tlsCfg
695 client.Transport = t
696
697 return nil
577698 }
578699
579700 func mergeConfigSrcs(cfg, userCfg *aws.Config,
11
22 import (
33 "fmt"
4 "strings"
45 "time"
56
67 "github.com/aws/aws-sdk-go/aws/awserr"
2425 roleSessionNameKey = `role_session_name` // optional
2526 roleDurationSecondsKey = "duration_seconds" // optional
2627
28 // AWS Single Sign-On (AWS SSO) group
29 ssoAccountIDKey = "sso_account_id"
30 ssoRegionKey = "sso_region"
31 ssoRoleNameKey = "sso_role_name"
32 ssoStartURL = "sso_start_url"
33
2734 // CSM options
2835 csmEnabledKey = `csm_enabled`
2936 csmHostKey = `csm_host`
3340 // Additional Config fields
3441 regionKey = `region`
3542
43 // custom CA Bundle filename
44 customCABundleKey = `ca_bundle`
45
3646 // endpoint discovery group
3747 enableEndpointDiscoveryKey = `endpoint_discovery_enabled` // optional
3848
5969
6070 // sharedConfig represents the configuration fields of the SDK config files.
6171 type sharedConfig struct {
72 Profile string
73
6274 // Credentials values from the config file. Both aws_access_key_id and
6375 // aws_secret_access_key must be provided together in the same file to be
6476 // considered valid. The values will be ignored if not a complete group.
7486 CredentialProcess string
7587 WebIdentityTokenFile string
7688
89 SSOAccountID string
90 SSORegion string
91 SSORoleName string
92 SSOStartURL string
93
7794 RoleARN string
7895 RoleSessionName string
7996 ExternalID string
88105 //
89106 // region
90107 Region string
108
109 // CustomCABundle is the file path to a PEM file the SDK will read and
110 // use to configure the HTTP transport with additional CA certs that are
111 // not present in the platforms default CA store.
112 //
113 // This value will be ignored if the file does not exist.
114 //
115 // ca_bundle
116 CustomCABundle string
91117
92118 // EnableEndpointDiscovery can be enabled in the shared config by setting
93119 // endpoint_discovery_enabled to true
176202 }
177203
178204 func (cfg *sharedConfig) setFromIniFiles(profiles map[string]struct{}, profile string, files []sharedConfigFile, exOpts bool) error {
205 cfg.Profile = profile
206
179207 // Trim files from the list that don't exist.
180208 var skippedFiles int
181209 var profileNotFoundErr error
204232 cfg.clearAssumeRoleOptions()
205233 } else {
206234 // First time a profile has been seen, It must either be a assume role
207 // or credentials. Assert if the credential type requires a role ARN,
208 // the ARN is also set.
209 if err := cfg.validateCredentialsRequireARN(profile); err != nil {
235 // credentials, or SSO. Assert if the credential type requires a role ARN,
236 // the ARN is also set, or validate that the SSO configuration is complete.
237 if err := cfg.validateCredentialsConfig(profile); err != nil {
210238 return err
211239 }
212240 }
275303 updateString(&cfg.SourceProfileName, section, sourceProfileKey)
276304 updateString(&cfg.CredentialSource, section, credentialSourceKey)
277305 updateString(&cfg.Region, section, regionKey)
306 updateString(&cfg.CustomCABundle, section, customCABundleKey)
278307
279308 if section.Has(roleDurationSecondsKey) {
280309 d := time.Duration(section.Int(roleDurationSecondsKey)) * time.Second
298327 }
299328 cfg.S3UsEast1RegionalEndpoint = sre
300329 }
330
331 // AWS Single Sign-On (AWS SSO)
332 updateString(&cfg.SSOAccountID, section, ssoAccountIDKey)
333 updateString(&cfg.SSORegion, section, ssoRegionKey)
334 updateString(&cfg.SSORoleName, section, ssoRoleNameKey)
335 updateString(&cfg.SSOStartURL, section, ssoStartURL)
301336 }
302337
303338 updateString(&cfg.CredentialProcess, section, credentialProcessKey)
324359 updateString(&cfg.CSMClientID, section, csmClientIDKey)
325360
326361 updateBool(&cfg.S3UseARNRegion, section, s3UseARNRegionKey)
362
363 return nil
364 }
365
366 func (cfg *sharedConfig) validateCredentialsConfig(profile string) error {
367 if err := cfg.validateCredentialsRequireARN(profile); err != nil {
368 return err
369 }
327370
328371 return nil
329372 }
357400 len(cfg.CredentialSource) != 0,
358401 len(cfg.CredentialProcess) != 0,
359402 len(cfg.WebIdentityTokenFile) != 0,
403 cfg.hasSSOConfiguration(),
360404 ) {
361405 return ErrSharedConfigSourceCollision
406 }
407
408 return nil
409 }
410
411 func (cfg *sharedConfig) validateSSOConfiguration() error {
412 if !cfg.hasSSOConfiguration() {
413 return nil
414 }
415
416 var missing []string
417 if len(cfg.SSOAccountID) == 0 {
418 missing = append(missing, ssoAccountIDKey)
419 }
420
421 if len(cfg.SSORegion) == 0 {
422 missing = append(missing, ssoRegionKey)
423 }
424
425 if len(cfg.SSORoleName) == 0 {
426 missing = append(missing, ssoRoleNameKey)
427 }
428
429 if len(cfg.SSOStartURL) == 0 {
430 missing = append(missing, ssoStartURL)
431 }
432
433 if len(missing) > 0 {
434 return fmt.Errorf("profile %q is configured to use SSO but is missing required configuration: %s",
435 cfg.Profile, strings.Join(missing, ", "))
362436 }
363437
364438 return nil
370444 case len(cfg.CredentialSource) != 0:
371445 case len(cfg.CredentialProcess) != 0:
372446 case len(cfg.WebIdentityTokenFile) != 0:
447 case cfg.hasSSOConfiguration():
373448 case cfg.Creds.HasKeys():
374449 default:
375450 return false
393468 cfg.SourceProfileName = ""
394469 }
395470
471 func (cfg *sharedConfig) hasSSOConfiguration() bool {
472 switch {
473 case len(cfg.SSOAccountID) != 0:
474 case len(cfg.SSORegion) != 0:
475 case len(cfg.SSORoleName) != 0:
476 case len(cfg.SSOStartURL) != 0:
477 default:
478 return false
479 }
480 return true
481 }
482
396483 func oneOrNone(bs ...bool) bool {
397484 var count int
398485
44 const SDKName = "aws-sdk-go"
55
66 // SDKVersion is the version of this SDK
7 const SDKVersion = "1.36.0"
7 const SDKVersion = "1.37.32"
00 package protocol
11
22 import (
3 "github.com/aws/aws-sdk-go/aws/request"
4 "net"
5 "strconv"
36 "strings"
4
5 "github.com/aws/aws-sdk-go/aws/request"
67 )
78
89 // ValidateEndpointHostHandler is a request handler that will validate the
2122 // 3986 host. Returns error if the host is not valid.
2223 func ValidateEndpointHost(opName, host string) error {
2324 paramErrs := request.ErrInvalidParams{Context: opName}
24 labels := strings.Split(host, ".")
2525
26 var hostname string
27 var port string
28 var err error
29
30 if strings.Contains(host, ":") {
31 hostname, port, err = net.SplitHostPort(host)
32
33 if err != nil {
34 paramErrs.Add(request.NewErrParamFormat("endpoint", err.Error(), host))
35 }
36
37 if !ValidPortNumber(port) {
38 paramErrs.Add(request.NewErrParamFormat("endpoint port number", "[0-65535]", port))
39 }
40 } else {
41 hostname = host
42 }
43
44 labels := strings.Split(hostname, ".")
2645 for i, label := range labels {
2746 if i == len(labels)-1 && len(label) == 0 {
2847 // Allow trailing dot for FQDN hosts.
3554 }
3655 }
3756
38 if len(host) > 255 {
57 if len(hostname) == 0 {
58 paramErrs.Add(request.NewErrParamMinLen("endpoint host", 1))
59 }
60
61 if len(hostname) > 255 {
3962 paramErrs.Add(request.NewErrParamMaxLen(
4063 "endpoint host", 255, host,
4164 ))
6588
6689 return true
6790 }
91
92 // ValidPortNumber return if the port is valid RFC 3986 port
93 func ValidPortNumber(port string) bool {
94 i, err := strconv.Atoi(port)
95 if err != nil {
96 return false
97 }
98
99 if i < 0 || i > 65535 {
100 return false
101 }
102 return true
103 }
0 // Package restjson provides RESTful JSON serialization of AWS
1 // requests and responses.
2 package restjson
3
4 //go:generate go run -tags codegen ../../../private/model/cli/gen-protocol-tests ../../../models/protocol_tests/input/rest-json.json build_test.go
5 //go:generate go run -tags codegen ../../../private/model/cli/gen-protocol-tests ../../../models/protocol_tests/output/rest-json.json unmarshal_test.go
6
7 import (
8 "github.com/aws/aws-sdk-go/aws/request"
9 "github.com/aws/aws-sdk-go/private/protocol/jsonrpc"
10 "github.com/aws/aws-sdk-go/private/protocol/rest"
11 )
12
13 // BuildHandler is a named request handler for building restjson protocol
14 // requests
15 var BuildHandler = request.NamedHandler{
16 Name: "awssdk.restjson.Build",
17 Fn: Build,
18 }
19
20 // UnmarshalHandler is a named request handler for unmarshaling restjson
21 // protocol requests
22 var UnmarshalHandler = request.NamedHandler{
23 Name: "awssdk.restjson.Unmarshal",
24 Fn: Unmarshal,
25 }
26
27 // UnmarshalMetaHandler is a named request handler for unmarshaling restjson
28 // protocol request metadata
29 var UnmarshalMetaHandler = request.NamedHandler{
30 Name: "awssdk.restjson.UnmarshalMeta",
31 Fn: UnmarshalMeta,
32 }
33
34 // Build builds a request for the REST JSON protocol.
35 func Build(r *request.Request) {
36 rest.Build(r)
37
38 if t := rest.PayloadType(r.Params); t == "structure" || t == "" {
39 if v := r.HTTPRequest.Header.Get("Content-Type"); len(v) == 0 {
40 r.HTTPRequest.Header.Set("Content-Type", "application/json")
41 }
42 jsonrpc.Build(r)
43 }
44 }
45
46 // Unmarshal unmarshals a response body for the REST JSON protocol.
47 func Unmarshal(r *request.Request) {
48 if t := rest.PayloadType(r.Data); t == "structure" || t == "" {
49 jsonrpc.Unmarshal(r)
50 } else {
51 rest.Unmarshal(r)
52 }
53 }
54
55 // UnmarshalMeta unmarshals response headers for the REST JSON protocol.
56 func UnmarshalMeta(r *request.Request) {
57 rest.UnmarshalMeta(r)
58 }
0 package restjson
1
2 import (
3 "bytes"
4 "io"
5 "io/ioutil"
6 "net/http"
7 "strings"
8
9 "github.com/aws/aws-sdk-go/aws/awserr"
10 "github.com/aws/aws-sdk-go/aws/request"
11 "github.com/aws/aws-sdk-go/private/protocol"
12 "github.com/aws/aws-sdk-go/private/protocol/json/jsonutil"
13 "github.com/aws/aws-sdk-go/private/protocol/rest"
14 )
15
16 const (
17 errorTypeHeader = "X-Amzn-Errortype"
18 errorMessageHeader = "X-Amzn-Errormessage"
19 )
20
21 // UnmarshalTypedError provides unmarshaling errors API response errors
22 // for both typed and untyped errors.
23 type UnmarshalTypedError struct {
24 exceptions map[string]func(protocol.ResponseMetadata) error
25 }
26
27 // NewUnmarshalTypedError returns an UnmarshalTypedError initialized for the
28 // set of exception names to the error unmarshalers
29 func NewUnmarshalTypedError(exceptions map[string]func(protocol.ResponseMetadata) error) *UnmarshalTypedError {
30 return &UnmarshalTypedError{
31 exceptions: exceptions,
32 }
33 }
34
35 // UnmarshalError attempts to unmarshal the HTTP response error as a known
36 // error type. If unable to unmarshal the error type, the generic SDK error
37 // type will be used.
38 func (u *UnmarshalTypedError) UnmarshalError(
39 resp *http.Response,
40 respMeta protocol.ResponseMetadata,
41 ) (error, error) {
42
43 code := resp.Header.Get(errorTypeHeader)
44 msg := resp.Header.Get(errorMessageHeader)
45
46 body := resp.Body
47 if len(code) == 0 {
48 // If unable to get code from HTTP headers have to parse JSON message
49 // to determine what kind of exception this will be.
50 var buf bytes.Buffer
51 var jsonErr jsonErrorResponse
52 teeReader := io.TeeReader(resp.Body, &buf)
53 err := jsonutil.UnmarshalJSONError(&jsonErr, teeReader)
54 if err != nil {
55 return nil, err
56 }
57
58 body = ioutil.NopCloser(&buf)
59 code = jsonErr.Code
60 msg = jsonErr.Message
61 }
62
63 // If code has colon separators remove them so can compare against modeled
64 // exception names.
65 code = strings.SplitN(code, ":", 2)[0]
66
67 if fn, ok := u.exceptions[code]; ok {
68 // If exception code is know, use associated constructor to get a value
69 // for the exception that the JSON body can be unmarshaled into.
70 v := fn(respMeta)
71 if err := jsonutil.UnmarshalJSONCaseInsensitive(v, body); err != nil {
72 return nil, err
73 }
74
75 if err := rest.UnmarshalResponse(resp, v, true); err != nil {
76 return nil, err
77 }
78
79 return v, nil
80 }
81
82 // fallback to unmodeled generic exceptions
83 return awserr.NewRequestFailure(
84 awserr.New(code, msg, nil),
85 respMeta.StatusCode,
86 respMeta.RequestID,
87 ), nil
88 }
89
90 // UnmarshalErrorHandler is a named request handler for unmarshaling restjson
91 // protocol request errors
92 var UnmarshalErrorHandler = request.NamedHandler{
93 Name: "awssdk.restjson.UnmarshalError",
94 Fn: UnmarshalError,
95 }
96
97 // UnmarshalError unmarshals a response error for the REST JSON protocol.
98 func UnmarshalError(r *request.Request) {
99 defer r.HTTPResponse.Body.Close()
100
101 var jsonErr jsonErrorResponse
102 err := jsonutil.UnmarshalJSONError(&jsonErr, r.HTTPResponse.Body)
103 if err != nil {
104 r.Error = awserr.NewRequestFailure(
105 awserr.New(request.ErrCodeSerialization,
106 "failed to unmarshal response error", err),
107 r.HTTPResponse.StatusCode,
108 r.RequestID,
109 )
110 return
111 }
112
113 code := r.HTTPResponse.Header.Get(errorTypeHeader)
114 if code == "" {
115 code = jsonErr.Code
116 }
117 msg := r.HTTPResponse.Header.Get(errorMessageHeader)
118 if msg == "" {
119 msg = jsonErr.Message
120 }
121
122 code = strings.SplitN(code, ":", 2)[0]
123 r.Error = awserr.NewRequestFailure(
124 awserr.New(code, jsonErr.Message, nil),
125 r.HTTPResponse.StatusCode,
126 r.RequestID,
127 )
128 }
129
130 type jsonErrorResponse struct {
131 Code string `json:"code"`
132 Message string `json:"message"`
133 }
598598 // for more information on using Contexts.
599599 func (c *ECR) DeleteLifecyclePolicyWithContext(ctx aws.Context, input *DeleteLifecyclePolicyInput, opts ...request.Option) (*DeleteLifecyclePolicyOutput, error) {
600600 req, out := c.DeleteLifecyclePolicyRequest(input)
601 req.SetContext(ctx)
602 req.ApplyOptions(opts...)
603 return out, req.Send()
604 }
605
606 const opDeleteRegistryPolicy = "DeleteRegistryPolicy"
607
608 // DeleteRegistryPolicyRequest generates a "aws/request.Request" representing the
609 // client's request for the DeleteRegistryPolicy operation. The "output" return
610 // value will be populated with the request's response once the request completes
611 // successfully.
612 //
613 // Use "Send" method on the returned Request to send the API call to the service.
614 // the "output" return value is not valid until after Send returns without error.
615 //
616 // See DeleteRegistryPolicy for more information on using the DeleteRegistryPolicy
617 // API call, and error handling.
618 //
619 // This method is useful when you want to inject custom logic or configuration
620 // into the SDK's request lifecycle. Such as custom headers, or retry logic.
621 //
622 //
623 // // Example sending a request using the DeleteRegistryPolicyRequest method.
624 // req, resp := client.DeleteRegistryPolicyRequest(params)
625 //
626 // err := req.Send()
627 // if err == nil { // resp is now filled
628 // fmt.Println(resp)
629 // }
630 //
631 // See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/DeleteRegistryPolicy
632 func (c *ECR) DeleteRegistryPolicyRequest(input *DeleteRegistryPolicyInput) (req *request.Request, output *DeleteRegistryPolicyOutput) {
633 op := &request.Operation{
634 Name: opDeleteRegistryPolicy,
635 HTTPMethod: "POST",
636 HTTPPath: "/",
637 }
638
639 if input == nil {
640 input = &DeleteRegistryPolicyInput{}
641 }
642
643 output = &DeleteRegistryPolicyOutput{}
644 req = c.newRequest(op, input, output)
645 return
646 }
647
648 // DeleteRegistryPolicy API operation for Amazon EC2 Container Registry.
649 //
650 // Deletes the registry permissions policy.
651 //
652 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
653 // with awserr.Error's Code and Message methods to get detailed information about
654 // the error.
655 //
656 // See the AWS API reference guide for Amazon EC2 Container Registry's
657 // API operation DeleteRegistryPolicy for usage and error information.
658 //
659 // Returned Error Types:
660 // * ServerException
661 // These errors are usually caused by a server-side issue.
662 //
663 // * InvalidParameterException
664 // The specified parameter is invalid. Review the available parameters for the
665 // API request.
666 //
667 // * RegistryPolicyNotFoundException
668 // The registry doesn't have an associated registry policy.
669 //
670 // See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/DeleteRegistryPolicy
671 func (c *ECR) DeleteRegistryPolicy(input *DeleteRegistryPolicyInput) (*DeleteRegistryPolicyOutput, error) {
672 req, out := c.DeleteRegistryPolicyRequest(input)
673 return out, req.Send()
674 }
675
676 // DeleteRegistryPolicyWithContext is the same as DeleteRegistryPolicy with the addition of
677 // the ability to pass a context and additional request options.
678 //
679 // See DeleteRegistryPolicy for details on how to use this API operation.
680 //
681 // The context must be non-nil and will be used for request cancellation. If
682 // the context is nil a panic will occur. In the future the SDK may create
683 // sub-contexts for http.Requests. See https://golang.org/pkg/context/
684 // for more information on using Contexts.
685 func (c *ECR) DeleteRegistryPolicyWithContext(ctx aws.Context, input *DeleteRegistryPolicyInput, opts ...request.Option) (*DeleteRegistryPolicyOutput, error) {
686 req, out := c.DeleteRegistryPolicyRequest(input)
601687 req.SetContext(ctx)
602688 req.ApplyOptions(opts...)
603689 return out, req.Send()
10951181 return p.Err()
10961182 }
10971183
1184 const opDescribeRegistry = "DescribeRegistry"
1185
1186 // DescribeRegistryRequest generates a "aws/request.Request" representing the
1187 // client's request for the DescribeRegistry operation. The "output" return
1188 // value will be populated with the request's response once the request completes
1189 // successfully.
1190 //
1191 // Use "Send" method on the returned Request to send the API call to the service.
1192 // the "output" return value is not valid until after Send returns without error.
1193 //
1194 // See DescribeRegistry for more information on using the DescribeRegistry
1195 // API call, and error handling.
1196 //
1197 // This method is useful when you want to inject custom logic or configuration
1198 // into the SDK's request lifecycle. Such as custom headers, or retry logic.
1199 //
1200 //
1201 // // Example sending a request using the DescribeRegistryRequest method.
1202 // req, resp := client.DescribeRegistryRequest(params)
1203 //
1204 // err := req.Send()
1205 // if err == nil { // resp is now filled
1206 // fmt.Println(resp)
1207 // }
1208 //
1209 // See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/DescribeRegistry
1210 func (c *ECR) DescribeRegistryRequest(input *DescribeRegistryInput) (req *request.Request, output *DescribeRegistryOutput) {
1211 op := &request.Operation{
1212 Name: opDescribeRegistry,
1213 HTTPMethod: "POST",
1214 HTTPPath: "/",
1215 }
1216
1217 if input == nil {
1218 input = &DescribeRegistryInput{}
1219 }
1220
1221 output = &DescribeRegistryOutput{}
1222 req = c.newRequest(op, input, output)
1223 return
1224 }
1225
1226 // DescribeRegistry API operation for Amazon EC2 Container Registry.
1227 //
1228 // Describes the settings for a registry. The replication configuration for
1229 // a repository can be created or updated with the PutReplicationConfiguration
1230 // API action.
1231 //
1232 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1233 // with awserr.Error's Code and Message methods to get detailed information about
1234 // the error.
1235 //
1236 // See the AWS API reference guide for Amazon EC2 Container Registry's
1237 // API operation DescribeRegistry for usage and error information.
1238 //
1239 // Returned Error Types:
1240 // * ServerException
1241 // These errors are usually caused by a server-side issue.
1242 //
1243 // * InvalidParameterException
1244 // The specified parameter is invalid. Review the available parameters for the
1245 // API request.
1246 //
1247 // * ValidationException
1248 // There was an exception validating this request.
1249 //
1250 // See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/DescribeRegistry
1251 func (c *ECR) DescribeRegistry(input *DescribeRegistryInput) (*DescribeRegistryOutput, error) {
1252 req, out := c.DescribeRegistryRequest(input)
1253 return out, req.Send()
1254 }
1255
1256 // DescribeRegistryWithContext is the same as DescribeRegistry with the addition of
1257 // the ability to pass a context and additional request options.
1258 //
1259 // See DescribeRegistry for details on how to use this API operation.
1260 //
1261 // The context must be non-nil and will be used for request cancellation. If
1262 // the context is nil a panic will occur. In the future the SDK may create
1263 // sub-contexts for http.Requests. See https://golang.org/pkg/context/
1264 // for more information on using Contexts.
1265 func (c *ECR) DescribeRegistryWithContext(ctx aws.Context, input *DescribeRegistryInput, opts ...request.Option) (*DescribeRegistryOutput, error) {
1266 req, out := c.DescribeRegistryRequest(input)
1267 req.SetContext(ctx)
1268 req.ApplyOptions(opts...)
1269 return out, req.Send()
1270 }
1271
10981272 const opDescribeRepositories = "DescribeRepositories"
10991273
11001274 // DescribeRepositoriesRequest generates a "aws/request.Request" representing the
16741848 return p.Err()
16751849 }
16761850
1851 const opGetRegistryPolicy = "GetRegistryPolicy"
1852
1853 // GetRegistryPolicyRequest generates a "aws/request.Request" representing the
1854 // client's request for the GetRegistryPolicy operation. The "output" return
1855 // value will be populated with the request's response once the request completes
1856 // successfully.
1857 //
1858 // Use "Send" method on the returned Request to send the API call to the service.
1859 // the "output" return value is not valid until after Send returns without error.
1860 //
1861 // See GetRegistryPolicy for more information on using the GetRegistryPolicy
1862 // API call, and error handling.
1863 //
1864 // This method is useful when you want to inject custom logic or configuration
1865 // into the SDK's request lifecycle. Such as custom headers, or retry logic.
1866 //
1867 //
1868 // // Example sending a request using the GetRegistryPolicyRequest method.
1869 // req, resp := client.GetRegistryPolicyRequest(params)
1870 //
1871 // err := req.Send()
1872 // if err == nil { // resp is now filled
1873 // fmt.Println(resp)
1874 // }
1875 //
1876 // See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/GetRegistryPolicy
1877 func (c *ECR) GetRegistryPolicyRequest(input *GetRegistryPolicyInput) (req *request.Request, output *GetRegistryPolicyOutput) {
1878 op := &request.Operation{
1879 Name: opGetRegistryPolicy,
1880 HTTPMethod: "POST",
1881 HTTPPath: "/",
1882 }
1883
1884 if input == nil {
1885 input = &GetRegistryPolicyInput{}
1886 }
1887
1888 output = &GetRegistryPolicyOutput{}
1889 req = c.newRequest(op, input, output)
1890 return
1891 }
1892
1893 // GetRegistryPolicy API operation for Amazon EC2 Container Registry.
1894 //
1895 // Retrieves the permissions policy for a registry.
1896 //
1897 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1898 // with awserr.Error's Code and Message methods to get detailed information about
1899 // the error.
1900 //
1901 // See the AWS API reference guide for Amazon EC2 Container Registry's
1902 // API operation GetRegistryPolicy for usage and error information.
1903 //
1904 // Returned Error Types:
1905 // * ServerException
1906 // These errors are usually caused by a server-side issue.
1907 //
1908 // * InvalidParameterException
1909 // The specified parameter is invalid. Review the available parameters for the
1910 // API request.
1911 //
1912 // * RegistryPolicyNotFoundException
1913 // The registry doesn't have an associated registry policy.
1914 //
1915 // See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/GetRegistryPolicy
1916 func (c *ECR) GetRegistryPolicy(input *GetRegistryPolicyInput) (*GetRegistryPolicyOutput, error) {
1917 req, out := c.GetRegistryPolicyRequest(input)
1918 return out, req.Send()
1919 }
1920
1921 // GetRegistryPolicyWithContext is the same as GetRegistryPolicy with the addition of
1922 // the ability to pass a context and additional request options.
1923 //
1924 // See GetRegistryPolicy for details on how to use this API operation.
1925 //
1926 // The context must be non-nil and will be used for request cancellation. If
1927 // the context is nil a panic will occur. In the future the SDK may create
1928 // sub-contexts for http.Requests. See https://golang.org/pkg/context/
1929 // for more information on using Contexts.
1930 func (c *ECR) GetRegistryPolicyWithContext(ctx aws.Context, input *GetRegistryPolicyInput, opts ...request.Option) (*GetRegistryPolicyOutput, error) {
1931 req, out := c.GetRegistryPolicyRequest(input)
1932 req.SetContext(ctx)
1933 req.ApplyOptions(opts...)
1934 return out, req.Send()
1935 }
1936
16771937 const opGetRepositoryPolicy = "GetRepositoryPolicy"
16781938
16791939 // GetRepositoryPolicyRequest generates a "aws/request.Request" representing the
24882748 return out, req.Send()
24892749 }
24902750
2751 const opPutRegistryPolicy = "PutRegistryPolicy"
2752
2753 // PutRegistryPolicyRequest generates a "aws/request.Request" representing the
2754 // client's request for the PutRegistryPolicy operation. The "output" return
2755 // value will be populated with the request's response once the request completes
2756 // successfully.
2757 //
2758 // Use "Send" method on the returned Request to send the API call to the service.
2759 // the "output" return value is not valid until after Send returns without error.
2760 //
2761 // See PutRegistryPolicy for more information on using the PutRegistryPolicy
2762 // API call, and error handling.
2763 //
2764 // This method is useful when you want to inject custom logic or configuration
2765 // into the SDK's request lifecycle. Such as custom headers, or retry logic.
2766 //
2767 //
2768 // // Example sending a request using the PutRegistryPolicyRequest method.
2769 // req, resp := client.PutRegistryPolicyRequest(params)
2770 //
2771 // err := req.Send()
2772 // if err == nil { // resp is now filled
2773 // fmt.Println(resp)
2774 // }
2775 //
2776 // See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/PutRegistryPolicy
2777 func (c *ECR) PutRegistryPolicyRequest(input *PutRegistryPolicyInput) (req *request.Request, output *PutRegistryPolicyOutput) {
2778 op := &request.Operation{
2779 Name: opPutRegistryPolicy,
2780 HTTPMethod: "POST",
2781 HTTPPath: "/",
2782 }
2783
2784 if input == nil {
2785 input = &PutRegistryPolicyInput{}
2786 }
2787
2788 output = &PutRegistryPolicyOutput{}
2789 req = c.newRequest(op, input, output)
2790 return
2791 }
2792
2793 // PutRegistryPolicy API operation for Amazon EC2 Container Registry.
2794 //
2795 // Creates or updates the permissions policy for your registry.
2796 //
2797 // A registry policy is used to specify permissions for another AWS account
2798 // and is used when configuring cross-account replication. For more information,
2799 // see Registry permissions (https://docs.aws.amazon.com/AmazonECR/latest/userguide/registry-permissions.html)
2800 // in the Amazon Elastic Container Registry User Guide.
2801 //
2802 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2803 // with awserr.Error's Code and Message methods to get detailed information about
2804 // the error.
2805 //
2806 // See the AWS API reference guide for Amazon EC2 Container Registry's
2807 // API operation PutRegistryPolicy for usage and error information.
2808 //
2809 // Returned Error Types:
2810 // * ServerException
2811 // These errors are usually caused by a server-side issue.
2812 //
2813 // * InvalidParameterException
2814 // The specified parameter is invalid. Review the available parameters for the
2815 // API request.
2816 //
2817 // See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/PutRegistryPolicy
2818 func (c *ECR) PutRegistryPolicy(input *PutRegistryPolicyInput) (*PutRegistryPolicyOutput, error) {
2819 req, out := c.PutRegistryPolicyRequest(input)
2820 return out, req.Send()
2821 }
2822
2823 // PutRegistryPolicyWithContext is the same as PutRegistryPolicy with the addition of
2824 // the ability to pass a context and additional request options.
2825 //
2826 // See PutRegistryPolicy for details on how to use this API operation.
2827 //
2828 // The context must be non-nil and will be used for request cancellation. If
2829 // the context is nil a panic will occur. In the future the SDK may create
2830 // sub-contexts for http.Requests. See https://golang.org/pkg/context/
2831 // for more information on using Contexts.
2832 func (c *ECR) PutRegistryPolicyWithContext(ctx aws.Context, input *PutRegistryPolicyInput, opts ...request.Option) (*PutRegistryPolicyOutput, error) {
2833 req, out := c.PutRegistryPolicyRequest(input)
2834 req.SetContext(ctx)
2835 req.ApplyOptions(opts...)
2836 return out, req.Send()
2837 }
2838
2839 const opPutReplicationConfiguration = "PutReplicationConfiguration"
2840
2841 // PutReplicationConfigurationRequest generates a "aws/request.Request" representing the
2842 // client's request for the PutReplicationConfiguration operation. The "output" return
2843 // value will be populated with the request's response once the request completes
2844 // successfully.
2845 //
2846 // Use "Send" method on the returned Request to send the API call to the service.
2847 // the "output" return value is not valid until after Send returns without error.
2848 //
2849 // See PutReplicationConfiguration for more information on using the PutReplicationConfiguration
2850 // API call, and error handling.
2851 //
2852 // This method is useful when you want to inject custom logic or configuration
2853 // into the SDK's request lifecycle. Such as custom headers, or retry logic.
2854 //
2855 //
2856 // // Example sending a request using the PutReplicationConfigurationRequest method.
2857 // req, resp := client.PutReplicationConfigurationRequest(params)
2858 //
2859 // err := req.Send()
2860 // if err == nil { // resp is now filled
2861 // fmt.Println(resp)
2862 // }
2863 //
2864 // See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/PutReplicationConfiguration
2865 func (c *ECR) PutReplicationConfigurationRequest(input *PutReplicationConfigurationInput) (req *request.Request, output *PutReplicationConfigurationOutput) {
2866 op := &request.Operation{
2867 Name: opPutReplicationConfiguration,
2868 HTTPMethod: "POST",
2869 HTTPPath: "/",
2870 }
2871
2872 if input == nil {
2873 input = &PutReplicationConfigurationInput{}
2874 }
2875
2876 output = &PutReplicationConfigurationOutput{}
2877 req = c.newRequest(op, input, output)
2878 return
2879 }
2880
2881 // PutReplicationConfiguration API operation for Amazon EC2 Container Registry.
2882 //
2883 // Creates or updates the replication configuration for a registry. The existing
2884 // replication configuration for a repository can be retrieved with the DescribeRegistry
2885 // API action. The first time the PutReplicationConfiguration API is called,
2886 // a service-linked IAM role is created in your account for the replication
2887 // process. For more information, see Using Service-Linked Roles for Amazon
2888 // ECR (https://docs.aws.amazon.com/AmazonECR/latest/userguide/using-service-linked-roles.html)
2889 // in the Amazon Elastic Container Registry User Guide.
2890 //
2891 // When configuring cross-account replication, the destination account must
2892 // grant the source account permission to replicate. This permission is controlled
2893 // using a registry permissions policy. For more information, see PutRegistryPolicy.
2894 //
2895 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2896 // with awserr.Error's Code and Message methods to get detailed information about
2897 // the error.
2898 //
2899 // See the AWS API reference guide for Amazon EC2 Container Registry's
2900 // API operation PutReplicationConfiguration for usage and error information.
2901 //
2902 // Returned Error Types:
2903 // * ServerException
2904 // These errors are usually caused by a server-side issue.
2905 //
2906 // * InvalidParameterException
2907 // The specified parameter is invalid. Review the available parameters for the
2908 // API request.
2909 //
2910 // * ValidationException
2911 // There was an exception validating this request.
2912 //
2913 // See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/PutReplicationConfiguration
2914 func (c *ECR) PutReplicationConfiguration(input *PutReplicationConfigurationInput) (*PutReplicationConfigurationOutput, error) {
2915 req, out := c.PutReplicationConfigurationRequest(input)
2916 return out, req.Send()
2917 }
2918
2919 // PutReplicationConfigurationWithContext is the same as PutReplicationConfiguration with the addition of
2920 // the ability to pass a context and additional request options.
2921 //
2922 // See PutReplicationConfiguration for details on how to use this API operation.
2923 //
2924 // The context must be non-nil and will be used for request cancellation. If
2925 // the context is nil a panic will occur. In the future the SDK may create
2926 // sub-contexts for http.Requests. See https://golang.org/pkg/context/
2927 // for more information on using Contexts.
2928 func (c *ECR) PutReplicationConfigurationWithContext(ctx aws.Context, input *PutReplicationConfigurationInput, opts ...request.Option) (*PutReplicationConfigurationOutput, error) {
2929 req, out := c.PutReplicationConfigurationRequest(input)
2930 req.SetContext(ctx)
2931 req.ApplyOptions(opts...)
2932 return out, req.Send()
2933 }
2934
24912935 const opSetRepositoryPolicy = "SetRepositoryPolicy"
24922936
24932937 // SetRepositoryPolicyRequest generates a "aws/request.Request" representing the
38514295 return s
38524296 }
38534297
4298 type DeleteRegistryPolicyInput struct {
4299 _ struct{} `type:"structure"`
4300 }
4301
4302 // String returns the string representation
4303 func (s DeleteRegistryPolicyInput) String() string {
4304 return awsutil.Prettify(s)
4305 }
4306
4307 // GoString returns the string representation
4308 func (s DeleteRegistryPolicyInput) GoString() string {
4309 return s.String()
4310 }
4311
4312 type DeleteRegistryPolicyOutput struct {
4313 _ struct{} `type:"structure"`
4314
4315 // The contents of the registry permissions policy that was deleted.
4316 PolicyText *string `locationName:"policyText" type:"string"`
4317
4318 // The registry ID associated with the request.
4319 RegistryId *string `locationName:"registryId" type:"string"`
4320 }
4321
4322 // String returns the string representation
4323 func (s DeleteRegistryPolicyOutput) String() string {
4324 return awsutil.Prettify(s)
4325 }
4326
4327 // GoString returns the string representation
4328 func (s DeleteRegistryPolicyOutput) GoString() string {
4329 return s.String()
4330 }
4331
4332 // SetPolicyText sets the PolicyText field's value.
4333 func (s *DeleteRegistryPolicyOutput) SetPolicyText(v string) *DeleteRegistryPolicyOutput {
4334 s.PolicyText = &v
4335 return s
4336 }
4337
4338 // SetRegistryId sets the RegistryId field's value.
4339 func (s *DeleteRegistryPolicyOutput) SetRegistryId(v string) *DeleteRegistryPolicyOutput {
4340 s.RegistryId = &v
4341 return s
4342 }
4343
38544344 type DeleteRepositoryInput struct {
38554345 _ struct{} `type:"structure"`
38564346
43744864 // SetNextToken sets the NextToken field's value.
43754865 func (s *DescribeImagesOutput) SetNextToken(v string) *DescribeImagesOutput {
43764866 s.NextToken = &v
4867 return s
4868 }
4869
4870 type DescribeRegistryInput struct {
4871 _ struct{} `type:"structure"`
4872 }
4873
4874 // String returns the string representation
4875 func (s DescribeRegistryInput) String() string {
4876 return awsutil.Prettify(s)
4877 }
4878
4879 // GoString returns the string representation
4880 func (s DescribeRegistryInput) GoString() string {
4881 return s.String()
4882 }
4883
4884 type DescribeRegistryOutput struct {
4885 _ struct{} `type:"structure"`
4886
4887 // The ID of the registry.
4888 RegistryId *string `locationName:"registryId" type:"string"`
4889
4890 // The replication configuration for the registry.
4891 ReplicationConfiguration *ReplicationConfiguration `locationName:"replicationConfiguration" type:"structure"`
4892 }
4893
4894 // String returns the string representation
4895 func (s DescribeRegistryOutput) String() string {
4896 return awsutil.Prettify(s)
4897 }
4898
4899 // GoString returns the string representation
4900 func (s DescribeRegistryOutput) GoString() string {
4901 return s.String()
4902 }
4903
4904 // SetRegistryId sets the RegistryId field's value.
4905 func (s *DescribeRegistryOutput) SetRegistryId(v string) *DescribeRegistryOutput {
4906 s.RegistryId = &v
4907 return s
4908 }
4909
4910 // SetReplicationConfiguration sets the ReplicationConfiguration field's value.
4911 func (s *DescribeRegistryOutput) SetReplicationConfiguration(v *ReplicationConfiguration) *DescribeRegistryOutput {
4912 s.ReplicationConfiguration = v
43774913 return s
43784914 }
43794915
46405176 // A list of AWS account IDs that are associated with the registries for which
46415177 // to get AuthorizationData objects. If you do not specify a registry, the default
46425178 // registry is assumed.
4643 RegistryIds []*string `locationName:"registryIds" min:"1" type:"list"`
5179 //
5180 // Deprecated: This field is deprecated. The returned authorization token can be used to access any Amazon ECR registry that the IAM principal has access to, specifying a registry ID doesn't change the permissions scope of the authorization token.
5181 RegistryIds []*string `locationName:"registryIds" min:"1" deprecated:"true" type:"list"`
46445182 }
46455183
46465184 // String returns the string representation
50905628 return s
50915629 }
50925630
5631 type GetRegistryPolicyInput struct {
5632 _ struct{} `type:"structure"`
5633 }
5634
5635 // String returns the string representation
5636 func (s GetRegistryPolicyInput) String() string {
5637 return awsutil.Prettify(s)
5638 }
5639
5640 // GoString returns the string representation
5641 func (s GetRegistryPolicyInput) GoString() string {
5642 return s.String()
5643 }
5644
5645 type GetRegistryPolicyOutput struct {
5646 _ struct{} `type:"structure"`
5647
5648 // The JSON text of the permissions policy for a registry.
5649 PolicyText *string `locationName:"policyText" type:"string"`
5650
5651 // The ID of the registry.
5652 RegistryId *string `locationName:"registryId" type:"string"`
5653 }
5654
5655 // String returns the string representation
5656 func (s GetRegistryPolicyOutput) String() string {
5657 return awsutil.Prettify(s)
5658 }
5659
5660 // GoString returns the string representation
5661 func (s GetRegistryPolicyOutput) GoString() string {
5662 return s.String()
5663 }
5664
5665 // SetPolicyText sets the PolicyText field's value.
5666 func (s *GetRegistryPolicyOutput) SetPolicyText(v string) *GetRegistryPolicyOutput {
5667 s.PolicyText = &v
5668 return s
5669 }
5670
5671 // SetRegistryId sets the RegistryId field's value.
5672 func (s *GetRegistryPolicyOutput) SetRegistryId(v string) *GetRegistryPolicyOutput {
5673 s.RegistryId = &v
5674 return s
5675 }
5676
50935677 type GetRepositoryPolicyInput struct {
50945678 _ struct{} `type:"structure"`
50955679
76308214 return s
76318215 }
76328216
8217 type PutRegistryPolicyInput struct {
8218 _ struct{} `type:"structure"`
8219
8220 // The JSON policy text to apply to your registry. The policy text follows the
8221 // same format as IAM policy text. For more information, see Registry permissions
8222 // (https://docs.aws.amazon.com/AmazonECR/latest/userguide/registry-permissions.html)
8223 // in the Amazon Elastic Container Registry User Guide.
8224 //
8225 // PolicyText is a required field
8226 PolicyText *string `locationName:"policyText" type:"string" required:"true"`
8227 }
8228
8229 // String returns the string representation
8230 func (s PutRegistryPolicyInput) String() string {
8231 return awsutil.Prettify(s)
8232 }
8233
8234 // GoString returns the string representation
8235 func (s PutRegistryPolicyInput) GoString() string {
8236 return s.String()
8237 }
8238
8239 // Validate inspects the fields of the type to determine if they are valid.
8240 func (s *PutRegistryPolicyInput) Validate() error {
8241 invalidParams := request.ErrInvalidParams{Context: "PutRegistryPolicyInput"}
8242 if s.PolicyText == nil {
8243 invalidParams.Add(request.NewErrParamRequired("PolicyText"))
8244 }
8245
8246 if invalidParams.Len() > 0 {
8247 return invalidParams
8248 }
8249 return nil
8250 }
8251
8252 // SetPolicyText sets the PolicyText field's value.
8253 func (s *PutRegistryPolicyInput) SetPolicyText(v string) *PutRegistryPolicyInput {
8254 s.PolicyText = &v
8255 return s
8256 }
8257
8258 type PutRegistryPolicyOutput struct {
8259 _ struct{} `type:"structure"`
8260
8261 // The JSON policy text for your registry.
8262 PolicyText *string `locationName:"policyText" type:"string"`
8263
8264 // The registry ID.
8265 RegistryId *string `locationName:"registryId" type:"string"`
8266 }
8267
8268 // String returns the string representation
8269 func (s PutRegistryPolicyOutput) String() string {
8270 return awsutil.Prettify(s)
8271 }
8272
8273 // GoString returns the string representation
8274 func (s PutRegistryPolicyOutput) GoString() string {
8275 return s.String()
8276 }
8277
8278 // SetPolicyText sets the PolicyText field's value.
8279 func (s *PutRegistryPolicyOutput) SetPolicyText(v string) *PutRegistryPolicyOutput {
8280 s.PolicyText = &v
8281 return s
8282 }
8283
8284 // SetRegistryId sets the RegistryId field's value.
8285 func (s *PutRegistryPolicyOutput) SetRegistryId(v string) *PutRegistryPolicyOutput {
8286 s.RegistryId = &v
8287 return s
8288 }
8289
8290 type PutReplicationConfigurationInput struct {
8291 _ struct{} `type:"structure"`
8292
8293 // An object representing the replication configuration for a registry.
8294 //
8295 // ReplicationConfiguration is a required field
8296 ReplicationConfiguration *ReplicationConfiguration `locationName:"replicationConfiguration" type:"structure" required:"true"`
8297 }
8298
8299 // String returns the string representation
8300 func (s PutReplicationConfigurationInput) String() string {
8301 return awsutil.Prettify(s)
8302 }
8303
8304 // GoString returns the string representation
8305 func (s PutReplicationConfigurationInput) GoString() string {
8306 return s.String()
8307 }
8308
8309 // Validate inspects the fields of the type to determine if they are valid.
8310 func (s *PutReplicationConfigurationInput) Validate() error {
8311 invalidParams := request.ErrInvalidParams{Context: "PutReplicationConfigurationInput"}
8312 if s.ReplicationConfiguration == nil {
8313 invalidParams.Add(request.NewErrParamRequired("ReplicationConfiguration"))
8314 }
8315 if s.ReplicationConfiguration != nil {
8316 if err := s.ReplicationConfiguration.Validate(); err != nil {
8317 invalidParams.AddNested("ReplicationConfiguration", err.(request.ErrInvalidParams))
8318 }
8319 }
8320
8321 if invalidParams.Len() > 0 {
8322 return invalidParams
8323 }
8324 return nil
8325 }
8326
8327 // SetReplicationConfiguration sets the ReplicationConfiguration field's value.
8328 func (s *PutReplicationConfigurationInput) SetReplicationConfiguration(v *ReplicationConfiguration) *PutReplicationConfigurationInput {
8329 s.ReplicationConfiguration = v
8330 return s
8331 }
8332
8333 type PutReplicationConfigurationOutput struct {
8334 _ struct{} `type:"structure"`
8335
8336 // The contents of the replication configuration for the registry.
8337 ReplicationConfiguration *ReplicationConfiguration `locationName:"replicationConfiguration" type:"structure"`
8338 }
8339
8340 // String returns the string representation
8341 func (s PutReplicationConfigurationOutput) String() string {
8342 return awsutil.Prettify(s)
8343 }
8344
8345 // GoString returns the string representation
8346 func (s PutReplicationConfigurationOutput) GoString() string {
8347 return s.String()
8348 }
8349
8350 // SetReplicationConfiguration sets the ReplicationConfiguration field's value.
8351 func (s *PutReplicationConfigurationOutput) SetReplicationConfiguration(v *ReplicationConfiguration) *PutReplicationConfigurationOutput {
8352 s.ReplicationConfiguration = v
8353 return s
8354 }
8355
76338356 // The manifest list is referencing an image that does not exist.
76348357 type ReferencedImagesNotFoundException struct {
76358358 _ struct{} `type:"structure"`
76848407 // RequestID returns the service's response RequestID for request.
76858408 func (s *ReferencedImagesNotFoundException) RequestID() string {
76868409 return s.RespMetadata.RequestID
8410 }
8411
8412 // The registry doesn't have an associated registry policy.
8413 type RegistryPolicyNotFoundException struct {
8414 _ struct{} `type:"structure"`
8415 RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8416
8417 Message_ *string `locationName:"message" type:"string"`
8418 }
8419
8420 // String returns the string representation
8421 func (s RegistryPolicyNotFoundException) String() string {
8422 return awsutil.Prettify(s)
8423 }
8424
8425 // GoString returns the string representation
8426 func (s RegistryPolicyNotFoundException) GoString() string {
8427 return s.String()
8428 }
8429
8430 func newErrorRegistryPolicyNotFoundException(v protocol.ResponseMetadata) error {
8431 return &RegistryPolicyNotFoundException{
8432 RespMetadata: v,
8433 }
8434 }
8435
8436 // Code returns the exception type name.
8437 func (s *RegistryPolicyNotFoundException) Code() string {
8438 return "RegistryPolicyNotFoundException"
8439 }
8440
8441 // Message returns the exception's message.
8442 func (s *RegistryPolicyNotFoundException) Message() string {
8443 if s.Message_ != nil {
8444 return *s.Message_
8445 }
8446 return ""
8447 }
8448
8449 // OrigErr always returns nil, satisfies awserr.Error interface.
8450 func (s *RegistryPolicyNotFoundException) OrigErr() error {
8451 return nil
8452 }
8453
8454 func (s *RegistryPolicyNotFoundException) Error() string {
8455 return fmt.Sprintf("%s: %s", s.Code(), s.Message())
8456 }
8457
8458 // Status code returns the HTTP status code for the request's response error.
8459 func (s *RegistryPolicyNotFoundException) StatusCode() int {
8460 return s.RespMetadata.StatusCode
8461 }
8462
8463 // RequestID returns the service's response RequestID for request.
8464 func (s *RegistryPolicyNotFoundException) RequestID() string {
8465 return s.RespMetadata.RequestID
8466 }
8467
8468 // The replication configuration for a registry.
8469 type ReplicationConfiguration struct {
8470 _ struct{} `type:"structure"`
8471
8472 // An array of objects representing the replication rules for a replication
8473 // configuration. A replication configuration may contain only one replication
8474 // rule but the rule may contain one or more replication destinations.
8475 //
8476 // Rules is a required field
8477 Rules []*ReplicationRule `locationName:"rules" type:"list" required:"true"`
8478 }
8479
8480 // String returns the string representation
8481 func (s ReplicationConfiguration) String() string {
8482 return awsutil.Prettify(s)
8483 }
8484
8485 // GoString returns the string representation
8486 func (s ReplicationConfiguration) GoString() string {
8487 return s.String()
8488 }
8489
8490 // Validate inspects the fields of the type to determine if they are valid.
8491 func (s *ReplicationConfiguration) Validate() error {
8492 invalidParams := request.ErrInvalidParams{Context: "ReplicationConfiguration"}
8493 if s.Rules == nil {
8494 invalidParams.Add(request.NewErrParamRequired("Rules"))
8495 }
8496 if s.Rules != nil {
8497 for i, v := range s.Rules {
8498 if v == nil {
8499 continue
8500 }
8501 if err := v.Validate(); err != nil {
8502 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Rules", i), err.(request.ErrInvalidParams))
8503 }
8504 }
8505 }
8506
8507 if invalidParams.Len() > 0 {
8508 return invalidParams
8509 }
8510 return nil
8511 }
8512
8513 // SetRules sets the Rules field's value.
8514 func (s *ReplicationConfiguration) SetRules(v []*ReplicationRule) *ReplicationConfiguration {
8515 s.Rules = v
8516 return s
8517 }
8518
8519 // An array of objects representing the details of a replication destination.
8520 type ReplicationDestination struct {
8521 _ struct{} `type:"structure"`
8522
8523 // A Region to replicate to.
8524 //
8525 // Region is a required field
8526 Region *string `locationName:"region" min:"2" type:"string" required:"true"`
8527
8528 // The account ID of the destination registry to replicate to.
8529 //
8530 // RegistryId is a required field
8531 RegistryId *string `locationName:"registryId" type:"string" required:"true"`
8532 }
8533
8534 // String returns the string representation
8535 func (s ReplicationDestination) String() string {
8536 return awsutil.Prettify(s)
8537 }
8538
8539 // GoString returns the string representation
8540 func (s ReplicationDestination) GoString() string {
8541 return s.String()
8542 }
8543
8544 // Validate inspects the fields of the type to determine if they are valid.
8545 func (s *ReplicationDestination) Validate() error {
8546 invalidParams := request.ErrInvalidParams{Context: "ReplicationDestination"}
8547 if s.Region == nil {
8548 invalidParams.Add(request.NewErrParamRequired("Region"))
8549 }
8550 if s.Region != nil && len(*s.Region) < 2 {
8551 invalidParams.Add(request.NewErrParamMinLen("Region", 2))
8552 }
8553 if s.RegistryId == nil {
8554 invalidParams.Add(request.NewErrParamRequired("RegistryId"))
8555 }
8556
8557 if invalidParams.Len() > 0 {
8558 return invalidParams
8559 }
8560 return nil
8561 }
8562
8563 // SetRegion sets the Region field's value.
8564 func (s *ReplicationDestination) SetRegion(v string) *ReplicationDestination {
8565 s.Region = &v
8566 return s
8567 }
8568
8569 // SetRegistryId sets the RegistryId field's value.
8570 func (s *ReplicationDestination) SetRegistryId(v string) *ReplicationDestination {
8571 s.RegistryId = &v
8572 return s
8573 }
8574
8575 // An array of objects representing the replication destinations for a replication
8576 // configuration. A replication configuration may contain only one replication
8577 // rule but the rule may contain one or more replication destinations.
8578 type ReplicationRule struct {
8579 _ struct{} `type:"structure"`
8580
8581 // An array of objects representing the details of a replication destination.
8582 //
8583 // Destinations is a required field
8584 Destinations []*ReplicationDestination `locationName:"destinations" type:"list" required:"true"`
8585 }
8586
8587 // String returns the string representation
8588 func (s ReplicationRule) String() string {
8589 return awsutil.Prettify(s)
8590 }
8591
8592 // GoString returns the string representation
8593 func (s ReplicationRule) GoString() string {
8594 return s.String()
8595 }
8596
8597 // Validate inspects the fields of the type to determine if they are valid.
8598 func (s *ReplicationRule) Validate() error {
8599 invalidParams := request.ErrInvalidParams{Context: "ReplicationRule"}
8600 if s.Destinations == nil {
8601 invalidParams.Add(request.NewErrParamRequired("Destinations"))
8602 }
8603 if s.Destinations != nil {
8604 for i, v := range s.Destinations {
8605 if v == nil {
8606 continue
8607 }
8608 if err := v.Validate(); err != nil {
8609 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Destinations", i), err.(request.ErrInvalidParams))
8610 }
8611 }
8612 }
8613
8614 if invalidParams.Len() > 0 {
8615 return invalidParams
8616 }
8617 return nil
8618 }
8619
8620 // SetDestinations sets the Destinations field's value.
8621 func (s *ReplicationRule) SetDestinations(v []*ReplicationDestination) *ReplicationRule {
8622 s.Destinations = v
8623 return s
76878624 }
76888625
76898626 // An object representing a repository.
89819918
89829919 // RequestID returns the service's response RequestID for request.
89839920 func (s *UploadNotFoundException) RequestID() string {
9921 return s.RespMetadata.RequestID
9922 }
9923
9924 // There was an exception validating this request.
9925 type ValidationException struct {
9926 _ struct{} `type:"structure"`
9927 RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
9928
9929 Message_ *string `locationName:"message" type:"string"`
9930 }
9931
9932 // String returns the string representation
9933 func (s ValidationException) String() string {
9934 return awsutil.Prettify(s)
9935 }
9936
9937 // GoString returns the string representation
9938 func (s ValidationException) GoString() string {
9939 return s.String()
9940 }
9941
9942 func newErrorValidationException(v protocol.ResponseMetadata) error {
9943 return &ValidationException{
9944 RespMetadata: v,
9945 }
9946 }
9947
9948 // Code returns the exception type name.
9949 func (s *ValidationException) Code() string {
9950 return "ValidationException"
9951 }
9952
9953 // Message returns the exception's message.
9954 func (s *ValidationException) Message() string {
9955 if s.Message_ != nil {
9956 return *s.Message_
9957 }
9958 return ""
9959 }
9960
9961 // OrigErr always returns nil, satisfies awserr.Error interface.
9962 func (s *ValidationException) OrigErr() error {
9963 return nil
9964 }
9965
9966 func (s *ValidationException) Error() string {
9967 return fmt.Sprintf("%s: %s", s.Code(), s.Message())
9968 }
9969
9970 // Status code returns the HTTP status code for the request's response error.
9971 func (s *ValidationException) StatusCode() int {
9972 return s.RespMetadata.StatusCode
9973 }
9974
9975 // RequestID returns the service's response RequestID for request.
9976 func (s *ValidationException) RequestID() string {
89849977 return s.RespMetadata.RequestID
89859978 }
89869979
134134 // The manifest list is referencing an image that does not exist.
135135 ErrCodeReferencedImagesNotFoundException = "ReferencedImagesNotFoundException"
136136
137 // ErrCodeRegistryPolicyNotFoundException for service response error code
138 // "RegistryPolicyNotFoundException".
139 //
140 // The registry doesn't have an associated registry policy.
141 ErrCodeRegistryPolicyNotFoundException = "RegistryPolicyNotFoundException"
142
137143 // ErrCodeRepositoryAlreadyExistsException for service response error code
138144 // "RepositoryAlreadyExistsException".
139145 //
193199 // The upload could not be found, or the specified upload ID is not valid for
194200 // this repository.
195201 ErrCodeUploadNotFoundException = "UploadNotFoundException"
202
203 // ErrCodeValidationException for service response error code
204 // "ValidationException".
205 //
206 // There was an exception validating this request.
207 ErrCodeValidationException = "ValidationException"
196208 )
197209
198210 var exceptionFromCode = map[string]func(protocol.ResponseMetadata) error{
215227 "LifecyclePolicyPreviewNotFoundException": newErrorLifecyclePolicyPreviewNotFoundException,
216228 "LimitExceededException": newErrorLimitExceededException,
217229 "ReferencedImagesNotFoundException": newErrorReferencedImagesNotFoundException,
230 "RegistryPolicyNotFoundException": newErrorRegistryPolicyNotFoundException,
218231 "RepositoryAlreadyExistsException": newErrorRepositoryAlreadyExistsException,
219232 "RepositoryNotEmptyException": newErrorRepositoryNotEmptyException,
220233 "RepositoryNotFoundException": newErrorRepositoryNotFoundException,
224237 "TooManyTagsException": newErrorTooManyTagsException,
225238 "UnsupportedImageTypeException": newErrorUnsupportedImageTypeException,
226239 "UploadNotFoundException": newErrorUploadNotFoundException,
240 "ValidationException": newErrorValidationException,
227241 }
99 "github.com/aws/aws-sdk-go/aws/awsutil"
1010 "github.com/aws/aws-sdk-go/aws/request"
1111 "github.com/aws/aws-sdk-go/private/protocol"
12 "github.com/aws/aws-sdk-go/private/protocol/jsonrpc"
1213 )
1314
1415 const opBatchCheckLayerAvailability = "BatchCheckLayerAvailability"
384385 // * InvalidParameterException
385386 // The specified parameter is invalid. Review the available parameters for the
386387 // API request.
388 //
389 // * InvalidTagParameterException
390 // An invalid parameter has been specified. Tag keys can have a maximum character
391 // length of 128 characters, and tag values can have a maximum length of 256
392 // characters.
393 //
394 // * TooManyTagsException
395 // The list of tags on the repository is over the limit. The maximum number
396 // of tags that can be applied to a repository is 50.
387397 //
388398 // * RepositoryAlreadyExistsException
389399 // The specified repository already exists in the specified registry.
16351645 return out, req.Send()
16361646 }
16371647
1648 const opListTagsForResource = "ListTagsForResource"
1649
1650 // ListTagsForResourceRequest generates a "aws/request.Request" representing the
1651 // client's request for the ListTagsForResource operation. The "output" return
1652 // value will be populated with the request's response once the request completes
1653 // successfully.
1654 //
1655 // Use "Send" method on the returned Request to send the API call to the service.
1656 // the "output" return value is not valid until after Send returns without error.
1657 //
1658 // See ListTagsForResource for more information on using the ListTagsForResource
1659 // API call, and error handling.
1660 //
1661 // This method is useful when you want to inject custom logic or configuration
1662 // into the SDK's request lifecycle. Such as custom headers, or retry logic.
1663 //
1664 //
1665 // // Example sending a request using the ListTagsForResourceRequest method.
1666 // req, resp := client.ListTagsForResourceRequest(params)
1667 //
1668 // err := req.Send()
1669 // if err == nil { // resp is now filled
1670 // fmt.Println(resp)
1671 // }
1672 //
1673 // See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-public-2020-10-30/ListTagsForResource
1674 func (c *ECRPublic) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
1675 op := &request.Operation{
1676 Name: opListTagsForResource,
1677 HTTPMethod: "POST",
1678 HTTPPath: "/",
1679 }
1680
1681 if input == nil {
1682 input = &ListTagsForResourceInput{}
1683 }
1684
1685 output = &ListTagsForResourceOutput{}
1686 req = c.newRequest(op, input, output)
1687 return
1688 }
1689
1690 // ListTagsForResource API operation for Amazon Elastic Container Registry Public.
1691 //
1692 // List the tags for an Amazon ECR Public resource.
1693 //
1694 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1695 // with awserr.Error's Code and Message methods to get detailed information about
1696 // the error.
1697 //
1698 // See the AWS API reference guide for Amazon Elastic Container Registry Public's
1699 // API operation ListTagsForResource for usage and error information.
1700 //
1701 // Returned Error Types:
1702 // * InvalidParameterException
1703 // The specified parameter is invalid. Review the available parameters for the
1704 // API request.
1705 //
1706 // * RepositoryNotFoundException
1707 // The specified repository could not be found. Check the spelling of the specified
1708 // repository and ensure that you are performing operations on the correct registry.
1709 //
1710 // * ServerException
1711 // These errors are usually caused by a server-side issue.
1712 //
1713 // See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-public-2020-10-30/ListTagsForResource
1714 func (c *ECRPublic) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
1715 req, out := c.ListTagsForResourceRequest(input)
1716 return out, req.Send()
1717 }
1718
1719 // ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
1720 // the ability to pass a context and additional request options.
1721 //
1722 // See ListTagsForResource for details on how to use this API operation.
1723 //
1724 // The context must be non-nil and will be used for request cancellation. If
1725 // the context is nil a panic will occur. In the future the SDK may create
1726 // sub-contexts for http.Requests. See https://golang.org/pkg/context/
1727 // for more information on using Contexts.
1728 func (c *ECRPublic) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
1729 req, out := c.ListTagsForResourceRequest(input)
1730 req.SetContext(ctx)
1731 req.ApplyOptions(opts...)
1732 return out, req.Send()
1733 }
1734
16381735 const opPutImage = "PutImage"
16391736
16401737 // PutImageRequest generates a "aws/request.Request" representing the
20232120 return out, req.Send()
20242121 }
20252122
2123 const opTagResource = "TagResource"
2124
2125 // TagResourceRequest generates a "aws/request.Request" representing the
2126 // client's request for the TagResource operation. The "output" return
2127 // value will be populated with the request's response once the request completes
2128 // successfully.
2129 //
2130 // Use "Send" method on the returned Request to send the API call to the service.
2131 // the "output" return value is not valid until after Send returns without error.
2132 //
2133 // See TagResource for more information on using the TagResource
2134 // API call, and error handling.
2135 //
2136 // This method is useful when you want to inject custom logic or configuration
2137 // into the SDK's request lifecycle. Such as custom headers, or retry logic.
2138 //
2139 //
2140 // // Example sending a request using the TagResourceRequest method.
2141 // req, resp := client.TagResourceRequest(params)
2142 //
2143 // err := req.Send()
2144 // if err == nil { // resp is now filled
2145 // fmt.Println(resp)
2146 // }
2147 //
2148 // See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-public-2020-10-30/TagResource
2149 func (c *ECRPublic) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
2150 op := &request.Operation{
2151 Name: opTagResource,
2152 HTTPMethod: "POST",
2153 HTTPPath: "/",
2154 }
2155
2156 if input == nil {
2157 input = &TagResourceInput{}
2158 }
2159
2160 output = &TagResourceOutput{}
2161 req = c.newRequest(op, input, output)
2162 req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2163 return
2164 }
2165
2166 // TagResource API operation for Amazon Elastic Container Registry Public.
2167 //
2168 // Associates the specified tags to a resource with the specified resourceArn.
2169 // If existing tags on a resource are not specified in the request parameters,
2170 // they are not changed. When a resource is deleted, the tags associated with
2171 // that resource are deleted as well.
2172 //
2173 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2174 // with awserr.Error's Code and Message methods to get detailed information about
2175 // the error.
2176 //
2177 // See the AWS API reference guide for Amazon Elastic Container Registry Public's
2178 // API operation TagResource for usage and error information.
2179 //
2180 // Returned Error Types:
2181 // * InvalidParameterException
2182 // The specified parameter is invalid. Review the available parameters for the
2183 // API request.
2184 //
2185 // * InvalidTagParameterException
2186 // An invalid parameter has been specified. Tag keys can have a maximum character
2187 // length of 128 characters, and tag values can have a maximum length of 256
2188 // characters.
2189 //
2190 // * TooManyTagsException
2191 // The list of tags on the repository is over the limit. The maximum number
2192 // of tags that can be applied to a repository is 50.
2193 //
2194 // * RepositoryNotFoundException
2195 // The specified repository could not be found. Check the spelling of the specified
2196 // repository and ensure that you are performing operations on the correct registry.
2197 //
2198 // * ServerException
2199 // These errors are usually caused by a server-side issue.
2200 //
2201 // See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-public-2020-10-30/TagResource
2202 func (c *ECRPublic) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
2203 req, out := c.TagResourceRequest(input)
2204 return out, req.Send()
2205 }
2206
2207 // TagResourceWithContext is the same as TagResource with the addition of
2208 // the ability to pass a context and additional request options.
2209 //
2210 // See TagResource for details on how to use this API operation.
2211 //
2212 // The context must be non-nil and will be used for request cancellation. If
2213 // the context is nil a panic will occur. In the future the SDK may create
2214 // sub-contexts for http.Requests. See https://golang.org/pkg/context/
2215 // for more information on using Contexts.
2216 func (c *ECRPublic) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
2217 req, out := c.TagResourceRequest(input)
2218 req.SetContext(ctx)
2219 req.ApplyOptions(opts...)
2220 return out, req.Send()
2221 }
2222
2223 const opUntagResource = "UntagResource"
2224
2225 // UntagResourceRequest generates a "aws/request.Request" representing the
2226 // client's request for the UntagResource operation. The "output" return
2227 // value will be populated with the request's response once the request completes
2228 // successfully.
2229 //
2230 // Use "Send" method on the returned Request to send the API call to the service.
2231 // the "output" return value is not valid until after Send returns without error.
2232 //
2233 // See UntagResource for more information on using the UntagResource
2234 // API call, and error handling.
2235 //
2236 // This method is useful when you want to inject custom logic or configuration
2237 // into the SDK's request lifecycle. Such as custom headers, or retry logic.
2238 //
2239 //
2240 // // Example sending a request using the UntagResourceRequest method.
2241 // req, resp := client.UntagResourceRequest(params)
2242 //
2243 // err := req.Send()
2244 // if err == nil { // resp is now filled
2245 // fmt.Println(resp)
2246 // }
2247 //
2248 // See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-public-2020-10-30/UntagResource
2249 func (c *ECRPublic) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
2250 op := &request.Operation{
2251 Name: opUntagResource,
2252 HTTPMethod: "POST",
2253 HTTPPath: "/",
2254 }
2255
2256 if input == nil {
2257 input = &UntagResourceInput{}
2258 }
2259
2260 output = &UntagResourceOutput{}
2261 req = c.newRequest(op, input, output)
2262 req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2263 return
2264 }
2265
2266 // UntagResource API operation for Amazon Elastic Container Registry Public.
2267 //
2268 // Deletes specified tags from a resource.
2269 //
2270 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2271 // with awserr.Error's Code and Message methods to get detailed information about
2272 // the error.
2273 //
2274 // See the AWS API reference guide for Amazon Elastic Container Registry Public's
2275 // API operation UntagResource for usage and error information.
2276 //
2277 // Returned Error Types:
2278 // * InvalidParameterException
2279 // The specified parameter is invalid. Review the available parameters for the
2280 // API request.
2281 //
2282 // * InvalidTagParameterException
2283 // An invalid parameter has been specified. Tag keys can have a maximum character
2284 // length of 128 characters, and tag values can have a maximum length of 256
2285 // characters.
2286 //
2287 // * TooManyTagsException
2288 // The list of tags on the repository is over the limit. The maximum number
2289 // of tags that can be applied to a repository is 50.
2290 //
2291 // * RepositoryNotFoundException
2292 // The specified repository could not be found. Check the spelling of the specified
2293 // repository and ensure that you are performing operations on the correct registry.
2294 //
2295 // * ServerException
2296 // These errors are usually caused by a server-side issue.
2297 //
2298 // See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-public-2020-10-30/UntagResource
2299 func (c *ECRPublic) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
2300 req, out := c.UntagResourceRequest(input)
2301 return out, req.Send()
2302 }
2303
2304 // UntagResourceWithContext is the same as UntagResource with the addition of
2305 // the ability to pass a context and additional request options.
2306 //
2307 // See UntagResource for details on how to use this API operation.
2308 //
2309 // The context must be non-nil and will be used for request cancellation. If
2310 // the context is nil a panic will occur. In the future the SDK may create
2311 // sub-contexts for http.Requests. See https://golang.org/pkg/context/
2312 // for more information on using Contexts.
2313 func (c *ECRPublic) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
2314 req, out := c.UntagResourceRequest(input)
2315 req.SetContext(ctx)
2316 req.ApplyOptions(opts...)
2317 return out, req.Send()
2318 }
2319
20262320 const opUploadLayerPart = "UploadLayerPart"
20272321
20282322 // UploadLayerPartRequest generates a "aws/request.Request" representing the
25412835 //
25422836 // RepositoryName is a required field
25432837 RepositoryName *string `locationName:"repositoryName" min:"2" type:"string" required:"true"`
2838
2839 // The metadata that you apply to the repository to help you categorize and
2840 // organize them. Each tag consists of a key and an optional value, both of
2841 // which you define. Tag keys can have a maximum character length of 128 characters,
2842 // and tag values can have a maximum length of 256 characters.
2843 Tags []*Tag `locationName:"tags" type:"list"`
25442844 }
25452845
25462846 // String returns the string representation
25622862 if s.RepositoryName != nil && len(*s.RepositoryName) < 2 {
25632863 invalidParams.Add(request.NewErrParamMinLen("RepositoryName", 2))
25642864 }
2865 if s.Tags != nil {
2866 for i, v := range s.Tags {
2867 if v == nil {
2868 continue
2869 }
2870 if err := v.Validate(); err != nil {
2871 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
2872 }
2873 }
2874 }
25652875
25662876 if invalidParams.Len() > 0 {
25672877 return invalidParams
25782888 // SetRepositoryName sets the RepositoryName field's value.
25792889 func (s *CreateRepositoryInput) SetRepositoryName(v string) *CreateRepositoryInput {
25802890 s.RepositoryName = &v
2891 return s
2892 }
2893
2894 // SetTags sets the Tags field's value.
2895 func (s *CreateRepositoryInput) SetTags(v []*Tag) *CreateRepositoryInput {
2896 s.Tags = v
25812897 return s
25822898 }
25832899
43534669 return s.RespMetadata.RequestID
43544670 }
43554671
4672 // An invalid parameter has been specified. Tag keys can have a maximum character
4673 // length of 128 characters, and tag values can have a maximum length of 256
4674 // characters.
4675 type InvalidTagParameterException struct {
4676 _ struct{} `type:"structure"`
4677 RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4678
4679 Message_ *string `locationName:"message" type:"string"`
4680 }
4681
4682 // String returns the string representation
4683 func (s InvalidTagParameterException) String() string {
4684 return awsutil.Prettify(s)
4685 }
4686
4687 // GoString returns the string representation
4688 func (s InvalidTagParameterException) GoString() string {
4689 return s.String()
4690 }
4691
4692 func newErrorInvalidTagParameterException(v protocol.ResponseMetadata) error {
4693 return &InvalidTagParameterException{
4694 RespMetadata: v,
4695 }
4696 }
4697
4698 // Code returns the exception type name.
4699 func (s *InvalidTagParameterException) Code() string {
4700 return "InvalidTagParameterException"
4701 }
4702
4703 // Message returns the exception's message.
4704 func (s *InvalidTagParameterException) Message() string {
4705 if s.Message_ != nil {
4706 return *s.Message_
4707 }
4708 return ""
4709 }
4710
4711 // OrigErr always returns nil, satisfies awserr.Error interface.
4712 func (s *InvalidTagParameterException) OrigErr() error {
4713 return nil
4714 }
4715
4716 func (s *InvalidTagParameterException) Error() string {
4717 return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4718 }
4719
4720 // Status code returns the HTTP status code for the request's response error.
4721 func (s *InvalidTagParameterException) StatusCode() int {
4722 return s.RespMetadata.StatusCode
4723 }
4724
4725 // RequestID returns the service's response RequestID for request.
4726 func (s *InvalidTagParameterException) RequestID() string {
4727 return s.RespMetadata.RequestID
4728 }
4729
43564730 // An object representing an Amazon ECR image layer.
43574731 type Layer struct {
43584732 _ struct{} `type:"structure"`
46725046 // RequestID returns the service's response RequestID for request.
46735047 func (s *LimitExceededException) RequestID() string {
46745048 return s.RespMetadata.RequestID
5049 }
5050
5051 type ListTagsForResourceInput struct {
5052 _ struct{} `type:"structure"`
5053
5054 // The Amazon Resource Name (ARN) that identifies the resource for which to
5055 // list the tags. Currently, the supported resource is an Amazon ECR Public
5056 // repository.
5057 //
5058 // ResourceArn is a required field
5059 ResourceArn *string `locationName:"resourceArn" type:"string" required:"true"`
5060 }
5061
5062 // String returns the string representation
5063 func (s ListTagsForResourceInput) String() string {
5064 return awsutil.Prettify(s)
5065 }
5066
5067 // GoString returns the string representation
5068 func (s ListTagsForResourceInput) GoString() string {
5069 return s.String()
5070 }
5071
5072 // Validate inspects the fields of the type to determine if they are valid.
5073 func (s *ListTagsForResourceInput) Validate() error {
5074 invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
5075 if s.ResourceArn == nil {
5076 invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
5077 }
5078
5079 if invalidParams.Len() > 0 {
5080 return invalidParams
5081 }
5082 return nil
5083 }
5084
5085 // SetResourceArn sets the ResourceArn field's value.
5086 func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
5087 s.ResourceArn = &v
5088 return s
5089 }
5090
5091 type ListTagsForResourceOutput struct {
5092 _ struct{} `type:"structure"`
5093
5094 // The tags for the resource.
5095 Tags []*Tag `locationName:"tags" type:"list"`
5096 }
5097
5098 // String returns the string representation
5099 func (s ListTagsForResourceOutput) String() string {
5100 return awsutil.Prettify(s)
5101 }
5102
5103 // GoString returns the string representation
5104 func (s ListTagsForResourceOutput) GoString() string {
5105 return s.String()
5106 }
5107
5108 // SetTags sets the Tags field's value.
5109 func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
5110 s.Tags = v
5111 return s
46755112 }
46765113
46775114 type PutImageInput struct {
59576394 return s
59586395 }
59596396
6397 // The metadata that you apply to a resource to help you categorize and organize
6398 // them. Each tag consists of a key and an optional value, both of which you
6399 // define. Tag keys can have a maximum character length of 128 characters, and
6400 // tag values can have a maximum length of 256 characters.
6401 type Tag struct {
6402 _ struct{} `type:"structure"`
6403
6404 // One part of a key-value pair that make up a tag. A key is a general label
6405 // that acts like a category for more specific tag values.
6406 Key *string `min:"1" type:"string"`
6407
6408 // The optional part of a key-value pair that make up a tag. A value acts as
6409 // a descriptor within a tag category (key).
6410 Value *string `type:"string"`
6411 }
6412
6413 // String returns the string representation
6414 func (s Tag) String() string {
6415 return awsutil.Prettify(s)
6416 }
6417
6418 // GoString returns the string representation
6419 func (s Tag) GoString() string {
6420 return s.String()
6421 }
6422
6423 // Validate inspects the fields of the type to determine if they are valid.
6424 func (s *Tag) Validate() error {
6425 invalidParams := request.ErrInvalidParams{Context: "Tag"}
6426 if s.Key != nil && len(*s.Key) < 1 {
6427 invalidParams.Add(request.NewErrParamMinLen("Key", 1))
6428 }
6429
6430 if invalidParams.Len() > 0 {
6431 return invalidParams
6432 }
6433 return nil
6434 }
6435
6436 // SetKey sets the Key field's value.
6437 func (s *Tag) SetKey(v string) *Tag {
6438 s.Key = &v
6439 return s
6440 }
6441
6442 // SetValue sets the Value field's value.
6443 func (s *Tag) SetValue(v string) *Tag {
6444 s.Value = &v
6445 return s
6446 }
6447
6448 type TagResourceInput struct {
6449 _ struct{} `type:"structure"`
6450
6451 // The Amazon Resource Name (ARN) of the resource to which to add tags. Currently,
6452 // the supported resource is an Amazon ECR Public repository.
6453 //
6454 // ResourceArn is a required field
6455 ResourceArn *string `locationName:"resourceArn" type:"string" required:"true"`
6456
6457 // The tags to add to the resource. A tag is an array of key-value pairs. Tag
6458 // keys can have a maximum character length of 128 characters, and tag values
6459 // can have a maximum length of 256 characters.
6460 //
6461 // Tags is a required field
6462 Tags []*Tag `locationName:"tags" type:"list" required:"true"`
6463 }
6464
6465 // String returns the string representation
6466 func (s TagResourceInput) String() string {
6467 return awsutil.Prettify(s)
6468 }
6469
6470 // GoString returns the string representation
6471 func (s TagResourceInput) GoString() string {
6472 return s.String()
6473 }
6474
6475 // Validate inspects the fields of the type to determine if they are valid.
6476 func (s *TagResourceInput) Validate() error {
6477 invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
6478 if s.ResourceArn == nil {
6479 invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
6480 }
6481 if s.Tags == nil {
6482 invalidParams.Add(request.NewErrParamRequired("Tags"))
6483 }
6484 if s.Tags != nil {
6485 for i, v := range s.Tags {
6486 if v == nil {
6487 continue
6488 }
6489 if err := v.Validate(); err != nil {
6490 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
6491 }
6492 }
6493 }
6494
6495 if invalidParams.Len() > 0 {
6496 return invalidParams
6497 }
6498 return nil
6499 }
6500
6501 // SetResourceArn sets the ResourceArn field's value.
6502 func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
6503 s.ResourceArn = &v
6504 return s
6505 }
6506
6507 // SetTags sets the Tags field's value.
6508 func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
6509 s.Tags = v
6510 return s
6511 }
6512
6513 type TagResourceOutput struct {
6514 _ struct{} `type:"structure"`
6515 }
6516
6517 // String returns the string representation
6518 func (s TagResourceOutput) String() string {
6519 return awsutil.Prettify(s)
6520 }
6521
6522 // GoString returns the string representation
6523 func (s TagResourceOutput) GoString() string {
6524 return s.String()
6525 }
6526
6527 // The list of tags on the repository is over the limit. The maximum number
6528 // of tags that can be applied to a repository is 50.
6529 type TooManyTagsException struct {
6530 _ struct{} `type:"structure"`
6531 RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6532
6533 Message_ *string `locationName:"message" type:"string"`
6534 }
6535
6536 // String returns the string representation
6537 func (s TooManyTagsException) String() string {
6538 return awsutil.Prettify(s)
6539 }
6540
6541 // GoString returns the string representation
6542 func (s TooManyTagsException) GoString() string {
6543 return s.String()
6544 }
6545
6546 func newErrorTooManyTagsException(v protocol.ResponseMetadata) error {
6547 return &TooManyTagsException{
6548 RespMetadata: v,
6549 }
6550 }
6551
6552 // Code returns the exception type name.
6553 func (s *TooManyTagsException) Code() string {
6554 return "TooManyTagsException"
6555 }
6556
6557 // Message returns the exception's message.
6558 func (s *TooManyTagsException) Message() string {
6559 if s.Message_ != nil {
6560 return *s.Message_
6561 }
6562 return ""
6563 }
6564
6565 // OrigErr always returns nil, satisfies awserr.Error interface.
6566 func (s *TooManyTagsException) OrigErr() error {
6567 return nil
6568 }
6569
6570 func (s *TooManyTagsException) Error() string {
6571 return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6572 }
6573
6574 // Status code returns the HTTP status code for the request's response error.
6575 func (s *TooManyTagsException) StatusCode() int {
6576 return s.RespMetadata.StatusCode
6577 }
6578
6579 // RequestID returns the service's response RequestID for request.
6580 func (s *TooManyTagsException) RequestID() string {
6581 return s.RespMetadata.RequestID
6582 }
6583
59606584 // The action is not supported in this Region.
59616585 type UnsupportedCommandException struct {
59626586 _ struct{} `type:"structure"`
60116635 // RequestID returns the service's response RequestID for request.
60126636 func (s *UnsupportedCommandException) RequestID() string {
60136637 return s.RespMetadata.RequestID
6638 }
6639
6640 type UntagResourceInput struct {
6641 _ struct{} `type:"structure"`
6642
6643 // The Amazon Resource Name (ARN) of the resource from which to delete tags.
6644 // Currently, the supported resource is an Amazon ECR Public repository.
6645 //
6646 // ResourceArn is a required field
6647 ResourceArn *string `locationName:"resourceArn" type:"string" required:"true"`
6648
6649 // The keys of the tags to be removed.
6650 //
6651 // TagKeys is a required field
6652 TagKeys []*string `locationName:"tagKeys" type:"list" required:"true"`
6653 }
6654
6655 // String returns the string representation
6656 func (s UntagResourceInput) String() string {
6657 return awsutil.Prettify(s)
6658 }
6659
6660 // GoString returns the string representation
6661 func (s UntagResourceInput) GoString() string {
6662 return s.String()
6663 }
6664
6665 // Validate inspects the fields of the type to determine if they are valid.
6666 func (s *UntagResourceInput) Validate() error {
6667 invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
6668 if s.ResourceArn == nil {
6669 invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
6670 }
6671 if s.TagKeys == nil {
6672 invalidParams.Add(request.NewErrParamRequired("TagKeys"))
6673 }
6674
6675 if invalidParams.Len() > 0 {
6676 return invalidParams
6677 }
6678 return nil
6679 }
6680
6681 // SetResourceArn sets the ResourceArn field's value.
6682 func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
6683 s.ResourceArn = &v
6684 return s
6685 }
6686
6687 // SetTagKeys sets the TagKeys field's value.
6688 func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
6689 s.TagKeys = v
6690 return s
6691 }
6692
6693 type UntagResourceOutput struct {
6694 _ struct{} `type:"structure"`
6695 }
6696
6697 // String returns the string representation
6698 func (s UntagResourceOutput) String() string {
6699 return awsutil.Prettify(s)
6700 }
6701
6702 // GoString returns the string representation
6703 func (s UntagResourceOutput) GoString() string {
6704 return s.String()
60146705 }
60156706
60166707 type UploadLayerPartInput struct {
6060 // The specified parameter is invalid. Review the available parameters for the
6161 // API request.
6262 ErrCodeInvalidParameterException = "InvalidParameterException"
63
64 // ErrCodeInvalidTagParameterException for service response error code
65 // "InvalidTagParameterException".
66 //
67 // An invalid parameter has been specified. Tag keys can have a maximum character
68 // length of 128 characters, and tag values can have a maximum length of 256
69 // characters.
70 ErrCodeInvalidTagParameterException = "InvalidTagParameterException"
6371
6472 // ErrCodeLayerAlreadyExistsException for service response error code
6573 // "LayerAlreadyExistsException".
133141 // These errors are usually caused by a server-side issue.
134142 ErrCodeServerException = "ServerException"
135143
144 // ErrCodeTooManyTagsException for service response error code
145 // "TooManyTagsException".
146 //
147 // The list of tags on the repository is over the limit. The maximum number
148 // of tags that can be applied to a repository is 50.
149 ErrCodeTooManyTagsException = "TooManyTagsException"
150
136151 // ErrCodeUnsupportedCommandException for service response error code
137152 // "UnsupportedCommandException".
138153 //
156171 "InvalidLayerException": newErrorInvalidLayerException,
157172 "InvalidLayerPartException": newErrorInvalidLayerPartException,
158173 "InvalidParameterException": newErrorInvalidParameterException,
174 "InvalidTagParameterException": newErrorInvalidTagParameterException,
159175 "LayerAlreadyExistsException": newErrorLayerAlreadyExistsException,
160176 "LayerPartTooSmallException": newErrorLayerPartTooSmallException,
161177 "LayersNotFoundException": newErrorLayersNotFoundException,
167183 "RepositoryNotFoundException": newErrorRepositoryNotFoundException,
168184 "RepositoryPolicyNotFoundException": newErrorRepositoryPolicyNotFoundException,
169185 "ServerException": newErrorServerException,
186 "TooManyTagsException": newErrorTooManyTagsException,
170187 "UnsupportedCommandException": newErrorUnsupportedCommandException,
171188 "UploadNotFoundException": newErrorUploadNotFoundException,
172189 }
0 // Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
1
2 package sso
3
4 import (
5 "fmt"
6
7 "github.com/aws/aws-sdk-go/aws"
8 "github.com/aws/aws-sdk-go/aws/awsutil"
9 "github.com/aws/aws-sdk-go/aws/credentials"
10 "github.com/aws/aws-sdk-go/aws/request"
11 "github.com/aws/aws-sdk-go/private/protocol"
12 "github.com/aws/aws-sdk-go/private/protocol/restjson"
13 )
14
15 const opGetRoleCredentials = "GetRoleCredentials"
16
17 // GetRoleCredentialsRequest generates a "aws/request.Request" representing the
18 // client's request for the GetRoleCredentials operation. The "output" return
19 // value will be populated with the request's response once the request completes
20 // successfully.
21 //
22 // Use "Send" method on the returned Request to send the API call to the service.
23 // the "output" return value is not valid until after Send returns without error.
24 //
25 // See GetRoleCredentials for more information on using the GetRoleCredentials
26 // API call, and error handling.
27 //
28 // This method is useful when you want to inject custom logic or configuration
29 // into the SDK's request lifecycle. Such as custom headers, or retry logic.
30 //
31 //
32 // // Example sending a request using the GetRoleCredentialsRequest method.
33 // req, resp := client.GetRoleCredentialsRequest(params)
34 //
35 // err := req.Send()
36 // if err == nil { // resp is now filled
37 // fmt.Println(resp)
38 // }
39 //
40 // See also, https://docs.aws.amazon.com/goto/WebAPI/sso-2019-06-10/GetRoleCredentials
41 func (c *SSO) GetRoleCredentialsRequest(input *GetRoleCredentialsInput) (req *request.Request, output *GetRoleCredentialsOutput) {
42 op := &request.Operation{
43 Name: opGetRoleCredentials,
44 HTTPMethod: "GET",
45 HTTPPath: "/federation/credentials",
46 }
47
48 if input == nil {
49 input = &GetRoleCredentialsInput{}
50 }
51
52 output = &GetRoleCredentialsOutput{}
53 req = c.newRequest(op, input, output)
54 req.Config.Credentials = credentials.AnonymousCredentials
55 return
56 }
57
58 // GetRoleCredentials API operation for AWS Single Sign-On.
59 //
60 // Returns the STS short-term credentials for a given role name that is assigned
61 // to the user.
62 //
63 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
64 // with awserr.Error's Code and Message methods to get detailed information about
65 // the error.
66 //
67 // See the AWS API reference guide for AWS Single Sign-On's
68 // API operation GetRoleCredentials for usage and error information.
69 //
70 // Returned Error Types:
71 // * InvalidRequestException
72 // Indicates that a problem occurred with the input to the request. For example,
73 // a required parameter might be missing or out of range.
74 //
75 // * UnauthorizedException
76 // Indicates that the request is not authorized. This can happen due to an invalid
77 // access token in the request.
78 //
79 // * TooManyRequestsException
80 // Indicates that the request is being made too frequently and is more than
81 // what the server can handle.
82 //
83 // * ResourceNotFoundException
84 // The specified resource doesn't exist.
85 //
86 // See also, https://docs.aws.amazon.com/goto/WebAPI/sso-2019-06-10/GetRoleCredentials
87 func (c *SSO) GetRoleCredentials(input *GetRoleCredentialsInput) (*GetRoleCredentialsOutput, error) {
88 req, out := c.GetRoleCredentialsRequest(input)
89 return out, req.Send()
90 }
91
92 // GetRoleCredentialsWithContext is the same as GetRoleCredentials with the addition of
93 // the ability to pass a context and additional request options.
94 //
95 // See GetRoleCredentials for details on how to use this API operation.
96 //
97 // The context must be non-nil and will be used for request cancellation. If
98 // the context is nil a panic will occur. In the future the SDK may create
99 // sub-contexts for http.Requests. See https://golang.org/pkg/context/
100 // for more information on using Contexts.
101 func (c *SSO) GetRoleCredentialsWithContext(ctx aws.Context, input *GetRoleCredentialsInput, opts ...request.Option) (*GetRoleCredentialsOutput, error) {
102 req, out := c.GetRoleCredentialsRequest(input)
103 req.SetContext(ctx)
104 req.ApplyOptions(opts...)
105 return out, req.Send()
106 }
107
108 const opListAccountRoles = "ListAccountRoles"
109
110 // ListAccountRolesRequest generates a "aws/request.Request" representing the
111 // client's request for the ListAccountRoles operation. The "output" return
112 // value will be populated with the request's response once the request completes
113 // successfully.
114 //
115 // Use "Send" method on the returned Request to send the API call to the service.
116 // the "output" return value is not valid until after Send returns without error.
117 //
118 // See ListAccountRoles for more information on using the ListAccountRoles
119 // API call, and error handling.
120 //
121 // This method is useful when you want to inject custom logic or configuration
122 // into the SDK's request lifecycle. Such as custom headers, or retry logic.
123 //
124 //
125 // // Example sending a request using the ListAccountRolesRequest method.
126 // req, resp := client.ListAccountRolesRequest(params)
127 //
128 // err := req.Send()
129 // if err == nil { // resp is now filled
130 // fmt.Println(resp)
131 // }
132 //
133 // See also, https://docs.aws.amazon.com/goto/WebAPI/sso-2019-06-10/ListAccountRoles
134 func (c *SSO) ListAccountRolesRequest(input *ListAccountRolesInput) (req *request.Request, output *ListAccountRolesOutput) {
135 op := &request.Operation{
136 Name: opListAccountRoles,
137 HTTPMethod: "GET",
138 HTTPPath: "/assignment/roles",
139 Paginator: &request.Paginator{
140 InputTokens: []string{"nextToken"},
141 OutputTokens: []string{"nextToken"},
142 LimitToken: "maxResults",
143 TruncationToken: "",
144 },
145 }
146
147 if input == nil {
148 input = &ListAccountRolesInput{}
149 }
150
151 output = &ListAccountRolesOutput{}
152 req = c.newRequest(op, input, output)
153 req.Config.Credentials = credentials.AnonymousCredentials
154 return
155 }
156
157 // ListAccountRoles API operation for AWS Single Sign-On.
158 //
159 // Lists all roles that are assigned to the user for a given AWS account.
160 //
161 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
162 // with awserr.Error's Code and Message methods to get detailed information about
163 // the error.
164 //
165 // See the AWS API reference guide for AWS Single Sign-On's
166 // API operation ListAccountRoles for usage and error information.
167 //
168 // Returned Error Types:
169 // * InvalidRequestException
170 // Indicates that a problem occurred with the input to the request. For example,
171 // a required parameter might be missing or out of range.
172 //
173 // * UnauthorizedException
174 // Indicates that the request is not authorized. This can happen due to an invalid
175 // access token in the request.
176 //
177 // * TooManyRequestsException
178 // Indicates that the request is being made too frequently and is more than
179 // what the server can handle.
180 //
181 // * ResourceNotFoundException
182 // The specified resource doesn't exist.
183 //
184 // See also, https://docs.aws.amazon.com/goto/WebAPI/sso-2019-06-10/ListAccountRoles
185 func (c *SSO) ListAccountRoles(input *ListAccountRolesInput) (*ListAccountRolesOutput, error) {
186 req, out := c.ListAccountRolesRequest(input)
187 return out, req.Send()
188 }
189
190 // ListAccountRolesWithContext is the same as ListAccountRoles with the addition of
191 // the ability to pass a context and additional request options.
192 //
193 // See ListAccountRoles for details on how to use this API operation.
194 //
195 // The context must be non-nil and will be used for request cancellation. If
196 // the context is nil a panic will occur. In the future the SDK may create
197 // sub-contexts for http.Requests. See https://golang.org/pkg/context/
198 // for more information on using Contexts.
199 func (c *SSO) ListAccountRolesWithContext(ctx aws.Context, input *ListAccountRolesInput, opts ...request.Option) (*ListAccountRolesOutput, error) {
200 req, out := c.ListAccountRolesRequest(input)
201 req.SetContext(ctx)
202 req.ApplyOptions(opts...)
203 return out, req.Send()
204 }
205
206 // ListAccountRolesPages iterates over the pages of a ListAccountRoles operation,
207 // calling the "fn" function with the response data for each page. To stop
208 // iterating, return false from the fn function.
209 //
210 // See ListAccountRoles method for more information on how to use this operation.
211 //
212 // Note: This operation can generate multiple requests to a service.
213 //
214 // // Example iterating over at most 3 pages of a ListAccountRoles operation.
215 // pageNum := 0
216 // err := client.ListAccountRolesPages(params,
217 // func(page *sso.ListAccountRolesOutput, lastPage bool) bool {
218 // pageNum++
219 // fmt.Println(page)
220 // return pageNum <= 3
221 // })
222 //
223 func (c *SSO) ListAccountRolesPages(input *ListAccountRolesInput, fn func(*ListAccountRolesOutput, bool) bool) error {
224 return c.ListAccountRolesPagesWithContext(aws.BackgroundContext(), input, fn)
225 }
226
227 // ListAccountRolesPagesWithContext same as ListAccountRolesPages except
228 // it takes a Context and allows setting request options on the pages.
229 //
230 // The context must be non-nil and will be used for request cancellation. If
231 // the context is nil a panic will occur. In the future the SDK may create
232 // sub-contexts for http.Requests. See https://golang.org/pkg/context/
233 // for more information on using Contexts.
234 func (c *SSO) ListAccountRolesPagesWithContext(ctx aws.Context, input *ListAccountRolesInput, fn func(*ListAccountRolesOutput, bool) bool, opts ...request.Option) error {
235 p := request.Pagination{
236 NewRequest: func() (*request.Request, error) {
237 var inCpy *ListAccountRolesInput
238 if input != nil {
239 tmp := *input
240 inCpy = &tmp
241 }
242 req, _ := c.ListAccountRolesRequest(inCpy)
243 req.SetContext(ctx)
244 req.ApplyOptions(opts...)
245 return req, nil
246 },
247 }
248
249 for p.Next() {
250 if !fn(p.Page().(*ListAccountRolesOutput), !p.HasNextPage()) {
251 break
252 }
253 }
254
255 return p.Err()
256 }
257
258 const opListAccounts = "ListAccounts"
259
260 // ListAccountsRequest generates a "aws/request.Request" representing the
261 // client's request for the ListAccounts operation. The "output" return
262 // value will be populated with the request's response once the request completes
263 // successfully.
264 //
265 // Use "Send" method on the returned Request to send the API call to the service.
266 // the "output" return value is not valid until after Send returns without error.
267 //
268 // See ListAccounts for more information on using the ListAccounts
269 // API call, and error handling.
270 //
271 // This method is useful when you want to inject custom logic or configuration
272 // into the SDK's request lifecycle. Such as custom headers, or retry logic.
273 //
274 //
275 // // Example sending a request using the ListAccountsRequest method.
276 // req, resp := client.ListAccountsRequest(params)
277 //
278 // err := req.Send()
279 // if err == nil { // resp is now filled
280 // fmt.Println(resp)
281 // }
282 //
283 // See also, https://docs.aws.amazon.com/goto/WebAPI/sso-2019-06-10/ListAccounts
284 func (c *SSO) ListAccountsRequest(input *ListAccountsInput) (req *request.Request, output *ListAccountsOutput) {
285 op := &request.Operation{
286 Name: opListAccounts,
287 HTTPMethod: "GET",
288 HTTPPath: "/assignment/accounts",
289 Paginator: &request.Paginator{
290 InputTokens: []string{"nextToken"},
291 OutputTokens: []string{"nextToken"},
292 LimitToken: "maxResults",
293 TruncationToken: "",
294 },
295 }
296
297 if input == nil {
298 input = &ListAccountsInput{}
299 }
300
301 output = &ListAccountsOutput{}
302 req = c.newRequest(op, input, output)
303 req.Config.Credentials = credentials.AnonymousCredentials
304 return
305 }
306
307 // ListAccounts API operation for AWS Single Sign-On.
308 //
309 // Lists all AWS accounts assigned to the user. These AWS accounts are assigned
310 // by the administrator of the account. For more information, see Assign User
311 // Access (https://docs.aws.amazon.com/singlesignon/latest/userguide/useraccess.html#assignusers)
312 // in the AWS SSO User Guide. This operation returns a paginated response.
313 //
314 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
315 // with awserr.Error's Code and Message methods to get detailed information about
316 // the error.
317 //
318 // See the AWS API reference guide for AWS Single Sign-On's
319 // API operation ListAccounts for usage and error information.
320 //
321 // Returned Error Types:
322 // * InvalidRequestException
323 // Indicates that a problem occurred with the input to the request. For example,
324 // a required parameter might be missing or out of range.
325 //
326 // * UnauthorizedException
327 // Indicates that the request is not authorized. This can happen due to an invalid
328 // access token in the request.
329 //
330 // * TooManyRequestsException
331 // Indicates that the request is being made too frequently and is more than
332 // what the server can handle.
333 //
334 // * ResourceNotFoundException
335 // The specified resource doesn't exist.
336 //
337 // See also, https://docs.aws.amazon.com/goto/WebAPI/sso-2019-06-10/ListAccounts
338 func (c *SSO) ListAccounts(input *ListAccountsInput) (*ListAccountsOutput, error) {
339 req, out := c.ListAccountsRequest(input)
340 return out, req.Send()
341 }
342
343 // ListAccountsWithContext is the same as ListAccounts with the addition of
344 // the ability to pass a context and additional request options.
345 //
346 // See ListAccounts for details on how to use this API operation.
347 //
348 // The context must be non-nil and will be used for request cancellation. If
349 // the context is nil a panic will occur. In the future the SDK may create
350 // sub-contexts for http.Requests. See https://golang.org/pkg/context/
351 // for more information on using Contexts.
352 func (c *SSO) ListAccountsWithContext(ctx aws.Context, input *ListAccountsInput, opts ...request.Option) (*ListAccountsOutput, error) {
353 req, out := c.ListAccountsRequest(input)
354 req.SetContext(ctx)
355 req.ApplyOptions(opts...)
356 return out, req.Send()
357 }
358
359 // ListAccountsPages iterates over the pages of a ListAccounts operation,
360 // calling the "fn" function with the response data for each page. To stop
361 // iterating, return false from the fn function.
362 //
363 // See ListAccounts method for more information on how to use this operation.
364 //
365 // Note: This operation can generate multiple requests to a service.
366 //
367 // // Example iterating over at most 3 pages of a ListAccounts operation.
368 // pageNum := 0
369 // err := client.ListAccountsPages(params,
370 // func(page *sso.ListAccountsOutput, lastPage bool) bool {
371 // pageNum++
372 // fmt.Println(page)
373 // return pageNum <= 3
374 // })
375 //
376 func (c *SSO) ListAccountsPages(input *ListAccountsInput, fn func(*ListAccountsOutput, bool) bool) error {
377 return c.ListAccountsPagesWithContext(aws.BackgroundContext(), input, fn)
378 }
379
380 // ListAccountsPagesWithContext same as ListAccountsPages except
381 // it takes a Context and allows setting request options on the pages.
382 //
383 // The context must be non-nil and will be used for request cancellation. If
384 // the context is nil a panic will occur. In the future the SDK may create
385 // sub-contexts for http.Requests. See https://golang.org/pkg/context/
386 // for more information on using Contexts.
387 func (c *SSO) ListAccountsPagesWithContext(ctx aws.Context, input *ListAccountsInput, fn func(*ListAccountsOutput, bool) bool, opts ...request.Option) error {
388 p := request.Pagination{
389 NewRequest: func() (*request.Request, error) {
390 var inCpy *ListAccountsInput
391 if input != nil {
392 tmp := *input
393 inCpy = &tmp
394 }
395 req, _ := c.ListAccountsRequest(inCpy)
396 req.SetContext(ctx)
397 req.ApplyOptions(opts...)
398 return req, nil
399 },
400 }
401
402 for p.Next() {
403 if !fn(p.Page().(*ListAccountsOutput), !p.HasNextPage()) {
404 break
405 }
406 }
407
408 return p.Err()
409 }
410
411 const opLogout = "Logout"
412
413 // LogoutRequest generates a "aws/request.Request" representing the
414 // client's request for the Logout operation. The "output" return
415 // value will be populated with the request's response once the request completes
416 // successfully.
417 //
418 // Use "Send" method on the returned Request to send the API call to the service.
419 // the "output" return value is not valid until after Send returns without error.
420 //
421 // See Logout for more information on using the Logout
422 // API call, and error handling.
423 //
424 // This method is useful when you want to inject custom logic or configuration
425 // into the SDK's request lifecycle. Such as custom headers, or retry logic.
426 //
427 //
428 // // Example sending a request using the LogoutRequest method.
429 // req, resp := client.LogoutRequest(params)
430 //
431 // err := req.Send()
432 // if err == nil { // resp is now filled
433 // fmt.Println(resp)
434 // }
435 //
436 // See also, https://docs.aws.amazon.com/goto/WebAPI/sso-2019-06-10/Logout
437 func (c *SSO) LogoutRequest(input *LogoutInput) (req *request.Request, output *LogoutOutput) {
438 op := &request.Operation{
439 Name: opLogout,
440 HTTPMethod: "POST",
441 HTTPPath: "/logout",
442 }
443
444 if input == nil {
445 input = &LogoutInput{}
446 }
447
448 output = &LogoutOutput{}
449 req = c.newRequest(op, input, output)
450 req.Config.Credentials = credentials.AnonymousCredentials
451 req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
452 return
453 }
454
455 // Logout API operation for AWS Single Sign-On.
456 //
457 // Removes the client- and server-side session that is associated with the user.
458 //
459 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
460 // with awserr.Error's Code and Message methods to get detailed information about
461 // the error.
462 //
463 // See the AWS API reference guide for AWS Single Sign-On's
464 // API operation Logout for usage and error information.
465 //
466 // Returned Error Types:
467 // * InvalidRequestException
468 // Indicates that a problem occurred with the input to the request. For example,
469 // a required parameter might be missing or out of range.
470 //
471 // * UnauthorizedException
472 // Indicates that the request is not authorized. This can happen due to an invalid
473 // access token in the request.
474 //
475 // * TooManyRequestsException
476 // Indicates that the request is being made too frequently and is more than
477 // what the server can handle.
478 //
479 // See also, https://docs.aws.amazon.com/goto/WebAPI/sso-2019-06-10/Logout
480 func (c *SSO) Logout(input *LogoutInput) (*LogoutOutput, error) {
481 req, out := c.LogoutRequest(input)
482 return out, req.Send()
483 }
484
485 // LogoutWithContext is the same as Logout with the addition of
486 // the ability to pass a context and additional request options.
487 //
488 // See Logout for details on how to use this API operation.
489 //
490 // The context must be non-nil and will be used for request cancellation. If
491 // the context is nil a panic will occur. In the future the SDK may create
492 // sub-contexts for http.Requests. See https://golang.org/pkg/context/
493 // for more information on using Contexts.
494 func (c *SSO) LogoutWithContext(ctx aws.Context, input *LogoutInput, opts ...request.Option) (*LogoutOutput, error) {
495 req, out := c.LogoutRequest(input)
496 req.SetContext(ctx)
497 req.ApplyOptions(opts...)
498 return out, req.Send()
499 }
500
501 // Provides information about your AWS account.
502 type AccountInfo struct {
503 _ struct{} `type:"structure"`
504
505 // The identifier of the AWS account that is assigned to the user.
506 AccountId *string `locationName:"accountId" type:"string"`
507
508 // The display name of the AWS account that is assigned to the user.
509 AccountName *string `locationName:"accountName" type:"string"`
510
511 // The email address of the AWS account that is assigned to the user.
512 EmailAddress *string `locationName:"emailAddress" min:"1" type:"string"`
513 }
514
515 // String returns the string representation
516 func (s AccountInfo) String() string {
517 return awsutil.Prettify(s)
518 }
519
520 // GoString returns the string representation
521 func (s AccountInfo) GoString() string {
522 return s.String()
523 }
524
525 // SetAccountId sets the AccountId field's value.
526 func (s *AccountInfo) SetAccountId(v string) *AccountInfo {
527 s.AccountId = &v
528 return s
529 }
530
531 // SetAccountName sets the AccountName field's value.
532 func (s *AccountInfo) SetAccountName(v string) *AccountInfo {
533 s.AccountName = &v
534 return s
535 }
536
537 // SetEmailAddress sets the EmailAddress field's value.
538 func (s *AccountInfo) SetEmailAddress(v string) *AccountInfo {
539 s.EmailAddress = &v
540 return s
541 }
542
543 type GetRoleCredentialsInput struct {
544 _ struct{} `type:"structure"`
545
546 // The token issued by the CreateToken API call. For more information, see CreateToken
547 // (https://docs.aws.amazon.com/singlesignon/latest/OIDCAPIReference/API_CreateToken.html)
548 // in the AWS SSO OIDC API Reference Guide.
549 //
550 // AccessToken is a required field
551 AccessToken *string `location:"header" locationName:"x-amz-sso_bearer_token" type:"string" required:"true" sensitive:"true"`
552
553 // The identifier for the AWS account that is assigned to the user.
554 //
555 // AccountId is a required field
556 AccountId *string `location:"querystring" locationName:"account_id" type:"string" required:"true"`
557
558 // The friendly name of the role that is assigned to the user.
559 //
560 // RoleName is a required field
561 RoleName *string `location:"querystring" locationName:"role_name" type:"string" required:"true"`
562 }
563
564 // String returns the string representation
565 func (s GetRoleCredentialsInput) String() string {
566 return awsutil.Prettify(s)
567 }
568
569 // GoString returns the string representation
570 func (s GetRoleCredentialsInput) GoString() string {
571 return s.String()
572 }
573
574 // Validate inspects the fields of the type to determine if they are valid.
575 func (s *GetRoleCredentialsInput) Validate() error {
576 invalidParams := request.ErrInvalidParams{Context: "GetRoleCredentialsInput"}
577 if s.AccessToken == nil {
578 invalidParams.Add(request.NewErrParamRequired("AccessToken"))
579 }
580 if s.AccountId == nil {
581 invalidParams.Add(request.NewErrParamRequired("AccountId"))
582 }
583 if s.RoleName == nil {
584 invalidParams.Add(request.NewErrParamRequired("RoleName"))
585 }
586
587 if invalidParams.Len() > 0 {
588 return invalidParams
589 }
590 return nil
591 }
592
593 // SetAccessToken sets the AccessToken field's value.
594 func (s *GetRoleCredentialsInput) SetAccessToken(v string) *GetRoleCredentialsInput {
595 s.AccessToken = &v
596 return s
597 }
598
599 // SetAccountId sets the AccountId field's value.
600 func (s *GetRoleCredentialsInput) SetAccountId(v string) *GetRoleCredentialsInput {
601 s.AccountId = &v
602 return s
603 }
604
605 // SetRoleName sets the RoleName field's value.
606 func (s *GetRoleCredentialsInput) SetRoleName(v string) *GetRoleCredentialsInput {
607 s.RoleName = &v
608 return s
609 }
610
611 type GetRoleCredentialsOutput struct {
612 _ struct{} `type:"structure"`
613
614 // The credentials for the role that is assigned to the user.
615 RoleCredentials *RoleCredentials `locationName:"roleCredentials" type:"structure"`
616 }
617
618 // String returns the string representation
619 func (s GetRoleCredentialsOutput) String() string {
620 return awsutil.Prettify(s)
621 }
622
623 // GoString returns the string representation
624 func (s GetRoleCredentialsOutput) GoString() string {
625 return s.String()
626 }
627
628 // SetRoleCredentials sets the RoleCredentials field's value.
629 func (s *GetRoleCredentialsOutput) SetRoleCredentials(v *RoleCredentials) *GetRoleCredentialsOutput {
630 s.RoleCredentials = v
631 return s
632 }
633
634 // Indicates that a problem occurred with the input to the request. For example,
635 // a required parameter might be missing or out of range.
636 type InvalidRequestException struct {
637 _ struct{} `type:"structure"`
638 RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
639
640 Message_ *string `locationName:"message" type:"string"`
641 }
642
643 // String returns the string representation
644 func (s InvalidRequestException) String() string {
645 return awsutil.Prettify(s)
646 }
647
648 // GoString returns the string representation
649 func (s InvalidRequestException) GoString() string {
650 return s.String()
651 }
652
653 func newErrorInvalidRequestException(v protocol.ResponseMetadata) error {
654 return &InvalidRequestException{
655 RespMetadata: v,
656 }
657 }
658
659 // Code returns the exception type name.
660 func (s *InvalidRequestException) Code() string {
661 return "InvalidRequestException"
662 }
663
664 // Message returns the exception's message.
665 func (s *InvalidRequestException) Message() string {
666 if s.Message_ != nil {
667 return *s.Message_
668 }
669 return ""
670 }
671
672 // OrigErr always returns nil, satisfies awserr.Error interface.
673 func (s *InvalidRequestException) OrigErr() error {
674 return nil
675 }
676
677 func (s *InvalidRequestException) Error() string {
678 return fmt.Sprintf("%s: %s", s.Code(), s.Message())
679 }
680
681 // Status code returns the HTTP status code for the request's response error.
682 func (s *InvalidRequestException) StatusCode() int {
683 return s.RespMetadata.StatusCode
684 }
685
686 // RequestID returns the service's response RequestID for request.
687 func (s *InvalidRequestException) RequestID() string {
688 return s.RespMetadata.RequestID
689 }
690
691 type ListAccountRolesInput struct {
692 _ struct{} `type:"structure"`
693
694 // The token issued by the CreateToken API call. For more information, see CreateToken
695 // (https://docs.aws.amazon.com/singlesignon/latest/OIDCAPIReference/API_CreateToken.html)
696 // in the AWS SSO OIDC API Reference Guide.
697 //
698 // AccessToken is a required field
699 AccessToken *string `location:"header" locationName:"x-amz-sso_bearer_token" type:"string" required:"true" sensitive:"true"`
700
701 // The identifier for the AWS account that is assigned to the user.
702 //
703 // AccountId is a required field
704 AccountId *string `location:"querystring" locationName:"account_id" type:"string" required:"true"`
705
706 // The number of items that clients can request per page.
707 MaxResults *int64 `location:"querystring" locationName:"max_result" min:"1" type:"integer"`
708
709 // The page token from the previous response output when you request subsequent
710 // pages.
711 NextToken *string `location:"querystring" locationName:"next_token" type:"string"`
712 }
713
714 // String returns the string representation
715 func (s ListAccountRolesInput) String() string {
716 return awsutil.Prettify(s)
717 }
718
719 // GoString returns the string representation
720 func (s ListAccountRolesInput) GoString() string {
721 return s.String()
722 }
723
724 // Validate inspects the fields of the type to determine if they are valid.
725 func (s *ListAccountRolesInput) Validate() error {
726 invalidParams := request.ErrInvalidParams{Context: "ListAccountRolesInput"}
727 if s.AccessToken == nil {
728 invalidParams.Add(request.NewErrParamRequired("AccessToken"))
729 }
730 if s.AccountId == nil {
731 invalidParams.Add(request.NewErrParamRequired("AccountId"))
732 }
733 if s.MaxResults != nil && *s.MaxResults < 1 {
734 invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
735 }
736
737 if invalidParams.Len() > 0 {
738 return invalidParams
739 }
740 return nil
741 }
742
743 // SetAccessToken sets the AccessToken field's value.
744 func (s *ListAccountRolesInput) SetAccessToken(v string) *ListAccountRolesInput {
745 s.AccessToken = &v
746 return s
747 }
748
749 // SetAccountId sets the AccountId field's value.
750 func (s *ListAccountRolesInput) SetAccountId(v string) *ListAccountRolesInput {
751 s.AccountId = &v
752 return s
753 }
754
755 // SetMaxResults sets the MaxResults field's value.
756 func (s *ListAccountRolesInput) SetMaxResults(v int64) *ListAccountRolesInput {
757 s.MaxResults = &v
758 return s
759 }
760
761 // SetNextToken sets the NextToken field's value.
762 func (s *ListAccountRolesInput) SetNextToken(v string) *ListAccountRolesInput {
763 s.NextToken = &v
764 return s
765 }
766
767 type ListAccountRolesOutput struct {
768 _ struct{} `type:"structure"`
769
770 // The page token client that is used to retrieve the list of accounts.
771 NextToken *string `locationName:"nextToken" type:"string"`
772
773 // A paginated response with the list of roles and the next token if more results
774 // are available.
775 RoleList []*RoleInfo `locationName:"roleList" type:"list"`
776 }
777
778 // String returns the string representation
779 func (s ListAccountRolesOutput) String() string {
780 return awsutil.Prettify(s)
781 }
782
783 // GoString returns the string representation
784 func (s ListAccountRolesOutput) GoString() string {
785 return s.String()
786 }
787
788 // SetNextToken sets the NextToken field's value.
789 func (s *ListAccountRolesOutput) SetNextToken(v string) *ListAccountRolesOutput {
790 s.NextToken = &v
791 return s
792 }
793
794 // SetRoleList sets the RoleList field's value.
795 func (s *ListAccountRolesOutput) SetRoleList(v []*RoleInfo) *ListAccountRolesOutput {
796 s.RoleList = v
797 return s
798 }
799
800 type ListAccountsInput struct {
801 _ struct{} `type:"structure"`
802
803 // The token issued by the CreateToken API call. For more information, see CreateToken
804 // (https://docs.aws.amazon.com/singlesignon/latest/OIDCAPIReference/API_CreateToken.html)
805 // in the AWS SSO OIDC API Reference Guide.
806 //
807 // AccessToken is a required field
808 AccessToken *string `location:"header" locationName:"x-amz-sso_bearer_token" type:"string" required:"true" sensitive:"true"`
809
810 // This is the number of items clients can request per page.
811 MaxResults *int64 `location:"querystring" locationName:"max_result" min:"1" type:"integer"`
812
813 // (Optional) When requesting subsequent pages, this is the page token from
814 // the previous response output.
815 NextToken *string `location:"querystring" locationName:"next_token" type:"string"`
816 }
817
818 // String returns the string representation
819 func (s ListAccountsInput) String() string {
820 return awsutil.Prettify(s)
821 }
822
823 // GoString returns the string representation
824 func (s ListAccountsInput) GoString() string {
825 return s.String()
826 }
827
828 // Validate inspects the fields of the type to determine if they are valid.
829 func (s *ListAccountsInput) Validate() error {
830 invalidParams := request.ErrInvalidParams{Context: "ListAccountsInput"}
831 if s.AccessToken == nil {
832 invalidParams.Add(request.NewErrParamRequired("AccessToken"))
833 }
834 if s.MaxResults != nil && *s.MaxResults < 1 {
835 invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
836 }
837
838 if invalidParams.Len() > 0 {
839 return invalidParams
840 }
841 return nil
842 }
843
844 // SetAccessToken sets the AccessToken field's value.
845 func (s *ListAccountsInput) SetAccessToken(v string) *ListAccountsInput {
846 s.AccessToken = &v
847 return s
848 }
849
850 // SetMaxResults sets the MaxResults field's value.
851 func (s *ListAccountsInput) SetMaxResults(v int64) *ListAccountsInput {
852 s.MaxResults = &v
853 return s
854 }
855
856 // SetNextToken sets the NextToken field's value.
857 func (s *ListAccountsInput) SetNextToken(v string) *ListAccountsInput {
858 s.NextToken = &v
859 return s
860 }
861
862 type ListAccountsOutput struct {
863 _ struct{} `type:"structure"`
864
865 // A paginated response with the list of account information and the next token
866 // if more results are available.
867 AccountList []*AccountInfo `locationName:"accountList" type:"list"`
868
869 // The page token client that is used to retrieve the list of accounts.
870 NextToken *string `locationName:"nextToken" type:"string"`
871 }
872
873 // String returns the string representation
874 func (s ListAccountsOutput) String() string {
875 return awsutil.Prettify(s)
876 }
877
878 // GoString returns the string representation
879 func (s ListAccountsOutput) GoString() string {
880 return s.String()
881 }
882
883 // SetAccountList sets the AccountList field's value.
884 func (s *ListAccountsOutput) SetAccountList(v []*AccountInfo) *ListAccountsOutput {
885 s.AccountList = v
886 return s
887 }
888
889 // SetNextToken sets the NextToken field's value.
890 func (s *ListAccountsOutput) SetNextToken(v string) *ListAccountsOutput {
891 s.NextToken = &v
892 return s
893 }
894
895 type LogoutInput struct {
896 _ struct{} `type:"structure"`
897
898 // The token issued by the CreateToken API call. For more information, see CreateToken
899 // (https://docs.aws.amazon.com/singlesignon/latest/OIDCAPIReference/API_CreateToken.html)
900 // in the AWS SSO OIDC API Reference Guide.
901 //
902 // AccessToken is a required field
903 AccessToken *string `location:"header" locationName:"x-amz-sso_bearer_token" type:"string" required:"true" sensitive:"true"`
904 }
905
906 // String returns the string representation
907 func (s LogoutInput) String() string {
908 return awsutil.Prettify(s)
909 }
910
911 // GoString returns the string representation
912 func (s LogoutInput) GoString() string {
913 return s.String()
914 }
915
916 // Validate inspects the fields of the type to determine if they are valid.
917 func (s *LogoutInput) Validate() error {
918 invalidParams := request.ErrInvalidParams{Context: "LogoutInput"}
919 if s.AccessToken == nil {
920 invalidParams.Add(request.NewErrParamRequired("AccessToken"))
921 }
922
923 if invalidParams.Len() > 0 {
924 return invalidParams
925 }
926 return nil
927 }
928
929 // SetAccessToken sets the AccessToken field's value.
930 func (s *LogoutInput) SetAccessToken(v string) *LogoutInput {
931 s.AccessToken = &v
932 return s
933 }
934
935 type LogoutOutput struct {
936 _ struct{} `type:"structure"`
937 }
938
939 // String returns the string representation
940 func (s LogoutOutput) String() string {
941 return awsutil.Prettify(s)
942 }
943
944 // GoString returns the string representation
945 func (s LogoutOutput) GoString() string {
946 return s.String()
947 }
948
949 // The specified resource doesn't exist.
950 type ResourceNotFoundException struct {
951 _ struct{} `type:"structure"`
952 RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
953
954 Message_ *string `locationName:"message" type:"string"`
955 }
956
957 // String returns the string representation
958 func (s ResourceNotFoundException) String() string {
959 return awsutil.Prettify(s)
960 }
961
962 // GoString returns the string representation
963 func (s ResourceNotFoundException) GoString() string {
964 return s.String()
965 }
966
967 func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
968 return &ResourceNotFoundException{
969 RespMetadata: v,
970 }
971 }
972
973 // Code returns the exception type name.
974 func (s *ResourceNotFoundException) Code() string {
975 return "ResourceNotFoundException"
976 }
977
978 // Message returns the exception's message.
979 func (s *ResourceNotFoundException) Message() string {
980 if s.Message_ != nil {
981 return *s.Message_
982 }
983 return ""
984 }
985
986 // OrigErr always returns nil, satisfies awserr.Error interface.
987 func (s *ResourceNotFoundException) OrigErr() error {
988 return nil
989 }
990
991 func (s *ResourceNotFoundException) Error() string {
992 return fmt.Sprintf("%s: %s", s.Code(), s.Message())
993 }
994
995 // Status code returns the HTTP status code for the request's response error.
996 func (s *ResourceNotFoundException) StatusCode() int {
997 return s.RespMetadata.StatusCode
998 }
999
1000 // RequestID returns the service's response RequestID for request.
1001 func (s *ResourceNotFoundException) RequestID() string {
1002 return s.RespMetadata.RequestID
1003 }
1004
1005 // Provides information about the role credentials that are assigned to the
1006 // user.
1007 type RoleCredentials struct {
1008 _ struct{} `type:"structure"`
1009
1010 // The identifier used for the temporary security credentials. For more information,
1011 // see Using Temporary Security Credentials to Request Access to AWS Resources
1012 // (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html)
1013 // in the AWS IAM User Guide.
1014 AccessKeyId *string `locationName:"accessKeyId" type:"string"`
1015
1016 // The date on which temporary security credentials expire.
1017 Expiration *int64 `locationName:"expiration" type:"long"`
1018
1019 // The key that is used to sign the request. For more information, see Using
1020 // Temporary Security Credentials to Request Access to AWS Resources (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html)
1021 // in the AWS IAM User Guide.
1022 SecretAccessKey *string `locationName:"secretAccessKey" type:"string" sensitive:"true"`
1023
1024 // The token used for temporary credentials. For more information, see Using
1025 // Temporary Security Credentials to Request Access to AWS Resources (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html)
1026 // in the AWS IAM User Guide.
1027 SessionToken *string `locationName:"sessionToken" type:"string" sensitive:"true"`
1028 }
1029
1030 // String returns the string representation
1031 func (s RoleCredentials) String() string {
1032 return awsutil.Prettify(s)
1033 }
1034
1035 // GoString returns the string representation
1036 func (s RoleCredentials) GoString() string {
1037 return s.String()
1038 }
1039
1040 // SetAccessKeyId sets the AccessKeyId field's value.
1041 func (s *RoleCredentials) SetAccessKeyId(v string) *RoleCredentials {
1042 s.AccessKeyId = &v
1043 return s
1044 }
1045
1046 // SetExpiration sets the Expiration field's value.
1047 func (s *RoleCredentials) SetExpiration(v int64) *RoleCredentials {
1048 s.Expiration = &v
1049 return s
1050 }
1051
1052 // SetSecretAccessKey sets the SecretAccessKey field's value.
1053 func (s *RoleCredentials) SetSecretAccessKey(v string) *RoleCredentials {
1054 s.SecretAccessKey = &v
1055 return s
1056 }
1057
1058 // SetSessionToken sets the SessionToken field's value.
1059 func (s *RoleCredentials) SetSessionToken(v string) *RoleCredentials {
1060 s.SessionToken = &v
1061 return s
1062 }
1063
1064 // Provides information about the role that is assigned to the user.
1065 type RoleInfo struct {
1066 _ struct{} `type:"structure"`
1067
1068 // The identifier of the AWS account assigned to the user.
1069 AccountId *string `locationName:"accountId" type:"string"`
1070
1071 // The friendly name of the role that is assigned to the user.
1072 RoleName *string `locationName:"roleName" type:"string"`
1073 }
1074
1075 // String returns the string representation
1076 func (s RoleInfo) String() string {
1077 return awsutil.Prettify(s)
1078 }
1079
1080 // GoString returns the string representation
1081 func (s RoleInfo) GoString() string {
1082 return s.String()
1083 }
1084
1085 // SetAccountId sets the AccountId field's value.
1086 func (s *RoleInfo) SetAccountId(v string) *RoleInfo {
1087 s.AccountId = &v
1088 return s
1089 }
1090
1091 // SetRoleName sets the RoleName field's value.
1092 func (s *RoleInfo) SetRoleName(v string) *RoleInfo {
1093 s.RoleName = &v
1094 return s
1095 }
1096
1097 // Indicates that the request is being made too frequently and is more than
1098 // what the server can handle.
1099 type TooManyRequestsException struct {
1100 _ struct{} `type:"structure"`
1101 RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
1102
1103 Message_ *string `locationName:"message" type:"string"`
1104 }
1105
1106 // String returns the string representation
1107 func (s TooManyRequestsException) String() string {
1108 return awsutil.Prettify(s)
1109 }
1110
1111 // GoString returns the string representation
1112 func (s TooManyRequestsException) GoString() string {
1113 return s.String()
1114 }
1115
1116 func newErrorTooManyRequestsException(v protocol.ResponseMetadata) error {
1117 return &TooManyRequestsException{
1118 RespMetadata: v,
1119 }
1120 }
1121
1122 // Code returns the exception type name.
1123 func (s *TooManyRequestsException) Code() string {
1124 return "TooManyRequestsException"
1125 }
1126
1127 // Message returns the exception's message.
1128 func (s *TooManyRequestsException) Message() string {
1129 if s.Message_ != nil {
1130 return *s.Message_
1131 }
1132 return ""
1133 }
1134
1135 // OrigErr always returns nil, satisfies awserr.Error interface.
1136 func (s *TooManyRequestsException) OrigErr() error {
1137 return nil
1138 }
1139
1140 func (s *TooManyRequestsException) Error() string {
1141 return fmt.Sprintf("%s: %s", s.Code(), s.Message())
1142 }
1143
1144 // Status code returns the HTTP status code for the request's response error.
1145 func (s *TooManyRequestsException) StatusCode() int {
1146 return s.RespMetadata.StatusCode
1147 }
1148
1149 // RequestID returns the service's response RequestID for request.
1150 func (s *TooManyRequestsException) RequestID() string {
1151 return s.RespMetadata.RequestID
1152 }
1153
1154 // Indicates that the request is not authorized. This can happen due to an invalid
1155 // access token in the request.
1156 type UnauthorizedException struct {
1157 _ struct{} `type:"structure"`
1158 RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
1159
1160 Message_ *string `locationName:"message" type:"string"`
1161 }
1162
1163 // String returns the string representation
1164 func (s UnauthorizedException) String() string {
1165 return awsutil.Prettify(s)
1166 }
1167
1168 // GoString returns the string representation
1169 func (s UnauthorizedException) GoString() string {
1170 return s.String()
1171 }
1172
1173 func newErrorUnauthorizedException(v protocol.ResponseMetadata) error {
1174 return &UnauthorizedException{
1175 RespMetadata: v,
1176 }
1177 }
1178
1179 // Code returns the exception type name.
1180 func (s *UnauthorizedException) Code() string {
1181 return "UnauthorizedException"
1182 }
1183
1184 // Message returns the exception's message.
1185 func (s *UnauthorizedException) Message() string {
1186 if s.Message_ != nil {
1187 return *s.Message_
1188 }
1189 return ""
1190 }
1191
1192 // OrigErr always returns nil, satisfies awserr.Error interface.
1193 func (s *UnauthorizedException) OrigErr() error {
1194 return nil
1195 }
1196
1197 func (s *UnauthorizedException) Error() string {
1198 return fmt.Sprintf("%s: %s", s.Code(), s.Message())
1199 }
1200
1201 // Status code returns the HTTP status code for the request's response error.
1202 func (s *UnauthorizedException) StatusCode() int {
1203 return s.RespMetadata.StatusCode
1204 }
1205
1206 // RequestID returns the service's response RequestID for request.
1207 func (s *UnauthorizedException) RequestID() string {
1208 return s.RespMetadata.RequestID
1209 }
0 // Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
1
2 // Package sso provides the client and types for making API
3 // requests to AWS Single Sign-On.
4 //
5 // AWS Single Sign-On Portal is a web service that makes it easy for you to
6 // assign user access to AWS SSO resources such as the user portal. Users can
7 // get AWS account applications and roles assigned to them and get federated
8 // into the application.
9 //
10 // For general information about AWS SSO, see What is AWS Single Sign-On? (https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)
11 // in the AWS SSO User Guide.
12 //
13 // This API reference guide describes the AWS SSO Portal operations that you
14 // can call programatically and includes detailed information on data types
15 // and errors.
16 //
17 // AWS provides SDKs that consist of libraries and sample code for various programming
18 // languages and platforms, such as Java, Ruby, .Net, iOS, or Android. The SDKs
19 // provide a convenient way to create programmatic access to AWS SSO and other
20 // AWS services. For more information about the AWS SDKs, including how to download
21 // and install them, see Tools for Amazon Web Services (http://aws.amazon.com/tools/).
22 //
23 // See https://docs.aws.amazon.com/goto/WebAPI/sso-2019-06-10 for more information on this service.
24 //
25 // See sso package documentation for more information.
26 // https://docs.aws.amazon.com/sdk-for-go/api/service/sso/
27 //
28 // Using the Client
29 //
30 // To contact AWS Single Sign-On with the SDK use the New function to create
31 // a new service client. With that client you can make API requests to the service.
32 // These clients are safe to use concurrently.
33 //
34 // See the SDK's documentation for more information on how to use the SDK.
35 // https://docs.aws.amazon.com/sdk-for-go/api/
36 //
37 // See aws.Config documentation for more information on configuring SDK clients.
38 // https://docs.aws.amazon.com/sdk-for-go/api/aws/#Config
39 //
40 // See the AWS Single Sign-On client SSO for more
41 // information on creating client for this service.
42 // https://docs.aws.amazon.com/sdk-for-go/api/service/sso/#New
43 package sso
0 // Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
1
2 package sso
3
4 import (
5 "github.com/aws/aws-sdk-go/private/protocol"
6 )
7
8 const (
9
10 // ErrCodeInvalidRequestException for service response error code
11 // "InvalidRequestException".
12 //
13 // Indicates that a problem occurred with the input to the request. For example,
14 // a required parameter might be missing or out of range.
15 ErrCodeInvalidRequestException = "InvalidRequestException"
16
17 // ErrCodeResourceNotFoundException for service response error code
18 // "ResourceNotFoundException".
19 //
20 // The specified resource doesn't exist.
21 ErrCodeResourceNotFoundException = "ResourceNotFoundException"
22
23 // ErrCodeTooManyRequestsException for service response error code
24 // "TooManyRequestsException".
25 //
26 // Indicates that the request is being made too frequently and is more than
27 // what the server can handle.
28 ErrCodeTooManyRequestsException = "TooManyRequestsException"
29
30 // ErrCodeUnauthorizedException for service response error code
31 // "UnauthorizedException".
32 //
33 // Indicates that the request is not authorized. This can happen due to an invalid
34 // access token in the request.
35 ErrCodeUnauthorizedException = "UnauthorizedException"
36 )
37
38 var exceptionFromCode = map[string]func(protocol.ResponseMetadata) error{
39 "InvalidRequestException": newErrorInvalidRequestException,
40 "ResourceNotFoundException": newErrorResourceNotFoundException,
41 "TooManyRequestsException": newErrorTooManyRequestsException,
42 "UnauthorizedException": newErrorUnauthorizedException,
43 }
0 // Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
1
2 package sso
3
4 import (
5 "github.com/aws/aws-sdk-go/aws"
6 "github.com/aws/aws-sdk-go/aws/client"
7 "github.com/aws/aws-sdk-go/aws/client/metadata"
8 "github.com/aws/aws-sdk-go/aws/request"
9 "github.com/aws/aws-sdk-go/aws/signer/v4"
10 "github.com/aws/aws-sdk-go/private/protocol"
11 "github.com/aws/aws-sdk-go/private/protocol/restjson"
12 )
13
14 // SSO provides the API operation methods for making requests to
15 // AWS Single Sign-On. See this package's package overview docs
16 // for details on the service.
17 //
18 // SSO methods are safe to use concurrently. It is not safe to
19 // modify mutate any of the struct's properties though.
20 type SSO struct {
21 *client.Client
22 }
23
24 // Used for custom client initialization logic
25 var initClient func(*client.Client)
26
27 // Used for custom request initialization logic
28 var initRequest func(*request.Request)
29
30 // Service information constants
31 const (
32 ServiceName = "SSO" // Name of service.
33 EndpointsID = "portal.sso" // ID to lookup a service endpoint with.
34 ServiceID = "SSO" // ServiceID is a unique identifier of a specific service.
35 )
36
37 // New creates a new instance of the SSO client with a session.
38 // If additional configuration is needed for the client instance use the optional
39 // aws.Config parameter to add your extra config.
40 //
41 // Example:
42 // mySession := session.Must(session.NewSession())
43 //
44 // // Create a SSO client from just a session.
45 // svc := sso.New(mySession)
46 //
47 // // Create a SSO client with additional configuration
48 // svc := sso.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
49 func New(p client.ConfigProvider, cfgs ...*aws.Config) *SSO {
50 c := p.ClientConfig(EndpointsID, cfgs...)
51 if c.SigningNameDerived || len(c.SigningName) == 0 {
52 c.SigningName = "awsssoportal"
53 }
54 return newClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
55 }
56
57 // newClient creates, initializes and returns a new service client instance.
58 func newClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *SSO {
59 svc := &SSO{
60 Client: client.New(
61 cfg,
62 metadata.ClientInfo{
63 ServiceName: ServiceName,
64 ServiceID: ServiceID,
65 SigningName: signingName,
66 SigningRegion: signingRegion,
67 PartitionID: partitionID,
68 Endpoint: endpoint,
69 APIVersion: "2019-06-10",
70 },
71 handlers,
72 ),
73 }
74
75 // Handlers
76 svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
77 svc.Handlers.Build.PushBackNamed(restjson.BuildHandler)
78 svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler)
79 svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler)
80 svc.Handlers.UnmarshalError.PushBackNamed(
81 protocol.NewUnmarshalErrorHandler(restjson.NewUnmarshalTypedError(exceptionFromCode)).NamedHandler(),
82 )
83
84 // Run custom client initialization if present
85 if initClient != nil {
86 initClient(svc.Client)
87 }
88
89 return svc
90 }
91
92 // newRequest creates a new request for a SSO operation and runs any
93 // custom request initialization.
94 func (c *SSO) newRequest(op *request.Operation, params, data interface{}) *request.Request {
95 req := c.NewRequest(op, params, data)
96
97 // Run custom request initialization if present
98 if initRequest != nil {
99 initRequest(req)
100 }
101
102 return req
103 }
0 // Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
1
2 // Package ssoiface provides an interface to enable mocking the AWS Single Sign-On service client
3 // for testing your code.
4 //
5 // It is important to note that this interface will have breaking changes
6 // when the service model is updated and adds new API operations, paginators,
7 // and waiters.
8 package ssoiface
9
10 import (
11 "github.com/aws/aws-sdk-go/aws"
12 "github.com/aws/aws-sdk-go/aws/request"
13 "github.com/aws/aws-sdk-go/service/sso"
14 )
15
16 // SSOAPI provides an interface to enable mocking the
17 // sso.SSO service client's API operation,
18 // paginators, and waiters. This make unit testing your code that calls out
19 // to the SDK's service client's calls easier.
20 //
21 // The best way to use this interface is so the SDK's service client's calls
22 // can be stubbed out for unit testing your code with the SDK without needing
23 // to inject custom request handlers into the SDK's request pipeline.
24 //
25 // // myFunc uses an SDK service client to make a request to
26 // // AWS Single Sign-On.
27 // func myFunc(svc ssoiface.SSOAPI) bool {
28 // // Make svc.GetRoleCredentials request
29 // }
30 //
31 // func main() {
32 // sess := session.New()
33 // svc := sso.New(sess)
34 //
35 // myFunc(svc)
36 // }
37 //
38 // In your _test.go file:
39 //
40 // // Define a mock struct to be used in your unit tests of myFunc.
41 // type mockSSOClient struct {
42 // ssoiface.SSOAPI
43 // }
44 // func (m *mockSSOClient) GetRoleCredentials(input *sso.GetRoleCredentialsInput) (*sso.GetRoleCredentialsOutput, error) {
45 // // mock response/functionality
46 // }
47 //
48 // func TestMyFunc(t *testing.T) {
49 // // Setup Test
50 // mockSvc := &mockSSOClient{}
51 //
52 // myfunc(mockSvc)
53 //
54 // // Verify myFunc's functionality
55 // }
56 //
57 // It is important to note that this interface will have breaking changes
58 // when the service model is updated and adds new API operations, paginators,
59 // and waiters. Its suggested to use the pattern above for testing, or using
60 // tooling to generate mocks to satisfy the interfaces.
61 type SSOAPI interface {
62 GetRoleCredentials(*sso.GetRoleCredentialsInput) (*sso.GetRoleCredentialsOutput, error)
63 GetRoleCredentialsWithContext(aws.Context, *sso.GetRoleCredentialsInput, ...request.Option) (*sso.GetRoleCredentialsOutput, error)
64 GetRoleCredentialsRequest(*sso.GetRoleCredentialsInput) (*request.Request, *sso.GetRoleCredentialsOutput)
65
66 ListAccountRoles(*sso.ListAccountRolesInput) (*sso.ListAccountRolesOutput, error)
67 ListAccountRolesWithContext(aws.Context, *sso.ListAccountRolesInput, ...request.Option) (*sso.ListAccountRolesOutput, error)
68 ListAccountRolesRequest(*sso.ListAccountRolesInput) (*request.Request, *sso.ListAccountRolesOutput)
69
70 ListAccountRolesPages(*sso.ListAccountRolesInput, func(*sso.ListAccountRolesOutput, bool) bool) error
71 ListAccountRolesPagesWithContext(aws.Context, *sso.ListAccountRolesInput, func(*sso.ListAccountRolesOutput, bool) bool, ...request.Option) error
72
73 ListAccounts(*sso.ListAccountsInput) (*sso.ListAccountsOutput, error)
74 ListAccountsWithContext(aws.Context, *sso.ListAccountsInput, ...request.Option) (*sso.ListAccountsOutput, error)
75 ListAccountsRequest(*sso.ListAccountsInput) (*request.Request, *sso.ListAccountsOutput)
76
77 ListAccountsPages(*sso.ListAccountsInput, func(*sso.ListAccountsOutput, bool) bool) error
78 ListAccountsPagesWithContext(aws.Context, *sso.ListAccountsInput, func(*sso.ListAccountsOutput, bool) bool, ...request.Option) error
79
80 Logout(*sso.LogoutInput) (*sso.LogoutOutput, error)
81 LogoutWithContext(aws.Context, *sso.LogoutInput, ...request.Option) (*sso.LogoutOutput, error)
82 LogoutRequest(*sso.LogoutInput) (*request.Request, *sso.LogoutOutput)
83 }
84
85 var _ SSOAPI = (*sso.SSO)(nil)
0 # github.com/aws/aws-sdk-go v1.36.0
0 # github.com/aws/aws-sdk-go v1.37.32
11 github.com/aws/aws-sdk-go/aws
22 github.com/aws/aws-sdk-go/aws/awserr
33 github.com/aws/aws-sdk-go/aws/awsutil
88 github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds
99 github.com/aws/aws-sdk-go/aws/credentials/endpointcreds
1010 github.com/aws/aws-sdk-go/aws/credentials/processcreds
11 github.com/aws/aws-sdk-go/aws/credentials/ssocreds
1112 github.com/aws/aws-sdk-go/aws/credentials/stscreds
1213 github.com/aws/aws-sdk-go/aws/csm
1314 github.com/aws/aws-sdk-go/aws/defaults
3132 github.com/aws/aws-sdk-go/private/protocol/query
3233 github.com/aws/aws-sdk-go/private/protocol/query/queryutil
3334 github.com/aws/aws-sdk-go/private/protocol/rest
35 github.com/aws/aws-sdk-go/private/protocol/restjson
3436 github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil
3537 github.com/aws/aws-sdk-go/service/ecr
3638 github.com/aws/aws-sdk-go/service/ecrpublic
39 github.com/aws/aws-sdk-go/service/sso
40 github.com/aws/aws-sdk-go/service/sso/ssoiface
3741 github.com/aws/aws-sdk-go/service/sts
3842 github.com/aws/aws-sdk-go/service/sts/stsiface
3943 # github.com/davecgh/go-spew v1.1.1