Skip to content

Commit 7fbd215

Browse files
author
awstools
committedMar 15, 2024
feat(client-connect): This release adds Hierarchy based Access Control fields to Security Profile public APIs and adds support for UserAttributeFilter to SearchUsers API.
1 parent b6e079d commit 7fbd215

File tree

9 files changed

+286
-8
lines changed

9 files changed

+286
-8
lines changed
 

‎clients/client-connect/src/commands/CreateSecurityProfileCommand.ts

+4
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,10 @@ export interface CreateSecurityProfileCommandOutput extends CreateSecurityProfil
5858
* ],
5959
* },
6060
* ],
61+
* HierarchyRestrictedResources: [ // HierarchyRestrictedResourceList
62+
* "STRING_VALUE",
63+
* ],
64+
* AllowedAccessControlHierarchyGroupId: "STRING_VALUE",
6165
* };
6266
* const command = new CreateSecurityProfileCommand(input);
6367
* const response = await client.send(command);

‎clients/client-connect/src/commands/DescribeSecurityProfileCommand.ts

+4
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,10 @@ export interface DescribeSecurityProfileCommandOutput extends DescribeSecurityPr
5858
* // ],
5959
* // LastModifiedTime: new Date("TIMESTAMP"),
6060
* // LastModifiedRegion: "STRING_VALUE",
61+
* // HierarchyRestrictedResources: [ // HierarchyRestrictedResourceList
62+
* // "STRING_VALUE",
63+
* // ],
64+
* // AllowedAccessControlHierarchyGroupId: "STRING_VALUE",
6165
* // },
6266
* // };
6367
*

‎clients/client-connect/src/commands/SearchUsersCommand.ts

+22-8
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,26 @@ export interface SearchUsersCommandOutput extends SearchUsersResponse, __Metadat
6060
* ],
6161
* TagCondition: "<TagCondition>",
6262
* },
63+
* UserAttributeFilter: { // ControlPlaneUserAttributeFilter
64+
* OrConditions: [ // AttributeOrConditionList
65+
* { // AttributeAndCondition
66+
* TagConditions: "<TagAndConditionList>",
67+
* HierarchyGroupCondition: { // HierarchyGroupCondition
68+
* Value: "STRING_VALUE",
69+
* HierarchyGroupMatchType: "EXACT" || "WITH_CHILD_GROUPS",
70+
* },
71+
* },
72+
* ],
73+
* AndCondition: {
74+
* TagConditions: "<TagAndConditionList>",
75+
* HierarchyGroupCondition: {
76+
* Value: "STRING_VALUE",
77+
* HierarchyGroupMatchType: "EXACT" || "WITH_CHILD_GROUPS",
78+
* },
79+
* },
80+
* TagCondition: "<TagCondition>",
81+
* HierarchyGroupCondition: "<HierarchyGroupCondition>",
82+
* },
6383
* },
6484
* SearchCriteria: { // UserSearchCriteria
6585
* OrConditions: [ // UserSearchConditionList
@@ -75,10 +95,7 @@ export interface SearchUsersCommandOutput extends SearchUsersResponse, __Metadat
7595
* Value: "STRING_VALUE",
7696
* ComparisonType: "STARTS_WITH" || "CONTAINS" || "EXACT",
7797
* },
78-
* HierarchyGroupCondition: { // HierarchyGroupCondition
79-
* Value: "STRING_VALUE",
80-
* HierarchyGroupMatchType: "EXACT" || "WITH_CHILD_GROUPS",
81-
* },
98+
* HierarchyGroupCondition: "<HierarchyGroupCondition>",
8299
* },
83100
* ],
84101
* AndConditions: [
@@ -89,10 +106,7 @@ export interface SearchUsersCommandOutput extends SearchUsersResponse, __Metadat
89106
* Value: "STRING_VALUE",
90107
* ComparisonType: "STARTS_WITH" || "CONTAINS" || "EXACT",
91108
* },
92-
* HierarchyGroupCondition: {
93-
* Value: "STRING_VALUE",
94-
* HierarchyGroupMatchType: "EXACT" || "WITH_CHILD_GROUPS",
95-
* },
109+
* HierarchyGroupCondition: "<HierarchyGroupCondition>",
96110
* },
97111
* };
98112
* const command = new SearchUsersCommand(input);

