Skip to content

Commit bd8d5bf

Browse files
author
awstools
committed
feat(client-iam): For CreateOpenIDConnectProvider API, the ThumbprintList parameter is no longer required.
1 parent 6af775f commit bd8d5bf

File tree

10 files changed

+147
-64
lines changed

10 files changed

+147
-64
lines changed

clients/client-iam/src/commands/CreateInstanceProfileCommand.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ export interface CreateInstanceProfileCommandOutput extends CreateInstanceProfil
2929
/**
3030
* <p> Creates a new instance profile. For information about instance profiles, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html">Using
3131
* roles for applications on Amazon EC2</a> in the
32-
* <i>IAM User Guide</i>, and <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html#ec2-instance-profile">Instance profiles</a> in the <i>Amazon EC2 User Guide</i>.</p>
32+
* <i>IAM User Guide</i>, and <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html#ec2-instance-profile">Instance profiles</a> in the <i>Amazon EC2 User Guide</i>.</p>
3333
* <p> For information about the number of instance profiles you can create, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html">IAM object
3434
* quotas</a> in the <i>IAM User Guide</i>.</p>
3535
* @example

clients/client-iam/src/commands/CreateOpenIDConnectProviderCommand.ts

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -60,11 +60,11 @@ export interface CreateOpenIDConnectProviderCommandOutput
6060
* Amazon Web Services.</p>
6161
* <note>
6262
* <p>Amazon Web Services secures communication with some OIDC identity providers (IdPs) through our library
63-
* of trusted root certificate authorities (CAs) instead of using a certificate thumbprint to
64-
* verify your IdP server certificate. In these cases, your legacy thumbprint remains in your
65-
* configuration, but is no longer used for validation. These OIDC IdPs include Auth0, GitHub,
66-
* GitLab, Google, and those that use an Amazon S3 bucket to host a JSON Web Key Set (JWKS)
67-
* endpoint.</p>
63+
* of trusted root certificate authorities (CAs) instead of using a certificate thumbprint to
64+
* verify your IdP server certificate. In these cases, your legacy thumbprint remains in your
65+
* configuration, but is no longer used for validation. These OIDC IdPs include Auth0, GitHub,
66+
* GitLab, Google, and those that use an Amazon S3 bucket to host a JSON Web Key Set (JWKS)
67+
* endpoint.</p>
6868
* </note>
6969
* <note>
7070
* <p>The trust for the OIDC provider is derived from the IAM provider that this
@@ -82,7 +82,7 @@ export interface CreateOpenIDConnectProviderCommandOutput
8282
* ClientIDList: [ // clientIDListType
8383
* "STRING_VALUE",
8484
* ],
85-
* ThumbprintList: [ // thumbprintListType // required
85+
* ThumbprintList: [ // thumbprintListType
8686
* "STRING_VALUE",
8787
* ],
8888
* Tags: [ // tagListType
@@ -128,6 +128,9 @@ export interface CreateOpenIDConnectProviderCommandOutput
128128
* <p>The request was rejected because it attempted to create resources beyond the current
129129
* Amazon Web Services account limits. The error message describes the limit exceeded.</p>
130130
*
131+
* @throws {@link OpenIdIdpCommunicationErrorException} (client fault)
132+
* <p>The request failed because IAM cannot connect to the OpenID Connect identity provider URL.</p>
133+
*
131134
* @throws {@link ServiceFailureException} (server fault)
132135
* <p>The request processing has failed because of an unknown error, exception or
133136
* failure.</p>

clients/client-iam/src/commands/DeleteRoleCommand.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,8 @@ export interface DeleteRoleCommandOutput extends __MetadataBearer {}
4747
* </li>
4848
* </ul>
4949
* <important>
50-
* <p>Make sure that you do not have any Amazon EC2 instances running with the role you
51-
* are about to delete. Deleting a role or instance profile that is associated with a
50+
* <p>Make sure that you do not have any Amazon EC2 instances running with the role you are
51+
* about to delete. Deleting a role or instance profile that is associated with a
5252
* running instance will break any applications running on the instance.</p>
5353
* </important>
5454
* @example

clients/client-iam/src/commands/RemoveRoleFromInstanceProfileCommand.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,12 @@ export interface RemoveRoleFromInstanceProfileCommandInput extends RemoveRoleFro
3030
export interface RemoveRoleFromInstanceProfileCommandOutput extends __MetadataBearer {}
3131

3232
/**
33-
* <p>Removes the specified IAM role from the specified EC2 instance profile.</p>
33+
* <p>Removes the specified IAM role from the specified Amazon EC2 instance profile.</p>
3434
* <important>
35-
* <p>Make sure that you do not have any Amazon EC2 instances running with the role you
36-
* are about to remove from the instance profile. Removing a role from an instance
37-
* profile that is associated with a running instance might break any applications
38-
* running on the instance.</p>
35+
* <p>Make sure that you do not have any Amazon EC2 instances running with the role you are
36+
* about to remove from the instance profile. Removing a role from an instance profile
37+
* that is associated with a running instance might break any applications running on
38+
* the instance.</p>
3939
* </important>
4040
* <p> For more information about roles, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html">IAM roles</a> in the
4141
* <i>IAM User Guide</i>. For more information about instance profiles,

clients/client-iam/src/commands/UntagInstanceProfileCommand.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { MetadataBearer as __MetadataBearer } from "@smithy/types";
66

77
import { commonParams } from "../endpoint/EndpointParameters";
88
import { IAMClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../IAMClient";
9-
import { UntagInstanceProfileRequest } from "../models/models_0";
9+
import { UntagInstanceProfileRequest } from "../models/models_1";
1010
import { de_UntagInstanceProfileCommand, se_UntagInstanceProfileCommand } from "../protocols/Aws_query";
1111

1212
/**

clients/client-iam/src/commands/UpdateOpenIDConnectProviderThumbprintCommand.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,11 @@ export interface UpdateOpenIDConnectProviderThumbprintCommandOutput extends __Me
4242
* updated.</p>
4343
* <note>
4444
* <p>Amazon Web Services secures communication with some OIDC identity providers (IdPs) through our library
45-
* of trusted root certificate authorities (CAs) instead of using a certificate thumbprint to
46-
* verify your IdP server certificate. In these cases, your legacy thumbprint remains in your
47-
* configuration, but is no longer used for validation. These OIDC IdPs include Auth0, GitHub,
48-
* GitLab, Google, and those that use an Amazon S3 bucket to host a JSON Web Key Set (JWKS)
49-
* endpoint.</p>
45+
* of trusted root certificate authorities (CAs) instead of using a certificate thumbprint to
46+
* verify your IdP server certificate. In these cases, your legacy thumbprint remains in your
47+
* configuration, but is no longer used for validation. These OIDC IdPs include Auth0, GitHub,
48+
* GitLab, Google, and those that use an Amazon S3 bucket to host a JSON Web Key Set (JWKS)
49+
* endpoint.</p>
5050
* </note>
5151
* <note>
5252
* <p>Trust for the OIDC provider is derived from the provider certificate and is

clients/client-iam/src/models/models_0.ts

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1220,11 +1220,13 @@ export interface CreateOpenIDConnectProviderRequest {
12201220
* provider's server certificates. Typically this list includes only one entry. However,
12211221
* IAM lets you have up to five thumbprints for an OIDC provider. This lets you maintain
12221222
* multiple thumbprints if the identity provider is rotating certificates.</p>
1223+
* <p>This parameter is optional. If it is not included, IAM will retrieve and use the top
1224+
* intermediate certificate authority (CA) thumbprint of the OpenID Connect identity
1225+
* provider server certificate.</p>
12231226
* <p>The server certificate thumbprint is the hex-encoded SHA-1 hash value of the X.509
12241227
* certificate used by the domain where the OpenID Connect provider makes its keys
12251228
* available. It is always a 40-character string.</p>
1226-
* <p>You must provide at least one thumbprint when creating an IAM OIDC provider. For
1227-
* example, assume that the OIDC provider is <code>server.example.com</code> and the
1229+
* <p>For example, assume that the OIDC provider is <code>server.example.com</code> and the
12281230
* provider stores its keys at https://keys.server.example.com/openid-connect. In that
12291231
* case, the thumbprint string would be the hex-encoded SHA-1 hash value of the certificate
12301232
* used by <code>https://keys.server.example.com.</code>
@@ -1234,7 +1236,7 @@ export interface CreateOpenIDConnectProviderRequest {
12341236
* Guide</i>.</p>
12351237
* @public
12361238
*/
1237-
ThumbprintList: string[] | undefined;
1239+
ThumbprintList?: string[];
12381240

