{ "version":"2.0", "metadata":{ "apiVersion":"2023-01-01", "auth":["aws.auth#sigv4"], "endpointPrefix":"signin", "protocol":"rest-json", "protocols":["rest-json"], "serviceFullName":"AWS Sign-In Service", "serviceId":"Signin", "signatureVersion":"v4", "signingName":"signin", "uid":"signin-2023-01-01" }, "operations":{ "CreateOAuth2Token":{ "name":"CreateOAuth2Token", "http":{ "method":"POST", "requestUri":"/v1/token", "responseCode":200 }, "input":{"shape":"CreateOAuth2TokenRequest"}, "output":{"shape":"CreateOAuth2TokenResponse"}, "errors":[ {"shape":"TooManyRequestsError"}, {"shape":"InternalServerException"}, {"shape":"ValidationException"}, {"shape":"AccessDeniedException"} ], "documentation":"
CreateOAuth2Token API
Path: /v1/token Request Method: POST Content-Type: application/json or application/x-www-form-urlencoded
This API implements OAuth 2.0 flows for AWS Sign-In CLI clients, supporting both:
The operation behavior is determined by the grant_type parameter in the request body:
Authorization Code Flow (NOT Idempotent):
Token Refresh Flow (Idempotent):
Authentication and authorization:
Note: This operation cannot be marked as @idempotent because it handles both idempotent (token refresh) and non-idempotent (auth code redemption) flows in a single endpoint.
", "auth":["smithy.api#noAuth"], "staticContextParams":{ "IsControlPlane":{"value":false} }, "authtype":"none" }, "DeleteConsoleAuthorizationConfiguration":{ "name":"DeleteConsoleAuthorizationConfiguration", "http":{ "method":"POST", "requestUri":"/delete-console-authorization-configuration", "responseCode":200 }, "input":{"shape":"DeleteConsoleAuthorizationConfigurationInput"}, "output":{"shape":"DeleteConsoleAuthorizationConfigurationOutput"}, "errors":[ {"shape":"TooManyRequestsError"}, {"shape":"ResourceNotFoundException"}, {"shape":"InternalServerException"}, {"shape":"ValidationException"}, {"shape":"AccessDeniedException"} ], "documentation":"Delete console authorization configuration with automatic scope detection
", "idempotent":true, "staticContextParams":{ "IsControlPlane":{"value":true} } }, "DeleteResourcePermissionStatement":{ "name":"DeleteResourcePermissionStatement", "http":{ "method":"POST", "requestUri":"/delete-resource-permission-statement", "responseCode":200 }, "input":{"shape":"DeleteResourcePermissionStatementInput"}, "output":{"shape":"DeleteResourcePermissionStatementOutput"}, "errors":[ {"shape":"TooManyRequestsError"}, {"shape":"ResourceNotFoundException"}, {"shape":"InternalServerException"}, {"shape":"ValidationException"}, {"shape":"AccessDeniedException"} ], "documentation":"Remove a permission statement from the account's SignIn resource-based policy
", "staticContextParams":{ "IsControlPlane":{"value":true} } }, "GetConsoleAuthorizationConfiguration":{ "name":"GetConsoleAuthorizationConfiguration", "http":{ "method":"POST", "requestUri":"/get-console-authorization-configuration", "responseCode":200 }, "input":{"shape":"GetConsoleAuthorizationConfigurationInput"}, "output":{"shape":"GetConsoleAuthorizationConfigurationOutput"}, "errors":[ {"shape":"TooManyRequestsError"}, {"shape":"ResourceNotFoundException"}, {"shape":"InternalServerException"}, {"shape":"ValidationException"}, {"shape":"AccessDeniedException"} ], "documentation":"Get console authorization configuration with automatic scope detection
", "readonly":true, "staticContextParams":{ "IsControlPlane":{"value":true} } }, "GetResourcePolicy":{ "name":"GetResourcePolicy", "http":{ "method":"POST", "requestUri":"/get-resource-policy", "responseCode":200 }, "input":{"shape":"GetResourcePolicyInput"}, "output":{"shape":"GetResourcePolicyOutput"}, "errors":[ {"shape":"TooManyRequestsError"}, {"shape":"ResourceNotFoundException"}, {"shape":"InternalServerException"}, {"shape":"AccessDeniedException"} ], "documentation":"Retrieve the account's consolidated SignIn resource-based policy
", "readonly":true, "staticContextParams":{ "IsControlPlane":{"value":true} } }, "ListResourcePermissionStatements":{ "name":"ListResourcePermissionStatements", "http":{ "method":"POST", "requestUri":"/list-resource-permission-statements", "responseCode":200 }, "input":{"shape":"ListResourcePermissionStatementsInput"}, "output":{"shape":"ListResourcePermissionStatementsOutput"}, "errors":[ {"shape":"TooManyRequestsError"}, {"shape":"ResourceNotFoundException"}, {"shape":"InternalServerException"}, {"shape":"ValidationException"}, {"shape":"AccessDeniedException"} ], "documentation":"Retrieve all permission statements in the account's SignIn resource-based policy
", "readonly":true, "staticContextParams":{ "IsControlPlane":{"value":true} } }, "PutConsoleAuthorizationConfiguration":{ "name":"PutConsoleAuthorizationConfiguration", "http":{ "method":"POST", "requestUri":"/put-console-authorization-configuration", "responseCode":200 }, "input":{"shape":"PutConsoleAuthorizationConfigurationInput"}, "output":{"shape":"PutConsoleAuthorizationConfigurationOutput"}, "errors":[ {"shape":"TooManyRequestsError"}, {"shape":"ConflictException"}, {"shape":"ResourceNotFoundException"}, {"shape":"InternalServerException"}, {"shape":"ValidationException"}, {"shape":"AccessDeniedException"} ], "documentation":"Enable console authorization configuration with automatic scope detection
", "idempotent":true, "staticContextParams":{ "IsControlPlane":{"value":true} } }, "PutResourcePermissionStatement":{ "name":"PutResourcePermissionStatement", "http":{ "method":"POST", "requestUri":"/put-resource-permission-statement", "responseCode":200 }, "input":{"shape":"PutResourcePermissionStatementInput"}, "output":{"shape":"PutResourcePermissionStatementOutput"}, "errors":[ {"shape":"TooManyRequestsError"}, {"shape":"ConflictException"}, {"shape":"ServiceQuotaExceededException"}, {"shape":"InternalServerException"}, {"shape":"ValidationException"}, {"shape":"AccessDeniedException"} ], "documentation":"Create a permission statement in the account's SignIn resource-based policy
", "idempotent":true, "staticContextParams":{ "IsControlPlane":{"value":true} } } }, "shapes":{ "AccessDeniedException":{ "type":"structure", "required":[ "error", "message" ], "members":{ "error":{ "shape":"OAuth2ErrorCode", "documentation":"OAuth 2.0 error code indicating the specific type of access denial Can be TOKEN_EXPIRED, AUTHCODE_EXPIRED, USER_CREDENTIALS_CHANGED, or INSUFFICIENT_PERMISSIONS
" }, "message":{ "shape":"String", "documentation":"Detailed message explaining the access denial Provides specific information about why access was denied
" } }, "documentation":"Error thrown for access denied scenarios with flexible HTTP status mapping
Runtime HTTP Status Code Mapping:
The specific HTTP status code is determined at runtime based on the error enum value. Consumers should use the error field to determine the specific access denial reason.
", "exception":true }, "AccessToken":{ "type":"structure", "required":[ "accessKeyId", "secretAccessKey", "sessionToken" ], "members":{ "accessKeyId":{ "shape":"String", "documentation":"AWS access key ID for temporary credentials
", "locationName":"accessKeyId" }, "secretAccessKey":{ "shape":"String", "documentation":"AWS secret access key for temporary credentials
", "locationName":"secretAccessKey" }, "sessionToken":{ "shape":"String", "documentation":"AWS session token for temporary credentials
", "locationName":"sessionToken" } }, "documentation":"AWS credentials structure containing temporary access credentials
The scoped-down, 15 minute duration AWS credentials. Scoping down will be based on CLI policy (CLI team needs to create it). Similar to cloud shell implementation.
", "sensitive":true }, "AuthorizationCode":{ "type":"string", "documentation":"Authorization code received from AWS Sign-In /v1/authorize endpoint
The authorization code received from AWS Sign-In from /v1/authorize. Used in auth code redemption flow only.
", "max":512, "min":1 }, "Boolean":{ "type":"boolean", "box":true }, "ClientId":{ "type":"string", "documentation":"Client identifier pattern for AWS Sign-In devtools clients
The ARN used by client as part of Sign-In onboarding. Expected values:
This will be finalized after consulting with UX as this is visible to end customer.
", "pattern":"arn:aws:signin:::devtools/(cross-device|same-device)" }, "ClientToken":{ "type":"string", "documentation":"Idempotency token
", "max":64, "min":1, "pattern":"[!-~]+" }, "CodeVerifier":{ "type":"string", "documentation":"PKCE code verifier for OAuth 2.0 security
PKCE code verifier to prove possession of the original code challenge. Used to prevent authorization code interception attacks in public clients. Must be 43-128 characters using unreserved characters [A-Z] / [a-z] / [0-9] / "-" / "." / "_" / "~"
", "max":128, "min":43, "pattern":"[A-Za-z0-9\\-._~]+" }, "Condition":{ "type":"map", "key":{"shape":"String"}, "value":{"shape":"ConditionValues"}, "documentation":"Condition mapping of keys to values
" }, "ConditionBlock":{ "type":"map", "key":{"shape":"ConditionType"}, "value":{"shape":"Condition"}, "documentation":"Condition block for policy statements
" }, "ConditionType":{ "type":"string", "documentation":"Condition type identifier
" }, "ConditionValues":{ "type":"list", "member":{"shape":"String"}, "documentation":"List of condition values
" }, "ConflictException":{ "type":"structure", "required":[ "error", "message" ], "members":{ "error":{ "shape":"OAuth2ErrorCode", "documentation":"OAuth 2.0 error code indicating conflict Will be CONFLICT
" }, "message":{ "shape":"String", "documentation":"Detailed message explaining the conflict Provides specific information about what caused the conflict
" } }, "documentation":"Error thrown when request conflicts with current state
HTTP Status Code: 409 Conflict
Used when the request conflicts with the current state of the resource
", "error":{ "httpStatusCode":409, "senderFault":true }, "exception":true }, "ConsolePermissionMaxResults":{ "type":"integer", "documentation":"Maximum number of results for list operations
", "box":true, "max":100, "min":1 }, "CreateOAuth2TokenRequest":{ "type":"structure", "required":["tokenInput"], "members":{ "tokenInput":{ "shape":"CreateOAuth2TokenRequestBody", "documentation":"Flattened token operation inputs The specific operation is determined by grant_type in the request body
" } }, "documentation":"Input structure for CreateOAuth2Token operation
Contains flattened token operation inputs for both authorization code and refresh token flows. The operation type is determined by the grant_type parameter in the request body.
", "payload":"tokenInput" }, "CreateOAuth2TokenRequestBody":{ "type":"structure", "required":[ "clientId", "grantType" ], "members":{ "clientId":{ "shape":"ClientId", "documentation":"The client identifier (ARN) used during Sign-In onboarding Required for both authorization code and refresh token flows
", "locationName":"clientId" }, "grantType":{ "shape":"GrantType", "documentation":"OAuth 2.0 grant type - determines which flow is used Must be "authorization_code" or "refresh_token"
", "locationName":"grantType" }, "code":{ "shape":"AuthorizationCode", "documentation":"The authorization code received from /v1/authorize Required only when grant_type=authorization_code
" }, "redirectUri":{ "shape":"RedirectUri", "documentation":"The redirect URI that must match the original authorization request Required only when grant_type=authorization_code
", "locationName":"redirectUri" }, "codeVerifier":{ "shape":"CodeVerifier", "documentation":"PKCE code verifier to prove possession of the original code challenge Required only when grant_type=authorization_code
", "locationName":"codeVerifier" }, "refreshToken":{ "shape":"RefreshToken", "documentation":"The refresh token returned from auth_code redemption Required only when grant_type=refresh_token
", "locationName":"refreshToken" } }, "documentation":"Request body payload for CreateOAuth2Token operation
The operation type is determined by the grant_type parameter:
Flattened token operation outputs The specific response fields depend on the grant_type used in the request
" } }, "documentation":"Output structure for CreateOAuth2Token operation
Contains flattened token operation outputs for both authorization code and refresh token flows. The response content depends on the grant_type from the original request.
", "payload":"tokenOutput" }, "CreateOAuth2TokenResponseBody":{ "type":"structure", "required":[ "accessToken", "tokenType", "expiresIn", "refreshToken" ], "members":{ "accessToken":{ "shape":"AccessToken", "documentation":"Scoped-down AWS credentials (15 minute duration) Present for both authorization code redemption and token refresh
", "locationName":"accessToken" }, "tokenType":{ "shape":"TokenType", "documentation":"Token type indicating this is AWS SigV4 credentials Value is "aws_sigv4" for both flows
", "locationName":"tokenType" }, "expiresIn":{ "shape":"ExpiresIn", "documentation":"Time to expiry in seconds (maximum 900) Present for both authorization code redemption and token refresh
", "locationName":"expiresIn" }, "refreshToken":{ "shape":"RefreshToken", "documentation":"Encrypted refresh token with cnf.jkt (SHA-256 thumbprint of presented jwk) Always present in responses (required for both flows)
", "locationName":"refreshToken" }, "idToken":{ "shape":"IdToken", "documentation":"ID token containing user identity information Present only in authorization code redemption response (grant_type=authorization_code) Not included in token refresh responses
", "locationName":"idToken" } }, "documentation":"Response body payload for CreateOAuth2Token operation
The response content depends on the grant_type from the request:
Target account identifier
" } }, "documentation":"Input for DeleteConsoleAuthorizationConfiguration operation
" }, "DeleteConsoleAuthorizationConfigurationOutput":{ "type":"structure", "required":[ "targetId", "scope", "consoleAuthorizationEnabled" ], "members":{ "targetId":{ "shape":"TargetId", "documentation":"Target account identifier
" }, "scope":{ "shape":"String", "documentation":"Authorization scope
" }, "consoleAuthorizationEnabled":{ "shape":"Boolean", "documentation":"Whether console authorization is enabled
" } }, "documentation":"Output for DeleteConsoleAuthorizationConfiguration operation
" }, "DeleteResourcePermissionStatementInput":{ "type":"structure", "required":["statementId"], "members":{ "statementId":{ "shape":"StatementId", "documentation":"Unique identifier of the permission statement to delete
" }, "clientToken":{ "shape":"ClientToken", "documentation":"Idempotency token for the request
", "idempotencyToken":true } }, "documentation":"Input for DeleteResourcePermissionStatement operation
" }, "DeleteResourcePermissionStatementOutput":{ "type":"structure", "members":{}, "documentation":"Output for DeleteResourcePermissionStatement operation
" }, "ExcludedPrincipal":{ "type":"string", "documentation":"Principal to exclude from permission statements
", "max":2048, "min":20, "pattern":"arn:aws:((iam::[0-9]{12}:role/[a-zA-Z0-9_+=,.@-]{1,64})|(iam::[0-9]{12}:user/[a-zA-Z0-9_+=,.@-]{1,64})|(sts::[0-9]{12}:federated-user/[a-zA-Z0-9_+=,.@-]{2,193})|(iam::[0-9]{12}:root))" }, "ExpiresIn":{ "type":"integer", "documentation":"Time to expiry in seconds
The time to expiry in seconds, for these purposes will be at most 900 (15 minutes).
", "box":true, "max":900, "min":1 }, "GetConsoleAuthorizationConfigurationInput":{ "type":"structure", "members":{ "targetId":{ "shape":"TargetId", "documentation":"Target account identifier
" } }, "documentation":"Input for GetConsoleAuthorizationConfiguration operation
" }, "GetConsoleAuthorizationConfigurationOutput":{ "type":"structure", "required":[ "targetId", "scope", "consoleAuthorizationEnabled" ], "members":{ "targetId":{ "shape":"TargetId", "documentation":"Target account identifier
" }, "scope":{ "shape":"String", "documentation":"Authorization scope
" }, "consoleAuthorizationEnabled":{ "shape":"Boolean", "documentation":"Whether console authorization is enabled
" } }, "documentation":"Output for GetConsoleAuthorizationConfiguration operation
" }, "GetResourcePolicyInput":{ "type":"structure", "members":{}, "documentation":"Input for GetResourcePolicy operation
" }, "GetResourcePolicyOutput":{ "type":"structure", "required":["signinResourceBasedPolicy"], "members":{ "signinResourceBasedPolicy":{ "shape":"SigninResourceBasedPolicy", "documentation":"The account's SignIn resource-based policy
" } }, "documentation":"Output for GetResourcePolicy operation
" }, "GrantType":{ "type":"string", "documentation":"OAuth 2.0 grant type parameter
For auth code redemption: Must be "authorization_code" For token refresh: Must be "refresh_token"
Based on client_id & grant_type, authn/authz is skipped for CLI endpoints.
", "pattern":"(authorization_code|refresh_token)" }, "IdToken":{ "type":"string", "documentation":"ID token containing user identity information
Encoded JWT token containing user identity claims and authentication context. Returned only in authorization code redemption responses (grant_type=authorization_code). Contains user identity information such as ARN and other identity claims.
", "max":4096, "min":1 }, "InternalServerException":{ "type":"structure", "required":[ "error", "message" ], "members":{ "error":{ "shape":"OAuth2ErrorCode", "documentation":"OAuth 2.0 error code indicating server error Will be SERVER_ERROR for internal server errors
" }, "message":{ "shape":"String", "documentation":"Detailed message explaining the server error May include error details for debugging purposes
" } }, "documentation":"Error thrown when an internal server error occurs
HTTP Status Code: 500 Internal Server Error
Used for unexpected server-side errors that prevent request processing.
", "error":{"httpStatusCode":500}, "exception":true, "fault":true }, "ListResourcePermissionStatementsInput":{ "type":"structure", "members":{ "maxResults":{ "shape":"ConsolePermissionMaxResults", "documentation":"Maximum number of results to return
" }, "nextToken":{ "shape":"NextToken", "documentation":"Token for pagination
" } }, "documentation":"Input for ListResourcePermissionStatements operation
" }, "ListResourcePermissionStatementsOutput":{ "type":"structure", "required":["permissionStatements"], "members":{ "permissionStatements":{ "shape":"PermissionStatementSummaries", "documentation":"List of permission statement summaries
" }, "nextToken":{ "shape":"NextToken", "documentation":"Token for next page of results
" } }, "documentation":"Output for ListResourcePermissionStatements operation
" }, "NextToken":{ "type":"string", "documentation":"Pagination token
", "max":2048, "min":0, "pattern":"[-a-zA-Z0-9+=/_]*" }, "OAuth2ErrorCode":{ "type":"string", "documentation":"OAuth 2.0 error codes returned by the server
Standard OAuth 2.0 error codes used in error responses to indicate the specific type of error that occurred during token operations.
", "enum":[ "TOKEN_EXPIRED", "USER_CREDENTIALS_CHANGED", "INSUFFICIENT_PERMISSIONS", "AUTHCODE_EXPIRED", "server_error", "INVALID_REQUEST", "RESOURCE_NOT_FOUND", "CONFLICT", "SERVICE_QUOTA_EXCEEDED" ] }, "PermissionStatementSummaries":{ "type":"list", "member":{"shape":"PermissionStatementSummary"} }, "PermissionStatementSummary":{ "type":"structure", "required":["sid"], "members":{ "sid":{ "shape":"StatementId", "documentation":"Unique identifier for the permission statement
" }, "condition":{ "shape":"ConditionBlock", "documentation":"Condition block for the permission statement
" } }, "documentation":"Summary of a permission statement
" }, "PolicyActions":{ "type":"list", "member":{"shape":"String"}, "documentation":"List of policy actions
" }, "PolicyStatement":{ "type":"structure", "members":{ "effect":{ "shape":"String", "documentation":"Effect of the policy statement (Allow/Deny)
", "locationName":"Effect" }, "principal":{ "shape":"Principal", "documentation":"Principal the statement applies to
", "locationName":"Principal" }, "action":{ "shape":"PolicyActions", "documentation":"Actions the statement controls
", "locationName":"Action" }, "resource":{ "shape":"String", "documentation":"Resource the statement applies to
", "locationName":"Resource" }, "condition":{ "shape":"ConditionBlock", "documentation":"Condition block for the statement
", "locationName":"Condition" } }, "documentation":"Individual policy statement within a resource-based policy
" }, "PolicyStatements":{ "type":"list", "member":{"shape":"PolicyStatement"} }, "Principal":{ "type":"map", "key":{"shape":"String"}, "value":{"shape":"String"}, "documentation":"IAM principal identifier
" }, "PutConsoleAuthorizationConfigurationInput":{ "type":"structure", "members":{ "targetId":{ "shape":"TargetId", "documentation":"Target account identifier
" } }, "documentation":"Input for PutConsoleAuthorizationConfiguration operation
" }, "PutConsoleAuthorizationConfigurationOutput":{ "type":"structure", "required":[ "targetId", "scope", "consoleAuthorizationEnabled" ], "members":{ "targetId":{ "shape":"TargetId", "documentation":"Target account identifier
" }, "scope":{ "shape":"String", "documentation":"Authorization scope
" }, "consoleAuthorizationEnabled":{ "shape":"Boolean", "documentation":"Whether console authorization is enabled
" } }, "documentation":"Output for PutConsoleAuthorizationConfiguration operation
" }, "PutResourcePermissionStatementInput":{ "type":"structure", "members":{ "sourceVpc":{ "shape":"SourceVpc", "documentation":"VPC identifier to restrict console access
" }, "signinSourceVpce":{ "shape":"SourceVpce", "documentation":"SignIn VPC endpoint identifier
" }, "consoleSourceVpce":{ "shape":"SourceVpce", "documentation":"Console VPC endpoint identifier
" }, "vpcSourceIp":{ "shape":"VpcSourceIp", "documentation":"Source IP address within VPC
" }, "sourceIp":{ "shape":"SourceIp", "documentation":"Source IP address
" }, "requestedRegion":{ "shape":"RequestedRegion", "documentation":"AWS region where the VPC and VPC endpoint reside Required when sourceVpc or signinSourceVpce/consoleSourceVpce is provided
" }, "excludedPrincipal":{ "shape":"ExcludedPrincipal", "documentation":"Principal to exclude from the permission statement
" }, "clientToken":{ "shape":"ClientToken", "documentation":"Idempotency token for the request
", "idempotencyToken":true } }, "documentation":"Input for PutResourcePermissionStatement operation
" }, "PutResourcePermissionStatementOutput":{ "type":"structure", "required":["statementId"], "members":{ "statementId":{ "shape":"StatementId", "documentation":"Unique identifier for the created permission statement
" } }, "documentation":"Output for PutResourcePermissionStatement operation
" }, "RedirectUri":{ "type":"string", "documentation":"Redirect URI for OAuth 2.0 flow validation
The same redirect URI used in the authorization request. This must match exactly what was sent in the original authorization request for security validation.
", "max":2048, "min":1 }, "RefreshToken":{ "type":"string", "documentation":"Encrypted refresh token with cnf.jkt
This is the encrypted refresh token returned from auth code redemption. The token content includes cnf.jkt (SHA-256 thumbprint of the presented jwk). Used in subsequent token refresh requests.
", "max":2048, "min":1, "sensitive":true }, "RequestedRegion":{ "type":"string", "documentation":"AWS region identifier for VPC and VPC endpoint pairing
", "pattern":"[a-z]{2}(-[a-z]+)+-\\d+" }, "ResourceNotFoundException":{ "type":"structure", "required":[ "error", "message" ], "members":{ "error":{ "shape":"OAuth2ErrorCode", "documentation":"OAuth 2.0 error code indicating resource not found Will be RESOURCE_NOT_FOUND
" }, "message":{ "shape":"String", "documentation":"Detailed message explaining which resource was not found Provides specific information about the missing resource
" } }, "documentation":"Error thrown when requested resource is not found
HTTP Status Code: 404 Not Found
Used when the specified resource does not exist
", "error":{ "httpStatusCode":404, "senderFault":true }, "exception":true }, "ServiceQuotaExceededException":{ "type":"structure", "required":[ "error", "message" ], "members":{ "error":{ "shape":"OAuth2ErrorCode", "documentation":"OAuth 2.0 error code indicating service quota exceeded Will be SERVICE_QUOTA_EXCEEDED
" }, "message":{ "shape":"String", "documentation":"Detailed message explaining which quota was exceeded Provides specific information about the limit and current usage
" } }, "documentation":"Error thrown when service quota is exceeded
HTTP Status Code: 402 Payment Required (used as quota exceeded indicator)
Used when the request would cause a service quota to be exceeded
", "error":{ "httpStatusCode":402, "senderFault":true }, "exception":true }, "SigninResourceBasedPolicy":{ "type":"structure", "members":{ "version":{ "shape":"String", "documentation":"Policy version
", "locationName":"Version" }, "statement":{ "shape":"PolicyStatements", "documentation":"Policy statements
", "locationName":"Statement" } }, "documentation":"SignIn resource-based policy document
" }, "SourceIp":{ "type":"string", "documentation":"Source IP address for access control
" }, "SourceVpc":{ "type":"string", "documentation":"VPC identifier for network-based access control
", "pattern":"vpc-([0-9a-f]{8}|[0-9a-f]{17})" }, "SourceVpce":{ "type":"string", "documentation":"VPC endpoint identifier
", "pattern":"vpce-[a-z0-9]{8,20}" }, "StatementId":{ "type":"string", "documentation":"Unique identifier for a permission statement
", "pattern":"[A-Za-z0-9+/]{64}=?" }, "String":{"type":"string"}, "TargetId":{ "type":"string", "documentation":"Target account identifier for console authorization
", "max":32, "min":12, "pattern":"(\\d{12}|o-[a-z0-9]{10}|r-[0-9a-z]{4,32})" }, "TokenType":{ "type":"string", "documentation":"Token type parameter indicating credential usage
A parameter which indicates to the client how the token must be used. Value is "aws_sigv4" (instead of typical "Bearer" for other OAuth systems) to indicate that the client must de-serialize the token and use it to generate a signature.
", "pattern":"aws_sigv4" }, "TooManyRequestsError":{ "type":"structure", "required":[ "error", "message" ], "members":{ "error":{ "shape":"OAuth2ErrorCode", "documentation":"OAuth 2.0 error code indicating the specific type of error Will be INVALID_REQUEST for rate limiting scenarios
" }, "message":{ "shape":"String", "documentation":"Detailed message about the rate limiting May include retry-after information or rate limit details
" } }, "documentation":"Error thrown when rate limit is exceeded
HTTP Status Code: 429 Too Many Requests
Possible OAuth2ErrorCode values:
Possible causes:
OAuth 2.0 error code indicating validation failure Will be INVALID_REQUEST for validation errors
" }, "message":{ "shape":"String", "documentation":"Detailed message explaining the validation failure Provides specific information about which validation failed
" } }, "documentation":"Error thrown when request validation fails
HTTP Status Code: 400 Bad Request
Used for request validation errors such as malformed parameters, missing required fields, or invalid parameter values.
", "error":{ "httpStatusCode":400, "senderFault":true }, "exception":true }, "VpcSourceIp":{ "type":"string", "documentation":"Source IP address within a VPC
" } }, "documentation":"AWS Sign-In manages authentication for AWS services. This service provides secure authentication flows for accessing AWS resources from the console and developer tools.
" }