aws-sdk-core 2.0.41 → 2.0.42

Sign up to get free protection for your applications and to get access to all the features.
@@ -16,7 +16,7 @@
16
16
  "CreateOpenIDConnectProvider": "<p>Creates an IAM entity to describe an identity provider (IdP) that supports <a href=\"http://openid.net/connect/\">OpenID Connect (OIDC)</a>. </p> <p>The OIDC provider that you create with this operation can be used as a principal in a role's trust policy to establish a trust relationship between AWS and the OIDC provider. </p> <p>When you create the IAM OIDC provider, you specify the URL of the OIDC identity provider (IdP) to trust, a list of client IDs (also known as audiences) that identify the application or applications that are allowed to authenticate using the OIDC provider, and a list of thumbprints of the server certificate(s) that the IdP uses. You get all of this information from the OIDC IdP that you want to use for access to AWS. </p> <note>Because trust for the OIDC provider is ultimately derived from the IAM provider that this action creates, it is a best practice to limit access to the <a>CreateOpenIDConnectProvider</a> action to highly-privileged users. </note>",
17
17
  "CreatePolicy": "<p>Creates a new managed policy for your AWS account. </p> <p>This operation creates a policy version with a version identifier of <code>v1</code> and sets v1 as the policy's default version. For more information about policy versions, see <a href=\"http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html\">Versioning for Managed Policies</a> in the <i>Using IAM</i> guide. </p> <p>For more information about managed policies in general, refer to <a href=\"http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html\">Managed Policies and Inline Policies</a> in the <i>Using IAM</i> guide. </p>",
18
18
  "CreatePolicyVersion": "<p>Creates a new version of the specified managed policy. To update a managed policy, you create a new policy version. A managed policy can have up to five versions. If the policy has five versions, you must delete an existing version using <a>DeletePolicyVersion</a> before you create a new version. </p> <p>Optionally, you can set the new version as the policy's default version. The default version is the operative version; that is, the version that is in effect for the IAM users, groups, and roles that the policy is attached to. </p> <p>For more information about managed policy versions, see <a href=\"http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html\">Versioning for Managed Policies</a> in the <i>Using IAM</i> guide. </p>",
19
- "CreateRole": "<p> Creates a new role for your AWS account. For more information about roles, go to <a href=\"http://docs.aws.amazon.com/IAM/latest/UserGuide/WorkingWithRoles.html\">Working with Roles</a>. For information about limitations on role names and the number of roles you can create, go to <a href=\"http://docs.aws.amazon.com/IAM/latest/UserGuide/LimitationsOnEntities.html\">Limitations on IAM Entities</a> in the <i>Using IAM</i> guide. </p> <p> The example policy grants permission to an EC2 instance to assume the role. The policy is URL-encoded according to RFC 3986. For more information about RFC 3986, go to <a href=\"http://www.faqs.org/rfcs/rfc3986.html\">http://www.faqs.org/rfcs/rfc3986.html</a>. </p>",
19
+ "CreateRole": "<p>Creates a new role for your AWS account. For more information about roles, go to <a href=\"http://docs.aws.amazon.com/IAM/latest/UserGuide/WorkingWithRoles.html\">Working with Roles</a>. For information about limitations on role names and the number of roles you can create, go to <a href=\"http://docs.aws.amazon.com/IAM/latest/UserGuide/LimitationsOnEntities.html\">Limitations on IAM Entities</a> in the <i>Using IAM</i> guide. </p> <p>The policy in the following example grants permission to an EC2 instance to assume the role.</p>",
20
20
  "CreateSAMLProvider": "<p>Creates an IAM entity to describe an identity provider (IdP) that supports SAML 2.0.</p> <p> The SAML provider that you create with this operation can be used as a principal in a role's trust policy to establish a trust relationship between AWS and a SAML identity provider. You can create an IAM role that supports Web-based single sign-on (SSO) to the AWS Management Console or one that supports API access to AWS. </p> <p> When you create the SAML provider, you upload an a SAML metadata document that you get from your IdP and that includes the issuer's name, expiration information, and keys that can be used to validate the SAML authentication response (assertions) that are received from the IdP. You must generate the metadata document using the identity management software that is used as your organization's IdP. </p> <note> This operation requires <a href=\"http://docs.aws.amazon.com/general/latest/gr/signature-version-4.html\">Signature Version 4</a>. </note> <p> For more information, see <a href=\"http://docs.aws.amazon.com/STS/latest/UsingSTS/STSMgmtConsole-SAML.html\">Giving Console Access Using SAML</a> and <a href=\"http://docs.aws.amazon.com/STS/latest/UsingSTS/CreatingSAML.html\">Creating Temporary Security Credentials for SAML Federation</a> in the <i>Using Temporary Credentials</i> guide. </p>",
21
21
  "CreateUser": "<p>Creates a new user for your AWS account.</p> <p> For information about limitations on the number of users you can create, see <a href=\"http://docs.aws.amazon.com/IAM/latest/UserGuide/LimitationsOnEntities.html\">Limitations on IAM Entities</a> in the <i>Using IAM</i> guide. </p>",
22
22
  "CreateVirtualMFADevice": "<p>Creates a new virtual MFA device for the AWS account. After creating the virtual MFA, use <a>EnableMFADevice</a> to attach the MFA device to an IAM user. For more information about creating and working with virtual MFA devices, go to <a href=\"http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_VirtualMFA.html\">Using a Virtual MFA Device</a> in the <i>Using IAM</i> guide. </p> <p>For information about limits on the number of MFA devices you can create, see <a href=\"http://docs.aws.amazon.com/IAM/latest/UserGuide/LimitationsOnEntities.html\">Limitations on Entities</a> in the <i>Using IAM</i> guide. </p> <important>The seed information contained in the QR code and the Base32 string should be treated like any other secret access information, such as your AWS access keys or your passwords. After you provision your virtual device, you should ensure that the information is destroyed following secure procedures. </important>",
@@ -45,7 +45,7 @@
45
45
  "EnableMFADevice": "<p> Enables the specified MFA device and associates it with the specified user name. When enabled, the MFA device is required for every subsequent login by the user name associated with the device. </p>",
46
46
  "GenerateCredentialReport": "<p> Generates a credential report for the AWS account. For more information about the credential report, see <a href=\"http://docs.aws.amazon.com/IAM/latest/UserGuide/credential-reports.html\">Getting Credential Reports</a> in the <i>Using IAM</i> guide. </p>",
47
47
  "GetAccessKeyLastUsed": "<p>Retrieves information about when the specified access key was last used. The information includes the date and time of last use, along with the AWS service and region that were specified in the last request made with that key.</p>",
48
- "GetAccountAuthorizationDetails": "<p>Retrieves information about all IAM users, groups, and roles in your account, including their relationships to one another and their policies. Use this API to obtain a snapshot of the configuration of IAM permissions (users, groups, roles, and policies) in your account.</p> <p>You can optionally filter the results using the <code>Filter</code> parameter. You can paginate the results using the <code>MaxItems</code> and <code>Marker</code> parameters.</p>",
48
+ "GetAccountAuthorizationDetails": "<p>Retrieves information about all IAM users, groups, roles, and policies in your account, including their relationships to one another. Use this API to obtain a snapshot of the configuration of IAM permissions (users, groups, roles, and policies) in your account.</p> <p>You can optionally filter the results using the <code>Filter</code> parameter. You can paginate the results using the <code>MaxItems</code> and <code>Marker</code> parameters.</p>",
49
49
  "GetAccountPasswordPolicy": "<p>Retrieves the password policy for the AWS account. For more information about using a password policy, go to <a href=\"http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_ManagingPasswordPolicies.html\">Managing an IAM Password Policy</a>. </p>",
50
50
  "GetAccountSummary": "<p>Retrieves information about IAM entity usage and IAM quotas in the AWS account.</p> <p> For information about limitations on IAM entities, see <a href=\"http://docs.aws.amazon.com/IAM/latest/UserGuide/LimitationsOnEntities.html\">Limitations on IAM Entities</a> in the <i>Using IAM</i> guide. </p>",
51
51
  "GetCredentialReport": "<p> Retrieves a credential report for the AWS account. For more information about the credential report, see <a href=\"http://docs.aws.amazon.com/IAM/latest/UserGuide/credential-reports.html\">Getting Credential Reports</a> in the <i>Using IAM</i> guide. </p>",
@@ -56,7 +56,7 @@
56
56
  "GetOpenIDConnectProvider": "<p>Returns information about the specified OpenID Connect provider.</p>",
57
57
  "GetPolicy": "<p>Retrieves information about the specified managed policy, including the policy's default version and the total number of users, groups, and roles that the policy is attached to. For a list of the specific users, groups, and roles that the policy is attached to, use the <a>ListEntitiesForPolicy</a> API. This API returns metadata about the policy. To retrieve the policy document for a specific version of the policy, use <a>GetPolicyVersion</a>. </p> <p>This API retrieves information about managed policies. To retrieve information about an inline policy that is embedded with a user, group, or role, use the <a>GetUserPolicy</a>, <a>GetGroupPolicy</a>, or <a>GetRolePolicy</a> API. </p> <p>For more information about policies, refer to <a href=\"http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html\">Managed Policies and Inline Policies</a> in the <i>Using IAM</i> guide. </p>",
58
58
  "GetPolicyVersion": "<p>Retrieves information about the specified version of the specified managed policy, including the policy document. </p> <p>To list the available versions for a policy, use <a>ListPolicyVersions</a>. </p> <p>This API retrieves information about managed policies. To retrieve information about an inline policy that is embedded in a user, group, or role, use the <a>GetUserPolicy</a>, <a>GetGroupPolicy</a>, or <a>GetRolePolicy</a> API. </p> <p>For more information about the types of policies, refer to <a href=\"http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html\">Managed Policies and Inline Policies</a> in the <i>Using IAM</i> guide. </p>",
