Skip to content

Commit 83abe06

Browse files
author
awstools
committed
feat(client-connectcampaigns): Amazon Connect outbound campaigns has launched agentless dialing mode which enables customers to make automated outbound calls without agent engagement. This release updates three of the campaign management API's to support the new agentless dialing mode and the new dialing capacity field.
1 parent 1552f49 commit 83abe06

File tree

7 files changed

+515
-276
lines changed

7 files changed

+515
-276
lines changed

clients/client-connectcampaigns/src/commands/CreateCampaignCommand.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,15 +49,20 @@ export interface CreateCampaignCommandOutput extends CreateCampaignResponse, __M
4949
* dialerConfig: { // DialerConfig Union: only one key present
5050
* progressiveDialerConfig: { // ProgressiveDialerConfig
5151
* bandwidthAllocation: Number("double"), // required
52+
* dialingCapacity: Number("double"),
5253
* },
5354
* predictiveDialerConfig: { // PredictiveDialerConfig
5455
* bandwidthAllocation: Number("double"), // required
56+
* dialingCapacity: Number("double"),
57+
* },
58+
* agentlessDialerConfig: { // AgentlessDialerConfig
59+
* dialingCapacity: Number("double"),
5560
* },
5661
* },
5762
* outboundCallConfig: { // OutboundCallConfig
5863
* connectContactFlowId: "STRING_VALUE", // required
5964
* connectSourcePhoneNumber: "STRING_VALUE",
60-
* connectQueueId: "STRING_VALUE", // required
65+
* connectQueueId: "STRING_VALUE",
6166
* answerMachineDetectionConfig: { // AnswerMachineDetectionConfig
6267
* enableAnswerMachineDetection: true || false, // required
6368
* },

clients/client-connectcampaigns/src/commands/DescribeCampaignCommand.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,15 +57,20 @@ export interface DescribeCampaignCommandOutput extends DescribeCampaignResponse,
5757
* // dialerConfig: { // DialerConfig Union: only one key present
5858
* // progressiveDialerConfig: { // ProgressiveDialerConfig
5959
* // bandwidthAllocation: Number("double"), // required
60+
* // dialingCapacity: Number("double"),
6061
* // },
6162
* // predictiveDialerConfig: { // PredictiveDialerConfig
6263
* // bandwidthAllocation: Number("double"), // required
64+
* // dialingCapacity: Number("double"),
65+
* // },
66+
* // agentlessDialerConfig: { // AgentlessDialerConfig
67+
* // dialingCapacity: Number("double"),
6368
* // },
6469
* // },
6570
* // outboundCallConfig: { // OutboundCallConfig
6671
* // connectContactFlowId: "STRING_VALUE", // required
6772
* // connectSourcePhoneNumber: "STRING_VALUE",
68-
* // connectQueueId: "STRING_VALUE", // required
73+
* // connectQueueId: "STRING_VALUE",
6974
* // answerMachineDetectionConfig: { // AnswerMachineDetectionConfig
7075
* // enableAnswerMachineDetection: true || false, // required
7176
* // },

clients/client-connectcampaigns/src/commands/UpdateCampaignDialerConfigCommand.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,9 +48,14 @@ export interface UpdateCampaignDialerConfigCommandOutput extends __MetadataBeare
4848
* dialerConfig: { // DialerConfig Union: only one key present
4949
* progressiveDialerConfig: { // ProgressiveDialerConfig
5050
* bandwidthAllocation: Number("double"), // required
51+
* dialingCapacity: Number("double"),
5152
* },
5253
* predictiveDialerConfig: { // PredictiveDialerConfig
5354
* bandwidthAllocation: Number("double"), // required
55+
* dialingCapacity: Number("double"),
56+
* },
57+
* agentlessDialerConfig: { // AgentlessDialerConfig
58+
* dialingCapacity: Number("double"),
5459
* },
5560
* },
5661
* };

clients/client-connectcampaigns/src/endpoint/ruleset.ts

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -6,24 +6,25 @@ import { RuleSetObject } from "@smithy/types";
66
or see "smithy.rules#endpointRuleSet"
77
in codegen/sdk-codegen/aws-models/connectcampaigns.json */
88

