@netforbpo/aws-cdk-aws-connect-lib 0.2.4 → 0.2.6

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.
Binary file
package/CHANGELOG.md CHANGED
@@ -1,4 +1,16 @@
1
1
 
2
+ ## [0.2.5](https://github.com/netforbpo/aws-cdk-aws-connect-lib/compare/v0.2.4...v0.2.5) (2026-10-09)
3
+
4
+ ### Features
5
+
6
+ * update and dedupe packages ([c2f4dbe](https://github.com/netforbpo/aws-cdk-aws-connect-lib/commit/c2f4dbed01f51b627eec1985e66ee1134301d1a2))
7
+
8
+ ## [0.2.4](https://github.com/netforbpo/aws-cdk-aws-connect-lib/compare/v0.2.3...v0.2.4) (2026-10-08)
9
+
10
+ ### Features
11
+
12
+ * implement fromLookup for more resources and update to newer CDK with more CloudFormation functionality. ([537750f](https://github.com/netforbpo/aws-cdk-aws-connect-lib/commit/537750fc57dca33fc71fd473354385849822ce8e))
13
+
2
14
  ## [0.2.3](https://github.com/netforbpo/aws-cdk-aws-connect-lib/compare/v0.2.2...v0.2.3) (2026-01-22)
3
15
 
4
16
 
@@ -58,7 +58,7 @@ var ContactFlowType;
58
58
  ContactFlowType["CAMPAIGN"] = "CAMPAIGN";
59
59
  })(ContactFlowType || (exports.ContactFlowType = ContactFlowType = {}));
60
60
  class ContactFlow extends aws_cdk_lib_1.Resource {
61
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@netforbpo/aws-cdk-aws-connect-lib.ContactFlow", version: "0.2.4" };
61
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@netforbpo/aws-cdk-aws-connect-lib.ContactFlow", version: "0.2.6" };
62
62
  static fromLookup(scope, id, options) {
63
63
  throw new Error('Not implemented (Bad Amazon API. Produces a security token invalid)');
64
64
  if (aws_cdk_lib_1.Token.isUnresolved(options.contactFlowName)
@@ -44,7 +44,7 @@ var ContactFlowModuleState;
44
44
  ContactFlowModuleState["ARCHIVED"] = "ARCHIVED";
45
45
  })(ContactFlowModuleState || (exports.ContactFlowModuleState = ContactFlowModuleState = {}));
46
46
  class ContactFlowModule extends aws_cdk_lib_1.Resource {
47
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@netforbpo/aws-cdk-aws-connect-lib.ContactFlowModule", version: "0.2.4" };
47
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@netforbpo/aws-cdk-aws-connect-lib.ContactFlowModule", version: "0.2.6" };
48
48
  static fromLookup(scope, id, options) {
49
49
  throw new Error('Not implemented (Bad Amazon API. Produces a security token invalid)');
50
50
  if (aws_cdk_lib_1.Token.isUnresolved(options.contactFlowModuleName)
@@ -0,0 +1,113 @@
1
+ import { IResolvable, IResource, Resource } from 'aws-cdk-lib';
2
+ import { Construct } from 'constructs';
3
+ import { IInstance } from './instance';
4
+ export interface IDataTable extends IResource {
5
+ /**
6
+ * The ARN of the data table
7
+ */
8
+ readonly dataTableArn: string;
9
+ }
10
+ export declare enum DataTableValueLockLevel {
11
+ DATA_TABLE = "DATA_TABLE",
12
+ PRIMARY_VALUE = "PRIMARY_VALUE",
13
+ ATTRIBUTE = "ATTRIBUTE",
14
+ VALUE = "VALUE",
15
+ NONE = "NONE"
16
+ }
17
+ export declare enum DataTableValueType {
18
+ TEXT = "TEXT",
19
+ NUMBER = "NUMBER",
20
+ BOOLEAN = "BOOLEAN",
21
+ TEXT_LIST = "TEXT_LIST",
22
+ NUMBER_LIST = "NUMBER_LIST"
23
+ }
24
+ export interface DataTableProps {
25
+ /**
26
+ * The AWS connect instance to attach the data table to.
27
+ */
28
+ readonly instance: IInstance;
29
+ /**
30
+ * The name of the data table. Must be unique within the instance.
31
+ */
32
+ readonly name: string;
33
+ /**
34
+ * The description of the data table
35
+ */
36
+ readonly description?: string;
37
+ /**
38
+ * The default timezone for resolving time-based dynamic values. Defaults to UTC
39
+ */
40
+ readonly timeZone?: string;
41
+ /**
42
+ * The lock level to control concurrent edits. Defaults to NONE
43
+ */
44
+ readonly valueLockLevel?: DataTableValueLockLevel;
45
+ }
46
+ export interface DataTableEnumProperty {
47
+ readonly strict?: boolean;
48
+ readonly values?: string[];
49
+ }
50
+ export interface DataTableValidationProps {
51
+ readonly enum?: DataTableEnumProperty;
52
+ readonly exclusiveMaximum?: number;
53
+ readonly exclusiveMinimum?: number;
54
+ readonly maximum?: number;
55
+ readonly maxLength?: number;
56
+ readonly maxValues?: number;
57
+ readonly minimum?: number;
58
+ readonly minLength?: number;
59
+ readonly minValues?: number;
60
+ readonly multipleOf?: number;
61
+ }
62
+ export interface DataTableAttributeProps {
63
+ readonly name: string;
64
+ readonly description?: string;
65
+ readonly primary?: boolean;
66
+ readonly valueType: DataTableValueType;
67
+ readonly validation?: DataTableValidationProps;
68
+ }
69
+ export interface DataTableAttribute {
70
+ readonly attributeId: IResolvable | string;
71
+ readonly name: string;
72
+ }
73
+ export interface DataTableLookupOptions {
74
+ readonly instanceArn: string;
75
+ readonly dataTableArn?: string;
76
+ readonly dataTableId?: string;
77
+ readonly name?: string;
78
+ }
79
+ declare abstract class DataTableBase extends Resource implements IDataTable {
80
+ abstract readonly dataTableArn: string;
81
+ abstract readonly instanceArn: string;
82
+ private definedAttributes;
83
+ /**
84
+ * Define an attribute for the data table
85
+ *
86
+ * @param config
87
+ * @param id
88
+ */
89
+ addAttribute(config: DataTableAttributeProps, id?: string | undefined): DataTableAttribute;
90
+ private buildHash;
91
+ private mapAttributes;
92
+ /**
93
+ * Creates a record into the data table.
94
+ * Requires that all attributes were defined via {DataTable.addAttribute}
95
+ *
96
+ * @param primary_values To set the default records, specify and empty object ({})
97
+ * @param values
98
+ */
99
+ addRecord(primary_values: {
100
+ [key: string]: string;
101
+ }, values: {
102
+ [key: string]: string;
103
+ }): void;
104
+ }
105
+ export declare class DataTable extends DataTableBase {
106
+ static fromLookup(scope: Construct, id: string, options: DataTableLookupOptions): IDataTable;
107
+ private readonly instance;
108
+ private readonly resource;
109
+ constructor(scope: Construct, id: string, props: DataTableProps);
110
+ get instanceArn(): string;
111
+ get dataTableArn(): string;
112
+ }
113
+ export {};
@@ -0,0 +1,216 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.DataTable = exports.DataTableValueType = exports.DataTableValueLockLevel = void 0;
40
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
41
+ const crypto_1 = __importDefault(require("crypto"));
42
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
43
+ const cxschema = __importStar(require("aws-cdk-lib/cloud-assembly-schema"));
44
+ const helpers_internal_1 = require("aws-cdk-lib/core/lib/helpers-internal");
45
+ const metadata_resource_1 = require("aws-cdk-lib/core/lib/metadata-resource");
46
+ var DataTableValueLockLevel;
47
+ (function (DataTableValueLockLevel) {
48
+ DataTableValueLockLevel["DATA_TABLE"] = "DATA_TABLE";
49
+ DataTableValueLockLevel["PRIMARY_VALUE"] = "PRIMARY_VALUE";
50
+ DataTableValueLockLevel["ATTRIBUTE"] = "ATTRIBUTE";
51
+ DataTableValueLockLevel["VALUE"] = "VALUE";
52
+ DataTableValueLockLevel["NONE"] = "NONE";
53
+ })(DataTableValueLockLevel || (exports.DataTableValueLockLevel = DataTableValueLockLevel = {}));
54
+ var DataTableValueType;
55
+ (function (DataTableValueType) {
56
+ DataTableValueType["TEXT"] = "TEXT";
57
+ DataTableValueType["NUMBER"] = "NUMBER";
58
+ DataTableValueType["BOOLEAN"] = "BOOLEAN";
59
+ DataTableValueType["TEXT_LIST"] = "TEXT_LIST";
60
+ DataTableValueType["NUMBER_LIST"] = "NUMBER_LIST";
61
+ })(DataTableValueType || (exports.DataTableValueType = DataTableValueType = {}));
62
+ const DUMMY_DATA_TABLE_PROPS = {
63
+ instanceArn: 'instance-arn',
64
+ dataTableArn: 'data-table-arn',
65
+ name: 'name',
66
+ };
67
+ class DataTableBase extends aws_cdk_lib_1.Resource {
68
+ definedAttributes = new Map();
69
+ /**
70
+ * Define an attribute for the data table
71
+ *
72
+ * @param config
73
+ * @param id
74
+ */
75
+ addAttribute(config, id = undefined) {
76
+ console.log('attib instance', this.instanceArn);
77
+ const attrib = new aws_cdk_lib_1.aws_connect.CfnDataTableAttribute(this, id || `Attribute-${config.name}}`, {
78
+ instanceArn: this.instanceArn,
79
+ dataTableArn: this.dataTableArn,
80
+ name: config.name,
81
+ description: config.description,
82
+ primary: config.primary,
83
+ valueType: config.valueType,
84
+ validation: config.validation,
85
+ });
86
+ const info = {
87
+ attributeId: attrib.attrAttributeId,
88
+ name: config.name,
89
+ };
90
+ this.definedAttributes.set(config.name, info);
91
+ return info;
92
+ }
93
+ buildHash(data, { json_encode = true, length = 8 } = {}) {
94
+ if (json_encode) {
95
+ data = JSON.stringify(data);
96
+ }
97
+ const md5 = crypto_1.default.createHash('md5').update(data).digest('hex');
98
+ return md5.slice(0, length).toUpperCase();
99
+ }
100
+ mapAttributes(values) {
101
+ const ret = [];
102
+ for (const [key, value] of Object.entries(values)) {
103
+ const lookup = this.definedAttributes.get(key);
104
+ if (!lookup || !lookup.attributeId) {
105
+ throw new aws_cdk_lib_1.ValidationError((0, helpers_internal_1.lit) `Arguments`, `Key ${key} was not found. Make sure you defined it with DataTable.addAttribute`, this);
106
+ }
107
+ ret.push({
108
+ // This ignore is because we CAN push a IResolvable to attributeId
109
+ // @ts-ignore
110
+ attributeId: lookup.attributeId,
111
+ attributeValue: value,
112
+ });
113
+ }
114
+ return ret;
115
+ }
116
+ /**
117
+ * Creates a record into the data table.
118
+ * Requires that all attributes were defined via {DataTable.addAttribute}
119
+ *
120
+ * @param primary_values To set the default records, specify and empty object ({})
121
+ * @param values
122
+ */
123
+ addRecord(primary_values, values) {
124
+ const keyhash = this.buildHash(primary_values);
125
+ new aws_cdk_lib_1.aws_connect.CfnDataTableRecord(this, `Record-${keyhash}`, {
126
+ instanceArn: this.instanceArn,
127
+ dataTableArn: this.dataTableArn,
128
+ dataTableRecord: {
129
+ primaryValues: this.mapAttributes(primary_values),
130
+ values: this.mapAttributes(values),
131
+ },
132
+ });
133
+ }
134
+ }
135
+ class DataTable extends DataTableBase {
136
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@netforbpo/aws-cdk-aws-connect-lib.DataTable", version: "0.2.6" };
137
+ static fromLookup(scope, id, options) {
138
+ if (aws_cdk_lib_1.Token.isUnresolved(options.name)
139
+ || aws_cdk_lib_1.Token.isUnresolved(options.instanceArn)
140
+ || aws_cdk_lib_1.Token.isUnresolved(options.dataTableId)
141
+ || aws_cdk_lib_1.Token.isUnresolved(options.dataTableArn)) {
142
+ throw new aws_cdk_lib_1.ValidationError((0, helpers_internal_1.lit) `Arguments`, 'All arguments to DataTable.fromLookup() must be concrete (no Tokens)', scope);
143
+ }
144
+ const filter = {};
145
+ filter.resourceModel = {
146
+ InstanceArn: options.instanceArn,
147
+ };
148
+ if (options.dataTableArn) {
149
+ filter.exactIdentifier = options.dataTableArn;
150
+ }
151
+ else if (options.dataTableId) {
152
+ filter.exactIdentifier = `${options.instanceArn}/data-table/${options.dataTableId}`;
153
+ }
154
+ if (options.name) {
155
+ filter.propertyMatch ||= {};
156
+ filter.propertyMatch.Name = options.name;
157
+ }
158
+ const response = aws_cdk_lib_1.ContextProvider.getValue(scope, {
159
+ provider: cxschema.ContextProvider.CC_API_PROVIDER,
160
+ props: {
161
+ typeName: 'AWS::Connect::DataTable',
162
+ ...filter,
163
+ propertiesToReturn: ['Arn', 'Name'],
164
+ expectedMatchCount: 'exactly-one',
165
+ },
166
+ dummyValue: undefined,
167
+ }).value;
168
+ let instance = undefined;
169
+ if (response && response[0]) {
170
+ instance = {
171
+ instanceArn: options.instanceArn,
172
+ dataTableArn: response[0].Arn,
173
+ name: response[0].Name,
174
+ };
175
+ }
176
+ return new LookedUpDataTable(scope, id, instance ?? DUMMY_DATA_TABLE_PROPS, instance === undefined);
177
+ }
178
+ instance;
179
+ resource;
180
+ constructor(scope, id, props) {
181
+ super(scope, id);
182
+ (0, metadata_resource_1.addConstructMetadata)(this, props);
183
+ this.instance = props.instance;
184
+ this.resource = new aws_cdk_lib_1.aws_connect.CfnDataTable(this, 'DataTable', {
185
+ instanceArn: props.instance.instanceArn,
186
+ name: props.name,
187
+ description: props.description,
188
+ status: 'PUBLISHED', // only one value allowed
189
+ timeZone: props.timeZone || 'UTC',
190
+ valueLockLevel: props.valueLockLevel || DataTableValueLockLevel.NONE,
191
+ });
192
+ }
193
+ get instanceArn() {
194
+ return this.instance.instanceArn;
195
+ }
196
+ get dataTableArn() {
197
+ return this.resource.attrArn;
198
+ }
199
+ }
200
+ exports.DataTable = DataTable;
201
+ class LookedUpDataTable extends DataTableBase {
202
+ dataTableArn;
203
+ instanceArn;
204
+ incompleteDefinition;
205
+ constructor(scope, id, props, isIncomplete) {
206
+ super(scope, id, {
207
+ region: props.region,
208
+ account: props.ownerAccountId,
209
+ });
210
+ (0, metadata_resource_1.addConstructMetadata)(this, props);
211
+ this.instanceArn = props.instanceArn;
212
+ this.dataTableArn = props.dataTableArn;
213
+ this.incompleteDefinition = isIncomplete;
214
+ }
215
+ }
216
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YV90YWJsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9kYXRhX3RhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvREFBNEI7QUFDNUIsNkNBT3FCO0FBQ3JCLDRFQUE4RDtBQUM5RCw0RUFBNEQ7QUFDNUQsOEVBQThFO0FBVzlFLElBQVksdUJBTVg7QUFORCxXQUFZLHVCQUF1QjtJQUNqQyxvREFBeUIsQ0FBQTtJQUN6QiwwREFBK0IsQ0FBQTtJQUMvQixrREFBdUIsQ0FBQTtJQUN2QiwwQ0FBZSxDQUFBO0lBQ2Ysd0NBQWEsQ0FBQTtBQUNmLENBQUMsRUFOVyx1QkFBdUIsdUNBQXZCLHVCQUF1QixRQU1sQztBQUVELElBQVksa0JBTVg7QUFORCxXQUFZLGtCQUFrQjtJQUM1QixtQ0FBYSxDQUFBO0lBQ2IsdUNBQWlCLENBQUE7SUFDakIseUNBQW1CLENBQUE7SUFDbkIsNkNBQXVCLENBQUE7SUFDdkIsaURBQTJCLENBQUE7QUFDN0IsQ0FBQyxFQU5XLGtCQUFrQixrQ0FBbEIsa0JBQWtCLFFBTTdCO0FBd0RELE1BQU0sc0JBQXNCLEdBQUc7SUFDN0IsV0FBVyxFQUFFLGNBQWM7SUFDM0IsWUFBWSxFQUFFLGdCQUFnQjtJQUM5QixJQUFJLEVBQUUsTUFBTTtDQUNiLENBQUM7QUFTRixNQUFlLGFBQWMsU0FBUSxzQkFBUTtJQUluQyxpQkFBaUIsR0FBb0MsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUV2RTs7Ozs7T0FLRztJQUNILFlBQVksQ0FBQyxNQUErQixFQUFFLEtBQXlCLFNBQVM7UUFDOUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDaEQsTUFBTSxNQUFNLEdBQUcsSUFBSSx5QkFBTyxDQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRSxFQUFFLElBQUksYUFBYSxNQUFNLENB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YyxFQUFFLEtBQUssQ0FBQyxjQUFjLElBQUksdUJBQXVCLENBQUMsSUFBSTtTQUNyRSxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQztJQUMvQixDQUFDOztBQXZFSCw4QkF3RUM7QUFFRCxNQUFNLGlCQUFrQixTQUFRLGFBQWE7SUFDM0IsWUFBWSxDQUFTO0lBQ3JCLFdBQVcsQ0FBUztJQUNwQixvQkFBb0IsQ0FBVTtJQUU5QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQVUsRUFBRSxZQUFxQjtRQUN6RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNmLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTtZQUNwQixPQUFPLEVBQUUsS0FBSyxDQUFDLGNBQWM7U0FDOUIsQ0FBQyxDQUFDO1FBQ0gsSUFBQSx3Q0FBb0IsRUFBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFbEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQztRQUN2QyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsWUFBWSxDQUFDO0lBQzNDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjcnlwdG8gZnJvbSAnY3J5cHRvJztcbmltcG9ydCB7XG4gIGF3c19jb25uZWN0IGFzIGNvbm5lY3QsXG4gIENvbnRleHRQcm92aWRlciwgSVJlc29sdmFibGUsXG4gIElSZXNvdXJjZSxcbiAgUmVzb3VyY2UsXG4gIFRva2VuLFxuICBWYWxpZGF0aW9uRXJyb3IsXG59IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCAqIGFzIGN4c2NoZW1hIGZyb20gJ2F3cy1jZGstbGliL2Nsb3VkLWFzc2VtYmx5LXNjaGVtYSc7XG5pbXBvcnQgeyBsaXQgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9oZWxwZXJzLWludGVybmFsJztcbmltcG9ydCB7IGFkZENvbnN0cnVjdE1ldGFkYXRhIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvbWV0YWRhdGEtcmVzb3VyY2UnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBJSW5zdGFuY2UgfSBmcm9tICcuL2luc3RhbmNlJztcblxuZXhwb3J0IGludGVyZmFjZSBJRGF0YVRhYmxlIGV4dGVuZHMgSVJlc291cmNlIHtcbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIGRhdGEgdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGRhdGFUYWJsZUFybjogc3RyaW5nO1xufVxuXG5leHBvcnQgZW51bSBEYXRhVGFibGVWYWx1ZUxvY2tMZXZlbCB7XG4gIERBVEFfVEFCTEUgPSAnREFUQV9UQUJMRScsXG4gIFBSSU1BUllfVkFMVUUgPSAnUFJJTUFSWV9WQUxVRScsXG4gIEFUVFJJQlVURSA9ICdBVFRSSUJVVEUnLFxuICBWQUxVRSA9ICdWQUxVRScsXG4gIE5PTkUgPSAnTk9ORScsXG59XG5cbmV4cG9ydCBlbnVtIERhdGFUYWJsZVZhbHVlVHlwZSB7XG4gIFRFWFQgPSAnVEVYVCcsXG4gIE5VTUJFUiA9ICdOVU1CRVInLFxuICBCT09MRUFOID0gJ0JPT0xFQU4nLFxuICBURVhUX0xJU1QgPSAnVEVYVF9MSVNUJyxcbiAgTlVNQkVSX0xJU1QgPSAnTlVNQkVSX0xJU1QnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFUYWJsZVByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBBV1MgY29ubmVjdCBpbnN0YW5jZSB0byBhdHRhY2ggdGhlIGRhdGEgdGFibGUgdG8uXG4gICAqL1xuICByZWFkb25seSBpbnN0YW5jZTogSUluc3RhbmNlO1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGRhdGEgdGFibGUuIE11c3QgYmUgdW5pcXVlIHdpdGhpbiB0aGUgaW5zdGFuY2UuXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgZGVzY3JpcHRpb24gb2YgdGhlIGRhdGEgdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGRlZmF1bHQgdGltZXpvbmUgZm9yIHJlc29sdmluZyB0aW1lLWJhc2VkIGR5bmFtaWMgdmFsdWVzLiBEZWZhdWx0cyB0byBVVENcbiAgICovXG4gIHJlYWRvbmx5IHRpbWVab25lPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGxvY2sgbGV2ZWwgdG8gY29udHJvbCBjb25jdXJyZW50IGVkaXRzLiBEZWZhdWx0cyB0byBOT05FXG4gICAqL1xuICByZWFkb25seSB2YWx1ZUxvY2tMZXZlbD86IERhdGFUYWJsZVZhbHVlTG9ja0xldmVsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFUYWJsZUVudW1Qcm9wZXJ0eSB7XG4gIHJlYWRvbmx5IHN0cmljdD86IGJvb2xlYW47XG4gIHJlYWRvbmx5IHZhbHVlcz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFUYWJsZVZhbGlkYXRpb25Qcm9wcyB7XG4gIHJlYWRvbmx5IGVudW0/OiBEYXRhVGFibGVFbnVtUHJvcGVydHk7XG4gIHJlYWRvbmx5IGV4Y2x1c2l2ZU1heGltdW0/OiBudW1iZXI7XG4gIHJlYWRvbmx5IGV4Y2x1c2l2ZU1pbmltdW0/OiBudW1iZXI7XG4gIHJlYWRvbmx5IG1heGltdW0/OiBudW1iZXI7XG4gIHJlYWRvbmx5IG1heExlbmd0aD86IG51bWJlcjtcbiAgcmVhZG9ubHkgbWF4VmFsdWVzPzogbnVtYmVyO1xuICByZWFkb25seSBtaW5pbXVtPzogbnVtYmVyO1xuICByZWFkb25seSBtaW5MZW5ndGg/OiBudW1iZXI7XG4gIHJlYWRvbmx5IG1pblZhbHVlcz86IG51bWJlcjtcbiAgcmVhZG9ubHkgbXVsdGlwbGVPZj86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXRhVGFibGVBdHRyaWJ1dGVQcm9wcyB7XG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHByaW1hcnk/OiBib29sZWFuO1xuICByZWFkb25seSB2YWx1ZVR5cGU6IERhdGFUYWJsZVZhbHVlVHlwZTtcbiAgcmVhZG9ubHkgdmFsaWRhdGlvbj86IERhdGFUYWJsZVZhbGlkYXRpb25Qcm9wcztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXRhVGFibGVBdHRyaWJ1dGUge1xuICByZWFkb25seSBhdHRyaWJ1dGVJZDogSVJlc29sdmFibGUgfCBzdHJpbmc7XG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbn1cblxuY29uc3QgRFVNTVlfREFUQV9UQUJMRV9QUk9QUyA9IHtcbiAgaW5zdGFuY2VBcm46ICdpbnN0YW5jZS1hcm4nLFxuICBkYXRhVGFibGVBcm46ICdkYXRhLXRhYmxlLWFybicsXG4gIG5hbWU6ICduYW1lJyxcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YVRhYmxlTG9va3VwT3B0aW9ucyB7XG4gIHJlYWRvbmx5IGluc3RhbmNlQXJuOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGRhdGFUYWJsZUFybj86IHN0cmluZztcbiAgcmVhZG9ubHkgZGF0YVRhYmxlSWQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IG5hbWU/OiBzdHJpbmc7XG59XG5cbmFic3RyYWN0IGNsYXNzIERhdGFUYWJsZUJhc2UgZXh0ZW5kcyBSZXNvdXJjZSBpbXBsZW1lbnRzIElEYXRhVGFibGUge1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgZGF0YVRhYmxlQXJuOiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBpbnN0YW5jZUFybjogc3RyaW5nO1xuXG4gIHByaXZhdGUgZGVmaW5lZEF0dHJpYnV0ZXM6IE1hcDxzdHJpbmcsIERhdGFUYWJsZUF0dHJpYnV0ZT4gPSBuZXcgTWFwKCk7XG5cbiAgLyoqXG4gICAqIERlZmluZSBhbiBhdHRyaWJ1dGUgZm9yIHRoZSBkYXRhIHRhYmxlXG4gICAqXG4gICAqIEBwYXJhbSBjb25maWdcbiAgICogQHBhcmFtIGlkXG4gICAqL1xuICBhZGRBdHRyaWJ1dGUoY29uZmlnOiBEYXRhVGFibGVBdHRyaWJ1dGVQcm9wcywgaWQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZCkgOiBEYXRhVGFibGVBdHRyaWJ1dGUge1xuICAgIGNvbnNvbGUubG9nKCdhdHRpYiBpbnN0YW5jZScsIHRoaXMuaW5zdGFuY2VBcm4pO1xuICAgIGNvbnN0IGF0dHJpYiA9IG5ldyBjb25uZWN0LkNmbkRhdGFUYWJsZUF0dHJpYnV0ZSh0aGlzLCBpZCB8fCBgQXR0cmlidXRlLSR7Y29uZmlnLm5hbWV9fWAsIHtcbiAgICAgIGluc3RhbmNlQXJuOiB0aGlzLmluc3RhbmNlQXJuLFxuICAgICAgZGF0YVRhYmxlQXJuOiB0aGlzLmRhdGFUYWJsZUFybixcbiAgICAgIG5hbWU6IGNvbmZpZy5uYW1lLFxuICAgICAgZGVzY3JpcHRpb246IGNvbmZpZy5kZXNjcmlwdGlvbixcbiAgICAgIHByaW1hcnk6IGNvbmZpZy5wcmltYXJ5LFxuICAgICAgdmFsdWVUeXBlOiBjb25maWcudmFsdWVUeXBlLFxuICAgICAgdmFsaWRhdGlvbjogY29uZmlnLnZhbGlkYXRpb24sXG4gICAgfSk7XG5cbiAgICBjb25zdCBpbmZvID0ge1xuICAgICAgYXR0cmlidXRlSWQ6IGF0dHJpYi5hdHRyQXR0cmlidXRlSWQsXG4gICAgICBuYW1lOiBjb25maWcubmFtZSxcbiAgICB9O1xuICAgIHRoaXMuZGVmaW5lZEF0dHJpYnV0ZXMuc2V0KGNvbmZpZy5uYW1lLCBpbmZvKTtcblxuICAgIHJldHVybiBpbmZvO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZEhhc2goZGF0YTogYW55LCB7IGpzb25fZW5jb2RlID0gdHJ1ZSwgbGVuZ3RoID0gOCB9OiB7IGpzb25fZW5jb2RlPzogYm9vbGVhbjsgbGVuZ3RoPzogbnVtYmVyIH0gPSB7fSk6IHN0cmluZyB7XG4gICAgaWYgKGpzb25fZW5jb2RlKSB7XG4gICAgICBkYXRhID0gSlNPTi5zdHJpbmdpZnkoZGF0YSk7XG4gICAgfVxuICAgIGNvbnN0IG1kNSA9IGNyeXB0by5jcmVhdGVIYXNoKCdtZDUnKS51cGRhdGUoZGF0YSkuZGlnZXN0KCdoZXgnKTtcbiAgICByZXR1cm4gbWQ1LnNsaWNlKDAsIGxlbmd0aCkudG9VcHBlckNhc2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgbWFwQXR0cmlidXRlcyh2YWx1ZXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0pOiBjb25uZWN0LkNmbkRhdGFUYWJsZVJlY29yZC5WYWx1ZVByb3BlcnR5W10ge1xuICAgIGNvbnN0IHJldCA6IGNvbm5lY3QuQ2ZuRGF0YVRhYmxlUmVjb3JkLlZhbHVlUHJvcGVydHlbXSA9IFtdO1xuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHZhbHVlcykpIHtcbiAgICAgIGNvbnN0IGxvb2t1cCA9IHRoaXMuZGVmaW5lZEF0dHJpYnV0ZXMuZ2V0KGtleSk7XG4gICAgICBpZiAoIWxvb2t1cCB8fCAhbG9va3VwLmF0dHJpYnV0ZUlkKSB7XG4gICAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IobGl0YEFyZ3VtZW50c2AsIGBLZXkgJHtrZXl9IHdhcyBub3QgZm91bmQuIE1ha2Ugc3VyZSB5b3UgZGVmaW5lZCBpdCB3aXRoIERhdGFUYWJsZS5hZGRBdHRyaWJ1dGVgLCB0aGlzKTtcbiAgICAgIH1cbiAgICAgIHJldC5wdXNoKHtcbiAgICAgICAgLy8gVGhpcyBpZ25vcmUgaXMgYmVjYXVzZSB3ZSBDQU4gcHVzaCBhIElSZXNvbHZhYmxlIHRvIGF0dHJpYnV0ZUlkXG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgYXR0cmlidXRlSWQ6IGxvb2t1cC5hdHRyaWJ1dGVJZCxcbiAgICAgICAgYXR0cmlidXRlVmFsdWU6IHZhbHVlLFxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiByZXQ7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHJlY29yZCBpbnRvIHRoZSBkYXRhIHRhYmxlLlxuICAgKiBSZXF1aXJlcyB0aGF0IGFsbCBhdHRyaWJ1dGVzIHdlcmUgZGVmaW5lZCB2aWEge0RhdGFUYWJsZS5hZGRBdHRyaWJ1dGV9XG4gICAqXG4gICAqIEBwYXJhbSBwcmltYXJ5X3ZhbHVlcyBUbyBzZXQgdGhlIGRlZmF1bHQgcmVjb3Jkcywgc3BlY2lmeSBhbmQgZW1wdHkgb2JqZWN0ICh7fSlcbiAgICogQHBhcmFtIHZhbHVlc1xuICAgKi9cbiAgYWRkUmVjb3JkKHByaW1hcnlfdmFsdWVzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9LCB2YWx1ZXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gKSB7XG4gICAgY29uc3Qga2V5aGFzaCA9IHRoaXMuYnVpbGRIYXNoKHByaW1hcnlfdmFsdWVzKTtcbiAgICBuZXcgY29ubmVjdC5DZm5EYXRhVGFibGVSZWNvcmQoXG4gICAgICB0aGlzLCBgUmVjb3JkLSR7a2V5aGFzaH1gLFxuICAgICAge1xuICAgICAgICBpbnN0YW5jZUFybjogdGhpcy5pbnN0YW5jZUFybixcbiAgICAgICAgZGF0YVRhYmxlQXJuOiB0aGlzLmRhdGFUYWJsZUFybixcbiAgICAgICAgZGF0YVRhYmxlUmVjb3JkOiB7XG4gICAgICAgICAgcHJpbWFyeVZhbHVlczogdGhpcy5tYXBBdHRyaWJ1dGVzKHByaW1hcnlfdmFsdWVzKSxcbiAgICAgICAgICB2YWx1ZXM6IHRoaXMubWFwQXR0cmlidXRlcyh2YWx1ZXMpLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEYXRhVGFibGUgZXh0ZW5kcyBEYXRhVGFibGVCYXNlIHtcbiAgcHVibGljIHN0YXRpYyBmcm9tTG9va3VwKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIG9wdGlvbnM6IERhdGFUYWJsZUxvb2t1cE9wdGlvbnMpOiBJRGF0YVRhYmxlIHtcbiAgICBpZiAoVG9rZW4uaXNVbnJlc29sdmVkKG9wdGlvbnMubmFtZSlcbiAgICAgIHx8IFRva2VuLmlzVW5yZXNvbHZlZChvcHRpb25zLmluc3RhbmNlQXJuKVxuICAgICAgfHwgVG9rZW4uaXNVbnJlc29sdmVkKG9wdGlvbnMuZGF0YVRhYmxlSWQpXG4gICAgICB8fCBUb2tlbi5pc1VucmVzb2x2ZWQob3B0aW9ucy5kYXRhVGFibGVBcm4pKSB7XG4gICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKGxpdGBBcmd1bWVudHNgLCAnQWxsIGFyZ3VtZW50cyB0byBEYXRhVGFibGUuZnJvbUxvb2t1cCgpIG11c3QgYmUgY29uY3JldGUgKG5vIFRva2VucyknLCBzY29wZSk7XG4gICAgfVxuXG4gICAgY29uc3QgZmlsdGVyOiBhbnkgPSB7fTtcblxuICAgIGZpbHRlci5yZXNvdXJjZU1vZGVsID0ge1xuICAgICAgSW5zdGFuY2VBcm46IG9wdGlvbnMuaW5zdGFuY2VBcm4sXG4gICAgfTtcbiAgICBpZiAob3B0aW9ucy5kYXRhVGFibGVBcm4pIHtcbiAgICAgIGZpbHRlci5leGFjdElkZW50aWZpZXIgPSBvcHRpb25zLmRhdGFUYWJsZUFybjtcbiAgICB9IGVsc2UgaWYgKG9wdGlvbnMuZGF0YVRhYmxlSWQpIHtcbiAgICAgIGZpbHRlci5leGFjdElkZW50aWZpZXIgPSBgJHtvcHRpb25zLmluc3RhbmNlQXJufS9kYXRhLXRhYmxlLyR7b3B0aW9ucy5kYXRhVGFibGVJZH1gO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy5uYW1lKSB7XG4gICAgICBmaWx0ZXIucHJvcGVydHlNYXRjaCB8fD0ge307XG4gICAgICBmaWx0ZXIucHJvcGVydHlNYXRjaC5OYW1lID0gb3B0aW9ucy5uYW1lO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3BvbnNlOiB7IFtrZXk6IHN0cmluZ106IGFueSB9W10gPSBDb250ZXh0UHJvdmlkZXIuZ2V0VmFsdWUoc2NvcGUsIHtcbiAgICAgIHByb3ZpZGVyOiBjeHNjaGVtYS5Db250ZXh0UHJvdmlkZXIuQ0NfQVBJX1BST1ZJREVSLFxuICAgICAgcHJvcHM6IHtcbiAgICAgICAgdHlwZU5hbWU6ICdBV1M6OkNvbm5lY3Q6OkRhdGFUYWJsZScsXG4gICAgICAgIC4uLmZpbHRlcixcbiAgICAgICAgcHJvcGVydGllc1RvUmV0dXJuOiBbJ0FybicsICdOYW1lJ10sXG4gICAgICAgIGV4cGVjdGVkTWF0Y2hDb3VudDogJ2V4YWN0bHktb25lJyxcbiAgICAgIH0gYXMgY3hzY2hlbWEuQ2NBcGlDb250ZXh0UXVlcnksXG4gICAgICBkdW1teVZhbHVlOiB1bmRlZmluZWQsXG4gICAgfSkudmFsdWU7XG5cbiAgICBsZXQgaW5zdGFuY2UgPSB1bmRlZmluZWQ7XG4gICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlWzBdKSB7XG4gICAgICBpbnN0YW5jZSA9IHtcbiAgICAgICAgaW5zdGFuY2VBcm46IG9wdGlvbnMuaW5zdGFuY2VBcm4sXG4gICAgICAgIGRhdGFUYWJsZUFybjogcmVzcG9uc2VbMF0uQXJuLFxuICAgICAgICBuYW1lOiByZXNwb25zZVswXS5OYW1lLFxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBMb29rZWRVcERhdGFUYWJsZShzY29wZSwgaWQsIGluc3RhbmNlID8/IERVTU1ZX0RBVEFfVEFCTEVfUFJPUFMsIGluc3RhbmNlID09PSB1bmRlZmluZWQpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBpbnN0YW5jZTogSUluc3RhbmNlO1xuICBwcml2YXRlIHJlYWRvbmx5IHJlc291cmNlOiBjb25uZWN0LkNmbkRhdGFUYWJsZTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogRGF0YVRhYmxlUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgYWRkQ29uc3RydWN0TWV0YWRhdGEodGhpcywgcHJvcHMpO1xuXG4gICAgdGhpcy5pbnN0YW5jZSA9IHByb3BzLmluc3RhbmNlO1xuICAgIHRoaXMucmVzb3VyY2UgPSBuZXcgY29ubmVjdC5DZm5EYXRhVGFibGUodGhpcywgJ0RhdGFUYWJsZScsIHtcbiAgICAgIGluc3RhbmNlQXJuOiBwcm9wcy5pbnN0YW5jZS5pbnN0YW5jZUFybixcbiAgICAgIG5hbWU6IHByb3BzLm5hbWUsXG4gICAgICBkZXNjcmlwdGlvbjogcHJvcHMuZGVzY3JpcHRpb24sXG4gICAgICBzdGF0dXM6ICdQVUJMSVNIRUQnLCAvLyBvbmx5IG9uZSB2YWx1ZSBhbGxvd2VkXG4gICAgICB0aW1lWm9uZTogcHJvcHMudGltZVpvbmUgfHwgJ1VUQycsXG4gICAgICB2YWx1ZUxvY2tMZXZlbDogcHJvcHMudmFsdWVMb2NrTGV2ZWwgfHwgRGF0YVRhYmxlVmFsdWVMb2NrTGV2ZWwuTk9ORSxcbiAgICB9KTtcbiAgfVxuXG4gIGdldCBpbnN0YW5jZUFybigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmluc3RhbmNlLmluc3RhbmNlQXJuO1xuICB9XG5cbiAgZ2V0IGRhdGFUYWJsZUFybigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlc291cmNlLmF0dHJBcm47XG4gIH1cbn1cblxuY2xhc3MgTG9va2VkVXBEYXRhVGFibGUgZXh0ZW5kcyBEYXRhVGFibGVCYXNlIHtcbiAgcHVibGljIHJlYWRvbmx5IGRhdGFUYWJsZUFybjogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgaW5zdGFuY2VBcm46IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGluY29tcGxldGVEZWZpbml0aW9uOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBhbnksIGlzSW5jb21wbGV0ZTogYm9vbGVhbikge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgcmVnaW9uOiBwcm9wcy5yZWdpb24sXG4gICAgICBhY2NvdW50OiBwcm9wcy5vd25lckFjY291bnRJZCxcbiAgICB9KTtcbiAgICBhZGRDb25zdHJ1Y3RNZXRhZGF0YSh0aGlzLCBwcm9wcyk7XG5cbiAgICB0aGlzLmluc3RhbmNlQXJuID0gcHJvcHMuaW5zdGFuY2VBcm47XG4gICAgdGhpcy5kYXRhVGFibGVBcm4gPSBwcm9wcy5kYXRhVGFibGVBcm47XG4gICAgdGhpcy5pbmNvbXBsZXRlRGVmaW5pdGlvbiA9IGlzSW5jb21wbGV0ZTtcbiAgfVxufVxuXG4iXX0=
@@ -4,7 +4,7 @@ exports.EmailAddress = void 0;
4
4
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
5
5
  const aws_cdk_lib_1 = require("aws-cdk-lib");
6
6
  class EmailAddress extends aws_cdk_lib_1.Resource {
7
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@netforbpo/aws-cdk-aws-connect-lib.EmailAddress", version: "0.2.4" };
7
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@netforbpo/aws-cdk-aws-connect-lib.EmailAddress", version: "0.2.6" };
8
8
  resource;
9
9
  constructor(scope, id, props) {
10
10
  super(scope, id);
@@ -50,7 +50,7 @@ var HoursOfOperationDayOfWeek;
50
50
  HoursOfOperationDayOfWeek["SATURDAY"] = "SATURDAY";
51
51
  })(HoursOfOperationDayOfWeek || (exports.HoursOfOperationDayOfWeek = HoursOfOperationDayOfWeek = {}));
52
52
  class HoursOfOperationDefinition {
53
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@netforbpo/aws-cdk-aws-connect-lib.HoursOfOperationDefinition", version: "0.2.4" };
53
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@netforbpo/aws-cdk-aws-connect-lib.HoursOfOperationDefinition", version: "0.2.6" };
54
54
  static dayOfWeek(day, startTime, endTime) {
55
55
  return new HoursOfOperationDefinition({ config: { dayOfWeek: day, startTime: startTime, endTime: endTime } });
56
56
  }
@@ -83,7 +83,7 @@ class HoursOfOperationDefinition {
83
83
  }
84
84
  exports.HoursOfOperationDefinition = HoursOfOperationDefinition;
85
85
  class HoursOfOperation extends aws_cdk_lib_1.Resource {
86
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@netforbpo/aws-cdk-aws-connect-lib.HoursOfOperation", version: "0.2.4" };
86
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@netforbpo/aws-cdk-aws-connect-lib.HoursOfOperation", version: "0.2.6" };
87
87
  static fromLookup(scope, id, options) {
88
88
  if (aws_cdk_lib_1.Token.isUnresolved(options.name)
89
89
  || aws_cdk_lib_1.Token.isUnresolved(options.instanceArn)
package/lib/index.d.ts CHANGED
@@ -2,6 +2,7 @@ export * from './types';
2
2
  export * from './instance';
3
3
  export * from './contact_flow';
4
4
  export * from './contact_flow_module';
5
+ export * from './data_table';
5
6
  export * from './hours_of_operation';
6
7
  export * from './traffic_distribution_group';
7
8
  export * from './queue';
package/lib/index.js CHANGED
@@ -18,6 +18,7 @@ __exportStar(require("./types"), exports);
18
18
  __exportStar(require("./instance"), exports);
19
19
  __exportStar(require("./contact_flow"), exports);
20
20
  __exportStar(require("./contact_flow_module"), exports);
21
+ __exportStar(require("./data_table"), exports);
21
22
  __exportStar(require("./hours_of_operation"), exports);
22
23
  __exportStar(require("./traffic_distribution_group"), exports);
23
24
  __exportStar(require("./queue"), exports);
@@ -29,4 +30,4 @@ __exportStar(require("./user"), exports);
29
30
  __exportStar(require("./routing_profile"), exports);
30
31
  __exportStar(require("./security_profile"), exports);
31
32
  __exportStar(require("./storage_config"), exports);
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDBDQUF3QjtBQUN4Qiw2Q0FBMkI7QUFDM0IsaURBQStCO0FBQy9CLHdEQUFzQztBQUN0Qyx1REFBcUM7QUFDckMsK0RBQTZDO0FBQzdDLDBDQUF3QjtBQUN4QixpREFBK0I7QUFDL0Isa0RBQWdDO0FBQ2hDLGtEQUFnQztBQUNoQyxvREFBa0M7QUFDbEMseUNBQXVCO0FBQ3ZCLG9EQUFrQztBQUNsQyxxREFBbUM7QUFDbkMsbURBQWlDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2luc3RhbmNlJztcbmV4cG9ydCAqIGZyb20gJy4vY29udGFjdF9mbG93JztcbmV4cG9ydCAqIGZyb20gJy4vY29udGFjdF9mbG93X21vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2hvdXJzX29mX29wZXJhdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL3RyYWZmaWNfZGlzdHJpYnV0aW9uX2dyb3VwJztcbmV4cG9ydCAqIGZyb20gJy4vcXVldWUnO1xuZXhwb3J0ICogZnJvbSAnLi9waG9uZV9udW1iZXInO1xuZXhwb3J0ICogZnJvbSAnLi9lbWFpbF9hZGRyZXNzJztcbmV4cG9ydCAqIGZyb20gJy4vcXVpY2tfY29ubmVjdCc7XG5leHBvcnQgKiBmcm9tICcuL2hpZXJhcmNoeV9ncm91cCc7XG5leHBvcnQgKiBmcm9tICcuL3VzZXInO1xuZXhwb3J0ICogZnJvbSAnLi9yb3V0aW5nX3Byb2ZpbGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zZWN1cml0eV9wcm9maWxlJztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmFnZV9jb25maWcnO1xuIl19
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDBDQUF3QjtBQUN4Qiw2Q0FBMkI7QUFDM0IsaURBQStCO0FBQy9CLHdEQUFzQztBQUN0QywrQ0FBNkI7QUFDN0IsdURBQXFDO0FBQ3JDLCtEQUE2QztBQUM3QywwQ0FBd0I7QUFDeEIsaURBQStCO0FBQy9CLGtEQUFnQztBQUNoQyxrREFBZ0M7QUFDaEMsb0RBQWtDO0FBQ2xDLHlDQUF1QjtBQUN2QixvREFBa0M7QUFDbEMscURBQW1DO0FBQ25DLG1EQUFpQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnN0YW5jZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbnRhY3RfZmxvdyc7XG5leHBvcnQgKiBmcm9tICcuL2NvbnRhY3RfZmxvd19tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhX3RhYmxlJztcbmV4cG9ydCAqIGZyb20gJy4vaG91cnNfb2Zfb3BlcmF0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vdHJhZmZpY19kaXN0cmlidXRpb25fZ3JvdXAnO1xuZXhwb3J0ICogZnJvbSAnLi9xdWV1ZSc7XG5leHBvcnQgKiBmcm9tICcuL3Bob25lX251bWJlcic7XG5leHBvcnQgKiBmcm9tICcuL2VtYWlsX2FkZHJlc3MnO1xuZXhwb3J0ICogZnJvbSAnLi9xdWlja19jb25uZWN0JztcbmV4cG9ydCAqIGZyb20gJy4vaGllcmFyY2h5X2dyb3VwJztcbmV4cG9ydCAqIGZyb20gJy4vdXNlcic7XG5leHBvcnQgKiBmcm9tICcuL3JvdXRpbmdfcHJvZmlsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlY3VyaXR5X3Byb2ZpbGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zdG9yYWdlX2NvbmZpZyc7XG4iXX0=
package/lib/instance.js CHANGED
@@ -104,7 +104,7 @@ const DUMMY_INSTANCE_PROPS = {
104
104
  instanceId: 'instance-12345',
105
105
  };
106
106
  class Instance extends InstanceBase {
107
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@netforbpo/aws-cdk-aws-connect-lib.Instance", version: "0.2.4" };
107
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@netforbpo/aws-cdk-aws-connect-lib.Instance", version: "0.2.6" };
108
108
  static fromLookup(scope, id, options) {
109
109
  if (aws_cdk_lib_1.Token.isUnresolved(options.instanceId)
110
110
  || aws_cdk_lib_1.Token.isUnresolved(options.instanceName)
@@ -15,7 +15,7 @@ var PhoneNumberType;
15
15
  PhoneNumberType["SHORT_CODE"] = "SHORT_CODE";
16
16
  })(PhoneNumberType || (exports.PhoneNumberType = PhoneNumberType = {}));
17
17
  class PhoneNumber extends aws_cdk_lib_1.Resource {
18
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@netforbpo/aws-cdk-aws-connect-lib.PhoneNumber", version: "0.2.4" };
18
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@netforbpo/aws-cdk-aws-connect-lib.PhoneNumber", version: "0.2.6" };
19
19
  resource;
20
20
  constructor(scope, id, props) {
21
21
  super(scope, id);
package/lib/queue.js CHANGED
@@ -45,7 +45,7 @@ var QueueStatus;
45
45
  QueueStatus["DISABLED"] = "DISABLED";
46
46
  })(QueueStatus || (exports.QueueStatus = QueueStatus = {}));
47
47
  class Queue extends aws_cdk_lib_1.Resource {
48
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@netforbpo/aws-cdk-aws-connect-lib.Queue", version: "0.2.4" };
48
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@netforbpo/aws-cdk-aws-connect-lib.Queue", version: "0.2.6" };
49
49
  static fromLookup(scope, id, options) {
50
50
  if (aws_cdk_lib_1.Token.isUnresolved(options.name)
51
51
  || aws_cdk_lib_1.Token.isUnresolved(options.instanceArn)
@@ -55,7 +55,14 @@ export interface QuickConnectProps {
55
55
  */
56
56
  readonly userConfig?: QuickConnectUserConfig;
57
57
  }
58
+ export interface QuickConnectLookupOptions {
59
+ readonly instanceArn: string;
60
+ readonly quickConnectArn?: string;
61
+ readonly quickConnectId?: string;
62
+ readonly name?: string;
63
+ }
58
64
  export declare class QuickConnect extends Resource implements IQuickConnect {
65
+ static fromLookup(scope: Construct, id: string, options: QuickConnectLookupOptions): IQuickConnect;
59
66
  private readonly resource;
60
67
  constructor(scope: Construct, id: string, props: QuickConnectProps);
61
68
  private buildQuickConnect;