59
- "GetRole": "<p>Retrieves information about the specified role, including the role's path, GUID, ARN, and the policy granting permission to assume the role. For more information about ARNs, go to <a href=\"http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html#Identifiers_ARNs\">ARNs</a>. For more information about roles, go to <a href=\"http://docs.aws.amazon.com/IAM/latest/UserGuide/WorkingWithRoles.html\">Working with Roles</a>. </p> <p>The returned policy is URL-encoded according to RFC 3986. For more information about RFC 3986, go to <a href=\"http://www.faqs.org/rfcs/rfc3986.html\">http://www.faqs.org/rfcs/rfc3986.html</a>. </p>",
59
+ "GetRole": "<p>Retrieves information about the specified role, including the role's path, GUID, ARN, and the policy granting permission to assume the role. For more information about ARNs, go to <a href=\"http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html#Identifiers_ARNs\">ARNs</a>. For more information about roles, go to <a href=\"http://docs.aws.amazon.com/IAM/latest/UserGuide/WorkingWithRoles.html\">Working with Roles</a>. </p>",
60
60
  "GetRolePolicy": "<p>Retrieves the specified inline policy document that is embedded with the specified role. </p> <p>A role can also have managed policies attached to it. To retrieve a managed policy document that is attached to a role, use <a>GetPolicy</a> to determine the policy's default version, then use <a>GetPolicyVersion</a> to retrieve the policy document. </p> <p>For more information about policies, refer to <a href=\"http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html\">Managed Policies and Inline Policies</a> in the <i>Using IAM</i> guide. </p> <p>For more information about roles, go to <a href=\"http://docs.aws.amazon.com/IAM/latest/UserGuide/roles-toplevel.html\">Using Roles to Delegate Permissions and Federate Identities</a>. </p>",
61
61
  "GetSAMLProvider": "<p>Returns the SAML provider metadocument that was uploaded when the provider was created or updated. </p> <note>This operation requires <a href=\"http://docs.aws.amazon.com/general/latest/gr/signature-version-4.html\">Signature Version 4</a>. </note>",
62
62
  "GetServerCertificate": "<p>Retrieves information about the specified server certificate.</p>",
@@ -78,7 +78,7 @@
78
78
  "ListPolicies": "<p>Lists all the managed policies that are available to your account, including your own customer managed policies and all AWS managed policies. </p> <p>You can filter the list of policies that is returned using the optional <code>OnlyAttached</code>, <code>Scope</code>, and <code>PathPrefix</code> parameters. For example, to list only the customer managed policies in your AWS account, set <code>Scope</code> to <code>Local</code>. To list only AWS managed policies, set <code>Scope</code> to <code>AWS</code>. </p> <p>You can paginate the results using the <code>MaxItems</code> and <code>Marker</code> parameters. </p> <p>For more information about managed policies, refer to <a href=\"http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html\">Managed Policies and Inline Policies</a> in the <i>Using IAM</i> guide. </p>",
79
79
  "ListPolicyVersions": "<p>Lists information about the versions of the specified managed policy, including the version that is set as the policy's default version. </p> <p>For more information about managed policies, refer to <a href=\"http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html\">Managed Policies and Inline Policies</a> in the <i>Using IAM</i> guide. </p>",
80
80
  "ListRolePolicies": "<p>Lists the names of the inline policies that are embedded in the specified role. </p> <p>A role can also have managed policies attached to it. To list the managed policies that are attached to a role, use <a>ListAttachedRolePolicies</a>. For more information about policies, refer to <a href=\"http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html\">Managed Policies and Inline Policies</a> in the <i>Using IAM</i> guide. </p> <p>You can paginate the results using the <code>MaxItems</code> and <code>Marker</code> parameters. If there are no inline policies embedded with the specified role, the action returns an empty list. </p>",
81
- "ListRoles": "<p>Lists the roles that have the specified path prefix. If there are none, the action returns an empty list. For more information about roles, go to <a href=\"http://docs.aws.amazon.com/IAM/latest/UserGuide/WorkingWithRoles.html\">Working with Roles</a>. </p> <p>You can paginate the results using the <code>MaxItems</code> and <code>Marker</code> parameters. </p> <p>The returned policy is URL-encoded according to RFC 3986. For more information about RFC 3986, go to <a href=\"http://www.faqs.org/rfcs/rfc3986.html\">http://www.faqs.org/rfcs/rfc3986.html</a>. </p>",
81
+ "ListRoles": "<p>Lists the roles that have the specified path prefix. If there are none, the action returns an empty list. For more information about roles, go to <a href=\"http://docs.aws.amazon.com/IAM/latest/UserGuide/WorkingWithRoles.html\">Working with Roles</a>. </p> <p>You can paginate the results using the <code>MaxItems</code> and <code>Marker</code> parameters. </p>",
82
82
  "ListSAMLProviders": "<p>Lists the SAML providers in the account.</p> <note> This operation requires <a href=\"http://docs.aws.amazon.com/general/latest/gr/signature-version-4.html\">Signature Version 4</a>. </note>",
83
83
  "ListServerCertificates": "<p> Lists the server certificates that have the specified path prefix. If none exist, the action returns an empty list. </p> <p> You can paginate the results using the <code>MaxItems</code> and <code>Marker</code> parameters. </p>",
84
84
  "ListSigningCertificates": "<p>Returns information about the signing certificates associated with the specified user. If there are none, the action returns an empty list. </p> <p>Although each user is limited to a small number of signing certificates, you can still paginate the results using the <code>MaxItems</code> and <code>Marker</code> parameters. </p> <p>If the <code>UserName</code> field is not specified, the user name is determined implicitly based on the AWS access key ID used to sign the request. Because this action works for access keys under the AWS account, you can use this action to manage root credentials even if the AWS account has no associated users. </p>",
@@ -1873,19 +1873,19 @@
1873
1873
  "policyDocumentType": {
1874
1874
  "base": null,
1875
1875
  "refs": {
1876
- "CreatePolicyRequest$PolicyDocument": "<p>The policy document.</p> <p>The policy must be URL-encoded according to <a href=\"http://www.faqs.org/rfcs/rfc3986.html\">RFC 3986</a>. </p>",
1877
- "CreatePolicyVersionRequest$PolicyDocument": "<p>The policy document.</p> <p>The policy must be URL-encoded according to <a href=\"http://www.faqs.org/rfcs/rfc3986.html\">RFC 3986</a>. </p>",
1876
+ "CreatePolicyRequest$PolicyDocument": "<p>The policy document.</p>",
1877
+ "CreatePolicyVersionRequest$PolicyDocument": "<p>The policy document.</p>",
1878
1878
  "CreateRoleRequest$AssumeRolePolicyDocument": "<p>The policy that grants an entity permission to assume the role.</p>",
1879
1879
  "GetGroupPolicyResponse$PolicyDocument": "<p>The policy document.</p>",
1880
1880
  "GetRolePolicyResponse$PolicyDocument": "<p>The policy document.</p>",
1881
1881
  "GetUserPolicyResponse$PolicyDocument": "<p>The policy document.</p>",
1882
- "PolicyDetail$PolicyDocument": "<p>The policy document.</p> <p>The returned policy is URL-encoded according to <a href=\"http://www.faqs.org/rfcs/rfc3986.html\">RFC 3986</a>. </p>",
1883
- "PolicyVersion$Document": "<p>The policy document.</p> <p>The policy document is returned in the response to the <a>GetPolicyVersion</a> operation. It is not included in the response to the <a>ListPolicyVersions</a> or <a>GetAccountAuthorizationDetails</a> operations. </p>",
1882
+ "PolicyDetail$PolicyDocument": "<p>The policy document.</p>",
1883
+ "PolicyVersion$Document": "<p>The policy document.</p> <p>The policy document is returned in the response to the <a>GetPolicyVersion</a> and <a>GetAccountAuthorizationDetails</a> operations. It is not returned in the response to the <a>CreatePolicyVersion</a> or <a>ListPolicyVersions</a> operations. </p>",
1884
1884
  "PutGroupPolicyRequest$PolicyDocument": "<p>The policy document.</p>",
1885
1885
  "PutRolePolicyRequest$PolicyDocument": "<p>The policy document.</p>",
1886
1886
  "PutUserPolicyRequest$PolicyDocument": "<p>The policy document.</p>",
1887
- "Role$AssumeRolePolicyDocument": "<p>The policy that grants an entity permission to assume the role.</p> <p> The returned policy is URL-encoded according to <a href=\"http://www.faqs.org/rfcs/rfc3986.html\">RFC 3986</a>. </p>",
1888
- "RoleDetail$AssumeRolePolicyDocument": "<p>The trust policy that grants permission to assume the role.</p> <p> The returned policy is URL-encoded according to <a href=\"http://www.faqs.org/rfcs/rfc3986.html\">RFC 3986</a>. </p>",
1887
+ "Role$AssumeRolePolicyDocument": "<p>The policy that grants an entity permission to assume the role.</p>",
1888
+ "RoleDetail$AssumeRolePolicyDocument": "<p>The trust policy that grants permission to assume the role.</p>",
1889
1889
  "UpdateAssumeRolePolicyRequest$PolicyDocument": "<p>The policy that grants an entity permission to assume the role.</p>"
1890
1890
  }
1891
1891
  },
@@ -63,6 +63,13 @@
63
63
  "limit_key": "MaxItems",
64
64
  "result_key": "MFADevices"
65
65
  },
66
+ "ListPolicies": {
67
+ "input_token": "Marker",
68
+ "output_token": "Marker",
69
+ "more_results": "IsTruncated",
70
+ "limit_key": "MaxItems",
71
+ "result_key": "Policies"
72
+ },
66
73
  "ListRolePolicies": {
67
74
  "input_token": "Marker",
68
75
  "output_token": "Marker",
@@ -11,6 +11,11 @@
11
11
  "matcher": "status",
12
12
  "state": "success"
13
13
  },