‎clients/client-connect/src/commands/UpdateSecurityProfileCommand.ts

+4
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,10 @@ export interface UpdateSecurityProfileCommandOutput extends __MetadataBearer {}
5555
* ],
5656
* },
5757
* ],
58+
* HierarchyRestrictedResources: [ // HierarchyRestrictedResourceList
59+
* "STRING_VALUE",
60+
* ],
61+
* AllowedAccessControlHierarchyGroupId: "STRING_VALUE",
5862
* };
5963
* const command = new UpdateSecurityProfileCommand(input);
6064
* const response = await client.send(command);

‎clients/client-connect/src/models/models_0.ts

+12
Original file line numberDiff line numberDiff line change
@@ -4388,6 +4388,18 @@ export interface CreateSecurityProfileRequest {
43884388
* @public
43894389
*/
43904390
Applications?: Application[];
4391+
4392+
/**
4393+
* <p>The list of resources that a security profile applies hierarchy restrictions to in Amazon Connect. Following are acceptable ResourceNames: <code>User</code>.</p>
4394+
* @public
4395+
*/
4396+
HierarchyRestrictedResources?: string[];
4397+
4398+
/**
4399+
* <p>The identifier of the hierarchy group that a security profile uses to restrict access to resources in Amazon Connect.</p>
4400+
* @public
4401+
*/
4402+
AllowedAccessControlHierarchyGroupId?: string;
43914403
}
43924404

43934405
/**

‎clients/client-connect/src/models/models_1.ts

+13
Original file line numberDiff line numberDiff line change
@@ -888,6 +888,19 @@ export interface SecurityProfile {
888888
* @public
889889
*/
890890
LastModifiedRegion?: string;
891+
892+
/**
893+
* <p>The list of resources that a security profile applies hierarchy restrictions to in Amazon Connect. Following are acceptable ResourceNames: <code>User</code>.</p>
894+
* @public
895+
*/
896+
HierarchyRestrictedResources?: string[];
897+
898+
/**
899+
* <p>The identifier of the hierarchy group that a security profile uses to restrict access to
900+
* resources in Amazon Connect.</p>
901+
* @public
902+
*/
903+
AllowedAccessControlHierarchyGroupId?: string;
891904
}
892905

