...

Source file src/github.com/aws/aws-sdk-go-v2/service/sts/api_op_GetCallerIdentity.go

Documentation: github.com/aws/aws-sdk-go-v2/service/sts

     1  // Code generated by smithy-go-codegen DO NOT EDIT.
     2  
     3  package sts
     4  
     5  import (
     6  	"context"
     7  	"fmt"
     8  	awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
     9  	"github.com/aws/aws-sdk-go-v2/aws/signer/v4"
    10  	"github.com/aws/smithy-go/middleware"
    11  	smithyhttp "github.com/aws/smithy-go/transport/http"
    12  )
    13  
    14  // Returns details about the IAM user or role whose credentials are used to call
    15  // the operation. No permissions are required to perform this operation. If an
    16  // administrator attaches a policy to your identity that explicitly denies access
    17  // to the sts:GetCallerIdentity action, you can still perform this operation.
    18  // Permissions are not required because the same information is returned when
    19  // access is denied. To view an example response, see I Am Not Authorized to
    20  // Perform: iam:DeleteVirtualMFADevice (https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_general.html#troubleshoot_general_access-denied-delete-mfa)
    21  // in the IAM User Guide.
    22  func (c *Client) GetCallerIdentity(ctx context.Context, params *GetCallerIdentityInput, optFns ...func(*Options)) (*GetCallerIdentityOutput, error) {
    23  	if params == nil {
    24  		params = &GetCallerIdentityInput{}
    25  	}
    26  
    27  	result, metadata, err := c.invokeOperation(ctx, "GetCallerIdentity", params, optFns, c.addOperationGetCallerIdentityMiddlewares)
    28  	if err != nil {
    29  		return nil, err
    30  	}
    31  
    32  	out := result.(*GetCallerIdentityOutput)
    33  	out.ResultMetadata = metadata
    34  	return out, nil
    35  }
    36  
    37  type GetCallerIdentityInput struct {
    38  	noSmithyDocumentSerde
    39  }
    40  
    41  // Contains the response to a successful GetCallerIdentity request, including
    42  // information about the entity making the request.
    43  type GetCallerIdentityOutput struct {
    44  
    45  	// The Amazon Web Services account ID number of the account that owns or contains
    46  	// the calling entity.
    47  	Account *string
    48  
    49  	// The Amazon Web Services ARN associated with the calling entity.
    50  	Arn *string
    51  
    52  	// The unique identifier of the calling entity. The exact value depends on the
    53  	// type of entity that is making the call. The values returned are those listed in
    54  	// the aws:userid column in the Principal table (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_variables.html#principaltable)
    55  	// found on the Policy Variables reference page in the IAM User Guide.
    56  	UserId *string
    57  
    58  	// Metadata pertaining to the operation's result.
    59  	ResultMetadata middleware.Metadata
    60  
    61  	noSmithyDocumentSerde
    62  }
    63  
    64  func (c *Client) addOperationGetCallerIdentityMiddlewares(stack *middleware.Stack, options Options) (err error) {
    65  	if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil {
    66  		return err
    67  	}
    68  	err = stack.Serialize.Add(&awsAwsquery_serializeOpGetCallerIdentity{}, middleware.After)
    69  	if err != nil {
    70  		return err
    71  	}
    72  	err = stack.Deserialize.Add(&awsAwsquery_deserializeOpGetCallerIdentity{}, middleware.After)
    73  	if err != nil {
    74  		return err
    75  	}
    76  	if err := addProtocolFinalizerMiddlewares(stack, options, "GetCallerIdentity"); err != nil {
    77  		return fmt.Errorf("add protocol finalizers: %v", err)
    78  	}
    79  
    80  	if err = addlegacyEndpointContextSetter(stack, options); err != nil {
    81  		return err
    82  	}
    83  	if err = addSetLoggerMiddleware(stack, options); err != nil {
    84  		return err
    85  	}
    86  	if err = addClientRequestID(stack); err != nil {
    87  		return err
    88  	}
    89  	if err = addComputeContentLength(stack); err != nil {
    90  		return err
    91  	}
    92  	if err = addResolveEndpointMiddleware(stack, options); err != nil {
    93  		return err
    94  	}
    95  	if err = addComputePayloadSHA256(stack); err != nil {
    96  		return err
    97  	}
    98  	if err = addRetry(stack, options); err != nil {
    99  		return err
   100  	}
   101  	if err = addRawResponseToMetadata(stack); err != nil {
   102  		return err
   103  	}
   104  	if err = addRecordResponseTiming(stack); err != nil {
   105  		return err
   106  	}
   107  	if err = addClientUserAgent(stack, options); err != nil {
   108  		return err
   109  	}
   110  	if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil {
   111  		return err
   112  	}
   113  	if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil {
   114  		return err
   115  	}
   116  	if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil {
   117  		return err
   118  	}
   119  	if err = stack.Initialize.Add(newServiceMetadataMiddleware_opGetCallerIdentity(options.Region), middleware.Before); err != nil {
   120  		return err
   121  	}
   122  	if err = addRecursionDetection(stack); err != nil {
   123  		return err
   124  	}
   125  	if err = addRequestIDRetrieverMiddleware(stack); err != nil {
   126  		return err
   127  	}
   128  	if err = addResponseErrorMiddleware(stack); err != nil {
   129  		return err
   130  	}
   131  	if err = addRequestResponseLogging(stack, options); err != nil {
   132  		return err
   133  	}
   134  	if err = addDisableHTTPSMiddleware(stack, options); err != nil {
   135  		return err
   136  	}
   137  	return nil
   138  }
   139  
   140  func newServiceMetadataMiddleware_opGetCallerIdentity(region string) *awsmiddleware.RegisterServiceMetadata {
   141  	return &awsmiddleware.RegisterServiceMetadata{
   142  		Region:        region,
   143  		ServiceID:     ServiceID,
   144  		OperationName: "GetCallerIdentity",
   145  	}
   146  }
   147  
   148  // PresignGetCallerIdentity is used to generate a presigned HTTP Request which
   149  // contains presigned URL, signed headers and HTTP method used.
   150  func (c *PresignClient) PresignGetCallerIdentity(ctx context.Context, params *GetCallerIdentityInput, optFns ...func(*PresignOptions)) (*v4.PresignedHTTPRequest, error) {
   151  	if params == nil {
   152  		params = &GetCallerIdentityInput{}
   153  	}
   154  	options := c.options.copy()
   155  	for _, fn := range optFns {
   156  		fn(&options)
   157  	}
   158  	clientOptFns := append(options.ClientOptions, withNopHTTPClientAPIOption)
   159  
   160  	result, _, err := c.client.invokeOperation(ctx, "GetCallerIdentity", params, clientOptFns,
   161  		c.client.addOperationGetCallerIdentityMiddlewares,
   162  		presignConverter(options).convertToPresignMiddleware,
   163  	)
   164  	if err != nil {
   165  		return nil, err
   166  	}
   167  
   168  	out := result.(*v4.PresignedHTTPRequest)
   169  	return out, nil
   170  }
   171  

View as plain text