14
+ {
15
+ "expected": 301,
16
+ "matcher": "status",
17
+ "state": "success"
18
+ },
14
19
  {
15
20
  "expected": 403,
16
21
  "matcher": "status",
@@ -1,4 +1,5 @@
1
1
  {
2
+ "version":"2.0",
2
3
  "metadata":{
3
4
  "apiVersion":"2011-06-15",
4
5
  "endpointPrefix":"sts",
@@ -531,8 +532,8 @@
531
532
  "externalIdType":{
532
533
  "type":"string",
533
534
  "min":2,
534
- "max":96,
535
- "pattern":"[\\w+=,.@:-]*"
535
+ "max":1224,
536
+ "pattern":"[\\w+=,.@:\\/-]*"
536
537
  },
537
538
  "federatedIdType":{
538
539
  "type":"string",
@@ -1,13 +1,14 @@
1
1
  {
2
+ "version": "2.0",
2
3
  "operations": {
3
4
  "AssumeRole": "<p>Returns a set of temporary security credentials (consisting of an access key ID, a secret access key, and a security token) that you can use to access AWS resources that you might not normally have access to. Typically, you use <code>AssumeRole</code> for cross-account access or federation. </p> <p><b>Important:</b> You cannot call <code>AssumeRole</code> by using AWS account credentials; access will be denied. You must use IAM user credentials or temporary security credentials to call <code>AssumeRole</code>. </p> <p>For cross-account access, imagine that you own multiple accounts and need to access resources in each account. You could create long-term credentials in each account to access those resources. However, managing all those credentials and remembering which one can access which account can be time consuming. Instead, you can create one set of long-term credentials in one account and then use temporary security credentials to access all the other accounts by assuming roles in those accounts. For more information about roles, see <a href=\"http://docs.aws.amazon.com/IAM/latest/UserGuide/WorkingWithRoles.html\">Roles</a> in <i>Using IAM</i>. </p> <p>For federation, you can, for example, grant single sign-on access to the AWS Management Console. If you already have an identity and authentication system in your corporate network, you don't have to recreate user identities in AWS in order to grant those user identities access to AWS. Instead, after a user has been authenticated, you call <code>AssumeRole</code> (and specify the role with the appropriate permissions) to get temporary security credentials for that user. With those temporary security credentials, you construct a sign-in URL that users can use to access the console. For more information, see <a href=\"http://docs.aws.amazon.com/STS/latest/UsingSTS/STSUseCases.html\">Scenarios for Granting Temporary Access</a> in <i>Using Temporary Security Credentials</i>. </p> <p>The temporary security credentials are valid for the duration that you specified when calling <code>AssumeRole</code>, which can be from 900 seconds (15 minutes) to 3600 seconds (1 hour). The default is 1 hour. </p> <p>Optionally, you can pass an IAM access policy to this operation. If you choose not to pass a policy, the temporary security credentials that are returned by the operation have the permissions that are defined in the access policy of the role that is being assumed. If you pass a policy to this operation, the temporary security credentials that are returned by the operation have the permissions that are allowed by both the access policy of the role that is being assumed, <i><b>and</b></i> the policy that you pass. This gives you a way to further restrict the permissions for the resulting temporary security credentials. You cannot use the passed policy to grant permissions that are in excess of those allowed by the access policy of the role that is being assumed. For more information, see <a href=\"http://docs.aws.amazon.com/STS/latest/UsingSTS/permissions-assume-role.html\">Permissions for AssumeRole</a> in <i>Using Temporary Security Credentials</i>.</p> <p>To assume a role, your AWS account must be trusted by the role. The trust relationship is defined in the role's trust policy when the role is created. You must also have a policy that allows you to call <code>sts:AssumeRole</code>. </p> <p> <b>Using MFA with AssumeRole</b> </p> <p>You can optionally include multi-factor authentication (MFA) information when you call <code>AssumeRole</code>. This is useful for cross-account scenarios in which you want to make sure that the user who is assuming the role has been authenticated using an AWS MFA device. In that scenario, the trust policy of the role being assumed includes a condition that tests for MFA authentication; if the caller does not include valid MFA information, the request to assume the role is denied. The condition in a trust policy that tests for MFA authentication might look like the following example.</p> <p> <code>\"Condition\": {\"Null\": {\"aws:MultiFactorAuthAge\": false}}</code> </p> <p>For more information, see <a href=\"http://docs.aws.amazon.com/IAM/latest/UserGuide/MFAProtectedAPI.html\">Configuring MFA-Protected API Access</a> in the <i>Using IAM</i> guide. </p> <p>To use MFA with <code>AssumeRole</code>, you pass values for the <code>SerialNumber</code> and <code>TokenCode</code> parameters. The <code>SerialNumber</code> value identifies the user's hardware or virtual MFA device. The <code>TokenCode</code> is the time-based one-time password (TOTP) that the MFA devices produces. </p> <member name=\"RoleArn\" target=\"arnType\"></member> <member name=\"RoleSessionName\" target=\"userNameType\"></member> <member name=\"Policy\" target=\"sessionPolicyDocumentType\"></member> <member name=\"DurationSeconds\" target=\"roleDurationSecondsType\"></member> <member name=\"ExternalId\" target=\"externalIdType\"></member>",
4
- "AssumeRoleWithSAML": "<p>Returns a set of temporary security credentials for users who have been authenticated via a SAML authentication response. This operation provides a mechanism for tying an enterprise identity store or directory to role-based AWS access without user-specific credentials or configuration. </p> <p>The temporary security credentials returned by this operation consist of an access key ID, a secret access key, and a security token. Applications can use these temporary security credentials to sign calls to AWS services. The credentials are valid for the duration that you specified when calling <code>AssumeRoleWithSAML</code>, which can be up to 3600 seconds (1 hour) or until the time specified in the SAML authentication response's <code>NotOnOrAfter</code> value, whichever is shorter.</p> <p>Optionally, you can pass an IAM access policy to this operation. If you choose not to pass a policy, the temporary security credentials that are returned by the operation have the permissions that are defined in the access policy of the role that is being assumed. If you pass a policy to this operation, the temporary security credentials that are returned by the operation have the permissions that are allowed by both the access policy of the role that is being assumed, <i><b>and</b></i> the policy that you pass. This gives you a way to further restrict the permissions for the resulting temporary security credentials. You cannot use the passed policy to grant permissions that are in excess of those allowed by the access policy of the role that is being assumed. For more information, see <a href=\"http://docs.aws.amazon.com/STS/latest/UsingSTS/permissions-assume-role.html\">Permissions for AssumeRoleWithSAML</a> in <i>Using Temporary Security Credentials</i>.</p> <p>Before your application can call <code>AssumeRoleWithSAML</code>, you must configure your SAML identity provider (IdP) to issue the claims required by AWS. Additionally, you must use AWS Identity and Access Management (IAM) to create a SAML provider entity in your AWS account that represents your identity provider, and create an IAM role that specifies this SAML provider in its trust policy. </p> <p>Calling <code>AssumeRoleWithSAML</code> does not require the use of AWS security credentials. The identity of the caller is validated by using keys in the metadata document that is uploaded for the SAML provider entity for your identity provider. </p> <p>For more information, see the following resources:</p> <ul> <li> <a href=\"http://docs.aws.amazon.com/STS/latest/UsingSTS/CreatingSAML.html\">Creating Temporary Security Credentials for SAML Federation</a> in <i>Using Temporary Security Credentials</i>. </li> <li> <a href=\"http://docs.aws.amazon.com/IAM/latest/UserGuide/idp-managing-identityproviders.html\">SAML Providers</a> in <i>Using IAM</i>. </li> <li> <a href=\"http://docs.aws.amazon.com/IAM/latest/UserGuide/create-role-saml-IdP-tasks.html\">Configuring a Relying Party and Claims</a> in <i>Using IAM</i>. </li> <li> <a href=\"http://docs.aws.amazon.com/IAM/latest/UserGuide/create-role-saml.html\">Creating a Role for SAML-Based Federation</a> in <i>Using IAM</i>. </li> </ul> <member name=\"RoleArn\" target=\"arnType\"></member> <member name=\"SAMLAssertion\" target=\"SAMLAssertionType\"></member> <member name=\"Policy\" target=\"sessionPolicyDocumentType\"></member> <member name=\"DurationSeconds\" target=\"roleDurationSecondsType\"></member>",
5
- "AssumeRoleWithWebIdentity": "<p>Returns a set of temporary security credentials for users who have been authenticated in a mobile or web application with a web identity provider, such as Login with Amazon, Amazon Cognito, Facebook, or Google. </p> <p>Calling <code>AssumeRoleWithWebIdentity</code> does not require the use of AWS security credentials. Therefore, you can distribute an application (for example, on mobile devices) that requests temporary security credentials without including long-term AWS credentials in the application, and without deploying server-based proxy services that use long-term AWS credentials. Instead, the identity of the caller is validated by using a token from the web identity provider. </p> <p>The temporary security credentials returned by this API consist of an access key ID, a secret access key, and a security token. Applications can use these temporary security credentials to sign calls to AWS service APIs. The credentials are valid for the duration that you specified when calling <code>AssumeRoleWithWebIdentity</code>, which can be from 900 seconds (15 minutes) to 3600 seconds (1 hour). By default, the temporary security credentials are valid for 1 hour. </p> <p>Optionally, you can pass an IAM access policy to this operation. If you choose not to pass a policy, the temporary security credentials that are returned by the operation have the permissions that are defined in the access policy of the role that is being assumed. If you pass a policy to this operation, the temporary security credentials that are returned by the operation have the permissions that are allowed by both the access policy of the role that is being assumed, <i><b>and</b></i> the policy that you pass. This gives you a way to further restrict the permissions for the resulting temporary security credentials. You cannot use the passed policy to grant permissions that are in excess of those allowed by the access policy of the role that is being assumed. For more information, see <a href=\"http://docs.aws.amazon.com/STS/latest/UsingSTS/permissions-assume-role.html\">Permissions for AssumeRoleWithWebIdentity</a> in <i>Using Temporary Security Credentials</i>.</p> <p>Before your application can call <code>AssumeRoleWithWebIdentity</code>, you must have an identity token from a supported identity provider and create a role that the application can assume. The role that your application assumes must trust the identity provider that is associated with the identity token. In other words, the identity provider must be specified in the role's trust policy. </p> <p>For more information about how to use web identity federation and the <code>AssumeRoleWithWebIdentity</code>, see the following resources: </p> <ul> <li> <a href=\"http://docs.aws.amazon.com/STS/latest/UsingSTS/STSUseCases.html#MobileApplication-KnownProvider\" target=\"_blank\"> Creating a Mobile Application with Third-Party Sign-In</a> and <a href=\"http://docs.aws.amazon.com/STS/latest/UsingSTS/CreatingWIF.html\" target=\"_blank\"> Creating Temporary Security Credentials for Mobile Apps Using Third-Party Identity Providers</a> in <i>Using Temporary Security Credentials</i>. </li> <li> <a href=\"https://web-identity-federation-playground.s3.amazonaws.com/index.html\" target=\"_blank\"> Web Identity Federation Playground</a>. This interactive website lets you walk through the process of authenticating via Login with Amazon, Facebook, or Google, getting temporary security credentials, and then using those credentials to make a request to AWS. </li> <li> <a href=\"http://aws.amazon.com/sdkforios/\">AWS SDK for iOS</a> and <a href=\"http://aws.amazon.com/sdkforandroid/\" target=\"_blank\">AWS SDK for Android</a>. These toolkits contain sample apps that show how to invoke the identity providers, and then how to use the information from these providers to get and use temporary security credentials. </li> <li> <a href=\"http://aws.amazon.com/articles/4617974389850313\" target=\"_blank\">Web Identity Federation with Mobile Applications</a>. This article discusses web identity federation and shows an example of how to use web identity federation to get access to content in Amazon S3. </li> </ul> <member name=\"RoleArn\" target=\"arnType\"></member> <member name=\"RoleSessionName\" target=\"userNameType\"></member> <member name=\"WebIdentityToken\" target=\"clientTokenType\"></member> <member name=\"ProviderId\" target=\"urlType\"></member> <member name=\"Policy\" target=\"sessionPolicyDocumentType\"></member> <member name=\"DurationSeconds\" target=\"roleDurationSecondsType\"></member>",
6
- "DecodeAuthorizationMessage": "<p>Decodes additional information about the authorization status of a request from an encoded message returned in response to an AWS request. </p> <p>For example, if a user is not authorized to perform an action that he or she has requested, the request returns a <code>Client.UnauthorizedOperation</code> response (an HTTP 403 response). Some AWS actions additionally return an encoded message that can provide details about this authorization failure. </p> <p>The message is encoded because the details of the authorization status can constitute privileged information that the user who requested the action should not see. To decode an authorization status message, a user must be granted permissions via an IAM policy to request the <code>DecodeAuthorizationMessage</code> (<code>sts:DecodeAuthorizationMessage</code>) action. </p> <p>The decoded message includes the following type of information: </p> <ul> <li>Whether the request was denied due to an explicit deny or due to the absence of an explicit allow. For more information, see <a href=\"http://docs.aws.amazon.com/IAM/latest/UserGuide/AccessPolicyLanguage_EvaluationLogic.html#policy-eval-denyallow\">Determining Whether a Request is Allowed or Denied</a> in <i>Using IAM</i>. </li> <li>The principal who made the request.</li> <li>The requested action.</li> <li>The requested resource.</li> <li>The values of condition keys in the context of the user's request.</li> </ul>",
7
- "GetFederationToken": "<p>Returns a set of temporary security credentials (consisting of an access key ID, a secret access key, and a security token) for a federated user. A typical use is in a proxy application that gets temporary security credentials on behalf of distributed applications inside a corporate network. Because you must call the <code>GetFederationToken</code> action using the long-term security credentials of an IAM user, this call is appropriate in contexts where those credentials can be safely stored, usually in a server-based application.</p> <p> <b>Note:</b> Do not use this call in mobile applications or client-based web applications that directly get temporary security credentials. For those types of applications, use <code>AssumeRoleWithWebIdentity</code>.</p> <p>The <code>GetFederationToken</code> action must be called by using the long-term AWS security credentials of an IAM user. You can also call <code>GetFederationToken</code> using the security credentials of an AWS account (root), but this is not recommended. Instead, we recommend that you create an IAM user for the purpose of the proxy application and then attach a policy to the IAM user that limits federated users to only the actions and resources they need access to. For more information, see <a href=\"http://docs.aws.amazon.com/IAM/latest/UserGuide/IAMBestPractices.html\">IAM Best Practices</a> in <i>Using IAM</i>. </p> <p>The temporary security credentials that are obtained by using the long-term credentials of an IAM user are valid for the specified duration, between 900 seconds (15 minutes) and 129600 seconds (36 hours). Temporary credentials that are obtained by using AWS account (root) credentials have a maximum duration of 3600 seconds (1 hour)</p> <p> <b>Permissions</b> </p> <p>The permissions for the temporary security credentials returned by <code>GetFederationToken</code> are determined by a combination of the following: </p> <ul> <li>The policy or policies that are attached to the IAM user whose credentials are used to call <code>GetFederationToken</code>.</li> <li>The policy that is passed as a parameter in the call.</li> </ul> <p>The passed policy is attached to the temporary security credentials that result from the <code>GetFederationToken</code> API call--that is, to the <i>federated user</i>. When the federated user makes an AWS request, AWS evaluates the policy attached to the federated user in combination with the policy or policies attached to the IAM user whose credentials were used to call <code>GetFederationToken</code>. AWS allows the federated user's request only when both the federated user <i><b>and</b></i> the IAM user are explicitly allowed to perform the requested action. The passed policy cannot grant more permissions than those that are defined in the IAM user policy.</p> <p>A typical use case is that the permissions of the IAM user whose credentials are used to call <code>GetFederationToken</code> are designed to allow access to all the actions and resources that any federated user will need. Then, for individual users, you pass a policy to the operation that scopes down the permissions to a level that's appropriate to that individual user, using a policy that allows only a subset of permissions that are granted to the IAM user. </p> <p>If you do not pass a policy, the resulting temporary security credentials have no effective permissions. The only exception is when the temporary security credentials are used to access a resource that has a resource-based policy that specifically allows the federated user to access the resource. </p> <p>For more information about how permissions work, see <a href=\"http://docs.aws.amazon.com/STS/latest/UsingSTS/permissions-get-federation-token.html\">Permissions for GetFederationToken</a> in <i>Using Temporary Security Credentials</i>. For information about using <code>GetFederationToken</code> to create temporary security credentials, see <a href=\"http://docs.aws.amazon.com/STS/latest/UsingSTS/CreatingFedTokens.html\">Creating Temporary Credentials to Enable Access for Federated Users</a> in <i>Using Temporary Security Credentials</i>. </p>",
8
- "GetSessionToken": "<p>Returns a set of temporary credentials for an AWS account or IAM user. The credentials consist of an access key ID, a secret access key, and a security token. Typically, you use <code>GetSessionToken</code> if you want to use MFA to protect programmatic calls to specific AWS APIs like Amazon EC2 <code>StopInstances</code>. MFA-enabled IAM users would need to call <code>GetSessionToken</code> and submit an MFA code that is associated with their MFA device. Using the temporary security credentials that are returned from the call, IAM users can then make programmatic calls to APIs that require MFA authentication. </p> <p>The <code>GetSessionToken</code> action must be called by using the long-term AWS security credentials of the AWS account or an IAM user. Credentials that are created by IAM users are valid for the duration that you specify, between 900 seconds (15 minutes) and 129600 seconds (36 hours); credentials that are created by using account credentials have a maximum duration of 3600 seconds (1 hour). </p> <p>The permissions associated with the temporary security credentials returned by <code>GetSessionToken</code> are based on the permissions associated with account or IAM user whose credentials are used to call the action. If <code>GetSessionToken</code> is called using root account credentials, the temporary credentials have root account permissions. Similarly, if <code>GetSessionToken</code> is called using the credentials of an IAM user, the temporary credentials have the same permissions as the IAM user. </p> <p>For more information about using <code>GetSessionToken</code> to create temporary credentials, go to <a href=\"http://docs.aws.amazon.com/STS/latest/UsingSTS/CreatingSessionTokens.html\" target=\"_blank\">Creating Temporary Credentials to Enable Access for IAM Users</a> in <i>Using Temporary Security Credentials</i>. </p>"
5
+ "AssumeRoleWithSAML": "<p>Returns a set of temporary security credentials for users who have been authenticated via a SAML authentication response. This operation provides a mechanism for tying an enterprise identity store or directory to role-based AWS access without user-specific credentials or configuration. </p> <p>The temporary security credentials returned by this operation consist of an access key ID, a secret access key, and a security token. Applications can use these temporary security credentials to sign calls to AWS services. The credentials are valid for the duration that you specified when calling <code>AssumeRoleWithSAML</code>, which can be up to 3600 seconds (1 hour) or until the time specified in the SAML authentication response's <code>SessionNotOnOrAfter</code> value, whichever is shorter.</p> <note>The maximum duration for a session is 1 hour, and the minimum duration is 15 minutes, even if values outside this range are specified. </note> <p>Optionally, you can pass an IAM access policy to this operation. If you choose not to pass a policy, the temporary security credentials that are returned by the operation have the permissions that are defined in the access policy of the role that is being assumed. If you pass a policy to this operation, the temporary security credentials that are returned by the operation have the permissions that are allowed by both the access policy of the role that is being assumed, <i><b>and</b></i> the policy that you pass. This gives you a way to further restrict the permissions for the resulting temporary security credentials. You cannot use the passed policy to grant permissions that are in excess of those allowed by the access policy of the role that is being assumed. For more information, see <a href=\"http://docs.aws.amazon.com/STS/latest/UsingSTS/permissions-assume-role.html\">Permissions for AssumeRoleWithSAML</a> in <i>Using Temporary Security Credentials</i>.</p> <p>Before your application can call <code>AssumeRoleWithSAML</code>, you must configure your SAML identity provider (IdP) to issue the claims required by AWS. Additionally, you must use AWS Identity and Access Management (IAM) to create a SAML provider entity in your AWS account that represents your identity provider, and create an IAM role that specifies this SAML provider in its trust policy. </p> <p>Calling <code>AssumeRoleWithSAML</code> does not require the use of AWS security credentials. The identity of the caller is validated by using keys in the metadata document that is uploaded for the SAML provider entity for your identity provider. </p> <p>For more information, see the following resources:</p> <ul> <li> <a href=\"http://docs.aws.amazon.com/STS/latest/UsingSTS/CreatingSAML.html\">Creating Temporary Security Credentials for SAML Federation</a> in <i>Using Temporary Security Credentials</i>. </li> <li> <a href=\"http://docs.aws.amazon.com/IAM/latest/UserGuide/idp-managing-identityproviders.html\">SAML Providers</a> in <i>Using IAM</i>. </li> <li> <a href=\"http://docs.aws.amazon.com/IAM/latest/UserGuide/create-role-saml-IdP-tasks.html\">Configuring a Relying Party and Claims</a> in <i>Using IAM</i>. </li> <li> <a href=\"http://docs.aws.amazon.com/IAM/latest/UserGuide/create-role-saml.html\">Creating a Role for SAML-Based Federation</a> in <i>Using IAM</i>. </li> </ul> <member name=\"RoleArn\" target=\"arnType\"></member> <member name=\"SAMLAssertion\" target=\"SAMLAssertionType\"></member> <member name=\"Policy\" target=\"sessionPolicyDocumentType\"></member> <member name=\"DurationSeconds\" target=\"roleDurationSecondsType\"></member>",
6
+ "AssumeRoleWithWebIdentity": "<p>Returns a set of temporary security credentials for users who have been authenticated in a mobile or web application with a web identity provider, such as Amazon Cognito, Login with Amazon, Facebook, Google, or any OpenID Connect-compatible identity provider. </p> <note> <p>For mobile applications, we recommend that you use Amazon Cognito. You can use Amazon Cognito with the <a href=\"http://aws.amazon.com/sdkforios/\">AWS SDK for iOS</a> and the <a href=\"http://aws.amazon.com/sdkforandroid/\">AWS SDK for Android</a> to uniquely identify a user and supply the user with a consistent identity throughout the lifetime of an application.</p> <p>To learn more about Amazon Cognito, see <a href=\"http://docs.aws.amazon.com/mobile/sdkforandroid/developerguide/cognito-auth.html#d0e840\">Amazon Cognito Overview</a> in the <i>AWS SDK for Android Developer Guide</i> guide and <a href=\"http://docs.aws.amazon.com/mobile/sdkforios/developerguide/cognito-auth.html#d0e664\">Amazon Cognito Overview</a> in the <i>AWS SDK for iOS Developer Guide</i>.</p> </note> <p>Calling <code>AssumeRoleWithWebIdentity</code> does not require the use of AWS security credentials. Therefore, you can distribute an application (for example, on mobile devices) that requests temporary security credentials without including long-term AWS credentials in the application, and without deploying server-based proxy services that use long-term AWS credentials. Instead, the identity of the caller is validated by using a token from the web identity provider. </p> <p>The temporary security credentials returned by this API consist of an access key ID, a secret access key, and a security token. Applications can use these temporary security credentials to sign calls to AWS service APIs. The credentials are valid for the duration that you specified when calling <code>AssumeRoleWithWebIdentity</code>, which can be from 900 seconds (15 minutes) to 3600 seconds (1 hour). By default, the temporary security credentials are valid for 1 hour. </p> <p>Optionally, you can pass an IAM access policy to this operation. If you choose not to pass a policy, the temporary security credentials that are returned by the operation have the permissions that are defined in the access policy of the role that is being assumed. If you pass a policy to this operation, the temporary security credentials that are returned by the operation have the permissions that are allowed by both the access policy of the role that is being assumed, <i><b>and</b></i> the policy that you pass. This gives you a way to further restrict the permissions for the resulting temporary security credentials. You cannot use the passed policy to grant permissions that are in excess of those allowed by the access policy of the role that is being assumed. For more information, see <a href=\"http://docs.aws.amazon.com/STS/latest/UsingSTS/permissions-assume-role.html\">Permissions for AssumeRoleWithWebIdentity</a> in <i>Using Temporary Security Credentials</i>.</p> <p>Before your application can call <code>AssumeRoleWithWebIdentity</code>, you must have an identity token from a supported identity provider and create a role that the application can assume. The role that your application assumes must trust the identity provider that is associated with the identity token. In other words, the identity provider must be specified in the role's trust policy. </p> <p>For more information about how to use web identity federation and the <code>AssumeRoleWithWebIdentity</code> API, see the following resources: </p> <ul> <li> <a href=\"http://docs.aws.amazon.com/STS/latest/UsingSTS/STSUseCases.html#MobileApplication-KnownProvider\"> Creating a Mobile Application with Third-Party Sign-In</a> and <a href=\"http://docs.aws.amazon.com/STS/latest/UsingSTS/CreatingWIF.html\"> Creating Temporary Security Credentials for Mobile Apps Using Third-Party Identity Providers</a> in <i>Using Temporary Security Credentials</i>. </li> <li> <a href=\"https://web-identity-federation-playground.s3.amazonaws.com/index.html\"> Web Identity Federation Playground</a>. This interactive website lets you walk through the process of authenticating via Login with Amazon, Facebook, or Google, getting temporary security credentials, and then using those credentials to make a request to AWS. </li> <li> <a href=\"http://aws.amazon.com/sdkforios/\">AWS SDK for iOS</a> and <a href=\"http://aws.amazon.com/sdkforandroid/\">AWS SDK for Android</a>. These toolkits contain sample apps that show how to invoke the identity providers, and then how to use the information from these providers to get and use temporary security credentials. </li> <li> <a href=\"http://aws.amazon.com/articles/4617974389850313\">Web Identity Federation with Mobile Applications</a>. This article discusses web identity federation and shows an example of how to use web identity federation to get access to content in Amazon S3. </li> </ul>",
7
+ "DecodeAuthorizationMessage": "<p>Decodes additional information about the authorization status of a request from an encoded message returned in response to an AWS request. </p> <p>For example, if a user is not authorized to perform an action that he or she has requested, the request returns a <code>Client.UnauthorizedOperation</code> response (an HTTP 403 response). Some AWS actions additionally return an encoded message that can provide details about this authorization failure. </p> <note> Only certain AWS actions return an encoded authorization message. The documentation for an individual action indicates whether that action returns an encoded message in addition to returning an HTTP code. </note> <p>The message is encoded because the details of the authorization status can constitute privileged information that the user who requested the action should not see. To decode an authorization status message, a user must be granted permissions via an IAM policy to request the <code>DecodeAuthorizationMessage</code> (<code>sts:DecodeAuthorizationMessage</code>) action. </p> <p>The decoded message includes the following type of information: </p> <ul> <li>Whether the request was denied due to an explicit deny or due to the absence of an explicit allow. For more information, see <a href=\"http://docs.aws.amazon.com/IAM/latest/UserGuide/AccessPolicyLanguage_EvaluationLogic.html#policy-eval-denyallow\">Determining Whether a Request is Allowed or Denied</a> in <i>Using IAM</i>. </li> <li>The principal who made the request.</li> <li>The requested action.</li> <li>The requested resource.</li> <li>The values of condition keys in the context of the user's request.</li> </ul>",
8
+ "GetFederationToken": "<p>Returns a set of temporary security credentials (consisting of an access key ID, a secret access key, and a security token) for a federated user. A typical use is in a proxy application that gets temporary security credentials on behalf of distributed applications inside a corporate network. Because you must call the <code>GetFederationToken</code> action using the long-term security credentials of an IAM user, this call is appropriate in contexts where those credentials can be safely stored, usually in a server-based application.</p> <note> <p> If you are creating a mobile-based or browser-based app that can authenticate users using a web identity provider like Login with Amazon, Facebook, Google, or an OpenID Connect-compatible identity provider, we recommend that you use <a href=\"http://aws.amazon.com/cognito/\">Amazon Cognito</a> or <code>AssumeRoleWithWebIdentity</code>. For more information, see <a href=\"http://docs.aws.amazon.com/STS/latest/UsingSTS/CreatingWIF.html\">Creating Temporary Security Credentials for Mobile Apps Using Identity Providers</a> in <i>Using Temporary Security Credentials</i>.</p> </note> <p>The <code>GetFederationToken</code> action must be called by using the long-term AWS security credentials of an IAM user. You can also call <code>GetFederationToken</code> using the security credentials of an AWS account (root), but this is not recommended. Instead, we recommend that you create an IAM user for the purpose of the proxy application and then attach a policy to the IAM user that limits federated users to only the actions and resources they need access to. For more information, see <a href=\"http://docs.aws.amazon.com/IAM/latest/UserGuide/IAMBestPractices.html\">IAM Best Practices</a> in <i>Using IAM</i>. </p> <p>The temporary security credentials that are obtained by using the long-term credentials of an IAM user are valid for the specified duration, between 900 seconds (15 minutes) and 129600 seconds (36 hours). Temporary credentials that are obtained by using AWS account (root) credentials have a maximum duration of 3600 seconds (1 hour)</p> <p> <b>Permissions</b> </p> <p>The permissions for the temporary security credentials returned by <code>GetFederationToken</code> are determined by a combination of the following: </p> <ul> <li>The policy or policies that are attached to the IAM user whose credentials are used to call <code>GetFederationToken</code>.</li> <li>The policy that is passed as a parameter in the call.</li> </ul> <p>The passed policy is attached to the temporary security credentials that result from the <code>GetFederationToken</code> API call--that is, to the <i>federated user</i>. When the federated user makes an AWS request, AWS evaluates the policy attached to the federated user in combination with the policy or policies attached to the IAM user whose credentials were used to call <code>GetFederationToken</code>. AWS allows the federated user's request only when both the federated user <i><b>and</b></i> the IAM user are explicitly allowed to perform the requested action. The passed policy cannot grant more permissions than those that are defined in the IAM user policy.</p> <p>A typical use case is that the permissions of the IAM user whose credentials are used to call <code>GetFederationToken</code> are designed to allow access to all the actions and resources that any federated user will need. Then, for individual users, you pass a policy to the operation that scopes down the permissions to a level that's appropriate to that individual user, using a policy that allows only a subset of permissions that are granted to the IAM user. </p> <p>If you do not pass a policy, the resulting temporary security credentials have no effective permissions. The only exception is when the temporary security credentials are used to access a resource that has a resource-based policy that specifically allows the federated user to access the resource. </p> <p>For more information about how permissions work, see <a href=\"http://docs.aws.amazon.com/STS/latest/UsingSTS/permissions-get-federation-token.html\">Permissions for GetFederationToken</a> in <i>Using Temporary Security Credentials</i>. For information about using <code>GetFederationToken</code> to create temporary security credentials, see <a href=\"http://docs.aws.amazon.com/STS/latest/UsingSTS/CreatingFedTokens.html\">Creating Temporary Credentials to Enable Access for Federated Users</a> in <i>Using Temporary Security Credentials</i>. </p>",
9
+ "GetSessionToken": "<p>Returns a set of temporary credentials for an AWS account or IAM user. The credentials consist of an access key ID, a secret access key, and a security token. Typically, you use <code>GetSessionToken</code> if you want to use MFA to protect programmatic calls to specific AWS APIs like Amazon EC2 <code>StopInstances</code>. MFA-enabled IAM users would need to call <code>GetSessionToken</code> and submit an MFA code that is associated with their MFA device. Using the temporary security credentials that are returned from the call, IAM users can then make programmatic calls to APIs that require MFA authentication. </p> <p>The <code>GetSessionToken</code> action must be called by using the long-term AWS security credentials of the AWS account or an IAM user. Credentials that are created by IAM users are valid for the duration that you specify, between 900 seconds (15 minutes) and 129600 seconds (36 hours); credentials that are created by using account credentials have a maximum duration of 3600 seconds (1 hour). </p> <note> <p>We recommend that you do not call <code>GetSessionToken</code> with root account credentials. Instead, follow our <a href=\"http://docs.aws.amazon.com/IAM/latest/UserGuide/IAMBestPractices.html#create-iam-users\">best practices</a> by creating one or more IAM users, giving them the necessary permissions, and using IAM users for everyday interaction with AWS. </p> </note> <p>The permissions associated with the temporary security credentials returned by <code>GetSessionToken</code> are based on the permissions associated with account or IAM user whose credentials are used to call the action. If <code>GetSessionToken</code> is called using root account credentials, the temporary credentials have root account permissions. Similarly, if <code>GetSessionToken</code> is called using the credentials of an IAM user, the temporary credentials have the same permissions as the IAM user. </p> <p>For more information about using <code>GetSessionToken</code> to create temporary credentials, go to <a href=\"http://docs.aws.amazon.com/STS/latest/UsingSTS/CreatingSessionTokens.html\" target=\"_blank\">Creating Temporary Credentials to Enable Access for IAM Users</a> in <i>Using Temporary Security Credentials</i>. </p>"
9
10
  },
10
- "service": "<fullname>AWS Security Token Service</fullname> <p>The AWS Security Token Service (STS) is a web service that enables you to request temporary, limited-privilege credentials for AWS Identity and Access Management (IAM) users or for users that you authenticate (federated users). This guide provides descriptions of the STS API. For more detailed information about using this service, go to <a href=\"http://docs.aws.amazon.com/STS/latest/UsingSTS/Welcome.html\" target=\"_blank\">Using Temporary Security Credentials</a>. </p> <p>For information about setting up signatures and authorization through the API, go to <a href=\"http://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html\" target=\"_blank\">Signing AWS API Requests</a> in the <i>AWS General Reference</i>. For general information about the Query API, go to <a href=\"http://docs.aws.amazon.com/IAM/latest/UserGuide/IAM_UsingQueryAPI.html\" target=\"_blank\">Making Query Requests</a> in <i>Using IAM</i>. For information about using security tokens with other AWS products, go to <a href=\"http://docs.aws.amazon.com/STS/latest/UsingSTS/UsingTokens.html\">Using Temporary Security Credentials to Access AWS</a> in <i>Using Temporary Security Credentials</i>. </p> <p>If you're new to AWS and need additional technical information about a specific AWS product, you can find the product's technical documentation at <a href=\"http://aws.amazon.com/documentation/\" target=\"_blank\">http://aws.amazon.com/documentation/</a>. </p> <p> <b>Endpoints</b> </p> <p>For information about STS endpoints, see <a href=\"http://docs.aws.amazon.com/general/latest/gr/rande.html#sts_region\" target=\"_blank\">Regions and Endpoints</a> in the <i>AWS General Reference</i>.</p> <p> <b>Recording API requests</b> </p> <p>STS supports AWS CloudTrail, which is a service that records AWS calls for your AWS account and delivers log files to an Amazon S3 bucket. By using information collected by CloudTrail, you can determine what requests were successfully made to STS, who made the request, when it was made, and so on. To learn more about CloudTrail, including how to turn it on and find your log files, see the <a href=\"http://docs.aws.amazon.com/awscloudtrail/latest/userguide/what_is_cloud_trail_top_level.html\">AWS CloudTrail User Guide</a>.</p>",
11
+ "service": "<fullname>AWS Security Token Service</fullname> <p>The AWS Security Token Service (STS) is a web service that enables you to request temporary, limited-privilege credentials for AWS Identity and Access Management (IAM) users or for users that you authenticate (federated users). This guide provides descriptions of the STS API. For more detailed information about using this service, go to <a href=\"http://docs.aws.amazon.com/STS/latest/UsingSTS/Welcome.html\" target=\"_blank\">Using Temporary Security Credentials</a>. </p> <note> As an alternative to using the API, you can use one of the AWS SDKs, which consist of libraries and sample code for various programming languages and platforms (Java, Ruby, .NET, iOS, Android, etc.). The SDKs provide a convenient way to create programmatic access to STS. For example, the SDKs take care of cryptographically signing requests, managing errors, and retrying requests automatically. For information about the AWS SDKs, including how to download and install them, see the <a href=\"http://aws.amazon.com/tools/\">Tools for Amazon Web Services page</a>. </note> <p>For information about setting up signatures and authorization through the API, go to <a href=\"http://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html\" target=\"_blank\">Signing AWS API Requests</a> in the <i>AWS General Reference</i>. For general information about the Query API, go to <a href=\"http://docs.aws.amazon.com/IAM/latest/UserGuide/IAM_UsingQueryAPI.html\" target=\"_blank\">Making Query Requests</a> in <i>Using IAM</i>. For information about using security tokens with other AWS products, go to <a href=\"http://docs.aws.amazon.com/STS/latest/UsingSTS/UsingTokens.html\">Using Temporary Security Credentials to Access AWS</a> in <i>Using Temporary Security Credentials</i>. </p> <p>If you're new to AWS and need additional technical information about a specific AWS product, you can find the product's technical documentation at <a href=\"http://aws.amazon.com/documentation/\" target=\"_blank\">http://aws.amazon.com/documentation/</a>. </p> <p> <b>Endpoints</b> </p> <p>The AWS Security Token Service (STS) has a default endpoint of https://sts.amazonaws.com that maps to the US East (N. Virginia) region. Additional regions are available, but must first be activated in the AWS Management Console before you can use a different region's endpoint. For more information about activating a region for STS see <a href=\"http://docs.aws.amazon.com/STS/latest/UsingSTS/sts-enableregions.html\">Activating STS in a New Region</a> in the <i>Using Temporary Security Credentials</i> guide. </p> <p>For information about STS endpoints, see <a href=\"http://docs.aws.amazon.com/general/latest/gr/rande.html#sts_region\">Regions and Endpoints</a> in the <i>AWS General Reference</i>.</p> <p> <b>Recording API requests</b> </p> <p>STS supports AWS CloudTrail, which is a service that records AWS calls for your AWS account and delivers log files to an Amazon S3 bucket. By using information collected by CloudTrail, you can determine what requests were successfully made to STS, who made the request, when it was made, and so on. To learn more about CloudTrail, including how to turn it on and find your log files, see the <a href=\"http://docs.aws.amazon.com/awscloudtrail/latest/userguide/what_is_cloud_trail_top_level.html\">AWS CloudTrail User Guide</a>.</p>",
11
12
  "shapes": {
12
13
  "AssumeRoleRequest": {
13
14
  "base": null,
@@ -15,7 +16,7 @@
15
16
  }
16
17
  },
17
18
  "AssumeRoleResponse": {
18
- "base": "<p>Contains the result of a successful call to the <a>AssumeRole</a> action, including temporary AWS credentials that can be used to make AWS requests. </p>",
19
+ "base": "<p>Contains the response to a successful <a>AssumeRole</a> request, including temporary AWS credentials that can be used to make AWS requests. </p>",
19
20
  "refs": {
20
21
  }
21
22
  },
@@ -25,7 +26,7 @@
25
26
  }
26
27
  },
27
28
  "AssumeRoleWithSAMLResponse": {
28
- "base": "<p>Contains the result of a successful call to the <a>AssumeRoleWithSAML</a> action, including temporary AWS credentials that can be used to make AWS requests. </p>",
29
+ "base": "<p>Contains the response to a successful <a>AssumeRoleWithSAML</a> request, including temporary AWS credentials that can be used to make AWS requests. </p>",
29
30
  "refs": {
30
31
  }
31
32
  },
@@ -35,7 +36,7 @@
35
36
  }
36
37
  },
37
38
  "AssumeRoleWithWebIdentityResponse": {
38
- "base": "<p>Contains the result of a successful call to the <a>AssumeRoleWithWebIdentity</a> action, including temporary AWS credentials that can be used to make AWS requests. </p>",
39
+ "base": "<p>Contains the response to a successful <a>AssumeRoleWithWebIdentity</a> request, including temporary AWS credentials that can be used to make AWS requests. </p>",
39
40
  "refs": {
40
41
  }
41
42
  },
@@ -51,7 +52,7 @@
51
52
  "base": null,
52
53
  "refs": {
53
54
  "AssumeRoleWithSAMLResponse$Audience": "<p> The value of the <code>Recipient</code> attribute of the <code>SubjectConfirmationData</code> element of the SAML assertion. </p>",
54
- "AssumeRoleWithWebIdentityResponse$Audience": "<p> The intended audience of the web identity token. This is traditionally the client identifier issued to the application that requested the web identity token.</p>"
55
+ "AssumeRoleWithWebIdentityResponse$Audience": "<p> The intended audience (also known as client ID) of the web identity token. This is traditionally the client identifier issued to the application that requested the web identity token.</p>"
55
56
  }
56
57
  },