893906
/**

‎clients/client-connect/src/models/models_2.ts

+103
Original file line numberDiff line numberDiff line change
@@ -911,6 +911,74 @@ export interface HierarchyGroupCondition {
911911
HierarchyGroupMatchType?: HierarchyGroupMatchType;
912912
}
913913

914+
/**
915+
* <p>A list of conditions which would be applied together with an <code>AND</code>
916+
* condition.</p>
917+
* @public
918+
*/
919+
export interface AttributeAndCondition {
920+
/**
921+
* <p>A leaf node condition which can be used to specify a tag condition.</p>
922+
* @public
923+
*/
924+
TagConditions?: TagCondition[];
925+
926+
/**
927+
* <p>A leaf node condition which can be used to specify a hierarchy group condition.</p>
928+
* @public
929+
*/
930+
HierarchyGroupCondition?: HierarchyGroupCondition;
931+
}
932+
933+
/**
934+
* <p>An object that can be used to specify Tag conditions or Hierarchy Group conditions inside
935+
* the <code>SearchFilter</code>.</p>
936+
* <p>This accepts an <code>OR</code> of <code>AND</code> (List of List) input where:</p>
937+
* <ul>
938+
* <li>
939+
* <p>The top level list specifies conditions that need to be applied with <code>OR</code>
940+
* operator</p>
941+
* </li>
942+
* <li>
943+
* <p>The inner list specifies conditions that need to be applied with <code>AND</code>
944+
* operator.</p>
945+
* </li>
946+
* </ul>
947+
* <note>
948+
* <p>Only one field can be populated. Maximum number of allowed Tag conditions is 25. Maximum
949+
* number of allowed Hierarchy Group conditions is 20. </p>
950+
* </note>
951+
* @public
952+
*/
953+
export interface ControlPlaneUserAttributeFilter {
954+
/**
955+
* <p>A list of conditions which would be applied together with an <code>OR</code>
956+
* condition.</p>
957+
* @public
958+
*/
959+
OrConditions?: AttributeAndCondition[];
960+
961+
/**
962+
* <p>A list of conditions which would be applied together with an <code>AND</code>
963+
* condition.</p>
964+
* @public
965+
*/
966+
AndCondition?: AttributeAndCondition;
967+
968+
/**
969+
* <p>A leaf node condition which can be used to specify a tag condition, for example, <code>HAVE
970+
* BPO = 123</code>. </p>
971+
* @public
972+
*/
973+
TagCondition?: TagCondition;
974+
975+
/**
976+
* <p>A leaf node condition which can be used to specify a hierarchy group condition.</p>
977+
* @public
978+
*/
979+
HierarchyGroupCondition?: HierarchyGroupCondition;
980+
}
981+
914982
/**
915983
* <p>Filters to be applied to search results.</p>
916984
* @public
@@ -932,6 +1000,29 @@ export interface UserSearchFilter {
9321000
* @public
9331001
*/
9341002
TagFilter?: ControlPlaneTagFilter;
1003+
1004+
/**
1005+
* <p>An object that can be used to specify Tag conditions or Hierarchy Group conditions inside
1006+
* the SearchFilter.</p>
1007+
* <p>This accepts an <code>OR</code> of <code>AND</code> (List of List) input where:</p>
1008+
* <ul>
1009+
* <li>
1010+
* <p>The top level list specifies conditions that need to be applied with <code>OR</code>
1011+
* operator.</p>
1012+
* </li>
1013+
* <li>
1014+
* <p>The inner list specifies conditions that need to be applied with <code>AND</code>
1015+
* operator.</p>
1016+
* </li>
1017+
* </ul>
1018+
* <note>
1019+
* <p>Only one field can be populated. This object can’t be used along with TagFilter. Request
1020+
* can either contain TagFilter or UserAttributeFilter if SearchFilter is specified, combination of
1021+
* both is not supported and such request will throw AccessDeniedException.</p>
1022+
* </note>
1023+
* @public
1024+
*/
1025+
UserAttributeFilter?: ControlPlaneUserAttributeFilter;
9351026
}
9361027

9371028
/**
@@ -3968,6 +4059,18 @@ export interface UpdateSecurityProfileRequest {
39684059
* @public
39694060
*/
39704061
Applications?: Application[];
4062+
4063+
/**
4064+
* <p>The list of resources that a security profile applies hierarchy restrictions to in Amazon Connect. Following are acceptable ResourceNames: <code>User</code>.</p>
4065+
* @public
4066+
*/
4067+
HierarchyRestrictedResources?: string[];
4068+
4069+
/**
4070+
* <p>The identifier of the hierarchy group that a security profile uses to restrict access to resources in Amazon Connect.</p>
4071+
* @public
4072+
*/
4073+
AllowedAccessControlHierarchyGroupId?: string;
39714074
}
39724075

