1// Code generated by smithy-go-codegen DO NOT EDIT.
2
3package ec2
4
5import (
6	"context"
7	awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
8	"github.com/aws/aws-sdk-go-v2/aws/signer/v4"
9	"github.com/aws/aws-sdk-go-v2/service/ec2/types"
10	"github.com/aws/smithy-go/middleware"
11	smithyhttp "github.com/aws/smithy-go/transport/http"
12)
13
14// Describes the ID format settings for resources for the specified IAM user, IAM
15// role, or root user. For example, you can view the resource types that are
16// enabled for longer IDs. This request only returns information about resource
17// types whose ID formats can be modified; it does not return information about
18// other resource types. For more information, see Resource IDs
19// (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/resource-ids.html) in the
20// Amazon Elastic Compute Cloud User Guide. The following resource types support
21// longer IDs: bundle | conversion-task | customer-gateway | dhcp-options |
22// elastic-ip-allocation | elastic-ip-association | export-task | flow-log | image
23// | import-task | instance | internet-gateway | network-acl |
24// network-acl-association | network-interface | network-interface-attachment |
25// prefix-list | reservation | route-table | route-table-association |
26// security-group | snapshot | subnet | subnet-cidr-block-association | volume |
27// vpc | vpc-cidr-block-association | vpc-endpoint | vpc-peering-connection |
28// vpn-connection | vpn-gateway. These settings apply to the principal specified in
29// the request. They do not apply to the principal that makes the request.
30func (c *Client) DescribeIdentityIdFormat(ctx context.Context, params *DescribeIdentityIdFormatInput, optFns ...func(*Options)) (*DescribeIdentityIdFormatOutput, error) {
31	if params == nil {
32		params = &DescribeIdentityIdFormatInput{}
33	}
34
35	result, metadata, err := c.invokeOperation(ctx, "DescribeIdentityIdFormat", params, optFns, addOperationDescribeIdentityIdFormatMiddlewares)
36	if err != nil {
37		return nil, err
38	}
39
40	out := result.(*DescribeIdentityIdFormatOutput)
41	out.ResultMetadata = metadata
42	return out, nil
43}
44
45type DescribeIdentityIdFormatInput struct {
46
47	// The ARN of the principal, which can be an IAM role, IAM user, or the root user.
48	//
49	// This member is required.
50	PrincipalArn *string
51
52	// The type of resource: bundle | conversion-task | customer-gateway | dhcp-options
53	// | elastic-ip-allocation | elastic-ip-association | export-task | flow-log |
54	// image | import-task | instance | internet-gateway | network-acl |
55	// network-acl-association | network-interface | network-interface-attachment |
56	// prefix-list | reservation | route-table | route-table-association |
57	// security-group | snapshot | subnet | subnet-cidr-block-association | volume |
58	// vpc | vpc-cidr-block-association | vpc-endpoint | vpc-peering-connection |
59	// vpn-connection | vpn-gateway
60	Resource *string
61}
62
63type DescribeIdentityIdFormatOutput struct {
64
65	// Information about the ID format for the resources.
66	Statuses []types.IdFormat
67
68	// Metadata pertaining to the operation's result.
69	ResultMetadata middleware.Metadata
70}
71
72func addOperationDescribeIdentityIdFormatMiddlewares(stack *middleware.Stack, options Options) (err error) {
73	err = stack.Serialize.Add(&awsEc2query_serializeOpDescribeIdentityIdFormat{}, middleware.After)
74	if err != nil {
75		return err
76	}
77	err = stack.Deserialize.Add(&awsEc2query_deserializeOpDescribeIdentityIdFormat{}, middleware.After)
78	if err != nil {
79		return err
80	}
81	if err = addSetLoggerMiddleware(stack, options); err != nil {
82		return err
83	}
84	if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil {
85		return err
86	}
87	if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil {
88		return err
89	}
90	if err = addResolveEndpointMiddleware(stack, options); err != nil {
91		return err
92	}
93	if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil {
94		return err
95	}
96	if err = addRetryMiddlewares(stack, options); err != nil {
97		return err
98	}
99	if err = addHTTPSignerV4Middleware(stack, options); err != nil {
100		return err
101	}
102	if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil {
103		return err
104	}
105	if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil {
106		return err
107	}
108	if err = addClientUserAgent(stack); err != nil {
109		return err
110	}
111	if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil {
112		return err
113	}
114	if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil {
115		return err
116	}
117	if err = addOpDescribeIdentityIdFormatValidationMiddleware(stack); err != nil {
118		return err
119	}
120	if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDescribeIdentityIdFormat(options.Region), middleware.Before); err != nil {
121		return err
122	}
123	if err = addRequestIDRetrieverMiddleware(stack); err != nil {
124		return err
125	}
126	if err = addResponseErrorMiddleware(stack); err != nil {
127		return err
128	}
129	if err = addRequestResponseLogging(stack, options); err != nil {
130		return err
131	}
132	return nil
133}
134
135func newServiceMetadataMiddleware_opDescribeIdentityIdFormat(region string) *awsmiddleware.RegisterServiceMetadata {
136	return &awsmiddleware.RegisterServiceMetadata{
137		Region:        region,
138		ServiceID:     ServiceID,
139		SigningName:   "ec2",
140		OperationName: "DescribeIdentityIdFormat",
141	}
142}
143