Skip to content

Commit 14887fd

Browse files
author
awstools
committed
feat(client-identitystore): Updating AWS Identity Store APIs to support Attribute Extensions capability, with the first release adding Enterprise Attributes. This launch aligns Identity Store APIs with SCIM for enterprise attributes, reducing cases when customers are forced to use SCIM due to lack of SigV4 API support.
1 parent 41b9a13 commit 14887fd

File tree

8 files changed

+135
-6
lines changed

8 files changed

+135
-6
lines changed

clients/client-identitystore/src/commands/CreateUserCommand.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,9 @@ export interface CreateUserCommandOutput extends CreateUserResponse, __MetadataB
9191
* ],
9292
* Website: "STRING_VALUE",
9393
* Birthdate: "STRING_VALUE",
94+
* Extensions: { // Extensions
95+
* "<keys>": "DOCUMENT_VALUE",
96+
* },
9497
* };
9598
* const command = new CreateUserCommand(input);
9699
* const response = await client.send(command);

clients/client-identitystore/src/commands/DescribeUserCommand.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,9 @@ export interface DescribeUserCommandOutput extends DescribeUserResponse, __Metad
3939
* const input = { // DescribeUserRequest
4040
* IdentityStoreId: "STRING_VALUE", // required
4141
* UserId: "STRING_VALUE", // required
42+
* Extensions: [ // ExtensionNames
43+
* "STRING_VALUE",
44+
* ],
4245
* };
4346
* const command = new DescribeUserCommand(input);
4447
* const response = await client.send(command);
@@ -109,6 +112,9 @@ export interface DescribeUserCommandOutput extends DescribeUserResponse, __Metad
109112
* // CreatedBy: "STRING_VALUE",
110113
* // UpdatedAt: new Date("TIMESTAMP"),
111114
* // UpdatedBy: "STRING_VALUE",
115+
* // Extensions: { // Extensions
116+
* // "<keys>": "DOCUMENT_VALUE",
117+
* // },
112118
* // };
113119
*
114120
* ```

clients/client-identitystore/src/commands/ListUsersCommand.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,9 @@ export interface ListUsersCommandOutput extends ListUsersResponse, __MetadataBea
3838
* const client = new IdentitystoreClient(config);
3939
* const input = { // ListUsersRequest
4040
* IdentityStoreId: "STRING_VALUE", // required
41+
* Extensions: [ // ExtensionNames
42+
* "STRING_VALUE",
43+
* ],
4144
* MaxResults: Number("int"),
4245
* NextToken: "STRING_VALUE",
4346
* Filters: [ // Filters
@@ -118,6 +121,9 @@ export interface ListUsersCommandOutput extends ListUsersResponse, __MetadataBea
118121
* // CreatedBy: "STRING_VALUE",
119122
* // UpdatedAt: new Date("TIMESTAMP"),
120123
* // UpdatedBy: "STRING_VALUE",
124+
* // Extensions: { // Extensions
125+
* // "<keys>": "DOCUMENT_VALUE",
126+
* // },
121127
* // },
122128
* // ],
123129
* // NextToken: "STRING_VALUE",

clients/client-identitystore/src/models/enums.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ export const ResourceType = {
3333
GROUP: "GROUP",
3434
GROUP_MEMBERSHIP: "GROUP_MEMBERSHIP",
3535
IDENTITY_STORE: "IDENTITY_STORE",
36+
RESOURCE_POLICY: "RESOURCE_POLICY",
3637
USER: "USER",
3738
} as const;
3839
/**

clients/client-identitystore/src/models/errors.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,7 @@ export class ConflictException extends __BaseException {
226226
RequestId?: string | undefined;
227227

228228
/**
229-
* <p>This request cannot be completed for one of the following reasons:</p> <ul> <li> <p>Performing the requested operation would violate an existing uniqueness claim in the identity store. Resolve the conflict before retrying this request.</p> </li> <li> <p>The requested resource was being concurrently modified by another request.</p> </li> </ul>
229+
* <p>Indicates the reason for a conflict error when the service is unable to access a Customer Managed KMS key. For non-KMS permission errors, this field is not included.</p>
230230
* @public
231231
*/
232232
Reason?: ConflictExceptionReason | undefined;

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

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1162,6 +1162,12 @@ export interface CreateUserRequest {
11621162
* @public
11631163
*/
11641164
Birthdate?: string | undefined;
1165+
1166+
/**
1167+
* <p>A map with additional attribute extensions for the user. Each map key corresponds to an extension name, while map values represent extension data in <code>Document</code> type (not supported by Java V1, Go V1 and older versions of the CLI). <code>aws:identitystore:enterprise</code> is the only supported extension name.</p>
1168+
* @public
1169+
*/
1170+
Extensions?: Record<string, __DocumentType> | undefined;
11651171
}
11661172

11671173
/**
@@ -1218,6 +1224,12 @@ export interface DescribeUserRequest {
12181224
* @public
12191225
*/
12201226
UserId: string | undefined;
1227+
1228+
/**
1229+
* <p>A collection of extension names indicating what extensions the service should retrieve alongside other user attributes. <code>aws:identitystore:enterprise</code> is the only supported extension name.</p>
1230+
* @public
1231+
*/
1232+
Extensions?: string[] | undefined;
12211233
}
12221234

12231235
/**
@@ -1367,6 +1379,12 @@ export interface DescribeUserResponse {
13671379
* @public
13681380
*/
13691381
UpdatedBy?: string | undefined;
1382+
1383+
/**
1384+
* <p>A map of explicitly requested attribute extensions associated with the user. Not populated if the user has no requested extensions.</p>
1385+
* @public
1386+
*/
1387+
Extensions?: Record<string, __DocumentType> | undefined;
13701388
}
13711389

13721390
/**
@@ -1379,6 +1397,12 @@ export interface ListUsersRequest {
13791397
*/
13801398
IdentityStoreId: string | undefined;
13811399

1400+
/**
1401+
* <p>A collection of extension names indicating what extensions the service should retrieve alongside other user attributes. <code>aws:identitystore:enterprise</code> is the only supported extension name.</p>
1402+
* @public
1403+
*/
1404+
Extensions?: string[] | undefined;
1405+
13821406
/**
13831407
* <p>The maximum number of results to be returned per request. This parameter is used in the <code> ListUsers</code> and <code>ListGroups</code> requests to specify how many results to return in one page. The length limit is 50 characters.</p>
13841408
* @public
@@ -1548,6 +1572,12 @@ export interface User {
15481572
* @public
15491573
*/
15501574
UpdatedBy?: string | undefined;
1575+
1576+
/**
1577+
* <p>A map of explicitly requested attribute extensions associated with the user. Not populated if the user has no requested extensions.</p>
1578+
* @public
1579+
*/
1580+
Extensions?: Record<string, __DocumentType> | undefined;
15511581
}
15521582

15531583
/**

clients/client-identitystore/src/schemas/schemas_0.ts

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ const _EII = "ExternalIdIdentifier";
4747
const _EIIx = "ExternalIdIssuer";
4848
const _EIx = "ExternalId";
4949
const _Em = "Email";
50+
const _Ex = "Extensions";
5051
const _F = "Formatted";
5152
const _FN = "FamilyName";
5253
const _Fi = "Filter";
@@ -159,6 +160,7 @@ import { TypeRegistry } from "@smithy/core/schema";
159160
import type {
160161
StaticErrorSchema,
161162
StaticListSchema,
163+
StaticMapSchema,
162164
StaticOperationSchema,
163165
StaticSimpleSchema,
164166
StaticStructureSchema,
@@ -234,7 +236,7 @@ export var CreateUserRequest: StaticStructureSchema = [
234236
n0,
235237
_CUR,
236238
0,
237-
[_ISI, _UN, _N, _DN, _NN, _PU, _E, _Ad, _PN, _UT, _Ti, _PL, _Lo, _Tim, _Ph, _W, _B],
239+
[_ISI, _UN, _N, _DN, _NN, _PU, _E, _Ad, _PN, _UT, _Ti, _PL, _Lo, _Tim, _Ph, _W, _B, _Ex],
238240
[
239241
0,
240242
[() => UserName, 0],
@@ -253,6 +255,7 @@ export var CreateUserRequest: StaticStructureSchema = [
253255
[() => Photos, 0],
254256
[() => SensitiveStringType, 0],
255257
[() => SensitiveStringType, 0],
258+
128 | 15,
256259
],
257260
];
258261
export var CreateUserResponse: StaticStructureSchema = [3, n0, _CURr, 0, [_ISI, _UI], [0, 0]];
@@ -280,7 +283,7 @@ export var DescribeGroupResponse: StaticStructureSchema = [
280283
[_GI, _DN, _EI, _D, _CA, _UA, _CB, _UB, _ISI],
281284
[0, [() => GroupDisplayName, 0], [() => ExternalIds, 0], [() => SensitiveStringType, 0], 4, 4, 0, 0, 0],
282285
];
283-
export var DescribeUserRequest: StaticStructureSchema = [3, n0, _DURes, 0, [_ISI, _UI], [0, 0]];
286+
export var DescribeUserRequest: StaticStructureSchema = [3, n0, _DURes, 0, [_ISI, _UI, _Ex], [0, 0, 64 | 0]];
284287
export var DescribeUserResponse: StaticStructureSchema = [
285288
3,
286289
n0,
@@ -311,6 +314,7 @@ export var DescribeUserResponse: StaticStructureSchema = [
311314
_CB,
312315
_UA,
313316
_UB,
317+
_Ex,
314318
],
315319
[
316320
0,
@@ -337,6 +341,7 @@ export var DescribeUserResponse: StaticStructureSchema = [
337341
0,
338342
4,
339343
0,
344+
128 | 15,
340345
],
341346
];
342347
export var Email: StaticStructureSchema = [
@@ -478,8 +483,8 @@ export var ListUsersRequest: StaticStructureSchema = [
478483
n0,
479484
_LUR,
480485
0,
481-
[_ISI, _MR, _NT, _Fil],
482-
[0, 1, 0, [() => Filters, 0]],
486+
[_ISI, _Ex, _MR, _NT, _Fil],
487+
[0, 64 | 0, 1, 0, [() => Filters, 0]],
483488
];
484489
export var ListUsersResponse: StaticStructureSchema = [3, n0, _LURi, 0, [_U, _NT], [[() => Users, 0], 0]];
485490
export var Name: StaticStructureSchema = [
@@ -598,6 +603,7 @@ export var User: StaticStructureSchema = [
598603
_CB,
599604
_UA,
600605
_UB,
606+
_Ex,
601607
],
602608
[
603609
0,
@@ -624,6 +630,7 @@ export var User: StaticStructureSchema = [
624630
0,
625631
4,
626632
0,
633+
128 | 15,
627634
],
628635
];
629636
export var ValidationException: StaticErrorSchema = [-3, n0, _VE, { [_e]: _c, [_hE]: 400 }, [_M, _RI, _R], [0, 0, 0]];
@@ -633,6 +640,7 @@ TypeRegistry.for(_sm).registerError(IdentitystoreServiceException, __Identitysto
633640
export var Addresses: StaticListSchema = [1, n0, _Ad, 0, [() => Address, 0]];
634641
export var AttributeOperations: StaticListSchema = [1, n0, _AOt, 0, () => AttributeOperation];
635642
export var Emails: StaticListSchema = [1, n0, _E, 0, [() => Email, 0]];
643+
export var ExtensionNames = 64 | 0;
636644
export var ExternalIds: StaticListSchema = [1, n0, _EI, 0, [() => ExternalId, 0]];
637645
export var Filters: StaticListSchema = [1, n0, _Fil, 0, [() => Filter, 0]];
638646
export var GroupIds = 64 | 0;
@@ -648,6 +656,7 @@ export var Groups: StaticListSchema = [1, n0, _Gr, 0, [() => Group, 0]];
648656
export var PhoneNumbers: StaticListSchema = [1, n0, _PN, 0, [() => PhoneNumber, 0]];
649657
export var Photos: StaticListSchema = [1, n0, _Ph, 0, [() => Photo, 0]];
650658
export var Users: StaticListSchema = [1, n0, _U, 0, [() => User, 0]];
659+
export var Extensions = 128 | 15;
651660
export var AlternateIdentifier: StaticStructureSchema = [
652661
3,
653662
n0,

codegen/sdk-codegen/aws-models/identitystore.json

Lines changed: 75 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1039,7 +1039,7 @@
10391039
"Reason": {
10401040
"target": "com.amazonaws.identitystore#ConflictExceptionReason",
10411041
"traits": {
1042-
"smithy.api#documentation": "<p>This request cannot be completed for one of the following reasons:</p> <ul> <li> <p>Performing the requested operation would violate an existing uniqueness claim in the identity store. Resolve the conflict before retrying this request.</p> </li> <li> <p>The requested resource was being concurrently modified by another request.</p> </li> </ul>"
1042+
"smithy.api#documentation": "<p>Indicates the reason for a conflict error when the service is unable to access a Customer Managed KMS key. For non-KMS permission errors, this field is not included.</p>"
10431043
}
10441044
}
10451045
},
@@ -1337,6 +1337,12 @@
13371337
"traits": {
13381338
"smithy.api#documentation": "<p>The user's birthdate in YYYY-MM-DD format. This field supports standard date format for storing personal information.</p>"
13391339
}
1340+
},
1341+
"Extensions": {
1342+
"target": "com.amazonaws.identitystore#Extensions",
1343+
"traits": {
1344+
"smithy.api#documentation": "<p>A map with additional attribute extensions for the user. Each map key corresponds to an extension name, while map values represent extension data in <code>Document</code> type (not supported by Java V1, Go V1 and older versions of the CLI). <code>aws:identitystore:enterprise</code> is the only supported extension name.</p>"
1345+
}
13401346
}
13411347
}
13421348
},
@@ -1737,6 +1743,12 @@
17371743
"smithy.api#documentation": "<p>The identifier for a user in the identity store.</p>",
17381744
"smithy.api#required": {}
17391745
}
1746+
},
1747+
"Extensions": {
1748+
"target": "com.amazonaws.identitystore#ExtensionNames",
1749+
"traits": {
1750+
"smithy.api#documentation": "<p>A collection of extension names indicating what extensions the service should retrieve alongside other user attributes. <code>aws:identitystore:enterprise</code> is the only supported extension name.</p>"
1751+
}
17401752
}
17411753
}
17421754
},
@@ -1888,6 +1900,12 @@
18881900
"traits": {
18891901
"smithy.api#documentation": "<p>The identifier of the user or system that last updated the user.</p>"
18901902
}
1903+
},
1904+
"Extensions": {
1905+
"target": "com.amazonaws.identitystore#Extensions",
1906+
"traits": {
1907+
"smithy.api#documentation": "<p>A map of explicitly requested attribute extensions associated with the user. Not populated if the user has no requested extensions.</p>"
1908+
}
18911909
}
18921910
}
18931911
},
@@ -1933,6 +1951,44 @@
19331951
"com.amazonaws.identitystore#ExceptionMessage": {
19341952
"type": "string"
19351953
},
1954+
"com.amazonaws.identitystore#ExtensionName": {
1955+
"type": "string",
1956+
"traits": {
1957+
"smithy.api#length": {
1958+
"min": 1,
1959+
"max": 50
1960+
},
1961+
"smithy.api#pattern": "^aws:identitystore:[a-z]{1,20}$"
1962+
}
1963+
},
1964+
"com.amazonaws.identitystore#ExtensionNames": {
1965+
"type": "list",
1966+
"member": {
1967+
"target": "com.amazonaws.identitystore#ExtensionName"
1968+
},
1969+
"traits": {
1970+
"smithy.api#length": {
1971+
"min": 1,
1972+
"max": 10
1973+
},
1974+
"smithy.api#uniqueItems": {}
1975+
}
1976+
},
1977+
"com.amazonaws.identitystore#Extensions": {
1978+
"type": "map",
1979+
"key": {
1980+
"target": "com.amazonaws.identitystore#ExtensionName"
1981+
},
1982+
"value": {
1983+
"target": "com.amazonaws.identitystore#AttributeValue"
1984+
},
1985+
"traits": {
1986+
"smithy.api#length": {
1987+
"min": 1,
1988+
"max": 10
1989+
}
1990+
}
1991+
},
19361992
"com.amazonaws.identitystore#ExternalId": {
19371993
"type": "structure",
19381994
"members": {
@@ -2824,6 +2880,12 @@
28242880
"smithy.api#required": {}
28252881
}
28262882
},
2883+
"Extensions": {
2884+
"target": "com.amazonaws.identitystore#ExtensionNames",
2885+
"traits": {
2886+
"smithy.api#documentation": "<p>A collection of extension names indicating what extensions the service should retrieve alongside other user attributes. <code>aws:identitystore:enterprise</code> is the only supported extension name.</p>"
2887+
}
2888+
},
28272889
"MaxResults": {
28282890
"target": "com.amazonaws.identitystore#MaxResults",
28292891
"traits": {
@@ -3124,6 +3186,12 @@
31243186
"traits": {
31253187
"smithy.api#enumValue": "GROUP_MEMBERSHIP"
31263188
}
3189+
},
3190+
"RESOURCE_POLICY": {
3191+
"target": "smithy.api#Unit",
3192+
"traits": {
3193+
"smithy.api#enumValue": "RESOURCE_POLICY"
3194+
}
31273195
}
31283196
}
31293197
},
@@ -3502,6 +3570,12 @@
35023570
"traits": {
35033571
"smithy.api#documentation": "<p>The identifier of the user or system that last updated the user.</p>"
35043572
}
3573+
},
3574+
"Extensions": {
3575+
"target": "com.amazonaws.identitystore#Extensions",
3576+
"traits": {
3577+
"smithy.api#documentation": "<p>A map of explicitly requested attribute extensions associated with the user. Not populated if the user has no requested extensions.</p>"
3578+
}
35053579
}
35063580
},
35073581
"traits": {

0 commit comments

Comments
 (0)