forked from aws/aws-sdk-go
/
iam.go
2371 lines (2080 loc) · 110 KB
/
iam.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
// THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT.
// Package iam provides a client for AWS Identity and Access Management.
package iam
import (
"net/http"
"time"
"github.com/awslabs/aws-sdk-go/aws"
"github.com/awslabs/aws-sdk-go/gen/endpoints"
)
import (
"encoding/xml"
"io"
)
// IAM is a client for AWS Identity and Access Management.
type IAM struct {
client *aws.QueryClient
}
type IAMAPI interface {
AddClientIDToOpenIDConnectProvider(req *AddClientIDToOpenIDConnectProviderRequest) (err error)
AddRoleToInstanceProfile(req *AddRoleToInstanceProfileRequest) (err error)
AddUserToGroup(req *AddUserToGroupRequest) (err error)
ChangePassword(req *ChangePasswordRequest) (err error)
CreateAccessKey(req *CreateAccessKeyRequest) (resp *CreateAccessKeyResponse, err error)
CreateAccountAlias(req *CreateAccountAliasRequest) (err error)
CreateGroup(req *CreateGroupRequest) (resp *CreateGroupResponse, err error)
CreateInstanceProfile(req *CreateInstanceProfileRequest) (resp *CreateInstanceProfileResponse, err error)
CreateLoginProfile(req *CreateLoginProfileRequest) (resp *CreateLoginProfileResponse, err error)
CreateOpenIDConnectProvider(req *CreateOpenIDConnectProviderRequest) (resp *CreateOpenIDConnectProviderResponse, err error)
CreateRole(req *CreateRoleRequest) (resp *CreateRoleResponse, err error)
CreateSAMLProvider(req *CreateSAMLProviderRequest) (resp *CreateSAMLProviderResponse, err error)
CreateUser(req *CreateUserRequest) (resp *CreateUserResponse, err error)
CreateVirtualMFADevice(req *CreateVirtualMFADeviceRequest) (resp *CreateVirtualMFADeviceResponse, err error)
DeactivateMFADevice(req *DeactivateMFADeviceRequest) (err error)
DeleteAccessKey(req *DeleteAccessKeyRequest) (err error)
DeleteAccountAlias(req *DeleteAccountAliasRequest) (err error)
DeleteAccountPasswordPolicy() (err error)
DeleteGroup(req *DeleteGroupRequest) (err error)
DeleteGroupPolicy(req *DeleteGroupPolicyRequest) (err error)
DeleteInstanceProfile(req *DeleteInstanceProfileRequest) (err error)
DeleteLoginProfile(req *DeleteLoginProfileRequest) (err error)
DeleteOpenIDConnectProvider(req *DeleteOpenIDConnectProviderRequest) (err error)
DeleteRole(req *DeleteRoleRequest) (err error)
DeleteRolePolicy(req *DeleteRolePolicyRequest) (err error)
DeleteSAMLProvider(req *DeleteSAMLProviderRequest) (err error)
DeleteServerCertificate(req *DeleteServerCertificateRequest) (err error)
DeleteSigningCertificate(req *DeleteSigningCertificateRequest) (err error)
DeleteUser(req *DeleteUserRequest) (err error)
DeleteUserPolicy(req *DeleteUserPolicyRequest) (err error)
DeleteVirtualMFADevice(req *DeleteVirtualMFADeviceRequest) (err error)
EnableMFADevice(req *EnableMFADeviceRequest) (err error)
GenerateCredentialReport() (resp *GenerateCredentialReportResponse, err error)
GetAccountAuthorizationDetails(req *GetAccountAuthorizationDetailsRequest) (resp *GetAccountAuthorizationDetailsResponse, err error)
GetAccountPasswordPolicy() (resp *GetAccountPasswordPolicyResponse, err error)
GetAccountSummary() (resp *GetAccountSummaryResponse, err error)
GetCredentialReport() (resp *GetCredentialReportResponse, err error)
GetGroup(req *GetGroupRequest) (resp *GetGroupResponse, err error)
GetGroupPolicy(req *GetGroupPolicyRequest) (resp *GetGroupPolicyResponse, err error)
GetInstanceProfile(req *GetInstanceProfileRequest) (resp *GetInstanceProfileResponse, err error)
GetLoginProfile(req *GetLoginProfileRequest) (resp *GetLoginProfileResponse, err error)
GetOpenIDConnectProvider(req *GetOpenIDConnectProviderRequest) (resp *GetOpenIDConnectProviderResponse, err error)
GetRole(req *GetRoleRequest) (resp *GetRoleResponse, err error)
GetRolePolicy(req *GetRolePolicyRequest) (resp *GetRolePolicyResponse, err error)
GetSAMLProvider(req *GetSAMLProviderRequest) (resp *GetSAMLProviderResponse, err error)
GetServerCertificate(req *GetServerCertificateRequest) (resp *GetServerCertificateResponse, err error)
GetUser(req *GetUserRequest) (resp *GetUserResponse, err error)
GetUserPolicy(req *GetUserPolicyRequest) (resp *GetUserPolicyResponse, err error)
ListAccessKeys(req *ListAccessKeysRequest) (resp *ListAccessKeysResponse, err error)
ListAccountAliases(req *ListAccountAliasesRequest) (resp *ListAccountAliasesResponse, err error)
ListGroupPolicies(req *ListGroupPoliciesRequest) (resp *ListGroupPoliciesResponse, err error)
ListGroups(req *ListGroupsRequest) (resp *ListGroupsResponse, err error)
ListGroupsForUser(req *ListGroupsForUserRequest) (resp *ListGroupsForUserResponse, err error)
ListInstanceProfiles(req *ListInstanceProfilesRequest) (resp *ListInstanceProfilesResponse, err error)
ListInstanceProfilesForRole(req *ListInstanceProfilesForRoleRequest) (resp *ListInstanceProfilesForRoleResponse, err error)
ListMFADevices(req *ListMFADevicesRequest) (resp *ListMFADevicesResponse, err error)
ListOpenIDConnectProviders(req *ListOpenIDConnectProvidersRequest) (resp *ListOpenIDConnectProvidersResponse, err error)
ListRolePolicies(req *ListRolePoliciesRequest) (resp *ListRolePoliciesResponse, err error)
ListRoles(req *ListRolesRequest) (resp *ListRolesResponse, err error)
ListSAMLProviders(req *ListSAMLProvidersRequest) (resp *ListSAMLProvidersResponse, err error)
ListServerCertificates(req *ListServerCertificatesRequest) (resp *ListServerCertificatesResponse, err error)
ListSigningCertificates(req *ListSigningCertificatesRequest) (resp *ListSigningCertificatesResponse, err error)
ListUserPolicies(req *ListUserPoliciesRequest) (resp *ListUserPoliciesResponse, err error)
ListUsers(req *ListUsersRequest) (resp *ListUsersResponse, err error)
ListVirtualMFADevices(req *ListVirtualMFADevicesRequest) (resp *ListVirtualMFADevicesResponse, err error)
PutGroupPolicy(req *PutGroupPolicyRequest) (err error)
PutRolePolicy(req *PutRolePolicyRequest) (err error)
PutUserPolicy(req *PutUserPolicyRequest) (err error)
RemoveClientIDFromOpenIDConnectProvider(req *RemoveClientIDFromOpenIDConnectProviderRequest) (err error)
RemoveRoleFromInstanceProfile(req *RemoveRoleFromInstanceProfileRequest) (err error)
RemoveUserFromGroup(req *RemoveUserFromGroupRequest) (err error)
ResyncMFADevice(req *ResyncMFADeviceRequest) (err error)
UpdateAccessKey(req *UpdateAccessKeyRequest) (err error)
UpdateAccountPasswordPolicy(req *UpdateAccountPasswordPolicyRequest) (err error)
UpdateAssumeRolePolicy(req *UpdateAssumeRolePolicyRequest) (err error)
UpdateGroup(req *UpdateGroupRequest) (err error)
UpdateLoginProfile(req *UpdateLoginProfileRequest) (err error)
UpdateOpenIDConnectProviderThumbprint(req *UpdateOpenIDConnectProviderThumbprintRequest) (err error)
UpdateSAMLProvider(req *UpdateSAMLProviderRequest) (resp *UpdateSAMLProviderResponse, err error)
UpdateServerCertificate(req *UpdateServerCertificateRequest) (err error)
UpdateSigningCertificate(req *UpdateSigningCertificateRequest) (err error)
UpdateUser(req *UpdateUserRequest) (err error)
UploadServerCertificate(req *UploadServerCertificateRequest) (resp *UploadServerCertificateResponse, err error)
UploadSigningCertificate(req *UploadSigningCertificateRequest) (resp *UploadSigningCertificateResponse, err error)
}
// New returns a new IAM client.
func New(creds aws.CredentialsProvider, region string, client *http.Client) *IAM {
if client == nil {
client = http.DefaultClient
}
endpoint, service, region := endpoints.Lookup("iam", region)
return &IAM{
client: &aws.QueryClient{
Context: aws.Context{
Credentials: creds,
Service: service,
Region: region,
},
Client: client,
Endpoint: endpoint,
APIVersion: "2010-05-08",
},
}
}
// AddClientIDToOpenIDConnectProvider adds a new client ID (also known as
// audience) to the list of client IDs already registered for the specified
// IAM OpenID Connect provider. This action is idempotent; it does not fail
// or return an error if you add an existing client ID to the provider.
func (c *IAM) AddClientIDToOpenIDConnectProvider(req *AddClientIDToOpenIDConnectProviderRequest) (err error) {
// NRE
err = c.client.Do("AddClientIDToOpenIDConnectProvider", "POST", "/", req, nil)
return
}
// AddRoleToInstanceProfile adds the specified role to the specified
// instance profile. For more information about roles, go to Working with
// Roles . For more information about instance profiles, go to About
// Instance Profiles .
func (c *IAM) AddRoleToInstanceProfile(req *AddRoleToInstanceProfileRequest) (err error) {
// NRE
err = c.client.Do("AddRoleToInstanceProfile", "POST", "/", req, nil)
return
}
// AddUserToGroup is undocumented.
func (c *IAM) AddUserToGroup(req *AddUserToGroupRequest) (err error) {
// NRE
err = c.client.Do("AddUserToGroup", "POST", "/", req, nil)
return
}
// ChangePassword changes the password of the IAM user who is calling this
// action. The root account password is not affected by this action. To
// change the password for a different user, see UpdateLoginProfile . For
// more information about modifying passwords, see Managing Passwords in
// the Using guide.
func (c *IAM) ChangePassword(req *ChangePasswordRequest) (err error) {
// NRE
err = c.client.Do("ChangePassword", "POST", "/", req, nil)
return
}
// CreateAccessKey creates a new AWS secret access key and corresponding
// AWS access key ID for the specified user. The default status for new
// keys is Active . If you do not specify a user name, IAM determines the
// user name implicitly based on the AWS access key ID signing the request.
// Because this action works for access keys under the AWS account, you can
// use this action to manage root credentials even if the AWS account has
// no associated users. For information about limits on the number of keys
// you can create, see Limitations on IAM Entities in the Using guide. To
// ensure the security of your AWS account, the secret access key is
// accessible only during key and user creation. You must save the key (for
// example, in a text file) if you want to be able to access it again. If a
// secret key is lost, you can delete the access keys for the associated
// user and then create new keys.
func (c *IAM) CreateAccessKey(req *CreateAccessKeyRequest) (resp *CreateAccessKeyResult, err error) {
resp = &CreateAccessKeyResult{}
err = c.client.Do("CreateAccessKey", "POST", "/", req, resp)
return
}
// CreateAccountAlias creates an alias for your AWS account. For
// information about using an AWS account alias, see Using an Alias for
// Your AWS Account in the Using guide.
func (c *IAM) CreateAccountAlias(req *CreateAccountAliasRequest) (err error) {
// NRE
err = c.client.Do("CreateAccountAlias", "POST", "/", req, nil)
return
}
// CreateGroup creates a new group. For information about the number of
// groups you can create, see Limitations on IAM Entities in the Using
// guide.
func (c *IAM) CreateGroup(req *CreateGroupRequest) (resp *CreateGroupResult, err error) {
resp = &CreateGroupResult{}
err = c.client.Do("CreateGroup", "POST", "/", req, resp)
return
}
// CreateInstanceProfile creates a new instance profile. For information
// about instance profiles, go to About Instance Profiles . For information
// about the number of instance profiles you can create, see Limitations on
// IAM Entities in the Using guide.
func (c *IAM) CreateInstanceProfile(req *CreateInstanceProfileRequest) (resp *CreateInstanceProfileResult, err error) {
resp = &CreateInstanceProfileResult{}
err = c.client.Do("CreateInstanceProfile", "POST", "/", req, resp)
return
}
// CreateLoginProfile creates a password for the specified user, giving the
// user the ability to access AWS services through the AWS Management
// Console. For more information about managing passwords, see Managing
// Passwords in the Using guide.
func (c *IAM) CreateLoginProfile(req *CreateLoginProfileRequest) (resp *CreateLoginProfileResult, err error) {
resp = &CreateLoginProfileResult{}
err = c.client.Do("CreateLoginProfile", "POST", "/", req, resp)
return
}
// CreateOpenIDConnectProvider creates an IAM entity to describe an
// identity provider (IdP) that supports OpenID Connect . The provider that
// you create with this operation can be used as a principal in a role's
// trust policy to establish a trust relationship between AWS and the
// provider. When you create the IAM provider, you specify the URL of the
// identity provider (IdP) to trust, a list of client IDs (also known as
// audiences) that identify the application or applications that are
// allowed to authenticate using the provider, and a list of thumbprints of
// the server certificate(s) that the IdP uses. You get all of this
// information from the IdP that you want to use for access to Because
// trust for the provider is ultimately derived from the IAM provider that
// this action creates, it is a best practice to limit access to the
// CreateOpenIDConnectProvider action to highly-privileged users.
func (c *IAM) CreateOpenIDConnectProvider(req *CreateOpenIDConnectProviderRequest) (resp *CreateOpenIDConnectProviderResult, err error) {
resp = &CreateOpenIDConnectProviderResult{}
err = c.client.Do("CreateOpenIDConnectProvider", "POST", "/", req, resp)
return
}
// CreateRole creates a new role for your AWS account. For more information
// about roles, go to Working with Roles . For information about
// limitations on role names and the number of roles you can create, go to
// Limitations on IAM Entities in the Using guide. The example policy
// grants permission to an EC2 instance to assume the role. The policy is
// URL-encoded according to RFC 3986. For more information about RFC 3986,
// go to http://www.faqs.org/rfcs/rfc3986.html .
func (c *IAM) CreateRole(req *CreateRoleRequest) (resp *CreateRoleResult, err error) {
resp = &CreateRoleResult{}
err = c.client.Do("CreateRole", "POST", "/", req, resp)
return
}
// CreateSAMLProvider creates an IAM entity to describe an identity
// provider (IdP) that supports 2.0. The provider that you create with this
// operation can be used as a principal in a role's trust policy to
// establish a trust relationship between AWS and a identity provider. You
// can create an IAM role that supports Web-based single sign-on to the AWS
// Management Console or one that supports API access to When you create
// the provider, you upload an a metadata document that you get from your
// IdP and that includes the issuer's name, expiration information, and
// keys that can be used to validate the authentication response
// (assertions) that are received from the IdP. You must generate the
// metadata document using the identity management software that is used as
// your organization's IdP. This operation requires Signature Version 4 .
// For more information, see Giving Console Access Using and Creating
// Temporary Security Credentials for Federation in the Using Temporary
// Credentials guide.
func (c *IAM) CreateSAMLProvider(req *CreateSAMLProviderRequest) (resp *CreateSAMLProviderResult, err error) {
resp = &CreateSAMLProviderResult{}
err = c.client.Do("CreateSAMLProvider", "POST", "/", req, resp)
return
}
// CreateUser creates a new user for your AWS account. For information
// about limitations on the number of users you can create, see Limitations
// on IAM Entities in the Using guide.
func (c *IAM) CreateUser(req *CreateUserRequest) (resp *CreateUserResult, err error) {
resp = &CreateUserResult{}
err = c.client.Do("CreateUser", "POST", "/", req, resp)
return
}
// CreateVirtualMFADevice creates a new virtual MFA device for the AWS
// account. After creating the virtual use EnableMFADevice to attach the
// MFA device to an IAM user. For more information about creating and
// working with virtual MFA devices, go to Using a Virtual MFA Device in
// the Using guide. For information about limits on the number of MFA
// devices you can create, see Limitations on Entities in the Using guide.
// The seed information contained in the QR code and the Base32 string
// should be treated like any other secret access information, such as your
// AWS access keys or your passwords. After you provision your virtual
// device, you should ensure that the information is destroyed following
// secure procedures.
func (c *IAM) CreateVirtualMFADevice(req *CreateVirtualMFADeviceRequest) (resp *CreateVirtualMFADeviceResult, err error) {
resp = &CreateVirtualMFADeviceResult{}
err = c.client.Do("CreateVirtualMFADevice", "POST", "/", req, resp)
return
}
// DeactivateMFADevice deactivates the specified MFA device and removes it
// from association with the user name for which it was originally enabled.
// For more information about creating and working with virtual MFA
// devices, go to Using a Virtual MFA Device in the Using guide.
func (c *IAM) DeactivateMFADevice(req *DeactivateMFADeviceRequest) (err error) {
// NRE
err = c.client.Do("DeactivateMFADevice", "POST", "/", req, nil)
return
}
// DeleteAccessKey deletes the access key associated with the specified
// user. If you do not specify a user name, IAM determines the user name
// implicitly based on the AWS access key ID signing the request. Because
// this action works for access keys under the AWS account, you can use
// this action to manage root credentials even if the AWS account has no
// associated users.
func (c *IAM) DeleteAccessKey(req *DeleteAccessKeyRequest) (err error) {
// NRE
err = c.client.Do("DeleteAccessKey", "POST", "/", req, nil)
return
}
// DeleteAccountAlias deletes the specified AWS account alias. For
// information about using an AWS account alias, see Using an Alias for
// Your AWS Account in the Using guide.
func (c *IAM) DeleteAccountAlias(req *DeleteAccountAliasRequest) (err error) {
// NRE
err = c.client.Do("DeleteAccountAlias", "POST", "/", req, nil)
return
}
// DeleteAccountPasswordPolicy is undocumented.
func (c *IAM) DeleteAccountPasswordPolicy() (err error) {
// NRE
err = c.client.Do("DeleteAccountPasswordPolicy", "POST", "/", nil, nil)
return
}
// DeleteGroup deletes the specified group. The group must not contain any
// users or have any attached policies.
func (c *IAM) DeleteGroup(req *DeleteGroupRequest) (err error) {
// NRE
err = c.client.Do("DeleteGroup", "POST", "/", req, nil)
return
}
// DeleteGroupPolicy deletes the specified policy that is associated with
// the specified group.
func (c *IAM) DeleteGroupPolicy(req *DeleteGroupPolicyRequest) (err error) {
// NRE
err = c.client.Do("DeleteGroupPolicy", "POST", "/", req, nil)
return
}
// DeleteInstanceProfile deletes the specified instance profile. The
// instance profile must not have an associated role. Make sure you do not
// have any Amazon EC2 instances running with the instance profile you are
// about to delete. Deleting a role or instance profile that is associated
// with a running instance will break any applications running on the
// instance. For more information about instance profiles, go to About
// Instance Profiles .
func (c *IAM) DeleteInstanceProfile(req *DeleteInstanceProfileRequest) (err error) {
// NRE
err = c.client.Do("DeleteInstanceProfile", "POST", "/", req, nil)
return
}
// DeleteLoginProfile deletes the password for the specified user, which
// terminates the user's ability to access AWS services through the AWS
// Management Console. Deleting a user's password does not prevent a user
// from accessing IAM through the command line interface or the To prevent
// all user access you must also either make the access key inactive or
// delete it. For more information about making keys inactive or deleting
// them, see UpdateAccessKey and DeleteAccessKey .
func (c *IAM) DeleteLoginProfile(req *DeleteLoginProfileRequest) (err error) {
// NRE
err = c.client.Do("DeleteLoginProfile", "POST", "/", req, nil)
return
}
// DeleteOpenIDConnectProvider deletes an IAM OpenID Connect identity
// provider. Deleting an provider does not update any roles that reference
// the provider as a principal in their trust policies. Any attempt to
// assume a role that references a provider that has been deleted will
// fail. This action is idempotent; it does not fail or return an error if
// you call the action for a provider that was already deleted.
func (c *IAM) DeleteOpenIDConnectProvider(req *DeleteOpenIDConnectProviderRequest) (err error) {
// NRE
err = c.client.Do("DeleteOpenIDConnectProvider", "POST", "/", req, nil)
return
}
// DeleteRole deletes the specified role. The role must not have any
// policies attached. For more information about roles, go to Working with
// Roles . Make sure you do not have any Amazon EC2 instances running with
// the role you are about to delete. Deleting a role or instance profile
// that is associated with a running instance will break any applications
// running on the instance.
func (c *IAM) DeleteRole(req *DeleteRoleRequest) (err error) {
// NRE
err = c.client.Do("DeleteRole", "POST", "/", req, nil)
return
}
// DeleteRolePolicy deletes the specified policy associated with the
// specified role.
func (c *IAM) DeleteRolePolicy(req *DeleteRolePolicyRequest) (err error) {
// NRE
err = c.client.Do("DeleteRolePolicy", "POST", "/", req, nil)
return
}
// DeleteSAMLProvider deletes a provider. Deleting the provider does not
// update any roles that reference the provider as a principal in their
// trust policies. Any attempt to assume a role that references a provider
// that has been deleted will fail. This operation requires Signature
// Version 4 .
func (c *IAM) DeleteSAMLProvider(req *DeleteSAMLProviderRequest) (err error) {
// NRE
err = c.client.Do("DeleteSAMLProvider", "POST", "/", req, nil)
return
}
// DeleteServerCertificate deletes the specified server certificate. If you
// are using a server certificate with Elastic Load Balancing, deleting the
// certificate could have implications for your application. If Elastic
// Load Balancing doesn't detect the deletion of bound certificates, it may
// continue to use the certificates. This could cause Elastic Load
// Balancing to stop accepting traffic. We recommend that you remove the
// reference to the certificate from Elastic Load Balancing before using
// this command to delete the certificate. For more information, go to
// DeleteLoadBalancerListeners in the Elastic Load Balancing API Reference
// .
func (c *IAM) DeleteServerCertificate(req *DeleteServerCertificateRequest) (err error) {
// NRE
err = c.client.Do("DeleteServerCertificate", "POST", "/", req, nil)
return
}
// DeleteSigningCertificate deletes the specified signing certificate
// associated with the specified user. If you do not specify a user name,
// IAM determines the user name implicitly based on the AWS access key ID
// signing the request. Because this action works for access keys under the
// AWS account, you can use this action to manage root credentials even if
// the AWS account has no associated users.
func (c *IAM) DeleteSigningCertificate(req *DeleteSigningCertificateRequest) (err error) {
// NRE
err = c.client.Do("DeleteSigningCertificate", "POST", "/", req, nil)
return
}
// DeleteUser deletes the specified user. The user must not belong to any
// groups, have any keys or signing certificates, or have any attached
// policies.
func (c *IAM) DeleteUser(req *DeleteUserRequest) (err error) {
// NRE
err = c.client.Do("DeleteUser", "POST", "/", req, nil)
return
}
// DeleteUserPolicy deletes the specified policy associated with the
// specified user.
func (c *IAM) DeleteUserPolicy(req *DeleteUserPolicyRequest) (err error) {
// NRE
err = c.client.Do("DeleteUserPolicy", "POST", "/", req, nil)
return
}
// DeleteVirtualMFADevice deletes a virtual MFA device. You must deactivate
// a user's virtual MFA device before you can delete it. For information
// about deactivating MFA devices, see DeactivateMFADevice .
func (c *IAM) DeleteVirtualMFADevice(req *DeleteVirtualMFADeviceRequest) (err error) {
// NRE
err = c.client.Do("DeleteVirtualMFADevice", "POST", "/", req, nil)
return
}
// EnableMFADevice enables the specified MFA device and associates it with
// the specified user name. When enabled, the MFA device is required for
// every subsequent login by the user name associated with the device.
func (c *IAM) EnableMFADevice(req *EnableMFADeviceRequest) (err error) {
// NRE
err = c.client.Do("EnableMFADevice", "POST", "/", req, nil)
return
}
// GenerateCredentialReport generates a credential report for the AWS
// account. For more information about the credential report, see Getting
// Credential Reports in the Using guide.
func (c *IAM) GenerateCredentialReport() (resp *GenerateCredentialReportResult, err error) {
resp = &GenerateCredentialReportResult{}
err = c.client.Do("GenerateCredentialReport", "POST", "/", nil, resp)
return
}
// GetAccountAuthorizationDetails retrieves information about all IAM
// users, groups, and roles in your account, including their relationships
// to one another and their attached policies. Use this API to obtain a
// snapshot of the configuration of IAM permissions (users, groups, roles,
// and policies) in your account. You can optionally filter the results
// using the Filter parameter. You can paginate the results using the
// MaxItems and Marker parameters.
func (c *IAM) GetAccountAuthorizationDetails(req *GetAccountAuthorizationDetailsRequest) (resp *GetAccountAuthorizationDetailsResult, err error) {
resp = &GetAccountAuthorizationDetailsResult{}
err = c.client.Do("GetAccountAuthorizationDetails", "POST", "/", req, resp)
return
}
// GetAccountPasswordPolicy retrieves the password policy for the AWS
// account. For more information about using a password policy, go to
// Managing an IAM Password Policy .
func (c *IAM) GetAccountPasswordPolicy() (resp *GetAccountPasswordPolicyResult, err error) {
resp = &GetAccountPasswordPolicyResult{}
err = c.client.Do("GetAccountPasswordPolicy", "POST", "/", nil, resp)
return
}
// GetAccountSummary retrieves account level information about account
// entity usage and IAM quotas. For information about limitations on IAM
// entities, see Limitations on IAM Entities in the Using guide.
func (c *IAM) GetAccountSummary() (resp *GetAccountSummaryResult, err error) {
resp = &GetAccountSummaryResult{}
err = c.client.Do("GetAccountSummary", "POST", "/", nil, resp)
return
}
// GetCredentialReport retrieves a credential report for the AWS account.
// For more information about the credential report, see Getting Credential
// Reports in the Using guide.
func (c *IAM) GetCredentialReport() (resp *GetCredentialReportResult, err error) {
resp = &GetCredentialReportResult{}
err = c.client.Do("GetCredentialReport", "POST", "/", nil, resp)
return
}
// GetGroup returns a list of users that are in the specified group. You
// can paginate the results using the MaxItems and Marker parameters.
func (c *IAM) GetGroup(req *GetGroupRequest) (resp *GetGroupResult, err error) {
resp = &GetGroupResult{}
err = c.client.Do("GetGroup", "POST", "/", req, resp)
return
}
// GetGroupPolicy retrieves the specified policy document for the specified
// group. The returned policy is URL-encoded according to RFC 3986. For
// more information about RFC 3986, go to
// http://www.faqs.org/rfcs/rfc3986.html .
func (c *IAM) GetGroupPolicy(req *GetGroupPolicyRequest) (resp *GetGroupPolicyResult, err error) {
resp = &GetGroupPolicyResult{}
err = c.client.Do("GetGroupPolicy", "POST", "/", req, resp)
return
}
// GetInstanceProfile retrieves information about the specified instance
// profile, including the instance profile's path, and role. For more
// information about instance profiles, go to About Instance Profiles . For
// more information about ARNs, go to ARNs .
func (c *IAM) GetInstanceProfile(req *GetInstanceProfileRequest) (resp *GetInstanceProfileResult, err error) {
resp = &GetInstanceProfileResult{}
err = c.client.Do("GetInstanceProfile", "POST", "/", req, resp)
return
}
// GetLoginProfile retrieves the user name and password-creation date for
// the specified user. If the user has not been assigned a password, the
// action returns a 404 NoSuchEntity ) error.
func (c *IAM) GetLoginProfile(req *GetLoginProfileRequest) (resp *GetLoginProfileResult, err error) {
resp = &GetLoginProfileResult{}
err = c.client.Do("GetLoginProfile", "POST", "/", req, resp)
return
}
// GetOpenIDConnectProvider returns information about the specified OpenID
// Connect provider.
func (c *IAM) GetOpenIDConnectProvider(req *GetOpenIDConnectProviderRequest) (resp *GetOpenIDConnectProviderResult, err error) {
resp = &GetOpenIDConnectProviderResult{}
err = c.client.Do("GetOpenIDConnectProvider", "POST", "/", req, resp)
return
}
// GetRole retrieves information about the specified role, including the
// role's path, and the policy granting permission to assume the role. For
// more information about ARNs, go to ARNs . For more information about
// roles, go to Working with Roles . The returned policy is URL-encoded
// according to RFC 3986. For more information about RFC 3986, go to
// http://www.faqs.org/rfcs/rfc3986.html .
func (c *IAM) GetRole(req *GetRoleRequest) (resp *GetRoleResult, err error) {
resp = &GetRoleResult{}
err = c.client.Do("GetRole", "POST", "/", req, resp)
return
}
// GetRolePolicy retrieves the specified policy document for the specified
// role. For more information about roles, go to Working with Roles . The
// returned policy is URL-encoded according to RFC 3986. For more
// information about RFC 3986, go to http://www.faqs.org/rfcs/rfc3986.html
// .
func (c *IAM) GetRolePolicy(req *GetRolePolicyRequest) (resp *GetRolePolicyResult, err error) {
resp = &GetRolePolicyResult{}
err = c.client.Do("GetRolePolicy", "POST", "/", req, resp)
return
}
// GetSAMLProvider returns the provider metadocument that was uploaded when
// the provider was created or updated. This operation requires Signature
// Version 4 .
func (c *IAM) GetSAMLProvider(req *GetSAMLProviderRequest) (resp *GetSAMLProviderResult, err error) {
resp = &GetSAMLProviderResult{}
err = c.client.Do("GetSAMLProvider", "POST", "/", req, resp)
return
}
// GetServerCertificate retrieves information about the specified server
// certificate.
func (c *IAM) GetServerCertificate(req *GetServerCertificateRequest) (resp *GetServerCertificateResult, err error) {
resp = &GetServerCertificateResult{}
err = c.client.Do("GetServerCertificate", "POST", "/", req, resp)
return
}
// GetUser retrieves information about the specified user, including the
// user's creation date, path, unique ID, and If you do not specify a user
// name, IAM determines the user name implicitly based on the AWS access
// key ID used to sign the request.
func (c *IAM) GetUser(req *GetUserRequest) (resp *GetUserResult, err error) {
resp = &GetUserResult{}
err = c.client.Do("GetUser", "POST", "/", req, resp)
return
}
// GetUserPolicy retrieves the specified policy document for the specified
// user. The returned policy is URL-encoded according to RFC 3986. For more
// information about RFC 3986, go to http://www.faqs.org/rfcs/rfc3986.html
// .
func (c *IAM) GetUserPolicy(req *GetUserPolicyRequest) (resp *GetUserPolicyResult, err error) {
resp = &GetUserPolicyResult{}
err = c.client.Do("GetUserPolicy", "POST", "/", req, resp)
return
}
// ListAccessKeys returns information about the access key IDs associated
// with the specified user. If there are none, the action returns an empty
// list. Although each user is limited to a small number of keys, you can
// still paginate the results using the MaxItems and Marker parameters. If
// the UserName field is not specified, the UserName is determined
// implicitly based on the AWS access key ID used to sign the request.
// Because this action works for access keys under the AWS account, you can
// use this action to manage root credentials even if the AWS account has
// no associated users. To ensure the security of your AWS account, the
// secret access key is accessible only during key and user creation.
func (c *IAM) ListAccessKeys(req *ListAccessKeysRequest) (resp *ListAccessKeysResult, err error) {
resp = &ListAccessKeysResult{}
err = c.client.Do("ListAccessKeys", "POST", "/", req, resp)
return
}
// ListAccountAliases lists the account aliases associated with the
// account. For information about using an AWS account alias, see Using an
// Alias for Your AWS Account in the Using guide. You can paginate the
// results using the MaxItems and Marker parameters.
func (c *IAM) ListAccountAliases(req *ListAccountAliasesRequest) (resp *ListAccountAliasesResult, err error) {
resp = &ListAccountAliasesResult{}
err = c.client.Do("ListAccountAliases", "POST", "/", req, resp)
return
}
// ListGroupPolicies lists the names of the policies associated with the
// specified group. If there are none, the action returns an empty list.
// You can paginate the results using the MaxItems and Marker parameters.
func (c *IAM) ListGroupPolicies(req *ListGroupPoliciesRequest) (resp *ListGroupPoliciesResult, err error) {
resp = &ListGroupPoliciesResult{}
err = c.client.Do("ListGroupPolicies", "POST", "/", req, resp)
return
}
// ListGroups lists the groups that have the specified path prefix. You can
// paginate the results using the MaxItems and Marker parameters.
func (c *IAM) ListGroups(req *ListGroupsRequest) (resp *ListGroupsResult, err error) {
resp = &ListGroupsResult{}
err = c.client.Do("ListGroups", "POST", "/", req, resp)
return
}
// ListGroupsForUser lists the groups the specified user belongs to. You
// can paginate the results using the MaxItems and Marker parameters.
func (c *IAM) ListGroupsForUser(req *ListGroupsForUserRequest) (resp *ListGroupsForUserResult, err error) {
resp = &ListGroupsForUserResult{}
err = c.client.Do("ListGroupsForUser", "POST", "/", req, resp)
return
}
// ListInstanceProfiles lists the instance profiles that have the specified
// path prefix. If there are none, the action returns an empty list. For
// more information about instance profiles, go to About Instance Profiles
// . You can paginate the results using the MaxItems and Marker parameters.
func (c *IAM) ListInstanceProfiles(req *ListInstanceProfilesRequest) (resp *ListInstanceProfilesResult, err error) {
resp = &ListInstanceProfilesResult{}
err = c.client.Do("ListInstanceProfiles", "POST", "/", req, resp)
return
}
// ListInstanceProfilesForRole lists the instance profiles that have the
// specified associated role. If there are none, the action returns an
// empty list. For more information about instance profiles, go to About
// Instance Profiles . You can paginate the results using the MaxItems and
// Marker parameters.
func (c *IAM) ListInstanceProfilesForRole(req *ListInstanceProfilesForRoleRequest) (resp *ListInstanceProfilesForRoleResult, err error) {
resp = &ListInstanceProfilesForRoleResult{}
err = c.client.Do("ListInstanceProfilesForRole", "POST", "/", req, resp)
return
}
// ListMFADevices lists the MFA devices. If the request includes the user
// name, then this action lists all the MFA devices associated with the
// specified user name. If you do not specify a user name, IAM determines
// the user name implicitly based on the AWS access key ID signing the
// request. You can paginate the results using the MaxItems and Marker
// parameters.
func (c *IAM) ListMFADevices(req *ListMFADevicesRequest) (resp *ListMFADevicesResult, err error) {
resp = &ListMFADevicesResult{}
err = c.client.Do("ListMFADevices", "POST", "/", req, resp)
return
}
// ListOpenIDConnectProviders lists information about the OpenID Connect
// providers in the AWS account.
func (c *IAM) ListOpenIDConnectProviders(req *ListOpenIDConnectProvidersRequest) (resp *ListOpenIDConnectProvidersResult, err error) {
resp = &ListOpenIDConnectProvidersResult{}
err = c.client.Do("ListOpenIDConnectProviders", "POST", "/", req, resp)
return
}
// ListRolePolicies lists the names of the policies associated with the
// specified role. If there are none, the action returns an empty list. You
// can paginate the results using the MaxItems and Marker parameters.
func (c *IAM) ListRolePolicies(req *ListRolePoliciesRequest) (resp *ListRolePoliciesResult, err error) {
resp = &ListRolePoliciesResult{}
err = c.client.Do("ListRolePolicies", "POST", "/", req, resp)
return
}
// ListRoles lists the roles that have the specified path prefix. If there
// are none, the action returns an empty list. For more information about
// roles, go to Working with Roles . You can paginate the results using the
// MaxItems and Marker parameters. The returned policy is URL-encoded
// according to RFC 3986. For more information about RFC 3986, go to
// http://www.faqs.org/rfcs/rfc3986.html .
func (c *IAM) ListRoles(req *ListRolesRequest) (resp *ListRolesResult, err error) {
resp = &ListRolesResult{}
err = c.client.Do("ListRoles", "POST", "/", req, resp)
return
}
// ListSAMLProviders is undocumented.
func (c *IAM) ListSAMLProviders(req *ListSAMLProvidersRequest) (resp *ListSAMLProvidersResult, err error) {
resp = &ListSAMLProvidersResult{}
err = c.client.Do("ListSAMLProviders", "POST", "/", req, resp)
return
}
// ListServerCertificates lists the server certificates that have the
// specified path prefix. If none exist, the action returns an empty list.
// You can paginate the results using the MaxItems and Marker parameters.
func (c *IAM) ListServerCertificates(req *ListServerCertificatesRequest) (resp *ListServerCertificatesResult, err error) {
resp = &ListServerCertificatesResult{}
err = c.client.Do("ListServerCertificates", "POST", "/", req, resp)
return
}
// ListSigningCertificates returns information about the signing
// certificates associated with the specified user. If there are none, the
// action returns an empty list. Although each user is limited to a small
// number of signing certificates, you can still paginate the results using
// the MaxItems and Marker parameters. If the UserName field is not
// specified, the user name is determined implicitly based on the AWS
// access key ID used to sign the request. Because this action works for
// access keys under the AWS account, you can use this action to manage
// root credentials even if the AWS account has no associated users.
func (c *IAM) ListSigningCertificates(req *ListSigningCertificatesRequest) (resp *ListSigningCertificatesResult, err error) {
resp = &ListSigningCertificatesResult{}
err = c.client.Do("ListSigningCertificates", "POST", "/", req, resp)
return
}
// ListUserPolicies lists the names of the policies associated with the
// specified user. If there are none, the action returns an empty list. You
// can paginate the results using the MaxItems and Marker parameters.
func (c *IAM) ListUserPolicies(req *ListUserPoliciesRequest) (resp *ListUserPoliciesResult, err error) {
resp = &ListUserPoliciesResult{}
err = c.client.Do("ListUserPolicies", "POST", "/", req, resp)
return
}
// ListUsers lists the IAM users that have the specified path prefix. If no
// path prefix is specified, the action returns all users in the AWS
// account. If there are none, the action returns an empty list. You can
// paginate the results using the MaxItems and Marker parameters.
func (c *IAM) ListUsers(req *ListUsersRequest) (resp *ListUsersResult, err error) {
resp = &ListUsersResult{}
err = c.client.Do("ListUsers", "POST", "/", req, resp)
return
}
// ListVirtualMFADevices lists the virtual MFA devices under the AWS
// account by assignment status. If you do not specify an assignment
// status, the action returns a list of all virtual MFA devices. Assignment
// status can be Assigned , Unassigned , or Any . You can paginate the
// results using the MaxItems and Marker parameters.
func (c *IAM) ListVirtualMFADevices(req *ListVirtualMFADevicesRequest) (resp *ListVirtualMFADevicesResult, err error) {
resp = &ListVirtualMFADevicesResult{}
err = c.client.Do("ListVirtualMFADevices", "POST", "/", req, resp)
return
}
// PutGroupPolicy adds (or updates) a policy document associated with the
// specified group. For information about policies, refer to Overview of
// Policies in the Using guide. For information about limits on the number
// of policies you can associate with a group, see Limitations on IAM
// Entities in the Using guide. Because policy documents can be large, you
// should use rather than GET when calling PutGroupPolicy . For information
// about setting up signatures and authorization through the go to Signing
// AWS API Requests in the AWS General Reference . For general information
// about using the Query API with go to Making Query Requests in the Using
// guide.
func (c *IAM) PutGroupPolicy(req *PutGroupPolicyRequest) (err error) {
// NRE
err = c.client.Do("PutGroupPolicy", "POST", "/", req, nil)
return
}
// PutRolePolicy adds (or updates) a policy document associated with the
// specified role. For information about policies, go to Overview of
// Policies in the Using guide. For information about limits on the
// policies you can associate with a role, see Limitations on IAM Entities
// in the Using guide. Because policy documents can be large, you should
// use rather than GET when calling PutRolePolicy . For information about
// setting up signatures and authorization through the go to Signing AWS
// API Requests in the AWS General Reference . For general information
// about using the Query API with go to Making Query Requests in the Using
// guide.
func (c *IAM) PutRolePolicy(req *PutRolePolicyRequest) (err error) {
// NRE
err = c.client.Do("PutRolePolicy", "POST", "/", req, nil)
return
}
// PutUserPolicy adds (or updates) a policy document associated with the
// specified user. For information about policies, refer to Overview of
// Policies in the Using guide. For information about limits on the number
// of policies you can associate with a user, see Limitations on IAM
// Entities in the Using guide. Because policy documents can be large, you
// should use rather than GET when calling PutUserPolicy . For information
// about setting up signatures and authorization through the go to Signing
// AWS API Requests in the AWS General Reference . For general information
// about using the Query API with go to Making Query Requests in the Using
// guide.
func (c *IAM) PutUserPolicy(req *PutUserPolicyRequest) (err error) {
// NRE
err = c.client.Do("PutUserPolicy", "POST", "/", req, nil)
return
}
// RemoveClientIDFromOpenIDConnectProvider removes the specified client ID
// (also known as audience) from the list of client IDs registered for the
// specified IAM OpenID Connect provider. This action is idempotent; it
// does not fail or return an error if you try to remove a client ID that
// was removed previously.
func (c *IAM) RemoveClientIDFromOpenIDConnectProvider(req *RemoveClientIDFromOpenIDConnectProviderRequest) (err error) {
// NRE
err = c.client.Do("RemoveClientIDFromOpenIDConnectProvider", "POST", "/", req, nil)
return
}
// RemoveRoleFromInstanceProfile removes the specified role from the
// specified instance profile. Make sure you do not have any Amazon EC2
// instances running with the role you are about to remove from the
// instance profile. Removing a role from an instance profile that is
// associated with a running instance will break any applications running
// on the instance. For more information about roles, go to Working with
// Roles . For more information about instance profiles, go to About
// Instance Profiles .
func (c *IAM) RemoveRoleFromInstanceProfile(req *RemoveRoleFromInstanceProfileRequest) (err error) {
// NRE
err = c.client.Do("RemoveRoleFromInstanceProfile", "POST", "/", req, nil)
return
}
// RemoveUserFromGroup removes the specified user from the specified group.
func (c *IAM) RemoveUserFromGroup(req *RemoveUserFromGroupRequest) (err error) {
// NRE
err = c.client.Do("RemoveUserFromGroup", "POST", "/", req, nil)
return
}
// ResyncMFADevice synchronizes the specified MFA device with AWS servers.
// For more information about creating and working with virtual MFA
// devices, go to Using a Virtual MFA Device in the Using guide.
func (c *IAM) ResyncMFADevice(req *ResyncMFADeviceRequest) (err error) {
// NRE
err = c.client.Do("ResyncMFADevice", "POST", "/", req, nil)
return
}
// UpdateAccessKey changes the status of the specified access key from
// Active to Inactive, or vice versa. This action can be used to disable a
// user's key as part of a key rotation work flow. If the UserName field is
// not specified, the UserName is determined implicitly based on the AWS
// access key ID used to sign the request. Because this action works for
// access keys under the AWS account, you can use this action to manage
// root credentials even if the AWS account has no associated users. For
// information about rotating keys, see Managing Keys and Certificates in
// the Using guide.
func (c *IAM) UpdateAccessKey(req *UpdateAccessKeyRequest) (err error) {
// NRE
err = c.client.Do("UpdateAccessKey", "POST", "/", req, nil)
return
}
// UpdateAccountPasswordPolicy updates the password policy settings for the
// AWS account. This action does not support partial updates. No parameters
// are required, but if you do not specify a parameter, that parameter's
// value reverts to its default value. See the Request Parameters section
// for each parameter's default value. For more information about using a
// password policy, see Managing an IAM Password Policy in the Using guide.
func (c *IAM) UpdateAccountPasswordPolicy(req *UpdateAccountPasswordPolicyRequest) (err error) {
// NRE
err = c.client.Do("UpdateAccountPasswordPolicy", "POST", "/", req, nil)
return
}
// UpdateAssumeRolePolicy updates the policy that grants an entity
// permission to assume a role. For more information about roles, go to
// Working with Roles .
func (c *IAM) UpdateAssumeRolePolicy(req *UpdateAssumeRolePolicyRequest) (err error) {
// NRE
err = c.client.Do("UpdateAssumeRolePolicy", "POST", "/", req, nil)
return
}
// UpdateGroup updates the name and/or the path of the specified group. You
// should understand the implications of changing a group's path or name.
// For more information, see Renaming Users and Groups in the Using guide.
// To change a group name the requester must have appropriate permissions
// on both the source object and the target object. For example, to change
// Managers to MGRs, the entity making the request must have permission on
// Managers and MGRs, or must have permission on all For more information
// about permissions, see Permissions and Policies .
func (c *IAM) UpdateGroup(req *UpdateGroupRequest) (err error) {
// NRE
err = c.client.Do("UpdateGroup", "POST", "/", req, nil)
return
}
// UpdateLoginProfile changes the password for the specified user. Users
// can change their own passwords by calling ChangePassword . For more
// information about modifying passwords, see Managing Passwords in the
// Using guide.
func (c *IAM) UpdateLoginProfile(req *UpdateLoginProfileRequest) (err error) {
// NRE
err = c.client.Do("UpdateLoginProfile", "POST", "/", req, nil)
return
}
// UpdateOpenIDConnectProviderThumbprint replaces the existing list of
// server certificate thumbprints with a new list. The list that you pass
// with this action completely replaces the existing list of thumbprints.
// (The lists are not merged.) Typically, you need to update a thumbprint
// only when the identity provider's certificate changes, which occurs
// rarely. However, if the provider's certificate does change, any attempt
// to assume an IAM role that specifies the IAM provider as a principal
// will fail until the certificate thumbprint is updated. Because trust for
// the OpenID Connect provider is ultimately derived from the provider's
// certificate and is validated by the thumbprint, it is a best practice to
// limit access to the UpdateOpenIDConnectProviderThumbprint action to
// highly-privileged users.
func (c *IAM) UpdateOpenIDConnectProviderThumbprint(req *UpdateOpenIDConnectProviderThumbprintRequest) (err error) {
// NRE
err = c.client.Do("UpdateOpenIDConnectProviderThumbprint", "POST", "/", req, nil)
return
}
// UpdateSAMLProvider updates the metadata document for an existing
// provider. This operation requires Signature Version 4 .
func (c *IAM) UpdateSAMLProvider(req *UpdateSAMLProviderRequest) (resp *UpdateSAMLProviderResult, err error) {
resp = &UpdateSAMLProviderResult{}
err = c.client.Do("UpdateSAMLProvider", "POST", "/", req, resp)
return
}
// UpdateServerCertificate updates the name and/or the path of the
// specified server certificate. You should understand the implications of
// changing a server certificate's path or name. For more information, see
// Managing Server Certificates in the Using guide. To change a server
// certificate name the requester must have appropriate permissions on both