aboutsummaryrefslogtreecommitdiffhomepage
path: root/vendor/github.com/aws/aws-sdk-go/service/sts/api.go
diff options
context:
space:
mode:
authorJake Champlin <jake.champlin.27@gmail.com>2017-06-06 12:40:07 -0400
committerJake Champlin <jake.champlin.27@gmail.com>2017-06-06 12:40:07 -0400
commitbae9f6d2fd5eb5bc80929bd393932b23f14d7c93 (patch)
treeca9ab12a7d78b1fc27a8f734729081357ce6d252 /vendor/github.com/aws/aws-sdk-go/service/sts/api.go
parent254c495b6bebab3fb72a243c4bce858d79e6ee99 (diff)
downloadterraform-provider-statuscake-bae9f6d2fd5eb5bc80929bd393932b23f14d7c93.tar.gz
terraform-provider-statuscake-bae9f6d2fd5eb5bc80929bd393932b23f14d7c93.tar.zst
terraform-provider-statuscake-bae9f6d2fd5eb5bc80929bd393932b23f14d7c93.zip
Initial transfer of provider code
Diffstat (limited to 'vendor/github.com/aws/aws-sdk-go/service/sts/api.go')
-rw-r--r--vendor/github.com/aws/aws-sdk-go/service/sts/api.go2365
1 files changed, 2365 insertions, 0 deletions
diff --git a/vendor/github.com/aws/aws-sdk-go/service/sts/api.go b/vendor/github.com/aws/aws-sdk-go/service/sts/api.go
new file mode 100644
index 0000000..2de6528
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/service/sts/api.go
@@ -0,0 +1,2365 @@
1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package sts
4
5import (
6 "time"
7
8 "github.com/aws/aws-sdk-go/aws"
9 "github.com/aws/aws-sdk-go/aws/awsutil"
10 "github.com/aws/aws-sdk-go/aws/request"
11)
12
13const opAssumeRole = "AssumeRole"
14
15// AssumeRoleRequest generates a "aws/request.Request" representing the
16// client's request for the AssumeRole operation. The "output" return
17// value can be used to capture response data after the request's "Send" method
18// is called.
19//
20// See AssumeRole for usage and error information.
21//
22// Creating a request object using this method should be used when you want to inject
23// custom logic into the request's lifecycle using a custom handler, or if you want to
24// access properties on the request object before or after sending the request. If
25// you just want the service response, call the AssumeRole method directly
26// instead.
27//
28// Note: You must call the "Send" method on the returned request object in order
29// to execute the request.
30//
31// // Example sending a request using the AssumeRoleRequest method.
32// req, resp := client.AssumeRoleRequest(params)
33//
34// err := req.Send()
35// if err == nil { // resp is now filled
36// fmt.Println(resp)
37// }
38//
39// Please also see https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRole
40func (c *STS) AssumeRoleRequest(input *AssumeRoleInput) (req *request.Request, output *AssumeRoleOutput) {
41 op := &request.Operation{
42 Name: opAssumeRole,
43 HTTPMethod: "POST",
44 HTTPPath: "/",
45 }
46
47 if input == nil {
48 input = &AssumeRoleInput{}
49 }
50
51 output = &AssumeRoleOutput{}
52 req = c.newRequest(op, input, output)
53 return
54}
55
56// AssumeRole API operation for AWS Security Token Service.
57//
58// Returns a set of temporary security credentials (consisting of an access
59// key ID, a secret access key, and a security token) that you can use to access
60// AWS resources that you might not normally have access to. Typically, you
61// use AssumeRole for cross-account access or federation. For a comparison of
62// AssumeRole with the other APIs that produce temporary credentials, see Requesting
63// Temporary Security Credentials (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html)
64// and Comparing the AWS STS APIs (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison)
65// in the IAM User Guide.
66//
67// Important: You cannot call AssumeRole by using AWS root account credentials;
68// access is denied. You must use credentials for an IAM user or an IAM role
69// to call AssumeRole.
70//
71// For cross-account access, imagine that you own multiple accounts and need
72// to access resources in each account. You could create long-term credentials
73// in each account to access those resources. However, managing all those credentials
74// and remembering which one can access which account can be time consuming.
75// Instead, you can create one set of long-term credentials in one account and
76// then use temporary security credentials to access all the other accounts
77// by assuming roles in those accounts. For more information about roles, see
78// IAM Roles (Delegation and Federation) (http://docs.aws.amazon.com/IAM/latest/UserGuide/roles-toplevel.html)
79// in the IAM User Guide.
80//
81// For federation, you can, for example, grant single sign-on access to the
82// AWS Management Console. If you already have an identity and authentication
83// system in your corporate network, you don't have to recreate user identities
84// in AWS in order to grant those user identities access to AWS. Instead, after
85// a user has been authenticated, you call AssumeRole (and specify the role
86// with the appropriate permissions) to get temporary security credentials for
87// that user. With those temporary security credentials, you construct a sign-in
88// URL that users can use to access the console. For more information, see Common
89// Scenarios for Temporary Credentials (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html#sts-introduction)
90// in the IAM User Guide.
91//
92// The temporary security credentials are valid for the duration that you specified
93// when calling AssumeRole, which can be from 900 seconds (15 minutes) to a
94// maximum of 3600 seconds (1 hour). The default is 1 hour.
95//
96// The temporary security credentials created by AssumeRole can be used to make
97// API calls to any AWS service with the following exception: you cannot call
98// the STS service's GetFederationToken or GetSessionToken APIs.
99//
100// Optionally, you can pass an IAM access policy to this operation. If you choose
101// not to pass a policy, the temporary security credentials that are returned
102// by the operation have the permissions that are defined in the access policy
103// of the role that is being assumed. If you pass a policy to this operation,
104// the temporary security credentials that are returned by the operation have
105// the permissions that are allowed by both the access policy of the role that
106// is being assumed, and the policy that you pass. This gives you a way to further
107// restrict the permissions for the resulting temporary security credentials.
108// You cannot use the passed policy to grant permissions that are in excess
109// of those allowed by the access policy of the role that is being assumed.
110// For more information, see Permissions for AssumeRole, AssumeRoleWithSAML,
111// and AssumeRoleWithWebIdentity (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_assumerole.html)
112// in the IAM User Guide.
113//
114// To assume a role, your AWS account must be trusted by the role. The trust
115// relationship is defined in the role's trust policy when the role is created.
116// That trust policy states which accounts are allowed to delegate access to
117// this account's role.
118//
119// The user who wants to access the role must also have permissions delegated
120// from the role's administrator. If the user is in a different account than
121// the role, then the user's administrator must attach a policy that allows
122// the user to call AssumeRole on the ARN of the role in the other account.
123// If the user is in the same account as the role, then you can either attach
124// a policy to the user (identical to the previous different account user),
125// or you can add the user as a principal directly in the role's trust policy
126//
127// Using MFA with AssumeRole
128//
129// You can optionally include multi-factor authentication (MFA) information
130// when you call AssumeRole. This is useful for cross-account scenarios in which
131// you want to make sure that the user who is assuming the role has been authenticated
132// using an AWS MFA device. In that scenario, the trust policy of the role being
133// assumed includes a condition that tests for MFA authentication; if the caller
134// does not include valid MFA information, the request to assume the role is
135// denied. The condition in a trust policy that tests for MFA authentication
136// might look like the following example.
137//
138// "Condition": {"Bool": {"aws:MultiFactorAuthPresent": true}}
139//
140// For more information, see Configuring MFA-Protected API Access (http://docs.aws.amazon.com/IAM/latest/UserGuide/MFAProtectedAPI.html)
141// in the IAM User Guide guide.
142//
143// To use MFA with AssumeRole, you pass values for the SerialNumber and TokenCode
144// parameters. The SerialNumber value identifies the user's hardware or virtual
145// MFA device. The TokenCode is the time-based one-time password (TOTP) that
146// the MFA devices produces.
147//
148// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
149// with awserr.Error's Code and Message methods to get detailed information about
150// the error.
151//
152// See the AWS API reference guide for AWS Security Token Service's
153// API operation AssumeRole for usage and error information.
154//
155// Returned Error Codes:
156// * ErrCodeMalformedPolicyDocumentException "MalformedPolicyDocument"
157// The request was rejected because the policy document was malformed. The error
158// message describes the specific error.
159//
160// * ErrCodePackedPolicyTooLargeException "PackedPolicyTooLarge"
161// The request was rejected because the policy document was too large. The error
162// message describes how big the policy document is, in packed form, as a percentage
163// of what the API allows.
164//
165// * ErrCodeRegionDisabledException "RegionDisabledException"
166// STS is not activated in the requested region for the account that is being
167// asked to generate credentials. The account administrator must use the IAM
168// console to activate STS in that region. For more information, see Activating
169// and Deactivating AWS STS in an AWS Region (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html)
170// in the IAM User Guide.
171//
172// Please also see https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRole
173func (c *STS) AssumeRole(input *AssumeRoleInput) (*AssumeRoleOutput, error) {
174 req, out := c.AssumeRoleRequest(input)
175 return out, req.Send()
176}
177
178// AssumeRoleWithContext is the same as AssumeRole with the addition of
179// the ability to pass a context and additional request options.
180//
181// See AssumeRole for details on how to use this API operation.
182//
183// The context must be non-nil and will be used for request cancellation. If
184// the context is nil a panic will occur. In the future the SDK may create
185// sub-contexts for http.Requests. See https://golang.org/pkg/context/
186// for more information on using Contexts.
187func (c *STS) AssumeRoleWithContext(ctx aws.Context, input *AssumeRoleInput, opts ...request.Option) (*AssumeRoleOutput, error) {
188 req, out := c.AssumeRoleRequest(input)
189 req.SetContext(ctx)
190 req.ApplyOptions(opts...)
191 return out, req.Send()
192}
193
194const opAssumeRoleWithSAML = "AssumeRoleWithSAML"
195
196// AssumeRoleWithSAMLRequest generates a "aws/request.Request" representing the
197// client's request for the AssumeRoleWithSAML operation. The "output" return
198// value can be used to capture response data after the request's "Send" method
199// is called.
200//
201// See AssumeRoleWithSAML for usage and error information.
202//
203// Creating a request object using this method should be used when you want to inject
204// custom logic into the request's lifecycle using a custom handler, or if you want to
205// access properties on the request object before or after sending the request. If
206// you just want the service response, call the AssumeRoleWithSAML method directly
207// instead.
208//
209// Note: You must call the "Send" method on the returned request object in order
210// to execute the request.
211//
212// // Example sending a request using the AssumeRoleWithSAMLRequest method.
213// req, resp := client.AssumeRoleWithSAMLRequest(params)
214//
215// err := req.Send()
216// if err == nil { // resp is now filled
217// fmt.Println(resp)
218// }
219//
220// Please also see https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleWithSAML
221func (c *STS) AssumeRoleWithSAMLRequest(input *AssumeRoleWithSAMLInput) (req *request.Request, output *AssumeRoleWithSAMLOutput) {
222 op := &request.Operation{
223 Name: opAssumeRoleWithSAML,
224 HTTPMethod: "POST",
225 HTTPPath: "/",
226 }
227
228 if input == nil {
229 input = &AssumeRoleWithSAMLInput{}
230 }
231
232 output = &AssumeRoleWithSAMLOutput{}
233 req = c.newRequest(op, input, output)
234 return
235}
236
237// AssumeRoleWithSAML API operation for AWS Security Token Service.
238//
239// Returns a set of temporary security credentials for users who have been authenticated
240// via a SAML authentication response. This operation provides a mechanism for
241// tying an enterprise identity store or directory to role-based AWS access
242// without user-specific credentials or configuration. For a comparison of AssumeRoleWithSAML
243// with the other APIs that produce temporary credentials, see Requesting Temporary
244// Security Credentials (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html)
245// and Comparing the AWS STS APIs (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison)
246// in the IAM User Guide.
247//
248// The temporary security credentials returned by this operation consist of
249// an access key ID, a secret access key, and a security token. Applications
250// can use these temporary security credentials to sign calls to AWS services.
251//
252// The temporary security credentials are valid for the duration that you specified
253// when calling AssumeRole, or until the time specified in the SAML authentication
254// response's SessionNotOnOrAfter value, whichever is shorter. The duration
255// can be from 900 seconds (15 minutes) to a maximum of 3600 seconds (1 hour).
256// The default is 1 hour.
257//
258// The temporary security credentials created by AssumeRoleWithSAML can be used
259// to make API calls to any AWS service with the following exception: you cannot
260// call the STS service's GetFederationToken or GetSessionToken APIs.
261//
262// Optionally, you can pass an IAM access policy to this operation. If you choose
263// not to pass a policy, the temporary security credentials that are returned
264// by the operation have the permissions that are defined in the access policy
265// of the role that is being assumed. If you pass a policy to this operation,
266// the temporary security credentials that are returned by the operation have
267// the permissions that are allowed by the intersection of both the access policy
268// of the role that is being assumed, and the policy that you pass. This means
269// that both policies must grant the permission for the action to be allowed.
270// This gives you a way to further restrict the permissions for the resulting
271// temporary security credentials. You cannot use the passed policy to grant
272// permissions that are in excess of those allowed by the access policy of the
273// role that is being assumed. For more information, see Permissions for AssumeRole,
274// AssumeRoleWithSAML, and AssumeRoleWithWebIdentity (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_assumerole.html)
275// in the IAM User Guide.
276//
277// Before your application can call AssumeRoleWithSAML, you must configure your
278// SAML identity provider (IdP) to issue the claims required by AWS. Additionally,
279// you must use AWS Identity and Access Management (IAM) to create a SAML provider
280// entity in your AWS account that represents your identity provider, and create
281// an IAM role that specifies this SAML provider in its trust policy.
282//
283// Calling AssumeRoleWithSAML does not require the use of AWS security credentials.
284// The identity of the caller is validated by using keys in the metadata document
285// that is uploaded for the SAML provider entity for your identity provider.
286//
287// Calling AssumeRoleWithSAML can result in an entry in your AWS CloudTrail
288// logs. The entry includes the value in the NameID element of the SAML assertion.
289// We recommend that you use a NameIDType that is not associated with any personally
290// identifiable information (PII). For example, you could instead use the Persistent
291// Identifier (urn:oasis:names:tc:SAML:2.0:nameid-format:persistent).
292//
293// For more information, see the following resources:
294//
295// * About SAML 2.0-based Federation (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_saml.html)
296// in the IAM User Guide.
297//
298// * Creating SAML Identity Providers (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml.html)
299// in the IAM User Guide.
300//
301// * Configuring a Relying Party and Claims (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml_relying-party.html)
302// in the IAM User Guide.
303//
304// * Creating a Role for SAML 2.0 Federation (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-idp_saml.html)
305// in the IAM User Guide.
306//
307// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
308// with awserr.Error's Code and Message methods to get detailed information about
309// the error.
310//
311// See the AWS API reference guide for AWS Security Token Service's
312// API operation AssumeRoleWithSAML for usage and error information.
313//
314// Returned Error Codes:
315// * ErrCodeMalformedPolicyDocumentException "MalformedPolicyDocument"
316// The request was rejected because the policy document was malformed. The error
317// message describes the specific error.
318//
319// * ErrCodePackedPolicyTooLargeException "PackedPolicyTooLarge"
320// The request was rejected because the policy document was too large. The error
321// message describes how big the policy document is, in packed form, as a percentage
322// of what the API allows.
323//
324// * ErrCodeIDPRejectedClaimException "IDPRejectedClaim"
325// The identity provider (IdP) reported that authentication failed. This might
326// be because the claim is invalid.
327//
328// If this error is returned for the AssumeRoleWithWebIdentity operation, it
329// can also mean that the claim has expired or has been explicitly revoked.
330//
331// * ErrCodeInvalidIdentityTokenException "InvalidIdentityToken"
332// The web identity token that was passed could not be validated by AWS. Get
333// a new identity token from the identity provider and then retry the request.
334//
335// * ErrCodeExpiredTokenException "ExpiredTokenException"
336// The web identity token that was passed is expired or is not valid. Get a
337// new identity token from the identity provider and then retry the request.
338//
339// * ErrCodeRegionDisabledException "RegionDisabledException"
340// STS is not activated in the requested region for the account that is being
341// asked to generate credentials. The account administrator must use the IAM
342// console to activate STS in that region. For more information, see Activating
343// and Deactivating AWS STS in an AWS Region (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html)
344// in the IAM User Guide.
345//
346// Please also see https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleWithSAML
347func (c *STS) AssumeRoleWithSAML(input *AssumeRoleWithSAMLInput) (*AssumeRoleWithSAMLOutput, error) {
348 req, out := c.AssumeRoleWithSAMLRequest(input)
349 return out, req.Send()
350}
351
352// AssumeRoleWithSAMLWithContext is the same as AssumeRoleWithSAML with the addition of
353// the ability to pass a context and additional request options.
354//
355// See AssumeRoleWithSAML for details on how to use this API operation.
356//
357// The context must be non-nil and will be used for request cancellation. If
358// the context is nil a panic will occur. In the future the SDK may create
359// sub-contexts for http.Requests. See https://golang.org/pkg/context/
360// for more information on using Contexts.
361func (c *STS) AssumeRoleWithSAMLWithContext(ctx aws.Context, input *AssumeRoleWithSAMLInput, opts ...request.Option) (*AssumeRoleWithSAMLOutput, error) {
362 req, out := c.AssumeRoleWithSAMLRequest(input)
363 req.SetContext(ctx)
364 req.ApplyOptions(opts...)
365 return out, req.Send()
366}
367
368const opAssumeRoleWithWebIdentity = "AssumeRoleWithWebIdentity"
369
370// AssumeRoleWithWebIdentityRequest generates a "aws/request.Request" representing the
371// client's request for the AssumeRoleWithWebIdentity operation. The "output" return
372// value can be used to capture response data after the request's "Send" method
373// is called.
374//
375// See AssumeRoleWithWebIdentity for usage and error information.
376//
377// Creating a request object using this method should be used when you want to inject
378// custom logic into the request's lifecycle using a custom handler, or if you want to
379// access properties on the request object before or after sending the request. If
380// you just want the service response, call the AssumeRoleWithWebIdentity method directly
381// instead.
382//
383// Note: You must call the "Send" method on the returned request object in order
384// to execute the request.
385//
386// // Example sending a request using the AssumeRoleWithWebIdentityRequest method.
387// req, resp := client.AssumeRoleWithWebIdentityRequest(params)
388//
389// err := req.Send()
390// if err == nil { // resp is now filled
391// fmt.Println(resp)
392// }
393//
394// Please also see https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleWithWebIdentity
395func (c *STS) AssumeRoleWithWebIdentityRequest(input *AssumeRoleWithWebIdentityInput) (req *request.Request, output *AssumeRoleWithWebIdentityOutput) {
396 op := &request.Operation{
397 Name: opAssumeRoleWithWebIdentity,
398 HTTPMethod: "POST",
399 HTTPPath: "/",
400 }
401
402 if input == nil {
403 input = &AssumeRoleWithWebIdentityInput{}
404 }
405
406 output = &AssumeRoleWithWebIdentityOutput{}
407 req = c.newRequest(op, input, output)
408 return
409}
410
411// AssumeRoleWithWebIdentity API operation for AWS Security Token Service.
412//
413// Returns a set of temporary security credentials for users who have been authenticated
414// in a mobile or web application with a web identity provider, such as Amazon
415// Cognito, Login with Amazon, Facebook, Google, or any OpenID Connect-compatible
416// identity provider.
417//
418// For mobile applications, we recommend that you use Amazon Cognito. You can
419// use Amazon Cognito with the AWS SDK for iOS (http://aws.amazon.com/sdkforios/)
420// and the AWS SDK for Android (http://aws.amazon.com/sdkforandroid/) to uniquely
421// identify a user and supply the user with a consistent identity throughout
422// the lifetime of an application.
423//
424// To learn more about Amazon Cognito, see Amazon Cognito Overview (http://docs.aws.amazon.com/mobile/sdkforandroid/developerguide/cognito-auth.html#d0e840)
425// in the AWS SDK for Android Developer Guide guide and Amazon Cognito Overview
426// (http://docs.aws.amazon.com/mobile/sdkforios/developerguide/cognito-auth.html#d0e664)
427// in the AWS SDK for iOS Developer Guide.
428//
429// Calling AssumeRoleWithWebIdentity does not require the use of AWS security
430// credentials. Therefore, you can distribute an application (for example, on
431// mobile devices) that requests temporary security credentials without including
432// long-term AWS credentials in the application, and without deploying server-based
433// proxy services that use long-term AWS credentials. Instead, the identity
434// of the caller is validated by using a token from the web identity provider.
435// For a comparison of AssumeRoleWithWebIdentity with the other APIs that produce
436// temporary credentials, see Requesting Temporary Security Credentials (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html)
437// and Comparing the AWS STS APIs (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison)
438// in the IAM User Guide.
439//
440// The temporary security credentials returned by this API consist of an access
441// key ID, a secret access key, and a security token. Applications can use these
442// temporary security credentials to sign calls to AWS service APIs.
443//
444// The credentials are valid for the duration that you specified when calling
445// AssumeRoleWithWebIdentity, which can be from 900 seconds (15 minutes) to
446// a maximum of 3600 seconds (1 hour). The default is 1 hour.
447//
448// The temporary security credentials created by AssumeRoleWithWebIdentity can
449// be used to make API calls to any AWS service with the following exception:
450// you cannot call the STS service's GetFederationToken or GetSessionToken APIs.
451//
452// Optionally, you can pass an IAM access policy to this operation. If you choose
453// not to pass a policy, the temporary security credentials that are returned
454// by the operation have the permissions that are defined in the access policy
455// of the role that is being assumed. If you pass a policy to this operation,
456// the temporary security credentials that are returned by the operation have
457// the permissions that are allowed by both the access policy of the role that
458// is being assumed, and the policy that you pass. This gives you a way to further
459// restrict the permissions for the resulting temporary security credentials.
460// You cannot use the passed policy to grant permissions that are in excess
461// of those allowed by the access policy of the role that is being assumed.
462// For more information, see Permissions for AssumeRole, AssumeRoleWithSAML,
463// and AssumeRoleWithWebIdentity (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_assumerole.html)
464// in the IAM User Guide.
465//
466// Before your application can call AssumeRoleWithWebIdentity, you must have
467// an identity token from a supported identity provider and create a role that
468// the application can assume. The role that your application assumes must trust
469// the identity provider that is associated with the identity token. In other
470// words, the identity provider must be specified in the role's trust policy.
471//
472// Calling AssumeRoleWithWebIdentity can result in an entry in your AWS CloudTrail
473// logs. The entry includes the Subject (http://openid.net/specs/openid-connect-core-1_0.html#Claims)
474// of the provided Web Identity Token. We recommend that you avoid using any
475// personally identifiable information (PII) in this field. For example, you
476// could instead use a GUID or a pairwise identifier, as suggested in the OIDC
477// specification (http://openid.net/specs/openid-connect-core-1_0.html#SubjectIDTypes).
478//
479// For more information about how to use web identity federation and the AssumeRoleWithWebIdentity
480// API, see the following resources:
481//
482// * Using Web Identity Federation APIs for Mobile Apps (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc_manual.html)
483// and Federation Through a Web-based Identity Provider (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_assumerolewithwebidentity).
484//
485//
486// * Web Identity Federation Playground (https://web-identity-federation-playground.s3.amazonaws.com/index.html).
487// This interactive website lets you walk through the process of authenticating
488// via Login with Amazon, Facebook, or Google, getting temporary security
489// credentials, and then using those credentials to make a request to AWS.
490//
491//
492// * AWS SDK for iOS (http://aws.amazon.com/sdkforios/) and AWS SDK for Android
493// (http://aws.amazon.com/sdkforandroid/). These toolkits contain sample
494// apps that show how to invoke the identity providers, and then how to use
495// the information from these providers to get and use temporary security
496// credentials.
497//
498// * Web Identity Federation with Mobile Applications (http://aws.amazon.com/articles/4617974389850313).
499// This article discusses web identity federation and shows an example of
500// how to use web identity federation to get access to content in Amazon
501// S3.
502//
503// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
504// with awserr.Error's Code and Message methods to get detailed information about
505// the error.
506//
507// See the AWS API reference guide for AWS Security Token Service's
508// API operation AssumeRoleWithWebIdentity for usage and error information.
509//
510// Returned Error Codes:
511// * ErrCodeMalformedPolicyDocumentException "MalformedPolicyDocument"
512// The request was rejected because the policy document was malformed. The error
513// message describes the specific error.
514//
515// * ErrCodePackedPolicyTooLargeException "PackedPolicyTooLarge"
516// The request was rejected because the policy document was too large. The error
517// message describes how big the policy document is, in packed form, as a percentage
518// of what the API allows.
519//
520// * ErrCodeIDPRejectedClaimException "IDPRejectedClaim"
521// The identity provider (IdP) reported that authentication failed. This might
522// be because the claim is invalid.
523//
524// If this error is returned for the AssumeRoleWithWebIdentity operation, it
525// can also mean that the claim has expired or has been explicitly revoked.
526//
527// * ErrCodeIDPCommunicationErrorException "IDPCommunicationError"
528// The request could not be fulfilled because the non-AWS identity provider
529// (IDP) that was asked to verify the incoming identity token could not be reached.
530// This is often a transient error caused by network conditions. Retry the request
531// a limited number of times so that you don't exceed the request rate. If the
532// error persists, the non-AWS identity provider might be down or not responding.
533//
534// * ErrCodeInvalidIdentityTokenException "InvalidIdentityToken"
535// The web identity token that was passed could not be validated by AWS. Get
536// a new identity token from the identity provider and then retry the request.
537//
538// * ErrCodeExpiredTokenException "ExpiredTokenException"
539// The web identity token that was passed is expired or is not valid. Get a
540// new identity token from the identity provider and then retry the request.
541//
542// * ErrCodeRegionDisabledException "RegionDisabledException"
543// STS is not activated in the requested region for the account that is being
544// asked to generate credentials. The account administrator must use the IAM
545// console to activate STS in that region. For more information, see Activating
546// and Deactivating AWS STS in an AWS Region (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html)
547// in the IAM User Guide.
548//
549// Please also see https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleWithWebIdentity
550func (c *STS) AssumeRoleWithWebIdentity(input *AssumeRoleWithWebIdentityInput) (*AssumeRoleWithWebIdentityOutput, error) {
551 req, out := c.AssumeRoleWithWebIdentityRequest(input)
552 return out, req.Send()
553}
554
555// AssumeRoleWithWebIdentityWithContext is the same as AssumeRoleWithWebIdentity with the addition of
556// the ability to pass a context and additional request options.
557//
558// See AssumeRoleWithWebIdentity for details on how to use this API operation.
559//
560// The context must be non-nil and will be used for request cancellation. If
561// the context is nil a panic will occur. In the future the SDK may create
562// sub-contexts for http.Requests. See https://golang.org/pkg/context/
563// for more information on using Contexts.
564func (c *STS) AssumeRoleWithWebIdentityWithContext(ctx aws.Context, input *AssumeRoleWithWebIdentityInput, opts ...request.Option) (*AssumeRoleWithWebIdentityOutput, error) {
565 req, out := c.AssumeRoleWithWebIdentityRequest(input)
566 req.SetContext(ctx)
567 req.ApplyOptions(opts...)
568 return out, req.Send()
569}
570
571const opDecodeAuthorizationMessage = "DecodeAuthorizationMessage"
572
573// DecodeAuthorizationMessageRequest generates a "aws/request.Request" representing the
574// client's request for the DecodeAuthorizationMessage operation. The "output" return
575// value can be used to capture response data after the request's "Send" method
576// is called.
577//
578// See DecodeAuthorizationMessage for usage and error information.
579//
580// Creating a request object using this method should be used when you want to inject
581// custom logic into the request's lifecycle using a custom handler, or if you want to
582// access properties on the request object before or after sending the request. If
583// you just want the service response, call the DecodeAuthorizationMessage method directly
584// instead.
585//
586// Note: You must call the "Send" method on the returned request object in order
587// to execute the request.
588//
589// // Example sending a request using the DecodeAuthorizationMessageRequest method.
590// req, resp := client.DecodeAuthorizationMessageRequest(params)
591//
592// err := req.Send()
593// if err == nil { // resp is now filled
594// fmt.Println(resp)
595// }
596//
597// Please also see https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/DecodeAuthorizationMessage
598func (c *STS) DecodeAuthorizationMessageRequest(input *DecodeAuthorizationMessageInput) (req *request.Request, output *DecodeAuthorizationMessageOutput) {
599 op := &request.Operation{
600 Name: opDecodeAuthorizationMessage,
601 HTTPMethod: "POST",
602 HTTPPath: "/",
603 }
604
605 if input == nil {
606 input = &DecodeAuthorizationMessageInput{}
607 }
608
609 output = &DecodeAuthorizationMessageOutput{}
610 req = c.newRequest(op, input, output)
611 return
612}
613
614// DecodeAuthorizationMessage API operation for AWS Security Token Service.
615//
616// Decodes additional information about the authorization status of a request
617// from an encoded message returned in response to an AWS request.
618//
619// For example, if a user is not authorized to perform an action that he or
620// she has requested, the request returns a Client.UnauthorizedOperation response
621// (an HTTP 403 response). Some AWS actions additionally return an encoded message
622// that can provide details about this authorization failure.
623//
624// Only certain AWS actions return an encoded authorization message. The documentation
625// for an individual action indicates whether that action returns an encoded
626// message in addition to returning an HTTP code.
627//
628// The message is encoded because the details of the authorization status can
629// constitute privileged information that the user who requested the action
630// should not see. To decode an authorization status message, a user must be
631// granted permissions via an IAM policy to request the DecodeAuthorizationMessage
632// (sts:DecodeAuthorizationMessage) action.
633//
634// The decoded message includes the following type of information:
635//
636// * Whether the request was denied due to an explicit deny or due to the
637// absence of an explicit allow. For more information, see Determining Whether
638// a Request is Allowed or Denied (http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html#policy-eval-denyallow)
639// in the IAM User Guide.
640//
641// * The principal who made the request.
642//
643// * The requested action.
644//
645// * The requested resource.
646//
647// * The values of condition keys in the context of the user's request.
648//
649// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
650// with awserr.Error's Code and Message methods to get detailed information about
651// the error.
652//
653// See the AWS API reference guide for AWS Security Token Service's
654// API operation DecodeAuthorizationMessage for usage and error information.
655//
656// Returned Error Codes:
657// * ErrCodeInvalidAuthorizationMessageException "InvalidAuthorizationMessageException"
658// The error returned if the message passed to DecodeAuthorizationMessage was
659// invalid. This can happen if the token contains invalid characters, such as
660// linebreaks.
661//
662// Please also see https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/DecodeAuthorizationMessage
663func (c *STS) DecodeAuthorizationMessage(input *DecodeAuthorizationMessageInput) (*DecodeAuthorizationMessageOutput, error) {
664 req, out := c.DecodeAuthorizationMessageRequest(input)
665 return out, req.Send()
666}
667
668// DecodeAuthorizationMessageWithContext is the same as DecodeAuthorizationMessage with the addition of
669// the ability to pass a context and additional request options.
670//
671// See DecodeAuthorizationMessage for details on how to use this API operation.
672//
673// The context must be non-nil and will be used for request cancellation. If
674// the context is nil a panic will occur. In the future the SDK may create
675// sub-contexts for http.Requests. See https://golang.org/pkg/context/
676// for more information on using Contexts.
677func (c *STS) DecodeAuthorizationMessageWithContext(ctx aws.Context, input *DecodeAuthorizationMessageInput, opts ...request.Option) (*DecodeAuthorizationMessageOutput, error) {
678 req, out := c.DecodeAuthorizationMessageRequest(input)
679 req.SetContext(ctx)
680 req.ApplyOptions(opts...)
681 return out, req.Send()
682}
683
684const opGetCallerIdentity = "GetCallerIdentity"
685
686// GetCallerIdentityRequest generates a "aws/request.Request" representing the
687// client's request for the GetCallerIdentity operation. The "output" return
688// value can be used to capture response data after the request's "Send" method
689// is called.
690//
691// See GetCallerIdentity for usage and error information.
692//
693// Creating a request object using this method should be used when you want to inject
694// custom logic into the request's lifecycle using a custom handler, or if you want to
695// access properties on the request object before or after sending the request. If
696// you just want the service response, call the GetCallerIdentity method directly
697// instead.
698//
699// Note: You must call the "Send" method on the returned request object in order
700// to execute the request.
701//
702// // Example sending a request using the GetCallerIdentityRequest method.
703// req, resp := client.GetCallerIdentityRequest(params)
704//
705// err := req.Send()
706// if err == nil { // resp is now filled
707// fmt.Println(resp)
708// }
709//
710// Please also see https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetCallerIdentity
711func (c *STS) GetCallerIdentityRequest(input *GetCallerIdentityInput) (req *request.Request, output *GetCallerIdentityOutput) {
712 op := &request.Operation{
713 Name: opGetCallerIdentity,
714 HTTPMethod: "POST",
715 HTTPPath: "/",
716 }
717
718 if input == nil {
719 input = &GetCallerIdentityInput{}
720 }
721
722 output = &GetCallerIdentityOutput{}
723 req = c.newRequest(op, input, output)
724 return
725}
726
727// GetCallerIdentity API operation for AWS Security Token Service.
728//
729// Returns details about the IAM identity whose credentials are used to call
730// the API.
731//
732// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
733// with awserr.Error's Code and Message methods to get detailed information about
734// the error.
735//
736// See the AWS API reference guide for AWS Security Token Service's
737// API operation GetCallerIdentity for usage and error information.
738// Please also see https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetCallerIdentity
739func (c *STS) GetCallerIdentity(input *GetCallerIdentityInput) (*GetCallerIdentityOutput, error) {
740 req, out := c.GetCallerIdentityRequest(input)
741 return out, req.Send()
742}
743
744// GetCallerIdentityWithContext is the same as GetCallerIdentity with the addition of
745// the ability to pass a context and additional request options.
746//
747// See GetCallerIdentity for details on how to use this API operation.
748//
749// The context must be non-nil and will be used for request cancellation. If
750// the context is nil a panic will occur. In the future the SDK may create
751// sub-contexts for http.Requests. See https://golang.org/pkg/context/
752// for more information on using Contexts.
753func (c *STS) GetCallerIdentityWithContext(ctx aws.Context, input *GetCallerIdentityInput, opts ...request.Option) (*GetCallerIdentityOutput, error) {
754 req, out := c.GetCallerIdentityRequest(input)
755 req.SetContext(ctx)
756 req.ApplyOptions(opts...)
757 return out, req.Send()
758}
759
760const opGetFederationToken = "GetFederationToken"
761
762// GetFederationTokenRequest generates a "aws/request.Request" representing the
763// client's request for the GetFederationToken operation. The "output" return
764// value can be used to capture response data after the request's "Send" method
765// is called.
766//
767// See GetFederationToken for usage and error information.
768//
769// Creating a request object using this method should be used when you want to inject
770// custom logic into the request's lifecycle using a custom handler, or if you want to
771// access properties on the request object before or after sending the request. If
772// you just want the service response, call the GetFederationToken method directly
773// instead.
774//
775// Note: You must call the "Send" method on the returned request object in order
776// to execute the request.
777//
778// // Example sending a request using the GetFederationTokenRequest method.
779// req, resp := client.GetFederationTokenRequest(params)
780//
781// err := req.Send()
782// if err == nil { // resp is now filled
783// fmt.Println(resp)
784// }
785//
786// Please also see https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetFederationToken
787func (c *STS) GetFederationTokenRequest(input *GetFederationTokenInput) (req *request.Request, output *GetFederationTokenOutput) {
788 op := &request.Operation{
789 Name: opGetFederationToken,
790 HTTPMethod: "POST",
791 HTTPPath: "/",
792 }
793
794 if input == nil {
795 input = &GetFederationTokenInput{}
796 }
797
798 output = &GetFederationTokenOutput{}
799 req = c.newRequest(op, input, output)
800 return
801}
802
803// GetFederationToken API operation for AWS Security Token Service.
804//
805// Returns a set of temporary security credentials (consisting of an access
806// key ID, a secret access key, and a security token) for a federated user.
807// A typical use is in a proxy application that gets temporary security credentials
808// on behalf of distributed applications inside a corporate network. Because
809// you must call the GetFederationToken action using the long-term security
810// credentials of an IAM user, this call is appropriate in contexts where those
811// credentials can be safely stored, usually in a server-based application.
812// For a comparison of GetFederationToken with the other APIs that produce temporary
813// credentials, see Requesting Temporary Security Credentials (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html)
814// and Comparing the AWS STS APIs (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison)
815// in the IAM User Guide.
816//
817// If you are creating a mobile-based or browser-based app that can authenticate
818// users using a web identity provider like Login with Amazon, Facebook, Google,
819// or an OpenID Connect-compatible identity provider, we recommend that you
820// use Amazon Cognito (http://aws.amazon.com/cognito/) or AssumeRoleWithWebIdentity.
821// For more information, see Federation Through a Web-based Identity Provider
822// (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_assumerolewithwebidentity).
823//
824// The GetFederationToken action must be called by using the long-term AWS security
825// credentials of an IAM user. You can also call GetFederationToken using the
826// security credentials of an AWS root account, but we do not recommended it.
827// Instead, we recommend that you create an IAM user for the purpose of the
828// proxy application and then attach a policy to the IAM user that limits federated
829// users to only the actions and resources that they need access to. For more
830// information, see IAM Best Practices (http://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)
831// in the IAM User Guide.
832//
833// The temporary security credentials that are obtained by using the long-term
834// credentials of an IAM user are valid for the specified duration, from 900
835// seconds (15 minutes) up to a maximium of 129600 seconds (36 hours). The default
836// is 43200 seconds (12 hours). Temporary credentials that are obtained by using
837// AWS root account credentials have a maximum duration of 3600 seconds (1 hour).
838//
839// The temporary security credentials created by GetFederationToken can be used
840// to make API calls to any AWS service with the following exceptions:
841//
842// * You cannot use these credentials to call any IAM APIs.
843//
844// * You cannot call any STS APIs except GetCallerIdentity.
845//
846// Permissions
847//
848// The permissions for the temporary security credentials returned by GetFederationToken
849// are determined by a combination of the following:
850//
851// * The policy or policies that are attached to the IAM user whose credentials
852// are used to call GetFederationToken.
853//
854// * The policy that is passed as a parameter in the call.
855//
856// The passed policy is attached to the temporary security credentials that
857// result from the GetFederationToken API call--that is, to the federated user.
858// When the federated user makes an AWS request, AWS evaluates the policy attached
859// to the federated user in combination with the policy or policies attached
860// to the IAM user whose credentials were used to call GetFederationToken. AWS
861// allows the federated user's request only when both the federated user and
862// the IAM user are explicitly allowed to perform the requested action. The
863// passed policy cannot grant more permissions than those that are defined in
864// the IAM user policy.
865//
866// A typical use case is that the permissions of the IAM user whose credentials
867// are used to call GetFederationToken are designed to allow access to all the
868// actions and resources that any federated user will need. Then, for individual
869// users, you pass a policy to the operation that scopes down the permissions
870// to a level that's appropriate to that individual user, using a policy that
871// allows only a subset of permissions that are granted to the IAM user.
872//
873// If you do not pass a policy, the resulting temporary security credentials
874// have no effective permissions. The only exception is when the temporary security
875// credentials are used to access a resource that has a resource-based policy
876// that specifically allows the federated user to access the resource.
877//
878// For more information about how permissions work, see Permissions for GetFederationToken
879// (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_getfederationtoken.html).
880// For information about using GetFederationToken to create temporary security
881// credentials, see GetFederationToken—Federation Through a Custom Identity
882// Broker (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_getfederationtoken).
883//
884// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
885// with awserr.Error's Code and Message methods to get detailed information about
886// the error.
887//
888// See the AWS API reference guide for AWS Security Token Service's
889// API operation GetFederationToken for usage and error information.
890//
891// Returned Error Codes:
892// * ErrCodeMalformedPolicyDocumentException "MalformedPolicyDocument"
893// The request was rejected because the policy document was malformed. The error
894// message describes the specific error.
895//
896// * ErrCodePackedPolicyTooLargeException "PackedPolicyTooLarge"
897// The request was rejected because the policy document was too large. The error
898// message describes how big the policy document is, in packed form, as a percentage
899// of what the API allows.
900//
901// * ErrCodeRegionDisabledException "RegionDisabledException"
902// STS is not activated in the requested region for the account that is being
903// asked to generate credentials. The account administrator must use the IAM
904// console to activate STS in that region. For more information, see Activating
905// and Deactivating AWS STS in an AWS Region (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html)
906// in the IAM User Guide.
907//
908// Please also see https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetFederationToken
909func (c *STS) GetFederationToken(input *GetFederationTokenInput) (*GetFederationTokenOutput, error) {
910 req, out := c.GetFederationTokenRequest(input)
911 return out, req.Send()
912}
913
914// GetFederationTokenWithContext is the same as GetFederationToken with the addition of
915// the ability to pass a context and additional request options.
916//
917// See GetFederationToken for details on how to use this API operation.
918//
919// The context must be non-nil and will be used for request cancellation. If
920// the context is nil a panic will occur. In the future the SDK may create
921// sub-contexts for http.Requests. See https://golang.org/pkg/context/
922// for more information on using Contexts.
923func (c *STS) GetFederationTokenWithContext(ctx aws.Context, input *GetFederationTokenInput, opts ...request.Option) (*GetFederationTokenOutput, error) {
924 req, out := c.GetFederationTokenRequest(input)
925 req.SetContext(ctx)
926 req.ApplyOptions(opts...)
927 return out, req.Send()
928}
929
930const opGetSessionToken = "GetSessionToken"
931
932// GetSessionTokenRequest generates a "aws/request.Request" representing the
933// client's request for the GetSessionToken operation. The "output" return
934// value can be used to capture response data after the request's "Send" method
935// is called.
936//
937// See GetSessionToken for usage and error information.
938//
939// Creating a request object using this method should be used when you want to inject
940// custom logic into the request's lifecycle using a custom handler, or if you want to
941// access properties on the request object before or after sending the request. If
942// you just want the service response, call the GetSessionToken method directly
943// instead.
944//
945// Note: You must call the "Send" method on the returned request object in order
946// to execute the request.
947//
948// // Example sending a request using the GetSessionTokenRequest method.
949// req, resp := client.GetSessionTokenRequest(params)
950//
951// err := req.Send()
952// if err == nil { // resp is now filled
953// fmt.Println(resp)
954// }
955//
956// Please also see https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetSessionToken
957func (c *STS) GetSessionTokenRequest(input *GetSessionTokenInput) (req *request.Request, output *GetSessionTokenOutput) {
958 op := &request.Operation{
959 Name: opGetSessionToken,
960 HTTPMethod: "POST",
961 HTTPPath: "/",
962 }
963
964 if input == nil {
965 input = &GetSessionTokenInput{}
966 }
967
968 output = &GetSessionTokenOutput{}
969 req = c.newRequest(op, input, output)
970 return
971}
972
973// GetSessionToken API operation for AWS Security Token Service.
974//
975// Returns a set of temporary credentials for an AWS account or IAM user. The
976// credentials consist of an access key ID, a secret access key, and a security
977// token. Typically, you use GetSessionToken if you want to use MFA to protect
978// programmatic calls to specific AWS APIs like Amazon EC2 StopInstances. MFA-enabled
979// IAM users would need to call GetSessionToken and submit an MFA code that
980// is associated with their MFA device. Using the temporary security credentials
981// that are returned from the call, IAM users can then make programmatic calls
982// to APIs that require MFA authentication. If you do not supply a correct MFA
983// code, then the API returns an access denied error. For a comparison of GetSessionToken
984// with the other APIs that produce temporary credentials, see Requesting Temporary
985// Security Credentials (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html)
986// and Comparing the AWS STS APIs (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison)
987// in the IAM User Guide.
988//
989// The GetSessionToken action must be called by using the long-term AWS security
990// credentials of the AWS account or an IAM user. Credentials that are created
991// by IAM users are valid for the duration that you specify, from 900 seconds
992// (15 minutes) up to a maximum of 129600 seconds (36 hours), with a default
993// of 43200 seconds (12 hours); credentials that are created by using account
994// credentials can range from 900 seconds (15 minutes) up to a maximum of 3600
995// seconds (1 hour), with a default of 1 hour.
996//
997// The temporary security credentials created by GetSessionToken can be used
998// to make API calls to any AWS service with the following exceptions:
999//
1000// * You cannot call any IAM APIs unless MFA authentication information is
1001// included in the request.
1002//
1003// * You cannot call any STS API exceptAssumeRole or GetCallerIdentity.
1004//
1005// We recommend that you do not call GetSessionToken with root account credentials.
1006// Instead, follow our best practices (http://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#create-iam-users)
1007// by creating one or more IAM users, giving them the necessary permissions,
1008// and using IAM users for everyday interaction with AWS.
1009//
1010// The permissions associated with the temporary security credentials returned
1011// by GetSessionToken are based on the permissions associated with account or
1012// IAM user whose credentials are used to call the action. If GetSessionToken
1013// is called using root account credentials, the temporary credentials have
1014// root account permissions. Similarly, if GetSessionToken is called using the
1015// credentials of an IAM user, the temporary credentials have the same permissions
1016// as the IAM user.
1017//
1018// For more information about using GetSessionToken to create temporary credentials,
1019// go to Temporary Credentials for Users in Untrusted Environments (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_getsessiontoken)
1020// in the IAM User Guide.
1021//
1022// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1023// with awserr.Error's Code and Message methods to get detailed information about
1024// the error.
1025//
1026// See the AWS API reference guide for AWS Security Token Service's
1027// API operation GetSessionToken for usage and error information.
1028//
1029// Returned Error Codes:
1030// * ErrCodeRegionDisabledException "RegionDisabledException"
1031// STS is not activated in the requested region for the account that is being
1032// asked to generate credentials. The account administrator must use the IAM
1033// console to activate STS in that region. For more information, see Activating
1034// and Deactivating AWS STS in an AWS Region (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html)
1035// in the IAM User Guide.
1036//
1037// Please also see https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetSessionToken
1038func (c *STS) GetSessionToken(input *GetSessionTokenInput) (*GetSessionTokenOutput, error) {
1039 req, out := c.GetSessionTokenRequest(input)
1040 return out, req.Send()
1041}
1042
1043// GetSessionTokenWithContext is the same as GetSessionToken with the addition of
1044// the ability to pass a context and additional request options.
1045//
1046// See GetSessionToken for details on how to use this API operation.
1047//
1048// The context must be non-nil and will be used for request cancellation. If
1049// the context is nil a panic will occur. In the future the SDK may create
1050// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1051// for more information on using Contexts.
1052func (c *STS) GetSessionTokenWithContext(ctx aws.Context, input *GetSessionTokenInput, opts ...request.Option) (*GetSessionTokenOutput, error) {
1053 req, out := c.GetSessionTokenRequest(input)
1054 req.SetContext(ctx)
1055 req.ApplyOptions(opts...)
1056 return out, req.Send()
1057}
1058
1059// Please also see https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleRequest
1060type AssumeRoleInput struct {
1061 _ struct{} `type:"structure"`
1062
1063 // The duration, in seconds, of the role session. The value can range from 900
1064 // seconds (15 minutes) to 3600 seconds (1 hour). By default, the value is set
1065 // to 3600 seconds.
1066 //
1067 // This is separate from the duration of a console session that you might request
1068 // using the returned credentials. The request to the federation endpoint for
1069 // a console sign-in token takes a SessionDuration parameter that specifies
1070 // the maximum length of the console session, separately from the DurationSeconds
1071 // parameter on this API. For more information, see Creating a URL that Enables
1072 // Federated Users to Access the AWS Management Console (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_enable-console-custom-url.html)
1073 // in the IAM User Guide.
1074 DurationSeconds *int64 `min:"900" type:"integer"`
1075
1076 // A unique identifier that is used by third parties when assuming roles in
1077 // their customers' accounts. For each role that the third party can assume,
1078 // they should instruct their customers to ensure the role's trust policy checks
1079 // for the external ID that the third party generated. Each time the third party
1080 // assumes the role, they should pass the customer's external ID. The external
1081 // ID is useful in order to help third parties bind a role to the customer who
1082 // created it. For more information about the external ID, see How to Use an
1083 // External ID When Granting Access to Your AWS Resources to a Third Party (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html)
1084 // in the IAM User Guide.
1085 //
1086 // The regex used to validated this parameter is a string of characters consisting
1087 // of upper- and lower-case alphanumeric characters with no spaces. You can
1088 // also include underscores or any of the following characters: =,.@:\/-
1089 ExternalId *string `min:"2" type:"string"`
1090
1091 // An IAM policy in JSON format.
1092 //
1093 // This parameter is optional. If you pass a policy, the temporary security
1094 // credentials that are returned by the operation have the permissions that
1095 // are allowed by both (the intersection of) the access policy of the role that
1096 // is being assumed, and the policy that you pass. This gives you a way to further
1097 // restrict the permissions for the resulting temporary security credentials.
1098 // You cannot use the passed policy to grant permissions that are in excess
1099 // of those allowed by the access policy of the role that is being assumed.
1100 // For more information, see Permissions for AssumeRole, AssumeRoleWithSAML,
1101 // and AssumeRoleWithWebIdentity (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_assumerole.html)
1102 // in the IAM User Guide.
1103 //
1104 // The format for this parameter, as described by its regex pattern, is a string
1105 // of characters up to 2048 characters in length. The characters can be any
1106 // ASCII character from the space character to the end of the valid character
1107 // list (\u0020-\u00FF). It can also include the tab (\u0009), linefeed (\u000A),
1108 // and carriage return (\u000D) characters.
1109 //
1110 // The policy plain text must be 2048 bytes or shorter. However, an internal
1111 // conversion compresses it into a packed binary format with a separate limit.
1112 // The PackedPolicySize response element indicates by percentage how close to
1113 // the upper size limit the policy is, with 100% equaling the maximum allowed
1114 // size.
1115 Policy *string `min:"1" type:"string"`
1116
1117 // The Amazon Resource Name (ARN) of the role to assume.
1118 //
1119 // RoleArn is a required field
1120 RoleArn *string `min:"20" type:"string" required:"true"`
1121
1122 // An identifier for the assumed role session.
1123 //
1124 // Use the role session name to uniquely identify a session when the same role
1125 // is assumed by different principals or for different reasons. In cross-account
1126 // scenarios, the role session name is visible to, and can be logged by the
1127 // account that owns the role. The role session name is also used in the ARN
1128 // of the assumed role principal. This means that subsequent cross-account API
1129 // requests using the temporary security credentials will expose the role session
1130 // name to the external account in their CloudTrail logs.
1131 //
1132 // The regex used to validate this parameter is a string of characters consisting
1133 // of upper- and lower-case alphanumeric characters with no spaces. You can
1134 // also include underscores or any of the following characters: =,.@-
1135 //
1136 // RoleSessionName is a required field
1137 RoleSessionName *string `min:"2" type:"string" required:"true"`
1138
1139 // The identification number of the MFA device that is associated with the user
1140 // who is making the AssumeRole call. Specify this value if the trust policy
1141 // of the role being assumed includes a condition that requires MFA authentication.
1142 // The value is either the serial number for a hardware device (such as GAHT12345678)
1143 // or an Amazon Resource Name (ARN) for a virtual device (such as arn:aws:iam::123456789012:mfa/user).
1144 //
1145 // The regex used to validate this parameter is a string of characters consisting
1146 // of upper- and lower-case alphanumeric characters with no spaces. You can
1147 // also include underscores or any of the following characters: =,.@-
1148 SerialNumber *string `min:"9" type:"string"`
1149
1150 // The value provided by the MFA device, if the trust policy of the role being
1151 // assumed requires MFA (that is, if the policy includes a condition that tests
1152 // for MFA). If the role being assumed requires MFA and if the TokenCode value
1153 // is missing or expired, the AssumeRole call returns an "access denied" error.
1154 //
1155 // The format for this parameter, as described by its regex pattern, is a sequence
1156 // of six numeric digits.
1157 TokenCode *string `min:"6" type:"string"`
1158}
1159
1160// String returns the string representation
1161func (s AssumeRoleInput) String() string {
1162 return awsutil.Prettify(s)
1163}
1164
1165// GoString returns the string representation
1166func (s AssumeRoleInput) GoString() string {
1167 return s.String()
1168}
1169
1170// Validate inspects the fields of the type to determine if they are valid.
1171func (s *AssumeRoleInput) Validate() error {
1172 invalidParams := request.ErrInvalidParams{Context: "AssumeRoleInput"}
1173 if s.DurationSeconds != nil && *s.DurationSeconds < 900 {
1174 invalidParams.Add(request.NewErrParamMinValue("DurationSeconds", 900))
1175 }
1176 if s.ExternalId != nil && len(*s.ExternalId) < 2 {
1177 invalidParams.Add(request.NewErrParamMinLen("ExternalId", 2))
1178 }
1179 if s.Policy != nil && len(*s.Policy) < 1 {
1180 invalidParams.Add(request.NewErrParamMinLen("Policy", 1))
1181 }
1182 if s.RoleArn == nil {
1183 invalidParams.Add(request.NewErrParamRequired("RoleArn"))
1184 }
1185 if s.RoleArn != nil && len(*s.RoleArn) < 20 {
1186 invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
1187 }
1188 if s.RoleSessionName == nil {
1189 invalidParams.Add(request.NewErrParamRequired("RoleSessionName"))
1190 }
1191 if s.RoleSessionName != nil && len(*s.RoleSessionName) < 2 {
1192 invalidParams.Add(request.NewErrParamMinLen("RoleSessionName", 2))
1193 }
1194 if s.SerialNumber != nil && len(*s.SerialNumber) < 9 {
1195 invalidParams.Add(request.NewErrParamMinLen("SerialNumber", 9))
1196 }
1197 if s.TokenCode != nil && len(*s.TokenCode) < 6 {
1198 invalidParams.Add(request.NewErrParamMinLen("TokenCode", 6))
1199 }
1200
1201 if invalidParams.Len() > 0 {
1202 return invalidParams
1203 }
1204 return nil
1205}
1206
1207// SetDurationSeconds sets the DurationSeconds field's value.
1208func (s *AssumeRoleInput) SetDurationSeconds(v int64) *AssumeRoleInput {
1209 s.DurationSeconds = &v
1210 return s
1211}
1212
1213// SetExternalId sets the ExternalId field's value.
1214func (s *AssumeRoleInput) SetExternalId(v string) *AssumeRoleInput {
1215 s.ExternalId = &v
1216 return s
1217}
1218
1219// SetPolicy sets the Policy field's value.
1220func (s *AssumeRoleInput) SetPolicy(v string) *AssumeRoleInput {
1221 s.Policy = &v
1222 return s
1223}
1224
1225// SetRoleArn sets the RoleArn field's value.
1226func (s *AssumeRoleInput) SetRoleArn(v string) *AssumeRoleInput {
1227 s.RoleArn = &v
1228 return s
1229}
1230
1231// SetRoleSessionName sets the RoleSessionName field's value.
1232func (s *AssumeRoleInput) SetRoleSessionName(v string) *AssumeRoleInput {
1233 s.RoleSessionName = &v
1234 return s
1235}
1236
1237// SetSerialNumber sets the SerialNumber field's value.
1238func (s *AssumeRoleInput) SetSerialNumber(v string) *AssumeRoleInput {
1239 s.SerialNumber = &v
1240 return s
1241}
1242
1243// SetTokenCode sets the TokenCode field's value.
1244func (s *AssumeRoleInput) SetTokenCode(v string) *AssumeRoleInput {
1245 s.TokenCode = &v
1246 return s
1247}
1248
1249// Contains the response to a successful AssumeRole request, including temporary
1250// AWS credentials that can be used to make AWS requests.
1251// Please also see https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleResponse
1252type AssumeRoleOutput struct {
1253 _ struct{} `type:"structure"`
1254
1255 // The Amazon Resource Name (ARN) and the assumed role ID, which are identifiers
1256 // that you can use to refer to the resulting temporary security credentials.
1257 // For example, you can reference these credentials as a principal in a resource-based
1258 // policy by using the ARN or assumed role ID. The ARN and ID include the RoleSessionName
1259 // that you specified when you called AssumeRole.
1260 AssumedRoleUser *AssumedRoleUser `type:"structure"`
1261
1262 // The temporary security credentials, which include an access key ID, a secret
1263 // access key, and a security (or session) token.
1264 //
1265 // Note: The size of the security token that STS APIs return is not fixed. We
1266 // strongly recommend that you make no assumptions about the maximum size. As
1267 // of this writing, the typical size is less than 4096 bytes, but that can vary.
1268 // Also, future updates to AWS might require larger sizes.
1269 Credentials *Credentials `type:"structure"`
1270
1271 // A percentage value that indicates the size of the policy in packed form.
1272 // The service rejects any policy with a packed size greater than 100 percent,
1273 // which means the policy exceeded the allowed space.
1274 PackedPolicySize *int64 `type:"integer"`
1275}
1276
1277// String returns the string representation
1278func (s AssumeRoleOutput) String() string {
1279 return awsutil.Prettify(s)
1280}
1281
1282// GoString returns the string representation
1283func (s AssumeRoleOutput) GoString() string {
1284 return s.String()
1285}
1286
1287// SetAssumedRoleUser sets the AssumedRoleUser field's value.
1288func (s *AssumeRoleOutput) SetAssumedRoleUser(v *AssumedRoleUser) *AssumeRoleOutput {
1289 s.AssumedRoleUser = v
1290 return s
1291}
1292
1293// SetCredentials sets the Credentials field's value.
1294func (s *AssumeRoleOutput) SetCredentials(v *Credentials) *AssumeRoleOutput {
1295 s.Credentials = v
1296 return s
1297}
1298
1299// SetPackedPolicySize sets the PackedPolicySize field's value.
1300func (s *AssumeRoleOutput) SetPackedPolicySize(v int64) *AssumeRoleOutput {
1301 s.PackedPolicySize = &v
1302 return s
1303}
1304
1305// Please also see https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleWithSAMLRequest
1306type AssumeRoleWithSAMLInput struct {
1307 _ struct{} `type:"structure"`
1308
1309 // The duration, in seconds, of the role session. The value can range from 900
1310 // seconds (15 minutes) to 3600 seconds (1 hour). By default, the value is set
1311 // to 3600 seconds. An expiration can also be specified in the SAML authentication
1312 // response's SessionNotOnOrAfter value. The actual expiration time is whichever
1313 // value is shorter.
1314 //
1315 // This is separate from the duration of a console session that you might request
1316 // using the returned credentials. The request to the federation endpoint for
1317 // a console sign-in token takes a SessionDuration parameter that specifies
1318 // the maximum length of the console session, separately from the DurationSeconds
1319 // parameter on this API. For more information, see Enabling SAML 2.0 Federated
1320 // Users to Access the AWS Management Console (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_enable-console-saml.html)
1321 // in the IAM User Guide.
1322 DurationSeconds *int64 `min:"900" type:"integer"`
1323
1324 // An IAM policy in JSON format.
1325 //
1326 // The policy parameter is optional. If you pass a policy, the temporary security
1327 // credentials that are returned by the operation have the permissions that
1328 // are allowed by both the access policy of the role that is being assumed,
1329 // and the policy that you pass. This gives you a way to further restrict the
1330 // permissions for the resulting temporary security credentials. You cannot
1331 // use the passed policy to grant permissions that are in excess of those allowed
1332 // by the access policy of the role that is being assumed. For more information,
1333 // Permissions for AssumeRole, AssumeRoleWithSAML, and AssumeRoleWithWebIdentity
1334 // (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_assumerole.html)
1335 // in the IAM User Guide.
1336 //
1337 // The format for this parameter, as described by its regex pattern, is a string
1338 // of characters up to 2048 characters in length. The characters can be any
1339 // ASCII character from the space character to the end of the valid character
1340 // list (\u0020-\u00FF). It can also include the tab (\u0009), linefeed (\u000A),
1341 // and carriage return (\u000D) characters.
1342 //
1343 // The policy plain text must be 2048 bytes or shorter. However, an internal
1344 // conversion compresses it into a packed binary format with a separate limit.
1345 // The PackedPolicySize response element indicates by percentage how close to
1346 // the upper size limit the policy is, with 100% equaling the maximum allowed
1347 // size.
1348 Policy *string `min:"1" type:"string"`
1349
1350 // The Amazon Resource Name (ARN) of the SAML provider in IAM that describes
1351 // the IdP.
1352 //
1353 // PrincipalArn is a required field
1354 PrincipalArn *string `min:"20" type:"string" required:"true"`
1355
1356 // The Amazon Resource Name (ARN) of the role that the caller is assuming.
1357 //
1358 // RoleArn is a required field
1359 RoleArn *string `min:"20" type:"string" required:"true"`
1360
1361 // The base-64 encoded SAML authentication response provided by the IdP.
1362 //
1363 // For more information, see Configuring a Relying Party and Adding Claims (http://docs.aws.amazon.com/IAM/latest/UserGuide/create-role-saml-IdP-tasks.html)
1364 // in the Using IAM guide.
1365 //
1366 // SAMLAssertion is a required field
1367 SAMLAssertion *string `min:"4" type:"string" required:"true"`
1368}
1369
1370// String returns the string representation
1371func (s AssumeRoleWithSAMLInput) String() string {
1372 return awsutil.Prettify(s)
1373}
1374
1375// GoString returns the string representation
1376func (s AssumeRoleWithSAMLInput) GoString() string {
1377 return s.String()
1378}
1379
1380// Validate inspects the fields of the type to determine if they are valid.
1381func (s *AssumeRoleWithSAMLInput) Validate() error {
1382 invalidParams := request.ErrInvalidParams{Context: "AssumeRoleWithSAMLInput"}
1383 if s.DurationSeconds != nil && *s.DurationSeconds < 900 {
1384 invalidParams.Add(request.NewErrParamMinValue("DurationSeconds", 900))
1385 }
1386 if s.Policy != nil && len(*s.Policy) < 1 {
1387 invalidParams.Add(request.NewErrParamMinLen("Policy", 1))
1388 }
1389 if s.PrincipalArn == nil {
1390 invalidParams.Add(request.NewErrParamRequired("PrincipalArn"))
1391 }
1392 if s.PrincipalArn != nil && len(*s.PrincipalArn) < 20 {
1393 invalidParams.Add(request.NewErrParamMinLen("PrincipalArn", 20))
1394 }
1395 if s.RoleArn == nil {
1396 invalidParams.Add(request.NewErrParamRequired("RoleArn"))
1397 }
1398 if s.RoleArn != nil && len(*s.RoleArn) < 20 {
1399 invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
1400 }
1401 if s.SAMLAssertion == nil {
1402 invalidParams.Add(request.NewErrParamRequired("SAMLAssertion"))
1403 }
1404 if s.SAMLAssertion != nil && len(*s.SAMLAssertion) < 4 {
1405 invalidParams.Add(request.NewErrParamMinLen("SAMLAssertion", 4))
1406 }
1407
1408 if invalidParams.Len() > 0 {
1409 return invalidParams
1410 }
1411 return nil
1412}
1413
1414// SetDurationSeconds sets the DurationSeconds field's value.
1415func (s *AssumeRoleWithSAMLInput) SetDurationSeconds(v int64) *AssumeRoleWithSAMLInput {
1416 s.DurationSeconds = &v
1417 return s
1418}
1419
1420// SetPolicy sets the Policy field's value.
1421func (s *AssumeRoleWithSAMLInput) SetPolicy(v string) *AssumeRoleWithSAMLInput {
1422 s.Policy = &v
1423 return s
1424}
1425
1426// SetPrincipalArn sets the PrincipalArn field's value.
1427func (s *AssumeRoleWithSAMLInput) SetPrincipalArn(v string) *AssumeRoleWithSAMLInput {
1428 s.PrincipalArn = &v
1429 return s
1430}
1431
1432// SetRoleArn sets the RoleArn field's value.
1433func (s *AssumeRoleWithSAMLInput) SetRoleArn(v string) *AssumeRoleWithSAMLInput {
1434 s.RoleArn = &v
1435 return s
1436}
1437
1438// SetSAMLAssertion sets the SAMLAssertion field's value.
1439func (s *AssumeRoleWithSAMLInput) SetSAMLAssertion(v string) *AssumeRoleWithSAMLInput {
1440 s.SAMLAssertion = &v
1441 return s
1442}
1443
1444// Contains the response to a successful AssumeRoleWithSAML request, including
1445// temporary AWS credentials that can be used to make AWS requests.
1446// Please also see https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleWithSAMLResponse
1447type AssumeRoleWithSAMLOutput struct {
1448 _ struct{} `type:"structure"`
1449
1450 // The identifiers for the temporary security credentials that the operation
1451 // returns.
1452 AssumedRoleUser *AssumedRoleUser `type:"structure"`
1453
1454 // The value of the Recipient attribute of the SubjectConfirmationData element
1455 // of the SAML assertion.
1456 Audience *string `type:"string"`
1457
1458 // The temporary security credentials, which include an access key ID, a secret
1459 // access key, and a security (or session) token.
1460 //
1461 // Note: The size of the security token that STS APIs return is not fixed. We
1462 // strongly recommend that you make no assumptions about the maximum size. As
1463 // of this writing, the typical size is less than 4096 bytes, but that can vary.
1464 // Also, future updates to AWS might require larger sizes.
1465 Credentials *Credentials `type:"structure"`
1466
1467 // The value of the Issuer element of the SAML assertion.
1468 Issuer *string `type:"string"`
1469
1470 // A hash value based on the concatenation of the Issuer response value, the
1471 // AWS account ID, and the friendly name (the last part of the ARN) of the SAML
1472 // provider in IAM. The combination of NameQualifier and Subject can be used
1473 // to uniquely identify a federated user.
1474 //
1475 // The following pseudocode shows how the hash value is calculated:
1476 //
1477 // BASE64 ( SHA1 ( "https://example.com/saml" + "123456789012" + "/MySAMLIdP"
1478 // ) )
1479 NameQualifier *string `type:"string"`
1480
1481 // A percentage value that indicates the size of the policy in packed form.
1482 // The service rejects any policy with a packed size greater than 100 percent,
1483 // which means the policy exceeded the allowed space.
1484 PackedPolicySize *int64 `type:"integer"`
1485
1486 // The value of the NameID element in the Subject element of the SAML assertion.
1487 Subject *string `type:"string"`
1488
1489 // The format of the name ID, as defined by the Format attribute in the NameID
1490 // element of the SAML assertion. Typical examples of the format are transient
1491 // or persistent.
1492 //
1493 // If the format includes the prefix urn:oasis:names:tc:SAML:2.0:nameid-format,
1494 // that prefix is removed. For example, urn:oasis:names:tc:SAML:2.0:nameid-format:transient
1495 // is returned as transient. If the format includes any other prefix, the format
1496 // is returned with no modifications.
1497 SubjectType *string `type:"string"`
1498}
1499
1500// String returns the string representation
1501func (s AssumeRoleWithSAMLOutput) String() string {
1502 return awsutil.Prettify(s)
1503}
1504
1505// GoString returns the string representation
1506func (s AssumeRoleWithSAMLOutput) GoString() string {
1507 return s.String()
1508}
1509
1510// SetAssumedRoleUser sets the AssumedRoleUser field's value.
1511func (s *AssumeRoleWithSAMLOutput) SetAssumedRoleUser(v *AssumedRoleUser) *AssumeRoleWithSAMLOutput {
1512 s.AssumedRoleUser = v
1513 return s
1514}
1515
1516// SetAudience sets the Audience field's value.
1517func (s *AssumeRoleWithSAMLOutput) SetAudience(v string) *AssumeRoleWithSAMLOutput {
1518 s.Audience = &v
1519 return s
1520}
1521
1522// SetCredentials sets the Credentials field's value.
1523func (s *AssumeRoleWithSAMLOutput) SetCredentials(v *Credentials) *AssumeRoleWithSAMLOutput {
1524 s.Credentials = v
1525 return s
1526}
1527
1528// SetIssuer sets the Issuer field's value.
1529func (s *AssumeRoleWithSAMLOutput) SetIssuer(v string) *AssumeRoleWithSAMLOutput {
1530 s.Issuer = &v
1531 return s
1532}
1533
1534// SetNameQualifier sets the NameQualifier field's value.
1535func (s *AssumeRoleWithSAMLOutput) SetNameQualifier(v string) *AssumeRoleWithSAMLOutput {
1536 s.NameQualifier = &v
1537 return s
1538}
1539
1540// SetPackedPolicySize sets the PackedPolicySize field's value.
1541func (s *AssumeRoleWithSAMLOutput) SetPackedPolicySize(v int64) *AssumeRoleWithSAMLOutput {
1542 s.PackedPolicySize = &v
1543 return s
1544}
1545
1546// SetSubject sets the Subject field's value.
1547func (s *AssumeRoleWithSAMLOutput) SetSubject(v string) *AssumeRoleWithSAMLOutput {
1548 s.Subject = &v
1549 return s
1550}
1551
1552// SetSubjectType sets the SubjectType field's value.
1553func (s *AssumeRoleWithSAMLOutput) SetSubjectType(v string) *AssumeRoleWithSAMLOutput {
1554 s.SubjectType = &v
1555 return s
1556}
1557
1558// Please also see https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleWithWebIdentityRequest
1559type AssumeRoleWithWebIdentityInput struct {
1560 _ struct{} `type:"structure"`
1561
1562 // The duration, in seconds, of the role session. The value can range from 900
1563 // seconds (15 minutes) to 3600 seconds (1 hour). By default, the value is set
1564 // to 3600 seconds.
1565 //
1566 // This is separate from the duration of a console session that you might request
1567 // using the returned credentials. The request to the federation endpoint for
1568 // a console sign-in token takes a SessionDuration parameter that specifies
1569 // the maximum length of the console session, separately from the DurationSeconds
1570 // parameter on this API. For more information, see Creating a URL that Enables
1571 // Federated Users to Access the AWS Management Console (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_enable-console-custom-url.html)
1572 // in the IAM User Guide.
1573 DurationSeconds *int64 `min:"900" type:"integer"`
1574
1575 // An IAM policy in JSON format.
1576 //
1577 // The policy parameter is optional. If you pass a policy, the temporary security
1578 // credentials that are returned by the operation have the permissions that
1579 // are allowed by both the access policy of the role that is being assumed,
1580 // and the policy that you pass. This gives you a way to further restrict the
1581 // permissions for the resulting temporary security credentials. You cannot
1582 // use the passed policy to grant permissions that are in excess of those allowed
1583 // by the access policy of the role that is being assumed. For more information,
1584 // see Permissions for AssumeRoleWithWebIdentity (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_assumerole.html)
1585 // in the IAM User Guide.
1586 //
1587 // The format for this parameter, as described by its regex pattern, is a string
1588 // of characters up to 2048 characters in length. The characters can be any
1589 // ASCII character from the space character to the end of the valid character
1590 // list (\u0020-\u00FF). It can also include the tab (\u0009), linefeed (\u000A),
1591 // and carriage return (\u000D) characters.
1592 //
1593 // The policy plain text must be 2048 bytes or shorter. However, an internal
1594 // conversion compresses it into a packed binary format with a separate limit.
1595 // The PackedPolicySize response element indicates by percentage how close to
1596 // the upper size limit the policy is, with 100% equaling the maximum allowed
1597 // size.
1598 Policy *string `min:"1" type:"string"`
1599
1600 // The fully qualified host component of the domain name of the identity provider.
1601 //
1602 // Specify this value only for OAuth 2.0 access tokens. Currently www.amazon.com
1603 // and graph.facebook.com are the only supported identity providers for OAuth
1604 // 2.0 access tokens. Do not include URL schemes and port numbers.
1605 //
1606 // Do not specify this value for OpenID Connect ID tokens.
1607 ProviderId *string `min:"4" type:"string"`
1608
1609 // The Amazon Resource Name (ARN) of the role that the caller is assuming.
1610 //
1611 // RoleArn is a required field
1612 RoleArn *string `min:"20" type:"string" required:"true"`
1613
1614 // An identifier for the assumed role session. Typically, you pass the name
1615 // or identifier that is associated with the user who is using your application.
1616 // That way, the temporary security credentials that your application will use
1617 // are associated with that user. This session name is included as part of the
1618 // ARN and assumed role ID in the AssumedRoleUser response element.
1619 //
1620 // The regex used to validate this parameter is a string of characters consisting
1621 // of upper- and lower-case alphanumeric characters with no spaces. You can
1622 // also include underscores or any of the following characters: =,.@-
1623 //
1624 // RoleSessionName is a required field
1625 RoleSessionName *string `min:"2" type:"string" required:"true"`
1626
1627 // The OAuth 2.0 access token or OpenID Connect ID token that is provided by
1628 // the identity provider. Your application must get this token by authenticating
1629 // the user who is using your application with a web identity provider before
1630 // the application makes an AssumeRoleWithWebIdentity call.
1631 //
1632 // WebIdentityToken is a required field
1633 WebIdentityToken *string `min:"4" type:"string" required:"true"`
1634}
1635
1636// String returns the string representation
1637func (s AssumeRoleWithWebIdentityInput) String() string {
1638 return awsutil.Prettify(s)
1639}
1640
1641// GoString returns the string representation
1642func (s AssumeRoleWithWebIdentityInput) GoString() string {
1643 return s.String()
1644}
1645
1646// Validate inspects the fields of the type to determine if they are valid.
1647func (s *AssumeRoleWithWebIdentityInput) Validate() error {
1648 invalidParams := request.ErrInvalidParams{Context: "AssumeRoleWithWebIdentityInput"}
1649 if s.DurationSeconds != nil && *s.DurationSeconds < 900 {
1650 invalidParams.Add(request.NewErrParamMinValue("DurationSeconds", 900))
1651 }
1652 if s.Policy != nil && len(*s.Policy) < 1 {
1653 invalidParams.Add(request.NewErrParamMinLen("Policy", 1))
1654 }
1655 if s.ProviderId != nil && len(*s.ProviderId) < 4 {
1656 invalidParams.Add(request.NewErrParamMinLen("ProviderId", 4))
1657 }
1658 if s.RoleArn == nil {
1659 invalidParams.Add(request.NewErrParamRequired("RoleArn"))
1660 }
1661 if s.RoleArn != nil && len(*s.RoleArn) < 20 {
1662 invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
1663 }
1664 if s.RoleSessionName == nil {
1665 invalidParams.Add(request.NewErrParamRequired("RoleSessionName"))
1666 }
1667 if s.RoleSessionName != nil && len(*s.RoleSessionName) < 2 {
1668 invalidParams.Add(request.NewErrParamMinLen("RoleSessionName", 2))
1669 }
1670 if s.WebIdentityToken == nil {
1671 invalidParams.Add(request.NewErrParamRequired("WebIdentityToken"))
1672 }
1673 if s.WebIdentityToken != nil && len(*s.WebIdentityToken) < 4 {
1674 invalidParams.Add(request.NewErrParamMinLen("WebIdentityToken", 4))
1675 }
1676
1677 if invalidParams.Len() > 0 {
1678 return invalidParams
1679 }
1680 return nil
1681}
1682
1683// SetDurationSeconds sets the DurationSeconds field's value.
1684func (s *AssumeRoleWithWebIdentityInput) SetDurationSeconds(v int64) *AssumeRoleWithWebIdentityInput {
1685 s.DurationSeconds = &v
1686 return s
1687}
1688
1689// SetPolicy sets the Policy field's value.
1690func (s *AssumeRoleWithWebIdentityInput) SetPolicy(v string) *AssumeRoleWithWebIdentityInput {
1691 s.Policy = &v
1692 return s
1693}
1694
1695// SetProviderId sets the ProviderId field's value.
1696func (s *AssumeRoleWithWebIdentityInput) SetProviderId(v string) *AssumeRoleWithWebIdentityInput {
1697 s.ProviderId = &v
1698 return s
1699}
1700
1701// SetRoleArn sets the RoleArn field's value.
1702func (s *AssumeRoleWithWebIdentityInput) SetRoleArn(v string) *AssumeRoleWithWebIdentityInput {
1703 s.RoleArn = &v
1704 return s
1705}
1706
1707// SetRoleSessionName sets the RoleSessionName field's value.
1708func (s *AssumeRoleWithWebIdentityInput) SetRoleSessionName(v string) *AssumeRoleWithWebIdentityInput {
1709 s.RoleSessionName = &v
1710 return s
1711}
1712
1713// SetWebIdentityToken sets the WebIdentityToken field's value.
1714func (s *AssumeRoleWithWebIdentityInput) SetWebIdentityToken(v string) *AssumeRoleWithWebIdentityInput {
1715 s.WebIdentityToken = &v
1716 return s
1717}
1718
1719// Contains the response to a successful AssumeRoleWithWebIdentity request,
1720// including temporary AWS credentials that can be used to make AWS requests.
1721// Please also see https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleWithWebIdentityResponse
1722type AssumeRoleWithWebIdentityOutput struct {
1723 _ struct{} `type:"structure"`
1724
1725 // The Amazon Resource Name (ARN) and the assumed role ID, which are identifiers
1726 // that you can use to refer to the resulting temporary security credentials.
1727 // For example, you can reference these credentials as a principal in a resource-based
1728 // policy by using the ARN or assumed role ID. The ARN and ID include the RoleSessionName
1729 // that you specified when you called AssumeRole.
1730 AssumedRoleUser *AssumedRoleUser `type:"structure"`
1731
1732 // The intended audience (also known as client ID) of the web identity token.
1733 // This is traditionally the client identifier issued to the application that
1734 // requested the web identity token.
1735 Audience *string `type:"string"`
1736
1737 // The temporary security credentials, which include an access key ID, a secret
1738 // access key, and a security token.
1739 //
1740 // Note: The size of the security token that STS APIs return is not fixed. We
1741 // strongly recommend that you make no assumptions about the maximum size. As
1742 // of this writing, the typical size is less than 4096 bytes, but that can vary.
1743 // Also, future updates to AWS might require larger sizes.
1744 Credentials *Credentials `type:"structure"`
1745
1746 // A percentage value that indicates the size of the policy in packed form.
1747 // The service rejects any policy with a packed size greater than 100 percent,
1748 // which means the policy exceeded the allowed space.
1749 PackedPolicySize *int64 `type:"integer"`
1750
1751 // The issuing authority of the web identity token presented. For OpenID Connect
1752 // ID Tokens this contains the value of the iss field. For OAuth 2.0 access
1753 // tokens, this contains the value of the ProviderId parameter that was passed
1754 // in the AssumeRoleWithWebIdentity request.
1755 Provider *string `type:"string"`
1756
1757 // The unique user identifier that is returned by the identity provider. This
1758 // identifier is associated with the WebIdentityToken that was submitted with
1759 // the AssumeRoleWithWebIdentity call. The identifier is typically unique to
1760 // the user and the application that acquired the WebIdentityToken (pairwise
1761 // identifier). For OpenID Connect ID tokens, this field contains the value
1762 // returned by the identity provider as the token's sub (Subject) claim.
1763 SubjectFromWebIdentityToken *string `min:"6" type:"string"`
1764}
1765
1766// String returns the string representation
1767func (s AssumeRoleWithWebIdentityOutput) String() string {
1768 return awsutil.Prettify(s)
1769}
1770
1771// GoString returns the string representation
1772func (s AssumeRoleWithWebIdentityOutput) GoString() string {
1773 return s.String()
1774}
1775
1776// SetAssumedRoleUser sets the AssumedRoleUser field's value.
1777func (s *AssumeRoleWithWebIdentityOutput) SetAssumedRoleUser(v *AssumedRoleUser) *AssumeRoleWithWebIdentityOutput {
1778 s.AssumedRoleUser = v
1779 return s
1780}
1781
1782// SetAudience sets the Audience field's value.
1783func (s *AssumeRoleWithWebIdentityOutput) SetAudience(v string) *AssumeRoleWithWebIdentityOutput {
1784 s.Audience = &v
1785 return s
1786}
1787
1788// SetCredentials sets the Credentials field's value.
1789func (s *AssumeRoleWithWebIdentityOutput) SetCredentials(v *Credentials) *AssumeRoleWithWebIdentityOutput {
1790 s.Credentials = v
1791 return s
1792}
1793
1794// SetPackedPolicySize sets the PackedPolicySize field's value.
1795func (s *AssumeRoleWithWebIdentityOutput) SetPackedPolicySize(v int64) *AssumeRoleWithWebIdentityOutput {
1796 s.PackedPolicySize = &v
1797 return s
1798}
1799
1800// SetProvider sets the Provider field's value.
1801func (s *AssumeRoleWithWebIdentityOutput) SetProvider(v string) *AssumeRoleWithWebIdentityOutput {
1802 s.Provider = &v
1803 return s
1804}
1805
1806// SetSubjectFromWebIdentityToken sets the SubjectFromWebIdentityToken field's value.
1807func (s *AssumeRoleWithWebIdentityOutput) SetSubjectFromWebIdentityToken(v string) *AssumeRoleWithWebIdentityOutput {
1808 s.SubjectFromWebIdentityToken = &v
1809 return s
1810}
1811
1812// The identifiers for the temporary security credentials that the operation
1813// returns.
1814// Please also see https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumedRoleUser
1815type AssumedRoleUser struct {
1816 _ struct{} `type:"structure"`
1817
1818 // The ARN of the temporary security credentials that are returned from the
1819 // AssumeRole action. For more information about ARNs and how to use them in
1820 // policies, see IAM Identifiers (http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html)
1821 // in Using IAM.
1822 //
1823 // Arn is a required field
1824 Arn *string `min:"20" type:"string" required:"true"`
1825
1826 // A unique identifier that contains the role ID and the role session name of
1827 // the role that is being assumed. The role ID is generated by AWS when the
1828 // role is created.
1829 //
1830 // AssumedRoleId is a required field
1831 AssumedRoleId *string `min:"2" type:"string" required:"true"`
1832}
1833
1834// String returns the string representation
1835func (s AssumedRoleUser) String() string {
1836 return awsutil.Prettify(s)
1837}
1838
1839// GoString returns the string representation
1840func (s AssumedRoleUser) GoString() string {
1841 return s.String()
1842}
1843
1844// SetArn sets the Arn field's value.
1845func (s *AssumedRoleUser) SetArn(v string) *AssumedRoleUser {
1846 s.Arn = &v
1847 return s
1848}
1849
1850// SetAssumedRoleId sets the AssumedRoleId field's value.
1851func (s *AssumedRoleUser) SetAssumedRoleId(v string) *AssumedRoleUser {
1852 s.AssumedRoleId = &v
1853 return s
1854}
1855
1856// AWS credentials for API authentication.
1857// Please also see https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/Credentials
1858type Credentials struct {
1859 _ struct{} `type:"structure"`
1860
1861 // The access key ID that identifies the temporary security credentials.
1862 //
1863 // AccessKeyId is a required field
1864 AccessKeyId *string `min:"16" type:"string" required:"true"`
1865
1866 // The date on which the current credentials expire.
1867 //
1868 // Expiration is a required field
1869 Expiration *time.Time `type:"timestamp" timestampFormat:"iso8601" required:"true"`
1870
1871 // The secret access key that can be used to sign requests.
1872 //
1873 // SecretAccessKey is a required field
1874 SecretAccessKey *string `type:"string" required:"true"`
1875
1876 // The token that users must pass to the service API to use the temporary credentials.
1877 //
1878 // SessionToken is a required field
1879 SessionToken *string `type:"string" required:"true"`
1880}
1881
1882// String returns the string representation
1883func (s Credentials) String() string {
1884 return awsutil.Prettify(s)
1885}
1886
1887// GoString returns the string representation
1888func (s Credentials) GoString() string {
1889 return s.String()
1890}
1891
1892// SetAccessKeyId sets the AccessKeyId field's value.
1893func (s *Credentials) SetAccessKeyId(v string) *Credentials {
1894 s.AccessKeyId = &v
1895 return s
1896}
1897
1898// SetExpiration sets the Expiration field's value.
1899func (s *Credentials) SetExpiration(v time.Time) *Credentials {
1900 s.Expiration = &v
1901 return s
1902}
1903
1904// SetSecretAccessKey sets the SecretAccessKey field's value.
1905func (s *Credentials) SetSecretAccessKey(v string) *Credentials {
1906 s.SecretAccessKey = &v
1907 return s
1908}
1909
1910// SetSessionToken sets the SessionToken field's value.
1911func (s *Credentials) SetSessionToken(v string) *Credentials {
1912 s.SessionToken = &v
1913 return s
1914}
1915
1916// Please also see https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/DecodeAuthorizationMessageRequest
1917type DecodeAuthorizationMessageInput struct {
1918 _ struct{} `type:"structure"`
1919
1920 // The encoded message that was returned with the response.
1921 //
1922 // EncodedMessage is a required field
1923 EncodedMessage *string `min:"1" type:"string" required:"true"`
1924}
1925
1926// String returns the string representation
1927func (s DecodeAuthorizationMessageInput) String() string {
1928 return awsutil.Prettify(s)
1929}
1930
1931// GoString returns the string representation
1932func (s DecodeAuthorizationMessageInput) GoString() string {
1933 return s.String()
1934}
1935
1936// Validate inspects the fields of the type to determine if they are valid.
1937func (s *DecodeAuthorizationMessageInput) Validate() error {
1938 invalidParams := request.ErrInvalidParams{Context: "DecodeAuthorizationMessageInput"}
1939 if s.EncodedMessage == nil {
1940 invalidParams.Add(request.NewErrParamRequired("EncodedMessage"))
1941 }
1942 if s.EncodedMessage != nil && len(*s.EncodedMessage) < 1 {
1943 invalidParams.Add(request.NewErrParamMinLen("EncodedMessage", 1))
1944 }
1945
1946 if invalidParams.Len() > 0 {
1947 return invalidParams
1948 }
1949 return nil
1950}
1951
1952// SetEncodedMessage sets the EncodedMessage field's value.
1953func (s *DecodeAuthorizationMessageInput) SetEncodedMessage(v string) *DecodeAuthorizationMessageInput {
1954 s.EncodedMessage = &v
1955 return s
1956}
1957
1958// A document that contains additional information about the authorization status
1959// of a request from an encoded message that is returned in response to an AWS
1960// request.
1961// Please also see https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/DecodeAuthorizationMessageResponse
1962type DecodeAuthorizationMessageOutput struct {
1963 _ struct{} `type:"structure"`
1964
1965 // An XML document that contains the decoded message.
1966 DecodedMessage *string `type:"string"`
1967}
1968
1969// String returns the string representation
1970func (s DecodeAuthorizationMessageOutput) String() string {
1971 return awsutil.Prettify(s)
1972}
1973
1974// GoString returns the string representation
1975func (s DecodeAuthorizationMessageOutput) GoString() string {
1976 return s.String()
1977}
1978
1979// SetDecodedMessage sets the DecodedMessage field's value.
1980func (s *DecodeAuthorizationMessageOutput) SetDecodedMessage(v string) *DecodeAuthorizationMessageOutput {
1981 s.DecodedMessage = &v
1982 return s
1983}
1984
1985// Identifiers for the federated user that is associated with the credentials.
1986// Please also see https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/FederatedUser
1987type FederatedUser struct {
1988 _ struct{} `type:"structure"`
1989
1990 // The ARN that specifies the federated user that is associated with the credentials.
1991 // For more information about ARNs and how to use them in policies, see IAM
1992 // Identifiers (http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html)
1993 // in Using IAM.
1994 //
1995 // Arn is a required field
1996 Arn *string `min:"20" type:"string" required:"true"`
1997
1998 // The string that identifies the federated user associated with the credentials,
1999 // similar to the unique ID of an IAM user.
2000 //
2001 // FederatedUserId is a required field
2002 FederatedUserId *string `min:"2" type:"string" required:"true"`
2003}
2004
2005// String returns the string representation
2006func (s FederatedUser) String() string {
2007 return awsutil.Prettify(s)
2008}
2009
2010// GoString returns the string representation
2011func (s FederatedUser) GoString() string {
2012 return s.String()
2013}
2014
2015// SetArn sets the Arn field's value.
2016func (s *FederatedUser) SetArn(v string) *FederatedUser {
2017 s.Arn = &v
2018 return s
2019}
2020
2021// SetFederatedUserId sets the FederatedUserId field's value.
2022func (s *FederatedUser) SetFederatedUserId(v string) *FederatedUser {
2023 s.FederatedUserId = &v
2024 return s
2025}
2026
2027// Please also see https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetCallerIdentityRequest
2028type GetCallerIdentityInput struct {
2029 _ struct{} `type:"structure"`
2030}
2031
2032// String returns the string representation
2033func (s GetCallerIdentityInput) String() string {
2034 return awsutil.Prettify(s)
2035}
2036
2037// GoString returns the string representation
2038func (s GetCallerIdentityInput) GoString() string {
2039 return s.String()
2040}
2041
2042// Contains the response to a successful GetCallerIdentity request, including
2043// information about the entity making the request.
2044// Please also see https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetCallerIdentityResponse
2045type GetCallerIdentityOutput struct {
2046 _ struct{} `type:"structure"`
2047
2048 // The AWS account ID number of the account that owns or contains the calling
2049 // entity.
2050 Account *string `type:"string"`
2051
2052 // The AWS ARN associated with the calling entity.
2053 Arn *string `min:"20" type:"string"`
2054
2055 // The unique identifier of the calling entity. The exact value depends on the
2056 // type of entity making the call. The values returned are those listed in the
2057 // aws:userid column in the Principal table (http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_variables.html#principaltable)
2058 // found on the Policy Variables reference page in the IAM User Guide.
2059 UserId *string `type:"string"`
2060}
2061
2062// String returns the string representation
2063func (s GetCallerIdentityOutput) String() string {
2064 return awsutil.Prettify(s)
2065}
2066
2067// GoString returns the string representation
2068func (s GetCallerIdentityOutput) GoString() string {
2069 return s.String()
2070}
2071
2072// SetAccount sets the Account field's value.
2073func (s *GetCallerIdentityOutput) SetAccount(v string) *GetCallerIdentityOutput {
2074 s.Account = &v
2075 return s
2076}
2077
2078// SetArn sets the Arn field's value.
2079func (s *GetCallerIdentityOutput) SetArn(v string) *GetCallerIdentityOutput {
2080 s.Arn = &v
2081 return s
2082}
2083
2084// SetUserId sets the UserId field's value.
2085func (s *GetCallerIdentityOutput) SetUserId(v string) *GetCallerIdentityOutput {
2086 s.UserId = &v
2087 return s
2088}
2089
2090// Please also see https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetFederationTokenRequest
2091type GetFederationTokenInput struct {
2092 _ struct{} `type:"structure"`
2093
2094 // The duration, in seconds, that the session should last. Acceptable durations
2095 // for federation sessions range from 900 seconds (15 minutes) to 129600 seconds
2096 // (36 hours), with 43200 seconds (12 hours) as the default. Sessions obtained
2097 // using AWS account (root) credentials are restricted to a maximum of 3600
2098 // seconds (one hour). If the specified duration is longer than one hour, the
2099 // session obtained by using AWS account (root) credentials defaults to one
2100 // hour.
2101 DurationSeconds *int64 `min:"900" type:"integer"`
2102
2103 // The name of the federated user. The name is used as an identifier for the
2104 // temporary security credentials (such as Bob). For example, you can reference
2105 // the federated user name in a resource-based policy, such as in an Amazon
2106 // S3 bucket policy.
2107 //
2108 // The regex used to validate this parameter is a string of characters consisting
2109 // of upper- and lower-case alphanumeric characters with no spaces. You can
2110 // also include underscores or any of the following characters: =,.@-
2111 //
2112 // Name is a required field
2113 Name *string `min:"2" type:"string" required:"true"`
2114
2115 // An IAM policy in JSON format that is passed with the GetFederationToken call
2116 // and evaluated along with the policy or policies that are attached to the
2117 // IAM user whose credentials are used to call GetFederationToken. The passed
2118 // policy is used to scope down the permissions that are available to the IAM
2119 // user, by allowing only a subset of the permissions that are granted to the
2120 // IAM user. The passed policy cannot grant more permissions than those granted
2121 // to the IAM user. The final permissions for the federated user are the most
2122 // restrictive set based on the intersection of the passed policy and the IAM
2123 // user policy.
2124 //
2125 // If you do not pass a policy, the resulting temporary security credentials
2126 // have no effective permissions. The only exception is when the temporary security
2127 // credentials are used to access a resource that has a resource-based policy
2128 // that specifically allows the federated user to access the resource.
2129 //
2130 // The format for this parameter, as described by its regex pattern, is a string
2131 // of characters up to 2048 characters in length. The characters can be any
2132 // ASCII character from the space character to the end of the valid character
2133 // list (\u0020-\u00FF). It can also include the tab (\u0009), linefeed (\u000A),
2134 // and carriage return (\u000D) characters.
2135 //
2136 // The policy plain text must be 2048 bytes or shorter. However, an internal
2137 // conversion compresses it into a packed binary format with a separate limit.
2138 // The PackedPolicySize response element indicates by percentage how close to
2139 // the upper size limit the policy is, with 100% equaling the maximum allowed
2140 // size.
2141 //
2142 // For more information about how permissions work, see Permissions for GetFederationToken
2143 // (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_getfederationtoken.html).
2144 Policy *string `min:"1" type:"string"`
2145}
2146
2147// String returns the string representation
2148func (s GetFederationTokenInput) String() string {
2149 return awsutil.Prettify(s)
2150}
2151
2152// GoString returns the string representation
2153func (s GetFederationTokenInput) GoString() string {
2154 return s.String()
2155}
2156
2157// Validate inspects the fields of the type to determine if they are valid.
2158func (s *GetFederationTokenInput) Validate() error {
2159 invalidParams := request.ErrInvalidParams{Context: "GetFederationTokenInput"}
2160 if s.DurationSeconds != nil && *s.DurationSeconds < 900 {
2161 invalidParams.Add(request.NewErrParamMinValue("DurationSeconds", 900))
2162 }
2163 if s.Name == nil {
2164 invalidParams.Add(request.NewErrParamRequired("Name"))
2165 }
2166 if s.Name != nil && len(*s.Name) < 2 {
2167 invalidParams.Add(request.NewErrParamMinLen("Name", 2))
2168 }
2169 if s.Policy != nil && len(*s.Policy) < 1 {
2170 invalidParams.Add(request.NewErrParamMinLen("Policy", 1))
2171 }
2172
2173 if invalidParams.Len() > 0 {
2174 return invalidParams
2175 }
2176 return nil
2177}
2178
2179// SetDurationSeconds sets the DurationSeconds field's value.
2180func (s *GetFederationTokenInput) SetDurationSeconds(v int64) *GetFederationTokenInput {
2181 s.DurationSeconds = &v
2182 return s
2183}
2184
2185// SetName sets the Name field's value.
2186func (s *GetFederationTokenInput) SetName(v string) *GetFederationTokenInput {
2187 s.Name = &v
2188 return s
2189}
2190
2191// SetPolicy sets the Policy field's value.
2192func (s *GetFederationTokenInput) SetPolicy(v string) *GetFederationTokenInput {
2193 s.Policy = &v
2194 return s
2195}
2196
2197// Contains the response to a successful GetFederationToken request, including
2198// temporary AWS credentials that can be used to make AWS requests.
2199// Please also see https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetFederationTokenResponse
2200type GetFederationTokenOutput struct {
2201 _ struct{} `type:"structure"`
2202
2203 // The temporary security credentials, which include an access key ID, a secret
2204 // access key, and a security (or session) token.
2205 //
2206 // Note: The size of the security token that STS APIs return is not fixed. We
2207 // strongly recommend that you make no assumptions about the maximum size. As
2208 // of this writing, the typical size is less than 4096 bytes, but that can vary.
2209 // Also, future updates to AWS might require larger sizes.
2210 Credentials *Credentials `type:"structure"`
2211
2212 // Identifiers for the federated user associated with the credentials (such
2213 // as arn:aws:sts::123456789012:federated-user/Bob or 123456789012:Bob). You
2214 // can use the federated user's ARN in your resource-based policies, such as
2215 // an Amazon S3 bucket policy.
2216 FederatedUser *FederatedUser `type:"structure"`
2217
2218 // A percentage value indicating the size of the policy in packed form. The
2219 // service rejects policies for which the packed size is greater than 100 percent
2220 // of the allowed value.
2221 PackedPolicySize *int64 `type:"integer"`
2222}
2223
2224// String returns the string representation
2225func (s GetFederationTokenOutput) String() string {
2226 return awsutil.Prettify(s)
2227}
2228
2229// GoString returns the string representation
2230func (s GetFederationTokenOutput) GoString() string {
2231 return s.String()
2232}
2233
2234// SetCredentials sets the Credentials field's value.
2235func (s *GetFederationTokenOutput) SetCredentials(v *Credentials) *GetFederationTokenOutput {
2236 s.Credentials = v
2237 return s
2238}
2239
2240// SetFederatedUser sets the FederatedUser field's value.
2241func (s *GetFederationTokenOutput) SetFederatedUser(v *FederatedUser) *GetFederationTokenOutput {
2242 s.FederatedUser = v
2243 return s
2244}
2245
2246// SetPackedPolicySize sets the PackedPolicySize field's value.
2247func (s *GetFederationTokenOutput) SetPackedPolicySize(v int64) *GetFederationTokenOutput {
2248 s.PackedPolicySize = &v
2249 return s
2250}
2251
2252// Please also see https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetSessionTokenRequest
2253type GetSessionTokenInput struct {
2254 _ struct{} `type:"structure"`
2255
2256 // The duration, in seconds, that the credentials should remain valid. Acceptable
2257 // durations for IAM user sessions range from 900 seconds (15 minutes) to 129600
2258 // seconds (36 hours), with 43200 seconds (12 hours) as the default. Sessions
2259 // for AWS account owners are restricted to a maximum of 3600 seconds (one hour).
2260 // If the duration is longer than one hour, the session for AWS account owners
2261 // defaults to one hour.
2262 DurationSeconds *int64 `min:"900" type:"integer"`
2263
2264 // The identification number of the MFA device that is associated with the IAM
2265 // user who is making the GetSessionToken call. Specify this value if the IAM
2266 // user has a policy that requires MFA authentication. The value is either the
2267 // serial number for a hardware device (such as GAHT12345678) or an Amazon Resource
2268 // Name (ARN) for a virtual device (such as arn:aws:iam::123456789012:mfa/user).
2269 // You can find the device for an IAM user by going to the AWS Management Console
2270 // and viewing the user's security credentials.
2271 //
2272 // The regex used to validate this parameter is a string of characters consisting
2273 // of upper- and lower-case alphanumeric characters with no spaces. You can
2274 // also include underscores or any of the following characters: =,.@-
2275 SerialNumber *string `min:"9" type:"string"`
2276
2277 // The value provided by the MFA device, if MFA is required. If any policy requires
2278 // the IAM user to submit an MFA code, specify this value. If MFA authentication
2279 // is required, and the user does not provide a code when requesting a set of
2280 // temporary security credentials, the user will receive an "access denied"
2281 // response when requesting resources that require MFA authentication.
2282 //
2283 // The format for this parameter, as described by its regex pattern, is a sequence
2284 // of six numeric digits.
2285 TokenCode *string `min:"6" type:"string"`
2286}
2287
2288// String returns the string representation
2289func (s GetSessionTokenInput) String() string {
2290 return awsutil.Prettify(s)
2291}
2292
2293// GoString returns the string representation
2294func (s GetSessionTokenInput) GoString() string {
2295 return s.String()
2296}
2297
2298// Validate inspects the fields of the type to determine if they are valid.
2299func (s *GetSessionTokenInput) Validate() error {
2300 invalidParams := request.ErrInvalidParams{Context: "GetSessionTokenInput"}
2301 if s.DurationSeconds != nil && *s.DurationSeconds < 900 {
2302 invalidParams.Add(request.NewErrParamMinValue("DurationSeconds", 900))
2303 }
2304 if s.SerialNumber != nil && len(*s.SerialNumber) < 9 {
2305 invalidParams.Add(request.NewErrParamMinLen("SerialNumber", 9))
2306 }
2307 if s.TokenCode != nil && len(*s.TokenCode) < 6 {
2308 invalidParams.Add(request.NewErrParamMinLen("TokenCode", 6))
2309 }
2310
2311 if invalidParams.Len() > 0 {
2312 return invalidParams
2313 }
2314 return nil
2315}
2316
2317// SetDurationSeconds sets the DurationSeconds field's value.
2318func (s *GetSessionTokenInput) SetDurationSeconds(v int64) *GetSessionTokenInput {
2319 s.DurationSeconds = &v
2320 return s
2321}
2322
2323// SetSerialNumber sets the SerialNumber field's value.
2324func (s *GetSessionTokenInput) SetSerialNumber(v string) *GetSessionTokenInput {
2325 s.SerialNumber = &v
2326 return s
2327}
2328
2329// SetTokenCode sets the TokenCode field's value.
2330func (s *GetSessionTokenInput) SetTokenCode(v string) *GetSessionTokenInput {
2331 s.TokenCode = &v
2332 return s
2333}
2334
2335// Contains the response to a successful GetSessionToken request, including
2336// temporary AWS credentials that can be used to make AWS requests.
2337// Please also see https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetSessionTokenResponse
2338type GetSessionTokenOutput struct {
2339 _ struct{} `type:"structure"`
2340
2341 // The temporary security credentials, which include an access key ID, a secret
2342 // access key, and a security (or session) token.
2343 //
2344 // Note: The size of the security token that STS APIs return is not fixed. We
2345 // strongly recommend that you make no assumptions about the maximum size. As
2346 // of this writing, the typical size is less than 4096 bytes, but that can vary.
2347 // Also, future updates to AWS might require larger sizes.
2348 Credentials *Credentials `type:"structure"`
2349}
2350
2351// String returns the string representation
2352func (s GetSessionTokenOutput) String() string {
2353 return awsutil.Prettify(s)
2354}
2355
2356// GoString returns the string representation
2357func (s GetSessionTokenOutput) GoString() string {
2358 return s.String()
2359}
2360
2361// SetCredentials sets the Credentials field's value.
2362func (s *GetSessionTokenOutput) SetCredentials(v *Credentials) *GetSessionTokenOutput {
2363 s.Credentials = v
2364 return s
2365}