39734076
/**

‎clients/client-connect/src/protocols/Aws_restJson1.ts

+18
Original file line numberDiff line numberDiff line change
@@ -897,6 +897,7 @@ import {
897897
} from "../models/models_1";
898898
import {
899899
AnswerMachineDetectionConfig,
900+
AttributeAndCondition,
900901
ChatEvent,
901902
ChatMessage,
902903
ChatParticipantRoleConfig,
@@ -906,6 +907,7 @@ import {
906907
ContactSearchSummaryAgentInfo,
907908
ContactSearchSummaryQueueInfo,
908909
ControlPlaneTagFilter,
910+
ControlPlaneUserAttributeFilter,
909911
DestinationNotAllowedException,
910912
DisconnectReason,
911913
EvaluationAnswerInput,
@@ -1849,9 +1851,11 @@ export const se_CreateSecurityProfileCommand = async (
18491851
let body: any;
18501852
body = JSON.stringify(
18511853
take(input, {
1854+
AllowedAccessControlHierarchyGroupId: [],
18521855
AllowedAccessControlTags: (_) => _json(_),
18531856
Applications: (_) => _json(_),
18541857
Description: [],
1858+
HierarchyRestrictedResources: (_) => _json(_),
18551859
Permissions: (_) => _json(_),
18561860
SecurityProfileName: [],
18571861
TagRestrictedResources: (_) => _json(_),
@@ -6151,9 +6155,11 @@ export const se_UpdateSecurityProfileCommand = async (
61516155
let body: any;
61526156
body = JSON.stringify(
61536157
take(input, {
6158+
AllowedAccessControlHierarchyGroupId: [],
61546159
AllowedAccessControlTags: (_) => _json(_),
61556160
Applications: (_) => _json(_),
61566161
Description: [],
6162+
HierarchyRestrictedResources: (_) => _json(_),
61576163
Permissions: (_) => _json(_),
61586164
TagRestrictedResources: (_) => _json(_),
61596165
})
@@ -11944,6 +11950,10 @@ const de_UserNotFoundExceptionRes = async (
1194411950

1194511951
// se_AssignContactCategoryActionDefinition omitted.
1194611952

11953+
// se_AttributeAndCondition omitted.
11954+
11955+
// se_AttributeOrConditionList omitted.
11956+
1194711957
// se_Attributes omitted.
1194811958

1194911959
// se_Campaign omitted.
@@ -11976,6 +11986,8 @@ const de_UserNotFoundExceptionRes = async (
1197611986

1197711987
// se_ControlPlaneTagFilter omitted.
1197811988

11989+
// se_ControlPlaneUserAttributeFilter omitted.
11990+
1197911991
/**
1198011992
* serializeAws_restJson1CreateCaseActionDefinition
1198111993
*/
@@ -12177,6 +12189,8 @@ const se_FieldValueUnion = (input: FieldValueUnion, context: __SerdeContext): an
1217712189

1217812190
// se_HierarchyLevelUpdate omitted.
1217912191

12192+
// se_HierarchyRestrictedResourceList omitted.
12193+
1218012194
// se_HierarchyStructureUpdate omitted.
1218112195

