11import {
2+ IamCredentials ,
23 LSPErrorCodes ,
34 ProgressType ,
45 ProtocolNotificationType ,
@@ -15,21 +16,28 @@ export const AwsErrorCodes = {
1516 E_CANNOT_OVERWRITE_SSO_SESSION : 'E_CANNOT_OVERWRITE_SSO_SESSION' ,
1617 E_CANNOT_READ_SHARED_CONFIG : 'E_CANNOT_READ_SHARED_CONFIG' ,
1718 E_CANNOT_READ_SSO_CACHE : 'E_CANNOT_READ_SSO_CACHE' ,
19+ E_CANNOT_READ_STS_CACHE : 'E_CANNOT_READ_STS_CACHE' ,
1820 E_CANNOT_REFRESH_SSO_TOKEN : 'E_CANNOT_REFRESH_SSO_TOKEN' ,
21+ E_CANNOT_REFRESH_STS_CREDENTIAL : 'E_CANNOT_REFRESH_STS_CREDENTIAL' ,
1922 E_CANNOT_REGISTER_CLIENT : 'E_CANNOT_REGISTER_CLIENT' ,
2023 E_CANNOT_CREATE_SSO_TOKEN : 'E_CANNOT_CREATE_SSO_TOKEN' ,
24+ E_CANNOT_CREATE_STS_CREDENTIAL : 'E_CANNOT_CREATE_STS_CREDENTIAL' ,
2125 E_CANNOT_WRITE_SHARED_CONFIG : 'E_CANNOT_WRITE_SHARED_CONFIG' ,
2226 E_CANNOT_WRITE_SSO_CACHE : 'E_CANNOT_WRITE_SSO_CACHE' ,
27+ E_CANNOT_WRITE_STS_CACHE : 'E_CANNOT_WRITE_STS_CACHE' ,
2328 E_ENCRYPTION_REQUIRED : 'E_ENCRYPTION_REQUIRED' ,
2429 E_INVALID_PROFILE : 'E_INVALID_PROFILE' ,
2530 E_INVALID_SSO_CLIENT : 'E_INVALID_SSO_CLIENT' ,
2631 E_INVALID_SSO_SESSION : 'E_INVALID_SSO_SESSION' ,
2732 E_INVALID_SSO_TOKEN : 'E_INVALID_SSO_TOKEN' ,
33+ E_INVALID_STS_CREDENTIAL : 'E_INVALID_STS_CREDENTIAL' ,
2834 E_PROFILE_NOT_FOUND : 'E_PROFILE_NOT_FOUND' ,
2935 E_RUNTIME_NOT_SUPPORTED : 'E_RUNTIME_NOT_SUPPORTED' ,
3036 E_SSO_SESSION_NOT_FOUND : 'E_SSO_SESSION_NOT_FOUND' ,
3137 E_SSO_TOKEN_EXPIRED : 'E_SSO_TOKEN_EXPIRED' ,
38+ E_STS_CREDENTIAL_EXPIRED : 'E_STS_CREDENTIAL_EXPIRED' ,
3239 E_SSO_TOKEN_SOURCE_NOT_SUPPORTED : 'E_SSO_TOKEN_SOURCE_NOT_SUPPORTED' ,
40+ E_MFA_REQUIRED : 'E_MFA_REQUIRED' ,
3341 E_TIMEOUT : 'E_TIMEOUT' ,
3442 E_UNKNOWN : 'E_UNKNOWN' ,
3543 E_CANCELLED : 'E_CANCELLED' ,
@@ -47,10 +55,20 @@ export class AwsResponseError extends ResponseError<AwsResponseErrorData> {
4755}
4856
4957// listProfiles
50- export type ProfileKind = 'Unknown' | 'SsoTokenProfile'
58+ export type ProfileKind =
59+ | 'Unknown'
60+ | 'SsoTokenProfile'
61+ | 'IamCredentialsProfile'
62+ | 'IamSourceProfileProfile'
63+ | 'IamCredentialSourceProfile'
64+ | 'IamCredentialProcessProfile'
5165
5266export const ProfileKind = {
5367 SsoTokenProfile : 'SsoTokenProfile' ,
68+ IamCredentialsProfile : 'IamCredentialsProfile' ,
69+ IamSourceProfileProfile : 'IamSourceProfileProfile' ,
70+ IamCredentialSourceProfile : 'IamCredentialSourceProfile' ,
71+ IamCredentialProcessProfile : 'IamCredentialProcessProfile' ,
5472 Unknown : 'Unknown' ,
5573} as const
5674
@@ -64,6 +82,18 @@ export interface Profile {
6482 settings ?: {
6583 region ?: string
6684 sso_session ?: string
85+ aws_access_key_id ?: string
86+ aws_secret_access_key ?: string
87+ aws_session_token ?: string
88+ role_arn ?: string
89+ role_session_name ?: string
90+ credential_process ?: string
91+ credential_source ?: string
92+ source_profile ?: string
93+ mfa_serial ?: string
94+ external_id ?: string
95+ credential_cache ?: string
96+ credential_cache_location ?: string
6797 }
6898}
6999
@@ -218,6 +248,56 @@ export const getSsoTokenRequestType = new ProtocolRequestType<
218248 void
219249> ( 'aws/identity/getSsoToken' )
220250
251+ // getIamCredential
252+ export type IamCredentialId = string // Opaque identifier
253+
254+ export interface GetIamCredentialOptions {
255+ callStsOnInvalidIamCredential ?: boolean
256+ validatePermissions ?: boolean
257+ }
258+
259+ export const getIamCredentialOptionsDefaults = {
260+ callStsOnInvalidIamCredential : true ,
261+ validatePermissions : true ,
262+ } satisfies GetIamCredentialOptions
263+
264+ export interface GetIamCredentialParams {
265+ profileName : string
266+ options ?: GetIamCredentialOptions
267+ }
268+
269+ export interface GetIamCredentialResult {
270+ id : IamCredentialId
271+ credentials : IamCredentials
272+ updateCredentialsParams : UpdateCredentialsParams
273+ }
274+
275+ export const getIamCredentialRequestType = new ProtocolRequestType <
276+ GetIamCredentialParams ,
277+ GetIamCredentialResult ,
278+ never ,
279+ AwsResponseError ,
280+ void
281+ > ( 'aws/identity/getIamCredential' )
282+
283+ // getMfaCode
284+ export interface GetMfaCodeParams {
285+ mfaSerial : string
286+ profileName : string
287+ }
288+
289+ export interface GetMfaCodeResult {
290+ code : string
291+ }
292+
293+ export const getMfaCodeRequestType = new ProtocolRequestType <
294+ GetMfaCodeParams ,
295+ GetMfaCodeResult ,
296+ never ,
297+ AwsResponseError ,
298+ void
299+ > ( 'aws/identity/getMfaCode' )
300+
221301// invalidateSsoToken
222302export interface InvalidateSsoTokenParams {
223303 ssoTokenId : SsoTokenId
@@ -236,6 +316,23 @@ export const invalidateSsoTokenRequestType = new ProtocolRequestType<
236316 void
237317> ( 'aws/identity/invalidateSsoToken' )
238318
319+ // invalidateStsCredential
320+ export interface InvalidateStsCredentialParams {
321+ profileName : string
322+ }
323+
324+ export interface InvalidateStsCredentialResult {
325+ // Intentionally left blank
326+ }
327+
328+ export const invalidateStsCredentialRequestType = new ProtocolRequestType <
329+ InvalidateStsCredentialParams ,
330+ InvalidateStsCredentialResult ,
331+ never ,
332+ AwsResponseError ,
333+ void
334+ > ( 'aws/identity/invalidateStsCredential' )
335+
239336// ssoTokenChanged
240337export type Expired = 'Expired'
241338export type Refreshed = 'Refreshed'
@@ -255,3 +352,20 @@ export interface SsoTokenChangedParams {
255352export const ssoTokenChangedRequestType = new ProtocolNotificationType < SsoTokenChangedParams , void > (
256353 'aws/identity/ssoTokenChanged'
257354)
355+
356+ // stsCredentialChanged
357+ export type StsCredentialChangedKind = Refreshed | Expired
358+
359+ export const StsCredentialChangedKind = {
360+ Expired : 'Expired' ,
361+ Refreshed : 'Refreshed' ,
362+ } as const
363+
364+ export interface StsCredentialChangedParams {
365+ kind : StsCredentialChangedKind
366+ stsCredentialId : IamCredentialId
367+ }
368+
369+ export const stsCredentialChangedRequestType = new ProtocolNotificationType < StsCredentialChangedParams , void > (
370+ 'aws/identity/stsCredentialChanged'
371+ )
0 commit comments