12391241
/**
12401242
* <p>A list of tags that you want to attach to the new IAM OpenID Connect (OIDC) provider.
@@ -1272,6 +1274,26 @@ export interface CreateOpenIDConnectProviderResponse {
12721274
Tags?: Tag[];
12731275
}
12741276

1277+
/**
1278+
* <p>The request failed because IAM cannot connect to the OpenID Connect identity provider URL.</p>
1279+
* @public
1280+
*/
1281+
export class OpenIdIdpCommunicationErrorException extends __BaseException {
1282+
readonly name: "OpenIdIdpCommunicationErrorException" = "OpenIdIdpCommunicationErrorException";
1283+
readonly $fault: "client" = "client";
1284+
/**
1285+
* @internal
1286+
*/
1287+
constructor(opts: __ExceptionOptionType<OpenIdIdpCommunicationErrorException, __BaseException>) {
1288+
super({
1289+
name: "OpenIdIdpCommunicationErrorException",
1290+
$fault: "client",
1291+
...opts,
1292+
});
1293+
Object.setPrototypeOf(this, OpenIdIdpCommunicationErrorException.prototype);
1294+
}
1295+
}
1296+
12751297
/**
12761298
* @public
12771299
*/
@@ -8391,12 +8413,11 @@ export interface SimulateCustomPolicyRequest {
83918413
* not match one of the following scenarios, then you can omit this parameter. The
83928414
* following list shows each of the supported scenario values and the resources that you
83938415
* must define to run the simulation.</p>
8394-
* <p>Each of the EC2 scenarios requires that you specify instance, image, and security
8416+
* <p>Each of the Amazon EC2 scenarios requires that you specify instance, image, and security
83958417
* group resources. If your scenario includes an EBS volume, then you must specify that
8396-
* volume as a resource. If the EC2 scenario includes VPC, then you must supply the network
8397-
* interface resource. If it includes an IP subnet, then you must specify the subnet
8398-
* resource. For more information on the EC2 scenario options, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-platforms.html">Supported platforms</a> in the <i>Amazon EC2 User
8399-
* Guide</i>.</p>
8418+
* volume as a resource. If the Amazon EC2 scenario includes VPC, then you must supply the
8419+
* network interface resource. If it includes an IP subnet, then you must specify the
8420+
* subnet resource. For more information on the Amazon EC2 scenario options, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-platforms.html">Supported platforms</a> in the <i>Amazon EC2 User Guide</i>.</p>
84008421
* <ul>
84018422
* <li>
84028423
* <p>
@@ -8935,12 +8956,11 @@ export interface SimulatePrincipalPolicyRequest {
89358956
* not match one of the following scenarios, then you can omit this parameter. The
89368957
* following list shows each of the supported scenario values and the resources that you
89378958
* must define to run the simulation.</p>
8938-
* <p>Each of the EC2 scenarios requires that you specify instance, image, and security
8959+
* <p>Each of the Amazon EC2 scenarios requires that you specify instance, image, and security
89398960
* group resources. If your scenario includes an EBS volume, then you must specify that
8940-
* volume as a resource. If the EC2 scenario includes VPC, then you must supply the network
8941-
* interface resource. If it includes an IP subnet, then you must specify the subnet
8942-
* resource. For more information on the EC2 scenario options, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-platforms.html">Supported platforms</a> in the <i>Amazon EC2 User
8943-
* Guide</i>.</p>
8961+
* volume as a resource. If the Amazon EC2 scenario includes VPC, then you must supply the
8962+
* network interface resource. If it includes an IP subnet, then you must specify the
8963+
* subnet resource. For more information on the Amazon EC2 scenario options, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-platforms.html">Supported platforms</a> in the <i>Amazon EC2 User Guide</i>.</p>
89448964
* <ul>
89458965
* <li>
89468966
* <p>
@@ -9153,26 +9173,6 @@ export interface TagUserRequest {
91539173
Tags: Tag[] | undefined;
91549174
}
91559175

9156-
/**
9157-
* @public
9158-
*/
9159-
export interface UntagInstanceProfileRequest {
9160-
/**
9161-
* <p>The name of the IAM instance profile from which you want to remove tags.</p>
9162-
* <p>This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric
9163-
* characters with no spaces. You can also include any of the following characters: _+=,.@-</p>
9164-
* @public
9165-
*/
9166-
InstanceProfileName: string | undefined;
9167-
9168-
/**
9169-
* <p>A list of key names as a simple array of strings. The tags with matching keys are
9170-
* removed from the specified instance profile.</p>
9171-
* @public
9172-
*/
9173-
TagKeys: string[] | undefined;
9174-
}
9175-
91769176
/**
91779177
* @internal
91789178
*/

clients/client-iam/src/models/models_1.ts

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,26 @@ import { IAMServiceException as __BaseException } from "./IAMServiceException";
55

66
import { Role, ServerCertificateMetadata, SigningCertificate, SSHPublicKey, StatusType, Tag } from "./models_0";
77

8+
/**
9+
* @public
10+
*/
11+
export interface UntagInstanceProfileRequest {
12+
/**
13+
* <p>The name of the IAM instance profile from which you want to remove tags.</p>
14+
* <p>This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric
15+
* characters with no spaces. You can also include any of the following characters: _+=,.@-</p>
16+
* @public
17+
*/
18+
InstanceProfileName: string | undefined;
19+
20+
/**
21+
* <p>A list of key names as a simple array of strings. The tags with matching keys are
22+
* removed from the specified instance profile.</p>
23+
* @public
24+
*/
25+
TagKeys: string[] | undefined;
26+
}
27+
828
/**
929
* @public
1030
*/
@@ -448,6 +468,10 @@ export interface UpdateRoleRequest {
448468
* or the <code>assume-role*</code> CLI operations but does not apply when you use those
449469
* operations to create a console URL. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html">Using IAM
450470
* roles</a> in the <i>IAM User Guide</i>.</p>
471+
* <note>
472+
* <p>IAM role credentials provided by Amazon EC2 instances assigned to the role are not
473+
* subject to the specified maximum session duration.</p>
474+
* </note>
451475
* @public
452476
*/
453477
MaxSessionDuration?: number;

clients/client-iam/src/protocols/Aws_query.ts

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -623,6 +623,7 @@ import {
623623
MFADevice,
624624
NoSuchEntityException,
625625
OpenIDConnectProviderListEntry,
626+
OpenIdIdpCommunicationErrorException,
626627
OrganizationsDecisionDetail,
627628
PasswordPolicy,
628629
PasswordPolicyViolationException,
@@ -685,7 +686,6 @@ import {
685686
TrackedActionLastAccessed,
686687
UnmodifiableEntityException,
687688
UnrecognizedPublicKeyEncodingException,
688-
UntagInstanceProfileRequest,
689689
User,
690690
UserDetail,
691691
VirtualMFADevice,
@@ -697,6 +697,7 @@ import {
697697
InvalidPublicKeyException,
698698
KeyPairMismatchException,
699699
MalformedCertificateException,
700+
UntagInstanceProfileRequest,
700701
UntagMFADeviceRequest,
701702
UntagOpenIDConnectProviderRequest,
702703
UntagPolicyRequest,
@@ -6429,6 +6430,9 @@ const de_CommandError = async (output: __HttpResponse, context: __SerdeContext):
64296430
case "ConcurrentModification":
64306431
case "com.amazonaws.iam#ConcurrentModificationException":
64316432
throw await de_ConcurrentModificationExceptionRes(parsedOutput, context);
6433+
case "OpenIdIdpCommunicationError":
6434+
case "com.amazonaws.iam#OpenIdIdpCommunicationErrorException":
6435+
throw await de_OpenIdIdpCommunicationErrorExceptionRes(parsedOutput, context);
64326436
case "MalformedPolicyDocument":
64336437
case "com.amazonaws.iam#MalformedPolicyDocumentException":
64346438
throw await de_MalformedPolicyDocumentExceptionRes(parsedOutput, context);
@@ -6791,6 +6795,22 @@ const de_NoSuchEntityExceptionRes = async (
67916795
return __decorateServiceException(exception, body);
67926796
};
67936797

6798+
/**
6799+
* deserializeAws_queryOpenIdIdpCommunicationErrorExceptionRes
6800+
*/
6801+
const de_OpenIdIdpCommunicationErrorExceptionRes = async (
6802+
parsedOutput: any,
6803+
context: __SerdeContext
6804+
): Promise<OpenIdIdpCommunicationErrorException> => {
6805+
const body = parsedOutput.body;
6806+
const deserialized: any = de_OpenIdIdpCommunicationErrorException(body.Error, context);
6807+
const exception = new OpenIdIdpCommunicationErrorException({
6808+
$metadata: deserializeMetadata(parsedOutput),
6809+
...deserialized,
6810+
});
6811+
return __decorateServiceException(exception, body);
6812+
};
6813+
67946814
/**
67956815
* deserializeAws_queryPasswordPolicyViolationExceptionRes
67966816
*/
@@ -12148,6 +12168,20 @@ const de_OpenIDConnectProviderListType = (output: any, context: __SerdeContext):
1214812168
});
1214912169
};
1215012170

12171+
/**
12172+
* deserializeAws_queryOpenIdIdpCommunicationErrorException
12173+
*/
12174+
const de_OpenIdIdpCommunicationErrorException = (
12175+
output: any,
12176+
context: __SerdeContext
12177+
): OpenIdIdpCommunicationErrorException => {
12178+
const contents: any = {};
12179+
if (output[_m] != null) {
12180+
contents[_m] = __expectString(output[_m]);
12181+
}
12182+
return contents;
12183+
};
12184+
1215112185
/**
1215212186
* deserializeAws_queryOrganizationsDecisionDetail
1215312187
*/

0 commit comments

Comments
 (0)