1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package iam
4
5import (
6	"fmt"
7	"time"
8
9	"github.com/aws/aws-sdk-go/aws"
10	"github.com/aws/aws-sdk-go/aws/awsutil"
11	"github.com/aws/aws-sdk-go/aws/request"
12	"github.com/aws/aws-sdk-go/private/protocol"
13	"github.com/aws/aws-sdk-go/private/protocol/query"
14)
15
16const opAddClientIDToOpenIDConnectProvider = "AddClientIDToOpenIDConnectProvider"
17
18// AddClientIDToOpenIDConnectProviderRequest generates a "aws/request.Request" representing the
19// client's request for the AddClientIDToOpenIDConnectProvider operation. The "output" return
20// value will be populated with the request's response once the request complets
21// successfuly.
22//
23// Use "Send" method on the returned Request to send the API call to the service.
24// the "output" return value is not valid until after Send returns without error.
25//
26// See AddClientIDToOpenIDConnectProvider for more information on using the AddClientIDToOpenIDConnectProvider
27// API call, and error handling.
28//
29// This method is useful when you want to inject custom logic or configuration
30// into the SDK's request lifecycle. Such as custom headers, or retry logic.
31//
32//
33//    // Example sending a request using the AddClientIDToOpenIDConnectProviderRequest method.
34//    req, resp := client.AddClientIDToOpenIDConnectProviderRequest(params)
35//
36//    err := req.Send()
37//    if err == nil { // resp is now filled
38//        fmt.Println(resp)
39//    }
40//
41// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/AddClientIDToOpenIDConnectProvider
42func (c *IAM) AddClientIDToOpenIDConnectProviderRequest(input *AddClientIDToOpenIDConnectProviderInput) (req *request.Request, output *AddClientIDToOpenIDConnectProviderOutput) {
43	op := &request.Operation{
44		Name:       opAddClientIDToOpenIDConnectProvider,
45		HTTPMethod: "POST",
46		HTTPPath:   "/",
47	}
48
49	if input == nil {
50		input = &AddClientIDToOpenIDConnectProviderInput{}
51	}
52
53	output = &AddClientIDToOpenIDConnectProviderOutput{}
54	req = c.newRequest(op, input, output)
55	req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
56	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
57	return
58}
59
60// AddClientIDToOpenIDConnectProvider API operation for AWS Identity and Access Management.
61//
62// Adds a new client ID (also known as audience) to the list of client IDs already
63// registered for the specified IAM OpenID Connect (OIDC) provider resource.
64//
65// This action is idempotent; it does not fail or return an error if you add
66// an existing client ID to the provider.
67//
68// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
69// with awserr.Error's Code and Message methods to get detailed information about
70// the error.
71//
72// See the AWS API reference guide for AWS Identity and Access Management's
73// API operation AddClientIDToOpenIDConnectProvider for usage and error information.
74//
75// Returned Error Codes:
76//   * ErrCodeInvalidInputException "InvalidInput"
77//   The request was rejected because an invalid or out-of-range value was supplied
78//   for an input parameter.
79//
80//   * ErrCodeNoSuchEntityException "NoSuchEntity"
81//   The request was rejected because it referenced an entity that does not exist.
82//   The error message describes the entity.
83//
84//   * ErrCodeLimitExceededException "LimitExceeded"
85//   The request was rejected because it attempted to create resources beyond
86//   the current AWS account limits. The error message describes the limit exceeded.
87//
88//   * ErrCodeServiceFailureException "ServiceFailure"
89//   The request processing has failed because of an unknown error, exception
90//   or failure.
91//
92// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/AddClientIDToOpenIDConnectProvider
93func (c *IAM) AddClientIDToOpenIDConnectProvider(input *AddClientIDToOpenIDConnectProviderInput) (*AddClientIDToOpenIDConnectProviderOutput, error) {
94	req, out := c.AddClientIDToOpenIDConnectProviderRequest(input)
95	return out, req.Send()
96}
97
98// AddClientIDToOpenIDConnectProviderWithContext is the same as AddClientIDToOpenIDConnectProvider with the addition of
99// the ability to pass a context and additional request options.
100//
101// See AddClientIDToOpenIDConnectProvider for details on how to use this API operation.
102//
103// The context must be non-nil and will be used for request cancellation. If
104// the context is nil a panic will occur. In the future the SDK may create
105// sub-contexts for http.Requests. See https://golang.org/pkg/context/
106// for more information on using Contexts.
107func (c *IAM) AddClientIDToOpenIDConnectProviderWithContext(ctx aws.Context, input *AddClientIDToOpenIDConnectProviderInput, opts ...request.Option) (*AddClientIDToOpenIDConnectProviderOutput, error) {
108	req, out := c.AddClientIDToOpenIDConnectProviderRequest(input)
109	req.SetContext(ctx)
110	req.ApplyOptions(opts...)
111	return out, req.Send()
112}
113
114const opAddRoleToInstanceProfile = "AddRoleToInstanceProfile"
115
116// AddRoleToInstanceProfileRequest generates a "aws/request.Request" representing the
117// client's request for the AddRoleToInstanceProfile operation. The "output" return
118// value will be populated with the request's response once the request complets
119// successfuly.
120//
121// Use "Send" method on the returned Request to send the API call to the service.
122// the "output" return value is not valid until after Send returns without error.
123//
124// See AddRoleToInstanceProfile for more information on using the AddRoleToInstanceProfile
125// API call, and error handling.
126//
127// This method is useful when you want to inject custom logic or configuration
128// into the SDK's request lifecycle. Such as custom headers, or retry logic.
129//
130//
131//    // Example sending a request using the AddRoleToInstanceProfileRequest method.
132//    req, resp := client.AddRoleToInstanceProfileRequest(params)
133//
134//    err := req.Send()
135//    if err == nil { // resp is now filled
136//        fmt.Println(resp)
137//    }
138//
139// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/AddRoleToInstanceProfile
140func (c *IAM) AddRoleToInstanceProfileRequest(input *AddRoleToInstanceProfileInput) (req *request.Request, output *AddRoleToInstanceProfileOutput) {
141	op := &request.Operation{
142		Name:       opAddRoleToInstanceProfile,
143		HTTPMethod: "POST",
144		HTTPPath:   "/",
145	}
146
147	if input == nil {
148		input = &AddRoleToInstanceProfileInput{}
149	}
150
151	output = &AddRoleToInstanceProfileOutput{}
152	req = c.newRequest(op, input, output)
153	req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
154	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
155	return
156}
157
158// AddRoleToInstanceProfile API operation for AWS Identity and Access Management.
159//
160// Adds the specified IAM role to the specified instance profile. An instance
161// profile can contain only one role, and this limit cannot be increased.
162//
163// The caller of this API must be granted the PassRole permission on the IAM
164// role by a permission policy.
165//
166// For more information about roles, go to Working with Roles (http://docs.aws.amazon.com/IAM/latest/UserGuide/WorkingWithRoles.html).
167// For more information about instance profiles, go to About Instance Profiles
168// (http://docs.aws.amazon.com/IAM/latest/UserGuide/AboutInstanceProfiles.html).
169//
170// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
171// with awserr.Error's Code and Message methods to get detailed information about
172// the error.
173//
174// See the AWS API reference guide for AWS Identity and Access Management's
175// API operation AddRoleToInstanceProfile for usage and error information.
176//
177// Returned Error Codes:
178//   * ErrCodeNoSuchEntityException "NoSuchEntity"
179//   The request was rejected because it referenced an entity that does not exist.
180//   The error message describes the entity.
181//
182//   * ErrCodeEntityAlreadyExistsException "EntityAlreadyExists"
183//   The request was rejected because it attempted to create a resource that already
184//   exists.
185//
186//   * ErrCodeLimitExceededException "LimitExceeded"
187//   The request was rejected because it attempted to create resources beyond
188//   the current AWS account limits. The error message describes the limit exceeded.
189//
190//   * ErrCodeUnmodifiableEntityException "UnmodifiableEntity"
191//   The request was rejected because only the service that depends on the service-linked
192//   role can modify or delete the role on your behalf. The error message includes
193//   the name of the service that depends on this service-linked role. You must
194//   request the change through that service.
195//
196//   * ErrCodeServiceFailureException "ServiceFailure"
197//   The request processing has failed because of an unknown error, exception
198//   or failure.
199//
200// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/AddRoleToInstanceProfile
201func (c *IAM) AddRoleToInstanceProfile(input *AddRoleToInstanceProfileInput) (*AddRoleToInstanceProfileOutput, error) {
202	req, out := c.AddRoleToInstanceProfileRequest(input)
203	return out, req.Send()
204}
205
206// AddRoleToInstanceProfileWithContext is the same as AddRoleToInstanceProfile with the addition of
207// the ability to pass a context and additional request options.
208//
209// See AddRoleToInstanceProfile for details on how to use this API operation.
210//
211// The context must be non-nil and will be used for request cancellation. If
212// the context is nil a panic will occur. In the future the SDK may create
213// sub-contexts for http.Requests. See https://golang.org/pkg/context/
214// for more information on using Contexts.
215func (c *IAM) AddRoleToInstanceProfileWithContext(ctx aws.Context, input *AddRoleToInstanceProfileInput, opts ...request.Option) (*AddRoleToInstanceProfileOutput, error) {
216	req, out := c.AddRoleToInstanceProfileRequest(input)
217	req.SetContext(ctx)
218	req.ApplyOptions(opts...)
219	return out, req.Send()
220}
221
222const opAddUserToGroup = "AddUserToGroup"
223
224// AddUserToGroupRequest generates a "aws/request.Request" representing the
225// client's request for the AddUserToGroup operation. The "output" return
226// value will be populated with the request's response once the request complets
227// successfuly.
228//
229// Use "Send" method on the returned Request to send the API call to the service.
230// the "output" return value is not valid until after Send returns without error.
231//
232// See AddUserToGroup for more information on using the AddUserToGroup
233// API call, and error handling.
234//
235// This method is useful when you want to inject custom logic or configuration
236// into the SDK's request lifecycle. Such as custom headers, or retry logic.
237//
238//
239//    // Example sending a request using the AddUserToGroupRequest method.
240//    req, resp := client.AddUserToGroupRequest(params)
241//
242//    err := req.Send()
243//    if err == nil { // resp is now filled
244//        fmt.Println(resp)
245//    }
246//
247// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/AddUserToGroup
248func (c *IAM) AddUserToGroupRequest(input *AddUserToGroupInput) (req *request.Request, output *AddUserToGroupOutput) {
249	op := &request.Operation{
250		Name:       opAddUserToGroup,
251		HTTPMethod: "POST",
252		HTTPPath:   "/",
253	}
254
255	if input == nil {
256		input = &AddUserToGroupInput{}
257	}
258
259	output = &AddUserToGroupOutput{}
260	req = c.newRequest(op, input, output)
261	req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
262	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
263	return
264}
265
266// AddUserToGroup API operation for AWS Identity and Access Management.
267//
268// Adds the specified user to the specified group.
269//
270// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
271// with awserr.Error's Code and Message methods to get detailed information about
272// the error.
273//
274// See the AWS API reference guide for AWS Identity and Access Management's
275// API operation AddUserToGroup for usage and error information.
276//
277// Returned Error Codes:
278//   * ErrCodeNoSuchEntityException "NoSuchEntity"
279//   The request was rejected because it referenced an entity that does not exist.
280//   The error message describes the entity.
281//
282//   * ErrCodeLimitExceededException "LimitExceeded"
283//   The request was rejected because it attempted to create resources beyond
284//   the current AWS account limits. The error message describes the limit exceeded.
285//
286//   * ErrCodeServiceFailureException "ServiceFailure"
287//   The request processing has failed because of an unknown error, exception
288//   or failure.
289//
290// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/AddUserToGroup
291func (c *IAM) AddUserToGroup(input *AddUserToGroupInput) (*AddUserToGroupOutput, error) {
292	req, out := c.AddUserToGroupRequest(input)
293	return out, req.Send()
294}
295
296// AddUserToGroupWithContext is the same as AddUserToGroup with the addition of
297// the ability to pass a context and additional request options.
298//
299// See AddUserToGroup for details on how to use this API operation.
300//
301// The context must be non-nil and will be used for request cancellation. If
302// the context is nil a panic will occur. In the future the SDK may create
303// sub-contexts for http.Requests. See https://golang.org/pkg/context/
304// for more information on using Contexts.
305func (c *IAM) AddUserToGroupWithContext(ctx aws.Context, input *AddUserToGroupInput, opts ...request.Option) (*AddUserToGroupOutput, error) {
306	req, out := c.AddUserToGroupRequest(input)
307	req.SetContext(ctx)
308	req.ApplyOptions(opts...)
309	return out, req.Send()
310}
311
312const opAttachGroupPolicy = "AttachGroupPolicy"
313
314// AttachGroupPolicyRequest generates a "aws/request.Request" representing the
315// client's request for the AttachGroupPolicy operation. The "output" return
316// value will be populated with the request's response once the request complets
317// successfuly.
318//
319// Use "Send" method on the returned Request to send the API call to the service.
320// the "output" return value is not valid until after Send returns without error.
321//
322// See AttachGroupPolicy for more information on using the AttachGroupPolicy
323// API call, and error handling.
324//
325// This method is useful when you want to inject custom logic or configuration
326// into the SDK's request lifecycle. Such as custom headers, or retry logic.
327//
328//
329//    // Example sending a request using the AttachGroupPolicyRequest method.
330//    req, resp := client.AttachGroupPolicyRequest(params)
331//
332//    err := req.Send()
333//    if err == nil { // resp is now filled
334//        fmt.Println(resp)
335//    }
336//
337// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/AttachGroupPolicy
338func (c *IAM) AttachGroupPolicyRequest(input *AttachGroupPolicyInput) (req *request.Request, output *AttachGroupPolicyOutput) {
339	op := &request.Operation{
340		Name:       opAttachGroupPolicy,
341		HTTPMethod: "POST",
342		HTTPPath:   "/",
343	}
344
345	if input == nil {
346		input = &AttachGroupPolicyInput{}
347	}
348
349	output = &AttachGroupPolicyOutput{}
350	req = c.newRequest(op, input, output)
351	req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
352	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
353	return
354}
355
356// AttachGroupPolicy API operation for AWS Identity and Access Management.
357//
358// Attaches the specified managed policy to the specified IAM group.
359//
360// You use this API to attach a managed policy to a group. To embed an inline
361// policy in a group, use PutGroupPolicy.
362//
363// For more information about policies, see Managed Policies and Inline Policies
364// (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
365// in the IAM User Guide.
366//
367// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
368// with awserr.Error's Code and Message methods to get detailed information about
369// the error.
370//
371// See the AWS API reference guide for AWS Identity and Access Management's
372// API operation AttachGroupPolicy for usage and error information.
373//
374// Returned Error Codes:
375//   * ErrCodeNoSuchEntityException "NoSuchEntity"
376//   The request was rejected because it referenced an entity that does not exist.
377//   The error message describes the entity.
378//
379//   * ErrCodeLimitExceededException "LimitExceeded"
380//   The request was rejected because it attempted to create resources beyond
381//   the current AWS account limits. The error message describes the limit exceeded.
382//
383//   * ErrCodeInvalidInputException "InvalidInput"
384//   The request was rejected because an invalid or out-of-range value was supplied
385//   for an input parameter.
386//
387//   * ErrCodePolicyNotAttachableException "PolicyNotAttachable"
388//   The request failed because AWS service role policies can only be attached
389//   to the service-linked role for that service.
390//
391//   * ErrCodeServiceFailureException "ServiceFailure"
392//   The request processing has failed because of an unknown error, exception
393//   or failure.
394//
395// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/AttachGroupPolicy
396func (c *IAM) AttachGroupPolicy(input *AttachGroupPolicyInput) (*AttachGroupPolicyOutput, error) {
397	req, out := c.AttachGroupPolicyRequest(input)
398	return out, req.Send()
399}
400
401// AttachGroupPolicyWithContext is the same as AttachGroupPolicy with the addition of
402// the ability to pass a context and additional request options.
403//
404// See AttachGroupPolicy for details on how to use this API operation.
405//
406// The context must be non-nil and will be used for request cancellation. If
407// the context is nil a panic will occur. In the future the SDK may create
408// sub-contexts for http.Requests. See https://golang.org/pkg/context/
409// for more information on using Contexts.
410func (c *IAM) AttachGroupPolicyWithContext(ctx aws.Context, input *AttachGroupPolicyInput, opts ...request.Option) (*AttachGroupPolicyOutput, error) {
411	req, out := c.AttachGroupPolicyRequest(input)
412	req.SetContext(ctx)
413	req.ApplyOptions(opts...)
414	return out, req.Send()
415}
416
417const opAttachRolePolicy = "AttachRolePolicy"
418
419// AttachRolePolicyRequest generates a "aws/request.Request" representing the
420// client's request for the AttachRolePolicy operation. The "output" return
421// value will be populated with the request's response once the request complets
422// successfuly.
423//
424// Use "Send" method on the returned Request to send the API call to the service.
425// the "output" return value is not valid until after Send returns without error.
426//
427// See AttachRolePolicy for more information on using the AttachRolePolicy
428// API call, and error handling.
429//
430// This method is useful when you want to inject custom logic or configuration
431// into the SDK's request lifecycle. Such as custom headers, or retry logic.
432//
433//
434//    // Example sending a request using the AttachRolePolicyRequest method.
435//    req, resp := client.AttachRolePolicyRequest(params)
436//
437//    err := req.Send()
438//    if err == nil { // resp is now filled
439//        fmt.Println(resp)
440//    }
441//
442// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/AttachRolePolicy
443func (c *IAM) AttachRolePolicyRequest(input *AttachRolePolicyInput) (req *request.Request, output *AttachRolePolicyOutput) {
444	op := &request.Operation{
445		Name:       opAttachRolePolicy,
446		HTTPMethod: "POST",
447		HTTPPath:   "/",
448	}
449
450	if input == nil {
451		input = &AttachRolePolicyInput{}
452	}
453
454	output = &AttachRolePolicyOutput{}
455	req = c.newRequest(op, input, output)
456	req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
457	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
458	return
459}
460
461// AttachRolePolicy API operation for AWS Identity and Access Management.
462//
463// Attaches the specified managed policy to the specified IAM role. When you
464// attach a managed policy to a role, the managed policy becomes part of the
465// role's permission (access) policy.
466//
467// You cannot use a managed policy as the role's trust policy. The role's trust
468// policy is created at the same time as the role, using CreateRole. You can
469// update a role's trust policy using UpdateAssumeRolePolicy.
470//
471// Use this API to attach a managed policy to a role. To embed an inline policy
472// in a role, use PutRolePolicy. For more information about policies, see Managed
473// Policies and Inline Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
474// in the IAM User Guide.
475//
476// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
477// with awserr.Error's Code and Message methods to get detailed information about
478// the error.
479//
480// See the AWS API reference guide for AWS Identity and Access Management's
481// API operation AttachRolePolicy for usage and error information.
482//
483// Returned Error Codes:
484//   * ErrCodeNoSuchEntityException "NoSuchEntity"
485//   The request was rejected because it referenced an entity that does not exist.
486//   The error message describes the entity.
487//
488//   * ErrCodeLimitExceededException "LimitExceeded"
489//   The request was rejected because it attempted to create resources beyond
490//   the current AWS account limits. The error message describes the limit exceeded.
491//
492//   * ErrCodeInvalidInputException "InvalidInput"
493//   The request was rejected because an invalid or out-of-range value was supplied
494//   for an input parameter.
495//
496//   * ErrCodeUnmodifiableEntityException "UnmodifiableEntity"
497//   The request was rejected because only the service that depends on the service-linked
498//   role can modify or delete the role on your behalf. The error message includes
499//   the name of the service that depends on this service-linked role. You must
500//   request the change through that service.
501//
502//   * ErrCodePolicyNotAttachableException "PolicyNotAttachable"
503//   The request failed because AWS service role policies can only be attached
504//   to the service-linked role for that service.
505//
506//   * ErrCodeServiceFailureException "ServiceFailure"
507//   The request processing has failed because of an unknown error, exception
508//   or failure.
509//
510// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/AttachRolePolicy
511func (c *IAM) AttachRolePolicy(input *AttachRolePolicyInput) (*AttachRolePolicyOutput, error) {
512	req, out := c.AttachRolePolicyRequest(input)
513	return out, req.Send()
514}
515
516// AttachRolePolicyWithContext is the same as AttachRolePolicy with the addition of
517// the ability to pass a context and additional request options.
518//
519// See AttachRolePolicy for details on how to use this API operation.
520//
521// The context must be non-nil and will be used for request cancellation. If
522// the context is nil a panic will occur. In the future the SDK may create
523// sub-contexts for http.Requests. See https://golang.org/pkg/context/
524// for more information on using Contexts.
525func (c *IAM) AttachRolePolicyWithContext(ctx aws.Context, input *AttachRolePolicyInput, opts ...request.Option) (*AttachRolePolicyOutput, error) {
526	req, out := c.AttachRolePolicyRequest(input)
527	req.SetContext(ctx)
528	req.ApplyOptions(opts...)
529	return out, req.Send()
530}
531
532const opAttachUserPolicy = "AttachUserPolicy"
533
534// AttachUserPolicyRequest generates a "aws/request.Request" representing the
535// client's request for the AttachUserPolicy operation. The "output" return
536// value will be populated with the request's response once the request complets
537// successfuly.
538//
539// Use "Send" method on the returned Request to send the API call to the service.
540// the "output" return value is not valid until after Send returns without error.
541//
542// See AttachUserPolicy for more information on using the AttachUserPolicy
543// API call, and error handling.
544//
545// This method is useful when you want to inject custom logic or configuration
546// into the SDK's request lifecycle. Such as custom headers, or retry logic.
547//
548//
549//    // Example sending a request using the AttachUserPolicyRequest method.
550//    req, resp := client.AttachUserPolicyRequest(params)
551//
552//    err := req.Send()
553//    if err == nil { // resp is now filled
554//        fmt.Println(resp)
555//    }
556//
557// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/AttachUserPolicy
558func (c *IAM) AttachUserPolicyRequest(input *AttachUserPolicyInput) (req *request.Request, output *AttachUserPolicyOutput) {
559	op := &request.Operation{
560		Name:       opAttachUserPolicy,
561		HTTPMethod: "POST",
562		HTTPPath:   "/",
563	}
564
565	if input == nil {
566		input = &AttachUserPolicyInput{}
567	}
568
569	output = &AttachUserPolicyOutput{}
570	req = c.newRequest(op, input, output)
571	req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
572	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
573	return
574}
575
576// AttachUserPolicy API operation for AWS Identity and Access Management.
577//
578// Attaches the specified managed policy to the specified user.
579//
580// You use this API to attach a managed policy to a user. To embed an inline
581// policy in a user, use PutUserPolicy.
582//
583// For more information about policies, see Managed Policies and Inline Policies
584// (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
585// in the IAM User Guide.
586//
587// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
588// with awserr.Error's Code and Message methods to get detailed information about
589// the error.
590//
591// See the AWS API reference guide for AWS Identity and Access Management's
592// API operation AttachUserPolicy for usage and error information.
593//
594// Returned Error Codes:
595//   * ErrCodeNoSuchEntityException "NoSuchEntity"
596//   The request was rejected because it referenced an entity that does not exist.
597//   The error message describes the entity.
598//
599//   * ErrCodeLimitExceededException "LimitExceeded"
600//   The request was rejected because it attempted to create resources beyond
601//   the current AWS account limits. The error message describes the limit exceeded.
602//
603//   * ErrCodeInvalidInputException "InvalidInput"
604//   The request was rejected because an invalid or out-of-range value was supplied
605//   for an input parameter.
606//
607//   * ErrCodePolicyNotAttachableException "PolicyNotAttachable"
608//   The request failed because AWS service role policies can only be attached
609//   to the service-linked role for that service.
610//
611//   * ErrCodeServiceFailureException "ServiceFailure"
612//   The request processing has failed because of an unknown error, exception
613//   or failure.
614//
615// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/AttachUserPolicy
616func (c *IAM) AttachUserPolicy(input *AttachUserPolicyInput) (*AttachUserPolicyOutput, error) {
617	req, out := c.AttachUserPolicyRequest(input)
618	return out, req.Send()
619}
620
621// AttachUserPolicyWithContext is the same as AttachUserPolicy with the addition of
622// the ability to pass a context and additional request options.
623//
624// See AttachUserPolicy for details on how to use this API operation.
625//
626// The context must be non-nil and will be used for request cancellation. If
627// the context is nil a panic will occur. In the future the SDK may create
628// sub-contexts for http.Requests. See https://golang.org/pkg/context/
629// for more information on using Contexts.
630func (c *IAM) AttachUserPolicyWithContext(ctx aws.Context, input *AttachUserPolicyInput, opts ...request.Option) (*AttachUserPolicyOutput, error) {
631	req, out := c.AttachUserPolicyRequest(input)
632	req.SetContext(ctx)
633	req.ApplyOptions(opts...)
634	return out, req.Send()
635}
636
637const opChangePassword = "ChangePassword"
638
639// ChangePasswordRequest generates a "aws/request.Request" representing the
640// client's request for the ChangePassword operation. The "output" return
641// value will be populated with the request's response once the request complets
642// successfuly.
643//
644// Use "Send" method on the returned Request to send the API call to the service.
645// the "output" return value is not valid until after Send returns without error.
646//
647// See ChangePassword for more information on using the ChangePassword
648// API call, and error handling.
649//
650// This method is useful when you want to inject custom logic or configuration
651// into the SDK's request lifecycle. Such as custom headers, or retry logic.
652//
653//
654//    // Example sending a request using the ChangePasswordRequest method.
655//    req, resp := client.ChangePasswordRequest(params)
656//
657//    err := req.Send()
658//    if err == nil { // resp is now filled
659//        fmt.Println(resp)
660//    }
661//
662// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ChangePassword
663func (c *IAM) ChangePasswordRequest(input *ChangePasswordInput) (req *request.Request, output *ChangePasswordOutput) {
664	op := &request.Operation{
665		Name:       opChangePassword,
666		HTTPMethod: "POST",
667		HTTPPath:   "/",
668	}
669
670	if input == nil {
671		input = &ChangePasswordInput{}
672	}
673
674	output = &ChangePasswordOutput{}
675	req = c.newRequest(op, input, output)
676	req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
677	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
678	return
679}
680
681// ChangePassword API operation for AWS Identity and Access Management.
682//
683// Changes the password of the IAM user who is calling this action. The root
684// account password is not affected by this action.
685//
686// To change the password for a different user, see UpdateLoginProfile. For
687// more information about modifying passwords, see Managing Passwords (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_ManagingLogins.html)
688// in the IAM User Guide.
689//
690// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
691// with awserr.Error's Code and Message methods to get detailed information about
692// the error.
693//
694// See the AWS API reference guide for AWS Identity and Access Management's
695// API operation ChangePassword for usage and error information.
696//
697// Returned Error Codes:
698//   * ErrCodeNoSuchEntityException "NoSuchEntity"
699//   The request was rejected because it referenced an entity that does not exist.
700//   The error message describes the entity.
701//
702//   * ErrCodeInvalidUserTypeException "InvalidUserType"
703//   The request was rejected because the type of user for the transaction was
704//   incorrect.
705//
706//   * ErrCodeLimitExceededException "LimitExceeded"
707//   The request was rejected because it attempted to create resources beyond
708//   the current AWS account limits. The error message describes the limit exceeded.
709//
710//   * ErrCodeEntityTemporarilyUnmodifiableException "EntityTemporarilyUnmodifiable"
711//   The request was rejected because it referenced an entity that is temporarily
712//   unmodifiable, such as a user name that was deleted and then recreated. The
713//   error indicates that the request is likely to succeed if you try again after
714//   waiting several minutes. The error message describes the entity.
715//
716//   * ErrCodePasswordPolicyViolationException "PasswordPolicyViolation"
717//   The request was rejected because the provided password did not meet the requirements
718//   imposed by the account password policy.
719//
720//   * ErrCodeServiceFailureException "ServiceFailure"
721//   The request processing has failed because of an unknown error, exception
722//   or failure.
723//
724// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ChangePassword
725func (c *IAM) ChangePassword(input *ChangePasswordInput) (*ChangePasswordOutput, error) {
726	req, out := c.ChangePasswordRequest(input)
727	return out, req.Send()
728}
729
730// ChangePasswordWithContext is the same as ChangePassword with the addition of
731// the ability to pass a context and additional request options.
732//
733// See ChangePassword for details on how to use this API operation.
734//
735// The context must be non-nil and will be used for request cancellation. If
736// the context is nil a panic will occur. In the future the SDK may create
737// sub-contexts for http.Requests. See https://golang.org/pkg/context/
738// for more information on using Contexts.
739func (c *IAM) ChangePasswordWithContext(ctx aws.Context, input *ChangePasswordInput, opts ...request.Option) (*ChangePasswordOutput, error) {
740	req, out := c.ChangePasswordRequest(input)
741	req.SetContext(ctx)
742	req.ApplyOptions(opts...)
743	return out, req.Send()
744}
745
746const opCreateAccessKey = "CreateAccessKey"
747
748// CreateAccessKeyRequest generates a "aws/request.Request" representing the
749// client's request for the CreateAccessKey operation. The "output" return
750// value will be populated with the request's response once the request complets
751// successfuly.
752//
753// Use "Send" method on the returned Request to send the API call to the service.
754// the "output" return value is not valid until after Send returns without error.
755//
756// See CreateAccessKey for more information on using the CreateAccessKey
757// API call, and error handling.
758//
759// This method is useful when you want to inject custom logic or configuration
760// into the SDK's request lifecycle. Such as custom headers, or retry logic.
761//
762//
763//    // Example sending a request using the CreateAccessKeyRequest method.
764//    req, resp := client.CreateAccessKeyRequest(params)
765//
766//    err := req.Send()
767//    if err == nil { // resp is now filled
768//        fmt.Println(resp)
769//    }
770//
771// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateAccessKey
772func (c *IAM) CreateAccessKeyRequest(input *CreateAccessKeyInput) (req *request.Request, output *CreateAccessKeyOutput) {
773	op := &request.Operation{
774		Name:       opCreateAccessKey,
775		HTTPMethod: "POST",
776		HTTPPath:   "/",
777	}
778
779	if input == nil {
780		input = &CreateAccessKeyInput{}
781	}
782
783	output = &CreateAccessKeyOutput{}
784	req = c.newRequest(op, input, output)
785	return
786}
787
788// CreateAccessKey API operation for AWS Identity and Access Management.
789//
790// Creates a new AWS secret access key and corresponding AWS access key ID for
791// the specified user. The default status for new keys is Active.
792//
793// If you do not specify a user name, IAM determines the user name implicitly
794// based on the AWS access key ID signing the request. Because this action works
795// for access keys under the AWS account, you can use this action to manage
796// root credentials even if the AWS account has no associated users.
797//
798// For information about limits on the number of keys you can create, see Limitations
799// on IAM Entities (http://docs.aws.amazon.com/IAM/latest/UserGuide/LimitationsOnEntities.html)
800// in the IAM User Guide.
801//
802// To ensure the security of your AWS account, the secret access key is accessible
803// only during key and user creation. You must save the key (for example, in
804// a text file) if you want to be able to access it again. If a secret key is
805// lost, you can delete the access keys for the associated user and then create
806// new keys.
807//
808// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
809// with awserr.Error's Code and Message methods to get detailed information about
810// the error.
811//
812// See the AWS API reference guide for AWS Identity and Access Management's
813// API operation CreateAccessKey for usage and error information.
814//
815// Returned Error Codes:
816//   * ErrCodeNoSuchEntityException "NoSuchEntity"
817//   The request was rejected because it referenced an entity that does not exist.
818//   The error message describes the entity.
819//
820//   * ErrCodeLimitExceededException "LimitExceeded"
821//   The request was rejected because it attempted to create resources beyond
822//   the current AWS account limits. The error message describes the limit exceeded.
823//
824//   * ErrCodeServiceFailureException "ServiceFailure"
825//   The request processing has failed because of an unknown error, exception
826//   or failure.
827//
828// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateAccessKey
829func (c *IAM) CreateAccessKey(input *CreateAccessKeyInput) (*CreateAccessKeyOutput, error) {
830	req, out := c.CreateAccessKeyRequest(input)
831	return out, req.Send()
832}
833
834// CreateAccessKeyWithContext is the same as CreateAccessKey with the addition of
835// the ability to pass a context and additional request options.
836//
837// See CreateAccessKey for details on how to use this API operation.
838//
839// The context must be non-nil and will be used for request cancellation. If
840// the context is nil a panic will occur. In the future the SDK may create
841// sub-contexts for http.Requests. See https://golang.org/pkg/context/
842// for more information on using Contexts.
843func (c *IAM) CreateAccessKeyWithContext(ctx aws.Context, input *CreateAccessKeyInput, opts ...request.Option) (*CreateAccessKeyOutput, error) {
844	req, out := c.CreateAccessKeyRequest(input)
845	req.SetContext(ctx)
846	req.ApplyOptions(opts...)
847	return out, req.Send()
848}
849
850const opCreateAccountAlias = "CreateAccountAlias"
851
852// CreateAccountAliasRequest generates a "aws/request.Request" representing the
853// client's request for the CreateAccountAlias operation. The "output" return
854// value will be populated with the request's response once the request complets
855// successfuly.
856//
857// Use "Send" method on the returned Request to send the API call to the service.
858// the "output" return value is not valid until after Send returns without error.
859//
860// See CreateAccountAlias for more information on using the CreateAccountAlias
861// API call, and error handling.
862//
863// This method is useful when you want to inject custom logic or configuration
864// into the SDK's request lifecycle. Such as custom headers, or retry logic.
865//
866//
867//    // Example sending a request using the CreateAccountAliasRequest method.
868//    req, resp := client.CreateAccountAliasRequest(params)
869//
870//    err := req.Send()
871//    if err == nil { // resp is now filled
872//        fmt.Println(resp)
873//    }
874//
875// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateAccountAlias
876func (c *IAM) CreateAccountAliasRequest(input *CreateAccountAliasInput) (req *request.Request, output *CreateAccountAliasOutput) {
877	op := &request.Operation{
878		Name:       opCreateAccountAlias,
879		HTTPMethod: "POST",
880		HTTPPath:   "/",
881	}
882
883	if input == nil {
884		input = &CreateAccountAliasInput{}
885	}
886
887	output = &CreateAccountAliasOutput{}
888	req = c.newRequest(op, input, output)
889	req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
890	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
891	return
892}
893
894// CreateAccountAlias API operation for AWS Identity and Access Management.
895//
896// Creates an alias for your AWS account. For information about using an AWS
897// account alias, see Using an Alias for Your AWS Account ID (http://docs.aws.amazon.com/IAM/latest/UserGuide/AccountAlias.html)
898// in the IAM User Guide.
899//
900// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
901// with awserr.Error's Code and Message methods to get detailed information about
902// the error.
903//
904// See the AWS API reference guide for AWS Identity and Access Management's
905// API operation CreateAccountAlias for usage and error information.
906//
907// Returned Error Codes:
908//   * ErrCodeEntityAlreadyExistsException "EntityAlreadyExists"
909//   The request was rejected because it attempted to create a resource that already
910//   exists.
911//
912//   * ErrCodeLimitExceededException "LimitExceeded"
913//   The request was rejected because it attempted to create resources beyond
914//   the current AWS account limits. The error message describes the limit exceeded.
915//
916//   * ErrCodeServiceFailureException "ServiceFailure"
917//   The request processing has failed because of an unknown error, exception
918//   or failure.
919//
920// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateAccountAlias
921func (c *IAM) CreateAccountAlias(input *CreateAccountAliasInput) (*CreateAccountAliasOutput, error) {
922	req, out := c.CreateAccountAliasRequest(input)
923	return out, req.Send()
924}
925
926// CreateAccountAliasWithContext is the same as CreateAccountAlias with the addition of
927// the ability to pass a context and additional request options.
928//
929// See CreateAccountAlias for details on how to use this API operation.
930//
931// The context must be non-nil and will be used for request cancellation. If
932// the context is nil a panic will occur. In the future the SDK may create
933// sub-contexts for http.Requests. See https://golang.org/pkg/context/
934// for more information on using Contexts.
935func (c *IAM) CreateAccountAliasWithContext(ctx aws.Context, input *CreateAccountAliasInput, opts ...request.Option) (*CreateAccountAliasOutput, error) {
936	req, out := c.CreateAccountAliasRequest(input)
937	req.SetContext(ctx)
938	req.ApplyOptions(opts...)
939	return out, req.Send()
940}
941
942const opCreateGroup = "CreateGroup"
943
944// CreateGroupRequest generates a "aws/request.Request" representing the
945// client's request for the CreateGroup operation. The "output" return
946// value will be populated with the request's response once the request complets
947// successfuly.
948//
949// Use "Send" method on the returned Request to send the API call to the service.
950// the "output" return value is not valid until after Send returns without error.
951//
952// See CreateGroup for more information on using the CreateGroup
953// API call, and error handling.
954//
955// This method is useful when you want to inject custom logic or configuration
956// into the SDK's request lifecycle. Such as custom headers, or retry logic.
957//
958//
959//    // Example sending a request using the CreateGroupRequest method.
960//    req, resp := client.CreateGroupRequest(params)
961//
962//    err := req.Send()
963//    if err == nil { // resp is now filled
964//        fmt.Println(resp)
965//    }
966//
967// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateGroup
968func (c *IAM) CreateGroupRequest(input *CreateGroupInput) (req *request.Request, output *CreateGroupOutput) {
969	op := &request.Operation{
970		Name:       opCreateGroup,
971		HTTPMethod: "POST",
972		HTTPPath:   "/",
973	}
974
975	if input == nil {
976		input = &CreateGroupInput{}
977	}
978
979	output = &CreateGroupOutput{}
980	req = c.newRequest(op, input, output)
981	return
982}
983
984// CreateGroup API operation for AWS Identity and Access Management.
985//
986// Creates a new group.
987//
988// For information about the number of groups you can create, see Limitations
989// on IAM Entities (http://docs.aws.amazon.com/IAM/latest/UserGuide/LimitationsOnEntities.html)
990// in the IAM User Guide.
991//
992// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
993// with awserr.Error's Code and Message methods to get detailed information about
994// the error.
995//
996// See the AWS API reference guide for AWS Identity and Access Management's
997// API operation CreateGroup for usage and error information.
998//
999// Returned Error Codes:
1000//   * ErrCodeLimitExceededException "LimitExceeded"
1001//   The request was rejected because it attempted to create resources beyond
1002//   the current AWS account limits. The error message describes the limit exceeded.
1003//
1004//   * ErrCodeEntityAlreadyExistsException "EntityAlreadyExists"
1005//   The request was rejected because it attempted to create a resource that already
1006//   exists.
1007//
1008//   * ErrCodeNoSuchEntityException "NoSuchEntity"
1009//   The request was rejected because it referenced an entity that does not exist.
1010//   The error message describes the entity.
1011//
1012//   * ErrCodeServiceFailureException "ServiceFailure"
1013//   The request processing has failed because of an unknown error, exception
1014//   or failure.
1015//
1016// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateGroup
1017func (c *IAM) CreateGroup(input *CreateGroupInput) (*CreateGroupOutput, error) {
1018	req, out := c.CreateGroupRequest(input)
1019	return out, req.Send()
1020}
1021
1022// CreateGroupWithContext is the same as CreateGroup with the addition of
1023// the ability to pass a context and additional request options.
1024//
1025// See CreateGroup for details on how to use this API operation.
1026//
1027// The context must be non-nil and will be used for request cancellation. If
1028// the context is nil a panic will occur. In the future the SDK may create
1029// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1030// for more information on using Contexts.
1031func (c *IAM) CreateGroupWithContext(ctx aws.Context, input *CreateGroupInput, opts ...request.Option) (*CreateGroupOutput, error) {
1032	req, out := c.CreateGroupRequest(input)
1033	req.SetContext(ctx)
1034	req.ApplyOptions(opts...)
1035	return out, req.Send()
1036}
1037
1038const opCreateInstanceProfile = "CreateInstanceProfile"
1039
1040// CreateInstanceProfileRequest generates a "aws/request.Request" representing the
1041// client's request for the CreateInstanceProfile operation. The "output" return
1042// value will be populated with the request's response once the request complets
1043// successfuly.
1044//
1045// Use "Send" method on the returned Request to send the API call to the service.
1046// the "output" return value is not valid until after Send returns without error.
1047//
1048// See CreateInstanceProfile for more information on using the CreateInstanceProfile
1049// API call, and error handling.
1050//
1051// This method is useful when you want to inject custom logic or configuration
1052// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1053//
1054//
1055//    // Example sending a request using the CreateInstanceProfileRequest method.
1056//    req, resp := client.CreateInstanceProfileRequest(params)
1057//
1058//    err := req.Send()
1059//    if err == nil { // resp is now filled
1060//        fmt.Println(resp)
1061//    }
1062//
1063// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateInstanceProfile
1064func (c *IAM) CreateInstanceProfileRequest(input *CreateInstanceProfileInput) (req *request.Request, output *CreateInstanceProfileOutput) {
1065	op := &request.Operation{
1066		Name:       opCreateInstanceProfile,
1067		HTTPMethod: "POST",
1068		HTTPPath:   "/",
1069	}
1070
1071	if input == nil {
1072		input = &CreateInstanceProfileInput{}
1073	}
1074
1075	output = &CreateInstanceProfileOutput{}
1076	req = c.newRequest(op, input, output)
1077	return
1078}
1079
1080// CreateInstanceProfile API operation for AWS Identity and Access Management.
1081//
1082// Creates a new instance profile. For information about instance profiles,
1083// go to About Instance Profiles (http://docs.aws.amazon.com/IAM/latest/UserGuide/AboutInstanceProfiles.html).
1084//
1085// For information about the number of instance profiles you can create, see
1086// Limitations on IAM Entities (http://docs.aws.amazon.com/IAM/latest/UserGuide/LimitationsOnEntities.html)
1087// in the IAM User Guide.
1088//
1089// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1090// with awserr.Error's Code and Message methods to get detailed information about
1091// the error.
1092//
1093// See the AWS API reference guide for AWS Identity and Access Management's
1094// API operation CreateInstanceProfile for usage and error information.
1095//
1096// Returned Error Codes:
1097//   * ErrCodeEntityAlreadyExistsException "EntityAlreadyExists"
1098//   The request was rejected because it attempted to create a resource that already
1099//   exists.
1100//
1101//   * ErrCodeLimitExceededException "LimitExceeded"
1102//   The request was rejected because it attempted to create resources beyond
1103//   the current AWS account limits. The error message describes the limit exceeded.
1104//
1105//   * ErrCodeServiceFailureException "ServiceFailure"
1106//   The request processing has failed because of an unknown error, exception
1107//   or failure.
1108//
1109// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateInstanceProfile
1110func (c *IAM) CreateInstanceProfile(input *CreateInstanceProfileInput) (*CreateInstanceProfileOutput, error) {
1111	req, out := c.CreateInstanceProfileRequest(input)
1112	return out, req.Send()
1113}
1114
1115// CreateInstanceProfileWithContext is the same as CreateInstanceProfile with the addition of
1116// the ability to pass a context and additional request options.
1117//
1118// See CreateInstanceProfile for details on how to use this API operation.
1119//
1120// The context must be non-nil and will be used for request cancellation. If
1121// the context is nil a panic will occur. In the future the SDK may create
1122// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1123// for more information on using Contexts.
1124func (c *IAM) CreateInstanceProfileWithContext(ctx aws.Context, input *CreateInstanceProfileInput, opts ...request.Option) (*CreateInstanceProfileOutput, error) {
1125	req, out := c.CreateInstanceProfileRequest(input)
1126	req.SetContext(ctx)
1127	req.ApplyOptions(opts...)
1128	return out, req.Send()
1129}
1130
1131const opCreateLoginProfile = "CreateLoginProfile"
1132
1133// CreateLoginProfileRequest generates a "aws/request.Request" representing the
1134// client's request for the CreateLoginProfile operation. The "output" return
1135// value will be populated with the request's response once the request complets
1136// successfuly.
1137//
1138// Use "Send" method on the returned Request to send the API call to the service.
1139// the "output" return value is not valid until after Send returns without error.
1140//
1141// See CreateLoginProfile for more information on using the CreateLoginProfile
1142// API call, and error handling.
1143//
1144// This method is useful when you want to inject custom logic or configuration
1145// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1146//
1147//
1148//    // Example sending a request using the CreateLoginProfileRequest method.
1149//    req, resp := client.CreateLoginProfileRequest(params)
1150//
1151//    err := req.Send()
1152//    if err == nil { // resp is now filled
1153//        fmt.Println(resp)
1154//    }
1155//
1156// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateLoginProfile
1157func (c *IAM) CreateLoginProfileRequest(input *CreateLoginProfileInput) (req *request.Request, output *CreateLoginProfileOutput) {
1158	op := &request.Operation{
1159		Name:       opCreateLoginProfile,
1160		HTTPMethod: "POST",
1161		HTTPPath:   "/",
1162	}
1163
1164	if input == nil {
1165		input = &CreateLoginProfileInput{}
1166	}
1167
1168	output = &CreateLoginProfileOutput{}
1169	req = c.newRequest(op, input, output)
1170	return
1171}
1172
1173// CreateLoginProfile API operation for AWS Identity and Access Management.
1174//
1175// Creates a password for the specified user, giving the user the ability to
1176// access AWS services through the AWS Management Console. For more information
1177// about managing passwords, see Managing Passwords (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_ManagingLogins.html)
1178// in the IAM User Guide.
1179//
1180// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1181// with awserr.Error's Code and Message methods to get detailed information about
1182// the error.
1183//
1184// See the AWS API reference guide for AWS Identity and Access Management's
1185// API operation CreateLoginProfile for usage and error information.
1186//
1187// Returned Error Codes:
1188//   * ErrCodeEntityAlreadyExistsException "EntityAlreadyExists"
1189//   The request was rejected because it attempted to create a resource that already
1190//   exists.
1191//
1192//   * ErrCodeNoSuchEntityException "NoSuchEntity"
1193//   The request was rejected because it referenced an entity that does not exist.
1194//   The error message describes the entity.
1195//
1196//   * ErrCodePasswordPolicyViolationException "PasswordPolicyViolation"
1197//   The request was rejected because the provided password did not meet the requirements
1198//   imposed by the account password policy.
1199//
1200//   * ErrCodeLimitExceededException "LimitExceeded"
1201//   The request was rejected because it attempted to create resources beyond
1202//   the current AWS account limits. The error message describes the limit exceeded.
1203//
1204//   * ErrCodeServiceFailureException "ServiceFailure"
1205//   The request processing has failed because of an unknown error, exception
1206//   or failure.
1207//
1208// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateLoginProfile
1209func (c *IAM) CreateLoginProfile(input *CreateLoginProfileInput) (*CreateLoginProfileOutput, error) {
1210	req, out := c.CreateLoginProfileRequest(input)
1211	return out, req.Send()
1212}
1213
1214// CreateLoginProfileWithContext is the same as CreateLoginProfile with the addition of
1215// the ability to pass a context and additional request options.
1216//
1217// See CreateLoginProfile for details on how to use this API operation.
1218//
1219// The context must be non-nil and will be used for request cancellation. If
1220// the context is nil a panic will occur. In the future the SDK may create
1221// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1222// for more information on using Contexts.
1223func (c *IAM) CreateLoginProfileWithContext(ctx aws.Context, input *CreateLoginProfileInput, opts ...request.Option) (*CreateLoginProfileOutput, error) {
1224	req, out := c.CreateLoginProfileRequest(input)
1225	req.SetContext(ctx)
1226	req.ApplyOptions(opts...)
1227	return out, req.Send()
1228}
1229
1230const opCreateOpenIDConnectProvider = "CreateOpenIDConnectProvider"
1231
1232// CreateOpenIDConnectProviderRequest generates a "aws/request.Request" representing the
1233// client's request for the CreateOpenIDConnectProvider operation. The "output" return
1234// value will be populated with the request's response once the request complets
1235// successfuly.
1236//
1237// Use "Send" method on the returned Request to send the API call to the service.
1238// the "output" return value is not valid until after Send returns without error.
1239//
1240// See CreateOpenIDConnectProvider for more information on using the CreateOpenIDConnectProvider
1241// API call, and error handling.
1242//
1243// This method is useful when you want to inject custom logic or configuration
1244// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1245//
1246//
1247//    // Example sending a request using the CreateOpenIDConnectProviderRequest method.
1248//    req, resp := client.CreateOpenIDConnectProviderRequest(params)
1249//
1250//    err := req.Send()
1251//    if err == nil { // resp is now filled
1252//        fmt.Println(resp)
1253//    }
1254//
1255// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateOpenIDConnectProvider
1256func (c *IAM) CreateOpenIDConnectProviderRequest(input *CreateOpenIDConnectProviderInput) (req *request.Request, output *CreateOpenIDConnectProviderOutput) {
1257	op := &request.Operation{
1258		Name:       opCreateOpenIDConnectProvider,
1259		HTTPMethod: "POST",
1260		HTTPPath:   "/",
1261	}
1262
1263	if input == nil {
1264		input = &CreateOpenIDConnectProviderInput{}
1265	}
1266
1267	output = &CreateOpenIDConnectProviderOutput{}
1268	req = c.newRequest(op, input, output)
1269	return
1270}
1271
1272// CreateOpenIDConnectProvider API operation for AWS Identity and Access Management.
1273//
1274// Creates an IAM entity to describe an identity provider (IdP) that supports
1275// OpenID Connect (OIDC) (http://openid.net/connect/).
1276//
1277// The OIDC provider that you create with this operation can be used as a principal
1278// in a role's trust policy to establish a trust relationship between AWS and
1279// the OIDC provider.
1280//
1281// When you create the IAM OIDC provider, you specify the URL of the OIDC identity
1282// provider (IdP) to trust, a list of client IDs (also known as audiences) that
1283// identify the application or applications that are allowed to authenticate
1284// using the OIDC provider, and a list of thumbprints of the server certificate(s)
1285// that the IdP uses. You get all of this information from the OIDC IdP that
1286// you want to use for access to AWS.
1287//
1288// Because trust for the OIDC provider is ultimately derived from the IAM provider
1289// that this action creates, it is a best practice to limit access to the CreateOpenIDConnectProvider
1290// action to highly-privileged users.
1291//
1292// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1293// with awserr.Error's Code and Message methods to get detailed information about
1294// the error.
1295//
1296// See the AWS API reference guide for AWS Identity and Access Management's
1297// API operation CreateOpenIDConnectProvider for usage and error information.
1298//
1299// Returned Error Codes:
1300//   * ErrCodeInvalidInputException "InvalidInput"
1301//   The request was rejected because an invalid or out-of-range value was supplied
1302//   for an input parameter.
1303//
1304//   * ErrCodeEntityAlreadyExistsException "EntityAlreadyExists"
1305//   The request was rejected because it attempted to create a resource that already
1306//   exists.
1307//
1308//   * ErrCodeLimitExceededException "LimitExceeded"
1309//   The request was rejected because it attempted to create resources beyond
1310//   the current AWS account limits. The error message describes the limit exceeded.
1311//
1312//   * ErrCodeServiceFailureException "ServiceFailure"
1313//   The request processing has failed because of an unknown error, exception
1314//   or failure.
1315//
1316// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateOpenIDConnectProvider
1317func (c *IAM) CreateOpenIDConnectProvider(input *CreateOpenIDConnectProviderInput) (*CreateOpenIDConnectProviderOutput, error) {
1318	req, out := c.CreateOpenIDConnectProviderRequest(input)
1319	return out, req.Send()
1320}
1321
1322// CreateOpenIDConnectProviderWithContext is the same as CreateOpenIDConnectProvider with the addition of
1323// the ability to pass a context and additional request options.
1324//
1325// See CreateOpenIDConnectProvider for details on how to use this API operation.
1326//
1327// The context must be non-nil and will be used for request cancellation. If
1328// the context is nil a panic will occur. In the future the SDK may create
1329// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1330// for more information on using Contexts.
1331func (c *IAM) CreateOpenIDConnectProviderWithContext(ctx aws.Context, input *CreateOpenIDConnectProviderInput, opts ...request.Option) (*CreateOpenIDConnectProviderOutput, error) {
1332	req, out := c.CreateOpenIDConnectProviderRequest(input)
1333	req.SetContext(ctx)
1334	req.ApplyOptions(opts...)
1335	return out, req.Send()
1336}
1337
1338const opCreatePolicy = "CreatePolicy"
1339
1340// CreatePolicyRequest generates a "aws/request.Request" representing the
1341// client's request for the CreatePolicy operation. The "output" return
1342// value will be populated with the request's response once the request complets
1343// successfuly.
1344//
1345// Use "Send" method on the returned Request to send the API call to the service.
1346// the "output" return value is not valid until after Send returns without error.
1347//
1348// See CreatePolicy for more information on using the CreatePolicy
1349// API call, and error handling.
1350//
1351// This method is useful when you want to inject custom logic or configuration
1352// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1353//
1354//
1355//    // Example sending a request using the CreatePolicyRequest method.
1356//    req, resp := client.CreatePolicyRequest(params)
1357//
1358//    err := req.Send()
1359//    if err == nil { // resp is now filled
1360//        fmt.Println(resp)
1361//    }
1362//
1363// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreatePolicy
1364func (c *IAM) CreatePolicyRequest(input *CreatePolicyInput) (req *request.Request, output *CreatePolicyOutput) {
1365	op := &request.Operation{
1366		Name:       opCreatePolicy,
1367		HTTPMethod: "POST",
1368		HTTPPath:   "/",
1369	}
1370
1371	if input == nil {
1372		input = &CreatePolicyInput{}
1373	}
1374
1375	output = &CreatePolicyOutput{}
1376	req = c.newRequest(op, input, output)
1377	return
1378}
1379
1380// CreatePolicy API operation for AWS Identity and Access Management.
1381//
1382// Creates a new managed policy for your AWS account.
1383//
1384// This operation creates a policy version with a version identifier of v1 and
1385// sets v1 as the policy's default version. For more information about policy
1386// versions, see Versioning for Managed Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html)
1387// in the IAM User Guide.
1388//
1389// For more information about managed policies in general, see Managed Policies
1390// and Inline Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
1391// in the IAM User Guide.
1392//
1393// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1394// with awserr.Error's Code and Message methods to get detailed information about
1395// the error.
1396//
1397// See the AWS API reference guide for AWS Identity and Access Management's
1398// API operation CreatePolicy for usage and error information.
1399//
1400// Returned Error Codes:
1401//   * ErrCodeInvalidInputException "InvalidInput"
1402//   The request was rejected because an invalid or out-of-range value was supplied
1403//   for an input parameter.
1404//
1405//   * ErrCodeLimitExceededException "LimitExceeded"
1406//   The request was rejected because it attempted to create resources beyond
1407//   the current AWS account limits. The error message describes the limit exceeded.
1408//
1409//   * ErrCodeEntityAlreadyExistsException "EntityAlreadyExists"
1410//   The request was rejected because it attempted to create a resource that already
1411//   exists.
1412//
1413//   * ErrCodeMalformedPolicyDocumentException "MalformedPolicyDocument"
1414//   The request was rejected because the policy document was malformed. The error
1415//   message describes the specific error.
1416//
1417//   * ErrCodeServiceFailureException "ServiceFailure"
1418//   The request processing has failed because of an unknown error, exception
1419//   or failure.
1420//
1421// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreatePolicy
1422func (c *IAM) CreatePolicy(input *CreatePolicyInput) (*CreatePolicyOutput, error) {
1423	req, out := c.CreatePolicyRequest(input)
1424	return out, req.Send()
1425}
1426
1427// CreatePolicyWithContext is the same as CreatePolicy with the addition of
1428// the ability to pass a context and additional request options.
1429//
1430// See CreatePolicy for details on how to use this API operation.
1431//
1432// The context must be non-nil and will be used for request cancellation. If
1433// the context is nil a panic will occur. In the future the SDK may create
1434// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1435// for more information on using Contexts.
1436func (c *IAM) CreatePolicyWithContext(ctx aws.Context, input *CreatePolicyInput, opts ...request.Option) (*CreatePolicyOutput, error) {
1437	req, out := c.CreatePolicyRequest(input)
1438	req.SetContext(ctx)
1439	req.ApplyOptions(opts...)
1440	return out, req.Send()
1441}
1442
1443const opCreatePolicyVersion = "CreatePolicyVersion"
1444
1445// CreatePolicyVersionRequest generates a "aws/request.Request" representing the
1446// client's request for the CreatePolicyVersion operation. The "output" return
1447// value will be populated with the request's response once the request complets
1448// successfuly.
1449//
1450// Use "Send" method on the returned Request to send the API call to the service.
1451// the "output" return value is not valid until after Send returns without error.
1452//
1453// See CreatePolicyVersion for more information on using the CreatePolicyVersion
1454// API call, and error handling.
1455//
1456// This method is useful when you want to inject custom logic or configuration
1457// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1458//
1459//
1460//    // Example sending a request using the CreatePolicyVersionRequest method.
1461//    req, resp := client.CreatePolicyVersionRequest(params)
1462//
1463//    err := req.Send()
1464//    if err == nil { // resp is now filled
1465//        fmt.Println(resp)
1466//    }
1467//
1468// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreatePolicyVersion
1469func (c *IAM) CreatePolicyVersionRequest(input *CreatePolicyVersionInput) (req *request.Request, output *CreatePolicyVersionOutput) {
1470	op := &request.Operation{
1471		Name:       opCreatePolicyVersion,
1472		HTTPMethod: "POST",
1473		HTTPPath:   "/",
1474	}
1475
1476	if input == nil {
1477		input = &CreatePolicyVersionInput{}
1478	}
1479
1480	output = &CreatePolicyVersionOutput{}
1481	req = c.newRequest(op, input, output)
1482	return
1483}
1484
1485// CreatePolicyVersion API operation for AWS Identity and Access Management.
1486//
1487// Creates a new version of the specified managed policy. To update a managed
1488// policy, you create a new policy version. A managed policy can have up to
1489// five versions. If the policy has five versions, you must delete an existing
1490// version using DeletePolicyVersion before you create a new version.
1491//
1492// Optionally, you can set the new version as the policy's default version.
1493// The default version is the version that is in effect for the IAM users, groups,
1494// and roles to which the policy is attached.
1495//
1496// For more information about managed policy versions, see Versioning for Managed
1497// Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html)
1498// in the IAM User Guide.
1499//
1500// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1501// with awserr.Error's Code and Message methods to get detailed information about
1502// the error.
1503//
1504// See the AWS API reference guide for AWS Identity and Access Management's
1505// API operation CreatePolicyVersion for usage and error information.
1506//
1507// Returned Error Codes:
1508//   * ErrCodeNoSuchEntityException "NoSuchEntity"
1509//   The request was rejected because it referenced an entity that does not exist.
1510//   The error message describes the entity.
1511//
1512//   * ErrCodeMalformedPolicyDocumentException "MalformedPolicyDocument"
1513//   The request was rejected because the policy document was malformed. The error
1514//   message describes the specific error.
1515//
1516//   * ErrCodeInvalidInputException "InvalidInput"
1517//   The request was rejected because an invalid or out-of-range value was supplied
1518//   for an input parameter.
1519//
1520//   * ErrCodeLimitExceededException "LimitExceeded"
1521//   The request was rejected because it attempted to create resources beyond
1522//   the current AWS account limits. The error message describes the limit exceeded.
1523//
1524//   * ErrCodeServiceFailureException "ServiceFailure"
1525//   The request processing has failed because of an unknown error, exception
1526//   or failure.
1527//
1528// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreatePolicyVersion
1529func (c *IAM) CreatePolicyVersion(input *CreatePolicyVersionInput) (*CreatePolicyVersionOutput, error) {
1530	req, out := c.CreatePolicyVersionRequest(input)
1531	return out, req.Send()
1532}
1533
1534// CreatePolicyVersionWithContext is the same as CreatePolicyVersion with the addition of
1535// the ability to pass a context and additional request options.
1536//
1537// See CreatePolicyVersion for details on how to use this API operation.
1538//
1539// The context must be non-nil and will be used for request cancellation. If
1540// the context is nil a panic will occur. In the future the SDK may create
1541// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1542// for more information on using Contexts.
1543func (c *IAM) CreatePolicyVersionWithContext(ctx aws.Context, input *CreatePolicyVersionInput, opts ...request.Option) (*CreatePolicyVersionOutput, error) {
1544	req, out := c.CreatePolicyVersionRequest(input)
1545	req.SetContext(ctx)
1546	req.ApplyOptions(opts...)
1547	return out, req.Send()
1548}
1549
1550const opCreateRole = "CreateRole"
1551
1552// CreateRoleRequest generates a "aws/request.Request" representing the
1553// client's request for the CreateRole operation. The "output" return
1554// value will be populated with the request's response once the request complets
1555// successfuly.
1556//
1557// Use "Send" method on the returned Request to send the API call to the service.
1558// the "output" return value is not valid until after Send returns without error.
1559//
1560// See CreateRole for more information on using the CreateRole
1561// API call, and error handling.
1562//
1563// This method is useful when you want to inject custom logic or configuration
1564// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1565//
1566//
1567//    // Example sending a request using the CreateRoleRequest method.
1568//    req, resp := client.CreateRoleRequest(params)
1569//
1570//    err := req.Send()
1571//    if err == nil { // resp is now filled
1572//        fmt.Println(resp)
1573//    }
1574//
1575// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateRole
1576func (c *IAM) CreateRoleRequest(input *CreateRoleInput) (req *request.Request, output *CreateRoleOutput) {
1577	op := &request.Operation{
1578		Name:       opCreateRole,
1579		HTTPMethod: "POST",
1580		HTTPPath:   "/",
1581	}
1582
1583	if input == nil {
1584		input = &CreateRoleInput{}
1585	}
1586
1587	output = &CreateRoleOutput{}
1588	req = c.newRequest(op, input, output)
1589	return
1590}
1591
1592// CreateRole API operation for AWS Identity and Access Management.
1593//
1594// Creates a new role for your AWS account. For more information about roles,
1595// go to Working with Roles (http://docs.aws.amazon.com/IAM/latest/UserGuide/WorkingWithRoles.html).
1596// For information about limitations on role names and the number of roles you
1597// can create, go to Limitations on IAM Entities (http://docs.aws.amazon.com/IAM/latest/UserGuide/LimitationsOnEntities.html)
1598// in the IAM User Guide.
1599//
1600// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1601// with awserr.Error's Code and Message methods to get detailed information about
1602// the error.
1603//
1604// See the AWS API reference guide for AWS Identity and Access Management's
1605// API operation CreateRole for usage and error information.
1606//
1607// Returned Error Codes:
1608//   * ErrCodeLimitExceededException "LimitExceeded"
1609//   The request was rejected because it attempted to create resources beyond
1610//   the current AWS account limits. The error message describes the limit exceeded.
1611//
1612//   * ErrCodeInvalidInputException "InvalidInput"
1613//   The request was rejected because an invalid or out-of-range value was supplied
1614//   for an input parameter.
1615//
1616//   * ErrCodeEntityAlreadyExistsException "EntityAlreadyExists"
1617//   The request was rejected because it attempted to create a resource that already
1618//   exists.
1619//
1620//   * ErrCodeMalformedPolicyDocumentException "MalformedPolicyDocument"
1621//   The request was rejected because the policy document was malformed. The error
1622//   message describes the specific error.
1623//
1624//   * ErrCodeServiceFailureException "ServiceFailure"
1625//   The request processing has failed because of an unknown error, exception
1626//   or failure.
1627//
1628// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateRole
1629func (c *IAM) CreateRole(input *CreateRoleInput) (*CreateRoleOutput, error) {
1630	req, out := c.CreateRoleRequest(input)
1631	return out, req.Send()
1632}
1633
1634// CreateRoleWithContext is the same as CreateRole with the addition of
1635// the ability to pass a context and additional request options.
1636//
1637// See CreateRole for details on how to use this API operation.
1638//
1639// The context must be non-nil and will be used for request cancellation. If
1640// the context is nil a panic will occur. In the future the SDK may create
1641// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1642// for more information on using Contexts.
1643func (c *IAM) CreateRoleWithContext(ctx aws.Context, input *CreateRoleInput, opts ...request.Option) (*CreateRoleOutput, error) {
1644	req, out := c.CreateRoleRequest(input)
1645	req.SetContext(ctx)
1646	req.ApplyOptions(opts...)
1647	return out, req.Send()
1648}
1649
1650const opCreateSAMLProvider = "CreateSAMLProvider"
1651
1652// CreateSAMLProviderRequest generates a "aws/request.Request" representing the
1653// client's request for the CreateSAMLProvider operation. The "output" return
1654// value will be populated with the request's response once the request complets
1655// successfuly.
1656//
1657// Use "Send" method on the returned Request to send the API call to the service.
1658// the "output" return value is not valid until after Send returns without error.
1659//
1660// See CreateSAMLProvider for more information on using the CreateSAMLProvider
1661// API call, and error handling.
1662//
1663// This method is useful when you want to inject custom logic or configuration
1664// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1665//
1666//
1667//    // Example sending a request using the CreateSAMLProviderRequest method.
1668//    req, resp := client.CreateSAMLProviderRequest(params)
1669//
1670//    err := req.Send()
1671//    if err == nil { // resp is now filled
1672//        fmt.Println(resp)
1673//    }
1674//
1675// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateSAMLProvider
1676func (c *IAM) CreateSAMLProviderRequest(input *CreateSAMLProviderInput) (req *request.Request, output *CreateSAMLProviderOutput) {
1677	op := &request.Operation{
1678		Name:       opCreateSAMLProvider,
1679		HTTPMethod: "POST",
1680		HTTPPath:   "/",
1681	}
1682
1683	if input == nil {
1684		input = &CreateSAMLProviderInput{}
1685	}
1686
1687	output = &CreateSAMLProviderOutput{}
1688	req = c.newRequest(op, input, output)
1689	return
1690}
1691
1692// CreateSAMLProvider API operation for AWS Identity and Access Management.
1693//
1694// Creates an IAM resource that describes an identity provider (IdP) that supports
1695// SAML 2.0.
1696//
1697// The SAML provider resource that you create with this operation can be used
1698// as a principal in an IAM role's trust policy to enable federated users who
1699// sign-in using the SAML IdP to assume the role. You can create an IAM role
1700// that supports Web-based single sign-on (SSO) to the AWS Management Console
1701// or one that supports API access to AWS.
1702//
1703// When you create the SAML provider resource, you upload an a SAML metadata
1704// document that you get from your IdP and that includes the issuer's name,
1705// expiration information, and keys that can be used to validate the SAML authentication
1706// response (assertions) that the IdP sends. You must generate the metadata
1707// document using the identity management software that is used as your organization's
1708// IdP.
1709//
1710// This operation requires Signature Version 4 (http://docs.aws.amazon.com/general/latest/gr/signature-version-4.html).
1711//
1712// For more information, see Enabling SAML 2.0 Federated Users to Access the
1713// AWS Management Console (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_enable-console-saml.html)
1714// and About SAML 2.0-based Federation (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_saml.html)
1715// in the IAM User Guide.
1716//
1717// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1718// with awserr.Error's Code and Message methods to get detailed information about
1719// the error.
1720//
1721// See the AWS API reference guide for AWS Identity and Access Management's
1722// API operation CreateSAMLProvider for usage and error information.
1723//
1724// Returned Error Codes:
1725//   * ErrCodeInvalidInputException "InvalidInput"
1726//   The request was rejected because an invalid or out-of-range value was supplied
1727//   for an input parameter.
1728//
1729//   * ErrCodeEntityAlreadyExistsException "EntityAlreadyExists"
1730//   The request was rejected because it attempted to create a resource that already
1731//   exists.
1732//
1733//   * ErrCodeLimitExceededException "LimitExceeded"
1734//   The request was rejected because it attempted to create resources beyond
1735//   the current AWS account limits. The error message describes the limit exceeded.
1736//
1737//   * ErrCodeServiceFailureException "ServiceFailure"
1738//   The request processing has failed because of an unknown error, exception
1739//   or failure.
1740//
1741// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateSAMLProvider
1742func (c *IAM) CreateSAMLProvider(input *CreateSAMLProviderInput) (*CreateSAMLProviderOutput, error) {
1743	req, out := c.CreateSAMLProviderRequest(input)
1744	return out, req.Send()
1745}
1746
1747// CreateSAMLProviderWithContext is the same as CreateSAMLProvider with the addition of
1748// the ability to pass a context and additional request options.
1749//
1750// See CreateSAMLProvider for details on how to use this API operation.
1751//
1752// The context must be non-nil and will be used for request cancellation. If
1753// the context is nil a panic will occur. In the future the SDK may create
1754// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1755// for more information on using Contexts.
1756func (c *IAM) CreateSAMLProviderWithContext(ctx aws.Context, input *CreateSAMLProviderInput, opts ...request.Option) (*CreateSAMLProviderOutput, error) {
1757	req, out := c.CreateSAMLProviderRequest(input)
1758	req.SetContext(ctx)
1759	req.ApplyOptions(opts...)
1760	return out, req.Send()
1761}
1762
1763const opCreateServiceLinkedRole = "CreateServiceLinkedRole"
1764
1765// CreateServiceLinkedRoleRequest generates a "aws/request.Request" representing the
1766// client's request for the CreateServiceLinkedRole operation. The "output" return
1767// value will be populated with the request's response once the request complets
1768// successfuly.
1769//
1770// Use "Send" method on the returned Request to send the API call to the service.
1771// the "output" return value is not valid until after Send returns without error.
1772//
1773// See CreateServiceLinkedRole for more information on using the CreateServiceLinkedRole
1774// API call, and error handling.
1775//
1776// This method is useful when you want to inject custom logic or configuration
1777// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1778//
1779//
1780//    // Example sending a request using the CreateServiceLinkedRoleRequest method.
1781//    req, resp := client.CreateServiceLinkedRoleRequest(params)
1782//
1783//    err := req.Send()
1784//    if err == nil { // resp is now filled
1785//        fmt.Println(resp)
1786//    }
1787//
1788// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateServiceLinkedRole
1789func (c *IAM) CreateServiceLinkedRoleRequest(input *CreateServiceLinkedRoleInput) (req *request.Request, output *CreateServiceLinkedRoleOutput) {
1790	op := &request.Operation{
1791		Name:       opCreateServiceLinkedRole,
1792		HTTPMethod: "POST",
1793		HTTPPath:   "/",
1794	}
1795
1796	if input == nil {
1797		input = &CreateServiceLinkedRoleInput{}
1798	}
1799
1800	output = &CreateServiceLinkedRoleOutput{}
1801	req = c.newRequest(op, input, output)
1802	return
1803}
1804
1805// CreateServiceLinkedRole API operation for AWS Identity and Access Management.
1806//
1807// Creates an IAM role that is linked to a specific AWS service. The service
1808// controls the attached policies and when the role can be deleted. This helps
1809// ensure that the service is not broken by an unexpectedly changed or deleted
1810// role, which could put your AWS resources into an unknown state. Allowing
1811// the service to control the role helps improve service stability and proper
1812// cleanup when a service and its role are no longer needed.
1813//
1814// The name of the role is autogenerated by combining the string that you specify
1815// for the AWSServiceName parameter with the string that you specify for the
1816// CustomSuffix parameter. The resulting name must be unique in your account
1817// or the request fails.
1818//
1819// To attach a policy to this service-linked role, you must make the request
1820// using the AWS service that depends on this role.
1821//
1822// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1823// with awserr.Error's Code and Message methods to get detailed information about
1824// the error.
1825//
1826// See the AWS API reference guide for AWS Identity and Access Management's
1827// API operation CreateServiceLinkedRole for usage and error information.
1828//
1829// Returned Error Codes:
1830//   * ErrCodeInvalidInputException "InvalidInput"
1831//   The request was rejected because an invalid or out-of-range value was supplied
1832//   for an input parameter.
1833//
1834//   * ErrCodeLimitExceededException "LimitExceeded"
1835//   The request was rejected because it attempted to create resources beyond
1836//   the current AWS account limits. The error message describes the limit exceeded.
1837//
1838//   * ErrCodeNoSuchEntityException "NoSuchEntity"
1839//   The request was rejected because it referenced an entity that does not exist.
1840//   The error message describes the entity.
1841//
1842//   * ErrCodeServiceFailureException "ServiceFailure"
1843//   The request processing has failed because of an unknown error, exception
1844//   or failure.
1845//
1846// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateServiceLinkedRole
1847func (c *IAM) CreateServiceLinkedRole(input *CreateServiceLinkedRoleInput) (*CreateServiceLinkedRoleOutput, error) {
1848	req, out := c.CreateServiceLinkedRoleRequest(input)
1849	return out, req.Send()
1850}
1851
1852// CreateServiceLinkedRoleWithContext is the same as CreateServiceLinkedRole with the addition of
1853// the ability to pass a context and additional request options.
1854//
1855// See CreateServiceLinkedRole for details on how to use this API operation.
1856//
1857// The context must be non-nil and will be used for request cancellation. If
1858// the context is nil a panic will occur. In the future the SDK may create
1859// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1860// for more information on using Contexts.
1861func (c *IAM) CreateServiceLinkedRoleWithContext(ctx aws.Context, input *CreateServiceLinkedRoleInput, opts ...request.Option) (*CreateServiceLinkedRoleOutput, error) {
1862	req, out := c.CreateServiceLinkedRoleRequest(input)
1863	req.SetContext(ctx)
1864	req.ApplyOptions(opts...)
1865	return out, req.Send()
1866}
1867
1868const opCreateServiceSpecificCredential = "CreateServiceSpecificCredential"
1869
1870// CreateServiceSpecificCredentialRequest generates a "aws/request.Request" representing the
1871// client's request for the CreateServiceSpecificCredential operation. The "output" return
1872// value will be populated with the request's response once the request complets
1873// successfuly.
1874//
1875// Use "Send" method on the returned Request to send the API call to the service.
1876// the "output" return value is not valid until after Send returns without error.
1877//
1878// See CreateServiceSpecificCredential for more information on using the CreateServiceSpecificCredential
1879// API call, and error handling.
1880//
1881// This method is useful when you want to inject custom logic or configuration
1882// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1883//
1884//
1885//    // Example sending a request using the CreateServiceSpecificCredentialRequest method.
1886//    req, resp := client.CreateServiceSpecificCredentialRequest(params)
1887//
1888//    err := req.Send()
1889//    if err == nil { // resp is now filled
1890//        fmt.Println(resp)
1891//    }
1892//
1893// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateServiceSpecificCredential
1894func (c *IAM) CreateServiceSpecificCredentialRequest(input *CreateServiceSpecificCredentialInput) (req *request.Request, output *CreateServiceSpecificCredentialOutput) {
1895	op := &request.Operation{
1896		Name:       opCreateServiceSpecificCredential,
1897		HTTPMethod: "POST",
1898		HTTPPath:   "/",
1899	}
1900
1901	if input == nil {
1902		input = &CreateServiceSpecificCredentialInput{}
1903	}
1904
1905	output = &CreateServiceSpecificCredentialOutput{}
1906	req = c.newRequest(op, input, output)
1907	return
1908}
1909
1910// CreateServiceSpecificCredential API operation for AWS Identity and Access Management.
1911//
1912// Generates a set of credentials consisting of a user name and password that
1913// can be used to access the service specified in the request. These credentials
1914// are generated by IAM, and can be used only for the specified service.
1915//
1916// You can have a maximum of two sets of service-specific credentials for each
1917// supported service per user.
1918//
1919// The only supported service at this time is AWS CodeCommit.
1920//
1921// You can reset the password to a new service-generated value by calling ResetServiceSpecificCredential.
1922//
1923// For more information about service-specific credentials, see Using IAM with
1924// AWS CodeCommit: Git Credentials, SSH Keys, and AWS Access Keys (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_ssh-keys.html)
1925// in the IAM User Guide.
1926//
1927// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1928// with awserr.Error's Code and Message methods to get detailed information about
1929// the error.
1930//
1931// See the AWS API reference guide for AWS Identity and Access Management's
1932// API operation CreateServiceSpecificCredential for usage and error information.
1933//
1934// Returned Error Codes:
1935//   * ErrCodeLimitExceededException "LimitExceeded"
1936//   The request was rejected because it attempted to create resources beyond
1937//   the current AWS account limits. The error message describes the limit exceeded.
1938//
1939//   * ErrCodeNoSuchEntityException "NoSuchEntity"
1940//   The request was rejected because it referenced an entity that does not exist.
1941//   The error message describes the entity.
1942//
1943//   * ErrCodeServiceNotSupportedException "NotSupportedService"
1944//   The specified service does not support service-specific credentials.
1945//
1946// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateServiceSpecificCredential
1947func (c *IAM) CreateServiceSpecificCredential(input *CreateServiceSpecificCredentialInput) (*CreateServiceSpecificCredentialOutput, error) {
1948	req, out := c.CreateServiceSpecificCredentialRequest(input)
1949	return out, req.Send()
1950}
1951
1952// CreateServiceSpecificCredentialWithContext is the same as CreateServiceSpecificCredential with the addition of
1953// the ability to pass a context and additional request options.
1954//
1955// See CreateServiceSpecificCredential for details on how to use this API operation.
1956//
1957// The context must be non-nil and will be used for request cancellation. If
1958// the context is nil a panic will occur. In the future the SDK may create
1959// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1960// for more information on using Contexts.
1961func (c *IAM) CreateServiceSpecificCredentialWithContext(ctx aws.Context, input *CreateServiceSpecificCredentialInput, opts ...request.Option) (*CreateServiceSpecificCredentialOutput, error) {
1962	req, out := c.CreateServiceSpecificCredentialRequest(input)
1963	req.SetContext(ctx)
1964	req.ApplyOptions(opts...)
1965	return out, req.Send()
1966}
1967
1968const opCreateUser = "CreateUser"
1969
1970// CreateUserRequest generates a "aws/request.Request" representing the
1971// client's request for the CreateUser operation. The "output" return
1972// value will be populated with the request's response once the request complets
1973// successfuly.
1974//
1975// Use "Send" method on the returned Request to send the API call to the service.
1976// the "output" return value is not valid until after Send returns without error.
1977//
1978// See CreateUser for more information on using the CreateUser
1979// API call, and error handling.
1980//
1981// This method is useful when you want to inject custom logic or configuration
1982// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1983//
1984//
1985//    // Example sending a request using the CreateUserRequest method.
1986//    req, resp := client.CreateUserRequest(params)
1987//
1988//    err := req.Send()
1989//    if err == nil { // resp is now filled
1990//        fmt.Println(resp)
1991//    }
1992//
1993// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateUser
1994func (c *IAM) CreateUserRequest(input *CreateUserInput) (req *request.Request, output *CreateUserOutput) {
1995	op := &request.Operation{
1996		Name:       opCreateUser,
1997		HTTPMethod: "POST",
1998		HTTPPath:   "/",
1999	}
2000
2001	if input == nil {
2002		input = &CreateUserInput{}
2003	}
2004
2005	output = &CreateUserOutput{}
2006	req = c.newRequest(op, input, output)
2007	return
2008}
2009
2010// CreateUser API operation for AWS Identity and Access Management.
2011//
2012// Creates a new IAM user for your AWS account.
2013//
2014// For information about limitations on the number of IAM users you can create,
2015// see Limitations on IAM Entities (http://docs.aws.amazon.com/IAM/latest/UserGuide/LimitationsOnEntities.html)
2016// in the IAM User Guide.
2017//
2018// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2019// with awserr.Error's Code and Message methods to get detailed information about
2020// the error.
2021//
2022// See the AWS API reference guide for AWS Identity and Access Management's
2023// API operation CreateUser for usage and error information.
2024//
2025// Returned Error Codes:
2026//   * ErrCodeLimitExceededException "LimitExceeded"
2027//   The request was rejected because it attempted to create resources beyond
2028//   the current AWS account limits. The error message describes the limit exceeded.
2029//
2030//   * ErrCodeEntityAlreadyExistsException "EntityAlreadyExists"
2031//   The request was rejected because it attempted to create a resource that already
2032//   exists.
2033//
2034//   * ErrCodeNoSuchEntityException "NoSuchEntity"
2035//   The request was rejected because it referenced an entity that does not exist.
2036//   The error message describes the entity.
2037//
2038//   * ErrCodeServiceFailureException "ServiceFailure"
2039//   The request processing has failed because of an unknown error, exception
2040//   or failure.
2041//
2042// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateUser
2043func (c *IAM) CreateUser(input *CreateUserInput) (*CreateUserOutput, error) {
2044	req, out := c.CreateUserRequest(input)
2045	return out, req.Send()
2046}
2047
2048// CreateUserWithContext is the same as CreateUser with the addition of
2049// the ability to pass a context and additional request options.
2050//
2051// See CreateUser for details on how to use this API operation.
2052//
2053// The context must be non-nil and will be used for request cancellation. If
2054// the context is nil a panic will occur. In the future the SDK may create
2055// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2056// for more information on using Contexts.
2057func (c *IAM) CreateUserWithContext(ctx aws.Context, input *CreateUserInput, opts ...request.Option) (*CreateUserOutput, error) {
2058	req, out := c.CreateUserRequest(input)
2059	req.SetContext(ctx)
2060	req.ApplyOptions(opts...)
2061	return out, req.Send()
2062}
2063
2064const opCreateVirtualMFADevice = "CreateVirtualMFADevice"
2065
2066// CreateVirtualMFADeviceRequest generates a "aws/request.Request" representing the
2067// client's request for the CreateVirtualMFADevice operation. The "output" return
2068// value will be populated with the request's response once the request complets
2069// successfuly.
2070//
2071// Use "Send" method on the returned Request to send the API call to the service.
2072// the "output" return value is not valid until after Send returns without error.
2073//
2074// See CreateVirtualMFADevice for more information on using the CreateVirtualMFADevice
2075// API call, and error handling.
2076//
2077// This method is useful when you want to inject custom logic or configuration
2078// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2079//
2080//
2081//    // Example sending a request using the CreateVirtualMFADeviceRequest method.
2082//    req, resp := client.CreateVirtualMFADeviceRequest(params)
2083//
2084//    err := req.Send()
2085//    if err == nil { // resp is now filled
2086//        fmt.Println(resp)
2087//    }
2088//
2089// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateVirtualMFADevice
2090func (c *IAM) CreateVirtualMFADeviceRequest(input *CreateVirtualMFADeviceInput) (req *request.Request, output *CreateVirtualMFADeviceOutput) {
2091	op := &request.Operation{
2092		Name:       opCreateVirtualMFADevice,
2093		HTTPMethod: "POST",
2094		HTTPPath:   "/",
2095	}
2096
2097	if input == nil {
2098		input = &CreateVirtualMFADeviceInput{}
2099	}
2100
2101	output = &CreateVirtualMFADeviceOutput{}
2102	req = c.newRequest(op, input, output)
2103	return
2104}
2105
2106// CreateVirtualMFADevice API operation for AWS Identity and Access Management.
2107//
2108// Creates a new virtual MFA device for the AWS account. After creating the
2109// virtual MFA, use EnableMFADevice to attach the MFA device to an IAM user.
2110// For more information about creating and working with virtual MFA devices,
2111// go to Using a Virtual MFA Device (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_VirtualMFA.html)
2112// in the IAM User Guide.
2113//
2114// For information about limits on the number of MFA devices you can create,
2115// see Limitations on Entities (http://docs.aws.amazon.com/IAM/latest/UserGuide/LimitationsOnEntities.html)
2116// in the IAM User Guide.
2117//
2118// The seed information contained in the QR code and the Base32 string should
2119// be treated like any other secret access information, such as your AWS access
2120// keys or your passwords. After you provision your virtual device, you should
2121// ensure that the information is destroyed following secure procedures.
2122//
2123// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2124// with awserr.Error's Code and Message methods to get detailed information about
2125// the error.
2126//
2127// See the AWS API reference guide for AWS Identity and Access Management's
2128// API operation CreateVirtualMFADevice for usage and error information.
2129//
2130// Returned Error Codes:
2131//   * ErrCodeLimitExceededException "LimitExceeded"
2132//   The request was rejected because it attempted to create resources beyond
2133//   the current AWS account limits. The error message describes the limit exceeded.
2134//
2135//   * ErrCodeEntityAlreadyExistsException "EntityAlreadyExists"
2136//   The request was rejected because it attempted to create a resource that already
2137//   exists.
2138//
2139//   * ErrCodeServiceFailureException "ServiceFailure"
2140//   The request processing has failed because of an unknown error, exception
2141//   or failure.
2142//
2143// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateVirtualMFADevice
2144func (c *IAM) CreateVirtualMFADevice(input *CreateVirtualMFADeviceInput) (*CreateVirtualMFADeviceOutput, error) {
2145	req, out := c.CreateVirtualMFADeviceRequest(input)
2146	return out, req.Send()
2147}
2148
2149// CreateVirtualMFADeviceWithContext is the same as CreateVirtualMFADevice with the addition of
2150// the ability to pass a context and additional request options.
2151//
2152// See CreateVirtualMFADevice for details on how to use this API operation.
2153//
2154// The context must be non-nil and will be used for request cancellation. If
2155// the context is nil a panic will occur. In the future the SDK may create
2156// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2157// for more information on using Contexts.
2158func (c *IAM) CreateVirtualMFADeviceWithContext(ctx aws.Context, input *CreateVirtualMFADeviceInput, opts ...request.Option) (*CreateVirtualMFADeviceOutput, error) {
2159	req, out := c.CreateVirtualMFADeviceRequest(input)
2160	req.SetContext(ctx)
2161	req.ApplyOptions(opts...)
2162	return out, req.Send()
2163}
2164
2165const opDeactivateMFADevice = "DeactivateMFADevice"
2166
2167// DeactivateMFADeviceRequest generates a "aws/request.Request" representing the
2168// client's request for the DeactivateMFADevice operation. The "output" return
2169// value will be populated with the request's response once the request complets
2170// successfuly.
2171//
2172// Use "Send" method on the returned Request to send the API call to the service.
2173// the "output" return value is not valid until after Send returns without error.
2174//
2175// See DeactivateMFADevice for more information on using the DeactivateMFADevice
2176// API call, and error handling.
2177//
2178// This method is useful when you want to inject custom logic or configuration
2179// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2180//
2181//
2182//    // Example sending a request using the DeactivateMFADeviceRequest method.
2183//    req, resp := client.DeactivateMFADeviceRequest(params)
2184//
2185//    err := req.Send()
2186//    if err == nil { // resp is now filled
2187//        fmt.Println(resp)
2188//    }
2189//
2190// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeactivateMFADevice
2191func (c *IAM) DeactivateMFADeviceRequest(input *DeactivateMFADeviceInput) (req *request.Request, output *DeactivateMFADeviceOutput) {
2192	op := &request.Operation{
2193		Name:       opDeactivateMFADevice,
2194		HTTPMethod: "POST",
2195		HTTPPath:   "/",
2196	}
2197
2198	if input == nil {
2199		input = &DeactivateMFADeviceInput{}
2200	}
2201
2202	output = &DeactivateMFADeviceOutput{}
2203	req = c.newRequest(op, input, output)
2204	req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
2205	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
2206	return
2207}
2208
2209// DeactivateMFADevice API operation for AWS Identity and Access Management.
2210//
2211// Deactivates the specified MFA device and removes it from association with
2212// the user name for which it was originally enabled.
2213//
2214// For more information about creating and working with virtual MFA devices,
2215// go to Using a Virtual MFA Device (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_VirtualMFA.html)
2216// in the IAM User Guide.
2217//
2218// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2219// with awserr.Error's Code and Message methods to get detailed information about
2220// the error.
2221//
2222// See the AWS API reference guide for AWS Identity and Access Management's
2223// API operation DeactivateMFADevice for usage and error information.
2224//
2225// Returned Error Codes:
2226//   * ErrCodeEntityTemporarilyUnmodifiableException "EntityTemporarilyUnmodifiable"
2227//   The request was rejected because it referenced an entity that is temporarily
2228//   unmodifiable, such as a user name that was deleted and then recreated. The
2229//   error indicates that the request is likely to succeed if you try again after
2230//   waiting several minutes. The error message describes the entity.
2231//
2232//   * ErrCodeNoSuchEntityException "NoSuchEntity"
2233//   The request was rejected because it referenced an entity that does not exist.
2234//   The error message describes the entity.
2235//
2236//   * ErrCodeLimitExceededException "LimitExceeded"
2237//   The request was rejected because it attempted to create resources beyond
2238//   the current AWS account limits. The error message describes the limit exceeded.
2239//
2240//   * ErrCodeServiceFailureException "ServiceFailure"
2241//   The request processing has failed because of an unknown error, exception
2242//   or failure.
2243//
2244// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeactivateMFADevice
2245func (c *IAM) DeactivateMFADevice(input *DeactivateMFADeviceInput) (*DeactivateMFADeviceOutput, error) {
2246	req, out := c.DeactivateMFADeviceRequest(input)
2247	return out, req.Send()
2248}
2249
2250// DeactivateMFADeviceWithContext is the same as DeactivateMFADevice with the addition of
2251// the ability to pass a context and additional request options.
2252//
2253// See DeactivateMFADevice for details on how to use this API operation.
2254//
2255// The context must be non-nil and will be used for request cancellation. If
2256// the context is nil a panic will occur. In the future the SDK may create
2257// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2258// for more information on using Contexts.
2259func (c *IAM) DeactivateMFADeviceWithContext(ctx aws.Context, input *DeactivateMFADeviceInput, opts ...request.Option) (*DeactivateMFADeviceOutput, error) {
2260	req, out := c.DeactivateMFADeviceRequest(input)
2261	req.SetContext(ctx)
2262	req.ApplyOptions(opts...)
2263	return out, req.Send()
2264}
2265
2266const opDeleteAccessKey = "DeleteAccessKey"
2267
2268// DeleteAccessKeyRequest generates a "aws/request.Request" representing the
2269// client's request for the DeleteAccessKey operation. The "output" return
2270// value will be populated with the request's response once the request complets
2271// successfuly.
2272//
2273// Use "Send" method on the returned Request to send the API call to the service.
2274// the "output" return value is not valid until after Send returns without error.
2275//
2276// See DeleteAccessKey for more information on using the DeleteAccessKey
2277// API call, and error handling.
2278//
2279// This method is useful when you want to inject custom logic or configuration
2280// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2281//
2282//
2283//    // Example sending a request using the DeleteAccessKeyRequest method.
2284//    req, resp := client.DeleteAccessKeyRequest(params)
2285//
2286//    err := req.Send()
2287//    if err == nil { // resp is now filled
2288//        fmt.Println(resp)
2289//    }
2290//
2291// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteAccessKey
2292func (c *IAM) DeleteAccessKeyRequest(input *DeleteAccessKeyInput) (req *request.Request, output *DeleteAccessKeyOutput) {
2293	op := &request.Operation{
2294		Name:       opDeleteAccessKey,
2295		HTTPMethod: "POST",
2296		HTTPPath:   "/",
2297	}
2298
2299	if input == nil {
2300		input = &DeleteAccessKeyInput{}
2301	}
2302
2303	output = &DeleteAccessKeyOutput{}
2304	req = c.newRequest(op, input, output)
2305	req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
2306	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
2307	return
2308}
2309
2310// DeleteAccessKey API operation for AWS Identity and Access Management.
2311//
2312// Deletes the access key pair associated with the specified IAM user.
2313//
2314// If you do not specify a user name, IAM determines the user name implicitly
2315// based on the AWS access key ID signing the request. Because this action works
2316// for access keys under the AWS account, you can use this action to manage
2317// root credentials even if the AWS account has no associated users.
2318//
2319// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2320// with awserr.Error's Code and Message methods to get detailed information about
2321// the error.
2322//
2323// See the AWS API reference guide for AWS Identity and Access Management's
2324// API operation DeleteAccessKey for usage and error information.
2325//
2326// Returned Error Codes:
2327//   * ErrCodeNoSuchEntityException "NoSuchEntity"
2328//   The request was rejected because it referenced an entity that does not exist.
2329//   The error message describes the entity.
2330//
2331//   * ErrCodeLimitExceededException "LimitExceeded"
2332//   The request was rejected because it attempted to create resources beyond
2333//   the current AWS account limits. The error message describes the limit exceeded.
2334//
2335//   * ErrCodeServiceFailureException "ServiceFailure"
2336//   The request processing has failed because of an unknown error, exception
2337//   or failure.
2338//
2339// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteAccessKey
2340func (c *IAM) DeleteAccessKey(input *DeleteAccessKeyInput) (*DeleteAccessKeyOutput, error) {
2341	req, out := c.DeleteAccessKeyRequest(input)
2342	return out, req.Send()
2343}
2344
2345// DeleteAccessKeyWithContext is the same as DeleteAccessKey with the addition of
2346// the ability to pass a context and additional request options.
2347//
2348// See DeleteAccessKey for details on how to use this API operation.
2349//
2350// The context must be non-nil and will be used for request cancellation. If
2351// the context is nil a panic will occur. In the future the SDK may create
2352// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2353// for more information on using Contexts.
2354func (c *IAM) DeleteAccessKeyWithContext(ctx aws.Context, input *DeleteAccessKeyInput, opts ...request.Option) (*DeleteAccessKeyOutput, error) {
2355	req, out := c.DeleteAccessKeyRequest(input)
2356	req.SetContext(ctx)
2357	req.ApplyOptions(opts...)
2358	return out, req.Send()
2359}
2360
2361const opDeleteAccountAlias = "DeleteAccountAlias"
2362
2363// DeleteAccountAliasRequest generates a "aws/request.Request" representing the
2364// client's request for the DeleteAccountAlias operation. The "output" return
2365// value will be populated with the request's response once the request complets
2366// successfuly.
2367//
2368// Use "Send" method on the returned Request to send the API call to the service.
2369// the "output" return value is not valid until after Send returns without error.
2370//
2371// See DeleteAccountAlias for more information on using the DeleteAccountAlias
2372// API call, and error handling.
2373//
2374// This method is useful when you want to inject custom logic or configuration
2375// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2376//
2377//
2378//    // Example sending a request using the DeleteAccountAliasRequest method.
2379//    req, resp := client.DeleteAccountAliasRequest(params)
2380//
2381//    err := req.Send()
2382//    if err == nil { // resp is now filled
2383//        fmt.Println(resp)
2384//    }
2385//
2386// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteAccountAlias
2387func (c *IAM) DeleteAccountAliasRequest(input *DeleteAccountAliasInput) (req *request.Request, output *DeleteAccountAliasOutput) {
2388	op := &request.Operation{
2389		Name:       opDeleteAccountAlias,
2390		HTTPMethod: "POST",
2391		HTTPPath:   "/",
2392	}
2393
2394	if input == nil {
2395		input = &DeleteAccountAliasInput{}
2396	}
2397
2398	output = &DeleteAccountAliasOutput{}
2399	req = c.newRequest(op, input, output)
2400	req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
2401	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
2402	return
2403}
2404
2405// DeleteAccountAlias API operation for AWS Identity and Access Management.
2406//
2407// Deletes the specified AWS account alias. For information about using an AWS
2408// account alias, see Using an Alias for Your AWS Account ID (http://docs.aws.amazon.com/IAM/latest/UserGuide/AccountAlias.html)
2409// in the IAM User Guide.
2410//
2411// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2412// with awserr.Error's Code and Message methods to get detailed information about
2413// the error.
2414//
2415// See the AWS API reference guide for AWS Identity and Access Management's
2416// API operation DeleteAccountAlias for usage and error information.
2417//
2418// Returned Error Codes:
2419//   * ErrCodeNoSuchEntityException "NoSuchEntity"
2420//   The request was rejected because it referenced an entity that does not exist.
2421//   The error message describes the entity.
2422//
2423//   * ErrCodeLimitExceededException "LimitExceeded"
2424//   The request was rejected because it attempted to create resources beyond
2425//   the current AWS account limits. The error message describes the limit exceeded.
2426//
2427//   * ErrCodeServiceFailureException "ServiceFailure"
2428//   The request processing has failed because of an unknown error, exception
2429//   or failure.
2430//
2431// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteAccountAlias
2432func (c *IAM) DeleteAccountAlias(input *DeleteAccountAliasInput) (*DeleteAccountAliasOutput, error) {
2433	req, out := c.DeleteAccountAliasRequest(input)
2434	return out, req.Send()
2435}
2436
2437// DeleteAccountAliasWithContext is the same as DeleteAccountAlias with the addition of
2438// the ability to pass a context and additional request options.
2439//
2440// See DeleteAccountAlias for details on how to use this API operation.
2441//
2442// The context must be non-nil and will be used for request cancellation. If
2443// the context is nil a panic will occur. In the future the SDK may create
2444// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2445// for more information on using Contexts.
2446func (c *IAM) DeleteAccountAliasWithContext(ctx aws.Context, input *DeleteAccountAliasInput, opts ...request.Option) (*DeleteAccountAliasOutput, error) {
2447	req, out := c.DeleteAccountAliasRequest(input)
2448	req.SetContext(ctx)
2449	req.ApplyOptions(opts...)
2450	return out, req.Send()
2451}
2452
2453const opDeleteAccountPasswordPolicy = "DeleteAccountPasswordPolicy"
2454
2455// DeleteAccountPasswordPolicyRequest generates a "aws/request.Request" representing the
2456// client's request for the DeleteAccountPasswordPolicy operation. The "output" return
2457// value will be populated with the request's response once the request complets
2458// successfuly.
2459//
2460// Use "Send" method on the returned Request to send the API call to the service.
2461// the "output" return value is not valid until after Send returns without error.
2462//
2463// See DeleteAccountPasswordPolicy for more information on using the DeleteAccountPasswordPolicy
2464// API call, and error handling.
2465//
2466// This method is useful when you want to inject custom logic or configuration
2467// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2468//
2469//
2470//    // Example sending a request using the DeleteAccountPasswordPolicyRequest method.
2471//    req, resp := client.DeleteAccountPasswordPolicyRequest(params)
2472//
2473//    err := req.Send()
2474//    if err == nil { // resp is now filled
2475//        fmt.Println(resp)
2476//    }
2477//
2478// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteAccountPasswordPolicy
2479func (c *IAM) DeleteAccountPasswordPolicyRequest(input *DeleteAccountPasswordPolicyInput) (req *request.Request, output *DeleteAccountPasswordPolicyOutput) {
2480	op := &request.Operation{
2481		Name:       opDeleteAccountPasswordPolicy,
2482		HTTPMethod: "POST",
2483		HTTPPath:   "/",
2484	}
2485
2486	if input == nil {
2487		input = &DeleteAccountPasswordPolicyInput{}
2488	}
2489
2490	output = &DeleteAccountPasswordPolicyOutput{}
2491	req = c.newRequest(op, input, output)
2492	req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
2493	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
2494	return
2495}
2496
2497// DeleteAccountPasswordPolicy API operation for AWS Identity and Access Management.
2498//
2499// Deletes the password policy for the AWS account. There are no parameters.
2500//
2501// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2502// with awserr.Error's Code and Message methods to get detailed information about
2503// the error.
2504//
2505// See the AWS API reference guide for AWS Identity and Access Management's
2506// API operation DeleteAccountPasswordPolicy for usage and error information.
2507//
2508// Returned Error Codes:
2509//   * ErrCodeNoSuchEntityException "NoSuchEntity"
2510//   The request was rejected because it referenced an entity that does not exist.
2511//   The error message describes the entity.
2512//
2513//   * ErrCodeLimitExceededException "LimitExceeded"
2514//   The request was rejected because it attempted to create resources beyond
2515//   the current AWS account limits. The error message describes the limit exceeded.
2516//
2517//   * ErrCodeServiceFailureException "ServiceFailure"
2518//   The request processing has failed because of an unknown error, exception
2519//   or failure.
2520//
2521// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteAccountPasswordPolicy
2522func (c *IAM) DeleteAccountPasswordPolicy(input *DeleteAccountPasswordPolicyInput) (*DeleteAccountPasswordPolicyOutput, error) {
2523	req, out := c.DeleteAccountPasswordPolicyRequest(input)
2524	return out, req.Send()
2525}
2526
2527// DeleteAccountPasswordPolicyWithContext is the same as DeleteAccountPasswordPolicy with the addition of
2528// the ability to pass a context and additional request options.
2529//
2530// See DeleteAccountPasswordPolicy for details on how to use this API operation.
2531//
2532// The context must be non-nil and will be used for request cancellation. If
2533// the context is nil a panic will occur. In the future the SDK may create
2534// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2535// for more information on using Contexts.
2536func (c *IAM) DeleteAccountPasswordPolicyWithContext(ctx aws.Context, input *DeleteAccountPasswordPolicyInput, opts ...request.Option) (*DeleteAccountPasswordPolicyOutput, error) {
2537	req, out := c.DeleteAccountPasswordPolicyRequest(input)
2538	req.SetContext(ctx)
2539	req.ApplyOptions(opts...)
2540	return out, req.Send()
2541}
2542
2543const opDeleteGroup = "DeleteGroup"
2544
2545// DeleteGroupRequest generates a "aws/request.Request" representing the
2546// client's request for the DeleteGroup operation. The "output" return
2547// value will be populated with the request's response once the request complets
2548// successfuly.
2549//
2550// Use "Send" method on the returned Request to send the API call to the service.
2551// the "output" return value is not valid until after Send returns without error.
2552//
2553// See DeleteGroup for more information on using the DeleteGroup
2554// API call, and error handling.
2555//
2556// This method is useful when you want to inject custom logic or configuration
2557// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2558//
2559//
2560//    // Example sending a request using the DeleteGroupRequest method.
2561//    req, resp := client.DeleteGroupRequest(params)
2562//
2563//    err := req.Send()
2564//    if err == nil { // resp is now filled
2565//        fmt.Println(resp)
2566//    }
2567//
2568// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteGroup
2569func (c *IAM) DeleteGroupRequest(input *DeleteGroupInput) (req *request.Request, output *DeleteGroupOutput) {
2570	op := &request.Operation{
2571		Name:       opDeleteGroup,
2572		HTTPMethod: "POST",
2573		HTTPPath:   "/",
2574	}
2575
2576	if input == nil {
2577		input = &DeleteGroupInput{}
2578	}
2579
2580	output = &DeleteGroupOutput{}
2581	req = c.newRequest(op, input, output)
2582	req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
2583	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
2584	return
2585}
2586
2587// DeleteGroup API operation for AWS Identity and Access Management.
2588//
2589// Deletes the specified IAM group. The group must not contain any users or
2590// have any attached policies.
2591//
2592// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2593// with awserr.Error's Code and Message methods to get detailed information about
2594// the error.
2595//
2596// See the AWS API reference guide for AWS Identity and Access Management's
2597// API operation DeleteGroup for usage and error information.
2598//
2599// Returned Error Codes:
2600//   * ErrCodeNoSuchEntityException "NoSuchEntity"
2601//   The request was rejected because it referenced an entity that does not exist.
2602//   The error message describes the entity.
2603//
2604//   * ErrCodeDeleteConflictException "DeleteConflict"
2605//   The request was rejected because it attempted to delete a resource that has
2606//   attached subordinate entities. The error message describes these entities.
2607//
2608//   * ErrCodeLimitExceededException "LimitExceeded"
2609//   The request was rejected because it attempted to create resources beyond
2610//   the current AWS account limits. The error message describes the limit exceeded.
2611//
2612//   * ErrCodeServiceFailureException "ServiceFailure"
2613//   The request processing has failed because of an unknown error, exception
2614//   or failure.
2615//
2616// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteGroup
2617func (c *IAM) DeleteGroup(input *DeleteGroupInput) (*DeleteGroupOutput, error) {
2618	req, out := c.DeleteGroupRequest(input)
2619	return out, req.Send()
2620}
2621
2622// DeleteGroupWithContext is the same as DeleteGroup with the addition of
2623// the ability to pass a context and additional request options.
2624//
2625// See DeleteGroup for details on how to use this API operation.
2626//
2627// The context must be non-nil and will be used for request cancellation. If
2628// the context is nil a panic will occur. In the future the SDK may create
2629// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2630// for more information on using Contexts.
2631func (c *IAM) DeleteGroupWithContext(ctx aws.Context, input *DeleteGroupInput, opts ...request.Option) (*DeleteGroupOutput, error) {
2632	req, out := c.DeleteGroupRequest(input)
2633	req.SetContext(ctx)
2634	req.ApplyOptions(opts...)
2635	return out, req.Send()
2636}
2637
2638const opDeleteGroupPolicy = "DeleteGroupPolicy"
2639
2640// DeleteGroupPolicyRequest generates a "aws/request.Request" representing the
2641// client's request for the DeleteGroupPolicy operation. The "output" return
2642// value will be populated with the request's response once the request complets
2643// successfuly.
2644//
2645// Use "Send" method on the returned Request to send the API call to the service.
2646// the "output" return value is not valid until after Send returns without error.
2647//
2648// See DeleteGroupPolicy for more information on using the DeleteGroupPolicy
2649// API call, and error handling.
2650//
2651// This method is useful when you want to inject custom logic or configuration
2652// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2653//
2654//
2655//    // Example sending a request using the DeleteGroupPolicyRequest method.
2656//    req, resp := client.DeleteGroupPolicyRequest(params)
2657//
2658//    err := req.Send()
2659//    if err == nil { // resp is now filled
2660//        fmt.Println(resp)
2661//    }
2662//
2663// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteGroupPolicy
2664func (c *IAM) DeleteGroupPolicyRequest(input *DeleteGroupPolicyInput) (req *request.Request, output *DeleteGroupPolicyOutput) {
2665	op := &request.Operation{
2666		Name:       opDeleteGroupPolicy,
2667		HTTPMethod: "POST",
2668		HTTPPath:   "/",
2669	}
2670
2671	if input == nil {
2672		input = &DeleteGroupPolicyInput{}
2673	}
2674
2675	output = &DeleteGroupPolicyOutput{}
2676	req = c.newRequest(op, input, output)
2677	req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
2678	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
2679	return
2680}
2681
2682// DeleteGroupPolicy API operation for AWS Identity and Access Management.
2683//
2684// Deletes the specified inline policy that is embedded in the specified IAM
2685// group.
2686//
2687// A group can also have managed policies attached to it. To detach a managed
2688// policy from a group, use DetachGroupPolicy. For more information about policies,
2689// refer to Managed Policies and Inline Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
2690// in the IAM User Guide.
2691//
2692// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2693// with awserr.Error's Code and Message methods to get detailed information about
2694// the error.
2695//
2696// See the AWS API reference guide for AWS Identity and Access Management's
2697// API operation DeleteGroupPolicy for usage and error information.
2698//
2699// Returned Error Codes:
2700//   * ErrCodeNoSuchEntityException "NoSuchEntity"
2701//   The request was rejected because it referenced an entity that does not exist.
2702//   The error message describes the entity.
2703//
2704//   * ErrCodeLimitExceededException "LimitExceeded"
2705//   The request was rejected because it attempted to create resources beyond
2706//   the current AWS account limits. The error message describes the limit exceeded.
2707//
2708//   * ErrCodeServiceFailureException "ServiceFailure"
2709//   The request processing has failed because of an unknown error, exception
2710//   or failure.
2711//
2712// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteGroupPolicy
2713func (c *IAM) DeleteGroupPolicy(input *DeleteGroupPolicyInput) (*DeleteGroupPolicyOutput, error) {
2714	req, out := c.DeleteGroupPolicyRequest(input)
2715	return out, req.Send()
2716}
2717
2718// DeleteGroupPolicyWithContext is the same as DeleteGroupPolicy with the addition of
2719// the ability to pass a context and additional request options.
2720//
2721// See DeleteGroupPolicy for details on how to use this API operation.
2722//
2723// The context must be non-nil and will be used for request cancellation. If
2724// the context is nil a panic will occur. In the future the SDK may create
2725// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2726// for more information on using Contexts.
2727func (c *IAM) DeleteGroupPolicyWithContext(ctx aws.Context, input *DeleteGroupPolicyInput, opts ...request.Option) (*DeleteGroupPolicyOutput, error) {
2728	req, out := c.DeleteGroupPolicyRequest(input)
2729	req.SetContext(ctx)
2730	req.ApplyOptions(opts...)
2731	return out, req.Send()
2732}
2733
2734const opDeleteInstanceProfile = "DeleteInstanceProfile"
2735
2736// DeleteInstanceProfileRequest generates a "aws/request.Request" representing the
2737// client's request for the DeleteInstanceProfile operation. The "output" return
2738// value will be populated with the request's response once the request complets
2739// successfuly.
2740//
2741// Use "Send" method on the returned Request to send the API call to the service.
2742// the "output" return value is not valid until after Send returns without error.
2743//
2744// See DeleteInstanceProfile for more information on using the DeleteInstanceProfile
2745// API call, and error handling.
2746//
2747// This method is useful when you want to inject custom logic or configuration
2748// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2749//
2750//
2751//    // Example sending a request using the DeleteInstanceProfileRequest method.
2752//    req, resp := client.DeleteInstanceProfileRequest(params)
2753//
2754//    err := req.Send()
2755//    if err == nil { // resp is now filled
2756//        fmt.Println(resp)
2757//    }
2758//
2759// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteInstanceProfile
2760func (c *IAM) DeleteInstanceProfileRequest(input *DeleteInstanceProfileInput) (req *request.Request, output *DeleteInstanceProfileOutput) {
2761	op := &request.Operation{
2762		Name:       opDeleteInstanceProfile,
2763		HTTPMethod: "POST",
2764		HTTPPath:   "/",
2765	}
2766
2767	if input == nil {
2768		input = &DeleteInstanceProfileInput{}
2769	}
2770
2771	output = &DeleteInstanceProfileOutput{}
2772	req = c.newRequest(op, input, output)
2773	req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
2774	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
2775	return
2776}
2777
2778// DeleteInstanceProfile API operation for AWS Identity and Access Management.
2779//
2780// Deletes the specified instance profile. The instance profile must not have
2781// an associated role.
2782//
2783// Make sure you do not have any Amazon EC2 instances running with the instance
2784// profile you are about to delete. Deleting a role or instance profile that
2785// is associated with a running instance will break any applications running
2786// on the instance.
2787//
2788// For more information about instance profiles, go to About Instance Profiles
2789// (http://docs.aws.amazon.com/IAM/latest/UserGuide/AboutInstanceProfiles.html).
2790//
2791// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2792// with awserr.Error's Code and Message methods to get detailed information about
2793// the error.
2794//
2795// See the AWS API reference guide for AWS Identity and Access Management's
2796// API operation DeleteInstanceProfile for usage and error information.
2797//
2798// Returned Error Codes:
2799//   * ErrCodeNoSuchEntityException "NoSuchEntity"
2800//   The request was rejected because it referenced an entity that does not exist.
2801//   The error message describes the entity.
2802//
2803//   * ErrCodeDeleteConflictException "DeleteConflict"
2804//   The request was rejected because it attempted to delete a resource that has
2805//   attached subordinate entities. The error message describes these entities.
2806//
2807//   * ErrCodeLimitExceededException "LimitExceeded"
2808//   The request was rejected because it attempted to create resources beyond
2809//   the current AWS account limits. The error message describes the limit exceeded.
2810//
2811//   * ErrCodeServiceFailureException "ServiceFailure"
2812//   The request processing has failed because of an unknown error, exception
2813//   or failure.
2814//
2815// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteInstanceProfile
2816func (c *IAM) DeleteInstanceProfile(input *DeleteInstanceProfileInput) (*DeleteInstanceProfileOutput, error) {
2817	req, out := c.DeleteInstanceProfileRequest(input)
2818	return out, req.Send()
2819}
2820
2821// DeleteInstanceProfileWithContext is the same as DeleteInstanceProfile with the addition of
2822// the ability to pass a context and additional request options.
2823//
2824// See DeleteInstanceProfile for details on how to use this API operation.
2825//
2826// The context must be non-nil and will be used for request cancellation. If
2827// the context is nil a panic will occur. In the future the SDK may create
2828// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2829// for more information on using Contexts.
2830func (c *IAM) DeleteInstanceProfileWithContext(ctx aws.Context, input *DeleteInstanceProfileInput, opts ...request.Option) (*DeleteInstanceProfileOutput, error) {
2831	req, out := c.DeleteInstanceProfileRequest(input)
2832	req.SetContext(ctx)
2833	req.ApplyOptions(opts...)
2834	return out, req.Send()
2835}
2836
2837const opDeleteLoginProfile = "DeleteLoginProfile"
2838
2839// DeleteLoginProfileRequest generates a "aws/request.Request" representing the
2840// client's request for the DeleteLoginProfile operation. The "output" return
2841// value will be populated with the request's response once the request complets
2842// successfuly.
2843//
2844// Use "Send" method on the returned Request to send the API call to the service.
2845// the "output" return value is not valid until after Send returns without error.
2846//
2847// See DeleteLoginProfile for more information on using the DeleteLoginProfile
2848// API call, and error handling.
2849//
2850// This method is useful when you want to inject custom logic or configuration
2851// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2852//
2853//
2854//    // Example sending a request using the DeleteLoginProfileRequest method.
2855//    req, resp := client.DeleteLoginProfileRequest(params)
2856//
2857//    err := req.Send()
2858//    if err == nil { // resp is now filled
2859//        fmt.Println(resp)
2860//    }
2861//
2862// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteLoginProfile
2863func (c *IAM) DeleteLoginProfileRequest(input *DeleteLoginProfileInput) (req *request.Request, output *DeleteLoginProfileOutput) {
2864	op := &request.Operation{
2865		Name:       opDeleteLoginProfile,
2866		HTTPMethod: "POST",
2867		HTTPPath:   "/",
2868	}
2869
2870	if input == nil {
2871		input = &DeleteLoginProfileInput{}
2872	}
2873
2874	output = &DeleteLoginProfileOutput{}
2875	req = c.newRequest(op, input, output)
2876	req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
2877	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
2878	return
2879}
2880
2881// DeleteLoginProfile API operation for AWS Identity and Access Management.
2882//
2883// Deletes the password for the specified IAM user, which terminates the user's
2884// ability to access AWS services through the AWS Management Console.
2885//
2886// Deleting a user's password does not prevent a user from accessing AWS through
2887// the command line interface or the API. To prevent all user access you must
2888// also either make any access keys inactive or delete them. For more information
2889// about making keys inactive or deleting them, see UpdateAccessKey and DeleteAccessKey.
2890//
2891// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2892// with awserr.Error's Code and Message methods to get detailed information about
2893// the error.
2894//
2895// See the AWS API reference guide for AWS Identity and Access Management's
2896// API operation DeleteLoginProfile for usage and error information.
2897//
2898// Returned Error Codes:
2899//   * ErrCodeEntityTemporarilyUnmodifiableException "EntityTemporarilyUnmodifiable"
2900//   The request was rejected because it referenced an entity that is temporarily
2901//   unmodifiable, such as a user name that was deleted and then recreated. The
2902//   error indicates that the request is likely to succeed if you try again after
2903//   waiting several minutes. The error message describes the entity.
2904//
2905//   * ErrCodeNoSuchEntityException "NoSuchEntity"
2906//   The request was rejected because it referenced an entity that does not exist.
2907//   The error message describes the entity.
2908//
2909//   * ErrCodeLimitExceededException "LimitExceeded"
2910//   The request was rejected because it attempted to create resources beyond
2911//   the current AWS account limits. The error message describes the limit exceeded.
2912//
2913//   * ErrCodeServiceFailureException "ServiceFailure"
2914//   The request processing has failed because of an unknown error, exception
2915//   or failure.
2916//
2917// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteLoginProfile
2918func (c *IAM) DeleteLoginProfile(input *DeleteLoginProfileInput) (*DeleteLoginProfileOutput, error) {
2919	req, out := c.DeleteLoginProfileRequest(input)
2920	return out, req.Send()
2921}
2922
2923// DeleteLoginProfileWithContext is the same as DeleteLoginProfile with the addition of
2924// the ability to pass a context and additional request options.
2925//
2926// See DeleteLoginProfile for details on how to use this API operation.
2927//
2928// The context must be non-nil and will be used for request cancellation. If
2929// the context is nil a panic will occur. In the future the SDK may create
2930// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2931// for more information on using Contexts.
2932func (c *IAM) DeleteLoginProfileWithContext(ctx aws.Context, input *DeleteLoginProfileInput, opts ...request.Option) (*DeleteLoginProfileOutput, error) {
2933	req, out := c.DeleteLoginProfileRequest(input)
2934	req.SetContext(ctx)
2935	req.ApplyOptions(opts...)
2936	return out, req.Send()
2937}
2938
2939const opDeleteOpenIDConnectProvider = "DeleteOpenIDConnectProvider"
2940
2941// DeleteOpenIDConnectProviderRequest generates a "aws/request.Request" representing the
2942// client's request for the DeleteOpenIDConnectProvider operation. The "output" return
2943// value will be populated with the request's response once the request complets
2944// successfuly.
2945//
2946// Use "Send" method on the returned Request to send the API call to the service.
2947// the "output" return value is not valid until after Send returns without error.
2948//
2949// See DeleteOpenIDConnectProvider for more information on using the DeleteOpenIDConnectProvider
2950// API call, and error handling.
2951//
2952// This method is useful when you want to inject custom logic or configuration
2953// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2954//
2955//
2956//    // Example sending a request using the DeleteOpenIDConnectProviderRequest method.
2957//    req, resp := client.DeleteOpenIDConnectProviderRequest(params)
2958//
2959//    err := req.Send()
2960//    if err == nil { // resp is now filled
2961//        fmt.Println(resp)
2962//    }
2963//
2964// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteOpenIDConnectProvider
2965func (c *IAM) DeleteOpenIDConnectProviderRequest(input *DeleteOpenIDConnectProviderInput) (req *request.Request, output *DeleteOpenIDConnectProviderOutput) {
2966	op := &request.Operation{
2967		Name:       opDeleteOpenIDConnectProvider,
2968		HTTPMethod: "POST",
2969		HTTPPath:   "/",
2970	}
2971
2972	if input == nil {
2973		input = &DeleteOpenIDConnectProviderInput{}
2974	}
2975
2976	output = &DeleteOpenIDConnectProviderOutput{}
2977	req = c.newRequest(op, input, output)
2978	req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
2979	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
2980	return
2981}
2982
2983// DeleteOpenIDConnectProvider API operation for AWS Identity and Access Management.
2984//
2985// Deletes an OpenID Connect identity provider (IdP) resource object in IAM.
2986//
2987// Deleting an IAM OIDC provider resource does not update any roles that reference
2988// the provider as a principal in their trust policies. Any attempt to assume
2989// a role that references a deleted provider fails.
2990//
2991// This action is idempotent; it does not fail or return an error if you call
2992// the action for a provider that does not exist.
2993//
2994// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2995// with awserr.Error's Code and Message methods to get detailed information about
2996// the error.
2997//
2998// See the AWS API reference guide for AWS Identity and Access Management's
2999// API operation DeleteOpenIDConnectProvider for usage and error information.
3000//
3001// Returned Error Codes:
3002//   * ErrCodeInvalidInputException "InvalidInput"
3003//   The request was rejected because an invalid or out-of-range value was supplied
3004//   for an input parameter.
3005//
3006//   * ErrCodeNoSuchEntityException "NoSuchEntity"
3007//   The request was rejected because it referenced an entity that does not exist.
3008//   The error message describes the entity.
3009//
3010//   * ErrCodeServiceFailureException "ServiceFailure"
3011//   The request processing has failed because of an unknown error, exception
3012//   or failure.
3013//
3014// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteOpenIDConnectProvider
3015func (c *IAM) DeleteOpenIDConnectProvider(input *DeleteOpenIDConnectProviderInput) (*DeleteOpenIDConnectProviderOutput, error) {
3016	req, out := c.DeleteOpenIDConnectProviderRequest(input)
3017	return out, req.Send()
3018}
3019
3020// DeleteOpenIDConnectProviderWithContext is the same as DeleteOpenIDConnectProvider with the addition of
3021// the ability to pass a context and additional request options.
3022//
3023// See DeleteOpenIDConnectProvider for details on how to use this API operation.
3024//
3025// The context must be non-nil and will be used for request cancellation. If
3026// the context is nil a panic will occur. In the future the SDK may create
3027// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3028// for more information on using Contexts.
3029func (c *IAM) DeleteOpenIDConnectProviderWithContext(ctx aws.Context, input *DeleteOpenIDConnectProviderInput, opts ...request.Option) (*DeleteOpenIDConnectProviderOutput, error) {
3030	req, out := c.DeleteOpenIDConnectProviderRequest(input)
3031	req.SetContext(ctx)
3032	req.ApplyOptions(opts...)
3033	return out, req.Send()
3034}
3035
3036const opDeletePolicy = "DeletePolicy"
3037
3038// DeletePolicyRequest generates a "aws/request.Request" representing the
3039// client's request for the DeletePolicy operation. The "output" return
3040// value will be populated with the request's response once the request complets
3041// successfuly.
3042//
3043// Use "Send" method on the returned Request to send the API call to the service.
3044// the "output" return value is not valid until after Send returns without error.
3045//
3046// See DeletePolicy for more information on using the DeletePolicy
3047// API call, and error handling.
3048//
3049// This method is useful when you want to inject custom logic or configuration
3050// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3051//
3052//
3053//    // Example sending a request using the DeletePolicyRequest method.
3054//    req, resp := client.DeletePolicyRequest(params)
3055//
3056//    err := req.Send()
3057//    if err == nil { // resp is now filled
3058//        fmt.Println(resp)
3059//    }
3060//
3061// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeletePolicy
3062func (c *IAM) DeletePolicyRequest(input *DeletePolicyInput) (req *request.Request, output *DeletePolicyOutput) {
3063	op := &request.Operation{
3064		Name:       opDeletePolicy,
3065		HTTPMethod: "POST",
3066		HTTPPath:   "/",
3067	}
3068
3069	if input == nil {
3070		input = &DeletePolicyInput{}
3071	}
3072
3073	output = &DeletePolicyOutput{}
3074	req = c.newRequest(op, input, output)
3075	req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
3076	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
3077	return
3078}
3079
3080// DeletePolicy API operation for AWS Identity and Access Management.
3081//
3082// Deletes the specified managed policy.
3083//
3084// Before you can delete a managed policy, you must first detach the policy
3085// from all users, groups, and roles that it is attached to, and you must delete
3086// all of the policy's versions. The following steps describe the process for
3087// deleting a managed policy:
3088//
3089//    * Detach the policy from all users, groups, and roles that the policy
3090//    is attached to, using the DetachUserPolicy, DetachGroupPolicy, or DetachRolePolicy
3091//    APIs. To list all the users, groups, and roles that a policy is attached
3092//    to, use ListEntitiesForPolicy.
3093//
3094//    * Delete all versions of the policy using DeletePolicyVersion. To list
3095//    the policy's versions, use ListPolicyVersions. You cannot use DeletePolicyVersion
3096//    to delete the version that is marked as the default version. You delete
3097//    the policy's default version in the next step of the process.
3098//
3099//    * Delete the policy (this automatically deletes the policy's default version)
3100//    using this API.
3101//
3102// For information about managed policies, see Managed Policies and Inline Policies
3103// (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
3104// in the IAM User Guide.
3105//
3106// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3107// with awserr.Error's Code and Message methods to get detailed information about
3108// the error.
3109//
3110// See the AWS API reference guide for AWS Identity and Access Management's
3111// API operation DeletePolicy for usage and error information.
3112//
3113// Returned Error Codes:
3114//   * ErrCodeNoSuchEntityException "NoSuchEntity"
3115//   The request was rejected because it referenced an entity that does not exist.
3116//   The error message describes the entity.
3117//
3118//   * ErrCodeLimitExceededException "LimitExceeded"
3119//   The request was rejected because it attempted to create resources beyond
3120//   the current AWS account limits. The error message describes the limit exceeded.
3121//
3122//   * ErrCodeInvalidInputException "InvalidInput"
3123//   The request was rejected because an invalid or out-of-range value was supplied
3124//   for an input parameter.
3125//
3126//   * ErrCodeDeleteConflictException "DeleteConflict"
3127//   The request was rejected because it attempted to delete a resource that has
3128//   attached subordinate entities. The error message describes these entities.
3129//
3130//   * ErrCodeServiceFailureException "ServiceFailure"
3131//   The request processing has failed because of an unknown error, exception
3132//   or failure.
3133//
3134// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeletePolicy
3135func (c *IAM) DeletePolicy(input *DeletePolicyInput) (*DeletePolicyOutput, error) {
3136	req, out := c.DeletePolicyRequest(input)
3137	return out, req.Send()
3138}
3139
3140// DeletePolicyWithContext is the same as DeletePolicy with the addition of
3141// the ability to pass a context and additional request options.
3142//
3143// See DeletePolicy for details on how to use this API operation.
3144//
3145// The context must be non-nil and will be used for request cancellation. If
3146// the context is nil a panic will occur. In the future the SDK may create
3147// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3148// for more information on using Contexts.
3149func (c *IAM) DeletePolicyWithContext(ctx aws.Context, input *DeletePolicyInput, opts ...request.Option) (*DeletePolicyOutput, error) {
3150	req, out := c.DeletePolicyRequest(input)
3151	req.SetContext(ctx)
3152	req.ApplyOptions(opts...)
3153	return out, req.Send()
3154}
3155
3156const opDeletePolicyVersion = "DeletePolicyVersion"
3157
3158// DeletePolicyVersionRequest generates a "aws/request.Request" representing the
3159// client's request for the DeletePolicyVersion operation. The "output" return
3160// value will be populated with the request's response once the request complets
3161// successfuly.
3162//
3163// Use "Send" method on the returned Request to send the API call to the service.
3164// the "output" return value is not valid until after Send returns without error.
3165//
3166// See DeletePolicyVersion for more information on using the DeletePolicyVersion
3167// API call, and error handling.
3168//
3169// This method is useful when you want to inject custom logic or configuration
3170// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3171//
3172//
3173//    // Example sending a request using the DeletePolicyVersionRequest method.
3174//    req, resp := client.DeletePolicyVersionRequest(params)
3175//
3176//    err := req.Send()
3177//    if err == nil { // resp is now filled
3178//        fmt.Println(resp)
3179//    }
3180//
3181// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeletePolicyVersion
3182func (c *IAM) DeletePolicyVersionRequest(input *DeletePolicyVersionInput) (req *request.Request, output *DeletePolicyVersionOutput) {
3183	op := &request.Operation{
3184		Name:       opDeletePolicyVersion,
3185		HTTPMethod: "POST",
3186		HTTPPath:   "/",
3187	}
3188
3189	if input == nil {
3190		input = &DeletePolicyVersionInput{}
3191	}
3192
3193	output = &DeletePolicyVersionOutput{}
3194	req = c.newRequest(op, input, output)
3195	req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
3196	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
3197	return
3198}
3199
3200// DeletePolicyVersion API operation for AWS Identity and Access Management.
3201//
3202// Deletes the specified version from the specified managed policy.
3203//
3204// You cannot delete the default version from a policy using this API. To delete
3205// the default version from a policy, use DeletePolicy. To find out which version
3206// of a policy is marked as the default version, use ListPolicyVersions.
3207//
3208// For information about versions for managed policies, see Versioning for Managed
3209// Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html)
3210// in the IAM User Guide.
3211//
3212// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3213// with awserr.Error's Code and Message methods to get detailed information about
3214// the error.
3215//
3216// See the AWS API reference guide for AWS Identity and Access Management's
3217// API operation DeletePolicyVersion for usage and error information.
3218//
3219// Returned Error Codes:
3220//   * ErrCodeNoSuchEntityException "NoSuchEntity"
3221//   The request was rejected because it referenced an entity that does not exist.
3222//   The error message describes the entity.
3223//
3224//   * ErrCodeLimitExceededException "LimitExceeded"
3225//   The request was rejected because it attempted to create resources beyond
3226//   the current AWS account limits. The error message describes the limit exceeded.
3227//
3228//   * ErrCodeInvalidInputException "InvalidInput"
3229//   The request was rejected because an invalid or out-of-range value was supplied
3230//   for an input parameter.
3231//
3232//   * ErrCodeDeleteConflictException "DeleteConflict"
3233//   The request was rejected because it attempted to delete a resource that has
3234//   attached subordinate entities. The error message describes these entities.
3235//
3236//   * ErrCodeServiceFailureException "ServiceFailure"
3237//   The request processing has failed because of an unknown error, exception
3238//   or failure.
3239//
3240// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeletePolicyVersion
3241func (c *IAM) DeletePolicyVersion(input *DeletePolicyVersionInput) (*DeletePolicyVersionOutput, error) {
3242	req, out := c.DeletePolicyVersionRequest(input)
3243	return out, req.Send()
3244}
3245
3246// DeletePolicyVersionWithContext is the same as DeletePolicyVersion with the addition of
3247// the ability to pass a context and additional request options.
3248//
3249// See DeletePolicyVersion for details on how to use this API operation.
3250//
3251// The context must be non-nil and will be used for request cancellation. If
3252// the context is nil a panic will occur. In the future the SDK may create
3253// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3254// for more information on using Contexts.
3255func (c *IAM) DeletePolicyVersionWithContext(ctx aws.Context, input *DeletePolicyVersionInput, opts ...request.Option) (*DeletePolicyVersionOutput, error) {
3256	req, out := c.DeletePolicyVersionRequest(input)
3257	req.SetContext(ctx)
3258	req.ApplyOptions(opts...)
3259	return out, req.Send()
3260}
3261
3262const opDeleteRole = "DeleteRole"
3263
3264// DeleteRoleRequest generates a "aws/request.Request" representing the
3265// client's request for the DeleteRole operation. The "output" return
3266// value will be populated with the request's response once the request complets
3267// successfuly.
3268//
3269// Use "Send" method on the returned Request to send the API call to the service.
3270// the "output" return value is not valid until after Send returns without error.
3271//
3272// See DeleteRole for more information on using the DeleteRole
3273// API call, and error handling.
3274//
3275// This method is useful when you want to inject custom logic or configuration
3276// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3277//
3278//
3279//    // Example sending a request using the DeleteRoleRequest method.
3280//    req, resp := client.DeleteRoleRequest(params)
3281//
3282//    err := req.Send()
3283//    if err == nil { // resp is now filled
3284//        fmt.Println(resp)
3285//    }
3286//
3287// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteRole
3288func (c *IAM) DeleteRoleRequest(input *DeleteRoleInput) (req *request.Request, output *DeleteRoleOutput) {
3289	op := &request.Operation{
3290		Name:       opDeleteRole,
3291		HTTPMethod: "POST",
3292		HTTPPath:   "/",
3293	}
3294
3295	if input == nil {
3296		input = &DeleteRoleInput{}
3297	}
3298
3299	output = &DeleteRoleOutput{}
3300	req = c.newRequest(op, input, output)
3301	req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
3302	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
3303	return
3304}
3305
3306// DeleteRole API operation for AWS Identity and Access Management.
3307//
3308// Deletes the specified role. The role must not have any policies attached.
3309// For more information about roles, go to Working with Roles (http://docs.aws.amazon.com/IAM/latest/UserGuide/WorkingWithRoles.html).
3310//
3311// Make sure you do not have any Amazon EC2 instances running with the role
3312// you are about to delete. Deleting a role or instance profile that is associated
3313// with a running instance will break any applications running on the instance.
3314//
3315// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3316// with awserr.Error's Code and Message methods to get detailed information about
3317// the error.
3318//
3319// See the AWS API reference guide for AWS Identity and Access Management's
3320// API operation DeleteRole for usage and error information.
3321//
3322// Returned Error Codes:
3323//   * ErrCodeNoSuchEntityException "NoSuchEntity"
3324//   The request was rejected because it referenced an entity that does not exist.
3325//   The error message describes the entity.
3326//
3327//   * ErrCodeDeleteConflictException "DeleteConflict"
3328//   The request was rejected because it attempted to delete a resource that has
3329//   attached subordinate entities. The error message describes these entities.
3330//
3331//   * ErrCodeLimitExceededException "LimitExceeded"
3332//   The request was rejected because it attempted to create resources beyond
3333//   the current AWS account limits. The error message describes the limit exceeded.
3334//
3335//   * ErrCodeUnmodifiableEntityException "UnmodifiableEntity"
3336//   The request was rejected because only the service that depends on the service-linked
3337//   role can modify or delete the role on your behalf. The error message includes
3338//   the name of the service that depends on this service-linked role. You must
3339//   request the change through that service.
3340//
3341//   * ErrCodeServiceFailureException "ServiceFailure"
3342//   The request processing has failed because of an unknown error, exception
3343//   or failure.
3344//
3345// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteRole
3346func (c *IAM) DeleteRole(input *DeleteRoleInput) (*DeleteRoleOutput, error) {
3347	req, out := c.DeleteRoleRequest(input)
3348	return out, req.Send()
3349}
3350
3351// DeleteRoleWithContext is the same as DeleteRole with the addition of
3352// the ability to pass a context and additional request options.
3353//
3354// See DeleteRole for details on how to use this API operation.
3355//
3356// The context must be non-nil and will be used for request cancellation. If
3357// the context is nil a panic will occur. In the future the SDK may create
3358// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3359// for more information on using Contexts.
3360func (c *IAM) DeleteRoleWithContext(ctx aws.Context, input *DeleteRoleInput, opts ...request.Option) (*DeleteRoleOutput, error) {
3361	req, out := c.DeleteRoleRequest(input)
3362	req.SetContext(ctx)
3363	req.ApplyOptions(opts...)
3364	return out, req.Send()
3365}
3366
3367const opDeleteRolePolicy = "DeleteRolePolicy"
3368
3369// DeleteRolePolicyRequest generates a "aws/request.Request" representing the
3370// client's request for the DeleteRolePolicy operation. The "output" return
3371// value will be populated with the request's response once the request complets
3372// successfuly.
3373//
3374// Use "Send" method on the returned Request to send the API call to the service.
3375// the "output" return value is not valid until after Send returns without error.
3376//
3377// See DeleteRolePolicy for more information on using the DeleteRolePolicy
3378// API call, and error handling.
3379//
3380// This method is useful when you want to inject custom logic or configuration
3381// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3382//
3383//
3384//    // Example sending a request using the DeleteRolePolicyRequest method.
3385//    req, resp := client.DeleteRolePolicyRequest(params)
3386//
3387//    err := req.Send()
3388//    if err == nil { // resp is now filled
3389//        fmt.Println(resp)
3390//    }
3391//
3392// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteRolePolicy
3393func (c *IAM) DeleteRolePolicyRequest(input *DeleteRolePolicyInput) (req *request.Request, output *DeleteRolePolicyOutput) {
3394	op := &request.Operation{
3395		Name:       opDeleteRolePolicy,
3396		HTTPMethod: "POST",
3397		HTTPPath:   "/",
3398	}
3399
3400	if input == nil {
3401		input = &DeleteRolePolicyInput{}
3402	}
3403
3404	output = &DeleteRolePolicyOutput{}
3405	req = c.newRequest(op, input, output)
3406	req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
3407	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
3408	return
3409}
3410
3411// DeleteRolePolicy API operation for AWS Identity and Access Management.
3412//
3413// Deletes the specified inline policy that is embedded in the specified IAM
3414// role.
3415//
3416// A role can also have managed policies attached to it. To detach a managed
3417// policy from a role, use DetachRolePolicy. For more information about policies,
3418// refer to Managed Policies and Inline Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
3419// in the IAM User Guide.
3420//
3421// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3422// with awserr.Error's Code and Message methods to get detailed information about
3423// the error.
3424//
3425// See the AWS API reference guide for AWS Identity and Access Management's
3426// API operation DeleteRolePolicy for usage and error information.
3427//
3428// Returned Error Codes:
3429//   * ErrCodeNoSuchEntityException "NoSuchEntity"
3430//   The request was rejected because it referenced an entity that does not exist.
3431//   The error message describes the entity.
3432//
3433//   * ErrCodeLimitExceededException "LimitExceeded"
3434//   The request was rejected because it attempted to create resources beyond
3435//   the current AWS account limits. The error message describes the limit exceeded.
3436//
3437//   * ErrCodeUnmodifiableEntityException "UnmodifiableEntity"
3438//   The request was rejected because only the service that depends on the service-linked
3439//   role can modify or delete the role on your behalf. The error message includes
3440//   the name of the service that depends on this service-linked role. You must
3441//   request the change through that service.
3442//
3443//   * ErrCodeServiceFailureException "ServiceFailure"
3444//   The request processing has failed because of an unknown error, exception
3445//   or failure.
3446//
3447// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteRolePolicy
3448func (c *IAM) DeleteRolePolicy(input *DeleteRolePolicyInput) (*DeleteRolePolicyOutput, error) {
3449	req, out := c.DeleteRolePolicyRequest(input)
3450	return out, req.Send()
3451}
3452
3453// DeleteRolePolicyWithContext is the same as DeleteRolePolicy with the addition of
3454// the ability to pass a context and additional request options.
3455//
3456// See DeleteRolePolicy for details on how to use this API operation.
3457//
3458// The context must be non-nil and will be used for request cancellation. If
3459// the context is nil a panic will occur. In the future the SDK may create
3460// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3461// for more information on using Contexts.
3462func (c *IAM) DeleteRolePolicyWithContext(ctx aws.Context, input *DeleteRolePolicyInput, opts ...request.Option) (*DeleteRolePolicyOutput, error) {
3463	req, out := c.DeleteRolePolicyRequest(input)
3464	req.SetContext(ctx)
3465	req.ApplyOptions(opts...)
3466	return out, req.Send()
3467}
3468
3469const opDeleteSAMLProvider = "DeleteSAMLProvider"
3470
3471// DeleteSAMLProviderRequest generates a "aws/request.Request" representing the
3472// client's request for the DeleteSAMLProvider operation. The "output" return
3473// value will be populated with the request's response once the request complets
3474// successfuly.
3475//
3476// Use "Send" method on the returned Request to send the API call to the service.
3477// the "output" return value is not valid until after Send returns without error.
3478//
3479// See DeleteSAMLProvider for more information on using the DeleteSAMLProvider
3480// API call, and error handling.
3481//
3482// This method is useful when you want to inject custom logic or configuration
3483// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3484//
3485//
3486//    // Example sending a request using the DeleteSAMLProviderRequest method.
3487//    req, resp := client.DeleteSAMLProviderRequest(params)
3488//
3489//    err := req.Send()
3490//    if err == nil { // resp is now filled
3491//        fmt.Println(resp)
3492//    }
3493//
3494// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteSAMLProvider
3495func (c *IAM) DeleteSAMLProviderRequest(input *DeleteSAMLProviderInput) (req *request.Request, output *DeleteSAMLProviderOutput) {
3496	op := &request.Operation{
3497		Name:       opDeleteSAMLProvider,
3498		HTTPMethod: "POST",
3499		HTTPPath:   "/",
3500	}
3501
3502	if input == nil {
3503		input = &DeleteSAMLProviderInput{}
3504	}
3505
3506	output = &DeleteSAMLProviderOutput{}
3507	req = c.newRequest(op, input, output)
3508	req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
3509	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
3510	return
3511}
3512
3513// DeleteSAMLProvider API operation for AWS Identity and Access Management.
3514//
3515// Deletes a SAML provider resource in IAM.
3516//
3517// Deleting the provider resource from IAM does not update any roles that reference
3518// the SAML provider resource's ARN as a principal in their trust policies.
3519// Any attempt to assume a role that references a non-existent provider resource
3520// ARN fails.
3521//
3522// This operation requires Signature Version 4 (http://docs.aws.amazon.com/general/latest/gr/signature-version-4.html).
3523//
3524// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3525// with awserr.Error's Code and Message methods to get detailed information about
3526// the error.
3527//
3528// See the AWS API reference guide for AWS Identity and Access Management's
3529// API operation DeleteSAMLProvider for usage and error information.
3530//
3531// Returned Error Codes:
3532//   * ErrCodeInvalidInputException "InvalidInput"
3533//   The request was rejected because an invalid or out-of-range value was supplied
3534//   for an input parameter.
3535//
3536//   * ErrCodeLimitExceededException "LimitExceeded"
3537//   The request was rejected because it attempted to create resources beyond
3538//   the current AWS account limits. The error message describes the limit exceeded.
3539//
3540//   * ErrCodeNoSuchEntityException "NoSuchEntity"
3541//   The request was rejected because it referenced an entity that does not exist.
3542//   The error message describes the entity.
3543//
3544//   * ErrCodeServiceFailureException "ServiceFailure"
3545//   The request processing has failed because of an unknown error, exception
3546//   or failure.
3547//
3548// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteSAMLProvider
3549func (c *IAM) DeleteSAMLProvider(input *DeleteSAMLProviderInput) (*DeleteSAMLProviderOutput, error) {
3550	req, out := c.DeleteSAMLProviderRequest(input)
3551	return out, req.Send()
3552}
3553
3554// DeleteSAMLProviderWithContext is the same as DeleteSAMLProvider with the addition of
3555// the ability to pass a context and additional request options.
3556//
3557// See DeleteSAMLProvider for details on how to use this API operation.
3558//
3559// The context must be non-nil and will be used for request cancellation. If
3560// the context is nil a panic will occur. In the future the SDK may create
3561// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3562// for more information on using Contexts.
3563func (c *IAM) DeleteSAMLProviderWithContext(ctx aws.Context, input *DeleteSAMLProviderInput, opts ...request.Option) (*DeleteSAMLProviderOutput, error) {
3564	req, out := c.DeleteSAMLProviderRequest(input)
3565	req.SetContext(ctx)
3566	req.ApplyOptions(opts...)
3567	return out, req.Send()
3568}
3569
3570const opDeleteSSHPublicKey = "DeleteSSHPublicKey"
3571
3572// DeleteSSHPublicKeyRequest generates a "aws/request.Request" representing the
3573// client's request for the DeleteSSHPublicKey operation. The "output" return
3574// value will be populated with the request's response once the request complets
3575// successfuly.
3576//
3577// Use "Send" method on the returned Request to send the API call to the service.
3578// the "output" return value is not valid until after Send returns without error.
3579//
3580// See DeleteSSHPublicKey for more information on using the DeleteSSHPublicKey
3581// API call, and error handling.
3582//
3583// This method is useful when you want to inject custom logic or configuration
3584// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3585//
3586//
3587//    // Example sending a request using the DeleteSSHPublicKeyRequest method.
3588//    req, resp := client.DeleteSSHPublicKeyRequest(params)
3589//
3590//    err := req.Send()
3591//    if err == nil { // resp is now filled
3592//        fmt.Println(resp)
3593//    }
3594//
3595// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteSSHPublicKey
3596func (c *IAM) DeleteSSHPublicKeyRequest(input *DeleteSSHPublicKeyInput) (req *request.Request, output *DeleteSSHPublicKeyOutput) {
3597	op := &request.Operation{
3598		Name:       opDeleteSSHPublicKey,
3599		HTTPMethod: "POST",
3600		HTTPPath:   "/",
3601	}
3602
3603	if input == nil {
3604		input = &DeleteSSHPublicKeyInput{}
3605	}
3606
3607	output = &DeleteSSHPublicKeyOutput{}
3608	req = c.newRequest(op, input, output)
3609	req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
3610	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
3611	return
3612}
3613
3614// DeleteSSHPublicKey API operation for AWS Identity and Access Management.
3615//
3616// Deletes the specified SSH public key.
3617//
3618// The SSH public key deleted by this action is used only for authenticating
3619// the associated IAM user to an AWS CodeCommit repository. For more information
3620// about using SSH keys to authenticate to an AWS CodeCommit repository, see
3621// Set up AWS CodeCommit for SSH Connections (http://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-credentials-ssh.html)
3622// in the AWS CodeCommit User Guide.
3623//
3624// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3625// with awserr.Error's Code and Message methods to get detailed information about
3626// the error.
3627//
3628// See the AWS API reference guide for AWS Identity and Access Management's
3629// API operation DeleteSSHPublicKey for usage and error information.
3630//
3631// Returned Error Codes:
3632//   * ErrCodeNoSuchEntityException "NoSuchEntity"
3633//   The request was rejected because it referenced an entity that does not exist.
3634//   The error message describes the entity.
3635//
3636// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteSSHPublicKey
3637func (c *IAM) DeleteSSHPublicKey(input *DeleteSSHPublicKeyInput) (*DeleteSSHPublicKeyOutput, error) {
3638	req, out := c.DeleteSSHPublicKeyRequest(input)
3639	return out, req.Send()
3640}
3641
3642// DeleteSSHPublicKeyWithContext is the same as DeleteSSHPublicKey with the addition of
3643// the ability to pass a context and additional request options.
3644//
3645// See DeleteSSHPublicKey for details on how to use this API operation.
3646//
3647// The context must be non-nil and will be used for request cancellation. If
3648// the context is nil a panic will occur. In the future the SDK may create
3649// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3650// for more information on using Contexts.
3651func (c *IAM) DeleteSSHPublicKeyWithContext(ctx aws.Context, input *DeleteSSHPublicKeyInput, opts ...request.Option) (*DeleteSSHPublicKeyOutput, error) {
3652	req, out := c.DeleteSSHPublicKeyRequest(input)
3653	req.SetContext(ctx)
3654	req.ApplyOptions(opts...)
3655	return out, req.Send()
3656}
3657
3658const opDeleteServerCertificate = "DeleteServerCertificate"
3659
3660// DeleteServerCertificateRequest generates a "aws/request.Request" representing the
3661// client's request for the DeleteServerCertificate operation. The "output" return
3662// value will be populated with the request's response once the request complets
3663// successfuly.
3664//
3665// Use "Send" method on the returned Request to send the API call to the service.
3666// the "output" return value is not valid until after Send returns without error.
3667//
3668// See DeleteServerCertificate for more information on using the DeleteServerCertificate
3669// API call, and error handling.
3670//
3671// This method is useful when you want to inject custom logic or configuration
3672// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3673//
3674//
3675//    // Example sending a request using the DeleteServerCertificateRequest method.
3676//    req, resp := client.DeleteServerCertificateRequest(params)
3677//
3678//    err := req.Send()
3679//    if err == nil { // resp is now filled
3680//        fmt.Println(resp)
3681//    }
3682//
3683// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteServerCertificate
3684func (c *IAM) DeleteServerCertificateRequest(input *DeleteServerCertificateInput) (req *request.Request, output *DeleteServerCertificateOutput) {
3685	op := &request.Operation{
3686		Name:       opDeleteServerCertificate,
3687		HTTPMethod: "POST",
3688		HTTPPath:   "/",
3689	}
3690
3691	if input == nil {
3692		input = &DeleteServerCertificateInput{}
3693	}
3694
3695	output = &DeleteServerCertificateOutput{}
3696	req = c.newRequest(op, input, output)
3697	req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
3698	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
3699	return
3700}
3701
3702// DeleteServerCertificate API operation for AWS Identity and Access Management.
3703//
3704// Deletes the specified server certificate.
3705//
3706// For more information about working with server certificates, including a
3707// list of AWS services that can use the server certificates that you manage
3708// with IAM, go to Working with Server Certificates (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html)
3709// in the IAM User Guide.
3710//
3711// If you are using a server certificate with Elastic Load Balancing, deleting
3712// the certificate could have implications for your application. If Elastic
3713// Load Balancing doesn't detect the deletion of bound certificates, it may
3714// continue to use the certificates. This could cause Elastic Load Balancing
3715// to stop accepting traffic. We recommend that you remove the reference to
3716// the certificate from Elastic Load Balancing before using this command to
3717// delete the certificate. For more information, go to DeleteLoadBalancerListeners
3718// (http://docs.aws.amazon.com/ElasticLoadBalancing/latest/APIReference/API_DeleteLoadBalancerListeners.html)
3719// in the Elastic Load Balancing API Reference.
3720//
3721// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3722// with awserr.Error's Code and Message methods to get detailed information about
3723// the error.
3724//
3725// See the AWS API reference guide for AWS Identity and Access Management's
3726// API operation DeleteServerCertificate for usage and error information.
3727//
3728// Returned Error Codes:
3729//   * ErrCodeNoSuchEntityException "NoSuchEntity"
3730//   The request was rejected because it referenced an entity that does not exist.
3731//   The error message describes the entity.
3732//
3733//   * ErrCodeDeleteConflictException "DeleteConflict"
3734//   The request was rejected because it attempted to delete a resource that has
3735//   attached subordinate entities. The error message describes these entities.
3736//
3737//   * ErrCodeLimitExceededException "LimitExceeded"
3738//   The request was rejected because it attempted to create resources beyond
3739//   the current AWS account limits. The error message describes the limit exceeded.
3740//
3741//   * ErrCodeServiceFailureException "ServiceFailure"
3742//   The request processing has failed because of an unknown error, exception
3743//   or failure.
3744//
3745// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteServerCertificate
3746func (c *IAM) DeleteServerCertificate(input *DeleteServerCertificateInput) (*DeleteServerCertificateOutput, error) {
3747	req, out := c.DeleteServerCertificateRequest(input)
3748	return out, req.Send()
3749}
3750
3751// DeleteServerCertificateWithContext is the same as DeleteServerCertificate with the addition of
3752// the ability to pass a context and additional request options.
3753//
3754// See DeleteServerCertificate for details on how to use this API operation.
3755//
3756// The context must be non-nil and will be used for request cancellation. If
3757// the context is nil a panic will occur. In the future the SDK may create
3758// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3759// for more information on using Contexts.
3760func (c *IAM) DeleteServerCertificateWithContext(ctx aws.Context, input *DeleteServerCertificateInput, opts ...request.Option) (*DeleteServerCertificateOutput, error) {
3761	req, out := c.DeleteServerCertificateRequest(input)
3762	req.SetContext(ctx)
3763	req.ApplyOptions(opts...)
3764	return out, req.Send()
3765}
3766
3767const opDeleteServiceLinkedRole = "DeleteServiceLinkedRole"
3768
3769// DeleteServiceLinkedRoleRequest generates a "aws/request.Request" representing the
3770// client's request for the DeleteServiceLinkedRole operation. The "output" return
3771// value will be populated with the request's response once the request complets
3772// successfuly.
3773//
3774// Use "Send" method on the returned Request to send the API call to the service.
3775// the "output" return value is not valid until after Send returns without error.
3776//
3777// See DeleteServiceLinkedRole for more information on using the DeleteServiceLinkedRole
3778// API call, and error handling.
3779//
3780// This method is useful when you want to inject custom logic or configuration
3781// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3782//
3783//
3784//    // Example sending a request using the DeleteServiceLinkedRoleRequest method.
3785//    req, resp := client.DeleteServiceLinkedRoleRequest(params)
3786//
3787//    err := req.Send()
3788//    if err == nil { // resp is now filled
3789//        fmt.Println(resp)
3790//    }
3791//
3792// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteServiceLinkedRole
3793func (c *IAM) DeleteServiceLinkedRoleRequest(input *DeleteServiceLinkedRoleInput) (req *request.Request, output *DeleteServiceLinkedRoleOutput) {
3794	op := &request.Operation{
3795		Name:       opDeleteServiceLinkedRole,
3796		HTTPMethod: "POST",
3797		HTTPPath:   "/",
3798	}
3799
3800	if input == nil {
3801		input = &DeleteServiceLinkedRoleInput{}
3802	}
3803
3804	output = &DeleteServiceLinkedRoleOutput{}
3805	req = c.newRequest(op, input, output)
3806	return
3807}
3808
3809// DeleteServiceLinkedRole API operation for AWS Identity and Access Management.
3810//
3811// Submits a service-linked role deletion request and returns a DeletionTaskId,
3812// which you can use to check the status of the deletion. Before you call this
3813// operation, confirm that the role has no active sessions and that any resources
3814// used by the role in the linked service are deleted. If you call this operation
3815// more than once for the same service-linked role and an earlier deletion task
3816// is not complete, then the DeletionTaskId of the earlier request is returned.
3817//
3818// If you submit a deletion request for a service-linked role whose linked service
3819// is still accessing a resource, then the deletion task fails. If it fails,
3820// the GetServiceLinkedRoleDeletionStatus API operation returns the reason for
3821// the failure, including the resources that must be deleted. To delete the
3822// service-linked role, you must first remove those resources from the linked
3823// service and then submit the deletion request again. Resources are specific
3824// to the service that is linked to the role. For more information about removing
3825// resources from a service, see the AWS documentation (http://docs.aws.amazon.com/)
3826// for your service.
3827//
3828// For more information about service-linked roles, see Roles Terms and Concepts:
3829// AWS Service-Linked Role (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role)
3830// in the IAM User Guide.
3831//
3832// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3833// with awserr.Error's Code and Message methods to get detailed information about
3834// the error.
3835//
3836// See the AWS API reference guide for AWS Identity and Access Management's
3837// API operation DeleteServiceLinkedRole for usage and error information.
3838//
3839// Returned Error Codes:
3840//   * ErrCodeNoSuchEntityException "NoSuchEntity"
3841//   The request was rejected because it referenced an entity that does not exist.
3842//   The error message describes the entity.
3843//
3844//   * ErrCodeLimitExceededException "LimitExceeded"
3845//   The request was rejected because it attempted to create resources beyond
3846//   the current AWS account limits. The error message describes the limit exceeded.
3847//
3848//   * ErrCodeServiceFailureException "ServiceFailure"
3849//   The request processing has failed because of an unknown error, exception
3850//   or failure.
3851//
3852// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteServiceLinkedRole
3853func (c *IAM) DeleteServiceLinkedRole(input *DeleteServiceLinkedRoleInput) (*DeleteServiceLinkedRoleOutput, error) {
3854	req, out := c.DeleteServiceLinkedRoleRequest(input)
3855	return out, req.Send()
3856}
3857
3858// DeleteServiceLinkedRoleWithContext is the same as DeleteServiceLinkedRole with the addition of
3859// the ability to pass a context and additional request options.
3860//
3861// See DeleteServiceLinkedRole for details on how to use this API operation.
3862//
3863// The context must be non-nil and will be used for request cancellation. If
3864// the context is nil a panic will occur. In the future the SDK may create
3865// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3866// for more information on using Contexts.
3867func (c *IAM) DeleteServiceLinkedRoleWithContext(ctx aws.Context, input *DeleteServiceLinkedRoleInput, opts ...request.Option) (*DeleteServiceLinkedRoleOutput, error) {
3868	req, out := c.DeleteServiceLinkedRoleRequest(input)
3869	req.SetContext(ctx)
3870	req.ApplyOptions(opts...)
3871	return out, req.Send()
3872}
3873
3874const opDeleteServiceSpecificCredential = "DeleteServiceSpecificCredential"
3875
3876// DeleteServiceSpecificCredentialRequest generates a "aws/request.Request" representing the
3877// client's request for the DeleteServiceSpecificCredential operation. The "output" return
3878// value will be populated with the request's response once the request complets
3879// successfuly.
3880//
3881// Use "Send" method on the returned Request to send the API call to the service.
3882// the "output" return value is not valid until after Send returns without error.
3883//
3884// See DeleteServiceSpecificCredential for more information on using the DeleteServiceSpecificCredential
3885// API call, and error handling.
3886//
3887// This method is useful when you want to inject custom logic or configuration
3888// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3889//
3890//
3891//    // Example sending a request using the DeleteServiceSpecificCredentialRequest method.
3892//    req, resp := client.DeleteServiceSpecificCredentialRequest(params)
3893//
3894//    err := req.Send()
3895//    if err == nil { // resp is now filled
3896//        fmt.Println(resp)
3897//    }
3898//
3899// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteServiceSpecificCredential
3900func (c *IAM) DeleteServiceSpecificCredentialRequest(input *DeleteServiceSpecificCredentialInput) (req *request.Request, output *DeleteServiceSpecificCredentialOutput) {
3901	op := &request.Operation{
3902		Name:       opDeleteServiceSpecificCredential,
3903		HTTPMethod: "POST",
3904		HTTPPath:   "/",
3905	}
3906
3907	if input == nil {
3908		input = &DeleteServiceSpecificCredentialInput{}
3909	}
3910
3911	output = &DeleteServiceSpecificCredentialOutput{}
3912	req = c.newRequest(op, input, output)
3913	req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
3914	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
3915	return
3916}
3917
3918// DeleteServiceSpecificCredential API operation for AWS Identity and Access Management.
3919//
3920// Deletes the specified service-specific credential.
3921//
3922// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3923// with awserr.Error's Code and Message methods to get detailed information about
3924// the error.
3925//
3926// See the AWS API reference guide for AWS Identity and Access Management's
3927// API operation DeleteServiceSpecificCredential for usage and error information.
3928//
3929// Returned Error Codes:
3930//   * ErrCodeNoSuchEntityException "NoSuchEntity"
3931//   The request was rejected because it referenced an entity that does not exist.
3932//   The error message describes the entity.
3933//
3934// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteServiceSpecificCredential
3935func (c *IAM) DeleteServiceSpecificCredential(input *DeleteServiceSpecificCredentialInput) (*DeleteServiceSpecificCredentialOutput, error) {
3936	req, out := c.DeleteServiceSpecificCredentialRequest(input)
3937	return out, req.Send()
3938}
3939
3940// DeleteServiceSpecificCredentialWithContext is the same as DeleteServiceSpecificCredential with the addition of
3941// the ability to pass a context and additional request options.
3942//
3943// See DeleteServiceSpecificCredential for details on how to use this API operation.
3944//
3945// The context must be non-nil and will be used for request cancellation. If
3946// the context is nil a panic will occur. In the future the SDK may create
3947// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3948// for more information on using Contexts.
3949func (c *IAM) DeleteServiceSpecificCredentialWithContext(ctx aws.Context, input *DeleteServiceSpecificCredentialInput, opts ...request.Option) (*DeleteServiceSpecificCredentialOutput, error) {
3950	req, out := c.DeleteServiceSpecificCredentialRequest(input)
3951	req.SetContext(ctx)
3952	req.ApplyOptions(opts...)
3953	return out, req.Send()
3954}
3955
3956const opDeleteSigningCertificate = "DeleteSigningCertificate"
3957
3958// DeleteSigningCertificateRequest generates a "aws/request.Request" representing the
3959// client's request for the DeleteSigningCertificate operation. The "output" return
3960// value will be populated with the request's response once the request complets
3961// successfuly.
3962//
3963// Use "Send" method on the returned Request to send the API call to the service.
3964// the "output" return value is not valid until after Send returns without error.
3965//
3966// See DeleteSigningCertificate for more information on using the DeleteSigningCertificate
3967// API call, and error handling.
3968//
3969// This method is useful when you want to inject custom logic or configuration
3970// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3971//
3972//
3973//    // Example sending a request using the DeleteSigningCertificateRequest method.
3974//    req, resp := client.DeleteSigningCertificateRequest(params)
3975//
3976//    err := req.Send()
3977//    if err == nil { // resp is now filled
3978//        fmt.Println(resp)
3979//    }
3980//
3981// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteSigningCertificate
3982func (c *IAM) DeleteSigningCertificateRequest(input *DeleteSigningCertificateInput) (req *request.Request, output *DeleteSigningCertificateOutput) {
3983	op := &request.Operation{
3984		Name:       opDeleteSigningCertificate,
3985		HTTPMethod: "POST",
3986		HTTPPath:   "/",
3987	}
3988
3989	if input == nil {
3990		input = &DeleteSigningCertificateInput{}
3991	}
3992
3993	output = &DeleteSigningCertificateOutput{}
3994	req = c.newRequest(op, input, output)
3995	req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
3996	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
3997	return
3998}
3999
4000// DeleteSigningCertificate API operation for AWS Identity and Access Management.
4001//
4002// Deletes a signing certificate associated with the specified IAM user.
4003//
4004// If you do not specify a user name, IAM determines the user name implicitly
4005// based on the AWS access key ID signing the request. Because this action works
4006// for access keys under the AWS account, you can use this action to manage
4007// root credentials even if the AWS account has no associated IAM users.
4008//
4009// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4010// with awserr.Error's Code and Message methods to get detailed information about
4011// the error.
4012//
4013// See the AWS API reference guide for AWS Identity and Access Management's
4014// API operation DeleteSigningCertificate for usage and error information.
4015//
4016// Returned Error Codes:
4017//   * ErrCodeNoSuchEntityException "NoSuchEntity"
4018//   The request was rejected because it referenced an entity that does not exist.
4019//   The error message describes the entity.
4020//
4021//   * ErrCodeLimitExceededException "LimitExceeded"
4022//   The request was rejected because it attempted to create resources beyond
4023//   the current AWS account limits. The error message describes the limit exceeded.
4024//
4025//   * ErrCodeServiceFailureException "ServiceFailure"
4026//   The request processing has failed because of an unknown error, exception
4027//   or failure.
4028//
4029// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteSigningCertificate
4030func (c *IAM) DeleteSigningCertificate(input *DeleteSigningCertificateInput) (*DeleteSigningCertificateOutput, error) {
4031	req, out := c.DeleteSigningCertificateRequest(input)
4032	return out, req.Send()
4033}
4034
4035// DeleteSigningCertificateWithContext is the same as DeleteSigningCertificate with the addition of
4036// the ability to pass a context and additional request options.
4037//
4038// See DeleteSigningCertificate for details on how to use this API operation.
4039//
4040// The context must be non-nil and will be used for request cancellation. If
4041// the context is nil a panic will occur. In the future the SDK may create
4042// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4043// for more information on using Contexts.
4044func (c *IAM) DeleteSigningCertificateWithContext(ctx aws.Context, input *DeleteSigningCertificateInput, opts ...request.Option) (*DeleteSigningCertificateOutput, error) {
4045	req, out := c.DeleteSigningCertificateRequest(input)
4046	req.SetContext(ctx)
4047	req.ApplyOptions(opts...)
4048	return out, req.Send()
4049}
4050
4051const opDeleteUser = "DeleteUser"
4052
4053// DeleteUserRequest generates a "aws/request.Request" representing the
4054// client's request for the DeleteUser operation. The "output" return
4055// value will be populated with the request's response once the request complets
4056// successfuly.
4057//
4058// Use "Send" method on the returned Request to send the API call to the service.
4059// the "output" return value is not valid until after Send returns without error.
4060//
4061// See DeleteUser for more information on using the DeleteUser
4062// API call, and error handling.
4063//
4064// This method is useful when you want to inject custom logic or configuration
4065// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4066//
4067//
4068//    // Example sending a request using the DeleteUserRequest method.
4069//    req, resp := client.DeleteUserRequest(params)
4070//
4071//    err := req.Send()
4072//    if err == nil { // resp is now filled
4073//        fmt.Println(resp)
4074//    }
4075//
4076// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteUser
4077func (c *IAM) DeleteUserRequest(input *DeleteUserInput) (req *request.Request, output *DeleteUserOutput) {
4078	op := &request.Operation{
4079		Name:       opDeleteUser,
4080		HTTPMethod: "POST",
4081		HTTPPath:   "/",
4082	}
4083
4084	if input == nil {
4085		input = &DeleteUserInput{}
4086	}
4087
4088	output = &DeleteUserOutput{}
4089	req = c.newRequest(op, input, output)
4090	req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
4091	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
4092	return
4093}
4094
4095// DeleteUser API operation for AWS Identity and Access Management.
4096//
4097// Deletes the specified IAM user. The user must not belong to any groups or
4098// have any access keys, signing certificates, or attached policies.
4099//
4100// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4101// with awserr.Error's Code and Message methods to get detailed information about
4102// the error.
4103//
4104// See the AWS API reference guide for AWS Identity and Access Management's
4105// API operation DeleteUser for usage and error information.
4106//
4107// Returned Error Codes:
4108//   * ErrCodeLimitExceededException "LimitExceeded"
4109//   The request was rejected because it attempted to create resources beyond
4110//   the current AWS account limits. The error message describes the limit exceeded.
4111//
4112//   * ErrCodeNoSuchEntityException "NoSuchEntity"
4113//   The request was rejected because it referenced an entity that does not exist.
4114//   The error message describes the entity.
4115//
4116//   * ErrCodeDeleteConflictException "DeleteConflict"
4117//   The request was rejected because it attempted to delete a resource that has
4118//   attached subordinate entities. The error message describes these entities.
4119//
4120//   * ErrCodeServiceFailureException "ServiceFailure"
4121//   The request processing has failed because of an unknown error, exception
4122//   or failure.
4123//
4124// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteUser
4125func (c *IAM) DeleteUser(input *DeleteUserInput) (*DeleteUserOutput, error) {
4126	req, out := c.DeleteUserRequest(input)
4127	return out, req.Send()
4128}
4129
4130// DeleteUserWithContext is the same as DeleteUser with the addition of
4131// the ability to pass a context and additional request options.
4132//
4133// See DeleteUser for details on how to use this API operation.
4134//
4135// The context must be non-nil and will be used for request cancellation. If
4136// the context is nil a panic will occur. In the future the SDK may create
4137// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4138// for more information on using Contexts.
4139func (c *IAM) DeleteUserWithContext(ctx aws.Context, input *DeleteUserInput, opts ...request.Option) (*DeleteUserOutput, error) {
4140	req, out := c.DeleteUserRequest(input)
4141	req.SetContext(ctx)
4142	req.ApplyOptions(opts...)
4143	return out, req.Send()
4144}
4145
4146const opDeleteUserPolicy = "DeleteUserPolicy"
4147
4148// DeleteUserPolicyRequest generates a "aws/request.Request" representing the
4149// client's request for the DeleteUserPolicy operation. The "output" return
4150// value will be populated with the request's response once the request complets
4151// successfuly.
4152//
4153// Use "Send" method on the returned Request to send the API call to the service.
4154// the "output" return value is not valid until after Send returns without error.
4155//
4156// See DeleteUserPolicy for more information on using the DeleteUserPolicy
4157// API call, and error handling.
4158//
4159// This method is useful when you want to inject custom logic or configuration
4160// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4161//
4162//
4163//    // Example sending a request using the DeleteUserPolicyRequest method.
4164//    req, resp := client.DeleteUserPolicyRequest(params)
4165//
4166//    err := req.Send()
4167//    if err == nil { // resp is now filled
4168//        fmt.Println(resp)
4169//    }
4170//
4171// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteUserPolicy
4172func (c *IAM) DeleteUserPolicyRequest(input *DeleteUserPolicyInput) (req *request.Request, output *DeleteUserPolicyOutput) {
4173	op := &request.Operation{
4174		Name:       opDeleteUserPolicy,
4175		HTTPMethod: "POST",
4176		HTTPPath:   "/",
4177	}
4178
4179	if input == nil {
4180		input = &DeleteUserPolicyInput{}
4181	}
4182
4183	output = &DeleteUserPolicyOutput{}
4184	req = c.newRequest(op, input, output)
4185	req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
4186	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
4187	return
4188}
4189
4190// DeleteUserPolicy API operation for AWS Identity and Access Management.
4191//
4192// Deletes the specified inline policy that is embedded in the specified IAM
4193// user.
4194//
4195// A user can also have managed policies attached to it. To detach a managed
4196// policy from a user, use DetachUserPolicy. For more information about policies,
4197// refer to Managed Policies and Inline Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
4198// in the IAM User Guide.
4199//
4200// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4201// with awserr.Error's Code and Message methods to get detailed information about
4202// the error.
4203//
4204// See the AWS API reference guide for AWS Identity and Access Management's
4205// API operation DeleteUserPolicy for usage and error information.
4206//
4207// Returned Error Codes:
4208//   * ErrCodeNoSuchEntityException "NoSuchEntity"
4209//   The request was rejected because it referenced an entity that does not exist.
4210//   The error message describes the entity.
4211//
4212//   * ErrCodeLimitExceededException "LimitExceeded"
4213//   The request was rejected because it attempted to create resources beyond
4214//   the current AWS account limits. The error message describes the limit exceeded.
4215//
4216//   * ErrCodeServiceFailureException "ServiceFailure"
4217//   The request processing has failed because of an unknown error, exception
4218//   or failure.
4219//
4220// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteUserPolicy
4221func (c *IAM) DeleteUserPolicy(input *DeleteUserPolicyInput) (*DeleteUserPolicyOutput, error) {
4222	req, out := c.DeleteUserPolicyRequest(input)
4223	return out, req.Send()
4224}
4225
4226// DeleteUserPolicyWithContext is the same as DeleteUserPolicy with the addition of
4227// the ability to pass a context and additional request options.
4228//
4229// See DeleteUserPolicy for details on how to use this API operation.
4230//
4231// The context must be non-nil and will be used for request cancellation. If
4232// the context is nil a panic will occur. In the future the SDK may create
4233// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4234// for more information on using Contexts.
4235func (c *IAM) DeleteUserPolicyWithContext(ctx aws.Context, input *DeleteUserPolicyInput, opts ...request.Option) (*DeleteUserPolicyOutput, error) {
4236	req, out := c.DeleteUserPolicyRequest(input)
4237	req.SetContext(ctx)
4238	req.ApplyOptions(opts...)
4239	return out, req.Send()
4240}
4241
4242const opDeleteVirtualMFADevice = "DeleteVirtualMFADevice"
4243
4244// DeleteVirtualMFADeviceRequest generates a "aws/request.Request" representing the
4245// client's request for the DeleteVirtualMFADevice operation. The "output" return
4246// value will be populated with the request's response once the request complets
4247// successfuly.
4248//
4249// Use "Send" method on the returned Request to send the API call to the service.
4250// the "output" return value is not valid until after Send returns without error.
4251//
4252// See DeleteVirtualMFADevice for more information on using the DeleteVirtualMFADevice
4253// API call, and error handling.
4254//
4255// This method is useful when you want to inject custom logic or configuration
4256// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4257//
4258//
4259//    // Example sending a request using the DeleteVirtualMFADeviceRequest method.
4260//    req, resp := client.DeleteVirtualMFADeviceRequest(params)
4261//
4262//    err := req.Send()
4263//    if err == nil { // resp is now filled
4264//        fmt.Println(resp)
4265//    }
4266//
4267// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteVirtualMFADevice
4268func (c *IAM) DeleteVirtualMFADeviceRequest(input *DeleteVirtualMFADeviceInput) (req *request.Request, output *DeleteVirtualMFADeviceOutput) {
4269	op := &request.Operation{
4270		Name:       opDeleteVirtualMFADevice,
4271		HTTPMethod: "POST",
4272		HTTPPath:   "/",
4273	}
4274
4275	if input == nil {
4276		input = &DeleteVirtualMFADeviceInput{}
4277	}
4278
4279	output = &DeleteVirtualMFADeviceOutput{}
4280	req = c.newRequest(op, input, output)
4281	req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
4282	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
4283	return
4284}
4285
4286// DeleteVirtualMFADevice API operation for AWS Identity and Access Management.
4287//
4288// Deletes a virtual MFA device.
4289//
4290// You must deactivate a user's virtual MFA device before you can delete it.
4291// For information about deactivating MFA devices, see DeactivateMFADevice.
4292//
4293// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4294// with awserr.Error's Code and Message methods to get detailed information about
4295// the error.
4296//
4297// See the AWS API reference guide for AWS Identity and Access Management's
4298// API operation DeleteVirtualMFADevice for usage and error information.
4299//
4300// Returned Error Codes:
4301//   * ErrCodeNoSuchEntityException "NoSuchEntity"
4302//   The request was rejected because it referenced an entity that does not exist.
4303//   The error message describes the entity.
4304//
4305//   * ErrCodeDeleteConflictException "DeleteConflict"
4306//   The request was rejected because it attempted to delete a resource that has
4307//   attached subordinate entities. The error message describes these entities.
4308//
4309//   * ErrCodeLimitExceededException "LimitExceeded"
4310//   The request was rejected because it attempted to create resources beyond
4311//   the current AWS account limits. The error message describes the limit exceeded.
4312//
4313//   * ErrCodeServiceFailureException "ServiceFailure"
4314//   The request processing has failed because of an unknown error, exception
4315//   or failure.
4316//
4317// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteVirtualMFADevice
4318func (c *IAM) DeleteVirtualMFADevice(input *DeleteVirtualMFADeviceInput) (*DeleteVirtualMFADeviceOutput, error) {
4319	req, out := c.DeleteVirtualMFADeviceRequest(input)
4320	return out, req.Send()
4321}
4322
4323// DeleteVirtualMFADeviceWithContext is the same as DeleteVirtualMFADevice with the addition of
4324// the ability to pass a context and additional request options.
4325//
4326// See DeleteVirtualMFADevice for details on how to use this API operation.
4327//
4328// The context must be non-nil and will be used for request cancellation. If
4329// the context is nil a panic will occur. In the future the SDK may create
4330// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4331// for more information on using Contexts.
4332func (c *IAM) DeleteVirtualMFADeviceWithContext(ctx aws.Context, input *DeleteVirtualMFADeviceInput, opts ...request.Option) (*DeleteVirtualMFADeviceOutput, error) {
4333	req, out := c.DeleteVirtualMFADeviceRequest(input)
4334	req.SetContext(ctx)
4335	req.ApplyOptions(opts...)
4336	return out, req.Send()
4337}
4338
4339const opDetachGroupPolicy = "DetachGroupPolicy"
4340
4341// DetachGroupPolicyRequest generates a "aws/request.Request" representing the
4342// client's request for the DetachGroupPolicy operation. The "output" return
4343// value will be populated with the request's response once the request complets
4344// successfuly.
4345//
4346// Use "Send" method on the returned Request to send the API call to the service.
4347// the "output" return value is not valid until after Send returns without error.
4348//
4349// See DetachGroupPolicy for more information on using the DetachGroupPolicy
4350// API call, and error handling.
4351//
4352// This method is useful when you want to inject custom logic or configuration
4353// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4354//
4355//
4356//    // Example sending a request using the DetachGroupPolicyRequest method.
4357//    req, resp := client.DetachGroupPolicyRequest(params)
4358//
4359//    err := req.Send()
4360//    if err == nil { // resp is now filled
4361//        fmt.Println(resp)
4362//    }
4363//
4364// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DetachGroupPolicy
4365func (c *IAM) DetachGroupPolicyRequest(input *DetachGroupPolicyInput) (req *request.Request, output *DetachGroupPolicyOutput) {
4366	op := &request.Operation{
4367		Name:       opDetachGroupPolicy,
4368		HTTPMethod: "POST",
4369		HTTPPath:   "/",
4370	}
4371
4372	if input == nil {
4373		input = &DetachGroupPolicyInput{}
4374	}
4375
4376	output = &DetachGroupPolicyOutput{}
4377	req = c.newRequest(op, input, output)
4378	req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
4379	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
4380	return
4381}
4382
4383// DetachGroupPolicy API operation for AWS Identity and Access Management.
4384//
4385// Removes the specified managed policy from the specified IAM group.
4386//
4387// A group can also have inline policies embedded with it. To delete an inline
4388// policy, use the DeleteGroupPolicy API. For information about policies, see
4389// Managed Policies and Inline Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
4390// in the IAM User Guide.
4391//
4392// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4393// with awserr.Error's Code and Message methods to get detailed information about
4394// the error.
4395//
4396// See the AWS API reference guide for AWS Identity and Access Management's
4397// API operation DetachGroupPolicy for usage and error information.
4398//
4399// Returned Error Codes:
4400//   * ErrCodeNoSuchEntityException "NoSuchEntity"
4401//   The request was rejected because it referenced an entity that does not exist.
4402//   The error message describes the entity.
4403//
4404//   * ErrCodeLimitExceededException "LimitExceeded"
4405//   The request was rejected because it attempted to create resources beyond
4406//   the current AWS account limits. The error message describes the limit exceeded.
4407//
4408//   * ErrCodeInvalidInputException "InvalidInput"
4409//   The request was rejected because an invalid or out-of-range value was supplied
4410//   for an input parameter.
4411//
4412//   * ErrCodeServiceFailureException "ServiceFailure"
4413//   The request processing has failed because of an unknown error, exception
4414//   or failure.
4415//
4416// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DetachGroupPolicy
4417func (c *IAM) DetachGroupPolicy(input *DetachGroupPolicyInput) (*DetachGroupPolicyOutput, error) {
4418	req, out := c.DetachGroupPolicyRequest(input)
4419	return out, req.Send()
4420}
4421
4422// DetachGroupPolicyWithContext is the same as DetachGroupPolicy with the addition of
4423// the ability to pass a context and additional request options.
4424//
4425// See DetachGroupPolicy for details on how to use this API operation.
4426//
4427// The context must be non-nil and will be used for request cancellation. If
4428// the context is nil a panic will occur. In the future the SDK may create
4429// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4430// for more information on using Contexts.
4431func (c *IAM) DetachGroupPolicyWithContext(ctx aws.Context, input *DetachGroupPolicyInput, opts ...request.Option) (*DetachGroupPolicyOutput, error) {
4432	req, out := c.DetachGroupPolicyRequest(input)
4433	req.SetContext(ctx)
4434	req.ApplyOptions(opts...)
4435	return out, req.Send()
4436}
4437
4438const opDetachRolePolicy = "DetachRolePolicy"
4439
4440// DetachRolePolicyRequest generates a "aws/request.Request" representing the
4441// client's request for the DetachRolePolicy operation. The "output" return
4442// value will be populated with the request's response once the request complets
4443// successfuly.
4444//
4445// Use "Send" method on the returned Request to send the API call to the service.
4446// the "output" return value is not valid until after Send returns without error.
4447//
4448// See DetachRolePolicy for more information on using the DetachRolePolicy
4449// API call, and error handling.
4450//
4451// This method is useful when you want to inject custom logic or configuration
4452// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4453//
4454//
4455//    // Example sending a request using the DetachRolePolicyRequest method.
4456//    req, resp := client.DetachRolePolicyRequest(params)
4457//
4458//    err := req.Send()
4459//    if err == nil { // resp is now filled
4460//        fmt.Println(resp)
4461//    }
4462//
4463// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DetachRolePolicy
4464func (c *IAM) DetachRolePolicyRequest(input *DetachRolePolicyInput) (req *request.Request, output *DetachRolePolicyOutput) {
4465	op := &request.Operation{
4466		Name:       opDetachRolePolicy,
4467		HTTPMethod: "POST",
4468		HTTPPath:   "/",
4469	}
4470
4471	if input == nil {
4472		input = &DetachRolePolicyInput{}
4473	}
4474
4475	output = &DetachRolePolicyOutput{}
4476	req = c.newRequest(op, input, output)
4477	req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
4478	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
4479	return
4480}
4481
4482// DetachRolePolicy API operation for AWS Identity and Access Management.
4483//
4484// Removes the specified managed policy from the specified role.
4485//
4486// A role can also have inline policies embedded with it. To delete an inline
4487// policy, use the DeleteRolePolicy API. For information about policies, see
4488// Managed Policies and Inline Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
4489// in the IAM User Guide.
4490//
4491// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4492// with awserr.Error's Code and Message methods to get detailed information about
4493// the error.
4494//
4495// See the AWS API reference guide for AWS Identity and Access Management's
4496// API operation DetachRolePolicy for usage and error information.
4497//
4498// Returned Error Codes:
4499//   * ErrCodeNoSuchEntityException "NoSuchEntity"
4500//   The request was rejected because it referenced an entity that does not exist.
4501//   The error message describes the entity.
4502//
4503//   * ErrCodeLimitExceededException "LimitExceeded"
4504//   The request was rejected because it attempted to create resources beyond
4505//   the current AWS account limits. The error message describes the limit exceeded.
4506//
4507//   * ErrCodeInvalidInputException "InvalidInput"
4508//   The request was rejected because an invalid or out-of-range value was supplied
4509//   for an input parameter.
4510//
4511//   * ErrCodeUnmodifiableEntityException "UnmodifiableEntity"
4512//   The request was rejected because only the service that depends on the service-linked
4513//   role can modify or delete the role on your behalf. The error message includes
4514//   the name of the service that depends on this service-linked role. You must
4515//   request the change through that service.
4516//
4517//   * ErrCodeServiceFailureException "ServiceFailure"
4518//   The request processing has failed because of an unknown error, exception
4519//   or failure.
4520//
4521// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DetachRolePolicy
4522func (c *IAM) DetachRolePolicy(input *DetachRolePolicyInput) (*DetachRolePolicyOutput, error) {
4523	req, out := c.DetachRolePolicyRequest(input)
4524	return out, req.Send()
4525}
4526
4527// DetachRolePolicyWithContext is the same as DetachRolePolicy with the addition of
4528// the ability to pass a context and additional request options.
4529//
4530// See DetachRolePolicy for details on how to use this API operation.
4531//
4532// The context must be non-nil and will be used for request cancellation. If
4533// the context is nil a panic will occur. In the future the SDK may create
4534// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4535// for more information on using Contexts.
4536func (c *IAM) DetachRolePolicyWithContext(ctx aws.Context, input *DetachRolePolicyInput, opts ...request.Option) (*DetachRolePolicyOutput, error) {
4537	req, out := c.DetachRolePolicyRequest(input)
4538	req.SetContext(ctx)
4539	req.ApplyOptions(opts...)
4540	return out, req.Send()
4541}
4542
4543const opDetachUserPolicy = "DetachUserPolicy"
4544
4545// DetachUserPolicyRequest generates a "aws/request.Request" representing the
4546// client's request for the DetachUserPolicy operation. The "output" return
4547// value will be populated with the request's response once the request complets
4548// successfuly.
4549//
4550// Use "Send" method on the returned Request to send the API call to the service.
4551// the "output" return value is not valid until after Send returns without error.
4552//
4553// See DetachUserPolicy for more information on using the DetachUserPolicy
4554// API call, and error handling.
4555//
4556// This method is useful when you want to inject custom logic or configuration
4557// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4558//
4559//
4560//    // Example sending a request using the DetachUserPolicyRequest method.
4561//    req, resp := client.DetachUserPolicyRequest(params)
4562//
4563//    err := req.Send()
4564//    if err == nil { // resp is now filled
4565//        fmt.Println(resp)
4566//    }
4567//
4568// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DetachUserPolicy
4569func (c *IAM) DetachUserPolicyRequest(input *DetachUserPolicyInput) (req *request.Request, output *DetachUserPolicyOutput) {
4570	op := &request.Operation{
4571		Name:       opDetachUserPolicy,
4572		HTTPMethod: "POST",
4573		HTTPPath:   "/",
4574	}
4575
4576	if input == nil {
4577		input = &DetachUserPolicyInput{}
4578	}
4579
4580	output = &DetachUserPolicyOutput{}
4581	req = c.newRequest(op, input, output)
4582	req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
4583	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
4584	return
4585}
4586
4587// DetachUserPolicy API operation for AWS Identity and Access Management.
4588//
4589// Removes the specified managed policy from the specified user.
4590//
4591// A user can also have inline policies embedded with it. To delete an inline
4592// policy, use the DeleteUserPolicy API. For information about policies, see
4593// Managed Policies and Inline Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
4594// in the IAM User Guide.
4595//
4596// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4597// with awserr.Error's Code and Message methods to get detailed information about
4598// the error.
4599//
4600// See the AWS API reference guide for AWS Identity and Access Management's
4601// API operation DetachUserPolicy for usage and error information.
4602//
4603// Returned Error Codes:
4604//   * ErrCodeNoSuchEntityException "NoSuchEntity"
4605//   The request was rejected because it referenced an entity that does not exist.
4606//   The error message describes the entity.
4607//
4608//   * ErrCodeLimitExceededException "LimitExceeded"
4609//   The request was rejected because it attempted to create resources beyond
4610//   the current AWS account limits. The error message describes the limit exceeded.
4611//
4612//   * ErrCodeInvalidInputException "InvalidInput"
4613//   The request was rejected because an invalid or out-of-range value was supplied
4614//   for an input parameter.
4615//
4616//   * ErrCodeServiceFailureException "ServiceFailure"
4617//   The request processing has failed because of an unknown error, exception
4618//   or failure.
4619//
4620// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DetachUserPolicy
4621func (c *IAM) DetachUserPolicy(input *DetachUserPolicyInput) (*DetachUserPolicyOutput, error) {
4622	req, out := c.DetachUserPolicyRequest(input)
4623	return out, req.Send()
4624}
4625
4626// DetachUserPolicyWithContext is the same as DetachUserPolicy with the addition of
4627// the ability to pass a context and additional request options.
4628//
4629// See DetachUserPolicy for details on how to use this API operation.
4630//
4631// The context must be non-nil and will be used for request cancellation. If
4632// the context is nil a panic will occur. In the future the SDK may create
4633// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4634// for more information on using Contexts.
4635func (c *IAM) DetachUserPolicyWithContext(ctx aws.Context, input *DetachUserPolicyInput, opts ...request.Option) (*DetachUserPolicyOutput, error) {
4636	req, out := c.DetachUserPolicyRequest(input)
4637	req.SetContext(ctx)
4638	req.ApplyOptions(opts...)
4639	return out, req.Send()
4640}
4641
4642const opEnableMFADevice = "EnableMFADevice"
4643
4644// EnableMFADeviceRequest generates a "aws/request.Request" representing the
4645// client's request for the EnableMFADevice operation. The "output" return
4646// value will be populated with the request's response once the request complets
4647// successfuly.
4648//
4649// Use "Send" method on the returned Request to send the API call to the service.
4650// the "output" return value is not valid until after Send returns without error.
4651//
4652// See EnableMFADevice for more information on using the EnableMFADevice
4653// API call, and error handling.
4654//
4655// This method is useful when you want to inject custom logic or configuration
4656// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4657//
4658//
4659//    // Example sending a request using the EnableMFADeviceRequest method.
4660//    req, resp := client.EnableMFADeviceRequest(params)
4661//
4662//    err := req.Send()
4663//    if err == nil { // resp is now filled
4664//        fmt.Println(resp)
4665//    }
4666//
4667// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/EnableMFADevice
4668func (c *IAM) EnableMFADeviceRequest(input *EnableMFADeviceInput) (req *request.Request, output *EnableMFADeviceOutput) {
4669	op := &request.Operation{
4670		Name:       opEnableMFADevice,
4671		HTTPMethod: "POST",
4672		HTTPPath:   "/",
4673	}
4674
4675	if input == nil {
4676		input = &EnableMFADeviceInput{}
4677	}
4678
4679	output = &EnableMFADeviceOutput{}
4680	req = c.newRequest(op, input, output)
4681	req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
4682	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
4683	return
4684}
4685
4686// EnableMFADevice API operation for AWS Identity and Access Management.
4687//
4688// Enables the specified MFA device and associates it with the specified IAM
4689// user. When enabled, the MFA device is required for every subsequent login
4690// by the IAM user associated with the device.
4691//
4692// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4693// with awserr.Error's Code and Message methods to get detailed information about
4694// the error.
4695//
4696// See the AWS API reference guide for AWS Identity and Access Management's
4697// API operation EnableMFADevice for usage and error information.
4698//
4699// Returned Error Codes:
4700//   * ErrCodeEntityAlreadyExistsException "EntityAlreadyExists"
4701//   The request was rejected because it attempted to create a resource that already
4702//   exists.
4703//
4704//   * ErrCodeEntityTemporarilyUnmodifiableException "EntityTemporarilyUnmodifiable"
4705//   The request was rejected because it referenced an entity that is temporarily
4706//   unmodifiable, such as a user name that was deleted and then recreated. The
4707//   error indicates that the request is likely to succeed if you try again after
4708//   waiting several minutes. The error message describes the entity.
4709//
4710//   * ErrCodeInvalidAuthenticationCodeException "InvalidAuthenticationCode"
4711//   The request was rejected because the authentication code was not recognized.
4712//   The error message describes the specific error.
4713//
4714//   * ErrCodeLimitExceededException "LimitExceeded"
4715//   The request was rejected because it attempted to create resources beyond
4716//   the current AWS account limits. The error message describes the limit exceeded.
4717//
4718//   * ErrCodeNoSuchEntityException "NoSuchEntity"
4719//   The request was rejected because it referenced an entity that does not exist.
4720//   The error message describes the entity.
4721//
4722//   * ErrCodeServiceFailureException "ServiceFailure"
4723//   The request processing has failed because of an unknown error, exception
4724//   or failure.
4725//
4726// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/EnableMFADevice
4727func (c *IAM) EnableMFADevice(input *EnableMFADeviceInput) (*EnableMFADeviceOutput, error) {
4728	req, out := c.EnableMFADeviceRequest(input)
4729	return out, req.Send()
4730}
4731
4732// EnableMFADeviceWithContext is the same as EnableMFADevice with the addition of
4733// the ability to pass a context and additional request options.
4734//
4735// See EnableMFADevice for details on how to use this API operation.
4736//
4737// The context must be non-nil and will be used for request cancellation. If
4738// the context is nil a panic will occur. In the future the SDK may create
4739// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4740// for more information on using Contexts.
4741func (c *IAM) EnableMFADeviceWithContext(ctx aws.Context, input *EnableMFADeviceInput, opts ...request.Option) (*EnableMFADeviceOutput, error) {
4742	req, out := c.EnableMFADeviceRequest(input)
4743	req.SetContext(ctx)
4744	req.ApplyOptions(opts...)
4745	return out, req.Send()
4746}
4747
4748const opGenerateCredentialReport = "GenerateCredentialReport"
4749
4750// GenerateCredentialReportRequest generates a "aws/request.Request" representing the
4751// client's request for the GenerateCredentialReport operation. The "output" return
4752// value will be populated with the request's response once the request complets
4753// successfuly.
4754//
4755// Use "Send" method on the returned Request to send the API call to the service.
4756// the "output" return value is not valid until after Send returns without error.
4757//
4758// See GenerateCredentialReport for more information on using the GenerateCredentialReport
4759// API call, and error handling.
4760//
4761// This method is useful when you want to inject custom logic or configuration
4762// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4763//
4764//
4765//    // Example sending a request using the GenerateCredentialReportRequest method.
4766//    req, resp := client.GenerateCredentialReportRequest(params)
4767//
4768//    err := req.Send()
4769//    if err == nil { // resp is now filled
4770//        fmt.Println(resp)
4771//    }
4772//
4773// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GenerateCredentialReport
4774func (c *IAM) GenerateCredentialReportRequest(input *GenerateCredentialReportInput) (req *request.Request, output *GenerateCredentialReportOutput) {
4775	op := &request.Operation{
4776		Name:       opGenerateCredentialReport,
4777		HTTPMethod: "POST",
4778		HTTPPath:   "/",
4779	}
4780
4781	if input == nil {
4782		input = &GenerateCredentialReportInput{}
4783	}
4784
4785	output = &GenerateCredentialReportOutput{}
4786	req = c.newRequest(op, input, output)
4787	return
4788}
4789
4790// GenerateCredentialReport API operation for AWS Identity and Access Management.
4791//
4792// Generates a credential report for the AWS account. For more information about
4793// the credential report, see Getting Credential Reports (http://docs.aws.amazon.com/IAM/latest/UserGuide/credential-reports.html)
4794// in the IAM User Guide.
4795//
4796// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4797// with awserr.Error's Code and Message methods to get detailed information about
4798// the error.
4799//
4800// See the AWS API reference guide for AWS Identity and Access Management's
4801// API operation GenerateCredentialReport for usage and error information.
4802//
4803// Returned Error Codes:
4804//   * ErrCodeLimitExceededException "LimitExceeded"
4805//   The request was rejected because it attempted to create resources beyond
4806//   the current AWS account limits. The error message describes the limit exceeded.
4807//
4808//   * ErrCodeServiceFailureException "ServiceFailure"
4809//   The request processing has failed because of an unknown error, exception
4810//   or failure.
4811//
4812// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GenerateCredentialReport
4813func (c *IAM) GenerateCredentialReport(input *GenerateCredentialReportInput) (*GenerateCredentialReportOutput, error) {
4814	req, out := c.GenerateCredentialReportRequest(input)
4815	return out, req.Send()
4816}
4817
4818// GenerateCredentialReportWithContext is the same as GenerateCredentialReport with the addition of
4819// the ability to pass a context and additional request options.
4820//
4821// See GenerateCredentialReport for details on how to use this API operation.
4822//
4823// The context must be non-nil and will be used for request cancellation. If
4824// the context is nil a panic will occur. In the future the SDK may create
4825// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4826// for more information on using Contexts.
4827func (c *IAM) GenerateCredentialReportWithContext(ctx aws.Context, input *GenerateCredentialReportInput, opts ...request.Option) (*GenerateCredentialReportOutput, error) {
4828	req, out := c.GenerateCredentialReportRequest(input)
4829	req.SetContext(ctx)
4830	req.ApplyOptions(opts...)
4831	return out, req.Send()
4832}
4833
4834const opGetAccessKeyLastUsed = "GetAccessKeyLastUsed"
4835
4836// GetAccessKeyLastUsedRequest generates a "aws/request.Request" representing the
4837// client's request for the GetAccessKeyLastUsed operation. The "output" return
4838// value will be populated with the request's response once the request complets
4839// successfuly.
4840//
4841// Use "Send" method on the returned Request to send the API call to the service.
4842// the "output" return value is not valid until after Send returns without error.
4843//
4844// See GetAccessKeyLastUsed for more information on using the GetAccessKeyLastUsed
4845// API call, and error handling.
4846//
4847// This method is useful when you want to inject custom logic or configuration
4848// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4849//
4850//
4851//    // Example sending a request using the GetAccessKeyLastUsedRequest method.
4852//    req, resp := client.GetAccessKeyLastUsedRequest(params)
4853//
4854//    err := req.Send()
4855//    if err == nil { // resp is now filled
4856//        fmt.Println(resp)
4857//    }
4858//
4859// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetAccessKeyLastUsed
4860func (c *IAM) GetAccessKeyLastUsedRequest(input *GetAccessKeyLastUsedInput) (req *request.Request, output *GetAccessKeyLastUsedOutput) {
4861	op := &request.Operation{
4862		Name:       opGetAccessKeyLastUsed,
4863		HTTPMethod: "POST",
4864		HTTPPath:   "/",
4865	}
4866
4867	if input == nil {
4868		input = &GetAccessKeyLastUsedInput{}
4869	}
4870
4871	output = &GetAccessKeyLastUsedOutput{}
4872	req = c.newRequest(op, input, output)
4873	return
4874}
4875
4876// GetAccessKeyLastUsed API operation for AWS Identity and Access Management.
4877//
4878// Retrieves information about when the specified access key was last used.
4879// The information includes the date and time of last use, along with the AWS
4880// service and region that were specified in the last request made with that
4881// key.
4882//
4883// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4884// with awserr.Error's Code and Message methods to get detailed information about
4885// the error.
4886//
4887// See the AWS API reference guide for AWS Identity and Access Management's
4888// API operation GetAccessKeyLastUsed for usage and error information.
4889//
4890// Returned Error Codes:
4891//   * ErrCodeNoSuchEntityException "NoSuchEntity"
4892//   The request was rejected because it referenced an entity that does not exist.
4893//   The error message describes the entity.
4894//
4895// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetAccessKeyLastUsed
4896func (c *IAM) GetAccessKeyLastUsed(input *GetAccessKeyLastUsedInput) (*GetAccessKeyLastUsedOutput, error) {
4897	req, out := c.GetAccessKeyLastUsedRequest(input)
4898	return out, req.Send()
4899}
4900
4901// GetAccessKeyLastUsedWithContext is the same as GetAccessKeyLastUsed with the addition of
4902// the ability to pass a context and additional request options.
4903//
4904// See GetAccessKeyLastUsed for details on how to use this API operation.
4905//
4906// The context must be non-nil and will be used for request cancellation. If
4907// the context is nil a panic will occur. In the future the SDK may create
4908// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4909// for more information on using Contexts.
4910func (c *IAM) GetAccessKeyLastUsedWithContext(ctx aws.Context, input *GetAccessKeyLastUsedInput, opts ...request.Option) (*GetAccessKeyLastUsedOutput, error) {
4911	req, out := c.GetAccessKeyLastUsedRequest(input)
4912	req.SetContext(ctx)
4913	req.ApplyOptions(opts...)
4914	return out, req.Send()
4915}
4916
4917const opGetAccountAuthorizationDetails = "GetAccountAuthorizationDetails"
4918
4919// GetAccountAuthorizationDetailsRequest generates a "aws/request.Request" representing the
4920// client's request for the GetAccountAuthorizationDetails operation. The "output" return
4921// value will be populated with the request's response once the request complets
4922// successfuly.
4923//
4924// Use "Send" method on the returned Request to send the API call to the service.
4925// the "output" return value is not valid until after Send returns without error.
4926//
4927// See GetAccountAuthorizationDetails for more information on using the GetAccountAuthorizationDetails
4928// API call, and error handling.
4929//
4930// This method is useful when you want to inject custom logic or configuration
4931// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4932//
4933//
4934//    // Example sending a request using the GetAccountAuthorizationDetailsRequest method.
4935//    req, resp := client.GetAccountAuthorizationDetailsRequest(params)
4936//
4937//    err := req.Send()
4938//    if err == nil { // resp is now filled
4939//        fmt.Println(resp)
4940//    }
4941//
4942// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetAccountAuthorizationDetails
4943func (c *IAM) GetAccountAuthorizationDetailsRequest(input *GetAccountAuthorizationDetailsInput) (req *request.Request, output *GetAccountAuthorizationDetailsOutput) {
4944	op := &request.Operation{
4945		Name:       opGetAccountAuthorizationDetails,
4946		HTTPMethod: "POST",
4947		HTTPPath:   "/",
4948		Paginator: &request.Paginator{
4949			InputTokens:     []string{"Marker"},
4950			OutputTokens:    []string{"Marker"},
4951			LimitToken:      "MaxItems",
4952			TruncationToken: "IsTruncated",
4953		},
4954	}
4955
4956	if input == nil {
4957		input = &GetAccountAuthorizationDetailsInput{}
4958	}
4959
4960	output = &GetAccountAuthorizationDetailsOutput{}
4961	req = c.newRequest(op, input, output)
4962	return
4963}
4964
4965// GetAccountAuthorizationDetails API operation for AWS Identity and Access Management.
4966//
4967// Retrieves information about all IAM users, groups, roles, and policies in
4968// your AWS account, including their relationships to one another. Use this
4969// API to obtain a snapshot of the configuration of IAM permissions (users,
4970// groups, roles, and policies) in your account.
4971//
4972// You can optionally filter the results using the Filter parameter. You can
4973// paginate the results using the MaxItems and Marker parameters.
4974//
4975// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4976// with awserr.Error's Code and Message methods to get detailed information about
4977// the error.
4978//
4979// See the AWS API reference guide for AWS Identity and Access Management's
4980// API operation GetAccountAuthorizationDetails for usage and error information.
4981//
4982// Returned Error Codes:
4983//   * ErrCodeServiceFailureException "ServiceFailure"
4984//   The request processing has failed because of an unknown error, exception
4985//   or failure.
4986//
4987// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetAccountAuthorizationDetails
4988func (c *IAM) GetAccountAuthorizationDetails(input *GetAccountAuthorizationDetailsInput) (*GetAccountAuthorizationDetailsOutput, error) {
4989	req, out := c.GetAccountAuthorizationDetailsRequest(input)
4990	return out, req.Send()
4991}
4992
4993// GetAccountAuthorizationDetailsWithContext is the same as GetAccountAuthorizationDetails with the addition of
4994// the ability to pass a context and additional request options.
4995//
4996// See GetAccountAuthorizationDetails for details on how to use this API operation.
4997//
4998// The context must be non-nil and will be used for request cancellation. If
4999// the context is nil a panic will occur. In the future the SDK may create
5000// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5001// for more information on using Contexts.
5002func (c *IAM) GetAccountAuthorizationDetailsWithContext(ctx aws.Context, input *GetAccountAuthorizationDetailsInput, opts ...request.Option) (*GetAccountAuthorizationDetailsOutput, error) {
5003	req, out := c.GetAccountAuthorizationDetailsRequest(input)
5004	req.SetContext(ctx)
5005	req.ApplyOptions(opts...)
5006	return out, req.Send()
5007}
5008
5009// GetAccountAuthorizationDetailsPages iterates over the pages of a GetAccountAuthorizationDetails operation,
5010// calling the "fn" function with the response data for each page. To stop
5011// iterating, return false from the fn function.
5012//
5013// See GetAccountAuthorizationDetails method for more information on how to use this operation.
5014//
5015// Note: This operation can generate multiple requests to a service.
5016//
5017//    // Example iterating over at most 3 pages of a GetAccountAuthorizationDetails operation.
5018//    pageNum := 0
5019//    err := client.GetAccountAuthorizationDetailsPages(params,
5020//        func(page *GetAccountAuthorizationDetailsOutput, lastPage bool) bool {
5021//            pageNum++
5022//            fmt.Println(page)
5023//            return pageNum <= 3
5024//        })
5025//
5026func (c *IAM) GetAccountAuthorizationDetailsPages(input *GetAccountAuthorizationDetailsInput, fn func(*GetAccountAuthorizationDetailsOutput, bool) bool) error {
5027	return c.GetAccountAuthorizationDetailsPagesWithContext(aws.BackgroundContext(), input, fn)
5028}
5029
5030// GetAccountAuthorizationDetailsPagesWithContext same as GetAccountAuthorizationDetailsPages except
5031// it takes a Context and allows setting request options on the pages.
5032//
5033// The context must be non-nil and will be used for request cancellation. If
5034// the context is nil a panic will occur. In the future the SDK may create
5035// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5036// for more information on using Contexts.
5037func (c *IAM) GetAccountAuthorizationDetailsPagesWithContext(ctx aws.Context, input *GetAccountAuthorizationDetailsInput, fn func(*GetAccountAuthorizationDetailsOutput, bool) bool, opts ...request.Option) error {
5038	p := request.Pagination{
5039		NewRequest: func() (*request.Request, error) {
5040			var inCpy *GetAccountAuthorizationDetailsInput
5041			if input != nil {
5042				tmp := *input
5043				inCpy = &tmp
5044			}
5045			req, _ := c.GetAccountAuthorizationDetailsRequest(inCpy)
5046			req.SetContext(ctx)
5047			req.ApplyOptions(opts...)
5048			return req, nil
5049		},
5050	}
5051
5052	cont := true
5053	for p.Next() && cont {
5054		cont = fn(p.Page().(*GetAccountAuthorizationDetailsOutput), !p.HasNextPage())
5055	}
5056	return p.Err()
5057}
5058
5059const opGetAccountPasswordPolicy = "GetAccountPasswordPolicy"
5060
5061// GetAccountPasswordPolicyRequest generates a "aws/request.Request" representing the
5062// client's request for the GetAccountPasswordPolicy operation. The "output" return
5063// value will be populated with the request's response once the request complets
5064// successfuly.
5065//
5066// Use "Send" method on the returned Request to send the API call to the service.
5067// the "output" return value is not valid until after Send returns without error.
5068//
5069// See GetAccountPasswordPolicy for more information on using the GetAccountPasswordPolicy
5070// API call, and error handling.
5071//
5072// This method is useful when you want to inject custom logic or configuration
5073// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5074//
5075//
5076//    // Example sending a request using the GetAccountPasswordPolicyRequest method.
5077//    req, resp := client.GetAccountPasswordPolicyRequest(params)
5078//
5079//    err := req.Send()
5080//    if err == nil { // resp is now filled
5081//        fmt.Println(resp)
5082//    }
5083//
5084// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetAccountPasswordPolicy
5085func (c *IAM) GetAccountPasswordPolicyRequest(input *GetAccountPasswordPolicyInput) (req *request.Request, output *GetAccountPasswordPolicyOutput) {
5086	op := &request.Operation{
5087		Name:       opGetAccountPasswordPolicy,
5088		HTTPMethod: "POST",
5089		HTTPPath:   "/",
5090	}
5091
5092	if input == nil {
5093		input = &GetAccountPasswordPolicyInput{}
5094	}
5095
5096	output = &GetAccountPasswordPolicyOutput{}
5097	req = c.newRequest(op, input, output)
5098	return
5099}
5100
5101// GetAccountPasswordPolicy API operation for AWS Identity and Access Management.
5102//
5103// Retrieves the password policy for the AWS account. For more information about
5104// using a password policy, go to Managing an IAM Password Policy (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_ManagingPasswordPolicies.html).
5105//
5106// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5107// with awserr.Error's Code and Message methods to get detailed information about
5108// the error.
5109//
5110// See the AWS API reference guide for AWS Identity and Access Management's
5111// API operation GetAccountPasswordPolicy for usage and error information.
5112//
5113// Returned Error Codes:
5114//   * ErrCodeNoSuchEntityException "NoSuchEntity"
5115//   The request was rejected because it referenced an entity that does not exist.
5116//   The error message describes the entity.
5117//
5118//   * ErrCodeServiceFailureException "ServiceFailure"
5119//   The request processing has failed because of an unknown error, exception
5120//   or failure.
5121//
5122// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetAccountPasswordPolicy
5123func (c *IAM) GetAccountPasswordPolicy(input *GetAccountPasswordPolicyInput) (*GetAccountPasswordPolicyOutput, error) {
5124	req, out := c.GetAccountPasswordPolicyRequest(input)
5125	return out, req.Send()
5126}
5127
5128// GetAccountPasswordPolicyWithContext is the same as GetAccountPasswordPolicy with the addition of
5129// the ability to pass a context and additional request options.
5130//
5131// See GetAccountPasswordPolicy for details on how to use this API operation.
5132//
5133// The context must be non-nil and will be used for request cancellation. If
5134// the context is nil a panic will occur. In the future the SDK may create
5135// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5136// for more information on using Contexts.
5137func (c *IAM) GetAccountPasswordPolicyWithContext(ctx aws.Context, input *GetAccountPasswordPolicyInput, opts ...request.Option) (*GetAccountPasswordPolicyOutput, error) {
5138	req, out := c.GetAccountPasswordPolicyRequest(input)
5139	req.SetContext(ctx)
5140	req.ApplyOptions(opts...)
5141	return out, req.Send()
5142}
5143
5144const opGetAccountSummary = "GetAccountSummary"
5145
5146// GetAccountSummaryRequest generates a "aws/request.Request" representing the
5147// client's request for the GetAccountSummary operation. The "output" return
5148// value will be populated with the request's response once the request complets
5149// successfuly.
5150//
5151// Use "Send" method on the returned Request to send the API call to the service.
5152// the "output" return value is not valid until after Send returns without error.
5153//
5154// See GetAccountSummary for more information on using the GetAccountSummary
5155// API call, and error handling.
5156//
5157// This method is useful when you want to inject custom logic or configuration
5158// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5159//
5160//
5161//    // Example sending a request using the GetAccountSummaryRequest method.
5162//    req, resp := client.GetAccountSummaryRequest(params)
5163//
5164//    err := req.Send()
5165//    if err == nil { // resp is now filled
5166//        fmt.Println(resp)
5167//    }
5168//
5169// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetAccountSummary
5170func (c *IAM) GetAccountSummaryRequest(input *GetAccountSummaryInput) (req *request.Request, output *GetAccountSummaryOutput) {
5171	op := &request.Operation{
5172		Name:       opGetAccountSummary,
5173		HTTPMethod: "POST",
5174		HTTPPath:   "/",
5175	}
5176
5177	if input == nil {
5178		input = &GetAccountSummaryInput{}
5179	}
5180
5181	output = &GetAccountSummaryOutput{}
5182	req = c.newRequest(op, input, output)
5183	return
5184}
5185
5186// GetAccountSummary API operation for AWS Identity and Access Management.
5187//
5188// Retrieves information about IAM entity usage and IAM quotas in the AWS account.
5189//
5190// For information about limitations on IAM entities, see Limitations on IAM
5191// Entities (http://docs.aws.amazon.com/IAM/latest/UserGuide/LimitationsOnEntities.html)
5192// in the IAM User Guide.
5193//
5194// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5195// with awserr.Error's Code and Message methods to get detailed information about
5196// the error.
5197//
5198// See the AWS API reference guide for AWS Identity and Access Management's
5199// API operation GetAccountSummary for usage and error information.
5200//
5201// Returned Error Codes:
5202//   * ErrCodeServiceFailureException "ServiceFailure"
5203//   The request processing has failed because of an unknown error, exception
5204//   or failure.
5205//
5206// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetAccountSummary
5207func (c *IAM) GetAccountSummary(input *GetAccountSummaryInput) (*GetAccountSummaryOutput, error) {
5208	req, out := c.GetAccountSummaryRequest(input)
5209	return out, req.Send()
5210}
5211
5212// GetAccountSummaryWithContext is the same as GetAccountSummary with the addition of
5213// the ability to pass a context and additional request options.
5214//
5215// See GetAccountSummary for details on how to use this API operation.
5216//
5217// The context must be non-nil and will be used for request cancellation. If
5218// the context is nil a panic will occur. In the future the SDK may create
5219// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5220// for more information on using Contexts.
5221func (c *IAM) GetAccountSummaryWithContext(ctx aws.Context, input *GetAccountSummaryInput, opts ...request.Option) (*GetAccountSummaryOutput, error) {
5222	req, out := c.GetAccountSummaryRequest(input)
5223	req.SetContext(ctx)
5224	req.ApplyOptions(opts...)
5225	return out, req.Send()
5226}
5227
5228const opGetContextKeysForCustomPolicy = "GetContextKeysForCustomPolicy"
5229
5230// GetContextKeysForCustomPolicyRequest generates a "aws/request.Request" representing the
5231// client's request for the GetContextKeysForCustomPolicy operation. The "output" return
5232// value will be populated with the request's response once the request complets
5233// successfuly.
5234//
5235// Use "Send" method on the returned Request to send the API call to the service.
5236// the "output" return value is not valid until after Send returns without error.
5237//
5238// See GetContextKeysForCustomPolicy for more information on using the GetContextKeysForCustomPolicy
5239// API call, and error handling.
5240//
5241// This method is useful when you want to inject custom logic or configuration
5242// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5243//
5244//
5245//    // Example sending a request using the GetContextKeysForCustomPolicyRequest method.
5246//    req, resp := client.GetContextKeysForCustomPolicyRequest(params)
5247//
5248//    err := req.Send()
5249//    if err == nil { // resp is now filled
5250//        fmt.Println(resp)
5251//    }
5252//
5253// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetContextKeysForCustomPolicy
5254func (c *IAM) GetContextKeysForCustomPolicyRequest(input *GetContextKeysForCustomPolicyInput) (req *request.Request, output *GetContextKeysForPolicyResponse) {
5255	op := &request.Operation{
5256		Name:       opGetContextKeysForCustomPolicy,
5257		HTTPMethod: "POST",
5258		HTTPPath:   "/",
5259	}
5260
5261	if input == nil {
5262		input = &GetContextKeysForCustomPolicyInput{}
5263	}
5264
5265	output = &GetContextKeysForPolicyResponse{}
5266	req = c.newRequest(op, input, output)
5267	return
5268}
5269
5270// GetContextKeysForCustomPolicy API operation for AWS Identity and Access Management.
5271//
5272// Gets a list of all of the context keys referenced in the input policies.
5273// The policies are supplied as a list of one or more strings. To get the context
5274// keys from policies associated with an IAM user, group, or role, use GetContextKeysForPrincipalPolicy.
5275//
5276// Context keys are variables maintained by AWS and its services that provide
5277// details about the context of an API query request, and can be evaluated by
5278// testing against a value specified in an IAM policy. Use GetContextKeysForCustomPolicy
5279// to understand what key names and values you must supply when you call SimulateCustomPolicy.
5280// Note that all parameters are shown in unencoded form here for clarity, but
5281// must be URL encoded to be included as a part of a real HTML request.
5282//
5283// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5284// with awserr.Error's Code and Message methods to get detailed information about
5285// the error.
5286//
5287// See the AWS API reference guide for AWS Identity and Access Management's
5288// API operation GetContextKeysForCustomPolicy for usage and error information.
5289//
5290// Returned Error Codes:
5291//   * ErrCodeInvalidInputException "InvalidInput"
5292//   The request was rejected because an invalid or out-of-range value was supplied
5293//   for an input parameter.
5294//
5295// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetContextKeysForCustomPolicy
5296func (c *IAM) GetContextKeysForCustomPolicy(input *GetContextKeysForCustomPolicyInput) (*GetContextKeysForPolicyResponse, error) {
5297	req, out := c.GetContextKeysForCustomPolicyRequest(input)
5298	return out, req.Send()
5299}
5300
5301// GetContextKeysForCustomPolicyWithContext is the same as GetContextKeysForCustomPolicy with the addition of
5302// the ability to pass a context and additional request options.
5303//
5304// See GetContextKeysForCustomPolicy for details on how to use this API operation.
5305//
5306// The context must be non-nil and will be used for request cancellation. If
5307// the context is nil a panic will occur. In the future the SDK may create
5308// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5309// for more information on using Contexts.
5310func (c *IAM) GetContextKeysForCustomPolicyWithContext(ctx aws.Context, input *GetContextKeysForCustomPolicyInput, opts ...request.Option) (*GetContextKeysForPolicyResponse, error) {
5311	req, out := c.GetContextKeysForCustomPolicyRequest(input)
5312	req.SetContext(ctx)
5313	req.ApplyOptions(opts...)
5314	return out, req.Send()
5315}
5316
5317const opGetContextKeysForPrincipalPolicy = "GetContextKeysForPrincipalPolicy"
5318
5319// GetContextKeysForPrincipalPolicyRequest generates a "aws/request.Request" representing the
5320// client's request for the GetContextKeysForPrincipalPolicy operation. The "output" return
5321// value will be populated with the request's response once the request complets
5322// successfuly.
5323//
5324// Use "Send" method on the returned Request to send the API call to the service.
5325// the "output" return value is not valid until after Send returns without error.
5326//
5327// See GetContextKeysForPrincipalPolicy for more information on using the GetContextKeysForPrincipalPolicy
5328// API call, and error handling.
5329//
5330// This method is useful when you want to inject custom logic or configuration
5331// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5332//
5333//
5334//    // Example sending a request using the GetContextKeysForPrincipalPolicyRequest method.
5335//    req, resp := client.GetContextKeysForPrincipalPolicyRequest(params)
5336//
5337//    err := req.Send()
5338//    if err == nil { // resp is now filled
5339//        fmt.Println(resp)
5340//    }
5341//
5342// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetContextKeysForPrincipalPolicy
5343func (c *IAM) GetContextKeysForPrincipalPolicyRequest(input *GetContextKeysForPrincipalPolicyInput) (req *request.Request, output *GetContextKeysForPolicyResponse) {
5344	op := &request.Operation{
5345		Name:       opGetContextKeysForPrincipalPolicy,
5346		HTTPMethod: "POST",
5347		HTTPPath:   "/",
5348	}
5349
5350	if input == nil {
5351		input = &GetContextKeysForPrincipalPolicyInput{}
5352	}
5353
5354	output = &GetContextKeysForPolicyResponse{}
5355	req = c.newRequest(op, input, output)
5356	return
5357}
5358
5359// GetContextKeysForPrincipalPolicy API operation for AWS Identity and Access Management.
5360//
5361// Gets a list of all of the context keys referenced in all of the IAM policies
5362// attached to the specified IAM entity. The entity can be an IAM user, group,
5363// or role. If you specify a user, then the request also includes all of the
5364// policies attached to groups that the user is a member of.
5365//
5366// You can optionally include a list of one or more additional policies, specified
5367// as strings. If you want to include only a list of policies by string, use
5368// GetContextKeysForCustomPolicy instead.
5369//
5370// Note: This API discloses information about the permissions granted to other
5371// users. If you do not want users to see other user's permissions, then consider
5372// allowing them to use GetContextKeysForCustomPolicy instead.
5373//
5374// Context keys are variables maintained by AWS and its services that provide
5375// details about the context of an API query request, and can be evaluated by
5376// testing against a value in an IAM policy. Use GetContextKeysForPrincipalPolicy
5377// to understand what key names and values you must supply when you call SimulatePrincipalPolicy.
5378//
5379// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5380// with awserr.Error's Code and Message methods to get detailed information about
5381// the error.
5382//
5383// See the AWS API reference guide for AWS Identity and Access Management's
5384// API operation GetContextKeysForPrincipalPolicy for usage and error information.
5385//
5386// Returned Error Codes:
5387//   * ErrCodeNoSuchEntityException "NoSuchEntity"
5388//   The request was rejected because it referenced an entity that does not exist.
5389//   The error message describes the entity.
5390//
5391//   * ErrCodeInvalidInputException "InvalidInput"
5392//   The request was rejected because an invalid or out-of-range value was supplied
5393//   for an input parameter.
5394//
5395// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetContextKeysForPrincipalPolicy
5396func (c *IAM) GetContextKeysForPrincipalPolicy(input *GetContextKeysForPrincipalPolicyInput) (*GetContextKeysForPolicyResponse, error) {
5397	req, out := c.GetContextKeysForPrincipalPolicyRequest(input)
5398	return out, req.Send()
5399}
5400
5401// GetContextKeysForPrincipalPolicyWithContext is the same as GetContextKeysForPrincipalPolicy with the addition of
5402// the ability to pass a context and additional request options.
5403//
5404// See GetContextKeysForPrincipalPolicy for details on how to use this API operation.
5405//
5406// The context must be non-nil and will be used for request cancellation. If
5407// the context is nil a panic will occur. In the future the SDK may create
5408// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5409// for more information on using Contexts.
5410func (c *IAM) GetContextKeysForPrincipalPolicyWithContext(ctx aws.Context, input *GetContextKeysForPrincipalPolicyInput, opts ...request.Option) (*GetContextKeysForPolicyResponse, error) {
5411	req, out := c.GetContextKeysForPrincipalPolicyRequest(input)
5412	req.SetContext(ctx)
5413	req.ApplyOptions(opts...)
5414	return out, req.Send()
5415}
5416
5417const opGetCredentialReport = "GetCredentialReport"
5418
5419// GetCredentialReportRequest generates a "aws/request.Request" representing the
5420// client's request for the GetCredentialReport operation. The "output" return
5421// value will be populated with the request's response once the request complets
5422// successfuly.
5423//
5424// Use "Send" method on the returned Request to send the API call to the service.
5425// the "output" return value is not valid until after Send returns without error.
5426//
5427// See GetCredentialReport for more information on using the GetCredentialReport
5428// API call, and error handling.
5429//
5430// This method is useful when you want to inject custom logic or configuration
5431// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5432//
5433//
5434//    // Example sending a request using the GetCredentialReportRequest method.
5435//    req, resp := client.GetCredentialReportRequest(params)
5436//
5437//    err := req.Send()
5438//    if err == nil { // resp is now filled
5439//        fmt.Println(resp)
5440//    }
5441//
5442// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetCredentialReport
5443func (c *IAM) GetCredentialReportRequest(input *GetCredentialReportInput) (req *request.Request, output *GetCredentialReportOutput) {
5444	op := &request.Operation{
5445		Name:       opGetCredentialReport,
5446		HTTPMethod: "POST",
5447		HTTPPath:   "/",
5448	}
5449
5450	if input == nil {
5451		input = &GetCredentialReportInput{}
5452	}
5453
5454	output = &GetCredentialReportOutput{}
5455	req = c.newRequest(op, input, output)
5456	return
5457}
5458
5459// GetCredentialReport API operation for AWS Identity and Access Management.
5460//
5461// Retrieves a credential report for the AWS account. For more information about
5462// the credential report, see Getting Credential Reports (http://docs.aws.amazon.com/IAM/latest/UserGuide/credential-reports.html)
5463// in the IAM User Guide.
5464//
5465// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5466// with awserr.Error's Code and Message methods to get detailed information about
5467// the error.
5468//
5469// See the AWS API reference guide for AWS Identity and Access Management's
5470// API operation GetCredentialReport for usage and error information.
5471//
5472// Returned Error Codes:
5473//   * ErrCodeCredentialReportNotPresentException "ReportNotPresent"
5474//   The request was rejected because the credential report does not exist. To
5475//   generate a credential report, use GenerateCredentialReport.
5476//
5477//   * ErrCodeCredentialReportExpiredException "ReportExpired"
5478//   The request was rejected because the most recent credential report has expired.
5479//   To generate a new credential report, use GenerateCredentialReport. For more
5480//   information about credential report expiration, see Getting Credential Reports
5481//   (http://docs.aws.amazon.com/IAM/latest/UserGuide/credential-reports.html)
5482//   in the IAM User Guide.
5483//
5484//   * ErrCodeCredentialReportNotReadyException "ReportInProgress"
5485//   The request was rejected because the credential report is still being generated.
5486//
5487//   * ErrCodeServiceFailureException "ServiceFailure"
5488//   The request processing has failed because of an unknown error, exception
5489//   or failure.
5490//
5491// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetCredentialReport
5492func (c *IAM) GetCredentialReport(input *GetCredentialReportInput) (*GetCredentialReportOutput, error) {
5493	req, out := c.GetCredentialReportRequest(input)
5494	return out, req.Send()
5495}
5496
5497// GetCredentialReportWithContext is the same as GetCredentialReport with the addition of
5498// the ability to pass a context and additional request options.
5499//
5500// See GetCredentialReport for details on how to use this API operation.
5501//
5502// The context must be non-nil and will be used for request cancellation. If
5503// the context is nil a panic will occur. In the future the SDK may create
5504// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5505// for more information on using Contexts.
5506func (c *IAM) GetCredentialReportWithContext(ctx aws.Context, input *GetCredentialReportInput, opts ...request.Option) (*GetCredentialReportOutput, error) {
5507	req, out := c.GetCredentialReportRequest(input)
5508	req.SetContext(ctx)
5509	req.ApplyOptions(opts...)
5510	return out, req.Send()
5511}
5512
5513const opGetGroup = "GetGroup"
5514
5515// GetGroupRequest generates a "aws/request.Request" representing the
5516// client's request for the GetGroup operation. The "output" return
5517// value will be populated with the request's response once the request complets
5518// successfuly.
5519//
5520// Use "Send" method on the returned Request to send the API call to the service.
5521// the "output" return value is not valid until after Send returns without error.
5522//
5523// See GetGroup for more information on using the GetGroup
5524// API call, and error handling.
5525//
5526// This method is useful when you want to inject custom logic or configuration
5527// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5528//
5529//
5530//    // Example sending a request using the GetGroupRequest method.
5531//    req, resp := client.GetGroupRequest(params)
5532//
5533//    err := req.Send()
5534//    if err == nil { // resp is now filled
5535//        fmt.Println(resp)
5536//    }
5537//
5538// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetGroup
5539func (c *IAM) GetGroupRequest(input *GetGroupInput) (req *request.Request, output *GetGroupOutput) {
5540	op := &request.Operation{
5541		Name:       opGetGroup,
5542		HTTPMethod: "POST",
5543		HTTPPath:   "/",
5544		Paginator: &request.Paginator{
5545			InputTokens:     []string{"Marker"},
5546			OutputTokens:    []string{"Marker"},
5547			LimitToken:      "MaxItems",
5548			TruncationToken: "IsTruncated",
5549		},
5550	}
5551
5552	if input == nil {
5553		input = &GetGroupInput{}
5554	}
5555
5556	output = &GetGroupOutput{}
5557	req = c.newRequest(op, input, output)
5558	return
5559}
5560
5561// GetGroup API operation for AWS Identity and Access Management.
5562//
5563// Returns a list of IAM users that are in the specified IAM group. You can
5564// paginate the results using the MaxItems and Marker parameters.
5565//
5566// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5567// with awserr.Error's Code and Message methods to get detailed information about
5568// the error.
5569//
5570// See the AWS API reference guide for AWS Identity and Access Management's
5571// API operation GetGroup for usage and error information.
5572//
5573// Returned Error Codes:
5574//   * ErrCodeNoSuchEntityException "NoSuchEntity"
5575//   The request was rejected because it referenced an entity that does not exist.
5576//   The error message describes the entity.
5577//
5578//   * ErrCodeServiceFailureException "ServiceFailure"
5579//   The request processing has failed because of an unknown error, exception
5580//   or failure.
5581//
5582// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetGroup
5583func (c *IAM) GetGroup(input *GetGroupInput) (*GetGroupOutput, error) {
5584	req, out := c.GetGroupRequest(input)
5585	return out, req.Send()
5586}
5587
5588// GetGroupWithContext is the same as GetGroup with the addition of
5589// the ability to pass a context and additional request options.
5590//
5591// See GetGroup for details on how to use this API operation.
5592//
5593// The context must be non-nil and will be used for request cancellation. If
5594// the context is nil a panic will occur. In the future the SDK may create
5595// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5596// for more information on using Contexts.
5597func (c *IAM) GetGroupWithContext(ctx aws.Context, input *GetGroupInput, opts ...request.Option) (*GetGroupOutput, error) {
5598	req, out := c.GetGroupRequest(input)
5599	req.SetContext(ctx)
5600	req.ApplyOptions(opts...)
5601	return out, req.Send()
5602}
5603
5604// GetGroupPages iterates over the pages of a GetGroup operation,
5605// calling the "fn" function with the response data for each page. To stop
5606// iterating, return false from the fn function.
5607//
5608// See GetGroup method for more information on how to use this operation.
5609//
5610// Note: This operation can generate multiple requests to a service.
5611//
5612//    // Example iterating over at most 3 pages of a GetGroup operation.
5613//    pageNum := 0
5614//    err := client.GetGroupPages(params,
5615//        func(page *GetGroupOutput, lastPage bool) bool {
5616//            pageNum++
5617//            fmt.Println(page)
5618//            return pageNum <= 3
5619//        })
5620//
5621func (c *IAM) GetGroupPages(input *GetGroupInput, fn func(*GetGroupOutput, bool) bool) error {
5622	return c.GetGroupPagesWithContext(aws.BackgroundContext(), input, fn)
5623}
5624
5625// GetGroupPagesWithContext same as GetGroupPages except
5626// it takes a Context and allows setting request options on the pages.
5627//
5628// The context must be non-nil and will be used for request cancellation. If
5629// the context is nil a panic will occur. In the future the SDK may create
5630// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5631// for more information on using Contexts.
5632func (c *IAM) GetGroupPagesWithContext(ctx aws.Context, input *GetGroupInput, fn func(*GetGroupOutput, bool) bool, opts ...request.Option) error {
5633	p := request.Pagination{
5634		NewRequest: func() (*request.Request, error) {
5635			var inCpy *GetGroupInput
5636			if input != nil {
5637				tmp := *input
5638				inCpy = &tmp
5639			}
5640			req, _ := c.GetGroupRequest(inCpy)
5641			req.SetContext(ctx)
5642			req.ApplyOptions(opts...)
5643			return req, nil
5644		},
5645	}
5646
5647	cont := true
5648	for p.Next() && cont {
5649		cont = fn(p.Page().(*GetGroupOutput), !p.HasNextPage())
5650	}
5651	return p.Err()
5652}
5653
5654const opGetGroupPolicy = "GetGroupPolicy"
5655
5656// GetGroupPolicyRequest generates a "aws/request.Request" representing the
5657// client's request for the GetGroupPolicy operation. The "output" return
5658// value will be populated with the request's response once the request complets
5659// successfuly.
5660//
5661// Use "Send" method on the returned Request to send the API call to the service.
5662// the "output" return value is not valid until after Send returns without error.
5663//
5664// See GetGroupPolicy for more information on using the GetGroupPolicy
5665// API call, and error handling.
5666//
5667// This method is useful when you want to inject custom logic or configuration
5668// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5669//
5670//
5671//    // Example sending a request using the GetGroupPolicyRequest method.
5672//    req, resp := client.GetGroupPolicyRequest(params)
5673//
5674//    err := req.Send()
5675//    if err == nil { // resp is now filled
5676//        fmt.Println(resp)
5677//    }
5678//
5679// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetGroupPolicy
5680func (c *IAM) GetGroupPolicyRequest(input *GetGroupPolicyInput) (req *request.Request, output *GetGroupPolicyOutput) {
5681	op := &request.Operation{
5682		Name:       opGetGroupPolicy,
5683		HTTPMethod: "POST",
5684		HTTPPath:   "/",
5685	}
5686
5687	if input == nil {
5688		input = &GetGroupPolicyInput{}
5689	}
5690
5691	output = &GetGroupPolicyOutput{}
5692	req = c.newRequest(op, input, output)
5693	return
5694}
5695
5696// GetGroupPolicy API operation for AWS Identity and Access Management.
5697//
5698// Retrieves the specified inline policy document that is embedded in the specified
5699// IAM group.
5700//
5701// Policies returned by this API are URL-encoded compliant with RFC 3986 (https://tools.ietf.org/html/rfc3986).
5702// You can use a URL decoding method to convert the policy back to plain JSON
5703// text. For example, if you use Java, you can use the decode method of the
5704// java.net.URLDecoder utility class in the Java SDK. Other languages and SDKs
5705// provide similar functionality.
5706//
5707// An IAM group can also have managed policies attached to it. To retrieve a
5708// managed policy document that is attached to a group, use GetPolicy to determine
5709// the policy's default version, then use GetPolicyVersion to retrieve the policy
5710// document.
5711//
5712// For more information about policies, see Managed Policies and Inline Policies
5713// (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
5714// in the IAM User Guide.
5715//
5716// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5717// with awserr.Error's Code and Message methods to get detailed information about
5718// the error.
5719//
5720// See the AWS API reference guide for AWS Identity and Access Management's
5721// API operation GetGroupPolicy for usage and error information.
5722//
5723// Returned Error Codes:
5724//   * ErrCodeNoSuchEntityException "NoSuchEntity"
5725//   The request was rejected because it referenced an entity that does not exist.
5726//   The error message describes the entity.
5727//
5728//   * ErrCodeServiceFailureException "ServiceFailure"
5729//   The request processing has failed because of an unknown error, exception
5730//   or failure.
5731//
5732// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetGroupPolicy
5733func (c *IAM) GetGroupPolicy(input *GetGroupPolicyInput) (*GetGroupPolicyOutput, error) {
5734	req, out := c.GetGroupPolicyRequest(input)
5735	return out, req.Send()
5736}
5737
5738// GetGroupPolicyWithContext is the same as GetGroupPolicy with the addition of
5739// the ability to pass a context and additional request options.
5740//
5741// See GetGroupPolicy for details on how to use this API operation.
5742//
5743// The context must be non-nil and will be used for request cancellation. If
5744// the context is nil a panic will occur. In the future the SDK may create
5745// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5746// for more information on using Contexts.
5747func (c *IAM) GetGroupPolicyWithContext(ctx aws.Context, input *GetGroupPolicyInput, opts ...request.Option) (*GetGroupPolicyOutput, error) {
5748	req, out := c.GetGroupPolicyRequest(input)
5749	req.SetContext(ctx)
5750	req.ApplyOptions(opts...)
5751	return out, req.Send()
5752}
5753
5754const opGetInstanceProfile = "GetInstanceProfile"
5755
5756// GetInstanceProfileRequest generates a "aws/request.Request" representing the
5757// client's request for the GetInstanceProfile operation. The "output" return
5758// value will be populated with the request's response once the request complets
5759// successfuly.
5760//
5761// Use "Send" method on the returned Request to send the API call to the service.
5762// the "output" return value is not valid until after Send returns without error.
5763//
5764// See GetInstanceProfile for more information on using the GetInstanceProfile
5765// API call, and error handling.
5766//
5767// This method is useful when you want to inject custom logic or configuration
5768// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5769//
5770//
5771//    // Example sending a request using the GetInstanceProfileRequest method.
5772//    req, resp := client.GetInstanceProfileRequest(params)
5773//
5774//    err := req.Send()
5775//    if err == nil { // resp is now filled
5776//        fmt.Println(resp)
5777//    }
5778//
5779// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetInstanceProfile
5780func (c *IAM) GetInstanceProfileRequest(input *GetInstanceProfileInput) (req *request.Request, output *GetInstanceProfileOutput) {
5781	op := &request.Operation{
5782		Name:       opGetInstanceProfile,
5783		HTTPMethod: "POST",
5784		HTTPPath:   "/",
5785	}
5786
5787	if input == nil {
5788		input = &GetInstanceProfileInput{}
5789	}
5790
5791	output = &GetInstanceProfileOutput{}
5792	req = c.newRequest(op, input, output)
5793	return
5794}
5795
5796// GetInstanceProfile API operation for AWS Identity and Access Management.
5797//
5798// Retrieves information about the specified instance profile, including the
5799// instance profile's path, GUID, ARN, and role. For more information about
5800// instance profiles, see About Instance Profiles (http://docs.aws.amazon.com/IAM/latest/UserGuide/AboutInstanceProfiles.html)
5801// in the IAM User Guide.
5802//
5803// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5804// with awserr.Error's Code and Message methods to get detailed information about
5805// the error.
5806//
5807// See the AWS API reference guide for AWS Identity and Access Management's
5808// API operation GetInstanceProfile for usage and error information.
5809//
5810// Returned Error Codes:
5811//   * ErrCodeNoSuchEntityException "NoSuchEntity"
5812//   The request was rejected because it referenced an entity that does not exist.
5813//   The error message describes the entity.
5814//
5815//   * ErrCodeServiceFailureException "ServiceFailure"
5816//   The request processing has failed because of an unknown error, exception
5817//   or failure.
5818//
5819// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetInstanceProfile
5820func (c *IAM) GetInstanceProfile(input *GetInstanceProfileInput) (*GetInstanceProfileOutput, error) {
5821	req, out := c.GetInstanceProfileRequest(input)
5822	return out, req.Send()
5823}
5824
5825// GetInstanceProfileWithContext is the same as GetInstanceProfile with the addition of
5826// the ability to pass a context and additional request options.
5827//
5828// See GetInstanceProfile for details on how to use this API operation.
5829//
5830// The context must be non-nil and will be used for request cancellation. If
5831// the context is nil a panic will occur. In the future the SDK may create
5832// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5833// for more information on using Contexts.
5834func (c *IAM) GetInstanceProfileWithContext(ctx aws.Context, input *GetInstanceProfileInput, opts ...request.Option) (*GetInstanceProfileOutput, error) {
5835	req, out := c.GetInstanceProfileRequest(input)
5836	req.SetContext(ctx)
5837	req.ApplyOptions(opts...)
5838	return out, req.Send()
5839}
5840
5841const opGetLoginProfile = "GetLoginProfile"
5842
5843// GetLoginProfileRequest generates a "aws/request.Request" representing the
5844// client's request for the GetLoginProfile operation. The "output" return
5845// value will be populated with the request's response once the request complets
5846// successfuly.
5847//
5848// Use "Send" method on the returned Request to send the API call to the service.
5849// the "output" return value is not valid until after Send returns without error.
5850//
5851// See GetLoginProfile for more information on using the GetLoginProfile
5852// API call, and error handling.
5853//
5854// This method is useful when you want to inject custom logic or configuration
5855// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5856//
5857//
5858//    // Example sending a request using the GetLoginProfileRequest method.
5859//    req, resp := client.GetLoginProfileRequest(params)
5860//
5861//    err := req.Send()
5862//    if err == nil { // resp is now filled
5863//        fmt.Println(resp)
5864//    }
5865//
5866// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetLoginProfile
5867func (c *IAM) GetLoginProfileRequest(input *GetLoginProfileInput) (req *request.Request, output *GetLoginProfileOutput) {
5868	op := &request.Operation{
5869		Name:       opGetLoginProfile,
5870		HTTPMethod: "POST",
5871		HTTPPath:   "/",
5872	}
5873
5874	if input == nil {
5875		input = &GetLoginProfileInput{}
5876	}
5877
5878	output = &GetLoginProfileOutput{}
5879	req = c.newRequest(op, input, output)
5880	return
5881}
5882
5883// GetLoginProfile API operation for AWS Identity and Access Management.
5884//
5885// Retrieves the user name and password-creation date for the specified IAM
5886// user. If the user has not been assigned a password, the action returns a
5887// 404 (NoSuchEntity) error.
5888//
5889// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5890// with awserr.Error's Code and Message methods to get detailed information about
5891// the error.
5892//
5893// See the AWS API reference guide for AWS Identity and Access Management's
5894// API operation GetLoginProfile for usage and error information.
5895//
5896// Returned Error Codes:
5897//   * ErrCodeNoSuchEntityException "NoSuchEntity"
5898//   The request was rejected because it referenced an entity that does not exist.
5899//   The error message describes the entity.
5900//
5901//   * ErrCodeServiceFailureException "ServiceFailure"
5902//   The request processing has failed because of an unknown error, exception
5903//   or failure.
5904//
5905// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetLoginProfile
5906func (c *IAM) GetLoginProfile(input *GetLoginProfileInput) (*GetLoginProfileOutput, error) {
5907	req, out := c.GetLoginProfileRequest(input)
5908	return out, req.Send()
5909}
5910
5911// GetLoginProfileWithContext is the same as GetLoginProfile with the addition of
5912// the ability to pass a context and additional request options.
5913//
5914// See GetLoginProfile for details on how to use this API operation.
5915//
5916// The context must be non-nil and will be used for request cancellation. If
5917// the context is nil a panic will occur. In the future the SDK may create
5918// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5919// for more information on using Contexts.
5920func (c *IAM) GetLoginProfileWithContext(ctx aws.Context, input *GetLoginProfileInput, opts ...request.Option) (*GetLoginProfileOutput, error) {
5921	req, out := c.GetLoginProfileRequest(input)
5922	req.SetContext(ctx)
5923	req.ApplyOptions(opts...)
5924	return out, req.Send()
5925}
5926
5927const opGetOpenIDConnectProvider = "GetOpenIDConnectProvider"
5928
5929// GetOpenIDConnectProviderRequest generates a "aws/request.Request" representing the
5930// client's request for the GetOpenIDConnectProvider operation. The "output" return
5931// value will be populated with the request's response once the request complets
5932// successfuly.
5933//
5934// Use "Send" method on the returned Request to send the API call to the service.
5935// the "output" return value is not valid until after Send returns without error.
5936//
5937// See GetOpenIDConnectProvider for more information on using the GetOpenIDConnectProvider
5938// API call, and error handling.
5939//
5940// This method is useful when you want to inject custom logic or configuration
5941// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5942//
5943//
5944//    // Example sending a request using the GetOpenIDConnectProviderRequest method.
5945//    req, resp := client.GetOpenIDConnectProviderRequest(params)
5946//
5947//    err := req.Send()
5948//    if err == nil { // resp is now filled
5949//        fmt.Println(resp)
5950//    }
5951//
5952// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetOpenIDConnectProvider
5953func (c *IAM) GetOpenIDConnectProviderRequest(input *GetOpenIDConnectProviderInput) (req *request.Request, output *GetOpenIDConnectProviderOutput) {
5954	op := &request.Operation{
5955		Name:       opGetOpenIDConnectProvider,
5956		HTTPMethod: "POST",
5957		HTTPPath:   "/",
5958	}
5959
5960	if input == nil {
5961		input = &GetOpenIDConnectProviderInput{}
5962	}
5963
5964	output = &GetOpenIDConnectProviderOutput{}
5965	req = c.newRequest(op, input, output)
5966	return
5967}
5968
5969// GetOpenIDConnectProvider API operation for AWS Identity and Access Management.
5970//
5971// Returns information about the specified OpenID Connect (OIDC) provider resource
5972// object in IAM.
5973//
5974// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5975// with awserr.Error's Code and Message methods to get detailed information about
5976// the error.
5977//
5978// See the AWS API reference guide for AWS Identity and Access Management's
5979// API operation GetOpenIDConnectProvider for usage and error information.
5980//
5981// Returned Error Codes:
5982//   * ErrCodeInvalidInputException "InvalidInput"
5983//   The request was rejected because an invalid or out-of-range value was supplied
5984//   for an input parameter.
5985//
5986//   * ErrCodeNoSuchEntityException "NoSuchEntity"
5987//   The request was rejected because it referenced an entity that does not exist.
5988//   The error message describes the entity.
5989//
5990//   * ErrCodeServiceFailureException "ServiceFailure"
5991//   The request processing has failed because of an unknown error, exception
5992//   or failure.
5993//
5994// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetOpenIDConnectProvider
5995func (c *IAM) GetOpenIDConnectProvider(input *GetOpenIDConnectProviderInput) (*GetOpenIDConnectProviderOutput, error) {
5996	req, out := c.GetOpenIDConnectProviderRequest(input)
5997	return out, req.Send()
5998}
5999
6000// GetOpenIDConnectProviderWithContext is the same as GetOpenIDConnectProvider with the addition of
6001// the ability to pass a context and additional request options.
6002//
6003// See GetOpenIDConnectProvider for details on how to use this API operation.
6004//
6005// The context must be non-nil and will be used for request cancellation. If
6006// the context is nil a panic will occur. In the future the SDK may create
6007// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6008// for more information on using Contexts.
6009func (c *IAM) GetOpenIDConnectProviderWithContext(ctx aws.Context, input *GetOpenIDConnectProviderInput, opts ...request.Option) (*GetOpenIDConnectProviderOutput, error) {
6010	req, out := c.GetOpenIDConnectProviderRequest(input)
6011	req.SetContext(ctx)
6012	req.ApplyOptions(opts...)
6013	return out, req.Send()
6014}
6015
6016const opGetPolicy = "GetPolicy"
6017
6018// GetPolicyRequest generates a "aws/request.Request" representing the
6019// client's request for the GetPolicy operation. The "output" return
6020// value will be populated with the request's response once the request complets
6021// successfuly.
6022//
6023// Use "Send" method on the returned Request to send the API call to the service.
6024// the "output" return value is not valid until after Send returns without error.
6025//
6026// See GetPolicy for more information on using the GetPolicy
6027// API call, and error handling.
6028//
6029// This method is useful when you want to inject custom logic or configuration
6030// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6031//
6032//
6033//    // Example sending a request using the GetPolicyRequest method.
6034//    req, resp := client.GetPolicyRequest(params)
6035//
6036//    err := req.Send()
6037//    if err == nil { // resp is now filled
6038//        fmt.Println(resp)
6039//    }
6040//
6041// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetPolicy
6042func (c *IAM) GetPolicyRequest(input *GetPolicyInput) (req *request.Request, output *GetPolicyOutput) {
6043	op := &request.Operation{
6044		Name:       opGetPolicy,
6045		HTTPMethod: "POST",
6046		HTTPPath:   "/",
6047	}
6048
6049	if input == nil {
6050		input = &GetPolicyInput{}
6051	}
6052
6053	output = &GetPolicyOutput{}
6054	req = c.newRequest(op, input, output)
6055	return
6056}
6057
6058// GetPolicy API operation for AWS Identity and Access Management.
6059//
6060// Retrieves information about the specified managed policy, including the policy's
6061// default version and the total number of IAM users, groups, and roles to which
6062// the policy is attached. To retrieve the list of the specific users, groups,
6063// and roles that the policy is attached to, use the ListEntitiesForPolicy API.
6064// This API returns metadata about the policy. To retrieve the actual policy
6065// document for a specific version of the policy, use GetPolicyVersion.
6066//
6067// This API retrieves information about managed policies. To retrieve information
6068// about an inline policy that is embedded with an IAM user, group, or role,
6069// use the GetUserPolicy, GetGroupPolicy, or GetRolePolicy API.
6070//
6071// For more information about policies, see Managed Policies and Inline Policies
6072// (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
6073// in the IAM User Guide.
6074//
6075// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6076// with awserr.Error's Code and Message methods to get detailed information about
6077// the error.
6078//
6079// See the AWS API reference guide for AWS Identity and Access Management's
6080// API operation GetPolicy for usage and error information.
6081//
6082// Returned Error Codes:
6083//   * ErrCodeNoSuchEntityException "NoSuchEntity"
6084//   The request was rejected because it referenced an entity that does not exist.
6085//   The error message describes the entity.
6086//
6087//   * ErrCodeInvalidInputException "InvalidInput"
6088//   The request was rejected because an invalid or out-of-range value was supplied
6089//   for an input parameter.
6090//
6091//   * ErrCodeServiceFailureException "ServiceFailure"
6092//   The request processing has failed because of an unknown error, exception
6093//   or failure.
6094//
6095// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetPolicy
6096func (c *IAM) GetPolicy(input *GetPolicyInput) (*GetPolicyOutput, error) {
6097	req, out := c.GetPolicyRequest(input)
6098	return out, req.Send()
6099}
6100
6101// GetPolicyWithContext is the same as GetPolicy with the addition of
6102// the ability to pass a context and additional request options.
6103//
6104// See GetPolicy for details on how to use this API operation.
6105//
6106// The context must be non-nil and will be used for request cancellation. If
6107// the context is nil a panic will occur. In the future the SDK may create
6108// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6109// for more information on using Contexts.
6110func (c *IAM) GetPolicyWithContext(ctx aws.Context, input *GetPolicyInput, opts ...request.Option) (*GetPolicyOutput, error) {
6111	req, out := c.GetPolicyRequest(input)
6112	req.SetContext(ctx)
6113	req.ApplyOptions(opts...)
6114	return out, req.Send()
6115}
6116
6117const opGetPolicyVersion = "GetPolicyVersion"
6118
6119// GetPolicyVersionRequest generates a "aws/request.Request" representing the
6120// client's request for the GetPolicyVersion operation. The "output" return
6121// value will be populated with the request's response once the request complets
6122// successfuly.
6123//
6124// Use "Send" method on the returned Request to send the API call to the service.
6125// the "output" return value is not valid until after Send returns without error.
6126//
6127// See GetPolicyVersion for more information on using the GetPolicyVersion
6128// API call, and error handling.
6129//
6130// This method is useful when you want to inject custom logic or configuration
6131// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6132//
6133//
6134//    // Example sending a request using the GetPolicyVersionRequest method.
6135//    req, resp := client.GetPolicyVersionRequest(params)
6136//
6137//    err := req.Send()
6138//    if err == nil { // resp is now filled
6139//        fmt.Println(resp)
6140//    }
6141//
6142// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetPolicyVersion
6143func (c *IAM) GetPolicyVersionRequest(input *GetPolicyVersionInput) (req *request.Request, output *GetPolicyVersionOutput) {
6144	op := &request.Operation{
6145		Name:       opGetPolicyVersion,
6146		HTTPMethod: "POST",
6147		HTTPPath:   "/",
6148	}
6149
6150	if input == nil {
6151		input = &GetPolicyVersionInput{}
6152	}
6153
6154	output = &GetPolicyVersionOutput{}
6155	req = c.newRequest(op, input, output)
6156	return
6157}
6158
6159// GetPolicyVersion API operation for AWS Identity and Access Management.
6160//
6161// Retrieves information about the specified version of the specified managed
6162// policy, including the policy document.
6163//
6164// Policies returned by this API are URL-encoded compliant with RFC 3986 (https://tools.ietf.org/html/rfc3986).
6165// You can use a URL decoding method to convert the policy back to plain JSON
6166// text. For example, if you use Java, you can use the decode method of the
6167// java.net.URLDecoder utility class in the Java SDK. Other languages and SDKs
6168// provide similar functionality.
6169//
6170// To list the available versions for a policy, use ListPolicyVersions.
6171//
6172// This API retrieves information about managed policies. To retrieve information
6173// about an inline policy that is embedded in a user, group, or role, use the
6174// GetUserPolicy, GetGroupPolicy, or GetRolePolicy API.
6175//
6176// For more information about the types of policies, see Managed Policies and
6177// Inline Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
6178// in the IAM User Guide.
6179//
6180// For more information about managed policy versions, see Versioning for Managed
6181// Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html)
6182// in the IAM User Guide.
6183//
6184// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6185// with awserr.Error's Code and Message methods to get detailed information about
6186// the error.
6187//
6188// See the AWS API reference guide for AWS Identity and Access Management's
6189// API operation GetPolicyVersion for usage and error information.
6190//
6191// Returned Error Codes:
6192//   * ErrCodeNoSuchEntityException "NoSuchEntity"
6193//   The request was rejected because it referenced an entity that does not exist.
6194//   The error message describes the entity.
6195//
6196//   * ErrCodeInvalidInputException "InvalidInput"
6197//   The request was rejected because an invalid or out-of-range value was supplied
6198//   for an input parameter.
6199//
6200//   * ErrCodeServiceFailureException "ServiceFailure"
6201//   The request processing has failed because of an unknown error, exception
6202//   or failure.
6203//
6204// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetPolicyVersion
6205func (c *IAM) GetPolicyVersion(input *GetPolicyVersionInput) (*GetPolicyVersionOutput, error) {
6206	req, out := c.GetPolicyVersionRequest(input)
6207	return out, req.Send()
6208}
6209
6210// GetPolicyVersionWithContext is the same as GetPolicyVersion with the addition of
6211// the ability to pass a context and additional request options.
6212//
6213// See GetPolicyVersion for details on how to use this API operation.
6214//
6215// The context must be non-nil and will be used for request cancellation. If
6216// the context is nil a panic will occur. In the future the SDK may create
6217// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6218// for more information on using Contexts.
6219func (c *IAM) GetPolicyVersionWithContext(ctx aws.Context, input *GetPolicyVersionInput, opts ...request.Option) (*GetPolicyVersionOutput, error) {
6220	req, out := c.GetPolicyVersionRequest(input)
6221	req.SetContext(ctx)
6222	req.ApplyOptions(opts...)
6223	return out, req.Send()
6224}
6225
6226const opGetRole = "GetRole"
6227
6228// GetRoleRequest generates a "aws/request.Request" representing the
6229// client's request for the GetRole operation. The "output" return
6230// value will be populated with the request's response once the request complets
6231// successfuly.
6232//
6233// Use "Send" method on the returned Request to send the API call to the service.
6234// the "output" return value is not valid until after Send returns without error.
6235//
6236// See GetRole for more information on using the GetRole
6237// API call, and error handling.
6238//
6239// This method is useful when you want to inject custom logic or configuration
6240// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6241//
6242//
6243//    // Example sending a request using the GetRoleRequest method.
6244//    req, resp := client.GetRoleRequest(params)
6245//
6246//    err := req.Send()
6247//    if err == nil { // resp is now filled
6248//        fmt.Println(resp)
6249//    }
6250//
6251// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetRole
6252func (c *IAM) GetRoleRequest(input *GetRoleInput) (req *request.Request, output *GetRoleOutput) {
6253	op := &request.Operation{
6254		Name:       opGetRole,
6255		HTTPMethod: "POST",
6256		HTTPPath:   "/",
6257	}
6258
6259	if input == nil {
6260		input = &GetRoleInput{}
6261	}
6262
6263	output = &GetRoleOutput{}
6264	req = c.newRequest(op, input, output)
6265	return
6266}
6267
6268// GetRole API operation for AWS Identity and Access Management.
6269//
6270// Retrieves information about the specified role, including the role's path,
6271// GUID, ARN, and the role's trust policy that grants permission to assume the
6272// role. For more information about roles, see Working with Roles (http://docs.aws.amazon.com/IAM/latest/UserGuide/WorkingWithRoles.html).
6273//
6274// Policies returned by this API are URL-encoded compliant with RFC 3986 (https://tools.ietf.org/html/rfc3986).
6275// You can use a URL decoding method to convert the policy back to plain JSON
6276// text. For example, if you use Java, you can use the decode method of the
6277// java.net.URLDecoder utility class in the Java SDK. Other languages and SDKs
6278// provide similar functionality.
6279//
6280// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6281// with awserr.Error's Code and Message methods to get detailed information about
6282// the error.
6283//
6284// See the AWS API reference guide for AWS Identity and Access Management's
6285// API operation GetRole for usage and error information.
6286//
6287// Returned Error Codes:
6288//   * ErrCodeNoSuchEntityException "NoSuchEntity"
6289//   The request was rejected because it referenced an entity that does not exist.
6290//   The error message describes the entity.
6291//
6292//   * ErrCodeServiceFailureException "ServiceFailure"
6293//   The request processing has failed because of an unknown error, exception
6294//   or failure.
6295//
6296// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetRole
6297func (c *IAM) GetRole(input *GetRoleInput) (*GetRoleOutput, error) {
6298	req, out := c.GetRoleRequest(input)
6299	return out, req.Send()
6300}
6301
6302// GetRoleWithContext is the same as GetRole with the addition of
6303// the ability to pass a context and additional request options.
6304//
6305// See GetRole for details on how to use this API operation.
6306//
6307// The context must be non-nil and will be used for request cancellation. If
6308// the context is nil a panic will occur. In the future the SDK may create
6309// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6310// for more information on using Contexts.
6311func (c *IAM) GetRoleWithContext(ctx aws.Context, input *GetRoleInput, opts ...request.Option) (*GetRoleOutput, error) {
6312	req, out := c.GetRoleRequest(input)
6313	req.SetContext(ctx)
6314	req.ApplyOptions(opts...)
6315	return out, req.Send()
6316}
6317
6318const opGetRolePolicy = "GetRolePolicy"
6319
6320// GetRolePolicyRequest generates a "aws/request.Request" representing the
6321// client's request for the GetRolePolicy operation. The "output" return
6322// value will be populated with the request's response once the request complets
6323// successfuly.
6324//
6325// Use "Send" method on the returned Request to send the API call to the service.
6326// the "output" return value is not valid until after Send returns without error.
6327//
6328// See GetRolePolicy for more information on using the GetRolePolicy
6329// API call, and error handling.
6330//
6331// This method is useful when you want to inject custom logic or configuration
6332// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6333//
6334//
6335//    // Example sending a request using the GetRolePolicyRequest method.
6336//    req, resp := client.GetRolePolicyRequest(params)
6337//
6338//    err := req.Send()
6339//    if err == nil { // resp is now filled
6340//        fmt.Println(resp)
6341//    }
6342//
6343// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetRolePolicy
6344func (c *IAM) GetRolePolicyRequest(input *GetRolePolicyInput) (req *request.Request, output *GetRolePolicyOutput) {
6345	op := &request.Operation{
6346		Name:       opGetRolePolicy,
6347		HTTPMethod: "POST",
6348		HTTPPath:   "/",
6349	}
6350
6351	if input == nil {
6352		input = &GetRolePolicyInput{}
6353	}
6354
6355	output = &GetRolePolicyOutput{}
6356	req = c.newRequest(op, input, output)
6357	return
6358}
6359
6360// GetRolePolicy API operation for AWS Identity and Access Management.
6361//
6362// Retrieves the specified inline policy document that is embedded with the
6363// specified IAM role.
6364//
6365// Policies returned by this API are URL-encoded compliant with RFC 3986 (https://tools.ietf.org/html/rfc3986).
6366// You can use a URL decoding method to convert the policy back to plain JSON
6367// text. For example, if you use Java, you can use the decode method of the
6368// java.net.URLDecoder utility class in the Java SDK. Other languages and SDKs
6369// provide similar functionality.
6370//
6371// An IAM role can also have managed policies attached to it. To retrieve a
6372// managed policy document that is attached to a role, use GetPolicy to determine
6373// the policy's default version, then use GetPolicyVersion to retrieve the policy
6374// document.
6375//
6376// For more information about policies, see Managed Policies and Inline Policies
6377// (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
6378// in the IAM User Guide.
6379//
6380// For more information about roles, see Using Roles to Delegate Permissions
6381// and Federate Identities (http://docs.aws.amazon.com/IAM/latest/UserGuide/roles-toplevel.html).
6382//
6383// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6384// with awserr.Error's Code and Message methods to get detailed information about
6385// the error.
6386//
6387// See the AWS API reference guide for AWS Identity and Access Management's
6388// API operation GetRolePolicy for usage and error information.
6389//
6390// Returned Error Codes:
6391//   * ErrCodeNoSuchEntityException "NoSuchEntity"
6392//   The request was rejected because it referenced an entity that does not exist.
6393//   The error message describes the entity.
6394//
6395//   * ErrCodeServiceFailureException "ServiceFailure"
6396//   The request processing has failed because of an unknown error, exception
6397//   or failure.
6398//
6399// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetRolePolicy
6400func (c *IAM) GetRolePolicy(input *GetRolePolicyInput) (*GetRolePolicyOutput, error) {
6401	req, out := c.GetRolePolicyRequest(input)
6402	return out, req.Send()
6403}
6404
6405// GetRolePolicyWithContext is the same as GetRolePolicy with the addition of
6406// the ability to pass a context and additional request options.
6407//
6408// See GetRolePolicy for details on how to use this API operation.
6409//
6410// The context must be non-nil and will be used for request cancellation. If
6411// the context is nil a panic will occur. In the future the SDK may create
6412// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6413// for more information on using Contexts.
6414func (c *IAM) GetRolePolicyWithContext(ctx aws.Context, input *GetRolePolicyInput, opts ...request.Option) (*GetRolePolicyOutput, error) {
6415	req, out := c.GetRolePolicyRequest(input)
6416	req.SetContext(ctx)
6417	req.ApplyOptions(opts...)
6418	return out, req.Send()
6419}
6420
6421const opGetSAMLProvider = "GetSAMLProvider"
6422
6423// GetSAMLProviderRequest generates a "aws/request.Request" representing the
6424// client's request for the GetSAMLProvider operation. The "output" return
6425// value will be populated with the request's response once the request complets
6426// successfuly.
6427//
6428// Use "Send" method on the returned Request to send the API call to the service.
6429// the "output" return value is not valid until after Send returns without error.
6430//
6431// See GetSAMLProvider for more information on using the GetSAMLProvider
6432// API call, and error handling.
6433//
6434// This method is useful when you want to inject custom logic or configuration
6435// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6436//
6437//
6438//    // Example sending a request using the GetSAMLProviderRequest method.
6439//    req, resp := client.GetSAMLProviderRequest(params)
6440//
6441//    err := req.Send()
6442//    if err == nil { // resp is now filled
6443//        fmt.Println(resp)
6444//    }
6445//
6446// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetSAMLProvider
6447func (c *IAM) GetSAMLProviderRequest(input *GetSAMLProviderInput) (req *request.Request, output *GetSAMLProviderOutput) {
6448	op := &request.Operation{
6449		Name:       opGetSAMLProvider,
6450		HTTPMethod: "POST",
6451		HTTPPath:   "/",
6452	}
6453
6454	if input == nil {
6455		input = &GetSAMLProviderInput{}
6456	}
6457
6458	output = &GetSAMLProviderOutput{}
6459	req = c.newRequest(op, input, output)
6460	return
6461}
6462
6463// GetSAMLProvider API operation for AWS Identity and Access Management.
6464//
6465// Returns the SAML provider metadocument that was uploaded when the IAM SAML
6466// provider resource object was created or updated.
6467//
6468// This operation requires Signature Version 4 (http://docs.aws.amazon.com/general/latest/gr/signature-version-4.html).
6469//
6470// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6471// with awserr.Error's Code and Message methods to get detailed information about
6472// the error.
6473//
6474// See the AWS API reference guide for AWS Identity and Access Management's
6475// API operation GetSAMLProvider for usage and error information.
6476//
6477// Returned Error Codes:
6478//   * ErrCodeNoSuchEntityException "NoSuchEntity"
6479//   The request was rejected because it referenced an entity that does not exist.
6480//   The error message describes the entity.
6481//
6482//   * ErrCodeInvalidInputException "InvalidInput"
6483//   The request was rejected because an invalid or out-of-range value was supplied
6484//   for an input parameter.
6485//
6486//   * ErrCodeServiceFailureException "ServiceFailure"
6487//   The request processing has failed because of an unknown error, exception
6488//   or failure.
6489//
6490// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetSAMLProvider
6491func (c *IAM) GetSAMLProvider(input *GetSAMLProviderInput) (*GetSAMLProviderOutput, error) {
6492	req, out := c.GetSAMLProviderRequest(input)
6493	return out, req.Send()
6494}
6495
6496// GetSAMLProviderWithContext is the same as GetSAMLProvider with the addition of
6497// the ability to pass a context and additional request options.
6498//
6499// See GetSAMLProvider for details on how to use this API operation.
6500//
6501// The context must be non-nil and will be used for request cancellation. If
6502// the context is nil a panic will occur. In the future the SDK may create
6503// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6504// for more information on using Contexts.
6505func (c *IAM) GetSAMLProviderWithContext(ctx aws.Context, input *GetSAMLProviderInput, opts ...request.Option) (*GetSAMLProviderOutput, error) {
6506	req, out := c.GetSAMLProviderRequest(input)
6507	req.SetContext(ctx)
6508	req.ApplyOptions(opts...)
6509	return out, req.Send()
6510}
6511
6512const opGetSSHPublicKey = "GetSSHPublicKey"
6513
6514// GetSSHPublicKeyRequest generates a "aws/request.Request" representing the
6515// client's request for the GetSSHPublicKey operation. The "output" return
6516// value will be populated with the request's response once the request complets
6517// successfuly.
6518//
6519// Use "Send" method on the returned Request to send the API call to the service.
6520// the "output" return value is not valid until after Send returns without error.
6521//
6522// See GetSSHPublicKey for more information on using the GetSSHPublicKey
6523// API call, and error handling.
6524//
6525// This method is useful when you want to inject custom logic or configuration
6526// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6527//
6528//
6529//    // Example sending a request using the GetSSHPublicKeyRequest method.
6530//    req, resp := client.GetSSHPublicKeyRequest(params)
6531//
6532//    err := req.Send()
6533//    if err == nil { // resp is now filled
6534//        fmt.Println(resp)
6535//    }
6536//
6537// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetSSHPublicKey
6538func (c *IAM) GetSSHPublicKeyRequest(input *GetSSHPublicKeyInput) (req *request.Request, output *GetSSHPublicKeyOutput) {
6539	op := &request.Operation{
6540		Name:       opGetSSHPublicKey,
6541		HTTPMethod: "POST",
6542		HTTPPath:   "/",
6543	}
6544
6545	if input == nil {
6546		input = &GetSSHPublicKeyInput{}
6547	}
6548
6549	output = &GetSSHPublicKeyOutput{}
6550	req = c.newRequest(op, input, output)
6551	return
6552}
6553
6554// GetSSHPublicKey API operation for AWS Identity and Access Management.
6555//
6556// Retrieves the specified SSH public key, including metadata about the key.
6557//
6558// The SSH public key retrieved by this action is used only for authenticating
6559// the associated IAM user to an AWS CodeCommit repository. For more information
6560// about using SSH keys to authenticate to an AWS CodeCommit repository, see
6561// Set up AWS CodeCommit for SSH Connections (http://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-credentials-ssh.html)
6562// in the AWS CodeCommit User Guide.
6563//
6564// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6565// with awserr.Error's Code and Message methods to get detailed information about
6566// the error.
6567//
6568// See the AWS API reference guide for AWS Identity and Access Management's
6569// API operation GetSSHPublicKey for usage and error information.
6570//
6571// Returned Error Codes:
6572//   * ErrCodeNoSuchEntityException "NoSuchEntity"
6573//   The request was rejected because it referenced an entity that does not exist.
6574//   The error message describes the entity.
6575//
6576//   * ErrCodeUnrecognizedPublicKeyEncodingException "UnrecognizedPublicKeyEncoding"
6577//   The request was rejected because the public key encoding format is unsupported
6578//   or unrecognized.
6579//
6580// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetSSHPublicKey
6581func (c *IAM) GetSSHPublicKey(input *GetSSHPublicKeyInput) (*GetSSHPublicKeyOutput, error) {
6582	req, out := c.GetSSHPublicKeyRequest(input)
6583	return out, req.Send()
6584}
6585
6586// GetSSHPublicKeyWithContext is the same as GetSSHPublicKey with the addition of
6587// the ability to pass a context and additional request options.
6588//
6589// See GetSSHPublicKey for details on how to use this API operation.
6590//
6591// The context must be non-nil and will be used for request cancellation. If
6592// the context is nil a panic will occur. In the future the SDK may create
6593// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6594// for more information on using Contexts.
6595func (c *IAM) GetSSHPublicKeyWithContext(ctx aws.Context, input *GetSSHPublicKeyInput, opts ...request.Option) (*GetSSHPublicKeyOutput, error) {
6596	req, out := c.GetSSHPublicKeyRequest(input)
6597	req.SetContext(ctx)
6598	req.ApplyOptions(opts...)
6599	return out, req.Send()
6600}
6601
6602const opGetServerCertificate = "GetServerCertificate"
6603
6604// GetServerCertificateRequest generates a "aws/request.Request" representing the
6605// client's request for the GetServerCertificate operation. The "output" return
6606// value will be populated with the request's response once the request complets
6607// successfuly.
6608//
6609// Use "Send" method on the returned Request to send the API call to the service.
6610// the "output" return value is not valid until after Send returns without error.
6611//
6612// See GetServerCertificate for more information on using the GetServerCertificate
6613// API call, and error handling.
6614//
6615// This method is useful when you want to inject custom logic or configuration
6616// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6617//
6618//
6619//    // Example sending a request using the GetServerCertificateRequest method.
6620//    req, resp := client.GetServerCertificateRequest(params)
6621//
6622//    err := req.Send()
6623//    if err == nil { // resp is now filled
6624//        fmt.Println(resp)
6625//    }
6626//
6627// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetServerCertificate
6628func (c *IAM) GetServerCertificateRequest(input *GetServerCertificateInput) (req *request.Request, output *GetServerCertificateOutput) {
6629	op := &request.Operation{
6630		Name:       opGetServerCertificate,
6631		HTTPMethod: "POST",
6632		HTTPPath:   "/",
6633	}
6634
6635	if input == nil {
6636		input = &GetServerCertificateInput{}
6637	}
6638
6639	output = &GetServerCertificateOutput{}
6640	req = c.newRequest(op, input, output)
6641	return
6642}
6643
6644// GetServerCertificate API operation for AWS Identity and Access Management.
6645//
6646// Retrieves information about the specified server certificate stored in IAM.
6647//
6648// For more information about working with server certificates, including a
6649// list of AWS services that can use the server certificates that you manage
6650// with IAM, go to Working with Server Certificates (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html)
6651// in the IAM User Guide.
6652//
6653// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6654// with awserr.Error's Code and Message methods to get detailed information about
6655// the error.
6656//
6657// See the AWS API reference guide for AWS Identity and Access Management's
6658// API operation GetServerCertificate for usage and error information.
6659//
6660// Returned Error Codes:
6661//   * ErrCodeNoSuchEntityException "NoSuchEntity"
6662//   The request was rejected because it referenced an entity that does not exist.
6663//   The error message describes the entity.
6664//
6665//   * ErrCodeServiceFailureException "ServiceFailure"
6666//   The request processing has failed because of an unknown error, exception
6667//   or failure.
6668//
6669// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetServerCertificate
6670func (c *IAM) GetServerCertificate(input *GetServerCertificateInput) (*GetServerCertificateOutput, error) {
6671	req, out := c.GetServerCertificateRequest(input)
6672	return out, req.Send()
6673}
6674
6675// GetServerCertificateWithContext is the same as GetServerCertificate with the addition of
6676// the ability to pass a context and additional request options.
6677//
6678// See GetServerCertificate for details on how to use this API operation.
6679//
6680// The context must be non-nil and will be used for request cancellation. If
6681// the context is nil a panic will occur. In the future the SDK may create
6682// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6683// for more information on using Contexts.
6684func (c *IAM) GetServerCertificateWithContext(ctx aws.Context, input *GetServerCertificateInput, opts ...request.Option) (*GetServerCertificateOutput, error) {
6685	req, out := c.GetServerCertificateRequest(input)
6686	req.SetContext(ctx)
6687	req.ApplyOptions(opts...)
6688	return out, req.Send()
6689}
6690
6691const opGetServiceLinkedRoleDeletionStatus = "GetServiceLinkedRoleDeletionStatus"
6692
6693// GetServiceLinkedRoleDeletionStatusRequest generates a "aws/request.Request" representing the
6694// client's request for the GetServiceLinkedRoleDeletionStatus operation. The "output" return
6695// value will be populated with the request's response once the request complets
6696// successfuly.
6697//
6698// Use "Send" method on the returned Request to send the API call to the service.
6699// the "output" return value is not valid until after Send returns without error.
6700//
6701// See GetServiceLinkedRoleDeletionStatus for more information on using the GetServiceLinkedRoleDeletionStatus
6702// API call, and error handling.
6703//
6704// This method is useful when you want to inject custom logic or configuration
6705// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6706//
6707//
6708//    // Example sending a request using the GetServiceLinkedRoleDeletionStatusRequest method.
6709//    req, resp := client.GetServiceLinkedRoleDeletionStatusRequest(params)
6710//
6711//    err := req.Send()
6712//    if err == nil { // resp is now filled
6713//        fmt.Println(resp)
6714//    }
6715//
6716// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetServiceLinkedRoleDeletionStatus
6717func (c *IAM) GetServiceLinkedRoleDeletionStatusRequest(input *GetServiceLinkedRoleDeletionStatusInput) (req *request.Request, output *GetServiceLinkedRoleDeletionStatusOutput) {
6718	op := &request.Operation{
6719		Name:       opGetServiceLinkedRoleDeletionStatus,
6720		HTTPMethod: "POST",
6721		HTTPPath:   "/",
6722	}
6723
6724	if input == nil {
6725		input = &GetServiceLinkedRoleDeletionStatusInput{}
6726	}
6727
6728	output = &GetServiceLinkedRoleDeletionStatusOutput{}
6729	req = c.newRequest(op, input, output)
6730	return
6731}
6732
6733// GetServiceLinkedRoleDeletionStatus API operation for AWS Identity and Access Management.
6734//
6735// Retrieves the status of your service-linked role deletion. After you use
6736// the DeleteServiceLinkedRole API operation to submit a service-linked role
6737// for deletion, you can use the DeletionTaskId parameter in GetServiceLinkedRoleDeletionStatus
6738// to check the status of the deletion. If the deletion fails, this operation
6739// returns the reason that it failed.
6740//
6741// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6742// with awserr.Error's Code and Message methods to get detailed information about
6743// the error.
6744//
6745// See the AWS API reference guide for AWS Identity and Access Management's
6746// API operation GetServiceLinkedRoleDeletionStatus for usage and error information.
6747//
6748// Returned Error Codes:
6749//   * ErrCodeNoSuchEntityException "NoSuchEntity"
6750//   The request was rejected because it referenced an entity that does not exist.
6751//   The error message describes the entity.
6752//
6753//   * ErrCodeInvalidInputException "InvalidInput"
6754//   The request was rejected because an invalid or out-of-range value was supplied
6755//   for an input parameter.
6756//
6757//   * ErrCodeServiceFailureException "ServiceFailure"
6758//   The request processing has failed because of an unknown error, exception
6759//   or failure.
6760//
6761// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetServiceLinkedRoleDeletionStatus
6762func (c *IAM) GetServiceLinkedRoleDeletionStatus(input *GetServiceLinkedRoleDeletionStatusInput) (*GetServiceLinkedRoleDeletionStatusOutput, error) {
6763	req, out := c.GetServiceLinkedRoleDeletionStatusRequest(input)
6764	return out, req.Send()
6765}
6766
6767// GetServiceLinkedRoleDeletionStatusWithContext is the same as GetServiceLinkedRoleDeletionStatus with the addition of
6768// the ability to pass a context and additional request options.
6769//
6770// See GetServiceLinkedRoleDeletionStatus for details on how to use this API operation.
6771//
6772// The context must be non-nil and will be used for request cancellation. If
6773// the context is nil a panic will occur. In the future the SDK may create
6774// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6775// for more information on using Contexts.
6776func (c *IAM) GetServiceLinkedRoleDeletionStatusWithContext(ctx aws.Context, input *GetServiceLinkedRoleDeletionStatusInput, opts ...request.Option) (*GetServiceLinkedRoleDeletionStatusOutput, error) {
6777	req, out := c.GetServiceLinkedRoleDeletionStatusRequest(input)
6778	req.SetContext(ctx)
6779	req.ApplyOptions(opts...)
6780	return out, req.Send()
6781}
6782
6783const opGetUser = "GetUser"
6784
6785// GetUserRequest generates a "aws/request.Request" representing the
6786// client's request for the GetUser operation. The "output" return
6787// value will be populated with the request's response once the request complets
6788// successfuly.
6789//
6790// Use "Send" method on the returned Request to send the API call to the service.
6791// the "output" return value is not valid until after Send returns without error.
6792//
6793// See GetUser for more information on using the GetUser
6794// API call, and error handling.
6795//
6796// This method is useful when you want to inject custom logic or configuration
6797// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6798//
6799//
6800//    // Example sending a request using the GetUserRequest method.
6801//    req, resp := client.GetUserRequest(params)
6802//
6803//    err := req.Send()
6804//    if err == nil { // resp is now filled
6805//        fmt.Println(resp)
6806//    }
6807//
6808// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetUser
6809func (c *IAM) GetUserRequest(input *GetUserInput) (req *request.Request, output *GetUserOutput) {
6810	op := &request.Operation{
6811		Name:       opGetUser,
6812		HTTPMethod: "POST",
6813		HTTPPath:   "/",
6814	}
6815
6816	if input == nil {
6817		input = &GetUserInput{}
6818	}
6819
6820	output = &GetUserOutput{}
6821	req = c.newRequest(op, input, output)
6822	return
6823}
6824
6825// GetUser API operation for AWS Identity and Access Management.
6826//
6827// Retrieves information about the specified IAM user, including the user's
6828// creation date, path, unique ID, and ARN.
6829//
6830// If you do not specify a user name, IAM determines the user name implicitly
6831// based on the AWS access key ID used to sign the request to this API.
6832//
6833// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6834// with awserr.Error's Code and Message methods to get detailed information about
6835// the error.
6836//
6837// See the AWS API reference guide for AWS Identity and Access Management's
6838// API operation GetUser for usage and error information.
6839//
6840// Returned Error Codes:
6841//   * ErrCodeNoSuchEntityException "NoSuchEntity"
6842//   The request was rejected because it referenced an entity that does not exist.
6843//   The error message describes the entity.
6844//
6845//   * ErrCodeServiceFailureException "ServiceFailure"
6846//   The request processing has failed because of an unknown error, exception
6847//   or failure.
6848//
6849// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetUser
6850func (c *IAM) GetUser(input *GetUserInput) (*GetUserOutput, error) {
6851	req, out := c.GetUserRequest(input)
6852	return out, req.Send()
6853}
6854
6855// GetUserWithContext is the same as GetUser with the addition of
6856// the ability to pass a context and additional request options.
6857//
6858// See GetUser for details on how to use this API operation.
6859//
6860// The context must be non-nil and will be used for request cancellation. If
6861// the context is nil a panic will occur. In the future the SDK may create
6862// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6863// for more information on using Contexts.
6864func (c *IAM) GetUserWithContext(ctx aws.Context, input *GetUserInput, opts ...request.Option) (*GetUserOutput, error) {
6865	req, out := c.GetUserRequest(input)
6866	req.SetContext(ctx)
6867	req.ApplyOptions(opts...)
6868	return out, req.Send()
6869}
6870
6871const opGetUserPolicy = "GetUserPolicy"
6872
6873// GetUserPolicyRequest generates a "aws/request.Request" representing the
6874// client's request for the GetUserPolicy operation. The "output" return
6875// value will be populated with the request's response once the request complets
6876// successfuly.
6877//
6878// Use "Send" method on the returned Request to send the API call to the service.
6879// the "output" return value is not valid until after Send returns without error.
6880//
6881// See GetUserPolicy for more information on using the GetUserPolicy
6882// API call, and error handling.
6883//
6884// This method is useful when you want to inject custom logic or configuration
6885// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6886//
6887//
6888//    // Example sending a request using the GetUserPolicyRequest method.
6889//    req, resp := client.GetUserPolicyRequest(params)
6890//
6891//    err := req.Send()
6892//    if err == nil { // resp is now filled
6893//        fmt.Println(resp)
6894//    }
6895//
6896// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetUserPolicy
6897func (c *IAM) GetUserPolicyRequest(input *GetUserPolicyInput) (req *request.Request, output *GetUserPolicyOutput) {
6898	op := &request.Operation{
6899		Name:       opGetUserPolicy,
6900		HTTPMethod: "POST",
6901		HTTPPath:   "/",
6902	}
6903
6904	if input == nil {
6905		input = &GetUserPolicyInput{}
6906	}
6907
6908	output = &GetUserPolicyOutput{}
6909	req = c.newRequest(op, input, output)
6910	return
6911}
6912
6913// GetUserPolicy API operation for AWS Identity and Access Management.
6914//
6915// Retrieves the specified inline policy document that is embedded in the specified
6916// IAM user.
6917//
6918// Policies returned by this API are URL-encoded compliant with RFC 3986 (https://tools.ietf.org/html/rfc3986).
6919// You can use a URL decoding method to convert the policy back to plain JSON
6920// text. For example, if you use Java, you can use the decode method of the
6921// java.net.URLDecoder utility class in the Java SDK. Other languages and SDKs
6922// provide similar functionality.
6923//
6924// An IAM user can also have managed policies attached to it. To retrieve a
6925// managed policy document that is attached to a user, use GetPolicy to determine
6926// the policy's default version, then use GetPolicyVersion to retrieve the policy
6927// document.
6928//
6929// For more information about policies, see Managed Policies and Inline Policies
6930// (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
6931// in the IAM User Guide.
6932//
6933// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6934// with awserr.Error's Code and Message methods to get detailed information about
6935// the error.
6936//
6937// See the AWS API reference guide for AWS Identity and Access Management's
6938// API operation GetUserPolicy for usage and error information.
6939//
6940// Returned Error Codes:
6941//   * ErrCodeNoSuchEntityException "NoSuchEntity"
6942//   The request was rejected because it referenced an entity that does not exist.
6943//   The error message describes the entity.
6944//
6945//   * ErrCodeServiceFailureException "ServiceFailure"
6946//   The request processing has failed because of an unknown error, exception
6947//   or failure.
6948//
6949// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetUserPolicy
6950func (c *IAM) GetUserPolicy(input *GetUserPolicyInput) (*GetUserPolicyOutput, error) {
6951	req, out := c.GetUserPolicyRequest(input)
6952	return out, req.Send()
6953}
6954
6955// GetUserPolicyWithContext is the same as GetUserPolicy with the addition of
6956// the ability to pass a context and additional request options.
6957//
6958// See GetUserPolicy for details on how to use this API operation.
6959//
6960// The context must be non-nil and will be used for request cancellation. If
6961// the context is nil a panic will occur. In the future the SDK may create
6962// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6963// for more information on using Contexts.
6964func (c *IAM) GetUserPolicyWithContext(ctx aws.Context, input *GetUserPolicyInput, opts ...request.Option) (*GetUserPolicyOutput, error) {
6965	req, out := c.GetUserPolicyRequest(input)
6966	req.SetContext(ctx)
6967	req.ApplyOptions(opts...)
6968	return out, req.Send()
6969}
6970
6971const opListAccessKeys = "ListAccessKeys"
6972
6973// ListAccessKeysRequest generates a "aws/request.Request" representing the
6974// client's request for the ListAccessKeys operation. The "output" return
6975// value will be populated with the request's response once the request complets
6976// successfuly.
6977//
6978// Use "Send" method on the returned Request to send the API call to the service.
6979// the "output" return value is not valid until after Send returns without error.
6980//
6981// See ListAccessKeys for more information on using the ListAccessKeys
6982// API call, and error handling.
6983//
6984// This method is useful when you want to inject custom logic or configuration
6985// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6986//
6987//
6988//    // Example sending a request using the ListAccessKeysRequest method.
6989//    req, resp := client.ListAccessKeysRequest(params)
6990//
6991//    err := req.Send()
6992//    if err == nil { // resp is now filled
6993//        fmt.Println(resp)
6994//    }
6995//
6996// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListAccessKeys
6997func (c *IAM) ListAccessKeysRequest(input *ListAccessKeysInput) (req *request.Request, output *ListAccessKeysOutput) {
6998	op := &request.Operation{
6999		Name:       opListAccessKeys,
7000		HTTPMethod: "POST",
7001		HTTPPath:   "/",
7002		Paginator: &request.Paginator{
7003			InputTokens:     []string{"Marker"},
7004			OutputTokens:    []string{"Marker"},
7005			LimitToken:      "MaxItems",
7006			TruncationToken: "IsTruncated",
7007		},
7008	}
7009
7010	if input == nil {
7011		input = &ListAccessKeysInput{}
7012	}
7013
7014	output = &ListAccessKeysOutput{}
7015	req = c.newRequest(op, input, output)
7016	return
7017}
7018
7019// ListAccessKeys API operation for AWS Identity and Access Management.
7020//
7021// Returns information about the access key IDs associated with the specified
7022// IAM user. If there are none, the action returns an empty list.
7023//
7024// Although each user is limited to a small number of keys, you can still paginate
7025// the results using the MaxItems and Marker parameters.
7026//
7027// If the UserName field is not specified, the UserName is determined implicitly
7028// based on the AWS access key ID used to sign the request. Because this action
7029// works for access keys under the AWS account, you can use this action to manage
7030// root credentials even if the AWS account has no associated users.
7031//
7032// To ensure the security of your AWS account, the secret access key is accessible
7033// only during key and user creation.
7034//
7035// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7036// with awserr.Error's Code and Message methods to get detailed information about
7037// the error.
7038//
7039// See the AWS API reference guide for AWS Identity and Access Management's
7040// API operation ListAccessKeys for usage and error information.
7041//
7042// Returned Error Codes:
7043//   * ErrCodeNoSuchEntityException "NoSuchEntity"
7044//   The request was rejected because it referenced an entity that does not exist.
7045//   The error message describes the entity.
7046//
7047//   * ErrCodeServiceFailureException "ServiceFailure"
7048//   The request processing has failed because of an unknown error, exception
7049//   or failure.
7050//
7051// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListAccessKeys
7052func (c *IAM) ListAccessKeys(input *ListAccessKeysInput) (*ListAccessKeysOutput, error) {
7053	req, out := c.ListAccessKeysRequest(input)
7054	return out, req.Send()
7055}
7056
7057// ListAccessKeysWithContext is the same as ListAccessKeys with the addition of
7058// the ability to pass a context and additional request options.
7059//
7060// See ListAccessKeys for details on how to use this API operation.
7061//
7062// The context must be non-nil and will be used for request cancellation. If
7063// the context is nil a panic will occur. In the future the SDK may create
7064// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7065// for more information on using Contexts.
7066func (c *IAM) ListAccessKeysWithContext(ctx aws.Context, input *ListAccessKeysInput, opts ...request.Option) (*ListAccessKeysOutput, error) {
7067	req, out := c.ListAccessKeysRequest(input)
7068	req.SetContext(ctx)
7069	req.ApplyOptions(opts...)
7070	return out, req.Send()
7071}
7072
7073// ListAccessKeysPages iterates over the pages of a ListAccessKeys operation,
7074// calling the "fn" function with the response data for each page. To stop
7075// iterating, return false from the fn function.
7076//
7077// See ListAccessKeys method for more information on how to use this operation.
7078//
7079// Note: This operation can generate multiple requests to a service.
7080//
7081//    // Example iterating over at most 3 pages of a ListAccessKeys operation.
7082//    pageNum := 0
7083//    err := client.ListAccessKeysPages(params,
7084//        func(page *ListAccessKeysOutput, lastPage bool) bool {
7085//            pageNum++
7086//            fmt.Println(page)
7087//            return pageNum <= 3
7088//        })
7089//
7090func (c *IAM) ListAccessKeysPages(input *ListAccessKeysInput, fn func(*ListAccessKeysOutput, bool) bool) error {
7091	return c.ListAccessKeysPagesWithContext(aws.BackgroundContext(), input, fn)
7092}
7093
7094// ListAccessKeysPagesWithContext same as ListAccessKeysPages except
7095// it takes a Context and allows setting request options on the pages.
7096//
7097// The context must be non-nil and will be used for request cancellation. If
7098// the context is nil a panic will occur. In the future the SDK may create
7099// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7100// for more information on using Contexts.
7101func (c *IAM) ListAccessKeysPagesWithContext(ctx aws.Context, input *ListAccessKeysInput, fn func(*ListAccessKeysOutput, bool) bool, opts ...request.Option) error {
7102	p := request.Pagination{
7103		NewRequest: func() (*request.Request, error) {
7104			var inCpy *ListAccessKeysInput
7105			if input != nil {
7106				tmp := *input
7107				inCpy = &tmp
7108			}
7109			req, _ := c.ListAccessKeysRequest(inCpy)
7110			req.SetContext(ctx)
7111			req.ApplyOptions(opts...)
7112			return req, nil
7113		},
7114	}
7115
7116	cont := true
7117	for p.Next() && cont {
7118		cont = fn(p.Page().(*ListAccessKeysOutput), !p.HasNextPage())
7119	}
7120	return p.Err()
7121}
7122
7123const opListAccountAliases = "ListAccountAliases"
7124
7125// ListAccountAliasesRequest generates a "aws/request.Request" representing the
7126// client's request for the ListAccountAliases operation. The "output" return
7127// value will be populated with the request's response once the request complets
7128// successfuly.
7129//
7130// Use "Send" method on the returned Request to send the API call to the service.
7131// the "output" return value is not valid until after Send returns without error.
7132//
7133// See ListAccountAliases for more information on using the ListAccountAliases
7134// API call, and error handling.
7135//
7136// This method is useful when you want to inject custom logic or configuration
7137// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7138//
7139//
7140//    // Example sending a request using the ListAccountAliasesRequest method.
7141//    req, resp := client.ListAccountAliasesRequest(params)
7142//
7143//    err := req.Send()
7144//    if err == nil { // resp is now filled
7145//        fmt.Println(resp)
7146//    }
7147//
7148// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListAccountAliases
7149func (c *IAM) ListAccountAliasesRequest(input *ListAccountAliasesInput) (req *request.Request, output *ListAccountAliasesOutput) {
7150	op := &request.Operation{
7151		Name:       opListAccountAliases,
7152		HTTPMethod: "POST",
7153		HTTPPath:   "/",
7154		Paginator: &request.Paginator{
7155			InputTokens:     []string{"Marker"},
7156			OutputTokens:    []string{"Marker"},
7157			LimitToken:      "MaxItems",
7158			TruncationToken: "IsTruncated",
7159		},
7160	}
7161
7162	if input == nil {
7163		input = &ListAccountAliasesInput{}
7164	}
7165
7166	output = &ListAccountAliasesOutput{}
7167	req = c.newRequest(op, input, output)
7168	return
7169}
7170
7171// ListAccountAliases API operation for AWS Identity and Access Management.
7172//
7173// Lists the account alias associated with the AWS account (Note: you can have
7174// only one). For information about using an AWS account alias, see Using an
7175// Alias for Your AWS Account ID (http://docs.aws.amazon.com/IAM/latest/UserGuide/AccountAlias.html)
7176// in the IAM User Guide.
7177//
7178// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7179// with awserr.Error's Code and Message methods to get detailed information about
7180// the error.
7181//
7182// See the AWS API reference guide for AWS Identity and Access Management's
7183// API operation ListAccountAliases for usage and error information.
7184//
7185// Returned Error Codes:
7186//   * ErrCodeServiceFailureException "ServiceFailure"
7187//   The request processing has failed because of an unknown error, exception
7188//   or failure.
7189//
7190// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListAccountAliases
7191func (c *IAM) ListAccountAliases(input *ListAccountAliasesInput) (*ListAccountAliasesOutput, error) {
7192	req, out := c.ListAccountAliasesRequest(input)
7193	return out, req.Send()
7194}
7195
7196// ListAccountAliasesWithContext is the same as ListAccountAliases with the addition of
7197// the ability to pass a context and additional request options.
7198//
7199// See ListAccountAliases for details on how to use this API operation.
7200//
7201// The context must be non-nil and will be used for request cancellation. If
7202// the context is nil a panic will occur. In the future the SDK may create
7203// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7204// for more information on using Contexts.
7205func (c *IAM) ListAccountAliasesWithContext(ctx aws.Context, input *ListAccountAliasesInput, opts ...request.Option) (*ListAccountAliasesOutput, error) {
7206	req, out := c.ListAccountAliasesRequest(input)
7207	req.SetContext(ctx)
7208	req.ApplyOptions(opts...)
7209	return out, req.Send()
7210}
7211
7212// ListAccountAliasesPages iterates over the pages of a ListAccountAliases operation,
7213// calling the "fn" function with the response data for each page. To stop
7214// iterating, return false from the fn function.
7215//
7216// See ListAccountAliases method for more information on how to use this operation.
7217//
7218// Note: This operation can generate multiple requests to a service.
7219//
7220//    // Example iterating over at most 3 pages of a ListAccountAliases operation.
7221//    pageNum := 0
7222//    err := client.ListAccountAliasesPages(params,
7223//        func(page *ListAccountAliasesOutput, lastPage bool) bool {
7224//            pageNum++
7225//            fmt.Println(page)
7226//            return pageNum <= 3
7227//        })
7228//
7229func (c *IAM) ListAccountAliasesPages(input *ListAccountAliasesInput, fn func(*ListAccountAliasesOutput, bool) bool) error {
7230	return c.ListAccountAliasesPagesWithContext(aws.BackgroundContext(), input, fn)
7231}
7232
7233// ListAccountAliasesPagesWithContext same as ListAccountAliasesPages except
7234// it takes a Context and allows setting request options on the pages.
7235//
7236// The context must be non-nil and will be used for request cancellation. If
7237// the context is nil a panic will occur. In the future the SDK may create
7238// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7239// for more information on using Contexts.
7240func (c *IAM) ListAccountAliasesPagesWithContext(ctx aws.Context, input *ListAccountAliasesInput, fn func(*ListAccountAliasesOutput, bool) bool, opts ...request.Option) error {
7241	p := request.Pagination{
7242		NewRequest: func() (*request.Request, error) {
7243			var inCpy *ListAccountAliasesInput
7244			if input != nil {
7245				tmp := *input
7246				inCpy = &tmp
7247			}
7248			req, _ := c.ListAccountAliasesRequest(inCpy)
7249			req.SetContext(ctx)
7250			req.ApplyOptions(opts...)
7251			return req, nil
7252		},
7253	}
7254
7255	cont := true
7256	for p.Next() && cont {
7257		cont = fn(p.Page().(*ListAccountAliasesOutput), !p.HasNextPage())
7258	}
7259	return p.Err()
7260}
7261
7262const opListAttachedGroupPolicies = "ListAttachedGroupPolicies"
7263
7264// ListAttachedGroupPoliciesRequest generates a "aws/request.Request" representing the
7265// client's request for the ListAttachedGroupPolicies operation. The "output" return
7266// value will be populated with the request's response once the request complets
7267// successfuly.
7268//
7269// Use "Send" method on the returned Request to send the API call to the service.
7270// the "output" return value is not valid until after Send returns without error.
7271//
7272// See ListAttachedGroupPolicies for more information on using the ListAttachedGroupPolicies
7273// API call, and error handling.
7274//
7275// This method is useful when you want to inject custom logic or configuration
7276// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7277//
7278//
7279//    // Example sending a request using the ListAttachedGroupPoliciesRequest method.
7280//    req, resp := client.ListAttachedGroupPoliciesRequest(params)
7281//
7282//    err := req.Send()
7283//    if err == nil { // resp is now filled
7284//        fmt.Println(resp)
7285//    }
7286//
7287// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListAttachedGroupPolicies
7288func (c *IAM) ListAttachedGroupPoliciesRequest(input *ListAttachedGroupPoliciesInput) (req *request.Request, output *ListAttachedGroupPoliciesOutput) {
7289	op := &request.Operation{
7290		Name:       opListAttachedGroupPolicies,
7291		HTTPMethod: "POST",
7292		HTTPPath:   "/",
7293		Paginator: &request.Paginator{
7294			InputTokens:     []string{"Marker"},
7295			OutputTokens:    []string{"Marker"},
7296			LimitToken:      "MaxItems",
7297			TruncationToken: "IsTruncated",
7298		},
7299	}
7300
7301	if input == nil {
7302		input = &ListAttachedGroupPoliciesInput{}
7303	}
7304
7305	output = &ListAttachedGroupPoliciesOutput{}
7306	req = c.newRequest(op, input, output)
7307	return
7308}
7309
7310// ListAttachedGroupPolicies API operation for AWS Identity and Access Management.
7311//
7312// Lists all managed policies that are attached to the specified IAM group.
7313//
7314// An IAM group can also have inline policies embedded with it. To list the
7315// inline policies for a group, use the ListGroupPolicies API. For information
7316// about policies, see Managed Policies and Inline Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
7317// in the IAM User Guide.
7318//
7319// You can paginate the results using the MaxItems and Marker parameters. You
7320// can use the PathPrefix parameter to limit the list of policies to only those
7321// matching the specified path prefix. If there are no policies attached to
7322// the specified group (or none that match the specified path prefix), the action
7323// returns an empty list.
7324//
7325// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7326// with awserr.Error's Code and Message methods to get detailed information about
7327// the error.
7328//
7329// See the AWS API reference guide for AWS Identity and Access Management's
7330// API operation ListAttachedGroupPolicies for usage and error information.
7331//
7332// Returned Error Codes:
7333//   * ErrCodeNoSuchEntityException "NoSuchEntity"
7334//   The request was rejected because it referenced an entity that does not exist.
7335//   The error message describes the entity.
7336//
7337//   * ErrCodeInvalidInputException "InvalidInput"
7338//   The request was rejected because an invalid or out-of-range value was supplied
7339//   for an input parameter.
7340//
7341//   * ErrCodeServiceFailureException "ServiceFailure"
7342//   The request processing has failed because of an unknown error, exception
7343//   or failure.
7344//
7345// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListAttachedGroupPolicies
7346func (c *IAM) ListAttachedGroupPolicies(input *ListAttachedGroupPoliciesInput) (*ListAttachedGroupPoliciesOutput, error) {
7347	req, out := c.ListAttachedGroupPoliciesRequest(input)
7348	return out, req.Send()
7349}
7350
7351// ListAttachedGroupPoliciesWithContext is the same as ListAttachedGroupPolicies with the addition of
7352// the ability to pass a context and additional request options.
7353//
7354// See ListAttachedGroupPolicies for details on how to use this API operation.
7355//
7356// The context must be non-nil and will be used for request cancellation. If
7357// the context is nil a panic will occur. In the future the SDK may create
7358// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7359// for more information on using Contexts.
7360func (c *IAM) ListAttachedGroupPoliciesWithContext(ctx aws.Context, input *ListAttachedGroupPoliciesInput, opts ...request.Option) (*ListAttachedGroupPoliciesOutput, error) {
7361	req, out := c.ListAttachedGroupPoliciesRequest(input)
7362	req.SetContext(ctx)
7363	req.ApplyOptions(opts...)
7364	return out, req.Send()
7365}
7366
7367// ListAttachedGroupPoliciesPages iterates over the pages of a ListAttachedGroupPolicies operation,
7368// calling the "fn" function with the response data for each page. To stop
7369// iterating, return false from the fn function.
7370//
7371// See ListAttachedGroupPolicies method for more information on how to use this operation.
7372//
7373// Note: This operation can generate multiple requests to a service.
7374//
7375//    // Example iterating over at most 3 pages of a ListAttachedGroupPolicies operation.
7376//    pageNum := 0
7377//    err := client.ListAttachedGroupPoliciesPages(params,
7378//        func(page *ListAttachedGroupPoliciesOutput, lastPage bool) bool {
7379//            pageNum++
7380//            fmt.Println(page)
7381//            return pageNum <= 3
7382//        })
7383//
7384func (c *IAM) ListAttachedGroupPoliciesPages(input *ListAttachedGroupPoliciesInput, fn func(*ListAttachedGroupPoliciesOutput, bool) bool) error {
7385	return c.ListAttachedGroupPoliciesPagesWithContext(aws.BackgroundContext(), input, fn)
7386}
7387
7388// ListAttachedGroupPoliciesPagesWithContext same as ListAttachedGroupPoliciesPages except
7389// it takes a Context and allows setting request options on the pages.
7390//
7391// The context must be non-nil and will be used for request cancellation. If
7392// the context is nil a panic will occur. In the future the SDK may create
7393// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7394// for more information on using Contexts.
7395func (c *IAM) ListAttachedGroupPoliciesPagesWithContext(ctx aws.Context, input *ListAttachedGroupPoliciesInput, fn func(*ListAttachedGroupPoliciesOutput, bool) bool, opts ...request.Option) error {
7396	p := request.Pagination{
7397		NewRequest: func() (*request.Request, error) {
7398			var inCpy *ListAttachedGroupPoliciesInput
7399			if input != nil {
7400				tmp := *input
7401				inCpy = &tmp
7402			}
7403			req, _ := c.ListAttachedGroupPoliciesRequest(inCpy)
7404			req.SetContext(ctx)
7405			req.ApplyOptions(opts...)
7406			return req, nil
7407		},
7408	}
7409
7410	cont := true
7411	for p.Next() && cont {
7412		cont = fn(p.Page().(*ListAttachedGroupPoliciesOutput), !p.HasNextPage())
7413	}
7414	return p.Err()
7415}
7416
7417const opListAttachedRolePolicies = "ListAttachedRolePolicies"
7418
7419// ListAttachedRolePoliciesRequest generates a "aws/request.Request" representing the
7420// client's request for the ListAttachedRolePolicies operation. The "output" return
7421// value will be populated with the request's response once the request complets
7422// successfuly.
7423//
7424// Use "Send" method on the returned Request to send the API call to the service.
7425// the "output" return value is not valid until after Send returns without error.
7426//
7427// See ListAttachedRolePolicies for more information on using the ListAttachedRolePolicies
7428// API call, and error handling.
7429//
7430// This method is useful when you want to inject custom logic or configuration
7431// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7432//
7433//
7434//    // Example sending a request using the ListAttachedRolePoliciesRequest method.
7435//    req, resp := client.ListAttachedRolePoliciesRequest(params)
7436//
7437//    err := req.Send()
7438//    if err == nil { // resp is now filled
7439//        fmt.Println(resp)
7440//    }
7441//
7442// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListAttachedRolePolicies
7443func (c *IAM) ListAttachedRolePoliciesRequest(input *ListAttachedRolePoliciesInput) (req *request.Request, output *ListAttachedRolePoliciesOutput) {
7444	op := &request.Operation{
7445		Name:       opListAttachedRolePolicies,
7446		HTTPMethod: "POST",
7447		HTTPPath:   "/",
7448		Paginator: &request.Paginator{
7449			InputTokens:     []string{"Marker"},
7450			OutputTokens:    []string{"Marker"},
7451			LimitToken:      "MaxItems",
7452			TruncationToken: "IsTruncated",
7453		},
7454	}
7455
7456	if input == nil {
7457		input = &ListAttachedRolePoliciesInput{}
7458	}
7459
7460	output = &ListAttachedRolePoliciesOutput{}
7461	req = c.newRequest(op, input, output)
7462	return
7463}
7464
7465// ListAttachedRolePolicies API operation for AWS Identity and Access Management.
7466//
7467// Lists all managed policies that are attached to the specified IAM role.
7468//
7469// An IAM role can also have inline policies embedded with it. To list the inline
7470// policies for a role, use the ListRolePolicies API. For information about
7471// policies, see Managed Policies and Inline Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
7472// in the IAM User Guide.
7473//
7474// You can paginate the results using the MaxItems and Marker parameters. You
7475// can use the PathPrefix parameter to limit the list of policies to only those
7476// matching the specified path prefix. If there are no policies attached to
7477// the specified role (or none that match the specified path prefix), the action
7478// returns an empty list.
7479//
7480// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7481// with awserr.Error's Code and Message methods to get detailed information about
7482// the error.
7483//
7484// See the AWS API reference guide for AWS Identity and Access Management's
7485// API operation ListAttachedRolePolicies for usage and error information.
7486//
7487// Returned Error Codes:
7488//   * ErrCodeNoSuchEntityException "NoSuchEntity"
7489//   The request was rejected because it referenced an entity that does not exist.
7490//   The error message describes the entity.
7491//
7492//   * ErrCodeInvalidInputException "InvalidInput"
7493//   The request was rejected because an invalid or out-of-range value was supplied
7494//   for an input parameter.
7495//
7496//   * ErrCodeServiceFailureException "ServiceFailure"
7497//   The request processing has failed because of an unknown error, exception
7498//   or failure.
7499//
7500// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListAttachedRolePolicies
7501func (c *IAM) ListAttachedRolePolicies(input *ListAttachedRolePoliciesInput) (*ListAttachedRolePoliciesOutput, error) {
7502	req, out := c.ListAttachedRolePoliciesRequest(input)
7503	return out, req.Send()
7504}
7505
7506// ListAttachedRolePoliciesWithContext is the same as ListAttachedRolePolicies with the addition of
7507// the ability to pass a context and additional request options.
7508//
7509// See ListAttachedRolePolicies for details on how to use this API operation.
7510//
7511// The context must be non-nil and will be used for request cancellation. If
7512// the context is nil a panic will occur. In the future the SDK may create
7513// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7514// for more information on using Contexts.
7515func (c *IAM) ListAttachedRolePoliciesWithContext(ctx aws.Context, input *ListAttachedRolePoliciesInput, opts ...request.Option) (*ListAttachedRolePoliciesOutput, error) {
7516	req, out := c.ListAttachedRolePoliciesRequest(input)
7517	req.SetContext(ctx)
7518	req.ApplyOptions(opts...)
7519	return out, req.Send()
7520}
7521
7522// ListAttachedRolePoliciesPages iterates over the pages of a ListAttachedRolePolicies operation,
7523// calling the "fn" function with the response data for each page. To stop
7524// iterating, return false from the fn function.
7525//
7526// See ListAttachedRolePolicies method for more information on how to use this operation.
7527//
7528// Note: This operation can generate multiple requests to a service.
7529//
7530//    // Example iterating over at most 3 pages of a ListAttachedRolePolicies operation.
7531//    pageNum := 0
7532//    err := client.ListAttachedRolePoliciesPages(params,
7533//        func(page *ListAttachedRolePoliciesOutput, lastPage bool) bool {
7534//            pageNum++
7535//            fmt.Println(page)
7536//            return pageNum <= 3
7537//        })
7538//
7539func (c *IAM) ListAttachedRolePoliciesPages(input *ListAttachedRolePoliciesInput, fn func(*ListAttachedRolePoliciesOutput, bool) bool) error {
7540	return c.ListAttachedRolePoliciesPagesWithContext(aws.BackgroundContext(), input, fn)
7541}
7542
7543// ListAttachedRolePoliciesPagesWithContext same as ListAttachedRolePoliciesPages except
7544// it takes a Context and allows setting request options on the pages.
7545//
7546// The context must be non-nil and will be used for request cancellation. If
7547// the context is nil a panic will occur. In the future the SDK may create
7548// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7549// for more information on using Contexts.
7550func (c *IAM) ListAttachedRolePoliciesPagesWithContext(ctx aws.Context, input *ListAttachedRolePoliciesInput, fn func(*ListAttachedRolePoliciesOutput, bool) bool, opts ...request.Option) error {
7551	p := request.Pagination{
7552		NewRequest: func() (*request.Request, error) {
7553			var inCpy *ListAttachedRolePoliciesInput
7554			if input != nil {
7555				tmp := *input
7556				inCpy = &tmp
7557			}
7558			req, _ := c.ListAttachedRolePoliciesRequest(inCpy)
7559			req.SetContext(ctx)
7560			req.ApplyOptions(opts...)
7561			return req, nil
7562		},
7563	}
7564
7565	cont := true
7566	for p.Next() && cont {
7567		cont = fn(p.Page().(*ListAttachedRolePoliciesOutput), !p.HasNextPage())
7568	}
7569	return p.Err()
7570}
7571
7572const opListAttachedUserPolicies = "ListAttachedUserPolicies"
7573
7574// ListAttachedUserPoliciesRequest generates a "aws/request.Request" representing the
7575// client's request for the ListAttachedUserPolicies operation. The "output" return
7576// value will be populated with the request's response once the request complets
7577// successfuly.
7578//
7579// Use "Send" method on the returned Request to send the API call to the service.
7580// the "output" return value is not valid until after Send returns without error.
7581//
7582// See ListAttachedUserPolicies for more information on using the ListAttachedUserPolicies
7583// API call, and error handling.
7584//
7585// This method is useful when you want to inject custom logic or configuration
7586// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7587//
7588//
7589//    // Example sending a request using the ListAttachedUserPoliciesRequest method.
7590//    req, resp := client.ListAttachedUserPoliciesRequest(params)
7591//
7592//    err := req.Send()
7593//    if err == nil { // resp is now filled
7594//        fmt.Println(resp)
7595//    }
7596//
7597// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListAttachedUserPolicies
7598func (c *IAM) ListAttachedUserPoliciesRequest(input *ListAttachedUserPoliciesInput) (req *request.Request, output *ListAttachedUserPoliciesOutput) {
7599	op := &request.Operation{
7600		Name:       opListAttachedUserPolicies,
7601		HTTPMethod: "POST",
7602		HTTPPath:   "/",
7603		Paginator: &request.Paginator{
7604			InputTokens:     []string{"Marker"},
7605			OutputTokens:    []string{"Marker"},
7606			LimitToken:      "MaxItems",
7607			TruncationToken: "IsTruncated",
7608		},
7609	}
7610
7611	if input == nil {
7612		input = &ListAttachedUserPoliciesInput{}
7613	}
7614
7615	output = &ListAttachedUserPoliciesOutput{}
7616	req = c.newRequest(op, input, output)
7617	return
7618}
7619
7620// ListAttachedUserPolicies API operation for AWS Identity and Access Management.
7621//
7622// Lists all managed policies that are attached to the specified IAM user.
7623//
7624// An IAM user can also have inline policies embedded with it. To list the inline
7625// policies for a user, use the ListUserPolicies API. For information about
7626// policies, see Managed Policies and Inline Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
7627// in the IAM User Guide.
7628//
7629// You can paginate the results using the MaxItems and Marker parameters. You
7630// can use the PathPrefix parameter to limit the list of policies to only those
7631// matching the specified path prefix. If there are no policies attached to
7632// the specified group (or none that match the specified path prefix), the action
7633// returns an empty list.
7634//
7635// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7636// with awserr.Error's Code and Message methods to get detailed information about
7637// the error.
7638//
7639// See the AWS API reference guide for AWS Identity and Access Management's
7640// API operation ListAttachedUserPolicies for usage and error information.
7641//
7642// Returned Error Codes:
7643//   * ErrCodeNoSuchEntityException "NoSuchEntity"
7644//   The request was rejected because it referenced an entity that does not exist.
7645//   The error message describes the entity.
7646//
7647//   * ErrCodeInvalidInputException "InvalidInput"
7648//   The request was rejected because an invalid or out-of-range value was supplied
7649//   for an input parameter.
7650//
7651//   * ErrCodeServiceFailureException "ServiceFailure"
7652//   The request processing has failed because of an unknown error, exception
7653//   or failure.
7654//
7655// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListAttachedUserPolicies
7656func (c *IAM) ListAttachedUserPolicies(input *ListAttachedUserPoliciesInput) (*ListAttachedUserPoliciesOutput, error) {
7657	req, out := c.ListAttachedUserPoliciesRequest(input)
7658	return out, req.Send()
7659}
7660
7661// ListAttachedUserPoliciesWithContext is the same as ListAttachedUserPolicies with the addition of
7662// the ability to pass a context and additional request options.
7663//
7664// See ListAttachedUserPolicies for details on how to use this API operation.
7665//
7666// The context must be non-nil and will be used for request cancellation. If
7667// the context is nil a panic will occur. In the future the SDK may create
7668// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7669// for more information on using Contexts.
7670func (c *IAM) ListAttachedUserPoliciesWithContext(ctx aws.Context, input *ListAttachedUserPoliciesInput, opts ...request.Option) (*ListAttachedUserPoliciesOutput, error) {
7671	req, out := c.ListAttachedUserPoliciesRequest(input)
7672	req.SetContext(ctx)
7673	req.ApplyOptions(opts...)
7674	return out, req.Send()
7675}
7676
7677// ListAttachedUserPoliciesPages iterates over the pages of a ListAttachedUserPolicies operation,
7678// calling the "fn" function with the response data for each page. To stop
7679// iterating, return false from the fn function.
7680//
7681// See ListAttachedUserPolicies method for more information on how to use this operation.
7682//
7683// Note: This operation can generate multiple requests to a service.
7684//
7685//    // Example iterating over at most 3 pages of a ListAttachedUserPolicies operation.
7686//    pageNum := 0
7687//    err := client.ListAttachedUserPoliciesPages(params,
7688//        func(page *ListAttachedUserPoliciesOutput, lastPage bool) bool {
7689//            pageNum++
7690//            fmt.Println(page)
7691//            return pageNum <= 3
7692//        })
7693//
7694func (c *IAM) ListAttachedUserPoliciesPages(input *ListAttachedUserPoliciesInput, fn func(*ListAttachedUserPoliciesOutput, bool) bool) error {
7695	return c.ListAttachedUserPoliciesPagesWithContext(aws.BackgroundContext(), input, fn)
7696}
7697
7698// ListAttachedUserPoliciesPagesWithContext same as ListAttachedUserPoliciesPages except
7699// it takes a Context and allows setting request options on the pages.
7700//
7701// The context must be non-nil and will be used for request cancellation. If
7702// the context is nil a panic will occur. In the future the SDK may create
7703// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7704// for more information on using Contexts.
7705func (c *IAM) ListAttachedUserPoliciesPagesWithContext(ctx aws.Context, input *ListAttachedUserPoliciesInput, fn func(*ListAttachedUserPoliciesOutput, bool) bool, opts ...request.Option) error {
7706	p := request.Pagination{
7707		NewRequest: func() (*request.Request, error) {
7708			var inCpy *ListAttachedUserPoliciesInput
7709			if input != nil {
7710				tmp := *input
7711				inCpy = &tmp
7712			}
7713			req, _ := c.ListAttachedUserPoliciesRequest(inCpy)
7714			req.SetContext(ctx)
7715			req.ApplyOptions(opts...)
7716			return req, nil
7717		},
7718	}
7719
7720	cont := true
7721	for p.Next() && cont {
7722		cont = fn(p.Page().(*ListAttachedUserPoliciesOutput), !p.HasNextPage())
7723	}
7724	return p.Err()
7725}
7726
7727const opListEntitiesForPolicy = "ListEntitiesForPolicy"
7728
7729// ListEntitiesForPolicyRequest generates a "aws/request.Request" representing the
7730// client's request for the ListEntitiesForPolicy operation. The "output" return
7731// value will be populated with the request's response once the request complets
7732// successfuly.
7733//
7734// Use "Send" method on the returned Request to send the API call to the service.
7735// the "output" return value is not valid until after Send returns without error.
7736//
7737// See ListEntitiesForPolicy for more information on using the ListEntitiesForPolicy
7738// API call, and error handling.
7739//
7740// This method is useful when you want to inject custom logic or configuration
7741// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7742//
7743//
7744//    // Example sending a request using the ListEntitiesForPolicyRequest method.
7745//    req, resp := client.ListEntitiesForPolicyRequest(params)
7746//
7747//    err := req.Send()
7748//    if err == nil { // resp is now filled
7749//        fmt.Println(resp)
7750//    }
7751//
7752// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListEntitiesForPolicy
7753func (c *IAM) ListEntitiesForPolicyRequest(input *ListEntitiesForPolicyInput) (req *request.Request, output *ListEntitiesForPolicyOutput) {
7754	op := &request.Operation{
7755		Name:       opListEntitiesForPolicy,
7756		HTTPMethod: "POST",
7757		HTTPPath:   "/",
7758		Paginator: &request.Paginator{
7759			InputTokens:     []string{"Marker"},
7760			OutputTokens:    []string{"Marker"},
7761			LimitToken:      "MaxItems",
7762			TruncationToken: "IsTruncated",
7763		},
7764	}
7765
7766	if input == nil {
7767		input = &ListEntitiesForPolicyInput{}
7768	}
7769
7770	output = &ListEntitiesForPolicyOutput{}
7771	req = c.newRequest(op, input, output)
7772	return
7773}
7774
7775// ListEntitiesForPolicy API operation for AWS Identity and Access Management.
7776//
7777// Lists all IAM users, groups, and roles that the specified managed policy
7778// is attached to.
7779//
7780// You can use the optional EntityFilter parameter to limit the results to a
7781// particular type of entity (users, groups, or roles). For example, to list
7782// only the roles that are attached to the specified policy, set EntityFilter
7783// to Role.
7784//
7785// You can paginate the results using the MaxItems and Marker parameters.
7786//
7787// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7788// with awserr.Error's Code and Message methods to get detailed information about
7789// the error.
7790//
7791// See the AWS API reference guide for AWS Identity and Access Management's
7792// API operation ListEntitiesForPolicy for usage and error information.
7793//
7794// Returned Error Codes:
7795//   * ErrCodeNoSuchEntityException "NoSuchEntity"
7796//   The request was rejected because it referenced an entity that does not exist.
7797//   The error message describes the entity.
7798//
7799//   * ErrCodeInvalidInputException "InvalidInput"
7800//   The request was rejected because an invalid or out-of-range value was supplied
7801//   for an input parameter.
7802//
7803//   * ErrCodeServiceFailureException "ServiceFailure"
7804//   The request processing has failed because of an unknown error, exception
7805//   or failure.
7806//
7807// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListEntitiesForPolicy
7808func (c *IAM) ListEntitiesForPolicy(input *ListEntitiesForPolicyInput) (*ListEntitiesForPolicyOutput, error) {
7809	req, out := c.ListEntitiesForPolicyRequest(input)
7810	return out, req.Send()
7811}
7812
7813// ListEntitiesForPolicyWithContext is the same as ListEntitiesForPolicy with the addition of
7814// the ability to pass a context and additional request options.
7815//
7816// See ListEntitiesForPolicy for details on how to use this API operation.
7817//
7818// The context must be non-nil and will be used for request cancellation. If
7819// the context is nil a panic will occur. In the future the SDK may create
7820// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7821// for more information on using Contexts.
7822func (c *IAM) ListEntitiesForPolicyWithContext(ctx aws.Context, input *ListEntitiesForPolicyInput, opts ...request.Option) (*ListEntitiesForPolicyOutput, error) {
7823	req, out := c.ListEntitiesForPolicyRequest(input)
7824	req.SetContext(ctx)
7825	req.ApplyOptions(opts...)
7826	return out, req.Send()
7827}
7828
7829// ListEntitiesForPolicyPages iterates over the pages of a ListEntitiesForPolicy operation,
7830// calling the "fn" function with the response data for each page. To stop
7831// iterating, return false from the fn function.
7832//
7833// See ListEntitiesForPolicy method for more information on how to use this operation.
7834//
7835// Note: This operation can generate multiple requests to a service.
7836//
7837//    // Example iterating over at most 3 pages of a ListEntitiesForPolicy operation.
7838//    pageNum := 0
7839//    err := client.ListEntitiesForPolicyPages(params,
7840//        func(page *ListEntitiesForPolicyOutput, lastPage bool) bool {
7841//            pageNum++
7842//            fmt.Println(page)
7843//            return pageNum <= 3
7844//        })
7845//
7846func (c *IAM) ListEntitiesForPolicyPages(input *ListEntitiesForPolicyInput, fn func(*ListEntitiesForPolicyOutput, bool) bool) error {
7847	return c.ListEntitiesForPolicyPagesWithContext(aws.BackgroundContext(), input, fn)
7848}
7849
7850// ListEntitiesForPolicyPagesWithContext same as ListEntitiesForPolicyPages except
7851// it takes a Context and allows setting request options on the pages.
7852//
7853// The context must be non-nil and will be used for request cancellation. If
7854// the context is nil a panic will occur. In the future the SDK may create
7855// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7856// for more information on using Contexts.
7857func (c *IAM) ListEntitiesForPolicyPagesWithContext(ctx aws.Context, input *ListEntitiesForPolicyInput, fn func(*ListEntitiesForPolicyOutput, bool) bool, opts ...request.Option) error {
7858	p := request.Pagination{
7859		NewRequest: func() (*request.Request, error) {
7860			var inCpy *ListEntitiesForPolicyInput
7861			if input != nil {
7862				tmp := *input
7863				inCpy = &tmp
7864			}
7865			req, _ := c.ListEntitiesForPolicyRequest(inCpy)
7866			req.SetContext(ctx)
7867			req.ApplyOptions(opts...)
7868			return req, nil
7869		},
7870	}
7871
7872	cont := true
7873	for p.Next() && cont {
7874		cont = fn(p.Page().(*ListEntitiesForPolicyOutput), !p.HasNextPage())
7875	}
7876	return p.Err()
7877}
7878
7879const opListGroupPolicies = "ListGroupPolicies"
7880
7881// ListGroupPoliciesRequest generates a "aws/request.Request" representing the
7882// client's request for the ListGroupPolicies operation. The "output" return
7883// value will be populated with the request's response once the request complets
7884// successfuly.
7885//
7886// Use "Send" method on the returned Request to send the API call to the service.
7887// the "output" return value is not valid until after Send returns without error.
7888//
7889// See ListGroupPolicies for more information on using the ListGroupPolicies
7890// API call, and error handling.
7891//
7892// This method is useful when you want to inject custom logic or configuration
7893// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7894//
7895//
7896//    // Example sending a request using the ListGroupPoliciesRequest method.
7897//    req, resp := client.ListGroupPoliciesRequest(params)
7898//
7899//    err := req.Send()
7900//    if err == nil { // resp is now filled
7901//        fmt.Println(resp)
7902//    }
7903//
7904// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListGroupPolicies
7905func (c *IAM) ListGroupPoliciesRequest(input *ListGroupPoliciesInput) (req *request.Request, output *ListGroupPoliciesOutput) {
7906	op := &request.Operation{
7907		Name:       opListGroupPolicies,
7908		HTTPMethod: "POST",
7909		HTTPPath:   "/",
7910		Paginator: &request.Paginator{
7911			InputTokens:     []string{"Marker"},
7912			OutputTokens:    []string{"Marker"},
7913			LimitToken:      "MaxItems",
7914			TruncationToken: "IsTruncated",
7915		},
7916	}
7917
7918	if input == nil {
7919		input = &ListGroupPoliciesInput{}
7920	}
7921
7922	output = &ListGroupPoliciesOutput{}
7923	req = c.newRequest(op, input, output)
7924	return
7925}
7926
7927// ListGroupPolicies API operation for AWS Identity and Access Management.
7928//
7929// Lists the names of the inline policies that are embedded in the specified
7930// IAM group.
7931//
7932// An IAM group can also have managed policies attached to it. To list the managed
7933// policies that are attached to a group, use ListAttachedGroupPolicies. For
7934// more information about policies, see Managed Policies and Inline Policies
7935// (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
7936// in the IAM User Guide.
7937//
7938// You can paginate the results using the MaxItems and Marker parameters. If
7939// there are no inline policies embedded with the specified group, the action
7940// returns an empty list.
7941//
7942// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7943// with awserr.Error's Code and Message methods to get detailed information about
7944// the error.
7945//
7946// See the AWS API reference guide for AWS Identity and Access Management's
7947// API operation ListGroupPolicies for usage and error information.
7948//
7949// Returned Error Codes:
7950//   * ErrCodeNoSuchEntityException "NoSuchEntity"
7951//   The request was rejected because it referenced an entity that does not exist.
7952//   The error message describes the entity.
7953//
7954//   * ErrCodeServiceFailureException "ServiceFailure"
7955//   The request processing has failed because of an unknown error, exception
7956//   or failure.
7957//
7958// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListGroupPolicies
7959func (c *IAM) ListGroupPolicies(input *ListGroupPoliciesInput) (*ListGroupPoliciesOutput, error) {
7960	req, out := c.ListGroupPoliciesRequest(input)
7961	return out, req.Send()
7962}
7963
7964// ListGroupPoliciesWithContext is the same as ListGroupPolicies with the addition of
7965// the ability to pass a context and additional request options.
7966//
7967// See ListGroupPolicies for details on how to use this API operation.
7968//
7969// The context must be non-nil and will be used for request cancellation. If
7970// the context is nil a panic will occur. In the future the SDK may create
7971// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7972// for more information on using Contexts.
7973func (c *IAM) ListGroupPoliciesWithContext(ctx aws.Context, input *ListGroupPoliciesInput, opts ...request.Option) (*ListGroupPoliciesOutput, error) {
7974	req, out := c.ListGroupPoliciesRequest(input)
7975	req.SetContext(ctx)
7976	req.ApplyOptions(opts...)
7977	return out, req.Send()
7978}
7979
7980// ListGroupPoliciesPages iterates over the pages of a ListGroupPolicies operation,
7981// calling the "fn" function with the response data for each page. To stop
7982// iterating, return false from the fn function.
7983//
7984// See ListGroupPolicies method for more information on how to use this operation.
7985//
7986// Note: This operation can generate multiple requests to a service.
7987//
7988//    // Example iterating over at most 3 pages of a ListGroupPolicies operation.
7989//    pageNum := 0
7990//    err := client.ListGroupPoliciesPages(params,
7991//        func(page *ListGroupPoliciesOutput, lastPage bool) bool {
7992//            pageNum++
7993//            fmt.Println(page)
7994//            return pageNum <= 3
7995//        })
7996//
7997func (c *IAM) ListGroupPoliciesPages(input *ListGroupPoliciesInput, fn func(*ListGroupPoliciesOutput, bool) bool) error {
7998	return c.ListGroupPoliciesPagesWithContext(aws.BackgroundContext(), input, fn)
7999}
8000
8001// ListGroupPoliciesPagesWithContext same as ListGroupPoliciesPages except
8002// it takes a Context and allows setting request options on the pages.
8003//
8004// The context must be non-nil and will be used for request cancellation. If
8005// the context is nil a panic will occur. In the future the SDK may create
8006// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8007// for more information on using Contexts.
8008func (c *IAM) ListGroupPoliciesPagesWithContext(ctx aws.Context, input *ListGroupPoliciesInput, fn func(*ListGroupPoliciesOutput, bool) bool, opts ...request.Option) error {
8009	p := request.Pagination{
8010		NewRequest: func() (*request.Request, error) {
8011			var inCpy *ListGroupPoliciesInput
8012			if input != nil {
8013				tmp := *input
8014				inCpy = &tmp
8015			}
8016			req, _ := c.ListGroupPoliciesRequest(inCpy)
8017			req.SetContext(ctx)
8018			req.ApplyOptions(opts...)
8019			return req, nil
8020		},
8021	}
8022
8023	cont := true
8024	for p.Next() && cont {
8025		cont = fn(p.Page().(*ListGroupPoliciesOutput), !p.HasNextPage())
8026	}
8027	return p.Err()
8028}
8029
8030const opListGroups = "ListGroups"
8031
8032// ListGroupsRequest generates a "aws/request.Request" representing the
8033// client's request for the ListGroups operation. The "output" return
8034// value will be populated with the request's response once the request complets
8035// successfuly.
8036//
8037// Use "Send" method on the returned Request to send the API call to the service.
8038// the "output" return value is not valid until after Send returns without error.
8039//
8040// See ListGroups for more information on using the ListGroups
8041// API call, and error handling.
8042//
8043// This method is useful when you want to inject custom logic or configuration
8044// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8045//
8046//
8047//    // Example sending a request using the ListGroupsRequest method.
8048//    req, resp := client.ListGroupsRequest(params)
8049//
8050//    err := req.Send()
8051//    if err == nil { // resp is now filled
8052//        fmt.Println(resp)
8053//    }
8054//
8055// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListGroups
8056func (c *IAM) ListGroupsRequest(input *ListGroupsInput) (req *request.Request, output *ListGroupsOutput) {
8057	op := &request.Operation{
8058		Name:       opListGroups,
8059		HTTPMethod: "POST",
8060		HTTPPath:   "/",
8061		Paginator: &request.Paginator{
8062			InputTokens:     []string{"Marker"},
8063			OutputTokens:    []string{"Marker"},
8064			LimitToken:      "MaxItems",
8065			TruncationToken: "IsTruncated",
8066		},
8067	}
8068
8069	if input == nil {
8070		input = &ListGroupsInput{}
8071	}
8072
8073	output = &ListGroupsOutput{}
8074	req = c.newRequest(op, input, output)
8075	return
8076}
8077
8078// ListGroups API operation for AWS Identity and Access Management.
8079//
8080// Lists the IAM groups that have the specified path prefix.
8081//
8082// You can paginate the results using the MaxItems and Marker parameters.
8083//
8084// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8085// with awserr.Error's Code and Message methods to get detailed information about
8086// the error.
8087//
8088// See the AWS API reference guide for AWS Identity and Access Management's
8089// API operation ListGroups for usage and error information.
8090//
8091// Returned Error Codes:
8092//   * ErrCodeServiceFailureException "ServiceFailure"
8093//   The request processing has failed because of an unknown error, exception
8094//   or failure.
8095//
8096// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListGroups
8097func (c *IAM) ListGroups(input *ListGroupsInput) (*ListGroupsOutput, error) {
8098	req, out := c.ListGroupsRequest(input)
8099	return out, req.Send()
8100}
8101
8102// ListGroupsWithContext is the same as ListGroups with the addition of
8103// the ability to pass a context and additional request options.
8104//
8105// See ListGroups for details on how to use this API operation.
8106//
8107// The context must be non-nil and will be used for request cancellation. If
8108// the context is nil a panic will occur. In the future the SDK may create
8109// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8110// for more information on using Contexts.
8111func (c *IAM) ListGroupsWithContext(ctx aws.Context, input *ListGroupsInput, opts ...request.Option) (*ListGroupsOutput, error) {
8112	req, out := c.ListGroupsRequest(input)
8113	req.SetContext(ctx)
8114	req.ApplyOptions(opts...)
8115	return out, req.Send()
8116}
8117
8118// ListGroupsPages iterates over the pages of a ListGroups operation,
8119// calling the "fn" function with the response data for each page. To stop
8120// iterating, return false from the fn function.
8121//
8122// See ListGroups method for more information on how to use this operation.
8123//
8124// Note: This operation can generate multiple requests to a service.
8125//
8126//    // Example iterating over at most 3 pages of a ListGroups operation.
8127//    pageNum := 0
8128//    err := client.ListGroupsPages(params,
8129//        func(page *ListGroupsOutput, lastPage bool) bool {
8130//            pageNum++
8131//            fmt.Println(page)
8132//            return pageNum <= 3
8133//        })
8134//
8135func (c *IAM) ListGroupsPages(input *ListGroupsInput, fn func(*ListGroupsOutput, bool) bool) error {
8136	return c.ListGroupsPagesWithContext(aws.BackgroundContext(), input, fn)
8137}
8138
8139// ListGroupsPagesWithContext same as ListGroupsPages except
8140// it takes a Context and allows setting request options on the pages.
8141//
8142// The context must be non-nil and will be used for request cancellation. If
8143// the context is nil a panic will occur. In the future the SDK may create
8144// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8145// for more information on using Contexts.
8146func (c *IAM) ListGroupsPagesWithContext(ctx aws.Context, input *ListGroupsInput, fn func(*ListGroupsOutput, bool) bool, opts ...request.Option) error {
8147	p := request.Pagination{
8148		NewRequest: func() (*request.Request, error) {
8149			var inCpy *ListGroupsInput
8150			if input != nil {
8151				tmp := *input
8152				inCpy = &tmp
8153			}
8154			req, _ := c.ListGroupsRequest(inCpy)
8155			req.SetContext(ctx)
8156			req.ApplyOptions(opts...)
8157			return req, nil
8158		},
8159	}
8160
8161	cont := true
8162	for p.Next() && cont {
8163		cont = fn(p.Page().(*ListGroupsOutput), !p.HasNextPage())
8164	}
8165	return p.Err()
8166}
8167
8168const opListGroupsForUser = "ListGroupsForUser"
8169
8170// ListGroupsForUserRequest generates a "aws/request.Request" representing the
8171// client's request for the ListGroupsForUser operation. The "output" return
8172// value will be populated with the request's response once the request complets
8173// successfuly.
8174//
8175// Use "Send" method on the returned Request to send the API call to the service.
8176// the "output" return value is not valid until after Send returns without error.
8177//
8178// See ListGroupsForUser for more information on using the ListGroupsForUser
8179// API call, and error handling.
8180//
8181// This method is useful when you want to inject custom logic or configuration
8182// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8183//
8184//
8185//    // Example sending a request using the ListGroupsForUserRequest method.
8186//    req, resp := client.ListGroupsForUserRequest(params)
8187//
8188//    err := req.Send()
8189//    if err == nil { // resp is now filled
8190//        fmt.Println(resp)
8191//    }
8192//
8193// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListGroupsForUser
8194func (c *IAM) ListGroupsForUserRequest(input *ListGroupsForUserInput) (req *request.Request, output *ListGroupsForUserOutput) {
8195	op := &request.Operation{
8196		Name:       opListGroupsForUser,
8197		HTTPMethod: "POST",
8198		HTTPPath:   "/",
8199		Paginator: &request.Paginator{
8200			InputTokens:     []string{"Marker"},
8201			OutputTokens:    []string{"Marker"},
8202			LimitToken:      "MaxItems",
8203			TruncationToken: "IsTruncated",
8204		},
8205	}
8206
8207	if input == nil {
8208		input = &ListGroupsForUserInput{}
8209	}
8210
8211	output = &ListGroupsForUserOutput{}
8212	req = c.newRequest(op, input, output)
8213	return
8214}
8215
8216// ListGroupsForUser API operation for AWS Identity and Access Management.
8217//
8218// Lists the IAM groups that the specified IAM user belongs to.
8219//
8220// You can paginate the results using the MaxItems and Marker parameters.
8221//
8222// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8223// with awserr.Error's Code and Message methods to get detailed information about
8224// the error.
8225//
8226// See the AWS API reference guide for AWS Identity and Access Management's
8227// API operation ListGroupsForUser for usage and error information.
8228//
8229// Returned Error Codes:
8230//   * ErrCodeNoSuchEntityException "NoSuchEntity"
8231//   The request was rejected because it referenced an entity that does not exist.
8232//   The error message describes the entity.
8233//
8234//   * ErrCodeServiceFailureException "ServiceFailure"
8235//   The request processing has failed because of an unknown error, exception
8236//   or failure.
8237//
8238// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListGroupsForUser
8239func (c *IAM) ListGroupsForUser(input *ListGroupsForUserInput) (*ListGroupsForUserOutput, error) {
8240	req, out := c.ListGroupsForUserRequest(input)
8241	return out, req.Send()
8242}
8243
8244// ListGroupsForUserWithContext is the same as ListGroupsForUser with the addition of
8245// the ability to pass a context and additional request options.
8246//
8247// See ListGroupsForUser for details on how to use this API operation.
8248//
8249// The context must be non-nil and will be used for request cancellation. If
8250// the context is nil a panic will occur. In the future the SDK may create
8251// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8252// for more information on using Contexts.
8253func (c *IAM) ListGroupsForUserWithContext(ctx aws.Context, input *ListGroupsForUserInput, opts ...request.Option) (*ListGroupsForUserOutput, error) {
8254	req, out := c.ListGroupsForUserRequest(input)
8255	req.SetContext(ctx)
8256	req.ApplyOptions(opts...)
8257	return out, req.Send()
8258}
8259
8260// ListGroupsForUserPages iterates over the pages of a ListGroupsForUser operation,
8261// calling the "fn" function with the response data for each page. To stop
8262// iterating, return false from the fn function.
8263//
8264// See ListGroupsForUser method for more information on how to use this operation.
8265//
8266// Note: This operation can generate multiple requests to a service.
8267//
8268//    // Example iterating over at most 3 pages of a ListGroupsForUser operation.
8269//    pageNum := 0
8270//    err := client.ListGroupsForUserPages(params,
8271//        func(page *ListGroupsForUserOutput, lastPage bool) bool {
8272//            pageNum++
8273//            fmt.Println(page)
8274//            return pageNum <= 3
8275//        })
8276//
8277func (c *IAM) ListGroupsForUserPages(input *ListGroupsForUserInput, fn func(*ListGroupsForUserOutput, bool) bool) error {
8278	return c.ListGroupsForUserPagesWithContext(aws.BackgroundContext(), input, fn)
8279}
8280
8281// ListGroupsForUserPagesWithContext same as ListGroupsForUserPages except
8282// it takes a Context and allows setting request options on the pages.
8283//
8284// The context must be non-nil and will be used for request cancellation. If
8285// the context is nil a panic will occur. In the future the SDK may create
8286// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8287// for more information on using Contexts.
8288func (c *IAM) ListGroupsForUserPagesWithContext(ctx aws.Context, input *ListGroupsForUserInput, fn func(*ListGroupsForUserOutput, bool) bool, opts ...request.Option) error {
8289	p := request.Pagination{
8290		NewRequest: func() (*request.Request, error) {
8291			var inCpy *ListGroupsForUserInput
8292			if input != nil {
8293				tmp := *input
8294				inCpy = &tmp
8295			}
8296			req, _ := c.ListGroupsForUserRequest(inCpy)
8297			req.SetContext(ctx)
8298			req.ApplyOptions(opts...)
8299			return req, nil
8300		},
8301	}
8302
8303	cont := true
8304	for p.Next() && cont {
8305		cont = fn(p.Page().(*ListGroupsForUserOutput), !p.HasNextPage())
8306	}
8307	return p.Err()
8308}
8309
8310const opListInstanceProfiles = "ListInstanceProfiles"
8311
8312// ListInstanceProfilesRequest generates a "aws/request.Request" representing the
8313// client's request for the ListInstanceProfiles operation. The "output" return
8314// value will be populated with the request's response once the request complets
8315// successfuly.
8316//
8317// Use "Send" method on the returned Request to send the API call to the service.
8318// the "output" return value is not valid until after Send returns without error.
8319//
8320// See ListInstanceProfiles for more information on using the ListInstanceProfiles
8321// API call, and error handling.
8322//
8323// This method is useful when you want to inject custom logic or configuration
8324// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8325//
8326//
8327//    // Example sending a request using the ListInstanceProfilesRequest method.
8328//    req, resp := client.ListInstanceProfilesRequest(params)
8329//
8330//    err := req.Send()
8331//    if err == nil { // resp is now filled
8332//        fmt.Println(resp)
8333//    }
8334//
8335// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListInstanceProfiles
8336func (c *IAM) ListInstanceProfilesRequest(input *ListInstanceProfilesInput) (req *request.Request, output *ListInstanceProfilesOutput) {
8337	op := &request.Operation{
8338		Name:       opListInstanceProfiles,
8339		HTTPMethod: "POST",
8340		HTTPPath:   "/",
8341		Paginator: &request.Paginator{
8342			InputTokens:     []string{"Marker"},
8343			OutputTokens:    []string{"Marker"},
8344			LimitToken:      "MaxItems",
8345			TruncationToken: "IsTruncated",
8346		},
8347	}
8348
8349	if input == nil {
8350		input = &ListInstanceProfilesInput{}
8351	}
8352
8353	output = &ListInstanceProfilesOutput{}
8354	req = c.newRequest(op, input, output)
8355	return
8356}
8357
8358// ListInstanceProfiles API operation for AWS Identity and Access Management.
8359//
8360// Lists the instance profiles that have the specified path prefix. If there
8361// are none, the action returns an empty list. For more information about instance
8362// profiles, go to About Instance Profiles (http://docs.aws.amazon.com/IAM/latest/UserGuide/AboutInstanceProfiles.html).
8363//
8364// You can paginate the results using the MaxItems and Marker parameters.
8365//
8366// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8367// with awserr.Error's Code and Message methods to get detailed information about
8368// the error.
8369//
8370// See the AWS API reference guide for AWS Identity and Access Management's
8371// API operation ListInstanceProfiles for usage and error information.
8372//
8373// Returned Error Codes:
8374//   * ErrCodeServiceFailureException "ServiceFailure"
8375//   The request processing has failed because of an unknown error, exception
8376//   or failure.
8377//
8378// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListInstanceProfiles
8379func (c *IAM) ListInstanceProfiles(input *ListInstanceProfilesInput) (*ListInstanceProfilesOutput, error) {
8380	req, out := c.ListInstanceProfilesRequest(input)
8381	return out, req.Send()
8382}
8383
8384// ListInstanceProfilesWithContext is the same as ListInstanceProfiles with the addition of
8385// the ability to pass a context and additional request options.
8386//
8387// See ListInstanceProfiles for details on how to use this API operation.
8388//
8389// The context must be non-nil and will be used for request cancellation. If
8390// the context is nil a panic will occur. In the future the SDK may create
8391// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8392// for more information on using Contexts.
8393func (c *IAM) ListInstanceProfilesWithContext(ctx aws.Context, input *ListInstanceProfilesInput, opts ...request.Option) (*ListInstanceProfilesOutput, error) {
8394	req, out := c.ListInstanceProfilesRequest(input)
8395	req.SetContext(ctx)
8396	req.ApplyOptions(opts...)
8397	return out, req.Send()
8398}
8399
8400// ListInstanceProfilesPages iterates over the pages of a ListInstanceProfiles operation,
8401// calling the "fn" function with the response data for each page. To stop
8402// iterating, return false from the fn function.
8403//
8404// See ListInstanceProfiles method for more information on how to use this operation.
8405//
8406// Note: This operation can generate multiple requests to a service.
8407//
8408//    // Example iterating over at most 3 pages of a ListInstanceProfiles operation.
8409//    pageNum := 0
8410//    err := client.ListInstanceProfilesPages(params,
8411//        func(page *ListInstanceProfilesOutput, lastPage bool) bool {
8412//            pageNum++
8413//            fmt.Println(page)
8414//            return pageNum <= 3
8415//        })
8416//
8417func (c *IAM) ListInstanceProfilesPages(input *ListInstanceProfilesInput, fn func(*ListInstanceProfilesOutput, bool) bool) error {
8418	return c.ListInstanceProfilesPagesWithContext(aws.BackgroundContext(), input, fn)
8419}
8420
8421// ListInstanceProfilesPagesWithContext same as ListInstanceProfilesPages except
8422// it takes a Context and allows setting request options on the pages.
8423//
8424// The context must be non-nil and will be used for request cancellation. If
8425// the context is nil a panic will occur. In the future the SDK may create
8426// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8427// for more information on using Contexts.
8428func (c *IAM) ListInstanceProfilesPagesWithContext(ctx aws.Context, input *ListInstanceProfilesInput, fn func(*ListInstanceProfilesOutput, bool) bool, opts ...request.Option) error {
8429	p := request.Pagination{
8430		NewRequest: func() (*request.Request, error) {
8431			var inCpy *ListInstanceProfilesInput
8432			if input != nil {
8433				tmp := *input
8434				inCpy = &tmp
8435			}
8436			req, _ := c.ListInstanceProfilesRequest(inCpy)
8437			req.SetContext(ctx)
8438			req.ApplyOptions(opts...)
8439			return req, nil
8440		},
8441	}
8442
8443	cont := true
8444	for p.Next() && cont {
8445		cont = fn(p.Page().(*ListInstanceProfilesOutput), !p.HasNextPage())
8446	}
8447	return p.Err()
8448}
8449
8450const opListInstanceProfilesForRole = "ListInstanceProfilesForRole"
8451
8452// ListInstanceProfilesForRoleRequest generates a "aws/request.Request" representing the
8453// client's request for the ListInstanceProfilesForRole operation. The "output" return
8454// value will be populated with the request's response once the request complets
8455// successfuly.
8456//
8457// Use "Send" method on the returned Request to send the API call to the service.
8458// the "output" return value is not valid until after Send returns without error.
8459//
8460// See ListInstanceProfilesForRole for more information on using the ListInstanceProfilesForRole
8461// API call, and error handling.
8462//
8463// This method is useful when you want to inject custom logic or configuration
8464// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8465//
8466//
8467//    // Example sending a request using the ListInstanceProfilesForRoleRequest method.
8468//    req, resp := client.ListInstanceProfilesForRoleRequest(params)
8469//
8470//    err := req.Send()
8471//    if err == nil { // resp is now filled
8472//        fmt.Println(resp)
8473//    }
8474//
8475// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListInstanceProfilesForRole
8476func (c *IAM) ListInstanceProfilesForRoleRequest(input *ListInstanceProfilesForRoleInput) (req *request.Request, output *ListInstanceProfilesForRoleOutput) {
8477	op := &request.Operation{
8478		Name:       opListInstanceProfilesForRole,
8479		HTTPMethod: "POST",
8480		HTTPPath:   "/",
8481		Paginator: &request.Paginator{
8482			InputTokens:     []string{"Marker"},
8483			OutputTokens:    []string{"Marker"},
8484			LimitToken:      "MaxItems",
8485			TruncationToken: "IsTruncated",
8486		},
8487	}
8488
8489	if input == nil {
8490		input = &ListInstanceProfilesForRoleInput{}
8491	}
8492
8493	output = &ListInstanceProfilesForRoleOutput{}
8494	req = c.newRequest(op, input, output)
8495	return
8496}
8497
8498// ListInstanceProfilesForRole API operation for AWS Identity and Access Management.
8499//
8500// Lists the instance profiles that have the specified associated IAM role.
8501// If there are none, the action returns an empty list. For more information
8502// about instance profiles, go to About Instance Profiles (http://docs.aws.amazon.com/IAM/latest/UserGuide/AboutInstanceProfiles.html).
8503//
8504// You can paginate the results using the MaxItems and Marker parameters.
8505//
8506// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8507// with awserr.Error's Code and Message methods to get detailed information about
8508// the error.
8509//
8510// See the AWS API reference guide for AWS Identity and Access Management's
8511// API operation ListInstanceProfilesForRole for usage and error information.
8512//
8513// Returned Error Codes:
8514//   * ErrCodeNoSuchEntityException "NoSuchEntity"
8515//   The request was rejected because it referenced an entity that does not exist.
8516//   The error message describes the entity.
8517//
8518//   * ErrCodeServiceFailureException "ServiceFailure"
8519//   The request processing has failed because of an unknown error, exception
8520//   or failure.
8521//
8522// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListInstanceProfilesForRole
8523func (c *IAM) ListInstanceProfilesForRole(input *ListInstanceProfilesForRoleInput) (*ListInstanceProfilesForRoleOutput, error) {
8524	req, out := c.ListInstanceProfilesForRoleRequest(input)
8525	return out, req.Send()
8526}
8527
8528// ListInstanceProfilesForRoleWithContext is the same as ListInstanceProfilesForRole with the addition of
8529// the ability to pass a context and additional request options.
8530//
8531// See ListInstanceProfilesForRole for details on how to use this API operation.
8532//
8533// The context must be non-nil and will be used for request cancellation. If
8534// the context is nil a panic will occur. In the future the SDK may create
8535// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8536// for more information on using Contexts.
8537func (c *IAM) ListInstanceProfilesForRoleWithContext(ctx aws.Context, input *ListInstanceProfilesForRoleInput, opts ...request.Option) (*ListInstanceProfilesForRoleOutput, error) {
8538	req, out := c.ListInstanceProfilesForRoleRequest(input)
8539	req.SetContext(ctx)
8540	req.ApplyOptions(opts...)
8541	return out, req.Send()
8542}
8543
8544// ListInstanceProfilesForRolePages iterates over the pages of a ListInstanceProfilesForRole operation,
8545// calling the "fn" function with the response data for each page. To stop
8546// iterating, return false from the fn function.
8547//
8548// See ListInstanceProfilesForRole method for more information on how to use this operation.
8549//
8550// Note: This operation can generate multiple requests to a service.
8551//
8552//    // Example iterating over at most 3 pages of a ListInstanceProfilesForRole operation.
8553//    pageNum := 0
8554//    err := client.ListInstanceProfilesForRolePages(params,
8555//        func(page *ListInstanceProfilesForRoleOutput, lastPage bool) bool {
8556//            pageNum++
8557//            fmt.Println(page)
8558//            return pageNum <= 3
8559//        })
8560//
8561func (c *IAM) ListInstanceProfilesForRolePages(input *ListInstanceProfilesForRoleInput, fn func(*ListInstanceProfilesForRoleOutput, bool) bool) error {
8562	return c.ListInstanceProfilesForRolePagesWithContext(aws.BackgroundContext(), input, fn)
8563}
8564
8565// ListInstanceProfilesForRolePagesWithContext same as ListInstanceProfilesForRolePages except
8566// it takes a Context and allows setting request options on the pages.
8567//
8568// The context must be non-nil and will be used for request cancellation. If
8569// the context is nil a panic will occur. In the future the SDK may create
8570// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8571// for more information on using Contexts.
8572func (c *IAM) ListInstanceProfilesForRolePagesWithContext(ctx aws.Context, input *ListInstanceProfilesForRoleInput, fn func(*ListInstanceProfilesForRoleOutput, bool) bool, opts ...request.Option) error {
8573	p := request.Pagination{
8574		NewRequest: func() (*request.Request, error) {
8575			var inCpy *ListInstanceProfilesForRoleInput
8576			if input != nil {
8577				tmp := *input
8578				inCpy = &tmp
8579			}
8580			req, _ := c.ListInstanceProfilesForRoleRequest(inCpy)
8581			req.SetContext(ctx)
8582			req.ApplyOptions(opts...)
8583			return req, nil
8584		},
8585	}
8586
8587	cont := true
8588	for p.Next() && cont {
8589		cont = fn(p.Page().(*ListInstanceProfilesForRoleOutput), !p.HasNextPage())
8590	}
8591	return p.Err()
8592}
8593
8594const opListMFADevices = "ListMFADevices"
8595
8596// ListMFADevicesRequest generates a "aws/request.Request" representing the
8597// client's request for the ListMFADevices operation. The "output" return
8598// value will be populated with the request's response once the request complets
8599// successfuly.
8600//
8601// Use "Send" method on the returned Request to send the API call to the service.
8602// the "output" return value is not valid until after Send returns without error.
8603//
8604// See ListMFADevices for more information on using the ListMFADevices
8605// API call, and error handling.
8606//
8607// This method is useful when you want to inject custom logic or configuration
8608// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8609//
8610//
8611//    // Example sending a request using the ListMFADevicesRequest method.
8612//    req, resp := client.ListMFADevicesRequest(params)
8613//
8614//    err := req.Send()
8615//    if err == nil { // resp is now filled
8616//        fmt.Println(resp)
8617//    }
8618//
8619// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListMFADevices
8620func (c *IAM) ListMFADevicesRequest(input *ListMFADevicesInput) (req *request.Request, output *ListMFADevicesOutput) {
8621	op := &request.Operation{
8622		Name:       opListMFADevices,
8623		HTTPMethod: "POST",
8624		HTTPPath:   "/",
8625		Paginator: &request.Paginator{
8626			InputTokens:     []string{"Marker"},
8627			OutputTokens:    []string{"Marker"},
8628			LimitToken:      "MaxItems",
8629			TruncationToken: "IsTruncated",
8630		},
8631	}
8632
8633	if input == nil {
8634		input = &ListMFADevicesInput{}
8635	}
8636
8637	output = &ListMFADevicesOutput{}
8638	req = c.newRequest(op, input, output)
8639	return
8640}
8641
8642// ListMFADevices API operation for AWS Identity and Access Management.
8643//
8644// Lists the MFA devices for an IAM user. If the request includes a IAM user
8645// name, then this action lists all the MFA devices associated with the specified
8646// user. If you do not specify a user name, IAM determines the user name implicitly
8647// based on the AWS access key ID signing the request for this API.
8648//
8649// You can paginate the results using the MaxItems and Marker parameters.
8650//
8651// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8652// with awserr.Error's Code and Message methods to get detailed information about
8653// the error.
8654//
8655// See the AWS API reference guide for AWS Identity and Access Management's
8656// API operation ListMFADevices for usage and error information.
8657//
8658// Returned Error Codes:
8659//   * ErrCodeNoSuchEntityException "NoSuchEntity"
8660//   The request was rejected because it referenced an entity that does not exist.
8661//   The error message describes the entity.
8662//
8663//   * ErrCodeServiceFailureException "ServiceFailure"
8664//   The request processing has failed because of an unknown error, exception
8665//   or failure.
8666//
8667// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListMFADevices
8668func (c *IAM) ListMFADevices(input *ListMFADevicesInput) (*ListMFADevicesOutput, error) {
8669	req, out := c.ListMFADevicesRequest(input)
8670	return out, req.Send()
8671}
8672
8673// ListMFADevicesWithContext is the same as ListMFADevices with the addition of
8674// the ability to pass a context and additional request options.
8675//
8676// See ListMFADevices for details on how to use this API operation.
8677//
8678// The context must be non-nil and will be used for request cancellation. If
8679// the context is nil a panic will occur. In the future the SDK may create
8680// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8681// for more information on using Contexts.
8682func (c *IAM) ListMFADevicesWithContext(ctx aws.Context, input *ListMFADevicesInput, opts ...request.Option) (*ListMFADevicesOutput, error) {
8683	req, out := c.ListMFADevicesRequest(input)
8684	req.SetContext(ctx)
8685	req.ApplyOptions(opts...)
8686	return out, req.Send()
8687}
8688
8689// ListMFADevicesPages iterates over the pages of a ListMFADevices operation,
8690// calling the "fn" function with the response data for each page. To stop
8691// iterating, return false from the fn function.
8692//
8693// See ListMFADevices method for more information on how to use this operation.
8694//
8695// Note: This operation can generate multiple requests to a service.
8696//
8697//    // Example iterating over at most 3 pages of a ListMFADevices operation.
8698//    pageNum := 0
8699//    err := client.ListMFADevicesPages(params,
8700//        func(page *ListMFADevicesOutput, lastPage bool) bool {
8701//            pageNum++
8702//            fmt.Println(page)
8703//            return pageNum <= 3
8704//        })
8705//
8706func (c *IAM) ListMFADevicesPages(input *ListMFADevicesInput, fn func(*ListMFADevicesOutput, bool) bool) error {
8707	return c.ListMFADevicesPagesWithContext(aws.BackgroundContext(), input, fn)
8708}
8709
8710// ListMFADevicesPagesWithContext same as ListMFADevicesPages except
8711// it takes a Context and allows setting request options on the pages.
8712//
8713// The context must be non-nil and will be used for request cancellation. If
8714// the context is nil a panic will occur. In the future the SDK may create
8715// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8716// for more information on using Contexts.
8717func (c *IAM) ListMFADevicesPagesWithContext(ctx aws.Context, input *ListMFADevicesInput, fn func(*ListMFADevicesOutput, bool) bool, opts ...request.Option) error {
8718	p := request.Pagination{
8719		NewRequest: func() (*request.Request, error) {
8720			var inCpy *ListMFADevicesInput
8721			if input != nil {
8722				tmp := *input
8723				inCpy = &tmp
8724			}
8725			req, _ := c.ListMFADevicesRequest(inCpy)
8726			req.SetContext(ctx)
8727			req.ApplyOptions(opts...)
8728			return req, nil
8729		},
8730	}
8731
8732	cont := true
8733	for p.Next() && cont {
8734		cont = fn(p.Page().(*ListMFADevicesOutput), !p.HasNextPage())
8735	}
8736	return p.Err()
8737}
8738
8739const opListOpenIDConnectProviders = "ListOpenIDConnectProviders"
8740
8741// ListOpenIDConnectProvidersRequest generates a "aws/request.Request" representing the
8742// client's request for the ListOpenIDConnectProviders operation. The "output" return
8743// value will be populated with the request's response once the request complets
8744// successfuly.
8745//
8746// Use "Send" method on the returned Request to send the API call to the service.
8747// the "output" return value is not valid until after Send returns without error.
8748//
8749// See ListOpenIDConnectProviders for more information on using the ListOpenIDConnectProviders
8750// API call, and error handling.
8751//
8752// This method is useful when you want to inject custom logic or configuration
8753// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8754//
8755//
8756//    // Example sending a request using the ListOpenIDConnectProvidersRequest method.
8757//    req, resp := client.ListOpenIDConnectProvidersRequest(params)
8758//
8759//    err := req.Send()
8760//    if err == nil { // resp is now filled
8761//        fmt.Println(resp)
8762//    }
8763//
8764// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListOpenIDConnectProviders
8765func (c *IAM) ListOpenIDConnectProvidersRequest(input *ListOpenIDConnectProvidersInput) (req *request.Request, output *ListOpenIDConnectProvidersOutput) {
8766	op := &request.Operation{
8767		Name:       opListOpenIDConnectProviders,
8768		HTTPMethod: "POST",
8769		HTTPPath:   "/",
8770	}
8771
8772	if input == nil {
8773		input = &ListOpenIDConnectProvidersInput{}
8774	}
8775
8776	output = &ListOpenIDConnectProvidersOutput{}
8777	req = c.newRequest(op, input, output)
8778	return
8779}
8780
8781// ListOpenIDConnectProviders API operation for AWS Identity and Access Management.
8782//
8783// Lists information about the IAM OpenID Connect (OIDC) provider resource objects
8784// defined in the AWS account.
8785//
8786// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8787// with awserr.Error's Code and Message methods to get detailed information about
8788// the error.
8789//
8790// See the AWS API reference guide for AWS Identity and Access Management's
8791// API operation ListOpenIDConnectProviders for usage and error information.
8792//
8793// Returned Error Codes:
8794//   * ErrCodeServiceFailureException "ServiceFailure"
8795//   The request processing has failed because of an unknown error, exception
8796//   or failure.
8797//
8798// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListOpenIDConnectProviders
8799func (c *IAM) ListOpenIDConnectProviders(input *ListOpenIDConnectProvidersInput) (*ListOpenIDConnectProvidersOutput, error) {
8800	req, out := c.ListOpenIDConnectProvidersRequest(input)
8801	return out, req.Send()
8802}
8803
8804// ListOpenIDConnectProvidersWithContext is the same as ListOpenIDConnectProviders with the addition of
8805// the ability to pass a context and additional request options.
8806//
8807// See ListOpenIDConnectProviders for details on how to use this API operation.
8808//
8809// The context must be non-nil and will be used for request cancellation. If
8810// the context is nil a panic will occur. In the future the SDK may create
8811// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8812// for more information on using Contexts.
8813func (c *IAM) ListOpenIDConnectProvidersWithContext(ctx aws.Context, input *ListOpenIDConnectProvidersInput, opts ...request.Option) (*ListOpenIDConnectProvidersOutput, error) {
8814	req, out := c.ListOpenIDConnectProvidersRequest(input)
8815	req.SetContext(ctx)
8816	req.ApplyOptions(opts...)
8817	return out, req.Send()
8818}
8819
8820const opListPolicies = "ListPolicies"
8821
8822// ListPoliciesRequest generates a "aws/request.Request" representing the
8823// client's request for the ListPolicies operation. The "output" return
8824// value will be populated with the request's response once the request complets
8825// successfuly.
8826//
8827// Use "Send" method on the returned Request to send the API call to the service.
8828// the "output" return value is not valid until after Send returns without error.
8829//
8830// See ListPolicies for more information on using the ListPolicies
8831// API call, and error handling.
8832//
8833// This method is useful when you want to inject custom logic or configuration
8834// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8835//
8836//
8837//    // Example sending a request using the ListPoliciesRequest method.
8838//    req, resp := client.ListPoliciesRequest(params)
8839//
8840//    err := req.Send()
8841//    if err == nil { // resp is now filled
8842//        fmt.Println(resp)
8843//    }
8844//
8845// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListPolicies
8846func (c *IAM) ListPoliciesRequest(input *ListPoliciesInput) (req *request.Request, output *ListPoliciesOutput) {
8847	op := &request.Operation{
8848		Name:       opListPolicies,
8849		HTTPMethod: "POST",
8850		HTTPPath:   "/",
8851		Paginator: &request.Paginator{
8852			InputTokens:     []string{"Marker"},
8853			OutputTokens:    []string{"Marker"},
8854			LimitToken:      "MaxItems",
8855			TruncationToken: "IsTruncated",
8856		},
8857	}
8858
8859	if input == nil {
8860		input = &ListPoliciesInput{}
8861	}
8862
8863	output = &ListPoliciesOutput{}
8864	req = c.newRequest(op, input, output)
8865	return
8866}
8867
8868// ListPolicies API operation for AWS Identity and Access Management.
8869//
8870// Lists all the managed policies that are available in your AWS account, including
8871// your own customer-defined managed policies and all AWS managed policies.
8872//
8873// You can filter the list of policies that is returned using the optional OnlyAttached,
8874// Scope, and PathPrefix parameters. For example, to list only the customer
8875// managed policies in your AWS account, set Scope to Local. To list only AWS
8876// managed policies, set Scope to AWS.
8877//
8878// You can paginate the results using the MaxItems and Marker parameters.
8879//
8880// For more information about managed policies, see Managed Policies and Inline
8881// Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
8882// in the IAM User Guide.
8883//
8884// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8885// with awserr.Error's Code and Message methods to get detailed information about
8886// the error.
8887//
8888// See the AWS API reference guide for AWS Identity and Access Management's
8889// API operation ListPolicies for usage and error information.
8890//
8891// Returned Error Codes:
8892//   * ErrCodeServiceFailureException "ServiceFailure"
8893//   The request processing has failed because of an unknown error, exception
8894//   or failure.
8895//
8896// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListPolicies
8897func (c *IAM) ListPolicies(input *ListPoliciesInput) (*ListPoliciesOutput, error) {
8898	req, out := c.ListPoliciesRequest(input)
8899	return out, req.Send()
8900}
8901
8902// ListPoliciesWithContext is the same as ListPolicies with the addition of
8903// the ability to pass a context and additional request options.
8904//
8905// See ListPolicies for details on how to use this API operation.
8906//
8907// The context must be non-nil and will be used for request cancellation. If
8908// the context is nil a panic will occur. In the future the SDK may create
8909// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8910// for more information on using Contexts.
8911func (c *IAM) ListPoliciesWithContext(ctx aws.Context, input *ListPoliciesInput, opts ...request.Option) (*ListPoliciesOutput, error) {
8912	req, out := c.ListPoliciesRequest(input)
8913	req.SetContext(ctx)
8914	req.ApplyOptions(opts...)
8915	return out, req.Send()
8916}
8917
8918// ListPoliciesPages iterates over the pages of a ListPolicies operation,
8919// calling the "fn" function with the response data for each page. To stop
8920// iterating, return false from the fn function.
8921//
8922// See ListPolicies method for more information on how to use this operation.
8923//
8924// Note: This operation can generate multiple requests to a service.
8925//
8926//    // Example iterating over at most 3 pages of a ListPolicies operation.
8927//    pageNum := 0
8928//    err := client.ListPoliciesPages(params,
8929//        func(page *ListPoliciesOutput, lastPage bool) bool {
8930//            pageNum++
8931//            fmt.Println(page)
8932//            return pageNum <= 3
8933//        })
8934//
8935func (c *IAM) ListPoliciesPages(input *ListPoliciesInput, fn func(*ListPoliciesOutput, bool) bool) error {
8936	return c.ListPoliciesPagesWithContext(aws.BackgroundContext(), input, fn)
8937}
8938
8939// ListPoliciesPagesWithContext same as ListPoliciesPages except
8940// it takes a Context and allows setting request options on the pages.
8941//
8942// The context must be non-nil and will be used for request cancellation. If
8943// the context is nil a panic will occur. In the future the SDK may create
8944// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8945// for more information on using Contexts.
8946func (c *IAM) ListPoliciesPagesWithContext(ctx aws.Context, input *ListPoliciesInput, fn func(*ListPoliciesOutput, bool) bool, opts ...request.Option) error {
8947	p := request.Pagination{
8948		NewRequest: func() (*request.Request, error) {
8949			var inCpy *ListPoliciesInput
8950			if input != nil {
8951				tmp := *input
8952				inCpy = &tmp
8953			}
8954			req, _ := c.ListPoliciesRequest(inCpy)
8955			req.SetContext(ctx)
8956			req.ApplyOptions(opts...)
8957			return req, nil
8958		},
8959	}
8960
8961	cont := true
8962	for p.Next() && cont {
8963		cont = fn(p.Page().(*ListPoliciesOutput), !p.HasNextPage())
8964	}
8965	return p.Err()
8966}
8967
8968const opListPolicyVersions = "ListPolicyVersions"
8969
8970// ListPolicyVersionsRequest generates a "aws/request.Request" representing the
8971// client's request for the ListPolicyVersions operation. The "output" return
8972// value will be populated with the request's response once the request complets
8973// successfuly.
8974//
8975// Use "Send" method on the returned Request to send the API call to the service.
8976// the "output" return value is not valid until after Send returns without error.
8977//
8978// See ListPolicyVersions for more information on using the ListPolicyVersions
8979// API call, and error handling.
8980//
8981// This method is useful when you want to inject custom logic or configuration
8982// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8983//
8984//
8985//    // Example sending a request using the ListPolicyVersionsRequest method.
8986//    req, resp := client.ListPolicyVersionsRequest(params)
8987//
8988//    err := req.Send()
8989//    if err == nil { // resp is now filled
8990//        fmt.Println(resp)
8991//    }
8992//
8993// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListPolicyVersions
8994func (c *IAM) ListPolicyVersionsRequest(input *ListPolicyVersionsInput) (req *request.Request, output *ListPolicyVersionsOutput) {
8995	op := &request.Operation{
8996		Name:       opListPolicyVersions,
8997		HTTPMethod: "POST",
8998		HTTPPath:   "/",
8999		Paginator: &request.Paginator{
9000			InputTokens:     []string{"Marker"},
9001			OutputTokens:    []string{"Marker"},
9002			LimitToken:      "MaxItems",
9003			TruncationToken: "IsTruncated",
9004		},
9005	}
9006
9007	if input == nil {
9008		input = &ListPolicyVersionsInput{}
9009	}
9010
9011	output = &ListPolicyVersionsOutput{}
9012	req = c.newRequest(op, input, output)
9013	return
9014}
9015
9016// ListPolicyVersions API operation for AWS Identity and Access Management.
9017//
9018// Lists information about the versions of the specified managed policy, including
9019// the version that is currently set as the policy's default version.
9020//
9021// For more information about managed policies, see Managed Policies and Inline
9022// Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
9023// in the IAM User Guide.
9024//
9025// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9026// with awserr.Error's Code and Message methods to get detailed information about
9027// the error.
9028//
9029// See the AWS API reference guide for AWS Identity and Access Management's
9030// API operation ListPolicyVersions for usage and error information.
9031//
9032// Returned Error Codes:
9033//   * ErrCodeNoSuchEntityException "NoSuchEntity"
9034//   The request was rejected because it referenced an entity that does not exist.
9035//   The error message describes the entity.
9036//
9037//   * ErrCodeInvalidInputException "InvalidInput"
9038//   The request was rejected because an invalid or out-of-range value was supplied
9039//   for an input parameter.
9040//
9041//   * ErrCodeServiceFailureException "ServiceFailure"
9042//   The request processing has failed because of an unknown error, exception
9043//   or failure.
9044//
9045// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListPolicyVersions
9046func (c *IAM) ListPolicyVersions(input *ListPolicyVersionsInput) (*ListPolicyVersionsOutput, error) {
9047	req, out := c.ListPolicyVersionsRequest(input)
9048	return out, req.Send()
9049}
9050
9051// ListPolicyVersionsWithContext is the same as ListPolicyVersions with the addition of
9052// the ability to pass a context and additional request options.
9053//
9054// See ListPolicyVersions for details on how to use this API operation.
9055//
9056// The context must be non-nil and will be used for request cancellation. If
9057// the context is nil a panic will occur. In the future the SDK may create
9058// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9059// for more information on using Contexts.
9060func (c *IAM) ListPolicyVersionsWithContext(ctx aws.Context, input *ListPolicyVersionsInput, opts ...request.Option) (*ListPolicyVersionsOutput, error) {
9061	req, out := c.ListPolicyVersionsRequest(input)
9062	req.SetContext(ctx)
9063	req.ApplyOptions(opts...)
9064	return out, req.Send()
9065}
9066
9067// ListPolicyVersionsPages iterates over the pages of a ListPolicyVersions operation,
9068// calling the "fn" function with the response data for each page. To stop
9069// iterating, return false from the fn function.
9070//
9071// See ListPolicyVersions method for more information on how to use this operation.
9072//
9073// Note: This operation can generate multiple requests to a service.
9074//
9075//    // Example iterating over at most 3 pages of a ListPolicyVersions operation.
9076//    pageNum := 0
9077//    err := client.ListPolicyVersionsPages(params,
9078//        func(page *ListPolicyVersionsOutput, lastPage bool) bool {
9079//            pageNum++
9080//            fmt.Println(page)
9081//            return pageNum <= 3
9082//        })
9083//
9084func (c *IAM) ListPolicyVersionsPages(input *ListPolicyVersionsInput, fn func(*ListPolicyVersionsOutput, bool) bool) error {
9085	return c.ListPolicyVersionsPagesWithContext(aws.BackgroundContext(), input, fn)
9086}
9087
9088// ListPolicyVersionsPagesWithContext same as ListPolicyVersionsPages except
9089// it takes a Context and allows setting request options on the pages.
9090//
9091// The context must be non-nil and will be used for request cancellation. If
9092// the context is nil a panic will occur. In the future the SDK may create
9093// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9094// for more information on using Contexts.
9095func (c *IAM) ListPolicyVersionsPagesWithContext(ctx aws.Context, input *ListPolicyVersionsInput, fn func(*ListPolicyVersionsOutput, bool) bool, opts ...request.Option) error {
9096	p := request.Pagination{
9097		NewRequest: func() (*request.Request, error) {
9098			var inCpy *ListPolicyVersionsInput
9099			if input != nil {
9100				tmp := *input
9101				inCpy = &tmp
9102			}
9103			req, _ := c.ListPolicyVersionsRequest(inCpy)
9104			req.SetContext(ctx)
9105			req.ApplyOptions(opts...)
9106			return req, nil
9107		},
9108	}
9109
9110	cont := true
9111	for p.Next() && cont {
9112		cont = fn(p.Page().(*ListPolicyVersionsOutput), !p.HasNextPage())
9113	}
9114	return p.Err()
9115}
9116
9117const opListRolePolicies = "ListRolePolicies"
9118
9119// ListRolePoliciesRequest generates a "aws/request.Request" representing the
9120// client's request for the ListRolePolicies operation. The "output" return
9121// value will be populated with the request's response once the request complets
9122// successfuly.
9123//
9124// Use "Send" method on the returned Request to send the API call to the service.
9125// the "output" return value is not valid until after Send returns without error.
9126//
9127// See ListRolePolicies for more information on using the ListRolePolicies
9128// API call, and error handling.
9129//
9130// This method is useful when you want to inject custom logic or configuration
9131// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9132//
9133//
9134//    // Example sending a request using the ListRolePoliciesRequest method.
9135//    req, resp := client.ListRolePoliciesRequest(params)
9136//
9137//    err := req.Send()
9138//    if err == nil { // resp is now filled
9139//        fmt.Println(resp)
9140//    }
9141//
9142// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListRolePolicies
9143func (c *IAM) ListRolePoliciesRequest(input *ListRolePoliciesInput) (req *request.Request, output *ListRolePoliciesOutput) {
9144	op := &request.Operation{
9145		Name:       opListRolePolicies,
9146		HTTPMethod: "POST",
9147		HTTPPath:   "/",
9148		Paginator: &request.Paginator{
9149			InputTokens:     []string{"Marker"},
9150			OutputTokens:    []string{"Marker"},
9151			LimitToken:      "MaxItems",
9152			TruncationToken: "IsTruncated",
9153		},
9154	}
9155
9156	if input == nil {
9157		input = &ListRolePoliciesInput{}
9158	}
9159
9160	output = &ListRolePoliciesOutput{}
9161	req = c.newRequest(op, input, output)
9162	return
9163}
9164
9165// ListRolePolicies API operation for AWS Identity and Access Management.
9166//
9167// Lists the names of the inline policies that are embedded in the specified
9168// IAM role.
9169//
9170// An IAM role can also have managed policies attached to it. To list the managed
9171// policies that are attached to a role, use ListAttachedRolePolicies. For more
9172// information about policies, see Managed Policies and Inline Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
9173// in the IAM User Guide.
9174//
9175// You can paginate the results using the MaxItems and Marker parameters. If
9176// there are no inline policies embedded with the specified role, the action
9177// returns an empty list.
9178//
9179// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9180// with awserr.Error's Code and Message methods to get detailed information about
9181// the error.
9182//
9183// See the AWS API reference guide for AWS Identity and Access Management's
9184// API operation ListRolePolicies for usage and error information.
9185//
9186// Returned Error Codes:
9187//   * ErrCodeNoSuchEntityException "NoSuchEntity"
9188//   The request was rejected because it referenced an entity that does not exist.
9189//   The error message describes the entity.
9190//
9191//   * ErrCodeServiceFailureException "ServiceFailure"
9192//   The request processing has failed because of an unknown error, exception
9193//   or failure.
9194//
9195// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListRolePolicies
9196func (c *IAM) ListRolePolicies(input *ListRolePoliciesInput) (*ListRolePoliciesOutput, error) {
9197	req, out := c.ListRolePoliciesRequest(input)
9198	return out, req.Send()
9199}
9200
9201// ListRolePoliciesWithContext is the same as ListRolePolicies with the addition of
9202// the ability to pass a context and additional request options.
9203//
9204// See ListRolePolicies for details on how to use this API operation.
9205//
9206// The context must be non-nil and will be used for request cancellation. If
9207// the context is nil a panic will occur. In the future the SDK may create
9208// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9209// for more information on using Contexts.
9210func (c *IAM) ListRolePoliciesWithContext(ctx aws.Context, input *ListRolePoliciesInput, opts ...request.Option) (*ListRolePoliciesOutput, error) {
9211	req, out := c.ListRolePoliciesRequest(input)
9212	req.SetContext(ctx)
9213	req.ApplyOptions(opts...)
9214	return out, req.Send()
9215}
9216
9217// ListRolePoliciesPages iterates over the pages of a ListRolePolicies operation,
9218// calling the "fn" function with the response data for each page. To stop
9219// iterating, return false from the fn function.
9220//
9221// See ListRolePolicies method for more information on how to use this operation.
9222//
9223// Note: This operation can generate multiple requests to a service.
9224//
9225//    // Example iterating over at most 3 pages of a ListRolePolicies operation.
9226//    pageNum := 0
9227//    err := client.ListRolePoliciesPages(params,
9228//        func(page *ListRolePoliciesOutput, lastPage bool) bool {
9229//            pageNum++
9230//            fmt.Println(page)
9231//            return pageNum <= 3
9232//        })
9233//
9234func (c *IAM) ListRolePoliciesPages(input *ListRolePoliciesInput, fn func(*ListRolePoliciesOutput, bool) bool) error {
9235	return c.ListRolePoliciesPagesWithContext(aws.BackgroundContext(), input, fn)
9236}
9237
9238// ListRolePoliciesPagesWithContext same as ListRolePoliciesPages except
9239// it takes a Context and allows setting request options on the pages.
9240//
9241// The context must be non-nil and will be used for request cancellation. If
9242// the context is nil a panic will occur. In the future the SDK may create
9243// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9244// for more information on using Contexts.
9245func (c *IAM) ListRolePoliciesPagesWithContext(ctx aws.Context, input *ListRolePoliciesInput, fn func(*ListRolePoliciesOutput, bool) bool, opts ...request.Option) error {
9246	p := request.Pagination{
9247		NewRequest: func() (*request.Request, error) {
9248			var inCpy *ListRolePoliciesInput
9249			if input != nil {
9250				tmp := *input
9251				inCpy = &tmp
9252			}
9253			req, _ := c.ListRolePoliciesRequest(inCpy)
9254			req.SetContext(ctx)
9255			req.ApplyOptions(opts...)
9256			return req, nil
9257		},
9258	}
9259
9260	cont := true
9261	for p.Next() && cont {
9262		cont = fn(p.Page().(*ListRolePoliciesOutput), !p.HasNextPage())
9263	}
9264	return p.Err()
9265}
9266
9267const opListRoles = "ListRoles"
9268
9269// ListRolesRequest generates a "aws/request.Request" representing the
9270// client's request for the ListRoles operation. The "output" return
9271// value will be populated with the request's response once the request complets
9272// successfuly.
9273//
9274// Use "Send" method on the returned Request to send the API call to the service.
9275// the "output" return value is not valid until after Send returns without error.
9276//
9277// See ListRoles for more information on using the ListRoles
9278// API call, and error handling.
9279//
9280// This method is useful when you want to inject custom logic or configuration
9281// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9282//
9283//
9284//    // Example sending a request using the ListRolesRequest method.
9285//    req, resp := client.ListRolesRequest(params)
9286//
9287//    err := req.Send()
9288//    if err == nil { // resp is now filled
9289//        fmt.Println(resp)
9290//    }
9291//
9292// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListRoles
9293func (c *IAM) ListRolesRequest(input *ListRolesInput) (req *request.Request, output *ListRolesOutput) {
9294	op := &request.Operation{
9295		Name:       opListRoles,
9296		HTTPMethod: "POST",
9297		HTTPPath:   "/",
9298		Paginator: &request.Paginator{
9299			InputTokens:     []string{"Marker"},
9300			OutputTokens:    []string{"Marker"},
9301			LimitToken:      "MaxItems",
9302			TruncationToken: "IsTruncated",
9303		},
9304	}
9305
9306	if input == nil {
9307		input = &ListRolesInput{}
9308	}
9309
9310	output = &ListRolesOutput{}
9311	req = c.newRequest(op, input, output)
9312	return
9313}
9314
9315// ListRoles API operation for AWS Identity and Access Management.
9316//
9317// Lists the IAM roles that have the specified path prefix. If there are none,
9318// the action returns an empty list. For more information about roles, go to
9319// Working with Roles (http://docs.aws.amazon.com/IAM/latest/UserGuide/WorkingWithRoles.html).
9320//
9321// You can paginate the results using the MaxItems and Marker parameters.
9322//
9323// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9324// with awserr.Error's Code and Message methods to get detailed information about
9325// the error.
9326//
9327// See the AWS API reference guide for AWS Identity and Access Management's
9328// API operation ListRoles for usage and error information.
9329//
9330// Returned Error Codes:
9331//   * ErrCodeServiceFailureException "ServiceFailure"
9332//   The request processing has failed because of an unknown error, exception
9333//   or failure.
9334//
9335// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListRoles
9336func (c *IAM) ListRoles(input *ListRolesInput) (*ListRolesOutput, error) {
9337	req, out := c.ListRolesRequest(input)
9338	return out, req.Send()
9339}
9340
9341// ListRolesWithContext is the same as ListRoles with the addition of
9342// the ability to pass a context and additional request options.
9343//
9344// See ListRoles for details on how to use this API operation.
9345//
9346// The context must be non-nil and will be used for request cancellation. If
9347// the context is nil a panic will occur. In the future the SDK may create
9348// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9349// for more information on using Contexts.
9350func (c *IAM) ListRolesWithContext(ctx aws.Context, input *ListRolesInput, opts ...request.Option) (*ListRolesOutput, error) {
9351	req, out := c.ListRolesRequest(input)
9352	req.SetContext(ctx)
9353	req.ApplyOptions(opts...)
9354	return out, req.Send()
9355}
9356
9357// ListRolesPages iterates over the pages of a ListRoles operation,
9358// calling the "fn" function with the response data for each page. To stop
9359// iterating, return false from the fn function.
9360//
9361// See ListRoles method for more information on how to use this operation.
9362//
9363// Note: This operation can generate multiple requests to a service.
9364//
9365//    // Example iterating over at most 3 pages of a ListRoles operation.
9366//    pageNum := 0
9367//    err := client.ListRolesPages(params,
9368//        func(page *ListRolesOutput, lastPage bool) bool {
9369//            pageNum++
9370//            fmt.Println(page)
9371//            return pageNum <= 3
9372//        })
9373//
9374func (c *IAM) ListRolesPages(input *ListRolesInput, fn func(*ListRolesOutput, bool) bool) error {
9375	return c.ListRolesPagesWithContext(aws.BackgroundContext(), input, fn)
9376}
9377
9378// ListRolesPagesWithContext same as ListRolesPages except
9379// it takes a Context and allows setting request options on the pages.
9380//
9381// The context must be non-nil and will be used for request cancellation. If
9382// the context is nil a panic will occur. In the future the SDK may create
9383// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9384// for more information on using Contexts.
9385func (c *IAM) ListRolesPagesWithContext(ctx aws.Context, input *ListRolesInput, fn func(*ListRolesOutput, bool) bool, opts ...request.Option) error {
9386	p := request.Pagination{
9387		NewRequest: func() (*request.Request, error) {
9388			var inCpy *ListRolesInput
9389			if input != nil {
9390				tmp := *input
9391				inCpy = &tmp
9392			}
9393			req, _ := c.ListRolesRequest(inCpy)
9394			req.SetContext(ctx)
9395			req.ApplyOptions(opts...)
9396			return req, nil
9397		},
9398	}
9399
9400	cont := true
9401	for p.Next() && cont {
9402		cont = fn(p.Page().(*ListRolesOutput), !p.HasNextPage())
9403	}
9404	return p.Err()
9405}
9406
9407const opListSAMLProviders = "ListSAMLProviders"
9408
9409// ListSAMLProvidersRequest generates a "aws/request.Request" representing the
9410// client's request for the ListSAMLProviders operation. The "output" return
9411// value will be populated with the request's response once the request complets
9412// successfuly.
9413//
9414// Use "Send" method on the returned Request to send the API call to the service.
9415// the "output" return value is not valid until after Send returns without error.
9416//
9417// See ListSAMLProviders for more information on using the ListSAMLProviders
9418// API call, and error handling.
9419//
9420// This method is useful when you want to inject custom logic or configuration
9421// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9422//
9423//
9424//    // Example sending a request using the ListSAMLProvidersRequest method.
9425//    req, resp := client.ListSAMLProvidersRequest(params)
9426//
9427//    err := req.Send()
9428//    if err == nil { // resp is now filled
9429//        fmt.Println(resp)
9430//    }
9431//
9432// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListSAMLProviders
9433func (c *IAM) ListSAMLProvidersRequest(input *ListSAMLProvidersInput) (req *request.Request, output *ListSAMLProvidersOutput) {
9434	op := &request.Operation{
9435		Name:       opListSAMLProviders,
9436		HTTPMethod: "POST",
9437		HTTPPath:   "/",
9438	}
9439
9440	if input == nil {
9441		input = &ListSAMLProvidersInput{}
9442	}
9443
9444	output = &ListSAMLProvidersOutput{}
9445	req = c.newRequest(op, input, output)
9446	return
9447}
9448
9449// ListSAMLProviders API operation for AWS Identity and Access Management.
9450//
9451// Lists the SAML provider resource objects defined in IAM in the account.
9452//
9453// This operation requires Signature Version 4 (http://docs.aws.amazon.com/general/latest/gr/signature-version-4.html).
9454//
9455// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9456// with awserr.Error's Code and Message methods to get detailed information about
9457// the error.
9458//
9459// See the AWS API reference guide for AWS Identity and Access Management's
9460// API operation ListSAMLProviders for usage and error information.
9461//
9462// Returned Error Codes:
9463//   * ErrCodeServiceFailureException "ServiceFailure"
9464//   The request processing has failed because of an unknown error, exception
9465//   or failure.
9466//
9467// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListSAMLProviders
9468func (c *IAM) ListSAMLProviders(input *ListSAMLProvidersInput) (*ListSAMLProvidersOutput, error) {
9469	req, out := c.ListSAMLProvidersRequest(input)
9470	return out, req.Send()
9471}
9472
9473// ListSAMLProvidersWithContext is the same as ListSAMLProviders with the addition of
9474// the ability to pass a context and additional request options.
9475//
9476// See ListSAMLProviders for details on how to use this API operation.
9477//
9478// The context must be non-nil and will be used for request cancellation. If
9479// the context is nil a panic will occur. In the future the SDK may create
9480// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9481// for more information on using Contexts.
9482func (c *IAM) ListSAMLProvidersWithContext(ctx aws.Context, input *ListSAMLProvidersInput, opts ...request.Option) (*ListSAMLProvidersOutput, error) {
9483	req, out := c.ListSAMLProvidersRequest(input)
9484	req.SetContext(ctx)
9485	req.ApplyOptions(opts...)
9486	return out, req.Send()
9487}
9488
9489const opListSSHPublicKeys = "ListSSHPublicKeys"
9490
9491// ListSSHPublicKeysRequest generates a "aws/request.Request" representing the
9492// client's request for the ListSSHPublicKeys operation. The "output" return
9493// value will be populated with the request's response once the request complets
9494// successfuly.
9495//
9496// Use "Send" method on the returned Request to send the API call to the service.
9497// the "output" return value is not valid until after Send returns without error.
9498//
9499// See ListSSHPublicKeys for more information on using the ListSSHPublicKeys
9500// API call, and error handling.
9501//
9502// This method is useful when you want to inject custom logic or configuration
9503// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9504//
9505//
9506//    // Example sending a request using the ListSSHPublicKeysRequest method.
9507//    req, resp := client.ListSSHPublicKeysRequest(params)
9508//
9509//    err := req.Send()
9510//    if err == nil { // resp is now filled
9511//        fmt.Println(resp)
9512//    }
9513//
9514// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListSSHPublicKeys
9515func (c *IAM) ListSSHPublicKeysRequest(input *ListSSHPublicKeysInput) (req *request.Request, output *ListSSHPublicKeysOutput) {
9516	op := &request.Operation{
9517		Name:       opListSSHPublicKeys,
9518		HTTPMethod: "POST",
9519		HTTPPath:   "/",
9520		Paginator: &request.Paginator{
9521			InputTokens:     []string{"Marker"},
9522			OutputTokens:    []string{"Marker"},
9523			LimitToken:      "MaxItems",
9524			TruncationToken: "IsTruncated",
9525		},
9526	}
9527
9528	if input == nil {
9529		input = &ListSSHPublicKeysInput{}
9530	}
9531
9532	output = &ListSSHPublicKeysOutput{}
9533	req = c.newRequest(op, input, output)
9534	return
9535}
9536
9537// ListSSHPublicKeys API operation for AWS Identity and Access Management.
9538//
9539// Returns information about the SSH public keys associated with the specified
9540// IAM user. If there are none, the action returns an empty list.
9541//
9542// The SSH public keys returned by this action are used only for authenticating
9543// the IAM user to an AWS CodeCommit repository. For more information about
9544// using SSH keys to authenticate to an AWS CodeCommit repository, see Set up
9545// AWS CodeCommit for SSH Connections (http://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-credentials-ssh.html)
9546// in the AWS CodeCommit User Guide.
9547//
9548// Although each user is limited to a small number of keys, you can still paginate
9549// the results using the MaxItems and Marker parameters.
9550//
9551// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9552// with awserr.Error's Code and Message methods to get detailed information about
9553// the error.
9554//
9555// See the AWS API reference guide for AWS Identity and Access Management's
9556// API operation ListSSHPublicKeys for usage and error information.
9557//
9558// Returned Error Codes:
9559//   * ErrCodeNoSuchEntityException "NoSuchEntity"
9560//   The request was rejected because it referenced an entity that does not exist.
9561//   The error message describes the entity.
9562//
9563// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListSSHPublicKeys
9564func (c *IAM) ListSSHPublicKeys(input *ListSSHPublicKeysInput) (*ListSSHPublicKeysOutput, error) {
9565	req, out := c.ListSSHPublicKeysRequest(input)
9566	return out, req.Send()
9567}
9568
9569// ListSSHPublicKeysWithContext is the same as ListSSHPublicKeys with the addition of
9570// the ability to pass a context and additional request options.
9571//
9572// See ListSSHPublicKeys for details on how to use this API operation.
9573//
9574// The context must be non-nil and will be used for request cancellation. If
9575// the context is nil a panic will occur. In the future the SDK may create
9576// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9577// for more information on using Contexts.
9578func (c *IAM) ListSSHPublicKeysWithContext(ctx aws.Context, input *ListSSHPublicKeysInput, opts ...request.Option) (*ListSSHPublicKeysOutput, error) {
9579	req, out := c.ListSSHPublicKeysRequest(input)
9580	req.SetContext(ctx)
9581	req.ApplyOptions(opts...)
9582	return out, req.Send()
9583}
9584
9585// ListSSHPublicKeysPages iterates over the pages of a ListSSHPublicKeys operation,
9586// calling the "fn" function with the response data for each page. To stop
9587// iterating, return false from the fn function.
9588//
9589// See ListSSHPublicKeys method for more information on how to use this operation.
9590//
9591// Note: This operation can generate multiple requests to a service.
9592//
9593//    // Example iterating over at most 3 pages of a ListSSHPublicKeys operation.
9594//    pageNum := 0
9595//    err := client.ListSSHPublicKeysPages(params,
9596//        func(page *ListSSHPublicKeysOutput, lastPage bool) bool {
9597//            pageNum++
9598//            fmt.Println(page)
9599//            return pageNum <= 3
9600//        })
9601//
9602func (c *IAM) ListSSHPublicKeysPages(input *ListSSHPublicKeysInput, fn func(*ListSSHPublicKeysOutput, bool) bool) error {
9603	return c.ListSSHPublicKeysPagesWithContext(aws.BackgroundContext(), input, fn)
9604}
9605
9606// ListSSHPublicKeysPagesWithContext same as ListSSHPublicKeysPages except
9607// it takes a Context and allows setting request options on the pages.
9608//
9609// The context must be non-nil and will be used for request cancellation. If
9610// the context is nil a panic will occur. In the future the SDK may create
9611// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9612// for more information on using Contexts.
9613func (c *IAM) ListSSHPublicKeysPagesWithContext(ctx aws.Context, input *ListSSHPublicKeysInput, fn func(*ListSSHPublicKeysOutput, bool) bool, opts ...request.Option) error {
9614	p := request.Pagination{
9615		NewRequest: func() (*request.Request, error) {
9616			var inCpy *ListSSHPublicKeysInput
9617			if input != nil {
9618				tmp := *input
9619				inCpy = &tmp
9620			}
9621			req, _ := c.ListSSHPublicKeysRequest(inCpy)
9622			req.SetContext(ctx)
9623			req.ApplyOptions(opts...)
9624			return req, nil
9625		},
9626	}
9627
9628	cont := true
9629	for p.Next() && cont {
9630		cont = fn(p.Page().(*ListSSHPublicKeysOutput), !p.HasNextPage())
9631	}
9632	return p.Err()
9633}
9634
9635const opListServerCertificates = "ListServerCertificates"
9636
9637// ListServerCertificatesRequest generates a "aws/request.Request" representing the
9638// client's request for the ListServerCertificates operation. The "output" return
9639// value will be populated with the request's response once the request complets
9640// successfuly.
9641//
9642// Use "Send" method on the returned Request to send the API call to the service.
9643// the "output" return value is not valid until after Send returns without error.
9644//
9645// See ListServerCertificates for more information on using the ListServerCertificates
9646// API call, and error handling.
9647//
9648// This method is useful when you want to inject custom logic or configuration
9649// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9650//
9651//
9652//    // Example sending a request using the ListServerCertificatesRequest method.
9653//    req, resp := client.ListServerCertificatesRequest(params)
9654//
9655//    err := req.Send()
9656//    if err == nil { // resp is now filled
9657//        fmt.Println(resp)
9658//    }
9659//
9660// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListServerCertificates
9661func (c *IAM) ListServerCertificatesRequest(input *ListServerCertificatesInput) (req *request.Request, output *ListServerCertificatesOutput) {
9662	op := &request.Operation{
9663		Name:       opListServerCertificates,
9664		HTTPMethod: "POST",
9665		HTTPPath:   "/",
9666		Paginator: &request.Paginator{
9667			InputTokens:     []string{"Marker"},
9668			OutputTokens:    []string{"Marker"},
9669			LimitToken:      "MaxItems",
9670			TruncationToken: "IsTruncated",
9671		},
9672	}
9673
9674	if input == nil {
9675		input = &ListServerCertificatesInput{}
9676	}
9677
9678	output = &ListServerCertificatesOutput{}
9679	req = c.newRequest(op, input, output)
9680	return
9681}
9682
9683// ListServerCertificates API operation for AWS Identity and Access Management.
9684//
9685// Lists the server certificates stored in IAM that have the specified path
9686// prefix. If none exist, the action returns an empty list.
9687//
9688// You can paginate the results using the MaxItems and Marker parameters.
9689//
9690// For more information about working with server certificates, including a
9691// list of AWS services that can use the server certificates that you manage
9692// with IAM, go to Working with Server Certificates (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html)
9693// in the IAM User Guide.
9694//
9695// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9696// with awserr.Error's Code and Message methods to get detailed information about
9697// the error.
9698//
9699// See the AWS API reference guide for AWS Identity and Access Management's
9700// API operation ListServerCertificates for usage and error information.
9701//
9702// Returned Error Codes:
9703//   * ErrCodeServiceFailureException "ServiceFailure"
9704//   The request processing has failed because of an unknown error, exception
9705//   or failure.
9706//
9707// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListServerCertificates
9708func (c *IAM) ListServerCertificates(input *ListServerCertificatesInput) (*ListServerCertificatesOutput, error) {
9709	req, out := c.ListServerCertificatesRequest(input)
9710	return out, req.Send()
9711}
9712
9713// ListServerCertificatesWithContext is the same as ListServerCertificates with the addition of
9714// the ability to pass a context and additional request options.
9715//
9716// See ListServerCertificates for details on how to use this API operation.
9717//
9718// The context must be non-nil and will be used for request cancellation. If
9719// the context is nil a panic will occur. In the future the SDK may create
9720// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9721// for more information on using Contexts.
9722func (c *IAM) ListServerCertificatesWithContext(ctx aws.Context, input *ListServerCertificatesInput, opts ...request.Option) (*ListServerCertificatesOutput, error) {
9723	req, out := c.ListServerCertificatesRequest(input)
9724	req.SetContext(ctx)
9725	req.ApplyOptions(opts...)
9726	return out, req.Send()
9727}
9728
9729// ListServerCertificatesPages iterates over the pages of a ListServerCertificates operation,
9730// calling the "fn" function with the response data for each page. To stop
9731// iterating, return false from the fn function.
9732//
9733// See ListServerCertificates method for more information on how to use this operation.
9734//
9735// Note: This operation can generate multiple requests to a service.
9736//
9737//    // Example iterating over at most 3 pages of a ListServerCertificates operation.
9738//    pageNum := 0
9739//    err := client.ListServerCertificatesPages(params,
9740//        func(page *ListServerCertificatesOutput, lastPage bool) bool {
9741//            pageNum++
9742//            fmt.Println(page)
9743//            return pageNum <= 3
9744//        })
9745//
9746func (c *IAM) ListServerCertificatesPages(input *ListServerCertificatesInput, fn func(*ListServerCertificatesOutput, bool) bool) error {
9747	return c.ListServerCertificatesPagesWithContext(aws.BackgroundContext(), input, fn)
9748}
9749
9750// ListServerCertificatesPagesWithContext same as ListServerCertificatesPages except
9751// it takes a Context and allows setting request options on the pages.
9752//
9753// The context must be non-nil and will be used for request cancellation. If
9754// the context is nil a panic will occur. In the future the SDK may create
9755// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9756// for more information on using Contexts.
9757func (c *IAM) ListServerCertificatesPagesWithContext(ctx aws.Context, input *ListServerCertificatesInput, fn func(*ListServerCertificatesOutput, bool) bool, opts ...request.Option) error {
9758	p := request.Pagination{
9759		NewRequest: func() (*request.Request, error) {
9760			var inCpy *ListServerCertificatesInput
9761			if input != nil {
9762				tmp := *input
9763				inCpy = &tmp
9764			}
9765			req, _ := c.ListServerCertificatesRequest(inCpy)
9766			req.SetContext(ctx)
9767			req.ApplyOptions(opts...)
9768			return req, nil
9769		},
9770	}
9771
9772	cont := true
9773	for p.Next() && cont {
9774		cont = fn(p.Page().(*ListServerCertificatesOutput), !p.HasNextPage())
9775	}
9776	return p.Err()
9777}
9778
9779const opListServiceSpecificCredentials = "ListServiceSpecificCredentials"
9780
9781// ListServiceSpecificCredentialsRequest generates a "aws/request.Request" representing the
9782// client's request for the ListServiceSpecificCredentials operation. The "output" return
9783// value will be populated with the request's response once the request complets
9784// successfuly.
9785//
9786// Use "Send" method on the returned Request to send the API call to the service.
9787// the "output" return value is not valid until after Send returns without error.
9788//
9789// See ListServiceSpecificCredentials for more information on using the ListServiceSpecificCredentials
9790// API call, and error handling.
9791//
9792// This method is useful when you want to inject custom logic or configuration
9793// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9794//
9795//
9796//    // Example sending a request using the ListServiceSpecificCredentialsRequest method.
9797//    req, resp := client.ListServiceSpecificCredentialsRequest(params)
9798//
9799//    err := req.Send()
9800//    if err == nil { // resp is now filled
9801//        fmt.Println(resp)
9802//    }
9803//
9804// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListServiceSpecificCredentials
9805func (c *IAM) ListServiceSpecificCredentialsRequest(input *ListServiceSpecificCredentialsInput) (req *request.Request, output *ListServiceSpecificCredentialsOutput) {
9806	op := &request.Operation{
9807		Name:       opListServiceSpecificCredentials,
9808		HTTPMethod: "POST",
9809		HTTPPath:   "/",
9810	}
9811
9812	if input == nil {
9813		input = &ListServiceSpecificCredentialsInput{}
9814	}
9815
9816	output = &ListServiceSpecificCredentialsOutput{}
9817	req = c.newRequest(op, input, output)
9818	return
9819}
9820
9821// ListServiceSpecificCredentials API operation for AWS Identity and Access Management.
9822//
9823// Returns information about the service-specific credentials associated with
9824// the specified IAM user. If there are none, the action returns an empty list.
9825// The service-specific credentials returned by this action are used only for
9826// authenticating the IAM user to a specific service. For more information about
9827// using service-specific credentials to authenticate to an AWS service, see
9828// Set Up service-specific credentials (http://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-gc.html)
9829// in the AWS CodeCommit User Guide.
9830//
9831// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9832// with awserr.Error's Code and Message methods to get detailed information about
9833// the error.
9834//
9835// See the AWS API reference guide for AWS Identity and Access Management's
9836// API operation ListServiceSpecificCredentials for usage and error information.
9837//
9838// Returned Error Codes:
9839//   * ErrCodeNoSuchEntityException "NoSuchEntity"
9840//   The request was rejected because it referenced an entity that does not exist.
9841//   The error message describes the entity.
9842//
9843//   * ErrCodeServiceNotSupportedException "NotSupportedService"
9844//   The specified service does not support service-specific credentials.
9845//
9846// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListServiceSpecificCredentials
9847func (c *IAM) ListServiceSpecificCredentials(input *ListServiceSpecificCredentialsInput) (*ListServiceSpecificCredentialsOutput, error) {
9848	req, out := c.ListServiceSpecificCredentialsRequest(input)
9849	return out, req.Send()
9850}
9851
9852// ListServiceSpecificCredentialsWithContext is the same as ListServiceSpecificCredentials with the addition of
9853// the ability to pass a context and additional request options.
9854//
9855// See ListServiceSpecificCredentials for details on how to use this API operation.
9856//
9857// The context must be non-nil and will be used for request cancellation. If
9858// the context is nil a panic will occur. In the future the SDK may create
9859// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9860// for more information on using Contexts.
9861func (c *IAM) ListServiceSpecificCredentialsWithContext(ctx aws.Context, input *ListServiceSpecificCredentialsInput, opts ...request.Option) (*ListServiceSpecificCredentialsOutput, error) {
9862	req, out := c.ListServiceSpecificCredentialsRequest(input)
9863	req.SetContext(ctx)
9864	req.ApplyOptions(opts...)
9865	return out, req.Send()
9866}
9867
9868const opListSigningCertificates = "ListSigningCertificates"
9869
9870// ListSigningCertificatesRequest generates a "aws/request.Request" representing the
9871// client's request for the ListSigningCertificates operation. The "output" return
9872// value will be populated with the request's response once the request complets
9873// successfuly.
9874//
9875// Use "Send" method on the returned Request to send the API call to the service.
9876// the "output" return value is not valid until after Send returns without error.
9877//
9878// See ListSigningCertificates for more information on using the ListSigningCertificates
9879// API call, and error handling.
9880//
9881// This method is useful when you want to inject custom logic or configuration
9882// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9883//
9884//
9885//    // Example sending a request using the ListSigningCertificatesRequest method.
9886//    req, resp := client.ListSigningCertificatesRequest(params)
9887//
9888//    err := req.Send()
9889//    if err == nil { // resp is now filled
9890//        fmt.Println(resp)
9891//    }
9892//
9893// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListSigningCertificates
9894func (c *IAM) ListSigningCertificatesRequest(input *ListSigningCertificatesInput) (req *request.Request, output *ListSigningCertificatesOutput) {
9895	op := &request.Operation{
9896		Name:       opListSigningCertificates,
9897		HTTPMethod: "POST",
9898		HTTPPath:   "/",
9899		Paginator: &request.Paginator{
9900			InputTokens:     []string{"Marker"},
9901			OutputTokens:    []string{"Marker"},
9902			LimitToken:      "MaxItems",
9903			TruncationToken: "IsTruncated",
9904		},
9905	}
9906
9907	if input == nil {
9908		input = &ListSigningCertificatesInput{}
9909	}
9910
9911	output = &ListSigningCertificatesOutput{}
9912	req = c.newRequest(op, input, output)
9913	return
9914}
9915
9916// ListSigningCertificates API operation for AWS Identity and Access Management.
9917//
9918// Returns information about the signing certificates associated with the specified
9919// IAM user. If there are none, the action returns an empty list.
9920//
9921// Although each user is limited to a small number of signing certificates,
9922// you can still paginate the results using the MaxItems and Marker parameters.
9923//
9924// If the UserName field is not specified, the user name is determined implicitly
9925// based on the AWS access key ID used to sign the request for this API. Because
9926// this action works for access keys under the AWS account, you can use this
9927// action to manage root credentials even if the AWS account has no associated
9928// users.
9929//
9930// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9931// with awserr.Error's Code and Message methods to get detailed information about
9932// the error.
9933//
9934// See the AWS API reference guide for AWS Identity and Access Management's
9935// API operation ListSigningCertificates for usage and error information.
9936//
9937// Returned Error Codes:
9938//   * ErrCodeNoSuchEntityException "NoSuchEntity"
9939//   The request was rejected because it referenced an entity that does not exist.
9940//   The error message describes the entity.
9941//
9942//   * ErrCodeServiceFailureException "ServiceFailure"
9943//   The request processing has failed because of an unknown error, exception
9944//   or failure.
9945//
9946// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListSigningCertificates
9947func (c *IAM) ListSigningCertificates(input *ListSigningCertificatesInput) (*ListSigningCertificatesOutput, error) {
9948	req, out := c.ListSigningCertificatesRequest(input)
9949	return out, req.Send()
9950}
9951
9952// ListSigningCertificatesWithContext is the same as ListSigningCertificates with the addition of
9953// the ability to pass a context and additional request options.
9954//
9955// See ListSigningCertificates for details on how to use this API operation.
9956//
9957// The context must be non-nil and will be used for request cancellation. If
9958// the context is nil a panic will occur. In the future the SDK may create
9959// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9960// for more information on using Contexts.
9961func (c *IAM) ListSigningCertificatesWithContext(ctx aws.Context, input *ListSigningCertificatesInput, opts ...request.Option) (*ListSigningCertificatesOutput, error) {
9962	req, out := c.ListSigningCertificatesRequest(input)
9963	req.SetContext(ctx)
9964	req.ApplyOptions(opts...)
9965	return out, req.Send()
9966}
9967
9968// ListSigningCertificatesPages iterates over the pages of a ListSigningCertificates operation,
9969// calling the "fn" function with the response data for each page. To stop
9970// iterating, return false from the fn function.
9971//
9972// See ListSigningCertificates method for more information on how to use this operation.
9973//
9974// Note: This operation can generate multiple requests to a service.
9975//
9976//    // Example iterating over at most 3 pages of a ListSigningCertificates operation.
9977//    pageNum := 0
9978//    err := client.ListSigningCertificatesPages(params,
9979//        func(page *ListSigningCertificatesOutput, lastPage bool) bool {
9980//            pageNum++
9981//            fmt.Println(page)
9982//            return pageNum <= 3
9983//        })
9984//
9985func (c *IAM) ListSigningCertificatesPages(input *ListSigningCertificatesInput, fn func(*ListSigningCertificatesOutput, bool) bool) error {
9986	return c.ListSigningCertificatesPagesWithContext(aws.BackgroundContext(), input, fn)
9987}
9988
9989// ListSigningCertificatesPagesWithContext same as ListSigningCertificatesPages except
9990// it takes a Context and allows setting request options on the pages.
9991//
9992// The context must be non-nil and will be used for request cancellation. If
9993// the context is nil a panic will occur. In the future the SDK may create
9994// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9995// for more information on using Contexts.
9996func (c *IAM) ListSigningCertificatesPagesWithContext(ctx aws.Context, input *ListSigningCertificatesInput, fn func(*ListSigningCertificatesOutput, bool) bool, opts ...request.Option) error {
9997	p := request.Pagination{
9998		NewRequest: func() (*request.Request, error) {
9999			var inCpy *ListSigningCertificatesInput
10000			if input != nil {
10001				tmp := *input
10002				inCpy = &tmp
10003			}
10004			req, _ := c.ListSigningCertificatesRequest(inCpy)
10005			req.SetContext(ctx)
10006			req.ApplyOptions(opts...)
10007			return req, nil
10008		},
10009	}
10010
10011	cont := true
10012	for p.Next() && cont {
10013		cont = fn(p.Page().(*ListSigningCertificatesOutput), !p.HasNextPage())
10014	}
10015	return p.Err()
10016}
10017
10018const opListUserPolicies = "ListUserPolicies"
10019
10020// ListUserPoliciesRequest generates a "aws/request.Request" representing the
10021// client's request for the ListUserPolicies operation. The "output" return
10022// value will be populated with the request's response once the request complets
10023// successfuly.
10024//
10025// Use "Send" method on the returned Request to send the API call to the service.
10026// the "output" return value is not valid until after Send returns without error.
10027//
10028// See ListUserPolicies for more information on using the ListUserPolicies
10029// API call, and error handling.
10030//
10031// This method is useful when you want to inject custom logic or configuration
10032// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10033//
10034//
10035//    // Example sending a request using the ListUserPoliciesRequest method.
10036//    req, resp := client.ListUserPoliciesRequest(params)
10037//
10038//    err := req.Send()
10039//    if err == nil { // resp is now filled
10040//        fmt.Println(resp)
10041//    }
10042//
10043// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListUserPolicies
10044func (c *IAM) ListUserPoliciesRequest(input *ListUserPoliciesInput) (req *request.Request, output *ListUserPoliciesOutput) {
10045	op := &request.Operation{
10046		Name:       opListUserPolicies,
10047		HTTPMethod: "POST",
10048		HTTPPath:   "/",
10049		Paginator: &request.Paginator{
10050			InputTokens:     []string{"Marker"},
10051			OutputTokens:    []string{"Marker"},
10052			LimitToken:      "MaxItems",
10053			TruncationToken: "IsTruncated",
10054		},
10055	}
10056
10057	if input == nil {
10058		input = &ListUserPoliciesInput{}
10059	}
10060
10061	output = &ListUserPoliciesOutput{}
10062	req = c.newRequest(op, input, output)
10063	return
10064}
10065
10066// ListUserPolicies API operation for AWS Identity and Access Management.
10067//
10068// Lists the names of the inline policies embedded in the specified IAM user.
10069//
10070// An IAM user can also have managed policies attached to it. To list the managed
10071// policies that are attached to a user, use ListAttachedUserPolicies. For more
10072// information about policies, see Managed Policies and Inline Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
10073// in the IAM User Guide.
10074//
10075// You can paginate the results using the MaxItems and Marker parameters. If
10076// there are no inline policies embedded with the specified user, the action
10077// returns an empty list.
10078//
10079// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10080// with awserr.Error's Code and Message methods to get detailed information about
10081// the error.
10082//
10083// See the AWS API reference guide for AWS Identity and Access Management's
10084// API operation ListUserPolicies for usage and error information.
10085//
10086// Returned Error Codes:
10087//   * ErrCodeNoSuchEntityException "NoSuchEntity"
10088//   The request was rejected because it referenced an entity that does not exist.
10089//   The error message describes the entity.
10090//
10091//   * ErrCodeServiceFailureException "ServiceFailure"
10092//   The request processing has failed because of an unknown error, exception
10093//   or failure.
10094//
10095// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListUserPolicies
10096func (c *IAM) ListUserPolicies(input *ListUserPoliciesInput) (*ListUserPoliciesOutput, error) {
10097	req, out := c.ListUserPoliciesRequest(input)
10098	return out, req.Send()
10099}
10100
10101// ListUserPoliciesWithContext is the same as ListUserPolicies with the addition of
10102// the ability to pass a context and additional request options.
10103//
10104// See ListUserPolicies for details on how to use this API operation.
10105//
10106// The context must be non-nil and will be used for request cancellation. If
10107// the context is nil a panic will occur. In the future the SDK may create
10108// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10109// for more information on using Contexts.
10110func (c *IAM) ListUserPoliciesWithContext(ctx aws.Context, input *ListUserPoliciesInput, opts ...request.Option) (*ListUserPoliciesOutput, error) {
10111	req, out := c.ListUserPoliciesRequest(input)
10112	req.SetContext(ctx)
10113	req.ApplyOptions(opts...)
10114	return out, req.Send()
10115}
10116
10117// ListUserPoliciesPages iterates over the pages of a ListUserPolicies operation,
10118// calling the "fn" function with the response data for each page. To stop
10119// iterating, return false from the fn function.
10120//
10121// See ListUserPolicies method for more information on how to use this operation.
10122//
10123// Note: This operation can generate multiple requests to a service.
10124//
10125//    // Example iterating over at most 3 pages of a ListUserPolicies operation.
10126//    pageNum := 0
10127//    err := client.ListUserPoliciesPages(params,
10128//        func(page *ListUserPoliciesOutput, lastPage bool) bool {
10129//            pageNum++
10130//            fmt.Println(page)
10131//            return pageNum <= 3
10132//        })
10133//
10134func (c *IAM) ListUserPoliciesPages(input *ListUserPoliciesInput, fn func(*ListUserPoliciesOutput, bool) bool) error {
10135	return c.ListUserPoliciesPagesWithContext(aws.BackgroundContext(), input, fn)
10136}
10137
10138// ListUserPoliciesPagesWithContext same as ListUserPoliciesPages except
10139// it takes a Context and allows setting request options on the pages.
10140//
10141// The context must be non-nil and will be used for request cancellation. If
10142// the context is nil a panic will occur. In the future the SDK may create
10143// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10144// for more information on using Contexts.
10145func (c *IAM) ListUserPoliciesPagesWithContext(ctx aws.Context, input *ListUserPoliciesInput, fn func(*ListUserPoliciesOutput, bool) bool, opts ...request.Option) error {
10146	p := request.Pagination{
10147		NewRequest: func() (*request.Request, error) {
10148			var inCpy *ListUserPoliciesInput
10149			if input != nil {
10150				tmp := *input
10151				inCpy = &tmp
10152			}
10153			req, _ := c.ListUserPoliciesRequest(inCpy)
10154			req.SetContext(ctx)
10155			req.ApplyOptions(opts...)
10156			return req, nil
10157		},
10158	}
10159
10160	cont := true
10161	for p.Next() && cont {
10162		cont = fn(p.Page().(*ListUserPoliciesOutput), !p.HasNextPage())
10163	}
10164	return p.Err()
10165}
10166
10167const opListUsers = "ListUsers"
10168
10169// ListUsersRequest generates a "aws/request.Request" representing the
10170// client's request for the ListUsers operation. The "output" return
10171// value will be populated with the request's response once the request complets
10172// successfuly.
10173//
10174// Use "Send" method on the returned Request to send the API call to the service.
10175// the "output" return value is not valid until after Send returns without error.
10176//
10177// See ListUsers for more information on using the ListUsers
10178// API call, and error handling.
10179//
10180// This method is useful when you want to inject custom logic or configuration
10181// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10182//
10183//
10184//    // Example sending a request using the ListUsersRequest method.
10185//    req, resp := client.ListUsersRequest(params)
10186//
10187//    err := req.Send()
10188//    if err == nil { // resp is now filled
10189//        fmt.Println(resp)
10190//    }
10191//
10192// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListUsers
10193func (c *IAM) ListUsersRequest(input *ListUsersInput) (req *request.Request, output *ListUsersOutput) {
10194	op := &request.Operation{
10195		Name:       opListUsers,
10196		HTTPMethod: "POST",
10197		HTTPPath:   "/",
10198		Paginator: &request.Paginator{
10199			InputTokens:     []string{"Marker"},
10200			OutputTokens:    []string{"Marker"},
10201			LimitToken:      "MaxItems",
10202			TruncationToken: "IsTruncated",
10203		},
10204	}
10205
10206	if input == nil {
10207		input = &ListUsersInput{}
10208	}
10209
10210	output = &ListUsersOutput{}
10211	req = c.newRequest(op, input, output)
10212	return
10213}
10214
10215// ListUsers API operation for AWS Identity and Access Management.
10216//
10217// Lists the IAM users that have the specified path prefix. If no path prefix
10218// is specified, the action returns all users in the AWS account. If there are
10219// none, the action returns an empty list.
10220//
10221// You can paginate the results using the MaxItems and Marker parameters.
10222//
10223// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10224// with awserr.Error's Code and Message methods to get detailed information about
10225// the error.
10226//
10227// See the AWS API reference guide for AWS Identity and Access Management's
10228// API operation ListUsers for usage and error information.
10229//
10230// Returned Error Codes:
10231//   * ErrCodeServiceFailureException "ServiceFailure"
10232//   The request processing has failed because of an unknown error, exception
10233//   or failure.
10234//
10235// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListUsers
10236func (c *IAM) ListUsers(input *ListUsersInput) (*ListUsersOutput, error) {
10237	req, out := c.ListUsersRequest(input)
10238	return out, req.Send()
10239}
10240
10241// ListUsersWithContext is the same as ListUsers with the addition of
10242// the ability to pass a context and additional request options.
10243//
10244// See ListUsers for details on how to use this API operation.
10245//
10246// The context must be non-nil and will be used for request cancellation. If
10247// the context is nil a panic will occur. In the future the SDK may create
10248// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10249// for more information on using Contexts.
10250func (c *IAM) ListUsersWithContext(ctx aws.Context, input *ListUsersInput, opts ...request.Option) (*ListUsersOutput, error) {
10251	req, out := c.ListUsersRequest(input)
10252	req.SetContext(ctx)
10253	req.ApplyOptions(opts...)
10254	return out, req.Send()
10255}
10256
10257// ListUsersPages iterates over the pages of a ListUsers operation,
10258// calling the "fn" function with the response data for each page. To stop
10259// iterating, return false from the fn function.
10260//
10261// See ListUsers method for more information on how to use this operation.
10262//
10263// Note: This operation can generate multiple requests to a service.
10264//
10265//    // Example iterating over at most 3 pages of a ListUsers operation.
10266//    pageNum := 0
10267//    err := client.ListUsersPages(params,
10268//        func(page *ListUsersOutput, lastPage bool) bool {
10269//            pageNum++
10270//            fmt.Println(page)
10271//            return pageNum <= 3
10272//        })
10273//
10274func (c *IAM) ListUsersPages(input *ListUsersInput, fn func(*ListUsersOutput, bool) bool) error {
10275	return c.ListUsersPagesWithContext(aws.BackgroundContext(), input, fn)
10276}
10277
10278// ListUsersPagesWithContext same as ListUsersPages except
10279// it takes a Context and allows setting request options on the pages.
10280//
10281// The context must be non-nil and will be used for request cancellation. If
10282// the context is nil a panic will occur. In the future the SDK may create
10283// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10284// for more information on using Contexts.
10285func (c *IAM) ListUsersPagesWithContext(ctx aws.Context, input *ListUsersInput, fn func(*ListUsersOutput, bool) bool, opts ...request.Option) error {
10286	p := request.Pagination{
10287		NewRequest: func() (*request.Request, error) {
10288			var inCpy *ListUsersInput
10289			if input != nil {
10290				tmp := *input
10291				inCpy = &tmp
10292			}
10293			req, _ := c.ListUsersRequest(inCpy)
10294			req.SetContext(ctx)
10295			req.ApplyOptions(opts...)
10296			return req, nil
10297		},
10298	}
10299
10300	cont := true
10301	for p.Next() && cont {
10302		cont = fn(p.Page().(*ListUsersOutput), !p.HasNextPage())
10303	}
10304	return p.Err()
10305}
10306
10307const opListVirtualMFADevices = "ListVirtualMFADevices"
10308
10309// ListVirtualMFADevicesRequest generates a "aws/request.Request" representing the
10310// client's request for the ListVirtualMFADevices operation. The "output" return
10311// value will be populated with the request's response once the request complets
10312// successfuly.
10313//
10314// Use "Send" method on the returned Request to send the API call to the service.
10315// the "output" return value is not valid until after Send returns without error.
10316//
10317// See ListVirtualMFADevices for more information on using the ListVirtualMFADevices
10318// API call, and error handling.
10319//
10320// This method is useful when you want to inject custom logic or configuration
10321// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10322//
10323//
10324//    // Example sending a request using the ListVirtualMFADevicesRequest method.
10325//    req, resp := client.ListVirtualMFADevicesRequest(params)
10326//
10327//    err := req.Send()
10328//    if err == nil { // resp is now filled
10329//        fmt.Println(resp)
10330//    }
10331//
10332// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListVirtualMFADevices
10333func (c *IAM) ListVirtualMFADevicesRequest(input *ListVirtualMFADevicesInput) (req *request.Request, output *ListVirtualMFADevicesOutput) {
10334	op := &request.Operation{
10335		Name:       opListVirtualMFADevices,
10336		HTTPMethod: "POST",
10337		HTTPPath:   "/",
10338		Paginator: &request.Paginator{
10339			InputTokens:     []string{"Marker"},
10340			OutputTokens:    []string{"Marker"},
10341			LimitToken:      "MaxItems",
10342			TruncationToken: "IsTruncated",
10343		},
10344	}
10345
10346	if input == nil {
10347		input = &ListVirtualMFADevicesInput{}
10348	}
10349
10350	output = &ListVirtualMFADevicesOutput{}
10351	req = c.newRequest(op, input, output)
10352	return
10353}
10354
10355// ListVirtualMFADevices API operation for AWS Identity and Access Management.
10356//
10357// Lists the virtual MFA devices defined in the AWS account by assignment status.
10358// If you do not specify an assignment status, the action returns a list of
10359// all virtual MFA devices. Assignment status can be Assigned, Unassigned, or
10360// Any.
10361//
10362// You can paginate the results using the MaxItems and Marker parameters.
10363//
10364// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10365// with awserr.Error's Code and Message methods to get detailed information about
10366// the error.
10367//
10368// See the AWS API reference guide for AWS Identity and Access Management's
10369// API operation ListVirtualMFADevices for usage and error information.
10370// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListVirtualMFADevices
10371func (c *IAM) ListVirtualMFADevices(input *ListVirtualMFADevicesInput) (*ListVirtualMFADevicesOutput, error) {
10372	req, out := c.ListVirtualMFADevicesRequest(input)
10373	return out, req.Send()
10374}
10375
10376// ListVirtualMFADevicesWithContext is the same as ListVirtualMFADevices with the addition of
10377// the ability to pass a context and additional request options.
10378//
10379// See ListVirtualMFADevices for details on how to use this API operation.
10380//
10381// The context must be non-nil and will be used for request cancellation. If
10382// the context is nil a panic will occur. In the future the SDK may create
10383// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10384// for more information on using Contexts.
10385func (c *IAM) ListVirtualMFADevicesWithContext(ctx aws.Context, input *ListVirtualMFADevicesInput, opts ...request.Option) (*ListVirtualMFADevicesOutput, error) {
10386	req, out := c.ListVirtualMFADevicesRequest(input)
10387	req.SetContext(ctx)
10388	req.ApplyOptions(opts...)
10389	return out, req.Send()
10390}
10391
10392// ListVirtualMFADevicesPages iterates over the pages of a ListVirtualMFADevices operation,
10393// calling the "fn" function with the response data for each page. To stop
10394// iterating, return false from the fn function.
10395//
10396// See ListVirtualMFADevices method for more information on how to use this operation.
10397//
10398// Note: This operation can generate multiple requests to a service.
10399//
10400//    // Example iterating over at most 3 pages of a ListVirtualMFADevices operation.
10401//    pageNum := 0
10402//    err := client.ListVirtualMFADevicesPages(params,
10403//        func(page *ListVirtualMFADevicesOutput, lastPage bool) bool {
10404//            pageNum++
10405//            fmt.Println(page)
10406//            return pageNum <= 3
10407//        })
10408//
10409func (c *IAM) ListVirtualMFADevicesPages(input *ListVirtualMFADevicesInput, fn func(*ListVirtualMFADevicesOutput, bool) bool) error {
10410	return c.ListVirtualMFADevicesPagesWithContext(aws.BackgroundContext(), input, fn)
10411}
10412
10413// ListVirtualMFADevicesPagesWithContext same as ListVirtualMFADevicesPages except
10414// it takes a Context and allows setting request options on the pages.
10415//
10416// The context must be non-nil and will be used for request cancellation. If
10417// the context is nil a panic will occur. In the future the SDK may create
10418// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10419// for more information on using Contexts.
10420func (c *IAM) ListVirtualMFADevicesPagesWithContext(ctx aws.Context, input *ListVirtualMFADevicesInput, fn func(*ListVirtualMFADevicesOutput, bool) bool, opts ...request.Option) error {
10421	p := request.Pagination{
10422		NewRequest: func() (*request.Request, error) {
10423			var inCpy *ListVirtualMFADevicesInput
10424			if input != nil {
10425				tmp := *input
10426				inCpy = &tmp
10427			}
10428			req, _ := c.ListVirtualMFADevicesRequest(inCpy)
10429			req.SetContext(ctx)
10430			req.ApplyOptions(opts...)
10431			return req, nil
10432		},
10433	}
10434
10435	cont := true
10436	for p.Next() && cont {
10437		cont = fn(p.Page().(*ListVirtualMFADevicesOutput), !p.HasNextPage())
10438	}
10439	return p.Err()
10440}
10441
10442const opPutGroupPolicy = "PutGroupPolicy"
10443
10444// PutGroupPolicyRequest generates a "aws/request.Request" representing the
10445// client's request for the PutGroupPolicy operation. The "output" return
10446// value will be populated with the request's response once the request complets
10447// successfuly.
10448//
10449// Use "Send" method on the returned Request to send the API call to the service.
10450// the "output" return value is not valid until after Send returns without error.
10451//
10452// See PutGroupPolicy for more information on using the PutGroupPolicy
10453// API call, and error handling.
10454//
10455// This method is useful when you want to inject custom logic or configuration
10456// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10457//
10458//
10459//    // Example sending a request using the PutGroupPolicyRequest method.
10460//    req, resp := client.PutGroupPolicyRequest(params)
10461//
10462//    err := req.Send()
10463//    if err == nil { // resp is now filled
10464//        fmt.Println(resp)
10465//    }
10466//
10467// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/PutGroupPolicy
10468func (c *IAM) PutGroupPolicyRequest(input *PutGroupPolicyInput) (req *request.Request, output *PutGroupPolicyOutput) {
10469	op := &request.Operation{
10470		Name:       opPutGroupPolicy,
10471		HTTPMethod: "POST",
10472		HTTPPath:   "/",
10473	}
10474
10475	if input == nil {
10476		input = &PutGroupPolicyInput{}
10477	}
10478
10479	output = &PutGroupPolicyOutput{}
10480	req = c.newRequest(op, input, output)
10481	req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
10482	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
10483	return
10484}
10485
10486// PutGroupPolicy API operation for AWS Identity and Access Management.
10487//
10488// Adds or updates an inline policy document that is embedded in the specified
10489// IAM group.
10490//
10491// A user can also have managed policies attached to it. To attach a managed
10492// policy to a group, use AttachGroupPolicy. To create a new managed policy,
10493// use CreatePolicy. For information about policies, see Managed Policies and
10494// Inline Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
10495// in the IAM User Guide.
10496//
10497// For information about limits on the number of inline policies that you can
10498// embed in a group, see Limitations on IAM Entities (http://docs.aws.amazon.com/IAM/latest/UserGuide/LimitationsOnEntities.html)
10499// in the IAM User Guide.
10500//
10501// Because policy documents can be large, you should use POST rather than GET
10502// when calling PutGroupPolicy. For general information about using the Query
10503// API with IAM, go to Making Query Requests (http://docs.aws.amazon.com/IAM/latest/UserGuide/IAM_UsingQueryAPI.html)
10504// in the IAM User Guide.
10505//
10506// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10507// with awserr.Error's Code and Message methods to get detailed information about
10508// the error.
10509//
10510// See the AWS API reference guide for AWS Identity and Access Management's
10511// API operation PutGroupPolicy for usage and error information.
10512//
10513// Returned Error Codes:
10514//   * ErrCodeLimitExceededException "LimitExceeded"
10515//   The request was rejected because it attempted to create resources beyond
10516//   the current AWS account limits. The error message describes the limit exceeded.
10517//
10518//   * ErrCodeMalformedPolicyDocumentException "MalformedPolicyDocument"
10519//   The request was rejected because the policy document was malformed. The error
10520//   message describes the specific error.
10521//
10522//   * ErrCodeNoSuchEntityException "NoSuchEntity"
10523//   The request was rejected because it referenced an entity that does not exist.
10524//   The error message describes the entity.
10525//
10526//   * ErrCodeServiceFailureException "ServiceFailure"
10527//   The request processing has failed because of an unknown error, exception
10528//   or failure.
10529//
10530// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/PutGroupPolicy
10531func (c *IAM) PutGroupPolicy(input *PutGroupPolicyInput) (*PutGroupPolicyOutput, error) {
10532	req, out := c.PutGroupPolicyRequest(input)
10533	return out, req.Send()
10534}
10535
10536// PutGroupPolicyWithContext is the same as PutGroupPolicy with the addition of
10537// the ability to pass a context and additional request options.
10538//
10539// See PutGroupPolicy for details on how to use this API operation.
10540//
10541// The context must be non-nil and will be used for request cancellation. If
10542// the context is nil a panic will occur. In the future the SDK may create
10543// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10544// for more information on using Contexts.
10545func (c *IAM) PutGroupPolicyWithContext(ctx aws.Context, input *PutGroupPolicyInput, opts ...request.Option) (*PutGroupPolicyOutput, error) {
10546	req, out := c.PutGroupPolicyRequest(input)
10547	req.SetContext(ctx)
10548	req.ApplyOptions(opts...)
10549	return out, req.Send()
10550}
10551
10552const opPutRolePolicy = "PutRolePolicy"
10553
10554// PutRolePolicyRequest generates a "aws/request.Request" representing the
10555// client's request for the PutRolePolicy operation. The "output" return
10556// value will be populated with the request's response once the request complets
10557// successfuly.
10558//
10559// Use "Send" method on the returned Request to send the API call to the service.
10560// the "output" return value is not valid until after Send returns without error.
10561//
10562// See PutRolePolicy for more information on using the PutRolePolicy
10563// API call, and error handling.
10564//
10565// This method is useful when you want to inject custom logic or configuration
10566// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10567//
10568//
10569//    // Example sending a request using the PutRolePolicyRequest method.
10570//    req, resp := client.PutRolePolicyRequest(params)
10571//
10572//    err := req.Send()
10573//    if err == nil { // resp is now filled
10574//        fmt.Println(resp)
10575//    }
10576//
10577// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/PutRolePolicy
10578func (c *IAM) PutRolePolicyRequest(input *PutRolePolicyInput) (req *request.Request, output *PutRolePolicyOutput) {
10579	op := &request.Operation{
10580		Name:       opPutRolePolicy,
10581		HTTPMethod: "POST",
10582		HTTPPath:   "/",
10583	}
10584
10585	if input == nil {
10586		input = &PutRolePolicyInput{}
10587	}
10588
10589	output = &PutRolePolicyOutput{}
10590	req = c.newRequest(op, input, output)
10591	req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
10592	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
10593	return
10594}
10595
10596// PutRolePolicy API operation for AWS Identity and Access Management.
10597//
10598// Adds or updates an inline policy document that is embedded in the specified
10599// IAM role.
10600//
10601// When you embed an inline policy in a role, the inline policy is used as part
10602// of the role's access (permissions) policy. The role's trust policy is created
10603// at the same time as the role, using CreateRole. You can update a role's trust
10604// policy using UpdateAssumeRolePolicy. For more information about IAM roles,
10605// go to Using Roles to Delegate Permissions and Federate Identities (http://docs.aws.amazon.com/IAM/latest/UserGuide/roles-toplevel.html).
10606//
10607// A role can also have a managed policy attached to it. To attach a managed
10608// policy to a role, use AttachRolePolicy. To create a new managed policy, use
10609// CreatePolicy. For information about policies, see Managed Policies and Inline
10610// Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
10611// in the IAM User Guide.
10612//
10613// For information about limits on the number of inline policies that you can
10614// embed with a role, see Limitations on IAM Entities (http://docs.aws.amazon.com/IAM/latest/UserGuide/LimitationsOnEntities.html)
10615// in the IAM User Guide.
10616//
10617// Because policy documents can be large, you should use POST rather than GET
10618// when calling PutRolePolicy. For general information about using the Query
10619// API with IAM, go to Making Query Requests (http://docs.aws.amazon.com/IAM/latest/UserGuide/IAM_UsingQueryAPI.html)
10620// in the IAM User Guide.
10621//
10622// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10623// with awserr.Error's Code and Message methods to get detailed information about
10624// the error.
10625//
10626// See the AWS API reference guide for AWS Identity and Access Management's
10627// API operation PutRolePolicy for usage and error information.
10628//
10629// Returned Error Codes:
10630//   * ErrCodeLimitExceededException "LimitExceeded"
10631//   The request was rejected because it attempted to create resources beyond
10632//   the current AWS account limits. The error message describes the limit exceeded.
10633//
10634//   * ErrCodeMalformedPolicyDocumentException "MalformedPolicyDocument"
10635//   The request was rejected because the policy document was malformed. The error
10636//   message describes the specific error.
10637//
10638//   * ErrCodeNoSuchEntityException "NoSuchEntity"
10639//   The request was rejected because it referenced an entity that does not exist.
10640//   The error message describes the entity.
10641//
10642//   * ErrCodeUnmodifiableEntityException "UnmodifiableEntity"
10643//   The request was rejected because only the service that depends on the service-linked
10644//   role can modify or delete the role on your behalf. The error message includes
10645//   the name of the service that depends on this service-linked role. You must
10646//   request the change through that service.
10647//
10648//   * ErrCodeServiceFailureException "ServiceFailure"
10649//   The request processing has failed because of an unknown error, exception
10650//   or failure.
10651//
10652// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/PutRolePolicy
10653func (c *IAM) PutRolePolicy(input *PutRolePolicyInput) (*PutRolePolicyOutput, error) {
10654	req, out := c.PutRolePolicyRequest(input)
10655	return out, req.Send()
10656}
10657
10658// PutRolePolicyWithContext is the same as PutRolePolicy with the addition of
10659// the ability to pass a context and additional request options.
10660//
10661// See PutRolePolicy for details on how to use this API operation.
10662//
10663// The context must be non-nil and will be used for request cancellation. If
10664// the context is nil a panic will occur. In the future the SDK may create
10665// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10666// for more information on using Contexts.
10667func (c *IAM) PutRolePolicyWithContext(ctx aws.Context, input *PutRolePolicyInput, opts ...request.Option) (*PutRolePolicyOutput, error) {
10668	req, out := c.PutRolePolicyRequest(input)
10669	req.SetContext(ctx)
10670	req.ApplyOptions(opts...)
10671	return out, req.Send()
10672}
10673
10674const opPutUserPolicy = "PutUserPolicy"
10675
10676// PutUserPolicyRequest generates a "aws/request.Request" representing the
10677// client's request for the PutUserPolicy operation. The "output" return
10678// value will be populated with the request's response once the request complets
10679// successfuly.
10680//
10681// Use "Send" method on the returned Request to send the API call to the service.
10682// the "output" return value is not valid until after Send returns without error.
10683//
10684// See PutUserPolicy for more information on using the PutUserPolicy
10685// API call, and error handling.
10686//
10687// This method is useful when you want to inject custom logic or configuration
10688// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10689//
10690//
10691//    // Example sending a request using the PutUserPolicyRequest method.
10692//    req, resp := client.PutUserPolicyRequest(params)
10693//
10694//    err := req.Send()
10695//    if err == nil { // resp is now filled
10696//        fmt.Println(resp)
10697//    }
10698//
10699// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/PutUserPolicy
10700func (c *IAM) PutUserPolicyRequest(input *PutUserPolicyInput) (req *request.Request, output *PutUserPolicyOutput) {
10701	op := &request.Operation{
10702		Name:       opPutUserPolicy,
10703		HTTPMethod: "POST",
10704		HTTPPath:   "/",
10705	}
10706
10707	if input == nil {
10708		input = &PutUserPolicyInput{}
10709	}
10710
10711	output = &PutUserPolicyOutput{}
10712	req = c.newRequest(op, input, output)
10713	req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
10714	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
10715	return
10716}
10717
10718// PutUserPolicy API operation for AWS Identity and Access Management.
10719//
10720// Adds or updates an inline policy document that is embedded in the specified
10721// IAM user.
10722//
10723// An IAM user can also have a managed policy attached to it. To attach a managed
10724// policy to a user, use AttachUserPolicy. To create a new managed policy, use
10725// CreatePolicy. For information about policies, see Managed Policies and Inline
10726// Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
10727// in the IAM User Guide.
10728//
10729// For information about limits on the number of inline policies that you can
10730// embed in a user, see Limitations on IAM Entities (http://docs.aws.amazon.com/IAM/latest/UserGuide/LimitationsOnEntities.html)
10731// in the IAM User Guide.
10732//
10733// Because policy documents can be large, you should use POST rather than GET
10734// when calling PutUserPolicy. For general information about using the Query
10735// API with IAM, go to Making Query Requests (http://docs.aws.amazon.com/IAM/latest/UserGuide/IAM_UsingQueryAPI.html)
10736// in the IAM User Guide.
10737//
10738// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10739// with awserr.Error's Code and Message methods to get detailed information about
10740// the error.
10741//
10742// See the AWS API reference guide for AWS Identity and Access Management's
10743// API operation PutUserPolicy for usage and error information.
10744//
10745// Returned Error Codes:
10746//   * ErrCodeLimitExceededException "LimitExceeded"
10747//   The request was rejected because it attempted to create resources beyond
10748//   the current AWS account limits. The error message describes the limit exceeded.
10749//
10750//   * ErrCodeMalformedPolicyDocumentException "MalformedPolicyDocument"
10751//   The request was rejected because the policy document was malformed. The error
10752//   message describes the specific error.
10753//
10754//   * ErrCodeNoSuchEntityException "NoSuchEntity"
10755//   The request was rejected because it referenced an entity that does not exist.
10756//   The error message describes the entity.
10757//
10758//   * ErrCodeServiceFailureException "ServiceFailure"
10759//   The request processing has failed because of an unknown error, exception
10760//   or failure.
10761//
10762// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/PutUserPolicy
10763func (c *IAM) PutUserPolicy(input *PutUserPolicyInput) (*PutUserPolicyOutput, error) {
10764	req, out := c.PutUserPolicyRequest(input)
10765	return out, req.Send()
10766}
10767
10768// PutUserPolicyWithContext is the same as PutUserPolicy with the addition of
10769// the ability to pass a context and additional request options.
10770//
10771// See PutUserPolicy for details on how to use this API operation.
10772//
10773// The context must be non-nil and will be used for request cancellation. If
10774// the context is nil a panic will occur. In the future the SDK may create
10775// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10776// for more information on using Contexts.
10777func (c *IAM) PutUserPolicyWithContext(ctx aws.Context, input *PutUserPolicyInput, opts ...request.Option) (*PutUserPolicyOutput, error) {
10778	req, out := c.PutUserPolicyRequest(input)
10779	req.SetContext(ctx)
10780	req.ApplyOptions(opts...)
10781	return out, req.Send()
10782}
10783
10784const opRemoveClientIDFromOpenIDConnectProvider = "RemoveClientIDFromOpenIDConnectProvider"
10785
10786// RemoveClientIDFromOpenIDConnectProviderRequest generates a "aws/request.Request" representing the
10787// client's request for the RemoveClientIDFromOpenIDConnectProvider operation. The "output" return
10788// value will be populated with the request's response once the request complets
10789// successfuly.
10790//
10791// Use "Send" method on the returned Request to send the API call to the service.
10792// the "output" return value is not valid until after Send returns without error.
10793//
10794// See RemoveClientIDFromOpenIDConnectProvider for more information on using the RemoveClientIDFromOpenIDConnectProvider
10795// API call, and error handling.
10796//
10797// This method is useful when you want to inject custom logic or configuration
10798// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10799//
10800//
10801//    // Example sending a request using the RemoveClientIDFromOpenIDConnectProviderRequest method.
10802//    req, resp := client.RemoveClientIDFromOpenIDConnectProviderRequest(params)
10803//
10804//    err := req.Send()
10805//    if err == nil { // resp is now filled
10806//        fmt.Println(resp)
10807//    }
10808//
10809// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/RemoveClientIDFromOpenIDConnectProvider
10810func (c *IAM) RemoveClientIDFromOpenIDConnectProviderRequest(input *RemoveClientIDFromOpenIDConnectProviderInput) (req *request.Request, output *RemoveClientIDFromOpenIDConnectProviderOutput) {
10811	op := &request.Operation{
10812		Name:       opRemoveClientIDFromOpenIDConnectProvider,
10813		HTTPMethod: "POST",
10814		HTTPPath:   "/",
10815	}
10816
10817	if input == nil {
10818		input = &RemoveClientIDFromOpenIDConnectProviderInput{}
10819	}
10820
10821	output = &RemoveClientIDFromOpenIDConnectProviderOutput{}
10822	req = c.newRequest(op, input, output)
10823	req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
10824	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
10825	return
10826}
10827
10828// RemoveClientIDFromOpenIDConnectProvider API operation for AWS Identity and Access Management.
10829//
10830// Removes the specified client ID (also known as audience) from the list of
10831// client IDs registered for the specified IAM OpenID Connect (OIDC) provider
10832// resource object.
10833//
10834// This action is idempotent; it does not fail or return an error if you try
10835// to remove a client ID that does not exist.
10836//
10837// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10838// with awserr.Error's Code and Message methods to get detailed information about
10839// the error.
10840//
10841// See the AWS API reference guide for AWS Identity and Access Management's
10842// API operation RemoveClientIDFromOpenIDConnectProvider for usage and error information.
10843//
10844// Returned Error Codes:
10845//   * ErrCodeInvalidInputException "InvalidInput"
10846//   The request was rejected because an invalid or out-of-range value was supplied
10847//   for an input parameter.
10848//
10849//   * ErrCodeNoSuchEntityException "NoSuchEntity"
10850//   The request was rejected because it referenced an entity that does not exist.
10851//   The error message describes the entity.
10852//
10853//   * ErrCodeServiceFailureException "ServiceFailure"
10854//   The request processing has failed because of an unknown error, exception
10855//   or failure.
10856//
10857// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/RemoveClientIDFromOpenIDConnectProvider
10858func (c *IAM) RemoveClientIDFromOpenIDConnectProvider(input *RemoveClientIDFromOpenIDConnectProviderInput) (*RemoveClientIDFromOpenIDConnectProviderOutput, error) {
10859	req, out := c.RemoveClientIDFromOpenIDConnectProviderRequest(input)
10860	return out, req.Send()
10861}
10862
10863// RemoveClientIDFromOpenIDConnectProviderWithContext is the same as RemoveClientIDFromOpenIDConnectProvider with the addition of
10864// the ability to pass a context and additional request options.
10865//
10866// See RemoveClientIDFromOpenIDConnectProvider for details on how to use this API operation.
10867//
10868// The context must be non-nil and will be used for request cancellation. If
10869// the context is nil a panic will occur. In the future the SDK may create
10870// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10871// for more information on using Contexts.
10872func (c *IAM) RemoveClientIDFromOpenIDConnectProviderWithContext(ctx aws.Context, input *RemoveClientIDFromOpenIDConnectProviderInput, opts ...request.Option) (*RemoveClientIDFromOpenIDConnectProviderOutput, error) {
10873	req, out := c.RemoveClientIDFromOpenIDConnectProviderRequest(input)
10874	req.SetContext(ctx)
10875	req.ApplyOptions(opts...)
10876	return out, req.Send()
10877}
10878
10879const opRemoveRoleFromInstanceProfile = "RemoveRoleFromInstanceProfile"
10880
10881// RemoveRoleFromInstanceProfileRequest generates a "aws/request.Request" representing the
10882// client's request for the RemoveRoleFromInstanceProfile operation. The "output" return
10883// value will be populated with the request's response once the request complets
10884// successfuly.
10885//
10886// Use "Send" method on the returned Request to send the API call to the service.
10887// the "output" return value is not valid until after Send returns without error.
10888//
10889// See RemoveRoleFromInstanceProfile for more information on using the RemoveRoleFromInstanceProfile
10890// API call, and error handling.
10891//
10892// This method is useful when you want to inject custom logic or configuration
10893// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10894//
10895//
10896//    // Example sending a request using the RemoveRoleFromInstanceProfileRequest method.
10897//    req, resp := client.RemoveRoleFromInstanceProfileRequest(params)
10898//
10899//    err := req.Send()
10900//    if err == nil { // resp is now filled
10901//        fmt.Println(resp)
10902//    }
10903//
10904// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/RemoveRoleFromInstanceProfile
10905func (c *IAM) RemoveRoleFromInstanceProfileRequest(input *RemoveRoleFromInstanceProfileInput) (req *request.Request, output *RemoveRoleFromInstanceProfileOutput) {
10906	op := &request.Operation{
10907		Name:       opRemoveRoleFromInstanceProfile,
10908		HTTPMethod: "POST",
10909		HTTPPath:   "/",
10910	}
10911
10912	if input == nil {
10913		input = &RemoveRoleFromInstanceProfileInput{}
10914	}
10915
10916	output = &RemoveRoleFromInstanceProfileOutput{}
10917	req = c.newRequest(op, input, output)
10918	req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
10919	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
10920	return
10921}
10922
10923// RemoveRoleFromInstanceProfile API operation for AWS Identity and Access Management.
10924//
10925// Removes the specified IAM role from the specified EC2 instance profile.
10926//
10927// Make sure you do not have any Amazon EC2 instances running with the role
10928// you are about to remove from the instance profile. Removing a role from an
10929// instance profile that is associated with a running instance might break any
10930// applications running on the instance.
10931//
10932// For more information about IAM roles, go to Working with Roles (http://docs.aws.amazon.com/IAM/latest/UserGuide/WorkingWithRoles.html).
10933// For more information about instance profiles, go to About Instance Profiles
10934// (http://docs.aws.amazon.com/IAM/latest/UserGuide/AboutInstanceProfiles.html).
10935//
10936// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10937// with awserr.Error's Code and Message methods to get detailed information about
10938// the error.
10939//
10940// See the AWS API reference guide for AWS Identity and Access Management's
10941// API operation RemoveRoleFromInstanceProfile for usage and error information.
10942//
10943// Returned Error Codes:
10944//   * ErrCodeNoSuchEntityException "NoSuchEntity"
10945//   The request was rejected because it referenced an entity that does not exist.
10946//   The error message describes the entity.
10947//
10948//   * ErrCodeLimitExceededException "LimitExceeded"
10949//   The request was rejected because it attempted to create resources beyond
10950//   the current AWS account limits. The error message describes the limit exceeded.
10951//
10952//   * ErrCodeUnmodifiableEntityException "UnmodifiableEntity"
10953//   The request was rejected because only the service that depends on the service-linked
10954//   role can modify or delete the role on your behalf. The error message includes
10955//   the name of the service that depends on this service-linked role. You must
10956//   request the change through that service.
10957//
10958//   * ErrCodeServiceFailureException "ServiceFailure"
10959//   The request processing has failed because of an unknown error, exception
10960//   or failure.
10961//
10962// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/RemoveRoleFromInstanceProfile
10963func (c *IAM) RemoveRoleFromInstanceProfile(input *RemoveRoleFromInstanceProfileInput) (*RemoveRoleFromInstanceProfileOutput, error) {
10964	req, out := c.RemoveRoleFromInstanceProfileRequest(input)
10965	return out, req.Send()
10966}
10967
10968// RemoveRoleFromInstanceProfileWithContext is the same as RemoveRoleFromInstanceProfile with the addition of
10969// the ability to pass a context and additional request options.
10970//
10971// See RemoveRoleFromInstanceProfile for details on how to use this API operation.
10972//
10973// The context must be non-nil and will be used for request cancellation. If
10974// the context is nil a panic will occur. In the future the SDK may create
10975// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10976// for more information on using Contexts.
10977func (c *IAM) RemoveRoleFromInstanceProfileWithContext(ctx aws.Context, input *RemoveRoleFromInstanceProfileInput, opts ...request.Option) (*RemoveRoleFromInstanceProfileOutput, error) {
10978	req, out := c.RemoveRoleFromInstanceProfileRequest(input)
10979	req.SetContext(ctx)
10980	req.ApplyOptions(opts...)
10981	return out, req.Send()
10982}
10983
10984const opRemoveUserFromGroup = "RemoveUserFromGroup"
10985
10986// RemoveUserFromGroupRequest generates a "aws/request.Request" representing the
10987// client's request for the RemoveUserFromGroup operation. The "output" return
10988// value will be populated with the request's response once the request complets
10989// successfuly.
10990//
10991// Use "Send" method on the returned Request to send the API call to the service.
10992// the "output" return value is not valid until after Send returns without error.
10993//
10994// See RemoveUserFromGroup for more information on using the RemoveUserFromGroup
10995// API call, and error handling.
10996//
10997// This method is useful when you want to inject custom logic or configuration
10998// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10999//
11000//
11001//    // Example sending a request using the RemoveUserFromGroupRequest method.
11002//    req, resp := client.RemoveUserFromGroupRequest(params)
11003//
11004//    err := req.Send()
11005//    if err == nil { // resp is now filled
11006//        fmt.Println(resp)
11007//    }
11008//
11009// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/RemoveUserFromGroup
11010func (c *IAM) RemoveUserFromGroupRequest(input *RemoveUserFromGroupInput) (req *request.Request, output *RemoveUserFromGroupOutput) {
11011	op := &request.Operation{
11012		Name:       opRemoveUserFromGroup,
11013		HTTPMethod: "POST",
11014		HTTPPath:   "/",
11015	}
11016
11017	if input == nil {
11018		input = &RemoveUserFromGroupInput{}
11019	}
11020
11021	output = &RemoveUserFromGroupOutput{}
11022	req = c.newRequest(op, input, output)
11023	req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
11024	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
11025	return
11026}
11027
11028// RemoveUserFromGroup API operation for AWS Identity and Access Management.
11029//
11030// Removes the specified user from the specified group.
11031//
11032// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11033// with awserr.Error's Code and Message methods to get detailed information about
11034// the error.
11035//
11036// See the AWS API reference guide for AWS Identity and Access Management's
11037// API operation RemoveUserFromGroup for usage and error information.
11038//
11039// Returned Error Codes:
11040//   * ErrCodeNoSuchEntityException "NoSuchEntity"
11041//   The request was rejected because it referenced an entity that does not exist.
11042//   The error message describes the entity.
11043//
11044//   * ErrCodeLimitExceededException "LimitExceeded"
11045//   The request was rejected because it attempted to create resources beyond
11046//   the current AWS account limits. The error message describes the limit exceeded.
11047//
11048//   * ErrCodeServiceFailureException "ServiceFailure"
11049//   The request processing has failed because of an unknown error, exception
11050//   or failure.
11051//
11052// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/RemoveUserFromGroup
11053func (c *IAM) RemoveUserFromGroup(input *RemoveUserFromGroupInput) (*RemoveUserFromGroupOutput, error) {
11054	req, out := c.RemoveUserFromGroupRequest(input)
11055	return out, req.Send()
11056}
11057
11058// RemoveUserFromGroupWithContext is the same as RemoveUserFromGroup with the addition of
11059// the ability to pass a context and additional request options.
11060//
11061// See RemoveUserFromGroup for details on how to use this API operation.
11062//
11063// The context must be non-nil and will be used for request cancellation. If
11064// the context is nil a panic will occur. In the future the SDK may create
11065// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11066// for more information on using Contexts.
11067func (c *IAM) RemoveUserFromGroupWithContext(ctx aws.Context, input *RemoveUserFromGroupInput, opts ...request.Option) (*RemoveUserFromGroupOutput, error) {
11068	req, out := c.RemoveUserFromGroupRequest(input)
11069	req.SetContext(ctx)
11070	req.ApplyOptions(opts...)
11071	return out, req.Send()
11072}
11073
11074const opResetServiceSpecificCredential = "ResetServiceSpecificCredential"
11075
11076// ResetServiceSpecificCredentialRequest generates a "aws/request.Request" representing the
11077// client's request for the ResetServiceSpecificCredential operation. The "output" return
11078// value will be populated with the request's response once the request complets
11079// successfuly.
11080//
11081// Use "Send" method on the returned Request to send the API call to the service.
11082// the "output" return value is not valid until after Send returns without error.
11083//
11084// See ResetServiceSpecificCredential for more information on using the ResetServiceSpecificCredential
11085// API call, and error handling.
11086//
11087// This method is useful when you want to inject custom logic or configuration
11088// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11089//
11090//
11091//    // Example sending a request using the ResetServiceSpecificCredentialRequest method.
11092//    req, resp := client.ResetServiceSpecificCredentialRequest(params)
11093//
11094//    err := req.Send()
11095//    if err == nil { // resp is now filled
11096//        fmt.Println(resp)
11097//    }
11098//
11099// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ResetServiceSpecificCredential
11100func (c *IAM) ResetServiceSpecificCredentialRequest(input *ResetServiceSpecificCredentialInput) (req *request.Request, output *ResetServiceSpecificCredentialOutput) {
11101	op := &request.Operation{
11102		Name:       opResetServiceSpecificCredential,
11103		HTTPMethod: "POST",
11104		HTTPPath:   "/",
11105	}
11106
11107	if input == nil {
11108		input = &ResetServiceSpecificCredentialInput{}
11109	}
11110
11111	output = &ResetServiceSpecificCredentialOutput{}
11112	req = c.newRequest(op, input, output)
11113	return
11114}
11115
11116// ResetServiceSpecificCredential API operation for AWS Identity and Access Management.
11117//
11118// Resets the password for a service-specific credential. The new password is
11119// AWS generated and cryptographically strong. It cannot be configured by the
11120// user. Resetting the password immediately invalidates the previous password
11121// associated with this user.
11122//
11123// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11124// with awserr.Error's Code and Message methods to get detailed information about
11125// the error.
11126//
11127// See the AWS API reference guide for AWS Identity and Access Management's
11128// API operation ResetServiceSpecificCredential for usage and error information.
11129//
11130// Returned Error Codes:
11131//   * ErrCodeNoSuchEntityException "NoSuchEntity"
11132//   The request was rejected because it referenced an entity that does not exist.
11133//   The error message describes the entity.
11134//
11135// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ResetServiceSpecificCredential
11136func (c *IAM) ResetServiceSpecificCredential(input *ResetServiceSpecificCredentialInput) (*ResetServiceSpecificCredentialOutput, error) {
11137	req, out := c.ResetServiceSpecificCredentialRequest(input)
11138	return out, req.Send()
11139}
11140
11141// ResetServiceSpecificCredentialWithContext is the same as ResetServiceSpecificCredential with the addition of
11142// the ability to pass a context and additional request options.
11143//
11144// See ResetServiceSpecificCredential for details on how to use this API operation.
11145//
11146// The context must be non-nil and will be used for request cancellation. If
11147// the context is nil a panic will occur. In the future the SDK may create
11148// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11149// for more information on using Contexts.
11150func (c *IAM) ResetServiceSpecificCredentialWithContext(ctx aws.Context, input *ResetServiceSpecificCredentialInput, opts ...request.Option) (*ResetServiceSpecificCredentialOutput, error) {
11151	req, out := c.ResetServiceSpecificCredentialRequest(input)
11152	req.SetContext(ctx)
11153	req.ApplyOptions(opts...)
11154	return out, req.Send()
11155}
11156
11157const opResyncMFADevice = "ResyncMFADevice"
11158
11159// ResyncMFADeviceRequest generates a "aws/request.Request" representing the
11160// client's request for the ResyncMFADevice operation. The "output" return
11161// value will be populated with the request's response once the request complets
11162// successfuly.
11163//
11164// Use "Send" method on the returned Request to send the API call to the service.
11165// the "output" return value is not valid until after Send returns without error.
11166//
11167// See ResyncMFADevice for more information on using the ResyncMFADevice
11168// API call, and error handling.
11169//
11170// This method is useful when you want to inject custom logic or configuration
11171// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11172//
11173//
11174//    // Example sending a request using the ResyncMFADeviceRequest method.
11175//    req, resp := client.ResyncMFADeviceRequest(params)
11176//
11177//    err := req.Send()
11178//    if err == nil { // resp is now filled
11179//        fmt.Println(resp)
11180//    }
11181//
11182// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ResyncMFADevice
11183func (c *IAM) ResyncMFADeviceRequest(input *ResyncMFADeviceInput) (req *request.Request, output *ResyncMFADeviceOutput) {
11184	op := &request.Operation{
11185		Name:       opResyncMFADevice,
11186		HTTPMethod: "POST",
11187		HTTPPath:   "/",
11188	}
11189
11190	if input == nil {
11191		input = &ResyncMFADeviceInput{}
11192	}
11193
11194	output = &ResyncMFADeviceOutput{}
11195	req = c.newRequest(op, input, output)
11196	req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
11197	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
11198	return
11199}
11200
11201// ResyncMFADevice API operation for AWS Identity and Access Management.
11202//
11203// Synchronizes the specified MFA device with its IAM resource object on the
11204// AWS servers.
11205//
11206// For more information about creating and working with virtual MFA devices,
11207// go to Using a Virtual MFA Device (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_VirtualMFA.html)
11208// in the IAM User Guide.
11209//
11210// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11211// with awserr.Error's Code and Message methods to get detailed information about
11212// the error.
11213//
11214// See the AWS API reference guide for AWS Identity and Access Management's
11215// API operation ResyncMFADevice for usage and error information.
11216//
11217// Returned Error Codes:
11218//   * ErrCodeInvalidAuthenticationCodeException "InvalidAuthenticationCode"
11219//   The request was rejected because the authentication code was not recognized.
11220//   The error message describes the specific error.
11221//
11222//   * ErrCodeNoSuchEntityException "NoSuchEntity"
11223//   The request was rejected because it referenced an entity that does not exist.
11224//   The error message describes the entity.
11225//
11226//   * ErrCodeLimitExceededException "LimitExceeded"
11227//   The request was rejected because it attempted to create resources beyond
11228//   the current AWS account limits. The error message describes the limit exceeded.
11229//
11230//   * ErrCodeServiceFailureException "ServiceFailure"
11231//   The request processing has failed because of an unknown error, exception
11232//   or failure.
11233//
11234// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ResyncMFADevice
11235func (c *IAM) ResyncMFADevice(input *ResyncMFADeviceInput) (*ResyncMFADeviceOutput, error) {
11236	req, out := c.ResyncMFADeviceRequest(input)
11237	return out, req.Send()
11238}
11239
11240// ResyncMFADeviceWithContext is the same as ResyncMFADevice with the addition of
11241// the ability to pass a context and additional request options.
11242//
11243// See ResyncMFADevice for details on how to use this API operation.
11244//
11245// The context must be non-nil and will be used for request cancellation. If
11246// the context is nil a panic will occur. In the future the SDK may create
11247// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11248// for more information on using Contexts.
11249func (c *IAM) ResyncMFADeviceWithContext(ctx aws.Context, input *ResyncMFADeviceInput, opts ...request.Option) (*ResyncMFADeviceOutput, error) {
11250	req, out := c.ResyncMFADeviceRequest(input)
11251	req.SetContext(ctx)
11252	req.ApplyOptions(opts...)
11253	return out, req.Send()
11254}
11255
11256const opSetDefaultPolicyVersion = "SetDefaultPolicyVersion"
11257
11258// SetDefaultPolicyVersionRequest generates a "aws/request.Request" representing the
11259// client's request for the SetDefaultPolicyVersion operation. The "output" return
11260// value will be populated with the request's response once the request complets
11261// successfuly.
11262//
11263// Use "Send" method on the returned Request to send the API call to the service.
11264// the "output" return value is not valid until after Send returns without error.
11265//
11266// See SetDefaultPolicyVersion for more information on using the SetDefaultPolicyVersion
11267// API call, and error handling.
11268//
11269// This method is useful when you want to inject custom logic or configuration
11270// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11271//
11272//
11273//    // Example sending a request using the SetDefaultPolicyVersionRequest method.
11274//    req, resp := client.SetDefaultPolicyVersionRequest(params)
11275//
11276//    err := req.Send()
11277//    if err == nil { // resp is now filled
11278//        fmt.Println(resp)
11279//    }
11280//
11281// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/SetDefaultPolicyVersion
11282func (c *IAM) SetDefaultPolicyVersionRequest(input *SetDefaultPolicyVersionInput) (req *request.Request, output *SetDefaultPolicyVersionOutput) {
11283	op := &request.Operation{
11284		Name:       opSetDefaultPolicyVersion,
11285		HTTPMethod: "POST",
11286		HTTPPath:   "/",
11287	}
11288
11289	if input == nil {
11290		input = &SetDefaultPolicyVersionInput{}
11291	}
11292
11293	output = &SetDefaultPolicyVersionOutput{}
11294	req = c.newRequest(op, input, output)
11295	req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
11296	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
11297	return
11298}
11299
11300// SetDefaultPolicyVersion API operation for AWS Identity and Access Management.
11301//
11302// Sets the specified version of the specified policy as the policy's default
11303// (operative) version.
11304//
11305// This action affects all users, groups, and roles that the policy is attached
11306// to. To list the users, groups, and roles that the policy is attached to,
11307// use the ListEntitiesForPolicy API.
11308//
11309// For information about managed policies, see Managed Policies and Inline Policies
11310// (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
11311// in the IAM User Guide.
11312//
11313// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11314// with awserr.Error's Code and Message methods to get detailed information about
11315// the error.
11316//
11317// See the AWS API reference guide for AWS Identity and Access Management's
11318// API operation SetDefaultPolicyVersion for usage and error information.
11319//
11320// Returned Error Codes:
11321//   * ErrCodeNoSuchEntityException "NoSuchEntity"
11322//   The request was rejected because it referenced an entity that does not exist.
11323//   The error message describes the entity.
11324//
11325//   * ErrCodeInvalidInputException "InvalidInput"
11326//   The request was rejected because an invalid or out-of-range value was supplied
11327//   for an input parameter.
11328//
11329//   * ErrCodeLimitExceededException "LimitExceeded"
11330//   The request was rejected because it attempted to create resources beyond
11331//   the current AWS account limits. The error message describes the limit exceeded.
11332//
11333//   * ErrCodeServiceFailureException "ServiceFailure"
11334//   The request processing has failed because of an unknown error, exception
11335//   or failure.
11336//
11337// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/SetDefaultPolicyVersion
11338func (c *IAM) SetDefaultPolicyVersion(input *SetDefaultPolicyVersionInput) (*SetDefaultPolicyVersionOutput, error) {
11339	req, out := c.SetDefaultPolicyVersionRequest(input)
11340	return out, req.Send()
11341}
11342
11343// SetDefaultPolicyVersionWithContext is the same as SetDefaultPolicyVersion with the addition of
11344// the ability to pass a context and additional request options.
11345//
11346// See SetDefaultPolicyVersion for details on how to use this API operation.
11347//
11348// The context must be non-nil and will be used for request cancellation. If
11349// the context is nil a panic will occur. In the future the SDK may create
11350// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11351// for more information on using Contexts.
11352func (c *IAM) SetDefaultPolicyVersionWithContext(ctx aws.Context, input *SetDefaultPolicyVersionInput, opts ...request.Option) (*SetDefaultPolicyVersionOutput, error) {
11353	req, out := c.SetDefaultPolicyVersionRequest(input)
11354	req.SetContext(ctx)
11355	req.ApplyOptions(opts...)
11356	return out, req.Send()
11357}
11358
11359const opSimulateCustomPolicy = "SimulateCustomPolicy"
11360
11361// SimulateCustomPolicyRequest generates a "aws/request.Request" representing the
11362// client's request for the SimulateCustomPolicy operation. The "output" return
11363// value will be populated with the request's response once the request complets
11364// successfuly.
11365//
11366// Use "Send" method on the returned Request to send the API call to the service.
11367// the "output" return value is not valid until after Send returns without error.
11368//
11369// See SimulateCustomPolicy for more information on using the SimulateCustomPolicy
11370// API call, and error handling.
11371//
11372// This method is useful when you want to inject custom logic or configuration
11373// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11374//
11375//
11376//    // Example sending a request using the SimulateCustomPolicyRequest method.
11377//    req, resp := client.SimulateCustomPolicyRequest(params)
11378//
11379//    err := req.Send()
11380//    if err == nil { // resp is now filled
11381//        fmt.Println(resp)
11382//    }
11383//
11384// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/SimulateCustomPolicy
11385func (c *IAM) SimulateCustomPolicyRequest(input *SimulateCustomPolicyInput) (req *request.Request, output *SimulatePolicyResponse) {
11386	op := &request.Operation{
11387		Name:       opSimulateCustomPolicy,
11388		HTTPMethod: "POST",
11389		HTTPPath:   "/",
11390		Paginator: &request.Paginator{
11391			InputTokens:     []string{"Marker"},
11392			OutputTokens:    []string{"Marker"},
11393			LimitToken:      "MaxItems",
11394			TruncationToken: "IsTruncated",
11395		},
11396	}
11397
11398	if input == nil {
11399		input = &SimulateCustomPolicyInput{}
11400	}
11401
11402	output = &SimulatePolicyResponse{}
11403	req = c.newRequest(op, input, output)
11404	return
11405}
11406
11407// SimulateCustomPolicy API operation for AWS Identity and Access Management.
11408//
11409// Simulate how a set of IAM policies and optionally a resource-based policy
11410// works with a list of API actions and AWS resources to determine the policies'
11411// effective permissions. The policies are provided as strings.
11412//
11413// The simulation does not perform the API actions; it only checks the authorization
11414// to determine if the simulated policies allow or deny the actions.
11415//
11416// If you want to simulate existing policies attached to an IAM user, group,
11417// or role, use SimulatePrincipalPolicy instead.
11418//
11419// Context keys are variables maintained by AWS and its services that provide
11420// details about the context of an API query request. You can use the Condition
11421// element of an IAM policy to evaluate context keys. To get the list of context
11422// keys that the policies require for correct simulation, use GetContextKeysForCustomPolicy.
11423//
11424// If the output is long, you can use MaxItems and Marker parameters to paginate
11425// the results.
11426//
11427// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11428// with awserr.Error's Code and Message methods to get detailed information about
11429// the error.
11430//
11431// See the AWS API reference guide for AWS Identity and Access Management's
11432// API operation SimulateCustomPolicy for usage and error information.
11433//
11434// Returned Error Codes:
11435//   * ErrCodeInvalidInputException "InvalidInput"
11436//   The request was rejected because an invalid or out-of-range value was supplied
11437//   for an input parameter.
11438//
11439//   * ErrCodePolicyEvaluationException "PolicyEvaluation"
11440//   The request failed because a provided policy could not be successfully evaluated.
11441//   An additional detailed message indicates the source of the failure.
11442//
11443// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/SimulateCustomPolicy
11444func (c *IAM) SimulateCustomPolicy(input *SimulateCustomPolicyInput) (*SimulatePolicyResponse, error) {
11445	req, out := c.SimulateCustomPolicyRequest(input)
11446	return out, req.Send()
11447}
11448
11449// SimulateCustomPolicyWithContext is the same as SimulateCustomPolicy with the addition of
11450// the ability to pass a context and additional request options.
11451//
11452// See SimulateCustomPolicy for details on how to use this API operation.
11453//
11454// The context must be non-nil and will be used for request cancellation. If
11455// the context is nil a panic will occur. In the future the SDK may create
11456// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11457// for more information on using Contexts.
11458func (c *IAM) SimulateCustomPolicyWithContext(ctx aws.Context, input *SimulateCustomPolicyInput, opts ...request.Option) (*SimulatePolicyResponse, error) {
11459	req, out := c.SimulateCustomPolicyRequest(input)
11460	req.SetContext(ctx)
11461	req.ApplyOptions(opts...)
11462	return out, req.Send()
11463}
11464
11465// SimulateCustomPolicyPages iterates over the pages of a SimulateCustomPolicy operation,
11466// calling the "fn" function with the response data for each page. To stop
11467// iterating, return false from the fn function.
11468//
11469// See SimulateCustomPolicy method for more information on how to use this operation.
11470//
11471// Note: This operation can generate multiple requests to a service.
11472//
11473//    // Example iterating over at most 3 pages of a SimulateCustomPolicy operation.
11474//    pageNum := 0
11475//    err := client.SimulateCustomPolicyPages(params,
11476//        func(page *SimulatePolicyResponse, lastPage bool) bool {
11477//            pageNum++
11478//            fmt.Println(page)
11479//            return pageNum <= 3
11480//        })
11481//
11482func (c *IAM) SimulateCustomPolicyPages(input *SimulateCustomPolicyInput, fn func(*SimulatePolicyResponse, bool) bool) error {
11483	return c.SimulateCustomPolicyPagesWithContext(aws.BackgroundContext(), input, fn)
11484}
11485
11486// SimulateCustomPolicyPagesWithContext same as SimulateCustomPolicyPages except
11487// it takes a Context and allows setting request options on the pages.
11488//
11489// The context must be non-nil and will be used for request cancellation. If
11490// the context is nil a panic will occur. In the future the SDK may create
11491// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11492// for more information on using Contexts.
11493func (c *IAM) SimulateCustomPolicyPagesWithContext(ctx aws.Context, input *SimulateCustomPolicyInput, fn func(*SimulatePolicyResponse, bool) bool, opts ...request.Option) error {
11494	p := request.Pagination{
11495		NewRequest: func() (*request.Request, error) {
11496			var inCpy *SimulateCustomPolicyInput
11497			if input != nil {
11498				tmp := *input
11499				inCpy = &tmp
11500			}
11501			req, _ := c.SimulateCustomPolicyRequest(inCpy)
11502			req.SetContext(ctx)
11503			req.ApplyOptions(opts...)
11504			return req, nil
11505		},
11506	}
11507
11508	cont := true
11509	for p.Next() && cont {
11510		cont = fn(p.Page().(*SimulatePolicyResponse), !p.HasNextPage())
11511	}
11512	return p.Err()
11513}
11514
11515const opSimulatePrincipalPolicy = "SimulatePrincipalPolicy"
11516
11517// SimulatePrincipalPolicyRequest generates a "aws/request.Request" representing the
11518// client's request for the SimulatePrincipalPolicy operation. The "output" return
11519// value will be populated with the request's response once the request complets
11520// successfuly.
11521//
11522// Use "Send" method on the returned Request to send the API call to the service.
11523// the "output" return value is not valid until after Send returns without error.
11524//
11525// See SimulatePrincipalPolicy for more information on using the SimulatePrincipalPolicy
11526// API call, and error handling.
11527//
11528// This method is useful when you want to inject custom logic or configuration
11529// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11530//
11531//
11532//    // Example sending a request using the SimulatePrincipalPolicyRequest method.
11533//    req, resp := client.SimulatePrincipalPolicyRequest(params)
11534//
11535//    err := req.Send()
11536//    if err == nil { // resp is now filled
11537//        fmt.Println(resp)
11538//    }
11539//
11540// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/SimulatePrincipalPolicy
11541func (c *IAM) SimulatePrincipalPolicyRequest(input *SimulatePrincipalPolicyInput) (req *request.Request, output *SimulatePolicyResponse) {
11542	op := &request.Operation{
11543		Name:       opSimulatePrincipalPolicy,
11544		HTTPMethod: "POST",
11545		HTTPPath:   "/",
11546		Paginator: &request.Paginator{
11547			InputTokens:     []string{"Marker"},
11548			OutputTokens:    []string{"Marker"},
11549			LimitToken:      "MaxItems",
11550			TruncationToken: "IsTruncated",
11551		},
11552	}
11553
11554	if input == nil {
11555		input = &SimulatePrincipalPolicyInput{}
11556	}
11557
11558	output = &SimulatePolicyResponse{}
11559	req = c.newRequest(op, input, output)
11560	return
11561}
11562
11563// SimulatePrincipalPolicy API operation for AWS Identity and Access Management.
11564//
11565// Simulate how a set of IAM policies attached to an IAM entity works with a
11566// list of API actions and AWS resources to determine the policies' effective
11567// permissions. The entity can be an IAM user, group, or role. If you specify
11568// a user, then the simulation also includes all of the policies that are attached
11569// to groups that the user belongs to .
11570//
11571// You can optionally include a list of one or more additional policies specified
11572// as strings to include in the simulation. If you want to simulate only policies
11573// specified as strings, use SimulateCustomPolicy instead.
11574//
11575// You can also optionally include one resource-based policy to be evaluated
11576// with each of the resources included in the simulation.
11577//
11578// The simulation does not perform the API actions, it only checks the authorization
11579// to determine if the simulated policies allow or deny the actions.
11580//
11581// Note: This API discloses information about the permissions granted to other
11582// users. If you do not want users to see other user's permissions, then consider
11583// allowing them to use SimulateCustomPolicy instead.
11584//
11585// Context keys are variables maintained by AWS and its services that provide
11586// details about the context of an API query request. You can use the Condition
11587// element of an IAM policy to evaluate context keys. To get the list of context
11588// keys that the policies require for correct simulation, use GetContextKeysForPrincipalPolicy.
11589//
11590// If the output is long, you can use the MaxItems and Marker parameters to
11591// paginate the results.
11592//
11593// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11594// with awserr.Error's Code and Message methods to get detailed information about
11595// the error.
11596//
11597// See the AWS API reference guide for AWS Identity and Access Management's
11598// API operation SimulatePrincipalPolicy for usage and error information.
11599//
11600// Returned Error Codes:
11601//   * ErrCodeNoSuchEntityException "NoSuchEntity"
11602//   The request was rejected because it referenced an entity that does not exist.
11603//   The error message describes the entity.
11604//
11605//   * ErrCodeInvalidInputException "InvalidInput"
11606//   The request was rejected because an invalid or out-of-range value was supplied
11607//   for an input parameter.
11608//
11609//   * ErrCodePolicyEvaluationException "PolicyEvaluation"
11610//   The request failed because a provided policy could not be successfully evaluated.
11611//   An additional detailed message indicates the source of the failure.
11612//
11613// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/SimulatePrincipalPolicy
11614func (c *IAM) SimulatePrincipalPolicy(input *SimulatePrincipalPolicyInput) (*SimulatePolicyResponse, error) {
11615	req, out := c.SimulatePrincipalPolicyRequest(input)
11616	return out, req.Send()
11617}
11618
11619// SimulatePrincipalPolicyWithContext is the same as SimulatePrincipalPolicy with the addition of
11620// the ability to pass a context and additional request options.
11621//
11622// See SimulatePrincipalPolicy for details on how to use this API operation.
11623//
11624// The context must be non-nil and will be used for request cancellation. If
11625// the context is nil a panic will occur. In the future the SDK may create
11626// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11627// for more information on using Contexts.
11628func (c *IAM) SimulatePrincipalPolicyWithContext(ctx aws.Context, input *SimulatePrincipalPolicyInput, opts ...request.Option) (*SimulatePolicyResponse, error) {
11629	req, out := c.SimulatePrincipalPolicyRequest(input)
11630	req.SetContext(ctx)
11631	req.ApplyOptions(opts...)
11632	return out, req.Send()
11633}
11634
11635// SimulatePrincipalPolicyPages iterates over the pages of a SimulatePrincipalPolicy operation,
11636// calling the "fn" function with the response data for each page. To stop
11637// iterating, return false from the fn function.
11638//
11639// See SimulatePrincipalPolicy method for more information on how to use this operation.
11640//
11641// Note: This operation can generate multiple requests to a service.
11642//
11643//    // Example iterating over at most 3 pages of a SimulatePrincipalPolicy operation.
11644//    pageNum := 0
11645//    err := client.SimulatePrincipalPolicyPages(params,
11646//        func(page *SimulatePolicyResponse, lastPage bool) bool {
11647//            pageNum++
11648//            fmt.Println(page)
11649//            return pageNum <= 3
11650//        })
11651//
11652func (c *IAM) SimulatePrincipalPolicyPages(input *SimulatePrincipalPolicyInput, fn func(*SimulatePolicyResponse, bool) bool) error {
11653	return c.SimulatePrincipalPolicyPagesWithContext(aws.BackgroundContext(), input, fn)
11654}
11655
11656// SimulatePrincipalPolicyPagesWithContext same as SimulatePrincipalPolicyPages except
11657// it takes a Context and allows setting request options on the pages.
11658//
11659// The context must be non-nil and will be used for request cancellation. If
11660// the context is nil a panic will occur. In the future the SDK may create
11661// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11662// for more information on using Contexts.
11663func (c *IAM) SimulatePrincipalPolicyPagesWithContext(ctx aws.Context, input *SimulatePrincipalPolicyInput, fn func(*SimulatePolicyResponse, bool) bool, opts ...request.Option) error {
11664	p := request.Pagination{
11665		NewRequest: func() (*request.Request, error) {
11666			var inCpy *SimulatePrincipalPolicyInput
11667			if input != nil {
11668				tmp := *input
11669				inCpy = &tmp
11670			}
11671			req, _ := c.SimulatePrincipalPolicyRequest(inCpy)
11672			req.SetContext(ctx)
11673			req.ApplyOptions(opts...)
11674			return req, nil
11675		},
11676	}
11677
11678	cont := true
11679	for p.Next() && cont {
11680		cont = fn(p.Page().(*SimulatePolicyResponse), !p.HasNextPage())
11681	}
11682	return p.Err()
11683}
11684
11685const opUpdateAccessKey = "UpdateAccessKey"
11686
11687// UpdateAccessKeyRequest generates a "aws/request.Request" representing the
11688// client's request for the UpdateAccessKey operation. The "output" return
11689// value will be populated with the request's response once the request complets
11690// successfuly.
11691//
11692// Use "Send" method on the returned Request to send the API call to the service.
11693// the "output" return value is not valid until after Send returns without error.
11694//
11695// See UpdateAccessKey for more information on using the UpdateAccessKey
11696// API call, and error handling.
11697//
11698// This method is useful when you want to inject custom logic or configuration
11699// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11700//
11701//
11702//    // Example sending a request using the UpdateAccessKeyRequest method.
11703//    req, resp := client.UpdateAccessKeyRequest(params)
11704//
11705//    err := req.Send()
11706//    if err == nil { // resp is now filled
11707//        fmt.Println(resp)
11708//    }
11709//
11710// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateAccessKey
11711func (c *IAM) UpdateAccessKeyRequest(input *UpdateAccessKeyInput) (req *request.Request, output *UpdateAccessKeyOutput) {
11712	op := &request.Operation{
11713		Name:       opUpdateAccessKey,
11714		HTTPMethod: "POST",
11715		HTTPPath:   "/",
11716	}
11717
11718	if input == nil {
11719		input = &UpdateAccessKeyInput{}
11720	}
11721
11722	output = &UpdateAccessKeyOutput{}
11723	req = c.newRequest(op, input, output)
11724	req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
11725	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
11726	return
11727}
11728
11729// UpdateAccessKey API operation for AWS Identity and Access Management.
11730//
11731// Changes the status of the specified access key from Active to Inactive, or
11732// vice versa. This action can be used to disable a user's key as part of a
11733// key rotation work flow.
11734//
11735// If the UserName field is not specified, the UserName is determined implicitly
11736// based on the AWS access key ID used to sign the request. Because this action
11737// works for access keys under the AWS account, you can use this action to manage
11738// root credentials even if the AWS account has no associated users.
11739//
11740// For information about rotating keys, see Managing Keys and Certificates (http://docs.aws.amazon.com/IAM/latest/UserGuide/ManagingCredentials.html)
11741// in the IAM User Guide.
11742//
11743// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11744// with awserr.Error's Code and Message methods to get detailed information about
11745// the error.
11746//
11747// See the AWS API reference guide for AWS Identity and Access Management's
11748// API operation UpdateAccessKey for usage and error information.
11749//
11750// Returned Error Codes:
11751//   * ErrCodeNoSuchEntityException "NoSuchEntity"
11752//   The request was rejected because it referenced an entity that does not exist.
11753//   The error message describes the entity.
11754//
11755//   * ErrCodeLimitExceededException "LimitExceeded"
11756//   The request was rejected because it attempted to create resources beyond
11757//   the current AWS account limits. The error message describes the limit exceeded.
11758//
11759//   * ErrCodeServiceFailureException "ServiceFailure"
11760//   The request processing has failed because of an unknown error, exception
11761//   or failure.
11762//
11763// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateAccessKey
11764func (c *IAM) UpdateAccessKey(input *UpdateAccessKeyInput) (*UpdateAccessKeyOutput, error) {
11765	req, out := c.UpdateAccessKeyRequest(input)
11766	return out, req.Send()
11767}
11768
11769// UpdateAccessKeyWithContext is the same as UpdateAccessKey with the addition of
11770// the ability to pass a context and additional request options.
11771//
11772// See UpdateAccessKey for details on how to use this API operation.
11773//
11774// The context must be non-nil and will be used for request cancellation. If
11775// the context is nil a panic will occur. In the future the SDK may create
11776// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11777// for more information on using Contexts.
11778func (c *IAM) UpdateAccessKeyWithContext(ctx aws.Context, input *UpdateAccessKeyInput, opts ...request.Option) (*UpdateAccessKeyOutput, error) {
11779	req, out := c.UpdateAccessKeyRequest(input)
11780	req.SetContext(ctx)
11781	req.ApplyOptions(opts...)
11782	return out, req.Send()
11783}
11784
11785const opUpdateAccountPasswordPolicy = "UpdateAccountPasswordPolicy"
11786
11787// UpdateAccountPasswordPolicyRequest generates a "aws/request.Request" representing the
11788// client's request for the UpdateAccountPasswordPolicy operation. The "output" return
11789// value will be populated with the request's response once the request complets
11790// successfuly.
11791//
11792// Use "Send" method on the returned Request to send the API call to the service.
11793// the "output" return value is not valid until after Send returns without error.
11794//
11795// See UpdateAccountPasswordPolicy for more information on using the UpdateAccountPasswordPolicy
11796// API call, and error handling.
11797//
11798// This method is useful when you want to inject custom logic or configuration
11799// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11800//
11801//
11802//    // Example sending a request using the UpdateAccountPasswordPolicyRequest method.
11803//    req, resp := client.UpdateAccountPasswordPolicyRequest(params)
11804//
11805//    err := req.Send()
11806//    if err == nil { // resp is now filled
11807//        fmt.Println(resp)
11808//    }
11809//
11810// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateAccountPasswordPolicy
11811func (c *IAM) UpdateAccountPasswordPolicyRequest(input *UpdateAccountPasswordPolicyInput) (req *request.Request, output *UpdateAccountPasswordPolicyOutput) {
11812	op := &request.Operation{
11813		Name:       opUpdateAccountPasswordPolicy,
11814		HTTPMethod: "POST",
11815		HTTPPath:   "/",
11816	}
11817
11818	if input == nil {
11819		input = &UpdateAccountPasswordPolicyInput{}
11820	}
11821
11822	output = &UpdateAccountPasswordPolicyOutput{}
11823	req = c.newRequest(op, input, output)
11824	req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
11825	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
11826	return
11827}
11828
11829// UpdateAccountPasswordPolicy API operation for AWS Identity and Access Management.
11830//
11831// Updates the password policy settings for the AWS account.
11832//
11833// This action does not support partial updates. No parameters are required,
11834// but if you do not specify a parameter, that parameter's value reverts to
11835// its default value. See the Request Parameters section for each parameter's
11836// default value.
11837//
11838// For more information about using a password policy, see Managing an IAM Password
11839// Policy (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_ManagingPasswordPolicies.html)
11840// in the IAM User Guide.
11841//
11842// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11843// with awserr.Error's Code and Message methods to get detailed information about
11844// the error.
11845//
11846// See the AWS API reference guide for AWS Identity and Access Management's
11847// API operation UpdateAccountPasswordPolicy for usage and error information.
11848//
11849// Returned Error Codes:
11850//   * ErrCodeNoSuchEntityException "NoSuchEntity"
11851//   The request was rejected because it referenced an entity that does not exist.
11852//   The error message describes the entity.
11853//
11854//   * ErrCodeMalformedPolicyDocumentException "MalformedPolicyDocument"
11855//   The request was rejected because the policy document was malformed. The error
11856//   message describes the specific error.
11857//
11858//   * ErrCodeLimitExceededException "LimitExceeded"
11859//   The request was rejected because it attempted to create resources beyond
11860//   the current AWS account limits. The error message describes the limit exceeded.
11861//
11862//   * ErrCodeServiceFailureException "ServiceFailure"
11863//   The request processing has failed because of an unknown error, exception
11864//   or failure.
11865//
11866// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateAccountPasswordPolicy
11867func (c *IAM) UpdateAccountPasswordPolicy(input *UpdateAccountPasswordPolicyInput) (*UpdateAccountPasswordPolicyOutput, error) {
11868	req, out := c.UpdateAccountPasswordPolicyRequest(input)
11869	return out, req.Send()
11870}
11871
11872// UpdateAccountPasswordPolicyWithContext is the same as UpdateAccountPasswordPolicy with the addition of
11873// the ability to pass a context and additional request options.
11874//
11875// See UpdateAccountPasswordPolicy for details on how to use this API operation.
11876//
11877// The context must be non-nil and will be used for request cancellation. If
11878// the context is nil a panic will occur. In the future the SDK may create
11879// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11880// for more information on using Contexts.
11881func (c *IAM) UpdateAccountPasswordPolicyWithContext(ctx aws.Context, input *UpdateAccountPasswordPolicyInput, opts ...request.Option) (*UpdateAccountPasswordPolicyOutput, error) {
11882	req, out := c.UpdateAccountPasswordPolicyRequest(input)
11883	req.SetContext(ctx)
11884	req.ApplyOptions(opts...)
11885	return out, req.Send()
11886}
11887
11888const opUpdateAssumeRolePolicy = "UpdateAssumeRolePolicy"
11889
11890// UpdateAssumeRolePolicyRequest generates a "aws/request.Request" representing the
11891// client's request for the UpdateAssumeRolePolicy operation. The "output" return
11892// value will be populated with the request's response once the request complets
11893// successfuly.
11894//
11895// Use "Send" method on the returned Request to send the API call to the service.
11896// the "output" return value is not valid until after Send returns without error.
11897//
11898// See UpdateAssumeRolePolicy for more information on using the UpdateAssumeRolePolicy
11899// API call, and error handling.
11900//
11901// This method is useful when you want to inject custom logic or configuration
11902// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11903//
11904//
11905//    // Example sending a request using the UpdateAssumeRolePolicyRequest method.
11906//    req, resp := client.UpdateAssumeRolePolicyRequest(params)
11907//
11908//    err := req.Send()
11909//    if err == nil { // resp is now filled
11910//        fmt.Println(resp)
11911//    }
11912//
11913// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateAssumeRolePolicy
11914func (c *IAM) UpdateAssumeRolePolicyRequest(input *UpdateAssumeRolePolicyInput) (req *request.Request, output *UpdateAssumeRolePolicyOutput) {
11915	op := &request.Operation{
11916		Name:       opUpdateAssumeRolePolicy,
11917		HTTPMethod: "POST",
11918		HTTPPath:   "/",
11919	}
11920
11921	if input == nil {
11922		input = &UpdateAssumeRolePolicyInput{}
11923	}
11924
11925	output = &UpdateAssumeRolePolicyOutput{}
11926	req = c.newRequest(op, input, output)
11927	req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
11928	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
11929	return
11930}
11931
11932// UpdateAssumeRolePolicy API operation for AWS Identity and Access Management.
11933//
11934// Updates the policy that grants an IAM entity permission to assume a role.
11935// This is typically referred to as the "role trust policy". For more information
11936// about roles, go to Using Roles to Delegate Permissions and Federate Identities
11937// (http://docs.aws.amazon.com/IAM/latest/UserGuide/roles-toplevel.html).
11938//
11939// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11940// with awserr.Error's Code and Message methods to get detailed information about
11941// the error.
11942//
11943// See the AWS API reference guide for AWS Identity and Access Management's
11944// API operation UpdateAssumeRolePolicy for usage and error information.
11945//
11946// Returned Error Codes:
11947//   * ErrCodeNoSuchEntityException "NoSuchEntity"
11948//   The request was rejected because it referenced an entity that does not exist.
11949//   The error message describes the entity.
11950//
11951//   * ErrCodeMalformedPolicyDocumentException "MalformedPolicyDocument"
11952//   The request was rejected because the policy document was malformed. The error
11953//   message describes the specific error.
11954//
11955//   * ErrCodeLimitExceededException "LimitExceeded"
11956//   The request was rejected because it attempted to create resources beyond
11957//   the current AWS account limits. The error message describes the limit exceeded.
11958//
11959//   * ErrCodeUnmodifiableEntityException "UnmodifiableEntity"
11960//   The request was rejected because only the service that depends on the service-linked
11961//   role can modify or delete the role on your behalf. The error message includes
11962//   the name of the service that depends on this service-linked role. You must
11963//   request the change through that service.
11964//
11965//   * ErrCodeServiceFailureException "ServiceFailure"
11966//   The request processing has failed because of an unknown error, exception
11967//   or failure.
11968//
11969// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateAssumeRolePolicy
11970func (c *IAM) UpdateAssumeRolePolicy(input *UpdateAssumeRolePolicyInput) (*UpdateAssumeRolePolicyOutput, error) {
11971	req, out := c.UpdateAssumeRolePolicyRequest(input)
11972	return out, req.Send()
11973}
11974
11975// UpdateAssumeRolePolicyWithContext is the same as UpdateAssumeRolePolicy with the addition of
11976// the ability to pass a context and additional request options.
11977//
11978// See UpdateAssumeRolePolicy for details on how to use this API operation.
11979//
11980// The context must be non-nil and will be used for request cancellation. If
11981// the context is nil a panic will occur. In the future the SDK may create
11982// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11983// for more information on using Contexts.
11984func (c *IAM) UpdateAssumeRolePolicyWithContext(ctx aws.Context, input *UpdateAssumeRolePolicyInput, opts ...request.Option) (*UpdateAssumeRolePolicyOutput, error) {
11985	req, out := c.UpdateAssumeRolePolicyRequest(input)
11986	req.SetContext(ctx)
11987	req.ApplyOptions(opts...)
11988	return out, req.Send()
11989}
11990
11991const opUpdateGroup = "UpdateGroup"
11992
11993// UpdateGroupRequest generates a "aws/request.Request" representing the
11994// client's request for the UpdateGroup operation. The "output" return
11995// value will be populated with the request's response once the request complets
11996// successfuly.
11997//
11998// Use "Send" method on the returned Request to send the API call to the service.
11999// the "output" return value is not valid until after Send returns without error.
12000//
12001// See UpdateGroup for more information on using the UpdateGroup
12002// API call, and error handling.
12003//
12004// This method is useful when you want to inject custom logic or configuration
12005// into the SDK's request lifecycle. Such as custom headers, or retry logic.
12006//
12007//
12008//    // Example sending a request using the UpdateGroupRequest method.
12009//    req, resp := client.UpdateGroupRequest(params)
12010//
12011//    err := req.Send()
12012//    if err == nil { // resp is now filled
12013//        fmt.Println(resp)
12014//    }
12015//
12016// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateGroup
12017func (c *IAM) UpdateGroupRequest(input *UpdateGroupInput) (req *request.Request, output *UpdateGroupOutput) {
12018	op := &request.Operation{
12019		Name:       opUpdateGroup,
12020		HTTPMethod: "POST",
12021		HTTPPath:   "/",
12022	}
12023
12024	if input == nil {
12025		input = &UpdateGroupInput{}
12026	}
12027
12028	output = &UpdateGroupOutput{}
12029	req = c.newRequest(op, input, output)
12030	req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
12031	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
12032	return
12033}
12034
12035// UpdateGroup API operation for AWS Identity and Access Management.
12036//
12037// Updates the name and/or the path of the specified IAM group.
12038//
12039// You should understand the implications of changing a group's path or name.
12040// For more information, see Renaming Users and Groups (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_WorkingWithGroupsAndUsers.html)
12041// in the IAM User Guide.
12042//
12043// To change an IAM group name the requester must have appropriate permissions
12044// on both the source object and the target object. For example, to change "Managers"
12045// to "MGRs", the entity making the request must have permission on both "Managers"
12046// and "MGRs", or must have permission on all (*). For more information about
12047// permissions, see Permissions and Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/PermissionsAndPolicies.html).
12048//
12049// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
12050// with awserr.Error's Code and Message methods to get detailed information about
12051// the error.
12052//
12053// See the AWS API reference guide for AWS Identity and Access Management's
12054// API operation UpdateGroup for usage and error information.
12055//
12056// Returned Error Codes:
12057//   * ErrCodeNoSuchEntityException "NoSuchEntity"
12058//   The request was rejected because it referenced an entity that does not exist.
12059//   The error message describes the entity.
12060//
12061//   * ErrCodeEntityAlreadyExistsException "EntityAlreadyExists"
12062//   The request was rejected because it attempted to create a resource that already
12063//   exists.
12064//
12065//   * ErrCodeLimitExceededException "LimitExceeded"
12066//   The request was rejected because it attempted to create resources beyond
12067//   the current AWS account limits. The error message describes the limit exceeded.
12068//
12069//   * ErrCodeServiceFailureException "ServiceFailure"
12070//   The request processing has failed because of an unknown error, exception
12071//   or failure.
12072//
12073// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateGroup
12074func (c *IAM) UpdateGroup(input *UpdateGroupInput) (*UpdateGroupOutput, error) {
12075	req, out := c.UpdateGroupRequest(input)
12076	return out, req.Send()
12077}
12078
12079// UpdateGroupWithContext is the same as UpdateGroup with the addition of
12080// the ability to pass a context and additional request options.
12081//
12082// See UpdateGroup for details on how to use this API operation.
12083//
12084// The context must be non-nil and will be used for request cancellation. If
12085// the context is nil a panic will occur. In the future the SDK may create
12086// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12087// for more information on using Contexts.
12088func (c *IAM) UpdateGroupWithContext(ctx aws.Context, input *UpdateGroupInput, opts ...request.Option) (*UpdateGroupOutput, error) {
12089	req, out := c.UpdateGroupRequest(input)
12090	req.SetContext(ctx)
12091	req.ApplyOptions(opts...)
12092	return out, req.Send()
12093}
12094
12095const opUpdateLoginProfile = "UpdateLoginProfile"
12096
12097// UpdateLoginProfileRequest generates a "aws/request.Request" representing the
12098// client's request for the UpdateLoginProfile operation. The "output" return
12099// value will be populated with the request's response once the request complets
12100// successfuly.
12101//
12102// Use "Send" method on the returned Request to send the API call to the service.
12103// the "output" return value is not valid until after Send returns without error.
12104//
12105// See UpdateLoginProfile for more information on using the UpdateLoginProfile
12106// API call, and error handling.
12107//
12108// This method is useful when you want to inject custom logic or configuration
12109// into the SDK's request lifecycle. Such as custom headers, or retry logic.
12110//
12111//
12112//    // Example sending a request using the UpdateLoginProfileRequest method.
12113//    req, resp := client.UpdateLoginProfileRequest(params)
12114//
12115//    err := req.Send()
12116//    if err == nil { // resp is now filled
12117//        fmt.Println(resp)
12118//    }
12119//
12120// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateLoginProfile
12121func (c *IAM) UpdateLoginProfileRequest(input *UpdateLoginProfileInput) (req *request.Request, output *UpdateLoginProfileOutput) {
12122	op := &request.Operation{
12123		Name:       opUpdateLoginProfile,
12124		HTTPMethod: "POST",
12125		HTTPPath:   "/",
12126	}
12127
12128	if input == nil {
12129		input = &UpdateLoginProfileInput{}
12130	}
12131
12132	output = &UpdateLoginProfileOutput{}
12133	req = c.newRequest(op, input, output)
12134	req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
12135	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
12136	return
12137}
12138
12139// UpdateLoginProfile API operation for AWS Identity and Access Management.
12140//
12141// Changes the password for the specified IAM user.
12142//
12143// IAM users can change their own passwords by calling ChangePassword. For more
12144// information about modifying passwords, see Managing Passwords (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_ManagingLogins.html)
12145// in the IAM User Guide.
12146//
12147// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
12148// with awserr.Error's Code and Message methods to get detailed information about
12149// the error.
12150//
12151// See the AWS API reference guide for AWS Identity and Access Management's
12152// API operation UpdateLoginProfile for usage and error information.
12153//
12154// Returned Error Codes:
12155//   * ErrCodeEntityTemporarilyUnmodifiableException "EntityTemporarilyUnmodifiable"
12156//   The request was rejected because it referenced an entity that is temporarily
12157//   unmodifiable, such as a user name that was deleted and then recreated. The
12158//   error indicates that the request is likely to succeed if you try again after
12159//   waiting several minutes. The error message describes the entity.
12160//
12161//   * ErrCodeNoSuchEntityException "NoSuchEntity"
12162//   The request was rejected because it referenced an entity that does not exist.
12163//   The error message describes the entity.
12164//
12165//   * ErrCodePasswordPolicyViolationException "PasswordPolicyViolation"
12166//   The request was rejected because the provided password did not meet the requirements
12167//   imposed by the account password policy.
12168//
12169//   * ErrCodeLimitExceededException "LimitExceeded"
12170//   The request was rejected because it attempted to create resources beyond
12171//   the current AWS account limits. The error message describes the limit exceeded.
12172//
12173//   * ErrCodeServiceFailureException "ServiceFailure"
12174//   The request processing has failed because of an unknown error, exception
12175//   or failure.
12176//
12177// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateLoginProfile
12178func (c *IAM) UpdateLoginProfile(input *UpdateLoginProfileInput) (*UpdateLoginProfileOutput, error) {
12179	req, out := c.UpdateLoginProfileRequest(input)
12180	return out, req.Send()
12181}
12182
12183// UpdateLoginProfileWithContext is the same as UpdateLoginProfile with the addition of
12184// the ability to pass a context and additional request options.
12185//
12186// See UpdateLoginProfile for details on how to use this API operation.
12187//
12188// The context must be non-nil and will be used for request cancellation. If
12189// the context is nil a panic will occur. In the future the SDK may create
12190// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12191// for more information on using Contexts.
12192func (c *IAM) UpdateLoginProfileWithContext(ctx aws.Context, input *UpdateLoginProfileInput, opts ...request.Option) (*UpdateLoginProfileOutput, error) {
12193	req, out := c.UpdateLoginProfileRequest(input)
12194	req.SetContext(ctx)
12195	req.ApplyOptions(opts...)
12196	return out, req.Send()
12197}
12198
12199const opUpdateOpenIDConnectProviderThumbprint = "UpdateOpenIDConnectProviderThumbprint"
12200
12201// UpdateOpenIDConnectProviderThumbprintRequest generates a "aws/request.Request" representing the
12202// client's request for the UpdateOpenIDConnectProviderThumbprint operation. The "output" return
12203// value will be populated with the request's response once the request complets
12204// successfuly.
12205//
12206// Use "Send" method on the returned Request to send the API call to the service.
12207// the "output" return value is not valid until after Send returns without error.
12208//
12209// See UpdateOpenIDConnectProviderThumbprint for more information on using the UpdateOpenIDConnectProviderThumbprint
12210// API call, and error handling.
12211//
12212// This method is useful when you want to inject custom logic or configuration
12213// into the SDK's request lifecycle. Such as custom headers, or retry logic.
12214//
12215//
12216//    // Example sending a request using the UpdateOpenIDConnectProviderThumbprintRequest method.
12217//    req, resp := client.UpdateOpenIDConnectProviderThumbprintRequest(params)
12218//
12219//    err := req.Send()
12220//    if err == nil { // resp is now filled
12221//        fmt.Println(resp)
12222//    }
12223//
12224// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateOpenIDConnectProviderThumbprint
12225func (c *IAM) UpdateOpenIDConnectProviderThumbprintRequest(input *UpdateOpenIDConnectProviderThumbprintInput) (req *request.Request, output *UpdateOpenIDConnectProviderThumbprintOutput) {
12226	op := &request.Operation{
12227		Name:       opUpdateOpenIDConnectProviderThumbprint,
12228		HTTPMethod: "POST",
12229		HTTPPath:   "/",
12230	}
12231
12232	if input == nil {
12233		input = &UpdateOpenIDConnectProviderThumbprintInput{}
12234	}
12235
12236	output = &UpdateOpenIDConnectProviderThumbprintOutput{}
12237	req = c.newRequest(op, input, output)
12238	req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
12239	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
12240	return
12241}
12242
12243// UpdateOpenIDConnectProviderThumbprint API operation for AWS Identity and Access Management.
12244//
12245// Replaces the existing list of server certificate thumbprints associated with
12246// an OpenID Connect (OIDC) provider resource object with a new list of thumbprints.
12247//
12248// The list that you pass with this action completely replaces the existing
12249// list of thumbprints. (The lists are not merged.)
12250//
12251// Typically, you need to update a thumbprint only when the identity provider's
12252// certificate changes, which occurs rarely. However, if the provider's certificate
12253// does change, any attempt to assume an IAM role that specifies the OIDC provider
12254// as a principal fails until the certificate thumbprint is updated.
12255//
12256// Because trust for the OIDC provider is ultimately derived from the provider's
12257// certificate and is validated by the thumbprint, it is a best practice to
12258// limit access to the UpdateOpenIDConnectProviderThumbprint action to highly-privileged
12259// users.
12260//
12261// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
12262// with awserr.Error's Code and Message methods to get detailed information about
12263// the error.
12264//
12265// See the AWS API reference guide for AWS Identity and Access Management's
12266// API operation UpdateOpenIDConnectProviderThumbprint for usage and error information.
12267//
12268// Returned Error Codes:
12269//   * ErrCodeInvalidInputException "InvalidInput"
12270//   The request was rejected because an invalid or out-of-range value was supplied
12271//   for an input parameter.
12272//
12273//   * ErrCodeNoSuchEntityException "NoSuchEntity"
12274//   The request was rejected because it referenced an entity that does not exist.
12275//   The error message describes the entity.
12276//
12277//   * ErrCodeServiceFailureException "ServiceFailure"
12278//   The request processing has failed because of an unknown error, exception
12279//   or failure.
12280//
12281// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateOpenIDConnectProviderThumbprint
12282func (c *IAM) UpdateOpenIDConnectProviderThumbprint(input *UpdateOpenIDConnectProviderThumbprintInput) (*UpdateOpenIDConnectProviderThumbprintOutput, error) {
12283	req, out := c.UpdateOpenIDConnectProviderThumbprintRequest(input)
12284	return out, req.Send()
12285}
12286
12287// UpdateOpenIDConnectProviderThumbprintWithContext is the same as UpdateOpenIDConnectProviderThumbprint with the addition of
12288// the ability to pass a context and additional request options.
12289//
12290// See UpdateOpenIDConnectProviderThumbprint for details on how to use this API operation.
12291//
12292// The context must be non-nil and will be used for request cancellation. If
12293// the context is nil a panic will occur. In the future the SDK may create
12294// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12295// for more information on using Contexts.
12296func (c *IAM) UpdateOpenIDConnectProviderThumbprintWithContext(ctx aws.Context, input *UpdateOpenIDConnectProviderThumbprintInput, opts ...request.Option) (*UpdateOpenIDConnectProviderThumbprintOutput, error) {
12297	req, out := c.UpdateOpenIDConnectProviderThumbprintRequest(input)
12298	req.SetContext(ctx)
12299	req.ApplyOptions(opts...)
12300	return out, req.Send()
12301}
12302
12303const opUpdateRoleDescription = "UpdateRoleDescription"
12304
12305// UpdateRoleDescriptionRequest generates a "aws/request.Request" representing the
12306// client's request for the UpdateRoleDescription operation. The "output" return
12307// value will be populated with the request's response once the request complets
12308// successfuly.
12309//
12310// Use "Send" method on the returned Request to send the API call to the service.
12311// the "output" return value is not valid until after Send returns without error.
12312//
12313// See UpdateRoleDescription for more information on using the UpdateRoleDescription
12314// API call, and error handling.
12315//
12316// This method is useful when you want to inject custom logic or configuration
12317// into the SDK's request lifecycle. Such as custom headers, or retry logic.
12318//
12319//
12320//    // Example sending a request using the UpdateRoleDescriptionRequest method.
12321//    req, resp := client.UpdateRoleDescriptionRequest(params)
12322//
12323//    err := req.Send()
12324//    if err == nil { // resp is now filled
12325//        fmt.Println(resp)
12326//    }
12327//
12328// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateRoleDescription
12329func (c *IAM) UpdateRoleDescriptionRequest(input *UpdateRoleDescriptionInput) (req *request.Request, output *UpdateRoleDescriptionOutput) {
12330	op := &request.Operation{
12331		Name:       opUpdateRoleDescription,
12332		HTTPMethod: "POST",
12333		HTTPPath:   "/",
12334	}
12335
12336	if input == nil {
12337		input = &UpdateRoleDescriptionInput{}
12338	}
12339
12340	output = &UpdateRoleDescriptionOutput{}
12341	req = c.newRequest(op, input, output)
12342	return
12343}
12344
12345// UpdateRoleDescription API operation for AWS Identity and Access Management.
12346//
12347// Modifies the description of a role.
12348//
12349// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
12350// with awserr.Error's Code and Message methods to get detailed information about
12351// the error.
12352//
12353// See the AWS API reference guide for AWS Identity and Access Management's
12354// API operation UpdateRoleDescription for usage and error information.
12355//
12356// Returned Error Codes:
12357//   * ErrCodeNoSuchEntityException "NoSuchEntity"
12358//   The request was rejected because it referenced an entity that does not exist.
12359//   The error message describes the entity.
12360//
12361//   * ErrCodeUnmodifiableEntityException "UnmodifiableEntity"
12362//   The request was rejected because only the service that depends on the service-linked
12363//   role can modify or delete the role on your behalf. The error message includes
12364//   the name of the service that depends on this service-linked role. You must
12365//   request the change through that service.
12366//
12367//   * ErrCodeServiceFailureException "ServiceFailure"
12368//   The request processing has failed because of an unknown error, exception
12369//   or failure.
12370//
12371// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateRoleDescription
12372func (c *IAM) UpdateRoleDescription(input *UpdateRoleDescriptionInput) (*UpdateRoleDescriptionOutput, error) {
12373	req, out := c.UpdateRoleDescriptionRequest(input)
12374	return out, req.Send()
12375}
12376
12377// UpdateRoleDescriptionWithContext is the same as UpdateRoleDescription with the addition of
12378// the ability to pass a context and additional request options.
12379//
12380// See UpdateRoleDescription for details on how to use this API operation.
12381//
12382// The context must be non-nil and will be used for request cancellation. If
12383// the context is nil a panic will occur. In the future the SDK may create
12384// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12385// for more information on using Contexts.
12386func (c *IAM) UpdateRoleDescriptionWithContext(ctx aws.Context, input *UpdateRoleDescriptionInput, opts ...request.Option) (*UpdateRoleDescriptionOutput, error) {
12387	req, out := c.UpdateRoleDescriptionRequest(input)
12388	req.SetContext(ctx)
12389	req.ApplyOptions(opts...)
12390	return out, req.Send()
12391}
12392
12393const opUpdateSAMLProvider = "UpdateSAMLProvider"
12394
12395// UpdateSAMLProviderRequest generates a "aws/request.Request" representing the
12396// client's request for the UpdateSAMLProvider operation. The "output" return
12397// value will be populated with the request's response once the request complets
12398// successfuly.
12399//
12400// Use "Send" method on the returned Request to send the API call to the service.
12401// the "output" return value is not valid until after Send returns without error.
12402//
12403// See UpdateSAMLProvider for more information on using the UpdateSAMLProvider
12404// API call, and error handling.
12405//
12406// This method is useful when you want to inject custom logic or configuration
12407// into the SDK's request lifecycle. Such as custom headers, or retry logic.
12408//
12409//
12410//    // Example sending a request using the UpdateSAMLProviderRequest method.
12411//    req, resp := client.UpdateSAMLProviderRequest(params)
12412//
12413//    err := req.Send()
12414//    if err == nil { // resp is now filled
12415//        fmt.Println(resp)
12416//    }
12417//
12418// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateSAMLProvider
12419func (c *IAM) UpdateSAMLProviderRequest(input *UpdateSAMLProviderInput) (req *request.Request, output *UpdateSAMLProviderOutput) {
12420	op := &request.Operation{
12421		Name:       opUpdateSAMLProvider,
12422		HTTPMethod: "POST",
12423		HTTPPath:   "/",
12424	}
12425
12426	if input == nil {
12427		input = &UpdateSAMLProviderInput{}
12428	}
12429
12430	output = &UpdateSAMLProviderOutput{}
12431	req = c.newRequest(op, input, output)
12432	return
12433}
12434
12435// UpdateSAMLProvider API operation for AWS Identity and Access Management.
12436//
12437// Updates the metadata document for an existing SAML provider resource object.
12438//
12439// This operation requires Signature Version 4 (http://docs.aws.amazon.com/general/latest/gr/signature-version-4.html).
12440//
12441// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
12442// with awserr.Error's Code and Message methods to get detailed information about
12443// the error.
12444//
12445// See the AWS API reference guide for AWS Identity and Access Management's
12446// API operation UpdateSAMLProvider for usage and error information.
12447//
12448// Returned Error Codes:
12449//   * ErrCodeNoSuchEntityException "NoSuchEntity"
12450//   The request was rejected because it referenced an entity that does not exist.
12451//   The error message describes the entity.
12452//
12453//   * ErrCodeInvalidInputException "InvalidInput"
12454//   The request was rejected because an invalid or out-of-range value was supplied
12455//   for an input parameter.
12456//
12457//   * ErrCodeLimitExceededException "LimitExceeded"
12458//   The request was rejected because it attempted to create resources beyond
12459//   the current AWS account limits. The error message describes the limit exceeded.
12460//
12461//   * ErrCodeServiceFailureException "ServiceFailure"
12462//   The request processing has failed because of an unknown error, exception
12463//   or failure.
12464//
12465// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateSAMLProvider
12466func (c *IAM) UpdateSAMLProvider(input *UpdateSAMLProviderInput) (*UpdateSAMLProviderOutput, error) {
12467	req, out := c.UpdateSAMLProviderRequest(input)
12468	return out, req.Send()
12469}
12470
12471// UpdateSAMLProviderWithContext is the same as UpdateSAMLProvider with the addition of
12472// the ability to pass a context and additional request options.
12473//
12474// See UpdateSAMLProvider for details on how to use this API operation.
12475//
12476// The context must be non-nil and will be used for request cancellation. If
12477// the context is nil a panic will occur. In the future the SDK may create
12478// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12479// for more information on using Contexts.
12480func (c *IAM) UpdateSAMLProviderWithContext(ctx aws.Context, input *UpdateSAMLProviderInput, opts ...request.Option) (*UpdateSAMLProviderOutput, error) {
12481	req, out := c.UpdateSAMLProviderRequest(input)
12482	req.SetContext(ctx)
12483	req.ApplyOptions(opts...)
12484	return out, req.Send()
12485}
12486
12487const opUpdateSSHPublicKey = "UpdateSSHPublicKey"
12488
12489// UpdateSSHPublicKeyRequest generates a "aws/request.Request" representing the
12490// client's request for the UpdateSSHPublicKey operation. The "output" return
12491// value will be populated with the request's response once the request complets
12492// successfuly.
12493//
12494// Use "Send" method on the returned Request to send the API call to the service.
12495// the "output" return value is not valid until after Send returns without error.
12496//
12497// See UpdateSSHPublicKey for more information on using the UpdateSSHPublicKey
12498// API call, and error handling.
12499//
12500// This method is useful when you want to inject custom logic or configuration
12501// into the SDK's request lifecycle. Such as custom headers, or retry logic.
12502//
12503//
12504//    // Example sending a request using the UpdateSSHPublicKeyRequest method.
12505//    req, resp := client.UpdateSSHPublicKeyRequest(params)
12506//
12507//    err := req.Send()
12508//    if err == nil { // resp is now filled
12509//        fmt.Println(resp)
12510//    }
12511//
12512// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateSSHPublicKey
12513func (c *IAM) UpdateSSHPublicKeyRequest(input *UpdateSSHPublicKeyInput) (req *request.Request, output *UpdateSSHPublicKeyOutput) {
12514	op := &request.Operation{
12515		Name:       opUpdateSSHPublicKey,
12516		HTTPMethod: "POST",
12517		HTTPPath:   "/",
12518	}
12519
12520	if input == nil {
12521		input = &UpdateSSHPublicKeyInput{}
12522	}
12523
12524	output = &UpdateSSHPublicKeyOutput{}
12525	req = c.newRequest(op, input, output)
12526	req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
12527	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
12528	return
12529}
12530
12531// UpdateSSHPublicKey API operation for AWS Identity and Access Management.
12532//
12533// Sets the status of an IAM user's SSH public key to active or inactive. SSH
12534// public keys that are inactive cannot be used for authentication. This action
12535// can be used to disable a user's SSH public key as part of a key rotation
12536// work flow.
12537//
12538// The SSH public key affected by this action is used only for authenticating
12539// the associated IAM user to an AWS CodeCommit repository. For more information
12540// about using SSH keys to authenticate to an AWS CodeCommit repository, see
12541// Set up AWS CodeCommit for SSH Connections (http://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-credentials-ssh.html)
12542// in the AWS CodeCommit User Guide.
12543//
12544// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
12545// with awserr.Error's Code and Message methods to get detailed information about
12546// the error.
12547//
12548// See the AWS API reference guide for AWS Identity and Access Management's
12549// API operation UpdateSSHPublicKey for usage and error information.
12550//
12551// Returned Error Codes:
12552//   * ErrCodeNoSuchEntityException "NoSuchEntity"
12553//   The request was rejected because it referenced an entity that does not exist.
12554//   The error message describes the entity.
12555//
12556// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateSSHPublicKey
12557func (c *IAM) UpdateSSHPublicKey(input *UpdateSSHPublicKeyInput) (*UpdateSSHPublicKeyOutput, error) {
12558	req, out := c.UpdateSSHPublicKeyRequest(input)
12559	return out, req.Send()
12560}
12561
12562// UpdateSSHPublicKeyWithContext is the same as UpdateSSHPublicKey with the addition of
12563// the ability to pass a context and additional request options.
12564//
12565// See UpdateSSHPublicKey for details on how to use this API operation.
12566//
12567// The context must be non-nil and will be used for request cancellation. If
12568// the context is nil a panic will occur. In the future the SDK may create
12569// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12570// for more information on using Contexts.
12571func (c *IAM) UpdateSSHPublicKeyWithContext(ctx aws.Context, input *UpdateSSHPublicKeyInput, opts ...request.Option) (*UpdateSSHPublicKeyOutput, error) {
12572	req, out := c.UpdateSSHPublicKeyRequest(input)
12573	req.SetContext(ctx)
12574	req.ApplyOptions(opts...)
12575	return out, req.Send()
12576}
12577
12578const opUpdateServerCertificate = "UpdateServerCertificate"
12579
12580// UpdateServerCertificateRequest generates a "aws/request.Request" representing the
12581// client's request for the UpdateServerCertificate operation. The "output" return
12582// value will be populated with the request's response once the request complets
12583// successfuly.
12584//
12585// Use "Send" method on the returned Request to send the API call to the service.
12586// the "output" return value is not valid until after Send returns without error.
12587//
12588// See UpdateServerCertificate for more information on using the UpdateServerCertificate
12589// API call, and error handling.
12590//
12591// This method is useful when you want to inject custom logic or configuration
12592// into the SDK's request lifecycle. Such as custom headers, or retry logic.
12593//
12594//
12595//    // Example sending a request using the UpdateServerCertificateRequest method.
12596//    req, resp := client.UpdateServerCertificateRequest(params)
12597//
12598//    err := req.Send()
12599//    if err == nil { // resp is now filled
12600//        fmt.Println(resp)
12601//    }
12602//
12603// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateServerCertificate
12604func (c *IAM) UpdateServerCertificateRequest(input *UpdateServerCertificateInput) (req *request.Request, output *UpdateServerCertificateOutput) {
12605	op := &request.Operation{
12606		Name:       opUpdateServerCertificate,
12607		HTTPMethod: "POST",
12608		HTTPPath:   "/",
12609	}
12610
12611	if input == nil {
12612		input = &UpdateServerCertificateInput{}
12613	}
12614
12615	output = &UpdateServerCertificateOutput{}
12616	req = c.newRequest(op, input, output)
12617	req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
12618	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
12619	return
12620}
12621
12622// UpdateServerCertificate API operation for AWS Identity and Access Management.
12623//
12624// Updates the name and/or the path of the specified server certificate stored
12625// in IAM.
12626//
12627// For more information about working with server certificates, including a
12628// list of AWS services that can use the server certificates that you manage
12629// with IAM, go to Working with Server Certificates (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html)
12630// in the IAM User Guide.
12631//
12632// You should understand the implications of changing a server certificate's
12633// path or name. For more information, see Renaming a Server Certificate (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs_manage.html#RenamingServerCerts)
12634// in the IAM User Guide.
12635//
12636// To change a server certificate name the requester must have appropriate permissions
12637// on both the source object and the target object. For example, to change the
12638// name from "ProductionCert" to "ProdCert", the entity making the request must
12639// have permission on "ProductionCert" and "ProdCert", or must have permission
12640// on all (*). For more information about permissions, see Access Management
12641// (http://docs.aws.amazon.com/IAM/latest/UserGuide/access.html) in the IAM
12642// User Guide.
12643//
12644// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
12645// with awserr.Error's Code and Message methods to get detailed information about
12646// the error.
12647//
12648// See the AWS API reference guide for AWS Identity and Access Management's
12649// API operation UpdateServerCertificate for usage and error information.
12650//
12651// Returned Error Codes:
12652//   * ErrCodeNoSuchEntityException "NoSuchEntity"
12653//   The request was rejected because it referenced an entity that does not exist.
12654//   The error message describes the entity.
12655//
12656//   * ErrCodeEntityAlreadyExistsException "EntityAlreadyExists"
12657//   The request was rejected because it attempted to create a resource that already
12658//   exists.
12659//
12660//   * ErrCodeLimitExceededException "LimitExceeded"
12661//   The request was rejected because it attempted to create resources beyond
12662//   the current AWS account limits. The error message describes the limit exceeded.
12663//
12664//   * ErrCodeServiceFailureException "ServiceFailure"
12665//   The request processing has failed because of an unknown error, exception
12666//   or failure.
12667//
12668// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateServerCertificate
12669func (c *IAM) UpdateServerCertificate(input *UpdateServerCertificateInput) (*UpdateServerCertificateOutput, error) {
12670	req, out := c.UpdateServerCertificateRequest(input)
12671	return out, req.Send()
12672}
12673
12674// UpdateServerCertificateWithContext is the same as UpdateServerCertificate with the addition of
12675// the ability to pass a context and additional request options.
12676//
12677// See UpdateServerCertificate for details on how to use this API operation.
12678//
12679// The context must be non-nil and will be used for request cancellation. If
12680// the context is nil a panic will occur. In the future the SDK may create
12681// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12682// for more information on using Contexts.
12683func (c *IAM) UpdateServerCertificateWithContext(ctx aws.Context, input *UpdateServerCertificateInput, opts ...request.Option) (*UpdateServerCertificateOutput, error) {
12684	req, out := c.UpdateServerCertificateRequest(input)
12685	req.SetContext(ctx)
12686	req.ApplyOptions(opts...)
12687	return out, req.Send()
12688}
12689
12690const opUpdateServiceSpecificCredential = "UpdateServiceSpecificCredential"
12691
12692// UpdateServiceSpecificCredentialRequest generates a "aws/request.Request" representing the
12693// client's request for the UpdateServiceSpecificCredential operation. The "output" return
12694// value will be populated with the request's response once the request complets
12695// successfuly.
12696//
12697// Use "Send" method on the returned Request to send the API call to the service.
12698// the "output" return value is not valid until after Send returns without error.
12699//
12700// See UpdateServiceSpecificCredential for more information on using the UpdateServiceSpecificCredential
12701// API call, and error handling.
12702//
12703// This method is useful when you want to inject custom logic or configuration
12704// into the SDK's request lifecycle. Such as custom headers, or retry logic.
12705//
12706//
12707//    // Example sending a request using the UpdateServiceSpecificCredentialRequest method.
12708//    req, resp := client.UpdateServiceSpecificCredentialRequest(params)
12709//
12710//    err := req.Send()
12711//    if err == nil { // resp is now filled
12712//        fmt.Println(resp)
12713//    }
12714//
12715// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateServiceSpecificCredential
12716func (c *IAM) UpdateServiceSpecificCredentialRequest(input *UpdateServiceSpecificCredentialInput) (req *request.Request, output *UpdateServiceSpecificCredentialOutput) {
12717	op := &request.Operation{
12718		Name:       opUpdateServiceSpecificCredential,
12719		HTTPMethod: "POST",
12720		HTTPPath:   "/",
12721	}
12722
12723	if input == nil {
12724		input = &UpdateServiceSpecificCredentialInput{}
12725	}
12726
12727	output = &UpdateServiceSpecificCredentialOutput{}
12728	req = c.newRequest(op, input, output)
12729	req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
12730	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
12731	return
12732}
12733
12734// UpdateServiceSpecificCredential API operation for AWS Identity and Access Management.
12735//
12736// Sets the status of a service-specific credential to Active or Inactive. Service-specific
12737// credentials that are inactive cannot be used for authentication to the service.
12738// This action can be used to disable a user’s service-specific credential as
12739// part of a credential rotation work flow.
12740//
12741// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
12742// with awserr.Error's Code and Message methods to get detailed information about
12743// the error.
12744//
12745// See the AWS API reference guide for AWS Identity and Access Management's
12746// API operation UpdateServiceSpecificCredential for usage and error information.
12747//
12748// Returned Error Codes:
12749//   * ErrCodeNoSuchEntityException "NoSuchEntity"
12750//   The request was rejected because it referenced an entity that does not exist.
12751//   The error message describes the entity.
12752//
12753// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateServiceSpecificCredential
12754func (c *IAM) UpdateServiceSpecificCredential(input *UpdateServiceSpecificCredentialInput) (*UpdateServiceSpecificCredentialOutput, error) {
12755	req, out := c.UpdateServiceSpecificCredentialRequest(input)
12756	return out, req.Send()
12757}
12758
12759// UpdateServiceSpecificCredentialWithContext is the same as UpdateServiceSpecificCredential with the addition of
12760// the ability to pass a context and additional request options.
12761//
12762// See UpdateServiceSpecificCredential for details on how to use this API operation.
12763//
12764// The context must be non-nil and will be used for request cancellation. If
12765// the context is nil a panic will occur. In the future the SDK may create
12766// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12767// for more information on using Contexts.
12768func (c *IAM) UpdateServiceSpecificCredentialWithContext(ctx aws.Context, input *UpdateServiceSpecificCredentialInput, opts ...request.Option) (*UpdateServiceSpecificCredentialOutput, error) {
12769	req, out := c.UpdateServiceSpecificCredentialRequest(input)
12770	req.SetContext(ctx)
12771	req.ApplyOptions(opts...)
12772	return out, req.Send()
12773}
12774
12775const opUpdateSigningCertificate = "UpdateSigningCertificate"
12776
12777// UpdateSigningCertificateRequest generates a "aws/request.Request" representing the
12778// client's request for the UpdateSigningCertificate operation. The "output" return
12779// value will be populated with the request's response once the request complets
12780// successfuly.
12781//
12782// Use "Send" method on the returned Request to send the API call to the service.
12783// the "output" return value is not valid until after Send returns without error.
12784//
12785// See UpdateSigningCertificate for more information on using the UpdateSigningCertificate
12786// API call, and error handling.
12787//
12788// This method is useful when you want to inject custom logic or configuration
12789// into the SDK's request lifecycle. Such as custom headers, or retry logic.
12790//
12791//
12792//    // Example sending a request using the UpdateSigningCertificateRequest method.
12793//    req, resp := client.UpdateSigningCertificateRequest(params)
12794//
12795//    err := req.Send()
12796//    if err == nil { // resp is now filled
12797//        fmt.Println(resp)
12798//    }
12799//
12800// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateSigningCertificate
12801func (c *IAM) UpdateSigningCertificateRequest(input *UpdateSigningCertificateInput) (req *request.Request, output *UpdateSigningCertificateOutput) {
12802	op := &request.Operation{
12803		Name:       opUpdateSigningCertificate,
12804		HTTPMethod: "POST",
12805		HTTPPath:   "/",
12806	}
12807
12808	if input == nil {
12809		input = &UpdateSigningCertificateInput{}
12810	}
12811
12812	output = &UpdateSigningCertificateOutput{}
12813	req = c.newRequest(op, input, output)
12814	req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
12815	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
12816	return
12817}
12818
12819// UpdateSigningCertificate API operation for AWS Identity and Access Management.
12820//
12821// Changes the status of the specified user signing certificate from active
12822// to disabled, or vice versa. This action can be used to disable an IAM user's
12823// signing certificate as part of a certificate rotation work flow.
12824//
12825// If the UserName field is not specified, the UserName is determined implicitly
12826// based on the AWS access key ID used to sign the request. Because this action
12827// works for access keys under the AWS account, you can use this action to manage
12828// root credentials even if the AWS account has no associated users.
12829//
12830// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
12831// with awserr.Error's Code and Message methods to get detailed information about
12832// the error.
12833//
12834// See the AWS API reference guide for AWS Identity and Access Management's
12835// API operation UpdateSigningCertificate for usage and error information.
12836//
12837// Returned Error Codes:
12838//   * ErrCodeNoSuchEntityException "NoSuchEntity"
12839//   The request was rejected because it referenced an entity that does not exist.
12840//   The error message describes the entity.
12841//
12842//   * ErrCodeLimitExceededException "LimitExceeded"
12843//   The request was rejected because it attempted to create resources beyond
12844//   the current AWS account limits. The error message describes the limit exceeded.
12845//
12846//   * ErrCodeServiceFailureException "ServiceFailure"
12847//   The request processing has failed because of an unknown error, exception
12848//   or failure.
12849//
12850// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateSigningCertificate
12851func (c *IAM) UpdateSigningCertificate(input *UpdateSigningCertificateInput) (*UpdateSigningCertificateOutput, error) {
12852	req, out := c.UpdateSigningCertificateRequest(input)
12853	return out, req.Send()
12854}
12855
12856// UpdateSigningCertificateWithContext is the same as UpdateSigningCertificate with the addition of
12857// the ability to pass a context and additional request options.
12858//
12859// See UpdateSigningCertificate for details on how to use this API operation.
12860//
12861// The context must be non-nil and will be used for request cancellation. If
12862// the context is nil a panic will occur. In the future the SDK may create
12863// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12864// for more information on using Contexts.
12865func (c *IAM) UpdateSigningCertificateWithContext(ctx aws.Context, input *UpdateSigningCertificateInput, opts ...request.Option) (*UpdateSigningCertificateOutput, error) {
12866	req, out := c.UpdateSigningCertificateRequest(input)
12867	req.SetContext(ctx)
12868	req.ApplyOptions(opts...)
12869	return out, req.Send()
12870}
12871
12872const opUpdateUser = "UpdateUser"
12873
12874// UpdateUserRequest generates a "aws/request.Request" representing the
12875// client's request for the UpdateUser operation. The "output" return
12876// value will be populated with the request's response once the request complets
12877// successfuly.
12878//
12879// Use "Send" method on the returned Request to send the API call to the service.
12880// the "output" return value is not valid until after Send returns without error.
12881//
12882// See UpdateUser for more information on using the UpdateUser
12883// API call, and error handling.
12884//
12885// This method is useful when you want to inject custom logic or configuration
12886// into the SDK's request lifecycle. Such as custom headers, or retry logic.
12887//
12888//
12889//    // Example sending a request using the UpdateUserRequest method.
12890//    req, resp := client.UpdateUserRequest(params)
12891//
12892//    err := req.Send()
12893//    if err == nil { // resp is now filled
12894//        fmt.Println(resp)
12895//    }
12896//
12897// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateUser
12898func (c *IAM) UpdateUserRequest(input *UpdateUserInput) (req *request.Request, output *UpdateUserOutput) {
12899	op := &request.Operation{
12900		Name:       opUpdateUser,
12901		HTTPMethod: "POST",
12902		HTTPPath:   "/",
12903	}
12904
12905	if input == nil {
12906		input = &UpdateUserInput{}
12907	}
12908
12909	output = &UpdateUserOutput{}
12910	req = c.newRequest(op, input, output)
12911	req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
12912	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
12913	return
12914}
12915
12916// UpdateUser API operation for AWS Identity and Access Management.
12917//
12918// Updates the name and/or the path of the specified IAM user.
12919//
12920// You should understand the implications of changing an IAM user's path or
12921// name. For more information, see Renaming an IAM User (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_manage.html#id_users_renaming)
12922// and Renaming an IAM Group (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups_manage_rename.html)
12923// in the IAM User Guide.
12924//
12925// To change a user name the requester must have appropriate permissions on
12926// both the source object and the target object. For example, to change Bob
12927// to Robert, the entity making the request must have permission on Bob and
12928// Robert, or must have permission on all (*). For more information about permissions,
12929// see Permissions and Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/PermissionsAndPolicies.html).
12930//
12931// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
12932// with awserr.Error's Code and Message methods to get detailed information about
12933// the error.
12934//
12935// See the AWS API reference guide for AWS Identity and Access Management's
12936// API operation UpdateUser for usage and error information.
12937//
12938// Returned Error Codes:
12939//   * ErrCodeNoSuchEntityException "NoSuchEntity"
12940//   The request was rejected because it referenced an entity that does not exist.
12941//   The error message describes the entity.
12942//
12943//   * ErrCodeLimitExceededException "LimitExceeded"
12944//   The request was rejected because it attempted to create resources beyond
12945//   the current AWS account limits. The error message describes the limit exceeded.
12946//
12947//   * ErrCodeEntityAlreadyExistsException "EntityAlreadyExists"
12948//   The request was rejected because it attempted to create a resource that already
12949//   exists.
12950//
12951//   * ErrCodeEntityTemporarilyUnmodifiableException "EntityTemporarilyUnmodifiable"
12952//   The request was rejected because it referenced an entity that is temporarily
12953//   unmodifiable, such as a user name that was deleted and then recreated. The
12954//   error indicates that the request is likely to succeed if you try again after
12955//   waiting several minutes. The error message describes the entity.
12956//
12957//   * ErrCodeServiceFailureException "ServiceFailure"
12958//   The request processing has failed because of an unknown error, exception
12959//   or failure.
12960//
12961// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateUser
12962func (c *IAM) UpdateUser(input *UpdateUserInput) (*UpdateUserOutput, error) {
12963	req, out := c.UpdateUserRequest(input)
12964	return out, req.Send()
12965}
12966
12967// UpdateUserWithContext is the same as UpdateUser with the addition of
12968// the ability to pass a context and additional request options.
12969//
12970// See UpdateUser for details on how to use this API operation.
12971//
12972// The context must be non-nil and will be used for request cancellation. If
12973// the context is nil a panic will occur. In the future the SDK may create
12974// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12975// for more information on using Contexts.
12976func (c *IAM) UpdateUserWithContext(ctx aws.Context, input *UpdateUserInput, opts ...request.Option) (*UpdateUserOutput, error) {
12977	req, out := c.UpdateUserRequest(input)
12978	req.SetContext(ctx)
12979	req.ApplyOptions(opts...)
12980	return out, req.Send()
12981}
12982
12983const opUploadSSHPublicKey = "UploadSSHPublicKey"
12984
12985// UploadSSHPublicKeyRequest generates a "aws/request.Request" representing the
12986// client's request for the UploadSSHPublicKey operation. The "output" return
12987// value will be populated with the request's response once the request complets
12988// successfuly.
12989//
12990// Use "Send" method on the returned Request to send the API call to the service.
12991// the "output" return value is not valid until after Send returns without error.
12992//
12993// See UploadSSHPublicKey for more information on using the UploadSSHPublicKey
12994// API call, and error handling.
12995//
12996// This method is useful when you want to inject custom logic or configuration
12997// into the SDK's request lifecycle. Such as custom headers, or retry logic.
12998//
12999//
13000//    // Example sending a request using the UploadSSHPublicKeyRequest method.
13001//    req, resp := client.UploadSSHPublicKeyRequest(params)
13002//
13003//    err := req.Send()
13004//    if err == nil { // resp is now filled
13005//        fmt.Println(resp)
13006//    }
13007//
13008// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UploadSSHPublicKey
13009func (c *IAM) UploadSSHPublicKeyRequest(input *UploadSSHPublicKeyInput) (req *request.Request, output *UploadSSHPublicKeyOutput) {
13010	op := &request.Operation{
13011		Name:       opUploadSSHPublicKey,
13012		HTTPMethod: "POST",
13013		HTTPPath:   "/",
13014	}
13015
13016	if input == nil {
13017		input = &UploadSSHPublicKeyInput{}
13018	}
13019
13020	output = &UploadSSHPublicKeyOutput{}
13021	req = c.newRequest(op, input, output)
13022	return
13023}
13024
13025// UploadSSHPublicKey API operation for AWS Identity and Access Management.
13026//
13027// Uploads an SSH public key and associates it with the specified IAM user.
13028//
13029// The SSH public key uploaded by this action can be used only for authenticating
13030// the associated IAM user to an AWS CodeCommit repository. For more information
13031// about using SSH keys to authenticate to an AWS CodeCommit repository, see
13032// Set up AWS CodeCommit for SSH Connections (http://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-credentials-ssh.html)
13033// in the AWS CodeCommit User Guide.
13034//
13035// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
13036// with awserr.Error's Code and Message methods to get detailed information about
13037// the error.
13038//
13039// See the AWS API reference guide for AWS Identity and Access Management's
13040// API operation UploadSSHPublicKey for usage and error information.
13041//
13042// Returned Error Codes:
13043//   * ErrCodeLimitExceededException "LimitExceeded"
13044//   The request was rejected because it attempted to create resources beyond
13045//   the current AWS account limits. The error message describes the limit exceeded.
13046//
13047//   * ErrCodeNoSuchEntityException "NoSuchEntity"
13048//   The request was rejected because it referenced an entity that does not exist.
13049//   The error message describes the entity.
13050//
13051//   * ErrCodeInvalidPublicKeyException "InvalidPublicKey"
13052//   The request was rejected because the public key is malformed or otherwise
13053//   invalid.
13054//
13055//   * ErrCodeDuplicateSSHPublicKeyException "DuplicateSSHPublicKey"
13056//   The request was rejected because the SSH public key is already associated
13057//   with the specified IAM user.
13058//
13059//   * ErrCodeUnrecognizedPublicKeyEncodingException "UnrecognizedPublicKeyEncoding"
13060//   The request was rejected because the public key encoding format is unsupported
13061//   or unrecognized.
13062//
13063// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UploadSSHPublicKey
13064func (c *IAM) UploadSSHPublicKey(input *UploadSSHPublicKeyInput) (*UploadSSHPublicKeyOutput, error) {
13065	req, out := c.UploadSSHPublicKeyRequest(input)
13066	return out, req.Send()
13067}
13068
13069// UploadSSHPublicKeyWithContext is the same as UploadSSHPublicKey with the addition of
13070// the ability to pass a context and additional request options.
13071//
13072// See UploadSSHPublicKey for details on how to use this API operation.
13073//
13074// The context must be non-nil and will be used for request cancellation. If
13075// the context is nil a panic will occur. In the future the SDK may create
13076// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13077// for more information on using Contexts.
13078func (c *IAM) UploadSSHPublicKeyWithContext(ctx aws.Context, input *UploadSSHPublicKeyInput, opts ...request.Option) (*UploadSSHPublicKeyOutput, error) {
13079	req, out := c.UploadSSHPublicKeyRequest(input)
13080	req.SetContext(ctx)
13081	req.ApplyOptions(opts...)
13082	return out, req.Send()
13083}
13084
13085const opUploadServerCertificate = "UploadServerCertificate"
13086
13087// UploadServerCertificateRequest generates a "aws/request.Request" representing the
13088// client's request for the UploadServerCertificate operation. The "output" return
13089// value will be populated with the request's response once the request complets
13090// successfuly.
13091//
13092// Use "Send" method on the returned Request to send the API call to the service.
13093// the "output" return value is not valid until after Send returns without error.
13094//
13095// See UploadServerCertificate for more information on using the UploadServerCertificate
13096// API call, and error handling.
13097//
13098// This method is useful when you want to inject custom logic or configuration
13099// into the SDK's request lifecycle. Such as custom headers, or retry logic.
13100//
13101//
13102//    // Example sending a request using the UploadServerCertificateRequest method.
13103//    req, resp := client.UploadServerCertificateRequest(params)
13104//
13105//    err := req.Send()
13106//    if err == nil { // resp is now filled
13107//        fmt.Println(resp)
13108//    }
13109//
13110// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UploadServerCertificate
13111func (c *IAM) UploadServerCertificateRequest(input *UploadServerCertificateInput) (req *request.Request, output *UploadServerCertificateOutput) {
13112	op := &request.Operation{
13113		Name:       opUploadServerCertificate,
13114		HTTPMethod: "POST",
13115		HTTPPath:   "/",
13116	}
13117
13118	if input == nil {
13119		input = &UploadServerCertificateInput{}
13120	}
13121
13122	output = &UploadServerCertificateOutput{}
13123	req = c.newRequest(op, input, output)
13124	return
13125}
13126
13127// UploadServerCertificate API operation for AWS Identity and Access Management.
13128//
13129// Uploads a server certificate entity for the AWS account. The server certificate
13130// entity includes a public key certificate, a private key, and an optional
13131// certificate chain, which should all be PEM-encoded.
13132//
13133// We recommend that you use AWS Certificate Manager (https://aws.amazon.com/certificate-manager/)
13134// to provision, manage, and deploy your server certificates. With ACM you can
13135// request a certificate, deploy it to AWS resources, and let ACM handle certificate
13136// renewals for you. Certificates provided by ACM are free. For more information
13137// about using ACM, see the AWS Certificate Manager User Guide (http://docs.aws.amazon.com/acm/latest/userguide/).
13138//
13139// For more information about working with server certificates, including a
13140// list of AWS services that can use the server certificates that you manage
13141// with IAM, go to Working with Server Certificates (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html)
13142// in the IAM User Guide.
13143//
13144// For information about the number of server certificates you can upload, see
13145// Limitations on IAM Entities and Objects (http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-limits.html)
13146// in the IAM User Guide.
13147//
13148// Because the body of the public key certificate, private key, and the certificate
13149// chain can be large, you should use POST rather than GET when calling UploadServerCertificate.
13150// For information about setting up signatures and authorization through the
13151// API, go to Signing AWS API Requests (http://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html)
13152// in the AWS General Reference. For general information about using the Query
13153// API with IAM, go to Calling the API by Making HTTP Query Requests (http://docs.aws.amazon.com/IAM/latest/UserGuide/programming.html)
13154// in the IAM User Guide.
13155//
13156// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
13157// with awserr.Error's Code and Message methods to get detailed information about
13158// the error.
13159//
13160// See the AWS API reference guide for AWS Identity and Access Management's
13161// API operation UploadServerCertificate for usage and error information.
13162//
13163// Returned Error Codes:
13164//   * ErrCodeLimitExceededException "LimitExceeded"
13165//   The request was rejected because it attempted to create resources beyond
13166//   the current AWS account limits. The error message describes the limit exceeded.
13167//
13168//   * ErrCodeEntityAlreadyExistsException "EntityAlreadyExists"
13169//   The request was rejected because it attempted to create a resource that already
13170//   exists.
13171//
13172//   * ErrCodeMalformedCertificateException "MalformedCertificate"
13173//   The request was rejected because the certificate was malformed or expired.
13174//   The error message describes the specific error.
13175//
13176//   * ErrCodeKeyPairMismatchException "KeyPairMismatch"
13177//   The request was rejected because the public key certificate and the private
13178//   key do not match.
13179//
13180//   * ErrCodeServiceFailureException "ServiceFailure"
13181//   The request processing has failed because of an unknown error, exception
13182//   or failure.
13183//
13184// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UploadServerCertificate
13185func (c *IAM) UploadServerCertificate(input *UploadServerCertificateInput) (*UploadServerCertificateOutput, error) {
13186	req, out := c.UploadServerCertificateRequest(input)
13187	return out, req.Send()
13188}
13189
13190// UploadServerCertificateWithContext is the same as UploadServerCertificate with the addition of
13191// the ability to pass a context and additional request options.
13192//
13193// See UploadServerCertificate for details on how to use this API operation.
13194//
13195// The context must be non-nil and will be used for request cancellation. If
13196// the context is nil a panic will occur. In the future the SDK may create
13197// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13198// for more information on using Contexts.
13199func (c *IAM) UploadServerCertificateWithContext(ctx aws.Context, input *UploadServerCertificateInput, opts ...request.Option) (*UploadServerCertificateOutput, error) {
13200	req, out := c.UploadServerCertificateRequest(input)
13201	req.SetContext(ctx)
13202	req.ApplyOptions(opts...)
13203	return out, req.Send()
13204}
13205
13206const opUploadSigningCertificate = "UploadSigningCertificate"
13207
13208// UploadSigningCertificateRequest generates a "aws/request.Request" representing the
13209// client's request for the UploadSigningCertificate operation. The "output" return
13210// value will be populated with the request's response once the request complets
13211// successfuly.
13212//
13213// Use "Send" method on the returned Request to send the API call to the service.
13214// the "output" return value is not valid until after Send returns without error.
13215//
13216// See UploadSigningCertificate for more information on using the UploadSigningCertificate
13217// API call, and error handling.
13218//
13219// This method is useful when you want to inject custom logic or configuration
13220// into the SDK's request lifecycle. Such as custom headers, or retry logic.
13221//
13222//
13223//    // Example sending a request using the UploadSigningCertificateRequest method.
13224//    req, resp := client.UploadSigningCertificateRequest(params)
13225//
13226//    err := req.Send()
13227//    if err == nil { // resp is now filled
13228//        fmt.Println(resp)
13229//    }
13230//
13231// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UploadSigningCertificate
13232func (c *IAM) UploadSigningCertificateRequest(input *UploadSigningCertificateInput) (req *request.Request, output *UploadSigningCertificateOutput) {
13233	op := &request.Operation{
13234		Name:       opUploadSigningCertificate,
13235		HTTPMethod: "POST",
13236		HTTPPath:   "/",
13237	}
13238
13239	if input == nil {
13240		input = &UploadSigningCertificateInput{}
13241	}
13242
13243	output = &UploadSigningCertificateOutput{}
13244	req = c.newRequest(op, input, output)
13245	return
13246}
13247
13248// UploadSigningCertificate API operation for AWS Identity and Access Management.
13249//
13250// Uploads an X.509 signing certificate and associates it with the specified
13251// IAM user. Some AWS services use X.509 signing certificates to validate requests
13252// that are signed with a corresponding private key. When you upload the certificate,
13253// its default status is Active.
13254//
13255// If the UserName field is not specified, the IAM user name is determined implicitly
13256// based on the AWS access key ID used to sign the request. Because this action
13257// works for access keys under the AWS account, you can use this action to manage
13258// root credentials even if the AWS account has no associated users.
13259//
13260// Because the body of a X.509 certificate can be large, you should use POST
13261// rather than GET when calling UploadSigningCertificate. For information about
13262// setting up signatures and authorization through the API, go to Signing AWS
13263// API Requests (http://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html)
13264// in the AWS General Reference. For general information about using the Query
13265// API with IAM, go to Making Query Requests (http://docs.aws.amazon.com/IAM/latest/UserGuide/IAM_UsingQueryAPI.html)
13266// in the IAM User Guide.
13267//
13268// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
13269// with awserr.Error's Code and Message methods to get detailed information about
13270// the error.
13271//
13272// See the AWS API reference guide for AWS Identity and Access Management's
13273// API operation UploadSigningCertificate for usage and error information.
13274//
13275// Returned Error Codes:
13276//   * ErrCodeLimitExceededException "LimitExceeded"
13277//   The request was rejected because it attempted to create resources beyond
13278//   the current AWS account limits. The error message describes the limit exceeded.
13279//
13280//   * ErrCodeEntityAlreadyExistsException "EntityAlreadyExists"
13281//   The request was rejected because it attempted to create a resource that already
13282//   exists.
13283//
13284//   * ErrCodeMalformedCertificateException "MalformedCertificate"
13285//   The request was rejected because the certificate was malformed or expired.
13286//   The error message describes the specific error.
13287//
13288//   * ErrCodeInvalidCertificateException "InvalidCertificate"
13289//   The request was rejected because the certificate is invalid.
13290//
13291//   * ErrCodeDuplicateCertificateException "DuplicateCertificate"
13292//   The request was rejected because the same certificate is associated with
13293//   an IAM user in the account.
13294//
13295//   * ErrCodeNoSuchEntityException "NoSuchEntity"
13296//   The request was rejected because it referenced an entity that does not exist.
13297//   The error message describes the entity.
13298//
13299//   * ErrCodeServiceFailureException "ServiceFailure"
13300//   The request processing has failed because of an unknown error, exception
13301//   or failure.
13302//
13303// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UploadSigningCertificate
13304func (c *IAM) UploadSigningCertificate(input *UploadSigningCertificateInput) (*UploadSigningCertificateOutput, error) {
13305	req, out := c.UploadSigningCertificateRequest(input)
13306	return out, req.Send()
13307}
13308
13309// UploadSigningCertificateWithContext is the same as UploadSigningCertificate with the addition of
13310// the ability to pass a context and additional request options.
13311//
13312// See UploadSigningCertificate for details on how to use this API operation.
13313//
13314// The context must be non-nil and will be used for request cancellation. If
13315// the context is nil a panic will occur. In the future the SDK may create
13316// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13317// for more information on using Contexts.
13318func (c *IAM) UploadSigningCertificateWithContext(ctx aws.Context, input *UploadSigningCertificateInput, opts ...request.Option) (*UploadSigningCertificateOutput, error) {
13319	req, out := c.UploadSigningCertificateRequest(input)
13320	req.SetContext(ctx)
13321	req.ApplyOptions(opts...)
13322	return out, req.Send()
13323}
13324
13325// Contains information about an AWS access key.
13326//
13327// This data type is used as a response element in the CreateAccessKey and ListAccessKeys
13328// actions.
13329//
13330// The SecretAccessKey value is returned only in response to CreateAccessKey.
13331// You can get a secret access key only when you first create an access key;
13332// you cannot recover the secret access key later. If you lose a secret access
13333// key, you must create a new access key.
13334// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/AccessKey
13335type AccessKey struct {
13336	_ struct{} `type:"structure"`
13337
13338	// The ID for this access key.
13339	//
13340	// AccessKeyId is a required field
13341	AccessKeyId *string `min:"16" type:"string" required:"true"`
13342
13343	// The date when the access key was created.
13344	CreateDate *time.Time `type:"timestamp" timestampFormat:"iso8601"`
13345
13346	// The secret key used to sign requests.
13347	//
13348	// SecretAccessKey is a required field
13349	SecretAccessKey *string `type:"string" required:"true"`
13350
13351	// The status of the access key. Active means the key is valid for API calls,
13352	// while Inactive means it is not.
13353	//
13354	// Status is a required field
13355	Status *string `type:"string" required:"true" enum:"statusType"`
13356
13357	// The name of the IAM user that the access key is associated with.
13358	//
13359	// UserName is a required field
13360	UserName *string `min:"1" type:"string" required:"true"`
13361}
13362
13363// String returns the string representation
13364func (s AccessKey) String() string {
13365	return awsutil.Prettify(s)
13366}
13367
13368// GoString returns the string representation
13369func (s AccessKey) GoString() string {
13370	return s.String()
13371}
13372
13373// SetAccessKeyId sets the AccessKeyId field's value.
13374func (s *AccessKey) SetAccessKeyId(v string) *AccessKey {
13375	s.AccessKeyId = &v
13376	return s
13377}
13378
13379// SetCreateDate sets the CreateDate field's value.
13380func (s *AccessKey) SetCreateDate(v time.Time) *AccessKey {
13381	s.CreateDate = &v
13382	return s
13383}
13384
13385// SetSecretAccessKey sets the SecretAccessKey field's value.
13386func (s *AccessKey) SetSecretAccessKey(v string) *AccessKey {
13387	s.SecretAccessKey = &v
13388	return s
13389}
13390
13391// SetStatus sets the Status field's value.
13392func (s *AccessKey) SetStatus(v string) *AccessKey {
13393	s.Status = &v
13394	return s
13395}
13396
13397// SetUserName sets the UserName field's value.
13398func (s *AccessKey) SetUserName(v string) *AccessKey {
13399	s.UserName = &v
13400	return s
13401}
13402
13403// Contains information about the last time an AWS access key was used.
13404//
13405// This data type is used as a response element in the GetAccessKeyLastUsed
13406// action.
13407// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/AccessKeyLastUsed
13408type AccessKeyLastUsed struct {
13409	_ struct{} `type:"structure"`
13410
13411	// The date and time, in ISO 8601 date-time format (http://www.iso.org/iso/iso8601),
13412	// when the access key was most recently used. This field is null when:
13413	//
13414	//    * The user does not have an access key.
13415	//
13416	//    * An access key exists but has never been used, at least not since IAM
13417	//    started tracking this information on April 22nd, 2015.
13418	//
13419	//    * There is no sign-in data associated with the user
13420	//
13421	// LastUsedDate is a required field
13422	LastUsedDate *time.Time `type:"timestamp" timestampFormat:"iso8601" required:"true"`
13423
13424	// The AWS region where this access key was most recently used. This field is
13425	// displays "N/A" when:
13426	//
13427	//    * The user does not have an access key.
13428	//
13429	//    * An access key exists but has never been used, at least not since IAM
13430	//    started tracking this information on April 22nd, 2015.
13431	//
13432	//    * There is no sign-in data associated with the user
13433	//
13434	// For more information about AWS regions, see Regions and Endpoints (http://docs.aws.amazon.com/general/latest/gr/rande.html)
13435	// in the Amazon Web Services General Reference.
13436	//
13437	// Region is a required field
13438	Region *string `type:"string" required:"true"`
13439
13440	// The name of the AWS service with which this access key was most recently
13441	// used. This field displays "N/A" when:
13442	//
13443	//    * The user does not have an access key.
13444	//
13445	//    * An access key exists but has never been used, at least not since IAM
13446	//    started tracking this information on April 22nd, 2015.
13447	//
13448	//    * There is no sign-in data associated with the user
13449	//
13450	// ServiceName is a required field
13451	ServiceName *string `type:"string" required:"true"`
13452}
13453
13454// String returns the string representation
13455func (s AccessKeyLastUsed) String() string {
13456	return awsutil.Prettify(s)
13457}
13458
13459// GoString returns the string representation
13460func (s AccessKeyLastUsed) GoString() string {
13461	return s.String()
13462}
13463
13464// SetLastUsedDate sets the LastUsedDate field's value.
13465func (s *AccessKeyLastUsed) SetLastUsedDate(v time.Time) *AccessKeyLastUsed {
13466	s.LastUsedDate = &v
13467	return s
13468}
13469
13470// SetRegion sets the Region field's value.
13471func (s *AccessKeyLastUsed) SetRegion(v string) *AccessKeyLastUsed {
13472	s.Region = &v
13473	return s
13474}
13475
13476// SetServiceName sets the ServiceName field's value.
13477func (s *AccessKeyLastUsed) SetServiceName(v string) *AccessKeyLastUsed {
13478	s.ServiceName = &v
13479	return s
13480}
13481
13482// Contains information about an AWS access key, without its secret key.
13483//
13484// This data type is used as a response element in the ListAccessKeys action.
13485// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/AccessKeyMetadata
13486type AccessKeyMetadata struct {
13487	_ struct{} `type:"structure"`
13488
13489	// The ID for this access key.
13490	AccessKeyId *string `min:"16" type:"string"`
13491
13492	// The date when the access key was created.
13493	CreateDate *time.Time `type:"timestamp" timestampFormat:"iso8601"`
13494
13495	// The status of the access key. Active means the key is valid for API calls;
13496	// Inactive means it is not.
13497	Status *string `type:"string" enum:"statusType"`
13498
13499	// The name of the IAM user that the key is associated with.
13500	UserName *string `min:"1" type:"string"`
13501}
13502
13503// String returns the string representation
13504func (s AccessKeyMetadata) String() string {
13505	return awsutil.Prettify(s)
13506}
13507
13508// GoString returns the string representation
13509func (s AccessKeyMetadata) GoString() string {
13510	return s.String()
13511}
13512
13513// SetAccessKeyId sets the AccessKeyId field's value.
13514func (s *AccessKeyMetadata) SetAccessKeyId(v string) *AccessKeyMetadata {
13515	s.AccessKeyId = &v
13516	return s
13517}
13518
13519// SetCreateDate sets the CreateDate field's value.
13520func (s *AccessKeyMetadata) SetCreateDate(v time.Time) *AccessKeyMetadata {
13521	s.CreateDate = &v
13522	return s
13523}
13524
13525// SetStatus sets the Status field's value.
13526func (s *AccessKeyMetadata) SetStatus(v string) *AccessKeyMetadata {
13527	s.Status = &v
13528	return s
13529}
13530
13531// SetUserName sets the UserName field's value.
13532func (s *AccessKeyMetadata) SetUserName(v string) *AccessKeyMetadata {
13533	s.UserName = &v
13534	return s
13535}
13536
13537// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/AddClientIDToOpenIDConnectProviderRequest
13538type AddClientIDToOpenIDConnectProviderInput struct {
13539	_ struct{} `type:"structure"`
13540
13541	// The client ID (also known as audience) to add to the IAM OpenID Connect provider
13542	// resource.
13543	//
13544	// ClientID is a required field
13545	ClientID *string `min:"1" type:"string" required:"true"`
13546
13547	// The Amazon Resource Name (ARN) of the IAM OpenID Connect (OIDC) provider
13548	// resource to add the client ID to. You can get a list of OIDC provider ARNs
13549	// by using the ListOpenIDConnectProviders action.
13550	//
13551	// OpenIDConnectProviderArn is a required field
13552	OpenIDConnectProviderArn *string `min:"20" type:"string" required:"true"`
13553}
13554
13555// String returns the string representation
13556func (s AddClientIDToOpenIDConnectProviderInput) String() string {
13557	return awsutil.Prettify(s)
13558}
13559
13560// GoString returns the string representation
13561func (s AddClientIDToOpenIDConnectProviderInput) GoString() string {
13562	return s.String()
13563}
13564
13565// Validate inspects the fields of the type to determine if they are valid.
13566func (s *AddClientIDToOpenIDConnectProviderInput) Validate() error {
13567	invalidParams := request.ErrInvalidParams{Context: "AddClientIDToOpenIDConnectProviderInput"}
13568	if s.ClientID == nil {
13569		invalidParams.Add(request.NewErrParamRequired("ClientID"))
13570	}
13571	if s.ClientID != nil && len(*s.ClientID) < 1 {
13572		invalidParams.Add(request.NewErrParamMinLen("ClientID", 1))
13573	}
13574	if s.OpenIDConnectProviderArn == nil {
13575		invalidParams.Add(request.NewErrParamRequired("OpenIDConnectProviderArn"))
13576	}
13577	if s.OpenIDConnectProviderArn != nil && len(*s.OpenIDConnectProviderArn) < 20 {
13578		invalidParams.Add(request.NewErrParamMinLen("OpenIDConnectProviderArn", 20))
13579	}
13580
13581	if invalidParams.Len() > 0 {
13582		return invalidParams
13583	}
13584	return nil
13585}
13586
13587// SetClientID sets the ClientID field's value.
13588func (s *AddClientIDToOpenIDConnectProviderInput) SetClientID(v string) *AddClientIDToOpenIDConnectProviderInput {
13589	s.ClientID = &v
13590	return s
13591}
13592
13593// SetOpenIDConnectProviderArn sets the OpenIDConnectProviderArn field's value.
13594func (s *AddClientIDToOpenIDConnectProviderInput) SetOpenIDConnectProviderArn(v string) *AddClientIDToOpenIDConnectProviderInput {
13595	s.OpenIDConnectProviderArn = &v
13596	return s
13597}
13598
13599// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/AddClientIDToOpenIDConnectProviderOutput
13600type AddClientIDToOpenIDConnectProviderOutput struct {
13601	_ struct{} `type:"structure"`
13602}
13603
13604// String returns the string representation
13605func (s AddClientIDToOpenIDConnectProviderOutput) String() string {
13606	return awsutil.Prettify(s)
13607}
13608
13609// GoString returns the string representation
13610func (s AddClientIDToOpenIDConnectProviderOutput) GoString() string {
13611	return s.String()
13612}
13613
13614// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/AddRoleToInstanceProfileRequest
13615type AddRoleToInstanceProfileInput struct {
13616	_ struct{} `type:"structure"`
13617
13618	// The name of the instance profile to update.
13619	//
13620	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
13621	// a string of characters consisting of upper and lowercase alphanumeric characters
13622	// with no spaces. You can also include any of the following characters: =,.@-
13623	//
13624	// InstanceProfileName is a required field
13625	InstanceProfileName *string `min:"1" type:"string" required:"true"`
13626
13627	// The name of the role to add.
13628	//
13629	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
13630	// a string of characters consisting of upper and lowercase alphanumeric characters
13631	// with no spaces. You can also include any of the following characters: _+=,.@-
13632	//
13633	// RoleName is a required field
13634	RoleName *string `min:"1" type:"string" required:"true"`
13635}
13636
13637// String returns the string representation
13638func (s AddRoleToInstanceProfileInput) String() string {
13639	return awsutil.Prettify(s)
13640}
13641
13642// GoString returns the string representation
13643func (s AddRoleToInstanceProfileInput) GoString() string {
13644	return s.String()
13645}
13646
13647// Validate inspects the fields of the type to determine if they are valid.
13648func (s *AddRoleToInstanceProfileInput) Validate() error {
13649	invalidParams := request.ErrInvalidParams{Context: "AddRoleToInstanceProfileInput"}
13650	if s.InstanceProfileName == nil {
13651		invalidParams.Add(request.NewErrParamRequired("InstanceProfileName"))
13652	}
13653	if s.InstanceProfileName != nil && len(*s.InstanceProfileName) < 1 {
13654		invalidParams.Add(request.NewErrParamMinLen("InstanceProfileName", 1))
13655	}
13656	if s.RoleName == nil {
13657		invalidParams.Add(request.NewErrParamRequired("RoleName"))
13658	}
13659	if s.RoleName != nil && len(*s.RoleName) < 1 {
13660		invalidParams.Add(request.NewErrParamMinLen("RoleName", 1))
13661	}
13662
13663	if invalidParams.Len() > 0 {
13664		return invalidParams
13665	}
13666	return nil
13667}
13668
13669// SetInstanceProfileName sets the InstanceProfileName field's value.
13670func (s *AddRoleToInstanceProfileInput) SetInstanceProfileName(v string) *AddRoleToInstanceProfileInput {
13671	s.InstanceProfileName = &v
13672	return s
13673}
13674
13675// SetRoleName sets the RoleName field's value.
13676func (s *AddRoleToInstanceProfileInput) SetRoleName(v string) *AddRoleToInstanceProfileInput {
13677	s.RoleName = &v
13678	return s
13679}
13680
13681// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/AddRoleToInstanceProfileOutput
13682type AddRoleToInstanceProfileOutput struct {
13683	_ struct{} `type:"structure"`
13684}
13685
13686// String returns the string representation
13687func (s AddRoleToInstanceProfileOutput) String() string {
13688	return awsutil.Prettify(s)
13689}
13690
13691// GoString returns the string representation
13692func (s AddRoleToInstanceProfileOutput) GoString() string {
13693	return s.String()
13694}
13695
13696// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/AddUserToGroupRequest
13697type AddUserToGroupInput struct {
13698	_ struct{} `type:"structure"`
13699
13700	// The name of the group to update.
13701	//
13702	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
13703	// a string of characters consisting of upper and lowercase alphanumeric characters
13704	// with no spaces. You can also include any of the following characters: =,.@-
13705	//
13706	// GroupName is a required field
13707	GroupName *string `min:"1" type:"string" required:"true"`
13708
13709	// The name of the user to add.
13710	//
13711	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
13712	// a string of characters consisting of upper and lowercase alphanumeric characters
13713	// with no spaces. You can also include any of the following characters: =,.@-
13714	//
13715	// UserName is a required field
13716	UserName *string `min:"1" type:"string" required:"true"`
13717}
13718
13719// String returns the string representation
13720func (s AddUserToGroupInput) String() string {
13721	return awsutil.Prettify(s)
13722}
13723
13724// GoString returns the string representation
13725func (s AddUserToGroupInput) GoString() string {
13726	return s.String()
13727}
13728
13729// Validate inspects the fields of the type to determine if they are valid.
13730func (s *AddUserToGroupInput) Validate() error {
13731	invalidParams := request.ErrInvalidParams{Context: "AddUserToGroupInput"}
13732	if s.GroupName == nil {
13733		invalidParams.Add(request.NewErrParamRequired("GroupName"))
13734	}
13735	if s.GroupName != nil && len(*s.GroupName) < 1 {
13736		invalidParams.Add(request.NewErrParamMinLen("GroupName", 1))
13737	}
13738	if s.UserName == nil {
13739		invalidParams.Add(request.NewErrParamRequired("UserName"))
13740	}
13741	if s.UserName != nil && len(*s.UserName) < 1 {
13742		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
13743	}
13744
13745	if invalidParams.Len() > 0 {
13746		return invalidParams
13747	}
13748	return nil
13749}
13750
13751// SetGroupName sets the GroupName field's value.
13752func (s *AddUserToGroupInput) SetGroupName(v string) *AddUserToGroupInput {
13753	s.GroupName = &v
13754	return s
13755}
13756
13757// SetUserName sets the UserName field's value.
13758func (s *AddUserToGroupInput) SetUserName(v string) *AddUserToGroupInput {
13759	s.UserName = &v
13760	return s
13761}
13762
13763// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/AddUserToGroupOutput
13764type AddUserToGroupOutput struct {
13765	_ struct{} `type:"structure"`
13766}
13767
13768// String returns the string representation
13769func (s AddUserToGroupOutput) String() string {
13770	return awsutil.Prettify(s)
13771}
13772
13773// GoString returns the string representation
13774func (s AddUserToGroupOutput) GoString() string {
13775	return s.String()
13776}
13777
13778// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/AttachGroupPolicyRequest
13779type AttachGroupPolicyInput struct {
13780	_ struct{} `type:"structure"`
13781
13782	// The name (friendly name, not ARN) of the group to attach the policy to.
13783	//
13784	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
13785	// a string of characters consisting of upper and lowercase alphanumeric characters
13786	// with no spaces. You can also include any of the following characters: =,.@-
13787	//
13788	// GroupName is a required field
13789	GroupName *string `min:"1" type:"string" required:"true"`
13790
13791	// The Amazon Resource Name (ARN) of the IAM policy you want to attach.
13792	//
13793	// For more information about ARNs, see Amazon Resource Names (ARNs) and AWS
13794	// Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
13795	// in the AWS General Reference.
13796	//
13797	// PolicyArn is a required field
13798	PolicyArn *string `min:"20" type:"string" required:"true"`
13799}
13800
13801// String returns the string representation
13802func (s AttachGroupPolicyInput) String() string {
13803	return awsutil.Prettify(s)
13804}
13805
13806// GoString returns the string representation
13807func (s AttachGroupPolicyInput) GoString() string {
13808	return s.String()
13809}
13810
13811// Validate inspects the fields of the type to determine if they are valid.
13812func (s *AttachGroupPolicyInput) Validate() error {
13813	invalidParams := request.ErrInvalidParams{Context: "AttachGroupPolicyInput"}
13814	if s.GroupName == nil {
13815		invalidParams.Add(request.NewErrParamRequired("GroupName"))
13816	}
13817	if s.GroupName != nil && len(*s.GroupName) < 1 {
13818		invalidParams.Add(request.NewErrParamMinLen("GroupName", 1))
13819	}
13820	if s.PolicyArn == nil {
13821		invalidParams.Add(request.NewErrParamRequired("PolicyArn"))
13822	}
13823	if s.PolicyArn != nil && len(*s.PolicyArn) < 20 {
13824		invalidParams.Add(request.NewErrParamMinLen("PolicyArn", 20))
13825	}
13826
13827	if invalidParams.Len() > 0 {
13828		return invalidParams
13829	}
13830	return nil
13831}
13832
13833// SetGroupName sets the GroupName field's value.
13834func (s *AttachGroupPolicyInput) SetGroupName(v string) *AttachGroupPolicyInput {
13835	s.GroupName = &v
13836	return s
13837}
13838
13839// SetPolicyArn sets the PolicyArn field's value.
13840func (s *AttachGroupPolicyInput) SetPolicyArn(v string) *AttachGroupPolicyInput {
13841	s.PolicyArn = &v
13842	return s
13843}
13844
13845// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/AttachGroupPolicyOutput
13846type AttachGroupPolicyOutput struct {
13847	_ struct{} `type:"structure"`
13848}
13849
13850// String returns the string representation
13851func (s AttachGroupPolicyOutput) String() string {
13852	return awsutil.Prettify(s)
13853}
13854
13855// GoString returns the string representation
13856func (s AttachGroupPolicyOutput) GoString() string {
13857	return s.String()
13858}
13859
13860// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/AttachRolePolicyRequest
13861type AttachRolePolicyInput struct {
13862	_ struct{} `type:"structure"`
13863
13864	// The Amazon Resource Name (ARN) of the IAM policy you want to attach.
13865	//
13866	// For more information about ARNs, see Amazon Resource Names (ARNs) and AWS
13867	// Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
13868	// in the AWS General Reference.
13869	//
13870	// PolicyArn is a required field
13871	PolicyArn *string `min:"20" type:"string" required:"true"`
13872
13873	// The name (friendly name, not ARN) of the role to attach the policy to.
13874	//
13875	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
13876	// a string of characters consisting of upper and lowercase alphanumeric characters
13877	// with no spaces. You can also include any of the following characters: _+=,.@-
13878	//
13879	// RoleName is a required field
13880	RoleName *string `min:"1" type:"string" required:"true"`
13881}
13882
13883// String returns the string representation
13884func (s AttachRolePolicyInput) String() string {
13885	return awsutil.Prettify(s)
13886}
13887
13888// GoString returns the string representation
13889func (s AttachRolePolicyInput) GoString() string {
13890	return s.String()
13891}
13892
13893// Validate inspects the fields of the type to determine if they are valid.
13894func (s *AttachRolePolicyInput) Validate() error {
13895	invalidParams := request.ErrInvalidParams{Context: "AttachRolePolicyInput"}
13896	if s.PolicyArn == nil {
13897		invalidParams.Add(request.NewErrParamRequired("PolicyArn"))
13898	}
13899	if s.PolicyArn != nil && len(*s.PolicyArn) < 20 {
13900		invalidParams.Add(request.NewErrParamMinLen("PolicyArn", 20))
13901	}
13902	if s.RoleName == nil {
13903		invalidParams.Add(request.NewErrParamRequired("RoleName"))
13904	}
13905	if s.RoleName != nil && len(*s.RoleName) < 1 {
13906		invalidParams.Add(request.NewErrParamMinLen("RoleName", 1))
13907	}
13908
13909	if invalidParams.Len() > 0 {
13910		return invalidParams
13911	}
13912	return nil
13913}
13914
13915// SetPolicyArn sets the PolicyArn field's value.
13916func (s *AttachRolePolicyInput) SetPolicyArn(v string) *AttachRolePolicyInput {
13917	s.PolicyArn = &v
13918	return s
13919}
13920
13921// SetRoleName sets the RoleName field's value.
13922func (s *AttachRolePolicyInput) SetRoleName(v string) *AttachRolePolicyInput {
13923	s.RoleName = &v
13924	return s
13925}
13926
13927// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/AttachRolePolicyOutput
13928type AttachRolePolicyOutput struct {
13929	_ struct{} `type:"structure"`
13930}
13931
13932// String returns the string representation
13933func (s AttachRolePolicyOutput) String() string {
13934	return awsutil.Prettify(s)
13935}
13936
13937// GoString returns the string representation
13938func (s AttachRolePolicyOutput) GoString() string {
13939	return s.String()
13940}
13941
13942// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/AttachUserPolicyRequest
13943type AttachUserPolicyInput struct {
13944	_ struct{} `type:"structure"`
13945
13946	// The Amazon Resource Name (ARN) of the IAM policy you want to attach.
13947	//
13948	// For more information about ARNs, see Amazon Resource Names (ARNs) and AWS
13949	// Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
13950	// in the AWS General Reference.
13951	//
13952	// PolicyArn is a required field
13953	PolicyArn *string `min:"20" type:"string" required:"true"`
13954
13955	// The name (friendly name, not ARN) of the IAM user to attach the policy to.
13956	//
13957	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
13958	// a string of characters consisting of upper and lowercase alphanumeric characters
13959	// with no spaces. You can also include any of the following characters: =,.@-
13960	//
13961	// UserName is a required field
13962	UserName *string `min:"1" type:"string" required:"true"`
13963}
13964
13965// String returns the string representation
13966func (s AttachUserPolicyInput) String() string {
13967	return awsutil.Prettify(s)
13968}
13969
13970// GoString returns the string representation
13971func (s AttachUserPolicyInput) GoString() string {
13972	return s.String()
13973}
13974
13975// Validate inspects the fields of the type to determine if they are valid.
13976func (s *AttachUserPolicyInput) Validate() error {
13977	invalidParams := request.ErrInvalidParams{Context: "AttachUserPolicyInput"}
13978	if s.PolicyArn == nil {
13979		invalidParams.Add(request.NewErrParamRequired("PolicyArn"))
13980	}
13981	if s.PolicyArn != nil && len(*s.PolicyArn) < 20 {
13982		invalidParams.Add(request.NewErrParamMinLen("PolicyArn", 20))
13983	}
13984	if s.UserName == nil {
13985		invalidParams.Add(request.NewErrParamRequired("UserName"))
13986	}
13987	if s.UserName != nil && len(*s.UserName) < 1 {
13988		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
13989	}
13990
13991	if invalidParams.Len() > 0 {
13992		return invalidParams
13993	}
13994	return nil
13995}
13996
13997// SetPolicyArn sets the PolicyArn field's value.
13998func (s *AttachUserPolicyInput) SetPolicyArn(v string) *AttachUserPolicyInput {
13999	s.PolicyArn = &v
14000	return s
14001}
14002
14003// SetUserName sets the UserName field's value.
14004func (s *AttachUserPolicyInput) SetUserName(v string) *AttachUserPolicyInput {
14005	s.UserName = &v
14006	return s
14007}
14008
14009// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/AttachUserPolicyOutput
14010type AttachUserPolicyOutput struct {
14011	_ struct{} `type:"structure"`
14012}
14013
14014// String returns the string representation
14015func (s AttachUserPolicyOutput) String() string {
14016	return awsutil.Prettify(s)
14017}
14018
14019// GoString returns the string representation
14020func (s AttachUserPolicyOutput) GoString() string {
14021	return s.String()
14022}
14023
14024// Contains information about an attached policy.
14025//
14026// An attached policy is a managed policy that has been attached to a user,
14027// group, or role. This data type is used as a response element in the ListAttachedGroupPolicies,
14028// ListAttachedRolePolicies, ListAttachedUserPolicies, and GetAccountAuthorizationDetails
14029// actions.
14030//
14031// For more information about managed policies, refer to Managed Policies and
14032// Inline Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
14033// in the Using IAM guide.
14034// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/AttachedPolicy
14035type AttachedPolicy struct {
14036	_ struct{} `type:"structure"`
14037
14038	// The Amazon Resource Name (ARN). ARNs are unique identifiers for AWS resources.
14039	//
14040	// For more information about ARNs, go to Amazon Resource Names (ARNs) and AWS
14041	// Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
14042	// in the AWS General Reference.
14043	PolicyArn *string `min:"20" type:"string"`
14044
14045	// The friendly name of the attached policy.
14046	PolicyName *string `min:"1" type:"string"`
14047}
14048
14049// String returns the string representation
14050func (s AttachedPolicy) String() string {
14051	return awsutil.Prettify(s)
14052}
14053
14054// GoString returns the string representation
14055func (s AttachedPolicy) GoString() string {
14056	return s.String()
14057}
14058
14059// SetPolicyArn sets the PolicyArn field's value.
14060func (s *AttachedPolicy) SetPolicyArn(v string) *AttachedPolicy {
14061	s.PolicyArn = &v
14062	return s
14063}
14064
14065// SetPolicyName sets the PolicyName field's value.
14066func (s *AttachedPolicy) SetPolicyName(v string) *AttachedPolicy {
14067	s.PolicyName = &v
14068	return s
14069}
14070
14071// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ChangePasswordRequest
14072type ChangePasswordInput struct {
14073	_ struct{} `type:"structure"`
14074
14075	// The new password. The new password must conform to the AWS account's password
14076	// policy, if one exists.
14077	//
14078	// The regex pattern (http://wikipedia.org/wiki/regex) used to validate this
14079	// parameter is a string of characters consisting of almost any printable ASCII
14080	// character from the space (\u0020) through the end of the ASCII character
14081	// range (\u00FF). You can also include the tab (\u0009), line feed (\u000A),
14082	// and carriage return (\u000D) characters. Although any of these characters
14083	// are valid in a password, note that many tools, such as the AWS Management
14084	// Console, might restrict the ability to enter certain characters because they
14085	// have special meaning within that tool.
14086	//
14087	// NewPassword is a required field
14088	NewPassword *string `min:"1" type:"string" required:"true"`
14089
14090	// The IAM user's current password.
14091	//
14092	// OldPassword is a required field
14093	OldPassword *string `min:"1" type:"string" required:"true"`
14094}
14095
14096// String returns the string representation
14097func (s ChangePasswordInput) String() string {
14098	return awsutil.Prettify(s)
14099}
14100
14101// GoString returns the string representation
14102func (s ChangePasswordInput) GoString() string {
14103	return s.String()
14104}
14105
14106// Validate inspects the fields of the type to determine if they are valid.
14107func (s *ChangePasswordInput) Validate() error {
14108	invalidParams := request.ErrInvalidParams{Context: "ChangePasswordInput"}
14109	if s.NewPassword == nil {
14110		invalidParams.Add(request.NewErrParamRequired("NewPassword"))
14111	}
14112	if s.NewPassword != nil && len(*s.NewPassword) < 1 {
14113		invalidParams.Add(request.NewErrParamMinLen("NewPassword", 1))
14114	}
14115	if s.OldPassword == nil {
14116		invalidParams.Add(request.NewErrParamRequired("OldPassword"))
14117	}
14118	if s.OldPassword != nil && len(*s.OldPassword) < 1 {
14119		invalidParams.Add(request.NewErrParamMinLen("OldPassword", 1))
14120	}
14121
14122	if invalidParams.Len() > 0 {
14123		return invalidParams
14124	}
14125	return nil
14126}
14127
14128// SetNewPassword sets the NewPassword field's value.
14129func (s *ChangePasswordInput) SetNewPassword(v string) *ChangePasswordInput {
14130	s.NewPassword = &v
14131	return s
14132}
14133
14134// SetOldPassword sets the OldPassword field's value.
14135func (s *ChangePasswordInput) SetOldPassword(v string) *ChangePasswordInput {
14136	s.OldPassword = &v
14137	return s
14138}
14139
14140// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ChangePasswordOutput
14141type ChangePasswordOutput struct {
14142	_ struct{} `type:"structure"`
14143}
14144
14145// String returns the string representation
14146func (s ChangePasswordOutput) String() string {
14147	return awsutil.Prettify(s)
14148}
14149
14150// GoString returns the string representation
14151func (s ChangePasswordOutput) GoString() string {
14152	return s.String()
14153}
14154
14155// Contains information about a condition context key. It includes the name
14156// of the key and specifies the value (or values, if the context key supports
14157// multiple values) to use in the simulation. This information is used when
14158// evaluating the Condition elements of the input policies.
14159//
14160// This data type is used as an input parameter to SimulateCustomPolicy and
14161// SimulateCustomPolicy.
14162// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ContextEntry
14163type ContextEntry struct {
14164	_ struct{} `type:"structure"`
14165
14166	// The full name of a condition context key, including the service prefix. For
14167	// example, aws:SourceIp or s3:VersionId.
14168	ContextKeyName *string `min:"5" type:"string"`
14169
14170	// The data type of the value (or values) specified in the ContextKeyValues
14171	// parameter.
14172	ContextKeyType *string `type:"string" enum:"ContextKeyTypeEnum"`
14173
14174	// The value (or values, if the condition context key supports multiple values)
14175	// to provide to the simulation for use when the key is referenced by a Condition
14176	// element in an input policy.
14177	ContextKeyValues []*string `type:"list"`
14178}
14179
14180// String returns the string representation
14181func (s ContextEntry) String() string {
14182	return awsutil.Prettify(s)
14183}
14184
14185// GoString returns the string representation
14186func (s ContextEntry) GoString() string {
14187	return s.String()
14188}
14189
14190// Validate inspects the fields of the type to determine if they are valid.
14191func (s *ContextEntry) Validate() error {
14192	invalidParams := request.ErrInvalidParams{Context: "ContextEntry"}
14193	if s.ContextKeyName != nil && len(*s.ContextKeyName) < 5 {
14194		invalidParams.Add(request.NewErrParamMinLen("ContextKeyName", 5))
14195	}
14196
14197	if invalidParams.Len() > 0 {
14198		return invalidParams
14199	}
14200	return nil
14201}
14202
14203// SetContextKeyName sets the ContextKeyName field's value.
14204func (s *ContextEntry) SetContextKeyName(v string) *ContextEntry {
14205	s.ContextKeyName = &v
14206	return s
14207}
14208
14209// SetContextKeyType sets the ContextKeyType field's value.
14210func (s *ContextEntry) SetContextKeyType(v string) *ContextEntry {
14211	s.ContextKeyType = &v
14212	return s
14213}
14214
14215// SetContextKeyValues sets the ContextKeyValues field's value.
14216func (s *ContextEntry) SetContextKeyValues(v []*string) *ContextEntry {
14217	s.ContextKeyValues = v
14218	return s
14219}
14220
14221// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateAccessKeyRequest
14222type CreateAccessKeyInput struct {
14223	_ struct{} `type:"structure"`
14224
14225	// The name of the IAM user that the new key will belong to.
14226	//
14227	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
14228	// a string of characters consisting of upper and lowercase alphanumeric characters
14229	// with no spaces. You can also include any of the following characters: =,.@-
14230	UserName *string `min:"1" type:"string"`
14231}
14232
14233// String returns the string representation
14234func (s CreateAccessKeyInput) String() string {
14235	return awsutil.Prettify(s)
14236}
14237
14238// GoString returns the string representation
14239func (s CreateAccessKeyInput) GoString() string {
14240	return s.String()
14241}
14242
14243// Validate inspects the fields of the type to determine if they are valid.
14244func (s *CreateAccessKeyInput) Validate() error {
14245	invalidParams := request.ErrInvalidParams{Context: "CreateAccessKeyInput"}
14246	if s.UserName != nil && len(*s.UserName) < 1 {
14247		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
14248	}
14249
14250	if invalidParams.Len() > 0 {
14251		return invalidParams
14252	}
14253	return nil
14254}
14255
14256// SetUserName sets the UserName field's value.
14257func (s *CreateAccessKeyInput) SetUserName(v string) *CreateAccessKeyInput {
14258	s.UserName = &v
14259	return s
14260}
14261
14262// Contains the response to a successful CreateAccessKey request.
14263// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateAccessKeyResponse
14264type CreateAccessKeyOutput struct {
14265	_ struct{} `type:"structure"`
14266
14267	// A structure with details about the access key.
14268	//
14269	// AccessKey is a required field
14270	AccessKey *AccessKey `type:"structure" required:"true"`
14271}
14272
14273// String returns the string representation
14274func (s CreateAccessKeyOutput) String() string {
14275	return awsutil.Prettify(s)
14276}
14277
14278// GoString returns the string representation
14279func (s CreateAccessKeyOutput) GoString() string {
14280	return s.String()
14281}
14282
14283// SetAccessKey sets the AccessKey field's value.
14284func (s *CreateAccessKeyOutput) SetAccessKey(v *AccessKey) *CreateAccessKeyOutput {
14285	s.AccessKey = v
14286	return s
14287}
14288
14289// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateAccountAliasRequest
14290type CreateAccountAliasInput struct {
14291	_ struct{} `type:"structure"`
14292
14293	// The account alias to create.
14294	//
14295	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
14296	// a string of characters consisting of lowercase letters, digits, and dashes.
14297	// You cannot start or finish with a dash, nor can you have two dashes in a
14298	// row.
14299	//
14300	// AccountAlias is a required field
14301	AccountAlias *string `min:"3" type:"string" required:"true"`
14302}
14303
14304// String returns the string representation
14305func (s CreateAccountAliasInput) String() string {
14306	return awsutil.Prettify(s)
14307}
14308
14309// GoString returns the string representation
14310func (s CreateAccountAliasInput) GoString() string {
14311	return s.String()
14312}
14313
14314// Validate inspects the fields of the type to determine if they are valid.
14315func (s *CreateAccountAliasInput) Validate() error {
14316	invalidParams := request.ErrInvalidParams{Context: "CreateAccountAliasInput"}
14317	if s.AccountAlias == nil {
14318		invalidParams.Add(request.NewErrParamRequired("AccountAlias"))
14319	}
14320	if s.AccountAlias != nil && len(*s.AccountAlias) < 3 {
14321		invalidParams.Add(request.NewErrParamMinLen("AccountAlias", 3))
14322	}
14323
14324	if invalidParams.Len() > 0 {
14325		return invalidParams
14326	}
14327	return nil
14328}
14329
14330// SetAccountAlias sets the AccountAlias field's value.
14331func (s *CreateAccountAliasInput) SetAccountAlias(v string) *CreateAccountAliasInput {
14332	s.AccountAlias = &v
14333	return s
14334}
14335
14336// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateAccountAliasOutput
14337type CreateAccountAliasOutput struct {
14338	_ struct{} `type:"structure"`
14339}
14340
14341// String returns the string representation
14342func (s CreateAccountAliasOutput) String() string {
14343	return awsutil.Prettify(s)
14344}
14345
14346// GoString returns the string representation
14347func (s CreateAccountAliasOutput) GoString() string {
14348	return s.String()
14349}
14350
14351// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateGroupRequest
14352type CreateGroupInput struct {
14353	_ struct{} `type:"structure"`
14354
14355	// The name of the group to create. Do not include the path in this value.
14356	//
14357	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
14358	// a string of characters consisting of upper and lowercase alphanumeric characters
14359	// with no spaces. You can also include any of the following characters: =,.@-.
14360	// The group name must be unique within the account. Group names are not distinguished
14361	// by case. For example, you cannot create groups named both "ADMINS" and "admins".
14362	//
14363	// GroupName is a required field
14364	GroupName *string `min:"1" type:"string" required:"true"`
14365
14366	// The path to the group. For more information about paths, see IAM Identifiers
14367	// (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
14368	// in the IAM User Guide.
14369	//
14370	// This parameter is optional. If it is not included, it defaults to a slash
14371	// (/).
14372	//
14373	// This paramater allows (per its regex pattern (http://wikipedia.org/wiki/regex))
14374	// a string of characters consisting of either a forward slash (/) by itself
14375	// or a string that must begin and end with forward slashes, containing any
14376	// ASCII character from the ! (\u0021) thru the DEL character (\u007F), including
14377	// most punctuation characters, digits, and upper and lowercased letters.
14378	Path *string `min:"1" type:"string"`
14379}
14380
14381// String returns the string representation
14382func (s CreateGroupInput) String() string {
14383	return awsutil.Prettify(s)
14384}
14385
14386// GoString returns the string representation
14387func (s CreateGroupInput) GoString() string {
14388	return s.String()
14389}
14390
14391// Validate inspects the fields of the type to determine if they are valid.
14392func (s *CreateGroupInput) Validate() error {
14393	invalidParams := request.ErrInvalidParams{Context: "CreateGroupInput"}
14394	if s.GroupName == nil {
14395		invalidParams.Add(request.NewErrParamRequired("GroupName"))
14396	}
14397	if s.GroupName != nil && len(*s.GroupName) < 1 {
14398		invalidParams.Add(request.NewErrParamMinLen("GroupName", 1))
14399	}
14400	if s.Path != nil && len(*s.Path) < 1 {
14401		invalidParams.Add(request.NewErrParamMinLen("Path", 1))
14402	}
14403
14404	if invalidParams.Len() > 0 {
14405		return invalidParams
14406	}
14407	return nil
14408}
14409
14410// SetGroupName sets the GroupName field's value.
14411func (s *CreateGroupInput) SetGroupName(v string) *CreateGroupInput {
14412	s.GroupName = &v
14413	return s
14414}
14415
14416// SetPath sets the Path field's value.
14417func (s *CreateGroupInput) SetPath(v string) *CreateGroupInput {
14418	s.Path = &v
14419	return s
14420}
14421
14422// Contains the response to a successful CreateGroup request.
14423// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateGroupResponse
14424type CreateGroupOutput struct {
14425	_ struct{} `type:"structure"`
14426
14427	// A structure containing details about the new group.
14428	//
14429	// Group is a required field
14430	Group *Group `type:"structure" required:"true"`
14431}
14432
14433// String returns the string representation
14434func (s CreateGroupOutput) String() string {
14435	return awsutil.Prettify(s)
14436}
14437
14438// GoString returns the string representation
14439func (s CreateGroupOutput) GoString() string {
14440	return s.String()
14441}
14442
14443// SetGroup sets the Group field's value.
14444func (s *CreateGroupOutput) SetGroup(v *Group) *CreateGroupOutput {
14445	s.Group = v
14446	return s
14447}
14448
14449// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateInstanceProfileRequest
14450type CreateInstanceProfileInput struct {
14451	_ struct{} `type:"structure"`
14452
14453	// The name of the instance profile to create.
14454	//
14455	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
14456	// a string of characters consisting of upper and lowercase alphanumeric characters
14457	// with no spaces. You can also include any of the following characters: =,.@-
14458	//
14459	// InstanceProfileName is a required field
14460	InstanceProfileName *string `min:"1" type:"string" required:"true"`
14461
14462	// The path to the instance profile. For more information about paths, see IAM
14463	// Identifiers (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
14464	// in the IAM User Guide.
14465	//
14466	// This parameter is optional. If it is not included, it defaults to a slash
14467	// (/).
14468	//
14469	// This paramater allows (per its regex pattern (http://wikipedia.org/wiki/regex))
14470	// a string of characters consisting of either a forward slash (/) by itself
14471	// or a string that must begin and end with forward slashes, containing any
14472	// ASCII character from the ! (\u0021) thru the DEL character (\u007F), including
14473	// most punctuation characters, digits, and upper and lowercased letters.
14474	Path *string `min:"1" type:"string"`
14475}
14476
14477// String returns the string representation
14478func (s CreateInstanceProfileInput) String() string {
14479	return awsutil.Prettify(s)
14480}
14481
14482// GoString returns the string representation
14483func (s CreateInstanceProfileInput) GoString() string {
14484	return s.String()
14485}
14486
14487// Validate inspects the fields of the type to determine if they are valid.
14488func (s *CreateInstanceProfileInput) Validate() error {
14489	invalidParams := request.ErrInvalidParams{Context: "CreateInstanceProfileInput"}
14490	if s.InstanceProfileName == nil {
14491		invalidParams.Add(request.NewErrParamRequired("InstanceProfileName"))
14492	}
14493	if s.InstanceProfileName != nil && len(*s.InstanceProfileName) < 1 {
14494		invalidParams.Add(request.NewErrParamMinLen("InstanceProfileName", 1))
14495	}
14496	if s.Path != nil && len(*s.Path) < 1 {
14497		invalidParams.Add(request.NewErrParamMinLen("Path", 1))
14498	}
14499
14500	if invalidParams.Len() > 0 {
14501		return invalidParams
14502	}
14503	return nil
14504}
14505
14506// SetInstanceProfileName sets the InstanceProfileName field's value.
14507func (s *CreateInstanceProfileInput) SetInstanceProfileName(v string) *CreateInstanceProfileInput {
14508	s.InstanceProfileName = &v
14509	return s
14510}
14511
14512// SetPath sets the Path field's value.
14513func (s *CreateInstanceProfileInput) SetPath(v string) *CreateInstanceProfileInput {
14514	s.Path = &v
14515	return s
14516}
14517
14518// Contains the response to a successful CreateInstanceProfile request.
14519// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateInstanceProfileResponse
14520type CreateInstanceProfileOutput struct {
14521	_ struct{} `type:"structure"`
14522
14523	// A structure containing details about the new instance profile.
14524	//
14525	// InstanceProfile is a required field
14526	InstanceProfile *InstanceProfile `type:"structure" required:"true"`
14527}
14528
14529// String returns the string representation
14530func (s CreateInstanceProfileOutput) String() string {
14531	return awsutil.Prettify(s)
14532}
14533
14534// GoString returns the string representation
14535func (s CreateInstanceProfileOutput) GoString() string {
14536	return s.String()
14537}
14538
14539// SetInstanceProfile sets the InstanceProfile field's value.
14540func (s *CreateInstanceProfileOutput) SetInstanceProfile(v *InstanceProfile) *CreateInstanceProfileOutput {
14541	s.InstanceProfile = v
14542	return s
14543}
14544
14545// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateLoginProfileRequest
14546type CreateLoginProfileInput struct {
14547	_ struct{} `type:"structure"`
14548
14549	// The new password for the user.
14550	//
14551	// The regex pattern (http://wikipedia.org/wiki/regex) used to validate this
14552	// parameter is a string of characters consisting of almost any printable ASCII
14553	// character from the space (\u0020) through the end of the ASCII character
14554	// range (\u00FF). You can also include the tab (\u0009), line feed (\u000A),
14555	// and carriage return (\u000D) characters. Although any of these characters
14556	// are valid in a password, note that many tools, such as the AWS Management
14557	// Console, might restrict the ability to enter certain characters because they
14558	// have special meaning within that tool.
14559	//
14560	// Password is a required field
14561	Password *string `min:"1" type:"string" required:"true"`
14562
14563	// Specifies whether the user is required to set a new password on next sign-in.
14564	PasswordResetRequired *bool `type:"boolean"`
14565
14566	// The name of the IAM user to create a password for. The user must already
14567	// exist.
14568	//
14569	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
14570	// a string of characters consisting of upper and lowercase alphanumeric characters
14571	// with no spaces. You can also include any of the following characters: =,.@-
14572	//
14573	// UserName is a required field
14574	UserName *string `min:"1" type:"string" required:"true"`
14575}
14576
14577// String returns the string representation
14578func (s CreateLoginProfileInput) String() string {
14579	return awsutil.Prettify(s)
14580}
14581
14582// GoString returns the string representation
14583func (s CreateLoginProfileInput) GoString() string {
14584	return s.String()
14585}
14586
14587// Validate inspects the fields of the type to determine if they are valid.
14588func (s *CreateLoginProfileInput) Validate() error {
14589	invalidParams := request.ErrInvalidParams{Context: "CreateLoginProfileInput"}
14590	if s.Password == nil {
14591		invalidParams.Add(request.NewErrParamRequired("Password"))
14592	}
14593	if s.Password != nil && len(*s.Password) < 1 {
14594		invalidParams.Add(request.NewErrParamMinLen("Password", 1))
14595	}
14596	if s.UserName == nil {
14597		invalidParams.Add(request.NewErrParamRequired("UserName"))
14598	}
14599	if s.UserName != nil && len(*s.UserName) < 1 {
14600		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
14601	}
14602
14603	if invalidParams.Len() > 0 {
14604		return invalidParams
14605	}
14606	return nil
14607}
14608
14609// SetPassword sets the Password field's value.
14610func (s *CreateLoginProfileInput) SetPassword(v string) *CreateLoginProfileInput {
14611	s.Password = &v
14612	return s
14613}
14614
14615// SetPasswordResetRequired sets the PasswordResetRequired field's value.
14616func (s *CreateLoginProfileInput) SetPasswordResetRequired(v bool) *CreateLoginProfileInput {
14617	s.PasswordResetRequired = &v
14618	return s
14619}
14620
14621// SetUserName sets the UserName field's value.
14622func (s *CreateLoginProfileInput) SetUserName(v string) *CreateLoginProfileInput {
14623	s.UserName = &v
14624	return s
14625}
14626
14627// Contains the response to a successful CreateLoginProfile request.
14628// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateLoginProfileResponse
14629type CreateLoginProfileOutput struct {
14630	_ struct{} `type:"structure"`
14631
14632	// A structure containing the user name and password create date.
14633	//
14634	// LoginProfile is a required field
14635	LoginProfile *LoginProfile `type:"structure" required:"true"`
14636}
14637
14638// String returns the string representation
14639func (s CreateLoginProfileOutput) String() string {
14640	return awsutil.Prettify(s)
14641}
14642
14643// GoString returns the string representation
14644func (s CreateLoginProfileOutput) GoString() string {
14645	return s.String()
14646}
14647
14648// SetLoginProfile sets the LoginProfile field's value.
14649func (s *CreateLoginProfileOutput) SetLoginProfile(v *LoginProfile) *CreateLoginProfileOutput {
14650	s.LoginProfile = v
14651	return s
14652}
14653
14654// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateOpenIDConnectProviderRequest
14655type CreateOpenIDConnectProviderInput struct {
14656	_ struct{} `type:"structure"`
14657
14658	// A list of client IDs (also known as audiences). When a mobile or web app
14659	// registers with an OpenID Connect provider, they establish a value that identifies
14660	// the application. (This is the value that's sent as the client_id parameter
14661	// on OAuth requests.)
14662	//
14663	// You can register multiple client IDs with the same provider. For example,
14664	// you might have multiple applications that use the same OIDC provider. You
14665	// cannot register more than 100 client IDs with a single IAM OIDC provider.
14666	//
14667	// There is no defined format for a client ID. The CreateOpenIDConnectProviderRequest
14668	// action accepts client IDs up to 255 characters long.
14669	ClientIDList []*string `type:"list"`
14670
14671	// A list of server certificate thumbprints for the OpenID Connect (OIDC) identity
14672	// provider's server certificate(s). Typically this list includes only one entry.
14673	// However, IAM lets you have up to five thumbprints for an OIDC provider. This
14674	// lets you maintain multiple thumbprints if the identity provider is rotating
14675	// certificates.
14676	//
14677	// The server certificate thumbprint is the hex-encoded SHA-1 hash value of
14678	// the X.509 certificate used by the domain where the OpenID Connect provider
14679	// makes its keys available. It is always a 40-character string.
14680	//
14681	// You must provide at least one thumbprint when creating an IAM OIDC provider.
14682	// For example, if the OIDC provider is server.example.com and the provider
14683	// stores its keys at "https://keys.server.example.com/openid-connect", the
14684	// thumbprint string would be the hex-encoded SHA-1 hash value of the certificate
14685	// used by https://keys.server.example.com.
14686	//
14687	// For more information about obtaining the OIDC provider's thumbprint, see
14688	// Obtaining the Thumbprint for an OpenID Connect Provider (http://docs.aws.amazon.com/IAM/latest/UserGuide/identity-providers-oidc-obtain-thumbprint.html)
14689	// in the IAM User Guide.
14690	//
14691	// ThumbprintList is a required field
14692	ThumbprintList []*string `type:"list" required:"true"`
14693
14694	// The URL of the identity provider. The URL must begin with "https://" and
14695	// should correspond to the iss claim in the provider's OpenID Connect ID tokens.
14696	// Per the OIDC standard, path components are allowed but query parameters are
14697	// not. Typically the URL consists of only a host name, like "https://server.example.org"
14698	// or "https://example.com".
14699	//
14700	// You cannot register the same provider multiple times in a single AWS account.
14701	// If you try to submit a URL that has already been used for an OpenID Connect
14702	// provider in the AWS account, you will get an error.
14703	//
14704	// Url is a required field
14705	Url *string `min:"1" type:"string" required:"true"`
14706}
14707
14708// String returns the string representation
14709func (s CreateOpenIDConnectProviderInput) String() string {
14710	return awsutil.Prettify(s)
14711}
14712
14713// GoString returns the string representation
14714func (s CreateOpenIDConnectProviderInput) GoString() string {
14715	return s.String()
14716}
14717
14718// Validate inspects the fields of the type to determine if they are valid.
14719func (s *CreateOpenIDConnectProviderInput) Validate() error {
14720	invalidParams := request.ErrInvalidParams{Context: "CreateOpenIDConnectProviderInput"}
14721	if s.ThumbprintList == nil {
14722		invalidParams.Add(request.NewErrParamRequired("ThumbprintList"))
14723	}
14724	if s.Url == nil {
14725		invalidParams.Add(request.NewErrParamRequired("Url"))
14726	}
14727	if s.Url != nil && len(*s.Url) < 1 {
14728		invalidParams.Add(request.NewErrParamMinLen("Url", 1))
14729	}
14730
14731	if invalidParams.Len() > 0 {
14732		return invalidParams
14733	}
14734	return nil
14735}
14736
14737// SetClientIDList sets the ClientIDList field's value.
14738func (s *CreateOpenIDConnectProviderInput) SetClientIDList(v []*string) *CreateOpenIDConnectProviderInput {
14739	s.ClientIDList = v
14740	return s
14741}
14742
14743// SetThumbprintList sets the ThumbprintList field's value.
14744func (s *CreateOpenIDConnectProviderInput) SetThumbprintList(v []*string) *CreateOpenIDConnectProviderInput {
14745	s.ThumbprintList = v
14746	return s
14747}
14748
14749// SetUrl sets the Url field's value.
14750func (s *CreateOpenIDConnectProviderInput) SetUrl(v string) *CreateOpenIDConnectProviderInput {
14751	s.Url = &v
14752	return s
14753}
14754
14755// Contains the response to a successful CreateOpenIDConnectProvider request.
14756// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateOpenIDConnectProviderResponse
14757type CreateOpenIDConnectProviderOutput struct {
14758	_ struct{} `type:"structure"`
14759
14760	// The Amazon Resource Name (ARN) of the new IAM OpenID Connect provider that
14761	// is created. For more information, see OpenIDConnectProviderListEntry.
14762	OpenIDConnectProviderArn *string `min:"20" type:"string"`
14763}
14764
14765// String returns the string representation
14766func (s CreateOpenIDConnectProviderOutput) String() string {
14767	return awsutil.Prettify(s)
14768}
14769
14770// GoString returns the string representation
14771func (s CreateOpenIDConnectProviderOutput) GoString() string {
14772	return s.String()
14773}
14774
14775// SetOpenIDConnectProviderArn sets the OpenIDConnectProviderArn field's value.
14776func (s *CreateOpenIDConnectProviderOutput) SetOpenIDConnectProviderArn(v string) *CreateOpenIDConnectProviderOutput {
14777	s.OpenIDConnectProviderArn = &v
14778	return s
14779}
14780
14781// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreatePolicyRequest
14782type CreatePolicyInput struct {
14783	_ struct{} `type:"structure"`
14784
14785	// A friendly description of the policy.
14786	//
14787	// Typically used to store information about the permissions defined in the
14788	// policy. For example, "Grants access to production DynamoDB tables."
14789	//
14790	// The policy description is immutable. After a value is assigned, it cannot
14791	// be changed.
14792	Description *string `type:"string"`
14793
14794	// The path for the policy.
14795	//
14796	// For more information about paths, see IAM Identifiers (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
14797	// in the IAM User Guide.
14798	//
14799	// This parameter is optional. If it is not included, it defaults to a slash
14800	// (/).
14801	//
14802	// This paramater allows (per its regex pattern (http://wikipedia.org/wiki/regex))
14803	// a string of characters consisting of either a forward slash (/) by itself
14804	// or a string that must begin and end with forward slashes, containing any
14805	// ASCII character from the ! (\u0021) thru the DEL character (\u007F), including
14806	// most punctuation characters, digits, and upper and lowercased letters.
14807	Path *string `type:"string"`
14808
14809	// The JSON policy document that you want to use as the content for the new
14810	// policy.
14811	//
14812	// The regex pattern (http://wikipedia.org/wiki/regex) used to validate this
14813	// parameter is a string of characters consisting of any printable ASCII character
14814	// ranging from the space character (\u0020) through end of the ASCII character
14815	// range as well as the printable characters in the Basic Latin and Latin-1
14816	// Supplement character set (through \u00FF). It also includes the special characters
14817	// tab (\u0009), line feed (\u000A), and carriage return (\u000D).
14818	//
14819	// PolicyDocument is a required field
14820	PolicyDocument *string `min:"1" type:"string" required:"true"`
14821
14822	// The friendly name of the policy.
14823	//
14824	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
14825	// a string of characters consisting of upper and lowercase alphanumeric characters
14826	// with no spaces. You can also include any of the following characters: =,.@-+
14827	//
14828	// PolicyName is a required field
14829	PolicyName *string `min:"1" type:"string" required:"true"`
14830}
14831
14832// String returns the string representation
14833func (s CreatePolicyInput) String() string {
14834	return awsutil.Prettify(s)
14835}
14836
14837// GoString returns the string representation
14838func (s CreatePolicyInput) GoString() string {
14839	return s.String()
14840}
14841
14842// Validate inspects the fields of the type to determine if they are valid.
14843func (s *CreatePolicyInput) Validate() error {
14844	invalidParams := request.ErrInvalidParams{Context: "CreatePolicyInput"}
14845	if s.PolicyDocument == nil {
14846		invalidParams.Add(request.NewErrParamRequired("PolicyDocument"))
14847	}
14848	if s.PolicyDocument != nil && len(*s.PolicyDocument) < 1 {
14849		invalidParams.Add(request.NewErrParamMinLen("PolicyDocument", 1))
14850	}
14851	if s.PolicyName == nil {
14852		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
14853	}
14854	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
14855		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
14856	}
14857
14858	if invalidParams.Len() > 0 {
14859		return invalidParams
14860	}
14861	return nil
14862}
14863
14864// SetDescription sets the Description field's value.
14865func (s *CreatePolicyInput) SetDescription(v string) *CreatePolicyInput {
14866	s.Description = &v
14867	return s
14868}
14869
14870// SetPath sets the Path field's value.
14871func (s *CreatePolicyInput) SetPath(v string) *CreatePolicyInput {
14872	s.Path = &v
14873	return s
14874}
14875
14876// SetPolicyDocument sets the PolicyDocument field's value.
14877func (s *CreatePolicyInput) SetPolicyDocument(v string) *CreatePolicyInput {
14878	s.PolicyDocument = &v
14879	return s
14880}
14881
14882// SetPolicyName sets the PolicyName field's value.
14883func (s *CreatePolicyInput) SetPolicyName(v string) *CreatePolicyInput {
14884	s.PolicyName = &v
14885	return s
14886}
14887
14888// Contains the response to a successful CreatePolicy request.
14889// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreatePolicyResponse
14890type CreatePolicyOutput struct {
14891	_ struct{} `type:"structure"`
14892
14893	// A structure containing details about the new policy.
14894	Policy *Policy `type:"structure"`
14895}
14896
14897// String returns the string representation
14898func (s CreatePolicyOutput) String() string {
14899	return awsutil.Prettify(s)
14900}
14901
14902// GoString returns the string representation
14903func (s CreatePolicyOutput) GoString() string {
14904	return s.String()
14905}
14906
14907// SetPolicy sets the Policy field's value.
14908func (s *CreatePolicyOutput) SetPolicy(v *Policy) *CreatePolicyOutput {
14909	s.Policy = v
14910	return s
14911}
14912
14913// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreatePolicyVersionRequest
14914type CreatePolicyVersionInput struct {
14915	_ struct{} `type:"structure"`
14916
14917	// The Amazon Resource Name (ARN) of the IAM policy to which you want to add
14918	// a new version.
14919	//
14920	// For more information about ARNs, see Amazon Resource Names (ARNs) and AWS
14921	// Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
14922	// in the AWS General Reference.
14923	//
14924	// PolicyArn is a required field
14925	PolicyArn *string `min:"20" type:"string" required:"true"`
14926
14927	// The JSON policy document that you want to use as the content for this new
14928	// version of the policy.
14929	//
14930	// The regex pattern (http://wikipedia.org/wiki/regex) used to validate this
14931	// parameter is a string of characters consisting of any printable ASCII character
14932	// ranging from the space character (\u0020) through end of the ASCII character
14933	// range as well as the printable characters in the Basic Latin and Latin-1
14934	// Supplement character set (through \u00FF). It also includes the special characters
14935	// tab (\u0009), line feed (\u000A), and carriage return (\u000D).
14936	//
14937	// PolicyDocument is a required field
14938	PolicyDocument *string `min:"1" type:"string" required:"true"`
14939
14940	// Specifies whether to set this version as the policy's default version.
14941	//
14942	// When this parameter is true, the new policy version becomes the operative
14943	// version; that is, the version that is in effect for the IAM users, groups,
14944	// and roles that the policy is attached to.
14945	//
14946	// For more information about managed policy versions, see Versioning for Managed
14947	// Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html)
14948	// in the IAM User Guide.
14949	SetAsDefault *bool `type:"boolean"`
14950}
14951
14952// String returns the string representation
14953func (s CreatePolicyVersionInput) String() string {
14954	return awsutil.Prettify(s)
14955}
14956
14957// GoString returns the string representation
14958func (s CreatePolicyVersionInput) GoString() string {
14959	return s.String()
14960}
14961
14962// Validate inspects the fields of the type to determine if they are valid.
14963func (s *CreatePolicyVersionInput) Validate() error {
14964	invalidParams := request.ErrInvalidParams{Context: "CreatePolicyVersionInput"}
14965	if s.PolicyArn == nil {
14966		invalidParams.Add(request.NewErrParamRequired("PolicyArn"))
14967	}
14968	if s.PolicyArn != nil && len(*s.PolicyArn) < 20 {
14969		invalidParams.Add(request.NewErrParamMinLen("PolicyArn", 20))
14970	}
14971	if s.PolicyDocument == nil {
14972		invalidParams.Add(request.NewErrParamRequired("PolicyDocument"))
14973	}
14974	if s.PolicyDocument != nil && len(*s.PolicyDocument) < 1 {
14975		invalidParams.Add(request.NewErrParamMinLen("PolicyDocument", 1))
14976	}
14977
14978	if invalidParams.Len() > 0 {
14979		return invalidParams
14980	}
14981	return nil
14982}
14983
14984// SetPolicyArn sets the PolicyArn field's value.
14985func (s *CreatePolicyVersionInput) SetPolicyArn(v string) *CreatePolicyVersionInput {
14986	s.PolicyArn = &v
14987	return s
14988}
14989
14990// SetPolicyDocument sets the PolicyDocument field's value.
14991func (s *CreatePolicyVersionInput) SetPolicyDocument(v string) *CreatePolicyVersionInput {
14992	s.PolicyDocument = &v
14993	return s
14994}
14995
14996// SetSetAsDefault sets the SetAsDefault field's value.
14997func (s *CreatePolicyVersionInput) SetSetAsDefault(v bool) *CreatePolicyVersionInput {
14998	s.SetAsDefault = &v
14999	return s
15000}
15001
15002// Contains the response to a successful CreatePolicyVersion request.
15003// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreatePolicyVersionResponse
15004type CreatePolicyVersionOutput struct {
15005	_ struct{} `type:"structure"`
15006
15007	// A structure containing details about the new policy version.
15008	PolicyVersion *PolicyVersion `type:"structure"`
15009}
15010
15011// String returns the string representation
15012func (s CreatePolicyVersionOutput) String() string {
15013	return awsutil.Prettify(s)
15014}
15015
15016// GoString returns the string representation
15017func (s CreatePolicyVersionOutput) GoString() string {
15018	return s.String()
15019}
15020
15021// SetPolicyVersion sets the PolicyVersion field's value.
15022func (s *CreatePolicyVersionOutput) SetPolicyVersion(v *PolicyVersion) *CreatePolicyVersionOutput {
15023	s.PolicyVersion = v
15024	return s
15025}
15026
15027// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateRoleRequest
15028type CreateRoleInput struct {
15029	_ struct{} `type:"structure"`
15030
15031	// The trust relationship policy document that grants an entity permission to
15032	// assume the role.
15033	//
15034	// The regex pattern (http://wikipedia.org/wiki/regex) used to validate this
15035	// parameter is a string of characters consisting of any printable ASCII character
15036	// ranging from the space character (\u0020) through end of the ASCII character
15037	// range as well as the printable characters in the Basic Latin and Latin-1
15038	// Supplement character set (through \u00FF). It also includes the special characters
15039	// tab (\u0009), line feed (\u000A), and carriage return (\u000D).
15040	//
15041	// AssumeRolePolicyDocument is a required field
15042	AssumeRolePolicyDocument *string `min:"1" type:"string" required:"true"`
15043
15044	// A customer-provided description of the role.
15045	Description *string `type:"string"`
15046
15047	// The path to the role. For more information about paths, see IAM Identifiers
15048	// (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
15049	// in the IAM User Guide.
15050	//
15051	// This parameter is optional. If it is not included, it defaults to a slash
15052	// (/).
15053	//
15054	// This paramater allows (per its regex pattern (http://wikipedia.org/wiki/regex))
15055	// a string of characters consisting of either a forward slash (/) by itself
15056	// or a string that must begin and end with forward slashes, containing any
15057	// ASCII character from the ! (\u0021) thru the DEL character (\u007F), including
15058	// most punctuation characters, digits, and upper and lowercased letters.
15059	Path *string `min:"1" type:"string"`
15060
15061	// The name of the role to create.
15062	//
15063	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
15064	// a string of characters consisting of upper and lowercase alphanumeric characters
15065	// with no spaces. You can also include any of the following characters: _+=,.@-
15066	//
15067	// Role names are not distinguished by case. For example, you cannot create
15068	// roles named both "PRODROLE" and "prodrole".
15069	//
15070	// RoleName is a required field
15071	RoleName *string `min:"1" type:"string" required:"true"`
15072}
15073
15074// String returns the string representation
15075func (s CreateRoleInput) String() string {
15076	return awsutil.Prettify(s)
15077}
15078
15079// GoString returns the string representation
15080func (s CreateRoleInput) GoString() string {
15081	return s.String()
15082}
15083
15084// Validate inspects the fields of the type to determine if they are valid.
15085func (s *CreateRoleInput) Validate() error {
15086	invalidParams := request.ErrInvalidParams{Context: "CreateRoleInput"}
15087	if s.AssumeRolePolicyDocument == nil {
15088		invalidParams.Add(request.NewErrParamRequired("AssumeRolePolicyDocument"))
15089	}
15090	if s.AssumeRolePolicyDocument != nil && len(*s.AssumeRolePolicyDocument) < 1 {
15091		invalidParams.Add(request.NewErrParamMinLen("AssumeRolePolicyDocument", 1))
15092	}
15093	if s.Path != nil && len(*s.Path) < 1 {
15094		invalidParams.Add(request.NewErrParamMinLen("Path", 1))
15095	}
15096	if s.RoleName == nil {
15097		invalidParams.Add(request.NewErrParamRequired("RoleName"))
15098	}
15099	if s.RoleName != nil && len(*s.RoleName) < 1 {
15100		invalidParams.Add(request.NewErrParamMinLen("RoleName", 1))
15101	}
15102
15103	if invalidParams.Len() > 0 {
15104		return invalidParams
15105	}
15106	return nil
15107}
15108
15109// SetAssumeRolePolicyDocument sets the AssumeRolePolicyDocument field's value.
15110func (s *CreateRoleInput) SetAssumeRolePolicyDocument(v string) *CreateRoleInput {
15111	s.AssumeRolePolicyDocument = &v
15112	return s
15113}
15114
15115// SetDescription sets the Description field's value.
15116func (s *CreateRoleInput) SetDescription(v string) *CreateRoleInput {
15117	s.Description = &v
15118	return s
15119}
15120
15121// SetPath sets the Path field's value.
15122func (s *CreateRoleInput) SetPath(v string) *CreateRoleInput {
15123	s.Path = &v
15124	return s
15125}
15126
15127// SetRoleName sets the RoleName field's value.
15128func (s *CreateRoleInput) SetRoleName(v string) *CreateRoleInput {
15129	s.RoleName = &v
15130	return s
15131}
15132
15133// Contains the response to a successful CreateRole request.
15134// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateRoleResponse
15135type CreateRoleOutput struct {
15136	_ struct{} `type:"structure"`
15137
15138	// A structure containing details about the new role.
15139	//
15140	// Role is a required field
15141	Role *Role `type:"structure" required:"true"`
15142}
15143
15144// String returns the string representation
15145func (s CreateRoleOutput) String() string {
15146	return awsutil.Prettify(s)
15147}
15148
15149// GoString returns the string representation
15150func (s CreateRoleOutput) GoString() string {
15151	return s.String()
15152}
15153
15154// SetRole sets the Role field's value.
15155func (s *CreateRoleOutput) SetRole(v *Role) *CreateRoleOutput {
15156	s.Role = v
15157	return s
15158}
15159
15160// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateSAMLProviderRequest
15161type CreateSAMLProviderInput struct {
15162	_ struct{} `type:"structure"`
15163
15164	// The name of the provider to create.
15165	//
15166	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
15167	// a string of characters consisting of upper and lowercase alphanumeric characters
15168	// with no spaces. You can also include any of the following characters: =,.@-
15169	//
15170	// Name is a required field
15171	Name *string `min:"1" type:"string" required:"true"`
15172
15173	// An XML document generated by an identity provider (IdP) that supports SAML
15174	// 2.0. The document includes the issuer's name, expiration information, and
15175	// keys that can be used to validate the SAML authentication response (assertions)
15176	// that are received from the IdP. You must generate the metadata document using
15177	// the identity management software that is used as your organization's IdP.
15178	//
15179	// For more information, see About SAML 2.0-based Federation (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_saml.html)
15180	// in the IAM User Guide
15181	//
15182	// SAMLMetadataDocument is a required field
15183	SAMLMetadataDocument *string `min:"1000" type:"string" required:"true"`
15184}
15185
15186// String returns the string representation
15187func (s CreateSAMLProviderInput) String() string {
15188	return awsutil.Prettify(s)
15189}
15190
15191// GoString returns the string representation
15192func (s CreateSAMLProviderInput) GoString() string {
15193	return s.String()
15194}
15195
15196// Validate inspects the fields of the type to determine if they are valid.
15197func (s *CreateSAMLProviderInput) Validate() error {
15198	invalidParams := request.ErrInvalidParams{Context: "CreateSAMLProviderInput"}
15199	if s.Name == nil {
15200		invalidParams.Add(request.NewErrParamRequired("Name"))
15201	}
15202	if s.Name != nil && len(*s.Name) < 1 {
15203		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
15204	}
15205	if s.SAMLMetadataDocument == nil {
15206		invalidParams.Add(request.NewErrParamRequired("SAMLMetadataDocument"))
15207	}
15208	if s.SAMLMetadataDocument != nil && len(*s.SAMLMetadataDocument) < 1000 {
15209		invalidParams.Add(request.NewErrParamMinLen("SAMLMetadataDocument", 1000))
15210	}
15211
15212	if invalidParams.Len() > 0 {
15213		return invalidParams
15214	}
15215	return nil
15216}
15217
15218// SetName sets the Name field's value.
15219func (s *CreateSAMLProviderInput) SetName(v string) *CreateSAMLProviderInput {
15220	s.Name = &v
15221	return s
15222}
15223
15224// SetSAMLMetadataDocument sets the SAMLMetadataDocument field's value.
15225func (s *CreateSAMLProviderInput) SetSAMLMetadataDocument(v string) *CreateSAMLProviderInput {
15226	s.SAMLMetadataDocument = &v
15227	return s
15228}
15229
15230// Contains the response to a successful CreateSAMLProvider request.
15231// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateSAMLProviderResponse
15232type CreateSAMLProviderOutput struct {
15233	_ struct{} `type:"structure"`
15234
15235	// The Amazon Resource Name (ARN) of the new SAML provider resource in IAM.
15236	SAMLProviderArn *string `min:"20" type:"string"`
15237}
15238
15239// String returns the string representation
15240func (s CreateSAMLProviderOutput) String() string {
15241	return awsutil.Prettify(s)
15242}
15243
15244// GoString returns the string representation
15245func (s CreateSAMLProviderOutput) GoString() string {
15246	return s.String()
15247}
15248
15249// SetSAMLProviderArn sets the SAMLProviderArn field's value.
15250func (s *CreateSAMLProviderOutput) SetSAMLProviderArn(v string) *CreateSAMLProviderOutput {
15251	s.SAMLProviderArn = &v
15252	return s
15253}
15254
15255// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateServiceLinkedRoleRequest
15256type CreateServiceLinkedRoleInput struct {
15257	_ struct{} `type:"structure"`
15258
15259	// The AWS service to which this role is attached. You use a string similar
15260	// to a URL but without the http:// in front. For example: elasticbeanstalk.amazonaws.com
15261	//
15262	// AWSServiceName is a required field
15263	AWSServiceName *string `min:"1" type:"string" required:"true"`
15264
15265	// A string that you provide, which is combined with the service name to form
15266	// the complete role name. If you make multiple requests for the same service,
15267	// then you must supply a different CustomSuffix for each request. Otherwise
15268	// the request fails with a duplicate role name error. For example, you could
15269	// add -1 or -debug to the suffix.
15270	CustomSuffix *string `min:"1" type:"string"`
15271
15272	// The description of the role.
15273	Description *string `type:"string"`
15274}
15275
15276// String returns the string representation
15277func (s CreateServiceLinkedRoleInput) String() string {
15278	return awsutil.Prettify(s)
15279}
15280
15281// GoString returns the string representation
15282func (s CreateServiceLinkedRoleInput) GoString() string {
15283	return s.String()
15284}
15285
15286// Validate inspects the fields of the type to determine if they are valid.
15287func (s *CreateServiceLinkedRoleInput) Validate() error {
15288	invalidParams := request.ErrInvalidParams{Context: "CreateServiceLinkedRoleInput"}
15289	if s.AWSServiceName == nil {
15290		invalidParams.Add(request.NewErrParamRequired("AWSServiceName"))
15291	}
15292	if s.AWSServiceName != nil && len(*s.AWSServiceName) < 1 {
15293		invalidParams.Add(request.NewErrParamMinLen("AWSServiceName", 1))
15294	}
15295	if s.CustomSuffix != nil && len(*s.CustomSuffix) < 1 {
15296		invalidParams.Add(request.NewErrParamMinLen("CustomSuffix", 1))
15297	}
15298
15299	if invalidParams.Len() > 0 {
15300		return invalidParams
15301	}
15302	return nil
15303}
15304
15305// SetAWSServiceName sets the AWSServiceName field's value.
15306func (s *CreateServiceLinkedRoleInput) SetAWSServiceName(v string) *CreateServiceLinkedRoleInput {
15307	s.AWSServiceName = &v
15308	return s
15309}
15310
15311// SetCustomSuffix sets the CustomSuffix field's value.
15312func (s *CreateServiceLinkedRoleInput) SetCustomSuffix(v string) *CreateServiceLinkedRoleInput {
15313	s.CustomSuffix = &v
15314	return s
15315}
15316
15317// SetDescription sets the Description field's value.
15318func (s *CreateServiceLinkedRoleInput) SetDescription(v string) *CreateServiceLinkedRoleInput {
15319	s.Description = &v
15320	return s
15321}
15322
15323// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateServiceLinkedRoleResponse
15324type CreateServiceLinkedRoleOutput struct {
15325	_ struct{} `type:"structure"`
15326
15327	// A Role object that contains details about the newly created role.
15328	Role *Role `type:"structure"`
15329}
15330
15331// String returns the string representation
15332func (s CreateServiceLinkedRoleOutput) String() string {
15333	return awsutil.Prettify(s)
15334}
15335
15336// GoString returns the string representation
15337func (s CreateServiceLinkedRoleOutput) GoString() string {
15338	return s.String()
15339}
15340
15341// SetRole sets the Role field's value.
15342func (s *CreateServiceLinkedRoleOutput) SetRole(v *Role) *CreateServiceLinkedRoleOutput {
15343	s.Role = v
15344	return s
15345}
15346
15347// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateServiceSpecificCredentialRequest
15348type CreateServiceSpecificCredentialInput struct {
15349	_ struct{} `type:"structure"`
15350
15351	// The name of the AWS service that is to be associated with the credentials.
15352	// The service you specify here is the only service that can be accessed using
15353	// these credentials.
15354	//
15355	// ServiceName is a required field
15356	ServiceName *string `type:"string" required:"true"`
15357
15358	// The name of the IAM user that is to be associated with the credentials. The
15359	// new service-specific credentials have the same permissions as the associated
15360	// user except that they can be used only to access the specified service.
15361	//
15362	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
15363	// a string of characters consisting of upper and lowercase alphanumeric characters
15364	// with no spaces. You can also include any of the following characters: =,.@-
15365	//
15366	// UserName is a required field
15367	UserName *string `min:"1" type:"string" required:"true"`
15368}
15369
15370// String returns the string representation
15371func (s CreateServiceSpecificCredentialInput) String() string {
15372	return awsutil.Prettify(s)
15373}
15374
15375// GoString returns the string representation
15376func (s CreateServiceSpecificCredentialInput) GoString() string {
15377	return s.String()
15378}
15379
15380// Validate inspects the fields of the type to determine if they are valid.
15381func (s *CreateServiceSpecificCredentialInput) Validate() error {
15382	invalidParams := request.ErrInvalidParams{Context: "CreateServiceSpecificCredentialInput"}
15383	if s.ServiceName == nil {
15384		invalidParams.Add(request.NewErrParamRequired("ServiceName"))
15385	}
15386	if s.UserName == nil {
15387		invalidParams.Add(request.NewErrParamRequired("UserName"))
15388	}
15389	if s.UserName != nil && len(*s.UserName) < 1 {
15390		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
15391	}
15392
15393	if invalidParams.Len() > 0 {
15394		return invalidParams
15395	}
15396	return nil
15397}
15398
15399// SetServiceName sets the ServiceName field's value.
15400func (s *CreateServiceSpecificCredentialInput) SetServiceName(v string) *CreateServiceSpecificCredentialInput {
15401	s.ServiceName = &v
15402	return s
15403}
15404
15405// SetUserName sets the UserName field's value.
15406func (s *CreateServiceSpecificCredentialInput) SetUserName(v string) *CreateServiceSpecificCredentialInput {
15407	s.UserName = &v
15408	return s
15409}
15410
15411// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateServiceSpecificCredentialResponse
15412type CreateServiceSpecificCredentialOutput struct {
15413	_ struct{} `type:"structure"`
15414
15415	// A structure that contains information about the newly created service-specific
15416	// credential.
15417	//
15418	// This is the only time that the password for this credential set is available.
15419	// It cannot be recovered later. Instead, you will have to reset the password
15420	// with ResetServiceSpecificCredential.
15421	ServiceSpecificCredential *ServiceSpecificCredential `type:"structure"`
15422}
15423
15424// String returns the string representation
15425func (s CreateServiceSpecificCredentialOutput) String() string {
15426	return awsutil.Prettify(s)
15427}
15428
15429// GoString returns the string representation
15430func (s CreateServiceSpecificCredentialOutput) GoString() string {
15431	return s.String()
15432}
15433
15434// SetServiceSpecificCredential sets the ServiceSpecificCredential field's value.
15435func (s *CreateServiceSpecificCredentialOutput) SetServiceSpecificCredential(v *ServiceSpecificCredential) *CreateServiceSpecificCredentialOutput {
15436	s.ServiceSpecificCredential = v
15437	return s
15438}
15439
15440// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateUserRequest
15441type CreateUserInput struct {
15442	_ struct{} `type:"structure"`
15443
15444	// The path for the user name. For more information about paths, see IAM Identifiers
15445	// (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
15446	// in the IAM User Guide.
15447	//
15448	// This parameter is optional. If it is not included, it defaults to a slash
15449	// (/).
15450	//
15451	// This paramater allows (per its regex pattern (http://wikipedia.org/wiki/regex))
15452	// a string of characters consisting of either a forward slash (/) by itself
15453	// or a string that must begin and end with forward slashes, containing any
15454	// ASCII character from the ! (\u0021) thru the DEL character (\u007F), including
15455	// most punctuation characters, digits, and upper and lowercased letters.
15456	Path *string `min:"1" type:"string"`
15457
15458	// The name of the user to create.
15459	//
15460	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
15461	// a string of characters consisting of upper and lowercase alphanumeric characters
15462	// with no spaces. You can also include any of the following characters: =,.@-.
15463	// User names are not distinguished by case. For example, you cannot create
15464	// users named both "TESTUSER" and "testuser".
15465	//
15466	// UserName is a required field
15467	UserName *string `min:"1" type:"string" required:"true"`
15468}
15469
15470// String returns the string representation
15471func (s CreateUserInput) String() string {
15472	return awsutil.Prettify(s)
15473}
15474
15475// GoString returns the string representation
15476func (s CreateUserInput) GoString() string {
15477	return s.String()
15478}
15479
15480// Validate inspects the fields of the type to determine if they are valid.
15481func (s *CreateUserInput) Validate() error {
15482	invalidParams := request.ErrInvalidParams{Context: "CreateUserInput"}
15483	if s.Path != nil && len(*s.Path) < 1 {
15484		invalidParams.Add(request.NewErrParamMinLen("Path", 1))
15485	}
15486	if s.UserName == nil {
15487		invalidParams.Add(request.NewErrParamRequired("UserName"))
15488	}
15489	if s.UserName != nil && len(*s.UserName) < 1 {
15490		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
15491	}
15492
15493	if invalidParams.Len() > 0 {
15494		return invalidParams
15495	}
15496	return nil
15497}
15498
15499// SetPath sets the Path field's value.
15500func (s *CreateUserInput) SetPath(v string) *CreateUserInput {
15501	s.Path = &v
15502	return s
15503}
15504
15505// SetUserName sets the UserName field's value.
15506func (s *CreateUserInput) SetUserName(v string) *CreateUserInput {
15507	s.UserName = &v
15508	return s
15509}
15510
15511// Contains the response to a successful CreateUser request.
15512// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateUserResponse
15513type CreateUserOutput struct {
15514	_ struct{} `type:"structure"`
15515
15516	// A structure with details about the new IAM user.
15517	User *User `type:"structure"`
15518}
15519
15520// String returns the string representation
15521func (s CreateUserOutput) String() string {
15522	return awsutil.Prettify(s)
15523}
15524
15525// GoString returns the string representation
15526func (s CreateUserOutput) GoString() string {
15527	return s.String()
15528}
15529
15530// SetUser sets the User field's value.
15531func (s *CreateUserOutput) SetUser(v *User) *CreateUserOutput {
15532	s.User = v
15533	return s
15534}
15535
15536// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateVirtualMFADeviceRequest
15537type CreateVirtualMFADeviceInput struct {
15538	_ struct{} `type:"structure"`
15539
15540	// The path for the virtual MFA device. For more information about paths, see
15541	// IAM Identifiers (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
15542	// in the IAM User Guide.
15543	//
15544	// This parameter is optional. If it is not included, it defaults to a slash
15545	// (/).
15546	//
15547	// This paramater allows (per its regex pattern (http://wikipedia.org/wiki/regex))
15548	// a string of characters consisting of either a forward slash (/) by itself
15549	// or a string that must begin and end with forward slashes, containing any
15550	// ASCII character from the ! (\u0021) thru the DEL character (\u007F), including
15551	// most punctuation characters, digits, and upper and lowercased letters.
15552	Path *string `min:"1" type:"string"`
15553
15554	// The name of the virtual MFA device. Use with path to uniquely identify a
15555	// virtual MFA device.
15556	//
15557	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
15558	// a string of characters consisting of upper and lowercase alphanumeric characters
15559	// with no spaces. You can also include any of the following characters: =,.@-
15560	//
15561	// VirtualMFADeviceName is a required field
15562	VirtualMFADeviceName *string `min:"1" type:"string" required:"true"`
15563}
15564
15565// String returns the string representation
15566func (s CreateVirtualMFADeviceInput) String() string {
15567	return awsutil.Prettify(s)
15568}
15569
15570// GoString returns the string representation
15571func (s CreateVirtualMFADeviceInput) GoString() string {
15572	return s.String()
15573}
15574
15575// Validate inspects the fields of the type to determine if they are valid.
15576func (s *CreateVirtualMFADeviceInput) Validate() error {
15577	invalidParams := request.ErrInvalidParams{Context: "CreateVirtualMFADeviceInput"}
15578	if s.Path != nil && len(*s.Path) < 1 {
15579		invalidParams.Add(request.NewErrParamMinLen("Path", 1))
15580	}
15581	if s.VirtualMFADeviceName == nil {
15582		invalidParams.Add(request.NewErrParamRequired("VirtualMFADeviceName"))
15583	}
15584	if s.VirtualMFADeviceName != nil && len(*s.VirtualMFADeviceName) < 1 {
15585		invalidParams.Add(request.NewErrParamMinLen("VirtualMFADeviceName", 1))
15586	}
15587
15588	if invalidParams.Len() > 0 {
15589		return invalidParams
15590	}
15591	return nil
15592}
15593
15594// SetPath sets the Path field's value.
15595func (s *CreateVirtualMFADeviceInput) SetPath(v string) *CreateVirtualMFADeviceInput {
15596	s.Path = &v
15597	return s
15598}
15599
15600// SetVirtualMFADeviceName sets the VirtualMFADeviceName field's value.
15601func (s *CreateVirtualMFADeviceInput) SetVirtualMFADeviceName(v string) *CreateVirtualMFADeviceInput {
15602	s.VirtualMFADeviceName = &v
15603	return s
15604}
15605
15606// Contains the response to a successful CreateVirtualMFADevice request.
15607// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateVirtualMFADeviceResponse
15608type CreateVirtualMFADeviceOutput struct {
15609	_ struct{} `type:"structure"`
15610
15611	// A structure containing details about the new virtual MFA device.
15612	//
15613	// VirtualMFADevice is a required field
15614	VirtualMFADevice *VirtualMFADevice `type:"structure" required:"true"`
15615}
15616
15617// String returns the string representation
15618func (s CreateVirtualMFADeviceOutput) String() string {
15619	return awsutil.Prettify(s)
15620}
15621
15622// GoString returns the string representation
15623func (s CreateVirtualMFADeviceOutput) GoString() string {
15624	return s.String()
15625}
15626
15627// SetVirtualMFADevice sets the VirtualMFADevice field's value.
15628func (s *CreateVirtualMFADeviceOutput) SetVirtualMFADevice(v *VirtualMFADevice) *CreateVirtualMFADeviceOutput {
15629	s.VirtualMFADevice = v
15630	return s
15631}
15632
15633// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeactivateMFADeviceRequest
15634type DeactivateMFADeviceInput struct {
15635	_ struct{} `type:"structure"`
15636
15637	// The serial number that uniquely identifies the MFA device. For virtual MFA
15638	// devices, the serial number is the device ARN.
15639	//
15640	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
15641	// a string of characters consisting of upper and lowercase alphanumeric characters
15642	// with no spaces. You can also include any of the following characters: =,.@:/-
15643	//
15644	// SerialNumber is a required field
15645	SerialNumber *string `min:"9" type:"string" required:"true"`
15646
15647	// The name of the user whose MFA device you want to deactivate.
15648	//
15649	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
15650	// a string of characters consisting of upper and lowercase alphanumeric characters
15651	// with no spaces. You can also include any of the following characters: =,.@-
15652	//
15653	// UserName is a required field
15654	UserName *string `min:"1" type:"string" required:"true"`
15655}
15656
15657// String returns the string representation
15658func (s DeactivateMFADeviceInput) String() string {
15659	return awsutil.Prettify(s)
15660}
15661
15662// GoString returns the string representation
15663func (s DeactivateMFADeviceInput) GoString() string {
15664	return s.String()
15665}
15666
15667// Validate inspects the fields of the type to determine if they are valid.
15668func (s *DeactivateMFADeviceInput) Validate() error {
15669	invalidParams := request.ErrInvalidParams{Context: "DeactivateMFADeviceInput"}
15670	if s.SerialNumber == nil {
15671		invalidParams.Add(request.NewErrParamRequired("SerialNumber"))
15672	}
15673	if s.SerialNumber != nil && len(*s.SerialNumber) < 9 {
15674		invalidParams.Add(request.NewErrParamMinLen("SerialNumber", 9))
15675	}
15676	if s.UserName == nil {
15677		invalidParams.Add(request.NewErrParamRequired("UserName"))
15678	}
15679	if s.UserName != nil && len(*s.UserName) < 1 {
15680		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
15681	}
15682
15683	if invalidParams.Len() > 0 {
15684		return invalidParams
15685	}
15686	return nil
15687}
15688
15689// SetSerialNumber sets the SerialNumber field's value.
15690func (s *DeactivateMFADeviceInput) SetSerialNumber(v string) *DeactivateMFADeviceInput {
15691	s.SerialNumber = &v
15692	return s
15693}
15694
15695// SetUserName sets the UserName field's value.
15696func (s *DeactivateMFADeviceInput) SetUserName(v string) *DeactivateMFADeviceInput {
15697	s.UserName = &v
15698	return s
15699}
15700
15701// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeactivateMFADeviceOutput
15702type DeactivateMFADeviceOutput struct {
15703	_ struct{} `type:"structure"`
15704}
15705
15706// String returns the string representation
15707func (s DeactivateMFADeviceOutput) String() string {
15708	return awsutil.Prettify(s)
15709}
15710
15711// GoString returns the string representation
15712func (s DeactivateMFADeviceOutput) GoString() string {
15713	return s.String()
15714}
15715
15716// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteAccessKeyRequest
15717type DeleteAccessKeyInput struct {
15718	_ struct{} `type:"structure"`
15719
15720	// The access key ID for the access key ID and secret access key you want to
15721	// delete.
15722	//
15723	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
15724	// a string of characters that can consist of any upper or lowercased letter
15725	// or digit.
15726	//
15727	// AccessKeyId is a required field
15728	AccessKeyId *string `min:"16" type:"string" required:"true"`
15729
15730	// The name of the user whose access key pair you want to delete.
15731	//
15732	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
15733	// a string of characters consisting of upper and lowercase alphanumeric characters
15734	// with no spaces. You can also include any of the following characters: =,.@-
15735	UserName *string `min:"1" type:"string"`
15736}
15737
15738// String returns the string representation
15739func (s DeleteAccessKeyInput) String() string {
15740	return awsutil.Prettify(s)
15741}
15742
15743// GoString returns the string representation
15744func (s DeleteAccessKeyInput) GoString() string {
15745	return s.String()
15746}
15747
15748// Validate inspects the fields of the type to determine if they are valid.
15749func (s *DeleteAccessKeyInput) Validate() error {
15750	invalidParams := request.ErrInvalidParams{Context: "DeleteAccessKeyInput"}
15751	if s.AccessKeyId == nil {
15752		invalidParams.Add(request.NewErrParamRequired("AccessKeyId"))
15753	}
15754	if s.AccessKeyId != nil && len(*s.AccessKeyId) < 16 {
15755		invalidParams.Add(request.NewErrParamMinLen("AccessKeyId", 16))
15756	}
15757	if s.UserName != nil && len(*s.UserName) < 1 {
15758		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
15759	}
15760
15761	if invalidParams.Len() > 0 {
15762		return invalidParams
15763	}
15764	return nil
15765}
15766
15767// SetAccessKeyId sets the AccessKeyId field's value.
15768func (s *DeleteAccessKeyInput) SetAccessKeyId(v string) *DeleteAccessKeyInput {
15769	s.AccessKeyId = &v
15770	return s
15771}
15772
15773// SetUserName sets the UserName field's value.
15774func (s *DeleteAccessKeyInput) SetUserName(v string) *DeleteAccessKeyInput {
15775	s.UserName = &v
15776	return s
15777}
15778
15779// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteAccessKeyOutput
15780type DeleteAccessKeyOutput struct {
15781	_ struct{} `type:"structure"`
15782}
15783
15784// String returns the string representation
15785func (s DeleteAccessKeyOutput) String() string {
15786	return awsutil.Prettify(s)
15787}
15788
15789// GoString returns the string representation
15790func (s DeleteAccessKeyOutput) GoString() string {
15791	return s.String()
15792}
15793
15794// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteAccountAliasRequest
15795type DeleteAccountAliasInput struct {
15796	_ struct{} `type:"structure"`
15797
15798	// The name of the account alias to delete.
15799	//
15800	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
15801	// a string of characters consisting of lowercase letters, digits, and dashes.
15802	// You cannot start or finish with a dash, nor can you have two dashes in a
15803	// row.
15804	//
15805	// AccountAlias is a required field
15806	AccountAlias *string `min:"3" type:"string" required:"true"`
15807}
15808
15809// String returns the string representation
15810func (s DeleteAccountAliasInput) String() string {
15811	return awsutil.Prettify(s)
15812}
15813
15814// GoString returns the string representation
15815func (s DeleteAccountAliasInput) GoString() string {
15816	return s.String()
15817}
15818
15819// Validate inspects the fields of the type to determine if they are valid.
15820func (s *DeleteAccountAliasInput) Validate() error {
15821	invalidParams := request.ErrInvalidParams{Context: "DeleteAccountAliasInput"}
15822	if s.AccountAlias == nil {
15823		invalidParams.Add(request.NewErrParamRequired("AccountAlias"))
15824	}
15825	if s.AccountAlias != nil && len(*s.AccountAlias) < 3 {
15826		invalidParams.Add(request.NewErrParamMinLen("AccountAlias", 3))
15827	}
15828
15829	if invalidParams.Len() > 0 {
15830		return invalidParams
15831	}
15832	return nil
15833}
15834
15835// SetAccountAlias sets the AccountAlias field's value.
15836func (s *DeleteAccountAliasInput) SetAccountAlias(v string) *DeleteAccountAliasInput {
15837	s.AccountAlias = &v
15838	return s
15839}
15840
15841// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteAccountAliasOutput
15842type DeleteAccountAliasOutput struct {
15843	_ struct{} `type:"structure"`
15844}
15845
15846// String returns the string representation
15847func (s DeleteAccountAliasOutput) String() string {
15848	return awsutil.Prettify(s)
15849}
15850
15851// GoString returns the string representation
15852func (s DeleteAccountAliasOutput) GoString() string {
15853	return s.String()
15854}
15855
15856// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteAccountPasswordPolicyInput
15857type DeleteAccountPasswordPolicyInput struct {
15858	_ struct{} `type:"structure"`
15859}
15860
15861// String returns the string representation
15862func (s DeleteAccountPasswordPolicyInput) String() string {
15863	return awsutil.Prettify(s)
15864}
15865
15866// GoString returns the string representation
15867func (s DeleteAccountPasswordPolicyInput) GoString() string {
15868	return s.String()
15869}
15870
15871// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteAccountPasswordPolicyOutput
15872type DeleteAccountPasswordPolicyOutput struct {
15873	_ struct{} `type:"structure"`
15874}
15875
15876// String returns the string representation
15877func (s DeleteAccountPasswordPolicyOutput) String() string {
15878	return awsutil.Prettify(s)
15879}
15880
15881// GoString returns the string representation
15882func (s DeleteAccountPasswordPolicyOutput) GoString() string {
15883	return s.String()
15884}
15885
15886// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteGroupRequest
15887type DeleteGroupInput struct {
15888	_ struct{} `type:"structure"`
15889
15890	// The name of the IAM group to delete.
15891	//
15892	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
15893	// a string of characters consisting of upper and lowercase alphanumeric characters
15894	// with no spaces. You can also include any of the following characters: =,.@-
15895	//
15896	// GroupName is a required field
15897	GroupName *string `min:"1" type:"string" required:"true"`
15898}
15899
15900// String returns the string representation
15901func (s DeleteGroupInput) String() string {
15902	return awsutil.Prettify(s)
15903}
15904
15905// GoString returns the string representation
15906func (s DeleteGroupInput) GoString() string {
15907	return s.String()
15908}
15909
15910// Validate inspects the fields of the type to determine if they are valid.
15911func (s *DeleteGroupInput) Validate() error {
15912	invalidParams := request.ErrInvalidParams{Context: "DeleteGroupInput"}
15913	if s.GroupName == nil {
15914		invalidParams.Add(request.NewErrParamRequired("GroupName"))
15915	}
15916	if s.GroupName != nil && len(*s.GroupName) < 1 {
15917		invalidParams.Add(request.NewErrParamMinLen("GroupName", 1))
15918	}
15919
15920	if invalidParams.Len() > 0 {
15921		return invalidParams
15922	}
15923	return nil
15924}
15925
15926// SetGroupName sets the GroupName field's value.
15927func (s *DeleteGroupInput) SetGroupName(v string) *DeleteGroupInput {
15928	s.GroupName = &v
15929	return s
15930}
15931
15932// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteGroupOutput
15933type DeleteGroupOutput struct {
15934	_ struct{} `type:"structure"`
15935}
15936
15937// String returns the string representation
15938func (s DeleteGroupOutput) String() string {
15939	return awsutil.Prettify(s)
15940}
15941
15942// GoString returns the string representation
15943func (s DeleteGroupOutput) GoString() string {
15944	return s.String()
15945}
15946
15947// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteGroupPolicyRequest
15948type DeleteGroupPolicyInput struct {
15949	_ struct{} `type:"structure"`
15950
15951	// The name (friendly name, not ARN) identifying the group that the policy is
15952	// embedded in.
15953	//
15954	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
15955	// a string of characters consisting of upper and lowercase alphanumeric characters
15956	// with no spaces. You can also include any of the following characters: =,.@-
15957	//
15958	// GroupName is a required field
15959	GroupName *string `min:"1" type:"string" required:"true"`
15960
15961	// The name identifying the policy document to delete.
15962	//
15963	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
15964	// a string of characters consisting of upper and lowercase alphanumeric characters
15965	// with no spaces. You can also include any of the following characters: =,.@-+
15966	//
15967	// PolicyName is a required field
15968	PolicyName *string `min:"1" type:"string" required:"true"`
15969}
15970
15971// String returns the string representation
15972func (s DeleteGroupPolicyInput) String() string {
15973	return awsutil.Prettify(s)
15974}
15975
15976// GoString returns the string representation
15977func (s DeleteGroupPolicyInput) GoString() string {
15978	return s.String()
15979}
15980
15981// Validate inspects the fields of the type to determine if they are valid.
15982func (s *DeleteGroupPolicyInput) Validate() error {
15983	invalidParams := request.ErrInvalidParams{Context: "DeleteGroupPolicyInput"}
15984	if s.GroupName == nil {
15985		invalidParams.Add(request.NewErrParamRequired("GroupName"))
15986	}
15987	if s.GroupName != nil && len(*s.GroupName) < 1 {
15988		invalidParams.Add(request.NewErrParamMinLen("GroupName", 1))
15989	}
15990	if s.PolicyName == nil {
15991		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
15992	}
15993	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
15994		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
15995	}
15996
15997	if invalidParams.Len() > 0 {
15998		return invalidParams
15999	}
16000	return nil
16001}
16002
16003// SetGroupName sets the GroupName field's value.
16004func (s *DeleteGroupPolicyInput) SetGroupName(v string) *DeleteGroupPolicyInput {
16005	s.GroupName = &v
16006	return s
16007}
16008
16009// SetPolicyName sets the PolicyName field's value.
16010func (s *DeleteGroupPolicyInput) SetPolicyName(v string) *DeleteGroupPolicyInput {
16011	s.PolicyName = &v
16012	return s
16013}
16014
16015// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteGroupPolicyOutput
16016type DeleteGroupPolicyOutput struct {
16017	_ struct{} `type:"structure"`
16018}
16019
16020// String returns the string representation
16021func (s DeleteGroupPolicyOutput) String() string {
16022	return awsutil.Prettify(s)
16023}
16024
16025// GoString returns the string representation
16026func (s DeleteGroupPolicyOutput) GoString() string {
16027	return s.String()
16028}
16029
16030// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteInstanceProfileRequest
16031type DeleteInstanceProfileInput struct {
16032	_ struct{} `type:"structure"`
16033
16034	// The name of the instance profile to delete.
16035	//
16036	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
16037	// a string of characters consisting of upper and lowercase alphanumeric characters
16038	// with no spaces. You can also include any of the following characters: =,.@-
16039	//
16040	// InstanceProfileName is a required field
16041	InstanceProfileName *string `min:"1" type:"string" required:"true"`
16042}
16043
16044// String returns the string representation
16045func (s DeleteInstanceProfileInput) String() string {
16046	return awsutil.Prettify(s)
16047}
16048
16049// GoString returns the string representation
16050func (s DeleteInstanceProfileInput) GoString() string {
16051	return s.String()
16052}
16053
16054// Validate inspects the fields of the type to determine if they are valid.
16055func (s *DeleteInstanceProfileInput) Validate() error {
16056	invalidParams := request.ErrInvalidParams{Context: "DeleteInstanceProfileInput"}
16057	if s.InstanceProfileName == nil {
16058		invalidParams.Add(request.NewErrParamRequired("InstanceProfileName"))
16059	}
16060	if s.InstanceProfileName != nil && len(*s.InstanceProfileName) < 1 {
16061		invalidParams.Add(request.NewErrParamMinLen("InstanceProfileName", 1))
16062	}
16063
16064	if invalidParams.Len() > 0 {
16065		return invalidParams
16066	}
16067	return nil
16068}
16069
16070// SetInstanceProfileName sets the InstanceProfileName field's value.
16071func (s *DeleteInstanceProfileInput) SetInstanceProfileName(v string) *DeleteInstanceProfileInput {
16072	s.InstanceProfileName = &v
16073	return s
16074}
16075
16076// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteInstanceProfileOutput
16077type DeleteInstanceProfileOutput struct {
16078	_ struct{} `type:"structure"`
16079}
16080
16081// String returns the string representation
16082func (s DeleteInstanceProfileOutput) String() string {
16083	return awsutil.Prettify(s)
16084}
16085
16086// GoString returns the string representation
16087func (s DeleteInstanceProfileOutput) GoString() string {
16088	return s.String()
16089}
16090
16091// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteLoginProfileRequest
16092type DeleteLoginProfileInput struct {
16093	_ struct{} `type:"structure"`
16094
16095	// The name of the user whose password you want to delete.
16096	//
16097	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
16098	// a string of characters consisting of upper and lowercase alphanumeric characters
16099	// with no spaces. You can also include any of the following characters: =,.@-
16100	//
16101	// UserName is a required field
16102	UserName *string `min:"1" type:"string" required:"true"`
16103}
16104
16105// String returns the string representation
16106func (s DeleteLoginProfileInput) String() string {
16107	return awsutil.Prettify(s)
16108}
16109
16110// GoString returns the string representation
16111func (s DeleteLoginProfileInput) GoString() string {
16112	return s.String()
16113}
16114
16115// Validate inspects the fields of the type to determine if they are valid.
16116func (s *DeleteLoginProfileInput) Validate() error {
16117	invalidParams := request.ErrInvalidParams{Context: "DeleteLoginProfileInput"}
16118	if s.UserName == nil {
16119		invalidParams.Add(request.NewErrParamRequired("UserName"))
16120	}
16121	if s.UserName != nil && len(*s.UserName) < 1 {
16122		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
16123	}
16124
16125	if invalidParams.Len() > 0 {
16126		return invalidParams
16127	}
16128	return nil
16129}
16130
16131// SetUserName sets the UserName field's value.
16132func (s *DeleteLoginProfileInput) SetUserName(v string) *DeleteLoginProfileInput {
16133	s.UserName = &v
16134	return s
16135}
16136
16137// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteLoginProfileOutput
16138type DeleteLoginProfileOutput struct {
16139	_ struct{} `type:"structure"`
16140}
16141
16142// String returns the string representation
16143func (s DeleteLoginProfileOutput) String() string {
16144	return awsutil.Prettify(s)
16145}
16146
16147// GoString returns the string representation
16148func (s DeleteLoginProfileOutput) GoString() string {
16149	return s.String()
16150}
16151
16152// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteOpenIDConnectProviderRequest
16153type DeleteOpenIDConnectProviderInput struct {
16154	_ struct{} `type:"structure"`
16155
16156	// The Amazon Resource Name (ARN) of the IAM OpenID Connect provider resource
16157	// object to delete. You can get a list of OpenID Connect provider resource
16158	// ARNs by using the ListOpenIDConnectProviders action.
16159	//
16160	// OpenIDConnectProviderArn is a required field
16161	OpenIDConnectProviderArn *string `min:"20" type:"string" required:"true"`
16162}
16163
16164// String returns the string representation
16165func (s DeleteOpenIDConnectProviderInput) String() string {
16166	return awsutil.Prettify(s)
16167}
16168
16169// GoString returns the string representation
16170func (s DeleteOpenIDConnectProviderInput) GoString() string {
16171	return s.String()
16172}
16173
16174// Validate inspects the fields of the type to determine if they are valid.
16175func (s *DeleteOpenIDConnectProviderInput) Validate() error {
16176	invalidParams := request.ErrInvalidParams{Context: "DeleteOpenIDConnectProviderInput"}
16177	if s.OpenIDConnectProviderArn == nil {
16178		invalidParams.Add(request.NewErrParamRequired("OpenIDConnectProviderArn"))
16179	}
16180	if s.OpenIDConnectProviderArn != nil && len(*s.OpenIDConnectProviderArn) < 20 {
16181		invalidParams.Add(request.NewErrParamMinLen("OpenIDConnectProviderArn", 20))
16182	}
16183
16184	if invalidParams.Len() > 0 {
16185		return invalidParams
16186	}
16187	return nil
16188}
16189
16190// SetOpenIDConnectProviderArn sets the OpenIDConnectProviderArn field's value.
16191func (s *DeleteOpenIDConnectProviderInput) SetOpenIDConnectProviderArn(v string) *DeleteOpenIDConnectProviderInput {
16192	s.OpenIDConnectProviderArn = &v
16193	return s
16194}
16195
16196// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteOpenIDConnectProviderOutput
16197type DeleteOpenIDConnectProviderOutput struct {
16198	_ struct{} `type:"structure"`
16199}
16200
16201// String returns the string representation
16202func (s DeleteOpenIDConnectProviderOutput) String() string {
16203	return awsutil.Prettify(s)
16204}
16205
16206// GoString returns the string representation
16207func (s DeleteOpenIDConnectProviderOutput) GoString() string {
16208	return s.String()
16209}
16210
16211// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeletePolicyRequest
16212type DeletePolicyInput struct {
16213	_ struct{} `type:"structure"`
16214
16215	// The Amazon Resource Name (ARN) of the IAM policy you want to delete.
16216	//
16217	// For more information about ARNs, see Amazon Resource Names (ARNs) and AWS
16218	// Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
16219	// in the AWS General Reference.
16220	//
16221	// PolicyArn is a required field
16222	PolicyArn *string `min:"20" type:"string" required:"true"`
16223}
16224
16225// String returns the string representation
16226func (s DeletePolicyInput) String() string {
16227	return awsutil.Prettify(s)
16228}
16229
16230// GoString returns the string representation
16231func (s DeletePolicyInput) GoString() string {
16232	return s.String()
16233}
16234
16235// Validate inspects the fields of the type to determine if they are valid.
16236func (s *DeletePolicyInput) Validate() error {
16237	invalidParams := request.ErrInvalidParams{Context: "DeletePolicyInput"}
16238	if s.PolicyArn == nil {
16239		invalidParams.Add(request.NewErrParamRequired("PolicyArn"))
16240	}
16241	if s.PolicyArn != nil && len(*s.PolicyArn) < 20 {
16242		invalidParams.Add(request.NewErrParamMinLen("PolicyArn", 20))
16243	}
16244
16245	if invalidParams.Len() > 0 {
16246		return invalidParams
16247	}
16248	return nil
16249}
16250
16251// SetPolicyArn sets the PolicyArn field's value.
16252func (s *DeletePolicyInput) SetPolicyArn(v string) *DeletePolicyInput {
16253	s.PolicyArn = &v
16254	return s
16255}
16256
16257// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeletePolicyOutput
16258type DeletePolicyOutput struct {
16259	_ struct{} `type:"structure"`
16260}
16261
16262// String returns the string representation
16263func (s DeletePolicyOutput) String() string {
16264	return awsutil.Prettify(s)
16265}
16266
16267// GoString returns the string representation
16268func (s DeletePolicyOutput) GoString() string {
16269	return s.String()
16270}
16271
16272// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeletePolicyVersionRequest
16273type DeletePolicyVersionInput struct {
16274	_ struct{} `type:"structure"`
16275
16276	// The Amazon Resource Name (ARN) of the IAM policy from which you want to delete
16277	// a version.
16278	//
16279	// For more information about ARNs, see Amazon Resource Names (ARNs) and AWS
16280	// Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
16281	// in the AWS General Reference.
16282	//
16283	// PolicyArn is a required field
16284	PolicyArn *string `min:"20" type:"string" required:"true"`
16285
16286	// The policy version to delete.
16287	//
16288	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
16289	// a string of characters that consists of the lowercase letter 'v' followed
16290	// by one or two digits, and optionally followed by a period '.' and a string
16291	// of letters and digits.
16292	//
16293	// For more information about managed policy versions, see Versioning for Managed
16294	// Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html)
16295	// in the IAM User Guide.
16296	//
16297	// VersionId is a required field
16298	VersionId *string `type:"string" required:"true"`
16299}
16300
16301// String returns the string representation
16302func (s DeletePolicyVersionInput) String() string {
16303	return awsutil.Prettify(s)
16304}
16305
16306// GoString returns the string representation
16307func (s DeletePolicyVersionInput) GoString() string {
16308	return s.String()
16309}
16310
16311// Validate inspects the fields of the type to determine if they are valid.
16312func (s *DeletePolicyVersionInput) Validate() error {
16313	invalidParams := request.ErrInvalidParams{Context: "DeletePolicyVersionInput"}
16314	if s.PolicyArn == nil {
16315		invalidParams.Add(request.NewErrParamRequired("PolicyArn"))
16316	}
16317	if s.PolicyArn != nil && len(*s.PolicyArn) < 20 {
16318		invalidParams.Add(request.NewErrParamMinLen("PolicyArn", 20))
16319	}
16320	if s.VersionId == nil {
16321		invalidParams.Add(request.NewErrParamRequired("VersionId"))
16322	}
16323
16324	if invalidParams.Len() > 0 {
16325		return invalidParams
16326	}
16327	return nil
16328}
16329
16330// SetPolicyArn sets the PolicyArn field's value.
16331func (s *DeletePolicyVersionInput) SetPolicyArn(v string) *DeletePolicyVersionInput {
16332	s.PolicyArn = &v
16333	return s
16334}
16335
16336// SetVersionId sets the VersionId field's value.
16337func (s *DeletePolicyVersionInput) SetVersionId(v string) *DeletePolicyVersionInput {
16338	s.VersionId = &v
16339	return s
16340}
16341
16342// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeletePolicyVersionOutput
16343type DeletePolicyVersionOutput struct {
16344	_ struct{} `type:"structure"`
16345}
16346
16347// String returns the string representation
16348func (s DeletePolicyVersionOutput) String() string {
16349	return awsutil.Prettify(s)
16350}
16351
16352// GoString returns the string representation
16353func (s DeletePolicyVersionOutput) GoString() string {
16354	return s.String()
16355}
16356
16357// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteRoleRequest
16358type DeleteRoleInput struct {
16359	_ struct{} `type:"structure"`
16360
16361	// The name of the role to delete.
16362	//
16363	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
16364	// a string of characters consisting of upper and lowercase alphanumeric characters
16365	// with no spaces. You can also include any of the following characters: _+=,.@-
16366	//
16367	// RoleName is a required field
16368	RoleName *string `min:"1" type:"string" required:"true"`
16369}
16370
16371// String returns the string representation
16372func (s DeleteRoleInput) String() string {
16373	return awsutil.Prettify(s)
16374}
16375
16376// GoString returns the string representation
16377func (s DeleteRoleInput) GoString() string {
16378	return s.String()
16379}
16380
16381// Validate inspects the fields of the type to determine if they are valid.
16382func (s *DeleteRoleInput) Validate() error {
16383	invalidParams := request.ErrInvalidParams{Context: "DeleteRoleInput"}
16384	if s.RoleName == nil {
16385		invalidParams.Add(request.NewErrParamRequired("RoleName"))
16386	}
16387	if s.RoleName != nil && len(*s.RoleName) < 1 {
16388		invalidParams.Add(request.NewErrParamMinLen("RoleName", 1))
16389	}
16390
16391	if invalidParams.Len() > 0 {
16392		return invalidParams
16393	}
16394	return nil
16395}
16396
16397// SetRoleName sets the RoleName field's value.
16398func (s *DeleteRoleInput) SetRoleName(v string) *DeleteRoleInput {
16399	s.RoleName = &v
16400	return s
16401}
16402
16403// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteRoleOutput
16404type DeleteRoleOutput struct {
16405	_ struct{} `type:"structure"`
16406}
16407
16408// String returns the string representation
16409func (s DeleteRoleOutput) String() string {
16410	return awsutil.Prettify(s)
16411}
16412
16413// GoString returns the string representation
16414func (s DeleteRoleOutput) GoString() string {
16415	return s.String()
16416}
16417
16418// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteRolePolicyRequest
16419type DeleteRolePolicyInput struct {
16420	_ struct{} `type:"structure"`
16421
16422	// The name of the inline policy to delete from the specified IAM role.
16423	//
16424	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
16425	// a string of characters consisting of upper and lowercase alphanumeric characters
16426	// with no spaces. You can also include any of the following characters: =,.@-+
16427	//
16428	// PolicyName is a required field
16429	PolicyName *string `min:"1" type:"string" required:"true"`
16430
16431	// The name (friendly name, not ARN) identifying the role that the policy is
16432	// embedded in.
16433	//
16434	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
16435	// a string of characters consisting of upper and lowercase alphanumeric characters
16436	// with no spaces. You can also include any of the following characters: _+=,.@-
16437	//
16438	// RoleName is a required field
16439	RoleName *string `min:"1" type:"string" required:"true"`
16440}
16441
16442// String returns the string representation
16443func (s DeleteRolePolicyInput) String() string {
16444	return awsutil.Prettify(s)
16445}
16446
16447// GoString returns the string representation
16448func (s DeleteRolePolicyInput) GoString() string {
16449	return s.String()
16450}
16451
16452// Validate inspects the fields of the type to determine if they are valid.
16453func (s *DeleteRolePolicyInput) Validate() error {
16454	invalidParams := request.ErrInvalidParams{Context: "DeleteRolePolicyInput"}
16455	if s.PolicyName == nil {
16456		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
16457	}
16458	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
16459		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
16460	}
16461	if s.RoleName == nil {
16462		invalidParams.Add(request.NewErrParamRequired("RoleName"))
16463	}
16464	if s.RoleName != nil && len(*s.RoleName) < 1 {
16465		invalidParams.Add(request.NewErrParamMinLen("RoleName", 1))
16466	}
16467
16468	if invalidParams.Len() > 0 {
16469		return invalidParams
16470	}
16471	return nil
16472}
16473
16474// SetPolicyName sets the PolicyName field's value.
16475func (s *DeleteRolePolicyInput) SetPolicyName(v string) *DeleteRolePolicyInput {
16476	s.PolicyName = &v
16477	return s
16478}
16479
16480// SetRoleName sets the RoleName field's value.
16481func (s *DeleteRolePolicyInput) SetRoleName(v string) *DeleteRolePolicyInput {
16482	s.RoleName = &v
16483	return s
16484}
16485
16486// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteRolePolicyOutput
16487type DeleteRolePolicyOutput struct {
16488	_ struct{} `type:"structure"`
16489}
16490
16491// String returns the string representation
16492func (s DeleteRolePolicyOutput) String() string {
16493	return awsutil.Prettify(s)
16494}
16495
16496// GoString returns the string representation
16497func (s DeleteRolePolicyOutput) GoString() string {
16498	return s.String()
16499}
16500
16501// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteSAMLProviderRequest
16502type DeleteSAMLProviderInput struct {
16503	_ struct{} `type:"structure"`
16504
16505	// The Amazon Resource Name (ARN) of the SAML provider to delete.
16506	//
16507	// SAMLProviderArn is a required field
16508	SAMLProviderArn *string `min:"20" type:"string" required:"true"`
16509}
16510
16511// String returns the string representation
16512func (s DeleteSAMLProviderInput) String() string {
16513	return awsutil.Prettify(s)
16514}
16515
16516// GoString returns the string representation
16517func (s DeleteSAMLProviderInput) GoString() string {
16518	return s.String()
16519}
16520
16521// Validate inspects the fields of the type to determine if they are valid.
16522func (s *DeleteSAMLProviderInput) Validate() error {
16523	invalidParams := request.ErrInvalidParams{Context: "DeleteSAMLProviderInput"}
16524	if s.SAMLProviderArn == nil {
16525		invalidParams.Add(request.NewErrParamRequired("SAMLProviderArn"))
16526	}
16527	if s.SAMLProviderArn != nil && len(*s.SAMLProviderArn) < 20 {
16528		invalidParams.Add(request.NewErrParamMinLen("SAMLProviderArn", 20))
16529	}
16530
16531	if invalidParams.Len() > 0 {
16532		return invalidParams
16533	}
16534	return nil
16535}
16536
16537// SetSAMLProviderArn sets the SAMLProviderArn field's value.
16538func (s *DeleteSAMLProviderInput) SetSAMLProviderArn(v string) *DeleteSAMLProviderInput {
16539	s.SAMLProviderArn = &v
16540	return s
16541}
16542
16543// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteSAMLProviderOutput
16544type DeleteSAMLProviderOutput struct {
16545	_ struct{} `type:"structure"`
16546}
16547
16548// String returns the string representation
16549func (s DeleteSAMLProviderOutput) String() string {
16550	return awsutil.Prettify(s)
16551}
16552
16553// GoString returns the string representation
16554func (s DeleteSAMLProviderOutput) GoString() string {
16555	return s.String()
16556}
16557
16558// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteSSHPublicKeyRequest
16559type DeleteSSHPublicKeyInput struct {
16560	_ struct{} `type:"structure"`
16561
16562	// The unique identifier for the SSH public key.
16563	//
16564	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
16565	// a string of characters that can consist of any upper or lowercased letter
16566	// or digit.
16567	//
16568	// SSHPublicKeyId is a required field
16569	SSHPublicKeyId *string `min:"20" type:"string" required:"true"`
16570
16571	// The name of the IAM user associated with the SSH public key.
16572	//
16573	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
16574	// a string of characters consisting of upper and lowercase alphanumeric characters
16575	// with no spaces. You can also include any of the following characters: =,.@-
16576	//
16577	// UserName is a required field
16578	UserName *string `min:"1" type:"string" required:"true"`
16579}
16580
16581// String returns the string representation
16582func (s DeleteSSHPublicKeyInput) String() string {
16583	return awsutil.Prettify(s)
16584}
16585
16586// GoString returns the string representation
16587func (s DeleteSSHPublicKeyInput) GoString() string {
16588	return s.String()
16589}
16590
16591// Validate inspects the fields of the type to determine if they are valid.
16592func (s *DeleteSSHPublicKeyInput) Validate() error {
16593	invalidParams := request.ErrInvalidParams{Context: "DeleteSSHPublicKeyInput"}
16594	if s.SSHPublicKeyId == nil {
16595		invalidParams.Add(request.NewErrParamRequired("SSHPublicKeyId"))
16596	}
16597	if s.SSHPublicKeyId != nil && len(*s.SSHPublicKeyId) < 20 {
16598		invalidParams.Add(request.NewErrParamMinLen("SSHPublicKeyId", 20))
16599	}
16600	if s.UserName == nil {
16601		invalidParams.Add(request.NewErrParamRequired("UserName"))
16602	}
16603	if s.UserName != nil && len(*s.UserName) < 1 {
16604		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
16605	}
16606
16607	if invalidParams.Len() > 0 {
16608		return invalidParams
16609	}
16610	return nil
16611}
16612
16613// SetSSHPublicKeyId sets the SSHPublicKeyId field's value.
16614func (s *DeleteSSHPublicKeyInput) SetSSHPublicKeyId(v string) *DeleteSSHPublicKeyInput {
16615	s.SSHPublicKeyId = &v
16616	return s
16617}
16618
16619// SetUserName sets the UserName field's value.
16620func (s *DeleteSSHPublicKeyInput) SetUserName(v string) *DeleteSSHPublicKeyInput {
16621	s.UserName = &v
16622	return s
16623}
16624
16625// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteSSHPublicKeyOutput
16626type DeleteSSHPublicKeyOutput struct {
16627	_ struct{} `type:"structure"`
16628}
16629
16630// String returns the string representation
16631func (s DeleteSSHPublicKeyOutput) String() string {
16632	return awsutil.Prettify(s)
16633}
16634
16635// GoString returns the string representation
16636func (s DeleteSSHPublicKeyOutput) GoString() string {
16637	return s.String()
16638}
16639
16640// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteServerCertificateRequest
16641type DeleteServerCertificateInput struct {
16642	_ struct{} `type:"structure"`
16643
16644	// The name of the server certificate you want to delete.
16645	//
16646	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
16647	// a string of characters consisting of upper and lowercase alphanumeric characters
16648	// with no spaces. You can also include any of the following characters: =,.@-
16649	//
16650	// ServerCertificateName is a required field
16651	ServerCertificateName *string `min:"1" type:"string" required:"true"`
16652}
16653
16654// String returns the string representation
16655func (s DeleteServerCertificateInput) String() string {
16656	return awsutil.Prettify(s)
16657}
16658
16659// GoString returns the string representation
16660func (s DeleteServerCertificateInput) GoString() string {
16661	return s.String()
16662}
16663
16664// Validate inspects the fields of the type to determine if they are valid.
16665func (s *DeleteServerCertificateInput) Validate() error {
16666	invalidParams := request.ErrInvalidParams{Context: "DeleteServerCertificateInput"}
16667	if s.ServerCertificateName == nil {
16668		invalidParams.Add(request.NewErrParamRequired("ServerCertificateName"))
16669	}
16670	if s.ServerCertificateName != nil && len(*s.ServerCertificateName) < 1 {
16671		invalidParams.Add(request.NewErrParamMinLen("ServerCertificateName", 1))
16672	}
16673
16674	if invalidParams.Len() > 0 {
16675		return invalidParams
16676	}
16677	return nil
16678}
16679
16680// SetServerCertificateName sets the ServerCertificateName field's value.
16681func (s *DeleteServerCertificateInput) SetServerCertificateName(v string) *DeleteServerCertificateInput {
16682	s.ServerCertificateName = &v
16683	return s
16684}
16685
16686// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteServerCertificateOutput
16687type DeleteServerCertificateOutput struct {
16688	_ struct{} `type:"structure"`
16689}
16690
16691// String returns the string representation
16692func (s DeleteServerCertificateOutput) String() string {
16693	return awsutil.Prettify(s)
16694}
16695
16696// GoString returns the string representation
16697func (s DeleteServerCertificateOutput) GoString() string {
16698	return s.String()
16699}
16700
16701// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteServiceLinkedRoleRequest
16702type DeleteServiceLinkedRoleInput struct {
16703	_ struct{} `type:"structure"`
16704
16705	// The name of the service-linked role to be deleted.
16706	//
16707	// RoleName is a required field
16708	RoleName *string `min:"1" type:"string" required:"true"`
16709}
16710
16711// String returns the string representation
16712func (s DeleteServiceLinkedRoleInput) String() string {
16713	return awsutil.Prettify(s)
16714}
16715
16716// GoString returns the string representation
16717func (s DeleteServiceLinkedRoleInput) GoString() string {
16718	return s.String()
16719}
16720
16721// Validate inspects the fields of the type to determine if they are valid.
16722func (s *DeleteServiceLinkedRoleInput) Validate() error {
16723	invalidParams := request.ErrInvalidParams{Context: "DeleteServiceLinkedRoleInput"}
16724	if s.RoleName == nil {
16725		invalidParams.Add(request.NewErrParamRequired("RoleName"))
16726	}
16727	if s.RoleName != nil && len(*s.RoleName) < 1 {
16728		invalidParams.Add(request.NewErrParamMinLen("RoleName", 1))
16729	}
16730
16731	if invalidParams.Len() > 0 {
16732		return invalidParams
16733	}
16734	return nil
16735}
16736
16737// SetRoleName sets the RoleName field's value.
16738func (s *DeleteServiceLinkedRoleInput) SetRoleName(v string) *DeleteServiceLinkedRoleInput {
16739	s.RoleName = &v
16740	return s
16741}
16742
16743// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteServiceLinkedRoleResponse
16744type DeleteServiceLinkedRoleOutput struct {
16745	_ struct{} `type:"structure"`
16746
16747	// The deletion task identifier that you can use to check the status of the
16748	// deletion. This identifier is returned in the format task/aws-service-role/<service-principal-name>/<role-name>/<task-uuid>.
16749	//
16750	// DeletionTaskId is a required field
16751	DeletionTaskId *string `min:"1" type:"string" required:"true"`
16752}
16753
16754// String returns the string representation
16755func (s DeleteServiceLinkedRoleOutput) String() string {
16756	return awsutil.Prettify(s)
16757}
16758
16759// GoString returns the string representation
16760func (s DeleteServiceLinkedRoleOutput) GoString() string {
16761	return s.String()
16762}
16763
16764// SetDeletionTaskId sets the DeletionTaskId field's value.
16765func (s *DeleteServiceLinkedRoleOutput) SetDeletionTaskId(v string) *DeleteServiceLinkedRoleOutput {
16766	s.DeletionTaskId = &v
16767	return s
16768}
16769
16770// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteServiceSpecificCredentialRequest
16771type DeleteServiceSpecificCredentialInput struct {
16772	_ struct{} `type:"structure"`
16773
16774	// The unique identifier of the service-specific credential. You can get this
16775	// value by calling ListServiceSpecificCredentials.
16776	//
16777	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
16778	// a string of characters that can consist of any upper or lowercased letter
16779	// or digit.
16780	//
16781	// ServiceSpecificCredentialId is a required field
16782	ServiceSpecificCredentialId *string `min:"20" type:"string" required:"true"`
16783
16784	// The name of the IAM user associated with the service-specific credential.
16785	// If this value is not specified, then the operation assumes the user whose
16786	// credentials are used to call the operation.
16787	//
16788	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
16789	// a string of characters consisting of upper and lowercase alphanumeric characters
16790	// with no spaces. You can also include any of the following characters: =,.@-
16791	UserName *string `min:"1" type:"string"`
16792}
16793
16794// String returns the string representation
16795func (s DeleteServiceSpecificCredentialInput) String() string {
16796	return awsutil.Prettify(s)
16797}
16798
16799// GoString returns the string representation
16800func (s DeleteServiceSpecificCredentialInput) GoString() string {
16801	return s.String()
16802}
16803
16804// Validate inspects the fields of the type to determine if they are valid.
16805func (s *DeleteServiceSpecificCredentialInput) Validate() error {
16806	invalidParams := request.ErrInvalidParams{Context: "DeleteServiceSpecificCredentialInput"}
16807	if s.ServiceSpecificCredentialId == nil {
16808		invalidParams.Add(request.NewErrParamRequired("ServiceSpecificCredentialId"))
16809	}
16810	if s.ServiceSpecificCredentialId != nil && len(*s.ServiceSpecificCredentialId) < 20 {
16811		invalidParams.Add(request.NewErrParamMinLen("ServiceSpecificCredentialId", 20))
16812	}
16813	if s.UserName != nil && len(*s.UserName) < 1 {
16814		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
16815	}
16816
16817	if invalidParams.Len() > 0 {
16818		return invalidParams
16819	}
16820	return nil
16821}
16822
16823// SetServiceSpecificCredentialId sets the ServiceSpecificCredentialId field's value.
16824func (s *DeleteServiceSpecificCredentialInput) SetServiceSpecificCredentialId(v string) *DeleteServiceSpecificCredentialInput {
16825	s.ServiceSpecificCredentialId = &v
16826	return s
16827}
16828
16829// SetUserName sets the UserName field's value.
16830func (s *DeleteServiceSpecificCredentialInput) SetUserName(v string) *DeleteServiceSpecificCredentialInput {
16831	s.UserName = &v
16832	return s
16833}
16834
16835// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteServiceSpecificCredentialOutput
16836type DeleteServiceSpecificCredentialOutput struct {
16837	_ struct{} `type:"structure"`
16838}
16839
16840// String returns the string representation
16841func (s DeleteServiceSpecificCredentialOutput) String() string {
16842	return awsutil.Prettify(s)
16843}
16844
16845// GoString returns the string representation
16846func (s DeleteServiceSpecificCredentialOutput) GoString() string {
16847	return s.String()
16848}
16849
16850// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteSigningCertificateRequest
16851type DeleteSigningCertificateInput struct {
16852	_ struct{} `type:"structure"`
16853
16854	// The ID of the signing certificate to delete.
16855	//
16856	// The format of this parameter, as described by its regex (http://wikipedia.org/wiki/regex)
16857	// pattern, is a string of characters that can be upper- or lower-cased letters
16858	// or digits.
16859	//
16860	// CertificateId is a required field
16861	CertificateId *string `min:"24" type:"string" required:"true"`
16862
16863	// The name of the user the signing certificate belongs to.
16864	//
16865	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
16866	// a string of characters consisting of upper and lowercase alphanumeric characters
16867	// with no spaces. You can also include any of the following characters: =,.@-
16868	UserName *string `min:"1" type:"string"`
16869}
16870
16871// String returns the string representation
16872func (s DeleteSigningCertificateInput) String() string {
16873	return awsutil.Prettify(s)
16874}
16875
16876// GoString returns the string representation
16877func (s DeleteSigningCertificateInput) GoString() string {
16878	return s.String()
16879}
16880
16881// Validate inspects the fields of the type to determine if they are valid.
16882func (s *DeleteSigningCertificateInput) Validate() error {
16883	invalidParams := request.ErrInvalidParams{Context: "DeleteSigningCertificateInput"}
16884	if s.CertificateId == nil {
16885		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
16886	}
16887	if s.CertificateId != nil && len(*s.CertificateId) < 24 {
16888		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 24))
16889	}
16890	if s.UserName != nil && len(*s.UserName) < 1 {
16891		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
16892	}
16893
16894	if invalidParams.Len() > 0 {
16895		return invalidParams
16896	}
16897	return nil
16898}
16899
16900// SetCertificateId sets the CertificateId field's value.
16901func (s *DeleteSigningCertificateInput) SetCertificateId(v string) *DeleteSigningCertificateInput {
16902	s.CertificateId = &v
16903	return s
16904}
16905
16906// SetUserName sets the UserName field's value.
16907func (s *DeleteSigningCertificateInput) SetUserName(v string) *DeleteSigningCertificateInput {
16908	s.UserName = &v
16909	return s
16910}
16911
16912// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteSigningCertificateOutput
16913type DeleteSigningCertificateOutput struct {
16914	_ struct{} `type:"structure"`
16915}
16916
16917// String returns the string representation
16918func (s DeleteSigningCertificateOutput) String() string {
16919	return awsutil.Prettify(s)
16920}
16921
16922// GoString returns the string representation
16923func (s DeleteSigningCertificateOutput) GoString() string {
16924	return s.String()
16925}
16926
16927// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteUserRequest
16928type DeleteUserInput struct {
16929	_ struct{} `type:"structure"`
16930
16931	// The name of the user to delete.
16932	//
16933	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
16934	// a string of characters consisting of upper and lowercase alphanumeric characters
16935	// with no spaces. You can also include any of the following characters: =,.@-
16936	//
16937	// UserName is a required field
16938	UserName *string `min:"1" type:"string" required:"true"`
16939}
16940
16941// String returns the string representation
16942func (s DeleteUserInput) String() string {
16943	return awsutil.Prettify(s)
16944}
16945
16946// GoString returns the string representation
16947func (s DeleteUserInput) GoString() string {
16948	return s.String()
16949}
16950
16951// Validate inspects the fields of the type to determine if they are valid.
16952func (s *DeleteUserInput) Validate() error {
16953	invalidParams := request.ErrInvalidParams{Context: "DeleteUserInput"}
16954	if s.UserName == nil {
16955		invalidParams.Add(request.NewErrParamRequired("UserName"))
16956	}
16957	if s.UserName != nil && len(*s.UserName) < 1 {
16958		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
16959	}
16960
16961	if invalidParams.Len() > 0 {
16962		return invalidParams
16963	}
16964	return nil
16965}
16966
16967// SetUserName sets the UserName field's value.
16968func (s *DeleteUserInput) SetUserName(v string) *DeleteUserInput {
16969	s.UserName = &v
16970	return s
16971}
16972
16973// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteUserOutput
16974type DeleteUserOutput struct {
16975	_ struct{} `type:"structure"`
16976}
16977
16978// String returns the string representation
16979func (s DeleteUserOutput) String() string {
16980	return awsutil.Prettify(s)
16981}
16982
16983// GoString returns the string representation
16984func (s DeleteUserOutput) GoString() string {
16985	return s.String()
16986}
16987
16988// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteUserPolicyRequest
16989type DeleteUserPolicyInput struct {
16990	_ struct{} `type:"structure"`
16991
16992	// The name identifying the policy document to delete.
16993	//
16994	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
16995	// a string of characters consisting of upper and lowercase alphanumeric characters
16996	// with no spaces. You can also include any of the following characters: =,.@-+
16997	//
16998	// PolicyName is a required field
16999	PolicyName *string `min:"1" type:"string" required:"true"`
17000
17001	// The name (friendly name, not ARN) identifying the user that the policy is
17002	// embedded in.
17003	//
17004	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
17005	// a string of characters consisting of upper and lowercase alphanumeric characters
17006	// with no spaces. You can also include any of the following characters: =,.@-
17007	//
17008	// UserName is a required field
17009	UserName *string `min:"1" type:"string" required:"true"`
17010}
17011
17012// String returns the string representation
17013func (s DeleteUserPolicyInput) String() string {
17014	return awsutil.Prettify(s)
17015}
17016
17017// GoString returns the string representation
17018func (s DeleteUserPolicyInput) GoString() string {
17019	return s.String()
17020}
17021
17022// Validate inspects the fields of the type to determine if they are valid.
17023func (s *DeleteUserPolicyInput) Validate() error {
17024	invalidParams := request.ErrInvalidParams{Context: "DeleteUserPolicyInput"}
17025	if s.PolicyName == nil {
17026		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
17027	}
17028	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
17029		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
17030	}
17031	if s.UserName == nil {
17032		invalidParams.Add(request.NewErrParamRequired("UserName"))
17033	}
17034	if s.UserName != nil && len(*s.UserName) < 1 {
17035		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
17036	}
17037
17038	if invalidParams.Len() > 0 {
17039		return invalidParams
17040	}
17041	return nil
17042}
17043
17044// SetPolicyName sets the PolicyName field's value.
17045func (s *DeleteUserPolicyInput) SetPolicyName(v string) *DeleteUserPolicyInput {
17046	s.PolicyName = &v
17047	return s
17048}
17049
17050// SetUserName sets the UserName field's value.
17051func (s *DeleteUserPolicyInput) SetUserName(v string) *DeleteUserPolicyInput {
17052	s.UserName = &v
17053	return s
17054}
17055
17056// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteUserPolicyOutput
17057type DeleteUserPolicyOutput struct {
17058	_ struct{} `type:"structure"`
17059}
17060
17061// String returns the string representation
17062func (s DeleteUserPolicyOutput) String() string {
17063	return awsutil.Prettify(s)
17064}
17065
17066// GoString returns the string representation
17067func (s DeleteUserPolicyOutput) GoString() string {
17068	return s.String()
17069}
17070
17071// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteVirtualMFADeviceRequest
17072type DeleteVirtualMFADeviceInput struct {
17073	_ struct{} `type:"structure"`
17074
17075	// The serial number that uniquely identifies the MFA device. For virtual MFA
17076	// devices, the serial number is the same as the ARN.
17077	//
17078	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
17079	// a string of characters consisting of upper and lowercase alphanumeric characters
17080	// with no spaces. You can also include any of the following characters: =,.@:/-
17081	//
17082	// SerialNumber is a required field
17083	SerialNumber *string `min:"9" type:"string" required:"true"`
17084}
17085
17086// String returns the string representation
17087func (s DeleteVirtualMFADeviceInput) String() string {
17088	return awsutil.Prettify(s)
17089}
17090
17091// GoString returns the string representation
17092func (s DeleteVirtualMFADeviceInput) GoString() string {
17093	return s.String()
17094}
17095
17096// Validate inspects the fields of the type to determine if they are valid.
17097func (s *DeleteVirtualMFADeviceInput) Validate() error {
17098	invalidParams := request.ErrInvalidParams{Context: "DeleteVirtualMFADeviceInput"}
17099	if s.SerialNumber == nil {
17100		invalidParams.Add(request.NewErrParamRequired("SerialNumber"))
17101	}
17102	if s.SerialNumber != nil && len(*s.SerialNumber) < 9 {
17103		invalidParams.Add(request.NewErrParamMinLen("SerialNumber", 9))
17104	}
17105
17106	if invalidParams.Len() > 0 {
17107		return invalidParams
17108	}
17109	return nil
17110}
17111
17112// SetSerialNumber sets the SerialNumber field's value.
17113func (s *DeleteVirtualMFADeviceInput) SetSerialNumber(v string) *DeleteVirtualMFADeviceInput {
17114	s.SerialNumber = &v
17115	return s
17116}
17117
17118// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteVirtualMFADeviceOutput
17119type DeleteVirtualMFADeviceOutput struct {
17120	_ struct{} `type:"structure"`
17121}
17122
17123// String returns the string representation
17124func (s DeleteVirtualMFADeviceOutput) String() string {
17125	return awsutil.Prettify(s)
17126}
17127
17128// GoString returns the string representation
17129func (s DeleteVirtualMFADeviceOutput) GoString() string {
17130	return s.String()
17131}
17132
17133// The reason that the service-linked role deletion failed.
17134//
17135// This data type is used as a response element in the GetServiceLinkedRoleDeletionStatus
17136// operation.
17137// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeletionTaskFailureReasonType
17138type DeletionTaskFailureReasonType struct {
17139	_ struct{} `type:"structure"`
17140
17141	// A short description of the reason that the service-linked role deletion failed.
17142	Reason *string `type:"string"`
17143
17144	// A list of objects that contains details about the service-linked role deletion
17145	// failure. If the service-linked role has active sessions or if any resources
17146	// that were used by the role have not been deleted from the linked service,
17147	// the role can't be deleted. This parameter includes a list of the resources
17148	// that are associated with the role and the region in which the resources are
17149	// being used.
17150	RoleUsageList []*RoleUsageType `type:"list"`
17151}
17152
17153// String returns the string representation
17154func (s DeletionTaskFailureReasonType) String() string {
17155	return awsutil.Prettify(s)
17156}
17157
17158// GoString returns the string representation
17159func (s DeletionTaskFailureReasonType) GoString() string {
17160	return s.String()
17161}
17162
17163// SetReason sets the Reason field's value.
17164func (s *DeletionTaskFailureReasonType) SetReason(v string) *DeletionTaskFailureReasonType {
17165	s.Reason = &v
17166	return s
17167}
17168
17169// SetRoleUsageList sets the RoleUsageList field's value.
17170func (s *DeletionTaskFailureReasonType) SetRoleUsageList(v []*RoleUsageType) *DeletionTaskFailureReasonType {
17171	s.RoleUsageList = v
17172	return s
17173}
17174
17175// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DetachGroupPolicyRequest
17176type DetachGroupPolicyInput struct {
17177	_ struct{} `type:"structure"`
17178
17179	// The name (friendly name, not ARN) of the IAM group to detach the policy from.
17180	//
17181	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
17182	// a string of characters consisting of upper and lowercase alphanumeric characters
17183	// with no spaces. You can also include any of the following characters: =,.@-
17184	//
17185	// GroupName is a required field
17186	GroupName *string `min:"1" type:"string" required:"true"`
17187
17188	// The Amazon Resource Name (ARN) of the IAM policy you want to detach.
17189	//
17190	// For more information about ARNs, see Amazon Resource Names (ARNs) and AWS
17191	// Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
17192	// in the AWS General Reference.
17193	//
17194	// PolicyArn is a required field
17195	PolicyArn *string `min:"20" type:"string" required:"true"`
17196}
17197
17198// String returns the string representation
17199func (s DetachGroupPolicyInput) String() string {
17200	return awsutil.Prettify(s)
17201}
17202
17203// GoString returns the string representation
17204func (s DetachGroupPolicyInput) GoString() string {
17205	return s.String()
17206}
17207
17208// Validate inspects the fields of the type to determine if they are valid.
17209func (s *DetachGroupPolicyInput) Validate() error {
17210	invalidParams := request.ErrInvalidParams{Context: "DetachGroupPolicyInput"}
17211	if s.GroupName == nil {
17212		invalidParams.Add(request.NewErrParamRequired("GroupName"))
17213	}
17214	if s.GroupName != nil && len(*s.GroupName) < 1 {
17215		invalidParams.Add(request.NewErrParamMinLen("GroupName", 1))
17216	}
17217	if s.PolicyArn == nil {
17218		invalidParams.Add(request.NewErrParamRequired("PolicyArn"))
17219	}
17220	if s.PolicyArn != nil && len(*s.PolicyArn) < 20 {
17221		invalidParams.Add(request.NewErrParamMinLen("PolicyArn", 20))
17222	}
17223
17224	if invalidParams.Len() > 0 {
17225		return invalidParams
17226	}
17227	return nil
17228}
17229
17230// SetGroupName sets the GroupName field's value.
17231func (s *DetachGroupPolicyInput) SetGroupName(v string) *DetachGroupPolicyInput {
17232	s.GroupName = &v
17233	return s
17234}
17235
17236// SetPolicyArn sets the PolicyArn field's value.
17237func (s *DetachGroupPolicyInput) SetPolicyArn(v string) *DetachGroupPolicyInput {
17238	s.PolicyArn = &v
17239	return s
17240}
17241
17242// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DetachGroupPolicyOutput
17243type DetachGroupPolicyOutput struct {
17244	_ struct{} `type:"structure"`
17245}
17246
17247// String returns the string representation
17248func (s DetachGroupPolicyOutput) String() string {
17249	return awsutil.Prettify(s)
17250}
17251
17252// GoString returns the string representation
17253func (s DetachGroupPolicyOutput) GoString() string {
17254	return s.String()
17255}
17256
17257// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DetachRolePolicyRequest
17258type DetachRolePolicyInput struct {
17259	_ struct{} `type:"structure"`
17260
17261	// The Amazon Resource Name (ARN) of the IAM policy you want to detach.
17262	//
17263	// For more information about ARNs, see Amazon Resource Names (ARNs) and AWS
17264	// Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
17265	// in the AWS General Reference.
17266	//
17267	// PolicyArn is a required field
17268	PolicyArn *string `min:"20" type:"string" required:"true"`
17269
17270	// The name (friendly name, not ARN) of the IAM role to detach the policy from.
17271	//
17272	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
17273	// a string of characters consisting of upper and lowercase alphanumeric characters
17274	// with no spaces. You can also include any of the following characters: _+=,.@-
17275	//
17276	// RoleName is a required field
17277	RoleName *string `min:"1" type:"string" required:"true"`
17278}
17279
17280// String returns the string representation
17281func (s DetachRolePolicyInput) String() string {
17282	return awsutil.Prettify(s)
17283}
17284
17285// GoString returns the string representation
17286func (s DetachRolePolicyInput) GoString() string {
17287	return s.String()
17288}
17289
17290// Validate inspects the fields of the type to determine if they are valid.
17291func (s *DetachRolePolicyInput) Validate() error {
17292	invalidParams := request.ErrInvalidParams{Context: "DetachRolePolicyInput"}
17293	if s.PolicyArn == nil {
17294		invalidParams.Add(request.NewErrParamRequired("PolicyArn"))
17295	}
17296	if s.PolicyArn != nil && len(*s.PolicyArn) < 20 {
17297		invalidParams.Add(request.NewErrParamMinLen("PolicyArn", 20))
17298	}
17299	if s.RoleName == nil {
17300		invalidParams.Add(request.NewErrParamRequired("RoleName"))
17301	}
17302	if s.RoleName != nil && len(*s.RoleName) < 1 {
17303		invalidParams.Add(request.NewErrParamMinLen("RoleName", 1))
17304	}
17305
17306	if invalidParams.Len() > 0 {
17307		return invalidParams
17308	}
17309	return nil
17310}
17311
17312// SetPolicyArn sets the PolicyArn field's value.
17313func (s *DetachRolePolicyInput) SetPolicyArn(v string) *DetachRolePolicyInput {
17314	s.PolicyArn = &v
17315	return s
17316}
17317
17318// SetRoleName sets the RoleName field's value.
17319func (s *DetachRolePolicyInput) SetRoleName(v string) *DetachRolePolicyInput {
17320	s.RoleName = &v
17321	return s
17322}
17323
17324// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DetachRolePolicyOutput
17325type DetachRolePolicyOutput struct {
17326	_ struct{} `type:"structure"`
17327}
17328
17329// String returns the string representation
17330func (s DetachRolePolicyOutput) String() string {
17331	return awsutil.Prettify(s)
17332}
17333
17334// GoString returns the string representation
17335func (s DetachRolePolicyOutput) GoString() string {
17336	return s.String()
17337}
17338
17339// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DetachUserPolicyRequest
17340type DetachUserPolicyInput struct {
17341	_ struct{} `type:"structure"`
17342
17343	// The Amazon Resource Name (ARN) of the IAM policy you want to detach.
17344	//
17345	// For more information about ARNs, see Amazon Resource Names (ARNs) and AWS
17346	// Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
17347	// in the AWS General Reference.
17348	//
17349	// PolicyArn is a required field
17350	PolicyArn *string `min:"20" type:"string" required:"true"`
17351
17352	// The name (friendly name, not ARN) of the IAM user to detach the policy from.
17353	//
17354	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
17355	// a string of characters consisting of upper and lowercase alphanumeric characters
17356	// with no spaces. You can also include any of the following characters: =,.@-
17357	//
17358	// UserName is a required field
17359	UserName *string `min:"1" type:"string" required:"true"`
17360}
17361
17362// String returns the string representation
17363func (s DetachUserPolicyInput) String() string {
17364	return awsutil.Prettify(s)
17365}
17366
17367// GoString returns the string representation
17368func (s DetachUserPolicyInput) GoString() string {
17369	return s.String()
17370}
17371
17372// Validate inspects the fields of the type to determine if they are valid.
17373func (s *DetachUserPolicyInput) Validate() error {
17374	invalidParams := request.ErrInvalidParams{Context: "DetachUserPolicyInput"}
17375	if s.PolicyArn == nil {
17376		invalidParams.Add(request.NewErrParamRequired("PolicyArn"))
17377	}
17378	if s.PolicyArn != nil && len(*s.PolicyArn) < 20 {
17379		invalidParams.Add(request.NewErrParamMinLen("PolicyArn", 20))
17380	}
17381	if s.UserName == nil {
17382		invalidParams.Add(request.NewErrParamRequired("UserName"))
17383	}
17384	if s.UserName != nil && len(*s.UserName) < 1 {
17385		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
17386	}
17387
17388	if invalidParams.Len() > 0 {
17389		return invalidParams
17390	}
17391	return nil
17392}
17393
17394// SetPolicyArn sets the PolicyArn field's value.
17395func (s *DetachUserPolicyInput) SetPolicyArn(v string) *DetachUserPolicyInput {
17396	s.PolicyArn = &v
17397	return s
17398}
17399
17400// SetUserName sets the UserName field's value.
17401func (s *DetachUserPolicyInput) SetUserName(v string) *DetachUserPolicyInput {
17402	s.UserName = &v
17403	return s
17404}
17405
17406// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DetachUserPolicyOutput
17407type DetachUserPolicyOutput struct {
17408	_ struct{} `type:"structure"`
17409}
17410
17411// String returns the string representation
17412func (s DetachUserPolicyOutput) String() string {
17413	return awsutil.Prettify(s)
17414}
17415
17416// GoString returns the string representation
17417func (s DetachUserPolicyOutput) GoString() string {
17418	return s.String()
17419}
17420
17421// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/EnableMFADeviceRequest
17422type EnableMFADeviceInput struct {
17423	_ struct{} `type:"structure"`
17424
17425	// An authentication code emitted by the device.
17426	//
17427	// The format for this parameter is a string of 6 digits.
17428	//
17429	// Submit your request immediately after generating the authentication codes.
17430	// If you generate the codes and then wait too long to submit the request, the
17431	// MFA device successfully associates with the user but the MFA device becomes
17432	// out of sync. This happens because time-based one-time passwords (TOTP) expire
17433	// after a short period of time. If this happens, you can resync the device
17434	// (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_sync.html).
17435	//
17436	// AuthenticationCode1 is a required field
17437	AuthenticationCode1 *string `min:"6" type:"string" required:"true"`
17438
17439	// A subsequent authentication code emitted by the device.
17440	//
17441	// The format for this parameter is a string of 6 digits.
17442	//
17443	// Submit your request immediately after generating the authentication codes.
17444	// If you generate the codes and then wait too long to submit the request, the
17445	// MFA device successfully associates with the user but the MFA device becomes
17446	// out of sync. This happens because time-based one-time passwords (TOTP) expire
17447	// after a short period of time. If this happens, you can resync the device
17448	// (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_sync.html).
17449	//
17450	// AuthenticationCode2 is a required field
17451	AuthenticationCode2 *string `min:"6" type:"string" required:"true"`
17452
17453	// The serial number that uniquely identifies the MFA device. For virtual MFA
17454	// devices, the serial number is the device ARN.
17455	//
17456	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
17457	// a string of characters consisting of upper and lowercase alphanumeric characters
17458	// with no spaces. You can also include any of the following characters: =,.@:/-
17459	//
17460	// SerialNumber is a required field
17461	SerialNumber *string `min:"9" type:"string" required:"true"`
17462
17463	// The name of the IAM user for whom you want to enable the MFA device.
17464	//
17465	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
17466	// a string of characters consisting of upper and lowercase alphanumeric characters
17467	// with no spaces. You can also include any of the following characters: =,.@-
17468	//
17469	// UserName is a required field
17470	UserName *string `min:"1" type:"string" required:"true"`
17471}
17472
17473// String returns the string representation
17474func (s EnableMFADeviceInput) String() string {
17475	return awsutil.Prettify(s)
17476}
17477
17478// GoString returns the string representation
17479func (s EnableMFADeviceInput) GoString() string {
17480	return s.String()
17481}
17482
17483// Validate inspects the fields of the type to determine if they are valid.
17484func (s *EnableMFADeviceInput) Validate() error {
17485	invalidParams := request.ErrInvalidParams{Context: "EnableMFADeviceInput"}
17486	if s.AuthenticationCode1 == nil {
17487		invalidParams.Add(request.NewErrParamRequired("AuthenticationCode1"))
17488	}
17489	if s.AuthenticationCode1 != nil && len(*s.AuthenticationCode1) < 6 {
17490		invalidParams.Add(request.NewErrParamMinLen("AuthenticationCode1", 6))
17491	}
17492	if s.AuthenticationCode2 == nil {
17493		invalidParams.Add(request.NewErrParamRequired("AuthenticationCode2"))
17494	}
17495	if s.AuthenticationCode2 != nil && len(*s.AuthenticationCode2) < 6 {
17496		invalidParams.Add(request.NewErrParamMinLen("AuthenticationCode2", 6))
17497	}
17498	if s.SerialNumber == nil {
17499		invalidParams.Add(request.NewErrParamRequired("SerialNumber"))
17500	}
17501	if s.SerialNumber != nil && len(*s.SerialNumber) < 9 {
17502		invalidParams.Add(request.NewErrParamMinLen("SerialNumber", 9))
17503	}
17504	if s.UserName == nil {
17505		invalidParams.Add(request.NewErrParamRequired("UserName"))
17506	}
17507	if s.UserName != nil && len(*s.UserName) < 1 {
17508		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
17509	}
17510
17511	if invalidParams.Len() > 0 {
17512		return invalidParams
17513	}
17514	return nil
17515}
17516
17517// SetAuthenticationCode1 sets the AuthenticationCode1 field's value.
17518func (s *EnableMFADeviceInput) SetAuthenticationCode1(v string) *EnableMFADeviceInput {
17519	s.AuthenticationCode1 = &v
17520	return s
17521}
17522
17523// SetAuthenticationCode2 sets the AuthenticationCode2 field's value.
17524func (s *EnableMFADeviceInput) SetAuthenticationCode2(v string) *EnableMFADeviceInput {
17525	s.AuthenticationCode2 = &v
17526	return s
17527}
17528
17529// SetSerialNumber sets the SerialNumber field's value.
17530func (s *EnableMFADeviceInput) SetSerialNumber(v string) *EnableMFADeviceInput {
17531	s.SerialNumber = &v
17532	return s
17533}
17534
17535// SetUserName sets the UserName field's value.
17536func (s *EnableMFADeviceInput) SetUserName(v string) *EnableMFADeviceInput {
17537	s.UserName = &v
17538	return s
17539}
17540
17541// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/EnableMFADeviceOutput
17542type EnableMFADeviceOutput struct {
17543	_ struct{} `type:"structure"`
17544}
17545
17546// String returns the string representation
17547func (s EnableMFADeviceOutput) String() string {
17548	return awsutil.Prettify(s)
17549}
17550
17551// GoString returns the string representation
17552func (s EnableMFADeviceOutput) GoString() string {
17553	return s.String()
17554}
17555
17556// Contains the results of a simulation.
17557//
17558// This data type is used by the return parameter of SimulateCustomPolicy and
17559// SimulatePrincipalPolicy.
17560// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/EvaluationResult
17561type EvaluationResult struct {
17562	_ struct{} `type:"structure"`
17563
17564	// The name of the API action tested on the indicated resource.
17565	//
17566	// EvalActionName is a required field
17567	EvalActionName *string `min:"3" type:"string" required:"true"`
17568
17569	// The result of the simulation.
17570	//
17571	// EvalDecision is a required field
17572	EvalDecision *string `type:"string" required:"true" enum:"PolicyEvaluationDecisionType"`
17573
17574	// Additional details about the results of the evaluation decision. When there
17575	// are both IAM policies and resource policies, this parameter explains how
17576	// each set of policies contributes to the final evaluation decision. When simulating
17577	// cross-account access to a resource, both the resource-based policy and the
17578	// caller's IAM policy must grant access. See How IAM Roles Differ from Resource-based
17579	// Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_compare-resource-policies.html)
17580	EvalDecisionDetails map[string]*string `type:"map"`
17581
17582	// The ARN of the resource that the indicated API action was tested on.
17583	EvalResourceName *string `min:"1" type:"string"`
17584
17585	// A list of the statements in the input policies that determine the result
17586	// for this scenario. Remember that even if multiple statements allow the action
17587	// on the resource, if only one statement denies that action, then the explicit
17588	// deny overrides any allow, and the deny statement is the only entry included
17589	// in the result.
17590	MatchedStatements []*Statement `type:"list"`
17591
17592	// A list of context keys that are required by the included input policies but
17593	// that were not provided by one of the input parameters. This list is used
17594	// when the resource in a simulation is "*", either explicitly, or when the
17595	// ResourceArns parameter blank. If you include a list of resources, then any
17596	// missing context values are instead included under the ResourceSpecificResults
17597	// section. To discover the context keys used by a set of policies, you can
17598	// call GetContextKeysForCustomPolicy or GetContextKeysForPrincipalPolicy.
17599	MissingContextValues []*string `type:"list"`
17600
17601	// A structure that details how AWS Organizations and its service control policies
17602	// affect the results of the simulation. Only applies if the simulated user's
17603	// account is part of an organization.
17604	OrganizationsDecisionDetail *OrganizationsDecisionDetail `type:"structure"`
17605
17606	// The individual results of the simulation of the API action specified in EvalActionName
17607	// on each resource.
17608	ResourceSpecificResults []*ResourceSpecificResult `type:"list"`
17609}
17610
17611// String returns the string representation
17612func (s EvaluationResult) String() string {
17613	return awsutil.Prettify(s)
17614}
17615
17616// GoString returns the string representation
17617func (s EvaluationResult) GoString() string {
17618	return s.String()
17619}
17620
17621// SetEvalActionName sets the EvalActionName field's value.
17622func (s *EvaluationResult) SetEvalActionName(v string) *EvaluationResult {
17623	s.EvalActionName = &v
17624	return s
17625}
17626
17627// SetEvalDecision sets the EvalDecision field's value.
17628func (s *EvaluationResult) SetEvalDecision(v string) *EvaluationResult {
17629	s.EvalDecision = &v
17630	return s
17631}
17632
17633// SetEvalDecisionDetails sets the EvalDecisionDetails field's value.
17634func (s *EvaluationResult) SetEvalDecisionDetails(v map[string]*string) *EvaluationResult {
17635	s.EvalDecisionDetails = v
17636	return s
17637}
17638
17639// SetEvalResourceName sets the EvalResourceName field's value.
17640func (s *EvaluationResult) SetEvalResourceName(v string) *EvaluationResult {
17641	s.EvalResourceName = &v
17642	return s
17643}
17644
17645// SetMatchedStatements sets the MatchedStatements field's value.
17646func (s *EvaluationResult) SetMatchedStatements(v []*Statement) *EvaluationResult {
17647	s.MatchedStatements = v
17648	return s
17649}
17650
17651// SetMissingContextValues sets the MissingContextValues field's value.
17652func (s *EvaluationResult) SetMissingContextValues(v []*string) *EvaluationResult {
17653	s.MissingContextValues = v
17654	return s
17655}
17656
17657// SetOrganizationsDecisionDetail sets the OrganizationsDecisionDetail field's value.
17658func (s *EvaluationResult) SetOrganizationsDecisionDetail(v *OrganizationsDecisionDetail) *EvaluationResult {
17659	s.OrganizationsDecisionDetail = v
17660	return s
17661}
17662
17663// SetResourceSpecificResults sets the ResourceSpecificResults field's value.
17664func (s *EvaluationResult) SetResourceSpecificResults(v []*ResourceSpecificResult) *EvaluationResult {
17665	s.ResourceSpecificResults = v
17666	return s
17667}
17668
17669// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GenerateCredentialReportInput
17670type GenerateCredentialReportInput struct {
17671	_ struct{} `type:"structure"`
17672}
17673
17674// String returns the string representation
17675func (s GenerateCredentialReportInput) String() string {
17676	return awsutil.Prettify(s)
17677}
17678
17679// GoString returns the string representation
17680func (s GenerateCredentialReportInput) GoString() string {
17681	return s.String()
17682}
17683
17684// Contains the response to a successful GenerateCredentialReport request.
17685// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GenerateCredentialReportResponse
17686type GenerateCredentialReportOutput struct {
17687	_ struct{} `type:"structure"`
17688
17689	// Information about the credential report.
17690	Description *string `type:"string"`
17691
17692	// Information about the state of the credential report.
17693	State *string `type:"string" enum:"ReportStateType"`
17694}
17695
17696// String returns the string representation
17697func (s GenerateCredentialReportOutput) String() string {
17698	return awsutil.Prettify(s)
17699}
17700
17701// GoString returns the string representation
17702func (s GenerateCredentialReportOutput) GoString() string {
17703	return s.String()
17704}
17705
17706// SetDescription sets the Description field's value.
17707func (s *GenerateCredentialReportOutput) SetDescription(v string) *GenerateCredentialReportOutput {
17708	s.Description = &v
17709	return s
17710}
17711
17712// SetState sets the State field's value.
17713func (s *GenerateCredentialReportOutput) SetState(v string) *GenerateCredentialReportOutput {
17714	s.State = &v
17715	return s
17716}
17717
17718// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetAccessKeyLastUsedRequest
17719type GetAccessKeyLastUsedInput struct {
17720	_ struct{} `type:"structure"`
17721
17722	// The identifier of an access key.
17723	//
17724	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
17725	// a string of characters that can consist of any upper or lowercased letter
17726	// or digit.
17727	//
17728	// AccessKeyId is a required field
17729	AccessKeyId *string `min:"16" type:"string" required:"true"`
17730}
17731
17732// String returns the string representation
17733func (s GetAccessKeyLastUsedInput) String() string {
17734	return awsutil.Prettify(s)
17735}
17736
17737// GoString returns the string representation
17738func (s GetAccessKeyLastUsedInput) GoString() string {
17739	return s.String()
17740}
17741
17742// Validate inspects the fields of the type to determine if they are valid.
17743func (s *GetAccessKeyLastUsedInput) Validate() error {
17744	invalidParams := request.ErrInvalidParams{Context: "GetAccessKeyLastUsedInput"}
17745	if s.AccessKeyId == nil {
17746		invalidParams.Add(request.NewErrParamRequired("AccessKeyId"))
17747	}
17748	if s.AccessKeyId != nil && len(*s.AccessKeyId) < 16 {
17749		invalidParams.Add(request.NewErrParamMinLen("AccessKeyId", 16))
17750	}
17751
17752	if invalidParams.Len() > 0 {
17753		return invalidParams
17754	}
17755	return nil
17756}
17757
17758// SetAccessKeyId sets the AccessKeyId field's value.
17759func (s *GetAccessKeyLastUsedInput) SetAccessKeyId(v string) *GetAccessKeyLastUsedInput {
17760	s.AccessKeyId = &v
17761	return s
17762}
17763
17764// Contains the response to a successful GetAccessKeyLastUsed request. It is
17765// also returned as a member of the AccessKeyMetaData structure returned by
17766// the ListAccessKeys action.
17767// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetAccessKeyLastUsedResponse
17768type GetAccessKeyLastUsedOutput struct {
17769	_ struct{} `type:"structure"`
17770
17771	// Contains information about the last time the access key was used.
17772	AccessKeyLastUsed *AccessKeyLastUsed `type:"structure"`
17773
17774	// The name of the AWS IAM user that owns this access key.
17775	UserName *string `min:"1" type:"string"`
17776}
17777
17778// String returns the string representation
17779func (s GetAccessKeyLastUsedOutput) String() string {
17780	return awsutil.Prettify(s)
17781}
17782
17783// GoString returns the string representation
17784func (s GetAccessKeyLastUsedOutput) GoString() string {
17785	return s.String()
17786}
17787
17788// SetAccessKeyLastUsed sets the AccessKeyLastUsed field's value.
17789func (s *GetAccessKeyLastUsedOutput) SetAccessKeyLastUsed(v *AccessKeyLastUsed) *GetAccessKeyLastUsedOutput {
17790	s.AccessKeyLastUsed = v
17791	return s
17792}
17793
17794// SetUserName sets the UserName field's value.
17795func (s *GetAccessKeyLastUsedOutput) SetUserName(v string) *GetAccessKeyLastUsedOutput {
17796	s.UserName = &v
17797	return s
17798}
17799
17800// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetAccountAuthorizationDetailsRequest
17801type GetAccountAuthorizationDetailsInput struct {
17802	_ struct{} `type:"structure"`
17803
17804	// A list of entity types used to filter the results. Only the entities that
17805	// match the types you specify are included in the output. Use the value LocalManagedPolicy
17806	// to include customer managed policies.
17807	//
17808	// The format for this parameter is a comma-separated (if more than one) list
17809	// of strings. Each string value in the list must be one of the valid values
17810	// listed below.
17811	Filter []*string `type:"list"`
17812
17813	// Use this parameter only when paginating results and only after you receive
17814	// a response indicating that the results are truncated. Set it to the value
17815	// of the Marker element in the response that you received to indicate where
17816	// the next call should start.
17817	Marker *string `min:"1" type:"string"`
17818
17819	// (Optional) Use this only when paginating results to indicate the maximum
17820	// number of items you want in the response. If additional items exist beyond
17821	// the maximum you specify, the IsTruncated response element is true.
17822	//
17823	// If you do not include this parameter, it defaults to 100. Note that IAM might
17824	// return fewer results, even when there are more results available. In that
17825	// case, the IsTruncated response element returns true and Marker contains a
17826	// value to include in the subsequent call that tells the service where to continue
17827	// from.
17828	MaxItems *int64 `min:"1" type:"integer"`
17829}
17830
17831// String returns the string representation
17832func (s GetAccountAuthorizationDetailsInput) String() string {
17833	return awsutil.Prettify(s)
17834}
17835
17836// GoString returns the string representation
17837func (s GetAccountAuthorizationDetailsInput) GoString() string {
17838	return s.String()
17839}
17840
17841// Validate inspects the fields of the type to determine if they are valid.
17842func (s *GetAccountAuthorizationDetailsInput) Validate() error {
17843	invalidParams := request.ErrInvalidParams{Context: "GetAccountAuthorizationDetailsInput"}
17844	if s.Marker != nil && len(*s.Marker) < 1 {
17845		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
17846	}
17847	if s.MaxItems != nil && *s.MaxItems < 1 {
17848		invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
17849	}
17850
17851	if invalidParams.Len() > 0 {
17852		return invalidParams
17853	}
17854	return nil
17855}
17856
17857// SetFilter sets the Filter field's value.
17858func (s *GetAccountAuthorizationDetailsInput) SetFilter(v []*string) *GetAccountAuthorizationDetailsInput {
17859	s.Filter = v
17860	return s
17861}
17862
17863// SetMarker sets the Marker field's value.
17864func (s *GetAccountAuthorizationDetailsInput) SetMarker(v string) *GetAccountAuthorizationDetailsInput {
17865	s.Marker = &v
17866	return s
17867}
17868
17869// SetMaxItems sets the MaxItems field's value.
17870func (s *GetAccountAuthorizationDetailsInput) SetMaxItems(v int64) *GetAccountAuthorizationDetailsInput {
17871	s.MaxItems = &v
17872	return s
17873}
17874
17875// Contains the response to a successful GetAccountAuthorizationDetails request.
17876// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetAccountAuthorizationDetailsResponse
17877type GetAccountAuthorizationDetailsOutput struct {
17878	_ struct{} `type:"structure"`
17879
17880	// A list containing information about IAM groups.
17881	GroupDetailList []*GroupDetail `type:"list"`
17882
17883	// A flag that indicates whether there are more items to return. If your results
17884	// were truncated, you can make a subsequent pagination request using the Marker
17885	// request parameter to retrieve more items. Note that IAM might return fewer
17886	// than the MaxItems number of results even when there are more results available.
17887	// We recommend that you check IsTruncated after every call to ensure that you
17888	// receive all of your results.
17889	IsTruncated *bool `type:"boolean"`
17890
17891	// When IsTruncated is true, this element is present and contains the value
17892	// to use for the Marker parameter in a subsequent pagination request.
17893	Marker *string `min:"1" type:"string"`
17894
17895	// A list containing information about managed policies.
17896	Policies []*ManagedPolicyDetail `type:"list"`
17897
17898	// A list containing information about IAM roles.
17899	RoleDetailList []*RoleDetail `type:"list"`
17900
17901	// A list containing information about IAM users.
17902	UserDetailList []*UserDetail `type:"list"`
17903}
17904
17905// String returns the string representation
17906func (s GetAccountAuthorizationDetailsOutput) String() string {
17907	return awsutil.Prettify(s)
17908}
17909
17910// GoString returns the string representation
17911func (s GetAccountAuthorizationDetailsOutput) GoString() string {
17912	return s.String()
17913}
17914
17915// SetGroupDetailList sets the GroupDetailList field's value.
17916func (s *GetAccountAuthorizationDetailsOutput) SetGroupDetailList(v []*GroupDetail) *GetAccountAuthorizationDetailsOutput {
17917	s.GroupDetailList = v
17918	return s
17919}
17920
17921// SetIsTruncated sets the IsTruncated field's value.
17922func (s *GetAccountAuthorizationDetailsOutput) SetIsTruncated(v bool) *GetAccountAuthorizationDetailsOutput {
17923	s.IsTruncated = &v
17924	return s
17925}
17926
17927// SetMarker sets the Marker field's value.
17928func (s *GetAccountAuthorizationDetailsOutput) SetMarker(v string) *GetAccountAuthorizationDetailsOutput {
17929	s.Marker = &v
17930	return s
17931}
17932
17933// SetPolicies sets the Policies field's value.
17934func (s *GetAccountAuthorizationDetailsOutput) SetPolicies(v []*ManagedPolicyDetail) *GetAccountAuthorizationDetailsOutput {
17935	s.Policies = v
17936	return s
17937}
17938
17939// SetRoleDetailList sets the RoleDetailList field's value.
17940func (s *GetAccountAuthorizationDetailsOutput) SetRoleDetailList(v []*RoleDetail) *GetAccountAuthorizationDetailsOutput {
17941	s.RoleDetailList = v
17942	return s
17943}
17944
17945// SetUserDetailList sets the UserDetailList field's value.
17946func (s *GetAccountAuthorizationDetailsOutput) SetUserDetailList(v []*UserDetail) *GetAccountAuthorizationDetailsOutput {
17947	s.UserDetailList = v
17948	return s
17949}
17950
17951// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetAccountPasswordPolicyInput
17952type GetAccountPasswordPolicyInput struct {
17953	_ struct{} `type:"structure"`
17954}
17955
17956// String returns the string representation
17957func (s GetAccountPasswordPolicyInput) String() string {
17958	return awsutil.Prettify(s)
17959}
17960
17961// GoString returns the string representation
17962func (s GetAccountPasswordPolicyInput) GoString() string {
17963	return s.String()
17964}
17965
17966// Contains the response to a successful GetAccountPasswordPolicy request.
17967// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetAccountPasswordPolicyResponse
17968type GetAccountPasswordPolicyOutput struct {
17969	_ struct{} `type:"structure"`
17970
17971	// A structure that contains details about the account's password policy.
17972	//
17973	// PasswordPolicy is a required field
17974	PasswordPolicy *PasswordPolicy `type:"structure" required:"true"`
17975}
17976
17977// String returns the string representation
17978func (s GetAccountPasswordPolicyOutput) String() string {
17979	return awsutil.Prettify(s)
17980}
17981
17982// GoString returns the string representation
17983func (s GetAccountPasswordPolicyOutput) GoString() string {
17984	return s.String()
17985}
17986
17987// SetPasswordPolicy sets the PasswordPolicy field's value.
17988func (s *GetAccountPasswordPolicyOutput) SetPasswordPolicy(v *PasswordPolicy) *GetAccountPasswordPolicyOutput {
17989	s.PasswordPolicy = v
17990	return s
17991}
17992
17993// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetAccountSummaryInput
17994type GetAccountSummaryInput struct {
17995	_ struct{} `type:"structure"`
17996}
17997
17998// String returns the string representation
17999func (s GetAccountSummaryInput) String() string {
18000	return awsutil.Prettify(s)
18001}
18002
18003// GoString returns the string representation
18004func (s GetAccountSummaryInput) GoString() string {
18005	return s.String()
18006}
18007
18008// Contains the response to a successful GetAccountSummary request.
18009// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetAccountSummaryResponse
18010type GetAccountSummaryOutput struct {
18011	_ struct{} `type:"structure"`
18012
18013	// A set of key value pairs containing information about IAM entity usage and
18014	// IAM quotas.
18015	SummaryMap map[string]*int64 `type:"map"`
18016}
18017
18018// String returns the string representation
18019func (s GetAccountSummaryOutput) String() string {
18020	return awsutil.Prettify(s)
18021}
18022
18023// GoString returns the string representation
18024func (s GetAccountSummaryOutput) GoString() string {
18025	return s.String()
18026}
18027
18028// SetSummaryMap sets the SummaryMap field's value.
18029func (s *GetAccountSummaryOutput) SetSummaryMap(v map[string]*int64) *GetAccountSummaryOutput {
18030	s.SummaryMap = v
18031	return s
18032}
18033
18034// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetContextKeysForCustomPolicyRequest
18035type GetContextKeysForCustomPolicyInput struct {
18036	_ struct{} `type:"structure"`
18037
18038	// A list of policies for which you want the list of context keys referenced
18039	// in those policies. Each document is specified as a string containing the
18040	// complete, valid JSON text of an IAM policy.
18041	//
18042	// The regex pattern (http://wikipedia.org/wiki/regex) used to validate this
18043	// parameter is a string of characters consisting of any printable ASCII character
18044	// ranging from the space character (\u0020) through end of the ASCII character
18045	// range as well as the printable characters in the Basic Latin and Latin-1
18046	// Supplement character set (through \u00FF). It also includes the special characters
18047	// tab (\u0009), line feed (\u000A), and carriage return (\u000D).
18048	//
18049	// PolicyInputList is a required field
18050	PolicyInputList []*string `type:"list" required:"true"`
18051}
18052
18053// String returns the string representation
18054func (s GetContextKeysForCustomPolicyInput) String() string {
18055	return awsutil.Prettify(s)
18056}
18057
18058// GoString returns the string representation
18059func (s GetContextKeysForCustomPolicyInput) GoString() string {
18060	return s.String()
18061}
18062
18063// Validate inspects the fields of the type to determine if they are valid.
18064func (s *GetContextKeysForCustomPolicyInput) Validate() error {
18065	invalidParams := request.ErrInvalidParams{Context: "GetContextKeysForCustomPolicyInput"}
18066	if s.PolicyInputList == nil {
18067		invalidParams.Add(request.NewErrParamRequired("PolicyInputList"))
18068	}
18069
18070	if invalidParams.Len() > 0 {
18071		return invalidParams
18072	}
18073	return nil
18074}
18075
18076// SetPolicyInputList sets the PolicyInputList field's value.
18077func (s *GetContextKeysForCustomPolicyInput) SetPolicyInputList(v []*string) *GetContextKeysForCustomPolicyInput {
18078	s.PolicyInputList = v
18079	return s
18080}
18081
18082// Contains the response to a successful GetContextKeysForPrincipalPolicy or
18083// GetContextKeysForCustomPolicy request.
18084// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetContextKeysForPolicyResponse
18085type GetContextKeysForPolicyResponse struct {
18086	_ struct{} `type:"structure"`
18087
18088	// The list of context keys that are referenced in the input policies.
18089	ContextKeyNames []*string `type:"list"`
18090}
18091
18092// String returns the string representation
18093func (s GetContextKeysForPolicyResponse) String() string {
18094	return awsutil.Prettify(s)
18095}
18096
18097// GoString returns the string representation
18098func (s GetContextKeysForPolicyResponse) GoString() string {
18099	return s.String()
18100}
18101
18102// SetContextKeyNames sets the ContextKeyNames field's value.
18103func (s *GetContextKeysForPolicyResponse) SetContextKeyNames(v []*string) *GetContextKeysForPolicyResponse {
18104	s.ContextKeyNames = v
18105	return s
18106}
18107
18108// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetContextKeysForPrincipalPolicyRequest
18109type GetContextKeysForPrincipalPolicyInput struct {
18110	_ struct{} `type:"structure"`
18111
18112	// An optional list of additional policies for which you want the list of context
18113	// keys that are referenced.
18114	//
18115	// The regex pattern (http://wikipedia.org/wiki/regex) used to validate this
18116	// parameter is a string of characters consisting of any printable ASCII character
18117	// ranging from the space character (\u0020) through end of the ASCII character
18118	// range as well as the printable characters in the Basic Latin and Latin-1
18119	// Supplement character set (through \u00FF). It also includes the special characters
18120	// tab (\u0009), line feed (\u000A), and carriage return (\u000D).
18121	PolicyInputList []*string `type:"list"`
18122
18123	// The ARN of a user, group, or role whose policies contain the context keys
18124	// that you want listed. If you specify a user, the list includes context keys
18125	// that are found in all policies attached to the user as well as to all groups
18126	// that the user is a member of. If you pick a group or a role, then it includes
18127	// only those context keys that are found in policies attached to that entity.
18128	// Note that all parameters are shown in unencoded form here for clarity, but
18129	// must be URL encoded to be included as a part of a real HTML request.
18130	//
18131	// For more information about ARNs, see Amazon Resource Names (ARNs) and AWS
18132	// Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
18133	// in the AWS General Reference.
18134	//
18135	// PolicySourceArn is a required field
18136	PolicySourceArn *string `min:"20" type:"string" required:"true"`
18137}
18138
18139// String returns the string representation
18140func (s GetContextKeysForPrincipalPolicyInput) String() string {
18141	return awsutil.Prettify(s)
18142}
18143
18144// GoString returns the string representation
18145func (s GetContextKeysForPrincipalPolicyInput) GoString() string {
18146	return s.String()
18147}
18148
18149// Validate inspects the fields of the type to determine if they are valid.
18150func (s *GetContextKeysForPrincipalPolicyInput) Validate() error {
18151	invalidParams := request.ErrInvalidParams{Context: "GetContextKeysForPrincipalPolicyInput"}
18152	if s.PolicySourceArn == nil {
18153		invalidParams.Add(request.NewErrParamRequired("PolicySourceArn"))
18154	}
18155	if s.PolicySourceArn != nil && len(*s.PolicySourceArn) < 20 {
18156		invalidParams.Add(request.NewErrParamMinLen("PolicySourceArn", 20))
18157	}
18158
18159	if invalidParams.Len() > 0 {
18160		return invalidParams
18161	}
18162	return nil
18163}
18164
18165// SetPolicyInputList sets the PolicyInputList field's value.
18166func (s *GetContextKeysForPrincipalPolicyInput) SetPolicyInputList(v []*string) *GetContextKeysForPrincipalPolicyInput {
18167	s.PolicyInputList = v
18168	return s
18169}
18170
18171// SetPolicySourceArn sets the PolicySourceArn field's value.
18172func (s *GetContextKeysForPrincipalPolicyInput) SetPolicySourceArn(v string) *GetContextKeysForPrincipalPolicyInput {
18173	s.PolicySourceArn = &v
18174	return s
18175}
18176
18177// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetCredentialReportInput
18178type GetCredentialReportInput struct {
18179	_ struct{} `type:"structure"`
18180}
18181
18182// String returns the string representation
18183func (s GetCredentialReportInput) String() string {
18184	return awsutil.Prettify(s)
18185}
18186
18187// GoString returns the string representation
18188func (s GetCredentialReportInput) GoString() string {
18189	return s.String()
18190}
18191
18192// Contains the response to a successful GetCredentialReport request.
18193// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetCredentialReportResponse
18194type GetCredentialReportOutput struct {
18195	_ struct{} `type:"structure"`
18196
18197	// Contains the credential report. The report is Base64-encoded.
18198	//
18199	// Content is automatically base64 encoded/decoded by the SDK.
18200	Content []byte `type:"blob"`
18201
18202	// The date and time when the credential report was created, in ISO 8601 date-time
18203	// format (http://www.iso.org/iso/iso8601).
18204	GeneratedTime *time.Time `type:"timestamp" timestampFormat:"iso8601"`
18205
18206	// The format (MIME type) of the credential report.
18207	ReportFormat *string `type:"string" enum:"ReportFormatType"`
18208}
18209
18210// String returns the string representation
18211func (s GetCredentialReportOutput) String() string {
18212	return awsutil.Prettify(s)
18213}
18214
18215// GoString returns the string representation
18216func (s GetCredentialReportOutput) GoString() string {
18217	return s.String()
18218}
18219
18220// SetContent sets the Content field's value.
18221func (s *GetCredentialReportOutput) SetContent(v []byte) *GetCredentialReportOutput {
18222	s.Content = v
18223	return s
18224}
18225
18226// SetGeneratedTime sets the GeneratedTime field's value.
18227func (s *GetCredentialReportOutput) SetGeneratedTime(v time.Time) *GetCredentialReportOutput {
18228	s.GeneratedTime = &v
18229	return s
18230}
18231
18232// SetReportFormat sets the ReportFormat field's value.
18233func (s *GetCredentialReportOutput) SetReportFormat(v string) *GetCredentialReportOutput {
18234	s.ReportFormat = &v
18235	return s
18236}
18237
18238// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetGroupRequest
18239type GetGroupInput struct {
18240	_ struct{} `type:"structure"`
18241
18242	// The name of the group.
18243	//
18244	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
18245	// a string of characters consisting of upper and lowercase alphanumeric characters
18246	// with no spaces. You can also include any of the following characters: =,.@-
18247	//
18248	// GroupName is a required field
18249	GroupName *string `min:"1" type:"string" required:"true"`
18250
18251	// Use this parameter only when paginating results and only after you receive
18252	// a response indicating that the results are truncated. Set it to the value
18253	// of the Marker element in the response that you received to indicate where
18254	// the next call should start.
18255	Marker *string `min:"1" type:"string"`
18256
18257	// (Optional) Use this only when paginating results to indicate the maximum
18258	// number of items you want in the response. If additional items exist beyond
18259	// the maximum you specify, the IsTruncated response element is true.
18260	//
18261	// If you do not include this parameter, it defaults to 100. Note that IAM might
18262	// return fewer results, even when there are more results available. In that
18263	// case, the IsTruncated response element returns true and Marker contains a
18264	// value to include in the subsequent call that tells the service where to continue
18265	// from.
18266	MaxItems *int64 `min:"1" type:"integer"`
18267}
18268
18269// String returns the string representation
18270func (s GetGroupInput) String() string {
18271	return awsutil.Prettify(s)
18272}
18273
18274// GoString returns the string representation
18275func (s GetGroupInput) GoString() string {
18276	return s.String()
18277}
18278
18279// Validate inspects the fields of the type to determine if they are valid.
18280func (s *GetGroupInput) Validate() error {
18281	invalidParams := request.ErrInvalidParams{Context: "GetGroupInput"}
18282	if s.GroupName == nil {
18283		invalidParams.Add(request.NewErrParamRequired("GroupName"))
18284	}
18285	if s.GroupName != nil && len(*s.GroupName) < 1 {
18286		invalidParams.Add(request.NewErrParamMinLen("GroupName", 1))
18287	}
18288	if s.Marker != nil && len(*s.Marker) < 1 {
18289		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
18290	}
18291	if s.MaxItems != nil && *s.MaxItems < 1 {
18292		invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
18293	}
18294
18295	if invalidParams.Len() > 0 {
18296		return invalidParams
18297	}
18298	return nil
18299}
18300
18301// SetGroupName sets the GroupName field's value.
18302func (s *GetGroupInput) SetGroupName(v string) *GetGroupInput {
18303	s.GroupName = &v
18304	return s
18305}
18306
18307// SetMarker sets the Marker field's value.
18308func (s *GetGroupInput) SetMarker(v string) *GetGroupInput {
18309	s.Marker = &v
18310	return s
18311}
18312
18313// SetMaxItems sets the MaxItems field's value.
18314func (s *GetGroupInput) SetMaxItems(v int64) *GetGroupInput {
18315	s.MaxItems = &v
18316	return s
18317}
18318
18319// Contains the response to a successful GetGroup request.
18320// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetGroupResponse
18321type GetGroupOutput struct {
18322	_ struct{} `type:"structure"`
18323
18324	// A structure that contains details about the group.
18325	//
18326	// Group is a required field
18327	Group *Group `type:"structure" required:"true"`
18328
18329	// A flag that indicates whether there are more items to return. If your results
18330	// were truncated, you can make a subsequent pagination request using the Marker
18331	// request parameter to retrieve more items. Note that IAM might return fewer
18332	// than the MaxItems number of results even when there are more results available.
18333	// We recommend that you check IsTruncated after every call to ensure that you
18334	// receive all of your results.
18335	IsTruncated *bool `type:"boolean"`
18336
18337	// When IsTruncated is true, this element is present and contains the value
18338	// to use for the Marker parameter in a subsequent pagination request.
18339	Marker *string `min:"1" type:"string"`
18340
18341	// A list of users in the group.
18342	//
18343	// Users is a required field
18344	Users []*User `type:"list" required:"true"`
18345}
18346
18347// String returns the string representation
18348func (s GetGroupOutput) String() string {
18349	return awsutil.Prettify(s)
18350}
18351
18352// GoString returns the string representation
18353func (s GetGroupOutput) GoString() string {
18354	return s.String()
18355}
18356
18357// SetGroup sets the Group field's value.
18358func (s *GetGroupOutput) SetGroup(v *Group) *GetGroupOutput {
18359	s.Group = v
18360	return s
18361}
18362
18363// SetIsTruncated sets the IsTruncated field's value.
18364func (s *GetGroupOutput) SetIsTruncated(v bool) *GetGroupOutput {
18365	s.IsTruncated = &v
18366	return s
18367}
18368
18369// SetMarker sets the Marker field's value.
18370func (s *GetGroupOutput) SetMarker(v string) *GetGroupOutput {
18371	s.Marker = &v
18372	return s
18373}
18374
18375// SetUsers sets the Users field's value.
18376func (s *GetGroupOutput) SetUsers(v []*User) *GetGroupOutput {
18377	s.Users = v
18378	return s
18379}
18380
18381// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetGroupPolicyRequest
18382type GetGroupPolicyInput struct {
18383	_ struct{} `type:"structure"`
18384
18385	// The name of the group the policy is associated with.
18386	//
18387	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
18388	// a string of characters consisting of upper and lowercase alphanumeric characters
18389	// with no spaces. You can also include any of the following characters: =,.@-
18390	//
18391	// GroupName is a required field
18392	GroupName *string `min:"1" type:"string" required:"true"`
18393
18394	// The name of the policy document to get.
18395	//
18396	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
18397	// a string of characters consisting of upper and lowercase alphanumeric characters
18398	// with no spaces. You can also include any of the following characters: =,.@-+
18399	//
18400	// PolicyName is a required field
18401	PolicyName *string `min:"1" type:"string" required:"true"`
18402}
18403
18404// String returns the string representation
18405func (s GetGroupPolicyInput) String() string {
18406	return awsutil.Prettify(s)
18407}
18408
18409// GoString returns the string representation
18410func (s GetGroupPolicyInput) GoString() string {
18411	return s.String()
18412}
18413
18414// Validate inspects the fields of the type to determine if they are valid.
18415func (s *GetGroupPolicyInput) Validate() error {
18416	invalidParams := request.ErrInvalidParams{Context: "GetGroupPolicyInput"}
18417	if s.GroupName == nil {
18418		invalidParams.Add(request.NewErrParamRequired("GroupName"))
18419	}
18420	if s.GroupName != nil && len(*s.GroupName) < 1 {
18421		invalidParams.Add(request.NewErrParamMinLen("GroupName", 1))
18422	}
18423	if s.PolicyName == nil {
18424		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
18425	}
18426	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
18427		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
18428	}
18429
18430	if invalidParams.Len() > 0 {
18431		return invalidParams
18432	}
18433	return nil
18434}
18435
18436// SetGroupName sets the GroupName field's value.
18437func (s *GetGroupPolicyInput) SetGroupName(v string) *GetGroupPolicyInput {
18438	s.GroupName = &v
18439	return s
18440}
18441
18442// SetPolicyName sets the PolicyName field's value.
18443func (s *GetGroupPolicyInput) SetPolicyName(v string) *GetGroupPolicyInput {
18444	s.PolicyName = &v
18445	return s
18446}
18447
18448// Contains the response to a successful GetGroupPolicy request.
18449// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetGroupPolicyResponse
18450type GetGroupPolicyOutput struct {
18451	_ struct{} `type:"structure"`
18452
18453	// The group the policy is associated with.
18454	//
18455	// GroupName is a required field
18456	GroupName *string `min:"1" type:"string" required:"true"`
18457
18458	// The policy document.
18459	//
18460	// PolicyDocument is a required field
18461	PolicyDocument *string `min:"1" type:"string" required:"true"`
18462
18463	// The name of the policy.
18464	//
18465	// PolicyName is a required field
18466	PolicyName *string `min:"1" type:"string" required:"true"`
18467}
18468
18469// String returns the string representation
18470func (s GetGroupPolicyOutput) String() string {
18471	return awsutil.Prettify(s)
18472}
18473
18474// GoString returns the string representation
18475func (s GetGroupPolicyOutput) GoString() string {
18476	return s.String()
18477}
18478
18479// SetGroupName sets the GroupName field's value.
18480func (s *GetGroupPolicyOutput) SetGroupName(v string) *GetGroupPolicyOutput {
18481	s.GroupName = &v
18482	return s
18483}
18484
18485// SetPolicyDocument sets the PolicyDocument field's value.
18486func (s *GetGroupPolicyOutput) SetPolicyDocument(v string) *GetGroupPolicyOutput {
18487	s.PolicyDocument = &v
18488	return s
18489}
18490
18491// SetPolicyName sets the PolicyName field's value.
18492func (s *GetGroupPolicyOutput) SetPolicyName(v string) *GetGroupPolicyOutput {
18493	s.PolicyName = &v
18494	return s
18495}
18496
18497// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetInstanceProfileRequest
18498type GetInstanceProfileInput struct {
18499	_ struct{} `type:"structure"`
18500
18501	// The name of the instance profile to get information about.
18502	//
18503	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
18504	// a string of characters consisting of upper and lowercase alphanumeric characters
18505	// with no spaces. You can also include any of the following characters: =,.@-
18506	//
18507	// InstanceProfileName is a required field
18508	InstanceProfileName *string `min:"1" type:"string" required:"true"`
18509}
18510
18511// String returns the string representation
18512func (s GetInstanceProfileInput) String() string {
18513	return awsutil.Prettify(s)
18514}
18515
18516// GoString returns the string representation
18517func (s GetInstanceProfileInput) GoString() string {
18518	return s.String()
18519}
18520
18521// Validate inspects the fields of the type to determine if they are valid.
18522func (s *GetInstanceProfileInput) Validate() error {
18523	invalidParams := request.ErrInvalidParams{Context: "GetInstanceProfileInput"}
18524	if s.InstanceProfileName == nil {
18525		invalidParams.Add(request.NewErrParamRequired("InstanceProfileName"))
18526	}
18527	if s.InstanceProfileName != nil && len(*s.InstanceProfileName) < 1 {
18528		invalidParams.Add(request.NewErrParamMinLen("InstanceProfileName", 1))
18529	}
18530
18531	if invalidParams.Len() > 0 {
18532		return invalidParams
18533	}
18534	return nil
18535}
18536
18537// SetInstanceProfileName sets the InstanceProfileName field's value.
18538func (s *GetInstanceProfileInput) SetInstanceProfileName(v string) *GetInstanceProfileInput {
18539	s.InstanceProfileName = &v
18540	return s
18541}
18542
18543// Contains the response to a successful GetInstanceProfile request.
18544// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetInstanceProfileResponse
18545type GetInstanceProfileOutput struct {
18546	_ struct{} `type:"structure"`
18547
18548	// A structure containing details about the instance profile.
18549	//
18550	// InstanceProfile is a required field
18551	InstanceProfile *InstanceProfile `type:"structure" required:"true"`
18552}
18553
18554// String returns the string representation
18555func (s GetInstanceProfileOutput) String() string {
18556	return awsutil.Prettify(s)
18557}
18558
18559// GoString returns the string representation
18560func (s GetInstanceProfileOutput) GoString() string {
18561	return s.String()
18562}
18563
18564// SetInstanceProfile sets the InstanceProfile field's value.
18565func (s *GetInstanceProfileOutput) SetInstanceProfile(v *InstanceProfile) *GetInstanceProfileOutput {
18566	s.InstanceProfile = v
18567	return s
18568}
18569
18570// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetLoginProfileRequest
18571type GetLoginProfileInput struct {
18572	_ struct{} `type:"structure"`
18573
18574	// The name of the user whose login profile you want to retrieve.
18575	//
18576	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
18577	// a string of characters consisting of upper and lowercase alphanumeric characters
18578	// with no spaces. You can also include any of the following characters: =,.@-
18579	//
18580	// UserName is a required field
18581	UserName *string `min:"1" type:"string" required:"true"`
18582}
18583
18584// String returns the string representation
18585func (s GetLoginProfileInput) String() string {
18586	return awsutil.Prettify(s)
18587}
18588
18589// GoString returns the string representation
18590func (s GetLoginProfileInput) GoString() string {
18591	return s.String()
18592}
18593
18594// Validate inspects the fields of the type to determine if they are valid.
18595func (s *GetLoginProfileInput) Validate() error {
18596	invalidParams := request.ErrInvalidParams{Context: "GetLoginProfileInput"}
18597	if s.UserName == nil {
18598		invalidParams.Add(request.NewErrParamRequired("UserName"))
18599	}
18600	if s.UserName != nil && len(*s.UserName) < 1 {
18601		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
18602	}
18603
18604	if invalidParams.Len() > 0 {
18605		return invalidParams
18606	}
18607	return nil
18608}
18609
18610// SetUserName sets the UserName field's value.
18611func (s *GetLoginProfileInput) SetUserName(v string) *GetLoginProfileInput {
18612	s.UserName = &v
18613	return s
18614}
18615
18616// Contains the response to a successful GetLoginProfile request.
18617// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetLoginProfileResponse
18618type GetLoginProfileOutput struct {
18619	_ struct{} `type:"structure"`
18620
18621	// A structure containing the user name and password create date for the user.
18622	//
18623	// LoginProfile is a required field
18624	LoginProfile *LoginProfile `type:"structure" required:"true"`
18625}
18626
18627// String returns the string representation
18628func (s GetLoginProfileOutput) String() string {
18629	return awsutil.Prettify(s)
18630}
18631
18632// GoString returns the string representation
18633func (s GetLoginProfileOutput) GoString() string {
18634	return s.String()
18635}
18636
18637// SetLoginProfile sets the LoginProfile field's value.
18638func (s *GetLoginProfileOutput) SetLoginProfile(v *LoginProfile) *GetLoginProfileOutput {
18639	s.LoginProfile = v
18640	return s
18641}
18642
18643// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetOpenIDConnectProviderRequest
18644type GetOpenIDConnectProviderInput struct {
18645	_ struct{} `type:"structure"`
18646
18647	// The Amazon Resource Name (ARN) of the OIDC provider resource object in IAM
18648	// to get information for. You can get a list of OIDC provider resource ARNs
18649	// by using the ListOpenIDConnectProviders action.
18650	//
18651	// For more information about ARNs, see Amazon Resource Names (ARNs) and AWS
18652	// Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
18653	// in the AWS General Reference.
18654	//
18655	// OpenIDConnectProviderArn is a required field
18656	OpenIDConnectProviderArn *string `min:"20" type:"string" required:"true"`
18657}
18658
18659// String returns the string representation
18660func (s GetOpenIDConnectProviderInput) String() string {
18661	return awsutil.Prettify(s)
18662}
18663
18664// GoString returns the string representation
18665func (s GetOpenIDConnectProviderInput) GoString() string {
18666	return s.String()
18667}
18668
18669// Validate inspects the fields of the type to determine if they are valid.
18670func (s *GetOpenIDConnectProviderInput) Validate() error {
18671	invalidParams := request.ErrInvalidParams{Context: "GetOpenIDConnectProviderInput"}
18672	if s.OpenIDConnectProviderArn == nil {
18673		invalidParams.Add(request.NewErrParamRequired("OpenIDConnectProviderArn"))
18674	}
18675	if s.OpenIDConnectProviderArn != nil && len(*s.OpenIDConnectProviderArn) < 20 {
18676		invalidParams.Add(request.NewErrParamMinLen("OpenIDConnectProviderArn", 20))
18677	}
18678
18679	if invalidParams.Len() > 0 {
18680		return invalidParams
18681	}
18682	return nil
18683}
18684
18685// SetOpenIDConnectProviderArn sets the OpenIDConnectProviderArn field's value.
18686func (s *GetOpenIDConnectProviderInput) SetOpenIDConnectProviderArn(v string) *GetOpenIDConnectProviderInput {
18687	s.OpenIDConnectProviderArn = &v
18688	return s
18689}
18690
18691// Contains the response to a successful GetOpenIDConnectProvider request.
18692// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetOpenIDConnectProviderResponse
18693type GetOpenIDConnectProviderOutput struct {
18694	_ struct{} `type:"structure"`
18695
18696	// A list of client IDs (also known as audiences) that are associated with the
18697	// specified IAM OIDC provider resource object. For more information, see CreateOpenIDConnectProvider.
18698	ClientIDList []*string `type:"list"`
18699
18700	// The date and time when the IAM OIDC provider resource object was created
18701	// in the AWS account.
18702	CreateDate *time.Time `type:"timestamp" timestampFormat:"iso8601"`
18703
18704	// A list of certificate thumbprints that are associated with the specified
18705	// IAM OIDC provider resource object. For more information, see CreateOpenIDConnectProvider.
18706	ThumbprintList []*string `type:"list"`
18707
18708	// The URL that the IAM OIDC provider resource object is associated with. For
18709	// more information, see CreateOpenIDConnectProvider.
18710	Url *string `min:"1" type:"string"`
18711}
18712
18713// String returns the string representation
18714func (s GetOpenIDConnectProviderOutput) String() string {
18715	return awsutil.Prettify(s)
18716}
18717
18718// GoString returns the string representation
18719func (s GetOpenIDConnectProviderOutput) GoString() string {
18720	return s.String()
18721}
18722
18723// SetClientIDList sets the ClientIDList field's value.
18724func (s *GetOpenIDConnectProviderOutput) SetClientIDList(v []*string) *GetOpenIDConnectProviderOutput {
18725	s.ClientIDList = v
18726	return s
18727}
18728
18729// SetCreateDate sets the CreateDate field's value.
18730func (s *GetOpenIDConnectProviderOutput) SetCreateDate(v time.Time) *GetOpenIDConnectProviderOutput {
18731	s.CreateDate = &v
18732	return s
18733}
18734
18735// SetThumbprintList sets the ThumbprintList field's value.
18736func (s *GetOpenIDConnectProviderOutput) SetThumbprintList(v []*string) *GetOpenIDConnectProviderOutput {
18737	s.ThumbprintList = v
18738	return s
18739}
18740
18741// SetUrl sets the Url field's value.
18742func (s *GetOpenIDConnectProviderOutput) SetUrl(v string) *GetOpenIDConnectProviderOutput {
18743	s.Url = &v
18744	return s
18745}
18746
18747// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetPolicyRequest
18748type GetPolicyInput struct {
18749	_ struct{} `type:"structure"`
18750
18751	// The Amazon Resource Name (ARN) of the managed policy that you want information
18752	// about.
18753	//
18754	// For more information about ARNs, see Amazon Resource Names (ARNs) and AWS
18755	// Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
18756	// in the AWS General Reference.
18757	//
18758	// PolicyArn is a required field
18759	PolicyArn *string `min:"20" type:"string" required:"true"`
18760}
18761
18762// String returns the string representation
18763func (s GetPolicyInput) String() string {
18764	return awsutil.Prettify(s)
18765}
18766
18767// GoString returns the string representation
18768func (s GetPolicyInput) GoString() string {
18769	return s.String()
18770}
18771
18772// Validate inspects the fields of the type to determine if they are valid.
18773func (s *GetPolicyInput) Validate() error {
18774	invalidParams := request.ErrInvalidParams{Context: "GetPolicyInput"}
18775	if s.PolicyArn == nil {
18776		invalidParams.Add(request.NewErrParamRequired("PolicyArn"))
18777	}
18778	if s.PolicyArn != nil && len(*s.PolicyArn) < 20 {
18779		invalidParams.Add(request.NewErrParamMinLen("PolicyArn", 20))
18780	}
18781
18782	if invalidParams.Len() > 0 {
18783		return invalidParams
18784	}
18785	return nil
18786}
18787
18788// SetPolicyArn sets the PolicyArn field's value.
18789func (s *GetPolicyInput) SetPolicyArn(v string) *GetPolicyInput {
18790	s.PolicyArn = &v
18791	return s
18792}
18793
18794// Contains the response to a successful GetPolicy request.
18795// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetPolicyResponse
18796type GetPolicyOutput struct {
18797	_ struct{} `type:"structure"`
18798
18799	// A structure containing details about the policy.
18800	Policy *Policy `type:"structure"`
18801}
18802
18803// String returns the string representation
18804func (s GetPolicyOutput) String() string {
18805	return awsutil.Prettify(s)
18806}
18807
18808// GoString returns the string representation
18809func (s GetPolicyOutput) GoString() string {
18810	return s.String()
18811}
18812
18813// SetPolicy sets the Policy field's value.
18814func (s *GetPolicyOutput) SetPolicy(v *Policy) *GetPolicyOutput {
18815	s.Policy = v
18816	return s
18817}
18818
18819// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetPolicyVersionRequest
18820type GetPolicyVersionInput struct {
18821	_ struct{} `type:"structure"`
18822
18823	// The Amazon Resource Name (ARN) of the managed policy that you want information
18824	// about.
18825	//
18826	// For more information about ARNs, see Amazon Resource Names (ARNs) and AWS
18827	// Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
18828	// in the AWS General Reference.
18829	//
18830	// PolicyArn is a required field
18831	PolicyArn *string `min:"20" type:"string" required:"true"`
18832
18833	// Identifies the policy version to retrieve.
18834	//
18835	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
18836	// a string of characters that consists of the lowercase letter 'v' followed
18837	// by one or two digits, and optionally followed by a period '.' and a string
18838	// of letters and digits.
18839	//
18840	// VersionId is a required field
18841	VersionId *string `type:"string" required:"true"`
18842}
18843
18844// String returns the string representation
18845func (s GetPolicyVersionInput) String() string {
18846	return awsutil.Prettify(s)
18847}
18848
18849// GoString returns the string representation
18850func (s GetPolicyVersionInput) GoString() string {
18851	return s.String()
18852}
18853
18854// Validate inspects the fields of the type to determine if they are valid.
18855func (s *GetPolicyVersionInput) Validate() error {
18856	invalidParams := request.ErrInvalidParams{Context: "GetPolicyVersionInput"}
18857	if s.PolicyArn == nil {
18858		invalidParams.Add(request.NewErrParamRequired("PolicyArn"))
18859	}
18860	if s.PolicyArn != nil && len(*s.PolicyArn) < 20 {
18861		invalidParams.Add(request.NewErrParamMinLen("PolicyArn", 20))
18862	}
18863	if s.VersionId == nil {
18864		invalidParams.Add(request.NewErrParamRequired("VersionId"))
18865	}
18866
18867	if invalidParams.Len() > 0 {
18868		return invalidParams
18869	}
18870	return nil
18871}
18872
18873// SetPolicyArn sets the PolicyArn field's value.
18874func (s *GetPolicyVersionInput) SetPolicyArn(v string) *GetPolicyVersionInput {
18875	s.PolicyArn = &v
18876	return s
18877}
18878
18879// SetVersionId sets the VersionId field's value.
18880func (s *GetPolicyVersionInput) SetVersionId(v string) *GetPolicyVersionInput {
18881	s.VersionId = &v
18882	return s
18883}
18884
18885// Contains the response to a successful GetPolicyVersion request.
18886// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetPolicyVersionResponse
18887type GetPolicyVersionOutput struct {
18888	_ struct{} `type:"structure"`
18889
18890	// A structure containing details about the policy version.
18891	PolicyVersion *PolicyVersion `type:"structure"`
18892}
18893
18894// String returns the string representation
18895func (s GetPolicyVersionOutput) String() string {
18896	return awsutil.Prettify(s)
18897}
18898
18899// GoString returns the string representation
18900func (s GetPolicyVersionOutput) GoString() string {
18901	return s.String()
18902}
18903
18904// SetPolicyVersion sets the PolicyVersion field's value.
18905func (s *GetPolicyVersionOutput) SetPolicyVersion(v *PolicyVersion) *GetPolicyVersionOutput {
18906	s.PolicyVersion = v
18907	return s
18908}
18909
18910// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetRoleRequest
18911type GetRoleInput struct {
18912	_ struct{} `type:"structure"`
18913
18914	// The name of the IAM role to get information about.
18915	//
18916	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
18917	// a string of characters consisting of upper and lowercase alphanumeric characters
18918	// with no spaces. You can also include any of the following characters: _+=,.@-
18919	//
18920	// RoleName is a required field
18921	RoleName *string `min:"1" type:"string" required:"true"`
18922}
18923
18924// String returns the string representation
18925func (s GetRoleInput) String() string {
18926	return awsutil.Prettify(s)
18927}
18928
18929// GoString returns the string representation
18930func (s GetRoleInput) GoString() string {
18931	return s.String()
18932}
18933
18934// Validate inspects the fields of the type to determine if they are valid.
18935func (s *GetRoleInput) Validate() error {
18936	invalidParams := request.ErrInvalidParams{Context: "GetRoleInput"}
18937	if s.RoleName == nil {
18938		invalidParams.Add(request.NewErrParamRequired("RoleName"))
18939	}
18940	if s.RoleName != nil && len(*s.RoleName) < 1 {
18941		invalidParams.Add(request.NewErrParamMinLen("RoleName", 1))
18942	}
18943
18944	if invalidParams.Len() > 0 {
18945		return invalidParams
18946	}
18947	return nil
18948}
18949
18950// SetRoleName sets the RoleName field's value.
18951func (s *GetRoleInput) SetRoleName(v string) *GetRoleInput {
18952	s.RoleName = &v
18953	return s
18954}
18955
18956// Contains the response to a successful GetRole request.
18957// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetRoleResponse
18958type GetRoleOutput struct {
18959	_ struct{} `type:"structure"`
18960
18961	// A structure containing details about the IAM role.
18962	//
18963	// Role is a required field
18964	Role *Role `type:"structure" required:"true"`
18965}
18966
18967// String returns the string representation
18968func (s GetRoleOutput) String() string {
18969	return awsutil.Prettify(s)
18970}
18971
18972// GoString returns the string representation
18973func (s GetRoleOutput) GoString() string {
18974	return s.String()
18975}
18976
18977// SetRole sets the Role field's value.
18978func (s *GetRoleOutput) SetRole(v *Role) *GetRoleOutput {
18979	s.Role = v
18980	return s
18981}
18982
18983// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetRolePolicyRequest
18984type GetRolePolicyInput struct {
18985	_ struct{} `type:"structure"`
18986
18987	// The name of the policy document to get.
18988	//
18989	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
18990	// a string of characters consisting of upper and lowercase alphanumeric characters
18991	// with no spaces. You can also include any of the following characters: =,.@-+
18992	//
18993	// PolicyName is a required field
18994	PolicyName *string `min:"1" type:"string" required:"true"`
18995
18996	// The name of the role associated with the policy.
18997	//
18998	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
18999	// a string of characters consisting of upper and lowercase alphanumeric characters
19000	// with no spaces. You can also include any of the following characters: _+=,.@-
19001	//
19002	// RoleName is a required field
19003	RoleName *string `min:"1" type:"string" required:"true"`
19004}
19005
19006// String returns the string representation
19007func (s GetRolePolicyInput) String() string {
19008	return awsutil.Prettify(s)
19009}
19010
19011// GoString returns the string representation
19012func (s GetRolePolicyInput) GoString() string {
19013	return s.String()
19014}
19015
19016// Validate inspects the fields of the type to determine if they are valid.
19017func (s *GetRolePolicyInput) Validate() error {
19018	invalidParams := request.ErrInvalidParams{Context: "GetRolePolicyInput"}
19019	if s.PolicyName == nil {
19020		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
19021	}
19022	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
19023		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
19024	}
19025	if s.RoleName == nil {
19026		invalidParams.Add(request.NewErrParamRequired("RoleName"))
19027	}
19028	if s.RoleName != nil && len(*s.RoleName) < 1 {
19029		invalidParams.Add(request.NewErrParamMinLen("RoleName", 1))
19030	}
19031
19032	if invalidParams.Len() > 0 {
19033		return invalidParams
19034	}
19035	return nil
19036}
19037
19038// SetPolicyName sets the PolicyName field's value.
19039func (s *GetRolePolicyInput) SetPolicyName(v string) *GetRolePolicyInput {
19040	s.PolicyName = &v
19041	return s
19042}
19043
19044// SetRoleName sets the RoleName field's value.
19045func (s *GetRolePolicyInput) SetRoleName(v string) *GetRolePolicyInput {
19046	s.RoleName = &v
19047	return s
19048}
19049
19050// Contains the response to a successful GetRolePolicy request.
19051// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetRolePolicyResponse
19052type GetRolePolicyOutput struct {
19053	_ struct{} `type:"structure"`
19054
19055	// The policy document.
19056	//
19057	// PolicyDocument is a required field
19058	PolicyDocument *string `min:"1" type:"string" required:"true"`
19059
19060	// The name of the policy.
19061	//
19062	// PolicyName is a required field
19063	PolicyName *string `min:"1" type:"string" required:"true"`
19064
19065	// The role the policy is associated with.
19066	//
19067	// RoleName is a required field
19068	RoleName *string `min:"1" type:"string" required:"true"`
19069}
19070
19071// String returns the string representation
19072func (s GetRolePolicyOutput) String() string {
19073	return awsutil.Prettify(s)
19074}
19075
19076// GoString returns the string representation
19077func (s GetRolePolicyOutput) GoString() string {
19078	return s.String()
19079}
19080
19081// SetPolicyDocument sets the PolicyDocument field's value.
19082func (s *GetRolePolicyOutput) SetPolicyDocument(v string) *GetRolePolicyOutput {
19083	s.PolicyDocument = &v
19084	return s
19085}
19086
19087// SetPolicyName sets the PolicyName field's value.
19088func (s *GetRolePolicyOutput) SetPolicyName(v string) *GetRolePolicyOutput {
19089	s.PolicyName = &v
19090	return s
19091}
19092
19093// SetRoleName sets the RoleName field's value.
19094func (s *GetRolePolicyOutput) SetRoleName(v string) *GetRolePolicyOutput {
19095	s.RoleName = &v
19096	return s
19097}
19098
19099// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetSAMLProviderRequest
19100type GetSAMLProviderInput struct {
19101	_ struct{} `type:"structure"`
19102
19103	// The Amazon Resource Name (ARN) of the SAML provider resource object in IAM
19104	// to get information about.
19105	//
19106	// For more information about ARNs, see Amazon Resource Names (ARNs) and AWS
19107	// Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
19108	// in the AWS General Reference.
19109	//
19110	// SAMLProviderArn is a required field
19111	SAMLProviderArn *string `min:"20" type:"string" required:"true"`
19112}
19113
19114// String returns the string representation
19115func (s GetSAMLProviderInput) String() string {
19116	return awsutil.Prettify(s)
19117}
19118
19119// GoString returns the string representation
19120func (s GetSAMLProviderInput) GoString() string {
19121	return s.String()
19122}
19123
19124// Validate inspects the fields of the type to determine if they are valid.
19125func (s *GetSAMLProviderInput) Validate() error {
19126	invalidParams := request.ErrInvalidParams{Context: "GetSAMLProviderInput"}
19127	if s.SAMLProviderArn == nil {
19128		invalidParams.Add(request.NewErrParamRequired("SAMLProviderArn"))
19129	}
19130	if s.SAMLProviderArn != nil && len(*s.SAMLProviderArn) < 20 {
19131		invalidParams.Add(request.NewErrParamMinLen("SAMLProviderArn", 20))
19132	}
19133
19134	if invalidParams.Len() > 0 {
19135		return invalidParams
19136	}
19137	return nil
19138}
19139
19140// SetSAMLProviderArn sets the SAMLProviderArn field's value.
19141func (s *GetSAMLProviderInput) SetSAMLProviderArn(v string) *GetSAMLProviderInput {
19142	s.SAMLProviderArn = &v
19143	return s
19144}
19145
19146// Contains the response to a successful GetSAMLProvider request.
19147// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetSAMLProviderResponse
19148type GetSAMLProviderOutput struct {
19149	_ struct{} `type:"structure"`
19150
19151	// The date and time when the SAML provider was created.
19152	CreateDate *time.Time `type:"timestamp" timestampFormat:"iso8601"`
19153
19154	// The XML metadata document that includes information about an identity provider.
19155	SAMLMetadataDocument *string `min:"1000" type:"string"`
19156
19157	// The expiration date and time for the SAML provider.
19158	ValidUntil *time.Time `type:"timestamp" timestampFormat:"iso8601"`
19159}
19160
19161// String returns the string representation
19162func (s GetSAMLProviderOutput) String() string {
19163	return awsutil.Prettify(s)
19164}
19165
19166// GoString returns the string representation
19167func (s GetSAMLProviderOutput) GoString() string {
19168	return s.String()
19169}
19170
19171// SetCreateDate sets the CreateDate field's value.
19172func (s *GetSAMLProviderOutput) SetCreateDate(v time.Time) *GetSAMLProviderOutput {
19173	s.CreateDate = &v
19174	return s
19175}
19176
19177// SetSAMLMetadataDocument sets the SAMLMetadataDocument field's value.
19178func (s *GetSAMLProviderOutput) SetSAMLMetadataDocument(v string) *GetSAMLProviderOutput {
19179	s.SAMLMetadataDocument = &v
19180	return s
19181}
19182
19183// SetValidUntil sets the ValidUntil field's value.
19184func (s *GetSAMLProviderOutput) SetValidUntil(v time.Time) *GetSAMLProviderOutput {
19185	s.ValidUntil = &v
19186	return s
19187}
19188
19189// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetSSHPublicKeyRequest
19190type GetSSHPublicKeyInput struct {
19191	_ struct{} `type:"structure"`
19192
19193	// Specifies the public key encoding format to use in the response. To retrieve
19194	// the public key in ssh-rsa format, use SSH. To retrieve the public key in
19195	// PEM format, use PEM.
19196	//
19197	// Encoding is a required field
19198	Encoding *string `type:"string" required:"true" enum:"encodingType"`
19199
19200	// The unique identifier for the SSH public key.
19201	//
19202	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
19203	// a string of characters that can consist of any upper or lowercased letter
19204	// or digit.
19205	//
19206	// SSHPublicKeyId is a required field
19207	SSHPublicKeyId *string `min:"20" type:"string" required:"true"`
19208
19209	// The name of the IAM user associated with the SSH public key.
19210	//
19211	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
19212	// a string of characters consisting of upper and lowercase alphanumeric characters
19213	// with no spaces. You can also include any of the following characters: =,.@-
19214	//
19215	// UserName is a required field
19216	UserName *string `min:"1" type:"string" required:"true"`
19217}
19218
19219// String returns the string representation
19220func (s GetSSHPublicKeyInput) String() string {
19221	return awsutil.Prettify(s)
19222}
19223
19224// GoString returns the string representation
19225func (s GetSSHPublicKeyInput) GoString() string {
19226	return s.String()
19227}
19228
19229// Validate inspects the fields of the type to determine if they are valid.
19230func (s *GetSSHPublicKeyInput) Validate() error {
19231	invalidParams := request.ErrInvalidParams{Context: "GetSSHPublicKeyInput"}
19232	if s.Encoding == nil {
19233		invalidParams.Add(request.NewErrParamRequired("Encoding"))
19234	}
19235	if s.SSHPublicKeyId == nil {
19236		invalidParams.Add(request.NewErrParamRequired("SSHPublicKeyId"))
19237	}
19238	if s.SSHPublicKeyId != nil && len(*s.SSHPublicKeyId) < 20 {
19239		invalidParams.Add(request.NewErrParamMinLen("SSHPublicKeyId", 20))
19240	}
19241	if s.UserName == nil {
19242		invalidParams.Add(request.NewErrParamRequired("UserName"))
19243	}
19244	if s.UserName != nil && len(*s.UserName) < 1 {
19245		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
19246	}
19247
19248	if invalidParams.Len() > 0 {
19249		return invalidParams
19250	}
19251	return nil
19252}
19253
19254// SetEncoding sets the Encoding field's value.
19255func (s *GetSSHPublicKeyInput) SetEncoding(v string) *GetSSHPublicKeyInput {
19256	s.Encoding = &v
19257	return s
19258}
19259
19260// SetSSHPublicKeyId sets the SSHPublicKeyId field's value.
19261func (s *GetSSHPublicKeyInput) SetSSHPublicKeyId(v string) *GetSSHPublicKeyInput {
19262	s.SSHPublicKeyId = &v
19263	return s
19264}
19265
19266// SetUserName sets the UserName field's value.
19267func (s *GetSSHPublicKeyInput) SetUserName(v string) *GetSSHPublicKeyInput {
19268	s.UserName = &v
19269	return s
19270}
19271
19272// Contains the response to a successful GetSSHPublicKey request.
19273// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetSSHPublicKeyResponse
19274type GetSSHPublicKeyOutput struct {
19275	_ struct{} `type:"structure"`
19276
19277	// A structure containing details about the SSH public key.
19278	SSHPublicKey *SSHPublicKey `type:"structure"`
19279}
19280
19281// String returns the string representation
19282func (s GetSSHPublicKeyOutput) String() string {
19283	return awsutil.Prettify(s)
19284}
19285
19286// GoString returns the string representation
19287func (s GetSSHPublicKeyOutput) GoString() string {
19288	return s.String()
19289}
19290
19291// SetSSHPublicKey sets the SSHPublicKey field's value.
19292func (s *GetSSHPublicKeyOutput) SetSSHPublicKey(v *SSHPublicKey) *GetSSHPublicKeyOutput {
19293	s.SSHPublicKey = v
19294	return s
19295}
19296
19297// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetServerCertificateRequest
19298type GetServerCertificateInput struct {
19299	_ struct{} `type:"structure"`
19300
19301	// The name of the server certificate you want to retrieve information about.
19302	//
19303	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
19304	// a string of characters consisting of upper and lowercase alphanumeric characters
19305	// with no spaces. You can also include any of the following characters: =,.@-
19306	//
19307	// ServerCertificateName is a required field
19308	ServerCertificateName *string `min:"1" type:"string" required:"true"`
19309}
19310
19311// String returns the string representation
19312func (s GetServerCertificateInput) String() string {
19313	return awsutil.Prettify(s)
19314}
19315
19316// GoString returns the string representation
19317func (s GetServerCertificateInput) GoString() string {
19318	return s.String()
19319}
19320
19321// Validate inspects the fields of the type to determine if they are valid.
19322func (s *GetServerCertificateInput) Validate() error {
19323	invalidParams := request.ErrInvalidParams{Context: "GetServerCertificateInput"}
19324	if s.ServerCertificateName == nil {
19325		invalidParams.Add(request.NewErrParamRequired("ServerCertificateName"))
19326	}
19327	if s.ServerCertificateName != nil && len(*s.ServerCertificateName) < 1 {
19328		invalidParams.Add(request.NewErrParamMinLen("ServerCertificateName", 1))
19329	}
19330
19331	if invalidParams.Len() > 0 {
19332		return invalidParams
19333	}
19334	return nil
19335}
19336
19337// SetServerCertificateName sets the ServerCertificateName field's value.
19338func (s *GetServerCertificateInput) SetServerCertificateName(v string) *GetServerCertificateInput {
19339	s.ServerCertificateName = &v
19340	return s
19341}
19342
19343// Contains the response to a successful GetServerCertificate request.
19344// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetServerCertificateResponse
19345type GetServerCertificateOutput struct {
19346	_ struct{} `type:"structure"`
19347
19348	// A structure containing details about the server certificate.
19349	//
19350	// ServerCertificate is a required field
19351	ServerCertificate *ServerCertificate `type:"structure" required:"true"`
19352}
19353
19354// String returns the string representation
19355func (s GetServerCertificateOutput) String() string {
19356	return awsutil.Prettify(s)
19357}
19358
19359// GoString returns the string representation
19360func (s GetServerCertificateOutput) GoString() string {
19361	return s.String()
19362}
19363
19364// SetServerCertificate sets the ServerCertificate field's value.
19365func (s *GetServerCertificateOutput) SetServerCertificate(v *ServerCertificate) *GetServerCertificateOutput {
19366	s.ServerCertificate = v
19367	return s
19368}
19369
19370// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetServiceLinkedRoleDeletionStatusRequest
19371type GetServiceLinkedRoleDeletionStatusInput struct {
19372	_ struct{} `type:"structure"`
19373
19374	// The deletion task identifier. This identifier is returned by the DeleteServiceLinkedRole
19375	// operation in the format task/aws-service-role/<service-principal-name>/<role-name>/<task-uuid>.
19376	//
19377	// DeletionTaskId is a required field
19378	DeletionTaskId *string `min:"1" type:"string" required:"true"`
19379}
19380
19381// String returns the string representation
19382func (s GetServiceLinkedRoleDeletionStatusInput) String() string {
19383	return awsutil.Prettify(s)
19384}
19385
19386// GoString returns the string representation
19387func (s GetServiceLinkedRoleDeletionStatusInput) GoString() string {
19388	return s.String()
19389}
19390
19391// Validate inspects the fields of the type to determine if they are valid.
19392func (s *GetServiceLinkedRoleDeletionStatusInput) Validate() error {
19393	invalidParams := request.ErrInvalidParams{Context: "GetServiceLinkedRoleDeletionStatusInput"}
19394	if s.DeletionTaskId == nil {
19395		invalidParams.Add(request.NewErrParamRequired("DeletionTaskId"))
19396	}
19397	if s.DeletionTaskId != nil && len(*s.DeletionTaskId) < 1 {
19398		invalidParams.Add(request.NewErrParamMinLen("DeletionTaskId", 1))
19399	}
19400
19401	if invalidParams.Len() > 0 {
19402		return invalidParams
19403	}
19404	return nil
19405}
19406
19407// SetDeletionTaskId sets the DeletionTaskId field's value.
19408func (s *GetServiceLinkedRoleDeletionStatusInput) SetDeletionTaskId(v string) *GetServiceLinkedRoleDeletionStatusInput {
19409	s.DeletionTaskId = &v
19410	return s
19411}
19412
19413// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetServiceLinkedRoleDeletionStatusResponse
19414type GetServiceLinkedRoleDeletionStatusOutput struct {
19415	_ struct{} `type:"structure"`
19416
19417	// An object that contains details about the reason the deletion failed.
19418	Reason *DeletionTaskFailureReasonType `type:"structure"`
19419
19420	// The status of the deletion.
19421	//
19422	// Status is a required field
19423	Status *string `type:"string" required:"true" enum:"DeletionTaskStatusType"`
19424}
19425
19426// String returns the string representation
19427func (s GetServiceLinkedRoleDeletionStatusOutput) String() string {
19428	return awsutil.Prettify(s)
19429}
19430
19431// GoString returns the string representation
19432func (s GetServiceLinkedRoleDeletionStatusOutput) GoString() string {
19433	return s.String()
19434}
19435
19436// SetReason sets the Reason field's value.
19437func (s *GetServiceLinkedRoleDeletionStatusOutput) SetReason(v *DeletionTaskFailureReasonType) *GetServiceLinkedRoleDeletionStatusOutput {
19438	s.Reason = v
19439	return s
19440}
19441
19442// SetStatus sets the Status field's value.
19443func (s *GetServiceLinkedRoleDeletionStatusOutput) SetStatus(v string) *GetServiceLinkedRoleDeletionStatusOutput {
19444	s.Status = &v
19445	return s
19446}
19447
19448// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetUserRequest
19449type GetUserInput struct {
19450	_ struct{} `type:"structure"`
19451
19452	// The name of the user to get information about.
19453	//
19454	// This parameter is optional. If it is not included, it defaults to the user
19455	// making the request. This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
19456	// a string of characters consisting of upper and lowercase alphanumeric characters
19457	// with no spaces. You can also include any of the following characters: =,.@-
19458	UserName *string `min:"1" type:"string"`
19459}
19460
19461// String returns the string representation
19462func (s GetUserInput) String() string {
19463	return awsutil.Prettify(s)
19464}
19465
19466// GoString returns the string representation
19467func (s GetUserInput) GoString() string {
19468	return s.String()
19469}
19470
19471// Validate inspects the fields of the type to determine if they are valid.
19472func (s *GetUserInput) Validate() error {
19473	invalidParams := request.ErrInvalidParams{Context: "GetUserInput"}
19474	if s.UserName != nil && len(*s.UserName) < 1 {
19475		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
19476	}
19477
19478	if invalidParams.Len() > 0 {
19479		return invalidParams
19480	}
19481	return nil
19482}
19483
19484// SetUserName sets the UserName field's value.
19485func (s *GetUserInput) SetUserName(v string) *GetUserInput {
19486	s.UserName = &v
19487	return s
19488}
19489
19490// Contains the response to a successful GetUser request.
19491// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetUserResponse
19492type GetUserOutput struct {
19493	_ struct{} `type:"structure"`
19494
19495	// A structure containing details about the IAM user.
19496	//
19497	// User is a required field
19498	User *User `type:"structure" required:"true"`
19499}
19500
19501// String returns the string representation
19502func (s GetUserOutput) String() string {
19503	return awsutil.Prettify(s)
19504}
19505
19506// GoString returns the string representation
19507func (s GetUserOutput) GoString() string {
19508	return s.String()
19509}
19510
19511// SetUser sets the User field's value.
19512func (s *GetUserOutput) SetUser(v *User) *GetUserOutput {
19513	s.User = v
19514	return s
19515}
19516
19517// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetUserPolicyRequest
19518type GetUserPolicyInput struct {
19519	_ struct{} `type:"structure"`
19520
19521	// The name of the policy document to get.
19522	//
19523	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
19524	// a string of characters consisting of upper and lowercase alphanumeric characters
19525	// with no spaces. You can also include any of the following characters: =,.@-+
19526	//
19527	// PolicyName is a required field
19528	PolicyName *string `min:"1" type:"string" required:"true"`
19529
19530	// The name of the user who the policy is associated with.
19531	//
19532	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
19533	// a string of characters consisting of upper and lowercase alphanumeric characters
19534	// with no spaces. You can also include any of the following characters: =,.@-
19535	//
19536	// UserName is a required field
19537	UserName *string `min:"1" type:"string" required:"true"`
19538}
19539
19540// String returns the string representation
19541func (s GetUserPolicyInput) String() string {
19542	return awsutil.Prettify(s)
19543}
19544
19545// GoString returns the string representation
19546func (s GetUserPolicyInput) GoString() string {
19547	return s.String()
19548}
19549
19550// Validate inspects the fields of the type to determine if they are valid.
19551func (s *GetUserPolicyInput) Validate() error {
19552	invalidParams := request.ErrInvalidParams{Context: "GetUserPolicyInput"}
19553	if s.PolicyName == nil {
19554		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
19555	}
19556	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
19557		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
19558	}
19559	if s.UserName == nil {
19560		invalidParams.Add(request.NewErrParamRequired("UserName"))
19561	}
19562	if s.UserName != nil && len(*s.UserName) < 1 {
19563		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
19564	}
19565
19566	if invalidParams.Len() > 0 {
19567		return invalidParams
19568	}
19569	return nil
19570}
19571
19572// SetPolicyName sets the PolicyName field's value.
19573func (s *GetUserPolicyInput) SetPolicyName(v string) *GetUserPolicyInput {
19574	s.PolicyName = &v
19575	return s
19576}
19577
19578// SetUserName sets the UserName field's value.
19579func (s *GetUserPolicyInput) SetUserName(v string) *GetUserPolicyInput {
19580	s.UserName = &v
19581	return s
19582}
19583
19584// Contains the response to a successful GetUserPolicy request.
19585// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetUserPolicyResponse
19586type GetUserPolicyOutput struct {
19587	_ struct{} `type:"structure"`
19588
19589	// The policy document.
19590	//
19591	// PolicyDocument is a required field
19592	PolicyDocument *string `min:"1" type:"string" required:"true"`
19593
19594	// The name of the policy.
19595	//
19596	// PolicyName is a required field
19597	PolicyName *string `min:"1" type:"string" required:"true"`
19598
19599	// The user the policy is associated with.
19600	//
19601	// UserName is a required field
19602	UserName *string `min:"1" type:"string" required:"true"`
19603}
19604
19605// String returns the string representation
19606func (s GetUserPolicyOutput) String() string {
19607	return awsutil.Prettify(s)
19608}
19609
19610// GoString returns the string representation
19611func (s GetUserPolicyOutput) GoString() string {
19612	return s.String()
19613}
19614
19615// SetPolicyDocument sets the PolicyDocument field's value.
19616func (s *GetUserPolicyOutput) SetPolicyDocument(v string) *GetUserPolicyOutput {
19617	s.PolicyDocument = &v
19618	return s
19619}
19620
19621// SetPolicyName sets the PolicyName field's value.
19622func (s *GetUserPolicyOutput) SetPolicyName(v string) *GetUserPolicyOutput {
19623	s.PolicyName = &v
19624	return s
19625}
19626
19627// SetUserName sets the UserName field's value.
19628func (s *GetUserPolicyOutput) SetUserName(v string) *GetUserPolicyOutput {
19629	s.UserName = &v
19630	return s
19631}
19632
19633// Contains information about an IAM group entity.
19634//
19635// This data type is used as a response element in the following actions:
19636//
19637//    * CreateGroup
19638//
19639//    * GetGroup
19640//
19641//    * ListGroups
19642// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/Group
19643type Group struct {
19644	_ struct{} `type:"structure"`
19645
19646	// The Amazon Resource Name (ARN) specifying the group. For more information
19647	// about ARNs and how to use them in policies, see IAM Identifiers (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
19648	// in the Using IAM guide.
19649	//
19650	// Arn is a required field
19651	Arn *string `min:"20" type:"string" required:"true"`
19652
19653	// The date and time, in ISO 8601 date-time format (http://www.iso.org/iso/iso8601),
19654	// when the group was created.
19655	//
19656	// CreateDate is a required field
19657	CreateDate *time.Time `type:"timestamp" timestampFormat:"iso8601" required:"true"`
19658
19659	// The stable and unique string identifying the group. For more information
19660	// about IDs, see IAM Identifiers (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
19661	// in the Using IAM guide.
19662	//
19663	// GroupId is a required field
19664	GroupId *string `min:"16" type:"string" required:"true"`
19665
19666	// The friendly name that identifies the group.
19667	//
19668	// GroupName is a required field
19669	GroupName *string `min:"1" type:"string" required:"true"`
19670
19671	// The path to the group. For more information about paths, see IAM Identifiers
19672	// (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
19673	// in the Using IAM guide.
19674	//
19675	// Path is a required field
19676	Path *string `min:"1" type:"string" required:"true"`
19677}
19678
19679// String returns the string representation
19680func (s Group) String() string {
19681	return awsutil.Prettify(s)
19682}
19683
19684// GoString returns the string representation
19685func (s Group) GoString() string {
19686	return s.String()
19687}
19688
19689// SetArn sets the Arn field's value.
19690func (s *Group) SetArn(v string) *Group {
19691	s.Arn = &v
19692	return s
19693}
19694
19695// SetCreateDate sets the CreateDate field's value.
19696func (s *Group) SetCreateDate(v time.Time) *Group {
19697	s.CreateDate = &v
19698	return s
19699}
19700
19701// SetGroupId sets the GroupId field's value.
19702func (s *Group) SetGroupId(v string) *Group {
19703	s.GroupId = &v
19704	return s
19705}
19706
19707// SetGroupName sets the GroupName field's value.
19708func (s *Group) SetGroupName(v string) *Group {
19709	s.GroupName = &v
19710	return s
19711}
19712
19713// SetPath sets the Path field's value.
19714func (s *Group) SetPath(v string) *Group {
19715	s.Path = &v
19716	return s
19717}
19718
19719// Contains information about an IAM group, including all of the group's policies.
19720//
19721// This data type is used as a response element in the GetAccountAuthorizationDetails
19722// action.
19723// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GroupDetail
19724type GroupDetail struct {
19725	_ struct{} `type:"structure"`
19726
19727	// The Amazon Resource Name (ARN). ARNs are unique identifiers for AWS resources.
19728	//
19729	// For more information about ARNs, go to Amazon Resource Names (ARNs) and AWS
19730	// Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
19731	// in the AWS General Reference.
19732	Arn *string `min:"20" type:"string"`
19733
19734	// A list of the managed policies attached to the group.
19735	AttachedManagedPolicies []*AttachedPolicy `type:"list"`
19736
19737	// The date and time, in ISO 8601 date-time format (http://www.iso.org/iso/iso8601),
19738	// when the group was created.
19739	CreateDate *time.Time `type:"timestamp" timestampFormat:"iso8601"`
19740
19741	// The stable and unique string identifying the group. For more information
19742	// about IDs, see IAM Identifiers (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
19743	// in the Using IAM guide.
19744	GroupId *string `min:"16" type:"string"`
19745
19746	// The friendly name that identifies the group.
19747	GroupName *string `min:"1" type:"string"`
19748
19749	// A list of the inline policies embedded in the group.
19750	GroupPolicyList []*PolicyDetail `type:"list"`
19751
19752	// The path to the group. For more information about paths, see IAM Identifiers
19753	// (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
19754	// in the Using IAM guide.
19755	Path *string `min:"1" type:"string"`
19756}
19757
19758// String returns the string representation
19759func (s GroupDetail) String() string {
19760	return awsutil.Prettify(s)
19761}
19762
19763// GoString returns the string representation
19764func (s GroupDetail) GoString() string {
19765	return s.String()
19766}
19767
19768// SetArn sets the Arn field's value.
19769func (s *GroupDetail) SetArn(v string) *GroupDetail {
19770	s.Arn = &v
19771	return s
19772}
19773
19774// SetAttachedManagedPolicies sets the AttachedManagedPolicies field's value.
19775func (s *GroupDetail) SetAttachedManagedPolicies(v []*AttachedPolicy) *GroupDetail {
19776	s.AttachedManagedPolicies = v
19777	return s
19778}
19779
19780// SetCreateDate sets the CreateDate field's value.
19781func (s *GroupDetail) SetCreateDate(v time.Time) *GroupDetail {
19782	s.CreateDate = &v
19783	return s
19784}
19785
19786// SetGroupId sets the GroupId field's value.
19787func (s *GroupDetail) SetGroupId(v string) *GroupDetail {
19788	s.GroupId = &v
19789	return s
19790}
19791
19792// SetGroupName sets the GroupName field's value.
19793func (s *GroupDetail) SetGroupName(v string) *GroupDetail {
19794	s.GroupName = &v
19795	return s
19796}
19797
19798// SetGroupPolicyList sets the GroupPolicyList field's value.
19799func (s *GroupDetail) SetGroupPolicyList(v []*PolicyDetail) *GroupDetail {
19800	s.GroupPolicyList = v
19801	return s
19802}
19803
19804// SetPath sets the Path field's value.
19805func (s *GroupDetail) SetPath(v string) *GroupDetail {
19806	s.Path = &v
19807	return s
19808}
19809
19810// Contains information about an instance profile.
19811//
19812// This data type is used as a response element in the following actions:
19813//
19814//    * CreateInstanceProfile
19815//
19816//    * GetInstanceProfile
19817//
19818//    * ListInstanceProfiles
19819//
19820//    * ListInstanceProfilesForRole
19821// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/InstanceProfile
19822type InstanceProfile struct {
19823	_ struct{} `type:"structure"`
19824
19825	// The Amazon Resource Name (ARN) specifying the instance profile. For more
19826	// information about ARNs and how to use them in policies, see IAM Identifiers
19827	// (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
19828	// in the Using IAM guide.
19829	//
19830	// Arn is a required field
19831	Arn *string `min:"20" type:"string" required:"true"`
19832
19833	// The date when the instance profile was created.
19834	//
19835	// CreateDate is a required field
19836	CreateDate *time.Time `type:"timestamp" timestampFormat:"iso8601" required:"true"`
19837
19838	// The stable and unique string identifying the instance profile. For more information
19839	// about IDs, see IAM Identifiers (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
19840	// in the Using IAM guide.
19841	//
19842	// InstanceProfileId is a required field
19843	InstanceProfileId *string `min:"16" type:"string" required:"true"`
19844
19845	// The name identifying the instance profile.
19846	//
19847	// InstanceProfileName is a required field
19848	InstanceProfileName *string `min:"1" type:"string" required:"true"`
19849
19850	// The path to the instance profile. For more information about paths, see IAM
19851	// Identifiers (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
19852	// in the Using IAM guide.
19853	//
19854	// Path is a required field
19855	Path *string `min:"1" type:"string" required:"true"`
19856
19857	// The role associated with the instance profile.
19858	//
19859	// Roles is a required field
19860	Roles []*Role `type:"list" required:"true"`
19861}
19862
19863// String returns the string representation
19864func (s InstanceProfile) String() string {
19865	return awsutil.Prettify(s)
19866}
19867
19868// GoString returns the string representation
19869func (s InstanceProfile) GoString() string {
19870	return s.String()
19871}
19872
19873// SetArn sets the Arn field's value.
19874func (s *InstanceProfile) SetArn(v string) *InstanceProfile {
19875	s.Arn = &v
19876	return s
19877}
19878
19879// SetCreateDate sets the CreateDate field's value.
19880func (s *InstanceProfile) SetCreateDate(v time.Time) *InstanceProfile {
19881	s.CreateDate = &v
19882	return s
19883}
19884
19885// SetInstanceProfileId sets the InstanceProfileId field's value.
19886func (s *InstanceProfile) SetInstanceProfileId(v string) *InstanceProfile {
19887	s.InstanceProfileId = &v
19888	return s
19889}
19890
19891// SetInstanceProfileName sets the InstanceProfileName field's value.
19892func (s *InstanceProfile) SetInstanceProfileName(v string) *InstanceProfile {
19893	s.InstanceProfileName = &v
19894	return s
19895}
19896
19897// SetPath sets the Path field's value.
19898func (s *InstanceProfile) SetPath(v string) *InstanceProfile {
19899	s.Path = &v
19900	return s
19901}
19902
19903// SetRoles sets the Roles field's value.
19904func (s *InstanceProfile) SetRoles(v []*Role) *InstanceProfile {
19905	s.Roles = v
19906	return s
19907}
19908
19909// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListAccessKeysRequest
19910type ListAccessKeysInput struct {
19911	_ struct{} `type:"structure"`
19912
19913	// Use this parameter only when paginating results and only after you receive
19914	// a response indicating that the results are truncated. Set it to the value
19915	// of the Marker element in the response that you received to indicate where
19916	// the next call should start.
19917	Marker *string `min:"1" type:"string"`
19918
19919	// (Optional) Use this only when paginating results to indicate the maximum
19920	// number of items you want in the response. If additional items exist beyond
19921	// the maximum you specify, the IsTruncated response element is true.
19922	//
19923	// If you do not include this parameter, it defaults to 100. Note that IAM might
19924	// return fewer results, even when there are more results available. In that
19925	// case, the IsTruncated response element returns true and Marker contains a
19926	// value to include in the subsequent call that tells the service where to continue
19927	// from.
19928	MaxItems *int64 `min:"1" type:"integer"`
19929
19930	// The name of the user.
19931	//
19932	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
19933	// a string of characters consisting of upper and lowercase alphanumeric characters
19934	// with no spaces. You can also include any of the following characters: =,.@-
19935	UserName *string `min:"1" type:"string"`
19936}
19937
19938// String returns the string representation
19939func (s ListAccessKeysInput) String() string {
19940	return awsutil.Prettify(s)
19941}
19942
19943// GoString returns the string representation
19944func (s ListAccessKeysInput) GoString() string {
19945	return s.String()
19946}
19947
19948// Validate inspects the fields of the type to determine if they are valid.
19949func (s *ListAccessKeysInput) Validate() error {
19950	invalidParams := request.ErrInvalidParams{Context: "ListAccessKeysInput"}
19951	if s.Marker != nil && len(*s.Marker) < 1 {
19952		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
19953	}
19954	if s.MaxItems != nil && *s.MaxItems < 1 {
19955		invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
19956	}
19957	if s.UserName != nil && len(*s.UserName) < 1 {
19958		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
19959	}
19960
19961	if invalidParams.Len() > 0 {
19962		return invalidParams
19963	}
19964	return nil
19965}
19966
19967// SetMarker sets the Marker field's value.
19968func (s *ListAccessKeysInput) SetMarker(v string) *ListAccessKeysInput {
19969	s.Marker = &v
19970	return s
19971}
19972
19973// SetMaxItems sets the MaxItems field's value.
19974func (s *ListAccessKeysInput) SetMaxItems(v int64) *ListAccessKeysInput {
19975	s.MaxItems = &v
19976	return s
19977}
19978
19979// SetUserName sets the UserName field's value.
19980func (s *ListAccessKeysInput) SetUserName(v string) *ListAccessKeysInput {
19981	s.UserName = &v
19982	return s
19983}
19984
19985// Contains the response to a successful ListAccessKeys request.
19986// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListAccessKeysResponse
19987type ListAccessKeysOutput struct {
19988	_ struct{} `type:"structure"`
19989
19990	// A list of objects containing metadata about the access keys.
19991	//
19992	// AccessKeyMetadata is a required field
19993	AccessKeyMetadata []*AccessKeyMetadata `type:"list" required:"true"`
19994
19995	// A flag that indicates whether there are more items to return. If your results
19996	// were truncated, you can make a subsequent pagination request using the Marker
19997	// request parameter to retrieve more items. Note that IAM might return fewer
19998	// than the MaxItems number of results even when there are more results available.
19999	// We recommend that you check IsTruncated after every call to ensure that you
20000	// receive all of your results.
20001	IsTruncated *bool `type:"boolean"`
20002
20003	// When IsTruncated is true, this element is present and contains the value
20004	// to use for the Marker parameter in a subsequent pagination request.
20005	Marker *string `min:"1" type:"string"`
20006}
20007
20008// String returns the string representation
20009func (s ListAccessKeysOutput) String() string {
20010	return awsutil.Prettify(s)
20011}
20012
20013// GoString returns the string representation
20014func (s ListAccessKeysOutput) GoString() string {
20015	return s.String()
20016}
20017
20018// SetAccessKeyMetadata sets the AccessKeyMetadata field's value.
20019func (s *ListAccessKeysOutput) SetAccessKeyMetadata(v []*AccessKeyMetadata) *ListAccessKeysOutput {
20020	s.AccessKeyMetadata = v
20021	return s
20022}
20023
20024// SetIsTruncated sets the IsTruncated field's value.
20025func (s *ListAccessKeysOutput) SetIsTruncated(v bool) *ListAccessKeysOutput {
20026	s.IsTruncated = &v
20027	return s
20028}
20029
20030// SetMarker sets the Marker field's value.
20031func (s *ListAccessKeysOutput) SetMarker(v string) *ListAccessKeysOutput {
20032	s.Marker = &v
20033	return s
20034}
20035
20036// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListAccountAliasesRequest
20037type ListAccountAliasesInput struct {
20038	_ struct{} `type:"structure"`
20039
20040	// Use this parameter only when paginating results and only after you receive
20041	// a response indicating that the results are truncated. Set it to the value
20042	// of the Marker element in the response that you received to indicate where
20043	// the next call should start.
20044	Marker *string `min:"1" type:"string"`
20045
20046	// (Optional) Use this only when paginating results to indicate the maximum
20047	// number of items you want in the response. If additional items exist beyond
20048	// the maximum you specify, the IsTruncated response element is true.
20049	//
20050	// If you do not include this parameter, it defaults to 100. Note that IAM might
20051	// return fewer results, even when there are more results available. In that
20052	// case, the IsTruncated response element returns true and Marker contains a
20053	// value to include in the subsequent call that tells the service where to continue
20054	// from.
20055	MaxItems *int64 `min:"1" type:"integer"`
20056}
20057
20058// String returns the string representation
20059func (s ListAccountAliasesInput) String() string {
20060	return awsutil.Prettify(s)
20061}
20062
20063// GoString returns the string representation
20064func (s ListAccountAliasesInput) GoString() string {
20065	return s.String()
20066}
20067
20068// Validate inspects the fields of the type to determine if they are valid.
20069func (s *ListAccountAliasesInput) Validate() error {
20070	invalidParams := request.ErrInvalidParams{Context: "ListAccountAliasesInput"}
20071	if s.Marker != nil && len(*s.Marker) < 1 {
20072		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
20073	}
20074	if s.MaxItems != nil && *s.MaxItems < 1 {
20075		invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
20076	}
20077
20078	if invalidParams.Len() > 0 {
20079		return invalidParams
20080	}
20081	return nil
20082}
20083
20084// SetMarker sets the Marker field's value.
20085func (s *ListAccountAliasesInput) SetMarker(v string) *ListAccountAliasesInput {
20086	s.Marker = &v
20087	return s
20088}
20089
20090// SetMaxItems sets the MaxItems field's value.
20091func (s *ListAccountAliasesInput) SetMaxItems(v int64) *ListAccountAliasesInput {
20092	s.MaxItems = &v
20093	return s
20094}
20095
20096// Contains the response to a successful ListAccountAliases request.
20097// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListAccountAliasesResponse
20098type ListAccountAliasesOutput struct {
20099	_ struct{} `type:"structure"`
20100
20101	// A list of aliases associated with the account. AWS supports only one alias
20102	// per account.
20103	//
20104	// AccountAliases is a required field
20105	AccountAliases []*string `type:"list" required:"true"`
20106
20107	// A flag that indicates whether there are more items to return. If your results
20108	// were truncated, you can make a subsequent pagination request using the Marker
20109	// request parameter to retrieve more items. Note that IAM might return fewer
20110	// than the MaxItems number of results even when there are more results available.
20111	// We recommend that you check IsTruncated after every call to ensure that you
20112	// receive all of your results.
20113	IsTruncated *bool `type:"boolean"`
20114
20115	// When IsTruncated is true, this element is present and contains the value
20116	// to use for the Marker parameter in a subsequent pagination request.
20117	Marker *string `min:"1" type:"string"`
20118}
20119
20120// String returns the string representation
20121func (s ListAccountAliasesOutput) String() string {
20122	return awsutil.Prettify(s)
20123}
20124
20125// GoString returns the string representation
20126func (s ListAccountAliasesOutput) GoString() string {
20127	return s.String()
20128}
20129
20130// SetAccountAliases sets the AccountAliases field's value.
20131func (s *ListAccountAliasesOutput) SetAccountAliases(v []*string) *ListAccountAliasesOutput {
20132	s.AccountAliases = v
20133	return s
20134}
20135
20136// SetIsTruncated sets the IsTruncated field's value.
20137func (s *ListAccountAliasesOutput) SetIsTruncated(v bool) *ListAccountAliasesOutput {
20138	s.IsTruncated = &v
20139	return s
20140}
20141
20142// SetMarker sets the Marker field's value.
20143func (s *ListAccountAliasesOutput) SetMarker(v string) *ListAccountAliasesOutput {
20144	s.Marker = &v
20145	return s
20146}
20147
20148// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListAttachedGroupPoliciesRequest
20149type ListAttachedGroupPoliciesInput struct {
20150	_ struct{} `type:"structure"`
20151
20152	// The name (friendly name, not ARN) of the group to list attached policies
20153	// for.
20154	//
20155	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
20156	// a string of characters consisting of upper and lowercase alphanumeric characters
20157	// with no spaces. You can also include any of the following characters: =,.@-
20158	//
20159	// GroupName is a required field
20160	GroupName *string `min:"1" type:"string" required:"true"`
20161
20162	// Use this parameter only when paginating results and only after you receive
20163	// a response indicating that the results are truncated. Set it to the value
20164	// of the Marker element in the response that you received to indicate where
20165	// the next call should start.
20166	Marker *string `min:"1" type:"string"`
20167
20168	// (Optional) Use this only when paginating results to indicate the maximum
20169	// number of items you want in the response. If additional items exist beyond
20170	// the maximum you specify, the IsTruncated response element is true.
20171	//
20172	// If you do not include this parameter, it defaults to 100. Note that IAM might
20173	// return fewer results, even when there are more results available. In that
20174	// case, the IsTruncated response element returns true and Marker contains a
20175	// value to include in the subsequent call that tells the service where to continue
20176	// from.
20177	MaxItems *int64 `min:"1" type:"integer"`
20178
20179	// The path prefix for filtering the results. This parameter is optional. If
20180	// it is not included, it defaults to a slash (/), listing all policies.
20181	//
20182	// This paramater allows (per its regex pattern (http://wikipedia.org/wiki/regex))
20183	// a string of characters consisting of either a forward slash (/) by itself
20184	// or a string that must begin and end with forward slashes, containing any
20185	// ASCII character from the ! (\u0021) thru the DEL character (\u007F), including
20186	// most punctuation characters, digits, and upper and lowercased letters.
20187	PathPrefix *string `type:"string"`
20188}
20189
20190// String returns the string representation
20191func (s ListAttachedGroupPoliciesInput) String() string {
20192	return awsutil.Prettify(s)
20193}
20194
20195// GoString returns the string representation
20196func (s ListAttachedGroupPoliciesInput) GoString() string {
20197	return s.String()
20198}
20199
20200// Validate inspects the fields of the type to determine if they are valid.
20201func (s *ListAttachedGroupPoliciesInput) Validate() error {
20202	invalidParams := request.ErrInvalidParams{Context: "ListAttachedGroupPoliciesInput"}
20203	if s.GroupName == nil {
20204		invalidParams.Add(request.NewErrParamRequired("GroupName"))
20205	}
20206	if s.GroupName != nil && len(*s.GroupName) < 1 {
20207		invalidParams.Add(request.NewErrParamMinLen("GroupName", 1))
20208	}
20209	if s.Marker != nil && len(*s.Marker) < 1 {
20210		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
20211	}
20212	if s.MaxItems != nil && *s.MaxItems < 1 {
20213		invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
20214	}
20215
20216	if invalidParams.Len() > 0 {
20217		return invalidParams
20218	}
20219	return nil
20220}
20221
20222// SetGroupName sets the GroupName field's value.
20223func (s *ListAttachedGroupPoliciesInput) SetGroupName(v string) *ListAttachedGroupPoliciesInput {
20224	s.GroupName = &v
20225	return s
20226}
20227
20228// SetMarker sets the Marker field's value.
20229func (s *ListAttachedGroupPoliciesInput) SetMarker(v string) *ListAttachedGroupPoliciesInput {
20230	s.Marker = &v
20231	return s
20232}
20233
20234// SetMaxItems sets the MaxItems field's value.
20235func (s *ListAttachedGroupPoliciesInput) SetMaxItems(v int64) *ListAttachedGroupPoliciesInput {
20236	s.MaxItems = &v
20237	return s
20238}
20239
20240// SetPathPrefix sets the PathPrefix field's value.
20241func (s *ListAttachedGroupPoliciesInput) SetPathPrefix(v string) *ListAttachedGroupPoliciesInput {
20242	s.PathPrefix = &v
20243	return s
20244}
20245
20246// Contains the response to a successful ListAttachedGroupPolicies request.
20247// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListAttachedGroupPoliciesResponse
20248type ListAttachedGroupPoliciesOutput struct {
20249	_ struct{} `type:"structure"`
20250
20251	// A list of the attached policies.
20252	AttachedPolicies []*AttachedPolicy `type:"list"`
20253
20254	// A flag that indicates whether there are more items to return. If your results
20255	// were truncated, you can make a subsequent pagination request using the Marker
20256	// request parameter to retrieve more items. Note that IAM might return fewer
20257	// than the MaxItems number of results even when there are more results available.
20258	// We recommend that you check IsTruncated after every call to ensure that you
20259	// receive all of your results.
20260	IsTruncated *bool `type:"boolean"`
20261
20262	// When IsTruncated is true, this element is present and contains the value
20263	// to use for the Marker parameter in a subsequent pagination request.
20264	Marker *string `min:"1" type:"string"`
20265}
20266
20267// String returns the string representation
20268func (s ListAttachedGroupPoliciesOutput) String() string {
20269	return awsutil.Prettify(s)
20270}
20271
20272// GoString returns the string representation
20273func (s ListAttachedGroupPoliciesOutput) GoString() string {
20274	return s.String()
20275}
20276
20277// SetAttachedPolicies sets the AttachedPolicies field's value.
20278func (s *ListAttachedGroupPoliciesOutput) SetAttachedPolicies(v []*AttachedPolicy) *ListAttachedGroupPoliciesOutput {
20279	s.AttachedPolicies = v
20280	return s
20281}
20282
20283// SetIsTruncated sets the IsTruncated field's value.
20284func (s *ListAttachedGroupPoliciesOutput) SetIsTruncated(v bool) *ListAttachedGroupPoliciesOutput {
20285	s.IsTruncated = &v
20286	return s
20287}
20288
20289// SetMarker sets the Marker field's value.
20290func (s *ListAttachedGroupPoliciesOutput) SetMarker(v string) *ListAttachedGroupPoliciesOutput {
20291	s.Marker = &v
20292	return s
20293}
20294
20295// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListAttachedRolePoliciesRequest
20296type ListAttachedRolePoliciesInput struct {
20297	_ struct{} `type:"structure"`
20298
20299	// Use this parameter only when paginating results and only after you receive
20300	// a response indicating that the results are truncated. Set it to the value
20301	// of the Marker element in the response that you received to indicate where
20302	// the next call should start.
20303	Marker *string `min:"1" type:"string"`
20304
20305	// (Optional) Use this only when paginating results to indicate the maximum
20306	// number of items you want in the response. If additional items exist beyond
20307	// the maximum you specify, the IsTruncated response element is true.
20308	//
20309	// If you do not include this parameter, it defaults to 100. Note that IAM might
20310	// return fewer results, even when there are more results available. In that
20311	// case, the IsTruncated response element returns true and Marker contains a
20312	// value to include in the subsequent call that tells the service where to continue
20313	// from.
20314	MaxItems *int64 `min:"1" type:"integer"`
20315
20316	// The path prefix for filtering the results. This parameter is optional. If
20317	// it is not included, it defaults to a slash (/), listing all policies.
20318	//
20319	// This paramater allows (per its regex pattern (http://wikipedia.org/wiki/regex))
20320	// a string of characters consisting of either a forward slash (/) by itself
20321	// or a string that must begin and end with forward slashes, containing any
20322	// ASCII character from the ! (\u0021) thru the DEL character (\u007F), including
20323	// most punctuation characters, digits, and upper and lowercased letters.
20324	PathPrefix *string `type:"string"`
20325
20326	// The name (friendly name, not ARN) of the role to list attached policies for.
20327	//
20328	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
20329	// a string of characters consisting of upper and lowercase alphanumeric characters
20330	// with no spaces. You can also include any of the following characters: _+=,.@-
20331	//
20332	// RoleName is a required field
20333	RoleName *string `min:"1" type:"string" required:"true"`
20334}
20335
20336// String returns the string representation
20337func (s ListAttachedRolePoliciesInput) String() string {
20338	return awsutil.Prettify(s)
20339}
20340
20341// GoString returns the string representation
20342func (s ListAttachedRolePoliciesInput) GoString() string {
20343	return s.String()
20344}
20345
20346// Validate inspects the fields of the type to determine if they are valid.
20347func (s *ListAttachedRolePoliciesInput) Validate() error {
20348	invalidParams := request.ErrInvalidParams{Context: "ListAttachedRolePoliciesInput"}
20349	if s.Marker != nil && len(*s.Marker) < 1 {
20350		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
20351	}
20352	if s.MaxItems != nil && *s.MaxItems < 1 {
20353		invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
20354	}
20355	if s.RoleName == nil {
20356		invalidParams.Add(request.NewErrParamRequired("RoleName"))
20357	}
20358	if s.RoleName != nil && len(*s.RoleName) < 1 {
20359		invalidParams.Add(request.NewErrParamMinLen("RoleName", 1))
20360	}
20361
20362	if invalidParams.Len() > 0 {
20363		return invalidParams
20364	}
20365	return nil
20366}
20367
20368// SetMarker sets the Marker field's value.
20369func (s *ListAttachedRolePoliciesInput) SetMarker(v string) *ListAttachedRolePoliciesInput {
20370	s.Marker = &v
20371	return s
20372}
20373
20374// SetMaxItems sets the MaxItems field's value.
20375func (s *ListAttachedRolePoliciesInput) SetMaxItems(v int64) *ListAttachedRolePoliciesInput {
20376	s.MaxItems = &v
20377	return s
20378}
20379
20380// SetPathPrefix sets the PathPrefix field's value.
20381func (s *ListAttachedRolePoliciesInput) SetPathPrefix(v string) *ListAttachedRolePoliciesInput {
20382	s.PathPrefix = &v
20383	return s
20384}
20385
20386// SetRoleName sets the RoleName field's value.
20387func (s *ListAttachedRolePoliciesInput) SetRoleName(v string) *ListAttachedRolePoliciesInput {
20388	s.RoleName = &v
20389	return s
20390}
20391
20392// Contains the response to a successful ListAttachedRolePolicies request.
20393// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListAttachedRolePoliciesResponse
20394type ListAttachedRolePoliciesOutput struct {
20395	_ struct{} `type:"structure"`
20396
20397	// A list of the attached policies.
20398	AttachedPolicies []*AttachedPolicy `type:"list"`
20399
20400	// A flag that indicates whether there are more items to return. If your results
20401	// were truncated, you can make a subsequent pagination request using the Marker
20402	// request parameter to retrieve more items. Note that IAM might return fewer
20403	// than the MaxItems number of results even when there are more results available.
20404	// We recommend that you check IsTruncated after every call to ensure that you
20405	// receive all of your results.
20406	IsTruncated *bool `type:"boolean"`
20407
20408	// When IsTruncated is true, this element is present and contains the value
20409	// to use for the Marker parameter in a subsequent pagination request.
20410	Marker *string `min:"1" type:"string"`
20411}
20412
20413// String returns the string representation
20414func (s ListAttachedRolePoliciesOutput) String() string {
20415	return awsutil.Prettify(s)
20416}
20417
20418// GoString returns the string representation
20419func (s ListAttachedRolePoliciesOutput) GoString() string {
20420	return s.String()
20421}
20422
20423// SetAttachedPolicies sets the AttachedPolicies field's value.
20424func (s *ListAttachedRolePoliciesOutput) SetAttachedPolicies(v []*AttachedPolicy) *ListAttachedRolePoliciesOutput {
20425	s.AttachedPolicies = v
20426	return s
20427}
20428
20429// SetIsTruncated sets the IsTruncated field's value.
20430func (s *ListAttachedRolePoliciesOutput) SetIsTruncated(v bool) *ListAttachedRolePoliciesOutput {
20431	s.IsTruncated = &v
20432	return s
20433}
20434
20435// SetMarker sets the Marker field's value.
20436func (s *ListAttachedRolePoliciesOutput) SetMarker(v string) *ListAttachedRolePoliciesOutput {
20437	s.Marker = &v
20438	return s
20439}
20440
20441// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListAttachedUserPoliciesRequest
20442type ListAttachedUserPoliciesInput struct {
20443	_ struct{} `type:"structure"`
20444
20445	// Use this parameter only when paginating results and only after you receive
20446	// a response indicating that the results are truncated. Set it to the value
20447	// of the Marker element in the response that you received to indicate where
20448	// the next call should start.
20449	Marker *string `min:"1" type:"string"`
20450
20451	// (Optional) Use this only when paginating results to indicate the maximum
20452	// number of items you want in the response. If additional items exist beyond
20453	// the maximum you specify, the IsTruncated response element is true.
20454	//
20455	// If you do not include this parameter, it defaults to 100. Note that IAM might
20456	// return fewer results, even when there are more results available. In that
20457	// case, the IsTruncated response element returns true and Marker contains a
20458	// value to include in the subsequent call that tells the service where to continue
20459	// from.
20460	MaxItems *int64 `min:"1" type:"integer"`
20461
20462	// The path prefix for filtering the results. This parameter is optional. If
20463	// it is not included, it defaults to a slash (/), listing all policies.
20464	//
20465	// This paramater allows (per its regex pattern (http://wikipedia.org/wiki/regex))
20466	// a string of characters consisting of either a forward slash (/) by itself
20467	// or a string that must begin and end with forward slashes, containing any
20468	// ASCII character from the ! (\u0021) thru the DEL character (\u007F), including
20469	// most punctuation characters, digits, and upper and lowercased letters.
20470	PathPrefix *string `type:"string"`
20471
20472	// The name (friendly name, not ARN) of the user to list attached policies for.
20473	//
20474	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
20475	// a string of characters consisting of upper and lowercase alphanumeric characters
20476	// with no spaces. You can also include any of the following characters: =,.@-
20477	//
20478	// UserName is a required field
20479	UserName *string `min:"1" type:"string" required:"true"`
20480}
20481
20482// String returns the string representation
20483func (s ListAttachedUserPoliciesInput) String() string {
20484	return awsutil.Prettify(s)
20485}
20486
20487// GoString returns the string representation
20488func (s ListAttachedUserPoliciesInput) GoString() string {
20489	return s.String()
20490}
20491
20492// Validate inspects the fields of the type to determine if they are valid.
20493func (s *ListAttachedUserPoliciesInput) Validate() error {
20494	invalidParams := request.ErrInvalidParams{Context: "ListAttachedUserPoliciesInput"}
20495	if s.Marker != nil && len(*s.Marker) < 1 {
20496		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
20497	}
20498	if s.MaxItems != nil && *s.MaxItems < 1 {
20499		invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
20500	}
20501	if s.UserName == nil {
20502		invalidParams.Add(request.NewErrParamRequired("UserName"))
20503	}
20504	if s.UserName != nil && len(*s.UserName) < 1 {
20505		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
20506	}
20507
20508	if invalidParams.Len() > 0 {
20509		return invalidParams
20510	}
20511	return nil
20512}
20513
20514// SetMarker sets the Marker field's value.
20515func (s *ListAttachedUserPoliciesInput) SetMarker(v string) *ListAttachedUserPoliciesInput {
20516	s.Marker = &v
20517	return s
20518}
20519
20520// SetMaxItems sets the MaxItems field's value.
20521func (s *ListAttachedUserPoliciesInput) SetMaxItems(v int64) *ListAttachedUserPoliciesInput {
20522	s.MaxItems = &v
20523	return s
20524}
20525
20526// SetPathPrefix sets the PathPrefix field's value.
20527func (s *ListAttachedUserPoliciesInput) SetPathPrefix(v string) *ListAttachedUserPoliciesInput {
20528	s.PathPrefix = &v
20529	return s
20530}
20531
20532// SetUserName sets the UserName field's value.
20533func (s *ListAttachedUserPoliciesInput) SetUserName(v string) *ListAttachedUserPoliciesInput {
20534	s.UserName = &v
20535	return s
20536}
20537
20538// Contains the response to a successful ListAttachedUserPolicies request.
20539// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListAttachedUserPoliciesResponse
20540type ListAttachedUserPoliciesOutput struct {
20541	_ struct{} `type:"structure"`
20542
20543	// A list of the attached policies.
20544	AttachedPolicies []*AttachedPolicy `type:"list"`
20545
20546	// A flag that indicates whether there are more items to return. If your results
20547	// were truncated, you can make a subsequent pagination request using the Marker
20548	// request parameter to retrieve more items. Note that IAM might return fewer
20549	// than the MaxItems number of results even when there are more results available.
20550	// We recommend that you check IsTruncated after every call to ensure that you
20551	// receive all of your results.
20552	IsTruncated *bool `type:"boolean"`
20553
20554	// When IsTruncated is true, this element is present and contains the value
20555	// to use for the Marker parameter in a subsequent pagination request.
20556	Marker *string `min:"1" type:"string"`
20557}
20558
20559// String returns the string representation
20560func (s ListAttachedUserPoliciesOutput) String() string {
20561	return awsutil.Prettify(s)
20562}
20563
20564// GoString returns the string representation
20565func (s ListAttachedUserPoliciesOutput) GoString() string {
20566	return s.String()
20567}
20568
20569// SetAttachedPolicies sets the AttachedPolicies field's value.
20570func (s *ListAttachedUserPoliciesOutput) SetAttachedPolicies(v []*AttachedPolicy) *ListAttachedUserPoliciesOutput {
20571	s.AttachedPolicies = v
20572	return s
20573}
20574
20575// SetIsTruncated sets the IsTruncated field's value.
20576func (s *ListAttachedUserPoliciesOutput) SetIsTruncated(v bool) *ListAttachedUserPoliciesOutput {
20577	s.IsTruncated = &v
20578	return s
20579}
20580
20581// SetMarker sets the Marker field's value.
20582func (s *ListAttachedUserPoliciesOutput) SetMarker(v string) *ListAttachedUserPoliciesOutput {
20583	s.Marker = &v
20584	return s
20585}
20586
20587// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListEntitiesForPolicyRequest
20588type ListEntitiesForPolicyInput struct {
20589	_ struct{} `type:"structure"`
20590
20591	// The entity type to use for filtering the results.
20592	//
20593	// For example, when EntityFilter is Role, only the roles that are attached
20594	// to the specified policy are returned. This parameter is optional. If it is
20595	// not included, all attached entities (users, groups, and roles) are returned.
20596	// The argument for this parameter must be one of the valid values listed below.
20597	EntityFilter *string `type:"string" enum:"EntityType"`
20598
20599	// Use this parameter only when paginating results and only after you receive
20600	// a response indicating that the results are truncated. Set it to the value
20601	// of the Marker element in the response that you received to indicate where
20602	// the next call should start.
20603	Marker *string `min:"1" type:"string"`
20604
20605	// (Optional) Use this only when paginating results to indicate the maximum
20606	// number of items you want in the response. If additional items exist beyond
20607	// the maximum you specify, the IsTruncated response element is true.
20608	//
20609	// If you do not include this parameter, it defaults to 100. Note that IAM might
20610	// return fewer results, even when there are more results available. In that
20611	// case, the IsTruncated response element returns true and Marker contains a
20612	// value to include in the subsequent call that tells the service where to continue
20613	// from.
20614	MaxItems *int64 `min:"1" type:"integer"`
20615
20616	// The path prefix for filtering the results. This parameter is optional. If
20617	// it is not included, it defaults to a slash (/), listing all entities.
20618	//
20619	// This paramater allows (per its regex pattern (http://wikipedia.org/wiki/regex))
20620	// a string of characters consisting of either a forward slash (/) by itself
20621	// or a string that must begin and end with forward slashes, containing any
20622	// ASCII character from the ! (\u0021) thru the DEL character (\u007F), including
20623	// most punctuation characters, digits, and upper and lowercased letters.
20624	PathPrefix *string `min:"1" type:"string"`
20625
20626	// The Amazon Resource Name (ARN) of the IAM policy for which you want the versions.
20627	//
20628	// For more information about ARNs, see Amazon Resource Names (ARNs) and AWS
20629	// Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
20630	// in the AWS General Reference.
20631	//
20632	// PolicyArn is a required field
20633	PolicyArn *string `min:"20" type:"string" required:"true"`
20634}
20635
20636// String returns the string representation
20637func (s ListEntitiesForPolicyInput) String() string {
20638	return awsutil.Prettify(s)
20639}
20640
20641// GoString returns the string representation
20642func (s ListEntitiesForPolicyInput) GoString() string {
20643	return s.String()
20644}
20645
20646// Validate inspects the fields of the type to determine if they are valid.
20647func (s *ListEntitiesForPolicyInput) Validate() error {
20648	invalidParams := request.ErrInvalidParams{Context: "ListEntitiesForPolicyInput"}
20649	if s.Marker != nil && len(*s.Marker) < 1 {
20650		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
20651	}
20652	if s.MaxItems != nil && *s.MaxItems < 1 {
20653		invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
20654	}
20655	if s.PathPrefix != nil && len(*s.PathPrefix) < 1 {
20656		invalidParams.Add(request.NewErrParamMinLen("PathPrefix", 1))
20657	}
20658	if s.PolicyArn == nil {
20659		invalidParams.Add(request.NewErrParamRequired("PolicyArn"))
20660	}
20661	if s.PolicyArn != nil && len(*s.PolicyArn) < 20 {
20662		invalidParams.Add(request.NewErrParamMinLen("PolicyArn", 20))
20663	}
20664
20665	if invalidParams.Len() > 0 {
20666		return invalidParams
20667	}
20668	return nil
20669}
20670
20671// SetEntityFilter sets the EntityFilter field's value.
20672func (s *ListEntitiesForPolicyInput) SetEntityFilter(v string) *ListEntitiesForPolicyInput {
20673	s.EntityFilter = &v
20674	return s
20675}
20676
20677// SetMarker sets the Marker field's value.
20678func (s *ListEntitiesForPolicyInput) SetMarker(v string) *ListEntitiesForPolicyInput {
20679	s.Marker = &v
20680	return s
20681}
20682
20683// SetMaxItems sets the MaxItems field's value.
20684func (s *ListEntitiesForPolicyInput) SetMaxItems(v int64) *ListEntitiesForPolicyInput {
20685	s.MaxItems = &v
20686	return s
20687}
20688
20689// SetPathPrefix sets the PathPrefix field's value.
20690func (s *ListEntitiesForPolicyInput) SetPathPrefix(v string) *ListEntitiesForPolicyInput {
20691	s.PathPrefix = &v
20692	return s
20693}
20694
20695// SetPolicyArn sets the PolicyArn field's value.
20696func (s *ListEntitiesForPolicyInput) SetPolicyArn(v string) *ListEntitiesForPolicyInput {
20697	s.PolicyArn = &v
20698	return s
20699}
20700
20701// Contains the response to a successful ListEntitiesForPolicy request.
20702// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListEntitiesForPolicyResponse
20703type ListEntitiesForPolicyOutput struct {
20704	_ struct{} `type:"structure"`
20705
20706	// A flag that indicates whether there are more items to return. If your results
20707	// were truncated, you can make a subsequent pagination request using the Marker
20708	// request parameter to retrieve more items. Note that IAM might return fewer
20709	// than the MaxItems number of results even when there are more results available.
20710	// We recommend that you check IsTruncated after every call to ensure that you
20711	// receive all of your results.
20712	IsTruncated *bool `type:"boolean"`
20713
20714	// When IsTruncated is true, this element is present and contains the value
20715	// to use for the Marker parameter in a subsequent pagination request.
20716	Marker *string `min:"1" type:"string"`
20717
20718	// A list of IAM groups that the policy is attached to.
20719	PolicyGroups []*PolicyGroup `type:"list"`
20720
20721	// A list of IAM roles that the policy is attached to.
20722	PolicyRoles []*PolicyRole `type:"list"`
20723
20724	// A list of IAM users that the policy is attached to.
20725	PolicyUsers []*PolicyUser `type:"list"`
20726}
20727
20728// String returns the string representation
20729func (s ListEntitiesForPolicyOutput) String() string {
20730	return awsutil.Prettify(s)
20731}
20732
20733// GoString returns the string representation
20734func (s ListEntitiesForPolicyOutput) GoString() string {
20735	return s.String()
20736}
20737
20738// SetIsTruncated sets the IsTruncated field's value.
20739func (s *ListEntitiesForPolicyOutput) SetIsTruncated(v bool) *ListEntitiesForPolicyOutput {
20740	s.IsTruncated = &v
20741	return s
20742}
20743
20744// SetMarker sets the Marker field's value.
20745func (s *ListEntitiesForPolicyOutput) SetMarker(v string) *ListEntitiesForPolicyOutput {
20746	s.Marker = &v
20747	return s
20748}
20749
20750// SetPolicyGroups sets the PolicyGroups field's value.
20751func (s *ListEntitiesForPolicyOutput) SetPolicyGroups(v []*PolicyGroup) *ListEntitiesForPolicyOutput {
20752	s.PolicyGroups = v
20753	return s
20754}
20755
20756// SetPolicyRoles sets the PolicyRoles field's value.
20757func (s *ListEntitiesForPolicyOutput) SetPolicyRoles(v []*PolicyRole) *ListEntitiesForPolicyOutput {
20758	s.PolicyRoles = v
20759	return s
20760}
20761
20762// SetPolicyUsers sets the PolicyUsers field's value.
20763func (s *ListEntitiesForPolicyOutput) SetPolicyUsers(v []*PolicyUser) *ListEntitiesForPolicyOutput {
20764	s.PolicyUsers = v
20765	return s
20766}
20767
20768// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListGroupPoliciesRequest
20769type ListGroupPoliciesInput struct {
20770	_ struct{} `type:"structure"`
20771
20772	// The name of the group to list policies for.
20773	//
20774	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
20775	// a string of characters consisting of upper and lowercase alphanumeric characters
20776	// with no spaces. You can also include any of the following characters: =,.@-
20777	//
20778	// GroupName is a required field
20779	GroupName *string `min:"1" type:"string" required:"true"`
20780
20781	// Use this parameter only when paginating results and only after you receive
20782	// a response indicating that the results are truncated. Set it to the value
20783	// of the Marker element in the response that you received to indicate where
20784	// the next call should start.
20785	Marker *string `min:"1" type:"string"`
20786
20787	// (Optional) Use this only when paginating results to indicate the maximum
20788	// number of items you want in the response. If additional items exist beyond
20789	// the maximum you specify, the IsTruncated response element is true.
20790	//
20791	// If you do not include this parameter, it defaults to 100. Note that IAM might
20792	// return fewer results, even when there are more results available. In that
20793	// case, the IsTruncated response element returns true and Marker contains a
20794	// value to include in the subsequent call that tells the service where to continue
20795	// from.
20796	MaxItems *int64 `min:"1" type:"integer"`
20797}
20798
20799// String returns the string representation
20800func (s ListGroupPoliciesInput) String() string {
20801	return awsutil.Prettify(s)
20802}
20803
20804// GoString returns the string representation
20805func (s ListGroupPoliciesInput) GoString() string {
20806	return s.String()
20807}
20808
20809// Validate inspects the fields of the type to determine if they are valid.
20810func (s *ListGroupPoliciesInput) Validate() error {
20811	invalidParams := request.ErrInvalidParams{Context: "ListGroupPoliciesInput"}
20812	if s.GroupName == nil {
20813		invalidParams.Add(request.NewErrParamRequired("GroupName"))
20814	}
20815	if s.GroupName != nil && len(*s.GroupName) < 1 {
20816		invalidParams.Add(request.NewErrParamMinLen("GroupName", 1))
20817	}
20818	if s.Marker != nil && len(*s.Marker) < 1 {
20819		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
20820	}
20821	if s.MaxItems != nil && *s.MaxItems < 1 {
20822		invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
20823	}
20824
20825	if invalidParams.Len() > 0 {
20826		return invalidParams
20827	}
20828	return nil
20829}
20830
20831// SetGroupName sets the GroupName field's value.
20832func (s *ListGroupPoliciesInput) SetGroupName(v string) *ListGroupPoliciesInput {
20833	s.GroupName = &v
20834	return s
20835}
20836
20837// SetMarker sets the Marker field's value.
20838func (s *ListGroupPoliciesInput) SetMarker(v string) *ListGroupPoliciesInput {
20839	s.Marker = &v
20840	return s
20841}
20842
20843// SetMaxItems sets the MaxItems field's value.
20844func (s *ListGroupPoliciesInput) SetMaxItems(v int64) *ListGroupPoliciesInput {
20845	s.MaxItems = &v
20846	return s
20847}
20848
20849// Contains the response to a successful ListGroupPolicies request.
20850// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListGroupPoliciesResponse
20851type ListGroupPoliciesOutput struct {
20852	_ struct{} `type:"structure"`
20853
20854	// A flag that indicates whether there are more items to return. If your results
20855	// were truncated, you can make a subsequent pagination request using the Marker
20856	// request parameter to retrieve more items. Note that IAM might return fewer
20857	// than the MaxItems number of results even when there are more results available.
20858	// We recommend that you check IsTruncated after every call to ensure that you
20859	// receive all of your results.
20860	IsTruncated *bool `type:"boolean"`
20861
20862	// When IsTruncated is true, this element is present and contains the value
20863	// to use for the Marker parameter in a subsequent pagination request.
20864	Marker *string `min:"1" type:"string"`
20865
20866	// A list of policy names.
20867	//
20868	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
20869	// a string of characters consisting of upper and lowercase alphanumeric characters
20870	// with no spaces. You can also include any of the following characters: =,.@-+
20871	//
20872	// PolicyNames is a required field
20873	PolicyNames []*string `type:"list" required:"true"`
20874}
20875
20876// String returns the string representation
20877func (s ListGroupPoliciesOutput) String() string {
20878	return awsutil.Prettify(s)
20879}
20880
20881// GoString returns the string representation
20882func (s ListGroupPoliciesOutput) GoString() string {
20883	return s.String()
20884}
20885
20886// SetIsTruncated sets the IsTruncated field's value.
20887func (s *ListGroupPoliciesOutput) SetIsTruncated(v bool) *ListGroupPoliciesOutput {
20888	s.IsTruncated = &v
20889	return s
20890}
20891
20892// SetMarker sets the Marker field's value.
20893func (s *ListGroupPoliciesOutput) SetMarker(v string) *ListGroupPoliciesOutput {
20894	s.Marker = &v
20895	return s
20896}
20897
20898// SetPolicyNames sets the PolicyNames field's value.
20899func (s *ListGroupPoliciesOutput) SetPolicyNames(v []*string) *ListGroupPoliciesOutput {
20900	s.PolicyNames = v
20901	return s
20902}
20903
20904// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListGroupsForUserRequest
20905type ListGroupsForUserInput struct {
20906	_ struct{} `type:"structure"`
20907
20908	// Use this parameter only when paginating results and only after you receive
20909	// a response indicating that the results are truncated. Set it to the value
20910	// of the Marker element in the response that you received to indicate where
20911	// the next call should start.
20912	Marker *string `min:"1" type:"string"`
20913
20914	// (Optional) Use this only when paginating results to indicate the maximum
20915	// number of items you want in the response. If additional items exist beyond
20916	// the maximum you specify, the IsTruncated response element is true.
20917	//
20918	// If you do not include this parameter, it defaults to 100. Note that IAM might
20919	// return fewer results, even when there are more results available. In that
20920	// case, the IsTruncated response element returns true and Marker contains a
20921	// value to include in the subsequent call that tells the service where to continue
20922	// from.
20923	MaxItems *int64 `min:"1" type:"integer"`
20924
20925	// The name of the user to list groups for.
20926	//
20927	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
20928	// a string of characters consisting of upper and lowercase alphanumeric characters
20929	// with no spaces. You can also include any of the following characters: =,.@-
20930	//
20931	// UserName is a required field
20932	UserName *string `min:"1" type:"string" required:"true"`
20933}
20934
20935// String returns the string representation
20936func (s ListGroupsForUserInput) String() string {
20937	return awsutil.Prettify(s)
20938}
20939
20940// GoString returns the string representation
20941func (s ListGroupsForUserInput) GoString() string {
20942	return s.String()
20943}
20944
20945// Validate inspects the fields of the type to determine if they are valid.
20946func (s *ListGroupsForUserInput) Validate() error {
20947	invalidParams := request.ErrInvalidParams{Context: "ListGroupsForUserInput"}
20948	if s.Marker != nil && len(*s.Marker) < 1 {
20949		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
20950	}
20951	if s.MaxItems != nil && *s.MaxItems < 1 {
20952		invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
20953	}
20954	if s.UserName == nil {
20955		invalidParams.Add(request.NewErrParamRequired("UserName"))
20956	}
20957	if s.UserName != nil && len(*s.UserName) < 1 {
20958		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
20959	}
20960
20961	if invalidParams.Len() > 0 {
20962		return invalidParams
20963	}
20964	return nil
20965}
20966
20967// SetMarker sets the Marker field's value.
20968func (s *ListGroupsForUserInput) SetMarker(v string) *ListGroupsForUserInput {
20969	s.Marker = &v
20970	return s
20971}
20972
20973// SetMaxItems sets the MaxItems field's value.
20974func (s *ListGroupsForUserInput) SetMaxItems(v int64) *ListGroupsForUserInput {
20975	s.MaxItems = &v
20976	return s
20977}
20978
20979// SetUserName sets the UserName field's value.
20980func (s *ListGroupsForUserInput) SetUserName(v string) *ListGroupsForUserInput {
20981	s.UserName = &v
20982	return s
20983}
20984
20985// Contains the response to a successful ListGroupsForUser request.
20986// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListGroupsForUserResponse
20987type ListGroupsForUserOutput struct {
20988	_ struct{} `type:"structure"`
20989
20990	// A list of groups.
20991	//
20992	// Groups is a required field
20993	Groups []*Group `type:"list" required:"true"`
20994
20995	// A flag that indicates whether there are more items to return. If your results
20996	// were truncated, you can make a subsequent pagination request using the Marker
20997	// request parameter to retrieve more items. Note that IAM might return fewer
20998	// than the MaxItems number of results even when there are more results available.
20999	// We recommend that you check IsTruncated after every call to ensure that you
21000	// receive all of your results.
21001	IsTruncated *bool `type:"boolean"`
21002
21003	// When IsTruncated is true, this element is present and contains the value
21004	// to use for the Marker parameter in a subsequent pagination request.
21005	Marker *string `min:"1" type:"string"`
21006}
21007
21008// String returns the string representation
21009func (s ListGroupsForUserOutput) String() string {
21010	return awsutil.Prettify(s)
21011}
21012
21013// GoString returns the string representation
21014func (s ListGroupsForUserOutput) GoString() string {
21015	return s.String()
21016}
21017
21018// SetGroups sets the Groups field's value.
21019func (s *ListGroupsForUserOutput) SetGroups(v []*Group) *ListGroupsForUserOutput {
21020	s.Groups = v
21021	return s
21022}
21023
21024// SetIsTruncated sets the IsTruncated field's value.
21025func (s *ListGroupsForUserOutput) SetIsTruncated(v bool) *ListGroupsForUserOutput {
21026	s.IsTruncated = &v
21027	return s
21028}
21029
21030// SetMarker sets the Marker field's value.
21031func (s *ListGroupsForUserOutput) SetMarker(v string) *ListGroupsForUserOutput {
21032	s.Marker = &v
21033	return s
21034}
21035
21036// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListGroupsRequest
21037type ListGroupsInput struct {
21038	_ struct{} `type:"structure"`
21039
21040	// Use this parameter only when paginating results and only after you receive
21041	// a response indicating that the results are truncated. Set it to the value
21042	// of the Marker element in the response that you received to indicate where
21043	// the next call should start.
21044	Marker *string `min:"1" type:"string"`
21045
21046	// (Optional) Use this only when paginating results to indicate the maximum
21047	// number of items you want in the response. If additional items exist beyond
21048	// the maximum you specify, the IsTruncated response element is true.
21049	//
21050	// If you do not include this parameter, it defaults to 100. Note that IAM might
21051	// return fewer results, even when there are more results available. In that
21052	// case, the IsTruncated response element returns true and Marker contains a
21053	// value to include in the subsequent call that tells the service where to continue
21054	// from.
21055	MaxItems *int64 `min:"1" type:"integer"`
21056
21057	// The path prefix for filtering the results. For example, the prefix /division_abc/subdivision_xyz/
21058	// gets all groups whose path starts with /division_abc/subdivision_xyz/.
21059	//
21060	// This parameter is optional. If it is not included, it defaults to a slash
21061	// (/), listing all groups. This paramater allows (per its regex pattern (http://wikipedia.org/wiki/regex))
21062	// a string of characters consisting of either a forward slash (/) by itself
21063	// or a string that must begin and end with forward slashes, containing any
21064	// ASCII character from the ! (\u0021) thru the DEL character (\u007F), including
21065	// most punctuation characters, digits, and upper and lowercased letters.
21066	PathPrefix *string `min:"1" type:"string"`
21067}
21068
21069// String returns the string representation
21070func (s ListGroupsInput) String() string {
21071	return awsutil.Prettify(s)
21072}
21073
21074// GoString returns the string representation
21075func (s ListGroupsInput) GoString() string {
21076	return s.String()
21077}
21078
21079// Validate inspects the fields of the type to determine if they are valid.
21080func (s *ListGroupsInput) Validate() error {
21081	invalidParams := request.ErrInvalidParams{Context: "ListGroupsInput"}
21082	if s.Marker != nil && len(*s.Marker) < 1 {
21083		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
21084	}
21085	if s.MaxItems != nil && *s.MaxItems < 1 {
21086		invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
21087	}
21088	if s.PathPrefix != nil && len(*s.PathPrefix) < 1 {
21089		invalidParams.Add(request.NewErrParamMinLen("PathPrefix", 1))
21090	}
21091
21092	if invalidParams.Len() > 0 {
21093		return invalidParams
21094	}
21095	return nil
21096}
21097
21098// SetMarker sets the Marker field's value.
21099func (s *ListGroupsInput) SetMarker(v string) *ListGroupsInput {
21100	s.Marker = &v
21101	return s
21102}
21103
21104// SetMaxItems sets the MaxItems field's value.
21105func (s *ListGroupsInput) SetMaxItems(v int64) *ListGroupsInput {
21106	s.MaxItems = &v
21107	return s
21108}
21109
21110// SetPathPrefix sets the PathPrefix field's value.
21111func (s *ListGroupsInput) SetPathPrefix(v string) *ListGroupsInput {
21112	s.PathPrefix = &v
21113	return s
21114}
21115
21116// Contains the response to a successful ListGroups request.
21117// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListGroupsResponse
21118type ListGroupsOutput struct {
21119	_ struct{} `type:"structure"`
21120
21121	// A list of groups.
21122	//
21123	// Groups is a required field
21124	Groups []*Group `type:"list" required:"true"`
21125
21126	// A flag that indicates whether there are more items to return. If your results
21127	// were truncated, you can make a subsequent pagination request using the Marker
21128	// request parameter to retrieve more items. Note that IAM might return fewer
21129	// than the MaxItems number of results even when there are more results available.
21130	// We recommend that you check IsTruncated after every call to ensure that you
21131	// receive all of your results.
21132	IsTruncated *bool `type:"boolean"`
21133
21134	// When IsTruncated is true, this element is present and contains the value
21135	// to use for the Marker parameter in a subsequent pagination request.
21136	Marker *string `min:"1" type:"string"`
21137}
21138
21139// String returns the string representation
21140func (s ListGroupsOutput) String() string {
21141	return awsutil.Prettify(s)
21142}
21143
21144// GoString returns the string representation
21145func (s ListGroupsOutput) GoString() string {
21146	return s.String()
21147}
21148
21149// SetGroups sets the Groups field's value.
21150func (s *ListGroupsOutput) SetGroups(v []*Group) *ListGroupsOutput {
21151	s.Groups = v
21152	return s
21153}
21154
21155// SetIsTruncated sets the IsTruncated field's value.
21156func (s *ListGroupsOutput) SetIsTruncated(v bool) *ListGroupsOutput {
21157	s.IsTruncated = &v
21158	return s
21159}
21160
21161// SetMarker sets the Marker field's value.
21162func (s *ListGroupsOutput) SetMarker(v string) *ListGroupsOutput {
21163	s.Marker = &v
21164	return s
21165}
21166
21167// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListInstanceProfilesForRoleRequest
21168type ListInstanceProfilesForRoleInput struct {
21169	_ struct{} `type:"structure"`
21170
21171	// Use this parameter only when paginating results and only after you receive
21172	// a response indicating that the results are truncated. Set it to the value
21173	// of the Marker element in the response that you received to indicate where
21174	// the next call should start.
21175	Marker *string `min:"1" type:"string"`
21176
21177	// (Optional) Use this only when paginating results to indicate the maximum
21178	// number of items you want in the response. If additional items exist beyond
21179	// the maximum you specify, the IsTruncated response element is true.
21180	//
21181	// If you do not include this parameter, it defaults to 100. Note that IAM might
21182	// return fewer results, even when there are more results available. In that
21183	// case, the IsTruncated response element returns true and Marker contains a
21184	// value to include in the subsequent call that tells the service where to continue
21185	// from.
21186	MaxItems *int64 `min:"1" type:"integer"`
21187
21188	// The name of the role to list instance profiles for.
21189	//
21190	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
21191	// a string of characters consisting of upper and lowercase alphanumeric characters
21192	// with no spaces. You can also include any of the following characters: _+=,.@-
21193	//
21194	// RoleName is a required field
21195	RoleName *string `min:"1" type:"string" required:"true"`
21196}
21197
21198// String returns the string representation
21199func (s ListInstanceProfilesForRoleInput) String() string {
21200	return awsutil.Prettify(s)
21201}
21202
21203// GoString returns the string representation
21204func (s ListInstanceProfilesForRoleInput) GoString() string {
21205	return s.String()
21206}
21207
21208// Validate inspects the fields of the type to determine if they are valid.
21209func (s *ListInstanceProfilesForRoleInput) Validate() error {
21210	invalidParams := request.ErrInvalidParams{Context: "ListInstanceProfilesForRoleInput"}
21211	if s.Marker != nil && len(*s.Marker) < 1 {
21212		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
21213	}
21214	if s.MaxItems != nil && *s.MaxItems < 1 {
21215		invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
21216	}
21217	if s.RoleName == nil {
21218		invalidParams.Add(request.NewErrParamRequired("RoleName"))
21219	}
21220	if s.RoleName != nil && len(*s.RoleName) < 1 {
21221		invalidParams.Add(request.NewErrParamMinLen("RoleName", 1))
21222	}
21223
21224	if invalidParams.Len() > 0 {
21225		return invalidParams
21226	}
21227	return nil
21228}
21229
21230// SetMarker sets the Marker field's value.
21231func (s *ListInstanceProfilesForRoleInput) SetMarker(v string) *ListInstanceProfilesForRoleInput {
21232	s.Marker = &v
21233	return s
21234}
21235
21236// SetMaxItems sets the MaxItems field's value.
21237func (s *ListInstanceProfilesForRoleInput) SetMaxItems(v int64) *ListInstanceProfilesForRoleInput {
21238	s.MaxItems = &v
21239	return s
21240}
21241
21242// SetRoleName sets the RoleName field's value.
21243func (s *ListInstanceProfilesForRoleInput) SetRoleName(v string) *ListInstanceProfilesForRoleInput {
21244	s.RoleName = &v
21245	return s
21246}
21247
21248// Contains the response to a successful ListInstanceProfilesForRole request.
21249// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListInstanceProfilesForRoleResponse
21250type ListInstanceProfilesForRoleOutput struct {
21251	_ struct{} `type:"structure"`
21252
21253	// A list of instance profiles.
21254	//
21255	// InstanceProfiles is a required field
21256	InstanceProfiles []*InstanceProfile `type:"list" required:"true"`
21257
21258	// A flag that indicates whether there are more items to return. If your results
21259	// were truncated, you can make a subsequent pagination request using the Marker
21260	// request parameter to retrieve more items. Note that IAM might return fewer
21261	// than the MaxItems number of results even when there are more results available.
21262	// We recommend that you check IsTruncated after every call to ensure that you
21263	// receive all of your results.
21264	IsTruncated *bool `type:"boolean"`
21265
21266	// When IsTruncated is true, this element is present and contains the value
21267	// to use for the Marker parameter in a subsequent pagination request.
21268	Marker *string `min:"1" type:"string"`
21269}
21270
21271// String returns the string representation
21272func (s ListInstanceProfilesForRoleOutput) String() string {
21273	return awsutil.Prettify(s)
21274}
21275
21276// GoString returns the string representation
21277func (s ListInstanceProfilesForRoleOutput) GoString() string {
21278	return s.String()
21279}
21280
21281// SetInstanceProfiles sets the InstanceProfiles field's value.
21282func (s *ListInstanceProfilesForRoleOutput) SetInstanceProfiles(v []*InstanceProfile) *ListInstanceProfilesForRoleOutput {
21283	s.InstanceProfiles = v
21284	return s
21285}
21286
21287// SetIsTruncated sets the IsTruncated field's value.
21288func (s *ListInstanceProfilesForRoleOutput) SetIsTruncated(v bool) *ListInstanceProfilesForRoleOutput {
21289	s.IsTruncated = &v
21290	return s
21291}
21292
21293// SetMarker sets the Marker field's value.
21294func (s *ListInstanceProfilesForRoleOutput) SetMarker(v string) *ListInstanceProfilesForRoleOutput {
21295	s.Marker = &v
21296	return s
21297}
21298
21299// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListInstanceProfilesRequest
21300type ListInstanceProfilesInput struct {
21301	_ struct{} `type:"structure"`
21302
21303	// Use this parameter only when paginating results and only after you receive
21304	// a response indicating that the results are truncated. Set it to the value
21305	// of the Marker element in the response that you received to indicate where
21306	// the next call should start.
21307	Marker *string `min:"1" type:"string"`
21308
21309	// (Optional) Use this only when paginating results to indicate the maximum
21310	// number of items you want in the response. If additional items exist beyond
21311	// the maximum you specify, the IsTruncated response element is true.
21312	//
21313	// If you do not include this parameter, it defaults to 100. Note that IAM might
21314	// return fewer results, even when there are more results available. In that
21315	// case, the IsTruncated response element returns true and Marker contains a
21316	// value to include in the subsequent call that tells the service where to continue
21317	// from.
21318	MaxItems *int64 `min:"1" type:"integer"`
21319
21320	// The path prefix for filtering the results. For example, the prefix /application_abc/component_xyz/
21321	// gets all instance profiles whose path starts with /application_abc/component_xyz/.
21322	//
21323	// This parameter is optional. If it is not included, it defaults to a slash
21324	// (/), listing all instance profiles. This paramater allows (per its regex
21325	// pattern (http://wikipedia.org/wiki/regex)) a string of characters consisting
21326	// of either a forward slash (/) by itself or a string that must begin and end
21327	// with forward slashes, containing any ASCII character from the ! (\u0021)
21328	// thru the DEL character (\u007F), including most punctuation characters, digits,
21329	// and upper and lowercased letters.
21330	PathPrefix *string `min:"1" type:"string"`
21331}
21332
21333// String returns the string representation
21334func (s ListInstanceProfilesInput) String() string {
21335	return awsutil.Prettify(s)
21336}
21337
21338// GoString returns the string representation
21339func (s ListInstanceProfilesInput) GoString() string {
21340	return s.String()
21341}
21342
21343// Validate inspects the fields of the type to determine if they are valid.
21344func (s *ListInstanceProfilesInput) Validate() error {
21345	invalidParams := request.ErrInvalidParams{Context: "ListInstanceProfilesInput"}
21346	if s.Marker != nil && len(*s.Marker) < 1 {
21347		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
21348	}
21349	if s.MaxItems != nil && *s.MaxItems < 1 {
21350		invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
21351	}
21352	if s.PathPrefix != nil && len(*s.PathPrefix) < 1 {
21353		invalidParams.Add(request.NewErrParamMinLen("PathPrefix", 1))
21354	}
21355
21356	if invalidParams.Len() > 0 {
21357		return invalidParams
21358	}
21359	return nil
21360}
21361
21362// SetMarker sets the Marker field's value.
21363func (s *ListInstanceProfilesInput) SetMarker(v string) *ListInstanceProfilesInput {
21364	s.Marker = &v
21365	return s
21366}
21367
21368// SetMaxItems sets the MaxItems field's value.
21369func (s *ListInstanceProfilesInput) SetMaxItems(v int64) *ListInstanceProfilesInput {
21370	s.MaxItems = &v
21371	return s
21372}
21373
21374// SetPathPrefix sets the PathPrefix field's value.
21375func (s *ListInstanceProfilesInput) SetPathPrefix(v string) *ListInstanceProfilesInput {
21376	s.PathPrefix = &v
21377	return s
21378}
21379
21380// Contains the response to a successful ListInstanceProfiles request.
21381// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListInstanceProfilesResponse
21382type ListInstanceProfilesOutput struct {
21383	_ struct{} `type:"structure"`
21384
21385	// A list of instance profiles.
21386	//
21387	// InstanceProfiles is a required field
21388	InstanceProfiles []*InstanceProfile `type:"list" required:"true"`
21389
21390	// A flag that indicates whether there are more items to return. If your results
21391	// were truncated, you can make a subsequent pagination request using the Marker
21392	// request parameter to retrieve more items. Note that IAM might return fewer
21393	// than the MaxItems number of results even when there are more results available.
21394	// We recommend that you check IsTruncated after every call to ensure that you
21395	// receive all of your results.
21396	IsTruncated *bool `type:"boolean"`
21397
21398	// When IsTruncated is true, this element is present and contains the value
21399	// to use for the Marker parameter in a subsequent pagination request.
21400	Marker *string `min:"1" type:"string"`
21401}
21402
21403// String returns the string representation
21404func (s ListInstanceProfilesOutput) String() string {
21405	return awsutil.Prettify(s)
21406}
21407
21408// GoString returns the string representation
21409func (s ListInstanceProfilesOutput) GoString() string {
21410	return s.String()
21411}
21412
21413// SetInstanceProfiles sets the InstanceProfiles field's value.
21414func (s *ListInstanceProfilesOutput) SetInstanceProfiles(v []*InstanceProfile) *ListInstanceProfilesOutput {
21415	s.InstanceProfiles = v
21416	return s
21417}
21418
21419// SetIsTruncated sets the IsTruncated field's value.
21420func (s *ListInstanceProfilesOutput) SetIsTruncated(v bool) *ListInstanceProfilesOutput {
21421	s.IsTruncated = &v
21422	return s
21423}
21424
21425// SetMarker sets the Marker field's value.
21426func (s *ListInstanceProfilesOutput) SetMarker(v string) *ListInstanceProfilesOutput {
21427	s.Marker = &v
21428	return s
21429}
21430
21431// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListMFADevicesRequest
21432type ListMFADevicesInput struct {
21433	_ struct{} `type:"structure"`
21434
21435	// Use this parameter only when paginating results and only after you receive
21436	// a response indicating that the results are truncated. Set it to the value
21437	// of the Marker element in the response that you received to indicate where
21438	// the next call should start.
21439	Marker *string `min:"1" type:"string"`
21440
21441	// (Optional) Use this only when paginating results to indicate the maximum
21442	// number of items you want in the response. If additional items exist beyond
21443	// the maximum you specify, the IsTruncated response element is true.
21444	//
21445	// If you do not include this parameter, it defaults to 100. Note that IAM might
21446	// return fewer results, even when there are more results available. In that
21447	// case, the IsTruncated response element returns true and Marker contains a
21448	// value to include in the subsequent call that tells the service where to continue
21449	// from.
21450	MaxItems *int64 `min:"1" type:"integer"`
21451
21452	// The name of the user whose MFA devices you want to list.
21453	//
21454	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
21455	// a string of characters consisting of upper and lowercase alphanumeric characters
21456	// with no spaces. You can also include any of the following characters: =,.@-
21457	UserName *string `min:"1" type:"string"`
21458}
21459
21460// String returns the string representation
21461func (s ListMFADevicesInput) String() string {
21462	return awsutil.Prettify(s)
21463}
21464
21465// GoString returns the string representation
21466func (s ListMFADevicesInput) GoString() string {
21467	return s.String()
21468}
21469
21470// Validate inspects the fields of the type to determine if they are valid.
21471func (s *ListMFADevicesInput) Validate() error {
21472	invalidParams := request.ErrInvalidParams{Context: "ListMFADevicesInput"}
21473	if s.Marker != nil && len(*s.Marker) < 1 {
21474		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
21475	}
21476	if s.MaxItems != nil && *s.MaxItems < 1 {
21477		invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
21478	}
21479	if s.UserName != nil && len(*s.UserName) < 1 {
21480		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
21481	}
21482
21483	if invalidParams.Len() > 0 {
21484		return invalidParams
21485	}
21486	return nil
21487}
21488
21489// SetMarker sets the Marker field's value.
21490func (s *ListMFADevicesInput) SetMarker(v string) *ListMFADevicesInput {
21491	s.Marker = &v
21492	return s
21493}
21494
21495// SetMaxItems sets the MaxItems field's value.
21496func (s *ListMFADevicesInput) SetMaxItems(v int64) *ListMFADevicesInput {
21497	s.MaxItems = &v
21498	return s
21499}
21500
21501// SetUserName sets the UserName field's value.
21502func (s *ListMFADevicesInput) SetUserName(v string) *ListMFADevicesInput {
21503	s.UserName = &v
21504	return s
21505}
21506
21507// Contains the response to a successful ListMFADevices request.
21508// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListMFADevicesResponse
21509type ListMFADevicesOutput struct {
21510	_ struct{} `type:"structure"`
21511
21512	// A flag that indicates whether there are more items to return. If your results
21513	// were truncated, you can make a subsequent pagination request using the Marker
21514	// request parameter to retrieve more items. Note that IAM might return fewer
21515	// than the MaxItems number of results even when there are more results available.
21516	// We recommend that you check IsTruncated after every call to ensure that you
21517	// receive all of your results.
21518	IsTruncated *bool `type:"boolean"`
21519
21520	// A list of MFA devices.
21521	//
21522	// MFADevices is a required field
21523	MFADevices []*MFADevice `type:"list" required:"true"`
21524
21525	// When IsTruncated is true, this element is present and contains the value
21526	// to use for the Marker parameter in a subsequent pagination request.
21527	Marker *string `min:"1" type:"string"`
21528}
21529
21530// String returns the string representation
21531func (s ListMFADevicesOutput) String() string {
21532	return awsutil.Prettify(s)
21533}
21534
21535// GoString returns the string representation
21536func (s ListMFADevicesOutput) GoString() string {
21537	return s.String()
21538}
21539
21540// SetIsTruncated sets the IsTruncated field's value.
21541func (s *ListMFADevicesOutput) SetIsTruncated(v bool) *ListMFADevicesOutput {
21542	s.IsTruncated = &v
21543	return s
21544}
21545
21546// SetMFADevices sets the MFADevices field's value.
21547func (s *ListMFADevicesOutput) SetMFADevices(v []*MFADevice) *ListMFADevicesOutput {
21548	s.MFADevices = v
21549	return s
21550}
21551
21552// SetMarker sets the Marker field's value.
21553func (s *ListMFADevicesOutput) SetMarker(v string) *ListMFADevicesOutput {
21554	s.Marker = &v
21555	return s
21556}
21557
21558// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListOpenIDConnectProvidersRequest
21559type ListOpenIDConnectProvidersInput struct {
21560	_ struct{} `type:"structure"`
21561}
21562
21563// String returns the string representation
21564func (s ListOpenIDConnectProvidersInput) String() string {
21565	return awsutil.Prettify(s)
21566}
21567
21568// GoString returns the string representation
21569func (s ListOpenIDConnectProvidersInput) GoString() string {
21570	return s.String()
21571}
21572
21573// Contains the response to a successful ListOpenIDConnectProviders request.
21574// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListOpenIDConnectProvidersResponse
21575type ListOpenIDConnectProvidersOutput struct {
21576	_ struct{} `type:"structure"`
21577
21578	// The list of IAM OIDC provider resource objects defined in the AWS account.
21579	OpenIDConnectProviderList []*OpenIDConnectProviderListEntry `type:"list"`
21580}
21581
21582// String returns the string representation
21583func (s ListOpenIDConnectProvidersOutput) String() string {
21584	return awsutil.Prettify(s)
21585}
21586
21587// GoString returns the string representation
21588func (s ListOpenIDConnectProvidersOutput) GoString() string {
21589	return s.String()
21590}
21591
21592// SetOpenIDConnectProviderList sets the OpenIDConnectProviderList field's value.
21593func (s *ListOpenIDConnectProvidersOutput) SetOpenIDConnectProviderList(v []*OpenIDConnectProviderListEntry) *ListOpenIDConnectProvidersOutput {
21594	s.OpenIDConnectProviderList = v
21595	return s
21596}
21597
21598// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListPoliciesRequest
21599type ListPoliciesInput struct {
21600	_ struct{} `type:"structure"`
21601
21602	// Use this parameter only when paginating results and only after you receive
21603	// a response indicating that the results are truncated. Set it to the value
21604	// of the Marker element in the response that you received to indicate where
21605	// the next call should start.
21606	Marker *string `min:"1" type:"string"`
21607
21608	// (Optional) Use this only when paginating results to indicate the maximum
21609	// number of items you want in the response. If additional items exist beyond
21610	// the maximum you specify, the IsTruncated response element is true.
21611	//
21612	// If you do not include this parameter, it defaults to 100. Note that IAM might
21613	// return fewer results, even when there are more results available. In that
21614	// case, the IsTruncated response element returns true and Marker contains a
21615	// value to include in the subsequent call that tells the service where to continue
21616	// from.
21617	MaxItems *int64 `min:"1" type:"integer"`
21618
21619	// A flag to filter the results to only the attached policies.
21620	//
21621	// When OnlyAttached is true, the returned list contains only the policies that
21622	// are attached to an IAM user, group, or role. When OnlyAttached is false,
21623	// or when the parameter is not included, all policies are returned.
21624	OnlyAttached *bool `type:"boolean"`
21625
21626	// The path prefix for filtering the results. This parameter is optional. If
21627	// it is not included, it defaults to a slash (/), listing all policies. This
21628	// paramater allows (per its regex pattern (http://wikipedia.org/wiki/regex))
21629	// a string of characters consisting of either a forward slash (/) by itself
21630	// or a string that must begin and end with forward slashes, containing any
21631	// ASCII character from the ! (\u0021) thru the DEL character (\u007F), including
21632	// most punctuation characters, digits, and upper and lowercased letters.
21633	PathPrefix *string `type:"string"`
21634
21635	// The scope to use for filtering the results.
21636	//
21637	// To list only AWS managed policies, set Scope to AWS. To list only the customer
21638	// managed policies in your AWS account, set Scope to Local.
21639	//
21640	// This parameter is optional. If it is not included, or if it is set to All,
21641	// all policies are returned.
21642	Scope *string `type:"string" enum:"policyScopeType"`
21643}
21644
21645// String returns the string representation
21646func (s ListPoliciesInput) String() string {
21647	return awsutil.Prettify(s)
21648}
21649
21650// GoString returns the string representation
21651func (s ListPoliciesInput) GoString() string {
21652	return s.String()
21653}
21654
21655// Validate inspects the fields of the type to determine if they are valid.
21656func (s *ListPoliciesInput) Validate() error {
21657	invalidParams := request.ErrInvalidParams{Context: "ListPoliciesInput"}
21658	if s.Marker != nil && len(*s.Marker) < 1 {
21659		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
21660	}
21661	if s.MaxItems != nil && *s.MaxItems < 1 {
21662		invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
21663	}
21664
21665	if invalidParams.Len() > 0 {
21666		return invalidParams
21667	}
21668	return nil
21669}
21670
21671// SetMarker sets the Marker field's value.
21672func (s *ListPoliciesInput) SetMarker(v string) *ListPoliciesInput {
21673	s.Marker = &v
21674	return s
21675}
21676
21677// SetMaxItems sets the MaxItems field's value.
21678func (s *ListPoliciesInput) SetMaxItems(v int64) *ListPoliciesInput {
21679	s.MaxItems = &v
21680	return s
21681}
21682
21683// SetOnlyAttached sets the OnlyAttached field's value.
21684func (s *ListPoliciesInput) SetOnlyAttached(v bool) *ListPoliciesInput {
21685	s.OnlyAttached = &v
21686	return s
21687}
21688
21689// SetPathPrefix sets the PathPrefix field's value.
21690func (s *ListPoliciesInput) SetPathPrefix(v string) *ListPoliciesInput {
21691	s.PathPrefix = &v
21692	return s
21693}
21694
21695// SetScope sets the Scope field's value.
21696func (s *ListPoliciesInput) SetScope(v string) *ListPoliciesInput {
21697	s.Scope = &v
21698	return s
21699}
21700
21701// Contains the response to a successful ListPolicies request.
21702// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListPoliciesResponse
21703type ListPoliciesOutput struct {
21704	_ struct{} `type:"structure"`
21705
21706	// A flag that indicates whether there are more items to return. If your results
21707	// were truncated, you can make a subsequent pagination request using the Marker
21708	// request parameter to retrieve more items. Note that IAM might return fewer
21709	// than the MaxItems number of results even when there are more results available.
21710	// We recommend that you check IsTruncated after every call to ensure that you
21711	// receive all of your results.
21712	IsTruncated *bool `type:"boolean"`
21713
21714	// When IsTruncated is true, this element is present and contains the value
21715	// to use for the Marker parameter in a subsequent pagination request.
21716	Marker *string `min:"1" type:"string"`
21717
21718	// A list of policies.
21719	Policies []*Policy `type:"list"`
21720}
21721
21722// String returns the string representation
21723func (s ListPoliciesOutput) String() string {
21724	return awsutil.Prettify(s)
21725}
21726
21727// GoString returns the string representation
21728func (s ListPoliciesOutput) GoString() string {
21729	return s.String()
21730}
21731
21732// SetIsTruncated sets the IsTruncated field's value.
21733func (s *ListPoliciesOutput) SetIsTruncated(v bool) *ListPoliciesOutput {
21734	s.IsTruncated = &v
21735	return s
21736}
21737
21738// SetMarker sets the Marker field's value.
21739func (s *ListPoliciesOutput) SetMarker(v string) *ListPoliciesOutput {
21740	s.Marker = &v
21741	return s
21742}
21743
21744// SetPolicies sets the Policies field's value.
21745func (s *ListPoliciesOutput) SetPolicies(v []*Policy) *ListPoliciesOutput {
21746	s.Policies = v
21747	return s
21748}
21749
21750// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListPolicyVersionsRequest
21751type ListPolicyVersionsInput struct {
21752	_ struct{} `type:"structure"`
21753
21754	// Use this parameter only when paginating results and only after you receive
21755	// a response indicating that the results are truncated. Set it to the value
21756	// of the Marker element in the response that you received to indicate where
21757	// the next call should start.
21758	Marker *string `min:"1" type:"string"`
21759
21760	// (Optional) Use this only when paginating results to indicate the maximum
21761	// number of items you want in the response. If additional items exist beyond
21762	// the maximum you specify, the IsTruncated response element is true.
21763	//
21764	// If you do not include this parameter, it defaults to 100. Note that IAM might
21765	// return fewer results, even when there are more results available. In that
21766	// case, the IsTruncated response element returns true and Marker contains a
21767	// value to include in the subsequent call that tells the service where to continue
21768	// from.
21769	MaxItems *int64 `min:"1" type:"integer"`
21770
21771	// The Amazon Resource Name (ARN) of the IAM policy for which you want the versions.
21772	//
21773	// For more information about ARNs, see Amazon Resource Names (ARNs) and AWS
21774	// Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
21775	// in the AWS General Reference.
21776	//
21777	// PolicyArn is a required field
21778	PolicyArn *string `min:"20" type:"string" required:"true"`
21779}
21780
21781// String returns the string representation
21782func (s ListPolicyVersionsInput) String() string {
21783	return awsutil.Prettify(s)
21784}
21785
21786// GoString returns the string representation
21787func (s ListPolicyVersionsInput) GoString() string {
21788	return s.String()
21789}
21790
21791// Validate inspects the fields of the type to determine if they are valid.
21792func (s *ListPolicyVersionsInput) Validate() error {
21793	invalidParams := request.ErrInvalidParams{Context: "ListPolicyVersionsInput"}
21794	if s.Marker != nil && len(*s.Marker) < 1 {
21795		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
21796	}
21797	if s.MaxItems != nil && *s.MaxItems < 1 {
21798		invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
21799	}
21800	if s.PolicyArn == nil {
21801		invalidParams.Add(request.NewErrParamRequired("PolicyArn"))
21802	}
21803	if s.PolicyArn != nil && len(*s.PolicyArn) < 20 {
21804		invalidParams.Add(request.NewErrParamMinLen("PolicyArn", 20))
21805	}
21806
21807	if invalidParams.Len() > 0 {
21808		return invalidParams
21809	}
21810	return nil
21811}
21812
21813// SetMarker sets the Marker field's value.
21814func (s *ListPolicyVersionsInput) SetMarker(v string) *ListPolicyVersionsInput {
21815	s.Marker = &v
21816	return s
21817}
21818
21819// SetMaxItems sets the MaxItems field's value.
21820func (s *ListPolicyVersionsInput) SetMaxItems(v int64) *ListPolicyVersionsInput {
21821	s.MaxItems = &v
21822	return s
21823}
21824
21825// SetPolicyArn sets the PolicyArn field's value.
21826func (s *ListPolicyVersionsInput) SetPolicyArn(v string) *ListPolicyVersionsInput {
21827	s.PolicyArn = &v
21828	return s
21829}
21830
21831// Contains the response to a successful ListPolicyVersions request.
21832// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListPolicyVersionsResponse
21833type ListPolicyVersionsOutput struct {
21834	_ struct{} `type:"structure"`
21835
21836	// A flag that indicates whether there are more items to return. If your results
21837	// were truncated, you can make a subsequent pagination request using the Marker
21838	// request parameter to retrieve more items. Note that IAM might return fewer
21839	// than the MaxItems number of results even when there are more results available.
21840	// We recommend that you check IsTruncated after every call to ensure that you
21841	// receive all of your results.
21842	IsTruncated *bool `type:"boolean"`
21843
21844	// When IsTruncated is true, this element is present and contains the value
21845	// to use for the Marker parameter in a subsequent pagination request.
21846	Marker *string `min:"1" type:"string"`
21847
21848	// A list of policy versions.
21849	//
21850	// For more information about managed policy versions, see Versioning for Managed
21851	// Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html)
21852	// in the IAM User Guide.
21853	Versions []*PolicyVersion `type:"list"`
21854}
21855
21856// String returns the string representation
21857func (s ListPolicyVersionsOutput) String() string {
21858	return awsutil.Prettify(s)
21859}
21860
21861// GoString returns the string representation
21862func (s ListPolicyVersionsOutput) GoString() string {
21863	return s.String()
21864}
21865
21866// SetIsTruncated sets the IsTruncated field's value.
21867func (s *ListPolicyVersionsOutput) SetIsTruncated(v bool) *ListPolicyVersionsOutput {
21868	s.IsTruncated = &v
21869	return s
21870}
21871
21872// SetMarker sets the Marker field's value.
21873func (s *ListPolicyVersionsOutput) SetMarker(v string) *ListPolicyVersionsOutput {
21874	s.Marker = &v
21875	return s
21876}
21877
21878// SetVersions sets the Versions field's value.
21879func (s *ListPolicyVersionsOutput) SetVersions(v []*PolicyVersion) *ListPolicyVersionsOutput {
21880	s.Versions = v
21881	return s
21882}
21883
21884// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListRolePoliciesRequest
21885type ListRolePoliciesInput struct {
21886	_ struct{} `type:"structure"`
21887
21888	// Use this parameter only when paginating results and only after you receive
21889	// a response indicating that the results are truncated. Set it to the value
21890	// of the Marker element in the response that you received to indicate where
21891	// the next call should start.
21892	Marker *string `min:"1" type:"string"`
21893
21894	// (Optional) Use this only when paginating results to indicate the maximum
21895	// number of items you want in the response. If additional items exist beyond
21896	// the maximum you specify, the IsTruncated response element is true.
21897	//
21898	// If you do not include this parameter, it defaults to 100. Note that IAM might
21899	// return fewer results, even when there are more results available. In that
21900	// case, the IsTruncated response element returns true and Marker contains a
21901	// value to include in the subsequent call that tells the service where to continue
21902	// from.
21903	MaxItems *int64 `min:"1" type:"integer"`
21904
21905	// The name of the role to list policies for.
21906	//
21907	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
21908	// a string of characters consisting of upper and lowercase alphanumeric characters
21909	// with no spaces. You can also include any of the following characters: _+=,.@-
21910	//
21911	// RoleName is a required field
21912	RoleName *string `min:"1" type:"string" required:"true"`
21913}
21914
21915// String returns the string representation
21916func (s ListRolePoliciesInput) String() string {
21917	return awsutil.Prettify(s)
21918}
21919
21920// GoString returns the string representation
21921func (s ListRolePoliciesInput) GoString() string {
21922	return s.String()
21923}
21924
21925// Validate inspects the fields of the type to determine if they are valid.
21926func (s *ListRolePoliciesInput) Validate() error {
21927	invalidParams := request.ErrInvalidParams{Context: "ListRolePoliciesInput"}
21928	if s.Marker != nil && len(*s.Marker) < 1 {
21929		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
21930	}
21931	if s.MaxItems != nil && *s.MaxItems < 1 {
21932		invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
21933	}
21934	if s.RoleName == nil {
21935		invalidParams.Add(request.NewErrParamRequired("RoleName"))
21936	}
21937	if s.RoleName != nil && len(*s.RoleName) < 1 {
21938		invalidParams.Add(request.NewErrParamMinLen("RoleName", 1))
21939	}
21940
21941	if invalidParams.Len() > 0 {
21942		return invalidParams
21943	}
21944	return nil
21945}
21946
21947// SetMarker sets the Marker field's value.
21948func (s *ListRolePoliciesInput) SetMarker(v string) *ListRolePoliciesInput {
21949	s.Marker = &v
21950	return s
21951}
21952
21953// SetMaxItems sets the MaxItems field's value.
21954func (s *ListRolePoliciesInput) SetMaxItems(v int64) *ListRolePoliciesInput {
21955	s.MaxItems = &v
21956	return s
21957}
21958
21959// SetRoleName sets the RoleName field's value.
21960func (s *ListRolePoliciesInput) SetRoleName(v string) *ListRolePoliciesInput {
21961	s.RoleName = &v
21962	return s
21963}
21964
21965// Contains the response to a successful ListRolePolicies request.
21966// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListRolePoliciesResponse
21967type ListRolePoliciesOutput struct {
21968	_ struct{} `type:"structure"`
21969
21970	// A flag that indicates whether there are more items to return. If your results
21971	// were truncated, you can make a subsequent pagination request using the Marker
21972	// request parameter to retrieve more items. Note that IAM might return fewer
21973	// than the MaxItems number of results even when there are more results available.
21974	// We recommend that you check IsTruncated after every call to ensure that you
21975	// receive all of your results.
21976	IsTruncated *bool `type:"boolean"`
21977
21978	// When IsTruncated is true, this element is present and contains the value
21979	// to use for the Marker parameter in a subsequent pagination request.
21980	Marker *string `min:"1" type:"string"`
21981
21982	// A list of policy names.
21983	//
21984	// PolicyNames is a required field
21985	PolicyNames []*string `type:"list" required:"true"`
21986}
21987
21988// String returns the string representation
21989func (s ListRolePoliciesOutput) String() string {
21990	return awsutil.Prettify(s)
21991}
21992
21993// GoString returns the string representation
21994func (s ListRolePoliciesOutput) GoString() string {
21995	return s.String()
21996}
21997
21998// SetIsTruncated sets the IsTruncated field's value.
21999func (s *ListRolePoliciesOutput) SetIsTruncated(v bool) *ListRolePoliciesOutput {
22000	s.IsTruncated = &v
22001	return s
22002}
22003
22004// SetMarker sets the Marker field's value.
22005func (s *ListRolePoliciesOutput) SetMarker(v string) *ListRolePoliciesOutput {
22006	s.Marker = &v
22007	return s
22008}
22009
22010// SetPolicyNames sets the PolicyNames field's value.
22011func (s *ListRolePoliciesOutput) SetPolicyNames(v []*string) *ListRolePoliciesOutput {
22012	s.PolicyNames = v
22013	return s
22014}
22015
22016// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListRolesRequest
22017type ListRolesInput struct {
22018	_ struct{} `type:"structure"`
22019
22020	// Use this parameter only when paginating results and only after you receive
22021	// a response indicating that the results are truncated. Set it to the value
22022	// of the Marker element in the response that you received to indicate where
22023	// the next call should start.
22024	Marker *string `min:"1" type:"string"`
22025
22026	// (Optional) Use this only when paginating results to indicate the maximum
22027	// number of items you want in the response. If additional items exist beyond
22028	// the maximum you specify, the IsTruncated response element is true.
22029	//
22030	// If you do not include this parameter, it defaults to 100. Note that IAM might
22031	// return fewer results, even when there are more results available. In that
22032	// case, the IsTruncated response element returns true and Marker contains a
22033	// value to include in the subsequent call that tells the service where to continue
22034	// from.
22035	MaxItems *int64 `min:"1" type:"integer"`
22036
22037	// The path prefix for filtering the results. For example, the prefix /application_abc/component_xyz/
22038	// gets all roles whose path starts with /application_abc/component_xyz/.
22039	//
22040	// This parameter is optional. If it is not included, it defaults to a slash
22041	// (/), listing all roles. This paramater allows (per its regex pattern (http://wikipedia.org/wiki/regex))
22042	// a string of characters consisting of either a forward slash (/) by itself
22043	// or a string that must begin and end with forward slashes, containing any
22044	// ASCII character from the ! (\u0021) thru the DEL character (\u007F), including
22045	// most punctuation characters, digits, and upper and lowercased letters.
22046	PathPrefix *string `min:"1" type:"string"`
22047}
22048
22049// String returns the string representation
22050func (s ListRolesInput) String() string {
22051	return awsutil.Prettify(s)
22052}
22053
22054// GoString returns the string representation
22055func (s ListRolesInput) GoString() string {
22056	return s.String()
22057}
22058
22059// Validate inspects the fields of the type to determine if they are valid.
22060func (s *ListRolesInput) Validate() error {
22061	invalidParams := request.ErrInvalidParams{Context: "ListRolesInput"}
22062	if s.Marker != nil && len(*s.Marker) < 1 {
22063		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
22064	}
22065	if s.MaxItems != nil && *s.MaxItems < 1 {
22066		invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
22067	}
22068	if s.PathPrefix != nil && len(*s.PathPrefix) < 1 {
22069		invalidParams.Add(request.NewErrParamMinLen("PathPrefix", 1))
22070	}
22071
22072	if invalidParams.Len() > 0 {
22073		return invalidParams
22074	}
22075	return nil
22076}
22077
22078// SetMarker sets the Marker field's value.
22079func (s *ListRolesInput) SetMarker(v string) *ListRolesInput {
22080	s.Marker = &v
22081	return s
22082}
22083
22084// SetMaxItems sets the MaxItems field's value.
22085func (s *ListRolesInput) SetMaxItems(v int64) *ListRolesInput {
22086	s.MaxItems = &v
22087	return s
22088}
22089
22090// SetPathPrefix sets the PathPrefix field's value.
22091func (s *ListRolesInput) SetPathPrefix(v string) *ListRolesInput {
22092	s.PathPrefix = &v
22093	return s
22094}
22095
22096// Contains the response to a successful ListRoles request.
22097// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListRolesResponse
22098type ListRolesOutput struct {
22099	_ struct{} `type:"structure"`
22100
22101	// A flag that indicates whether there are more items to return. If your results
22102	// were truncated, you can make a subsequent pagination request using the Marker
22103	// request parameter to retrieve more items. Note that IAM might return fewer
22104	// than the MaxItems number of results even when there are more results available.
22105	// We recommend that you check IsTruncated after every call to ensure that you
22106	// receive all of your results.
22107	IsTruncated *bool `type:"boolean"`
22108
22109	// When IsTruncated is true, this element is present and contains the value
22110	// to use for the Marker parameter in a subsequent pagination request.
22111	Marker *string `min:"1" type:"string"`
22112
22113	// A list of roles.
22114	//
22115	// Roles is a required field
22116	Roles []*Role `type:"list" required:"true"`
22117}
22118
22119// String returns the string representation
22120func (s ListRolesOutput) String() string {
22121	return awsutil.Prettify(s)
22122}
22123
22124// GoString returns the string representation
22125func (s ListRolesOutput) GoString() string {
22126	return s.String()
22127}
22128
22129// SetIsTruncated sets the IsTruncated field's value.
22130func (s *ListRolesOutput) SetIsTruncated(v bool) *ListRolesOutput {
22131	s.IsTruncated = &v
22132	return s
22133}
22134
22135// SetMarker sets the Marker field's value.
22136func (s *ListRolesOutput) SetMarker(v string) *ListRolesOutput {
22137	s.Marker = &v
22138	return s
22139}
22140
22141// SetRoles sets the Roles field's value.
22142func (s *ListRolesOutput) SetRoles(v []*Role) *ListRolesOutput {
22143	s.Roles = v
22144	return s
22145}
22146
22147// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListSAMLProvidersRequest
22148type ListSAMLProvidersInput struct {
22149	_ struct{} `type:"structure"`
22150}
22151
22152// String returns the string representation
22153func (s ListSAMLProvidersInput) String() string {
22154	return awsutil.Prettify(s)
22155}
22156
22157// GoString returns the string representation
22158func (s ListSAMLProvidersInput) GoString() string {
22159	return s.String()
22160}
22161
22162// Contains the response to a successful ListSAMLProviders request.
22163// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListSAMLProvidersResponse
22164type ListSAMLProvidersOutput struct {
22165	_ struct{} `type:"structure"`
22166
22167	// The list of SAML provider resource objects defined in IAM for this AWS account.
22168	SAMLProviderList []*SAMLProviderListEntry `type:"list"`
22169}
22170
22171// String returns the string representation
22172func (s ListSAMLProvidersOutput) String() string {
22173	return awsutil.Prettify(s)
22174}
22175
22176// GoString returns the string representation
22177func (s ListSAMLProvidersOutput) GoString() string {
22178	return s.String()
22179}
22180
22181// SetSAMLProviderList sets the SAMLProviderList field's value.
22182func (s *ListSAMLProvidersOutput) SetSAMLProviderList(v []*SAMLProviderListEntry) *ListSAMLProvidersOutput {
22183	s.SAMLProviderList = v
22184	return s
22185}
22186
22187// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListSSHPublicKeysRequest
22188type ListSSHPublicKeysInput struct {
22189	_ struct{} `type:"structure"`
22190
22191	// Use this parameter only when paginating results and only after you receive
22192	// a response indicating that the results are truncated. Set it to the value
22193	// of the Marker element in the response that you received to indicate where
22194	// the next call should start.
22195	Marker *string `min:"1" type:"string"`
22196
22197	// (Optional) Use this only when paginating results to indicate the maximum
22198	// number of items you want in the response. If additional items exist beyond
22199	// the maximum you specify, the IsTruncated response element is true.
22200	//
22201	// If you do not include this parameter, it defaults to 100. Note that IAM might
22202	// return fewer results, even when there are more results available. In that
22203	// case, the IsTruncated response element returns true and Marker contains a
22204	// value to include in the subsequent call that tells the service where to continue
22205	// from.
22206	MaxItems *int64 `min:"1" type:"integer"`
22207
22208	// The name of the IAM user to list SSH public keys for. If none is specified,
22209	// the UserName field is determined implicitly based on the AWS access key used
22210	// to sign the request.
22211	//
22212	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
22213	// a string of characters consisting of upper and lowercase alphanumeric characters
22214	// with no spaces. You can also include any of the following characters: =,.@-
22215	UserName *string `min:"1" type:"string"`
22216}
22217
22218// String returns the string representation
22219func (s ListSSHPublicKeysInput) String() string {
22220	return awsutil.Prettify(s)
22221}
22222
22223// GoString returns the string representation
22224func (s ListSSHPublicKeysInput) GoString() string {
22225	return s.String()
22226}
22227
22228// Validate inspects the fields of the type to determine if they are valid.
22229func (s *ListSSHPublicKeysInput) Validate() error {
22230	invalidParams := request.ErrInvalidParams{Context: "ListSSHPublicKeysInput"}
22231	if s.Marker != nil && len(*s.Marker) < 1 {
22232		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
22233	}
22234	if s.MaxItems != nil && *s.MaxItems < 1 {
22235		invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
22236	}
22237	if s.UserName != nil && len(*s.UserName) < 1 {
22238		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
22239	}
22240
22241	if invalidParams.Len() > 0 {
22242		return invalidParams
22243	}
22244	return nil
22245}
22246
22247// SetMarker sets the Marker field's value.
22248func (s *ListSSHPublicKeysInput) SetMarker(v string) *ListSSHPublicKeysInput {
22249	s.Marker = &v
22250	return s
22251}
22252
22253// SetMaxItems sets the MaxItems field's value.
22254func (s *ListSSHPublicKeysInput) SetMaxItems(v int64) *ListSSHPublicKeysInput {
22255	s.MaxItems = &v
22256	return s
22257}
22258
22259// SetUserName sets the UserName field's value.
22260func (s *ListSSHPublicKeysInput) SetUserName(v string) *ListSSHPublicKeysInput {
22261	s.UserName = &v
22262	return s
22263}
22264
22265// Contains the response to a successful ListSSHPublicKeys request.
22266// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListSSHPublicKeysResponse
22267type ListSSHPublicKeysOutput struct {
22268	_ struct{} `type:"structure"`
22269
22270	// A flag that indicates whether there are more items to return. If your results
22271	// were truncated, you can make a subsequent pagination request using the Marker
22272	// request parameter to retrieve more items. Note that IAM might return fewer
22273	// than the MaxItems number of results even when there are more results available.
22274	// We recommend that you check IsTruncated after every call to ensure that you
22275	// receive all of your results.
22276	IsTruncated *bool `type:"boolean"`
22277
22278	// When IsTruncated is true, this element is present and contains the value
22279	// to use for the Marker parameter in a subsequent pagination request.
22280	Marker *string `min:"1" type:"string"`
22281
22282	// A list of the SSH public keys assigned to IAM user.
22283	SSHPublicKeys []*SSHPublicKeyMetadata `type:"list"`
22284}
22285
22286// String returns the string representation
22287func (s ListSSHPublicKeysOutput) String() string {
22288	return awsutil.Prettify(s)
22289}
22290
22291// GoString returns the string representation
22292func (s ListSSHPublicKeysOutput) GoString() string {
22293	return s.String()
22294}
22295
22296// SetIsTruncated sets the IsTruncated field's value.
22297func (s *ListSSHPublicKeysOutput) SetIsTruncated(v bool) *ListSSHPublicKeysOutput {
22298	s.IsTruncated = &v
22299	return s
22300}
22301
22302// SetMarker sets the Marker field's value.
22303func (s *ListSSHPublicKeysOutput) SetMarker(v string) *ListSSHPublicKeysOutput {
22304	s.Marker = &v
22305	return s
22306}
22307
22308// SetSSHPublicKeys sets the SSHPublicKeys field's value.
22309func (s *ListSSHPublicKeysOutput) SetSSHPublicKeys(v []*SSHPublicKeyMetadata) *ListSSHPublicKeysOutput {
22310	s.SSHPublicKeys = v
22311	return s
22312}
22313
22314// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListServerCertificatesRequest
22315type ListServerCertificatesInput struct {
22316	_ struct{} `type:"structure"`
22317
22318	// Use this parameter only when paginating results and only after you receive
22319	// a response indicating that the results are truncated. Set it to the value
22320	// of the Marker element in the response that you received to indicate where
22321	// the next call should start.
22322	Marker *string `min:"1" type:"string"`
22323
22324	// (Optional) Use this only when paginating results to indicate the maximum
22325	// number of items you want in the response. If additional items exist beyond
22326	// the maximum you specify, the IsTruncated response element is true.
22327	//
22328	// If you do not include this parameter, it defaults to 100. Note that IAM might
22329	// return fewer results, even when there are more results available. In that
22330	// case, the IsTruncated response element returns true and Marker contains a
22331	// value to include in the subsequent call that tells the service where to continue
22332	// from.
22333	MaxItems *int64 `min:"1" type:"integer"`
22334
22335	// The path prefix for filtering the results. For example: /company/servercerts
22336	// would get all server certificates for which the path starts with /company/servercerts.
22337	//
22338	// This parameter is optional. If it is not included, it defaults to a slash
22339	// (/), listing all server certificates. This paramater allows (per its regex
22340	// pattern (http://wikipedia.org/wiki/regex)) a string of characters consisting
22341	// of either a forward slash (/) by itself or a string that must begin and end
22342	// with forward slashes, containing any ASCII character from the ! (\u0021)
22343	// thru the DEL character (\u007F), including most punctuation characters, digits,
22344	// and upper and lowercased letters.
22345	PathPrefix *string `min:"1" type:"string"`
22346}
22347
22348// String returns the string representation
22349func (s ListServerCertificatesInput) String() string {
22350	return awsutil.Prettify(s)
22351}
22352
22353// GoString returns the string representation
22354func (s ListServerCertificatesInput) GoString() string {
22355	return s.String()
22356}
22357
22358// Validate inspects the fields of the type to determine if they are valid.
22359func (s *ListServerCertificatesInput) Validate() error {
22360	invalidParams := request.ErrInvalidParams{Context: "ListServerCertificatesInput"}
22361	if s.Marker != nil && len(*s.Marker) < 1 {
22362		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
22363	}
22364	if s.MaxItems != nil && *s.MaxItems < 1 {
22365		invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
22366	}
22367	if s.PathPrefix != nil && len(*s.PathPrefix) < 1 {
22368		invalidParams.Add(request.NewErrParamMinLen("PathPrefix", 1))
22369	}
22370
22371	if invalidParams.Len() > 0 {
22372		return invalidParams
22373	}
22374	return nil
22375}
22376
22377// SetMarker sets the Marker field's value.
22378func (s *ListServerCertificatesInput) SetMarker(v string) *ListServerCertificatesInput {
22379	s.Marker = &v
22380	return s
22381}
22382
22383// SetMaxItems sets the MaxItems field's value.
22384func (s *ListServerCertificatesInput) SetMaxItems(v int64) *ListServerCertificatesInput {
22385	s.MaxItems = &v
22386	return s
22387}
22388
22389// SetPathPrefix sets the PathPrefix field's value.
22390func (s *ListServerCertificatesInput) SetPathPrefix(v string) *ListServerCertificatesInput {
22391	s.PathPrefix = &v
22392	return s
22393}
22394
22395// Contains the response to a successful ListServerCertificates request.
22396// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListServerCertificatesResponse
22397type ListServerCertificatesOutput struct {
22398	_ struct{} `type:"structure"`
22399
22400	// A flag that indicates whether there are more items to return. If your results
22401	// were truncated, you can make a subsequent pagination request using the Marker
22402	// request parameter to retrieve more items. Note that IAM might return fewer
22403	// than the MaxItems number of results even when there are more results available.
22404	// We recommend that you check IsTruncated after every call to ensure that you
22405	// receive all of your results.
22406	IsTruncated *bool `type:"boolean"`
22407
22408	// When IsTruncated is true, this element is present and contains the value
22409	// to use for the Marker parameter in a subsequent pagination request.
22410	Marker *string `min:"1" type:"string"`
22411
22412	// A list of server certificates.
22413	//
22414	// ServerCertificateMetadataList is a required field
22415	ServerCertificateMetadataList []*ServerCertificateMetadata `type:"list" required:"true"`
22416}
22417
22418// String returns the string representation
22419func (s ListServerCertificatesOutput) String() string {
22420	return awsutil.Prettify(s)
22421}
22422
22423// GoString returns the string representation
22424func (s ListServerCertificatesOutput) GoString() string {
22425	return s.String()
22426}
22427
22428// SetIsTruncated sets the IsTruncated field's value.
22429func (s *ListServerCertificatesOutput) SetIsTruncated(v bool) *ListServerCertificatesOutput {
22430	s.IsTruncated = &v
22431	return s
22432}
22433
22434// SetMarker sets the Marker field's value.
22435func (s *ListServerCertificatesOutput) SetMarker(v string) *ListServerCertificatesOutput {
22436	s.Marker = &v
22437	return s
22438}
22439
22440// SetServerCertificateMetadataList sets the ServerCertificateMetadataList field's value.
22441func (s *ListServerCertificatesOutput) SetServerCertificateMetadataList(v []*ServerCertificateMetadata) *ListServerCertificatesOutput {
22442	s.ServerCertificateMetadataList = v
22443	return s
22444}
22445
22446// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListServiceSpecificCredentialsRequest
22447type ListServiceSpecificCredentialsInput struct {
22448	_ struct{} `type:"structure"`
22449
22450	// Filters the returned results to only those for the specified AWS service.
22451	// If not specified, then AWS returns service-specific credentials for all services.
22452	ServiceName *string `type:"string"`
22453
22454	// The name of the user whose service-specific credentials you want information
22455	// about. If this value is not specified then the operation assumes the user
22456	// whose credentials are used to call the operation.
22457	//
22458	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
22459	// a string of characters consisting of upper and lowercase alphanumeric characters
22460	// with no spaces. You can also include any of the following characters: =,.@-
22461	UserName *string `min:"1" type:"string"`
22462}
22463
22464// String returns the string representation
22465func (s ListServiceSpecificCredentialsInput) String() string {
22466	return awsutil.Prettify(s)
22467}
22468
22469// GoString returns the string representation
22470func (s ListServiceSpecificCredentialsInput) GoString() string {
22471	return s.String()
22472}
22473
22474// Validate inspects the fields of the type to determine if they are valid.
22475func (s *ListServiceSpecificCredentialsInput) Validate() error {
22476	invalidParams := request.ErrInvalidParams{Context: "ListServiceSpecificCredentialsInput"}
22477	if s.UserName != nil && len(*s.UserName) < 1 {
22478		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
22479	}
22480
22481	if invalidParams.Len() > 0 {
22482		return invalidParams
22483	}
22484	return nil
22485}
22486
22487// SetServiceName sets the ServiceName field's value.
22488func (s *ListServiceSpecificCredentialsInput) SetServiceName(v string) *ListServiceSpecificCredentialsInput {
22489	s.ServiceName = &v
22490	return s
22491}
22492
22493// SetUserName sets the UserName field's value.
22494func (s *ListServiceSpecificCredentialsInput) SetUserName(v string) *ListServiceSpecificCredentialsInput {
22495	s.UserName = &v
22496	return s
22497}
22498
22499// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListServiceSpecificCredentialsResponse
22500type ListServiceSpecificCredentialsOutput struct {
22501	_ struct{} `type:"structure"`
22502
22503	// A list of structures that each contain details about a service-specific credential.
22504	ServiceSpecificCredentials []*ServiceSpecificCredentialMetadata `type:"list"`
22505}
22506
22507// String returns the string representation
22508func (s ListServiceSpecificCredentialsOutput) String() string {
22509	return awsutil.Prettify(s)
22510}
22511
22512// GoString returns the string representation
22513func (s ListServiceSpecificCredentialsOutput) GoString() string {
22514	return s.String()
22515}
22516
22517// SetServiceSpecificCredentials sets the ServiceSpecificCredentials field's value.
22518func (s *ListServiceSpecificCredentialsOutput) SetServiceSpecificCredentials(v []*ServiceSpecificCredentialMetadata) *ListServiceSpecificCredentialsOutput {
22519	s.ServiceSpecificCredentials = v
22520	return s
22521}
22522
22523// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListSigningCertificatesRequest
22524type ListSigningCertificatesInput struct {
22525	_ struct{} `type:"structure"`
22526
22527	// Use this parameter only when paginating results and only after you receive
22528	// a response indicating that the results are truncated. Set it to the value
22529	// of the Marker element in the response that you received to indicate where
22530	// the next call should start.
22531	Marker *string `min:"1" type:"string"`
22532
22533	// (Optional) Use this only when paginating results to indicate the maximum
22534	// number of items you want in the response. If additional items exist beyond
22535	// the maximum you specify, the IsTruncated response element is true.
22536	//
22537	// If you do not include this parameter, it defaults to 100. Note that IAM might
22538	// return fewer results, even when there are more results available. In that
22539	// case, the IsTruncated response element returns true and Marker contains a
22540	// value to include in the subsequent call that tells the service where to continue
22541	// from.
22542	MaxItems *int64 `min:"1" type:"integer"`
22543
22544	// The name of the IAM user whose signing certificates you want to examine.
22545	//
22546	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
22547	// a string of characters consisting of upper and lowercase alphanumeric characters
22548	// with no spaces. You can also include any of the following characters: =,.@-
22549	UserName *string `min:"1" type:"string"`
22550}
22551
22552// String returns the string representation
22553func (s ListSigningCertificatesInput) String() string {
22554	return awsutil.Prettify(s)
22555}
22556
22557// GoString returns the string representation
22558func (s ListSigningCertificatesInput) GoString() string {
22559	return s.String()
22560}
22561
22562// Validate inspects the fields of the type to determine if they are valid.
22563func (s *ListSigningCertificatesInput) Validate() error {
22564	invalidParams := request.ErrInvalidParams{Context: "ListSigningCertificatesInput"}
22565	if s.Marker != nil && len(*s.Marker) < 1 {
22566		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
22567	}
22568	if s.MaxItems != nil && *s.MaxItems < 1 {
22569		invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
22570	}
22571	if s.UserName != nil && len(*s.UserName) < 1 {
22572		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
22573	}
22574
22575	if invalidParams.Len() > 0 {
22576		return invalidParams
22577	}
22578	return nil
22579}
22580
22581// SetMarker sets the Marker field's value.
22582func (s *ListSigningCertificatesInput) SetMarker(v string) *ListSigningCertificatesInput {
22583	s.Marker = &v
22584	return s
22585}
22586
22587// SetMaxItems sets the MaxItems field's value.
22588func (s *ListSigningCertificatesInput) SetMaxItems(v int64) *ListSigningCertificatesInput {
22589	s.MaxItems = &v
22590	return s
22591}
22592
22593// SetUserName sets the UserName field's value.
22594func (s *ListSigningCertificatesInput) SetUserName(v string) *ListSigningCertificatesInput {
22595	s.UserName = &v
22596	return s
22597}
22598
22599// Contains the response to a successful ListSigningCertificates request.
22600// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListSigningCertificatesResponse
22601type ListSigningCertificatesOutput struct {
22602	_ struct{} `type:"structure"`
22603
22604	// A list of the user's signing certificate information.
22605	//
22606	// Certificates is a required field
22607	Certificates []*SigningCertificate `type:"list" required:"true"`
22608
22609	// A flag that indicates whether there are more items to return. If your results
22610	// were truncated, you can make a subsequent pagination request using the Marker
22611	// request parameter to retrieve more items. Note that IAM might return fewer
22612	// than the MaxItems number of results even when there are more results available.
22613	// We recommend that you check IsTruncated after every call to ensure that you
22614	// receive all of your results.
22615	IsTruncated *bool `type:"boolean"`
22616
22617	// When IsTruncated is true, this element is present and contains the value
22618	// to use for the Marker parameter in a subsequent pagination request.
22619	Marker *string `min:"1" type:"string"`
22620}
22621
22622// String returns the string representation
22623func (s ListSigningCertificatesOutput) String() string {
22624	return awsutil.Prettify(s)
22625}
22626
22627// GoString returns the string representation
22628func (s ListSigningCertificatesOutput) GoString() string {
22629	return s.String()
22630}
22631
22632// SetCertificates sets the Certificates field's value.
22633func (s *ListSigningCertificatesOutput) SetCertificates(v []*SigningCertificate) *ListSigningCertificatesOutput {
22634	s.Certificates = v
22635	return s
22636}
22637
22638// SetIsTruncated sets the IsTruncated field's value.
22639func (s *ListSigningCertificatesOutput) SetIsTruncated(v bool) *ListSigningCertificatesOutput {
22640	s.IsTruncated = &v
22641	return s
22642}
22643
22644// SetMarker sets the Marker field's value.
22645func (s *ListSigningCertificatesOutput) SetMarker(v string) *ListSigningCertificatesOutput {
22646	s.Marker = &v
22647	return s
22648}
22649
22650// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListUserPoliciesRequest
22651type ListUserPoliciesInput struct {
22652	_ struct{} `type:"structure"`
22653
22654	// Use this parameter only when paginating results and only after you receive
22655	// a response indicating that the results are truncated. Set it to the value
22656	// of the Marker element in the response that you received to indicate where
22657	// the next call should start.
22658	Marker *string `min:"1" type:"string"`
22659
22660	// (Optional) Use this only when paginating results to indicate the maximum
22661	// number of items you want in the response. If additional items exist beyond
22662	// the maximum you specify, the IsTruncated response element is true.
22663	//
22664	// If you do not include this parameter, it defaults to 100. Note that IAM might
22665	// return fewer results, even when there are more results available. In that
22666	// case, the IsTruncated response element returns true and Marker contains a
22667	// value to include in the subsequent call that tells the service where to continue
22668	// from.
22669	MaxItems *int64 `min:"1" type:"integer"`
22670
22671	// The name of the user to list policies for.
22672	//
22673	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
22674	// a string of characters consisting of upper and lowercase alphanumeric characters
22675	// with no spaces. You can also include any of the following characters: =,.@-
22676	//
22677	// UserName is a required field
22678	UserName *string `min:"1" type:"string" required:"true"`
22679}
22680
22681// String returns the string representation
22682func (s ListUserPoliciesInput) String() string {
22683	return awsutil.Prettify(s)
22684}
22685
22686// GoString returns the string representation
22687func (s ListUserPoliciesInput) GoString() string {
22688	return s.String()
22689}
22690
22691// Validate inspects the fields of the type to determine if they are valid.
22692func (s *ListUserPoliciesInput) Validate() error {
22693	invalidParams := request.ErrInvalidParams{Context: "ListUserPoliciesInput"}
22694	if s.Marker != nil && len(*s.Marker) < 1 {
22695		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
22696	}
22697	if s.MaxItems != nil && *s.MaxItems < 1 {
22698		invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
22699	}
22700	if s.UserName == nil {
22701		invalidParams.Add(request.NewErrParamRequired("UserName"))
22702	}
22703	if s.UserName != nil && len(*s.UserName) < 1 {
22704		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
22705	}
22706
22707	if invalidParams.Len() > 0 {
22708		return invalidParams
22709	}
22710	return nil
22711}
22712
22713// SetMarker sets the Marker field's value.
22714func (s *ListUserPoliciesInput) SetMarker(v string) *ListUserPoliciesInput {
22715	s.Marker = &v
22716	return s
22717}
22718
22719// SetMaxItems sets the MaxItems field's value.
22720func (s *ListUserPoliciesInput) SetMaxItems(v int64) *ListUserPoliciesInput {
22721	s.MaxItems = &v
22722	return s
22723}
22724
22725// SetUserName sets the UserName field's value.
22726func (s *ListUserPoliciesInput) SetUserName(v string) *ListUserPoliciesInput {
22727	s.UserName = &v
22728	return s
22729}
22730
22731// Contains the response to a successful ListUserPolicies request.
22732// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListUserPoliciesResponse
22733type ListUserPoliciesOutput struct {
22734	_ struct{} `type:"structure"`
22735
22736	// A flag that indicates whether there are more items to return. If your results
22737	// were truncated, you can make a subsequent pagination request using the Marker
22738	// request parameter to retrieve more items. Note that IAM might return fewer
22739	// than the MaxItems number of results even when there are more results available.
22740	// We recommend that you check IsTruncated after every call to ensure that you
22741	// receive all of your results.
22742	IsTruncated *bool `type:"boolean"`
22743
22744	// When IsTruncated is true, this element is present and contains the value
22745	// to use for the Marker parameter in a subsequent pagination request.
22746	Marker *string `min:"1" type:"string"`
22747
22748	// A list of policy names.
22749	//
22750	// PolicyNames is a required field
22751	PolicyNames []*string `type:"list" required:"true"`
22752}
22753
22754// String returns the string representation
22755func (s ListUserPoliciesOutput) String() string {
22756	return awsutil.Prettify(s)
22757}
22758
22759// GoString returns the string representation
22760func (s ListUserPoliciesOutput) GoString() string {
22761	return s.String()
22762}
22763
22764// SetIsTruncated sets the IsTruncated field's value.
22765func (s *ListUserPoliciesOutput) SetIsTruncated(v bool) *ListUserPoliciesOutput {
22766	s.IsTruncated = &v
22767	return s
22768}
22769
22770// SetMarker sets the Marker field's value.
22771func (s *ListUserPoliciesOutput) SetMarker(v string) *ListUserPoliciesOutput {
22772	s.Marker = &v
22773	return s
22774}
22775
22776// SetPolicyNames sets the PolicyNames field's value.
22777func (s *ListUserPoliciesOutput) SetPolicyNames(v []*string) *ListUserPoliciesOutput {
22778	s.PolicyNames = v
22779	return s
22780}
22781
22782// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListUsersRequest
22783type ListUsersInput struct {
22784	_ struct{} `type:"structure"`
22785
22786	// Use this parameter only when paginating results and only after you receive
22787	// a response indicating that the results are truncated. Set it to the value
22788	// of the Marker element in the response that you received to indicate where
22789	// the next call should start.
22790	Marker *string `min:"1" type:"string"`
22791
22792	// (Optional) Use this only when paginating results to indicate the maximum
22793	// number of items you want in the response. If additional items exist beyond
22794	// the maximum you specify, the IsTruncated response element is true.
22795	//
22796	// If you do not include this parameter, it defaults to 100. Note that IAM might
22797	// return fewer results, even when there are more results available. In that
22798	// case, the IsTruncated response element returns true and Marker contains a
22799	// value to include in the subsequent call that tells the service where to continue
22800	// from.
22801	MaxItems *int64 `min:"1" type:"integer"`
22802
22803	// The path prefix for filtering the results. For example: /division_abc/subdivision_xyz/,
22804	// which would get all user names whose path starts with /division_abc/subdivision_xyz/.
22805	//
22806	// This parameter is optional. If it is not included, it defaults to a slash
22807	// (/), listing all user names. This paramater allows (per its regex pattern
22808	// (http://wikipedia.org/wiki/regex)) a string of characters consisting of either
22809	// a forward slash (/) by itself or a string that must begin and end with forward
22810	// slashes, containing any ASCII character from the ! (\u0021) thru the DEL
22811	// character (\u007F), including most punctuation characters, digits, and upper
22812	// and lowercased letters.
22813	PathPrefix *string `min:"1" type:"string"`
22814}
22815
22816// String returns the string representation
22817func (s ListUsersInput) String() string {
22818	return awsutil.Prettify(s)
22819}
22820
22821// GoString returns the string representation
22822func (s ListUsersInput) GoString() string {
22823	return s.String()
22824}
22825
22826// Validate inspects the fields of the type to determine if they are valid.
22827func (s *ListUsersInput) Validate() error {
22828	invalidParams := request.ErrInvalidParams{Context: "ListUsersInput"}
22829	if s.Marker != nil && len(*s.Marker) < 1 {
22830		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
22831	}
22832	if s.MaxItems != nil && *s.MaxItems < 1 {
22833		invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
22834	}
22835	if s.PathPrefix != nil && len(*s.PathPrefix) < 1 {
22836		invalidParams.Add(request.NewErrParamMinLen("PathPrefix", 1))
22837	}
22838
22839	if invalidParams.Len() > 0 {
22840		return invalidParams
22841	}
22842	return nil
22843}
22844
22845// SetMarker sets the Marker field's value.
22846func (s *ListUsersInput) SetMarker(v string) *ListUsersInput {
22847	s.Marker = &v
22848	return s
22849}
22850
22851// SetMaxItems sets the MaxItems field's value.
22852func (s *ListUsersInput) SetMaxItems(v int64) *ListUsersInput {
22853	s.MaxItems = &v
22854	return s
22855}
22856
22857// SetPathPrefix sets the PathPrefix field's value.
22858func (s *ListUsersInput) SetPathPrefix(v string) *ListUsersInput {
22859	s.PathPrefix = &v
22860	return s
22861}
22862
22863// Contains the response to a successful ListUsers request.
22864// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListUsersResponse
22865type ListUsersOutput struct {
22866	_ struct{} `type:"structure"`
22867
22868	// A flag that indicates whether there are more items to return. If your results
22869	// were truncated, you can make a subsequent pagination request using the Marker
22870	// request parameter to retrieve more items. Note that IAM might return fewer
22871	// than the MaxItems number of results even when there are more results available.
22872	// We recommend that you check IsTruncated after every call to ensure that you
22873	// receive all of your results.
22874	IsTruncated *bool `type:"boolean"`
22875
22876	// When IsTruncated is true, this element is present and contains the value
22877	// to use for the Marker parameter in a subsequent pagination request.
22878	Marker *string `min:"1" type:"string"`
22879
22880	// A list of users.
22881	//
22882	// Users is a required field
22883	Users []*User `type:"list" required:"true"`
22884}
22885
22886// String returns the string representation
22887func (s ListUsersOutput) String() string {
22888	return awsutil.Prettify(s)
22889}
22890
22891// GoString returns the string representation
22892func (s ListUsersOutput) GoString() string {
22893	return s.String()
22894}
22895
22896// SetIsTruncated sets the IsTruncated field's value.
22897func (s *ListUsersOutput) SetIsTruncated(v bool) *ListUsersOutput {
22898	s.IsTruncated = &v
22899	return s
22900}
22901
22902// SetMarker sets the Marker field's value.
22903func (s *ListUsersOutput) SetMarker(v string) *ListUsersOutput {
22904	s.Marker = &v
22905	return s
22906}
22907
22908// SetUsers sets the Users field's value.
22909func (s *ListUsersOutput) SetUsers(v []*User) *ListUsersOutput {
22910	s.Users = v
22911	return s
22912}
22913
22914// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListVirtualMFADevicesRequest
22915type ListVirtualMFADevicesInput struct {
22916	_ struct{} `type:"structure"`
22917
22918	// The status (Unassigned or Assigned) of the devices to list. If you do not
22919	// specify an AssignmentStatus, the action defaults to Any which lists both
22920	// assigned and unassigned virtual MFA devices.
22921	AssignmentStatus *string `type:"string" enum:"assignmentStatusType"`
22922
22923	// Use this parameter only when paginating results and only after you receive
22924	// a response indicating that the results are truncated. Set it to the value
22925	// of the Marker element in the response that you received to indicate where
22926	// the next call should start.
22927	Marker *string `min:"1" type:"string"`
22928
22929	// (Optional) Use this only when paginating results to indicate the maximum
22930	// number of items you want in the response. If additional items exist beyond
22931	// the maximum you specify, the IsTruncated response element is true.
22932	//
22933	// If you do not include this parameter, it defaults to 100. Note that IAM might
22934	// return fewer results, even when there are more results available. In that
22935	// case, the IsTruncated response element returns true and Marker contains a
22936	// value to include in the subsequent call that tells the service where to continue
22937	// from.
22938	MaxItems *int64 `min:"1" type:"integer"`
22939}
22940
22941// String returns the string representation
22942func (s ListVirtualMFADevicesInput) String() string {
22943	return awsutil.Prettify(s)
22944}
22945
22946// GoString returns the string representation
22947func (s ListVirtualMFADevicesInput) GoString() string {
22948	return s.String()
22949}
22950
22951// Validate inspects the fields of the type to determine if they are valid.
22952func (s *ListVirtualMFADevicesInput) Validate() error {
22953	invalidParams := request.ErrInvalidParams{Context: "ListVirtualMFADevicesInput"}
22954	if s.Marker != nil && len(*s.Marker) < 1 {
22955		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
22956	}
22957	if s.MaxItems != nil && *s.MaxItems < 1 {
22958		invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
22959	}
22960
22961	if invalidParams.Len() > 0 {
22962		return invalidParams
22963	}
22964	return nil
22965}
22966
22967// SetAssignmentStatus sets the AssignmentStatus field's value.
22968func (s *ListVirtualMFADevicesInput) SetAssignmentStatus(v string) *ListVirtualMFADevicesInput {
22969	s.AssignmentStatus = &v
22970	return s
22971}
22972
22973// SetMarker sets the Marker field's value.
22974func (s *ListVirtualMFADevicesInput) SetMarker(v string) *ListVirtualMFADevicesInput {
22975	s.Marker = &v
22976	return s
22977}
22978
22979// SetMaxItems sets the MaxItems field's value.
22980func (s *ListVirtualMFADevicesInput) SetMaxItems(v int64) *ListVirtualMFADevicesInput {
22981	s.MaxItems = &v
22982	return s
22983}
22984
22985// Contains the response to a successful ListVirtualMFADevices request.
22986// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListVirtualMFADevicesResponse
22987type ListVirtualMFADevicesOutput struct {
22988	_ struct{} `type:"structure"`
22989
22990	// A flag that indicates whether there are more items to return. If your results
22991	// were truncated, you can make a subsequent pagination request using the Marker
22992	// request parameter to retrieve more items. Note that IAM might return fewer
22993	// than the MaxItems number of results even when there are more results available.
22994	// We recommend that you check IsTruncated after every call to ensure that you
22995	// receive all of your results.
22996	IsTruncated *bool `type:"boolean"`
22997
22998	// When IsTruncated is true, this element is present and contains the value
22999	// to use for the Marker parameter in a subsequent pagination request.
23000	Marker *string `min:"1" type:"string"`
23001
23002	// The list of virtual MFA devices in the current account that match the AssignmentStatus
23003	// value that was passed in the request.
23004	//
23005	// VirtualMFADevices is a required field
23006	VirtualMFADevices []*VirtualMFADevice `type:"list" required:"true"`
23007}
23008
23009// String returns the string representation
23010func (s ListVirtualMFADevicesOutput) String() string {
23011	return awsutil.Prettify(s)
23012}
23013
23014// GoString returns the string representation
23015func (s ListVirtualMFADevicesOutput) GoString() string {
23016	return s.String()
23017}
23018
23019// SetIsTruncated sets the IsTruncated field's value.
23020func (s *ListVirtualMFADevicesOutput) SetIsTruncated(v bool) *ListVirtualMFADevicesOutput {
23021	s.IsTruncated = &v
23022	return s
23023}
23024
23025// SetMarker sets the Marker field's value.
23026func (s *ListVirtualMFADevicesOutput) SetMarker(v string) *ListVirtualMFADevicesOutput {
23027	s.Marker = &v
23028	return s
23029}
23030
23031// SetVirtualMFADevices sets the VirtualMFADevices field's value.
23032func (s *ListVirtualMFADevicesOutput) SetVirtualMFADevices(v []*VirtualMFADevice) *ListVirtualMFADevicesOutput {
23033	s.VirtualMFADevices = v
23034	return s
23035}
23036
23037// Contains the user name and password create date for a user.
23038//
23039// This data type is used as a response element in the CreateLoginProfile and
23040// GetLoginProfile actions.
23041// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/LoginProfile
23042type LoginProfile struct {
23043	_ struct{} `type:"structure"`
23044
23045	// The date when the password for the user was created.
23046	//
23047	// CreateDate is a required field
23048	CreateDate *time.Time `type:"timestamp" timestampFormat:"iso8601" required:"true"`
23049
23050	// Specifies whether the user is required to set a new password on next sign-in.
23051	PasswordResetRequired *bool `type:"boolean"`
23052
23053	// The name of the user, which can be used for signing in to the AWS Management
23054	// Console.
23055	//
23056	// UserName is a required field
23057	UserName *string `min:"1" type:"string" required:"true"`
23058}
23059
23060// String returns the string representation
23061func (s LoginProfile) String() string {
23062	return awsutil.Prettify(s)
23063}
23064
23065// GoString returns the string representation
23066func (s LoginProfile) GoString() string {
23067	return s.String()
23068}
23069
23070// SetCreateDate sets the CreateDate field's value.
23071func (s *LoginProfile) SetCreateDate(v time.Time) *LoginProfile {
23072	s.CreateDate = &v
23073	return s
23074}
23075
23076// SetPasswordResetRequired sets the PasswordResetRequired field's value.
23077func (s *LoginProfile) SetPasswordResetRequired(v bool) *LoginProfile {
23078	s.PasswordResetRequired = &v
23079	return s
23080}
23081
23082// SetUserName sets the UserName field's value.
23083func (s *LoginProfile) SetUserName(v string) *LoginProfile {
23084	s.UserName = &v
23085	return s
23086}
23087
23088// Contains information about an MFA device.
23089//
23090// This data type is used as a response element in the ListMFADevices action.
23091// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/MFADevice
23092type MFADevice struct {
23093	_ struct{} `type:"structure"`
23094
23095	// The date when the MFA device was enabled for the user.
23096	//
23097	// EnableDate is a required field
23098	EnableDate *time.Time `type:"timestamp" timestampFormat:"iso8601" required:"true"`
23099
23100	// The serial number that uniquely identifies the MFA device. For virtual MFA
23101	// devices, the serial number is the device ARN.
23102	//
23103	// SerialNumber is a required field
23104	SerialNumber *string `min:"9" type:"string" required:"true"`
23105
23106	// The user with whom the MFA device is associated.
23107	//
23108	// UserName is a required field
23109	UserName *string `min:"1" type:"string" required:"true"`
23110}
23111
23112// String returns the string representation
23113func (s MFADevice) String() string {
23114	return awsutil.Prettify(s)
23115}
23116
23117// GoString returns the string representation
23118func (s MFADevice) GoString() string {
23119	return s.String()
23120}
23121
23122// SetEnableDate sets the EnableDate field's value.
23123func (s *MFADevice) SetEnableDate(v time.Time) *MFADevice {
23124	s.EnableDate = &v
23125	return s
23126}
23127
23128// SetSerialNumber sets the SerialNumber field's value.
23129func (s *MFADevice) SetSerialNumber(v string) *MFADevice {
23130	s.SerialNumber = &v
23131	return s
23132}
23133
23134// SetUserName sets the UserName field's value.
23135func (s *MFADevice) SetUserName(v string) *MFADevice {
23136	s.UserName = &v
23137	return s
23138}
23139
23140// Contains information about a managed policy, including the policy's ARN,
23141// versions, and the number of principal entities (users, groups, and roles)
23142// that the policy is attached to.
23143//
23144// This data type is used as a response element in the GetAccountAuthorizationDetails
23145// action.
23146//
23147// For more information about managed policies, see Managed Policies and Inline
23148// Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
23149// in the Using IAM guide.
23150// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ManagedPolicyDetail
23151type ManagedPolicyDetail struct {
23152	_ struct{} `type:"structure"`
23153
23154	// The Amazon Resource Name (ARN). ARNs are unique identifiers for AWS resources.
23155	//
23156	// For more information about ARNs, go to Amazon Resource Names (ARNs) and AWS
23157	// Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
23158	// in the AWS General Reference.
23159	Arn *string `min:"20" type:"string"`
23160
23161	// The number of principal entities (users, groups, and roles) that the policy
23162	// is attached to.
23163	AttachmentCount *int64 `type:"integer"`
23164
23165	// The date and time, in ISO 8601 date-time format (http://www.iso.org/iso/iso8601),
23166	// when the policy was created.
23167	CreateDate *time.Time `type:"timestamp" timestampFormat:"iso8601"`
23168
23169	// The identifier for the version of the policy that is set as the default (operative)
23170	// version.
23171	//
23172	// For more information about policy versions, see Versioning for Managed Policies
23173	// (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html)
23174	// in the Using IAM guide.
23175	DefaultVersionId *string `type:"string"`
23176
23177	// A friendly description of the policy.
23178	Description *string `type:"string"`
23179
23180	// Specifies whether the policy can be attached to an IAM user, group, or role.
23181	IsAttachable *bool `type:"boolean"`
23182
23183	// The path to the policy.
23184	//
23185	// For more information about paths, see IAM Identifiers (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
23186	// in the Using IAM guide.
23187	Path *string `type:"string"`
23188
23189	// The stable and unique string identifying the policy.
23190	//
23191	// For more information about IDs, see IAM Identifiers (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
23192	// in the Using IAM guide.
23193	PolicyId *string `min:"16" type:"string"`
23194
23195	// The friendly name (not ARN) identifying the policy.
23196	PolicyName *string `min:"1" type:"string"`
23197
23198	// A list containing information about the versions of the policy.
23199	PolicyVersionList []*PolicyVersion `type:"list"`
23200
23201	// The date and time, in ISO 8601 date-time format (http://www.iso.org/iso/iso8601),
23202	// when the policy was last updated.
23203	//
23204	// When a policy has only one version, this field contains the date and time
23205	// when the policy was created. When a policy has more than one version, this
23206	// field contains the date and time when the most recent policy version was
23207	// created.
23208	UpdateDate *time.Time `type:"timestamp" timestampFormat:"iso8601"`
23209}
23210
23211// String returns the string representation
23212func (s ManagedPolicyDetail) String() string {
23213	return awsutil.Prettify(s)
23214}
23215
23216// GoString returns the string representation
23217func (s ManagedPolicyDetail) GoString() string {
23218	return s.String()
23219}
23220
23221// SetArn sets the Arn field's value.
23222func (s *ManagedPolicyDetail) SetArn(v string) *ManagedPolicyDetail {
23223	s.Arn = &v
23224	return s
23225}
23226
23227// SetAttachmentCount sets the AttachmentCount field's value.
23228func (s *ManagedPolicyDetail) SetAttachmentCount(v int64) *ManagedPolicyDetail {
23229	s.AttachmentCount = &v
23230	return s
23231}
23232
23233// SetCreateDate sets the CreateDate field's value.
23234func (s *ManagedPolicyDetail) SetCreateDate(v time.Time) *ManagedPolicyDetail {
23235	s.CreateDate = &v
23236	return s
23237}
23238
23239// SetDefaultVersionId sets the DefaultVersionId field's value.
23240func (s *ManagedPolicyDetail) SetDefaultVersionId(v string) *ManagedPolicyDetail {
23241	s.DefaultVersionId = &v
23242	return s
23243}
23244
23245// SetDescription sets the Description field's value.
23246func (s *ManagedPolicyDetail) SetDescription(v string) *ManagedPolicyDetail {
23247	s.Description = &v
23248	return s
23249}
23250
23251// SetIsAttachable sets the IsAttachable field's value.
23252func (s *ManagedPolicyDetail) SetIsAttachable(v bool) *ManagedPolicyDetail {
23253	s.IsAttachable = &v
23254	return s
23255}
23256
23257// SetPath sets the Path field's value.
23258func (s *ManagedPolicyDetail) SetPath(v string) *ManagedPolicyDetail {
23259	s.Path = &v
23260	return s
23261}
23262
23263// SetPolicyId sets the PolicyId field's value.
23264func (s *ManagedPolicyDetail) SetPolicyId(v string) *ManagedPolicyDetail {
23265	s.PolicyId = &v
23266	return s
23267}
23268
23269// SetPolicyName sets the PolicyName field's value.
23270func (s *ManagedPolicyDetail) SetPolicyName(v string) *ManagedPolicyDetail {
23271	s.PolicyName = &v
23272	return s
23273}
23274
23275// SetPolicyVersionList sets the PolicyVersionList field's value.
23276func (s *ManagedPolicyDetail) SetPolicyVersionList(v []*PolicyVersion) *ManagedPolicyDetail {
23277	s.PolicyVersionList = v
23278	return s
23279}
23280
23281// SetUpdateDate sets the UpdateDate field's value.
23282func (s *ManagedPolicyDetail) SetUpdateDate(v time.Time) *ManagedPolicyDetail {
23283	s.UpdateDate = &v
23284	return s
23285}
23286
23287// Contains the Amazon Resource Name (ARN) for an IAM OpenID Connect provider.
23288// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/OpenIDConnectProviderListEntry
23289type OpenIDConnectProviderListEntry struct {
23290	_ struct{} `type:"structure"`
23291
23292	// The Amazon Resource Name (ARN). ARNs are unique identifiers for AWS resources.
23293	//
23294	// For more information about ARNs, go to Amazon Resource Names (ARNs) and AWS
23295	// Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
23296	// in the AWS General Reference.
23297	Arn *string `min:"20" type:"string"`
23298}
23299
23300// String returns the string representation
23301func (s OpenIDConnectProviderListEntry) String() string {
23302	return awsutil.Prettify(s)
23303}
23304
23305// GoString returns the string representation
23306func (s OpenIDConnectProviderListEntry) GoString() string {
23307	return s.String()
23308}
23309
23310// SetArn sets the Arn field's value.
23311func (s *OpenIDConnectProviderListEntry) SetArn(v string) *OpenIDConnectProviderListEntry {
23312	s.Arn = &v
23313	return s
23314}
23315
23316// Contains information about AWS Organizations's affect on a policy simulation.
23317// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/OrganizationsDecisionDetail
23318type OrganizationsDecisionDetail struct {
23319	_ struct{} `type:"structure"`
23320
23321	// Specifies whether the simulated action is allowed by the AWS Organizations
23322	// service control policies that impact the simulated user's account.
23323	AllowedByOrganizations *bool `type:"boolean"`
23324}
23325
23326// String returns the string representation
23327func (s OrganizationsDecisionDetail) String() string {
23328	return awsutil.Prettify(s)
23329}
23330
23331// GoString returns the string representation
23332func (s OrganizationsDecisionDetail) GoString() string {
23333	return s.String()
23334}
23335
23336// SetAllowedByOrganizations sets the AllowedByOrganizations field's value.
23337func (s *OrganizationsDecisionDetail) SetAllowedByOrganizations(v bool) *OrganizationsDecisionDetail {
23338	s.AllowedByOrganizations = &v
23339	return s
23340}
23341
23342// Contains information about the account password policy.
23343//
23344// This data type is used as a response element in the GetAccountPasswordPolicy
23345// action.
23346// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/PasswordPolicy
23347type PasswordPolicy struct {
23348	_ struct{} `type:"structure"`
23349
23350	// Specifies whether IAM users are allowed to change their own password.
23351	AllowUsersToChangePassword *bool `type:"boolean"`
23352
23353	// Indicates whether passwords in the account expire. Returns true if MaxPasswordAge
23354	// is contains a value greater than 0. Returns false if MaxPasswordAge is 0
23355	// or not present.
23356	ExpirePasswords *bool `type:"boolean"`
23357
23358	// Specifies whether IAM users are prevented from setting a new password after
23359	// their password has expired.
23360	HardExpiry *bool `type:"boolean"`
23361
23362	// The number of days that an IAM user password is valid.
23363	MaxPasswordAge *int64 `min:"1" type:"integer"`
23364
23365	// Minimum length to require for IAM user passwords.
23366	MinimumPasswordLength *int64 `min:"6" type:"integer"`
23367
23368	// Specifies the number of previous passwords that IAM users are prevented from
23369	// reusing.
23370	PasswordReusePrevention *int64 `min:"1" type:"integer"`
23371
23372	// Specifies whether to require lowercase characters for IAM user passwords.
23373	RequireLowercaseCharacters *bool `type:"boolean"`
23374
23375	// Specifies whether to require numbers for IAM user passwords.
23376	RequireNumbers *bool `type:"boolean"`
23377
23378	// Specifies whether to require symbols for IAM user passwords.
23379	RequireSymbols *bool `type:"boolean"`
23380
23381	// Specifies whether to require uppercase characters for IAM user passwords.
23382	RequireUppercaseCharacters *bool `type:"boolean"`
23383}
23384
23385// String returns the string representation
23386func (s PasswordPolicy) String() string {
23387	return awsutil.Prettify(s)
23388}
23389
23390// GoString returns the string representation
23391func (s PasswordPolicy) GoString() string {
23392	return s.String()
23393}
23394
23395// SetAllowUsersToChangePassword sets the AllowUsersToChangePassword field's value.
23396func (s *PasswordPolicy) SetAllowUsersToChangePassword(v bool) *PasswordPolicy {
23397	s.AllowUsersToChangePassword = &v
23398	return s
23399}
23400
23401// SetExpirePasswords sets the ExpirePasswords field's value.
23402func (s *PasswordPolicy) SetExpirePasswords(v bool) *PasswordPolicy {
23403	s.ExpirePasswords = &v
23404	return s
23405}
23406
23407// SetHardExpiry sets the HardExpiry field's value.
23408func (s *PasswordPolicy) SetHardExpiry(v bool) *PasswordPolicy {
23409	s.HardExpiry = &v
23410	return s
23411}
23412
23413// SetMaxPasswordAge sets the MaxPasswordAge field's value.
23414func (s *PasswordPolicy) SetMaxPasswordAge(v int64) *PasswordPolicy {
23415	s.MaxPasswordAge = &v
23416	return s
23417}
23418
23419// SetMinimumPasswordLength sets the MinimumPasswordLength field's value.
23420func (s *PasswordPolicy) SetMinimumPasswordLength(v int64) *PasswordPolicy {
23421	s.MinimumPasswordLength = &v
23422	return s
23423}
23424
23425// SetPasswordReusePrevention sets the PasswordReusePrevention field's value.
23426func (s *PasswordPolicy) SetPasswordReusePrevention(v int64) *PasswordPolicy {
23427	s.PasswordReusePrevention = &v
23428	return s
23429}
23430
23431// SetRequireLowercaseCharacters sets the RequireLowercaseCharacters field's value.
23432func (s *PasswordPolicy) SetRequireLowercaseCharacters(v bool) *PasswordPolicy {
23433	s.RequireLowercaseCharacters = &v
23434	return s
23435}
23436
23437// SetRequireNumbers sets the RequireNumbers field's value.
23438func (s *PasswordPolicy) SetRequireNumbers(v bool) *PasswordPolicy {
23439	s.RequireNumbers = &v
23440	return s
23441}
23442
23443// SetRequireSymbols sets the RequireSymbols field's value.
23444func (s *PasswordPolicy) SetRequireSymbols(v bool) *PasswordPolicy {
23445	s.RequireSymbols = &v
23446	return s
23447}
23448
23449// SetRequireUppercaseCharacters sets the RequireUppercaseCharacters field's value.
23450func (s *PasswordPolicy) SetRequireUppercaseCharacters(v bool) *PasswordPolicy {
23451	s.RequireUppercaseCharacters = &v
23452	return s
23453}
23454
23455// Contains information about a managed policy.
23456//
23457// This data type is used as a response element in the CreatePolicy, GetPolicy,
23458// and ListPolicies actions.
23459//
23460// For more information about managed policies, refer to Managed Policies and
23461// Inline Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
23462// in the Using IAM guide.
23463// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/Policy
23464type Policy struct {
23465	_ struct{} `type:"structure"`
23466
23467	// The Amazon Resource Name (ARN). ARNs are unique identifiers for AWS resources.
23468	//
23469	// For more information about ARNs, go to Amazon Resource Names (ARNs) and AWS
23470	// Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
23471	// in the AWS General Reference.
23472	Arn *string `min:"20" type:"string"`
23473
23474	// The number of entities (users, groups, and roles) that the policy is attached
23475	// to.
23476	AttachmentCount *int64 `type:"integer"`
23477
23478	// The date and time, in ISO 8601 date-time format (http://www.iso.org/iso/iso8601),
23479	// when the policy was created.
23480	CreateDate *time.Time `type:"timestamp" timestampFormat:"iso8601"`
23481
23482	// The identifier for the version of the policy that is set as the default version.
23483	DefaultVersionId *string `type:"string"`
23484
23485	// A friendly description of the policy.
23486	//
23487	// This element is included in the response to the GetPolicy operation. It is
23488	// not included in the response to the ListPolicies operation.
23489	Description *string `type:"string"`
23490
23491	// Specifies whether the policy can be attached to an IAM user, group, or role.
23492	IsAttachable *bool `type:"boolean"`
23493
23494	// The path to the policy.
23495	//
23496	// For more information about paths, see IAM Identifiers (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
23497	// in the Using IAM guide.
23498	Path *string `type:"string"`
23499
23500	// The stable and unique string identifying the policy.
23501	//
23502	// For more information about IDs, see IAM Identifiers (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
23503	// in the Using IAM guide.
23504	PolicyId *string `min:"16" type:"string"`
23505
23506	// The friendly name (not ARN) identifying the policy.
23507	PolicyName *string `min:"1" type:"string"`
23508
23509	// The date and time, in ISO 8601 date-time format (http://www.iso.org/iso/iso8601),
23510	// when the policy was last updated.
23511	//
23512	// When a policy has only one version, this field contains the date and time
23513	// when the policy was created. When a policy has more than one version, this
23514	// field contains the date and time when the most recent policy version was
23515	// created.
23516	UpdateDate *time.Time `type:"timestamp" timestampFormat:"iso8601"`
23517}
23518
23519// String returns the string representation
23520func (s Policy) String() string {
23521	return awsutil.Prettify(s)
23522}
23523
23524// GoString returns the string representation
23525func (s Policy) GoString() string {
23526	return s.String()
23527}
23528
23529// SetArn sets the Arn field's value.
23530func (s *Policy) SetArn(v string) *Policy {
23531	s.Arn = &v
23532	return s
23533}
23534
23535// SetAttachmentCount sets the AttachmentCount field's value.
23536func (s *Policy) SetAttachmentCount(v int64) *Policy {
23537	s.AttachmentCount = &v
23538	return s
23539}
23540
23541// SetCreateDate sets the CreateDate field's value.
23542func (s *Policy) SetCreateDate(v time.Time) *Policy {
23543	s.CreateDate = &v
23544	return s
23545}
23546
23547// SetDefaultVersionId sets the DefaultVersionId field's value.
23548func (s *Policy) SetDefaultVersionId(v string) *Policy {
23549	s.DefaultVersionId = &v
23550	return s
23551}
23552
23553// SetDescription sets the Description field's value.
23554func (s *Policy) SetDescription(v string) *Policy {
23555	s.Description = &v
23556	return s
23557}
23558
23559// SetIsAttachable sets the IsAttachable field's value.
23560func (s *Policy) SetIsAttachable(v bool) *Policy {
23561	s.IsAttachable = &v
23562	return s
23563}
23564
23565// SetPath sets the Path field's value.
23566func (s *Policy) SetPath(v string) *Policy {
23567	s.Path = &v
23568	return s
23569}
23570
23571// SetPolicyId sets the PolicyId field's value.
23572func (s *Policy) SetPolicyId(v string) *Policy {
23573	s.PolicyId = &v
23574	return s
23575}
23576
23577// SetPolicyName sets the PolicyName field's value.
23578func (s *Policy) SetPolicyName(v string) *Policy {
23579	s.PolicyName = &v
23580	return s
23581}
23582
23583// SetUpdateDate sets the UpdateDate field's value.
23584func (s *Policy) SetUpdateDate(v time.Time) *Policy {
23585	s.UpdateDate = &v
23586	return s
23587}
23588
23589// Contains information about an IAM policy, including the policy document.
23590//
23591// This data type is used as a response element in the GetAccountAuthorizationDetails
23592// action.
23593// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/PolicyDetail
23594type PolicyDetail struct {
23595	_ struct{} `type:"structure"`
23596
23597	// The policy document.
23598	PolicyDocument *string `min:"1" type:"string"`
23599
23600	// The name of the policy.
23601	PolicyName *string `min:"1" type:"string"`
23602}
23603
23604// String returns the string representation
23605func (s PolicyDetail) String() string {
23606	return awsutil.Prettify(s)
23607}
23608
23609// GoString returns the string representation
23610func (s PolicyDetail) GoString() string {
23611	return s.String()
23612}
23613
23614// SetPolicyDocument sets the PolicyDocument field's value.
23615func (s *PolicyDetail) SetPolicyDocument(v string) *PolicyDetail {
23616	s.PolicyDocument = &v
23617	return s
23618}
23619
23620// SetPolicyName sets the PolicyName field's value.
23621func (s *PolicyDetail) SetPolicyName(v string) *PolicyDetail {
23622	s.PolicyName = &v
23623	return s
23624}
23625
23626// Contains information about a group that a managed policy is attached to.
23627//
23628// This data type is used as a response element in the ListEntitiesForPolicy
23629// action.
23630//
23631// For more information about managed policies, refer to Managed Policies and
23632// Inline Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
23633// in the Using IAM guide.
23634// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/PolicyGroup
23635type PolicyGroup struct {
23636	_ struct{} `type:"structure"`
23637
23638	// The stable and unique string identifying the group. For more information
23639	// about IDs, see IAM Identifiers (http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html)
23640	// in the IAM User Guide.
23641	GroupId *string `min:"16" type:"string"`
23642
23643	// The name (friendly name, not ARN) identifying the group.
23644	GroupName *string `min:"1" type:"string"`
23645}
23646
23647// String returns the string representation
23648func (s PolicyGroup) String() string {
23649	return awsutil.Prettify(s)
23650}
23651
23652// GoString returns the string representation
23653func (s PolicyGroup) GoString() string {
23654	return s.String()
23655}
23656
23657// SetGroupId sets the GroupId field's value.
23658func (s *PolicyGroup) SetGroupId(v string) *PolicyGroup {
23659	s.GroupId = &v
23660	return s
23661}
23662
23663// SetGroupName sets the GroupName field's value.
23664func (s *PolicyGroup) SetGroupName(v string) *PolicyGroup {
23665	s.GroupName = &v
23666	return s
23667}
23668
23669// Contains information about a role that a managed policy is attached to.
23670//
23671// This data type is used as a response element in the ListEntitiesForPolicy
23672// action.
23673//
23674// For more information about managed policies, refer to Managed Policies and
23675// Inline Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
23676// in the Using IAM guide.
23677// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/PolicyRole
23678type PolicyRole struct {
23679	_ struct{} `type:"structure"`
23680
23681	// The stable and unique string identifying the role. For more information about
23682	// IDs, see IAM Identifiers (http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html)
23683	// in the IAM User Guide.
23684	RoleId *string `min:"16" type:"string"`
23685
23686	// The name (friendly name, not ARN) identifying the role.
23687	RoleName *string `min:"1" type:"string"`
23688}
23689
23690// String returns the string representation
23691func (s PolicyRole) String() string {
23692	return awsutil.Prettify(s)
23693}
23694
23695// GoString returns the string representation
23696func (s PolicyRole) GoString() string {
23697	return s.String()
23698}
23699
23700// SetRoleId sets the RoleId field's value.
23701func (s *PolicyRole) SetRoleId(v string) *PolicyRole {
23702	s.RoleId = &v
23703	return s
23704}
23705
23706// SetRoleName sets the RoleName field's value.
23707func (s *PolicyRole) SetRoleName(v string) *PolicyRole {
23708	s.RoleName = &v
23709	return s
23710}
23711
23712// Contains information about a user that a managed policy is attached to.
23713//
23714// This data type is used as a response element in the ListEntitiesForPolicy
23715// action.
23716//
23717// For more information about managed policies, refer to Managed Policies and
23718// Inline Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
23719// in the Using IAM guide.
23720// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/PolicyUser
23721type PolicyUser struct {
23722	_ struct{} `type:"structure"`
23723
23724	// The stable and unique string identifying the user. For more information about
23725	// IDs, see IAM Identifiers (http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html)
23726	// in the IAM User Guide.
23727	UserId *string `min:"16" type:"string"`
23728
23729	// The name (friendly name, not ARN) identifying the user.
23730	UserName *string `min:"1" type:"string"`
23731}
23732
23733// String returns the string representation
23734func (s PolicyUser) String() string {
23735	return awsutil.Prettify(s)
23736}
23737
23738// GoString returns the string representation
23739func (s PolicyUser) GoString() string {
23740	return s.String()
23741}
23742
23743// SetUserId sets the UserId field's value.
23744func (s *PolicyUser) SetUserId(v string) *PolicyUser {
23745	s.UserId = &v
23746	return s
23747}
23748
23749// SetUserName sets the UserName field's value.
23750func (s *PolicyUser) SetUserName(v string) *PolicyUser {
23751	s.UserName = &v
23752	return s
23753}
23754
23755// Contains information about a version of a managed policy.
23756//
23757// This data type is used as a response element in the CreatePolicyVersion,
23758// GetPolicyVersion, ListPolicyVersions, and GetAccountAuthorizationDetails
23759// actions.
23760//
23761// For more information about managed policies, refer to Managed Policies and
23762// Inline Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
23763// in the Using IAM guide.
23764// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/PolicyVersion
23765type PolicyVersion struct {
23766	_ struct{} `type:"structure"`
23767
23768	// The date and time, in ISO 8601 date-time format (http://www.iso.org/iso/iso8601),
23769	// when the policy version was created.
23770	CreateDate *time.Time `type:"timestamp" timestampFormat:"iso8601"`
23771
23772	// The policy document.
23773	//
23774	// The policy document is returned in the response to the GetPolicyVersion and
23775	// GetAccountAuthorizationDetails operations. It is not returned in the response
23776	// to the CreatePolicyVersion or ListPolicyVersions operations.
23777	Document *string `min:"1" type:"string"`
23778
23779	// Specifies whether the policy version is set as the policy's default version.
23780	IsDefaultVersion *bool `type:"boolean"`
23781
23782	// The identifier for the policy version.
23783	//
23784	// Policy version identifiers always begin with v (always lowercase). When a
23785	// policy is created, the first policy version is v1.
23786	VersionId *string `type:"string"`
23787}
23788
23789// String returns the string representation
23790func (s PolicyVersion) String() string {
23791	return awsutil.Prettify(s)
23792}
23793
23794// GoString returns the string representation
23795func (s PolicyVersion) GoString() string {
23796	return s.String()
23797}
23798
23799// SetCreateDate sets the CreateDate field's value.
23800func (s *PolicyVersion) SetCreateDate(v time.Time) *PolicyVersion {
23801	s.CreateDate = &v
23802	return s
23803}
23804
23805// SetDocument sets the Document field's value.
23806func (s *PolicyVersion) SetDocument(v string) *PolicyVersion {
23807	s.Document = &v
23808	return s
23809}
23810
23811// SetIsDefaultVersion sets the IsDefaultVersion field's value.
23812func (s *PolicyVersion) SetIsDefaultVersion(v bool) *PolicyVersion {
23813	s.IsDefaultVersion = &v
23814	return s
23815}
23816
23817// SetVersionId sets the VersionId field's value.
23818func (s *PolicyVersion) SetVersionId(v string) *PolicyVersion {
23819	s.VersionId = &v
23820	return s
23821}
23822
23823// Contains the row and column of a location of a Statement element in a policy
23824// document.
23825//
23826// This data type is used as a member of the Statement type.
23827// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/Position
23828type Position struct {
23829	_ struct{} `type:"structure"`
23830
23831	// The column in the line containing the specified position in the document.
23832	Column *int64 `type:"integer"`
23833
23834	// The line containing the specified position in the document.
23835	Line *int64 `type:"integer"`
23836}
23837
23838// String returns the string representation
23839func (s Position) String() string {
23840	return awsutil.Prettify(s)
23841}
23842
23843// GoString returns the string representation
23844func (s Position) GoString() string {
23845	return s.String()
23846}
23847
23848// SetColumn sets the Column field's value.
23849func (s *Position) SetColumn(v int64) *Position {
23850	s.Column = &v
23851	return s
23852}
23853
23854// SetLine sets the Line field's value.
23855func (s *Position) SetLine(v int64) *Position {
23856	s.Line = &v
23857	return s
23858}
23859
23860// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/PutGroupPolicyRequest
23861type PutGroupPolicyInput struct {
23862	_ struct{} `type:"structure"`
23863
23864	// The name of the group to associate the policy with.
23865	//
23866	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
23867	// a string of characters consisting of upper and lowercase alphanumeric characters
23868	// with no spaces. You can also include any of the following characters: =,.@-
23869	//
23870	// GroupName is a required field
23871	GroupName *string `min:"1" type:"string" required:"true"`
23872
23873	// The policy document.
23874	//
23875	// The regex pattern (http://wikipedia.org/wiki/regex) used to validate this
23876	// parameter is a string of characters consisting of any printable ASCII character
23877	// ranging from the space character (\u0020) through end of the ASCII character
23878	// range as well as the printable characters in the Basic Latin and Latin-1
23879	// Supplement character set (through \u00FF). It also includes the special characters
23880	// tab (\u0009), line feed (\u000A), and carriage return (\u000D).
23881	//
23882	// PolicyDocument is a required field
23883	PolicyDocument *string `min:"1" type:"string" required:"true"`
23884
23885	// The name of the policy document.
23886	//
23887	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
23888	// a string of characters consisting of upper and lowercase alphanumeric characters
23889	// with no spaces. You can also include any of the following characters: =,.@-+
23890	//
23891	// PolicyName is a required field
23892	PolicyName *string `min:"1" type:"string" required:"true"`
23893}
23894
23895// String returns the string representation
23896func (s PutGroupPolicyInput) String() string {
23897	return awsutil.Prettify(s)
23898}
23899
23900// GoString returns the string representation
23901func (s PutGroupPolicyInput) GoString() string {
23902	return s.String()
23903}
23904
23905// Validate inspects the fields of the type to determine if they are valid.
23906func (s *PutGroupPolicyInput) Validate() error {
23907	invalidParams := request.ErrInvalidParams{Context: "PutGroupPolicyInput"}
23908	if s.GroupName == nil {
23909		invalidParams.Add(request.NewErrParamRequired("GroupName"))
23910	}
23911	if s.GroupName != nil && len(*s.GroupName) < 1 {
23912		invalidParams.Add(request.NewErrParamMinLen("GroupName", 1))
23913	}
23914	if s.PolicyDocument == nil {
23915		invalidParams.Add(request.NewErrParamRequired("PolicyDocument"))
23916	}
23917	if s.PolicyDocument != nil && len(*s.PolicyDocument) < 1 {
23918		invalidParams.Add(request.NewErrParamMinLen("PolicyDocument", 1))
23919	}
23920	if s.PolicyName == nil {
23921		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
23922	}
23923	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
23924		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
23925	}
23926
23927	if invalidParams.Len() > 0 {
23928		return invalidParams
23929	}
23930	return nil
23931}
23932
23933// SetGroupName sets the GroupName field's value.
23934func (s *PutGroupPolicyInput) SetGroupName(v string) *PutGroupPolicyInput {
23935	s.GroupName = &v
23936	return s
23937}
23938
23939// SetPolicyDocument sets the PolicyDocument field's value.
23940func (s *PutGroupPolicyInput) SetPolicyDocument(v string) *PutGroupPolicyInput {
23941	s.PolicyDocument = &v
23942	return s
23943}
23944
23945// SetPolicyName sets the PolicyName field's value.
23946func (s *PutGroupPolicyInput) SetPolicyName(v string) *PutGroupPolicyInput {
23947	s.PolicyName = &v
23948	return s
23949}
23950
23951// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/PutGroupPolicyOutput
23952type PutGroupPolicyOutput struct {
23953	_ struct{} `type:"structure"`
23954}
23955
23956// String returns the string representation
23957func (s PutGroupPolicyOutput) String() string {
23958	return awsutil.Prettify(s)
23959}
23960
23961// GoString returns the string representation
23962func (s PutGroupPolicyOutput) GoString() string {
23963	return s.String()
23964}
23965
23966// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/PutRolePolicyRequest
23967type PutRolePolicyInput struct {
23968	_ struct{} `type:"structure"`
23969
23970	// The policy document.
23971	//
23972	// The regex pattern (http://wikipedia.org/wiki/regex) used to validate this
23973	// parameter is a string of characters consisting of any printable ASCII character
23974	// ranging from the space character (\u0020) through end of the ASCII character
23975	// range as well as the printable characters in the Basic Latin and Latin-1
23976	// Supplement character set (through \u00FF). It also includes the special characters
23977	// tab (\u0009), line feed (\u000A), and carriage return (\u000D).
23978	//
23979	// PolicyDocument is a required field
23980	PolicyDocument *string `min:"1" type:"string" required:"true"`
23981
23982	// The name of the policy document.
23983	//
23984	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
23985	// a string of characters consisting of upper and lowercase alphanumeric characters
23986	// with no spaces. You can also include any of the following characters: =,.@-+
23987	//
23988	// PolicyName is a required field
23989	PolicyName *string `min:"1" type:"string" required:"true"`
23990
23991	// The name of the role to associate the policy with.
23992	//
23993	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
23994	// a string of characters consisting of upper and lowercase alphanumeric characters
23995	// with no spaces. You can also include any of the following characters: _+=,.@-
23996	//
23997	// RoleName is a required field
23998	RoleName *string `min:"1" type:"string" required:"true"`
23999}
24000
24001// String returns the string representation
24002func (s PutRolePolicyInput) String() string {
24003	return awsutil.Prettify(s)
24004}
24005
24006// GoString returns the string representation
24007func (s PutRolePolicyInput) GoString() string {
24008	return s.String()
24009}
24010
24011// Validate inspects the fields of the type to determine if they are valid.
24012func (s *PutRolePolicyInput) Validate() error {
24013	invalidParams := request.ErrInvalidParams{Context: "PutRolePolicyInput"}
24014	if s.PolicyDocument == nil {
24015		invalidParams.Add(request.NewErrParamRequired("PolicyDocument"))
24016	}
24017	if s.PolicyDocument != nil && len(*s.PolicyDocument) < 1 {
24018		invalidParams.Add(request.NewErrParamMinLen("PolicyDocument", 1))
24019	}
24020	if s.PolicyName == nil {
24021		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
24022	}
24023	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
24024		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
24025	}
24026	if s.RoleName == nil {
24027		invalidParams.Add(request.NewErrParamRequired("RoleName"))
24028	}
24029	if s.RoleName != nil && len(*s.RoleName) < 1 {
24030		invalidParams.Add(request.NewErrParamMinLen("RoleName", 1))
24031	}
24032
24033	if invalidParams.Len() > 0 {
24034		return invalidParams
24035	}
24036	return nil
24037}
24038
24039// SetPolicyDocument sets the PolicyDocument field's value.
24040func (s *PutRolePolicyInput) SetPolicyDocument(v string) *PutRolePolicyInput {
24041	s.PolicyDocument = &v
24042	return s
24043}
24044
24045// SetPolicyName sets the PolicyName field's value.
24046func (s *PutRolePolicyInput) SetPolicyName(v string) *PutRolePolicyInput {
24047	s.PolicyName = &v
24048	return s
24049}
24050
24051// SetRoleName sets the RoleName field's value.
24052func (s *PutRolePolicyInput) SetRoleName(v string) *PutRolePolicyInput {
24053	s.RoleName = &v
24054	return s
24055}
24056
24057// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/PutRolePolicyOutput
24058type PutRolePolicyOutput struct {
24059	_ struct{} `type:"structure"`
24060}
24061
24062// String returns the string representation
24063func (s PutRolePolicyOutput) String() string {
24064	return awsutil.Prettify(s)
24065}
24066
24067// GoString returns the string representation
24068func (s PutRolePolicyOutput) GoString() string {
24069	return s.String()
24070}
24071
24072// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/PutUserPolicyRequest
24073type PutUserPolicyInput struct {
24074	_ struct{} `type:"structure"`
24075
24076	// The policy document.
24077	//
24078	// The regex pattern (http://wikipedia.org/wiki/regex) used to validate this
24079	// parameter is a string of characters consisting of any printable ASCII character
24080	// ranging from the space character (\u0020) through end of the ASCII character
24081	// range as well as the printable characters in the Basic Latin and Latin-1
24082	// Supplement character set (through \u00FF). It also includes the special characters
24083	// tab (\u0009), line feed (\u000A), and carriage return (\u000D).
24084	//
24085	// PolicyDocument is a required field
24086	PolicyDocument *string `min:"1" type:"string" required:"true"`
24087
24088	// The name of the policy document.
24089	//
24090	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
24091	// a string of characters consisting of upper and lowercase alphanumeric characters
24092	// with no spaces. You can also include any of the following characters: =,.@-+
24093	//
24094	// PolicyName is a required field
24095	PolicyName *string `min:"1" type:"string" required:"true"`
24096
24097	// The name of the user to associate the policy with.
24098	//
24099	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
24100	// a string of characters consisting of upper and lowercase alphanumeric characters
24101	// with no spaces. You can also include any of the following characters: =,.@-
24102	//
24103	// UserName is a required field
24104	UserName *string `min:"1" type:"string" required:"true"`
24105}
24106
24107// String returns the string representation
24108func (s PutUserPolicyInput) String() string {
24109	return awsutil.Prettify(s)
24110}
24111
24112// GoString returns the string representation
24113func (s PutUserPolicyInput) GoString() string {
24114	return s.String()
24115}
24116
24117// Validate inspects the fields of the type to determine if they are valid.
24118func (s *PutUserPolicyInput) Validate() error {
24119	invalidParams := request.ErrInvalidParams{Context: "PutUserPolicyInput"}
24120	if s.PolicyDocument == nil {
24121		invalidParams.Add(request.NewErrParamRequired("PolicyDocument"))
24122	}
24123	if s.PolicyDocument != nil && len(*s.PolicyDocument) < 1 {
24124		invalidParams.Add(request.NewErrParamMinLen("PolicyDocument", 1))
24125	}
24126	if s.PolicyName == nil {
24127		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
24128	}
24129	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
24130		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
24131	}
24132	if s.UserName == nil {
24133		invalidParams.Add(request.NewErrParamRequired("UserName"))
24134	}
24135	if s.UserName != nil && len(*s.UserName) < 1 {
24136		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
24137	}
24138
24139	if invalidParams.Len() > 0 {
24140		return invalidParams
24141	}
24142	return nil
24143}
24144
24145// SetPolicyDocument sets the PolicyDocument field's value.
24146func (s *PutUserPolicyInput) SetPolicyDocument(v string) *PutUserPolicyInput {
24147	s.PolicyDocument = &v
24148	return s
24149}
24150
24151// SetPolicyName sets the PolicyName field's value.
24152func (s *PutUserPolicyInput) SetPolicyName(v string) *PutUserPolicyInput {
24153	s.PolicyName = &v
24154	return s
24155}
24156
24157// SetUserName sets the UserName field's value.
24158func (s *PutUserPolicyInput) SetUserName(v string) *PutUserPolicyInput {
24159	s.UserName = &v
24160	return s
24161}
24162
24163// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/PutUserPolicyOutput
24164type PutUserPolicyOutput struct {
24165	_ struct{} `type:"structure"`
24166}
24167
24168// String returns the string representation
24169func (s PutUserPolicyOutput) String() string {
24170	return awsutil.Prettify(s)
24171}
24172
24173// GoString returns the string representation
24174func (s PutUserPolicyOutput) GoString() string {
24175	return s.String()
24176}
24177
24178// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/RemoveClientIDFromOpenIDConnectProviderRequest
24179type RemoveClientIDFromOpenIDConnectProviderInput struct {
24180	_ struct{} `type:"structure"`
24181
24182	// The client ID (also known as audience) to remove from the IAM OIDC provider
24183	// resource. For more information about client IDs, see CreateOpenIDConnectProvider.
24184	//
24185	// ClientID is a required field
24186	ClientID *string `min:"1" type:"string" required:"true"`
24187
24188	// The Amazon Resource Name (ARN) of the IAM OIDC provider resource to remove
24189	// the client ID from. You can get a list of OIDC provider ARNs by using the
24190	// ListOpenIDConnectProviders action.
24191	//
24192	// For more information about ARNs, see Amazon Resource Names (ARNs) and AWS
24193	// Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
24194	// in the AWS General Reference.
24195	//
24196	// OpenIDConnectProviderArn is a required field
24197	OpenIDConnectProviderArn *string `min:"20" type:"string" required:"true"`
24198}
24199
24200// String returns the string representation
24201func (s RemoveClientIDFromOpenIDConnectProviderInput) String() string {
24202	return awsutil.Prettify(s)
24203}
24204
24205// GoString returns the string representation
24206func (s RemoveClientIDFromOpenIDConnectProviderInput) GoString() string {
24207	return s.String()
24208}
24209
24210// Validate inspects the fields of the type to determine if they are valid.
24211func (s *RemoveClientIDFromOpenIDConnectProviderInput) Validate() error {
24212	invalidParams := request.ErrInvalidParams{Context: "RemoveClientIDFromOpenIDConnectProviderInput"}
24213	if s.ClientID == nil {
24214		invalidParams.Add(request.NewErrParamRequired("ClientID"))
24215	}
24216	if s.ClientID != nil && len(*s.ClientID) < 1 {
24217		invalidParams.Add(request.NewErrParamMinLen("ClientID", 1))
24218	}
24219	if s.OpenIDConnectProviderArn == nil {
24220		invalidParams.Add(request.NewErrParamRequired("OpenIDConnectProviderArn"))
24221	}
24222	if s.OpenIDConnectProviderArn != nil && len(*s.OpenIDConnectProviderArn) < 20 {
24223		invalidParams.Add(request.NewErrParamMinLen("OpenIDConnectProviderArn", 20))
24224	}
24225
24226	if invalidParams.Len() > 0 {
24227		return invalidParams
24228	}
24229	return nil
24230}
24231
24232// SetClientID sets the ClientID field's value.
24233func (s *RemoveClientIDFromOpenIDConnectProviderInput) SetClientID(v string) *RemoveClientIDFromOpenIDConnectProviderInput {
24234	s.ClientID = &v
24235	return s
24236}
24237
24238// SetOpenIDConnectProviderArn sets the OpenIDConnectProviderArn field's value.
24239func (s *RemoveClientIDFromOpenIDConnectProviderInput) SetOpenIDConnectProviderArn(v string) *RemoveClientIDFromOpenIDConnectProviderInput {
24240	s.OpenIDConnectProviderArn = &v
24241	return s
24242}
24243
24244// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/RemoveClientIDFromOpenIDConnectProviderOutput
24245type RemoveClientIDFromOpenIDConnectProviderOutput struct {
24246	_ struct{} `type:"structure"`
24247}
24248
24249// String returns the string representation
24250func (s RemoveClientIDFromOpenIDConnectProviderOutput) String() string {
24251	return awsutil.Prettify(s)
24252}
24253
24254// GoString returns the string representation
24255func (s RemoveClientIDFromOpenIDConnectProviderOutput) GoString() string {
24256	return s.String()
24257}
24258
24259// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/RemoveRoleFromInstanceProfileRequest
24260type RemoveRoleFromInstanceProfileInput struct {
24261	_ struct{} `type:"structure"`
24262
24263	// The name of the instance profile to update.
24264	//
24265	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
24266	// a string of characters consisting of upper and lowercase alphanumeric characters
24267	// with no spaces. You can also include any of the following characters: =,.@-
24268	//
24269	// InstanceProfileName is a required field
24270	InstanceProfileName *string `min:"1" type:"string" required:"true"`
24271
24272	// The name of the role to remove.
24273	//
24274	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
24275	// a string of characters consisting of upper and lowercase alphanumeric characters
24276	// with no spaces. You can also include any of the following characters: _+=,.@-
24277	//
24278	// RoleName is a required field
24279	RoleName *string `min:"1" type:"string" required:"true"`
24280}
24281
24282// String returns the string representation
24283func (s RemoveRoleFromInstanceProfileInput) String() string {
24284	return awsutil.Prettify(s)
24285}
24286
24287// GoString returns the string representation
24288func (s RemoveRoleFromInstanceProfileInput) GoString() string {
24289	return s.String()
24290}
24291
24292// Validate inspects the fields of the type to determine if they are valid.
24293func (s *RemoveRoleFromInstanceProfileInput) Validate() error {
24294	invalidParams := request.ErrInvalidParams{Context: "RemoveRoleFromInstanceProfileInput"}
24295	if s.InstanceProfileName == nil {
24296		invalidParams.Add(request.NewErrParamRequired("InstanceProfileName"))
24297	}
24298	if s.InstanceProfileName != nil && len(*s.InstanceProfileName) < 1 {
24299		invalidParams.Add(request.NewErrParamMinLen("InstanceProfileName", 1))
24300	}
24301	if s.RoleName == nil {
24302		invalidParams.Add(request.NewErrParamRequired("RoleName"))
24303	}
24304	if s.RoleName != nil && len(*s.RoleName) < 1 {
24305		invalidParams.Add(request.NewErrParamMinLen("RoleName", 1))
24306	}
24307
24308	if invalidParams.Len() > 0 {
24309		return invalidParams
24310	}
24311	return nil
24312}
24313
24314// SetInstanceProfileName sets the InstanceProfileName field's value.
24315func (s *RemoveRoleFromInstanceProfileInput) SetInstanceProfileName(v string) *RemoveRoleFromInstanceProfileInput {
24316	s.InstanceProfileName = &v
24317	return s
24318}
24319
24320// SetRoleName sets the RoleName field's value.
24321func (s *RemoveRoleFromInstanceProfileInput) SetRoleName(v string) *RemoveRoleFromInstanceProfileInput {
24322	s.RoleName = &v
24323	return s
24324}
24325
24326// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/RemoveRoleFromInstanceProfileOutput
24327type RemoveRoleFromInstanceProfileOutput struct {
24328	_ struct{} `type:"structure"`
24329}
24330
24331// String returns the string representation
24332func (s RemoveRoleFromInstanceProfileOutput) String() string {
24333	return awsutil.Prettify(s)
24334}
24335
24336// GoString returns the string representation
24337func (s RemoveRoleFromInstanceProfileOutput) GoString() string {
24338	return s.String()
24339}
24340
24341// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/RemoveUserFromGroupRequest
24342type RemoveUserFromGroupInput struct {
24343	_ struct{} `type:"structure"`
24344
24345	// The name of the group to update.
24346	//
24347	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
24348	// a string of characters consisting of upper and lowercase alphanumeric characters
24349	// with no spaces. You can also include any of the following characters: =,.@-
24350	//
24351	// GroupName is a required field
24352	GroupName *string `min:"1" type:"string" required:"true"`
24353
24354	// The name of the user to remove.
24355	//
24356	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
24357	// a string of characters consisting of upper and lowercase alphanumeric characters
24358	// with no spaces. You can also include any of the following characters: =,.@-
24359	//
24360	// UserName is a required field
24361	UserName *string `min:"1" type:"string" required:"true"`
24362}
24363
24364// String returns the string representation
24365func (s RemoveUserFromGroupInput) String() string {
24366	return awsutil.Prettify(s)
24367}
24368
24369// GoString returns the string representation
24370func (s RemoveUserFromGroupInput) GoString() string {
24371	return s.String()
24372}
24373
24374// Validate inspects the fields of the type to determine if they are valid.
24375func (s *RemoveUserFromGroupInput) Validate() error {
24376	invalidParams := request.ErrInvalidParams{Context: "RemoveUserFromGroupInput"}
24377	if s.GroupName == nil {
24378		invalidParams.Add(request.NewErrParamRequired("GroupName"))
24379	}
24380	if s.GroupName != nil && len(*s.GroupName) < 1 {
24381		invalidParams.Add(request.NewErrParamMinLen("GroupName", 1))
24382	}
24383	if s.UserName == nil {
24384		invalidParams.Add(request.NewErrParamRequired("UserName"))
24385	}
24386	if s.UserName != nil && len(*s.UserName) < 1 {
24387		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
24388	}
24389
24390	if invalidParams.Len() > 0 {
24391		return invalidParams
24392	}
24393	return nil
24394}
24395
24396// SetGroupName sets the GroupName field's value.
24397func (s *RemoveUserFromGroupInput) SetGroupName(v string) *RemoveUserFromGroupInput {
24398	s.GroupName = &v
24399	return s
24400}
24401
24402// SetUserName sets the UserName field's value.
24403func (s *RemoveUserFromGroupInput) SetUserName(v string) *RemoveUserFromGroupInput {
24404	s.UserName = &v
24405	return s
24406}
24407
24408// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/RemoveUserFromGroupOutput
24409type RemoveUserFromGroupOutput struct {
24410	_ struct{} `type:"structure"`
24411}
24412
24413// String returns the string representation
24414func (s RemoveUserFromGroupOutput) String() string {
24415	return awsutil.Prettify(s)
24416}
24417
24418// GoString returns the string representation
24419func (s RemoveUserFromGroupOutput) GoString() string {
24420	return s.String()
24421}
24422
24423// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ResetServiceSpecificCredentialRequest
24424type ResetServiceSpecificCredentialInput struct {
24425	_ struct{} `type:"structure"`
24426
24427	// The unique identifier of the service-specific credential.
24428	//
24429	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
24430	// a string of characters that can consist of any upper or lowercased letter
24431	// or digit.
24432	//
24433	// ServiceSpecificCredentialId is a required field
24434	ServiceSpecificCredentialId *string `min:"20" type:"string" required:"true"`
24435
24436	// The name of the IAM user associated with the service-specific credential.
24437	// If this value is not specified, then the operation assumes the user whose
24438	// credentials are used to call the operation.
24439	//
24440	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
24441	// a string of characters consisting of upper and lowercase alphanumeric characters
24442	// with no spaces. You can also include any of the following characters: =,.@-
24443	UserName *string `min:"1" type:"string"`
24444}
24445
24446// String returns the string representation
24447func (s ResetServiceSpecificCredentialInput) String() string {
24448	return awsutil.Prettify(s)
24449}
24450
24451// GoString returns the string representation
24452func (s ResetServiceSpecificCredentialInput) GoString() string {
24453	return s.String()
24454}
24455
24456// Validate inspects the fields of the type to determine if they are valid.
24457func (s *ResetServiceSpecificCredentialInput) Validate() error {
24458	invalidParams := request.ErrInvalidParams{Context: "ResetServiceSpecificCredentialInput"}
24459	if s.ServiceSpecificCredentialId == nil {
24460		invalidParams.Add(request.NewErrParamRequired("ServiceSpecificCredentialId"))
24461	}
24462	if s.ServiceSpecificCredentialId != nil && len(*s.ServiceSpecificCredentialId) < 20 {
24463		invalidParams.Add(request.NewErrParamMinLen("ServiceSpecificCredentialId", 20))
24464	}
24465	if s.UserName != nil && len(*s.UserName) < 1 {
24466		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
24467	}
24468
24469	if invalidParams.Len() > 0 {
24470		return invalidParams
24471	}
24472	return nil
24473}
24474
24475// SetServiceSpecificCredentialId sets the ServiceSpecificCredentialId field's value.
24476func (s *ResetServiceSpecificCredentialInput) SetServiceSpecificCredentialId(v string) *ResetServiceSpecificCredentialInput {
24477	s.ServiceSpecificCredentialId = &v
24478	return s
24479}
24480
24481// SetUserName sets the UserName field's value.
24482func (s *ResetServiceSpecificCredentialInput) SetUserName(v string) *ResetServiceSpecificCredentialInput {
24483	s.UserName = &v
24484	return s
24485}
24486
24487// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ResetServiceSpecificCredentialResponse
24488type ResetServiceSpecificCredentialOutput struct {
24489	_ struct{} `type:"structure"`
24490
24491	// A structure with details about the updated service-specific credential, including
24492	// the new password.
24493	//
24494	// This is the only time that you can access the password. You cannot recover
24495	// the password later, but you can reset it again.
24496	ServiceSpecificCredential *ServiceSpecificCredential `type:"structure"`
24497}
24498
24499// String returns the string representation
24500func (s ResetServiceSpecificCredentialOutput) String() string {
24501	return awsutil.Prettify(s)
24502}
24503
24504// GoString returns the string representation
24505func (s ResetServiceSpecificCredentialOutput) GoString() string {
24506	return s.String()
24507}
24508
24509// SetServiceSpecificCredential sets the ServiceSpecificCredential field's value.
24510func (s *ResetServiceSpecificCredentialOutput) SetServiceSpecificCredential(v *ServiceSpecificCredential) *ResetServiceSpecificCredentialOutput {
24511	s.ServiceSpecificCredential = v
24512	return s
24513}
24514
24515// Contains the result of the simulation of a single API action call on a single
24516// resource.
24517//
24518// This data type is used by a member of the EvaluationResult data type.
24519// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ResourceSpecificResult
24520type ResourceSpecificResult struct {
24521	_ struct{} `type:"structure"`
24522
24523	// Additional details about the results of the evaluation decision. When there
24524	// are both IAM policies and resource policies, this parameter explains how
24525	// each set of policies contributes to the final evaluation decision. When simulating
24526	// cross-account access to a resource, both the resource-based policy and the
24527	// caller's IAM policy must grant access.
24528	EvalDecisionDetails map[string]*string `type:"map"`
24529
24530	// The result of the simulation of the simulated API action on the resource
24531	// specified in EvalResourceName.
24532	//
24533	// EvalResourceDecision is a required field
24534	EvalResourceDecision *string `type:"string" required:"true" enum:"PolicyEvaluationDecisionType"`
24535
24536	// The name of the simulated resource, in Amazon Resource Name (ARN) format.
24537	//
24538	// EvalResourceName is a required field
24539	EvalResourceName *string `min:"1" type:"string" required:"true"`
24540
24541	// A list of the statements in the input policies that determine the result
24542	// for this part of the simulation. Remember that even if multiple statements
24543	// allow the action on the resource, if any statement denies that action, then
24544	// the explicit deny overrides any allow, and the deny statement is the only
24545	// entry included in the result.
24546	MatchedStatements []*Statement `type:"list"`
24547
24548	// A list of context keys that are required by the included input policies but
24549	// that were not provided by one of the input parameters. This list is used
24550	// when a list of ARNs is included in the ResourceArns parameter instead of
24551	// "*". If you do not specify individual resources, by setting ResourceArns
24552	// to "*" or by not including the ResourceArns parameter, then any missing context
24553	// values are instead included under the EvaluationResults section. To discover
24554	// the context keys used by a set of policies, you can call GetContextKeysForCustomPolicy
24555	// or GetContextKeysForPrincipalPolicy.
24556	MissingContextValues []*string `type:"list"`
24557}
24558
24559// String returns the string representation
24560func (s ResourceSpecificResult) String() string {
24561	return awsutil.Prettify(s)
24562}
24563
24564// GoString returns the string representation
24565func (s ResourceSpecificResult) GoString() string {
24566	return s.String()
24567}
24568
24569// SetEvalDecisionDetails sets the EvalDecisionDetails field's value.
24570func (s *ResourceSpecificResult) SetEvalDecisionDetails(v map[string]*string) *ResourceSpecificResult {
24571	s.EvalDecisionDetails = v
24572	return s
24573}
24574
24575// SetEvalResourceDecision sets the EvalResourceDecision field's value.
24576func (s *ResourceSpecificResult) SetEvalResourceDecision(v string) *ResourceSpecificResult {
24577	s.EvalResourceDecision = &v
24578	return s
24579}
24580
24581// SetEvalResourceName sets the EvalResourceName field's value.
24582func (s *ResourceSpecificResult) SetEvalResourceName(v string) *ResourceSpecificResult {
24583	s.EvalResourceName = &v
24584	return s
24585}
24586
24587// SetMatchedStatements sets the MatchedStatements field's value.
24588func (s *ResourceSpecificResult) SetMatchedStatements(v []*Statement) *ResourceSpecificResult {
24589	s.MatchedStatements = v
24590	return s
24591}
24592
24593// SetMissingContextValues sets the MissingContextValues field's value.
24594func (s *ResourceSpecificResult) SetMissingContextValues(v []*string) *ResourceSpecificResult {
24595	s.MissingContextValues = v
24596	return s
24597}
24598
24599// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ResyncMFADeviceRequest
24600type ResyncMFADeviceInput struct {
24601	_ struct{} `type:"structure"`
24602
24603	// An authentication code emitted by the device.
24604	//
24605	// The format for this parameter is a sequence of six digits.
24606	//
24607	// AuthenticationCode1 is a required field
24608	AuthenticationCode1 *string `min:"6" type:"string" required:"true"`
24609
24610	// A subsequent authentication code emitted by the device.
24611	//
24612	// The format for this parameter is a sequence of six digits.
24613	//
24614	// AuthenticationCode2 is a required field
24615	AuthenticationCode2 *string `min:"6" type:"string" required:"true"`
24616
24617	// Serial number that uniquely identifies the MFA device.
24618	//
24619	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
24620	// a string of characters consisting of upper and lowercase alphanumeric characters
24621	// with no spaces. You can also include any of the following characters: =,.@-
24622	//
24623	// SerialNumber is a required field
24624	SerialNumber *string `min:"9" type:"string" required:"true"`
24625
24626	// The name of the user whose MFA device you want to resynchronize.
24627	//
24628	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
24629	// a string of characters consisting of upper and lowercase alphanumeric characters
24630	// with no spaces. You can also include any of the following characters: =,.@-
24631	//
24632	// UserName is a required field
24633	UserName *string `min:"1" type:"string" required:"true"`
24634}
24635
24636// String returns the string representation
24637func (s ResyncMFADeviceInput) String() string {
24638	return awsutil.Prettify(s)
24639}
24640
24641// GoString returns the string representation
24642func (s ResyncMFADeviceInput) GoString() string {
24643	return s.String()
24644}
24645
24646// Validate inspects the fields of the type to determine if they are valid.
24647func (s *ResyncMFADeviceInput) Validate() error {
24648	invalidParams := request.ErrInvalidParams{Context: "ResyncMFADeviceInput"}
24649	if s.AuthenticationCode1 == nil {
24650		invalidParams.Add(request.NewErrParamRequired("AuthenticationCode1"))
24651	}
24652	if s.AuthenticationCode1 != nil && len(*s.AuthenticationCode1) < 6 {
24653		invalidParams.Add(request.NewErrParamMinLen("AuthenticationCode1", 6))
24654	}
24655	if s.AuthenticationCode2 == nil {
24656		invalidParams.Add(request.NewErrParamRequired("AuthenticationCode2"))
24657	}
24658	if s.AuthenticationCode2 != nil && len(*s.AuthenticationCode2) < 6 {
24659		invalidParams.Add(request.NewErrParamMinLen("AuthenticationCode2", 6))
24660	}
24661	if s.SerialNumber == nil {
24662		invalidParams.Add(request.NewErrParamRequired("SerialNumber"))
24663	}
24664	if s.SerialNumber != nil && len(*s.SerialNumber) < 9 {
24665		invalidParams.Add(request.NewErrParamMinLen("SerialNumber", 9))
24666	}
24667	if s.UserName == nil {
24668		invalidParams.Add(request.NewErrParamRequired("UserName"))
24669	}
24670	if s.UserName != nil && len(*s.UserName) < 1 {
24671		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
24672	}
24673
24674	if invalidParams.Len() > 0 {
24675		return invalidParams
24676	}
24677	return nil
24678}
24679
24680// SetAuthenticationCode1 sets the AuthenticationCode1 field's value.
24681func (s *ResyncMFADeviceInput) SetAuthenticationCode1(v string) *ResyncMFADeviceInput {
24682	s.AuthenticationCode1 = &v
24683	return s
24684}
24685
24686// SetAuthenticationCode2 sets the AuthenticationCode2 field's value.
24687func (s *ResyncMFADeviceInput) SetAuthenticationCode2(v string) *ResyncMFADeviceInput {
24688	s.AuthenticationCode2 = &v
24689	return s
24690}
24691
24692// SetSerialNumber sets the SerialNumber field's value.
24693func (s *ResyncMFADeviceInput) SetSerialNumber(v string) *ResyncMFADeviceInput {
24694	s.SerialNumber = &v
24695	return s
24696}
24697
24698// SetUserName sets the UserName field's value.
24699func (s *ResyncMFADeviceInput) SetUserName(v string) *ResyncMFADeviceInput {
24700	s.UserName = &v
24701	return s
24702}
24703
24704// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ResyncMFADeviceOutput
24705type ResyncMFADeviceOutput struct {
24706	_ struct{} `type:"structure"`
24707}
24708
24709// String returns the string representation
24710func (s ResyncMFADeviceOutput) String() string {
24711	return awsutil.Prettify(s)
24712}
24713
24714// GoString returns the string representation
24715func (s ResyncMFADeviceOutput) GoString() string {
24716	return s.String()
24717}
24718
24719// Contains information about an IAM role. This structure is returned as a response
24720// element in several APIs that interact with roles.
24721// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/Role
24722type Role struct {
24723	_ struct{} `type:"structure"`
24724
24725	// The Amazon Resource Name (ARN) specifying the role. For more information
24726	// about ARNs and how to use them in policies, see IAM Identifiers (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
24727	// in the IAM User Guide guide.
24728	//
24729	// Arn is a required field
24730	Arn *string `min:"20" type:"string" required:"true"`
24731
24732	// The policy that grants an entity permission to assume the role.
24733	AssumeRolePolicyDocument *string `min:"1" type:"string"`
24734
24735	// The date and time, in ISO 8601 date-time format (http://www.iso.org/iso/iso8601),
24736	// when the role was created.
24737	//
24738	// CreateDate is a required field
24739	CreateDate *time.Time `type:"timestamp" timestampFormat:"iso8601" required:"true"`
24740
24741	// A description of the role that you provide.
24742	Description *string `type:"string"`
24743
24744	// The path to the role. For more information about paths, see IAM Identifiers
24745	// (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
24746	// in the Using IAM guide.
24747	//
24748	// Path is a required field
24749	Path *string `min:"1" type:"string" required:"true"`
24750
24751	// The stable and unique string identifying the role. For more information about
24752	// IDs, see IAM Identifiers (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
24753	// in the Using IAM guide.
24754	//
24755	// RoleId is a required field
24756	RoleId *string `min:"16" type:"string" required:"true"`
24757
24758	// The friendly name that identifies the role.
24759	//
24760	// RoleName is a required field
24761	RoleName *string `min:"1" type:"string" required:"true"`
24762}
24763
24764// String returns the string representation
24765func (s Role) String() string {
24766	return awsutil.Prettify(s)
24767}
24768
24769// GoString returns the string representation
24770func (s Role) GoString() string {
24771	return s.String()
24772}
24773
24774// SetArn sets the Arn field's value.
24775func (s *Role) SetArn(v string) *Role {
24776	s.Arn = &v
24777	return s
24778}
24779
24780// SetAssumeRolePolicyDocument sets the AssumeRolePolicyDocument field's value.
24781func (s *Role) SetAssumeRolePolicyDocument(v string) *Role {
24782	s.AssumeRolePolicyDocument = &v
24783	return s
24784}
24785
24786// SetCreateDate sets the CreateDate field's value.
24787func (s *Role) SetCreateDate(v time.Time) *Role {
24788	s.CreateDate = &v
24789	return s
24790}
24791
24792// SetDescription sets the Description field's value.
24793func (s *Role) SetDescription(v string) *Role {
24794	s.Description = &v
24795	return s
24796}
24797
24798// SetPath sets the Path field's value.
24799func (s *Role) SetPath(v string) *Role {
24800	s.Path = &v
24801	return s
24802}
24803
24804// SetRoleId sets the RoleId field's value.
24805func (s *Role) SetRoleId(v string) *Role {
24806	s.RoleId = &v
24807	return s
24808}
24809
24810// SetRoleName sets the RoleName field's value.
24811func (s *Role) SetRoleName(v string) *Role {
24812	s.RoleName = &v
24813	return s
24814}
24815
24816// Contains information about an IAM role, including all of the role's policies.
24817//
24818// This data type is used as a response element in the GetAccountAuthorizationDetails
24819// action.
24820// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/RoleDetail
24821type RoleDetail struct {
24822	_ struct{} `type:"structure"`
24823
24824	// The Amazon Resource Name (ARN). ARNs are unique identifiers for AWS resources.
24825	//
24826	// For more information about ARNs, go to Amazon Resource Names (ARNs) and AWS
24827	// Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
24828	// in the AWS General Reference.
24829	Arn *string `min:"20" type:"string"`
24830
24831	// The trust policy that grants permission to assume the role.
24832	AssumeRolePolicyDocument *string `min:"1" type:"string"`
24833
24834	// A list of managed policies attached to the role. These policies are the role's
24835	// access (permissions) policies.
24836	AttachedManagedPolicies []*AttachedPolicy `type:"list"`
24837
24838	// The date and time, in ISO 8601 date-time format (http://www.iso.org/iso/iso8601),
24839	// when the role was created.
24840	CreateDate *time.Time `type:"timestamp" timestampFormat:"iso8601"`
24841
24842	// A list of instance profiles that contain this role.
24843	InstanceProfileList []*InstanceProfile `type:"list"`
24844
24845	// The path to the role. For more information about paths, see IAM Identifiers
24846	// (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
24847	// in the Using IAM guide.
24848	Path *string `min:"1" type:"string"`
24849
24850	// The stable and unique string identifying the role. For more information about
24851	// IDs, see IAM Identifiers (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
24852	// in the Using IAM guide.
24853	RoleId *string `min:"16" type:"string"`
24854
24855	// The friendly name that identifies the role.
24856	RoleName *string `min:"1" type:"string"`
24857
24858	// A list of inline policies embedded in the role. These policies are the role's
24859	// access (permissions) policies.
24860	RolePolicyList []*PolicyDetail `type:"list"`
24861}
24862
24863// String returns the string representation
24864func (s RoleDetail) String() string {
24865	return awsutil.Prettify(s)
24866}
24867
24868// GoString returns the string representation
24869func (s RoleDetail) GoString() string {
24870	return s.String()
24871}
24872
24873// SetArn sets the Arn field's value.
24874func (s *RoleDetail) SetArn(v string) *RoleDetail {
24875	s.Arn = &v
24876	return s
24877}
24878
24879// SetAssumeRolePolicyDocument sets the AssumeRolePolicyDocument field's value.
24880func (s *RoleDetail) SetAssumeRolePolicyDocument(v string) *RoleDetail {
24881	s.AssumeRolePolicyDocument = &v
24882	return s
24883}
24884
24885// SetAttachedManagedPolicies sets the AttachedManagedPolicies field's value.
24886func (s *RoleDetail) SetAttachedManagedPolicies(v []*AttachedPolicy) *RoleDetail {
24887	s.AttachedManagedPolicies = v
24888	return s
24889}
24890
24891// SetCreateDate sets the CreateDate field's value.
24892func (s *RoleDetail) SetCreateDate(v time.Time) *RoleDetail {
24893	s.CreateDate = &v
24894	return s
24895}
24896
24897// SetInstanceProfileList sets the InstanceProfileList field's value.
24898func (s *RoleDetail) SetInstanceProfileList(v []*InstanceProfile) *RoleDetail {
24899	s.InstanceProfileList = v
24900	return s
24901}
24902
24903// SetPath sets the Path field's value.
24904func (s *RoleDetail) SetPath(v string) *RoleDetail {
24905	s.Path = &v
24906	return s
24907}
24908
24909// SetRoleId sets the RoleId field's value.
24910func (s *RoleDetail) SetRoleId(v string) *RoleDetail {
24911	s.RoleId = &v
24912	return s
24913}
24914
24915// SetRoleName sets the RoleName field's value.
24916func (s *RoleDetail) SetRoleName(v string) *RoleDetail {
24917	s.RoleName = &v
24918	return s
24919}
24920
24921// SetRolePolicyList sets the RolePolicyList field's value.
24922func (s *RoleDetail) SetRolePolicyList(v []*PolicyDetail) *RoleDetail {
24923	s.RolePolicyList = v
24924	return s
24925}
24926
24927// An object that contains details about how a service-linked role is used.
24928//
24929// This data type is used as a response element in the GetServiceLinkedRoleDeletionStatus
24930// operation.
24931// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/RoleUsageType
24932type RoleUsageType struct {
24933	_ struct{} `type:"structure"`
24934
24935	// The name of the region where the service-linked role is being used.
24936	Region *string `min:"1" type:"string"`
24937
24938	// The name of the resource that is using the service-linked role.
24939	Resources []*string `type:"list"`
24940}
24941
24942// String returns the string representation
24943func (s RoleUsageType) String() string {
24944	return awsutil.Prettify(s)
24945}
24946
24947// GoString returns the string representation
24948func (s RoleUsageType) GoString() string {
24949	return s.String()
24950}
24951
24952// SetRegion sets the Region field's value.
24953func (s *RoleUsageType) SetRegion(v string) *RoleUsageType {
24954	s.Region = &v
24955	return s
24956}
24957
24958// SetResources sets the Resources field's value.
24959func (s *RoleUsageType) SetResources(v []*string) *RoleUsageType {
24960	s.Resources = v
24961	return s
24962}
24963
24964// Contains the list of SAML providers for this account.
24965// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/SAMLProviderListEntry
24966type SAMLProviderListEntry struct {
24967	_ struct{} `type:"structure"`
24968
24969	// The Amazon Resource Name (ARN) of the SAML provider.
24970	Arn *string `min:"20" type:"string"`
24971
24972	// The date and time when the SAML provider was created.
24973	CreateDate *time.Time `type:"timestamp" timestampFormat:"iso8601"`
24974
24975	// The expiration date and time for the SAML provider.
24976	ValidUntil *time.Time `type:"timestamp" timestampFormat:"iso8601"`
24977}
24978
24979// String returns the string representation
24980func (s SAMLProviderListEntry) String() string {
24981	return awsutil.Prettify(s)
24982}
24983
24984// GoString returns the string representation
24985func (s SAMLProviderListEntry) GoString() string {
24986	return s.String()
24987}
24988
24989// SetArn sets the Arn field's value.
24990func (s *SAMLProviderListEntry) SetArn(v string) *SAMLProviderListEntry {
24991	s.Arn = &v
24992	return s
24993}
24994
24995// SetCreateDate sets the CreateDate field's value.
24996func (s *SAMLProviderListEntry) SetCreateDate(v time.Time) *SAMLProviderListEntry {
24997	s.CreateDate = &v
24998	return s
24999}
25000
25001// SetValidUntil sets the ValidUntil field's value.
25002func (s *SAMLProviderListEntry) SetValidUntil(v time.Time) *SAMLProviderListEntry {
25003	s.ValidUntil = &v
25004	return s
25005}
25006
25007// Contains information about an SSH public key.
25008//
25009// This data type is used as a response element in the GetSSHPublicKey and UploadSSHPublicKey
25010// actions.
25011// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/SSHPublicKey
25012type SSHPublicKey struct {
25013	_ struct{} `type:"structure"`
25014
25015	// The MD5 message digest of the SSH public key.
25016	//
25017	// Fingerprint is a required field
25018	Fingerprint *string `min:"48" type:"string" required:"true"`
25019
25020	// The SSH public key.
25021	//
25022	// SSHPublicKeyBody is a required field
25023	SSHPublicKeyBody *string `min:"1" type:"string" required:"true"`
25024
25025	// The unique identifier for the SSH public key.
25026	//
25027	// SSHPublicKeyId is a required field
25028	SSHPublicKeyId *string `min:"20" type:"string" required:"true"`
25029
25030	// The status of the SSH public key. Active means the key can be used for authentication
25031	// with an AWS CodeCommit repository. Inactive means the key cannot be used.
25032	//
25033	// Status is a required field
25034	Status *string `type:"string" required:"true" enum:"statusType"`
25035
25036	// The date and time, in ISO 8601 date-time format (http://www.iso.org/iso/iso8601),
25037	// when the SSH public key was uploaded.
25038	UploadDate *time.Time `type:"timestamp" timestampFormat:"iso8601"`
25039
25040	// The name of the IAM user associated with the SSH public key.
25041	//
25042	// UserName is a required field
25043	UserName *string `min:"1" type:"string" required:"true"`
25044}
25045
25046// String returns the string representation
25047func (s SSHPublicKey) String() string {
25048	return awsutil.Prettify(s)
25049}
25050
25051// GoString returns the string representation
25052func (s SSHPublicKey) GoString() string {
25053	return s.String()
25054}
25055
25056// SetFingerprint sets the Fingerprint field's value.
25057func (s *SSHPublicKey) SetFingerprint(v string) *SSHPublicKey {
25058	s.Fingerprint = &v
25059	return s
25060}
25061
25062// SetSSHPublicKeyBody sets the SSHPublicKeyBody field's value.
25063func (s *SSHPublicKey) SetSSHPublicKeyBody(v string) *SSHPublicKey {
25064	s.SSHPublicKeyBody = &v
25065	return s
25066}
25067
25068// SetSSHPublicKeyId sets the SSHPublicKeyId field's value.
25069func (s *SSHPublicKey) SetSSHPublicKeyId(v string) *SSHPublicKey {
25070	s.SSHPublicKeyId = &v
25071	return s
25072}
25073
25074// SetStatus sets the Status field's value.
25075func (s *SSHPublicKey) SetStatus(v string) *SSHPublicKey {
25076	s.Status = &v
25077	return s
25078}
25079
25080// SetUploadDate sets the UploadDate field's value.
25081func (s *SSHPublicKey) SetUploadDate(v time.Time) *SSHPublicKey {
25082	s.UploadDate = &v
25083	return s
25084}
25085
25086// SetUserName sets the UserName field's value.
25087func (s *SSHPublicKey) SetUserName(v string) *SSHPublicKey {
25088	s.UserName = &v
25089	return s
25090}
25091
25092// Contains information about an SSH public key, without the key's body or fingerprint.
25093//
25094// This data type is used as a response element in the ListSSHPublicKeys action.
25095// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/SSHPublicKeyMetadata
25096type SSHPublicKeyMetadata struct {
25097	_ struct{} `type:"structure"`
25098
25099	// The unique identifier for the SSH public key.
25100	//
25101	// SSHPublicKeyId is a required field
25102	SSHPublicKeyId *string `min:"20" type:"string" required:"true"`
25103
25104	// The status of the SSH public key. Active means the key can be used for authentication
25105	// with an AWS CodeCommit repository. Inactive means the key cannot be used.
25106	//
25107	// Status is a required field
25108	Status *string `type:"string" required:"true" enum:"statusType"`
25109
25110	// The date and time, in ISO 8601 date-time format (http://www.iso.org/iso/iso8601),
25111	// when the SSH public key was uploaded.
25112	//
25113	// UploadDate is a required field
25114	UploadDate *time.Time `type:"timestamp" timestampFormat:"iso8601" required:"true"`
25115
25116	// The name of the IAM user associated with the SSH public key.
25117	//
25118	// UserName is a required field
25119	UserName *string `min:"1" type:"string" required:"true"`
25120}
25121
25122// String returns the string representation
25123func (s SSHPublicKeyMetadata) String() string {
25124	return awsutil.Prettify(s)
25125}
25126
25127// GoString returns the string representation
25128func (s SSHPublicKeyMetadata) GoString() string {
25129	return s.String()
25130}
25131
25132// SetSSHPublicKeyId sets the SSHPublicKeyId field's value.
25133func (s *SSHPublicKeyMetadata) SetSSHPublicKeyId(v string) *SSHPublicKeyMetadata {
25134	s.SSHPublicKeyId = &v
25135	return s
25136}
25137
25138// SetStatus sets the Status field's value.
25139func (s *SSHPublicKeyMetadata) SetStatus(v string) *SSHPublicKeyMetadata {
25140	s.Status = &v
25141	return s
25142}
25143
25144// SetUploadDate sets the UploadDate field's value.
25145func (s *SSHPublicKeyMetadata) SetUploadDate(v time.Time) *SSHPublicKeyMetadata {
25146	s.UploadDate = &v
25147	return s
25148}
25149
25150// SetUserName sets the UserName field's value.
25151func (s *SSHPublicKeyMetadata) SetUserName(v string) *SSHPublicKeyMetadata {
25152	s.UserName = &v
25153	return s
25154}
25155
25156// Contains information about a server certificate.
25157//
25158// This data type is used as a response element in the GetServerCertificate
25159// action.
25160// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ServerCertificate
25161type ServerCertificate struct {
25162	_ struct{} `type:"structure"`
25163
25164	// The contents of the public key certificate.
25165	//
25166	// CertificateBody is a required field
25167	CertificateBody *string `min:"1" type:"string" required:"true"`
25168
25169	// The contents of the public key certificate chain.
25170	CertificateChain *string `min:"1" type:"string"`
25171
25172	// The meta information of the server certificate, such as its name, path, ID,
25173	// and ARN.
25174	//
25175	// ServerCertificateMetadata is a required field
25176	ServerCertificateMetadata *ServerCertificateMetadata `type:"structure" required:"true"`
25177}
25178
25179// String returns the string representation
25180func (s ServerCertificate) String() string {
25181	return awsutil.Prettify(s)
25182}
25183
25184// GoString returns the string representation
25185func (s ServerCertificate) GoString() string {
25186	return s.String()
25187}
25188
25189// SetCertificateBody sets the CertificateBody field's value.
25190func (s *ServerCertificate) SetCertificateBody(v string) *ServerCertificate {
25191	s.CertificateBody = &v
25192	return s
25193}
25194
25195// SetCertificateChain sets the CertificateChain field's value.
25196func (s *ServerCertificate) SetCertificateChain(v string) *ServerCertificate {
25197	s.CertificateChain = &v
25198	return s
25199}
25200
25201// SetServerCertificateMetadata sets the ServerCertificateMetadata field's value.
25202func (s *ServerCertificate) SetServerCertificateMetadata(v *ServerCertificateMetadata) *ServerCertificate {
25203	s.ServerCertificateMetadata = v
25204	return s
25205}
25206
25207// Contains information about a server certificate without its certificate body,
25208// certificate chain, and private key.
25209//
25210// This data type is used as a response element in the UploadServerCertificate
25211// and ListServerCertificates actions.
25212// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ServerCertificateMetadata
25213type ServerCertificateMetadata struct {
25214	_ struct{} `type:"structure"`
25215
25216	// The Amazon Resource Name (ARN) specifying the server certificate. For more
25217	// information about ARNs and how to use them in policies, see IAM Identifiers
25218	// (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
25219	// in the Using IAM guide.
25220	//
25221	// Arn is a required field
25222	Arn *string `min:"20" type:"string" required:"true"`
25223
25224	// The date on which the certificate is set to expire.
25225	Expiration *time.Time `type:"timestamp" timestampFormat:"iso8601"`
25226
25227	// The path to the server certificate. For more information about paths, see
25228	// IAM Identifiers (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
25229	// in the Using IAM guide.
25230	//
25231	// Path is a required field
25232	Path *string `min:"1" type:"string" required:"true"`
25233
25234	// The stable and unique string identifying the server certificate. For more
25235	// information about IDs, see IAM Identifiers (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
25236	// in the Using IAM guide.
25237	//
25238	// ServerCertificateId is a required field
25239	ServerCertificateId *string `min:"16" type:"string" required:"true"`
25240
25241	// The name that identifies the server certificate.
25242	//
25243	// ServerCertificateName is a required field
25244	ServerCertificateName *string `min:"1" type:"string" required:"true"`
25245
25246	// The date when the server certificate was uploaded.
25247	UploadDate *time.Time `type:"timestamp" timestampFormat:"iso8601"`
25248}
25249
25250// String returns the string representation
25251func (s ServerCertificateMetadata) String() string {
25252	return awsutil.Prettify(s)
25253}
25254
25255// GoString returns the string representation
25256func (s ServerCertificateMetadata) GoString() string {
25257	return s.String()
25258}
25259
25260// SetArn sets the Arn field's value.
25261func (s *ServerCertificateMetadata) SetArn(v string) *ServerCertificateMetadata {
25262	s.Arn = &v
25263	return s
25264}
25265
25266// SetExpiration sets the Expiration field's value.
25267func (s *ServerCertificateMetadata) SetExpiration(v time.Time) *ServerCertificateMetadata {
25268	s.Expiration = &v
25269	return s
25270}
25271
25272// SetPath sets the Path field's value.
25273func (s *ServerCertificateMetadata) SetPath(v string) *ServerCertificateMetadata {
25274	s.Path = &v
25275	return s
25276}
25277
25278// SetServerCertificateId sets the ServerCertificateId field's value.
25279func (s *ServerCertificateMetadata) SetServerCertificateId(v string) *ServerCertificateMetadata {
25280	s.ServerCertificateId = &v
25281	return s
25282}
25283
25284// SetServerCertificateName sets the ServerCertificateName field's value.
25285func (s *ServerCertificateMetadata) SetServerCertificateName(v string) *ServerCertificateMetadata {
25286	s.ServerCertificateName = &v
25287	return s
25288}
25289
25290// SetUploadDate sets the UploadDate field's value.
25291func (s *ServerCertificateMetadata) SetUploadDate(v time.Time) *ServerCertificateMetadata {
25292	s.UploadDate = &v
25293	return s
25294}
25295
25296// Contains the details of a service specific credential.
25297// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ServiceSpecificCredential
25298type ServiceSpecificCredential struct {
25299	_ struct{} `type:"structure"`
25300
25301	// The date and time, in ISO 8601 date-time format (http://www.iso.org/iso/iso8601),
25302	// when the service-specific credential were created.
25303	//
25304	// CreateDate is a required field
25305	CreateDate *time.Time `type:"timestamp" timestampFormat:"iso8601" required:"true"`
25306
25307	// The name of the service associated with the service-specific credential.
25308	//
25309	// ServiceName is a required field
25310	ServiceName *string `type:"string" required:"true"`
25311
25312	// The generated password for the service-specific credential.
25313	//
25314	// ServicePassword is a required field
25315	ServicePassword *string `type:"string" required:"true"`
25316
25317	// The unique identifier for the service-specific credential.
25318	//
25319	// ServiceSpecificCredentialId is a required field
25320	ServiceSpecificCredentialId *string `min:"20" type:"string" required:"true"`
25321
25322	// The generated user name for the service-specific credential. This value is
25323	// generated by combining the IAM user's name combined with the ID number of
25324	// the AWS account, as in jane-at-123456789012, for example. This value cannot
25325	// be configured by the user.
25326	//
25327	// ServiceUserName is a required field
25328	ServiceUserName *string `min:"17" type:"string" required:"true"`
25329
25330	// The status of the service-specific credential. Active means the key is valid
25331	// for API calls, while Inactive means it is not.
25332	//
25333	// Status is a required field
25334	Status *string `type:"string" required:"true" enum:"statusType"`
25335
25336	// The name of the IAM user associated with the service-specific credential.
25337	//
25338	// UserName is a required field
25339	UserName *string `min:"1" type:"string" required:"true"`
25340}
25341
25342// String returns the string representation
25343func (s ServiceSpecificCredential) String() string {
25344	return awsutil.Prettify(s)
25345}
25346
25347// GoString returns the string representation
25348func (s ServiceSpecificCredential) GoString() string {
25349	return s.String()
25350}
25351
25352// SetCreateDate sets the CreateDate field's value.
25353func (s *ServiceSpecificCredential) SetCreateDate(v time.Time) *ServiceSpecificCredential {
25354	s.CreateDate = &v
25355	return s
25356}
25357
25358// SetServiceName sets the ServiceName field's value.
25359func (s *ServiceSpecificCredential) SetServiceName(v string) *ServiceSpecificCredential {
25360	s.ServiceName = &v
25361	return s
25362}
25363
25364// SetServicePassword sets the ServicePassword field's value.
25365func (s *ServiceSpecificCredential) SetServicePassword(v string) *ServiceSpecificCredential {
25366	s.ServicePassword = &v
25367	return s
25368}
25369
25370// SetServiceSpecificCredentialId sets the ServiceSpecificCredentialId field's value.
25371func (s *ServiceSpecificCredential) SetServiceSpecificCredentialId(v string) *ServiceSpecificCredential {
25372	s.ServiceSpecificCredentialId = &v
25373	return s
25374}
25375
25376// SetServiceUserName sets the ServiceUserName field's value.
25377func (s *ServiceSpecificCredential) SetServiceUserName(v string) *ServiceSpecificCredential {
25378	s.ServiceUserName = &v
25379	return s
25380}
25381
25382// SetStatus sets the Status field's value.
25383func (s *ServiceSpecificCredential) SetStatus(v string) *ServiceSpecificCredential {
25384	s.Status = &v
25385	return s
25386}
25387
25388// SetUserName sets the UserName field's value.
25389func (s *ServiceSpecificCredential) SetUserName(v string) *ServiceSpecificCredential {
25390	s.UserName = &v
25391	return s
25392}
25393
25394// Contains additional details about a service-specific credential.
25395// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ServiceSpecificCredentialMetadata
25396type ServiceSpecificCredentialMetadata struct {
25397	_ struct{} `type:"structure"`
25398
25399	// The date and time, in ISO 8601 date-time format (http://www.iso.org/iso/iso8601),
25400	// when the service-specific credential were created.
25401	//
25402	// CreateDate is a required field
25403	CreateDate *time.Time `type:"timestamp" timestampFormat:"iso8601" required:"true"`
25404
25405	// The name of the service associated with the service-specific credential.
25406	//
25407	// ServiceName is a required field
25408	ServiceName *string `type:"string" required:"true"`
25409
25410	// The unique identifier for the service-specific credential.
25411	//
25412	// ServiceSpecificCredentialId is a required field
25413	ServiceSpecificCredentialId *string `min:"20" type:"string" required:"true"`
25414
25415	// The generated user name for the service-specific credential.
25416	//
25417	// ServiceUserName is a required field
25418	ServiceUserName *string `min:"17" type:"string" required:"true"`
25419
25420	// The status of the service-specific credential. Active means the key is valid
25421	// for API calls, while Inactive means it is not.
25422	//
25423	// Status is a required field
25424	Status *string `type:"string" required:"true" enum:"statusType"`
25425
25426	// The name of the IAM user associated with the service-specific credential.
25427	//
25428	// UserName is a required field
25429	UserName *string `min:"1" type:"string" required:"true"`
25430}
25431
25432// String returns the string representation
25433func (s ServiceSpecificCredentialMetadata) String() string {
25434	return awsutil.Prettify(s)
25435}
25436
25437// GoString returns the string representation
25438func (s ServiceSpecificCredentialMetadata) GoString() string {
25439	return s.String()
25440}
25441
25442// SetCreateDate sets the CreateDate field's value.
25443func (s *ServiceSpecificCredentialMetadata) SetCreateDate(v time.Time) *ServiceSpecificCredentialMetadata {
25444	s.CreateDate = &v
25445	return s
25446}
25447
25448// SetServiceName sets the ServiceName field's value.
25449func (s *ServiceSpecificCredentialMetadata) SetServiceName(v string) *ServiceSpecificCredentialMetadata {
25450	s.ServiceName = &v
25451	return s
25452}
25453
25454// SetServiceSpecificCredentialId sets the ServiceSpecificCredentialId field's value.
25455func (s *ServiceSpecificCredentialMetadata) SetServiceSpecificCredentialId(v string) *ServiceSpecificCredentialMetadata {
25456	s.ServiceSpecificCredentialId = &v
25457	return s
25458}
25459
25460// SetServiceUserName sets the ServiceUserName field's value.
25461func (s *ServiceSpecificCredentialMetadata) SetServiceUserName(v string) *ServiceSpecificCredentialMetadata {
25462	s.ServiceUserName = &v
25463	return s
25464}
25465
25466// SetStatus sets the Status field's value.
25467func (s *ServiceSpecificCredentialMetadata) SetStatus(v string) *ServiceSpecificCredentialMetadata {
25468	s.Status = &v
25469	return s
25470}
25471
25472// SetUserName sets the UserName field's value.
25473func (s *ServiceSpecificCredentialMetadata) SetUserName(v string) *ServiceSpecificCredentialMetadata {
25474	s.UserName = &v
25475	return s
25476}
25477
25478// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/SetDefaultPolicyVersionRequest
25479type SetDefaultPolicyVersionInput struct {
25480	_ struct{} `type:"structure"`
25481
25482	// The Amazon Resource Name (ARN) of the IAM policy whose default version you
25483	// want to set.
25484	//
25485	// For more information about ARNs, see Amazon Resource Names (ARNs) and AWS
25486	// Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
25487	// in the AWS General Reference.
25488	//
25489	// PolicyArn is a required field
25490	PolicyArn *string `min:"20" type:"string" required:"true"`
25491
25492	// The version of the policy to set as the default (operative) version.
25493	//
25494	// For more information about managed policy versions, see Versioning for Managed
25495	// Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html)
25496	// in the IAM User Guide.
25497	//
25498	// VersionId is a required field
25499	VersionId *string `type:"string" required:"true"`
25500}
25501
25502// String returns the string representation
25503func (s SetDefaultPolicyVersionInput) String() string {
25504	return awsutil.Prettify(s)
25505}
25506
25507// GoString returns the string representation
25508func (s SetDefaultPolicyVersionInput) GoString() string {
25509	return s.String()
25510}
25511
25512// Validate inspects the fields of the type to determine if they are valid.
25513func (s *SetDefaultPolicyVersionInput) Validate() error {
25514	invalidParams := request.ErrInvalidParams{Context: "SetDefaultPolicyVersionInput"}
25515	if s.PolicyArn == nil {
25516		invalidParams.Add(request.NewErrParamRequired("PolicyArn"))
25517	}
25518	if s.PolicyArn != nil && len(*s.PolicyArn) < 20 {
25519		invalidParams.Add(request.NewErrParamMinLen("PolicyArn", 20))
25520	}
25521	if s.VersionId == nil {
25522		invalidParams.Add(request.NewErrParamRequired("VersionId"))
25523	}
25524
25525	if invalidParams.Len() > 0 {
25526		return invalidParams
25527	}
25528	return nil
25529}
25530
25531// SetPolicyArn sets the PolicyArn field's value.
25532func (s *SetDefaultPolicyVersionInput) SetPolicyArn(v string) *SetDefaultPolicyVersionInput {
25533	s.PolicyArn = &v
25534	return s
25535}
25536
25537// SetVersionId sets the VersionId field's value.
25538func (s *SetDefaultPolicyVersionInput) SetVersionId(v string) *SetDefaultPolicyVersionInput {
25539	s.VersionId = &v
25540	return s
25541}
25542
25543// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/SetDefaultPolicyVersionOutput
25544type SetDefaultPolicyVersionOutput struct {
25545	_ struct{} `type:"structure"`
25546}
25547
25548// String returns the string representation
25549func (s SetDefaultPolicyVersionOutput) String() string {
25550	return awsutil.Prettify(s)
25551}
25552
25553// GoString returns the string representation
25554func (s SetDefaultPolicyVersionOutput) GoString() string {
25555	return s.String()
25556}
25557
25558// Contains information about an X.509 signing certificate.
25559//
25560// This data type is used as a response element in the UploadSigningCertificate
25561// and ListSigningCertificates actions.
25562// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/SigningCertificate
25563type SigningCertificate struct {
25564	_ struct{} `type:"structure"`
25565
25566	// The contents of the signing certificate.
25567	//
25568	// CertificateBody is a required field
25569	CertificateBody *string `min:"1" type:"string" required:"true"`
25570
25571	// The ID for the signing certificate.
25572	//
25573	// CertificateId is a required field
25574	CertificateId *string `min:"24" type:"string" required:"true"`
25575
25576	// The status of the signing certificate. Active means the key is valid for
25577	// API calls, while Inactive means it is not.
25578	//
25579	// Status is a required field
25580	Status *string `type:"string" required:"true" enum:"statusType"`
25581
25582	// The date when the signing certificate was uploaded.
25583	UploadDate *time.Time `type:"timestamp" timestampFormat:"iso8601"`
25584
25585	// The name of the user the signing certificate is associated with.
25586	//
25587	// UserName is a required field
25588	UserName *string `min:"1" type:"string" required:"true"`
25589}
25590
25591// String returns the string representation
25592func (s SigningCertificate) String() string {
25593	return awsutil.Prettify(s)
25594}
25595
25596// GoString returns the string representation
25597func (s SigningCertificate) GoString() string {
25598	return s.String()
25599}
25600
25601// SetCertificateBody sets the CertificateBody field's value.
25602func (s *SigningCertificate) SetCertificateBody(v string) *SigningCertificate {
25603	s.CertificateBody = &v
25604	return s
25605}
25606
25607// SetCertificateId sets the CertificateId field's value.
25608func (s *SigningCertificate) SetCertificateId(v string) *SigningCertificate {
25609	s.CertificateId = &v
25610	return s
25611}
25612
25613// SetStatus sets the Status field's value.
25614func (s *SigningCertificate) SetStatus(v string) *SigningCertificate {
25615	s.Status = &v
25616	return s
25617}
25618
25619// SetUploadDate sets the UploadDate field's value.
25620func (s *SigningCertificate) SetUploadDate(v time.Time) *SigningCertificate {
25621	s.UploadDate = &v
25622	return s
25623}
25624
25625// SetUserName sets the UserName field's value.
25626func (s *SigningCertificate) SetUserName(v string) *SigningCertificate {
25627	s.UserName = &v
25628	return s
25629}
25630
25631// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/SimulateCustomPolicyRequest
25632type SimulateCustomPolicyInput struct {
25633	_ struct{} `type:"structure"`
25634
25635	// A list of names of API actions to evaluate in the simulation. Each action
25636	// is evaluated against each resource. Each action must include the service
25637	// identifier, such as iam:CreateUser.
25638	//
25639	// ActionNames is a required field
25640	ActionNames []*string `type:"list" required:"true"`
25641
25642	// The ARN of the IAM user that you want to use as the simulated caller of the
25643	// APIs. CallerArn is required if you include a ResourcePolicy so that the policy's
25644	// Principal element has a value to use in evaluating the policy.
25645	//
25646	// You can specify only the ARN of an IAM user. You cannot specify the ARN of
25647	// an assumed role, federated user, or a service principal.
25648	CallerArn *string `min:"1" type:"string"`
25649
25650	// A list of context keys and corresponding values for the simulation to use.
25651	// Whenever a context key is evaluated in one of the simulated IAM permission
25652	// policies, the corresponding value is supplied.
25653	ContextEntries []*ContextEntry `type:"list"`
25654
25655	// Use this parameter only when paginating results and only after you receive
25656	// a response indicating that the results are truncated. Set it to the value
25657	// of the Marker element in the response that you received to indicate where
25658	// the next call should start.
25659	Marker *string `min:"1" type:"string"`
25660
25661	// (Optional) Use this only when paginating results to indicate the maximum
25662	// number of items you want in the response. If additional items exist beyond
25663	// the maximum you specify, the IsTruncated response element is true.
25664	//
25665	// If you do not include this parameter, it defaults to 100. Note that IAM might
25666	// return fewer results, even when there are more results available. In that
25667	// case, the IsTruncated response element returns true and Marker contains a
25668	// value to include in the subsequent call that tells the service where to continue
25669	// from.
25670	MaxItems *int64 `min:"1" type:"integer"`
25671
25672	// A list of policy documents to include in the simulation. Each document is
25673	// specified as a string containing the complete, valid JSON text of an IAM
25674	// policy. Do not include any resource-based policies in this parameter. Any
25675	// resource-based policy must be submitted with the ResourcePolicy parameter.
25676	// The policies cannot be "scope-down" policies, such as you could include in
25677	// a call to GetFederationToken (http://docs.aws.amazon.com/IAM/latest/APIReference/API_GetFederationToken.html)
25678	// or one of the AssumeRole (http://docs.aws.amazon.com/IAM/latest/APIReference/API_AssumeRole.html)
25679	// APIs to restrict what a user can do while using the temporary credentials.
25680	//
25681	// The regex pattern (http://wikipedia.org/wiki/regex) used to validate this
25682	// parameter is a string of characters consisting of any printable ASCII character
25683	// ranging from the space character (\u0020) through end of the ASCII character
25684	// range as well as the printable characters in the Basic Latin and Latin-1
25685	// Supplement character set (through \u00FF). It also includes the special characters
25686	// tab (\u0009), line feed (\u000A), and carriage return (\u000D).
25687	//
25688	// PolicyInputList is a required field
25689	PolicyInputList []*string `type:"list" required:"true"`
25690
25691	// A list of ARNs of AWS resources to include in the simulation. If this parameter
25692	// is not provided then the value defaults to * (all resources). Each API in
25693	// the ActionNames parameter is evaluated for each resource in this list. The
25694	// simulation determines the access result (allowed or denied) of each combination
25695	// and reports it in the response.
25696	//
25697	// The simulation does not automatically retrieve policies for the specified
25698	// resources. If you want to include a resource policy in the simulation, then
25699	// you must include the policy as a string in the ResourcePolicy parameter.
25700	//
25701	// If you include a ResourcePolicy, then it must be applicable to all of the
25702	// resources included in the simulation or you receive an invalid input error.
25703	//
25704	// For more information about ARNs, see Amazon Resource Names (ARNs) and AWS
25705	// Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
25706	// in the AWS General Reference.
25707	ResourceArns []*string `type:"list"`
25708
25709	// Specifies the type of simulation to run. Different APIs that support resource-based
25710	// policies require different combinations of resources. By specifying the type
25711	// of simulation to run, you enable the policy simulator to enforce the presence
25712	// of the required resources to ensure reliable simulation results. If your
25713	// simulation does not match one of the following scenarios, then you can omit
25714	// this parameter. The following list shows each of the supported scenario values
25715	// and the resources that you must define to run the simulation.
25716	//
25717	// Each of the EC2 scenarios requires that you specify instance, image, and
25718	// security-group resources. If your scenario includes an EBS volume, then you
25719	// must specify that volume as a resource. If the EC2 scenario includes VPC,
25720	// then you must supply the network-interface resource. If it includes an IP
25721	// subnet, then you must specify the subnet resource. For more information on
25722	// the EC2 scenario options, see Supported Platforms (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-platforms.html)
25723	// in the AWS EC2 User Guide.
25724	//
25725	//    * EC2-Classic-InstanceStore
25726	//
25727	// instance, image, security-group
25728	//
25729	//    * EC2-Classic-EBS
25730	//
25731	// instance, image, security-group, volume
25732	//
25733	//    * EC2-VPC-InstanceStore
25734	//
25735	// instance, image, security-group, network-interface
25736	//
25737	//    * EC2-VPC-InstanceStore-Subnet
25738	//
25739	// instance, image, security-group, network-interface, subnet
25740	//
25741	//    * EC2-VPC-EBS
25742	//
25743	// instance, image, security-group, network-interface, volume
25744	//
25745	//    * EC2-VPC-EBS-Subnet
25746	//
25747	// instance, image, security-group, network-interface, subnet, volume
25748	ResourceHandlingOption *string `min:"1" type:"string"`
25749
25750	// An AWS account ID that specifies the owner of any simulated resource that
25751	// does not identify its owner in the resource ARN, such as an S3 bucket or
25752	// object. If ResourceOwner is specified, it is also used as the account owner
25753	// of any ResourcePolicy included in the simulation. If the ResourceOwner parameter
25754	// is not specified, then the owner of the resources and the resource policy
25755	// defaults to the account of the identity provided in CallerArn. This parameter
25756	// is required only if you specify a resource-based policy and account that
25757	// owns the resource is different from the account that owns the simulated calling
25758	// user CallerArn.
25759	ResourceOwner *string `min:"1" type:"string"`
25760
25761	// A resource-based policy to include in the simulation provided as a string.
25762	// Each resource in the simulation is treated as if it had this policy attached.
25763	// You can include only one resource-based policy in a simulation.
25764	//
25765	// The regex pattern (http://wikipedia.org/wiki/regex) used to validate this
25766	// parameter is a string of characters consisting of any printable ASCII character
25767	// ranging from the space character (\u0020) through end of the ASCII character
25768	// range as well as the printable characters in the Basic Latin and Latin-1
25769	// Supplement character set (through \u00FF). It also includes the special characters
25770	// tab (\u0009), line feed (\u000A), and carriage return (\u000D).
25771	ResourcePolicy *string `min:"1" type:"string"`
25772}
25773
25774// String returns the string representation
25775func (s SimulateCustomPolicyInput) String() string {
25776	return awsutil.Prettify(s)
25777}
25778
25779// GoString returns the string representation
25780func (s SimulateCustomPolicyInput) GoString() string {
25781	return s.String()
25782}
25783
25784// Validate inspects the fields of the type to determine if they are valid.
25785func (s *SimulateCustomPolicyInput) Validate() error {
25786	invalidParams := request.ErrInvalidParams{Context: "SimulateCustomPolicyInput"}
25787	if s.ActionNames == nil {
25788		invalidParams.Add(request.NewErrParamRequired("ActionNames"))
25789	}
25790	if s.CallerArn != nil && len(*s.CallerArn) < 1 {
25791		invalidParams.Add(request.NewErrParamMinLen("CallerArn", 1))
25792	}
25793	if s.Marker != nil && len(*s.Marker) < 1 {
25794		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
25795	}
25796	if s.MaxItems != nil && *s.MaxItems < 1 {
25797		invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
25798	}
25799	if s.PolicyInputList == nil {
25800		invalidParams.Add(request.NewErrParamRequired("PolicyInputList"))
25801	}
25802	if s.ResourceHandlingOption != nil && len(*s.ResourceHandlingOption) < 1 {
25803		invalidParams.Add(request.NewErrParamMinLen("ResourceHandlingOption", 1))
25804	}
25805	if s.ResourceOwner != nil && len(*s.ResourceOwner) < 1 {
25806		invalidParams.Add(request.NewErrParamMinLen("ResourceOwner", 1))
25807	}
25808	if s.ResourcePolicy != nil && len(*s.ResourcePolicy) < 1 {
25809		invalidParams.Add(request.NewErrParamMinLen("ResourcePolicy", 1))
25810	}
25811	if s.ContextEntries != nil {
25812		for i, v := range s.ContextEntries {
25813			if v == nil {
25814				continue
25815			}
25816			if err := v.Validate(); err != nil {
25817				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ContextEntries", i), err.(request.ErrInvalidParams))
25818			}
25819		}
25820	}
25821
25822	if invalidParams.Len() > 0 {
25823		return invalidParams
25824	}
25825	return nil
25826}
25827
25828// SetActionNames sets the ActionNames field's value.
25829func (s *SimulateCustomPolicyInput) SetActionNames(v []*string) *SimulateCustomPolicyInput {
25830	s.ActionNames = v
25831	return s
25832}
25833
25834// SetCallerArn sets the CallerArn field's value.
25835func (s *SimulateCustomPolicyInput) SetCallerArn(v string) *SimulateCustomPolicyInput {
25836	s.CallerArn = &v
25837	return s
25838}
25839
25840// SetContextEntries sets the ContextEntries field's value.
25841func (s *SimulateCustomPolicyInput) SetContextEntries(v []*ContextEntry) *SimulateCustomPolicyInput {
25842	s.ContextEntries = v
25843	return s
25844}
25845
25846// SetMarker sets the Marker field's value.
25847func (s *SimulateCustomPolicyInput) SetMarker(v string) *SimulateCustomPolicyInput {
25848	s.Marker = &v
25849	return s
25850}
25851
25852// SetMaxItems sets the MaxItems field's value.
25853func (s *SimulateCustomPolicyInput) SetMaxItems(v int64) *SimulateCustomPolicyInput {
25854	s.MaxItems = &v
25855	return s
25856}
25857
25858// SetPolicyInputList sets the PolicyInputList field's value.
25859func (s *SimulateCustomPolicyInput) SetPolicyInputList(v []*string) *SimulateCustomPolicyInput {
25860	s.PolicyInputList = v
25861	return s
25862}
25863
25864// SetResourceArns sets the ResourceArns field's value.
25865func (s *SimulateCustomPolicyInput) SetResourceArns(v []*string) *SimulateCustomPolicyInput {
25866	s.ResourceArns = v
25867	return s
25868}
25869
25870// SetResourceHandlingOption sets the ResourceHandlingOption field's value.
25871func (s *SimulateCustomPolicyInput) SetResourceHandlingOption(v string) *SimulateCustomPolicyInput {
25872	s.ResourceHandlingOption = &v
25873	return s
25874}
25875
25876// SetResourceOwner sets the ResourceOwner field's value.
25877func (s *SimulateCustomPolicyInput) SetResourceOwner(v string) *SimulateCustomPolicyInput {
25878	s.ResourceOwner = &v
25879	return s
25880}
25881
25882// SetResourcePolicy sets the ResourcePolicy field's value.
25883func (s *SimulateCustomPolicyInput) SetResourcePolicy(v string) *SimulateCustomPolicyInput {
25884	s.ResourcePolicy = &v
25885	return s
25886}
25887
25888// Contains the response to a successful SimulatePrincipalPolicy or SimulateCustomPolicy
25889// request.
25890// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/SimulatePolicyResponse
25891type SimulatePolicyResponse struct {
25892	_ struct{} `type:"structure"`
25893
25894	// The results of the simulation.
25895	EvaluationResults []*EvaluationResult `type:"list"`
25896
25897	// A flag that indicates whether there are more items to return. If your results
25898	// were truncated, you can make a subsequent pagination request using the Marker
25899	// request parameter to retrieve more items. Note that IAM might return fewer
25900	// than the MaxItems number of results even when there are more results available.
25901	// We recommend that you check IsTruncated after every call to ensure that you
25902	// receive all of your results.
25903	IsTruncated *bool `type:"boolean"`
25904
25905	// When IsTruncated is true, this element is present and contains the value
25906	// to use for the Marker parameter in a subsequent pagination request.
25907	Marker *string `min:"1" type:"string"`
25908}
25909
25910// String returns the string representation
25911func (s SimulatePolicyResponse) String() string {
25912	return awsutil.Prettify(s)
25913}
25914
25915// GoString returns the string representation
25916func (s SimulatePolicyResponse) GoString() string {
25917	return s.String()
25918}
25919
25920// SetEvaluationResults sets the EvaluationResults field's value.
25921func (s *SimulatePolicyResponse) SetEvaluationResults(v []*EvaluationResult) *SimulatePolicyResponse {
25922	s.EvaluationResults = v
25923	return s
25924}
25925
25926// SetIsTruncated sets the IsTruncated field's value.
25927func (s *SimulatePolicyResponse) SetIsTruncated(v bool) *SimulatePolicyResponse {
25928	s.IsTruncated = &v
25929	return s
25930}
25931
25932// SetMarker sets the Marker field's value.
25933func (s *SimulatePolicyResponse) SetMarker(v string) *SimulatePolicyResponse {
25934	s.Marker = &v
25935	return s
25936}
25937
25938// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/SimulatePrincipalPolicyRequest
25939type SimulatePrincipalPolicyInput struct {
25940	_ struct{} `type:"structure"`
25941
25942	// A list of names of API actions to evaluate in the simulation. Each action
25943	// is evaluated for each resource. Each action must include the service identifier,
25944	// such as iam:CreateUser.
25945	//
25946	// ActionNames is a required field
25947	ActionNames []*string `type:"list" required:"true"`
25948
25949	// The ARN of the IAM user that you want to specify as the simulated caller
25950	// of the APIs. If you do not specify a CallerArn, it defaults to the ARN of
25951	// the user that you specify in PolicySourceArn, if you specified a user. If
25952	// you include both a PolicySourceArn (for example, arn:aws:iam::123456789012:user/David)
25953	// and a CallerArn (for example, arn:aws:iam::123456789012:user/Bob), the result
25954	// is that you simulate calling the APIs as Bob, as if Bob had David's policies.
25955	//
25956	// You can specify only the ARN of an IAM user. You cannot specify the ARN of
25957	// an assumed role, federated user, or a service principal.
25958	//
25959	// CallerArn is required if you include a ResourcePolicy and the PolicySourceArn
25960	// is not the ARN for an IAM user. This is required so that the resource-based
25961	// policy's Principal element has a value to use in evaluating the policy.
25962	//
25963	// For more information about ARNs, see Amazon Resource Names (ARNs) and AWS
25964	// Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
25965	// in the AWS General Reference.
25966	CallerArn *string `min:"1" type:"string"`
25967
25968	// A list of context keys and corresponding values for the simulation to use.
25969	// Whenever a context key is evaluated in one of the simulated IAM permission
25970	// policies, the corresponding value is supplied.
25971	ContextEntries []*ContextEntry `type:"list"`
25972
25973	// Use this parameter only when paginating results and only after you receive
25974	// a response indicating that the results are truncated. Set it to the value
25975	// of the Marker element in the response that you received to indicate where
25976	// the next call should start.
25977	Marker *string `min:"1" type:"string"`
25978
25979	// (Optional) Use this only when paginating results to indicate the maximum
25980	// number of items you want in the response. If additional items exist beyond
25981	// the maximum you specify, the IsTruncated response element is true.
25982	//
25983	// If you do not include this parameter, it defaults to 100. Note that IAM might
25984	// return fewer results, even when there are more results available. In that
25985	// case, the IsTruncated response element returns true and Marker contains a
25986	// value to include in the subsequent call that tells the service where to continue
25987	// from.
25988	MaxItems *int64 `min:"1" type:"integer"`
25989
25990	// An optional list of additional policy documents to include in the simulation.
25991	// Each document is specified as a string containing the complete, valid JSON
25992	// text of an IAM policy.
25993	//
25994	// The regex pattern (http://wikipedia.org/wiki/regex) used to validate this
25995	// parameter is a string of characters consisting of any printable ASCII character
25996	// ranging from the space character (\u0020) through end of the ASCII character
25997	// range as well as the printable characters in the Basic Latin and Latin-1
25998	// Supplement character set (through \u00FF). It also includes the special characters
25999	// tab (\u0009), line feed (\u000A), and carriage return (\u000D).
26000	PolicyInputList []*string `type:"list"`
26001
26002	// The Amazon Resource Name (ARN) of a user, group, or role whose policies you
26003	// want to include in the simulation. If you specify a user, group, or role,
26004	// the simulation includes all policies that are associated with that entity.
26005	// If you specify a user, the simulation also includes all policies that are
26006	// attached to any groups the user belongs to.
26007	//
26008	// For more information about ARNs, see Amazon Resource Names (ARNs) and AWS
26009	// Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
26010	// in the AWS General Reference.
26011	//
26012	// PolicySourceArn is a required field
26013	PolicySourceArn *string `min:"20" type:"string" required:"true"`
26014
26015	// A list of ARNs of AWS resources to include in the simulation. If this parameter
26016	// is not provided then the value defaults to * (all resources). Each API in
26017	// the ActionNames parameter is evaluated for each resource in this list. The
26018	// simulation determines the access result (allowed or denied) of each combination
26019	// and reports it in the response.
26020	//
26021	// The simulation does not automatically retrieve policies for the specified
26022	// resources. If you want to include a resource policy in the simulation, then
26023	// you must include the policy as a string in the ResourcePolicy parameter.
26024	//
26025	// For more information about ARNs, see Amazon Resource Names (ARNs) and AWS
26026	// Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
26027	// in the AWS General Reference.
26028	ResourceArns []*string `type:"list"`
26029
26030	// Specifies the type of simulation to run. Different APIs that support resource-based
26031	// policies require different combinations of resources. By specifying the type
26032	// of simulation to run, you enable the policy simulator to enforce the presence
26033	// of the required resources to ensure reliable simulation results. If your
26034	// simulation does not match one of the following scenarios, then you can omit
26035	// this parameter. The following list shows each of the supported scenario values
26036	// and the resources that you must define to run the simulation.
26037	//
26038	// Each of the EC2 scenarios requires that you specify instance, image, and
26039	// security-group resources. If your scenario includes an EBS volume, then you
26040	// must specify that volume as a resource. If the EC2 scenario includes VPC,
26041	// then you must supply the network-interface resource. If it includes an IP
26042	// subnet, then you must specify the subnet resource. For more information on
26043	// the EC2 scenario options, see Supported Platforms (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-platforms.html)
26044	// in the AWS EC2 User Guide.
26045	//
26046	//    * EC2-Classic-InstanceStore
26047	//
26048	// instance, image, security-group
26049	//
26050	//    * EC2-Classic-EBS
26051	//
26052	// instance, image, security-group, volume
26053	//
26054	//    * EC2-VPC-InstanceStore
26055	//
26056	// instance, image, security-group, network-interface
26057	//
26058	//    * EC2-VPC-InstanceStore-Subnet
26059	//
26060	// instance, image, security-group, network-interface, subnet
26061	//
26062	//    * EC2-VPC-EBS
26063	//
26064	// instance, image, security-group, network-interface, volume
26065	//
26066	//    * EC2-VPC-EBS-Subnet
26067	//
26068	// instance, image, security-group, network-interface, subnet, volume
26069	ResourceHandlingOption *string `min:"1" type:"string"`
26070
26071	// An AWS account ID that specifies the owner of any simulated resource that
26072	// does not identify its owner in the resource ARN, such as an S3 bucket or
26073	// object. If ResourceOwner is specified, it is also used as the account owner
26074	// of any ResourcePolicy included in the simulation. If the ResourceOwner parameter
26075	// is not specified, then the owner of the resources and the resource policy
26076	// defaults to the account of the identity provided in CallerArn. This parameter
26077	// is required only if you specify a resource-based policy and account that
26078	// owns the resource is different from the account that owns the simulated calling
26079	// user CallerArn.
26080	ResourceOwner *string `min:"1" type:"string"`
26081
26082	// A resource-based policy to include in the simulation provided as a string.
26083	// Each resource in the simulation is treated as if it had this policy attached.
26084	// You can include only one resource-based policy in a simulation.
26085	//
26086	// The regex pattern (http://wikipedia.org/wiki/regex) used to validate this
26087	// parameter is a string of characters consisting of any printable ASCII character
26088	// ranging from the space character (\u0020) through end of the ASCII character
26089	// range as well as the printable characters in the Basic Latin and Latin-1
26090	// Supplement character set (through \u00FF). It also includes the special characters
26091	// tab (\u0009), line feed (\u000A), and carriage return (\u000D).
26092	ResourcePolicy *string `min:"1" type:"string"`
26093}
26094
26095// String returns the string representation
26096func (s SimulatePrincipalPolicyInput) String() string {
26097	return awsutil.Prettify(s)
26098}
26099
26100// GoString returns the string representation
26101func (s SimulatePrincipalPolicyInput) GoString() string {
26102	return s.String()
26103}
26104
26105// Validate inspects the fields of the type to determine if they are valid.
26106func (s *SimulatePrincipalPolicyInput) Validate() error {
26107	invalidParams := request.ErrInvalidParams{Context: "SimulatePrincipalPolicyInput"}
26108	if s.ActionNames == nil {
26109		invalidParams.Add(request.NewErrParamRequired("ActionNames"))
26110	}
26111	if s.CallerArn != nil && len(*s.CallerArn) < 1 {
26112		invalidParams.Add(request.NewErrParamMinLen("CallerArn", 1))
26113	}
26114	if s.Marker != nil && len(*s.Marker) < 1 {
26115		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
26116	}
26117	if s.MaxItems != nil && *s.MaxItems < 1 {
26118		invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
26119	}
26120	if s.PolicySourceArn == nil {
26121		invalidParams.Add(request.NewErrParamRequired("PolicySourceArn"))
26122	}
26123	if s.PolicySourceArn != nil && len(*s.PolicySourceArn) < 20 {
26124		invalidParams.Add(request.NewErrParamMinLen("PolicySourceArn", 20))
26125	}
26126	if s.ResourceHandlingOption != nil && len(*s.ResourceHandlingOption) < 1 {
26127		invalidParams.Add(request.NewErrParamMinLen("ResourceHandlingOption", 1))
26128	}
26129	if s.ResourceOwner != nil && len(*s.ResourceOwner) < 1 {
26130		invalidParams.Add(request.NewErrParamMinLen("ResourceOwner", 1))
26131	}
26132	if s.ResourcePolicy != nil && len(*s.ResourcePolicy) < 1 {
26133		invalidParams.Add(request.NewErrParamMinLen("ResourcePolicy", 1))
26134	}
26135	if s.ContextEntries != nil {
26136		for i, v := range s.ContextEntries {
26137			if v == nil {
26138				continue
26139			}
26140			if err := v.Validate(); err != nil {
26141				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ContextEntries", i), err.(request.ErrInvalidParams))
26142			}
26143		}
26144	}
26145
26146	if invalidParams.Len() > 0 {
26147		return invalidParams
26148	}
26149	return nil
26150}
26151
26152// SetActionNames sets the ActionNames field's value.
26153func (s *SimulatePrincipalPolicyInput) SetActionNames(v []*string) *SimulatePrincipalPolicyInput {
26154	s.ActionNames = v
26155	return s
26156}
26157
26158// SetCallerArn sets the CallerArn field's value.
26159func (s *SimulatePrincipalPolicyInput) SetCallerArn(v string) *SimulatePrincipalPolicyInput {
26160	s.CallerArn = &v
26161	return s
26162}
26163
26164// SetContextEntries sets the ContextEntries field's value.
26165func (s *SimulatePrincipalPolicyInput) SetContextEntries(v []*ContextEntry) *SimulatePrincipalPolicyInput {
26166	s.ContextEntries = v
26167	return s
26168}
26169
26170// SetMarker sets the Marker field's value.
26171func (s *SimulatePrincipalPolicyInput) SetMarker(v string) *SimulatePrincipalPolicyInput {
26172	s.Marker = &v
26173	return s
26174}
26175
26176// SetMaxItems sets the MaxItems field's value.
26177func (s *SimulatePrincipalPolicyInput) SetMaxItems(v int64) *SimulatePrincipalPolicyInput {
26178	s.MaxItems = &v
26179	return s
26180}
26181
26182// SetPolicyInputList sets the PolicyInputList field's value.
26183func (s *SimulatePrincipalPolicyInput) SetPolicyInputList(v []*string) *SimulatePrincipalPolicyInput {
26184	s.PolicyInputList = v
26185	return s
26186}
26187
26188// SetPolicySourceArn sets the PolicySourceArn field's value.
26189func (s *SimulatePrincipalPolicyInput) SetPolicySourceArn(v string) *SimulatePrincipalPolicyInput {
26190	s.PolicySourceArn = &v
26191	return s
26192}
26193
26194// SetResourceArns sets the ResourceArns field's value.
26195func (s *SimulatePrincipalPolicyInput) SetResourceArns(v []*string) *SimulatePrincipalPolicyInput {
26196	s.ResourceArns = v
26197	return s
26198}
26199
26200// SetResourceHandlingOption sets the ResourceHandlingOption field's value.
26201func (s *SimulatePrincipalPolicyInput) SetResourceHandlingOption(v string) *SimulatePrincipalPolicyInput {
26202	s.ResourceHandlingOption = &v
26203	return s
26204}
26205
26206// SetResourceOwner sets the ResourceOwner field's value.
26207func (s *SimulatePrincipalPolicyInput) SetResourceOwner(v string) *SimulatePrincipalPolicyInput {
26208	s.ResourceOwner = &v
26209	return s
26210}
26211
26212// SetResourcePolicy sets the ResourcePolicy field's value.
26213func (s *SimulatePrincipalPolicyInput) SetResourcePolicy(v string) *SimulatePrincipalPolicyInput {
26214	s.ResourcePolicy = &v
26215	return s
26216}
26217
26218// Contains a reference to a Statement element in a policy document that determines
26219// the result of the simulation.
26220//
26221// This data type is used by the MatchedStatements member of the EvaluationResult
26222// type.
26223// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/Statement
26224type Statement struct {
26225	_ struct{} `type:"structure"`
26226
26227	// The row and column of the end of a Statement in an IAM policy.
26228	EndPosition *Position `type:"structure"`
26229
26230	// The identifier of the policy that was provided as an input.
26231	SourcePolicyId *string `type:"string"`
26232
26233	// The type of the policy.
26234	SourcePolicyType *string `type:"string" enum:"PolicySourceType"`
26235
26236	// The row and column of the beginning of the Statement in an IAM policy.
26237	StartPosition *Position `type:"structure"`
26238}
26239
26240// String returns the string representation
26241func (s Statement) String() string {
26242	return awsutil.Prettify(s)
26243}
26244
26245// GoString returns the string representation
26246func (s Statement) GoString() string {
26247	return s.String()
26248}
26249
26250// SetEndPosition sets the EndPosition field's value.
26251func (s *Statement) SetEndPosition(v *Position) *Statement {
26252	s.EndPosition = v
26253	return s
26254}
26255
26256// SetSourcePolicyId sets the SourcePolicyId field's value.
26257func (s *Statement) SetSourcePolicyId(v string) *Statement {
26258	s.SourcePolicyId = &v
26259	return s
26260}
26261
26262// SetSourcePolicyType sets the SourcePolicyType field's value.
26263func (s *Statement) SetSourcePolicyType(v string) *Statement {
26264	s.SourcePolicyType = &v
26265	return s
26266}
26267
26268// SetStartPosition sets the StartPosition field's value.
26269func (s *Statement) SetStartPosition(v *Position) *Statement {
26270	s.StartPosition = v
26271	return s
26272}
26273
26274// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateAccessKeyRequest
26275type UpdateAccessKeyInput struct {
26276	_ struct{} `type:"structure"`
26277
26278	// The access key ID of the secret access key you want to update.
26279	//
26280	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
26281	// a string of characters that can consist of any upper or lowercased letter
26282	// or digit.
26283	//
26284	// AccessKeyId is a required field
26285	AccessKeyId *string `min:"16" type:"string" required:"true"`
26286
26287	// The status you want to assign to the secret access key. Active means the
26288	// key can be used for API calls to AWS, while Inactive means the key cannot
26289	// be used.
26290	//
26291	// Status is a required field
26292	Status *string `type:"string" required:"true" enum:"statusType"`
26293
26294	// The name of the user whose key you want to update.
26295	//
26296	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
26297	// a string of characters consisting of upper and lowercase alphanumeric characters
26298	// with no spaces. You can also include any of the following characters: =,.@-
26299	UserName *string `min:"1" type:"string"`
26300}
26301
26302// String returns the string representation
26303func (s UpdateAccessKeyInput) String() string {
26304	return awsutil.Prettify(s)
26305}
26306
26307// GoString returns the string representation
26308func (s UpdateAccessKeyInput) GoString() string {
26309	return s.String()
26310}
26311
26312// Validate inspects the fields of the type to determine if they are valid.
26313func (s *UpdateAccessKeyInput) Validate() error {
26314	invalidParams := request.ErrInvalidParams{Context: "UpdateAccessKeyInput"}
26315	if s.AccessKeyId == nil {
26316		invalidParams.Add(request.NewErrParamRequired("AccessKeyId"))
26317	}
26318	if s.AccessKeyId != nil && len(*s.AccessKeyId) < 16 {
26319		invalidParams.Add(request.NewErrParamMinLen("AccessKeyId", 16))
26320	}
26321	if s.Status == nil {
26322		invalidParams.Add(request.NewErrParamRequired("Status"))
26323	}
26324	if s.UserName != nil && len(*s.UserName) < 1 {
26325		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
26326	}
26327
26328	if invalidParams.Len() > 0 {
26329		return invalidParams
26330	}
26331	return nil
26332}
26333
26334// SetAccessKeyId sets the AccessKeyId field's value.
26335func (s *UpdateAccessKeyInput) SetAccessKeyId(v string) *UpdateAccessKeyInput {
26336	s.AccessKeyId = &v
26337	return s
26338}
26339
26340// SetStatus sets the Status field's value.
26341func (s *UpdateAccessKeyInput) SetStatus(v string) *UpdateAccessKeyInput {
26342	s.Status = &v
26343	return s
26344}
26345
26346// SetUserName sets the UserName field's value.
26347func (s *UpdateAccessKeyInput) SetUserName(v string) *UpdateAccessKeyInput {
26348	s.UserName = &v
26349	return s
26350}
26351
26352// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateAccessKeyOutput
26353type UpdateAccessKeyOutput struct {
26354	_ struct{} `type:"structure"`
26355}
26356
26357// String returns the string representation
26358func (s UpdateAccessKeyOutput) String() string {
26359	return awsutil.Prettify(s)
26360}
26361
26362// GoString returns the string representation
26363func (s UpdateAccessKeyOutput) GoString() string {
26364	return s.String()
26365}
26366
26367// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateAccountPasswordPolicyRequest
26368type UpdateAccountPasswordPolicyInput struct {
26369	_ struct{} `type:"structure"`
26370
26371	// Allows all IAM users in your account to use the AWS Management Console to
26372	// change their own passwords. For more information, see Letting IAM Users Change
26373	// Their Own Passwords (http://docs.aws.amazon.com/IAM/latest/UserGuide/HowToPwdIAMUser.html)
26374	// in the IAM User Guide.
26375	//
26376	// Default value: false
26377	AllowUsersToChangePassword *bool `type:"boolean"`
26378
26379	// Prevents IAM users from setting a new password after their password has expired.
26380	//
26381	// Default value: false
26382	HardExpiry *bool `type:"boolean"`
26383
26384	// The number of days that an IAM user password is valid. The default value
26385	// of 0 means IAM user passwords never expire.
26386	//
26387	// Default value: 0
26388	MaxPasswordAge *int64 `min:"1" type:"integer"`
26389
26390	// The minimum number of characters allowed in an IAM user password.
26391	//
26392	// Default value: 6
26393	MinimumPasswordLength *int64 `min:"6" type:"integer"`
26394
26395	// Specifies the number of previous passwords that IAM users are prevented from
26396	// reusing. The default value of 0 means IAM users are not prevented from reusing
26397	// previous passwords.
26398	//
26399	// Default value: 0
26400	PasswordReusePrevention *int64 `min:"1" type:"integer"`
26401
26402	// Specifies whether IAM user passwords must contain at least one lowercase
26403	// character from the ISO basic Latin alphabet (a to z).
26404	//
26405	// Default value: false
26406	RequireLowercaseCharacters *bool `type:"boolean"`
26407
26408	// Specifies whether IAM user passwords must contain at least one numeric character
26409	// (0 to 9).
26410	//
26411	// Default value: false
26412	RequireNumbers *bool `type:"boolean"`
26413
26414	// Specifies whether IAM user passwords must contain at least one of the following
26415	// non-alphanumeric characters:
26416	//
26417	// ! @ # $ % ^ & * ( ) _ + - = [ ] { } | '
26418	//
26419	// Default value: false
26420	RequireSymbols *bool `type:"boolean"`
26421
26422	// Specifies whether IAM user passwords must contain at least one uppercase
26423	// character from the ISO basic Latin alphabet (A to Z).
26424	//
26425	// Default value: false
26426	RequireUppercaseCharacters *bool `type:"boolean"`
26427}
26428
26429// String returns the string representation
26430func (s UpdateAccountPasswordPolicyInput) String() string {
26431	return awsutil.Prettify(s)
26432}
26433
26434// GoString returns the string representation
26435func (s UpdateAccountPasswordPolicyInput) GoString() string {
26436	return s.String()
26437}
26438
26439// Validate inspects the fields of the type to determine if they are valid.
26440func (s *UpdateAccountPasswordPolicyInput) Validate() error {
26441	invalidParams := request.ErrInvalidParams{Context: "UpdateAccountPasswordPolicyInput"}
26442	if s.MaxPasswordAge != nil && *s.MaxPasswordAge < 1 {
26443		invalidParams.Add(request.NewErrParamMinValue("MaxPasswordAge", 1))
26444	}
26445	if s.MinimumPasswordLength != nil && *s.MinimumPasswordLength < 6 {
26446		invalidParams.Add(request.NewErrParamMinValue("MinimumPasswordLength", 6))
26447	}
26448	if s.PasswordReusePrevention != nil && *s.PasswordReusePrevention < 1 {
26449		invalidParams.Add(request.NewErrParamMinValue("PasswordReusePrevention", 1))
26450	}
26451
26452	if invalidParams.Len() > 0 {
26453		return invalidParams
26454	}
26455	return nil
26456}
26457
26458// SetAllowUsersToChangePassword sets the AllowUsersToChangePassword field's value.
26459func (s *UpdateAccountPasswordPolicyInput) SetAllowUsersToChangePassword(v bool) *UpdateAccountPasswordPolicyInput {
26460	s.AllowUsersToChangePassword = &v
26461	return s
26462}
26463
26464// SetHardExpiry sets the HardExpiry field's value.
26465func (s *UpdateAccountPasswordPolicyInput) SetHardExpiry(v bool) *UpdateAccountPasswordPolicyInput {
26466	s.HardExpiry = &v
26467	return s
26468}
26469
26470// SetMaxPasswordAge sets the MaxPasswordAge field's value.
26471func (s *UpdateAccountPasswordPolicyInput) SetMaxPasswordAge(v int64) *UpdateAccountPasswordPolicyInput {
26472	s.MaxPasswordAge = &v
26473	return s
26474}
26475
26476// SetMinimumPasswordLength sets the MinimumPasswordLength field's value.
26477func (s *UpdateAccountPasswordPolicyInput) SetMinimumPasswordLength(v int64) *UpdateAccountPasswordPolicyInput {
26478	s.MinimumPasswordLength = &v
26479	return s
26480}
26481
26482// SetPasswordReusePrevention sets the PasswordReusePrevention field's value.
26483func (s *UpdateAccountPasswordPolicyInput) SetPasswordReusePrevention(v int64) *UpdateAccountPasswordPolicyInput {
26484	s.PasswordReusePrevention = &v
26485	return s
26486}
26487
26488// SetRequireLowercaseCharacters sets the RequireLowercaseCharacters field's value.
26489func (s *UpdateAccountPasswordPolicyInput) SetRequireLowercaseCharacters(v bool) *UpdateAccountPasswordPolicyInput {
26490	s.RequireLowercaseCharacters = &v
26491	return s
26492}
26493
26494// SetRequireNumbers sets the RequireNumbers field's value.
26495func (s *UpdateAccountPasswordPolicyInput) SetRequireNumbers(v bool) *UpdateAccountPasswordPolicyInput {
26496	s.RequireNumbers = &v
26497	return s
26498}
26499
26500// SetRequireSymbols sets the RequireSymbols field's value.
26501func (s *UpdateAccountPasswordPolicyInput) SetRequireSymbols(v bool) *UpdateAccountPasswordPolicyInput {
26502	s.RequireSymbols = &v
26503	return s
26504}
26505
26506// SetRequireUppercaseCharacters sets the RequireUppercaseCharacters field's value.
26507func (s *UpdateAccountPasswordPolicyInput) SetRequireUppercaseCharacters(v bool) *UpdateAccountPasswordPolicyInput {
26508	s.RequireUppercaseCharacters = &v
26509	return s
26510}
26511
26512// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateAccountPasswordPolicyOutput
26513type UpdateAccountPasswordPolicyOutput struct {
26514	_ struct{} `type:"structure"`
26515}
26516
26517// String returns the string representation
26518func (s UpdateAccountPasswordPolicyOutput) String() string {
26519	return awsutil.Prettify(s)
26520}
26521
26522// GoString returns the string representation
26523func (s UpdateAccountPasswordPolicyOutput) GoString() string {
26524	return s.String()
26525}
26526
26527// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateAssumeRolePolicyRequest
26528type UpdateAssumeRolePolicyInput struct {
26529	_ struct{} `type:"structure"`
26530
26531	// The policy that grants an entity permission to assume the role.
26532	//
26533	// The regex pattern (http://wikipedia.org/wiki/regex) used to validate this
26534	// parameter is a string of characters consisting of any printable ASCII character
26535	// ranging from the space character (\u0020) through end of the ASCII character
26536	// range as well as the printable characters in the Basic Latin and Latin-1
26537	// Supplement character set (through \u00FF). It also includes the special characters
26538	// tab (\u0009), line feed (\u000A), and carriage return (\u000D).
26539	//
26540	// PolicyDocument is a required field
26541	PolicyDocument *string `min:"1" type:"string" required:"true"`
26542
26543	// The name of the role to update with the new policy.
26544	//
26545	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
26546	// a string of characters consisting of upper and lowercase alphanumeric characters
26547	// with no spaces. You can also include any of the following characters: _+=,.@-
26548	//
26549	// RoleName is a required field
26550	RoleName *string `min:"1" type:"string" required:"true"`
26551}
26552
26553// String returns the string representation
26554func (s UpdateAssumeRolePolicyInput) String() string {
26555	return awsutil.Prettify(s)
26556}
26557
26558// GoString returns the string representation
26559func (s UpdateAssumeRolePolicyInput) GoString() string {
26560	return s.String()
26561}
26562
26563// Validate inspects the fields of the type to determine if they are valid.
26564func (s *UpdateAssumeRolePolicyInput) Validate() error {
26565	invalidParams := request.ErrInvalidParams{Context: "UpdateAssumeRolePolicyInput"}
26566	if s.PolicyDocument == nil {
26567		invalidParams.Add(request.NewErrParamRequired("PolicyDocument"))
26568	}
26569	if s.PolicyDocument != nil && len(*s.PolicyDocument) < 1 {
26570		invalidParams.Add(request.NewErrParamMinLen("PolicyDocument", 1))
26571	}
26572	if s.RoleName == nil {
26573		invalidParams.Add(request.NewErrParamRequired("RoleName"))
26574	}
26575	if s.RoleName != nil && len(*s.RoleName) < 1 {
26576		invalidParams.Add(request.NewErrParamMinLen("RoleName", 1))
26577	}
26578
26579	if invalidParams.Len() > 0 {
26580		return invalidParams
26581	}
26582	return nil
26583}
26584
26585// SetPolicyDocument sets the PolicyDocument field's value.
26586func (s *UpdateAssumeRolePolicyInput) SetPolicyDocument(v string) *UpdateAssumeRolePolicyInput {
26587	s.PolicyDocument = &v
26588	return s
26589}
26590
26591// SetRoleName sets the RoleName field's value.
26592func (s *UpdateAssumeRolePolicyInput) SetRoleName(v string) *UpdateAssumeRolePolicyInput {
26593	s.RoleName = &v
26594	return s
26595}
26596
26597// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateAssumeRolePolicyOutput
26598type UpdateAssumeRolePolicyOutput struct {
26599	_ struct{} `type:"structure"`
26600}
26601
26602// String returns the string representation
26603func (s UpdateAssumeRolePolicyOutput) String() string {
26604	return awsutil.Prettify(s)
26605}
26606
26607// GoString returns the string representation
26608func (s UpdateAssumeRolePolicyOutput) GoString() string {
26609	return s.String()
26610}
26611
26612// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateGroupRequest
26613type UpdateGroupInput struct {
26614	_ struct{} `type:"structure"`
26615
26616	// Name of the IAM group to update. If you're changing the name of the group,
26617	// this is the original name.
26618	//
26619	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
26620	// a string of characters consisting of upper and lowercase alphanumeric characters
26621	// with no spaces. You can also include any of the following characters: =,.@-
26622	//
26623	// GroupName is a required field
26624	GroupName *string `min:"1" type:"string" required:"true"`
26625
26626	// New name for the IAM group. Only include this if changing the group's name.
26627	//
26628	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
26629	// a string of characters consisting of upper and lowercase alphanumeric characters
26630	// with no spaces. You can also include any of the following characters: =,.@-
26631	NewGroupName *string `min:"1" type:"string"`
26632
26633	// New path for the IAM group. Only include this if changing the group's path.
26634	//
26635	// This paramater allows (per its regex pattern (http://wikipedia.org/wiki/regex))
26636	// a string of characters consisting of either a forward slash (/) by itself
26637	// or a string that must begin and end with forward slashes, containing any
26638	// ASCII character from the ! (\u0021) thru the DEL character (\u007F), including
26639	// most punctuation characters, digits, and upper and lowercased letters.
26640	NewPath *string `min:"1" type:"string"`
26641}
26642
26643// String returns the string representation
26644func (s UpdateGroupInput) String() string {
26645	return awsutil.Prettify(s)
26646}
26647
26648// GoString returns the string representation
26649func (s UpdateGroupInput) GoString() string {
26650	return s.String()
26651}
26652
26653// Validate inspects the fields of the type to determine if they are valid.
26654func (s *UpdateGroupInput) Validate() error {
26655	invalidParams := request.ErrInvalidParams{Context: "UpdateGroupInput"}
26656	if s.GroupName == nil {
26657		invalidParams.Add(request.NewErrParamRequired("GroupName"))
26658	}
26659	if s.GroupName != nil && len(*s.GroupName) < 1 {
26660		invalidParams.Add(request.NewErrParamMinLen("GroupName", 1))
26661	}
26662	if s.NewGroupName != nil && len(*s.NewGroupName) < 1 {
26663		invalidParams.Add(request.NewErrParamMinLen("NewGroupName", 1))
26664	}
26665	if s.NewPath != nil && len(*s.NewPath) < 1 {
26666		invalidParams.Add(request.NewErrParamMinLen("NewPath", 1))
26667	}
26668
26669	if invalidParams.Len() > 0 {
26670		return invalidParams
26671	}
26672	return nil
26673}
26674
26675// SetGroupName sets the GroupName field's value.
26676func (s *UpdateGroupInput) SetGroupName(v string) *UpdateGroupInput {
26677	s.GroupName = &v
26678	return s
26679}
26680
26681// SetNewGroupName sets the NewGroupName field's value.
26682func (s *UpdateGroupInput) SetNewGroupName(v string) *UpdateGroupInput {
26683	s.NewGroupName = &v
26684	return s
26685}
26686
26687// SetNewPath sets the NewPath field's value.
26688func (s *UpdateGroupInput) SetNewPath(v string) *UpdateGroupInput {
26689	s.NewPath = &v
26690	return s
26691}
26692
26693// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateGroupOutput
26694type UpdateGroupOutput struct {
26695	_ struct{} `type:"structure"`
26696}
26697
26698// String returns the string representation
26699func (s UpdateGroupOutput) String() string {
26700	return awsutil.Prettify(s)
26701}
26702
26703// GoString returns the string representation
26704func (s UpdateGroupOutput) GoString() string {
26705	return s.String()
26706}
26707
26708// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateLoginProfileRequest
26709type UpdateLoginProfileInput struct {
26710	_ struct{} `type:"structure"`
26711
26712	// The new password for the specified IAM user.
26713	//
26714	// The regex pattern (http://wikipedia.org/wiki/regex) used to validate this
26715	// parameter is a string of characters consisting of any printable ASCII character
26716	// ranging from the space character (\u0020) through end of the ASCII character
26717	// range as well as the printable characters in the Basic Latin and Latin-1
26718	// Supplement character set (through \u00FF). It also includes the special characters
26719	// tab (\u0009), line feed (\u000A), and carriage return (\u000D). However,
26720	// the format can be further restricted by the account administrator by setting
26721	// a password policy on the AWS account. For more information, see UpdateAccountPasswordPolicy.
26722	Password *string `min:"1" type:"string"`
26723
26724	// Allows this new password to be used only once by requiring the specified
26725	// IAM user to set a new password on next sign-in.
26726	PasswordResetRequired *bool `type:"boolean"`
26727
26728	// The name of the user whose password you want to update.
26729	//
26730	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
26731	// a string of characters consisting of upper and lowercase alphanumeric characters
26732	// with no spaces. You can also include any of the following characters: =,.@-
26733	//
26734	// UserName is a required field
26735	UserName *string `min:"1" type:"string" required:"true"`
26736}
26737
26738// String returns the string representation
26739func (s UpdateLoginProfileInput) String() string {
26740	return awsutil.Prettify(s)
26741}
26742
26743// GoString returns the string representation
26744func (s UpdateLoginProfileInput) GoString() string {
26745	return s.String()
26746}
26747
26748// Validate inspects the fields of the type to determine if they are valid.
26749func (s *UpdateLoginProfileInput) Validate() error {
26750	invalidParams := request.ErrInvalidParams{Context: "UpdateLoginProfileInput"}
26751	if s.Password != nil && len(*s.Password) < 1 {
26752		invalidParams.Add(request.NewErrParamMinLen("Password", 1))
26753	}
26754	if s.UserName == nil {
26755		invalidParams.Add(request.NewErrParamRequired("UserName"))
26756	}
26757	if s.UserName != nil && len(*s.UserName) < 1 {
26758		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
26759	}
26760
26761	if invalidParams.Len() > 0 {
26762		return invalidParams
26763	}
26764	return nil
26765}
26766
26767// SetPassword sets the Password field's value.
26768func (s *UpdateLoginProfileInput) SetPassword(v string) *UpdateLoginProfileInput {
26769	s.Password = &v
26770	return s
26771}
26772
26773// SetPasswordResetRequired sets the PasswordResetRequired field's value.
26774func (s *UpdateLoginProfileInput) SetPasswordResetRequired(v bool) *UpdateLoginProfileInput {
26775	s.PasswordResetRequired = &v
26776	return s
26777}
26778
26779// SetUserName sets the UserName field's value.
26780func (s *UpdateLoginProfileInput) SetUserName(v string) *UpdateLoginProfileInput {
26781	s.UserName = &v
26782	return s
26783}
26784
26785// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateLoginProfileOutput
26786type UpdateLoginProfileOutput struct {
26787	_ struct{} `type:"structure"`
26788}
26789
26790// String returns the string representation
26791func (s UpdateLoginProfileOutput) String() string {
26792	return awsutil.Prettify(s)
26793}
26794
26795// GoString returns the string representation
26796func (s UpdateLoginProfileOutput) GoString() string {
26797	return s.String()
26798}
26799
26800// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateOpenIDConnectProviderThumbprintRequest
26801type UpdateOpenIDConnectProviderThumbprintInput struct {
26802	_ struct{} `type:"structure"`
26803
26804	// The Amazon Resource Name (ARN) of the IAM OIDC provider resource object for
26805	// which you want to update the thumbprint. You can get a list of OIDC provider
26806	// ARNs by using the ListOpenIDConnectProviders action.
26807	//
26808	// For more information about ARNs, see Amazon Resource Names (ARNs) and AWS
26809	// Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
26810	// in the AWS General Reference.
26811	//
26812	// OpenIDConnectProviderArn is a required field
26813	OpenIDConnectProviderArn *string `min:"20" type:"string" required:"true"`
26814
26815	// A list of certificate thumbprints that are associated with the specified
26816	// IAM OpenID Connect provider. For more information, see CreateOpenIDConnectProvider.
26817	//
26818	// ThumbprintList is a required field
26819	ThumbprintList []*string `type:"list" required:"true"`
26820}
26821
26822// String returns the string representation
26823func (s UpdateOpenIDConnectProviderThumbprintInput) String() string {
26824	return awsutil.Prettify(s)
26825}
26826
26827// GoString returns the string representation
26828func (s UpdateOpenIDConnectProviderThumbprintInput) GoString() string {
26829	return s.String()
26830}
26831
26832// Validate inspects the fields of the type to determine if they are valid.
26833func (s *UpdateOpenIDConnectProviderThumbprintInput) Validate() error {
26834	invalidParams := request.ErrInvalidParams{Context: "UpdateOpenIDConnectProviderThumbprintInput"}
26835	if s.OpenIDConnectProviderArn == nil {
26836		invalidParams.Add(request.NewErrParamRequired("OpenIDConnectProviderArn"))
26837	}
26838	if s.OpenIDConnectProviderArn != nil && len(*s.OpenIDConnectProviderArn) < 20 {
26839		invalidParams.Add(request.NewErrParamMinLen("OpenIDConnectProviderArn", 20))
26840	}
26841	if s.ThumbprintList == nil {
26842		invalidParams.Add(request.NewErrParamRequired("ThumbprintList"))
26843	}
26844
26845	if invalidParams.Len() > 0 {
26846		return invalidParams
26847	}
26848	return nil
26849}
26850
26851// SetOpenIDConnectProviderArn sets the OpenIDConnectProviderArn field's value.
26852func (s *UpdateOpenIDConnectProviderThumbprintInput) SetOpenIDConnectProviderArn(v string) *UpdateOpenIDConnectProviderThumbprintInput {
26853	s.OpenIDConnectProviderArn = &v
26854	return s
26855}
26856
26857// SetThumbprintList sets the ThumbprintList field's value.
26858func (s *UpdateOpenIDConnectProviderThumbprintInput) SetThumbprintList(v []*string) *UpdateOpenIDConnectProviderThumbprintInput {
26859	s.ThumbprintList = v
26860	return s
26861}
26862
26863// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateOpenIDConnectProviderThumbprintOutput
26864type UpdateOpenIDConnectProviderThumbprintOutput struct {
26865	_ struct{} `type:"structure"`
26866}
26867
26868// String returns the string representation
26869func (s UpdateOpenIDConnectProviderThumbprintOutput) String() string {
26870	return awsutil.Prettify(s)
26871}
26872
26873// GoString returns the string representation
26874func (s UpdateOpenIDConnectProviderThumbprintOutput) GoString() string {
26875	return s.String()
26876}
26877
26878// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateRoleDescriptionRequest
26879type UpdateRoleDescriptionInput struct {
26880	_ struct{} `type:"structure"`
26881
26882	// The new description that you want to apply to the specified role.
26883	//
26884	// Description is a required field
26885	Description *string `type:"string" required:"true"`
26886
26887	// The name of the role that you want to modify.
26888	//
26889	// RoleName is a required field
26890	RoleName *string `min:"1" type:"string" required:"true"`
26891}
26892
26893// String returns the string representation
26894func (s UpdateRoleDescriptionInput) String() string {
26895	return awsutil.Prettify(s)
26896}
26897
26898// GoString returns the string representation
26899func (s UpdateRoleDescriptionInput) GoString() string {
26900	return s.String()
26901}
26902
26903// Validate inspects the fields of the type to determine if they are valid.
26904func (s *UpdateRoleDescriptionInput) Validate() error {
26905	invalidParams := request.ErrInvalidParams{Context: "UpdateRoleDescriptionInput"}
26906	if s.Description == nil {
26907		invalidParams.Add(request.NewErrParamRequired("Description"))
26908	}
26909	if s.RoleName == nil {
26910		invalidParams.Add(request.NewErrParamRequired("RoleName"))
26911	}
26912	if s.RoleName != nil && len(*s.RoleName) < 1 {
26913		invalidParams.Add(request.NewErrParamMinLen("RoleName", 1))
26914	}
26915
26916	if invalidParams.Len() > 0 {
26917		return invalidParams
26918	}
26919	return nil
26920}
26921
26922// SetDescription sets the Description field's value.
26923func (s *UpdateRoleDescriptionInput) SetDescription(v string) *UpdateRoleDescriptionInput {
26924	s.Description = &v
26925	return s
26926}
26927
26928// SetRoleName sets the RoleName field's value.
26929func (s *UpdateRoleDescriptionInput) SetRoleName(v string) *UpdateRoleDescriptionInput {
26930	s.RoleName = &v
26931	return s
26932}
26933
26934// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateRoleDescriptionResponse
26935type UpdateRoleDescriptionOutput struct {
26936	_ struct{} `type:"structure"`
26937
26938	// A structure that contains details about the modified role.
26939	Role *Role `type:"structure"`
26940}
26941
26942// String returns the string representation
26943func (s UpdateRoleDescriptionOutput) String() string {
26944	return awsutil.Prettify(s)
26945}
26946
26947// GoString returns the string representation
26948func (s UpdateRoleDescriptionOutput) GoString() string {
26949	return s.String()
26950}
26951
26952// SetRole sets the Role field's value.
26953func (s *UpdateRoleDescriptionOutput) SetRole(v *Role) *UpdateRoleDescriptionOutput {
26954	s.Role = v
26955	return s
26956}
26957
26958// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateSAMLProviderRequest
26959type UpdateSAMLProviderInput struct {
26960	_ struct{} `type:"structure"`
26961
26962	// An XML document generated by an identity provider (IdP) that supports SAML
26963	// 2.0. The document includes the issuer's name, expiration information, and
26964	// keys that can be used to validate the SAML authentication response (assertions)
26965	// that are received from the IdP. You must generate the metadata document using
26966	// the identity management software that is used as your organization's IdP.
26967	//
26968	// SAMLMetadataDocument is a required field
26969	SAMLMetadataDocument *string `min:"1000" type:"string" required:"true"`
26970
26971	// The Amazon Resource Name (ARN) of the SAML provider to update.
26972	//
26973	// For more information about ARNs, see Amazon Resource Names (ARNs) and AWS
26974	// Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
26975	// in the AWS General Reference.
26976	//
26977	// SAMLProviderArn is a required field
26978	SAMLProviderArn *string `min:"20" type:"string" required:"true"`
26979}
26980
26981// String returns the string representation
26982func (s UpdateSAMLProviderInput) String() string {
26983	return awsutil.Prettify(s)
26984}
26985
26986// GoString returns the string representation
26987func (s UpdateSAMLProviderInput) GoString() string {
26988	return s.String()
26989}
26990
26991// Validate inspects the fields of the type to determine if they are valid.
26992func (s *UpdateSAMLProviderInput) Validate() error {
26993	invalidParams := request.ErrInvalidParams{Context: "UpdateSAMLProviderInput"}
26994	if s.SAMLMetadataDocument == nil {
26995		invalidParams.Add(request.NewErrParamRequired("SAMLMetadataDocument"))
26996	}
26997	if s.SAMLMetadataDocument != nil && len(*s.SAMLMetadataDocument) < 1000 {
26998		invalidParams.Add(request.NewErrParamMinLen("SAMLMetadataDocument", 1000))
26999	}
27000	if s.SAMLProviderArn == nil {
27001		invalidParams.Add(request.NewErrParamRequired("SAMLProviderArn"))
27002	}
27003	if s.SAMLProviderArn != nil && len(*s.SAMLProviderArn) < 20 {
27004		invalidParams.Add(request.NewErrParamMinLen("SAMLProviderArn", 20))
27005	}
27006
27007	if invalidParams.Len() > 0 {
27008		return invalidParams
27009	}
27010	return nil
27011}
27012
27013// SetSAMLMetadataDocument sets the SAMLMetadataDocument field's value.
27014func (s *UpdateSAMLProviderInput) SetSAMLMetadataDocument(v string) *UpdateSAMLProviderInput {
27015	s.SAMLMetadataDocument = &v
27016	return s
27017}
27018
27019// SetSAMLProviderArn sets the SAMLProviderArn field's value.
27020func (s *UpdateSAMLProviderInput) SetSAMLProviderArn(v string) *UpdateSAMLProviderInput {
27021	s.SAMLProviderArn = &v
27022	return s
27023}
27024
27025// Contains the response to a successful UpdateSAMLProvider request.
27026// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateSAMLProviderResponse
27027type UpdateSAMLProviderOutput struct {
27028	_ struct{} `type:"structure"`
27029
27030	// The Amazon Resource Name (ARN) of the SAML provider that was updated.
27031	SAMLProviderArn *string `min:"20" type:"string"`
27032}
27033
27034// String returns the string representation
27035func (s UpdateSAMLProviderOutput) String() string {
27036	return awsutil.Prettify(s)
27037}
27038
27039// GoString returns the string representation
27040func (s UpdateSAMLProviderOutput) GoString() string {
27041	return s.String()
27042}
27043
27044// SetSAMLProviderArn sets the SAMLProviderArn field's value.
27045func (s *UpdateSAMLProviderOutput) SetSAMLProviderArn(v string) *UpdateSAMLProviderOutput {
27046	s.SAMLProviderArn = &v
27047	return s
27048}
27049
27050// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateSSHPublicKeyRequest
27051type UpdateSSHPublicKeyInput struct {
27052	_ struct{} `type:"structure"`
27053
27054	// The unique identifier for the SSH public key.
27055	//
27056	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
27057	// a string of characters that can consist of any upper or lowercased letter
27058	// or digit.
27059	//
27060	// SSHPublicKeyId is a required field
27061	SSHPublicKeyId *string `min:"20" type:"string" required:"true"`
27062
27063	// The status to assign to the SSH public key. Active means the key can be used
27064	// for authentication with an AWS CodeCommit repository. Inactive means the
27065	// key cannot be used.
27066	//
27067	// Status is a required field
27068	Status *string `type:"string" required:"true" enum:"statusType"`
27069
27070	// The name of the IAM user associated with the SSH public key.
27071	//
27072	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
27073	// a string of characters consisting of upper and lowercase alphanumeric characters
27074	// with no spaces. You can also include any of the following characters: =,.@-
27075	//
27076	// UserName is a required field
27077	UserName *string `min:"1" type:"string" required:"true"`
27078}
27079
27080// String returns the string representation
27081func (s UpdateSSHPublicKeyInput) String() string {
27082	return awsutil.Prettify(s)
27083}
27084
27085// GoString returns the string representation
27086func (s UpdateSSHPublicKeyInput) GoString() string {
27087	return s.String()
27088}
27089
27090// Validate inspects the fields of the type to determine if they are valid.
27091func (s *UpdateSSHPublicKeyInput) Validate() error {
27092	invalidParams := request.ErrInvalidParams{Context: "UpdateSSHPublicKeyInput"}
27093	if s.SSHPublicKeyId == nil {
27094		invalidParams.Add(request.NewErrParamRequired("SSHPublicKeyId"))
27095	}
27096	if s.SSHPublicKeyId != nil && len(*s.SSHPublicKeyId) < 20 {
27097		invalidParams.Add(request.NewErrParamMinLen("SSHPublicKeyId", 20))
27098	}
27099	if s.Status == nil {
27100		invalidParams.Add(request.NewErrParamRequired("Status"))
27101	}
27102	if s.UserName == nil {
27103		invalidParams.Add(request.NewErrParamRequired("UserName"))
27104	}
27105	if s.UserName != nil && len(*s.UserName) < 1 {
27106		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
27107	}
27108
27109	if invalidParams.Len() > 0 {
27110		return invalidParams
27111	}
27112	return nil
27113}
27114
27115// SetSSHPublicKeyId sets the SSHPublicKeyId field's value.
27116func (s *UpdateSSHPublicKeyInput) SetSSHPublicKeyId(v string) *UpdateSSHPublicKeyInput {
27117	s.SSHPublicKeyId = &v
27118	return s
27119}
27120
27121// SetStatus sets the Status field's value.
27122func (s *UpdateSSHPublicKeyInput) SetStatus(v string) *UpdateSSHPublicKeyInput {
27123	s.Status = &v
27124	return s
27125}
27126
27127// SetUserName sets the UserName field's value.
27128func (s *UpdateSSHPublicKeyInput) SetUserName(v string) *UpdateSSHPublicKeyInput {
27129	s.UserName = &v
27130	return s
27131}
27132
27133// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateSSHPublicKeyOutput
27134type UpdateSSHPublicKeyOutput struct {
27135	_ struct{} `type:"structure"`
27136}
27137
27138// String returns the string representation
27139func (s UpdateSSHPublicKeyOutput) String() string {
27140	return awsutil.Prettify(s)
27141}
27142
27143// GoString returns the string representation
27144func (s UpdateSSHPublicKeyOutput) GoString() string {
27145	return s.String()
27146}
27147
27148// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateServerCertificateRequest
27149type UpdateServerCertificateInput struct {
27150	_ struct{} `type:"structure"`
27151
27152	// The new path for the server certificate. Include this only if you are updating
27153	// the server certificate's path.
27154	//
27155	// This paramater allows (per its regex pattern (http://wikipedia.org/wiki/regex))
27156	// a string of characters consisting of either a forward slash (/) by itself
27157	// or a string that must begin and end with forward slashes, containing any
27158	// ASCII character from the ! (\u0021) thru the DEL character (\u007F), including
27159	// most punctuation characters, digits, and upper and lowercased letters.
27160	NewPath *string `min:"1" type:"string"`
27161
27162	// The new name for the server certificate. Include this only if you are updating
27163	// the server certificate's name. The name of the certificate cannot contain
27164	// any spaces.
27165	//
27166	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
27167	// a string of characters consisting of upper and lowercase alphanumeric characters
27168	// with no spaces. You can also include any of the following characters: =,.@-
27169	NewServerCertificateName *string `min:"1" type:"string"`
27170
27171	// The name of the server certificate that you want to update.
27172	//
27173	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
27174	// a string of characters consisting of upper and lowercase alphanumeric characters
27175	// with no spaces. You can also include any of the following characters: =,.@-
27176	//
27177	// ServerCertificateName is a required field
27178	ServerCertificateName *string `min:"1" type:"string" required:"true"`
27179}
27180
27181// String returns the string representation
27182func (s UpdateServerCertificateInput) String() string {
27183	return awsutil.Prettify(s)
27184}
27185
27186// GoString returns the string representation
27187func (s UpdateServerCertificateInput) GoString() string {
27188	return s.String()
27189}
27190
27191// Validate inspects the fields of the type to determine if they are valid.
27192func (s *UpdateServerCertificateInput) Validate() error {
27193	invalidParams := request.ErrInvalidParams{Context: "UpdateServerCertificateInput"}
27194	if s.NewPath != nil && len(*s.NewPath) < 1 {
27195		invalidParams.Add(request.NewErrParamMinLen("NewPath", 1))
27196	}
27197	if s.NewServerCertificateName != nil && len(*s.NewServerCertificateName) < 1 {
27198		invalidParams.Add(request.NewErrParamMinLen("NewServerCertificateName", 1))
27199	}
27200	if s.ServerCertificateName == nil {
27201		invalidParams.Add(request.NewErrParamRequired("ServerCertificateName"))
27202	}
27203	if s.ServerCertificateName != nil && len(*s.ServerCertificateName) < 1 {
27204		invalidParams.Add(request.NewErrParamMinLen("ServerCertificateName", 1))
27205	}
27206
27207	if invalidParams.Len() > 0 {
27208		return invalidParams
27209	}
27210	return nil
27211}
27212
27213// SetNewPath sets the NewPath field's value.
27214func (s *UpdateServerCertificateInput) SetNewPath(v string) *UpdateServerCertificateInput {
27215	s.NewPath = &v
27216	return s
27217}
27218
27219// SetNewServerCertificateName sets the NewServerCertificateName field's value.
27220func (s *UpdateServerCertificateInput) SetNewServerCertificateName(v string) *UpdateServerCertificateInput {
27221	s.NewServerCertificateName = &v
27222	return s
27223}
27224
27225// SetServerCertificateName sets the ServerCertificateName field's value.
27226func (s *UpdateServerCertificateInput) SetServerCertificateName(v string) *UpdateServerCertificateInput {
27227	s.ServerCertificateName = &v
27228	return s
27229}
27230
27231// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateServerCertificateOutput
27232type UpdateServerCertificateOutput struct {
27233	_ struct{} `type:"structure"`
27234}
27235
27236// String returns the string representation
27237func (s UpdateServerCertificateOutput) String() string {
27238	return awsutil.Prettify(s)
27239}
27240
27241// GoString returns the string representation
27242func (s UpdateServerCertificateOutput) GoString() string {
27243	return s.String()
27244}
27245
27246// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateServiceSpecificCredentialRequest
27247type UpdateServiceSpecificCredentialInput struct {
27248	_ struct{} `type:"structure"`
27249
27250	// The unique identifier of the service-specific credential.
27251	//
27252	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
27253	// a string of characters that can consist of any upper or lowercased letter
27254	// or digit.
27255	//
27256	// ServiceSpecificCredentialId is a required field
27257	ServiceSpecificCredentialId *string `min:"20" type:"string" required:"true"`
27258
27259	// The status to be assigned to the service-specific credential.
27260	//
27261	// Status is a required field
27262	Status *string `type:"string" required:"true" enum:"statusType"`
27263
27264	// The name of the IAM user associated with the service-specific credential.
27265	// If you do not specify this value, then the operation assumes the user whose
27266	// credentials are used to call the operation.
27267	//
27268	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
27269	// a string of characters consisting of upper and lowercase alphanumeric characters
27270	// with no spaces. You can also include any of the following characters: =,.@-
27271	UserName *string `min:"1" type:"string"`
27272}
27273
27274// String returns the string representation
27275func (s UpdateServiceSpecificCredentialInput) String() string {
27276	return awsutil.Prettify(s)
27277}
27278
27279// GoString returns the string representation
27280func (s UpdateServiceSpecificCredentialInput) GoString() string {
27281	return s.String()
27282}
27283
27284// Validate inspects the fields of the type to determine if they are valid.
27285func (s *UpdateServiceSpecificCredentialInput) Validate() error {
27286	invalidParams := request.ErrInvalidParams{Context: "UpdateServiceSpecificCredentialInput"}
27287	if s.ServiceSpecificCredentialId == nil {
27288		invalidParams.Add(request.NewErrParamRequired("ServiceSpecificCredentialId"))
27289	}
27290	if s.ServiceSpecificCredentialId != nil && len(*s.ServiceSpecificCredentialId) < 20 {
27291		invalidParams.Add(request.NewErrParamMinLen("ServiceSpecificCredentialId", 20))
27292	}
27293	if s.Status == nil {
27294		invalidParams.Add(request.NewErrParamRequired("Status"))
27295	}
27296	if s.UserName != nil && len(*s.UserName) < 1 {
27297		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
27298	}
27299
27300	if invalidParams.Len() > 0 {
27301		return invalidParams
27302	}
27303	return nil
27304}
27305
27306// SetServiceSpecificCredentialId sets the ServiceSpecificCredentialId field's value.
27307func (s *UpdateServiceSpecificCredentialInput) SetServiceSpecificCredentialId(v string) *UpdateServiceSpecificCredentialInput {
27308	s.ServiceSpecificCredentialId = &v
27309	return s
27310}
27311
27312// SetStatus sets the Status field's value.
27313func (s *UpdateServiceSpecificCredentialInput) SetStatus(v string) *UpdateServiceSpecificCredentialInput {
27314	s.Status = &v
27315	return s
27316}
27317
27318// SetUserName sets the UserName field's value.
27319func (s *UpdateServiceSpecificCredentialInput) SetUserName(v string) *UpdateServiceSpecificCredentialInput {
27320	s.UserName = &v
27321	return s
27322}
27323
27324// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateServiceSpecificCredentialOutput
27325type UpdateServiceSpecificCredentialOutput struct {
27326	_ struct{} `type:"structure"`
27327}
27328
27329// String returns the string representation
27330func (s UpdateServiceSpecificCredentialOutput) String() string {
27331	return awsutil.Prettify(s)
27332}
27333
27334// GoString returns the string representation
27335func (s UpdateServiceSpecificCredentialOutput) GoString() string {
27336	return s.String()
27337}
27338
27339// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateSigningCertificateRequest
27340type UpdateSigningCertificateInput struct {
27341	_ struct{} `type:"structure"`
27342
27343	// The ID of the signing certificate you want to update.
27344	//
27345	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
27346	// a string of characters that can consist of any upper or lowercased letter
27347	// or digit.
27348	//
27349	// CertificateId is a required field
27350	CertificateId *string `min:"24" type:"string" required:"true"`
27351
27352	// The status you want to assign to the certificate. Active means the certificate
27353	// can be used for API calls to AWS, while Inactive means the certificate cannot
27354	// be used.
27355	//
27356	// Status is a required field
27357	Status *string `type:"string" required:"true" enum:"statusType"`
27358
27359	// The name of the IAM user the signing certificate belongs to.
27360	//
27361	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
27362	// a string of characters consisting of upper and lowercase alphanumeric characters
27363	// with no spaces. You can also include any of the following characters: =,.@-
27364	UserName *string `min:"1" type:"string"`
27365}
27366
27367// String returns the string representation
27368func (s UpdateSigningCertificateInput) String() string {
27369	return awsutil.Prettify(s)
27370}
27371
27372// GoString returns the string representation
27373func (s UpdateSigningCertificateInput) GoString() string {
27374	return s.String()
27375}
27376
27377// Validate inspects the fields of the type to determine if they are valid.
27378func (s *UpdateSigningCertificateInput) Validate() error {
27379	invalidParams := request.ErrInvalidParams{Context: "UpdateSigningCertificateInput"}
27380	if s.CertificateId == nil {
27381		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
27382	}
27383	if s.CertificateId != nil && len(*s.CertificateId) < 24 {
27384		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 24))
27385	}
27386	if s.Status == nil {
27387		invalidParams.Add(request.NewErrParamRequired("Status"))
27388	}
27389	if s.UserName != nil && len(*s.UserName) < 1 {
27390		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
27391	}
27392
27393	if invalidParams.Len() > 0 {
27394		return invalidParams
27395	}
27396	return nil
27397}
27398
27399// SetCertificateId sets the CertificateId field's value.
27400func (s *UpdateSigningCertificateInput) SetCertificateId(v string) *UpdateSigningCertificateInput {
27401	s.CertificateId = &v
27402	return s
27403}
27404
27405// SetStatus sets the Status field's value.
27406func (s *UpdateSigningCertificateInput) SetStatus(v string) *UpdateSigningCertificateInput {
27407	s.Status = &v
27408	return s
27409}
27410
27411// SetUserName sets the UserName field's value.
27412func (s *UpdateSigningCertificateInput) SetUserName(v string) *UpdateSigningCertificateInput {
27413	s.UserName = &v
27414	return s
27415}
27416
27417// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateSigningCertificateOutput
27418type UpdateSigningCertificateOutput struct {
27419	_ struct{} `type:"structure"`
27420}
27421
27422// String returns the string representation
27423func (s UpdateSigningCertificateOutput) String() string {
27424	return awsutil.Prettify(s)
27425}
27426
27427// GoString returns the string representation
27428func (s UpdateSigningCertificateOutput) GoString() string {
27429	return s.String()
27430}
27431
27432// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateUserRequest
27433type UpdateUserInput struct {
27434	_ struct{} `type:"structure"`
27435
27436	// New path for the IAM user. Include this parameter only if you're changing
27437	// the user's path.
27438	//
27439	// This paramater allows (per its regex pattern (http://wikipedia.org/wiki/regex))
27440	// a string of characters consisting of either a forward slash (/) by itself
27441	// or a string that must begin and end with forward slashes, containing any
27442	// ASCII character from the ! (\u0021) thru the DEL character (\u007F), including
27443	// most punctuation characters, digits, and upper and lowercased letters.
27444	NewPath *string `min:"1" type:"string"`
27445
27446	// New name for the user. Include this parameter only if you're changing the
27447	// user's name.
27448	//
27449	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
27450	// a string of characters consisting of upper and lowercase alphanumeric characters
27451	// with no spaces. You can also include any of the following characters: =,.@-
27452	NewUserName *string `min:"1" type:"string"`
27453
27454	// Name of the user to update. If you're changing the name of the user, this
27455	// is the original user name.
27456	//
27457	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
27458	// a string of characters consisting of upper and lowercase alphanumeric characters
27459	// with no spaces. You can also include any of the following characters: =,.@-
27460	//
27461	// UserName is a required field
27462	UserName *string `min:"1" type:"string" required:"true"`
27463}
27464
27465// String returns the string representation
27466func (s UpdateUserInput) String() string {
27467	return awsutil.Prettify(s)
27468}
27469
27470// GoString returns the string representation
27471func (s UpdateUserInput) GoString() string {
27472	return s.String()
27473}
27474
27475// Validate inspects the fields of the type to determine if they are valid.
27476func (s *UpdateUserInput) Validate() error {
27477	invalidParams := request.ErrInvalidParams{Context: "UpdateUserInput"}
27478	if s.NewPath != nil && len(*s.NewPath) < 1 {
27479		invalidParams.Add(request.NewErrParamMinLen("NewPath", 1))
27480	}
27481	if s.NewUserName != nil && len(*s.NewUserName) < 1 {
27482		invalidParams.Add(request.NewErrParamMinLen("NewUserName", 1))
27483	}
27484	if s.UserName == nil {
27485		invalidParams.Add(request.NewErrParamRequired("UserName"))
27486	}
27487	if s.UserName != nil && len(*s.UserName) < 1 {
27488		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
27489	}
27490
27491	if invalidParams.Len() > 0 {
27492		return invalidParams
27493	}
27494	return nil
27495}
27496
27497// SetNewPath sets the NewPath field's value.
27498func (s *UpdateUserInput) SetNewPath(v string) *UpdateUserInput {
27499	s.NewPath = &v
27500	return s
27501}
27502
27503// SetNewUserName sets the NewUserName field's value.
27504func (s *UpdateUserInput) SetNewUserName(v string) *UpdateUserInput {
27505	s.NewUserName = &v
27506	return s
27507}
27508
27509// SetUserName sets the UserName field's value.
27510func (s *UpdateUserInput) SetUserName(v string) *UpdateUserInput {
27511	s.UserName = &v
27512	return s
27513}
27514
27515// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateUserOutput
27516type UpdateUserOutput struct {
27517	_ struct{} `type:"structure"`
27518}
27519
27520// String returns the string representation
27521func (s UpdateUserOutput) String() string {
27522	return awsutil.Prettify(s)
27523}
27524
27525// GoString returns the string representation
27526func (s UpdateUserOutput) GoString() string {
27527	return s.String()
27528}
27529
27530// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UploadSSHPublicKeyRequest
27531type UploadSSHPublicKeyInput struct {
27532	_ struct{} `type:"structure"`
27533
27534	// The SSH public key. The public key must be encoded in ssh-rsa format or PEM
27535	// format.
27536	//
27537	// The regex pattern (http://wikipedia.org/wiki/regex) used to validate this
27538	// parameter is a string of characters consisting of any printable ASCII character
27539	// ranging from the space character (\u0020) through end of the ASCII character
27540	// range as well as the printable characters in the Basic Latin and Latin-1
27541	// Supplement character set (through \u00FF). It also includes the special characters
27542	// tab (\u0009), line feed (\u000A), and carriage return (\u000D).
27543	//
27544	// SSHPublicKeyBody is a required field
27545	SSHPublicKeyBody *string `min:"1" type:"string" required:"true"`
27546
27547	// The name of the IAM user to associate the SSH public key with.
27548	//
27549	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
27550	// a string of characters consisting of upper and lowercase alphanumeric characters
27551	// with no spaces. You can also include any of the following characters: =,.@-
27552	//
27553	// UserName is a required field
27554	UserName *string `min:"1" type:"string" required:"true"`
27555}
27556
27557// String returns the string representation
27558func (s UploadSSHPublicKeyInput) String() string {
27559	return awsutil.Prettify(s)
27560}
27561
27562// GoString returns the string representation
27563func (s UploadSSHPublicKeyInput) GoString() string {
27564	return s.String()
27565}
27566
27567// Validate inspects the fields of the type to determine if they are valid.
27568func (s *UploadSSHPublicKeyInput) Validate() error {
27569	invalidParams := request.ErrInvalidParams{Context: "UploadSSHPublicKeyInput"}
27570	if s.SSHPublicKeyBody == nil {
27571		invalidParams.Add(request.NewErrParamRequired("SSHPublicKeyBody"))
27572	}
27573	if s.SSHPublicKeyBody != nil && len(*s.SSHPublicKeyBody) < 1 {
27574		invalidParams.Add(request.NewErrParamMinLen("SSHPublicKeyBody", 1))
27575	}
27576	if s.UserName == nil {
27577		invalidParams.Add(request.NewErrParamRequired("UserName"))
27578	}
27579	if s.UserName != nil && len(*s.UserName) < 1 {
27580		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
27581	}
27582
27583	if invalidParams.Len() > 0 {
27584		return invalidParams
27585	}
27586	return nil
27587}
27588
27589// SetSSHPublicKeyBody sets the SSHPublicKeyBody field's value.
27590func (s *UploadSSHPublicKeyInput) SetSSHPublicKeyBody(v string) *UploadSSHPublicKeyInput {
27591	s.SSHPublicKeyBody = &v
27592	return s
27593}
27594
27595// SetUserName sets the UserName field's value.
27596func (s *UploadSSHPublicKeyInput) SetUserName(v string) *UploadSSHPublicKeyInput {
27597	s.UserName = &v
27598	return s
27599}
27600
27601// Contains the response to a successful UploadSSHPublicKey request.
27602// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UploadSSHPublicKeyResponse
27603type UploadSSHPublicKeyOutput struct {
27604	_ struct{} `type:"structure"`
27605
27606	// Contains information about the SSH public key.
27607	SSHPublicKey *SSHPublicKey `type:"structure"`
27608}
27609
27610// String returns the string representation
27611func (s UploadSSHPublicKeyOutput) String() string {
27612	return awsutil.Prettify(s)
27613}
27614
27615// GoString returns the string representation
27616func (s UploadSSHPublicKeyOutput) GoString() string {
27617	return s.String()
27618}
27619
27620// SetSSHPublicKey sets the SSHPublicKey field's value.
27621func (s *UploadSSHPublicKeyOutput) SetSSHPublicKey(v *SSHPublicKey) *UploadSSHPublicKeyOutput {
27622	s.SSHPublicKey = v
27623	return s
27624}
27625
27626// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UploadServerCertificateRequest
27627type UploadServerCertificateInput struct {
27628	_ struct{} `type:"structure"`
27629
27630	// The contents of the public key certificate in PEM-encoded format.
27631	//
27632	// The regex pattern (http://wikipedia.org/wiki/regex) used to validate this
27633	// parameter is a string of characters consisting of any printable ASCII character
27634	// ranging from the space character (\u0020) through end of the ASCII character
27635	// range as well as the printable characters in the Basic Latin and Latin-1
27636	// Supplement character set (through \u00FF). It also includes the special characters
27637	// tab (\u0009), line feed (\u000A), and carriage return (\u000D).
27638	//
27639	// CertificateBody is a required field
27640	CertificateBody *string `min:"1" type:"string" required:"true"`
27641
27642	// The contents of the certificate chain. This is typically a concatenation
27643	// of the PEM-encoded public key certificates of the chain.
27644	//
27645	// The regex pattern (http://wikipedia.org/wiki/regex) used to validate this
27646	// parameter is a string of characters consisting of any printable ASCII character
27647	// ranging from the space character (\u0020) through end of the ASCII character
27648	// range as well as the printable characters in the Basic Latin and Latin-1
27649	// Supplement character set (through \u00FF). It also includes the special characters
27650	// tab (\u0009), line feed (\u000A), and carriage return (\u000D).
27651	CertificateChain *string `min:"1" type:"string"`
27652
27653	// The path for the server certificate. For more information about paths, see
27654	// IAM Identifiers (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
27655	// in the IAM User Guide.
27656	//
27657	// This parameter is optional. If it is not included, it defaults to a slash
27658	// (/). This paramater allows (per its regex pattern (http://wikipedia.org/wiki/regex))
27659	// a string of characters consisting of either a forward slash (/) by itself
27660	// or a string that must begin and end with forward slashes, containing any
27661	// ASCII character from the ! (\u0021) thru the DEL character (\u007F), including
27662	// most punctuation characters, digits, and upper and lowercased letters.
27663	//
27664	// If you are uploading a server certificate specifically for use with Amazon
27665	// CloudFront distributions, you must specify a path using the --path option.
27666	// The path must begin with /cloudfront and must include a trailing slash (for
27667	// example, /cloudfront/test/).
27668	Path *string `min:"1" type:"string"`
27669
27670	// The contents of the private key in PEM-encoded format.
27671	//
27672	// The regex pattern (http://wikipedia.org/wiki/regex) used to validate this
27673	// parameter is a string of characters consisting of any printable ASCII character
27674	// ranging from the space character (\u0020) through end of the ASCII character
27675	// range as well as the printable characters in the Basic Latin and Latin-1
27676	// Supplement character set (through \u00FF). It also includes the special characters
27677	// tab (\u0009), line feed (\u000A), and carriage return (\u000D).
27678	//
27679	// PrivateKey is a required field
27680	PrivateKey *string `min:"1" type:"string" required:"true"`
27681
27682	// The name for the server certificate. Do not include the path in this value.
27683	// The name of the certificate cannot contain any spaces.
27684	//
27685	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
27686	// a string of characters consisting of upper and lowercase alphanumeric characters
27687	// with no spaces. You can also include any of the following characters: =,.@-
27688	//
27689	// ServerCertificateName is a required field
27690	ServerCertificateName *string `min:"1" type:"string" required:"true"`
27691}
27692
27693// String returns the string representation
27694func (s UploadServerCertificateInput) String() string {
27695	return awsutil.Prettify(s)
27696}
27697
27698// GoString returns the string representation
27699func (s UploadServerCertificateInput) GoString() string {
27700	return s.String()
27701}
27702
27703// Validate inspects the fields of the type to determine if they are valid.
27704func (s *UploadServerCertificateInput) Validate() error {
27705	invalidParams := request.ErrInvalidParams{Context: "UploadServerCertificateInput"}
27706	if s.CertificateBody == nil {
27707		invalidParams.Add(request.NewErrParamRequired("CertificateBody"))
27708	}
27709	if s.CertificateBody != nil && len(*s.CertificateBody) < 1 {
27710		invalidParams.Add(request.NewErrParamMinLen("CertificateBody", 1))
27711	}
27712	if s.CertificateChain != nil && len(*s.CertificateChain) < 1 {
27713		invalidParams.Add(request.NewErrParamMinLen("CertificateChain", 1))
27714	}
27715	if s.Path != nil && len(*s.Path) < 1 {
27716		invalidParams.Add(request.NewErrParamMinLen("Path", 1))
27717	}
27718	if s.PrivateKey == nil {
27719		invalidParams.Add(request.NewErrParamRequired("PrivateKey"))
27720	}
27721	if s.PrivateKey != nil && len(*s.PrivateKey) < 1 {
27722		invalidParams.Add(request.NewErrParamMinLen("PrivateKey", 1))
27723	}
27724	if s.ServerCertificateName == nil {
27725		invalidParams.Add(request.NewErrParamRequired("ServerCertificateName"))
27726	}
27727	if s.ServerCertificateName != nil && len(*s.ServerCertificateName) < 1 {
27728		invalidParams.Add(request.NewErrParamMinLen("ServerCertificateName", 1))
27729	}
27730
27731	if invalidParams.Len() > 0 {
27732		return invalidParams
27733	}
27734	return nil
27735}
27736
27737// SetCertificateBody sets the CertificateBody field's value.
27738func (s *UploadServerCertificateInput) SetCertificateBody(v string) *UploadServerCertificateInput {
27739	s.CertificateBody = &v
27740	return s
27741}
27742
27743// SetCertificateChain sets the CertificateChain field's value.
27744func (s *UploadServerCertificateInput) SetCertificateChain(v string) *UploadServerCertificateInput {
27745	s.CertificateChain = &v
27746	return s
27747}
27748
27749// SetPath sets the Path field's value.
27750func (s *UploadServerCertificateInput) SetPath(v string) *UploadServerCertificateInput {
27751	s.Path = &v
27752	return s
27753}
27754
27755// SetPrivateKey sets the PrivateKey field's value.
27756func (s *UploadServerCertificateInput) SetPrivateKey(v string) *UploadServerCertificateInput {
27757	s.PrivateKey = &v
27758	return s
27759}
27760
27761// SetServerCertificateName sets the ServerCertificateName field's value.
27762func (s *UploadServerCertificateInput) SetServerCertificateName(v string) *UploadServerCertificateInput {
27763	s.ServerCertificateName = &v
27764	return s
27765}
27766
27767// Contains the response to a successful UploadServerCertificate request.
27768// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UploadServerCertificateResponse
27769type UploadServerCertificateOutput struct {
27770	_ struct{} `type:"structure"`
27771
27772	// The meta information of the uploaded server certificate without its certificate
27773	// body, certificate chain, and private key.
27774	ServerCertificateMetadata *ServerCertificateMetadata `type:"structure"`
27775}
27776
27777// String returns the string representation
27778func (s UploadServerCertificateOutput) String() string {
27779	return awsutil.Prettify(s)
27780}
27781
27782// GoString returns the string representation
27783func (s UploadServerCertificateOutput) GoString() string {
27784	return s.String()
27785}
27786
27787// SetServerCertificateMetadata sets the ServerCertificateMetadata field's value.
27788func (s *UploadServerCertificateOutput) SetServerCertificateMetadata(v *ServerCertificateMetadata) *UploadServerCertificateOutput {
27789	s.ServerCertificateMetadata = v
27790	return s
27791}
27792
27793// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UploadSigningCertificateRequest
27794type UploadSigningCertificateInput struct {
27795	_ struct{} `type:"structure"`
27796
27797	// The contents of the signing certificate.
27798	//
27799	// The regex pattern (http://wikipedia.org/wiki/regex) used to validate this
27800	// parameter is a string of characters consisting of any printable ASCII character
27801	// ranging from the space character (\u0020) through end of the ASCII character
27802	// range as well as the printable characters in the Basic Latin and Latin-1
27803	// Supplement character set (through \u00FF). It also includes the special characters
27804	// tab (\u0009), line feed (\u000A), and carriage return (\u000D).
27805	//
27806	// CertificateBody is a required field
27807	CertificateBody *string `min:"1" type:"string" required:"true"`
27808
27809	// The name of the user the signing certificate is for.
27810	//
27811	// This parameter allows (per its regex pattern (http://wikipedia.org/wiki/regex))
27812	// a string of characters consisting of upper and lowercase alphanumeric characters
27813	// with no spaces. You can also include any of the following characters: =,.@-
27814	UserName *string `min:"1" type:"string"`
27815}
27816
27817// String returns the string representation
27818func (s UploadSigningCertificateInput) String() string {
27819	return awsutil.Prettify(s)
27820}
27821
27822// GoString returns the string representation
27823func (s UploadSigningCertificateInput) GoString() string {
27824	return s.String()
27825}
27826
27827// Validate inspects the fields of the type to determine if they are valid.
27828func (s *UploadSigningCertificateInput) Validate() error {
27829	invalidParams := request.ErrInvalidParams{Context: "UploadSigningCertificateInput"}
27830	if s.CertificateBody == nil {
27831		invalidParams.Add(request.NewErrParamRequired("CertificateBody"))
27832	}
27833	if s.CertificateBody != nil && len(*s.CertificateBody) < 1 {
27834		invalidParams.Add(request.NewErrParamMinLen("CertificateBody", 1))
27835	}
27836	if s.UserName != nil && len(*s.UserName) < 1 {
27837		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
27838	}
27839
27840	if invalidParams.Len() > 0 {
27841		return invalidParams
27842	}
27843	return nil
27844}
27845
27846// SetCertificateBody sets the CertificateBody field's value.
27847func (s *UploadSigningCertificateInput) SetCertificateBody(v string) *UploadSigningCertificateInput {
27848	s.CertificateBody = &v
27849	return s
27850}
27851
27852// SetUserName sets the UserName field's value.
27853func (s *UploadSigningCertificateInput) SetUserName(v string) *UploadSigningCertificateInput {
27854	s.UserName = &v
27855	return s
27856}
27857
27858// Contains the response to a successful UploadSigningCertificate request.
27859// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UploadSigningCertificateResponse
27860type UploadSigningCertificateOutput struct {
27861	_ struct{} `type:"structure"`
27862
27863	// Information about the certificate.
27864	//
27865	// Certificate is a required field
27866	Certificate *SigningCertificate `type:"structure" required:"true"`
27867}
27868
27869// String returns the string representation
27870func (s UploadSigningCertificateOutput) String() string {
27871	return awsutil.Prettify(s)
27872}
27873
27874// GoString returns the string representation
27875func (s UploadSigningCertificateOutput) GoString() string {
27876	return s.String()
27877}
27878
27879// SetCertificate sets the Certificate field's value.
27880func (s *UploadSigningCertificateOutput) SetCertificate(v *SigningCertificate) *UploadSigningCertificateOutput {
27881	s.Certificate = v
27882	return s
27883}
27884
27885// Contains information about an IAM user entity.
27886//
27887// This data type is used as a response element in the following actions:
27888//
27889//    * CreateUser
27890//
27891//    * GetUser
27892//
27893//    * ListUsers
27894// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/User
27895type User struct {
27896	_ struct{} `type:"structure"`
27897
27898	// The Amazon Resource Name (ARN) that identifies the user. For more information
27899	// about ARNs and how to use ARNs in policies, see IAM Identifiers (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
27900	// in the Using IAM guide.
27901	//
27902	// Arn is a required field
27903	Arn *string `min:"20" type:"string" required:"true"`
27904
27905	// The date and time, in ISO 8601 date-time format (http://www.iso.org/iso/iso8601),
27906	// when the user was created.
27907	//
27908	// CreateDate is a required field
27909	CreateDate *time.Time `type:"timestamp" timestampFormat:"iso8601" required:"true"`
27910
27911	// The date and time, in ISO 8601 date-time format (http://www.iso.org/iso/iso8601),
27912	// when the user's password was last used to sign in to an AWS website. For
27913	// a list of AWS websites that capture a user's last sign-in time, see the Credential
27914	// Reports (http://docs.aws.amazon.com/IAM/latest/UserGuide/credential-reports.html)
27915	// topic in the Using IAM guide. If a password is used more than once in a five-minute
27916	// span, only the first use is returned in this field. If the field is null
27917	// (no value) then it indicates that they never signed in with a password. This
27918	// can be because:
27919	//
27920	//    * The user never had a password.
27921	//
27922	//    * A password exists but has not been used since IAM started tracking this
27923	//    information on October 20th, 2014.
27924	//
27925	// A null does not mean that the user never had a password. Also, if the user
27926	// does not currently have a password, but had one in the past, then this field
27927	// contains the date and time the most recent password was used.
27928	//
27929	// This value is returned only in the GetUser and ListUsers actions.
27930	PasswordLastUsed *time.Time `type:"timestamp" timestampFormat:"iso8601"`
27931
27932	// The path to the user. For more information about paths, see IAM Identifiers
27933	// (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
27934	// in the Using IAM guide.
27935	//
27936	// Path is a required field
27937	Path *string `min:"1" type:"string" required:"true"`
27938
27939	// The stable and unique string identifying the user. For more information about
27940	// IDs, see IAM Identifiers (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
27941	// in the Using IAM guide.
27942	//
27943	// UserId is a required field
27944	UserId *string `min:"16" type:"string" required:"true"`
27945
27946	// The friendly name identifying the user.
27947	//
27948	// UserName is a required field
27949	UserName *string `min:"1" type:"string" required:"true"`
27950}
27951
27952// String returns the string representation
27953func (s User) String() string {
27954	return awsutil.Prettify(s)
27955}
27956
27957// GoString returns the string representation
27958func (s User) GoString() string {
27959	return s.String()
27960}
27961
27962// SetArn sets the Arn field's value.
27963func (s *User) SetArn(v string) *User {
27964	s.Arn = &v
27965	return s
27966}
27967
27968// SetCreateDate sets the CreateDate field's value.
27969func (s *User) SetCreateDate(v time.Time) *User {
27970	s.CreateDate = &v
27971	return s
27972}
27973
27974// SetPasswordLastUsed sets the PasswordLastUsed field's value.
27975func (s *User) SetPasswordLastUsed(v time.Time) *User {
27976	s.PasswordLastUsed = &v
27977	return s
27978}
27979
27980// SetPath sets the Path field's value.
27981func (s *User) SetPath(v string) *User {
27982	s.Path = &v
27983	return s
27984}
27985
27986// SetUserId sets the UserId field's value.
27987func (s *User) SetUserId(v string) *User {
27988	s.UserId = &v
27989	return s
27990}
27991
27992// SetUserName sets the UserName field's value.
27993func (s *User) SetUserName(v string) *User {
27994	s.UserName = &v
27995	return s
27996}
27997
27998// Contains information about an IAM user, including all the user's policies
27999// and all the IAM groups the user is in.
28000//
28001// This data type is used as a response element in the GetAccountAuthorizationDetails
28002// action.
28003// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UserDetail
28004type UserDetail struct {
28005	_ struct{} `type:"structure"`
28006
28007	// The Amazon Resource Name (ARN). ARNs are unique identifiers for AWS resources.
28008	//
28009	// For more information about ARNs, go to Amazon Resource Names (ARNs) and AWS
28010	// Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
28011	// in the AWS General Reference.
28012	Arn *string `min:"20" type:"string"`
28013
28014	// A list of the managed policies attached to the user.
28015	AttachedManagedPolicies []*AttachedPolicy `type:"list"`
28016
28017	// The date and time, in ISO 8601 date-time format (http://www.iso.org/iso/iso8601),
28018	// when the user was created.
28019	CreateDate *time.Time `type:"timestamp" timestampFormat:"iso8601"`
28020
28021	// A list of IAM groups that the user is in.
28022	GroupList []*string `type:"list"`
28023
28024	// The path to the user. For more information about paths, see IAM Identifiers
28025	// (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
28026	// in the Using IAM guide.
28027	Path *string `min:"1" type:"string"`
28028
28029	// The stable and unique string identifying the user. For more information about
28030	// IDs, see IAM Identifiers (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
28031	// in the Using IAM guide.
28032	UserId *string `min:"16" type:"string"`
28033
28034	// The friendly name identifying the user.
28035	UserName *string `min:"1" type:"string"`
28036
28037	// A list of the inline policies embedded in the user.
28038	UserPolicyList []*PolicyDetail `type:"list"`
28039}
28040
28041// String returns the string representation
28042func (s UserDetail) String() string {
28043	return awsutil.Prettify(s)
28044}
28045
28046// GoString returns the string representation
28047func (s UserDetail) GoString() string {
28048	return s.String()
28049}
28050
28051// SetArn sets the Arn field's value.
28052func (s *UserDetail) SetArn(v string) *UserDetail {
28053	s.Arn = &v
28054	return s
28055}
28056
28057// SetAttachedManagedPolicies sets the AttachedManagedPolicies field's value.
28058func (s *UserDetail) SetAttachedManagedPolicies(v []*AttachedPolicy) *UserDetail {
28059	s.AttachedManagedPolicies = v
28060	return s
28061}
28062
28063// SetCreateDate sets the CreateDate field's value.
28064func (s *UserDetail) SetCreateDate(v time.Time) *UserDetail {
28065	s.CreateDate = &v
28066	return s
28067}
28068
28069// SetGroupList sets the GroupList field's value.
28070func (s *UserDetail) SetGroupList(v []*string) *UserDetail {
28071	s.GroupList = v
28072	return s
28073}
28074
28075// SetPath sets the Path field's value.
28076func (s *UserDetail) SetPath(v string) *UserDetail {
28077	s.Path = &v
28078	return s
28079}
28080
28081// SetUserId sets the UserId field's value.
28082func (s *UserDetail) SetUserId(v string) *UserDetail {
28083	s.UserId = &v
28084	return s
28085}
28086
28087// SetUserName sets the UserName field's value.
28088func (s *UserDetail) SetUserName(v string) *UserDetail {
28089	s.UserName = &v
28090	return s
28091}
28092
28093// SetUserPolicyList sets the UserPolicyList field's value.
28094func (s *UserDetail) SetUserPolicyList(v []*PolicyDetail) *UserDetail {
28095	s.UserPolicyList = v
28096	return s
28097}
28098
28099// Contains information about a virtual MFA device.
28100// Please also see https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/VirtualMFADevice
28101type VirtualMFADevice struct {
28102	_ struct{} `type:"structure"`
28103
28104	// The Base32 seed defined as specified in RFC3548 (https://tools.ietf.org/html/rfc3548.txt).
28105	// The Base32StringSeed is Base64-encoded.
28106	//
28107	// Base32StringSeed is automatically base64 encoded/decoded by the SDK.
28108	Base32StringSeed []byte `type:"blob"`
28109
28110	// The date and time on which the virtual MFA device was enabled.
28111	EnableDate *time.Time `type:"timestamp" timestampFormat:"iso8601"`
28112
28113	// A QR code PNG image that encodes otpauth://totp/$virtualMFADeviceName@$AccountName?secret=$Base32String
28114	// where $virtualMFADeviceName is one of the create call arguments, AccountName
28115	// is the user name if set (otherwise, the account ID otherwise), and Base32String
28116	// is the seed in Base32 format. The Base32String value is Base64-encoded.
28117	//
28118	// QRCodePNG is automatically base64 encoded/decoded by the SDK.
28119	QRCodePNG []byte `type:"blob"`
28120
28121	// The serial number associated with VirtualMFADevice.
28122	//
28123	// SerialNumber is a required field
28124	SerialNumber *string `min:"9" type:"string" required:"true"`
28125
28126	// The IAM user associated with this virtual MFA device.
28127	User *User `type:"structure"`
28128}
28129
28130// String returns the string representation
28131func (s VirtualMFADevice) String() string {
28132	return awsutil.Prettify(s)
28133}
28134
28135// GoString returns the string representation
28136func (s VirtualMFADevice) GoString() string {
28137	return s.String()
28138}
28139
28140// SetBase32StringSeed sets the Base32StringSeed field's value.
28141func (s *VirtualMFADevice) SetBase32StringSeed(v []byte) *VirtualMFADevice {
28142	s.Base32StringSeed = v
28143	return s
28144}
28145
28146// SetEnableDate sets the EnableDate field's value.
28147func (s *VirtualMFADevice) SetEnableDate(v time.Time) *VirtualMFADevice {
28148	s.EnableDate = &v
28149	return s
28150}
28151
28152// SetQRCodePNG sets the QRCodePNG field's value.
28153func (s *VirtualMFADevice) SetQRCodePNG(v []byte) *VirtualMFADevice {
28154	s.QRCodePNG = v
28155	return s
28156}
28157
28158// SetSerialNumber sets the SerialNumber field's value.
28159func (s *VirtualMFADevice) SetSerialNumber(v string) *VirtualMFADevice {
28160	s.SerialNumber = &v
28161	return s
28162}
28163
28164// SetUser sets the User field's value.
28165func (s *VirtualMFADevice) SetUser(v *User) *VirtualMFADevice {
28166	s.User = v
28167	return s
28168}
28169
28170const (
28171	// ContextKeyTypeEnumString is a ContextKeyTypeEnum enum value
28172	ContextKeyTypeEnumString = "string"
28173
28174	// ContextKeyTypeEnumStringList is a ContextKeyTypeEnum enum value
28175	ContextKeyTypeEnumStringList = "stringList"
28176
28177	// ContextKeyTypeEnumNumeric is a ContextKeyTypeEnum enum value
28178	ContextKeyTypeEnumNumeric = "numeric"
28179
28180	// ContextKeyTypeEnumNumericList is a ContextKeyTypeEnum enum value
28181	ContextKeyTypeEnumNumericList = "numericList"
28182
28183	// ContextKeyTypeEnumBoolean is a ContextKeyTypeEnum enum value
28184	ContextKeyTypeEnumBoolean = "boolean"
28185
28186	// ContextKeyTypeEnumBooleanList is a ContextKeyTypeEnum enum value
28187	ContextKeyTypeEnumBooleanList = "booleanList"
28188
28189	// ContextKeyTypeEnumIp is a ContextKeyTypeEnum enum value
28190	ContextKeyTypeEnumIp = "ip"
28191
28192	// ContextKeyTypeEnumIpList is a ContextKeyTypeEnum enum value
28193	ContextKeyTypeEnumIpList = "ipList"
28194
28195	// ContextKeyTypeEnumBinary is a ContextKeyTypeEnum enum value
28196	ContextKeyTypeEnumBinary = "binary"
28197
28198	// ContextKeyTypeEnumBinaryList is a ContextKeyTypeEnum enum value
28199	ContextKeyTypeEnumBinaryList = "binaryList"
28200
28201	// ContextKeyTypeEnumDate is a ContextKeyTypeEnum enum value
28202	ContextKeyTypeEnumDate = "date"
28203
28204	// ContextKeyTypeEnumDateList is a ContextKeyTypeEnum enum value
28205	ContextKeyTypeEnumDateList = "dateList"
28206)
28207
28208const (
28209	// DeletionTaskStatusTypeSucceeded is a DeletionTaskStatusType enum value
28210	DeletionTaskStatusTypeSucceeded = "SUCCEEDED"
28211
28212	// DeletionTaskStatusTypeInProgress is a DeletionTaskStatusType enum value
28213	DeletionTaskStatusTypeInProgress = "IN_PROGRESS"
28214
28215	// DeletionTaskStatusTypeFailed is a DeletionTaskStatusType enum value
28216	DeletionTaskStatusTypeFailed = "FAILED"
28217
28218	// DeletionTaskStatusTypeNotStarted is a DeletionTaskStatusType enum value
28219	DeletionTaskStatusTypeNotStarted = "NOT_STARTED"
28220)
28221
28222const (
28223	// EntityTypeUser is a EntityType enum value
28224	EntityTypeUser = "User"
28225
28226	// EntityTypeRole is a EntityType enum value
28227	EntityTypeRole = "Role"
28228
28229	// EntityTypeGroup is a EntityType enum value
28230	EntityTypeGroup = "Group"
28231
28232	// EntityTypeLocalManagedPolicy is a EntityType enum value
28233	EntityTypeLocalManagedPolicy = "LocalManagedPolicy"
28234
28235	// EntityTypeAwsmanagedPolicy is a EntityType enum value
28236	EntityTypeAwsmanagedPolicy = "AWSManagedPolicy"
28237)
28238
28239const (
28240	// PolicyEvaluationDecisionTypeAllowed is a PolicyEvaluationDecisionType enum value
28241	PolicyEvaluationDecisionTypeAllowed = "allowed"
28242
28243	// PolicyEvaluationDecisionTypeExplicitDeny is a PolicyEvaluationDecisionType enum value
28244	PolicyEvaluationDecisionTypeExplicitDeny = "explicitDeny"
28245
28246	// PolicyEvaluationDecisionTypeImplicitDeny is a PolicyEvaluationDecisionType enum value
28247	PolicyEvaluationDecisionTypeImplicitDeny = "implicitDeny"
28248)
28249
28250const (
28251	// PolicySourceTypeUser is a PolicySourceType enum value
28252	PolicySourceTypeUser = "user"
28253
28254	// PolicySourceTypeGroup is a PolicySourceType enum value
28255	PolicySourceTypeGroup = "group"
28256
28257	// PolicySourceTypeRole is a PolicySourceType enum value
28258	PolicySourceTypeRole = "role"
28259
28260	// PolicySourceTypeAwsManaged is a PolicySourceType enum value
28261	PolicySourceTypeAwsManaged = "aws-managed"
28262
28263	// PolicySourceTypeUserManaged is a PolicySourceType enum value
28264	PolicySourceTypeUserManaged = "user-managed"
28265
28266	// PolicySourceTypeResource is a PolicySourceType enum value
28267	PolicySourceTypeResource = "resource"
28268
28269	// PolicySourceTypeNone is a PolicySourceType enum value
28270	PolicySourceTypeNone = "none"
28271)
28272
28273const (
28274	// ReportFormatTypeTextCsv is a ReportFormatType enum value
28275	ReportFormatTypeTextCsv = "text/csv"
28276)
28277
28278const (
28279	// ReportStateTypeStarted is a ReportStateType enum value
28280	ReportStateTypeStarted = "STARTED"
28281
28282	// ReportStateTypeInprogress is a ReportStateType enum value
28283	ReportStateTypeInprogress = "INPROGRESS"
28284
28285	// ReportStateTypeComplete is a ReportStateType enum value
28286	ReportStateTypeComplete = "COMPLETE"
28287)
28288
28289const (
28290	// AssignmentStatusTypeAssigned is a assignmentStatusType enum value
28291	AssignmentStatusTypeAssigned = "Assigned"
28292
28293	// AssignmentStatusTypeUnassigned is a assignmentStatusType enum value
28294	AssignmentStatusTypeUnassigned = "Unassigned"
28295
28296	// AssignmentStatusTypeAny is a assignmentStatusType enum value
28297	AssignmentStatusTypeAny = "Any"
28298)
28299
28300const (
28301	// EncodingTypeSsh is a encodingType enum value
28302	EncodingTypeSsh = "SSH"
28303
28304	// EncodingTypePem is a encodingType enum value
28305	EncodingTypePem = "PEM"
28306)
28307
28308const (
28309	// PolicyScopeTypeAll is a policyScopeType enum value
28310	PolicyScopeTypeAll = "All"
28311
28312	// PolicyScopeTypeAws is a policyScopeType enum value
28313	PolicyScopeTypeAws = "AWS"
28314
28315	// PolicyScopeTypeLocal is a policyScopeType enum value
28316	PolicyScopeTypeLocal = "Local"
28317)
28318
28319const (
28320	// StatusTypeActive is a statusType enum value
28321	StatusTypeActive = "Active"
28322
28323	// StatusTypeInactive is a statusType enum value
28324	StatusTypeInactive = "Inactive"
28325)
28326
28327const (
28328	// SummaryKeyTypeUsers is a summaryKeyType enum value
28329	SummaryKeyTypeUsers = "Users"
28330
28331	// SummaryKeyTypeUsersQuota is a summaryKeyType enum value
28332	SummaryKeyTypeUsersQuota = "UsersQuota"
28333
28334	// SummaryKeyTypeGroups is a summaryKeyType enum value
28335	SummaryKeyTypeGroups = "Groups"
28336
28337	// SummaryKeyTypeGroupsQuota is a summaryKeyType enum value
28338	SummaryKeyTypeGroupsQuota = "GroupsQuota"
28339
28340	// SummaryKeyTypeServerCertificates is a summaryKeyType enum value
28341	SummaryKeyTypeServerCertificates = "ServerCertificates"
28342
28343	// SummaryKeyTypeServerCertificatesQuota is a summaryKeyType enum value
28344	SummaryKeyTypeServerCertificatesQuota = "ServerCertificatesQuota"
28345
28346	// SummaryKeyTypeUserPolicySizeQuota is a summaryKeyType enum value
28347	SummaryKeyTypeUserPolicySizeQuota = "UserPolicySizeQuota"
28348
28349	// SummaryKeyTypeGroupPolicySizeQuota is a summaryKeyType enum value
28350	SummaryKeyTypeGroupPolicySizeQuota = "GroupPolicySizeQuota"
28351
28352	// SummaryKeyTypeGroupsPerUserQuota is a summaryKeyType enum value
28353	SummaryKeyTypeGroupsPerUserQuota = "GroupsPerUserQuota"
28354
28355	// SummaryKeyTypeSigningCertificatesPerUserQuota is a summaryKeyType enum value
28356	SummaryKeyTypeSigningCertificatesPerUserQuota = "SigningCertificatesPerUserQuota"
28357
28358	// SummaryKeyTypeAccessKeysPerUserQuota is a summaryKeyType enum value
28359	SummaryKeyTypeAccessKeysPerUserQuota = "AccessKeysPerUserQuota"
28360
28361	// SummaryKeyTypeMfadevices is a summaryKeyType enum value
28362	SummaryKeyTypeMfadevices = "MFADevices"
28363
28364	// SummaryKeyTypeMfadevicesInUse is a summaryKeyType enum value
28365	SummaryKeyTypeMfadevicesInUse = "MFADevicesInUse"
28366
28367	// SummaryKeyTypeAccountMfaenabled is a summaryKeyType enum value
28368	SummaryKeyTypeAccountMfaenabled = "AccountMFAEnabled"
28369
28370	// SummaryKeyTypeAccountAccessKeysPresent is a summaryKeyType enum value
28371	SummaryKeyTypeAccountAccessKeysPresent = "AccountAccessKeysPresent"
28372
28373	// SummaryKeyTypeAccountSigningCertificatesPresent is a summaryKeyType enum value
28374	SummaryKeyTypeAccountSigningCertificatesPresent = "AccountSigningCertificatesPresent"
28375
28376	// SummaryKeyTypeAttachedPoliciesPerGroupQuota is a summaryKeyType enum value
28377	SummaryKeyTypeAttachedPoliciesPerGroupQuota = "AttachedPoliciesPerGroupQuota"
28378
28379	// SummaryKeyTypeAttachedPoliciesPerRoleQuota is a summaryKeyType enum value
28380	SummaryKeyTypeAttachedPoliciesPerRoleQuota = "AttachedPoliciesPerRoleQuota"
28381
28382	// SummaryKeyTypeAttachedPoliciesPerUserQuota is a summaryKeyType enum value
28383	SummaryKeyTypeAttachedPoliciesPerUserQuota = "AttachedPoliciesPerUserQuota"
28384
28385	// SummaryKeyTypePolicies is a summaryKeyType enum value
28386	SummaryKeyTypePolicies = "Policies"
28387
28388	// SummaryKeyTypePoliciesQuota is a summaryKeyType enum value
28389	SummaryKeyTypePoliciesQuota = "PoliciesQuota"
28390
28391	// SummaryKeyTypePolicySizeQuota is a summaryKeyType enum value
28392	SummaryKeyTypePolicySizeQuota = "PolicySizeQuota"
28393
28394	// SummaryKeyTypePolicyVersionsInUse is a summaryKeyType enum value
28395	SummaryKeyTypePolicyVersionsInUse = "PolicyVersionsInUse"
28396
28397	// SummaryKeyTypePolicyVersionsInUseQuota is a summaryKeyType enum value
28398	SummaryKeyTypePolicyVersionsInUseQuota = "PolicyVersionsInUseQuota"
28399
28400	// SummaryKeyTypeVersionsPerPolicyQuota is a summaryKeyType enum value
28401	SummaryKeyTypeVersionsPerPolicyQuota = "VersionsPerPolicyQuota"
28402)
28403