@cdklabs/cdk-ssm-documents 0.0.14 → 0.0.17

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.
Files changed (124) hide show
  1. package/.jsii +2337 -1257
  2. package/API.md +919 -98
  3. package/README.md +48 -1
  4. package/changelog.md +6 -1
  5. package/lib/construct/synth-utils.js +1 -1
  6. package/lib/document/automation-document.js +3 -3
  7. package/lib/document/command-document.js +3 -3
  8. package/lib/document/document-builder.js +2 -2
  9. package/lib/document/ssm-document.d.ts +3 -2
  10. package/lib/document/ssm-document.js +7 -27
  11. package/lib/domain/choice.js +1 -1
  12. package/lib/domain/data-type.js +1 -1
  13. package/lib/domain/enum/install-action.js +2 -2
  14. package/lib/domain/enum/install-uninstall-repair.js +2 -2
  15. package/lib/domain/enum/installation-type.js +2 -2
  16. package/lib/domain/enum/package-name.js +2 -2
  17. package/lib/domain/input.d.ts +179 -3
  18. package/lib/domain/input.js +139 -1
  19. package/lib/domain/operation.js +1 -1
  20. package/lib/domain/platform.js +1 -1
  21. package/lib/domain/precondition.js +1 -1
  22. package/lib/interface/approve-hook.js +2 -2
  23. package/lib/interface/auth-method.js +3 -3
  24. package/lib/interface/aws-invoker.js +2 -2
  25. package/lib/interface/downloadable-content.js +8 -8
  26. package/lib/interface/environment.js +3 -3
  27. package/lib/interface/execute-automation-hook/api-execute-automation-hook.js +1 -1
  28. package/lib/interface/observer.js +1 -1
  29. package/lib/interface/pause-hook.js +2 -2
  30. package/lib/interface/run-command-hook/api-run-command-hook.js +1 -1
  31. package/lib/interface/run-command-hook.d.ts +1 -1
  32. package/lib/interface/run-command-hook.js +1 -1
  33. package/lib/interface/run-document-location.js +2 -2
  34. package/lib/interface/sleep-hook.js +2 -2
  35. package/lib/interface/variables/boolean-variable.js +2 -2
  36. package/lib/interface/variables/map-list-variable.js +2 -2
  37. package/lib/interface/variables/number-variable.js +2 -2
  38. package/lib/interface/variables/secure-string-variable.js +7 -7
  39. package/lib/interface/variables/string-list-variable.js +2 -2
  40. package/lib/interface/variables/string-map-variable.js +2 -2
  41. package/lib/interface/variables/string-variable.js +4 -4
  42. package/lib/interface/variables/variable.d.ts +3 -3
  43. package/lib/interface/variables/variable.js +5 -5
  44. package/lib/interface/webhook.js +1 -1
  45. package/lib/parent-steps/automation/approve-step.js +1 -1
  46. package/lib/parent-steps/automation/assert-aws-resource-step.js +1 -1
  47. package/lib/parent-steps/automation/aws-api-step.d.ts +2 -2
  48. package/lib/parent-steps/automation/aws-api-step.js +3 -3
  49. package/lib/parent-steps/automation/branch-step.js +1 -1
  50. package/lib/parent-steps/automation/change-instance-state-step.js +3 -3
  51. package/lib/parent-steps/automation/copy-image-step.js +1 -1
  52. package/lib/parent-steps/automation/create-image-step.js +1 -1
  53. package/lib/parent-steps/automation/create-stack-step.js +3 -3
  54. package/lib/parent-steps/automation/create-tags-step.js +3 -3
  55. package/lib/parent-steps/automation/delete-image-step.js +1 -1
  56. package/lib/parent-steps/automation/delete-stack-step.js +3 -3
  57. package/lib/parent-steps/automation/execute-automation-step.js +1 -1
  58. package/lib/parent-steps/automation/execute-script-step.js +1 -1
  59. package/lib/parent-steps/automation/execute-state-machine-step.js +1 -1
  60. package/lib/parent-steps/automation/invoke-lambda-function-step.js +1 -1
  61. package/lib/parent-steps/automation/invoke-webhook-step.js +1 -1
  62. package/lib/parent-steps/automation/pause-step.js +1 -1
  63. package/lib/parent-steps/automation/run-command-step.d.ts +1 -1
  64. package/lib/parent-steps/automation/run-command-step.js +4 -4
  65. package/lib/parent-steps/automation/run-instance-step.js +1 -1
  66. package/lib/parent-steps/automation/sleep-step.js +1 -1
  67. package/lib/parent-steps/automation/wait-for-resource-step.js +1 -1
  68. package/lib/parent-steps/automation-step.js +1 -1
  69. package/lib/parent-steps/command/applications-step.js +1 -1
  70. package/lib/parent-steps/command/configure-docker-step.js +1 -1
  71. package/lib/parent-steps/command/configure-package-step.d.ts +1 -1
  72. package/lib/parent-steps/command/configure-package-step.js +2 -2
  73. package/lib/parent-steps/command/domain-join-step.js +1 -1
  74. package/lib/parent-steps/command/download-content-step.js +1 -1
  75. package/lib/parent-steps/command/ps-module-step.js +1 -1
  76. package/lib/parent-steps/command/run-docker-action-step.js +1 -1
  77. package/lib/parent-steps/command/run-document-step.js +1 -1
  78. package/lib/parent-steps/command/run-powershell-script-step.js +1 -1
  79. package/lib/parent-steps/command/run-shell-script-step.js +1 -1
  80. package/lib/parent-steps/command/software-inventory-step.js +1 -1
  81. package/lib/parent-steps/command/update-agent-step.js +1 -1
  82. package/lib/parent-steps/command/update-ssm-agent-step.js +1 -1
  83. package/lib/parent-steps/command-step.js +1 -1
  84. package/lib/parent-steps/step.js +1 -1
  85. package/lib/patterns/automation/composite-step.js +2 -2
  86. package/lib/patterns/automation/reboot-instance-and-wait.js +1 -1
  87. package/lib/patterns/automation/string-step.js +12 -2
  88. package/lib/patterns/document/string-document.js +6 -4
  89. package/lib/patterns/document/timed-document.js +1 -1
  90. package/lib/samples/hello-world.js +7 -11
  91. package/lib/simulation/automation/approve-simulation.js +1 -1
  92. package/lib/simulation/automation/assert-aws-resource-simulation.js +1 -1
  93. package/lib/simulation/automation/automation-simulation-base.js +1 -1
  94. package/lib/simulation/automation/aws-api-simulation.d.ts +1 -1
  95. package/lib/simulation/automation/aws-api-simulation.js +3 -3
  96. package/lib/simulation/automation/branch-simulation.js +1 -1
  97. package/lib/simulation/automation/change-instance-state-simulation.js +1 -1
  98. package/lib/simulation/automation/copy-image-simulation.js +1 -1
  99. package/lib/simulation/automation/create-image-simulation.js +1 -1
  100. package/lib/simulation/automation/create-stack-simulation.js +1 -1
  101. package/lib/simulation/automation/create-tags-simulation.js +1 -1
  102. package/lib/simulation/automation/delete-image-simulation.js +1 -1
  103. package/lib/simulation/automation/delete-stack-simulation.js +1 -1
  104. package/lib/simulation/automation/execute-script-simulation.js +1 -1
  105. package/lib/simulation/automation/execute-state-machine-simulation.js +1 -1
  106. package/lib/simulation/automation/invoke-lambda-function-simulation.js +1 -1
  107. package/lib/simulation/automation/invoke-webhook-simulation.js +1 -1
  108. package/lib/simulation/automation/pause-simulation.js +1 -1
  109. package/lib/simulation/automation/run-command-simulation.js +1 -1
  110. package/lib/simulation/automation/run-instance-simulation.js +1 -1
  111. package/lib/simulation/automation/sleep-simulation.js +1 -1
  112. package/lib/simulation/automation/wait-for-resource-simulation.js +1 -1
  113. package/lib/simulation/automation-step-simulation.js +1 -1
  114. package/lib/simulation/command/command-simulation-base.js +1 -1
  115. package/lib/simulation/command/ps-module-simulation.js +1 -1
  116. package/lib/simulation/command/run-powershell-script-simulation.js +1 -1
  117. package/lib/simulation/command/run-shell-script-simulation.js +1 -1
  118. package/lib/simulation/command-step-simulation.js +1 -1
  119. package/lib/simulation/document/automation-simulation.js +1 -1
  120. package/lib/simulation/document/command-simulation.js +1 -1
  121. package/lib/simulation/simulation.js +7 -15
  122. package/package.json +1 -1
  123. package/releasetag.txt +1 -1
  124. package/version.txt +1 -1
@@ -4,7 +4,7 @@ import { DataTypeEnum } from './data-type';
4
4
  * These are NOT used for declaring step inputs, rather only for document inputs.
5
5
  * See https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-doc-syntax.html
6
6
  */