9-
const p="required",
10-
q="fn",
11-
r="argv",
12-
s="ref";
13-
const a="PartitionResult",
9+
const q="required",
10+
r="fn",
11+
s="argv",
12+
t="ref";
13+
const a="isSet",
1414
b="tree",
1515
c="error",
1616
d="endpoint",
17-
e={[p]:false,"type":"String"},
18-
f={[p]:true,"default":false,"type":"Boolean"},
19-
g={[s]:"Endpoint"},
20-
h={[q]:"booleanEquals",[r]:[{[s]:"UseFIPS"},true]},
21-
i={[q]:"booleanEquals",[r]:[{[s]:"UseDualStack"},true]},
22-
j={},
23-
k={[q]:"booleanEquals",[r]:[true,{[q]:"getAttr",[r]:[{[s]:a},"supportsFIPS"]}]},
24-
l={[q]:"booleanEquals",[r]:[true,{[q]:"getAttr",[r]:[{[s]:a},"supportsDualStack"]}]},
25-
m=[g],
26-
n=[h],
27-
o=[i];
28-
const _data={version:"1.0",parameters:{Region:e,UseDualStack:f,UseFIPS:f,Endpoint:e},rules:[{conditions:[{[q]:"aws.partition",[r]:[{[s]:"Region"}],assign:a}],type:b,rules:[{conditions:[{[q]:"isSet",[r]:m},{[q]:"parseURL",[r]:m,assign:"url"}],type:b,rules:[{conditions:n,error:"Invalid Configuration: FIPS and custom endpoint are not supported",type:c},{type:b,rules:[{conditions:o,error:"Invalid Configuration: Dualstack and custom endpoint are not supported",type:c},{endpoint:{url:g,properties:j,headers:j},type:d}]}]},{conditions:[h,i],type:b,rules:[{conditions:[k,l],type:b,rules:[{endpoint:{url:"https://connect-campaigns-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:j,headers:j},type:d}]},{error:"FIPS and DualStack are enabled, but this partition does not support one or both",type:c}]},{conditions:n,type:b,rules:[{conditions:[k],type:b,rules:[{type:b,rules:[{endpoint:{url:"https://connect-campaigns-fips.{Region}.{PartitionResult#dnsSuffix}",properties:j,headers:j},type:d}]}]},{error:"FIPS is enabled but this partition does not support FIPS",type:c}]},{conditions:o,type:b,rules:[{conditions:[l],type:b,rules:[{endpoint:{url:"https://connect-campaigns.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:j,headers:j},type:d}]},{error:"DualStack is enabled but this partition does not support DualStack",type:c}]},{endpoint:{url:"https://connect-campaigns.{Region}.{PartitionResult#dnsSuffix}",properties:j,headers:j},type:d}]}]};
17+
e="PartitionResult",
18+
f={[q]:false,"type":"String"},
19+
g={[q]:true,"default":false,"type":"Boolean"},
20+
h={[t]:"Endpoint"},
21+
i={[r]:"booleanEquals",[s]:[{[t]:"UseFIPS"},true]},
22+
j={[r]:"booleanEquals",[s]:[{[t]:"UseDualStack"},true]},
23+
k={},
24+
l={[r]:"booleanEquals",[s]:[true,{[r]:"getAttr",[s]:[{[t]:e},"supportsFIPS"]}]},
25+
m={[r]:"booleanEquals",[s]:[true,{[r]:"getAttr",[s]:[{[t]:e},"supportsDualStack"]}]},
26+
n=[i],
27+
o=[j],
28+
p=[{[t]:"Region"}];
29+
const _data={version:"1.0",parameters:{Region:f,UseDualStack:g,UseFIPS:g,Endpoint:f},rules:[{conditions:[{[r]:a,[s]:[h]}],type:b,rules:[{conditions:n,error:"Invalid Configuration: FIPS and custom endpoint are not supported",type:c},{conditions:o,error:"Invalid Configuration: Dualstack and custom endpoint are not supported",type:c},{endpoint:{url:h,properties:k,headers:k},type:d}]},{conditions:[{[r]:a,[s]:p}],type:b,rules:[{conditions:[{[r]:"aws.partition",[s]:p,assign:e}],type:b,rules:[{conditions:[i,j],type:b,rules:[{conditions:[l,m],type:b,rules:[{endpoint:{url:"https://connect-campaigns-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:k,headers:k},type:d}]},{error:"FIPS and DualStack are enabled, but this partition does not support one or both",type:c}]},{conditions:n,type:b,rules:[{conditions:[l],type:b,rules:[{endpoint:{url:"https://connect-campaigns-fips.{Region}.{PartitionResult#dnsSuffix}",properties:k,headers:k},type:d}]},{error:"FIPS is enabled but this partition does not support FIPS",type:c}]},{conditions:o,type:b,rules:[{conditions:[m],type:b,rules:[{endpoint:{url:"https://connect-campaigns.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:k,headers:k},type:d}]},{error:"DualStack is enabled but this partition does not support DualStack",type:c}]},{endpoint:{url:"https://connect-campaigns.{Region}.{PartitionResult#dnsSuffix}",properties:k,headers:k},type:d}]}]},{error:"Invalid Configuration: Missing Region",type:c}]};
2930
export const ruleSet: RuleSetObject = _data;

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

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,18 @@ export class AccessDeniedException extends __BaseException {
3030
}
3131
}
3232

33+
/**
34+
* @public
35+
* Agentless Dialer config
36+
*/
37+
export interface AgentlessDialerConfig {
38+
/**
39+
* @public
40+
* Allocates dialing capacity for this campaign between multiple active campaigns
41+
*/
42+
dialingCapacity?: number;
43+
}
44+
3345
/**
3446
* @public
3547
* The request could not be processed because of conflict in the current state of the resource.
@@ -67,6 +79,12 @@ export interface PredictiveDialerConfig {
6779
* The bandwidth allocation of a queue resource.
6880
*/
6981
bandwidthAllocation: number | undefined;
82+
83+
/**
84+
* @public
85+
* Allocates dialing capacity for this campaign between multiple active campaigns
86+
*/
87+
dialingCapacity?: number;
7088
}
7189

7290
/**
@@ -79,13 +97,20 @@ export interface ProgressiveDialerConfig {
7997
* The bandwidth allocation of a queue resource.
8098
*/
8199
bandwidthAllocation: number | undefined;
100+
101+
/**
102+
* @public
103+
* Allocates dialing capacity for this campaign between multiple active campaigns
104+
*/
105+
dialingCapacity?: number;
82106
}
83107

84108
/**
85109
* @public
86110
* The possible types of dialer config parameters
87111
*/
88112
export type DialerConfig =
113+
| DialerConfig.AgentlessDialerConfigMember
89114
| DialerConfig.PredictiveDialerConfigMember
90115
| DialerConfig.ProgressiveDialerConfigMember
91116
| DialerConfig.$UnknownMember;
@@ -101,6 +126,7 @@ export namespace DialerConfig {
101126
export interface ProgressiveDialerConfigMember {
102127
progressiveDialerConfig: ProgressiveDialerConfig;
103128
predictiveDialerConfig?: never;
129+
agentlessDialerConfig?: never;
104130
$unknown?: never;
105131
}
106132

@@ -111,6 +137,18 @@ export namespace DialerConfig {
111137
export interface PredictiveDialerConfigMember {
112138
progressiveDialerConfig?: never;
113139
predictiveDialerConfig: PredictiveDialerConfig;
140+
agentlessDialerConfig?: never;
141+
$unknown?: never;
142+
}
143+
144+
/**
145+
* @public
146+
* Agentless Dialer config
147+
*/
148+
export interface AgentlessDialerConfigMember {
149+
progressiveDialerConfig?: never;
150+
predictiveDialerConfig?: never;
151+
agentlessDialerConfig: AgentlessDialerConfig;
114152
$unknown?: never;
115153
}
116154

@@ -120,19 +158,22 @@ export namespace DialerConfig {
120158
export interface $UnknownMember {
121159
progressiveDialerConfig?: never;
122160
predictiveDialerConfig?: never;
161+
agentlessDialerConfig?: never;
123162
$unknown: [string, any];
124163
}
125164

126165
export interface Visitor<T> {
127166
progressiveDialerConfig: (value: ProgressiveDialerConfig) => T;
128167
predictiveDialerConfig: (value: PredictiveDialerConfig) => T;
168+
agentlessDialerConfig: (value: AgentlessDialerConfig) => T;
129169
_: (name: string, value: any) => T;
130170
}
131171

132172
export const visit = <T>(value: DialerConfig, visitor: Visitor<T>): T => {
133173
if (value.progressiveDialerConfig !== undefined)
134174
return visitor.progressiveDialerConfig(value.progressiveDialerConfig);
135175
if (value.predictiveDialerConfig !== undefined) return visitor.predictiveDialerConfig(value.predictiveDialerConfig);
176+
if (value.agentlessDialerConfig !== undefined) return visitor.agentlessDialerConfig(value.agentlessDialerConfig);
136177
return visitor._(value.$unknown[0], value.$unknown[1]);
137178
};
138179
}
@@ -170,7 +211,7 @@ export interface OutboundCallConfig {
170211
* @public
171212
* The queue for the call. If you specify a queue, the phone displayed for caller ID is the phone number specified in the queue. If you do not specify a queue, the queue defined in the contact flow is used. If you do not specify a queue, you must specify a source phone number.
172213
*/
173-
connectQueueId: string | undefined;
214+
connectQueueId?: string;
174215

175216
/**
176217
* @public

clients/client-connectcampaigns/src/protocols/Aws_restJson1.ts

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ import {
7777
import { ConnectCampaignsServiceException as __BaseException } from "../models/ConnectCampaignsServiceException";
7878
import {
7979
AccessDeniedException,
80+
AgentlessDialerConfig,
8081
AnswerMachineDetectionConfig,
8182
Campaign,
8283
CampaignFilters,
@@ -2196,6 +2197,15 @@ const de_ValidationExceptionRes = async (parsedOutput: any, context: __SerdeCont
21962197
return __decorateServiceException(exception, parsedOutput.body);
21972198
};
21982199

2200+
/**
2201+
* serializeAws_restJson1AgentlessDialerConfig
2202+
*/
2203+
const se_AgentlessDialerConfig = (input: AgentlessDialerConfig, context: __SerdeContext): any => {
2204+
return take(input, {
2205+
dialingCapacity: __serializeFloat,
2206+
});
2207+
};
2208+
21992209
// se_AnswerMachineDetectionConfig omitted.
22002210

22012211
// se_Attributes omitted.
@@ -2209,6 +2219,7 @@ const de_ValidationExceptionRes = async (parsedOutput: any, context: __SerdeCont
22092219
*/
22102220
const se_DialerConfig = (input: DialerConfig, context: __SerdeContext): any => {
22112221
return DialerConfig.visit(input, {
2222+
agentlessDialerConfig: (value) => ({ agentlessDialerConfig: se_AgentlessDialerConfig(value, context) }),
22122223
predictiveDialerConfig: (value) => ({ predictiveDialerConfig: se_PredictiveDialerConfig(value, context) }),
22132224
progressiveDialerConfig: (value) => ({ progressiveDialerConfig: se_ProgressiveDialerConfig(value, context) }),
22142225
_: (name, value) => ({ name: value } as any),
@@ -2250,6 +2261,7 @@ const se_DialRequestList = (input: DialRequest[], context: __SerdeContext): any
22502261
const se_PredictiveDialerConfig = (input: PredictiveDialerConfig, context: __SerdeContext): any => {
22512262
return take(input, {
22522263
bandwidthAllocation: __serializeFloat,
2264+
dialingCapacity: __serializeFloat,
22532265
});
22542266
};
22552267

@@ -2259,11 +2271,21 @@ const se_PredictiveDialerConfig = (input: PredictiveDialerConfig, context: __Ser
22592271
const se_ProgressiveDialerConfig = (input: ProgressiveDialerConfig, context: __SerdeContext): any => {
22602272
return take(input, {
22612273
bandwidthAllocation: __serializeFloat,
2274+
dialingCapacity: __serializeFloat,
22622275
});
22632276
};
22642277

22652278
// se_TagMap omitted.
22662279

2280+
/**
2281+
* deserializeAws_restJson1AgentlessDialerConfig
2282+
*/
2283+
const de_AgentlessDialerConfig = (output: any, context: __SerdeContext): AgentlessDialerConfig => {
2284+
return take(output, {
2285+
dialingCapacity: __limitedParseDouble,
2286+
}) as any;
2287+
};
2288+
22672289
// de_AnswerMachineDetectionConfig omitted.
22682290

22692291
/**
@@ -2289,6 +2311,11 @@ const de_Campaign = (output: any, context: __SerdeContext): Campaign => {
22892311
* deserializeAws_restJson1DialerConfig
22902312
*/
22912313
const de_DialerConfig = (output: any, context: __SerdeContext): DialerConfig => {
2314+
if (output.agentlessDialerConfig != null) {
2315+
return {
2316+
agentlessDialerConfig: de_AgentlessDialerConfig(output.agentlessDialerConfig, context),
2317+
};
2318+
}
22922319
if (output.predictiveDialerConfig != null) {
22932320
return {
22942321
predictiveDialerConfig: de_PredictiveDialerConfig(output.predictiveDialerConfig, context),
@@ -2324,6 +2351,7 @@ const de_DialerConfig = (output: any, context: __SerdeContext): DialerConfig =>
23242351
const de_PredictiveDialerConfig = (output: any, context: __SerdeContext): PredictiveDialerConfig => {
23252352
return take(output, {
23262353
bandwidthAllocation: __limitedParseDouble,
2354+
dialingCapacity: __limitedParseDouble,
23272355
}) as any;
23282356
};
23292357

@@ -2333,6 +2361,7 @@ const de_PredictiveDialerConfig = (output: any, context: __SerdeContext): Predic
23332361
const de_ProgressiveDialerConfig = (output: any, context: __SerdeContext): ProgressiveDialerConfig => {
23342362
return take(output, {
23352363
bandwidthAllocation: __limitedParseDouble,
2364+
dialingCapacity: __limitedParseDouble,
23362365
}) as any;
23372366
};
23382367

0 commit comments

Comments
 (0)