57
58
  "Credentials": {
@@ -91,7 +92,7 @@
91
92
  }
92
93
  },
93
94
  "GetFederationTokenResponse": {
94
- "base": "<p>Contains the result of a successful call to the <a>GetFederationToken</a> action, including temporary AWS credentials that can be used to make AWS requests. </p>",
95
+ "base": "<p>Contains the response to a successful <a>GetFederationToken</a> request, including temporary AWS credentials that can be used to make AWS requests. </p>",
95
96
  "refs": {
96
97
  }
97
98
  },
@@ -101,7 +102,7 @@
101
102
  }
102
103
  },
103
104
  "GetSessionTokenResponse": {
104
- "base": "<p>Contains the result of a successful call to the <a>GetSessionToken</a> action, including temporary AWS credentials that can be used to make AWS requests. </p>",
105
+ "base": "<p>Contains the response to a successful <a>GetSessionToken</a> request, including temporary AWS credentials that can be used to make AWS requests. </p>",
105
106
  "refs": {
106
107
  }
107
108
  },
@@ -129,7 +130,7 @@
129
130
  "base": null,
130
131
  "refs": {
131
132
  "AssumeRoleWithSAMLResponse$Issuer": "<p>The value of the <code>Issuer</code> element of the SAML assertion.</p>",
132
- "AssumeRoleWithWebIdentityResponse$Provider": "<p> The issuing authority of the web identity token presented. For OpenID Connect ID Tokens this contains the value of the <code>iss</code> field. For OAuth 2.0 Access Tokens, this contains the value of the <code>ProviderId</code> parameter that was passed in the <code>AssumeRoleWithWebIdentity</code> request.</p>"
133
+ "AssumeRoleWithWebIdentityResponse$Provider": "<p> The issuing authority of the web identity token presented. For OpenID Connect ID Tokens this contains the value of the <code>iss</code> field. For OAuth 2.0 access tokens, this contains the value of the <code>ProviderId</code> parameter that was passed in the <code>AssumeRoleWithWebIdentity</code> request.</p>"
133
134
  }
