2022-03-02 10:30:48 +00:00
// Code generated by smithy-go-codegen DO NOT EDIT.
package sts
import (
"context"
2023-08-01 12:43:19 +00:00
"fmt"
2022-03-02 10:30:48 +00:00
awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
"github.com/aws/aws-sdk-go-v2/aws/signer/v4"
"github.com/aws/smithy-go/middleware"
smithyhttp "github.com/aws/smithy-go/transport/http"
)
// Returns details about the IAM user or role whose credentials are used to call
2024-06-24 20:58:34 +00:00
// the operation.
//
// No permissions are required to perform this operation. If an administrator
// attaches a policy to your identity that explicitly denies access to the
// sts:GetCallerIdentity action, you can still perform this operation. Permissions
// are not required because the same information is returned when access is denied.
// To view an example response, see [I Am Not Authorized to Perform: iam:DeleteVirtualMFADevice]in the IAM User Guide.
//
// [I Am Not Authorized to Perform: iam:DeleteVirtualMFADevice]: https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_general.html#troubleshoot_general_access-denied-delete-mfa
2022-03-02 10:30:48 +00:00
func ( c * Client ) GetCallerIdentity ( ctx context . Context , params * GetCallerIdentityInput , optFns ... func ( * Options ) ) ( * GetCallerIdentityOutput , error ) {
if params == nil {
params = & GetCallerIdentityInput { }
}
result , metadata , err := c . invokeOperation ( ctx , "GetCallerIdentity" , params , optFns , c . addOperationGetCallerIdentityMiddlewares )
if err != nil {
return nil , err
}
out := result . ( * GetCallerIdentityOutput )
out . ResultMetadata = metadata
return out , nil
}
type GetCallerIdentityInput struct {
noSmithyDocumentSerde
}
2024-06-24 20:58:34 +00:00
// Contains the response to a successful GetCallerIdentity request, including information about the
// entity making the request.
2022-03-02 10:30:48 +00:00
type GetCallerIdentityOutput struct {
// The Amazon Web Services account ID number of the account that owns or contains
// the calling entity.
Account * string
// The Amazon Web Services ARN associated with the calling entity.
Arn * string
2023-05-01 20:59:21 +00:00
// The unique identifier of the calling entity. The exact value depends on the
// type of entity that is making the call. The values returned are those listed in
2024-06-24 20:58:34 +00:00
// the aws:userid column in the [Principal table]found on the Policy Variables reference page in
// the IAM User Guide.
//
// [Principal table]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_variables.html#principaltable
2022-03-02 10:30:48 +00:00
UserId * string
// Metadata pertaining to the operation's result.
ResultMetadata middleware . Metadata
noSmithyDocumentSerde
}
func ( c * Client ) addOperationGetCallerIdentityMiddlewares ( stack * middleware . Stack , options Options ) ( err error ) {
2023-11-20 20:28:57 +00:00
if err := stack . Serialize . Add ( & setOperationInputMiddleware { } , middleware . After ) ; err != nil {
return err
}
2022-03-02 10:30:48 +00:00
err = stack . Serialize . Add ( & awsAwsquery_serializeOpGetCallerIdentity { } , middleware . After )
if err != nil {
return err
}
err = stack . Deserialize . Add ( & awsAwsquery_deserializeOpGetCallerIdentity { } , middleware . After )
if err != nil {
return err
}
2023-11-20 20:28:57 +00:00
if err := addProtocolFinalizerMiddlewares ( stack , options , "GetCallerIdentity" ) ; err != nil {
return fmt . Errorf ( "add protocol finalizers: %v" , err )
}
2023-08-01 12:43:19 +00:00
if err = addlegacyEndpointContextSetter ( stack , options ) ; err != nil {
return err
}
2022-03-02 10:30:48 +00:00
if err = addSetLoggerMiddleware ( stack , options ) ; err != nil {
return err
}
2024-02-26 20:50:16 +00:00
if err = addClientRequestID ( stack ) ; err != nil {
2022-03-02 10:30:48 +00:00
return err
}
2024-02-26 20:50:16 +00:00
if err = addComputeContentLength ( stack ) ; err != nil {
2022-03-02 10:30:48 +00:00
return err
}
if err = addResolveEndpointMiddleware ( stack , options ) ; err != nil {
return err
}
2024-02-26 20:50:16 +00:00
if err = addComputePayloadSHA256 ( stack ) ; err != nil {
2022-03-02 10:30:48 +00:00
return err
}
2024-02-26 20:50:16 +00:00
if err = addRetry ( stack , options ) ; err != nil {
2022-03-02 10:30:48 +00:00
return err
}
2024-02-26 20:50:16 +00:00
if err = addRawResponseToMetadata ( stack ) ; err != nil {
2022-03-02 10:30:48 +00:00
return err
}
2024-02-26 20:50:16 +00:00
if err = addRecordResponseTiming ( stack ) ; err != nil {
2022-03-02 10:30:48 +00:00
return err
}
2023-07-18 07:48:48 +00:00
if err = addClientUserAgent ( stack , options ) ; err != nil {
2022-03-02 10:30:48 +00:00
return err
}
if err = smithyhttp . AddErrorCloseResponseBodyMiddleware ( stack ) ; err != nil {
return err
}
if err = smithyhttp . AddCloseResponseBodyMiddleware ( stack ) ; err != nil {
return err
}
2023-11-20 20:28:57 +00:00
if err = addSetLegacyContextSigningOptionsMiddleware ( stack ) ; err != nil {
2023-08-01 12:43:19 +00:00
return err
}
2024-06-24 20:58:34 +00:00
if err = addTimeOffsetBuild ( stack , c ) ; err != nil {
return err
}
if err = addUserAgentRetryMode ( stack , options ) ; err != nil {
return err
}
2022-03-02 10:30:48 +00:00
if err = stack . Initialize . Add ( newServiceMetadataMiddleware_opGetCallerIdentity ( options . Region ) , middleware . Before ) ; err != nil {
return err
}
2024-02-26 20:50:16 +00:00
if err = addRecursionDetection ( stack ) ; err != nil {
2023-05-01 20:59:21 +00:00
return err
}
2022-03-02 10:30:48 +00:00
if err = addRequestIDRetrieverMiddleware ( stack ) ; err != nil {
return err
}
if err = addResponseErrorMiddleware ( stack ) ; err != nil {
return err
}
if err = addRequestResponseLogging ( stack , options ) ; err != nil {
return err
}
2023-11-20 20:28:57 +00:00
if err = addDisableHTTPSMiddleware ( stack , options ) ; err != nil {
2023-08-01 12:43:19 +00:00
return err
}
2022-03-02 10:30:48 +00:00
return nil
}
func newServiceMetadataMiddleware_opGetCallerIdentity ( region string ) * awsmiddleware . RegisterServiceMetadata {
return & awsmiddleware . RegisterServiceMetadata {
Region : region ,
ServiceID : ServiceID ,
OperationName : "GetCallerIdentity" ,
}
}
// PresignGetCallerIdentity is used to generate a presigned HTTP Request which
// contains presigned URL, signed headers and HTTP method used.
func ( c * PresignClient ) PresignGetCallerIdentity ( ctx context . Context , params * GetCallerIdentityInput , optFns ... func ( * PresignOptions ) ) ( * v4 . PresignedHTTPRequest , error ) {
if params == nil {
params = & GetCallerIdentityInput { }
}
options := c . options . copy ( )
for _ , fn := range optFns {
fn ( & options )
}
clientOptFns := append ( options . ClientOptions , withNopHTTPClientAPIOption )
result , _ , err := c . client . invokeOperation ( ctx , "GetCallerIdentity" , params , clientOptFns ,
c . client . addOperationGetCallerIdentityMiddlewares ,
presignConverter ( options ) . convertToPresignMiddleware ,
)
if err != nil {
return nil , err
}
out := result . ( * v4 . PresignedHTTPRequest )
return out , nil
}