1218212196
/**
@@ -13495,6 +13509,8 @@ const de_HierarchyPath = (output: any, context: __SerdeContext): HierarchyPath =
1349513509

1349613510
// de_HierarchyPathReference omitted.
1349713511

13512+
// de_HierarchyRestrictedResourceList omitted.
13513+
1349813514
/**
1349913515
* deserializeAws_restJson1HierarchyStructure
1350013516
*/
@@ -14381,9 +14397,11 @@ const de_SecurityKeysList = (output: any, context: __SerdeContext): SecurityKey[
1438114397
*/
1438214398
const de_SecurityProfile = (output: any, context: __SerdeContext): SecurityProfile => {
1438314399
return take(output, {
14400+
AllowedAccessControlHierarchyGroupId: __expectString,
1438414401
AllowedAccessControlTags: _json,
1438514402
Arn: __expectString,
1438614403
Description: __expectString,
14404+
HierarchyRestrictedResources: _json,
1438714405
Id: __expectString,
1438814406
LastModifiedRegion: __expectString,
1438914407
LastModifiedTime: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))),

‎codegen/sdk-codegen/aws-models/connect.json

+106
Original file line numberDiff line numberDiff line change
@@ -3501,6 +3501,23 @@
35013501
"smithy.api#documentation": "<p>A toggle for an individual feature at the instance level.</p>"
35023502
}
35033503
},
3504+
"com.amazonaws.connect#AttributeAndCondition": {
3505+
"type": "structure",
3506+
"members": {
3507+
"TagConditions": {
3508+
"target": "com.amazonaws.connect#TagAndConditionList",
3509+
"traits": {
3510+
"smithy.api#documentation": "<p>A leaf node condition which can be used to specify a tag condition.</p>"
3511+
}
3512+
},
3513+
"HierarchyGroupCondition": {
3514+
"target": "com.amazonaws.connect#HierarchyGroupCondition"
3515+
}
3516+
},
3517+
"traits": {
3518+
"smithy.api#documentation": "<p>A list of conditions which would be applied together with an <code>AND</code>\n condition.</p>"
3519+
}
3520+
},
35043521
"com.amazonaws.connect#AttributeName": {
35053522
"type": "string",
35063523
"traits": {
@@ -3510,6 +3527,12 @@
35103527
}
35113528
}
35123529
},
3530+
"com.amazonaws.connect#AttributeOrConditionList": {
3531+
"type": "list",
3532+
"member": {
3533+
"target": "com.amazonaws.connect#AttributeAndCondition"
3534+
}
3535+
},
35133536
"com.amazonaws.connect#AttributeValue": {
35143537
"type": "string",
35153538
"traits": {
@@ -5434,6 +5457,32 @@
54345457
"smithy.api#documentation": "<p>An object that can be used to specify Tag conditions inside the <code>SearchFilter</code>.\n This accepts an <code>OR</code> of <code>AND</code> (List of List) input where: </p>\n <ul>\n <li>\n <p>Top level list specifies conditions that need to be applied with <code>OR</code>\n operator</p>\n </li>\n <li>\n <p>Inner list specifies conditions that need to be applied with <code>AND</code>\n operator.</p>\n </li>\n </ul>"
54355458
}
54365459
},
5460+
"com.amazonaws.connect#ControlPlaneUserAttributeFilter": {
5461+
"type": "structure",
5462+
"members": {
5463+
"OrConditions": {
5464+
"target": "com.amazonaws.connect#AttributeOrConditionList",
5465+
"traits": {
5466+
"smithy.api#documentation": "<p>A list of conditions which would be applied together with an <code>OR</code>\n condition.</p>"
5467+
}
5468+
},
5469+
"AndCondition": {
5470+
"target": "com.amazonaws.connect#AttributeAndCondition",
5471+
"traits": {
5472+
"smithy.api#documentation": "<p>A list of conditions which would be applied together with an <code>AND</code>\n condition.</p>"
5473+
}
5474+
},
5475+
"TagCondition": {
5476+
"target": "com.amazonaws.connect#TagCondition"
5477+
},
5478+
"HierarchyGroupCondition": {
5479+
"target": "com.amazonaws.connect#HierarchyGroupCondition"
5480+
}
5481+
},
5482+
"traits": {
5483+
"smithy.api#documentation": "<p>An object that can be used to specify Tag conditions or Hierarchy Group conditions inside\n the <code>SearchFilter</code>.</p>\n <p>This accepts an <code>OR</code> of <code>AND</code> (List of List) input where:</p>\n <ul>\n <li>\n <p>The top level list specifies conditions that need to be applied with <code>OR</code>\n operator</p>\n </li>\n <li>\n <p>The inner list specifies conditions that need to be applied with <code>AND</code>\n operator.</p>\n </li>\n </ul>\n <note>\n <p>Only one field can be populated. Maximum number of allowed Tag conditions is 25. Maximum\n number of allowed Hierarchy Group conditions is 20. </p>\n </note>"
5484+
}
5485+
},
54375486
"com.amazonaws.connect#CreateAgentStatus": {
54385487
"type": "operation",
54395488
"input": {
@@ -7149,6 +7198,18 @@
71497198
"traits": {
71507199
"smithy.api#documentation": "<p>This API is in preview release for Amazon Connect and is subject to change.</p>\n <p>A list of third-party applications that the security profile will give access to.</p>"
71517200
}
7201+
},
7202+
"HierarchyRestrictedResources": {
7203+
"target": "com.amazonaws.connect#HierarchyRestrictedResourceList",
7204+
"traits": {
7205+
"smithy.api#documentation": "<p>The list of resources that a security profile applies hierarchy restrictions to in Amazon Connect. Following are acceptable ResourceNames: <code>User</code>.</p>"
7206+
}
7207+
},
7208+
"AllowedAccessControlHierarchyGroupId": {
7209+
"target": "com.amazonaws.connect#HierarchyGroupId",
7210+
"traits": {
7211+
"smithy.api#documentation": "<p>The identifier of the hierarchy group that a security profile uses to restrict access to resources in Amazon Connect.</p>"
7212+
}
71527213
}
71537214
},
71547215
"traits": {
@@ -15961,6 +16022,21 @@
1596116022
"smithy.api#documentation": "<p>Information about the levels in the hierarchy group.</p>"
1596216023
}
1596316024
},
16025+
"com.amazonaws.connect#HierarchyRestrictedResourceList": {
16026+
"type": "list",
16027+
"member": {
16028+
"target": "com.amazonaws.connect#HierarchyRestrictedResourceName"
16029+
}
16030+
},
16031+
"com.amazonaws.connect#HierarchyRestrictedResourceName": {
16032+
"type": "string",
16033+
"traits": {
16034+
"smithy.api#length": {
16035+
"min": 1,
16036+
"max": 128
16037+
}
16038+
}
16039+
},
1596416040
"com.amazonaws.connect#HierarchyStructure": {
1596516041
"type": "structure",
1596616042
"members": {
@@ -29590,6 +29666,18 @@
2959029666
"traits": {
2959129667
"smithy.api#documentation": "<p>The Amazon Web Services Region where this resource was last modified.</p>"
2959229668
}
29669+
},
29670+
"HierarchyRestrictedResources": {
29671+
"target": "com.amazonaws.connect#HierarchyRestrictedResourceList",
29672+
"traits": {
29673+
"smithy.api#documentation": "<p>The list of resources that a security profile applies hierarchy restrictions to in Amazon Connect. Following are acceptable ResourceNames: <code>User</code>.</p>"
29674+
}
29675+
},
29676+
"AllowedAccessControlHierarchyGroupId": {
29677+
"target": "com.amazonaws.connect#HierarchyGroupId",
29678+
"traits": {
29679+
"smithy.api#documentation": "<p>The identifier of the hierarchy group that a security profile uses to restrict access to\n resources in Amazon Connect.</p>"
29680+
}
2959329681
}
2959429682
},
2959529683
"traits": {
@@ -35660,6 +35748,18 @@
3566035748
"traits": {
3566135749
"smithy.api#documentation": "<p>This API is in preview release for Amazon Connect and is subject to change.</p>\n <p>A list of the third-party application's metadata.</p>"
3566235750
}
35751+
},
35752+
"HierarchyRestrictedResources": {
35753+
"target": "com.amazonaws.connect#HierarchyRestrictedResourceList",
35754+
"traits": {
35755+
"smithy.api#documentation": "<p>The list of resources that a security profile applies hierarchy restrictions to in Amazon Connect. Following are acceptable ResourceNames: <code>User</code>.</p>"
35756+
}
35757+
},
35758+
"AllowedAccessControlHierarchyGroupId": {
35759+
"target": "com.amazonaws.connect#HierarchyGroupId",
35760+
"traits": {
35761+
"smithy.api#documentation": "<p>The identifier of the hierarchy group that a security profile uses to restrict access to resources in Amazon Connect.</p>"
35762+
}
3566335763
}
3566435764
},
3566535765
"traits": {
@@ -37165,6 +37265,12 @@
3716537265
"members": {
3716637266
"TagFilter": {
3716737267
"target": "com.amazonaws.connect#ControlPlaneTagFilter"
37268+
},
37269+
"UserAttributeFilter": {
37270+
"target": "com.amazonaws.connect#ControlPlaneUserAttributeFilter",
37271+
"traits": {
37272+
"smithy.api#documentation": "<p>An object that can be used to specify Tag conditions or Hierarchy Group conditions inside\n the SearchFilter.</p>\n <p>This accepts an <code>OR</code> of <code>AND</code> (List of List) input where:</p>\n <ul>\n <li>\n <p>The top level list specifies conditions that need to be applied with <code>OR</code>\n operator.</p>\n </li>\n <li>\n <p>The inner list specifies conditions that need to be applied with <code>AND</code>\n operator.</p>\n </li>\n </ul>\n <note>\n <p>Only one field can be populated. This object can’t be used along with TagFilter. Request\n can either contain TagFilter or UserAttributeFilter if SearchFilter is specified, combination of\n both is not supported and such request will throw AccessDeniedException.</p>\n </note>"
37273+
}
3716837274
}
3716937275
},
3717037276
"traits": {

0 commit comments

Comments
 (0)
Please sign in to comment.