cdk8s-aws-cdk 0.0.5
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.
- package/.gitattributes +21 -0
- package/.jsii +4392 -0
- package/API.md +2204 -0
- package/LICENSE +202 -0
- package/README.md +201 -0
- package/changelog.md +2 -0
- package/examples/rds-db-instance/README.md +0 -0
- package/examples/rds-db-instance/cdk.out/RdsDBInstanceStack.assets.json +19 -0
- package/examples/rds-db-instance/cdk.out/RdsDBInstanceStack.template.json +86 -0
- package/examples/rds-db-instance/cdk.out/cdk.out +1 -0
- package/examples/rds-db-instance/cdk.out/manifest.json +230 -0
- package/examples/rds-db-instance/cdk.out/tree.json +171 -0
- package/examples/rds-db-instance/main.ts +136 -0
- package/lib/adapter.d.ts +37 -0
- package/lib/adapter.d.ts.map +1 -0
- package/lib/adapter.js +196 -0
- package/lib/chart.d.ts +19 -0
- package/lib/chart.d.ts.map +1 -0
- package/lib/chart.js +63 -0
- package/lib/imports/cloudcontrol.services.k8s.aws.d.ts +106 -0
- package/lib/imports/cloudcontrol.services.k8s.aws.d.ts.map +1 -0
- package/lib/imports/cloudcontrol.services.k8s.aws.js +92 -0
- package/lib/imports/dynamotables-dynamodb.services.k8s.aws.d.ts +430 -0
- package/lib/imports/dynamotables-dynamodb.services.k8s.aws.d.ts.map +1 -0
- package/lib/imports/dynamotables-dynamodb.services.k8s.aws.js +314 -0
- package/lib/imports/ec2securitygroups-ec2.services.k8s.aws.d.ts +173 -0
- package/lib/imports/ec2securitygroups-ec2.services.k8s.aws.d.ts.map +1 -0
- package/lib/imports/ec2securitygroups-ec2.services.k8s.aws.js +156 -0
- package/lib/imports/fieldexports-services.k8s.aws.d.ts +159 -0
- package/lib/imports/fieldexports-services.k8s.aws.d.ts.map +1 -0
- package/lib/imports/fieldexports-services.k8s.aws.js +151 -0
- package/lib/imports/iampolicies-iam.services.k8s.aws.d.ts +135 -0
- package/lib/imports/iampolicies-iam.services.k8s.aws.d.ts.map +1 -0
- package/lib/imports/iampolicies-iam.services.k8s.aws.js +109 -0
- package/lib/imports/iamroles-iam.services.k8s.aws.d.ts +143 -0
- package/lib/imports/iamroles-iam.services.k8s.aws.d.ts.map +1 -0
- package/lib/imports/iamroles-iam.services.k8s.aws.js +112 -0
- package/lib/imports/k8s.d.ts +18619 -0
- package/lib/imports/k8s.d.ts.map +1 -0
- package/lib/imports/k8s.js +14701 -0
- package/lib/imports/lambdaeventsourcemappings-lambda.services.k8s.aws.d.ts +280 -0
- package/lib/imports/lambdaeventsourcemappings-lambda.services.k8s.aws.d.ts.map +1 -0
- package/lib/imports/lambdaeventsourcemappings-lambda.services.k8s.aws.js +183 -0
- package/lib/imports/lambdafunctions-lambda.services.k8s.aws.d.ts +343 -0
- package/lib/imports/lambdafunctions-lambda.services.k8s.aws.d.ts.map +1 -0
- package/lib/imports/lambdafunctions-lambda.services.k8s.aws.js +225 -0
- package/lib/imports/rdsdbinstances-rds.services.k8s.aws.d.ts +790 -0
- package/lib/imports/rdsdbinstances-rds.services.k8s.aws.d.ts.map +1 -0
- package/lib/imports/rdsdbinstances-rds.services.k8s.aws.js +217 -0
- package/lib/imports/rdsdbsubnetgroups-rds.services.k8s.aws.d.ts +114 -0
- package/lib/imports/rdsdbsubnetgroups-rds.services.k8s.aws.d.ts.map +1 -0
- package/lib/imports/rdsdbsubnetgroups-rds.services.k8s.aws.js +108 -0
- package/lib/imports/s3buckets-s3.services.k8s.aws.d.ts +2253 -0
- package/lib/imports/s3buckets-s3.services.k8s.aws.d.ts.map +1 -0
- package/lib/imports/s3buckets-s3.services.k8s.aws.js +1672 -0
- package/lib/imports/sfnmachines-sfn.services.k8s.aws.d.ts +203 -0
- package/lib/imports/sfnmachines-sfn.services.k8s.aws.d.ts.map +1 -0
- package/lib/imports/sfnmachines-sfn.services.k8s.aws.js +174 -0
- package/lib/imports/snstopics-sns.services.k8s.aws.d.ts +106 -0
- package/lib/imports/snstopics-sns.services.k8s.aws.d.ts.map +1 -0
- package/lib/imports/snstopics-sns.services.k8s.aws.js +110 -0
- package/lib/index.d.ts +4 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +16 -0
- package/lib/mappers/base.d.ts +23 -0
- package/lib/mappers/base.d.ts.map +1 -0
- package/lib/mappers/base.js +20 -0
- package/lib/mappers/ec2-security-group.d.ts +9 -0
- package/lib/mappers/ec2-security-group.d.ts.map +1 -0
- package/lib/mappers/ec2-security-group.js +33 -0
- package/lib/mappers/iam-policy.d.ts +9 -0
- package/lib/mappers/iam-policy.d.ts.map +1 -0
- package/lib/mappers/iam-policy.js +32 -0
- package/lib/mappers/iam-role.d.ts +9 -0
- package/lib/mappers/iam-role.d.ts.map +1 -0
- package/lib/mappers/iam-role.js +34 -0
- package/lib/mappers/index.d.ts +9 -0
- package/lib/mappers/index.d.ts.map +1 -0
- package/lib/mappers/index.js +21 -0
- package/lib/mappers/lambda-function.d.ts +9 -0
- package/lib/mappers/lambda-function.d.ts.map +1 -0
- package/lib/mappers/lambda-function.js +37 -0
- package/lib/mappers/rds-db-instance.d.ts +10 -0
- package/lib/mappers/rds-db-instance.d.ts.map +1 -0
- package/lib/mappers/rds-db-instance.js +65 -0
- package/lib/mappers/rds-db-subnet-group.d.ts +9 -0
- package/lib/mappers/rds-db-subnet-group.d.ts.map +1 -0
- package/lib/mappers/rds-db-subnet-group.js +34 -0
- package/lib/mappers/s3-bucket.d.ts +9 -0
- package/lib/mappers/s3-bucket.d.ts.map +1 -0
- package/lib/mappers/s3-bucket.js +53 -0
- package/package.json +129 -0
- package/releasetag.txt +1 -0
- package/version.txt +1 -0
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
import { ApiObject, ApiObjectMetadata, GroupVersionKind } from 'cdk8s';
|
|
2
|
+
import { Construct } from 'constructs';
|
|
3
|
+
/**
|
|
4
|
+
* EventSourceMapping is the Schema for the EventSourceMappings API
|
|
5
|
+
*
|
|
6
|
+
* @schema EventSourceMapping
|
|
7
|
+
*/
|
|
8
|
+
export declare class EventSourceMapping extends ApiObject {
|
|
9
|
+
/**
|
|
10
|
+
* Returns the apiVersion and kind for "EventSourceMapping"
|
|
11
|
+
*/
|
|
12
|
+
static readonly GVK: GroupVersionKind;
|
|
13
|
+
/**
|
|
14
|
+
* Renders a Kubernetes manifest for "EventSourceMapping".
|
|
15
|
+
*
|
|
16
|
+
* This can be used to inline resource manifests inside other objects (e.g. as templates).
|
|
17
|
+
*
|
|
18
|
+
* @param props initialization props
|
|
19
|
+
*/
|
|
20
|
+
static manifest(props?: EventSourceMappingProps): any;
|
|
21
|
+
/**
|
|
22
|
+
* Defines a "EventSourceMapping" API object
|
|
23
|
+
* @param scope the scope in which to define this object
|
|
24
|
+
* @param id a scope-local name for the object
|
|
25
|
+
* @param props initialization props
|
|
26
|
+
*/
|
|
27
|
+
constructor(scope: Construct, id: string, props?: EventSourceMappingProps);
|
|
28
|
+
/**
|
|
29
|
+
* Renders the object to Kubernetes JSON.
|
|
30
|
+
*/
|
|
31
|
+
toJson(): any;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* EventSourceMapping is the Schema for the EventSourceMappings API
|
|
35
|
+
*
|
|
36
|
+
* @schema EventSourceMapping
|
|
37
|
+
*/
|
|
38
|
+
export interface EventSourceMappingProps {
|
|
39
|
+
/**
|
|
40
|
+
* @schema EventSourceMapping#metadata
|
|
41
|
+
*/
|
|
42
|
+
readonly metadata?: ApiObjectMetadata;
|
|
43
|
+
/**
|
|
44
|
+
* EventSourceMappingSpec defines the desired state of EventSourceMapping.
|
|
45
|
+
*
|
|
46
|
+
* @schema EventSourceMapping#spec
|
|
47
|
+
*/
|
|
48
|
+
readonly spec?: EventSourceMappingSpec;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Converts an object of type 'EventSourceMappingProps' to JSON representation.
|
|
52
|
+
*/
|
|
53
|
+
export declare function toJson_EventSourceMappingProps(obj: EventSourceMappingProps | undefined): Record<string, any> | undefined;
|
|
54
|
+
/**
|
|
55
|
+
* EventSourceMappingSpec defines the desired state of EventSourceMapping.
|
|
56
|
+
*
|
|
57
|
+
* @schema EventSourceMappingSpec
|
|
58
|
+
*/
|
|
59
|
+
export interface EventSourceMappingSpec {
|
|
60
|
+
/**
|
|
61
|
+
* The maximum number of records in each batch that Lambda pulls from your stream or queue and sends to your function. Lambda passes all of the records in the batch to the function in a single call, up to the payload limit for synchronous invocation (6 MB).
|
|
62
|
+
* * Amazon Kinesis - Default 100. Max 10,000.
|
|
63
|
+
* * Amazon DynamoDB Streams - Default 100. Max 1,000.
|
|
64
|
+
* * Amazon Simple Queue Service - Default 10. For standard queues the max is 10,000. For FIFO queues the max is 10.
|
|
65
|
+
* * Amazon Managed Streaming for Apache Kafka - Default 100. Max 10,000.
|
|
66
|
+
* * Self-Managed Apache Kafka - Default 100. Max 10,000.
|
|
67
|
+
*
|
|
68
|
+
* @schema EventSourceMappingSpec#batchSize
|
|
69
|
+
*/
|
|
70
|
+
readonly batchSize?: number;
|
|
71
|
+
/**
|
|
72
|
+
* (Streams only) If the function returns an error, split the batch in two and retry.
|
|
73
|
+
*
|
|
74
|
+
* @schema EventSourceMappingSpec#bisectBatchOnFunctionError
|
|
75
|
+
*/
|
|
76
|
+
readonly bisectBatchOnFunctionError?: boolean;
|
|
77
|
+
/**
|
|
78
|
+
* (Streams only) An Amazon SQS queue or Amazon SNS topic destination for discarded records.
|
|
79
|
+
*
|
|
80
|
+
* @schema EventSourceMappingSpec#destinationConfig
|
|
81
|
+
*/
|
|
82
|
+
readonly destinationConfig?: EventSourceMappingSpecDestinationConfig;
|
|
83
|
+
/**
|
|
84
|
+
* When true, the event source mapping is active. When false, Lambda pauses polling and invocation.
|
|
85
|
+
* Default: True
|
|
86
|
+
*
|
|
87
|
+
* @schema EventSourceMappingSpec#enabled
|
|
88
|
+
*/
|
|
89
|
+
readonly enabled?: boolean;
|
|
90
|
+
/**
|
|
91
|
+
* The Amazon Resource Name (ARN) of the event source.
|
|
92
|
+
* * Amazon Kinesis - The ARN of the data stream or a stream consumer.
|
|
93
|
+
* * Amazon DynamoDB Streams - The ARN of the stream.
|
|
94
|
+
* * Amazon Simple Queue Service - The ARN of the queue.
|
|
95
|
+
* * Amazon Managed Streaming for Apache Kafka - The ARN of the cluster.
|
|
96
|
+
*
|
|
97
|
+
* @schema EventSourceMappingSpec#eventSourceARN
|
|
98
|
+
*/
|
|
99
|
+
readonly eventSourceArn?: string;
|
|
100
|
+
/**
|
|
101
|
+
* The name of the Lambda function.
|
|
102
|
+
* Name formats
|
|
103
|
+
* * Function name - MyFunction.
|
|
104
|
+
* * Function ARN - arn:aws:lambda:us-west-2:123456789012:function:MyFunction.
|
|
105
|
+
* * Version or Alias ARN - arn:aws:lambda:us-west-2:123456789012:function:MyFunction:PROD.
|
|
106
|
+
* * Partial ARN - 123456789012:function:MyFunction.
|
|
107
|
+
* The length constraint applies only to the full ARN. If you specify only the function name, it's limited to 64 characters in length.
|
|
108
|
+
*
|
|
109
|
+
* @schema EventSourceMappingSpec#functionName
|
|
110
|
+
*/
|
|
111
|
+
readonly functionName: string;
|
|
112
|
+
/**
|
|
113
|
+
* (Streams only) A list of current response type enums applied to the event source mapping.
|
|
114
|
+
*
|
|
115
|
+
* @schema EventSourceMappingSpec#functionResponseTypes
|
|
116
|
+
*/
|
|
117
|
+
readonly functionResponseTypes?: string[];
|
|
118
|
+
/**
|
|
119
|
+
* (Streams and Amazon SQS standard queues) The maximum amount of time, in seconds, that Lambda spends gathering records before invoking the function.
|
|
120
|
+
* Default: 0
|
|
121
|
+
* Related setting: When you set BatchSize to a value greater than 10, you must set MaximumBatchingWindowInSeconds to at least 1.
|
|
122
|
+
*
|
|
123
|
+
* @schema EventSourceMappingSpec#maximumBatchingWindowInSeconds
|
|
124
|
+
*/
|
|
125
|
+
readonly maximumBatchingWindowInSeconds?: number;
|
|
126
|
+
/**
|
|
127
|
+
* (Streams only) Discard records older than the specified age. The default value is infinite (-1).
|
|
128
|
+
*
|
|
129
|
+
* @schema EventSourceMappingSpec#maximumRecordAgeInSeconds
|
|
130
|
+
*/
|
|
131
|
+
readonly maximumRecordAgeInSeconds?: number;
|
|
132
|
+
/**
|
|
133
|
+
* (Streams only) Discard records after the specified number of retries. The default value is infinite (-1). When set to infinite (-1), failed records will be retried until the record expires.
|
|
134
|
+
*
|
|
135
|
+
* @schema EventSourceMappingSpec#maximumRetryAttempts
|
|
136
|
+
*/
|
|
137
|
+
readonly maximumRetryAttempts?: number;
|
|
138
|
+
/**
|
|
139
|
+
* (Streams only) The number of batches to process from each shard concurrently.
|
|
140
|
+
*
|
|
141
|
+
* @schema EventSourceMappingSpec#parallelizationFactor
|
|
142
|
+
*/
|
|
143
|
+
readonly parallelizationFactor?: number;
|
|
144
|
+
/**
|
|
145
|
+
* (MQ) The name of the Amazon MQ broker destination queue to consume.
|
|
146
|
+
*
|
|
147
|
+
* @schema EventSourceMappingSpec#queues
|
|
148
|
+
*/
|
|
149
|
+
readonly queues?: string[];
|
|
150
|
+
/**
|
|
151
|
+
* The Self-Managed Apache Kafka cluster to send records.
|
|
152
|
+
*
|
|
153
|
+
* @schema EventSourceMappingSpec#selfManagedEventSource
|
|
154
|
+
*/
|
|
155
|
+
readonly selfManagedEventSource?: EventSourceMappingSpecSelfManagedEventSource;
|
|
156
|
+
/**
|
|
157
|
+
* An array of authentication protocols or VPC components required to secure your event source.
|
|
158
|
+
*
|
|
159
|
+
* @schema EventSourceMappingSpec#sourceAccessConfigurations
|
|
160
|
+
*/
|
|
161
|
+
readonly sourceAccessConfigurations?: EventSourceMappingSpecSourceAccessConfigurations[];
|
|
162
|
+
/**
|
|
163
|
+
* The position in a stream from which to start reading. Required for Amazon Kinesis, Amazon DynamoDB, and Amazon MSK Streams sources. AT_TIMESTAMP is only supported for Amazon Kinesis streams.
|
|
164
|
+
*
|
|
165
|
+
* @schema EventSourceMappingSpec#startingPosition
|
|
166
|
+
*/
|
|
167
|
+
readonly startingPosition?: string;
|
|
168
|
+
/**
|
|
169
|
+
* With StartingPosition set to AT_TIMESTAMP, the time from which to start reading.
|
|
170
|
+
*
|
|
171
|
+
* @schema EventSourceMappingSpec#startingPositionTimestamp
|
|
172
|
+
*/
|
|
173
|
+
readonly startingPositionTimestamp?: Date;
|
|
174
|
+
/**
|
|
175
|
+
* The name of the Kafka topic.
|
|
176
|
+
*
|
|
177
|
+
* @schema EventSourceMappingSpec#topics
|
|
178
|
+
*/
|
|
179
|
+
readonly topics?: string[];
|
|
180
|
+
/**
|
|
181
|
+
* (Streams only) The duration in seconds of a processing window. The range is between 1 second up to 900 seconds.
|
|
182
|
+
*
|
|
183
|
+
* @schema EventSourceMappingSpec#tumblingWindowInSeconds
|
|
184
|
+
*/
|
|
185
|
+
readonly tumblingWindowInSeconds?: number;
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Converts an object of type 'EventSourceMappingSpec' to JSON representation.
|
|
189
|
+
*/
|
|
190
|
+
export declare function toJson_EventSourceMappingSpec(obj: EventSourceMappingSpec | undefined): Record<string, any> | undefined;
|
|
191
|
+
/**
|
|
192
|
+
* (Streams only) An Amazon SQS queue or Amazon SNS topic destination for discarded records.
|
|
193
|
+
*
|
|
194
|
+
* @schema EventSourceMappingSpecDestinationConfig
|
|
195
|
+
*/
|
|
196
|
+
export interface EventSourceMappingSpecDestinationConfig {
|
|
197
|
+
/**
|
|
198
|
+
* A destination for events that failed processing.
|
|
199
|
+
*
|
|
200
|
+
* @schema EventSourceMappingSpecDestinationConfig#onFailure
|
|
201
|
+
*/
|
|
202
|
+
readonly onFailure?: EventSourceMappingSpecDestinationConfigOnFailure;
|
|
203
|
+
/**
|
|
204
|
+
* A destination for events that were processed successfully.
|
|
205
|
+
*
|
|
206
|
+
* @schema EventSourceMappingSpecDestinationConfig#onSuccess
|
|
207
|
+
*/
|
|
208
|
+
readonly onSuccess?: EventSourceMappingSpecDestinationConfigOnSuccess;
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Converts an object of type 'EventSourceMappingSpecDestinationConfig' to JSON representation.
|
|
212
|
+
*/
|
|
213
|
+
export declare function toJson_EventSourceMappingSpecDestinationConfig(obj: EventSourceMappingSpecDestinationConfig | undefined): Record<string, any> | undefined;
|
|
214
|
+
/**
|
|
215
|
+
* The Self-Managed Apache Kafka cluster to send records.
|
|
216
|
+
*
|
|
217
|
+
* @schema EventSourceMappingSpecSelfManagedEventSource
|
|
218
|
+
*/
|
|
219
|
+
export interface EventSourceMappingSpecSelfManagedEventSource {
|
|
220
|
+
/**
|
|
221
|
+
* @schema EventSourceMappingSpecSelfManagedEventSource#endpoints
|
|
222
|
+
*/
|
|
223
|
+
readonly endpoints?: {
|
|
224
|
+
[key: string]: string[];
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Converts an object of type 'EventSourceMappingSpecSelfManagedEventSource' to JSON representation.
|
|
229
|
+
*/
|
|
230
|
+
export declare function toJson_EventSourceMappingSpecSelfManagedEventSource(obj: EventSourceMappingSpecSelfManagedEventSource | undefined): Record<string, any> | undefined;
|
|
231
|
+
/**
|
|
232
|
+
* To secure and define access to your event source, you can specify the authentication protocol, VPC components, or virtual host.
|
|
233
|
+
*
|
|
234
|
+
* @schema EventSourceMappingSpecSourceAccessConfigurations
|
|
235
|
+
*/
|
|
236
|
+
export interface EventSourceMappingSpecSourceAccessConfigurations {
|
|
237
|
+
/**
|
|
238
|
+
* @schema EventSourceMappingSpecSourceAccessConfigurations#type_
|
|
239
|
+
*/
|
|
240
|
+
readonly type?: string;
|
|
241
|
+
/**
|
|
242
|
+
* @schema EventSourceMappingSpecSourceAccessConfigurations#uRI
|
|
243
|
+
*/
|
|
244
|
+
readonly uRi?: string;
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Converts an object of type 'EventSourceMappingSpecSourceAccessConfigurations' to JSON representation.
|
|
248
|
+
*/
|
|
249
|
+
export declare function toJson_EventSourceMappingSpecSourceAccessConfigurations(obj: EventSourceMappingSpecSourceAccessConfigurations | undefined): Record<string, any> | undefined;
|
|
250
|
+
/**
|
|
251
|
+
* A destination for events that failed processing.
|
|
252
|
+
*
|
|
253
|
+
* @schema EventSourceMappingSpecDestinationConfigOnFailure
|
|
254
|
+
*/
|
|
255
|
+
export interface EventSourceMappingSpecDestinationConfigOnFailure {
|
|
256
|
+
/**
|
|
257
|
+
* @schema EventSourceMappingSpecDestinationConfigOnFailure#destination
|
|
258
|
+
*/
|
|
259
|
+
readonly destination?: string;
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* Converts an object of type 'EventSourceMappingSpecDestinationConfigOnFailure' to JSON representation.
|
|
263
|
+
*/
|
|
264
|
+
export declare function toJson_EventSourceMappingSpecDestinationConfigOnFailure(obj: EventSourceMappingSpecDestinationConfigOnFailure | undefined): Record<string, any> | undefined;
|
|
265
|
+
/**
|
|
266
|
+
* A destination for events that were processed successfully.
|
|
267
|
+
*
|
|
268
|
+
* @schema EventSourceMappingSpecDestinationConfigOnSuccess
|
|
269
|
+
*/
|
|
270
|
+
export interface EventSourceMappingSpecDestinationConfigOnSuccess {
|
|
271
|
+
/**
|
|
272
|
+
* @schema EventSourceMappingSpecDestinationConfigOnSuccess#destination
|
|
273
|
+
*/
|
|
274
|
+
readonly destination?: string;
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* Converts an object of type 'EventSourceMappingSpecDestinationConfigOnSuccess' to JSON representation.
|
|
278
|
+
*/
|
|
279
|
+
export declare function toJson_EventSourceMappingSpecDestinationConfigOnSuccess(obj: EventSourceMappingSpecDestinationConfigOnSuccess | undefined): Record<string, any> | undefined;
|
|
280
|
+
//# sourceMappingURL=lambdaeventsourcemappings-lambda.services.k8s.aws.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lambdaeventsourcemappings-lambda.services.k8s.aws.d.ts","sourceRoot":"","sources":["../../src/imports/lambdaeventsourcemappings-lambda.services.k8s.aws.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.toJson_EventSourceMappingSpecDestinationConfigOnSuccess = exports.toJson_EventSourceMappingSpecDestinationConfigOnFailure = exports.toJson_EventSourceMappingSpecSourceAccessConfigurations = exports.toJson_EventSourceMappingSpecSelfManagedEventSource = exports.toJson_EventSourceMappingSpecDestinationConfig = exports.toJson_EventSourceMappingSpec = exports.toJson_EventSourceMappingProps = exports.EventSourceMapping = void 0;
|
|
4
|
+
// generated by cdk8s
|
|
5
|
+
const cdk8s_1 = require("cdk8s");
|
|
6
|
+
/**
|
|
7
|
+
* EventSourceMapping is the Schema for the EventSourceMappings API
|
|
8
|
+
*
|
|
9
|
+
* @schema EventSourceMapping
|
|
10
|
+
*/
|
|
11
|
+
class EventSourceMapping extends cdk8s_1.ApiObject {
|
|
12
|
+
/**
|
|
13
|
+
* Defines a "EventSourceMapping" API object
|
|
14
|
+
* @param scope the scope in which to define this object
|
|
15
|
+
* @param id a scope-local name for the object
|
|
16
|
+
* @param props initialization props
|
|
17
|
+
*/
|
|
18
|
+
constructor(scope, id, props = {}) {
|
|
19
|
+
super(scope, id, {
|
|
20
|
+
...EventSourceMapping.GVK,
|
|
21
|
+
...props,
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Renders a Kubernetes manifest for "EventSourceMapping".
|
|
26
|
+
*
|
|
27
|
+
* This can be used to inline resource manifests inside other objects (e.g. as templates).
|
|
28
|
+
*
|
|
29
|
+
* @param props initialization props
|
|
30
|
+
*/
|
|
31
|
+
static manifest(props = {}) {
|
|
32
|
+
return {
|
|
33
|
+
...EventSourceMapping.GVK,
|
|
34
|
+
...toJson_EventSourceMappingProps(props),
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Renders the object to Kubernetes JSON.
|
|
39
|
+
*/
|
|
40
|
+
toJson() {
|
|
41
|
+
const resolved = super.toJson();
|
|
42
|
+
return {
|
|
43
|
+
...EventSourceMapping.GVK,
|
|
44
|
+
...toJson_EventSourceMappingProps(resolved),
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
exports.EventSourceMapping = EventSourceMapping;
|
|
49
|
+
/**
|
|
50
|
+
* Returns the apiVersion and kind for "EventSourceMapping"
|
|
51
|
+
*/
|
|
52
|
+
EventSourceMapping.GVK = {
|
|
53
|
+
apiVersion: 'lambda.services.k8s.aws/v1alpha1',
|
|
54
|
+
kind: 'EventSourceMapping',
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* Converts an object of type 'EventSourceMappingProps' to JSON representation.
|
|
58
|
+
*/
|
|
59
|
+
/* eslint-disable max-len, quote-props */
|
|
60
|
+
function toJson_EventSourceMappingProps(obj) {
|
|
61
|
+
if (obj === undefined) {
|
|
62
|
+
return undefined;
|
|
63
|
+
}
|
|
64
|
+
const result = {
|
|
65
|
+
'metadata': obj.metadata,
|
|
66
|
+
'spec': toJson_EventSourceMappingSpec(obj.spec),
|
|
67
|
+
};
|
|
68
|
+
// filter undefined values
|
|
69
|
+
return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
|
|
70
|
+
}
|
|
71
|
+
exports.toJson_EventSourceMappingProps = toJson_EventSourceMappingProps;
|
|
72
|
+
/**
|
|
73
|
+
* Converts an object of type 'EventSourceMappingSpec' to JSON representation.
|
|
74
|
+
*/
|
|
75
|
+
/* eslint-disable max-len, quote-props */
|
|
76
|
+
function toJson_EventSourceMappingSpec(obj) {
|
|
77
|
+
var _a, _b, _c, _d, _e;
|
|
78
|
+
if (obj === undefined) {
|
|
79
|
+
return undefined;
|
|
80
|
+
}
|
|
81
|
+
const result = {
|
|
82
|
+
'batchSize': obj.batchSize,
|
|
83
|
+
'bisectBatchOnFunctionError': obj.bisectBatchOnFunctionError,
|
|
84
|
+
'destinationConfig': toJson_EventSourceMappingSpecDestinationConfig(obj.destinationConfig),
|
|
85
|
+
'enabled': obj.enabled,
|
|
86
|
+
'eventSourceARN': obj.eventSourceArn,
|
|
87
|
+
'functionName': obj.functionName,
|
|
88
|
+
'functionResponseTypes': (_a = obj.functionResponseTypes) === null || _a === void 0 ? void 0 : _a.map(y => y),
|
|
89
|
+
'maximumBatchingWindowInSeconds': obj.maximumBatchingWindowInSeconds,
|
|
90
|
+
'maximumRecordAgeInSeconds': obj.maximumRecordAgeInSeconds,
|
|
91
|
+
'maximumRetryAttempts': obj.maximumRetryAttempts,
|
|
92
|
+
'parallelizationFactor': obj.parallelizationFactor,
|
|
93
|
+
'queues': (_b = obj.queues) === null || _b === void 0 ? void 0 : _b.map(y => y),
|
|
94
|
+
'selfManagedEventSource': toJson_EventSourceMappingSpecSelfManagedEventSource(obj.selfManagedEventSource),
|
|
95
|
+
'sourceAccessConfigurations': (_c = obj.sourceAccessConfigurations) === null || _c === void 0 ? void 0 : _c.map(y => toJson_EventSourceMappingSpecSourceAccessConfigurations(y)),
|
|
96
|
+
'startingPosition': obj.startingPosition,
|
|
97
|
+
'startingPositionTimestamp': (_d = obj.startingPositionTimestamp) === null || _d === void 0 ? void 0 : _d.toISOString(),
|
|
98
|
+
'topics': (_e = obj.topics) === null || _e === void 0 ? void 0 : _e.map(y => y),
|
|
99
|
+
'tumblingWindowInSeconds': obj.tumblingWindowInSeconds,
|
|
100
|
+
};
|
|
101
|
+
// filter undefined values
|
|
102
|
+
return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
|
|
103
|
+
}
|
|
104
|
+
exports.toJson_EventSourceMappingSpec = toJson_EventSourceMappingSpec;
|
|
105
|
+
/**
|
|
106
|
+
* Converts an object of type 'EventSourceMappingSpecDestinationConfig' to JSON representation.
|
|
107
|
+
*/
|
|
108
|
+
/* eslint-disable max-len, quote-props */
|
|
109
|
+
function toJson_EventSourceMappingSpecDestinationConfig(obj) {
|
|
110
|
+
if (obj === undefined) {
|
|
111
|
+
return undefined;
|
|
112
|
+
}
|
|
113
|
+
const result = {
|
|
114
|
+
'onFailure': toJson_EventSourceMappingSpecDestinationConfigOnFailure(obj.onFailure),
|
|
115
|
+
'onSuccess': toJson_EventSourceMappingSpecDestinationConfigOnSuccess(obj.onSuccess),
|
|
116
|
+
};
|
|
117
|
+
// filter undefined values
|
|
118
|
+
return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
|
|
119
|
+
}
|
|
120
|
+
exports.toJson_EventSourceMappingSpecDestinationConfig = toJson_EventSourceMappingSpecDestinationConfig;
|
|
121
|
+
/**
|
|
122
|
+
* Converts an object of type 'EventSourceMappingSpecSelfManagedEventSource' to JSON representation.
|
|
123
|
+
*/
|
|
124
|
+
/* eslint-disable max-len, quote-props */
|
|
125
|
+
function toJson_EventSourceMappingSpecSelfManagedEventSource(obj) {
|
|
126
|
+
if (obj === undefined) {
|
|
127
|
+
return undefined;
|
|
128
|
+
}
|
|
129
|
+
const result = {
|
|
130
|
+
'endpoints': ((obj.endpoints) === undefined) ? undefined : (Object.entries(obj.endpoints).reduce((r, i) => { var _a; return (i[1] === undefined) ? r : ({ ...r, [i[0]]: (_a = i[1]) === null || _a === void 0 ? void 0 : _a.map(y => y) }); }, {})),
|
|
131
|
+
};
|
|
132
|
+
// filter undefined values
|
|
133
|
+
return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
|
|
134
|
+
}
|
|
135
|
+
exports.toJson_EventSourceMappingSpecSelfManagedEventSource = toJson_EventSourceMappingSpecSelfManagedEventSource;
|
|
136
|
+
/**
|
|
137
|
+
* Converts an object of type 'EventSourceMappingSpecSourceAccessConfigurations' to JSON representation.
|
|
138
|
+
*/
|
|
139
|
+
/* eslint-disable max-len, quote-props */
|
|
140
|
+
function toJson_EventSourceMappingSpecSourceAccessConfigurations(obj) {
|
|
141
|
+
if (obj === undefined) {
|
|
142
|
+
return undefined;
|
|
143
|
+
}
|
|
144
|
+
const result = {
|
|
145
|
+
'type_': obj.type,
|
|
146
|
+
'uRI': obj.uRi,
|
|
147
|
+
};
|
|
148
|
+
// filter undefined values
|
|
149
|
+
return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
|
|
150
|
+
}
|
|
151
|
+
exports.toJson_EventSourceMappingSpecSourceAccessConfigurations = toJson_EventSourceMappingSpecSourceAccessConfigurations;
|
|
152
|
+
/**
|
|
153
|
+
* Converts an object of type 'EventSourceMappingSpecDestinationConfigOnFailure' to JSON representation.
|
|
154
|
+
*/
|
|
155
|
+
/* eslint-disable max-len, quote-props */
|
|
156
|
+
function toJson_EventSourceMappingSpecDestinationConfigOnFailure(obj) {
|
|
157
|
+
if (obj === undefined) {
|
|
158
|
+
return undefined;
|
|
159
|
+
}
|
|
160
|
+
const result = {
|
|
161
|
+
'destination': obj.destination,
|
|
162
|
+
};
|
|
163
|
+
// filter undefined values
|
|
164
|
+
return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
|
|
165
|
+
}
|
|
166
|
+
exports.toJson_EventSourceMappingSpecDestinationConfigOnFailure = toJson_EventSourceMappingSpecDestinationConfigOnFailure;
|
|
167
|
+
/**
|
|
168
|
+
* Converts an object of type 'EventSourceMappingSpecDestinationConfigOnSuccess' to JSON representation.
|
|
169
|
+
*/
|
|
170
|
+
/* eslint-disable max-len, quote-props */
|
|
171
|
+
function toJson_EventSourceMappingSpecDestinationConfigOnSuccess(obj) {
|
|
172
|
+
if (obj === undefined) {
|
|
173
|
+
return undefined;
|
|
174
|
+
}
|
|
175
|
+
const result = {
|
|
176
|
+
'destination': obj.destination,
|
|
177
|
+
};
|
|
178
|
+
// filter undefined values
|
|
179
|
+
return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
|
|
180
|
+
}
|
|
181
|
+
exports.toJson_EventSourceMappingSpecDestinationConfigOnSuccess = toJson_EventSourceMappingSpecDestinationConfigOnSuccess;
|
|
182
|
+
/* eslint-enable max-len, quote-props */
|
|
183
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFtYmRhZXZlbnRzb3VyY2VtYXBwaW5ncy1sYW1iZGEuc2VydmljZXMuazhzLmF3cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbXBvcnRzL2xhbWJkYWV2ZW50c291cmNlbWFwcGluZ3MtbGFtYmRhLnNlcnZpY2VzLms4cy5hd3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUJBQXFCO0FBQ3JCLGlDQUF1RTtBQUl2RTs7OztHQUlHO0FBQ0gsTUFBYSxrQkFBbUIsU0FBUSxpQkFBUztJQXVCL0M7Ozs7O09BS0c7SUFDSCxZQUFtQixLQUFnQixFQUFFLEVBQVUsRUFBRSxRQUFpQyxFQUFFO1FBQ2xGLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsR0FBRyxrQkFBa0IsQ0FBQyxHQUFHO1lBQ3pCLEdBQUcsS0FBSztTQUNULENBQUMsQ0FBQztJQUNMLENBQUM7SUF6QkQ7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFpQyxFQUFFO1FBQ3hELE9BQU87WUFDTCxHQUFHLGtCQUFrQixDQUFDLEdBQUc7WUFDekIsR0FBRyw4QkFBOEIsQ0FBQyxLQUFLLENBQUM7U0FDekMsQ0FBQztJQUNKLENBQUM7SUFlRDs7T0FFRztJQUNJLE1BQU07UUFDWCxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7UUFFaEMsT0FBTztZQUNMLEdBQUcsa0JBQWtCLENBQUMsR0FBRztZQUN6QixHQUFHLDhCQUE4QixDQUFDLFFBQVEsQ0FBQztTQUM1QyxDQUFDO0lBQ0osQ0FBQzs7QUE5Q0gsZ0RBK0NDO0FBOUNDOztHQUVHO0FBQ29CLHNCQUFHLEdBQXFCO0lBQzdDLFVBQVUsRUFBRSxrQ0FBa0M7SUFDOUMsSUFBSSxFQUFFLG9CQUFvQjtDQUMzQixDQUFDO0FBOERKOztHQUVHO0FBQ0gseUNBQXlDO0FBQ3pDLFNBQWdCLDhCQUE4QixDQUFDLEdBQXdDO0lBQ3JGLElBQUks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QyxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUMxRyxDQUFDO0FBUEQsMEhBT0M7QUFDRCx3Q0FBd0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBnZW5lcmF0ZWQgYnkgY2RrOHNcbmltcG9ydCB7IEFwaU9iamVjdCwgQXBpT2JqZWN0TWV0YWRhdGEsIEdyb3VwVmVyc2lvbktpbmQgfSBmcm9tICdjZGs4cyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuXG4vKipcbiAqIEV2ZW50U291cmNlTWFwcGluZyBpcyB0aGUgU2NoZW1hIGZvciB0aGUgRXZlbnRTb3VyY2VNYXBwaW5ncyBBUElcbiAqXG4gKiBAc2NoZW1hIEV2ZW50U291cmNlTWFwcGluZ1xuICovXG5leHBvcnQgY2xhc3MgRXZlbnRTb3VyY2VNYXBwaW5nIGV4dGVuZHMgQXBpT2JqZWN0IHtcbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGFwaVZlcnNpb24gYW5kIGtpbmQgZm9yIFwiRXZlbnRTb3VyY2VNYXBwaW5nXCJcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgR1ZLOiBHcm91cFZlcnNpb25LaW5kID0ge1xuICAgIGFwaVZlcnNpb246ICdsYW1iZGEuc2VydmljZXMuazhzLmF3cy92MWFscGhhMScsXG4gICAga2luZDogJ0V2ZW50U291cmNlTWFwcGluZycsXG4gIH07XG5cbiAgLyoqXG4gICAqIFJlbmRlcnMgYSBLdWJlcm5ldGVzIG1hbmlmZXN0IGZvciBcIkV2ZW50U291cmNlTWFwcGluZ1wiLlxuICAgKlxuICAgKiBUaGlzIGNhbiBiZSB1c2VkIHRvIGlubGluZSByZXNvdXJjZSBtYW5pZmVzdHMgaW5zaWRlIG90aGVyIG9iamVjdHMgKGUuZy4gYXMgdGVtcGxhdGVzKS5cbiAgICpcbiAgICogQHBhcmFtIHByb3BzIGluaXRpYWxpemF0aW9uIHByb3BzXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG1hbmlmZXN0KHByb3BzOiBFdmVudFNvdXJjZU1hcHBpbmdQcm9wcyA9IHt9KTogYW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uRXZlbnRTb3VyY2VNYXBwaW5nLkdWSyxcbiAgICAgIC4uLnRvSnNvbl9FdmVudFNvdXJjZU1hcHBpbmdQcm9wcyhwcm9wcyksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZpbmVzIGEgXCJFdmVudFNvdXJjZU1hcHBpbmdcIiBBUEkgb2JqZWN0XG4gICAqIEBwYXJhbSBzY29wZSB0aGUgc2NvcGUgaW4gd2hpY2ggdG8gZGVmaW5lIHRoaXMgb2JqZWN0XG4gICAqIEBwYXJhbSBpZCBhIHNjb3BlLWxvY2FsIG5hbWUgZm9yIHRoZSBvYmplY3RcbiAgICogQHBhcmFtIHByb3BzIGluaXRpYWxpemF0aW9uIHByb3BzXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEV2ZW50U291cmNlTWFwcGluZ1Byb3BzID0ge30pIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIC4uLkV2ZW50U291cmNlTWFwcGluZy5HVkssXG4gICAgICAuLi5wcm9wcyxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXJzIHRoZSBvYmplY3QgdG8gS3ViZXJuZXRlcyBKU09OLlxuICAgKi9cbiAgcHVibGljIHRvSnNvbigpOiBhbnkge1xuICAgIGNvbnN0IHJlc29sdmVkID0gc3VwZXIudG9Kc29uKCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uRXZlbnRTb3VyY2VNYXBwaW5nLkdWSyxcbiAgICAgIC4uLnRvSnNvbl9FdmVudFNvdXJjZU1hcHBpbmdQcm9wcyhyZXNvbHZlZCksXG4gICAgfTtcbiAgfVxufVxuXG4vKipcbiAqIEV2ZW50U291cmNlTWFwcGluZyBpcyB0aGUgU2NoZW1hIGZvciB0aGUgRXZlbnRTb3VyY2VNYXBwaW5ncyBBUElcbiAqXG4gKiBAc2NoZW1hIEV2ZW50U291cmNlTWFwcGluZ1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50U291cmNlTWFwcGluZ1Byb3BzIHtcbiAgLyoqXG4gICAqIEBzY2hlbWEgRXZlbnRTb3VyY2VNYXBwaW5nI21ldGFkYXRhXG4gICAqL1xuICByZWFkb25seSBtZXRhZGF0YT86IEFwaU9iamVjdE1ldGFkYXRhO1xuXG4gIC8qKlxuICAgKiBFdmVudFNvdXJjZU1hcHBpbmdTcGVjIGRlZmluZXMgdGhlIGRlc2lyZWQgc3RhdGUgb2YgRXZlbnRTb3VyY2VNYXBwaW5nLlxuICAgKlxuICAgKiBAc2NoZW1hIEV2ZW50U291cmNlTWFwcGluZyNzcGVjXG4gICAqL1xuICByZWFkb25seSBzcGVjPzogRXZlbnRTb3VyY2VNYXBwaW5nU3BlYztcblxufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdFdmVudFNvdXJjZU1hcHBpbmdQcm9wcycgdG8gSlNPTiByZXByZXNlbnRhdGlvbi5cbiAqL1xuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0pzb25fRXZlbnRTb3VyY2VNYXBwaW5nUHJvcHMob2JqOiBFdmVudFNvdXJjZU1hcHBpbmdQcm9wcyB8IHVuZGVmaW5lZCk6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfVxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgJ21ldGFkYXRhJzogb2JqLm1ldGFkYXRhLFxuICAgICdzcGVjJzogdG9Kc29uX0V2ZW50U291cmNlTWFwcGluZ1NwZWMob2JqLnNwZWMpLFxuICB9O1xuICAvLyBmaWx0ZXIgdW5kZWZpbmVkIHZhbHVlc1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmVzdWx0KS5yZWR1Y2UoKHIsIGkpID0+IChpWzFdID09PSB1bmRlZmluZWQpID8gciA6ICh7IC4uLnIsIFtpWzBdXTogaVsxXSB9KSwge30pO1xufVxuLyogZXNsaW50LWVuYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuXG4vKipcbiAqIEV2ZW50U291cmNlTWFwcGluZ1NwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBzdGF0ZSBvZiBFdmVudFNvdXJjZU1hcHBpbmcuXG4gKlxuICogQHNjaGVtYSBFdmVudFNvdXJjZU1hcHBpbmdTcGVjXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXZlbnRTb3VyY2VNYXBwaW5nU3BlYyB7XG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgcmVjb3JkcyBpbiBlYWNoIGJhdGNoIHRoYXQgTGFtYmRhIHB1bGxzIGZyb20geW91ciBzdHJlYW0gb3IgcXVldWUgYW5kIHNlbmRzIHRvIHlvdXIgZnVuY3Rpb24uIExhbWJkYSBwYXNzZXMgYWxsIG9mIHRoZSByZWNvcmRzIGluIHRoZSBiYXRjaCB0byB0aGUgZnVuY3Rpb24gaW4gYSBzaW5nbGUgY2FsbCwgdXAgdG8gdGhlIHBheWxvYWQgbGltaXQgZm9yIHN5bmNocm9ub3VzIGludm9jYXRpb24gKDYgTUIpLlxuICAgKiAqIEFtYXpvbiBLaW5lc2lzIC0gRGVmYXVsdCAxMDAuIE1heCAxMCwwMDAuXG4gICAqICogQW1hem9uIER5bmFtb0RCIFN0cmVhbXMgLSBEZWZhdWx0IDEwMC4gTWF4IDEsMDAwLlxuICAgKiAqIEFtYXpvbiBTaW1wbGUgUXVldWUgU2VydmljZSAtIERlZmF1bHQgMTAuIEZvciBzdGFuZGFyZCBxdWV1ZXMgdGhlIG1heCAgICBpcyAxMCwwMDAuIEZvciBGSUZPIHF1ZXVlcyB0aGUgbWF4IGlzIDEwLlxuICAgKiAqIEFtYXpvbiBNYW5hZ2VkIFN0cmVhbWluZyBmb3IgQXBhY2hlIEthZmthIC0gRGVmYXVsdCAxMDAuIE1heCAxMCwwMDAuXG4gICAqICogU2VsZi1NYW5hZ2VkIEFwYWNoZSBLYWZrYSAtIERlZmF1bHQgMTAwLiBNYXggMTAsMDAwLlxuICAgKlxuICAgKiBAc2NoZW1hIEV2ZW50U291cmNlTWFwcGluZ1NwZWMjYmF0Y2hTaXplXG4gICAqL1xuICByZWFkb25seSBiYXRjaFNpemU/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIChTdHJlYW1zIG9ubHkpIElmIHRoZSBmdW5jdGlvbiByZXR1cm5zIGFuIGVycm9yLCBzcGxpdCB0aGUgYmF0Y2ggaW4gdHdvIGFuZCByZXRyeS5cbiAgICpcbiAgICogQHNjaGVtYSBFdmVudFNvdXJjZU1hcHBpbmdTcGVjI2Jpc2VjdEJhdGNoT25GdW5jdGlvbkVycm9yXG4gICAqL1xuICByZWFkb25seSBiaXNlY3RCYXRjaE9uRnVuY3Rpb25FcnJvcj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIChTdHJlYW1zIG9ubHkpIEFuIEFtYXpvbiBTUVMgcXVldWUgb3IgQW1hem9uIFNOUyB0b3BpYyBkZXN0aW5hdGlvbiBmb3IgZGlzY2FyZGVkIHJlY29yZHMuXG4gICAqXG4gICAqIEBzY2hlbWEgRXZlbnRTb3VyY2VNYXBwaW5nU3BlYyNkZXN0aW5hdGlvbkNvbmZpZ1xuICAgKi9cbiAgcmVhZG9ubHkgZGVzdGluYXRpb25Db25maWc/OiBFdmVudFNvdXJjZU1hcHBpbmdTcGVjRGVzdGluYXRpb25Db25maWc7XG5cbiAgLyoqXG4gICAqIFdoZW4gdHJ1ZSwgdGhlIGV2ZW50IHNvdXJjZSBtYXBwaW5nIGlzIGFjdGl2ZS4gV2hlbiBmYWxzZSwgTGFtYmRhIHBhdXNlcyBwb2xsaW5nIGFuZCBpbnZvY2F0aW9uLlxuICAgKiBEZWZhdWx0OiBUcnVlXG4gICAqXG4gICAqIEBzY2hlbWEgRXZlbnRTb3VyY2VNYXBwaW5nU3BlYyNlbmFibGVkXG4gICAqL1xuICByZWFkb25seSBlbmFibGVkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIHRoZSBldmVudCBzb3VyY2UuXG4gICAqICogQW1hem9uIEtpbmVzaXMgLSBUaGUgQVJOIG9mIHRoZSBkYXRhIHN0cmVhbSBvciBhIHN0cmVhbSBjb25zdW1lci5cbiAgICogKiBBbWF6b24gRHluYW1vREIgU3RyZWFtcyAtIFRoZSBBUk4gb2YgdGhlIHN0cmVhbS5cbiAgICogKiBBbWF6b24gU2ltcGxlIFF1ZXVlIFNlcnZpY2UgLSBUaGUgQVJOIG9mIHRoZSBxdWV1ZS5cbiAgICogKiBBbWF6b24gTWFuYWdlZCBTdHJlYW1pbmcgZm9yIEFwYWNoZSBLYWZrYSAtIFRoZSBBUk4gb2YgdGhlIGNsdXN0ZXIuXG4gICAqXG4gICAqIEBzY2hlbWEgRXZlbnRTb3VyY2VNYXBwaW5nU3BlYyNldmVudFNvdXJjZUFSTlxuICAgKi9cbiAgcmVhZG9ubHkgZXZlbnRTb3VyY2VBcm4/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBMYW1iZGEgZnVuY3Rpb24uXG4gICAqIE5hbWUgZm9ybWF0c1xuICAgKiAqIEZ1bmN0aW9uIG5hbWUgLSBNeUZ1bmN0aW9uLlxuICAgKiAqIEZ1bmN0aW9uIEFSTiAtIGFybjphd3M6bGFtYmRhOnVzLXdlc3QtMjoxMjM0NTY3ODkwMTI6ZnVuY3Rpb246TXlGdW5jdGlvbi5cbiAgICogKiBWZXJzaW9uIG9yIEFsaWFzIEFSTiAtIGFybjphd3M6bGFtYmRhOnVzLXdlc3QtMjoxMjM0NTY3ODkwMTI6ZnVuY3Rpb246TXlGdW5jdGlvbjpQUk9ELlxuICAgKiAqIFBhcnRpYWwgQVJOIC0gMTIzNDU2Nzg5MDEyOmZ1bmN0aW9uOk15RnVuY3Rpb24uXG4gICAqIFRoZSBsZW5ndGggY29uc3RyYWludCBhcHBsaWVzIG9ubHkgdG8gdGhlIGZ1bGwgQVJOLiBJZiB5b3Ugc3BlY2lmeSBvbmx5IHRoZSBmdW5jdGlvbiBuYW1lLCBpdCdzIGxpbWl0ZWQgdG8gNjQgY2hhcmFjdGVycyBpbiBsZW5ndGguXG4gICAqXG4gICAqIEBzY2hlbWEgRXZlbnRTb3VyY2VNYXBwaW5nU3BlYyNmdW5jdGlvbk5hbWVcbiAgICovXG4gIHJlYWRvbmx5IGZ1bmN0aW9uTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiAoU3RyZWFtcyBvbmx5KSBBIGxpc3Qgb2YgY3VycmVudCByZXNwb25zZSB0eXBlIGVudW1zIGFwcGxpZWQgdG8gdGhlIGV2ZW50IHNvdXJjZSBtYXBwaW5nLlxuICAgKlxuICAgKiBAc2NoZW1hIEV2ZW50U291cmNlTWFwcGluZ1NwZWMjZnVuY3Rpb25SZXNwb25zZVR5cGVzXG4gICAqL1xuICByZWFkb25seSBmdW5jdGlvblJlc3BvbnNlVHlwZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogKFN0cmVhbXMgYW5kIEFtYXpvbiBTUVMgc3RhbmRhcmQgcXVldWVzKSBUaGUgbWF4aW11bSBhbW91bnQgb2YgdGltZSwgaW4gc2Vjb25kcywgdGhhdCBMYW1iZGEgc3BlbmRzIGdhdGhlcmluZyByZWNvcmRzIGJlZm9yZSBpbnZva2luZyB0aGUgZnVuY3Rpb24uXG4gICAqIERlZmF1bHQ6IDBcbiAgICogUmVsYXRlZCBzZXR0aW5nOiBXaGVuIHlvdSBzZXQgQmF0Y2hTaXplIHRvIGEgdmFsdWUgZ3JlYXRlciB0aGFuIDEwLCB5b3UgbXVzdCBzZXQgTWF4aW11bUJhdGNoaW5nV2luZG93SW5TZWNvbmRzIHRvIGF0IGxlYXN0IDEuXG4gICAqXG4gICAqIEBzY2hlbWEgRXZlbnRTb3VyY2VNYXBwaW5nU3BlYyNtYXhpbXVtQmF0Y2hpbmdXaW5kb3dJblNlY29uZHNcbiAgICovXG4gIHJlYWRvbmx5IG1heGltdW1CYXRjaGluZ1dpbmRvd0luU2Vjb25kcz86IG51bWJlcjtcblxuICAvKipcbiAgICogKFN0cmVhbXMgb25seSkgRGlzY2FyZCByZWNvcmRzIG9sZGVyIHRoYW4gdGhlIHNwZWNpZmllZCBhZ2UuIFRoZSBkZWZhdWx0IHZhbHVlIGlzIGluZmluaXRlICgtMSkuXG4gICAqXG4gICAqIEBzY2hlbWEgRXZlbnRTb3VyY2VNYXBwaW5nU3BlYyNtYXhpbXVtUmVjb3JkQWdlSW5TZWNvbmRzXG4gICAqL1xuICByZWFkb25seSBtYXhpbXVtUmVjb3JkQWdlSW5TZWNvbmRzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiAoU3RyZWFtcyBvbmx5KSBEaXNjYXJkIHJlY29yZHMgYWZ0ZXIgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgcmV0cmllcy4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgaW5maW5pdGUgKC0xKS4gV2hlbiBzZXQgdG8gaW5maW5pdGUgKC0xKSwgZmFpbGVkIHJlY29yZHMgd2lsbCBiZSByZXRyaWVkIHVudGlsIHRoZSByZWNvcmQgZXhwaXJlcy5cbiAgICpcbiAgICogQHNjaGVtYSBFdmVudFNvdXJjZU1hcHBpbmdTcGVjI21heGltdW1SZXRyeUF0dGVtcHRzXG4gICAqL1xuICByZWFkb25seSBtYXhpbXVtUmV0cnlBdHRlbXB0cz86IG51bWJlcjtcblxuICAvKipcbiAgICogKFN0cmVhbXMgb25seSkgVGhlIG51bWJlciBvZiBiYXRjaGVzIHRvIHByb2Nlc3MgZnJvbSBlYWNoIHNoYXJkIGNvbmN1cnJlbnRseS5cbiAgICpcbiAgICogQHNjaGVtYSBFdmVudFNvdXJjZU1hcHBpbmdTcGVjI3BhcmFsbGVsaXphdGlvbkZhY3RvclxuICAgKi9cbiAgcmVhZG9ubHkgcGFyYWxsZWxpemF0aW9uRmFjdG9yPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiAoTVEpIFRoZSBuYW1lIG9mIHRoZSBBbWF6b24gTVEgYnJva2VyIGRlc3RpbmF0aW9uIHF1ZXVlIHRvIGNvbnN1bWUuXG4gICAqXG4gICAqIEBzY2hlbWEgRXZlbnRTb3VyY2VNYXBwaW5nU3BlYyNxdWV1ZXNcbiAgICovXG4gIHJlYWRvbmx5IHF1ZXVlcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgU2VsZi1NYW5hZ2VkIEFwYWNoZSBLYWZrYSBjbHVzdGVyIHRvIHNlbmQgcmVjb3Jkcy5cbiAgICpcbiAgICogQHNjaGVtYSBFdmVudFNvdXJjZU1hcHBpbmdTcGVjI3NlbGZNYW5hZ2VkRXZlbnRTb3VyY2VcbiAgICovXG4gIHJlYWRvbmx5IHNlbGZNYW5hZ2VkRXZlbnRTb3VyY2U/OiBFdmVudFNvdXJjZU1hcHBpbmdTcGVjU2VsZk1hbmFnZWRFdmVudFNvdXJjZTtcblxuICAvKipcbiAgICogQW4gYXJyYXkgb2YgYXV0aGVudGljYXRpb24gcHJvdG9jb2xzIG9yIFZQQyBjb21wb25lbnRzIHJlcXVpcmVkIHRvIHNlY3VyZSB5b3VyIGV2ZW50IHNvdXJjZS5cbiAgICpcbiAgICogQHNjaGVtYSBFdmVudFNvdXJjZU1hcHBpbmdTcGVjI3NvdXJjZUFjY2Vzc0NvbmZpZ3VyYXRpb25zXG4gICAqL1xuICByZWFkb25seSBzb3VyY2VBY2Nlc3NDb25maWd1cmF0aW9ucz86IEV2ZW50U291cmNlTWFwcGluZ1NwZWNTb3VyY2VBY2Nlc3NDb25maWd1cmF0aW9uc1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgcG9zaXRpb24gaW4gYSBzdHJlYW0gZnJvbSB3aGljaCB0byBzdGFydCByZWFkaW5nLiBSZXF1aXJlZCBmb3IgQW1hem9uIEtpbmVzaXMsIEFtYXpvbiBEeW5hbW9EQiwgYW5kIEFtYXpvbiBNU0sgU3RyZWFtcyBzb3VyY2VzLiBBVF9USU1FU1RBTVAgaXMgb25seSBzdXBwb3J0ZWQgZm9yIEFtYXpvbiBLaW5lc2lzIHN0cmVhbXMuXG4gICAqXG4gICAqIEBzY2hlbWEgRXZlbnRTb3VyY2VNYXBwaW5nU3BlYyNzdGFydGluZ1Bvc2l0aW9uXG4gICAqL1xuICByZWFkb25seSBzdGFydGluZ1Bvc2l0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaXRoIFN0YXJ0aW5nUG9zaXRpb24gc2V0IHRvIEFUX1RJTUVTVEFNUCwgdGhlIHRpbWUgZnJvbSB3aGljaCB0byBzdGFydCByZWFkaW5nLlxuICAgKlxuICAgKiBAc2NoZW1hIEV2ZW50U291cmNlTWFwcGluZ1NwZWMjc3RhcnRpbmdQb3NpdGlvblRpbWVzdGFtcFxuICAgKi9cbiAgcmVhZG9ubHkgc3RhcnRpbmdQb3NpdGlvblRpbWVzdGFtcD86IERhdGU7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBLYWZrYSB0b3BpYy5cbiAgICpcbiAgICogQHNjaGVtYSBFdmVudFNvdXJjZU1hcHBpbmdTcGVjI3RvcGljc1xuICAgKi9cbiAgcmVhZG9ubHkgdG9waWNzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIChTdHJlYW1zIG9ubHkpIFRoZSBkdXJhdGlvbiBpbiBzZWNvbmRzIG9mIGEgcHJvY2Vzc2luZyB3aW5kb3cuIFRoZSByYW5nZSBpcyBiZXR3ZWVuIDEgc2Vjb25kIHVwIHRvIDkwMCBzZWNvbmRzLlxuICAgKlxuICAgKiBAc2NoZW1hIEV2ZW50U291cmNlTWFwcGluZ1NwZWMjdHVtYmxpbmdXaW5kb3dJblNlY29uZHNcbiAgICovXG4gIHJlYWRvbmx5IHR1bWJsaW5nV2luZG93SW5TZWNvbmRzPzogbnVtYmVyO1xuXG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gb2JqZWN0IG9mIHR5cGUgJ0V2ZW50U291cmNlTWFwcGluZ1NwZWMnIHRvIEpTT04gcmVwcmVzZW50YXRpb24uXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5leHBvcnQgZnVuY3Rpb24gdG9Kc29uX0V2ZW50U291cmNlTWFwcGluZ1NwZWMob2JqOiBFdmVudFNvdXJjZU1hcHBpbmdTcGVjIHwgdW5kZWZpbmVkKTogUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZCB7XG4gIGlmIChvYmogPT09IHVuZGVmaW5lZCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAnYmF0Y2hTaXplJzogb2JqLmJhdGNoU2l6ZSxcbiAgICAnYmlzZWN0QmF0Y2hPbkZ1bmN0aW9uRXJyb3InOiBvYmouYmlzZWN0QmF0Y2hPbkZ1bmN0aW9uRXJyb3IsXG4gICAgJ2Rlc3RpbmF0aW9uQ29uZmlnJzogdG9Kc29uX0V2ZW50U291cmNlTWFwcGluZ1NwZWNEZXN0aW5hdGlvbkNvbmZpZyhvYmouZGVzdGluYXRpb25Db25maWcpLFxuICAgICdlbmFibGVkJzogb2JqLmVuYWJsZWQsXG4gICAgJ2V2ZW50U291cmNlQVJOJzogb2JqLmV2ZW50U291cmNlQXJuLFxuICAgICdmdW5jdGlvbk5hbWUnOiBvYmouZnVuY3Rpb25OYW1lLFxuICAgICdmdW5jdGlvblJlc3BvbnNlVHlwZXMnOiBvYmouZnVuY3Rpb25SZXNwb25zZVR5cGVzPy5tYXAoeSA9PiB5KSxcbiAgICAnbWF4aW11bUJhdGNoaW5nV2luZG93SW5TZWNvbmRzJzogb2JqLm1heGltdW1CYXRjaGluZ1dpbmRvd0luU2Vjb25kcyxcbiAgICAnbWF4aW11bVJlY29yZEFnZUluU2Vjb25kcyc6IG9iai5tYXhpbXVtUmVjb3JkQWdlSW5TZWNvbmRzLFxuICAgICdtYXhpbXVtUmV0cnlBdHRlbXB0cyc6IG9iai5tYXhpbXVtUmV0cnlBdHRlbXB0cyxcbiAgICAncGFyYWxsZWxpemF0aW9uRmFjdG9yJzogb2JqLnBhcmFsbGVsaXphdGlvbkZhY3RvcixcbiAgICAncXVldWVzJzogb2JqLnF1ZXVlcz8ubWFwKHkgPT4geSksXG4gICAgJ3NlbGZNYW5hZ2VkRXZlbnRTb3VyY2UnOiB0b0pzb25fRXZlbnRTb3VyY2VNYXBwaW5nU3BlY1NlbGZNYW5hZ2VkRXZlbnRTb3VyY2Uob2JqLnNlbGZNYW5hZ2VkRXZlbnRTb3VyY2UpLFxuICAgICdzb3VyY2VBY2Nlc3NDb25maWd1cmF0aW9ucyc6IG9iai5zb3VyY2VBY2Nlc3NDb25maWd1cmF0aW9ucz8ubWFwKHkgPT4gdG9Kc29uX0V2ZW50U291cmNlTWFwcGluZ1NwZWNTb3VyY2VBY2Nlc3NDb25maWd1cmF0aW9ucyh5KSksXG4gICAgJ3N0YXJ0aW5nUG9zaXRpb24nOiBvYmouc3RhcnRpbmdQb3NpdGlvbixcbiAgICAnc3RhcnRpbmdQb3NpdGlvblRpbWVzdGFtcCc6IG9iai5zdGFydGluZ1Bvc2l0aW9uVGltZXN0YW1wPy50b0lTT1N0cmluZygpLFxuICAgICd0b3BpY3MnOiBvYmoudG9waWNzPy5tYXAoeSA9PiB5KSxcbiAgICAndHVtYmxpbmdXaW5kb3dJblNlY29uZHMnOiBvYmoudHVtYmxpbmdXaW5kb3dJblNlY29uZHMsXG4gIH07XG4gIC8vIGZpbHRlciB1bmRlZmluZWQgdmFsdWVzXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhyZXN1bHQpLnJlZHVjZSgociwgaSkgPT4gKGlbMV0gPT09IHVuZGVmaW5lZCkgPyByIDogKHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLCB7fSk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbi8qKlxuICogKFN0cmVhbXMgb25seSkgQW4gQW1hem9uIFNRUyBxdWV1ZSBvciBBbWF6b24gU05TIHRvcGljIGRlc3RpbmF0aW9uIGZvciBkaXNjYXJkZWQgcmVjb3Jkcy5cbiAqXG4gKiBAc2NoZW1hIEV2ZW50U291cmNlTWFwcGluZ1NwZWNEZXN0aW5hdGlvbkNvbmZpZ1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50U291cmNlTWFwcGluZ1NwZWNEZXN0aW5hdGlvbkNvbmZpZyB7XG4gIC8qKlxuICAgKiBBIGRlc3RpbmF0aW9uIGZvciBldmVudHMgdGhhdCBmYWlsZWQgcHJvY2Vzc2luZy5cbiAgICpcbiAgICogQHNjaGVtYSBFdmVudFNvdXJjZU1hcHBpbmdTcGVjRGVzdGluYXRpb25Db25maWcjb25GYWlsdXJlXG4gICAqL1xuICByZWFkb25seSBvbkZhaWx1cmU/OiBFdmVudFNvdXJjZU1hcHBpbmdTcGVjRGVzdGluYXRpb25Db25maWdPbkZhaWx1cmU7XG5cbiAgLyoqXG4gICAqIEEgZGVzdGluYXRpb24gZm9yIGV2ZW50cyB0aGF0IHdlcmUgcHJvY2Vzc2VkIHN1Y2Nlc3NmdWxseS5cbiAgICpcbiAgICogQHNjaGVtYSBFdmVudFNvdXJjZU1hcHBpbmdTcGVjRGVzdGluYXRpb25Db25maWcjb25TdWNjZXNzXG4gICAqL1xuICByZWFkb25seSBvblN1Y2Nlc3M/OiBFdmVudFNvdXJjZU1hcHBpbmdTcGVjRGVzdGluYXRpb25Db25maWdPblN1Y2Nlc3M7XG5cbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBvYmplY3Qgb2YgdHlwZSAnRXZlbnRTb3VyY2VNYXBwaW5nU3BlY0Rlc3RpbmF0aW9uQ29uZmlnJyB0byBKU09OIHJlcHJlc2VudGF0aW9uLlxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbl9FdmVudFNvdXJjZU1hcHBpbmdTcGVjRGVzdGluYXRpb25Db25maWcob2JqOiBFdmVudFNvdXJjZU1hcHBpbmdTcGVjRGVzdGluYXRpb25Db25maWcgfCB1bmRlZmluZWQpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkIHtcbiAgaWYgKG9iaiA9PT0gdW5kZWZpbmVkKSB7IHJldHVybiB1bmRlZmluZWQ7IH1cbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgICdvbkZhaWx1cmUnOiB0b0pzb25fRXZlbnRTb3VyY2VNYXBwaW5nU3BlY0Rlc3RpbmF0aW9uQ29uZmlnT25GYWlsdXJlKG9iai5vbkZhaWx1cmUpLFxuICAgICdvblN1Y2Nlc3MnOiB0b0pzb25fRXZlbnRTb3VyY2VNYXBwaW5nU3BlY0Rlc3RpbmF0aW9uQ29uZmlnT25TdWNjZXNzKG9iai5vblN1Y2Nlc3MpLFxuICB9O1xuICAvLyBmaWx0ZXIgdW5kZWZpbmVkIHZhbHVlc1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmVzdWx0KS5yZWR1Y2UoKHIsIGkpID0+IChpWzFdID09PSB1bmRlZmluZWQpID8gciA6ICh7IC4uLnIsIFtpWzBdXTogaVsxXSB9KSwge30pO1xufVxuLyogZXNsaW50LWVuYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuXG4vKipcbiAqIFRoZSBTZWxmLU1hbmFnZWQgQXBhY2hlIEthZmthIGNsdXN0ZXIgdG8gc2VuZCByZWNvcmRzLlxuICpcbiAqIEBzY2hlbWEgRXZlbnRTb3VyY2VNYXBwaW5nU3BlY1NlbGZNYW5hZ2VkRXZlbnRTb3VyY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFdmVudFNvdXJjZU1hcHBpbmdTcGVjU2VsZk1hbmFnZWRFdmVudFNvdXJjZSB7XG4gIC8qKlxuICAgKiBAc2NoZW1hIEV2ZW50U291cmNlTWFwcGluZ1NwZWNTZWxmTWFuYWdlZEV2ZW50U291cmNlI2VuZHBvaW50c1xuICAgKi9cbiAgcmVhZG9ubHkgZW5kcG9pbnRzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmdbXSB9O1xuXG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gb2JqZWN0IG9mIHR5cGUgJ0V2ZW50U291cmNlTWFwcGluZ1NwZWNTZWxmTWFuYWdlZEV2ZW50U291cmNlJyB0byBKU09OIHJlcHJlc2VudGF0aW9uLlxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbl9FdmVudFNvdXJjZU1hcHBpbmdTcGVjU2VsZk1hbmFnZWRFdmVudFNvdXJjZShvYmo6IEV2ZW50U291cmNlTWFwcGluZ1NwZWNTZWxmTWFuYWdlZEV2ZW50U291cmNlIHwgdW5kZWZpbmVkKTogUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZCB7XG4gIGlmIChvYmogPT09IHVuZGVmaW5lZCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAnZW5kcG9pbnRzJzogKChvYmouZW5kcG9pbnRzKSA9PT0gdW5kZWZpbmVkKSA/IHVuZGVmaW5lZCA6IChPYmplY3QuZW50cmllcyhvYmouZW5kcG9pbnRzKS5yZWR1Y2UoKHIsIGkpID0+IChpWzFdID09PSB1bmRlZmluZWQpID8gciA6ICh7IC4uLnIsIFtpWzBdXTogaVsxXT8ubWFwKHkgPT4geSkgfSksIHt9KSksXG4gIH07XG4gIC8vIGZpbHRlciB1bmRlZmluZWQgdmFsdWVzXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhyZXN1bHQpLnJlZHVjZSgociwgaSkgPT4gKGlbMV0gPT09IHVuZGVmaW5lZCkgPyByIDogKHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLCB7fSk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbi8qKlxuICogVG8gc2VjdXJlIGFuZCBkZWZpbmUgYWNjZXNzIHRvIHlvdXIgZXZlbnQgc291cmNlLCB5b3UgY2FuIHNwZWNpZnkgdGhlIGF1dGhlbnRpY2F0aW9uIHByb3RvY29sLCBWUEMgY29tcG9uZW50cywgb3IgdmlydHVhbCBob3N0LlxuICpcbiAqIEBzY2hlbWEgRXZlbnRTb3VyY2VNYXBwaW5nU3BlY1NvdXJjZUFjY2Vzc0NvbmZpZ3VyYXRpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXZlbnRTb3VyY2VNYXBwaW5nU3BlY1NvdXJjZUFjY2Vzc0NvbmZpZ3VyYXRpb25zIHtcbiAgLyoqXG4gICAqIEBzY2hlbWEgRXZlbnRTb3VyY2VNYXBwaW5nU3BlY1NvdXJjZUFjY2Vzc0NvbmZpZ3VyYXRpb25zI3R5cGVfXG4gICAqL1xuICByZWFkb25seSB0eXBlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAc2NoZW1hIEV2ZW50U291cmNlTWFwcGluZ1NwZWNTb3VyY2VBY2Nlc3NDb25maWd1cmF0aW9ucyN1UklcbiAgICovXG4gIHJlYWRvbmx5IHVSaT86IHN0cmluZztcblxufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdFdmVudFNvdXJjZU1hcHBpbmdTcGVjU291cmNlQWNjZXNzQ29uZmlndXJhdGlvbnMnIHRvIEpTT04gcmVwcmVzZW50YXRpb24uXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5leHBvcnQgZnVuY3Rpb24gdG9Kc29uX0V2ZW50U291cmNlTWFwcGluZ1NwZWNTb3VyY2VBY2Nlc3NDb25maWd1cmF0aW9ucyhvYmo6IEV2ZW50U291cmNlTWFwcGluZ1NwZWNTb3VyY2VBY2Nlc3NDb25maWd1cmF0aW9ucyB8IHVuZGVmaW5lZCk6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfVxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgJ3R5cGVfJzogb2JqLnR5cGUsXG4gICAgJ3VSSSc6IG9iai51UmksXG4gIH07XG4gIC8vIGZpbHRlciB1bmRlZmluZWQgdmFsdWVzXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhyZXN1bHQpLnJlZHVjZSgociwgaSkgPT4gKGlbMV0gPT09IHVuZGVmaW5lZCkgPyByIDogKHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLCB7fSk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbi8qKlxuICogQSBkZXN0aW5hdGlvbiBmb3IgZXZlbnRzIHRoYXQgZmFpbGVkIHByb2Nlc3NpbmcuXG4gKlxuICogQHNjaGVtYSBFdmVudFNvdXJjZU1hcHBpbmdTcGVjRGVzdGluYXRpb25Db25maWdPbkZhaWx1cmVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFdmVudFNvdXJjZU1hcHBpbmdTcGVjRGVzdGluYXRpb25Db25maWdPbkZhaWx1cmUge1xuICAvKipcbiAgICogQHNjaGVtYSBFdmVudFNvdXJjZU1hcHBpbmdTcGVjRGVzdGluYXRpb25Db25maWdPbkZhaWx1cmUjZGVzdGluYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IGRlc3RpbmF0aW9uPzogc3RyaW5nO1xuXG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gb2JqZWN0IG9mIHR5cGUgJ0V2ZW50U291cmNlTWFwcGluZ1NwZWNEZXN0aW5hdGlvbkNvbmZpZ09uRmFpbHVyZScgdG8gSlNPTiByZXByZXNlbnRhdGlvbi5cbiAqL1xuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0pzb25fRXZlbnRTb3VyY2VNYXBwaW5nU3BlY0Rlc3RpbmF0aW9uQ29uZmlnT25GYWlsdXJlKG9iajogRXZlbnRTb3VyY2VNYXBwaW5nU3BlY0Rlc3RpbmF0aW9uQ29uZmlnT25GYWlsdXJlIHwgdW5kZWZpbmVkKTogUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZCB7XG4gIGlmIChvYmogPT09IHVuZGVmaW5lZCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAnZGVzdGluYXRpb24nOiBvYmouZGVzdGluYXRpb24sXG4gIH07XG4gIC8vIGZpbHRlciB1bmRlZmluZWQgdmFsdWVzXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhyZXN1bHQpLnJlZHVjZSgociwgaSkgPT4gKGlbMV0gPT09IHVuZGVmaW5lZCkgPyByIDogKHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLCB7fSk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbi8qKlxuICogQSBkZXN0aW5hdGlvbiBmb3IgZXZlbnRzIHRoYXQgd2VyZSBwcm9jZXNzZWQgc3VjY2Vzc2Z1bGx5LlxuICpcbiAqIEBzY2hlbWEgRXZlbnRTb3VyY2VNYXBwaW5nU3BlY0Rlc3RpbmF0aW9uQ29uZmlnT25TdWNjZXNzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXZlbnRTb3VyY2VNYXBwaW5nU3BlY0Rlc3RpbmF0aW9uQ29uZmlnT25TdWNjZXNzIHtcbiAgLyoqXG4gICAqIEBzY2hlbWEgRXZlbnRTb3VyY2VNYXBwaW5nU3BlY0Rlc3RpbmF0aW9uQ29uZmlnT25TdWNjZXNzI2Rlc3RpbmF0aW9uXG4gICAqL1xuICByZWFkb25seSBkZXN0aW5hdGlvbj86IHN0cmluZztcblxufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdFdmVudFNvdXJjZU1hcHBpbmdTcGVjRGVzdGluYXRpb25Db25maWdPblN1Y2Nlc3MnIHRvIEpTT04gcmVwcmVzZW50YXRpb24uXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5leHBvcnQgZnVuY3Rpb24gdG9Kc29uX0V2ZW50U291cmNlTWFwcGluZ1NwZWNEZXN0aW5hdGlvbkNvbmZpZ09uU3VjY2VzcyhvYmo6IEV2ZW50U291cmNlTWFwcGluZ1NwZWNEZXN0aW5hdGlvbkNvbmZpZ09uU3VjY2VzcyB8IHVuZGVmaW5lZCk6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfVxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgJ2Rlc3RpbmF0aW9uJzogb2JqLmRlc3RpbmF0aW9uLFxuICB9O1xuICAvLyBmaWx0ZXIgdW5kZWZpbmVkIHZhbHVlc1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmVzdWx0KS5yZWR1Y2UoKHIsIGkpID0+IChpWzFdID09PSB1bmRlZmluZWQpID8gciA6ICh7IC4uLnIsIFtpWzBdXTogaVsxXSB9KSwge30pO1xufVxuLyogZXNsaW50LWVuYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuXG4iXX0=
|