cdk-amazon-connect-constructs 0.1.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,125 @@
1
+ import { aws_connect as connect } from 'aws-cdk-lib';
2
+ import { Construct } from 'constructs';
3
+ /**
4
+ * Common identity-management modes supported by Amazon Connect.
5
+ */
6
+ export declare enum IdentityManagementType {
7
+ /**
8
+ * Amazon Connect stores user identities.
9
+ */
10
+ CONNECT_MANAGED = "CONNECT_MANAGED",
11
+ /**
12
+ * Users are managed by an existing SAML identity provider.
13
+ */
14
+ SAML = "SAML",
15
+ /**
16
+ * Users are managed by AWS Directory Service.
17
+ */
18
+ EXISTING_DIRECTORY = "EXISTING_DIRECTORY"
19
+ }
20
+ /**
21
+ * Capabilities enabled for an Amazon Connect instance.
22
+ */
23
+ export interface ConnectInstanceAttributes {
24
+ /**
25
+ * Allow inbound calls.
26
+ *
27
+ * @default true
28
+ */
29
+ readonly inboundCalls?: boolean;
30
+ /**
31
+ * Allow outbound calls.
32
+ *
33
+ * @default true
34
+ */
35
+ readonly outboundCalls?: boolean;
36
+ /**
37
+ * Enable contact flow logs.
38
+ *
39
+ * @default false
40
+ */
41
+ readonly contactflowLogs?: boolean;
42
+ /**
43
+ * Enable contact lens.
44
+ *
45
+ * @default false
46
+ */
47
+ readonly contactLens?: boolean;
48
+ /**
49
+ * Enable early media.
50
+ *
51
+ * @default false
52
+ */
53
+ readonly earlyMedia?: boolean;
54
+ /**
55
+ * Enable use of custom chatbots.
56
+ *
57
+ * @default false
58
+ */
59
+ readonly useCustomTtsVoices?: boolean;
60
+ }
61
+ /**
62
+ * An Amazon Connect instance reference.
63
+ */
64
+ export interface IConnectInstance {
65
+ /**
66
+ * The Amazon Connect instance ARN.
67
+ */
68
+ readonly instanceArn: string;
69
+ /**
70
+ * The Amazon Connect instance ID.
71
+ */
72
+ readonly instanceId: string;
73
+ }
74
+ /**
75
+ * Properties for a new Amazon Connect instance.
76
+ */
77
+ export interface ConnectInstanceProps {
78
+ /**
79
+ * The instance alias shown in the Amazon Connect console.
80
+ */
81
+ readonly instanceAlias: string;
82
+ /**
83
+ * How identities are managed for this instance.
84
+ *
85
+ * @default IdentityManagementType.CONNECT_MANAGED
86
+ */
87
+ readonly identityManagementType?: IdentityManagementType;
88
+ /**
89
+ * Existing AWS Directory Service directory ID.
90
+ *
91
+ * Required when identityManagementType is EXISTING_DIRECTORY.
92
+ *
93
+ * @default - no directory ID
94
+ */
95
+ readonly directoryId?: string;
96
+ /**
97
+ * Instance capabilities.
98
+ *
99
+ * @default - inbound and outbound calls enabled
100
+ */
101
+ readonly attributes?: ConnectInstanceAttributes;
102
+ }
103
+ /**
104
+ * L2-style wrapper for AWS::Connect::Instance.
105
+ */
106
+ export declare class ConnectInstance extends Construct implements IConnectInstance {
107
+ /**
108
+ * Import an existing Amazon Connect instance by ARN.
109
+ */
110
+ static fromInstanceArn(scope: Construct, id: string, instanceArn: string): IConnectInstance;
111
+ /**
112
+ * The underlying CloudFormation resource.
113
+ */
114
+ readonly resource: connect.CfnInstance;
115
+ /**
116
+ * The Amazon Connect instance ARN.
117
+ */
118
+ readonly instanceArn: string;
119
+ /**
120
+ * The Amazon Connect instance ID.
121
+ */
122
+ readonly instanceId: string;
123
+ constructor(scope: Construct, id: string, props: ConnectInstanceProps);
124
+ }
125
+ //# sourceMappingURL=connect-instance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connect-instance.d.ts","sourceRoot":"","sources":["../src/connect-instance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,IAAI,OAAO,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGvC;;GAEG;AACH,oBAAY,sBAAsB;IAChC;;OAEG;IACH,eAAe,oBAAoB;IAEnC;;OAEG;IACH,IAAI,SAAS;IAEb;;OAEG;IACH,kBAAkB,uBAAuB;CAC1C;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC;;;;OAIG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAEhC;;;;OAIG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IAEjC;;;;OAIG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IAEnC;;;;OAIG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAE/B;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAE9B;;;;OAIG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAE/B;;;;OAIG;IACH,QAAQ,CAAC,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;IAEzD;;;;;;OAMG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAE9B;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,yBAAyB,CAAC;CACjD;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,SAAU,YAAW,gBAAgB;IACxE;;OAEG;WACW,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,gBAAgB;IAIlG;;OAEG;IACH,SAAgB,QAAQ,EAAE,OAAO,CAAC,WAAW,CAAC;IAE9C;;OAEG;IACH,SAAgB,WAAW,EAAE,MAAM,CAAC;IAEpC;;OAEG;IACH,SAAgB,UAAU,EAAE,MAAM,CAAC;gBAEhB,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,oBAAoB;CAsB7E"}
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ConnectInstance = exports.IdentityManagementType = void 0;
4
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
5
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
6
+ const constructs_1 = require("constructs");
7
+ const arn_1 = require("./private/arn");
8
+ /**
9
+ * Common identity-management modes supported by Amazon Connect.
10
+ */
11
+ var IdentityManagementType;
12
+ (function (IdentityManagementType) {
13
+ /**
14
+ * Amazon Connect stores user identities.
15
+ */
16
+ IdentityManagementType["CONNECT_MANAGED"] = "CONNECT_MANAGED";
17
+ /**
18
+ * Users are managed by an existing SAML identity provider.
19
+ */
20
+ IdentityManagementType["SAML"] = "SAML";
21
+ /**
22
+ * Users are managed by AWS Directory Service.
23
+ */
24
+ IdentityManagementType["EXISTING_DIRECTORY"] = "EXISTING_DIRECTORY";
25
+ })(IdentityManagementType || (exports.IdentityManagementType = IdentityManagementType = {}));
26
+ /**
27
+ * L2-style wrapper for AWS::Connect::Instance.
28
+ */
29
+ class ConnectInstance extends constructs_1.Construct {
30
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdk-amazon-connect-constructs.ConnectInstance", version: "0.1.0-alpha.0" };
31
+ /**
32
+ * Import an existing Amazon Connect instance by ARN.
33
+ */
34
+ static fromInstanceArn(scope, id, instanceArn) {
35
+ return new ImportedConnectInstance(scope, id, instanceArn);
36
+ }
37
+ /**
38
+ * The underlying CloudFormation resource.
39
+ */
40
+ resource;
41
+ /**
42
+ * The Amazon Connect instance ARN.
43
+ */
44
+ instanceArn;
45
+ /**
46
+ * The Amazon Connect instance ID.
47
+ */
48
+ instanceId;
49
+ constructor(scope, id, props) {
50
+ super(scope, id);
51
+ if (!props.instanceAlias.trim()) {
52
+ throw new Error('instanceAlias must not be empty.');
53
+ }
54
+ const identityManagementType = props.identityManagementType ?? IdentityManagementType.CONNECT_MANAGED;
55
+ if (identityManagementType === IdentityManagementType.EXISTING_DIRECTORY && !props.directoryId) {
56
+ throw new Error('directoryId is required when identityManagementType is EXISTING_DIRECTORY.');
57
+ }
58
+ this.resource = new aws_cdk_lib_1.aws_connect.CfnInstance(this, 'Resource', {
59
+ attributes: toCfnAttributes(props.attributes),
60
+ directoryId: props.directoryId,
61
+ identityManagementType,
62
+ instanceAlias: props.instanceAlias,
63
+ });
64
+ this.instanceArn = this.resource.getAtt('Arn').toString();
65
+ this.instanceId = this.resource.getAtt('Id').toString();
66
+ }
67
+ }
68
+ exports.ConnectInstance = ConnectInstance;
69
+ class ImportedConnectInstance extends constructs_1.Construct {
70
+ instanceArn;
71
+ instanceId;
72
+ constructor(scope, id, instanceArn) {
73
+ super(scope, id);
74
+ this.instanceArn = instanceArn;
75
+ this.instanceId = (0, arn_1.resourceNameFromSlashArn)(this, instanceArn);
76
+ }
77
+ }
78
+ function toCfnAttributes(attributes) {
79
+ return {
80
+ inboundCalls: attributes?.inboundCalls ?? true,
81
+ outboundCalls: attributes?.outboundCalls ?? true,
82
+ contactflowLogs: attributes?.contactflowLogs ?? false,
83
+ contactLens: attributes?.contactLens ?? false,
84
+ earlyMedia: attributes?.earlyMedia ?? false,
85
+ useCustomTtsVoices: attributes?.useCustomTtsVoices ?? false,
86
+ };
87
+ }
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdC1pbnN0YW5jZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25uZWN0LWluc3RhbmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSw2Q0FBcUQ7QUFDckQsMkNBQXVDO0FBQ3ZDLHVDQUF5RDtBQUV6RDs7R0FFRztBQUNILElBQVksc0JBZVg7QUFmRCxXQUFZLHNCQUFzQjtJQUNoQzs7T0FFRztJQUNILDZEQUFtQyxDQUFBO0lBRW5DOztPQUVHO0lBQ0gsdUNBQWEsQ0FBQTtJQUViOztPQUVHO0lBQ0gsbUVBQXlDLENBQUE7QUFDM0MsQ0FBQyxFQWZXLHNCQUFzQixzQ0FBdEIsc0JBQXNCLFFBZWpDO0FBaUdEOztHQUVHO0FBQ0gsTUFBYSxlQUFnQixTQUFRLHNCQUFTOztJQUM1Qzs7T0FFRztJQUNJLE1BQU0sQ0FBQyxlQUFlLENBQUMsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsV0FBbUI7UUFDN0UsT0FBTyxJQUFJLHVCQUF1QixDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVEOztPQUVHO0lBQ2EsUUFBUSxDQUFzQjtJQUU5Qzs7T0FFRztJQUNhLFdBQVcsQ0FBUztJQUVwQzs7T0FFRztJQUNhLFVBQVUsQ0FBUztJQUVuQyxZQUFtQixLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUEyQjtRQUMxRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7WUFDaEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO1FBQ3RELENBQUM7UUFFRCxNQUFNLHNCQUFzQixHQUFHLEtBQUssQ0FBQyxzQkFBc0IsSUFBSSxzQkFBc0IsQ0FBQyxlQUFlLENBQUM7UUFDdEcsSUFBSSxzQkFBc0IsS0FBSyxzQkFBc0IsQ0FBQyxrQkFBa0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUMvRixNQUFNLElBQUksS0FBSyxDQUFDLDRFQUE0RSxDQUFDLENBQUM7UUFDaEcsQ0FBQztRQUVELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSx5QkFBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQ3hELFVBQVUsRUFBRSxlQUFlLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQztZQUM3QyxXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7WUFDOUIsc0JBQXNCO1lBQ3RCLGFBQWEsRUFBRSxLQUFLLENBQUMsYUFBYTtTQUNuQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzFELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDMUQsQ0FBQzs7QUE1Q0gsMENBNkNDO0FBRUQsTUFBTSx1QkFBd0IsU0FBUSxzQkFBUztJQUM3QixXQUFXLENBQVM7SUFDcEIsVUFBVSxDQUFTO0lBRW5DLFlBQW1CLEtBQWdCLEVBQUUsRUFBVSxFQUFFLFdBQW1CO1FBQ2xFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakIsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDL0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFBLDhCQUF3QixFQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztJQUNoRSxDQUFDO0NBQ0Y7QUFFRCxTQUFTLGVBQWUsQ0FBQyxVQUFzQztJQUM3RCxPQUFPO1FBQ0wsWUFBWSxFQUFFLFVBQVUsRUFBRSxZQUFZLElBQUksSUFBSTtRQUM5QyxhQUFhLEVBQUUsVUFBVSxFQUFFLGFBQWEsSUFBSSxJQUFJO1FBQ2hELGVBQWUsRUFBRSxVQUFVLEVBQUUsZUFBZSxJQUFJLEtBQUs7UUFDckQsV0FBVyxFQUFFLFVBQVUsRUFBRSxXQUFXLElBQUksS0FBSztRQUM3QyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsSUFBSSxLQUFLO1FBQzNDLGtCQUFrQixFQUFFLFVBQVUsRUFBRSxrQkFBa0IsSUFBSSxLQUFLO0tBQzVELENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYXdzX2Nvbm5lY3QgYXMgY29ubmVjdCB9IGZyb20gJ2F3cy1jZGstbGliJztcclxuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XHJcbmltcG9ydCB7IHJlc291cmNlTmFtZUZyb21TbGFzaEFybiB9IGZyb20gJy4vcHJpdmF0ZS9hcm4nO1xyXG5cclxuLyoqXHJcbiAqIENvbW1vbiBpZGVudGl0eS1tYW5hZ2VtZW50IG1vZGVzIHN1cHBvcnRlZCBieSBBbWF6b24gQ29ubmVjdC5cclxuICovXHJcbmV4cG9ydCBlbnVtIElkZW50aXR5TWFuYWdlbWVudFR5cGUge1xyXG4gIC8qKlxyXG4gICAqIEFtYXpvbiBDb25uZWN0IHN0b3JlcyB1c2VyIGlkZW50aXRpZXMuXHJcbiAgICovXHJcbiAgQ09OTkVDVF9NQU5BR0VEID0gJ0NPTk5FQ1RfTUFOQUdFRCcsXHJcblxyXG4gIC8qKlxyXG4gICAqIFVzZXJzIGFyZSBtYW5hZ2VkIGJ5IGFuIGV4aXN0aW5nIFNBTUwgaWRlbnRpdHkgcHJvdmlkZXIuXHJcbiAgICovXHJcbiAgU0FNTCA9ICdTQU1MJyxcclxuXHJcbiAgLyoqXHJcbiAgICogVXNlcnMgYXJlIG1hbmFnZWQgYnkgQVdTIERpcmVjdG9yeSBTZXJ2aWNlLlxyXG4gICAqL1xyXG4gIEVYSVNUSU5HX0RJUkVDVE9SWSA9ICdFWElTVElOR19ESVJFQ1RPUlknLFxyXG59XHJcblxyXG4vKipcclxuICogQ2FwYWJpbGl0aWVzIGVuYWJsZWQgZm9yIGFuIEFtYXpvbiBDb25uZWN0IGluc3RhbmNlLlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBDb25uZWN0SW5zdGFuY2VBdHRyaWJ1dGVzIHtcclxuICAvKipcclxuICAgKiBBbGxvdyBpbmJvdW5kIGNhbGxzLlxyXG4gICAqXHJcbiAgICogQGRlZmF1bHQgdHJ1ZVxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGluYm91bmRDYWxscz86IGJvb2xlYW47XHJcblxyXG4gIC8qKlxyXG4gICAqIEFsbG93IG91dGJvdW5kIGNhbGxzLlxyXG4gICAqXHJcbiAgICogQGRlZmF1bHQgdHJ1ZVxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IG91dGJvdW5kQ2FsbHM/OiBib29sZWFuO1xyXG5cclxuICAvKipcclxuICAgKiBFbmFibGUgY29udGFjdCBmbG93IGxvZ3MuXHJcbiAgICpcclxuICAgKiBAZGVmYXVsdCBmYWxzZVxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGNvbnRhY3RmbG93TG9ncz86IGJvb2xlYW47XHJcblxyXG4gIC8qKlxyXG4gICAqIEVuYWJsZSBjb250YWN0IGxlbnMuXHJcbiAgICpcclxuICAgKiBAZGVmYXVsdCBmYWxzZVxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGNvbnRhY3RMZW5zPzogYm9vbGVhbjtcclxuXHJcbiAgLyoqXHJcbiAgICogRW5hYmxlIGVhcmx5IG1lZGlhLlxyXG4gICAqXHJcbiAgICogQGRlZmF1bHQgZmFsc2VcclxuICAgKi9cclxuICByZWFkb25seSBlYXJseU1lZGlhPzogYm9vbGVhbjtcclxuXHJcbiAgLyoqXHJcbiAgICogRW5hYmxlIHVzZSBvZiBjdXN0b20gY2hhdGJvdHMuXHJcbiAgICpcclxuICAgKiBAZGVmYXVsdCBmYWxzZVxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IHVzZUN1c3RvbVR0c1ZvaWNlcz86IGJvb2xlYW47XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBbiBBbWF6b24gQ29ubmVjdCBpbnN0YW5jZSByZWZlcmVuY2UuXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIElDb25uZWN0SW5zdGFuY2Uge1xyXG4gIC8qKlxyXG4gICAqIFRoZSBBbWF6b24gQ29ubmVjdCBpbnN0YW5jZSBBUk4uXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgaW5zdGFuY2VBcm46IHN0cmluZztcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIEFtYXpvbiBDb25uZWN0IGluc3RhbmNlIElELlxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGluc3RhbmNlSWQ6IHN0cmluZztcclxufVxyXG5cclxuLyoqXHJcbiAqIFByb3BlcnRpZXMgZm9yIGEgbmV3IEFtYXpvbiBDb25uZWN0IGluc3RhbmNlLlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBDb25uZWN0SW5zdGFuY2VQcm9wcyB7XHJcbiAgLyoqXHJcbiAgICogVGhlIGluc3RhbmNlIGFsaWFzIHNob3duIGluIHRoZSBBbWF6b24gQ29ubmVjdCBjb25zb2xlLlxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGluc3RhbmNlQWxpYXM6IHN0cmluZztcclxuXHJcbiAgLyoqXHJcbiAgICogSG93IGlkZW50aXRpZXMgYXJlIG1hbmFnZWQgZm9yIHRoaXMgaW5zdGFuY2UuXHJcbiAgICpcclxuICAgKiBAZGVmYXVsdCBJZGVudGl0eU1hbmFnZW1lbnRUeXBlLkNPTk5FQ1RfTUFOQUdFRFxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGlkZW50aXR5TWFuYWdlbWVudFR5cGU/OiBJZGVudGl0eU1hbmFnZW1lbnRUeXBlO1xyXG5cclxuICAvKipcclxuICAgKiBFeGlzdGluZyBBV1MgRGlyZWN0b3J5IFNlcnZpY2UgZGlyZWN0b3J5IElELlxyXG4gICAqXHJcbiAgICogUmVxdWlyZWQgd2hlbiBpZGVudGl0eU1hbmFnZW1lbnRUeXBlIGlzIEVYSVNUSU5HX0RJUkVDVE9SWS5cclxuICAgKlxyXG4gICAqIEBkZWZhdWx0IC0gbm8gZGlyZWN0b3J5IElEXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgZGlyZWN0b3J5SWQ/OiBzdHJpbmc7XHJcblxyXG4gIC8qKlxyXG4gICAqIEluc3RhbmNlIGNhcGFiaWxpdGllcy5cclxuICAgKlxyXG4gICAqIEBkZWZhdWx0IC0gaW5ib3VuZCBhbmQgb3V0Ym91bmQgY2FsbHMgZW5hYmxlZFxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGF0dHJpYnV0ZXM/OiBDb25uZWN0SW5zdGFuY2VBdHRyaWJ1dGVzO1xyXG59XHJcblxyXG4vKipcclxuICogTDItc3R5bGUgd3JhcHBlciBmb3IgQVdTOjpDb25uZWN0OjpJbnN0YW5jZS5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBDb25uZWN0SW5zdGFuY2UgZXh0ZW5kcyBDb25zdHJ1Y3QgaW1wbGVtZW50cyBJQ29ubmVjdEluc3RhbmNlIHtcclxuICAvKipcclxuICAgKiBJbXBvcnQgYW4gZXhpc3RpbmcgQW1hem9uIENvbm5lY3QgaW5zdGFuY2UgYnkgQVJOLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUluc3RhbmNlQXJuKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGluc3RhbmNlQXJuOiBzdHJpbmcpOiBJQ29ubmVjdEluc3RhbmNlIHtcclxuICAgIHJldHVybiBuZXcgSW1wb3J0ZWRDb25uZWN0SW5zdGFuY2Uoc2NvcGUsIGlkLCBpbnN0YW5jZUFybik7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBUaGUgdW5kZXJseWluZyBDbG91ZEZvcm1hdGlvbiByZXNvdXJjZS5cclxuICAgKi9cclxuICBwdWJsaWMgcmVhZG9ubHkgcmVzb3VyY2U6IGNvbm5lY3QuQ2ZuSW5zdGFuY2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBBbWF6b24gQ29ubmVjdCBpbnN0YW5jZSBBUk4uXHJcbiAgICovXHJcbiAgcHVibGljIHJlYWRvbmx5IGluc3RhbmNlQXJuOiBzdHJpbmc7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBBbWF6b24gQ29ubmVjdCBpbnN0YW5jZSBJRC5cclxuICAgKi9cclxuICBwdWJsaWMgcmVhZG9ubHkgaW5zdGFuY2VJZDogc3RyaW5nO1xyXG5cclxuICBwdWJsaWMgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IENvbm5lY3RJbnN0YW5jZVByb3BzKSB7XHJcbiAgICBzdXBlcihzY29wZSwgaWQpO1xyXG5cclxuICAgIGlmICghcHJvcHMuaW5zdGFuY2VBbGlhcy50cmltKCkpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdpbnN0YW5jZUFsaWFzIG11c3Qgbm90IGJlIGVtcHR5LicpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGlkZW50aXR5TWFuYWdlbWVudFR5cGUgPSBwcm9wcy5pZGVudGl0eU1hbmFnZW1lbnRUeXBlID8/IElkZW50aXR5TWFuYWdlbWVudFR5cGUuQ09OTkVDVF9NQU5BR0VEO1xyXG4gICAgaWYgKGlkZW50aXR5TWFuYWdlbWVudFR5cGUgPT09IElkZW50aXR5TWFuYWdlbWVudFR5cGUuRVhJU1RJTkdfRElSRUNUT1JZICYmICFwcm9wcy5kaXJlY3RvcnlJZCkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2RpcmVjdG9yeUlkIGlzIHJlcXVpcmVkIHdoZW4gaWRlbnRpdHlNYW5hZ2VtZW50VHlwZSBpcyBFWElTVElOR19ESVJFQ1RPUlkuJyk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5yZXNvdXJjZSA9IG5ldyBjb25uZWN0LkNmbkluc3RhbmNlKHRoaXMsICdSZXNvdXJjZScsIHtcclxuICAgICAgYXR0cmlidXRlczogdG9DZm5BdHRyaWJ1dGVzKHByb3BzLmF0dHJpYnV0ZXMpLFxyXG4gICAgICBkaXJlY3RvcnlJZDogcHJvcHMuZGlyZWN0b3J5SWQsXHJcbiAgICAgIGlkZW50aXR5TWFuYWdlbWVudFR5cGUsXHJcbiAgICAgIGluc3RhbmNlQWxpYXM6IHByb3BzLmluc3RhbmNlQWxpYXMsXHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmluc3RhbmNlQXJuID0gdGhpcy5yZXNvdXJjZS5nZXRBdHQoJ0FybicpLnRvU3RyaW5nKCk7XHJcbiAgICB0aGlzLmluc3RhbmNlSWQgPSB0aGlzLnJlc291cmNlLmdldEF0dCgnSWQnKS50b1N0cmluZygpO1xyXG4gIH1cclxufVxyXG5cclxuY2xhc3MgSW1wb3J0ZWRDb25uZWN0SW5zdGFuY2UgZXh0ZW5kcyBDb25zdHJ1Y3QgaW1wbGVtZW50cyBJQ29ubmVjdEluc3RhbmNlIHtcclxuICBwdWJsaWMgcmVhZG9ubHkgaW5zdGFuY2VBcm46IHN0cmluZztcclxuICBwdWJsaWMgcmVhZG9ubHkgaW5zdGFuY2VJZDogc3RyaW5nO1xyXG5cclxuICBwdWJsaWMgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgaW5zdGFuY2VBcm46IHN0cmluZykge1xyXG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcclxuICAgIHRoaXMuaW5zdGFuY2VBcm4gPSBpbnN0YW5jZUFybjtcclxuICAgIHRoaXMuaW5zdGFuY2VJZCA9IHJlc291cmNlTmFtZUZyb21TbGFzaEFybih0aGlzLCBpbnN0YW5jZUFybik7XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiB0b0NmbkF0dHJpYnV0ZXMoYXR0cmlidXRlcz86IENvbm5lY3RJbnN0YW5jZUF0dHJpYnV0ZXMpOiBjb25uZWN0LkNmbkluc3RhbmNlLkF0dHJpYnV0ZXNQcm9wZXJ0eSB7XHJcbiAgcmV0dXJuIHtcclxuICAgIGluYm91bmRDYWxsczogYXR0cmlidXRlcz8uaW5ib3VuZENhbGxzID8/IHRydWUsXHJcbiAgICBvdXRib3VuZENhbGxzOiBhdHRyaWJ1dGVzPy5vdXRib3VuZENhbGxzID8/IHRydWUsXHJcbiAgICBjb250YWN0Zmxvd0xvZ3M6IGF0dHJpYnV0ZXM/LmNvbnRhY3RmbG93TG9ncyA/PyBmYWxzZSxcclxuICAgIGNvbnRhY3RMZW5zOiBhdHRyaWJ1dGVzPy5jb250YWN0TGVucyA/PyBmYWxzZSxcclxuICAgIGVhcmx5TWVkaWE6IGF0dHJpYnV0ZXM/LmVhcmx5TWVkaWEgPz8gZmFsc2UsXHJcbiAgICB1c2VDdXN0b21UdHNWb2ljZXM6IGF0dHJpYnV0ZXM/LnVzZUN1c3RvbVR0c1ZvaWNlcyA/PyBmYWxzZSxcclxuICB9O1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,81 @@
1
+ import { aws_connect as connect } from 'aws-cdk-lib';
2
+ import { Construct } from 'constructs';
3
+ import { IConnectInstance } from './connect-instance';
4
+ /**
5
+ * Amazon Connect contact flow type.
6
+ */
7
+ export declare enum ContactFlowType {
8
+ CONTACT_FLOW = "CONTACT_FLOW",
9
+ CUSTOMER_QUEUE = "CUSTOMER_QUEUE",
10
+ CUSTOMER_HOLD = "CUSTOMER_HOLD",
11
+ CUSTOMER_WHISPER = "CUSTOMER_WHISPER",
12
+ AGENT_HOLD = "AGENT_HOLD",
13
+ AGENT_WHISPER = "AGENT_WHISPER",
14
+ OUTBOUND_WHISPER = "OUTBOUND_WHISPER",
15
+ AGENT_TRANSFER = "AGENT_TRANSFER",
16
+ QUEUE_TRANSFER = "QUEUE_TRANSFER",
17
+ CAMPAIGN = "CAMPAIGN"
18
+ }
19
+ /**
20
+ * Contact flow lifecycle state.
21
+ */
22
+ export declare enum ContactFlowState {
23
+ ACTIVE = "ACTIVE",
24
+ ARCHIVED = "ARCHIVED"
25
+ }
26
+ /**
27
+ * Properties for a JSON-backed contact flow.
28
+ */
29
+ export interface ContactFlowProps {
30
+ /**
31
+ * The Amazon Connect instance that owns this contact flow.
32
+ */
33
+ readonly instance: IConnectInstance;
34
+ /**
35
+ * Contact flow name.
36
+ */
37
+ readonly name: string;
38
+ /**
39
+ * Serialized Amazon Connect contact flow JSON.
40
+ */
41
+ readonly content: string;
42
+ /**
43
+ * Contact flow type.
44
+ *
45
+ * @default ContactFlowType.CONTACT_FLOW
46
+ */
47
+ readonly contactFlowType?: ContactFlowType;
48
+ /**
49
+ * Optional description.
50
+ *
51
+ * @default - no description
52
+ */
53
+ readonly description?: string;
54
+ /**
55
+ * Flow state.
56
+ *
57
+ * @default ContactFlowState.ACTIVE
58
+ */
59
+ readonly state?: ContactFlowState;
60
+ }
61
+ /**
62
+ * L2-style wrapper for AWS::Connect::ContactFlow.
63
+ */
64
+ export declare class ContactFlow extends Construct {
65
+ /**
66
+ * Create a serialized contact flow body from an object.
67
+ */
68
+ static stringify(definition: {
69
+ [key: string]: unknown;
70
+ }): string;
71
+ /**
72
+ * The underlying CloudFormation resource.
73
+ */
74
+ readonly resource: connect.CfnContactFlow;
75
+ /**
76
+ * The contact flow ARN.
77
+ */
78
+ readonly contactFlowArn: string;
79
+ constructor(scope: Construct, id: string, props: ContactFlowProps);
80
+ }
81
+ //# sourceMappingURL=contact-flow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contact-flow.d.ts","sourceRoot":"","sources":["../src/contact-flow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,IAAI,OAAO,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;GAEG;AACH,oBAAY,eAAe;IACzB,YAAY,iBAAiB;IAC7B,cAAc,mBAAmB;IACjC,aAAa,kBAAkB;IAC/B,gBAAgB,qBAAqB;IACrC,UAAU,eAAe;IACzB,aAAa,kBAAkB;IAC/B,gBAAgB,qBAAqB;IACrC,cAAc,mBAAmB;IACjC,cAAc,mBAAmB;IACjC,QAAQ,aAAa;CACtB;AAED;;GAEG;AACH,oBAAY,gBAAgB;IAC1B,MAAM,WAAW;IACjB,QAAQ,aAAa;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IAEpC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB;;;;OAIG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,eAAe,CAAC;IAE3C;;;;OAIG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAE9B;;;;OAIG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,gBAAgB,CAAC;CACnC;AAED;;GAEG;AACH,qBAAa,WAAY,SAAQ,SAAS;IACxC;;OAEG;WACW,SAAS,CAAC,UAAU,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,GAAG,MAAM;IAIvE;;OAEG;IACH,SAAgB,QAAQ,EAAE,OAAO,CAAC,cAAc,CAAC;IAEjD;;OAEG;IACH,SAAgB,cAAc,EAAE,MAAM,CAAC;gBAEpB,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB;CAmBzE"}
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ContactFlow = exports.ContactFlowState = exports.ContactFlowType = void 0;
4
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
5
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
6
+ const constructs_1 = require("constructs");
7
+ /**
8
+ * Amazon Connect contact flow type.
9
+ */
10
+ var ContactFlowType;
11
+ (function (ContactFlowType) {
12
+ ContactFlowType["CONTACT_FLOW"] = "CONTACT_FLOW";
13
+ ContactFlowType["CUSTOMER_QUEUE"] = "CUSTOMER_QUEUE";
14
+ ContactFlowType["CUSTOMER_HOLD"] = "CUSTOMER_HOLD";
15
+ ContactFlowType["CUSTOMER_WHISPER"] = "CUSTOMER_WHISPER";
16
+ ContactFlowType["AGENT_HOLD"] = "AGENT_HOLD";
17
+ ContactFlowType["AGENT_WHISPER"] = "AGENT_WHISPER";
18
+ ContactFlowType["OUTBOUND_WHISPER"] = "OUTBOUND_WHISPER";
19
+ ContactFlowType["AGENT_TRANSFER"] = "AGENT_TRANSFER";
20
+ ContactFlowType["QUEUE_TRANSFER"] = "QUEUE_TRANSFER";
21
+ ContactFlowType["CAMPAIGN"] = "CAMPAIGN";
22
+ })(ContactFlowType || (exports.ContactFlowType = ContactFlowType = {}));
23
+ /**
24
+ * Contact flow lifecycle state.
25
+ */
26
+ var ContactFlowState;
27
+ (function (ContactFlowState) {
28
+ ContactFlowState["ACTIVE"] = "ACTIVE";
29
+ ContactFlowState["ARCHIVED"] = "ARCHIVED";
30
+ })(ContactFlowState || (exports.ContactFlowState = ContactFlowState = {}));
31
+ /**
32
+ * L2-style wrapper for AWS::Connect::ContactFlow.
33
+ */
34
+ class ContactFlow extends constructs_1.Construct {
35
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdk-amazon-connect-constructs.ContactFlow", version: "0.1.0-alpha.0" };
36
+ /**
37
+ * Create a serialized contact flow body from an object.
38
+ */
39
+ static stringify(definition) {
40
+ return JSON.stringify(definition, undefined, 2);
41
+ }
42
+ /**
43
+ * The underlying CloudFormation resource.
44
+ */
45
+ resource;
46
+ /**
47
+ * The contact flow ARN.
48
+ */
49
+ contactFlowArn;
50
+ constructor(scope, id, props) {
51
+ super(scope, id);
52
+ if (!props.name.trim()) {
53
+ throw new Error('name must not be empty.');
54
+ }
55
+ validateJson(props.content);
56
+ this.resource = new aws_cdk_lib_1.aws_connect.CfnContactFlow(this, 'Resource', {
57
+ content: props.content,
58
+ description: props.description,
59
+ instanceArn: props.instance.instanceArn,
60
+ name: props.name,
61
+ state: props.state ?? ContactFlowState.ACTIVE,
62
+ type: props.contactFlowType ?? ContactFlowType.CONTACT_FLOW,
63
+ });
64
+ this.contactFlowArn = this.resource.getAtt('ContactFlowArn').toString();
65
+ }
66
+ }
67
+ exports.ContactFlow = ContactFlow;
68
+ function validateJson(content) {
69
+ if (!content.trim()) {
70
+ throw new Error('content must not be empty.');
71
+ }
72
+ try {
73
+ JSON.parse(content);
74
+ }
75
+ catch (error) {
76
+ const message = error instanceof Error ? error.message : String(error);
77
+ throw new Error(`content must be valid JSON: ${message}`);
78
+ }
79
+ }
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC1mbG93LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbnRhY3QtZmxvdy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsNkNBQXFEO0FBQ3JELDJDQUF1QztBQUd2Qzs7R0FFRztBQUNILElBQVksZUFXWDtBQVhELFdBQVksZUFBZTtJQUN6QixnREFBNkIsQ0FBQTtJQUM3QixvREFBaUMsQ0FBQTtJQUNqQyxrREFBK0IsQ0FBQTtJQUMvQix3REFBcUMsQ0FBQTtJQUNyQyw0Q0FBeUIsQ0FBQTtJQUN6QixrREFBK0IsQ0FBQTtJQUMvQix3REFBcUMsQ0FBQTtJQUNyQyxvREFBaUMsQ0FBQTtJQUNqQyxvREFBaUMsQ0FBQTtJQUNqQyx3Q0FBcUIsQ0FBQTtBQUN2QixDQUFDLEVBWFcsZUFBZSwrQkFBZixlQUFlLFFBVzFCO0FBRUQ7O0dBRUc7QUFDSCxJQUFZLGdCQUdYO0FBSEQsV0FBWSxnQkFBZ0I7SUFDMUIscUNBQWlCLENBQUE7SUFDakIseUNBQXFCLENBQUE7QUFDdkIsQ0FBQyxFQUhXLGdCQUFnQixnQ0FBaEIsZ0JBQWdCLFFBRzNCO0FBMkNEOztHQUVHO0FBQ0gsTUFBYSxXQUFZLFNBQVEsc0JBQVM7O0lBQ3hDOztPQUVHO0lBQ0ksTUFBTSxDQUFDLFNBQVMsQ0FBQyxVQUFzQztRQUM1RCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQ7O09BRUc7SUFDYSxRQUFRLENBQXlCO0lBRWpEOztPQUVHO0lBQ2EsY0FBYyxDQUFTO0lBRXZDLFlBQW1CLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXVCO1FBQ3RFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUN2QixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDN0MsQ0FBQztRQUNELFlBQVksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFNUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLHlCQUFPLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDM0QsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPO1lBQ3RCLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVztZQUM5QixXQUFXLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxXQUFXO1lBQ3ZDLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtZQUNoQixLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNO1lBQzdDLElBQUksRUFBRSxLQUFLLENBQUMsZUFBZSxJQUFJLGVBQWUsQ0FBQyxZQUFZO1NBQzVELENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMxRSxDQUFDOztBQXBDSCxrQ0FxQ0M7QUFFRCxTQUFTLFlBQVksQ0FBQyxPQUFlO0lBQ25DLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztRQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELElBQUksQ0FBQztRQUNILElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixNQUFNLE9BQU8sR0FBRyxLQUFLLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkUsTUFBTSxJQUFJLEtBQUssQ0FBQywrQkFBK0IsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUM1RCxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGF3c19jb25uZWN0IGFzIGNvbm5lY3QgfSBmcm9tICdhd3MtY2RrLWxpYic7XHJcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xyXG5pbXBvcnQgeyBJQ29ubmVjdEluc3RhbmNlIH0gZnJvbSAnLi9jb25uZWN0LWluc3RhbmNlJztcclxuXHJcbi8qKlxyXG4gKiBBbWF6b24gQ29ubmVjdCBjb250YWN0IGZsb3cgdHlwZS5cclxuICovXHJcbmV4cG9ydCBlbnVtIENvbnRhY3RGbG93VHlwZSB7XHJcbiAgQ09OVEFDVF9GTE9XID0gJ0NPTlRBQ1RfRkxPVycsXHJcbiAgQ1VTVE9NRVJfUVVFVUUgPSAnQ1VTVE9NRVJfUVVFVUUnLFxyXG4gIENVU1RPTUVSX0hPTEQgPSAnQ1VTVE9NRVJfSE9MRCcsXHJcbiAgQ1VTVE9NRVJfV0hJU1BFUiA9ICdDVVNUT01FUl9XSElTUEVSJyxcclxuICBBR0VOVF9IT0xEID0gJ0FHRU5UX0hPTEQnLFxyXG4gIEFHRU5UX1dISVNQRVIgPSAnQUdFTlRfV0hJU1BFUicsXHJcbiAgT1VUQk9VTkRfV0hJU1BFUiA9ICdPVVRCT1VORF9XSElTUEVSJyxcclxuICBBR0VOVF9UUkFOU0ZFUiA9ICdBR0VOVF9UUkFOU0ZFUicsXHJcbiAgUVVFVUVfVFJBTlNGRVIgPSAnUVVFVUVfVFJBTlNGRVInLFxyXG4gIENBTVBBSUdOID0gJ0NBTVBBSUdOJyxcclxufVxyXG5cclxuLyoqXHJcbiAqIENvbnRhY3QgZmxvdyBsaWZlY3ljbGUgc3RhdGUuXHJcbiAqL1xyXG5leHBvcnQgZW51bSBDb250YWN0Rmxvd1N0YXRlIHtcclxuICBBQ1RJVkUgPSAnQUNUSVZFJyxcclxuICBBUkNISVZFRCA9ICdBUkNISVZFRCcsXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBQcm9wZXJ0aWVzIGZvciBhIEpTT04tYmFja2VkIGNvbnRhY3QgZmxvdy5cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29udGFjdEZsb3dQcm9wcyB7XHJcbiAgLyoqXHJcbiAgICogVGhlIEFtYXpvbiBDb25uZWN0IGluc3RhbmNlIHRoYXQgb3ducyB0aGlzIGNvbnRhY3QgZmxvdy5cclxuICAgKi9cclxuICByZWFkb25seSBpbnN0YW5jZTogSUNvbm5lY3RJbnN0YW5jZTtcclxuXHJcbiAgLyoqXHJcbiAgICogQ29udGFjdCBmbG93IG5hbWUuXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xyXG5cclxuICAvKipcclxuICAgKiBTZXJpYWxpemVkIEFtYXpvbiBDb25uZWN0IGNvbnRhY3QgZmxvdyBKU09OLlxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGNvbnRlbnQ6IHN0cmluZztcclxuXHJcbiAgLyoqXHJcbiAgICogQ29udGFjdCBmbG93IHR5cGUuXHJcbiAgICpcclxuICAgKiBAZGVmYXVsdCBDb250YWN0Rmxvd1R5cGUuQ09OVEFDVF9GTE9XXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgY29udGFjdEZsb3dUeXBlPzogQ29udGFjdEZsb3dUeXBlO1xyXG5cclxuICAvKipcclxuICAgKiBPcHRpb25hbCBkZXNjcmlwdGlvbi5cclxuICAgKlxyXG4gICAqIEBkZWZhdWx0IC0gbm8gZGVzY3JpcHRpb25cclxuICAgKi9cclxuICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcclxuXHJcbiAgLyoqXHJcbiAgICogRmxvdyBzdGF0ZS5cclxuICAgKlxyXG4gICAqIEBkZWZhdWx0IENvbnRhY3RGbG93U3RhdGUuQUNUSVZFXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgc3RhdGU/OiBDb250YWN0Rmxvd1N0YXRlO1xyXG59XHJcblxyXG4vKipcclxuICogTDItc3R5bGUgd3JhcHBlciBmb3IgQVdTOjpDb25uZWN0OjpDb250YWN0Rmxvdy5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBDb250YWN0RmxvdyBleHRlbmRzIENvbnN0cnVjdCB7XHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlIGEgc2VyaWFsaXplZCBjb250YWN0IGZsb3cgYm9keSBmcm9tIGFuIG9iamVjdC5cclxuICAgKi9cclxuICBwdWJsaWMgc3RhdGljIHN0cmluZ2lmeShkZWZpbml0aW9uOiB7IFtrZXk6IHN0cmluZ106IHVua25vd24gfSk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoZGVmaW5pdGlvbiwgdW5kZWZpbmVkLCAyKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSB1bmRlcmx5aW5nIENsb3VkRm9ybWF0aW9uIHJlc291cmNlLlxyXG4gICAqL1xyXG4gIHB1YmxpYyByZWFkb25seSByZXNvdXJjZTogY29ubmVjdC5DZm5Db250YWN0RmxvdztcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIGNvbnRhY3QgZmxvdyBBUk4uXHJcbiAgICovXHJcbiAgcHVibGljIHJlYWRvbmx5IGNvbnRhY3RGbG93QXJuOiBzdHJpbmc7XHJcblxyXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQ29udGFjdEZsb3dQcm9wcykge1xyXG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcclxuXHJcbiAgICBpZiAoIXByb3BzLm5hbWUudHJpbSgpKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignbmFtZSBtdXN0IG5vdCBiZSBlbXB0eS4nKTtcclxuICAgIH1cclxuICAgIHZhbGlkYXRlSnNvbihwcm9wcy5jb250ZW50KTtcclxuXHJcbiAgICB0aGlzLnJlc291cmNlID0gbmV3IGNvbm5lY3QuQ2ZuQ29udGFjdEZsb3codGhpcywgJ1Jlc291cmNlJywge1xyXG4gICAgICBjb250ZW50OiBwcm9wcy5jb250ZW50LFxyXG4gICAgICBkZXNjcmlwdGlvbjogcHJvcHMuZGVzY3JpcHRpb24sXHJcbiAgICAgIGluc3RhbmNlQXJuOiBwcm9wcy5pbnN0YW5jZS5pbnN0YW5jZUFybixcclxuICAgICAgbmFtZTogcHJvcHMubmFtZSxcclxuICAgICAgc3RhdGU6IHByb3BzLnN0YXRlID8/IENvbnRhY3RGbG93U3RhdGUuQUNUSVZFLFxyXG4gICAgICB0eXBlOiBwcm9wcy5jb250YWN0Rmxvd1R5cGUgPz8gQ29udGFjdEZsb3dUeXBlLkNPTlRBQ1RfRkxPVyxcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuY29udGFjdEZsb3dBcm4gPSB0aGlzLnJlc291cmNlLmdldEF0dCgnQ29udGFjdEZsb3dBcm4nKS50b1N0cmluZygpO1xyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gdmFsaWRhdGVKc29uKGNvbnRlbnQ6IHN0cmluZyk6IHZvaWQge1xyXG4gIGlmICghY29udGVudC50cmltKCkpIHtcclxuICAgIHRocm93IG5ldyBFcnJvcignY29udGVudCBtdXN0IG5vdCBiZSBlbXB0eS4nKTtcclxuICB9XHJcblxyXG4gIHRyeSB7XHJcbiAgICBKU09OLnBhcnNlKGNvbnRlbnQpO1xyXG4gIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICBjb25zdCBtZXNzYWdlID0gZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiBTdHJpbmcoZXJyb3IpO1xyXG4gICAgdGhyb3cgbmV3IEVycm9yKGBjb250ZW50IG11c3QgYmUgdmFsaWQgSlNPTjogJHttZXNzYWdlfWApO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,102 @@
1
+ import { aws_connect as connect } from 'aws-cdk-lib';
2
+ import { Construct } from 'constructs';
3
+ import { IConnectInstance } from './connect-instance';
4
+ /**
5
+ * Days supported by Amazon Connect hours of operation.
6
+ */
7
+ export declare enum DayOfWeek {
8
+ SUNDAY = "SUNDAY",
9
+ MONDAY = "MONDAY",
10
+ TUESDAY = "TUESDAY",
11
+ WEDNESDAY = "WEDNESDAY",
12
+ THURSDAY = "THURSDAY",
13
+ FRIDAY = "FRIDAY",
14
+ SATURDAY = "SATURDAY"
15
+ }
16
+ /**
17
+ * A time of day in 24-hour format.
18
+ */
19
+ export interface TimeOfDay {
20
+ /**
21
+ * Hour in local time, from 0 through 23.
22
+ */
23
+ readonly hours: number;
24
+ /**
25
+ * Minute in local time, from 0 through 59.
26
+ *
27
+ * @default 0
28
+ */
29
+ readonly minutes?: number;
30
+ }
31
+ /**
32
+ * A weekly open interval for an Amazon Connect queue.
33
+ */
34
+ export interface WeeklyTimeRange {
35
+ /**
36
+ * Day of week for this interval.
37
+ */
38
+ readonly day: DayOfWeek;
39
+ /**
40
+ * Interval start time.
41
+ */
42
+ readonly startTime: TimeOfDay;
43
+ /**
44
+ * Interval end time.
45
+ */
46
+ readonly endTime: TimeOfDay;
47
+ }
48
+ /**
49
+ * An Amazon Connect hours-of-operation reference.
50
+ */
51
+ export interface IHoursOfOperation {
52
+ /**
53
+ * The hours of operation ARN.
54
+ */
55
+ readonly hoursOfOperationArn: string;
56
+ }
57
+ /**
58
+ * Properties for HoursOfOperation.
59
+ */
60
+ export interface HoursOfOperationProps {
61
+ /**
62
+ * The Amazon Connect instance that owns these hours.
63
+ */
64
+ readonly instance: IConnectInstance;
65
+ /**
66
+ * Display name.
67
+ */
68
+ readonly name: string;
69
+ /**
70
+ * IANA time zone, for example America/New_York.
71
+ */
72
+ readonly timeZone: string;
73
+ /**
74
+ * Weekly open intervals.
75
+ */
76
+ readonly config: WeeklyTimeRange[];
77
+ /**
78
+ * Optional description.
79
+ *
80
+ * @default - no description
81
+ */
82
+ readonly description?: string;
83
+ }
84
+ /**
85
+ * L2-style wrapper for AWS::Connect::HoursOfOperation.
86
+ */
87
+ export declare class HoursOfOperation extends Construct implements IHoursOfOperation {
88
+ /**
89
+ * Import existing hours of operation by ARN.
90
+ */
91
+ static fromHoursOfOperationArn(scope: Construct, id: string, hoursOfOperationArn: string): IHoursOfOperation;
92
+ /**
93
+ * The underlying CloudFormation resource.
94
+ */
95
+ readonly resource: connect.CfnHoursOfOperation;
96
+ /**
97
+ * The hours of operation ARN.
98
+ */
99
+ readonly hoursOfOperationArn: string;
100
+ constructor(scope: Construct, id: string, props: HoursOfOperationProps);
101
+ }
102
+ //# sourceMappingURL=hours-of-operation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hours-of-operation.d.ts","sourceRoot":"","sources":["../src/hours-of-operation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,IAAI,OAAO,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD;;GAEG;AACH,oBAAY,SAAS;IACnB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,SAAS,cAAc;IACvB,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,QAAQ,aAAa;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;IAExB;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAE9B;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IAEpC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC;IAEnC;;;;OAIG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,SAAU,YAAW,iBAAiB;IAC1E;;OAEG;WACW,uBAAuB,CACnC,KAAK,EAAE,SAAS,EAChB,EAAE,EAAE,MAAM,EACV,mBAAmB,EAAE,MAAM,GAC1B,iBAAiB;IAIpB;;OAEG;IACH,SAAgB,QAAQ,EAAE,OAAO,CAAC,mBAAmB,CAAC;IAEtD;;OAEG;IACH,SAAgB,mBAAmB,EAAE,MAAM,CAAC;gBAEzB,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB;CAuB9E"}
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HoursOfOperation = exports.DayOfWeek = void 0;
4
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
5
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
6
+ const constructs_1 = require("constructs");
7
+ const arn_1 = require("./private/arn");
8
+ /**
9
+ * Days supported by Amazon Connect hours of operation.
10
+ */
11
+ var DayOfWeek;
12
+ (function (DayOfWeek) {
13
+ DayOfWeek["SUNDAY"] = "SUNDAY";
14
+ DayOfWeek["MONDAY"] = "MONDAY";
15
+ DayOfWeek["TUESDAY"] = "TUESDAY";
16
+ DayOfWeek["WEDNESDAY"] = "WEDNESDAY";
17
+ DayOfWeek["THURSDAY"] = "THURSDAY";
18
+ DayOfWeek["FRIDAY"] = "FRIDAY";
19
+ DayOfWeek["SATURDAY"] = "SATURDAY";
20
+ })(DayOfWeek || (exports.DayOfWeek = DayOfWeek = {}));
21
+ /**
22
+ * L2-style wrapper for AWS::Connect::HoursOfOperation.
23
+ */
24
+ class HoursOfOperation extends constructs_1.Construct {
25
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdk-amazon-connect-constructs.HoursOfOperation", version: "0.1.0-alpha.0" };
26
+ /**
27
+ * Import existing hours of operation by ARN.
28
+ */
29
+ static fromHoursOfOperationArn(scope, id, hoursOfOperationArn) {
30
+ return new ImportedHoursOfOperation(scope, id, hoursOfOperationArn);
31
+ }
32
+ /**
33
+ * The underlying CloudFormation resource.
34
+ */
35
+ resource;
36
+ /**
37
+ * The hours of operation ARN.
38
+ */
39
+ hoursOfOperationArn;
40
+ constructor(scope, id, props) {
41
+ super(scope, id);
42
+ if (!props.name.trim()) {
43
+ throw new Error('name must not be empty.');
44
+ }
45
+ if (!props.timeZone.trim()) {
46
+ throw new Error('timeZone must not be empty.');
47
+ }
48
+ if (props.config.length === 0) {
49
+ throw new Error('config must include at least one weekly time range.');
50
+ }
51
+ this.resource = new aws_cdk_lib_1.aws_connect.CfnHoursOfOperation(this, 'Resource', {
52
+ config: props.config.map(toCfnRange),
53
+ description: props.description,
54
+ instanceArn: props.instance.instanceArn,
55
+ name: props.name,
56
+ timeZone: props.timeZone,
57
+ });
58
+ this.hoursOfOperationArn = this.resource.getAtt('HoursOfOperationArn').toString();
59
+ }
60
+ }
61
+ exports.HoursOfOperation = HoursOfOperation;
62
+ class ImportedHoursOfOperation extends constructs_1.Construct {
63
+ hoursOfOperationArn;
64
+ constructor(scope, id, hoursOfOperationArn) {
65
+ super(scope, id);
66
+ this.hoursOfOperationArn = hoursOfOperationArn;
67
+ (0, arn_1.resourceNameFromSlashArn)(this, hoursOfOperationArn);
68
+ }
69
+ }
70
+ function toCfnRange(range) {
71
+ validateTime(range.startTime, 'startTime');
72
+ validateTime(range.endTime, 'endTime');
73
+ return {
74
+ day: range.day,
75
+ startTime: toCfnTime(range.startTime),
76
+ endTime: toCfnTime(range.endTime),
77
+ };
78
+ }
79
+ function toCfnTime(time) {
80
+ return {
81
+ hours: time.hours,
82
+ minutes: time.minutes ?? 0,
83
+ };
84
+ }
85
+ function validateTime(time, name) {
86
+ if (time.hours < 0 || time.hours > 23 || !Number.isInteger(time.hours)) {
87
+ throw new Error(`${name}.hours must be an integer from 0 through 23.`);
88
+ }
89
+ const minutes = time.minutes ?? 0;
90
+ if (minutes < 0 || minutes > 59 || !Number.isInteger(minutes)) {
91
+ throw new Error(`${name}.minutes must be an integer from 0 through 59.`);
92
+ }
93
+ }
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG91cnMtb2Ytb3BlcmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2hvdXJzLW9mLW9wZXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsNkNBQXFEO0FBQ3JELDJDQUF1QztBQUV2Qyx1Q0FBeUQ7QUFFekQ7O0dBRUc7QUFDSCxJQUFZLFNBUVg7QUFSRCxXQUFZLFNBQVM7SUFDbkIsOEJBQWlCLENBQUE7SUFDakIsOEJBQWlCLENBQUE7SUFDakIsZ0NBQW1CLENBQUE7SUFDbkIsb0NBQXVCLENBQUE7SUFDdkIsa0NBQXFCLENBQUE7SUFDckIsOEJBQWlCLENBQUE7SUFDakIsa0NBQXFCLENBQUE7QUFDdkIsQ0FBQyxFQVJXLFNBQVMseUJBQVQsU0FBUyxRQVFwQjtBQWlGRDs7R0FFRztBQUNILE1BQWEsZ0JBQWlCLFNBQVEsc0JBQVM7O0lBQzdDOztPQUVHO0lBQ0ksTUFBTSxDQUFDLHVCQUF1QixDQUNuQyxLQUFnQixFQUNoQixFQUFVLEVBQ1YsbUJBQTJCO1FBRTNCLE9BQU8sSUFBSSx3QkFBd0IsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLG1CQUFtQixDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVEOztPQUVHO0lBQ2EsUUFBUSxDQUE4QjtJQUV0RDs7T0FFRztJQUNhLG1CQUFtQixDQUFTO0lBRTVDLFlBQW1CLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTRCO1FBQzNFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUN2QixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDN0MsQ0FBQztRQUNELElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7WUFDM0IsTUFBTSxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1FBQ2pELENBQUM7UUFDRCxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzlCLE1BQU0sSUFBSSxLQUFLLENBQUMscURBQXFELENBQUMsQ0FBQztRQUN6RSxDQUFDO1FBRUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLHlCQUFPLENBQUMsbUJBQW1CLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtZQUNoRSxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDO1lBQ3BDLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVztZQUM5QixXQUFXLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxXQUFXO1lBQ3ZDLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtZQUNoQixRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVE7U0FDekIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDcEYsQ0FBQzs7QUE1Q0gsNENBNkNDO0FBRUQsTUFBTSx3QkFBeUIsU0FBUSxzQkFBUztJQUM5QixtQkFBbUIsQ0FBUztJQUU1QyxZQUFtQixLQUFnQixFQUFFLEVBQVUsRUFBRSxtQkFBMkI7UUFDMUUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQixJQUFJLENBQUMsbUJBQW1CLEdBQUcsbUJBQW1CLENBQUM7UUFDL0MsSUFBQSw4QkFBd0IsRUFBQyxJQUFJLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztJQUN0RCxDQUFDO0NBQ0Y7QUFFRCxTQUFTLFVBQVUsQ0FBQyxLQUFzQjtJQUN4QyxZQUFZLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUMzQyxZQUFZLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztJQUV2QyxPQUFPO1FBQ0wsR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFHO1FBQ2QsU0FBUyxFQUFFLFNBQVMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO1FBQ3JDLE9BQU8sRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQztLQUNsQyxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsU0FBUyxDQUFDLElBQWU7SUFDaEMsT0FBTztRQUNMLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztRQUNqQixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDO0tBQzNCLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxZQUFZLENBQUMsSUFBZSxFQUFFLElBQVk7SUFDakQsSUFBSSxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDdkUsTUFBTSxJQUFJLEtBQUssQ0FBQyxHQUFHLElBQUksOENBQThDLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBQ0QsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUM7SUFDbEMsSUFBSSxPQUFPLEdBQUcsQ0FBQyxJQUFJLE9BQU8sR0FBRyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDOUQsTUFBTSxJQUFJLEtBQUssQ0FBQyxHQUFHLElBQUksZ0RBQWdELENBQUMsQ0FBQztJQUMzRSxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGF3c19jb25uZWN0IGFzIGNvbm5lY3QgfSBmcm9tICdhd3MtY2RrLWxpYic7XHJcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xyXG5pbXBvcnQgeyBJQ29ubmVjdEluc3RhbmNlIH0gZnJvbSAnLi9jb25uZWN0LWluc3RhbmNlJztcclxuaW1wb3J0IHsgcmVzb3VyY2VOYW1lRnJvbVNsYXNoQXJuIH0gZnJvbSAnLi9wcml2YXRlL2Fybic7XHJcblxyXG4vKipcclxuICogRGF5cyBzdXBwb3J0ZWQgYnkgQW1hem9uIENvbm5lY3QgaG91cnMgb2Ygb3BlcmF0aW9uLlxyXG4gKi9cclxuZXhwb3J0IGVudW0gRGF5T2ZXZWVrIHtcclxuICBTVU5EQVkgPSAnU1VOREFZJyxcclxuICBNT05EQVkgPSAnTU9OREFZJyxcclxuICBUVUVTREFZID0gJ1RVRVNEQVknLFxyXG4gIFdFRE5FU0RBWSA9ICdXRURORVNEQVknLFxyXG4gIFRIVVJTREFZID0gJ1RIVVJTREFZJyxcclxuICBGUklEQVkgPSAnRlJJREFZJyxcclxuICBTQVRVUkRBWSA9ICdTQVRVUkRBWScsXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBIHRpbWUgb2YgZGF5IGluIDI0LWhvdXIgZm9ybWF0LlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBUaW1lT2ZEYXkge1xyXG4gIC8qKlxyXG4gICAqIEhvdXIgaW4gbG9jYWwgdGltZSwgZnJvbSAwIHRocm91Z2ggMjMuXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgaG91cnM6IG51bWJlcjtcclxuXHJcbiAgLyoqXHJcbiAgICogTWludXRlIGluIGxvY2FsIHRpbWUsIGZyb20gMCB0aHJvdWdoIDU5LlxyXG4gICAqXHJcbiAgICogQGRlZmF1bHQgMFxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IG1pbnV0ZXM/OiBudW1iZXI7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBIHdlZWtseSBvcGVuIGludGVydmFsIGZvciBhbiBBbWF6b24gQ29ubmVjdCBxdWV1ZS5cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgV2Vla2x5VGltZVJhbmdlIHtcclxuICAvKipcclxuICAgKiBEYXkgb2Ygd2VlayBmb3IgdGhpcyBpbnRlcnZhbC5cclxuICAgKi9cclxuICByZWFkb25seSBkYXk6IERheU9mV2VlaztcclxuXHJcbiAgLyoqXHJcbiAgICogSW50ZXJ2YWwgc3RhcnQgdGltZS5cclxuICAgKi9cclxuICByZWFkb25seSBzdGFydFRpbWU6IFRpbWVPZkRheTtcclxuXHJcbiAgLyoqXHJcbiAgICogSW50ZXJ2YWwgZW5kIHRpbWUuXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgZW5kVGltZTogVGltZU9mRGF5O1xyXG59XHJcblxyXG4vKipcclxuICogQW4gQW1hem9uIENvbm5lY3QgaG91cnMtb2Ytb3BlcmF0aW9uIHJlZmVyZW5jZS5cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUhvdXJzT2ZPcGVyYXRpb24ge1xyXG4gIC8qKlxyXG4gICAqIFRoZSBob3VycyBvZiBvcGVyYXRpb24gQVJOLlxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGhvdXJzT2ZPcGVyYXRpb25Bcm46IHN0cmluZztcclxufVxyXG5cclxuLyoqXHJcbiAqIFByb3BlcnRpZXMgZm9yIEhvdXJzT2ZPcGVyYXRpb24uXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIEhvdXJzT2ZPcGVyYXRpb25Qcm9wcyB7XHJcbiAgLyoqXHJcbiAgICogVGhlIEFtYXpvbiBDb25uZWN0IGluc3RhbmNlIHRoYXQgb3ducyB0aGVzZSBob3Vycy5cclxuICAgKi9cclxuICByZWFkb25seSBpbnN0YW5jZTogSUNvbm5lY3RJbnN0YW5jZTtcclxuXHJcbiAgLyoqXHJcbiAgICogRGlzcGxheSBuYW1lLlxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcclxuXHJcbiAgLyoqXHJcbiAgICogSUFOQSB0aW1lIHpvbmUsIGZvciBleGFtcGxlIEFtZXJpY2EvTmV3X1lvcmsuXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgdGltZVpvbmU6IHN0cmluZztcclxuXHJcbiAgLyoqXHJcbiAgICogV2Vla2x5IG9wZW4gaW50ZXJ2YWxzLlxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGNvbmZpZzogV2Vla2x5VGltZVJhbmdlW107XHJcblxyXG4gIC8qKlxyXG4gICAqIE9wdGlvbmFsIGRlc2NyaXB0aW9uLlxyXG4gICAqXHJcbiAgICogQGRlZmF1bHQgLSBubyBkZXNjcmlwdGlvblxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xyXG59XHJcblxyXG4vKipcclxuICogTDItc3R5bGUgd3JhcHBlciBmb3IgQVdTOjpDb25uZWN0OjpIb3Vyc09mT3BlcmF0aW9uLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEhvdXJzT2ZPcGVyYXRpb24gZXh0ZW5kcyBDb25zdHJ1Y3QgaW1wbGVtZW50cyBJSG91cnNPZk9wZXJhdGlvbiB7XHJcbiAgLyoqXHJcbiAgICogSW1wb3J0IGV4aXN0aW5nIGhvdXJzIG9mIG9wZXJhdGlvbiBieSBBUk4uXHJcbiAgICovXHJcbiAgcHVibGljIHN0YXRpYyBmcm9tSG91cnNPZk9wZXJhdGlvbkFybihcclxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXHJcbiAgICBpZDogc3RyaW5nLFxyXG4gICAgaG91cnNPZk9wZXJhdGlvbkFybjogc3RyaW5nLFxyXG4gICk6IElIb3Vyc09mT3BlcmF0aW9uIHtcclxuICAgIHJldHVybiBuZXcgSW1wb3J0ZWRIb3Vyc09mT3BlcmF0aW9uKHNjb3BlLCBpZCwgaG91cnNPZk9wZXJhdGlvbkFybik7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBUaGUgdW5kZXJseWluZyBDbG91ZEZvcm1hdGlvbiByZXNvdXJjZS5cclxuICAgKi9cclxuICBwdWJsaWMgcmVhZG9ubHkgcmVzb3VyY2U6IGNvbm5lY3QuQ2ZuSG91cnNPZk9wZXJhdGlvbjtcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIGhvdXJzIG9mIG9wZXJhdGlvbiBBUk4uXHJcbiAgICovXHJcbiAgcHVibGljIHJlYWRvbmx5IGhvdXJzT2ZPcGVyYXRpb25Bcm46IHN0cmluZztcclxuXHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBIb3Vyc09mT3BlcmF0aW9uUHJvcHMpIHtcclxuICAgIHN1cGVyKHNjb3BlLCBpZCk7XHJcblxyXG4gICAgaWYgKCFwcm9wcy5uYW1lLnRyaW0oKSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ25hbWUgbXVzdCBub3QgYmUgZW1wdHkuJyk7XHJcbiAgICB9XHJcbiAgICBpZiAoIXByb3BzLnRpbWVab25lLnRyaW0oKSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3RpbWVab25lIG11c3Qgbm90IGJlIGVtcHR5LicpO1xyXG4gICAgfVxyXG4gICAgaWYgKHByb3BzLmNvbmZpZy5sZW5ndGggPT09IDApIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdjb25maWcgbXVzdCBpbmNsdWRlIGF0IGxlYXN0IG9uZSB3ZWVrbHkgdGltZSByYW5nZS4nKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnJlc291cmNlID0gbmV3IGNvbm5lY3QuQ2ZuSG91cnNPZk9wZXJhdGlvbih0aGlzLCAnUmVzb3VyY2UnLCB7XHJcbiAgICAgIGNvbmZpZzogcHJvcHMuY29uZmlnLm1hcCh0b0NmblJhbmdlKSxcclxuICAgICAgZGVzY3JpcHRpb246IHByb3BzLmRlc2NyaXB0aW9uLFxyXG4gICAgICBpbnN0YW5jZUFybjogcHJvcHMuaW5zdGFuY2UuaW5zdGFuY2VBcm4sXHJcbiAgICAgIG5hbWU6IHByb3BzLm5hbWUsXHJcbiAgICAgIHRpbWVab25lOiBwcm9wcy50aW1lWm9uZSxcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuaG91cnNPZk9wZXJhdGlvbkFybiA9IHRoaXMucmVzb3VyY2UuZ2V0QXR0KCdIb3Vyc09mT3BlcmF0aW9uQXJuJykudG9TdHJpbmcoKTtcclxuICB9XHJcbn1cclxuXHJcbmNsYXNzIEltcG9ydGVkSG91cnNPZk9wZXJhdGlvbiBleHRlbmRzIENvbnN0cnVjdCBpbXBsZW1lbnRzIElIb3Vyc09mT3BlcmF0aW9uIHtcclxuICBwdWJsaWMgcmVhZG9ubHkgaG91cnNPZk9wZXJhdGlvbkFybjogc3RyaW5nO1xyXG5cclxuICBwdWJsaWMgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgaG91cnNPZk9wZXJhdGlvbkFybjogc3RyaW5nKSB7XHJcbiAgICBzdXBlcihzY29wZSwgaWQpO1xyXG4gICAgdGhpcy5ob3Vyc09mT3BlcmF0aW9uQXJuID0gaG91cnNPZk9wZXJhdGlvbkFybjtcclxuICAgIHJlc291cmNlTmFtZUZyb21TbGFzaEFybih0aGlzLCBob3Vyc09mT3BlcmF0aW9uQXJuKTtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHRvQ2ZuUmFuZ2UocmFuZ2U6IFdlZWtseVRpbWVSYW5nZSk6IGNvbm5lY3QuQ2ZuSG91cnNPZk9wZXJhdGlvbi5Ib3Vyc09mT3BlcmF0aW9uQ29uZmlnUHJvcGVydHkge1xyXG4gIHZhbGlkYXRlVGltZShyYW5nZS5zdGFydFRpbWUsICdzdGFydFRpbWUnKTtcclxuICB2YWxpZGF0ZVRpbWUocmFuZ2UuZW5kVGltZSwgJ2VuZFRpbWUnKTtcclxuXHJcbiAgcmV0dXJuIHtcclxuICAgIGRheTogcmFuZ2UuZGF5LFxyXG4gICAgc3RhcnRUaW1lOiB0b0NmblRpbWUocmFuZ2Uuc3RhcnRUaW1lKSxcclxuICAgIGVuZFRpbWU6IHRvQ2ZuVGltZShyYW5nZS5lbmRUaW1lKSxcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiB0b0NmblRpbWUodGltZTogVGltZU9mRGF5KTogY29ubmVjdC5DZm5Ib3Vyc09mT3BlcmF0aW9uLkhvdXJzT2ZPcGVyYXRpb25UaW1lU2xpY2VQcm9wZXJ0eSB7XHJcbiAgcmV0dXJuIHtcclxuICAgIGhvdXJzOiB0aW1lLmhvdXJzLFxyXG4gICAgbWludXRlczogdGltZS5taW51dGVzID8/IDAsXHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gdmFsaWRhdGVUaW1lKHRpbWU6IFRpbWVPZkRheSwgbmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgaWYgKHRpbWUuaG91cnMgPCAwIHx8IHRpbWUuaG91cnMgPiAyMyB8fCAhTnVtYmVyLmlzSW50ZWdlcih0aW1lLmhvdXJzKSkge1xyXG4gICAgdGhyb3cgbmV3IEVycm9yKGAke25hbWV9LmhvdXJzIG11c3QgYmUgYW4gaW50ZWdlciBmcm9tIDAgdGhyb3VnaCAyMy5gKTtcclxuICB9XHJcbiAgY29uc3QgbWludXRlcyA9IHRpbWUubWludXRlcyA/PyAwO1xyXG4gIGlmIChtaW51dGVzIDwgMCB8fCBtaW51dGVzID4gNTkgfHwgIU51bWJlci5pc0ludGVnZXIobWludXRlcykpIHtcclxuICAgIHRocm93IG5ldyBFcnJvcihgJHtuYW1lfS5taW51dGVzIG11c3QgYmUgYW4gaW50ZWdlciBmcm9tIDAgdGhyb3VnaCA1OS5gKTtcclxuICB9XHJcbn1cclxuIl19
package/lib/index.d.ts ADDED
@@ -0,0 +1,7 @@
1
+ export * from './connect-instance';
2
+ export * from './hours-of-operation';
3
+ export * from './queue';
4
+ export * from './routing-profile';
5
+ export * from './contact-flow';
6
+ export * from './lambda-integration';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC"}