134
135
  },
135
136
  "MalformedPolicyDocumentException": {
@@ -216,7 +217,7 @@
216
217
  "durationSecondsType": {
217
218
  "base": null,
218
219
  "refs": {
219
- "AssumeRoleWithSAMLRequest$DurationSeconds": "<p>The duration, in seconds, of the role session. The value can range from 900 seconds (15 minutes) to 3600 seconds (1 hour). By default, the value is set to 3600 seconds. An expiration can also be specified in the SAML authentication response's <code>NotOnOrAfter</code> value. The actual expiration time is whichever value is shorter. </p>",
220
+ "AssumeRoleWithSAMLRequest$DurationSeconds": "<p>The duration, in seconds, of the role session. The value can range from 900 seconds (15 minutes) to 3600 seconds (1 hour). By default, the value is set to 3600 seconds. An expiration can also be specified in the SAML authentication response's <code>SessionNotOnOrAfter</code> value. The actual expiration time is whichever value is shorter. </p> <note>The maximum duration for a session is 1 hour, and the minimum duration is 15 minutes, even if values outside this range are specified. </note>",
220
221
  "AssumeRoleWithWebIdentityRequest$DurationSeconds": "<p>The duration, in seconds, of the role session. The value can range from 900 seconds (15 minutes) to 3600 seconds (1 hour). By default, the value is set to 3600 seconds. </p>",
221
222
  "GetFederationTokenRequest$DurationSeconds": "<p>The duration, in seconds, that the session should last. Acceptable durations for federation sessions range from 900 seconds (15 minutes) to 129600 seconds (36 hours), with 43200 seconds (12 hours) as the default. Sessions obtained using AWS account (root) credentials are restricted to a maximum of 3600 seconds (one hour). If the specified duration is longer than one hour, the session obtained by using AWS account (root) credentials defaults to one hour. </p>",
222
223
  "GetSessionTokenRequest$DurationSeconds": "<p>The duration, in seconds, that the credentials should remain valid. Acceptable durations for IAM user sessions range from 900 seconds (15 minutes) to 129600 seconds (36 hours), with 43200 seconds (12 hours) as the default. Sessions for AWS account owners are restricted to a maximum of 3600 seconds (one hour). If the duration is longer than one hour, the session for AWS account owners defaults to one hour. </p>"
@@ -237,7 +238,7 @@
237
238
  "externalIdType": {
238
239
  "base": null,
239
240
  "refs": {
240
- "AssumeRoleRequest$ExternalId": "<p>A unique identifier that is used by third parties to assume a role in their customers' accounts. For each role that the third party can assume, they should instruct their customers to create a role with the external ID that the third party generated. Each time the third party assumes the role, they must pass the customer's external ID. The external ID is useful in order to help third parties bind a role to the customer who created it. For more information about the external ID, see <a href=\"http://docs.aws.amazon.com/STS/latest/UsingSTS/sts-delegating-externalid.html\" target=\"_blank\">About the External ID</a> in <i>Using Temporary Security Credentials</i>. </p>"
241
+ "AssumeRoleRequest$ExternalId": "<p>A unique identifier that is used by third parties to assume a role in their customers' accounts. For each role that the third party can assume, they should instruct their customers to create a role with the external ID that the third party generated. Each time the third party assumes the role, they must pass the customer's external ID. The external ID is useful in order to help third parties bind a role to the customer who created it. For more information about the external ID, see <a href=\"http://docs.aws.amazon.com/STS/latest/UsingSTS/sts-delegating-externalid.html\" target=\"_blank\">About the External ID</a> in <i>Using Temporary Security Credentials</i>.</p>"
241
242
  }
242
243
  },
243
244
  "federatedIdType": {
@@ -261,7 +262,7 @@
261
262
  "invalidAuthorizationMessage": {
262
263
  "base": null,
263
264
  "refs": {
264
- "InvalidAuthorizationMessageException$message": "<p>The error message associated with the error.</p>"
265
+ "InvalidAuthorizationMessageException$message": null
265
266
  }
266
267
  },
267
268
  "invalidIdentityTokenMessage": {
@@ -300,7 +301,7 @@
300
301
  "serialNumberType": {
301
302
  "base": null,
302
303
  "refs": {
303
- "AssumeRoleRequest$SerialNumber": "<p>The identification number of the MFA device that is associated with the user who is making the <code>AssumeRole</code> call. Specify this value if the trust policy of the role being assumed includes a condition that requires MFA authentication. The value is either the serial number for a hardware device (such as <code>GAHT12345678</code>) or an Amazon Resource Name (ARN) for a virtual device (such as <code>arn:aws:iam::123456789012:mfa/user</code>). </p>",
304
+ "AssumeRoleRequest$SerialNumber": "<p>The identification number of the MFA device that is associated with the user who is making the <code>AssumeRole</code> call. Specify this value if the trust policy of the role being assumed includes a condition that requires MFA authentication. The value is either the serial number for a hardware device (such as <code>GAHT12345678</code>) or an Amazon Resource Name (ARN) for a virtual device (such as <code>arn:aws:iam::123456789012:mfa/user</code>).</p>",
304
305
  "GetSessionTokenRequest$SerialNumber": "<p>The identification number of the MFA device that is associated with the IAM user who is making the <code>GetSessionToken</code> call. Specify this value if the IAM user has a policy that requires MFA authentication. The value is either the serial number for a hardware device (such as <code>GAHT12345678</code>) or an Amazon Resource Name (ARN) for a virtual device (such as <code>arn:aws:iam::123456789012:mfa/user</code>). You can find the device for an IAM user by going to the AWS Management Console and viewing the user's security credentials. </p>"
305
306
  }
306
307
  },
@@ -308,7 +309,7 @@
308
309
  "base": null,
309
310
  "refs": {
310
311
  "AssumeRoleRequest$Policy": "<p>An IAM policy in JSON format.</p> <p>The policy parameter is optional. If you pass a policy, the temporary security credentials that are returned by the operation have the permissions that are allowed by both the access policy of the role that is being assumed, <i><b>and</b></i> the policy that you pass. This gives you a way to further restrict the permissions for the resulting temporary security credentials. You cannot use the passed policy to grant permissions that are in excess of those allowed by the access policy of the role that is being assumed. For more information, see <a href=\"http://docs.aws.amazon.com/STS/latest/UsingSTS/permissions-assume-role.html\">Permissions for AssumeRole</a> in <i>Using Temporary Security Credentials</i>. </p>",
311
- "AssumeRoleWithSAMLRequest$Policy": "<p>An IAM policy in JSON format.</p> <p>The policy parameter is optional. If you pass a policy, the temporary security credentials that are returned by the operation have the permissions that are allowed by both the access policy of the role that is being assumed, <i><b>and</b></i> the policy that you pass. This gives you a way to further restrict the permissions for the resulting temporary security credentials. You cannot use the passed policy to grant permissions that are in excess of those allowed by the access policy of the role that is being assumed. For more information, see <a href=\"http://docs.aws.amazon.com/STS/latest/UsingSTS/permissions-assume-role.html\">Permissions for AssumeRoleWithSAML</a> in <i>Using Temporary Security Credentials</i>. </p>",
312
+ "AssumeRoleWithSAMLRequest$Policy": "<p>An IAM policy in JSON format.</p> <p>The policy parameter is optional. If you pass a policy, the temporary security credentials that are returned by the operation have the permissions that are allowed by both the access policy of the role that is being assumed, <i><b>and</b></i> the policy that you pass. This gives you a way to further restrict the permissions for the resulting temporary security credentials. You cannot use the passed policy to grant permissions that are in excess of those allowed by the access policy of the role that is being assumed. For more information, see <a href=\"http://docs.aws.amazon.com/STS/latest/UsingSTS/permissions-assume-role.html\">Permissions for AssumeRoleWithSAML</a> in <i>Using Temporary Security Credentials</i>. </p> <note>The policy must be 2048 bytes or shorter, and its packed size must be less than 450 bytes.</note>",
312
313
  "AssumeRoleWithWebIdentityRequest$Policy": "<p>An IAM policy in JSON format.</p> <p>The policy parameter is optional. If you pass a policy, the temporary security credentials that are returned by the operation have the permissions that are allowed by both the access policy of the role that is being assumed, <i><b>and</b></i> the policy that you pass. This gives you a way to further restrict the permissions for the resulting temporary security credentials. You cannot use the passed policy to grant permissions that are in excess of those allowed by the access policy of the role that is being assumed. For more information, see <a href=\"http://docs.aws.amazon.com/STS/latest/UsingSTS/permissions-assume-role.html\">Permissions for AssumeRoleWithWebIdentity</a> in <i>Using Temporary Security Credentials</i>. </p>",
313
314
  "GetFederationTokenRequest$Policy": "<p>An IAM policy in JSON format that is passed with the <code>GetFederationToken</code> call and evaluated along with the policy or policies that are attached to the IAM user whose credentials are used to call <code>GetFederationToken</code>. The passed policy is used to scope down the permissions that are available to the IAM user, by allowing only a subset of the permissions that are granted to the IAM user. The passed policy cannot grant more permissions than those granted to the IAM user. The final permissions for the federated user are the most restrictive set based on the intersection of the passed policy and the IAM user policy.</p> <p>If you do not pass a policy, the resulting temporary security credentials have no effective permissions. The only exception is when the temporary security credentials are used to access a resource that has a resource-based policy that specifically allows the federated user to access the resource. </p> <p>For more information about how permissions work, see <a href=\"http://docs.aws.amazon.com/STS/latest/UsingSTS/permissions-get-federation-token.html\">Permissions for GetFederationToken</a> in <i>Using Temporary Security Credentials</i>.</p>"
314
315
  }
@@ -316,7 +317,7 @@
316
317
  "tokenCodeType": {
317
318
  "base": null,
318
319
  "refs": {
319
- "AssumeRoleRequest$TokenCode": "<p>The value provided by the MFA device, if the trust policy of the role being assumed requires MFA (that is, if the policy includes a condition that tests for MFA). If the role being assumed requires MFA and if the <code>TokenCode</code> value is missing or expired, the <code>AssumeRole</code> call returns an \"access denied\" error. </p>",
320
+ "AssumeRoleRequest$TokenCode": "<p>The value provided by the MFA device, if the trust policy of the role being assumed requires MFA (that is, if the policy includes a condition that tests for MFA). If the role being assumed requires MFA and if the <code>TokenCode</code> value is missing or expired, the <code>AssumeRole</code> call returns an \"access denied\" error.</p>",
320
321
  "GetSessionTokenRequest$TokenCode": "<p>The value provided by the MFA device, if MFA is required. If any policy requires the IAM user to submit an MFA code, specify this value. If MFA authentication is required, and the user does not provide a code when requesting a set of temporary security credentials, the user will receive an \"access denied\" response when requesting resources that require MFA authentication.</p>"
321
322
  }
322
323
  },
@@ -329,7 +330,7 @@
329
330
  "urlType": {
330
331
  "base": null,
331
332
  "refs": {
332
- "AssumeRoleWithWebIdentityRequest$ProviderId": "<p>The fully-qualified host component of the domain name of the identity provider. Specify this value only for OAuth access tokens. Do not specify this value for OpenID Connect ID tokens, such as <code>accounts.google.com</code>. Do not include URL schemes and port numbers. Currently, <code>www.amazon.com</code> and <code>graph.facebook.com</code> are supported. </p>"
333
+ "AssumeRoleWithWebIdentityRequest$ProviderId": "<p>The fully qualified host component of the domain name of the identity provider.</p> <p>Specify this value only for OAuth 2.0 access tokens. Currently <code>www.amazon.com</code> and <code>graph.facebook.com</code> are the only supported identity providers for OAuth 2.0 access tokens. Do not include URL schemes and port numbers.</p> <p>Do not specify this value for OpenID Connect ID tokens. </p>"
333
334
  }
334
335
  },
335
336
  "userNameType": {
@@ -343,7 +344,7 @@
343
344
  "webIdentitySubjectType": {
344
345
  "base": null,
345
346
  "refs": {
346
- "AssumeRoleWithWebIdentityResponse$SubjectFromWebIdentityToken": "<p>The unique user identifier that is returned by the identity provider. This identifier is associated with the <code>WebIdentityToken</code> that was submitted with the <code>AssumeRoleWithWebIdentity</code> call. The identifier is typically unique to the user and the application that acquired the <code>WebIdentityToken</code> (pairwise identifier). If an OpenID Connect ID token was submitted in the <code>WebIdentityToken</code>, this value is returned by the identity provider as the token's <code>sub</code> (Subject) claim. </p>"
347
+ "AssumeRoleWithWebIdentityResponse$SubjectFromWebIdentityToken": "<p>The unique user identifier that is returned by the identity provider. This identifier is associated with the <code>WebIdentityToken</code> that was submitted with the <code>AssumeRoleWithWebIdentity</code> call. The identifier is typically unique to the user and the application that acquired the <code>WebIdentityToken</code> (pairwise identifier). For OpenID Connect ID tokens, this field contains the value returned by the identity provider as the token's <code>sub</code> (Subject) claim. </p>"
347
348
  }
348
349
  }
349
350
  }
@@ -7,7 +7,9 @@ module Aws
7
7
  # @param [Seahorse::Client::RequestContext] context
8
8
  # @return [Seahorse::Client::Response]
9
9
  def call(context)
10
- @handler.call(add_headers(context))
10
+ @handler.call(add_headers(context)).on(200..599) do |resp|
11
+ context[:request_id] = context.http_response.headers['x-amzn-requestid']
12
+ end
11
13
  end
12
14
 
13
15
  private
@@ -8,11 +8,18 @@ module Aws
8
8
  context.http_request.body = build_body(context)
9
9
  @handler.call(context).on_success do |response|
10
10
  response.data = extract_data(response.context) unless response.data
11
+ end.on(200..599) do |respson|
12
+ context[:request_id] = extract_request_id(context)
11
13
  end
12
14
  end
13
15
 
14
16
  private
15
17
 
18
+ def extract_request_id(context)
19
+ headers = context.http_response.headers
20
+ headers['x-amz-request-id'] || headers['x-amzn-requestid']
21
+ end
22
+
16
23
  def build_body(context)
17
24
  input = context.operation.input
18
25
  case
@@ -1,3 +1,3 @@
1
1
  module Aws
2
- VERSION = '2.0.41'
2
+ VERSION = '2.0.42'
3
3
  end
@@ -6,6 +6,15 @@ module Seahorse
6
6
  # the Ruby's `Net::HTTP`.
7
7
  class Handler < Client::Handler
8
8
 
9
+ # @api private
10
+ class TruncatedBodyError < IOError
11
+ def initialize(bytes_expected, bytes_received)
12
+ msg = "http response body truncated, expected #{bytes_expected} "
13
+ msg << "bytes, received #{bytes_received} bytes"
14
+ super(msg)
15
+ end
16
+ end
17
+
9
18
  NETWORK_ERRORS = [
10
19
  SocketError, EOFError, IOError, Timeout::Error,
11
20
  Errno::ECONNABORTED, Errno::ECONNRESET, Errno::EPIPE,
@@ -54,11 +63,13 @@ module Seahorse
54
63
  status_code = net_resp.code.to_i
55
64
  headers = extract_headers(net_resp)
56
65
 
66
+ bytes_received = 0
57
67
  resp.signal_headers(status_code, headers)
58
68
  net_resp.read_body do |chunk|
69
+ bytes_received += chunk.bytesize
59
70
  resp.signal_data(chunk)
60
71
  end
61
- resp.signal_done
72
+ complete_response(req, resp, bytes_received)
62
73
 
63
74
  end
64
75
  end
@@ -71,6 +82,28 @@ module Seahorse
71
82
  resp.signal_error(error)
72
83
  end
73
84
 
85
+ def complete_response(req, resp, bytes_received)
86
+ if should_verify_bytes?(req, resp)
87
+ verify_bytes_received(resp, bytes_received)
88
+ else
89
+ resp.signal_done
90
+ end
91
+ end
92
+
93
+ def should_verify_bytes?(req, resp)
94
+ req.http_method != 'HEAD' && resp.headers['content-length']
95
+ end
96
+
97
+ def verify_bytes_received(resp, bytes_received)
98
+ bytes_expected = resp.headers['content-length'].to_i
99
+ if bytes_expected == bytes_received
100
+ resp.signal_done
101
+ else
102
+ error = TruncatedBodyError.new(bytes_expected, bytes_received)
103
+ resp.signal_error(NetworkingError.new(error, error.message))
104
+ end
105
+ end
106
+
74
107
  def session(config, req, &block)
75
108
  pool_for(config).session_for(req.endpoint) do |http|
76
109
  http.read_timeout = config.http_read_timeout
@@ -10,6 +10,7 @@ module Seahorse
10
10
  def self.apply!
11
11
  if RUBY_VERSION >= '2.0'
12
12
  Net::HTTP.send(:include, Ruby_2)
13
+ Net::HTTP::IDEMPOTENT_METHODS_.clear
13
14
  elsif RUBY_VERSION >= '1.9.3'
14
15
  Net::HTTP.send(:include, Ruby_1_9_3)
15
16
  end
@@ -6,14 +6,10 @@ module Seahorse
6
6
  # The HTTP or HTTPS endpoint to send requests to.
7
7
  # For example:
8
8
  #
9
- # 'example.com'
10
9
  # 'http://example.com'
11
10
  # 'https://example.com'
12
11
  # 'http://example.com:123'
13
12
  #
14
- # This must include the host. It may also include the scheme and
15
- # port. When the scheme is not set it defaults to `https`.
16
- #
17
13
  class Endpoint < Plugin
18
14
 
19
15
  option(:endpoint)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.41
4
+ version: 2.0.42
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-27 00:00:00.000000000 Z
11
+ date: 2015-05-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: multi_json
@@ -446,7 +446,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
446
446
  version: '0'
447
447
  requirements: []
448
448
  rubyforge_project:
449
- rubygems_version: 2.4.5
449
+ rubygems_version: 2.4.6
450
450
  signing_key:
451
451
  specification_version: 4
452
452
  summary: AWS SDK for Ruby - Core