7
- export interface Input {
7
+ export interface InputProps {
8
8
  /**
9
9
  * (Required) The name of the input by which to be referenced by steps in the document.
10
10
  */
@@ -22,12 +22,12 @@ export interface Input {
22
22
  * (Optional) Default value to use for this input if not specified when invoking the document.
23
23
  * @default undefined
24
24
  */
25
- readonly defaultValue?: string;
25
+ readonly defaultValue?: any;
26
26
  /**
27
27
  * (Optional) List of allowed values that this input may be.
28
28
  * @default undefined
29
29
  */
30
- readonly allowedValues?: string[];
30
+ readonly allowedValues?: any[];
31
31
  /**
32
32
  * (Optional) Pattern that this input value must match.
33
33
  * @default undefined
@@ -43,4 +43,180 @@ export interface Input {
43
43
  * @default undefined
44
44
  */
45
45
  readonly maxItems?: number;
46
+ /**
47
+ * (Optional) Minimum number of chars that this input value (string) must contain.
48
+ * @default undefined
49
+ */
50
+ readonly minChars?: number;
51
+ /**
52
+ * (Optional) Maximum number of chars that this input value (string) must contain.
53
+ * @default undefined
54
+ */
55
+ readonly maxChars?: number;
56
+ }
57
+ export declare abstract class Input {
58
+ static ofTypeString(name: string, props?: StringInputProps): Input;
59
+ static ofTypeInteger(name: string, props?: IntegerInputProps): Input;
60
+ static ofTypeBoolean(name: string, props?: BooleanInputProps): Input;
61
+ static ofTypeStringList(name: string, props?: StringListInputProps): Input;
62
+ static ofTypeMapList(name: string, props?: MapListInputProps): Input;
63
+ static ofTypeStringMap(name: string, props?: StringMapInputProps): Input;
64
+ static ofSpecifiedType(type: DataTypeEnum, inputName: string, props: InputProps): Input;
65
+ readonly name: string;
66
+ readonly inputType: DataTypeEnum;
67
+ readonly description?: string;
68
+ readonly defaultValue?: string;
69
+ readonly allowedValues?: string[];
70
+ readonly allowedPattern?: string;
71
+ readonly minItems?: number;
72
+ readonly maxItems?: number;
73
+ readonly minChars?: number;
74
+ readonly maxChars?: number;
75
+ constructor(props: InputProps);
76
+ toSsm(): {
77
+ [name: string]: any;
78
+ };
79
+ validate(value: any): void;
80
+ }
81
+ export interface StringInputProps {
82
+ /**
83
+ * (Optional) The description of the input.
84
+ * @default name
85
+ */
86
+ readonly description?: string;
87
+ /**
88
+ * (Optional) Default value to use for this input if not specified when invoking the document.
89
+ * @default undefined
90
+ */
91
+ readonly defaultValue?: string;
92
+ /**
93
+ * (Optional) List of allowed values that this input may be.
94
+ * @default undefined
95
+ */
96
+ readonly allowedValues?: string[];
97
+ /**
98
+ * (Optional) Pattern that this input value must match.
99
+ * @default undefined
100
+ */
101
+ readonly allowedPattern?: string;
102
+ /**
103
+ * (Optional) Minimum number of chars that this input value (string) must contain.
104
+ * @default undefined
105
+ */
106
+ readonly minChars?: number;
107
+ /**
108
+ * (Optional) Maximum number of chars that this input value (string) must contain.
109
+ * @default undefined
110
+ */
111
+ readonly maxChars?: number;
112
+ }
113
+ export interface IntegerInputProps {
114
+ /**
115
+ * (Optional) The description of the input.
116
+ * @default name
117
+ */
118
+ readonly description?: string;
119
+ /**
120
+ * (Optional) Default value to use for this input if not specified when invoking the document.
121
+ * @default undefined
122
+ */
123
+ readonly defaultValue?: number;
124
+ /**
125
+ * (Optional) List of allowed values that this input may be.
126
+ * @default undefined
127
+ */
128
+ readonly allowedValues?: number[];
129
+ }
130
+ export interface BooleanInputProps {
131
+ /**
132
+ * (Optional) The description of the input.
133
+ * @default name
134
+ */
135
+ readonly description?: string;
136
+ /**
137
+ * (Optional) Default value to use for this input if not specified when invoking the document.
138
+ * @default undefined
139
+ */
140
+ readonly defaultValue?: boolean;
141
+ }
142
+ export interface StringListInputProps {
143
+ /**
144
+ * (Optional) The description of the input.
145
+ * @default name
146
+ */
147
+ readonly description?: string;
148
+ /**
149
+ * (Optional) Default value to use for this input if not specified when invoking the document.
150
+ * @default undefined
151
+ */
152
+ readonly defaultValue?: any;
153
+ /**
154
+ * (Optional) List of allowed values that this input may be.
155
+ * @default undefined
156
+ */
157
+ readonly allowedValues?: any[];
158
+ /**
159
+ * (Optional) Minimum number of items that this input value (list) must contain.
160
+ * @default undefined
161
+ */
162
+ readonly minItems?: number;
163
+ /**
164
+ * (Optional) Maximum number of items that this input value (list) must contain.
165
+ * @default undefined
166
+ */
167
+ readonly maxItems?: number;
168
+ }
169
+ export interface MapListInputProps {
170
+ /**
171
+ * (Optional) The description of the input.
172
+ * @default name
173
+ */
174
+ readonly description?: string;
175
+ /**
176
+ * (Optional) Default value to use for this input if not specified when invoking the document.
177
+ * @default undefined
178
+ */
179
+ readonly defaultValue?: any;
180
+ /**
181
+ * (Optional) List of allowed values that this input may be.
182
+ * @default undefined
183
+ */
184
+ readonly allowedValues?: any[];
185
+ /**
186
+ * (Optional) Minimum number of items that this input value (list) must contain.
187
+ * @default undefined
188
+ */
189
+ readonly minItems?: number;
190
+ /**
191
+ * (Optional) Maximum number of items that this input value (list) must contain.
192
+ * @default undefined
193
+ */
194
+ readonly maxItems?: number;
195
+ }
196
+ export interface StringMapInputProps {
197
+ /**
198
+ * (Optional) The description of the input.
199
+ * @default name
200
+ */
201
+ readonly description?: string;
202
+ /**
203
+ * (Optional) Default value to use for this input if not specified when invoking the document.
204
+ * @default undefined
205
+ */
206
+ readonly defaultValue?: any;
207
+ /**
208
+ * (Optional) List of allowed values that this input may be.
209
+ * @default undefined
210
+ */
211
+ readonly allowedValues?: any[];
212
+ /**
213
+ * (Optional) Minimum number of items that this input value (list) must contain.
214
+ * @default undefined
215
+ */
216
+ readonly minItems?: number;
217
+ /**
218
+ * (Optional) Maximum number of items that this input value (list) must contain.
219
+ * @default undefined
220
+ */
221
+ readonly maxItems?: number;
46
222
  }
@@ -1,3 +1,141 @@
1
1
  "use strict";
2
+ var _a;
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZG9tYWluL2lucHV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRhVHlwZUVudW0gfSBmcm9tICcuL2RhdGEtdHlwZSc7XG5cbi8qKlxuICogUHJvcGVydGllcyBvZiBpbnB1dHMgc3VwcG9ydGVkIGJ5IFNTTSBkb2N1bWVudHMuXG4gKiBUaGVzZSBhcmUgTk9UIHVzZWQgZm9yIGRlY2xhcmluZyBzdGVwIGlucHV0cywgcmF0aGVyIG9ubHkgZm9yIGRvY3VtZW50IGlucHV0cy5cbiAqIFNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc3lzdGVtcy1tYW5hZ2VyL2xhdGVzdC91c2VyZ3VpZGUvc3lzbWFuLWRvYy1zeW50YXguaHRtbFxuICovXG5leHBvcnQgaW50ZXJmYWNlIElucHV0IHtcblxuICAvKipcbiAgICAgKiAoUmVxdWlyZWQpIFRoZSBuYW1lIG9mIHRoZSBpbnB1dCBieSB3aGljaCB0byBiZSByZWZlcmVuY2VkIGJ5IHN0ZXBzIGluIHRoZSBkb2N1bWVudC5cbiAgICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgICAqIChSZXF1aXJlZCkgVGhlIERhdGFUeXBlRW51bSBvZiB0aGUgaW5wdXQuXG4gICAgICovXG4gIHJlYWRvbmx5IGlucHV0VHlwZTogRGF0YVR5cGVFbnVtO1xuXG4gIC8qKlxuICAgICAqIChPcHRpb25hbCkgVGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBpbnB1dC5cbiAgICAgKiBAZGVmYXVsdCBuYW1lXG4gICAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgICAqIChPcHRpb25hbCkgRGVmYXVsdCB2YWx1ZSB0byB1c2UgZm9yIHRoaXMgaW5wdXQgaWYgbm90IHNwZWNpZmllZCB3aGVuIGludm9raW5nIHRoZSBkb2N1bWVudC5cbiAgICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICAgKi9cbiAgcmVhZG9ubHkgZGVmYXVsdFZhbHVlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgICAqIChPcHRpb25hbCkgTGlzdCBvZiBhbGxvd2VkIHZhbHVlcyB0aGF0IHRoaXMgaW5wdXQgbWF5IGJlLlxuICAgICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgICAqL1xuICByZWFkb25seSBhbGxvd2VkVmFsdWVzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAgICogKE9wdGlvbmFsKSBQYXR0ZXJuIHRoYXQgdGhpcyBpbnB1dCB2YWx1ZSBtdXN0IG1hdGNoLlxuICAgICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgICAqL1xuICByZWFkb25seSBhbGxvd2VkUGF0dGVybj86IHN0cmluZztcblxuICAvKipcbiAgICAgKiAoT3B0aW9uYWwpIE1pbmltdW0gbnVtYmVyIG9mIGl0ZW1zIHRoYXQgdGhpcyBpbnB1dCB2YWx1ZSAobGlzdCkgbXVzdCBjb250YWluLlxuICAgICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgICAqL1xuICByZWFkb25seSBtaW5JdGVtcz86IG51bWJlcjtcblxuICAvKipcbiAgICAgKiAoT3B0aW9uYWwpIE1heGltdW0gbnVtYmVyIG9mIGl0ZW1zIHRoYXQgdGhpcyBpbnB1dCB2YWx1ZSAobGlzdCkgbXVzdCBjb250YWluLlxuICAgICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgICAqL1xuICByZWFkb25seSBtYXhJdGVtcz86IG51bWJlcjtcbn0iXX0=
4
+ exports.Input = void 0;
5
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
+ const data_type_1 = require("./data-type");
7
+ class Input {
8
+ constructor(props) {
9
+ this.name = props.name;
10
+ this.inputType = props.inputType;
11
+ this.description = props.description;
12
+ this.defaultValue = props.defaultValue;
13
+ this.allowedValues = props.allowedValues;
14
+ this.allowedPattern = props.allowedPattern;
15
+ this.minItems = props.minItems;
16
+ this.maxItems = props.maxItems;
17
+ this.minChars = props.minChars;
18
+ this.maxChars = props.maxChars;
19
+ }
20
+ static ofTypeString(name, props) {
21
+ return new StringInput(name, props);
22
+ }
23
+ static ofTypeInteger(name, props) {
24
+ return new IntegerInput(name, props);
25
+ }
26
+ static ofTypeBoolean(name, props) {
27
+ return new BooleanInput(name, props);
28
+ }
29
+ static ofTypeStringList(name, props) {
30
+ return new StringListInput(name, props);
31
+ }
32
+ static ofTypeMapList(name, props) {
33
+ return new MapListInput(name, props);
34
+ }
35
+ static ofTypeStringMap(name, props) {
36
+ return new StringMapInput(name, props);
37
+ }
38
+ static ofSpecifiedType(type, inputName, props) {
39
+ switch (type) {
40
+ case data_type_1.DataTypeEnum.STRING:
41
+ return this.ofTypeString(inputName, props);
42
+ case data_type_1.DataTypeEnum.INTEGER:
43
+ return this.ofTypeInteger(inputName, props);
44
+ case data_type_1.DataTypeEnum.BOOLEAN:
45
+ return this.ofTypeBoolean(inputName, props);
46
+ case data_type_1.DataTypeEnum.STRING_LIST:
47
+ return this.ofTypeStringList(inputName, props);
48
+ case data_type_1.DataTypeEnum.MAP_LIST:
49
+ return this.ofTypeMapList(inputName, props);
50
+ case data_type_1.DataTypeEnum.STRING_MAP:
51
+ return this.ofTypeStringMap(inputName, props);
52
+ default:
53
+ throw new Error('DataTypeEnum not supported: ' + type);
54
+ }
55
+ }
56
+ toSsm() {
57
+ const nested = {
58
+ type: new data_type_1.DataType(this.inputType).toSsmString(),
59
+ };
60
+ if (this.description != undefined) {
61
+ nested.description = this.description;
62
+ }
63
+ if (this.defaultValue != undefined) {
64
+ nested.default = this.defaultValue;
65
+ }
66
+ if (this.allowedValues != undefined) {
67
+ nested.allowedValues = this.allowedValues;
68
+ }
69
+ if (this.allowedPattern != undefined) {
70
+ nested.allowedPattern = this.allowedPattern;
71
+ }
72
+ if (this.minItems != undefined) {
73
+ nested.minItems = this.minItems;
74
+ }
75
+ if (this.maxItems != undefined) {
76
+ nested.maxItems = this.maxItems;
77
+ }
78
+ return nested;
79
+ }
80
+ validate(value) {
81
+ if (!(new data_type_1.DataType(this.inputType).validateType(value))) {
82
+ throw new Error(`Value ${value} does not match type ${this.inputType}`);
83
+ }
84
+ if (this.maxItems && Array.isArray(value) && this.maxItems < value.length) {
85
+ throw new Error(`Values ${value} is greater than maxItems: ${this.maxItems}`);
86
+ }
87
+ if (this.minItems && Array.isArray(value) && this.minItems > value.length) {
88
+ throw new Error(`Values ${value} is less than minItems: ${this.maxItems}`);
89
+ }
90
+ if (this.allowedPattern && !value.match(this.allowedPattern)) {
91
+ throw new Error(`Value ${value} does not match regex ${this.allowedPattern}`);
92
+ }
93
+ if (this.allowedValues && !this.allowedValues.includes(value)) {
94
+ throw new Error(`Value ${value} is not among allowedValues ${this.allowedValues}`);
95
+ }
96
+ }
97
+ }
98
+ exports.Input = Input;
99
+ _a = JSII_RTTI_SYMBOL_1;
100
+ Input[_a] = { fqn: "@cdklabs/cdk-ssm-documents.Input", version: "0.0.17" };
101
+ class StringInput extends Input {
102
+ constructor(name, props) {
103
+ super({ name: name, inputType: data_type_1.DataTypeEnum.STRING, ...props });
104
+ }
105
+ validate(value) {
106
+ super.validate(value);
107
+ const stringVal = value;
108
+ if (this.minChars != undefined && this.minChars > stringVal.length) {
109
+ new Error(`Value ${value} is less than minimum specified ${this.minChars}`);
110
+ }
111
+ if (this.maxChars != undefined && this.maxChars < stringVal.length) {
112
+ new Error(`Value ${value} is greater than minimum specified ${this.maxChars}`);
113
+ }
114
+ }
115
+ }
116
+ class IntegerInput extends Input {
117
+ constructor(name, props) {
118
+ super({ name: name, inputType: data_type_1.DataTypeEnum.INTEGER, ...props });
119
+ }
120
+ }
121
+ class BooleanInput extends Input {
122
+ constructor(name, props) {
123
+ super({ name: name, inputType: data_type_1.DataTypeEnum.BOOLEAN, ...props });
124
+ }
125
+ }
126
+ class StringListInput extends Input {
127
+ constructor(name, props) {
128
+ super({ name: name, inputType: data_type_1.DataTypeEnum.STRING_LIST, ...props });
129
+ }
130
+ }
131
+ class MapListInput extends Input {
132
+ constructor(name, props) {
133
+ super({ name: name, inputType: data_type_1.DataTypeEnum.MAP_LIST, ...props });
134
+ }
135
+ }
136
+ class StringMapInput extends Input {
137
+ constructor(name, props) {
138
+ super({ name: name, inputType: data_type_1.DataTypeEnum.STRING_MAP, ...props });
139
+ }
140
+ }
141
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZG9tYWluL2lucHV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsMkNBQXFEO0FBb0VyRCxNQUFzQixLQUFLO0lBd0R6QixZQUFZLEtBQWlCO1FBQzNCLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUM7UUFDakMsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQztRQUN2QyxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUM7UUFDekMsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUMsY0FBYyxDQUFDO1FBQzNDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQztRQUMvQixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUM7UUFDL0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDO1FBQy9CLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQztJQUNqQyxDQUFDO0lBakVNLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBWSxFQUFFLEtBQXdCO1FBQy9ELE9BQU8sSUFBSSxXQUFXLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFTSxNQUFNLENBQUMsYUFBYSxDQUFDLElBQVksRUFBRSxLQUF5QjtRQUNqRSxPQUFPLElBQUksWUFBWSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRU0sTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFZLEVBQUUsS0FBeUI7UUFDakUsT0FBTyxJQUFJLFlB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SUFBSSxFQUFFLFNBQVMsRUFBRSx3QkFBWSxDQUFDLFdBQVcsRUFBRSxHQUFHLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDdkUsQ0FBQztDQUNGO0FBbUNELE1BQU0sWUFBYSxTQUFRLEtBQUs7SUFDOUIsWUFBWSxJQUFZLEVBQUUsS0FBeUI7UUFDakQsS0FBSyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsd0JBQVksQ0FBQyxRQUFRLEVBQUUsR0FBRyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7Q0FDRjtBQW1DRCxNQUFNLGNBQWUsU0FBUSxLQUFLO0lBQ2hDLFlBQVksSUFBWSxFQUFFLEtBQTJCO1FBQ25ELEtBQUssQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLHdCQUFZLENBQUMsVUFBVSxFQUFFLEdBQUcsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUN0RSxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRhVHlwZSwgRGF0YVR5cGVFbnVtIH0gZnJvbSAnLi9kYXRhLXR5cGUnO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgb2YgaW5wdXRzIHN1cHBvcnRlZCBieSBTU00gZG9jdW1lbnRzLlxuICogVGhlc2UgYXJlIE5PVCB1c2VkIGZvciBkZWNsYXJpbmcgc3RlcCBpbnB1dHMsIHJhdGhlciBvbmx5IGZvciBkb2N1bWVudCBpbnB1dHMuXG4gKiBTZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3N5c3RlbXMtbWFuYWdlci9sYXRlc3QvdXNlcmd1aWRlL3N5c21hbi1kb2Mtc3ludGF4Lmh0bWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbnB1dFByb3BzIHtcblxuICAvKipcbiAgICAgKiAoUmVxdWlyZWQpIFRoZSBuYW1lIG9mIHRoZSBpbnB1dCBieSB3aGljaCB0byBiZSByZWZlcmVuY2VkIGJ5IHN0ZXBzIGluIHRoZSBkb2N1bWVudC5cbiAgICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgICAqIChSZXF1aXJlZCkgVGhlIERhdGFUeXBlRW51bSBvZiB0aGUgaW5wdXQuXG4gICAgICovXG4gIHJlYWRvbmx5IGlucHV0VHlwZTogRGF0YVR5cGVFbnVtO1xuXG4gIC8qKlxuICAgICAqIChPcHRpb25hbCkgVGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBpbnB1dC5cbiAgICAgKiBAZGVmYXVsdCBuYW1lXG4gICAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgICAqIChPcHRpb25hbCkgRGVmYXVsdCB2YWx1ZSB0byB1c2UgZm9yIHRoaXMgaW5wdXQgaWYgbm90IHNwZWNpZmllZCB3aGVuIGludm9raW5nIHRoZSBkb2N1bWVudC5cbiAgICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICAgKi9cbiAgcmVhZG9ubHkgZGVmYXVsdFZhbHVlPzogYW55O1xuXG4gIC8qKlxuICAgICAqIChPcHRpb25hbCkgTGlzdCBvZiBhbGxvd2VkIHZhbHVlcyB0aGF0IHRoaXMgaW5wdXQgbWF5IGJlLlxuICAgICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgICAqL1xuICByZWFkb25seSBhbGxvd2VkVmFsdWVzPzogYW55W107XG5cbiAgLyoqXG4gICAgICogKE9wdGlvbmFsKSBQYXR0ZXJuIHRoYXQgdGhpcyBpbnB1dCB2YWx1ZSBtdXN0IG1hdGNoLlxuICAgICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgICAqL1xuICByZWFkb25seSBhbGxvd2VkUGF0dGVybj86IHN0cmluZztcblxuICAvKipcbiAgICAgKiAoT3B0aW9uYWwpIE1pbmltdW0gbnVtYmVyIG9mIGl0ZW1zIHRoYXQgdGhpcyBpbnB1dCB2YWx1ZSAobGlzdCkgbXVzdCBjb250YWluLlxuICAgICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgICAqL1xuICByZWFkb25seSBtaW5JdGVtcz86IG51bWJlcjtcblxuICAvKipcbiAgICAgKiAoT3B0aW9uYWwpIE1heGltdW0gbnVtYmVyIG9mIGl0ZW1zIHRoYXQgdGhpcyBpbnB1dCB2YWx1ZSAobGlzdCkgbXVzdCBjb250YWluLlxuICAgICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgICAqL1xuICByZWFkb25seSBtYXhJdGVtcz86IG51bWJlcjtcblxuICAvKipcbiAgICogKE9wdGlvbmFsKSBNaW5pbXVtIG51bWJlciBvZiBjaGFycyB0aGF0IHRoaXMgaW5wdXQgdmFsdWUgKHN0cmluZykgbXVzdCBjb250YWluLlxuICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICovXG4gIHJlYWRvbmx5IG1pbkNoYXJzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIE1heGltdW0gbnVtYmVyIG9mIGNoYXJzIHRoYXQgdGhpcyBpbnB1dCB2YWx1ZSAoc3RyaW5nKSBtdXN0IGNvbnRhaW4uXG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkgbWF4Q2hhcnM/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBJbnB1dCB7XG5cbiAgcHVibGljIHN0YXRpYyBvZlR5cGVTdHJpbmcobmFtZTogc3RyaW5nLCBwcm9wcz86IFN0cmluZ0lucHV0UHJvcHMpOiBJbnB1dCB7XG4gICAgcmV0dXJuIG5ldyBTdHJpbmdJbnB1dChuYW1lLCBwcm9wcyk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIG9mVHlwZUludGVnZXIobmFtZTogc3RyaW5nLCBwcm9wcz86IEludGVnZXJJbnB1dFByb3BzKTogSW5wdXQge1xuICAgIHJldHVybiBuZXcgSW50ZWdlcklucHV0KG5hbWUsIHByb3BzKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgb2ZUeXBlQm9vbGVhbihuYW1lOiBzdHJpbmcsIHByb3BzPzogQm9vbGVhbklucHV0UHJvcHMpOiBJbnB1dCB7XG4gICAgcmV0dXJuIG5ldyBCb29sZWFuSW5wdXQobmFtZSwgcHJvcHMpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBvZlR5cGVTdHJpbmdMaXN0KG5hbWU6IHN0cmluZywgcHJvcHM/OiBTdHJpbmdMaXN0SW5wdXRQcm9wcyk6IElucHV0IHtcbiAgICByZXR1cm4gbmV3IFN0cmluZ0xpc3RJbnB1dChuYW1lLCBwcm9wcyk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIG9mVHlwZU1hcExpc3QobmFtZTogc3RyaW5nLCBwcm9wcz86IE1hcExpc3RJbnB1dFByb3BzKTogSW5wdXQge1xuICAgIHJldHVybiBuZXcgTWFwTGlzdElucHV0KG5hbWUsIHByb3BzKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgb2ZUeXBlU3RyaW5nTWFwKG5hbWU6IHN0cmluZywgcHJvcHM/OiBTdHJpbmdNYXBJbnB1dFByb3BzKTogSW5wdXQge1xuICAgIHJldHVybiBuZXcgU3RyaW5nTWFwSW5wdXQobmFtZSwgcHJvcHMpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBvZlNwZWNpZmllZFR5cGUodHlwZTogRGF0YVR5cGVFbnVtLCBpbnB1dE5hbWU6IHN0cmluZywgcHJvcHM6IElucHV0UHJvcHMpOiBJbnB1dCB7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlIERhdGFUeXBlRW51bS5TVFJJTkc6XG4gICAgICAgIHJldHVybiB0aGlzLm9mVHlwZVN0cmluZyhpbnB1dE5hbWUsIHByb3BzKTtcbiAgICAgIGNhc2UgRGF0YVR5cGVFbnVtLklOVEVHRVI6XG4gICAgICAgIHJldHVybiB0aGlzLm9mVHlwZUludGVnZXIoaW5wdXROYW1lLCBwcm9wcyk7XG4gICAgICBjYXNlIERhdGFUeXBlRW51bS5CT09MRUFOOlxuICAgICAgICByZXR1cm4gdGhpcy5vZlR5cGVCb29sZWFuKGlucHV0TmFtZSwgcHJvcHMpO1xuICAgICAgY2FzZSBEYXRhVHlwZUVudW0uU1RSSU5HX0xJU1Q6XG4gICAgICAgIHJldHVybiB0aGlzLm9mVHlwZVN0cmluZ0xpc3QoaW5wdXROYW1lLCBwcm9wcyk7XG4gICAgICBjYXNlIERhdGFUeXBlRW51bS5NQVBfTElTVDpcbiAgICAgICAgcmV0dXJuIHRoaXMub2ZUeXBlTWFwTGlzdChpbnB1dE5hbWUsIHByb3BzKTtcbiAgICAgIGNhc2UgRGF0YVR5cGVFbnVtLlNUUklOR19NQVA6XG4gICAgICAgIHJldHVybiB0aGlzLm9mVHlwZVN0cmluZ01hcChpbnB1dE5hbWUsIHByb3BzKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignRGF0YVR5cGVFbnVtIG5vdCBzdXBwb3J0ZWQ6ICcgKyB0eXBlKTtcbiAgICB9XG4gIH1cblxuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGlucHV0VHlwZTogRGF0YVR5cGVFbnVtO1xuICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgcmVhZG9ubHkgZGVmYXVsdFZhbHVlPzogc3RyaW5nO1xuICByZWFkb25seSBhbGxvd2VkVmFsdWVzPzogc3RyaW5nW107XG4gIHJlYWRvbmx5IGFsbG93ZWRQYXR0ZXJuPzogc3RyaW5nO1xuICByZWFkb25seSBtaW5JdGVtcz86IG51bWJlcjtcbiAgcmVhZG9ubHkgbWF4SXRlbXM/OiBudW1iZXI7XG4gIHJlYWRvbmx5IG1pbkNoYXJzPzogbnVtYmVyO1xuICByZWFkb25seSBtYXhDaGFycz86IG51bWJlcjtcblxuICBjb25zdHJ1Y3Rvcihwcm9wczogSW5wdXRQcm9wcykge1xuICAgIHRoaXMubmFtZSA9IHByb3BzLm5hbWU7XG4gICAgdGhpcy5pbnB1dFR5cGUgPSBwcm9wcy5pbnB1dFR5cGU7XG4gICAgdGhpcy5kZXNjcmlwdGlvbiA9IHByb3BzLmRlc2NyaXB0aW9uO1xuICAgIHRoaXMuZGVmYXVsdFZhbHVlID0gcHJvcHMuZGVmYXVsdFZhbHVlO1xuICAgIHRoaXMuYWxsb3dlZFZhbHVlcyA9IHByb3BzLmFsbG93ZWRWYWx1ZXM7XG4gICAgdGhpcy5hbGxvd2VkUGF0dGVybiA9IHByb3BzLmFsbG93ZWRQYXR0ZXJuO1xuICAgIHRoaXMubWluSXRlbXMgPSBwcm9wcy5taW5JdGVtcztcbiAgICB0aGlzLm1heEl0ZW1zID0gcHJvcHMubWF4SXRlbXM7XG4gICAgdGhpcy5taW5DaGFycyA9IHByb3BzLm1pbkNoYXJzO1xuICAgIHRoaXMubWF4Q2hhcnMgPSBwcm9wcy5tYXhDaGFycztcbiAgfVxuXG4gIHB1YmxpYyB0b1NzbSgpOiB7W25hbWU6IHN0cmluZ106IGFueX0ge1xuICAgIGNvbnN0IG5lc3RlZDoge1tuYW1lOiBzdHJpbmddOiBhbnl9ID0ge1xuICAgICAgdHlwZTogbmV3IERhdGFUeXBlKHRoaXMuaW5wdXRUeXBlKS50b1NzbVN0cmluZygpLFxuICAgIH07XG4gICAgaWYgKHRoaXMuZGVzY3JpcHRpb24gIT0gdW5kZWZpbmVkKSB7XG4gICAgICBuZXN0ZWQuZGVzY3JpcHRpb24gPSB0aGlzLmRlc2NyaXB0aW9uO1xuICAgIH1cbiAgICBpZiAodGhpcy5kZWZhdWx0VmFsdWUgIT0gdW5kZWZpbmVkKSB7XG4gICAgICBuZXN0ZWQuZGVmYXVsdCA9IHRoaXMuZGVmYXVsdFZhbHVlO1xuICAgIH1cbiAgICBpZiAodGhpcy5hbGxvd2VkVmFsdWVzICE9IHVuZGVmaW5lZCkge1xuICAgICAgbmVzdGVkLmFsbG93ZWRWYWx1ZXMgPSB0aGlzLmFsbG93ZWRWYWx1ZXM7XG4gICAgfVxuICAgIGlmICh0aGlzLmFsbG93ZWRQYXR0ZXJuICE9IHVuZGVmaW5lZCkge1xuICAgICAgbmVzdGVkLmFsbG93ZWRQYXR0ZXJuID0gdGhpcy5hbGxvd2VkUGF0dGVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMubWluSXRlbXMgIT0gdW5kZWZpbmVkKSB7XG4gICAgICBuZXN0ZWQubWluSXRlbXMgPSB0aGlzLm1pbkl0ZW1zO1xuICAgIH1cbiAgICBpZiAodGhpcy5tYXhJdGVtcyAhPSB1bmRlZmluZWQpIHtcbiAgICAgIG5lc3RlZC5tYXhJdGVtcyA9IHRoaXMubWF4SXRlbXM7XG4gICAgfVxuICAgIHJldHVybiBuZXN0ZWQ7XG4gIH1cblxuICBwdWJsaWMgdmFsaWRhdGUodmFsdWU6IGFueSkge1xuICAgIGlmICghKG5ldyBEYXRhVHlwZSh0aGlzLmlucHV0VHlwZSkudmFsaWRhdGVUeXBlKHZhbHVlKSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVmFsdWUgJHt2YWx1ZX0gZG9lcyBub3QgbWF0Y2ggdHlwZSAke3RoaXMuaW5wdXRUeXBlfWApO1xuICAgIH1cbiAgICBpZiAodGhpcy5tYXhJdGVtcyAmJiBBcnJheS5pc0FycmF5KHZhbHVlKSAmJiB0aGlzLm1heEl0ZW1zIDwgdmFsdWUubGVuZ3RoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFZhbHVlcyAke3ZhbHVlfSBpcyBncmVhdGVyIHRoYW4gbWF4SXRlbXM6ICR7dGhpcy5tYXhJdGVtc31gKTtcbiAgICB9XG4gICAgaWYgKHRoaXMubWluSXRlbXMgJiYgQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdGhpcy5taW5JdGVtcyA+IHZhbHVlLmxlbmd0aCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBWYWx1ZXMgJHt2YWx1ZX0gaXMgbGVzcyB0aGFuIG1pbkl0ZW1zOiAke3RoaXMubWF4SXRlbXN9YCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmFsbG93ZWRQYXR0ZXJuICYmICF2YWx1ZS5tYXRjaCh0aGlzLmFsbG93ZWRQYXR0ZXJuKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBWYWx1ZSAke3ZhbHVlfSBkb2VzIG5vdCBtYXRjaCByZWdleCAke3RoaXMuYWxsb3dlZFBhdHRlcm59YCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmFsbG93ZWRWYWx1ZXMgJiYgIXRoaXMuYWxsb3dlZFZhbHVlcy5pbmNsdWRlcyh2YWx1ZSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVmFsdWUgJHt2YWx1ZX0gaXMgbm90IGFtb25nIGFsbG93ZWRWYWx1ZXMgJHt0aGlzLmFsbG93ZWRWYWx1ZXN9YCk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RyaW5nSW5wdXRQcm9wcyB7XG5cbiAgLyoqXG4gICAqIChPcHRpb25hbCkgVGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBpbnB1dC5cbiAgICogQGRlZmF1bHQgbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIChPcHRpb25hbCkgRGVmYXVsdCB2YWx1ZSB0byB1c2UgZm9yIHRoaXMgaW5wdXQgaWYgbm90IHNwZWNpZmllZCB3aGVuIGludm9raW5nIHRoZSBkb2N1bWVudC5cbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkXG4gICAqL1xuICByZWFkb25seSBkZWZhdWx0VmFsdWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIChPcHRpb25hbCkgTGlzdCBvZiBhbGxvd2VkIHZhbHVlcyB0aGF0IHRoaXMgaW5wdXQgbWF5IGJlLlxuICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICovXG4gIHJlYWRvbmx5IGFsbG93ZWRWYWx1ZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogKE9wdGlvbmFsKSBQYXR0ZXJuIHRoYXQgdGhpcyBpbnB1dCB2YWx1ZSBtdXN0IG1hdGNoLlxuICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICovXG4gIHJlYWRvbmx5IGFsbG93ZWRQYXR0ZXJuPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIE1pbmltdW0gbnVtYmVyIG9mIGNoYXJzIHRoYXQgdGhpcyBpbnB1dCB2YWx1ZSAoc3RyaW5nKSBtdXN0IGNvbnRhaW4uXG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkgbWluQ2hhcnM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIChPcHRpb25hbCkgTWF4aW11bSBudW1iZXIgb2YgY2hhcnMgdGhhdCB0aGlzIGlucHV0IHZhbHVlIChzdHJpbmcpIG11c3QgY29udGFpbi5cbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkXG4gICAqL1xuICByZWFkb25seSBtYXhDaGFycz86IG51bWJlcjtcbn1cblxuY2xhc3MgU3RyaW5nSW5wdXQgZXh0ZW5kcyBJbnB1dCB7XG4gIGNvbnN0cnVjdG9yKG5hbWU6IHN0cmluZywgcHJvcHM/OiBTdHJpbmdJbnB1dFByb3BzKSB7XG4gICAgc3VwZXIoeyBuYW1lOiBuYW1lLCBpbnB1dFR5cGU6IERhdGFUeXBlRW51bS5TVFJJTkcsIC4uLnByb3BzIH0pO1xuICB9XG5cbiAgdmFsaWRhdGUodmFsdWU6IGFueSkge1xuICAgIHN1cGVyLnZhbGlkYXRlKHZhbHVlKTtcbiAgICBjb25zdCBzdHJpbmdWYWwgPSAodmFsdWUgYXMgc3RyaW5nKTtcbiAgICBpZiAodGhpcy5taW5DaGFycyAhPSB1bmRlZmluZWQgJiYgdGhpcy5taW5DaGFycyA+IHN0cmluZ1ZhbC5sZW5ndGgpIHtcbiAgICAgIG5ldyBFcnJvcihgVmFsdWUgJHt2YWx1ZX0gaXMgbGVzcyB0aGFuIG1pbmltdW0gc3BlY2lmaWVkICR7dGhpcy5taW5DaGFyc31gKTtcbiAgICB9XG4gICAgaWYgKHRoaXMubWF4Q2hhcnMgIT0gdW5kZWZpbmVkICYmIHRoaXMubWF4Q2hhcnMgPCBzdHJpbmdWYWwubGVuZ3RoKSB7XG4gICAgICBuZXcgRXJyb3IoYFZhbHVlICR7dmFsdWV9IGlzIGdyZWF0ZXIgdGhhbiBtaW5pbXVtIHNwZWNpZmllZCAke3RoaXMubWF4Q2hhcnN9YCk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW50ZWdlcklucHV0UHJvcHMge1xuXG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIFRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgaW5wdXQuXG4gICAqIEBkZWZhdWx0IG5hbWVcbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIERlZmF1bHQgdmFsdWUgdG8gdXNlIGZvciB0aGlzIGlucHV0IGlmIG5vdCBzcGVjaWZpZWQgd2hlbiBpbnZva2luZyB0aGUgZG9jdW1lbnQuXG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkgZGVmYXVsdFZhbHVlPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIExpc3Qgb2YgYWxsb3dlZCB2YWx1ZXMgdGhhdCB0aGlzIGlucHV0IG1heSBiZS5cbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkXG4gICAqL1xuICByZWFkb25seSBhbGxvd2VkVmFsdWVzPzogbnVtYmVyW107XG59XG5cbmNsYXNzIEludGVnZXJJbnB1dCBleHRlbmRzIElucHV0IHtcbiAgY29uc3RydWN0b3IobmFtZTogc3RyaW5nLCBwcm9wcz86IEludGVnZXJJbnB1dFByb3BzKSB7XG4gICAgc3VwZXIoeyBuYW1lOiBuYW1lLCBpbnB1dFR5cGU6IERhdGFUeXBlRW51bS5JTlRFR0VSLCAuLi5wcm9wcyB9KTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJvb2xlYW5JbnB1dFByb3BzIHtcblxuICAvKipcbiAgICogKE9wdGlvbmFsKSBUaGUgZGVzY3JpcHRpb24gb2YgdGhlIGlucHV0LlxuICAgKiBAZGVmYXVsdCBuYW1lXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogKE9wdGlvbmFsKSBEZWZhdWx0IHZhbHVlIHRvIHVzZSBmb3IgdGhpcyBpbnB1dCBpZiBub3Qgc3BlY2lmaWVkIHdoZW4gaW52b2tpbmcgdGhlIGRvY3VtZW50LlxuICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICovXG4gIHJlYWRvbmx5IGRlZmF1bHRWYWx1ZT86IGJvb2xlYW47XG5cbn1cblxuY2xhc3MgQm9vbGVhbklucHV0IGV4dGVuZHMgSW5wdXQge1xuICBjb25zdHJ1Y3RvcihuYW1lOiBzdHJpbmcsIHByb3BzPzogQm9vbGVhbklucHV0UHJvcHMpIHtcbiAgICBzdXBlcih7IG5hbWU6IG5hbWUsIGlucHV0VHlwZTogRGF0YVR5cGVFbnVtLkJPT0xFQU4sIC4uLnByb3BzIH0pO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RyaW5nTGlzdElucHV0UHJvcHMge1xuXG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIFRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgaW5wdXQuXG4gICAqIEBkZWZhdWx0IG5hbWVcbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIERlZmF1bHQgdmFsdWUgdG8gdXNlIGZvciB0aGlzIGlucHV0IGlmIG5vdCBzcGVjaWZpZWQgd2hlbiBpbnZva2luZyB0aGUgZG9jdW1lbnQuXG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkgZGVmYXVsdFZhbHVlPzogYW55O1xuXG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIExpc3Qgb2YgYWxsb3dlZCB2YWx1ZXMgdGhhdCB0aGlzIGlucHV0IG1heSBiZS5cbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkXG4gICAqL1xuICByZWFkb25seSBhbGxvd2VkVmFsdWVzPzogYW55W107XG5cbiAgLyoqXG4gICAqIChPcHRpb25hbCkgTWluaW11bSBudW1iZXIgb2YgaXRlbXMgdGhhdCB0aGlzIGlucHV0IHZhbHVlIChsaXN0KSBtdXN0IGNvbnRhaW4uXG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkgbWluSXRlbXM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIChPcHRpb25hbCkgTWF4aW11bSBudW1iZXIgb2YgaXRlbXMgdGhhdCB0aGlzIGlucHV0IHZhbHVlIChsaXN0KSBtdXN0IGNvbnRhaW4uXG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkgbWF4SXRlbXM/OiBudW1iZXI7XG59XG5cbmNsYXNzIFN0cmluZ0xpc3RJbnB1dCBleHRlbmRzIElucHV0IHtcbiAgY29uc3RydWN0b3IobmFtZTogc3RyaW5nLCBwcm9wcz86IFN0cmluZ0xpc3RJbnB1dFByb3BzKSB7XG4gICAgc3VwZXIoeyBuYW1lOiBuYW1lLCBpbnB1dFR5cGU6IERhdGFUeXBlRW51bS5TVFJJTkdfTElTVCwgLi4ucHJvcHMgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBNYXBMaXN0SW5wdXRQcm9wcyB7XG5cbiAgLyoqXG4gICAqIChPcHRpb25hbCkgVGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBpbnB1dC5cbiAgICogQGRlZmF1bHQgbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIChPcHRpb25hbCkgRGVmYXVsdCB2YWx1ZSB0byB1c2UgZm9yIHRoaXMgaW5wdXQgaWYgbm90IHNwZWNpZmllZCB3aGVuIGludm9raW5nIHRoZSBkb2N1bWVudC5cbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkXG4gICAqL1xuICByZWFkb25seSBkZWZhdWx0VmFsdWU/OiBhbnk7XG5cbiAgLyoqXG4gICAqIChPcHRpb25hbCkgTGlzdCBvZiBhbGxvd2VkIHZhbHVlcyB0aGF0IHRoaXMgaW5wdXQgbWF5IGJlLlxuICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICovXG4gIHJlYWRvbmx5IGFsbG93ZWRWYWx1ZXM/OiBhbnlbXTtcblxuICAvKipcbiAgICogKE9wdGlvbmFsKSBNaW5pbXVtIG51bWJlciBvZiBpdGVtcyB0aGF0IHRoaXMgaW5wdXQgdmFsdWUgKGxpc3QpIG11c3QgY29udGFpbi5cbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkXG4gICAqL1xuICByZWFkb25seSBtaW5JdGVtcz86IG51bWJlcjtcblxuICAvKipcbiAgICogKE9wdGlvbmFsKSBNYXhpbXVtIG51bWJlciBvZiBpdGVtcyB0aGF0IHRoaXMgaW5wdXQgdmFsdWUgKGxpc3QpIG11c3QgY29udGFpbi5cbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkXG4gICAqL1xuICByZWFkb25seSBtYXhJdGVtcz86IG51bWJlcjtcbn1cblxuY2xhc3MgTWFwTGlzdElucHV0IGV4dGVuZHMgSW5wdXQge1xuICBjb25zdHJ1Y3RvcihuYW1lOiBzdHJpbmcsIHByb3BzPzogTWFwTGlzdElucHV0UHJvcHMpIHtcbiAgICBzdXBlcih7IG5hbWU6IG5hbWUsIGlucHV0VHlwZTogRGF0YVR5cGVFbnVtLk1BUF9MSVNULCAuLi5wcm9wcyB9KTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0cmluZ01hcElucHV0UHJvcHMge1xuXG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIFRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgaW5wdXQuXG4gICAqIEBkZWZhdWx0IG5hbWVcbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIERlZmF1bHQgdmFsdWUgdG8gdXNlIGZvciB0aGlzIGlucHV0IGlmIG5vdCBzcGVjaWZpZWQgd2hlbiBpbnZva2luZyB0aGUgZG9jdW1lbnQuXG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkgZGVmYXVsdFZhbHVlPzogYW55O1xuXG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIExpc3Qgb2YgYWxsb3dlZCB2YWx1ZXMgdGhhdCB0aGlzIGlucHV0IG1heSBiZS5cbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkXG4gICAqL1xuICByZWFkb25seSBhbGxvd2VkVmFsdWVzPzogYW55W107XG5cbiAgLyoqXG4gICAqIChPcHRpb25hbCkgTWluaW11bSBudW1iZXIgb2YgaXRlbXMgdGhhdCB0aGlzIGlucHV0IHZhbHVlIChsaXN0KSBtdXN0IGNvbnRhaW4uXG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkgbWluSXRlbXM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIChPcHRpb25hbCkgTWF4aW11bSBudW1iZXIgb2YgaXRlbXMgdGhhdCB0aGlzIGlucHV0IHZhbHVlIChsaXN0KSBtdXN0IGNvbnRhaW4uXG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkgbWF4SXRlbXM/OiBudW1iZXI7XG59XG5cbmNsYXNzIFN0cmluZ01hcElucHV0IGV4dGVuZHMgSW5wdXQge1xuICBjb25zdHJ1Y3RvcihuYW1lOiBzdHJpbmcsIHByb3BzPzogU3RyaW5nTWFwSW5wdXRQcm9wcykge1xuICAgIHN1cGVyKHsgbmFtZTogbmFtZSwgaW5wdXRUeXBlOiBEYXRhVHlwZUVudW0uU1RSSU5HX01BUCwgLi4ucHJvcHMgfSk7XG4gIH1cbn0iXX0=
@@ -89,7 +89,7 @@ class OperationEvaluator {
89
89
  }
90
90
  exports.OperationEvaluator = OperationEvaluator;
91
91
  _a = JSII_RTTI_SYMBOL_1;
92
- OperationEvaluator[_a] = { fqn: "@cdklabs/cdk-ssm-documents.OperationEvaluator", version: "0.0.14" };
92
+ OperationEvaluator[_a] = { fqn: "@cdklabs/cdk-ssm-documents.OperationEvaluator", version: "0.0.17" };
93
93
  OperationEvaluator.STRING_TO_OPERATION = {
94
94
  BooleanEquals: Operation.BOOLEAN_EQUALS,
95
95
  StringEquals: Operation.STRING_EQUALS,
@@ -34,7 +34,7 @@ class Platforms {
34
34
  }
35
35
  exports.Platforms = Platforms;
36
36
  _a = JSII_RTTI_SYMBOL_1;
37
- Platforms[_a] = { fqn: "@cdklabs/cdk-ssm-documents.Platforms", version: "0.0.14" };
37
+ Platforms[_a] = { fqn: "@cdklabs/cdk-ssm-documents.Platforms", version: "0.0.17" };
38
38
  Platforms.STRING_TO_PLATFORM = {
39
39
  Linux: Platform.LINUX,
40
40
  Windows: Platform.WINDOWS,
@@ -49,7 +49,7 @@ class Precondition {
49
49
  }
50
50
  exports.Precondition = Precondition;
51
51
  _a = JSII_RTTI_SYMBOL_1;
52
- Precondition[_a] = { fqn: "@cdklabs/cdk-ssm-documents.Precondition", version: "0.0.14" };
52
+ Precondition[_a] = { fqn: "@cdklabs/cdk-ssm-documents.Precondition", version: "0.0.17" };
53
53
  Precondition.INJECTED_PLAYFORM_TYPE_KEY = 'injected_platform_type';
54
54
  /**
55
55
  * These string variables are being set by SSM agent during execution. For example; platformType.
@@ -34,7 +34,7 @@ class ApproveImpl {
34
34
  }
35
35
  exports.ApproveImpl = ApproveImpl;
36
36
  _a = JSII_RTTI_SYMBOL_1;
37
- ApproveImpl[_a] = { fqn: "@cdklabs/cdk-ssm-documents.ApproveImpl", version: "0.0.14" };
37
+ ApproveImpl[_a] = { fqn: "@cdklabs/cdk-ssm-documents.ApproveImpl", version: "0.0.17" };
38
38
  /**
39
39
  * Mock implementation of IApproveHook. Does not simulate an approval request.
40
40
  */
@@ -50,5 +50,5 @@ class MockApprove {
50
50
  }
51
51
  exports.MockApprove = MockApprove;
52
52
  _b = JSII_RTTI_SYMBOL_1;
53
- MockApprove[_b] = { fqn: "@cdklabs/cdk-ssm-documents.MockApprove", version: "0.0.14" };
53
+ MockApprove[_b] = { fqn: "@cdklabs/cdk-ssm-documents.MockApprove", version: "0.0.17" };
54
54
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwcm92ZS1ob29rLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ludGVyZmFjZS9hcHByb3ZlLWhvb2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwyQkFBMkI7QUFDM0IsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQ3JDLDJCQUEyQjtBQUMzQixNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsc0JBQXNCLENBQUMsQ0FBQztBQVkzQzs7OztHQUlHO0FBQ0gsTUFBYSxXQUFXO0lBQ3RCLEdBQUcsQ0FBQyxRQUFnQjtRQUNsQixNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsZUFBZSxDQUFDO1lBQ2xDLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSztZQUNwQixNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07U0FDdkIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxRQUFRLEdBQUcsR0FBRyxFQUFFO1lBQ2xCLE9BQU8sSUFBSSxPQUFPLENBQVMsT0FBTyxDQUFDLEVBQUUsQ0FDbkMsRUFBRSxDQUFDLFFBQVEsQ0FBQyw0REFBNEQsUUFBUSxXQUFXLEVBQUUsQ0FBQyxHQUFXLEVBQUUsRUFBRTtnQkFDM0csRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNYLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNmLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVMsR0FBVztnQkFDN0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFDO2dCQUN0RCxPQUFPLEdBQUcsS0FBSyxHQUFHLENBQUM7WUFDckIsQ0FBQyxFQUFFO2dCQUNELE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdkIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUM7UUFFRixPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO0lBQ3hCLENBQUM7O0FBckJILGtDQXNCQzs7O0FBRUQ7O0dBRUc7QUFDSCxNQUFhLFdBQVc7SUFBeEI7UUFDRSxpQkFBWSxHQUFXLENBQUMsQ0FBQztLQU8xQjtJQUxDLEdBQUcsQ0FBQyxTQUFpQjtRQUNuQixPQUFPLENBQUMsR0FBRyxDQUFDLHlEQUF5RCxDQUFDLENBQUM7UUFDdkUsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzs7QUFQSCxrQ0FRQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuY29uc3QgcmVhZGxpbmUgPSByZXF1aXJlKCdyZWFkbGluZScpO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG5jb25zdCBzcCA9IHJlcXVpcmUoJ3N5bmNocm9uaXplZC1wcm9taXNlJyk7XG5cbi8qKlxuICogVGhpcyBjYW4gYmUgdXNlZCB0byBwcm92aWRlIGEgaG9vayBmb3IgYXBwcm92YWwgaW1wbGVtZW50YXRpb24gZm9yIEFwcHJvdmVTdGVwLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElBcHByb3ZlSG9vayB7XG4gIC8qKlxuICAgICAqIEFzayBmb3IgYXBwcm92YWxcbiAgICAgKi9cbiAgYXNrKGFwcHJvdmVyOiBzdHJpbmcpOiBib29sZWFuO1xufVxuXG4vKipcbiAqIFRoaXMgSUFwcHJvdmVIb29rIGltcGxlbWVudGF0aW9uIHByb3ZpZGVzIGEgcmVhbCBhc2sgYW5kIHdhaXRzIGZvciB1c2VyIGlucHV0IG9mIEVudGVyLlxuICogVGhpcyBpbXBsZW1lbnRhdGlvbiBkb2VzIG5vdCB3b3JrIHdlbGwgb24gYWxsIGV4cG9ydGVkIEpTSUkgbGFuZ3VhZ2VzLlxuICogVXNlcnMgY2FuIHByb3ZpZGUgdGhlaXIgb3duIGltcGwgdXNpbmcgdGhlIElBc2tIb29rIGludGVyZmFjZS5cbiAqL1xuZXhwb3J0IGNsYXNzIEFwcHJvdmVJbXBsIGltcGxlbWVudHMgSUFwcHJvdmVIb29rIHtcbiAgYXNrKGFwcHJvdmVyOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBybCA9IHJlYWRsaW5lLmNyZWF0ZUludGVyZmFjZSh7XG4gICAgICBpbnB1dDogcHJvY2Vzcy5zdGRpbixcbiAgICAgIG91dHB1dDogcHJvY2Vzcy5zdGRvdXQsXG4gICAgfSk7XG5cbiAgICBsZXQgYXN5bmNBc2sgPSAoKSA9PiB7XG4gICAgICByZXR1cm4gbmV3IFByb21pc2U8c3RyaW5nPihyZXNvbHZlID0+XG4gICAgICAgIHJsLnF1ZXN0aW9uKGAnYXBwcm92YWxSdW50aW1lJyBmbGFnIGVuYWJsZWQuIEFwcHJvdmUgcnVubmluZyBzdGVwIGZvciAke2FwcHJvdmVyfT8gKFkvbilcXG5gLCAoYW5zOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICBybC5jbG9zZSgpO1xuICAgICAgICAgIHJlc29sdmUoYW5zKTtcbiAgICAgICAgfSkpLnRoZW4oZnVuY3Rpb24oYW5zOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ1Byb2NlZWRpbmcgd2l0aCBydW50aW1lIGFmdGVyIGFwcHJvdmFsJyk7XG4gICAgICAgIHJldHVybiBhbnMgPT09ICdZJztcbiAgICAgIH0sIGZ1bmN0aW9uKCkge1xuICAgICAgICBjb25zb2xlLmxvZygnZXJyb3InKTtcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICByZXR1cm4gc3AoYXN5bmNBc2spKCk7XG4gIH1cbn1cblxuLyoqXG4gKiBNb2NrIGltcGxlbWVudGF0aW9uIG9mIElBcHByb3ZlSG9vay4gRG9lcyBub3Qgc2ltdWxhdGUgYW4gYXBwcm92YWwgcmVxdWVzdC5cbiAqL1xuZXhwb3J0IGNsYXNzIE1vY2tBcHByb3ZlIGltcGxlbWVudHMgSUFwcHJvdmVIb29rIHtcbiAgdGltZXNJbnZva2VkOiBudW1iZXIgPSAwO1xuXG4gIGFzayhfYXBwcm92ZXI6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnNvbGUubG9nKCdNb2NrZWQgaW1wbGVtZW50YXRpb24hIE5vdCBwZXJmb3JtaW5nIHJlYWwgYXBwcm92YWwgYXNrJyk7XG4gICAgdGhpcy50aW1lc0ludm9rZWQrKztcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuIl19
@@ -16,7 +16,7 @@ class AuthMethod {
16
16
  }
17
17
  exports.AuthMethod = AuthMethod;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- AuthMethod[_a] = { fqn: "@cdklabs/cdk-ssm-documents.AuthMethod", version: "0.0.14" };
19
+ AuthMethod[_a] = { fqn: "@cdklabs/cdk-ssm-documents.AuthMethod", version: "0.0.17" };
20
20
  class NoAuthMethod extends AuthMethod {
21
21
  requiredInputs() {
22
22
  return [];
@@ -29,7 +29,7 @@ class NoAuthMethod extends AuthMethod {
29
29
  }
30
30
  exports.NoAuthMethod = NoAuthMethod;
31
31
  _b = JSII_RTTI_SYMBOL_1;
32
- NoAuthMethod[_b] = { fqn: "@cdklabs/cdk-ssm-documents.NoAuthMethod", version: "0.0.14" };
32
+ NoAuthMethod[_b] = { fqn: "@cdklabs/cdk-ssm-documents.NoAuthMethod", version: "0.0.17" };
33
33
  class UsernamePasswordAuthMethod extends AuthMethod {
34
34
  constructor(authMethod, userName, password) {
35
35
  super();
@@ -54,5 +54,5 @@ class UsernamePasswordAuthMethod extends AuthMethod {
54
54
  }
55
55
  exports.UsernamePasswordAuthMethod = UsernamePasswordAuthMethod;
56
56
  _c = JSII_RTTI_SYMBOL_1;
57
- UsernamePasswordAuthMethod[_c] = { fqn: "@cdklabs/cdk-ssm-documents.UsernamePasswordAuthMethod", version: "0.0.14" };
57
+ UsernamePasswordAuthMethod[_c] = { fqn: "@cdklabs/cdk-ssm-documents.UsernamePasswordAuthMethod", version: "0.0.17" };
58
58
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1tZXRob2QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW50ZXJmYWNlL2F1dGgtbWV0aG9kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBRUEsTUFBc0IsVUFBVTtJQUN2QixNQUFNLENBQUMsTUFBTTtRQUNsQixPQUFPLElBQUksWUFBWSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUNNLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBd0IsRUFBRSxRQUF3QjtRQUN0RSxPQUFPLElBQUksMEJBQTBCLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBQ00sTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUF3QixFQUFFLFFBQXdCO1FBQ3ZFLE9BQU8sSUFBSSwwQkFBMEIsQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7O0FBVEgsZ0NBYUM7OztBQUVELE1BQWEsWUFBYSxTQUFRLFVBQVU7SUFDMUMsY0FBYztRQUNaLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELE9BQU87UUFDTCxPQUFPO1lBQ0wsVUFBVSxFQUFFLE1BQU07U0FDbkIsQ0FBQztJQUNKLENBQUM7O0FBVEgsb0NBVUM7OztBQUVELE1BQWEsMEJBQTJCLFNBQVEsVUFBVTtJQUl4RCxZQUFZLFVBQWtCLEVBQUUsUUFBd0IsRUFBRSxRQUF3QjtRQUNoRixLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzNCLENBQUM7SUFDRCxjQUFjO1FBQ1osTUFBTSxNQUFNLEdBQUc7WUFDYixJQUFJLENBQUMsUUFBUTtZQUNiLElBQUksQ0FBQyxRQUFRO1NBQ2QsQ0FBQztRQUNGLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsT0FBTztRQUNMLE9BQU87WUFDTCxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDM0IsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtTQUN4QixDQUFDO0lBQ0osQ0FBQzs7QUF4QkgsZ0VBeUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2VjdXJlVmFyaWFibGUgfSBmcm9tICcuL3ZhcmlhYmxlcy9zZWN1cmUtc3RyaW5nLXZhcmlhYmxlJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEF1dGhNZXRob2Qge1xuICBwdWJsaWMgc3RhdGljIG9mTm9uZSgpOiBBdXRoTWV0aG9kIHtcbiAgICByZXR1cm4gbmV3IE5vQXV0aE1ldGhvZCgpO1xuICB9XG4gIHB1YmxpYyBzdGF0aWMgb2ZCYXNpYyh1c2VyTmFtZTogU2VjdXJlVmFyaWFibGUsIHBhc3N3b3JkOiBTZWN1cmVWYXJpYWJsZSk6IEF1dGhNZXRob2Qge1xuICAgIHJldHVybiBuZXcgVXNlcm5hbWVQYXNzd29yZEF1dGhNZXRob2QoJ0Jhc2ljJywgdXNlck5hbWUsIHBhc3N3b3JkKTtcbiAgfVxuICBwdWJsaWMgc3RhdGljIG9mRGlnZXN0KHVzZXJOYW1lOiBTZWN1cmVWYXJpYWJsZSwgcGFzc3dvcmQ6IFNlY3VyZVZhcmlhYmxlKTogQXV0aE1ldGhvZCB7XG4gICAgcmV0dXJuIG5ldyBVc2VybmFtZVBhc3N3b3JkQXV0aE1ldGhvZCgnRGlnZXN0JywgdXNlck5hbWUsIHBhc3N3b3JkKTtcbiAgfVxuXG4gIGFic3RyYWN0IHRvRW50cnkoKTogeyBbcDogc3RyaW5nXTogYW55IH07XG4gIGFic3RyYWN0IHJlcXVpcmVkSW5wdXRzKCk6IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgY2xhc3MgTm9BdXRoTWV0aG9kIGV4dGVuZHMgQXV0aE1ldGhvZCB7XG4gIHJlcXVpcmVkSW5wdXRzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICB0b0VudHJ5KCk6IHsgW3A6IHN0cmluZ106IGFueSB9IHtcbiAgICByZXR1cm4ge1xuICAgICAgYXV0aE1ldGhvZDogJ05vbmUnLFxuICAgIH07XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFVzZXJuYW1lUGFzc3dvcmRBdXRoTWV0aG9kIGV4dGVuZHMgQXV0aE1ldGhvZCB7XG4gIHJlYWRvbmx5IGF1dGhNZXRob2Q6IHN0cmluZztcbiAgcmVhZG9ubHkgdXNlck5hbWU6IFNlY3VyZVZhcmlhYmxlO1xuICByZWFkb25seSBwYXNzd29yZDogU2VjdXJlVmFyaWFibGU7XG4gIGNvbnN0cnVjdG9yKGF1dGhNZXRob2Q6IHN0cmluZywgdXNlck5hbWU6IFNlY3VyZVZhcmlhYmxlLCBwYXNzd29yZDogU2VjdXJlVmFyaWFibGUpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuYXV0aE1ldGhvZCA9IGF1dGhNZXRob2Q7XG4gICAgdGhpcy51c2VyTmFtZSA9IHVzZXJOYW1lO1xuICAgIHRoaXMucGFzc3dvcmQgPSBwYXNzd29yZDtcbiAgfVxuICByZXF1aXJlZElucHV0cygpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgaW5wdXRzID0gW1xuICAgICAgdGhpcy51c2VyTmFtZSxcbiAgICAgIHRoaXMucGFzc3dvcmQsXG4gICAgXTtcbiAgICByZXR1cm4gaW5wdXRzLmZsYXRNYXAoaSA9PiBpPy5yZXF1aXJlZElucHV0cygpID8/IFtdKTtcbiAgfVxuXG4gIHRvRW50cnkoKTogeyBbcDogc3RyaW5nXTogYW55IH0ge1xuICAgIHJldHVybiB7XG4gICAgICBhdXRoTWV0aG9kOiB0aGlzLmF1dGhNZXRob2QsXG4gICAgICB1c2VybmFtZTogdGhpcy51c2VyTmFtZSxcbiAgICAgIHBhc3N3b3JkOiB0aGlzLnBhc3N3b3JkLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -23,7 +23,7 @@ class ReflectiveAwsInvoker {
23
23
  }
24
24
  exports.ReflectiveAwsInvoker = ReflectiveAwsInvoker;
25
25
  _a = JSII_RTTI_SYMBOL_1;
26
- ReflectiveAwsInvoker[_a] = { fqn: "@cdklabs/cdk-ssm-documents.ReflectiveAwsInvoker", version: "0.0.14" };
26
+ ReflectiveAwsInvoker[_a] = { fqn: "@cdklabs/cdk-ssm-documents.ReflectiveAwsInvoker", version: "0.0.17" };
27
27
  /**
28
28
  * Mock implementation of IAwsInvoker.
29
29
  * This class can be reused for testing in exported JSII languages.
@@ -71,5 +71,5 @@ class MockAwsInvoker {
71
71
  }
72
72
  exports.MockAwsInvoker = MockAwsInvoker;
73
73
  _b = JSII_RTTI_SYMBOL_1;
74
- MockAwsInvoker[_b] = { fqn: "@cdklabs/cdk-ssm-documents.MockAwsInvoker", version: "0.0.14" };
74
+ MockAwsInvoker[_b] = { fqn: "@cdklabs/cdk-ssm-documents.MockAwsInvoker", version: "0.0.17" };
75
75
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWludm9rZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW50ZXJmYWNlL2F3cy1pbnZva2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEseUNBQXdDO0FBQ3hDLHFFQUFpRTtBQXFDakU7OztHQUdHO0FBQ0gsTUFBYSxvQkFBb0I7SUFFL0IsTUFBTSxDQUFDLFVBQXNCO1FBQzNCLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSx3Q0FBa0IsRUFBRSxDQUFDLElBQUksQ0FDdEQsa0NBQWtDLEVBQ2xDLGlCQUFpQixFQUNqQixDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUNqRSxJQUFJLGtCQUFrQixDQUFDLE1BQU0sSUFBSSxTQUFTLEVBQUU7WUFDMUMsT0FBTyxDQUFDLEtBQUssQ0FBQywyQ0FBMkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsS0FBSyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1lBQ3RILE1BQU0sSUFBSSxLQUFLLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDN0M7YUFBTTtZQUNMLE9BQU8sa0JBQWtCLENBQUMsT0FBTyxDQUFDO1NBQ25DO0lBQ0gsQ0FBQzs7QUFiSCxvREFlQzs7O0FBRUQ7OztHQUdHO0FBQ0gsTUFBYSxjQUFjO0lBQTNCO1FBRUU7O2FBRUs7UUFDSSx3QkFBbUIsR0FBaUIsRUFBRSxDQUFDO1FBQy9CLGVBQVUsR0FBVSxFQUFFLENBQUM7UUFFeEMsYUFBYTtRQUNMLGtCQUFhLEdBQUcsSUFBSSxlQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7S0FxQ3JDO0lBbENDOzs7U0FHSztJQUNMLE1BQU0sQ0FBQyxVQUFzQjtRQUMzQixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzFDLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsa0JBQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFO1lBQzlDLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsa0JBQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1NBQ25EO1FBQ0QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDcEQsQ0FBQztJQUVEOzs7OztTQUtLO0lBQ0wsVUFBVSxDQUFDLFNBQWM7UUFDdkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7UUFDNUIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7U0FJSztJQUNMLFFBQVEsQ0FBQyxJQUFnQixFQUFFLElBQTJCO1FBQ3BELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsa0JBQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUVsRSxDQUFDOztBQTVDSCx3Q0E4Q0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmcm9tSlMsIE1hcCB9IGZyb20gJ2ltbXV0YWJsZSc7XG5pbXBvcnQgeyBTeW5jaHJvbm91c1Byb21pc2UgfSBmcm9tICcuLi9zeW5jL3N5bmNocm9ub3VzLXByb21pc2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEludm9jYXRpb24ge1xuICAvKipcbiAgICAgKiAoUmVxdWlyZWQpIEFXUyBzZXJ2aWNlIHRvIGludm9rZVxuICAgICAqIEBleGFtcGxlIGVjMlxuICAgICAqL1xuICByZWFkb25seSBzZXJ2aWNlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAgICogKFJlcXVpcmVkKSBBV1MgYXBpIHRvIGludm9rZTsgc2hvdWxkIGJlIHJlZmVyZW5jZWQgdXNpbmcgbG93ZXJDYW1lbENhc2UuXG4gICAgICogQGV4YW1wbGUgZGVzY3JpYmVJbnN0YW5jZVxuICAgICAqL1xuICByZWFkb25seSBhd3NBcGk6IHN0cmluZztcblxuICAvKipcbiAgICAgKiAoUmVxdWlyZWQgKUFXUyBwYXJhbXNcbiAgICAgKiBAZXhhbXBsZSB7ICdGaWx0ZXJzJzogW3snTmFtZSc6ICdpbnN0YW5jZS1pZCcsICdWYWx1ZXMnOiBbJ3t7IEluc3RhbmNlSWQgfX0nXSB9XSB9XG4gICAgICovXG4gIHJlYWRvbmx5IGF3c1BhcmFtczogeyBbbmFtZTogc3RyaW5nXTogYW55IH07XG59XG5cbi8qKlxuICogQXdzIGludm9rZXIgaW50ZXJmYWNlLlxuICogVGhpcyBjYW4gYmUgdXNlZCB0byBwcm92aWRlIGEgaG9vayBmb3IgQVdTIGludm9jYXRpb24gb2Ygc3RlcHMgc28gYXMgdG8gbW9jayBBV1MgYmVoYXZpb3IgZm9yIHNpbXVsYXRpb24gcnVucy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJQXdzSW52b2tlciB7XG5cbiAgLyoqXG4gICAgICogSW52b2tlIEFXUyB3aXRoIHRoZSBwcm92aWRlZCBpbnZvY2F0aW9uIHJlcXVlc3QuXG4gICAgICogQHNlZSBJbnZvY2F0aW9uXG4gICAgICogQHJldHVybnMgdGhlIEFXUyByZXNwb25zZSBvYmplY3RcbiAgICAgKi9cbiAgaW52b2tlKGludm9jYXRpb246IEludm9jYXRpb24pOiBhbnk7XG5cbn1cblxuLyoqXG4gKiBJbXBsZW1lbnRhdGlvbiBvZiBJQXdzSW52b2tlciB0aGF0IGV4ZWN1dGVzIHRoZSBBV1MgYXBpIGZvciByZWFsLlxuICogSWYgdXNpbmcgdGhpcyBpbXBsZW1lbnRhdGlvbiwgYmUgc3VyZSB0aGF0IEFXUyBjcmVkZW50aWFscyBhcmUgYXZhaWxhYmxlIHRvIHRoZSBleGVjdXRpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBSZWZsZWN0aXZlQXdzSW52b2tlciBpbXBsZW1lbnRzIElBd3NJbnZva2VyIHtcblxuICBpbnZva2UoaW52b2NhdGlvbjogSW52b2NhdGlvbik6IGFueSB7XG4gICAgY29uc3Qgd3JhcHBlZEF3c1Jlc3BvbnNlID0gbmV3IFN5bmNocm9ub3VzUHJvbWlzZSgpLndhaXQoXG4gICAgICAnLi4vLi4vbGliL3N5bmMvYXdzLWFzeW5jLWludm9rZXInLFxuICAgICAgJ0F3c0FzeW5jSW52b2tlcicsXG4gICAgICBbaW52b2NhdGlvbi5zZXJ2aWNlLCBpbnZvY2F0aW9uLmF3c0FwaSwgaW52b2NhdGlvbi5hd3NQYXJhbXNdKTtcbiAgICBpZiAod3JhcHBlZEF3c1Jlc3BvbnNlLnN0YXR1cyA9PSAnRkFJTFVSRScpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYEV4Y2VwdGlvbiBvY2N1cnJlZCBjYWxsaW5nIEFXUyBBUEkgd2l0aCAke0pTT04uc3RyaW5naWZ5KGludm9jYXRpb24pfTogJHt3cmFwcGVkQXdzUmVzcG9uc2UuUGF5bG9hZH1gKTtcbiAgICAgIHRocm93IG5ldyBFcnJvcih3cmFwcGVkQXdzUmVzcG9uc2UuUGF5bG9hZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB3cmFwcGVkQXdzUmVzcG9uc2UuUGF5bG9hZDtcbiAgICB9XG4gIH1cblxufVxuXG4vKipcbiAqIE1vY2sgaW1wbGVtZW50YXRpb24gb2YgSUF3c0ludm9rZXIuXG4gKiBUaGlzIGNsYXNzIGNhbiBiZSByZXVzZWQgZm9yIHRlc3RpbmcgaW4gZXhwb3J0ZWQgSlNJSSBsYW5ndWFnZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBNb2NrQXdzSW52b2tlciBpbXBsZW1lbnRzIElBd3NJbnZva2VyIHtcblxuICAvKipcbiAgICAgKiBBbGwgb2YgdGhlIGludm9jYXRpb25zIHRoYXQgaGF2ZSBiZWVuIHN1Ym1pdHRlZCB0byB0aGlzIGludm9rZXIgdW50aWwgcHJlc2VudC5cbiAgICAgKi9cbiAgcmVhZG9ubHkgcHJldmlvdXNJbnZvY2F0aW9uczogSW52b2NhdGlvbltdID0gW107XG4gIHByaXZhdGUgcmVhZG9ubHkgbW9ja1JldHVybjogYW55W10gPSBbXTtcbiAgcHJpdmF0ZSBsYXN0UmV0dXJuOiBhbnk7XG4gIC8vIEB0cy1pZ25vcmVcbiAgcHJpdmF0ZSBtb2NrUmVzcG9uc2VzID0gbmV3IE1hcCh7fSk7XG5cblxuICAvKipcbiAgICAgKiBTYXZlcyB0aGUgaW52b2NhdGlvbiB0byBiZSByZXRpZXZlZCB1c2luZyBnZXRJbnZvY2F0aW9ucygpLlxuICAgICAqIEByZXR1cm5zIHRoZSBuZXh0IHJlc3VsdCBhcyBzZXQgYnkgdGhlIHNldFJldHVybiBmdW5jdGlvblxuICAgICAqL1xuICBpbnZva2UoaW52b2NhdGlvbjogSW52b2NhdGlvbik6IGFueSB7XG4gICAgdGhpcy5wcmV2aW91c0ludm9jYXRpb25zLnB1c2goaW52b2NhdGlvbik7XG4gICAgaWYgKHRoaXMubW9ja1Jlc3BvbnNlcy5oYXMoZnJvbUpTKGludm9jYXRpb24pKSkge1xuICAgICAgcmV0dXJuIHRoaXMubW9ja1Jlc3BvbnNlcy5nZXQoZnJvbUpTKGludm9jYXRpb24pKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMubW9ja1JldHVybi5zaGlmdCgpIHx8IHRoaXMubGFzdFJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgICAqIFNldCB0aGUgbmV4dCByZXR1cm4gdmFsdWUuIFRoaXMgZnVuY3Rpb24gY2FuIGJlIGNoYWluZWQgdG8gcmV0dXJuIHN1YnNlcXVlbnQgcmV0dXJuIHZhbHVlcy5cbiAgICAgKiBWYWx1ZXMgYXJlIHJlYWQgaW4gb3JkZXIgdGhleSB3ZXJlIGluc2VydGVkLlxuICAgICAqIFRoZSBsYXN0IHZhbHVlIGlzIHVzZWQgYXMgYSBkZWZhdWx0IGlmIHRoZXJlIGFyZSBubyBvdGhlciB2YWx1ZXMgcmV0cmlldmVkLlxuICAgICAqIEluIHRoYXQgd2F5IHRoaXMgZnVuY3Rpb24gYmVoYXZlcyB0aGUgc2FtZSB3YXkgYXMgTW9ja2l0byAudGhlblJldHVybih2YWwpLlxuICAgICAqL1xuICBuZXh0UmV0dXJuKGF3c1Jlc3VsdDogYW55KTogTW9ja0F3c0ludm9rZXIge1xuICAgIHRoaXMubW9ja1JldHVybi5wdXNoKGF3c1Jlc3VsdCk7XG4gICAgdGhpcy5sYXN0UmV0dXJuID0gYXdzUmVzdWx0O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAgICogQWxsb3dzIGRldmVsb3BlcnMgdG8gbW9jayBvdXQgcmVzcG9uc2VzIGZyb20gdGhlIEF3c0ludm9rZXIgZGVwZW5kaW5nIG9uIHRoZSBpbnB1dCB0aGF0IGl0IHJlY2VpdmVzLlxuICAgICAqIEBwYXJhbSB3aGVuIGRlZmluZXMgdGhlIGludm9jYXRpb24gdG8gbWF0Y2ggYW5kIHJldHVybiB0aGUgdGhlblxuICAgICAqIEBwYXJhbSB0aGVuIGlzIHRoZSB2YWx1ZSB0aGF0IHNob3VsZCBiZSByZXR1cm5lZCBpZiB0aGUgYWJvdmUgd2hlbiBJbnZvY2F0aW9uIGlzIG1hdGNoZWRcbiAgICAgKi9cbiAgd2hlblRoZW4od2hlbjogSW52b2NhdGlvbiwgdGhlbjoge1tuYW1lOiBzdHJpbmddOiBhbnl9KSB7XG4gICAgdGhpcy5tb2NrUmVzcG9uc2VzID0gdGhpcy5tb2NrUmVzcG9uc2VzLnNldChmcm9tSlMod2hlbiksIHRoZW4pO1xuXG4gIH1cblxufVxuIl19
@@ -43,7 +43,7 @@ class GitHubContent {
43
43
  }
44
44
  exports.GitHubContent = GitHubContent;
45
45
  _a = JSII_RTTI_SYMBOL_1;
46
- GitHubContent[_a] = { fqn: "@cdklabs/cdk-ssm-documents.GitHubContent", version: "0.0.14" };
46
+ GitHubContent[_a] = { fqn: "@cdklabs/cdk-ssm-documents.GitHubContent", version: "0.0.17" };
47
47
  class GitContent {
48
48
  constructor(props) {
49
49
  this.sourceType = 'Git';
@@ -89,7 +89,7 @@ class GitContent {
89
89
  }
90
90
  exports.GitContent = GitContent;
91
91
  _b = JSII_RTTI_SYMBOL_1;
92
- GitContent[_b] = { fqn: "@cdklabs/cdk-ssm-documents.GitContent", version: "0.0.14" };
92
+ GitContent[_b] = { fqn: "@cdklabs/cdk-ssm-documents.GitContent", version: "0.0.17" };
93
93
  class HttpContent {
94
94
  constructor(props) {
95
95
  this.sourceType = 'HTTP';
@@ -122,7 +122,7 @@ class HttpContent {
122
122
  }
123
123
  exports.HttpContent = HttpContent;
124
124
  _c = JSII_RTTI_SYMBOL_1;
125
- HttpContent[_c] = { fqn: "@cdklabs/cdk-ssm-documents.HttpContent", version: "0.0.14" };
125
+ HttpContent[_c] = { fqn: "@cdklabs/cdk-ssm-documents.HttpContent", version: "0.0.17" };
126
126
  class S3Content {
127
127
  constructor(props) {
128
128
  this.sourceType = 'S3';
@@ -140,7 +140,7 @@ class S3Content {
140
140
  }
141
141
  exports.S3Content = S3Content;
142
142
  _d = JSII_RTTI_SYMBOL_1;
143
- S3Content[_d] = { fqn: "@cdklabs/cdk-ssm-documents.S3Content", version: "0.0.14" };
143
+ S3Content[_d] = { fqn: "@cdklabs/cdk-ssm-documents.S3Content", version: "0.0.17" };
144
144
  class DocumentSource {
145
145
  static fromArn(arn) {
146
146
  return new ArnDoc(arn);
@@ -151,7 +151,7 @@ class DocumentSource {
151
151
  }
152
152
  exports.DocumentSource = DocumentSource;
153
153
  _e = JSII_RTTI_SYMBOL_1;
154
- DocumentSource[_e] = { fqn: "@cdklabs/cdk-ssm-documents.DocumentSource", version: "0.0.14" };
154
+ DocumentSource[_e] = { fqn: "@cdklabs/cdk-ssm-documents.DocumentSource", version: "0.0.17" };
155
155
  class ArnDoc extends DocumentSource {
156
156
  constructor(arn) {
157
157
  super();
@@ -166,7 +166,7 @@ class ArnDoc extends DocumentSource {
166
166
  }
167
167
  exports.ArnDoc = ArnDoc;
168
168
  _f = JSII_RTTI_SYMBOL_1;
169
- ArnDoc[_f] = { fqn: "@cdklabs/cdk-ssm-documents.ArnDoc", version: "0.0.14" };
169
+ ArnDoc[_f] = { fqn: "@cdklabs/cdk-ssm-documents.ArnDoc", version: "0.0.17" };
170
170
  class NameDoc extends DocumentSource {
171
171
  constructor(name, version) {
172
172
  super();
@@ -185,7 +185,7 @@ class NameDoc extends DocumentSource {
185
185
  }
186
186
  exports.NameDoc = NameDoc;
187
187
  _g = JSII_RTTI_SYMBOL_1;
188
- NameDoc[_g] = { fqn: "@cdklabs/cdk-ssm-documents.NameDoc", version: "0.0.14" };
188
+ NameDoc[_g] = { fqn: "@cdklabs/cdk-ssm-documents.NameDoc", version: "0.0.17" };
189
189
  class SSMDocumentContent {
190
190
  constructor(props) {
191
191
  this.sourceType = 'SSMDocument';
@@ -200,5 +200,5 @@ class SSMDocumentContent {
200
200
  }
201
201
  exports.SSMDocumentContent = SSMDocumentContent;
202
202
  _h = JSII_RTTI_SYMBOL_1;
203
- SSMDocumentContent[_h] = { fqn: "@cdklabs/cdk-ssm-documents.SSMDocumentContent", version: "0.0.14" };
203
+ SSMDocumentContent[_h] = { fqn: "@cdklabs/cdk-ssm-documents.SSMDocumentContent", version: "0.0.17" };
204
204
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG93bmxvYWRhYmxlLWNvbnRlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW50ZXJmYWNlL2Rvd25sb2FkYWJsZS1jb250ZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBcURBLE1BQWEsYUFBYTtJQVN4QixZQUFZLEtBQXlCO1FBUjVCLGVBQVUsR0FBRyxRQUFRLENBQUM7UUFTN0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQztRQUNuQyxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUM7UUFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUMzQixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUM7UUFDL0IsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLFNBQVMsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLFNBQVMsRUFBRTtZQUMxRCxNQUFNLElBQUksS0FBSyxDQUFDLGdEQUFnRCxDQUFDLENBQUM7U0FDbkU7SUFDSCxDQUFDO0lBRUQsY0FBYztRQUNaLE1BQU0sTUFBTSxHQUFHO1lBQ2IsSUFBSSxDQUFDLEtBQUs7WUFDVixJQUFJLENBQUMsVUFBVTtZQUNmLElBQUksQ0FBQyxJQUFJO1lBQ1QsSUFBSSxDQUFDLFNBQVM7U0FDZixDQUFDO1FBQ0YsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxNQUFNLFVBQVUsR0FBNEI7WUFDMUMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lB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LENBQUM7U0FDakU7UUFDRCxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBQ0QsY0FBYztRQUNaLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7O0FBaEJILDBCQWlCQzs7O0FBRUQsTUFBYSxrQkFBa0I7SUFJN0IsWUFBWSxLQUE4QjtRQUhqQyxlQUFVLEdBQUcsYUFBYSxDQUFDO1FBSWxDLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDLGNBQWMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzdDLENBQUM7SUFFRCxjQUFjO1FBQ1osT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzlDLENBQUM7O0FBZEgsZ0RBZUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJQm9vbGVhblZhcmlhYmxlIH0gZnJvbSAnLi4vJztcbmltcG9ydCB7IEF1dGhNZXRob2QgfSBmcm9tICcuL2F1dGgtbWV0aG9kJztcbmltcG9ydCB7IFNlY3VyZVZhcmlhYmxlIH0gZnJvbSAnLi92YXJpYWJsZXMvc2VjdXJlLXN0cmluZy12YXJpYWJsZSc7XG5pbXBvcnQgeyBJU3RyaW5nVmFyaWFibGUgfSBmcm9tICcuL3ZhcmlhYmxlcy9zdHJpbmctdmFyaWFibGUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElEb3dubG9hZGFibGVDb250ZW50IHtcbiAgcmVhZG9ubHkgc291cmNlVHlwZTogc3RyaW5nO1xuICByZXF1aXJlZElucHV0cygpOiBzdHJpbmdbXTtcbiAgZm9ybWF0U291cmNlSW5mbygpOiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfTtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBzb3VyY2VUeXBlIEdpdEh1YlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdpdEh1YkNvbnRlbnRQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgcmVwb3NpdG9yeSBvd25lci5cbiAgICovXG4gIHJlYWRvbmx5IG93bmVyOiBJU3RyaW5nVmFyaWFibGU7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSByZXBvc2l0b3J5LlxuICAgKi9cbiAgcmVhZG9ubHkgcmVwb3NpdG9yeTogSVN0cmluZ1ZhcmlhYmxlO1xuXG4gIC8qKlxuICAgKiBUaGUgcGF0aCB0byB0aGUgZmlsZSBvciBkaXJlY3RvcnkgeW91IHdhbnQgdG8gZG93bmxvYWQuXG4gICAqL1xuICByZWFkb25seSBwYXRoOiBJU3RyaW5nVmFyaWFibGU7XG5cbiAgLyoqXG4gICAqIFRoZSBTeXN0ZW1zIE1hbmFnZXIgcGFyYW1ldGVyIChhIFNlY3VyZVN0cmluZyBwYXJhbWV0ZXIpIHdoZXJlIHlvdSBzdG9yZSB5b3VyIEdpdEh1YiBhY2Nlc3MgdG9rZW4gaW5mb3JtYXRpb24uXG4gICAqL1xuICByZWFkb25seSB0b2tlbkluZm86IFNlY3VyZVZhcmlhYmxlO1xuXG4gIC8qKlxuICAgKiBUaGUgZGVmYXVsdCBpcyBtYXN0ZXIuXG4gICAqIGJyYW5jaCBwYXJhbWV0ZXIgaXMgcmVxdWlyZWQgb25seSBpZiB5b3VyIFNTTSBkb2N1bWVudCBpcyBzdG9yZWQgaW4gYSBicmFuY2ggb3RoZXIgdGhhbiBtYXN0ZXIuXG4gICAqIFN1cHBseSBlaXRoZXIgY29tbWl0SWQgb3IgYnJhbmNoIChvciBuZWl0aGVyKS5cbiAgICogQGV4YW1wbGUgbWFpblxuICAgKi9cbiAgcmVhZG9ubHkgYnJhbmNoPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZGVmYXVsdCBpcyBoZWFkLlxuICAgKiBUbyB1c2UgdGhlIHZlcnNpb24gb2YgeW91ciBTU00gZG9jdW1lbnQgaW4gYSBjb21taXQgb3RoZXIgdGhhbiB0aGUgbGF0ZXN0LCBzcGVjaWZ5IHRoZSBmdWxsIGNvbW1pdCBJRC5cbiAgICogRm9yIGV4YW1wbGU6IFwiYmJjMWRkYjk0Li4uYjc2ZDNiRVhBTVBMRVwiLlxuICAgKiBTdXBwbHkgZWl0aGVyIGNvbW1pdElkIG9yIGJyYW5jaCAob3IgbmVpdGhlcikuXG4gICAqL1xuICByZWFkb25seSBjb21taXRJZD86IHN0cmluZztcblxufVxuXG5leHBvcnQgY2xhc3MgR2l0SHViQ29udGVudCBpbXBsZW1lbnRzIElEb3dubG9hZGFibGVDb250ZW50IHtcbiAgcmVhZG9ubHkgc291cmNlVHlwZSA9ICdHaXRIdWInO1xuXG4gIHJlYWRvbmx5IG93bmVyOiBJU3RyaW5nVmFyaWFibGU7XG4gIHJlYWRvbmx5IHJlcG9zaXRvcnk6IElTdHJpbmdWYXJpYWJsZTtcbiAgcmVhZG9ubHkgcGF0aDogSVN0cmluZ1ZhcmlhYmxlO1xuICByZWFkb25seSB0b2tlbkluZm86IFNlY3VyZVZhcmlhYmxlO1xuICByZWFkb25seSBicmFuY2g/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGNvbW1pdElkPzogc3RyaW5nO1xuICBjb25zdHJ1Y3Rvcihwcm9wczogR2l0SHViQ29udGVudFByb3BzKSB7XG4gICAgdGhpcy5vd25lciA9IHByb3BzLm93bmVyO1xuICAgIHRoaXMucmVwb3NpdG9yeSA9IHByb3BzLnJlcG9zaXRvcnk7XG4gICAgdGhpcy5wYXRoID0gcHJvcHMucGF0aDtcbiAgICB0aGlzLnRva2VuSW5mbyA9IHByb3BzLnRva2VuSW5mbztcbiAgICB0aGlzLmJyYW5jaCA9IHByb3BzLmJyYW5jaDtcbiAgICB0aGlzLmNvbW1pdElkID0gcHJvcHMuY29tbWl0SWQ7XG4gICAgaWYgKHRoaXMuYnJhbmNoICE9IHVuZGVmaW5lZCAmJiB0aGlzLmNvbW1pdElkICE9IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdNYXkgZGVmaW5lIGVpdGhlciBicmFuY2ggb3IgY29tbWl0SWQsIG5vdCBib3RoJyk7XG4gICAgfVxuICB9XG5cbiAgcmVxdWlyZWRJbnB1dHMoKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGlucHV0cyA9IFtcbiAgICAgIHRoaXMub3duZXIsXG4gICAgICB0aGlzLnJlcG9zaXRvcnksXG4gICAgICB0aGlzLnBhdGgsXG4gICAgICB0aGlzLnRva2VuSW5mbyxcbiAgICBdO1xuICAgIHJldHVybiBpbnB1dHMuZmxhdE1hcChpID0+IGk/LnJlcXVpcmVkSW5wdXRzKCkgPz8gW10pO1xuICB9XG5cbiAgZm9ybWF0U291cmNlSW5mbygpOiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfSB7XG4gICAgY29uc3Qgc291cmNlSW5mbzogeyBbbmFtZTogc3RyaW5nXTogYW55IH0gPSB7XG4gICAgICBvd25lcjogdGhpcy5vd25lcixcbiAgICAgIHJlcG9zaXRvcnk6IHRoaXMucmVwb3NpdG9yeSxcbiAgICAgIHBhdGg6IHRoaXMucGF0aCxcbiAgICAgIHRva2VuSW5mbzogdGhpcy50b2tlbkluZm8sXG4gICAgfTtcbiAgICBpZiAodGhpcy5icmFuY2ggIT0gdW5kZWZpbmVkKSB7XG4gICAgICBzb3VyY2VJbmZvLmdldE9wdGlvbnMgPSBgYnJhbmNoOiR7dGhpcy5icmFuY2h9YDtcbiAgICB9XG4gICAgaWYgKHRoaXMuY29tbWl0SWQgIT0gdW5kZWZpbmVkKSB7XG4gICAgICBzb3VyY2VJbmZvLmdldE9wdGlvbnMgPSBgY29tbWl0SUQ6JHt0aGlzLmNvbW1pdElkfWA7XG4gICAgfVxuICAgIHJldHVybiBzb3VyY2VJbmZvO1xuICB9XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3Igc291cmNlVHlwZSBHaXRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHaXRDb250ZW50UHJvcHMge1xuICAvKipcbiAgICogVGhlIHVzZXJuYW1lIHRvIHVzZSB3aGVuIGNvbm5lY3RpbmcgdG8gdGhlIHJlcG9zaXRvcnkgeW91IHNwZWNpZnkgdXNpbmcgSFRUUC5cbiAgICovXG4gIHJlYWRvbmx5IHVzZXJOYW1lPzogU2VjdXJlVmFyaWFibGU7XG5cbiAgLyoqXG4gICAqIFRoZSBwYXNzd29yZCB0byB1c2Ugd2hlbiBjb25uZWN0aW5nIHRvIHRoZSByZXBvc2l0b3J5IHlvdSBzcGVjaWZ5IHVzaW5nIEhUVFAuXG4gICAqL1xuICByZWFkb25seSBwYXNzd29yZD86IFNlY3VyZVZhcmlhYmxlO1xuXG4gIC8qKlxuICAgKiBUaGUgR2l0IHJlcG9zaXRvcnkgVVJMIHRvIHRoZSBmaWxlIG9yIGRpcmVjdG9yeSB5b3Ugd2FudCB0byBkb3dubG9hZC5cbiAgICovXG4gIHJlYWRvbmx5IHJlcG9zaXRvcnk6IElTdHJpbmdWYXJpYWJsZTtcblxuXG4gIC8qKlxuICAgKiBUaGUgU1NIIGtleSB0byB1c2Ugd2hlbiBjb25uZWN0aW5nIHRvIHRoZSByZXBvc2l0b3J5IHlvdSBzcGVjaWZ5LlxuICAgKi9cbiAgcmVhZG9ubHkgcHJpdmF0ZVNzaEtleT86IFNlY3VyZVZhcmlhYmxlO1xuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIHRoZSB2YWx1ZSBvZiB0aGUgU3RyaWN0SG9zdEtleUNoZWNraW5nIG9wdGlvbiB3aGVuIGNvbm5lY3RpbmcgdG8gdGhlIHJlcG9zaXRvcnkgeW91IHNwZWNpZnkuXG4gICAqIFRoZSBkZWZhdWx0IHZhbHVlIGlzIGZhbHNlLlxuICAgKi9cbiAgcmVhZG9ubHkgc2tpcEhvc3RLZXlDaGVja2luZz86IElCb29sZWFuVmFyaWFibGU7XG5cbiAgLyoqXG4gICAqIFRoZSBkZWZhdWx0IGlzIG1hc3Rlci5cbiAgICogYnJhbmNoIHBhcmFtZXRlciBpcyByZXF1aXJlZCBvbmx5IGlmIHlvdXIgU1NNIGRvY3VtZW50IGlzIHN0b3JlZCBpbiBhIGJyYW5jaCBvdGhlciB0aGFuIG1hc3Rlci5cbiAgICogU3VwcGx5IGVpdGhlciBjb21taXRJZCBvciBicmFuY2ggKG9yIG5laXRoZXIpLlxuICAgKiBAZXhhbXBsZSBtYWluXG4gICAqL1xuICByZWFkb25seSBicmFuY2g/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkZWZhdWx0IGlzIGhlYWQuXG4gICAqIFRvIHVzZSB0aGUgdmVyc2lvbiBvZiB5b3VyIFNTTSBkb2N1bWVudCBpbiBhIGNvbW1pdCBvdGhlciB0aGFuIHRoZSBsYXRlc3QsIHNwZWNpZnkgdGhlIGZ1bGwgY29tbWl0IElELlxuICAgKiBGb3IgZXhhbXBsZTogXCJiYmMxZGRiOTQuLi5iNzZkM2JFWEFNUExFXCIuXG4gICAqIFN1cHBseSBlaXRoZXIgY29tbWl0SWQgb3IgYnJhbmNoIChvciBuZWl0aGVyKS5cbiAgICovXG4gIHJlYWRvbmx5IGNvbW1pdElkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgR2l0Q29udGVudCBpbXBsZW1lbnRzIElEb3dubG9hZGFibGVDb250ZW50IHtcbiAgcmVhZG9ubHkgc291cmNlVHlwZSA9ICdHaXQnO1xuXG4gIHJlYWRvbmx5IHVzZXJOYW1lPzogU2VjdXJlVmFyaWFibGU7XG4gIHJlYWRvbmx5IHBhc3N3b3JkPzogU2VjdXJlVmFyaWFibGU7XG4gIHJlYWRvbmx5IHJlcG9zaXRvcnk6IElTdHJpbmdWYXJpYWJsZTtcbiAgcmVhZG9ubHkgcHJpdmF0ZVNzaEtleT86IFNlY3VyZVZhcmlhYmxlO1xuICByZWFkb25seSBza2lwSG9zdEtleUNoZWNraW5nPzogSUJvb2xlYW5WYXJpYWJsZTtcbiAgcmVhZG9ubHkgYnJhbmNoPzogc3RyaW5nO1xuICByZWFkb25seSBjb21taXRJZD86IHN0cmluZztcbiAgY29uc3RydWN0b3IocHJvcHM6IEdpdENvbnRlbnRQcm9wcykge1xuICAgIHRoaXMudXNlck5hbWUgPSBwcm9wcy51c2VyTmFtZTtcbiAgICB0aGlzLnBhc3N3b3JkID0gcHJvcHMucGFzc3dvcmQ7XG4gICAgdGhpcy5yZXBvc2l0b3J5ID0gcHJvcHMucmVwb3NpdG9yeTtcbiAgICB0aGlzLnByaXZhdGVTc2hLZXkgPSBwcm9wcy5wcml2YXRlU3NoS2V5O1xuICAgIHRoaXMuc2tpcEhvc3RLZXlDaGVja2luZyA9IHByb3BzLnNraXBIb3N0S2V5Q2hlY2tpbmc7XG4gICAgdGhpcy5icmFuY2ggPSBwcm9wcy5icmFuY2g7XG4gICAgdGhpcy5jb21taXRJZCA9IHByb3BzLmNvbW1pdElkO1xuICB9XG5cbiAgcmVxdWlyZWRJbnB1dHMoKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGlucHV0cyA9IFtcbiAgICAgIHRoaXMucmVwb3NpdG9yeSxcbiAgICAgIHRoaXMuc2tpcEhvc3RLZXlDaGVja2luZyxcbiAgICBdO1xuICAgIHJldHVybiBpbnB1dHMuZmxhdE1hcChpID0+IGk/LnJlcXVpcmVkSW5wdXRzKCkgPz8gW10pO1xuICB9XG5cbiAgZm9ybWF0U291cmNlSW5mbygpOiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfSB7XG4gICAgY29uc3Qgc291cmNlSW5mbzogeyBbbmFtZTogc3RyaW5nXTogYW55IH0gPSB7XG4gICAgICByZXBvc2l0b3J5OiB0aGlzLnJlcG9zaXRvcnksXG4gICAgfTtcbiAgICBpZiAodGhpcy5za2lwSG9zdEtleUNoZWNraW5nICE9IHVuZGVmaW5lZCkge1xuICAgICAgc291cmNlSW5mby5za2lwSG9zdEtleUNoZWNraW5nID0gdGhpcy5za2lwSG9zdEtleUNoZWNraW5nO1xuICAgIH1cbiAgICBpZiAodGhpcy5wcml2YXRlU3NoS2V5ICE9IHVuZGVmaW5lZCkge1xuICAgICAgc291cmNlSW5mby5wcml2YXRlU1NIS2V5ID0gdGhpcy5wcml2YXRlU3NoS2V5O1xuICAgIH1cbiAgICBpZiAodGhpcy51c2VyTmFtZSAhPSB1bmRlZmluZWQpIHtcbiAgICAgIHNvdXJjZUluZm8udXNlcm5hbWUgPSB0aGlzLnVzZXJOYW1lO1xuICAgIH1cbiAgICBpZiAodGhpcy5wYXNzd29yZCAhPSB1bmRlZmluZWQpIHtcbiAgICAgIHNvdXJjZUluZm8ucGFzc3dvcmQgPSB0aGlzLnBhc3N3b3JkO1xuICAgIH1cbiAgICBpZiAodGhpcy5icmFuY2ggIT0gdW5kZWZpbmVkKSB7XG4gICAgICBzb3VyY2VJbmZvLmdldE9wdGlvbnMgPSBgYnJhbmNoOiR7dGhpcy5icmFuY2h9YDtcbiAgICB9XG4gICAgaWYgKHRoaXMuY29tbWl0SWQgIT0gdW5kZWZpbmVkKSB7XG4gICAgICBzb3VyY2VJbmZvLmdldE9wdGlvbnMgPSBgY29tbWl0SUQ6JHt0aGlzLmNvbW1pdElkfWA7XG4gICAgfVxuICAgIHJldHVybiBzb3VyY2VJbmZvO1xuICB9XG5cbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBzb3VyY2VUeXBlIEhUVFBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIdHRwQ29udGVudFByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBVUkwgdG8gdGhlIGZpbGUgb3IgZGlyZWN0b3J5IHlvdSB3YW50IHRvIGRvd25sb2FkLlxuICAgKi9cbiAgcmVhZG9ubHkgdXJsOiBJU3RyaW5nVmFyaWFibGU7XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgd2hldGhlciBhIGRvd25sb2FkIGNhbiBiZSBwZXJmb3JtZWQgb3ZlciBhIGNvbm5lY3Rpb24gdGhhdCBpc24ndCBlbmNyeXB0ZWQgd2l0aCBTZWN1cmUgU29ja2V0IExheWVyIChTU0wpIG9yIFRyYW5zcG9ydCBMYXllciBTZWN1cml0eSAoVExTKS5cbiAgICogVGhlIGRlZmF1bHQgdmFsdWUgaXMgZmFsc2UuIFdlIGRvbid0IHJlY29tbWVuZCBwZXJmb3JtaW5nIGRvd25sb2FkcyB3aXRob3V0IGVuY3J5cHRpb24uIElmIHlvdSBjaG9vc2UgdG8gZG8gc28sIHlvdSBhc3N1bWUgYWxsIGFzc29jaWF0ZWQgcmlza3MuXG4gICAqIFNlY3VyaXR5IGlzIGEgc2hhcmVkIHJlc3BvbnNpYmlsaXR5IGJldHdlZW4gQVdTIGFuZCB5b3UuIFRoaXMgaXMgZGVzY3JpYmVkIGFzIHRoZSBzaGFyZWQgcmVzcG9uc2liaWxpdHkgbW9kZWwuIFRvIGxlYXJuIG1vcmUsIHNlZSB0aGUgc2hhcmVkIHJlc3BvbnNpYmlsaXR5IG1vZGVsLlxuICAgKi9cbiAgcmVhZG9ubHkgYWxsb3dJbnNlY3VyZURvd25sb2FkPzogSUJvb2xlYW5WYXJpYWJsZTtcblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIGEgdXNlcm5hbWUgYW5kIHBhc3N3b3JkIGFyZSB1c2VkIGZvciBhdXRoZW50aWNhdGlvbiB3aGVuIGNvbm5lY3RpbmcgdG8gdGhlIHVybCB5b3Ugc3BlY2lmeS5cbiAgICogSWYgeW91IHNwZWNpZnkgQmFzaWMgb3IgRGlnZXN0LCB5b3UgbXVzdCBwcm92aWRlIHZhbHVlcyBmb3IgdGhlIHVzZXJuYW1lIGFuZCBwYXNzd29yZCBwYXJhbWV0ZXJzLlxuICAgKiBUbyB1c2UgdGhlIERpZ2VzdCBtZXRob2QsIFNTTSBBZ2VudCB2ZXJzaW9uIDMuMC4xMTgxLjAgb3IgbGF0ZXIgbXVzdCBiZSBpbnN0YWxsZWQgb24geW91ciBpbnN0YW5jZS4gVGhlIERpZ2VzdCBtZXRob2Qgc3VwcG9ydHMgTUQ1IGFuZCBTSEEyNTYgZW5jcnlwdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGF1dGhNZXRob2Q/OiBBdXRoTWV0aG9kO1xuXG59XG5cbmV4cG9ydCBjbGFzcyBIdHRwQ29udGVudCBpbXBsZW1lbnRzIElEb3dubG9hZGFibGVDb250ZW50IHtcbiAgcmVhZG9ubHkgc291cmNlVHlwZSA9ICdIVFRQJztcblxuICByZWFkb25seSB1cmw6IElTdHJpbmdWYXJpYWJsZTtcbiAgcmVhZG9ubHkgYWxsb3dJbnNlY3VyZURvd25sb2FkPzogSUJvb2xlYW5WYXJpYWJsZTtcbiAgcmVhZG9ubHkgYXV0aE1ldGhvZD86IEF1dGhNZXRob2Q7XG4gIGNvbnN0cnVjdG9yKHByb3BzOiBIdHRwQ29udGVudFByb3BzKSB7XG4gICAgdGhpcy51cmwgPSBwcm9wcy51cmw7XG4gICAgdGhpcy5hbGxvd0luc2VjdXJlRG93bmxvYWQgPSBwcm9wcy5hbGxvd0luc2VjdXJlRG93bmxvYWQ7XG4gICAgdGhpcy5hdXRoTWV0aG9kID0gcHJvcHMuYXV0aE1ldGhvZDtcbiAgfVxuXG4gIHJlcXVpcmVkSW5wdXRzKCk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBpbnB1dHMgPSBbXG4gICAgICB0aGlzLnVybCxcbiAgICAgIHRoaXMuYWxsb3dJbnNlY3VyZURvd25sb2FkLFxuICAgIF07XG4gICAgcmV0dXJuIFsuLi5pbnB1dHMuZmxhdE1hcChpID0+IGk/LnJlcXVpcmVkSW5wdXRzKCkgPz8gW10pLCAuLi4odGhpcy5hdXRoTWV0aG9kPy5yZXF1aXJlZElucHV0cygpID8/IFtdKV07XG4gIH1cblxuICBmb3JtYXRTb3VyY2VJbmZvKCk6IHsgW3A6IHN0cmluZ106IGFueSB9IHtcbiAgICBjb25zdCBzb3VyY2VJbmZvOiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfSA9IHtcbiAgICAgIHVybDogdGhpcy51cmwsXG4gICAgfTtcbiAgICBpZiAodGhpcy5hbGxvd0luc2VjdXJlRG93bmxvYWQgIT0gdW5kZWZpbmVkKSB7XG4gICAgICBzb3VyY2VJbmZvLmFsbG93SW5zZWN1cmVEb3dubG9hZCA9IHRoaXMuYWxsb3dJbnNlY3VyZURvd25sb2FkO1xuICAgIH1cbiAgICBpZiAodGhpcy5hdXRoTWV0aG9kICE9IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc291cmNlSW5mbyxcbiAgICAgICAgLi4udGhpcy5hdXRoTWV0aG9kLnRvRW50cnkoKSxcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiBzb3VyY2VJbmZvO1xuICB9XG5cbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzLmpzb24gZm9yIHNvdXJjZVR5cGUgR2l0SHViXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUzNDb250ZW50UHJvcHMge1xuICAvKipcbiAgICogVGhlIFVSTCB0byB0aGUgZmlsZSBvciBkaXJlY3RvcnkgeW91IHdhbnQgdG8gZG93bmxvYWQuXG4gICAqL1xuICByZWFkb25seSBwYXRoOiBJU3RyaW5nVmFyaWFibGU7XG5cbn1cblxuZXhwb3J0IGNsYXNzIFMzQ29udGVudCBpbXBsZW1lbnRzIElEb3dubG9hZGFibGVDb250ZW50IHtcbiAgcmVhZG9ubHkgc291cmNlVHlwZSA9ICdTMyc7XG5cbiAgcmVhZG9ubHkgcGF0aDogSVN0cmluZ1ZhcmlhYmxlO1xuICBjb25zdHJ1Y3Rvcihwcm9wczogUzNDb250ZW50UHJvcHMpIHtcbiAgICB0aGlzLnBhdGggPSBwcm9wcy5wYXRoO1xuICB9XG5cbiAgcmVxdWlyZWRJbnB1dHMoKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGlucHV0cyA9IFtcbiAgICAgIHRoaXMucGF0aCxcbiAgICBdO1xuICAgIHJldHVybiBpbnB1dHMuZmxhdE1hcChpID0+IGk/LnJlcXVpcmVkSW5wdXRzKCkgPz8gW10pO1xuICB9XG5cbiAgZm9ybWF0U291cmNlSW5mbygpOiB7IFtwOiBzdHJpbmddOiBhbnkgfSB7XG4gICAgcmV0dXJuIHsgcGF0aDogdGhpcy5wYXRoIH07XG4gIH1cblxufVxuXG4vKipcbiAqIFByb3BlcnRpZXMuanNvbiBmb3Igc291cmNlVHlwZSBTc21Eb2N1bWVudFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNzbURvY3VtZW50Q29udGVudFByb3BzIHtcbiAgLyoqXG4gICAqIHNwZWNpZnkgb25lIG9mIHRoZSBmb2xsb3dpbmdcbiAgICogVGhlIG5hbWUgYW5kIHZlcnNpb24gb2YgdGhlIGRvY3VtZW50IGluIHRoZSBmb2xsb3dpbmcgZm9ybWF0OiBuYW1lOnZlcnNpb24uIFZlcnNpb24gaXMgb3B0aW9uYWwuXG4gICAqIG9yIFRoZSBBUk4gZm9yIHRoZSBkb2N1bWVudCBpbiB0aGUgZm9sbG93aW5nIGZvcm1hdDogYXJuOmF3czpzc206cmVnaW9uOmFjY291bnRfaWQ6ZG9jdW1lbnQvZG9jdW1lbnRfbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgZG9jdW1lbnRTb3VyY2U6IERvY3VtZW50U291cmNlO1xuXG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBEb2N1bWVudFNvdXJjZSB7XG4gIHN0YXRpYyBmcm9tQXJuKGFybjogSVN0cmluZ1ZhcmlhYmxlKTogRG9jdW1lbnRTb3VyY2Uge1xuICAgIHJldHVybiBuZXcgQXJuRG9jKGFybik7XG4gIH1cblxuICBzdGF0aWMgZnJvbU5hbWUobmFtZTogSVN0cmluZ1ZhcmlhYmxlLCB2ZXJzaW9uPzogSVN0cmluZ1ZhcmlhYmxlKTogRG9jdW1lbnRTb3VyY2Uge1xuICAgIHJldHVybiBuZXcgTmFtZURvYyhuYW1lLCB2ZXJzaW9uKTtcbiAgfVxuXG4gIGFic3RyYWN0IGZvcm1hdFJlcXVlc3QoKTogeyBbbmFtZTogc3RyaW5nXTogYW55IH07XG5cbiAgYWJzdHJhY3QgcmVxdWlyZWRJbnB1dHMoKTogc3RyaW5nW107XG5cbn1cblxuZXhwb3J0IGNsYXNzIEFybkRvYyBleHRlbmRzIERvY3VtZW50U291cmNlIHtcbiAgcmVhZG9ubHkgYXJuOiBJU3RyaW5nVmFyaWFibGU7XG4gIGNvbnN0cnVjdG9yKGFybjogSVN0cmluZ1ZhcmlhYmxlKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmFybiA9IGFybjtcbiAgfVxuICBmb3JtYXRSZXF1ZXN0KCk6IHsgW25hbWU6IHN0cmluZ106IGFueSB9IHtcbiAgICByZXR1cm4geyBOYW1lOiB0aGlzLmFybiB9O1xuICB9XG5cbiAgcmVxdWlyZWRJbnB1dHMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmFybi5yZXF1aXJlZElucHV0cygpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBOYW1lRG9jIGV4dGVuZHMgRG9jdW1lbnRTb3VyY2Uge1xuICByZWFkb25seSBuYW1lOiBJU3RyaW5nVmFyaWFibGU7XG4gIHJlYWRvbmx5IHZlcnNpb24/OiBJU3RyaW5nVmFyaWFibGU7XG4gIGNvbnN0cnVjdG9yKG5hbWU6IElTdHJpbmdWYXJpYWJsZSwgdmVyc2lvbj86IElTdHJpbmdWYXJpYWJsZSkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICB0aGlzLnZlcnNpb24gPSB2ZXJzaW9uO1xuICB9XG4gIGZvcm1hdFJlcXVlc3QoKTogeyBbbmFtZTogc3RyaW5nXTogYW55IH0ge1xuICAgIGlmICh0aGlzLnZlcnNpb24gIT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4geyBOYW1lOiB0aGlzLm5hbWUucHJpbnQoKSArICc6JyArIHRoaXMudmVyc2lvbi5wcmludCgpIH07XG4gICAgfVxuICAgIHJldHVybiB7IE5hbWU6IHRoaXMubmFtZSB9O1xuICB9XG4gIHJlcXVpcmVkSW5wdXRzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gWy4uLnRoaXMubmFtZS5yZXF1aXJlZElucHV0cygpLCAuLi50aGlzLnZlcnNpb24/LnJlcXVpcmVkSW5wdXRzKCkgPz8gW11dO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTU01Eb2N1bWVudENvbnRlbnQgaW1wbGVtZW50cyBJRG93bmxvYWRhYmxlQ29udGVudCB7XG4gIHJlYWRvbmx5IHNvdXJjZVR5cGUgPSAnU1NNRG9jdW1lbnQnO1xuXG4gIHJlYWRvbmx5IGRvY3VtZW50U291cmNlOiBEb2N1bWVudFNvdXJjZTtcbiAgY29uc3RydWN0b3IocHJvcHM6IFNzbURvY3VtZW50Q29udGVudFByb3BzKSB7XG4gICAgdGhpcy5kb2N1bWVudFNvdXJjZSA9IHByb3BzLmRvY3VtZW50U291cmNlO1xuICB9XG5cbiAgZm9ybWF0U291cmNlSW5mbygpOiB7IFtwOiBzdHJpbmddOiBhbnkgfSB7XG4gICAgcmV0dXJuIHRoaXMuZG9jdW1lbnRTb3VyY2UuZm9ybWF0UmVxdWVzdCgpO1xuICB9XG5cbiAgcmVxdWlyZWRJbnB1dHMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmRvY3VtZW50U291cmNlLnJlcXVpcmVkSW5wdXRzKCk7XG4gIH1cbn1cbiJdfQ==