terraconstructs 0.0.22 → 0.0.24

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 (288) hide show
  1. package/.jsii +104400 -90067
  2. package/go.mod +2 -1
  3. package/go.sum +2 -0
  4. package/lib/aws/arn.js +1 -1
  5. package/lib/aws/aws-construct.js +1 -1
  6. package/lib/aws/aws-stack.js +1 -1
  7. package/lib/aws/aws-tags.js +2 -2
  8. package/lib/aws/cloudwatch/actions/ec2.js +1 -1
  9. package/lib/aws/cloudwatch/actions/lambda.js +1 -1
  10. package/lib/aws/cloudwatch/alarm-base.js +1 -1
  11. package/lib/aws/cloudwatch/alarm-rule.js +1 -1
  12. package/lib/aws/cloudwatch/alarm-status-widget.js +1 -1
  13. package/lib/aws/cloudwatch/alarm.js +4 -5
  14. package/lib/aws/cloudwatch/composite-alarm.js +1 -1
  15. package/lib/aws/cloudwatch/dashboard.js +1 -1
  16. package/lib/aws/cloudwatch/data-protection-policy.js +5 -5
  17. package/lib/aws/cloudwatch/graph.js +8 -8
  18. package/lib/aws/cloudwatch/layout.js +3 -3
  19. package/lib/aws/cloudwatch/log-destinations/kinesis.js +1 -1
  20. package/lib/aws/cloudwatch/log-destinations/lambda.js +1 -1
  21. package/lib/aws/cloudwatch/log-group.js +3 -3
  22. package/lib/aws/cloudwatch/log-query.js +1 -1
  23. package/lib/aws/cloudwatch/log-stream.js +1 -1
  24. package/lib/aws/cloudwatch/metric-filter.js +1 -1
  25. package/lib/aws/cloudwatch/metric.js +4 -4
  26. package/lib/aws/cloudwatch/pattern.js +3 -3
  27. package/lib/aws/cloudwatch/policy.js +1 -1
  28. package/lib/aws/cloudwatch/private/metric-util.js +1 -2
  29. package/lib/aws/cloudwatch/query-definition.js +2 -2
  30. package/lib/aws/cloudwatch/stats.js +1 -1
  31. package/lib/aws/cloudwatch/subscription-filter.js +1 -1
  32. package/lib/aws/cloudwatch/text.js +1 -1
  33. package/lib/aws/cloudwatch/variable.js +3 -3
  34. package/lib/aws/cloudwatch/widget.js +1 -1
  35. package/lib/aws/compute/activity.js +1 -1
  36. package/lib/aws/compute/alb/application-listener-action.js +1 -1
  37. package/lib/aws/compute/alb/application-listener-certificate.js +1 -1
  38. package/lib/aws/compute/alb/application-listener-rule.js +1 -1
  39. package/lib/aws/compute/alb/application-listener.js +2 -4
  40. package/lib/aws/compute/alb/application-load-balancer.js +2 -4
  41. package/lib/aws/compute/alb/application-target-group.js +1 -1
  42. package/lib/aws/compute/alb/conditions.js +1 -1
  43. package/lib/aws/compute/alb/trust-store-revocation.js +1 -1
  44. package/lib/aws/compute/alb/trust-store.js +1 -1
  45. package/lib/aws/compute/architecture.js +1 -1
  46. package/lib/aws/compute/aspects/require-imdsv2-aspect.js +2 -2
  47. package/lib/aws/compute/autoscaling-common/index.d.ts +3 -0
  48. package/lib/aws/compute/autoscaling-common/index.js +21 -0
  49. package/lib/aws/compute/autoscaling-common/interval-utils.d.ts +21 -0
  50. package/lib/aws/compute/autoscaling-common/interval-utils.js +213 -0
  51. package/lib/aws/compute/autoscaling-common/test-utils.d.ts +21 -0
  52. package/lib/aws/compute/autoscaling-common/test-utils.js +94 -0
  53. package/lib/aws/compute/autoscaling-common/types.d.ts +34 -0
  54. package/lib/aws/compute/autoscaling-common/types.js +3 -0
  55. package/lib/aws/compute/base-scalable-attribute.d.ts +74 -0
  56. package/lib/aws/compute/base-scalable-attribute.js +58 -0
  57. package/lib/aws/compute/bastion-host.js +1 -1
  58. package/lib/aws/compute/chain.js +1 -1
  59. package/lib/aws/compute/client-vpn-authorization-rule.js +1 -1
  60. package/lib/aws/compute/client-vpn-endpoint.js +2 -2
  61. package/lib/aws/compute/client-vpn-route.js +2 -2
  62. package/lib/aws/compute/condition.js +1 -1
  63. package/lib/aws/compute/connections.js +1 -1
  64. package/lib/aws/compute/ec2-util.js +1 -4
  65. package/lib/aws/compute/event-invoke-config.js +1 -1
  66. package/lib/aws/compute/event-source-filter.js +2 -2
  67. package/lib/aws/compute/event-source-mapping.js +3 -3
  68. package/lib/aws/compute/event-sources/s3-onfailure-destination.js +1 -1
  69. package/lib/aws/compute/event-sources/s3.js +1 -1
  70. package/lib/aws/compute/event-sources/sqs-dlq.js +1 -1
  71. package/lib/aws/compute/event-sources/sqs.js +1 -1
  72. package/lib/aws/compute/fields.js +4 -4
  73. package/lib/aws/compute/function-alias.js +1 -1
  74. package/lib/aws/compute/function-base.js +7 -8
  75. package/lib/aws/compute/function-destinations/event-bridge.js +3 -3
  76. package/lib/aws/compute/function-destinations/function.js +1 -1
  77. package/lib/aws/compute/function-destinations/sqs.js +1 -1
  78. package/lib/aws/compute/function-nodejs.js +1 -1
  79. package/lib/aws/compute/function-url.js +1 -1
  80. package/lib/aws/compute/function-vpc-config.generated.d.ts +3 -3
  81. package/lib/aws/compute/function-vpc-config.generated.js +1 -1
  82. package/lib/aws/compute/function.js +1 -1
  83. package/lib/aws/compute/index.d.ts +7 -0
  84. package/lib/aws/compute/index.js +11 -2
  85. package/lib/aws/compute/instance-types.js +1 -1
  86. package/lib/aws/compute/instance.js +1 -1
  87. package/lib/aws/compute/ip-addresses.js +2 -2
  88. package/lib/aws/compute/ipam.js +1 -1
  89. package/lib/aws/compute/key-pair.js +1 -1
  90. package/lib/aws/compute/launch-template.js +2 -2
  91. package/lib/aws/compute/lb-shared/base-listener.js +1 -1
  92. package/lib/aws/compute/lb-shared/base-load-balancer.js +2 -2
  93. package/lib/aws/compute/lb-shared/base-target-group.js +1 -1
  94. package/lib/aws/compute/lb-shared/lb-listener-config.generated.d.ts +31 -31
  95. package/lib/aws/compute/lb-shared/lb-listener-config.generated.js +1 -1
  96. package/lib/aws/compute/lb-shared/lb-target-group-attachment-config.generated.d.ts +4 -4
  97. package/lib/aws/compute/lb-shared/lb-target-group-attachment-config.generated.js +1 -1
  98. package/lib/aws/compute/lb-shared/listener-certificate.js +1 -1
  99. package/lib/aws/compute/lb-shared/load-balancer-targets.js +2 -2
  100. package/lib/aws/compute/lb-shared/util.js +1 -2
  101. package/lib/aws/compute/lb-targets/alb-target.js +3 -3
  102. package/lib/aws/compute/lb-targets/instance-target.js +2 -2
  103. package/lib/aws/compute/lb-targets/ip-target.js +1 -1
  104. package/lib/aws/compute/lb-targets/lambda-target.js +1 -1
  105. package/lib/aws/compute/load-balancer.js +3 -3
  106. package/lib/aws/compute/machine-image/amazon-linux-2022.js +2 -2
  107. package/lib/aws/compute/machine-image/amazon-linux-2023.js +2 -2
  108. package/lib/aws/compute/machine-image/amazon-linux2.js +2 -2
  109. package/lib/aws/compute/machine-image/common.js +1 -1
  110. package/lib/aws/compute/machine-image/machine-image.js +8 -8
  111. package/lib/aws/compute/machine-image/utils.js +6 -6
  112. package/lib/aws/compute/nat.js +5 -5
  113. package/lib/aws/compute/network-acl-types.js +2 -2
  114. package/lib/aws/compute/network-acl.js +3 -3
  115. package/lib/aws/compute/nlb/network-listener-action.js +1 -1
  116. package/lib/aws/compute/nlb/network-listener.js +2 -3
  117. package/lib/aws/compute/nlb/network-load-balancer.js +1 -1
  118. package/lib/aws/compute/nlb/network-target-group.js +1 -1
  119. package/lib/aws/compute/peer.js +1 -1
  120. package/lib/aws/compute/placement-group.js +1 -1
  121. package/lib/aws/compute/port.js +1 -1
  122. package/lib/aws/compute/prefix-list.js +1 -1
  123. package/lib/aws/compute/private/context-stub.js +2 -2
  124. package/lib/aws/compute/route.js +11 -11
  125. package/lib/aws/compute/scalable-target.d.ts +197 -0
  126. package/lib/aws/compute/scalable-target.js +168 -0
  127. package/lib/aws/compute/schedule.d.ts +81 -0
  128. package/lib/aws/compute/schedule.js +145 -0
  129. package/lib/aws/compute/security-group.js +4 -4
  130. package/lib/aws/compute/state-graph.js +1 -1
  131. package/lib/aws/compute/state-machine-fragment.js +1 -1
  132. package/lib/aws/compute/state-machine.js +4 -4
  133. package/lib/aws/compute/states/choice.js +1 -1
  134. package/lib/aws/compute/states/custom-state.js +1 -1
  135. package/lib/aws/compute/states/distributed-map/item-batcher.js +1 -1
  136. package/lib/aws/compute/states/distributed-map/item-reader.js +7 -7
  137. package/lib/aws/compute/states/distributed-map/result-writer.js +1 -1
  138. package/lib/aws/compute/states/distributed-map.js +4 -4
  139. package/lib/aws/compute/states/fail.js +1 -1
  140. package/lib/aws/compute/states/map-base.js +1 -1
  141. package/lib/aws/compute/states/map.js +1 -1
  142. package/lib/aws/compute/states/parallel.js +1 -1
  143. package/lib/aws/compute/states/pass.js +2 -2
  144. package/lib/aws/compute/states/state.js +1 -1
  145. package/lib/aws/compute/states/succeed.js +1 -1
  146. package/lib/aws/compute/states/task-base.js +2 -2
  147. package/lib/aws/compute/states/task.js +1 -1
  148. package/lib/aws/compute/states/wait.js +2 -2
  149. package/lib/aws/compute/step-scaling-action.d.ts +148 -0
  150. package/lib/aws/compute/step-scaling-action.js +109 -0
  151. package/lib/aws/compute/step-scaling-policy.d.ts +132 -0
  152. package/lib/aws/compute/step-scaling-policy.js +153 -0
  153. package/lib/aws/compute/subnet-v2.js +2 -2
  154. package/lib/aws/compute/subnet.js +1 -1
  155. package/lib/aws/compute/target-tracking-scaling-policy.d.ts +262 -0
  156. package/lib/aws/compute/target-tracking-scaling-policy.js +234 -0
  157. package/lib/aws/compute/task-credentials.js +1 -1
  158. package/lib/aws/compute/task-input.js +1 -1
  159. package/lib/aws/compute/tasks/aws-sdk/call-aws-service.js +1 -1
  160. package/lib/aws/compute/tasks/eventbridge/put-events.js +1 -1
  161. package/lib/aws/compute/tasks/http/invoke.js +1 -1
  162. package/lib/aws/compute/tasks/lambda/invoke.js +1 -1
  163. package/lib/aws/compute/tasks/sqs/send-message.js +1 -1
  164. package/lib/aws/compute/tasks/stepfunctions/invoke-activity.js +1 -1
  165. package/lib/aws/compute/tasks/stepfunctions/start-execution.js +1 -1
  166. package/lib/aws/compute/types.js +1 -1
  167. package/lib/aws/compute/user-data.js +3 -3
  168. package/lib/aws/compute/volume.js +2 -2
  169. package/lib/aws/compute/vpc-endpoint-service.js +1 -1
  170. package/lib/aws/compute/vpc-endpoint.js +6 -6
  171. package/lib/aws/compute/vpc-flow-logs.js +4 -4
  172. package/lib/aws/compute/vpc-v2-base.js +1 -1
  173. package/lib/aws/compute/vpc-v2.js +2 -2
  174. package/lib/aws/compute/vpc.d.ts +1 -1
  175. package/lib/aws/compute/vpc.js +10 -16
  176. package/lib/aws/compute/vpn.js +4 -7
  177. package/lib/aws/compute/windows-versions.js +1 -2
  178. package/lib/aws/edge/certificate.js +1 -1
  179. package/lib/aws/edge/distribution.js +4 -5
  180. package/lib/aws/edge/dns-alias-record-targets.js +3 -3
  181. package/lib/aws/edge/dns-record.js +13 -13
  182. package/lib/aws/edge/dns-zone.js +1 -1
  183. package/lib/aws/edge/function.js +2 -2
  184. package/lib/aws/edge/key-value-store.js +4 -4
  185. package/lib/aws/edge/origin.js +3 -3
  186. package/lib/aws/edge/response-headers-policy.js +1 -1
  187. package/lib/aws/encryption/alias.js +1 -1
  188. package/lib/aws/encryption/key.js +1 -1
  189. package/lib/aws/encryption/via-service-principal.js +1 -1
  190. package/lib/aws/iam/grant.js +3 -4
  191. package/lib/aws/iam/group.js +1 -1
  192. package/lib/aws/iam/instance-profile.js +1 -1
  193. package/lib/aws/iam/managed-policy.js +1 -1
  194. package/lib/aws/iam/oidc-provider.js +3 -3
  195. package/lib/aws/iam/policy-document-config.generated.d.ts +8 -8
  196. package/lib/aws/iam/policy-document-config.generated.js +1 -1
  197. package/lib/aws/iam/policy-document.js +1 -1
  198. package/lib/aws/iam/policy-statement-props.generated.d.ts +8 -8
  199. package/lib/aws/iam/policy-statement-props.generated.js +1 -1
  200. package/lib/aws/iam/policy-statement.js +1 -1
  201. package/lib/aws/iam/policy.js +1 -1
  202. package/lib/aws/iam/principals.js +20 -20
  203. package/lib/aws/iam/role.js +1 -1
  204. package/lib/aws/iam/saml-provider.js +2 -2
  205. package/lib/aws/iam/unknown-principal.js +1 -1
  206. package/lib/aws/iam/user.js +1 -1
  207. package/lib/aws/network/simple-ipv4-vpc.js +1 -1
  208. package/lib/aws/network/subnet-group.js +3 -3
  209. package/lib/aws/network/subnet.js +4 -4
  210. package/lib/aws/notify/archive.js +1 -1
  211. package/lib/aws/notify/connection.js +7 -7
  212. package/lib/aws/notify/event-bus.js +3 -3
  213. package/lib/aws/notify/event-pattern.js +1 -1
  214. package/lib/aws/notify/input.js +2 -2
  215. package/lib/aws/notify/kinesis-stream.js +1 -1
  216. package/lib/aws/notify/notification-rule.js +1 -1
  217. package/lib/aws/notify/policy.js +1 -1
  218. package/lib/aws/notify/queue-config.generated.d.ts +12 -12
  219. package/lib/aws/notify/queue-config.generated.js +1 -1
  220. package/lib/aws/notify/queue-policy.js +1 -1
  221. package/lib/aws/notify/queue.js +1 -1
  222. package/lib/aws/notify/resource-policy.js +1 -1
  223. package/lib/aws/notify/rule.js +1 -1
  224. package/lib/aws/notify/schedule.js +1 -1
  225. package/lib/aws/notify/subscription-filter.js +1 -1
  226. package/lib/aws/notify/subscription.js +4 -4
  227. package/lib/aws/notify/subscriptions/email.js +1 -1
  228. package/lib/aws/notify/subscriptions/lambda.js +1 -1
  229. package/lib/aws/notify/subscriptions/sms.js +1 -1
  230. package/lib/aws/notify/subscriptions/sqs.js +1 -1
  231. package/lib/aws/notify/subscriptions/url.js +1 -1
  232. package/lib/aws/notify/targets/event-bus.js +1 -1
  233. package/lib/aws/notify/targets/function.js +1 -1
  234. package/lib/aws/notify/targets/log-group.js +2 -2
  235. package/lib/aws/notify/targets/sqs.js +3 -3
  236. package/lib/aws/notify/targets/state-machine.js +1 -1
  237. package/lib/aws/notify/targets/util.js +2 -2
  238. package/lib/aws/notify/topic-base.js +1 -1
  239. package/lib/aws/notify/topic.js +1 -1
  240. package/lib/aws/provider-config.generated.d.ts +33 -33
  241. package/lib/aws/provider-config.generated.js +1 -1
  242. package/lib/aws/storage/billing.d.ts +62 -0
  243. package/lib/aws/storage/billing.js +49 -0
  244. package/lib/aws/storage/bucket-notifications.js +1 -1
  245. package/lib/aws/storage/bucket-policy.js +1 -1
  246. package/lib/aws/storage/bucket-source.js +3 -3
  247. package/lib/aws/storage/bucket.js +2 -2
  248. package/lib/aws/storage/capacity.d.ts +96 -0
  249. package/lib/aws/storage/capacity.js +103 -0
  250. package/lib/aws/storage/cors-config.generated.d.ts +3 -3
  251. package/lib/aws/storage/cors-config.generated.js +1 -1
  252. package/lib/aws/storage/cors-rule-config.generated.d.ts +5 -5
  253. package/lib/aws/storage/cors-rule-config.generated.js +1 -1
  254. package/lib/aws/storage/dynamodb-canned-metrics.generated.d.ts +493 -0
  255. package/lib/aws/storage/dynamodb-canned-metrics.generated.js +263 -0
  256. package/lib/aws/storage/dynamodb-perms.d.ts +8 -0
  257. package/lib/aws/storage/dynamodb-perms.js +45 -0
  258. package/lib/aws/storage/encryption.d.ts +54 -0
  259. package/lib/aws/storage/encryption.js +116 -0
  260. package/lib/aws/storage/index.d.ts +6 -0
  261. package/lib/aws/storage/index.js +10 -1
  262. package/lib/aws/storage/lifecycle-config.generated.d.ts +7 -7
  263. package/lib/aws/storage/lifecycle-config.generated.js +1 -1
  264. package/lib/aws/storage/notification-targets/function.js +1 -1
  265. package/lib/aws/storage/notification-targets/queue.js +1 -1
  266. package/lib/aws/storage/origin-access-identity.js +1 -1
  267. package/lib/aws/storage/parameter.js +2 -2
  268. package/lib/aws/storage/scalable-attribute-api.d.ts +36 -0
  269. package/lib/aws/storage/scalable-attribute-api.js +3 -0
  270. package/lib/aws/storage/scalable-table-attribute.d.ts +32 -0
  271. package/lib/aws/storage/scalable-table-attribute.js +48 -0
  272. package/lib/aws/storage/shared.d.ts +419 -0
  273. package/lib/aws/storage/shared.js +161 -0
  274. package/lib/aws/storage/table.d.ts +536 -0
  275. package/lib/aws/storage/table.js +1054 -0
  276. package/lib/aws/storage/website-config.generated.d.ts +5 -5
  277. package/lib/aws/storage/website-config.generated.js +1 -1
  278. package/lib/construct-base.js +2 -2
  279. package/lib/duration.js +1 -1
  280. package/lib/expiration.js +1 -1
  281. package/lib/index.d.ts +1 -0
  282. package/lib/index.js +2 -1
  283. package/lib/size.js +1 -1
  284. package/lib/stack-base.js +1 -1
  285. package/lib/terra-func.js +1 -1
  286. package/lib/time-zone.d.ts +724 -0
  287. package/lib/time-zone.js +737 -0
  288. package/package.json +14 -13
@@ -0,0 +1,419 @@
1
+ import { IAwsConstruct } from "../aws-construct";
2
+ import * as cloudwatch from "../cloudwatch";
3
+ import * as kms from "../encryption";
4
+ import * as iam from "../iam";
5
+ /**
6
+ * Supported DynamoDB table operations.
7
+ */
8
+ export declare enum Operation {
9
+ /** GetItem */
10
+ GET_ITEM = "GetItem",
11
+ /** BatchGetItem */
12
+ BATCH_GET_ITEM = "BatchGetItem",
13
+ /** Scan */
14
+ SCAN = "Scan",
15
+ /** Query */
16
+ QUERY = "Query",
17
+ /** GetRecords */
18
+ GET_RECORDS = "GetRecords",
19
+ /** PutItem */
20
+ PUT_ITEM = "PutItem",
21
+ /** DeleteItem */
22
+ DELETE_ITEM = "DeleteItem",
23
+ /** UpdateItem */
24
+ UPDATE_ITEM = "UpdateItem",
25
+ /** BatchWriteItem */
26
+ BATCH_WRITE_ITEM = "BatchWriteItem",
27
+ /** TransactWriteItems */
28
+ TRANSACT_WRITE_ITEMS = "TransactWriteItems",
29
+ /** TransactGetItems */
30
+ TRANSACT_GET_ITEMS = "TransactGetItems",
31
+ /** ExecuteTransaction */
32
+ EXECUTE_TRANSACTION = "ExecuteTransaction",
33
+ /** BatchExecuteStatement */
34
+ BATCH_EXECUTE_STATEMENT = "BatchExecuteStatement",
35
+ /** ExecuteStatement */
36
+ EXECUTE_STATEMENT = "ExecuteStatement"
37
+ }
38
+ /**
39
+ * Options for configuring a system errors metric that considers multiple operations.
40
+ */
41
+ export interface SystemErrorsForOperationsMetricOptions extends cloudwatch.MetricOptions {
42
+ /**
43
+ * The operations to apply the metric to.
44
+ *
45
+ * @default - All operations available by DynamoDB tables will be considered.
46
+ */
47
+ readonly operations?: Operation[];
48
+ }
49
+ /**
50
+ * Options for configuring metrics that considers multiple operations.
51
+ */
52
+ export interface OperationsMetricOptions extends SystemErrorsForOperationsMetricOptions {
53
+ }
54
+ /**
55
+ * Represents an attribute for describing the key schema for the table
56
+ * and indexes.
57
+ */
58
+ export interface Attribute {
59
+ /**
60
+ * The name of an attribute.
61
+ */
62
+ readonly name: string;
63
+ /**
64
+ * The data type of an attribute.
65
+ */
66
+ readonly type: AttributeType;
67
+ }
68
+ /**
69
+ * Reference to WarmThroughput for a DynamoDB table
70
+ */
71
+ export interface WarmThroughput {
72
+ /**
73
+ * Configures the number of read units per second a table will be able to handle instantly
74
+ * @default - no readUnitsPerSecond configured
75
+ */
76
+ readonly readUnitsPerSecond?: number;
77
+ /**
78
+ * Configures the number of write units per second a table will be able to handle instantly
79
+ * @default - no writeUnitsPerSecond configured
80
+ */
81
+ readonly writeUnitsPerSecond?: number;
82
+ }
83
+ /**
84
+ * Reference to PointInTimeRecovey Specification
85
+ * for continuous backups
86
+ */
87
+ export interface PointInTimeRecoverySpecification {
88
+ /**
89
+ * Indicates whether point in time recovery is enabled (true) or disabled (false) on the table.
90
+ * @default false
91
+ */
92
+ readonly pointInTimeRecoveryEnabled: boolean;
93
+ /**
94
+ * The number of preceding days for which continuous backups are taken and maintained.
95
+ * Your table data is only recoverable to any point-in-time from within the configured recovery period.
96
+ * If no value is provided, the value will default to 35.
97
+ *
98
+ * NOTE: Unused pending upgrade to v5.98.0 of the AWS Provider for Terraform.
99
+ *
100
+ * @default 35
101
+ */
102
+ readonly recoveryPeriodInDays?: number;
103
+ }
104
+ /**
105
+ * Data types for attributes within a table
106
+ *
107
+ * @see https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.NamingRulesDataTypes.html#HowItWorks.DataTypes
108
+ */
109
+ export declare enum AttributeType {
110
+ /**
111
+ * Up to 400KiB of binary data (which must be encoded as base64 before sending to DynamoDB)
112
+ */
113
+ BINARY = "B",
114
+ /**
115
+ * Numeric values made of up to 38 digits (positive, negative or zero)
116
+ */
117
+ NUMBER = "N",
118
+ /**
119
+ * Up to 400KiB of UTF-8 encoded text
120
+ */
121
+ STRING = "S"
122
+ }
123
+ /**
124
+ * DynamoDB's Read/Write capacity modes.
125
+ */
126
+ export declare enum BillingMode {
127
+ /**
128
+ * Pay only for what you use. You don't configure Read/Write capacity units.
129
+ */
130
+ PAY_PER_REQUEST = "PAY_PER_REQUEST",
131
+ /**
132
+ * Explicitly specified Read/Write capacity units.
133
+ */
134
+ PROVISIONED = "PROVISIONED"
135
+ }
136
+ /**
137
+ * The set of attributes that are projected into the index
138
+ *
139
+ * @see https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Projection.html
140
+ */
141
+ export declare enum ProjectionType {
142
+ /**
143
+ * Only the index and primary keys are projected into the index.
144
+ */
145
+ KEYS_ONLY = "KEYS_ONLY",
146
+ /**
147
+ * Only the specified table attributes are projected into the index. The list
148
+ * of projected attributes is in `nonKeyAttributes`.
149
+ */
150
+ INCLUDE = "INCLUDE",
151
+ /**
152
+ * All of the table attributes are projected into the index.
153
+ */
154
+ ALL = "ALL"
155
+ }
156
+ /**
157
+ * DynamoDB's table class.
158
+ *
159
+ * @see https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.TableClasses.html
160
+ */
161
+ export declare enum TableClass {
162
+ /**
163
+ * Default table class for DynamoDB.
164
+ */
165
+ STANDARD = "STANDARD",
166
+ /**
167
+ * Table class for DynamoDB that reduces storage costs compared to existing DynamoDB
168
+ * standard tables.
169
+ */
170
+ STANDARD_INFREQUENT_ACCESS = "STANDARD_INFREQUENT_ACCESS"
171
+ }
172
+ /**
173
+ * What kind of server-side encryption to apply to this table.
174
+ */
175
+ export declare enum TableEncryption {
176
+ /**
177
+ * Server-side KMS encryption with a master key owned by AWS.
178
+ */
179
+ DEFAULT = "AWS_OWNED",
180
+ /**
181
+ * Server-side KMS encryption with a customer master key managed by customer.
182
+ * If `encryptionKey` is specified, this key will be used, otherwise, one will be defined.
183
+ *
184
+ * > **NOTE**: if `encryptionKey` is not specified and the `Table` construct creates
185
+ * > a KMS key for you, the key will be created with default permissions. If you are using
186
+ * > CDKv2, these permissions will be sufficient to enable the key for use with DynamoDB tables.
187
+ * > If you are using CDKv1, make sure the feature flag `@aws-cdk/aws-kms:defaultKeyPolicies`
188
+ * > is set to `true` in your `cdk.json`.
189
+ */
190
+ CUSTOMER_MANAGED = "CUSTOMER_MANAGED",
191
+ /**
192
+ * Server-side KMS encryption with a master key managed by AWS.
193
+ */
194
+ AWS_MANAGED = "AWS_MANAGED"
195
+ }
196
+ /**
197
+ * When an item in the table is modified, StreamViewType determines what information
198
+ * is written to the stream for this table.
199
+ *
200
+ * @see https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_StreamSpecification.html
201
+ */
202
+ export declare enum StreamViewType {
203
+ /**
204
+ * The entire item, as it appears after it was modified, is written to the stream.
205
+ */
206
+ NEW_IMAGE = "NEW_IMAGE",
207
+ /**
208
+ * The entire item, as it appeared before it was modified, is written to the stream.
209
+ */
210
+ OLD_IMAGE = "OLD_IMAGE",
211
+ /**
212
+ * Both the new and the old item images of the item are written to the stream.
213
+ */
214
+ NEW_AND_OLD_IMAGES = "NEW_AND_OLD_IMAGES",
215
+ /**
216
+ * Only the key attributes of the modified item are written to the stream.
217
+ */
218
+ KEYS_ONLY = "KEYS_ONLY"
219
+ }
220
+ /**
221
+ * Properties for a secondary index
222
+ */
223
+ export interface SecondaryIndexProps {
224
+ /**
225
+ * The name of the secondary index.
226
+ */
227
+ readonly indexName: string;
228
+ /**
229
+ * The set of attributes that are projected into the secondary index.
230
+ * @default ALL
231
+ */
232
+ readonly projectionType?: ProjectionType;
233
+ /**
234
+ * The non-key attributes that are projected into the secondary index.
235
+ * @default - No additional attributes
236
+ */
237
+ readonly nonKeyAttributes?: string[];
238
+ }
239
+ /**
240
+ * Properties for a local secondary index
241
+ */
242
+ export interface LocalSecondaryIndexProps extends SecondaryIndexProps {
243
+ /**
244
+ * The attribute of a sort key for the local secondary index.
245
+ */
246
+ readonly sortKey: Attribute;
247
+ }
248
+ /**
249
+ * An interface that represents a DynamoDB Table - either created with the CDK, or an existing one.
250
+ */
251
+ export interface ITable extends IAwsConstruct {
252
+ /**
253
+ * Arn of the dynamodb table.
254
+ *
255
+ * @attribute
256
+ */
257
+ readonly tableArn: string;
258
+ /**
259
+ * Table name of the dynamodb table.
260
+ *
261
+ * @attribute
262
+ */
263
+ readonly tableName: string;
264
+ /**
265
+ * ARN of the table's stream, if there is one.
266
+ *
267
+ * @attribute
268
+ */
269
+ readonly tableStreamArn?: string;
270
+ /**
271
+ *
272
+ * Optional KMS encryption key associated with this table.
273
+ */
274
+ readonly encryptionKey?: kms.IKey;
275
+ /**
276
+ * Adds an IAM policy statement associated with this table to an IAM
277
+ * principal's policy.
278
+ *
279
+ * If `encryptionKey` is present, appropriate grants to the key needs to be added
280
+ * separately using the `table.encryptionKey.grant*` methods.
281
+ *
282
+ * @param grantee The principal (no-op if undefined)
283
+ * @param actions The set of actions to allow (i.e. "dynamodb:PutItem", "dynamodb:GetItem", ...)
284
+ */
285
+ grant(grantee: iam.IGrantable, ...actions: string[]): iam.Grant;
286
+ /**
287
+ * Adds an IAM policy statement associated with this table's stream to an
288
+ * IAM principal's policy.
289
+ *
290
+ * If `encryptionKey` is present, appropriate grants to the key needs to be added
291
+ * separately using the `table.encryptionKey.grant*` methods.
292
+ *
293
+ * @param grantee The principal (no-op if undefined)
294
+ * @param actions The set of actions to allow (i.e. "dynamodb:DescribeStream", "dynamodb:GetRecords", ...)
295
+ */
296
+ grantStream(grantee: iam.IGrantable, ...actions: string[]): iam.Grant;
297
+ /**
298
+ * Permits an IAM principal all data read operations from this table:
299
+ * BatchGetItem, GetRecords, GetShardIterator, Query, GetItem, Scan.
300
+ *
301
+ * Appropriate grants will also be added to the customer-managed KMS key
302
+ * if one was configured.
303
+ *
304
+ * @param grantee The principal to grant access to
305
+ */
306
+ grantReadData(grantee: iam.IGrantable): iam.Grant;
307
+ /**
308
+ * Permits an IAM Principal to list streams attached to current dynamodb table.
309
+ *
310
+ * @param grantee The principal (no-op if undefined)
311
+ */
312
+ grantTableListStreams(grantee: iam.IGrantable): iam.Grant;
313
+ /**
314
+ * Permits an IAM principal all stream data read operations for this
315
+ * table's stream:
316
+ * DescribeStream, GetRecords, GetShardIterator, ListStreams.
317
+ *
318
+ * Appropriate grants will also be added to the customer-managed KMS key
319
+ * if one was configured.
320
+ *
321
+ * @param grantee The principal to grant access to
322
+ */
323
+ grantStreamRead(grantee: iam.IGrantable): iam.Grant;
324
+ /**
325
+ * Permits an IAM principal all data write operations to this table:
326
+ * BatchWriteItem, PutItem, UpdateItem, DeleteItem.
327
+ *
328
+ * Appropriate grants will also be added to the customer-managed KMS key
329
+ * if one was configured.
330
+ *
331
+ * @param grantee The principal to grant access to
332
+ */
333
+ grantWriteData(grantee: iam.IGrantable): iam.Grant;
334
+ /**
335
+ * Permits an IAM principal to all data read/write operations to this table.
336
+ * BatchGetItem, GetRecords, GetShardIterator, Query, GetItem, Scan,
337
+ * BatchWriteItem, PutItem, UpdateItem, DeleteItem
338
+ *
339
+ * Appropriate grants will also be added to the customer-managed KMS key
340
+ * if one was configured.
341
+ *
342
+ * @param grantee The principal to grant access to
343
+ */
344
+ grantReadWriteData(grantee: iam.IGrantable): iam.Grant;
345
+ /**
346
+ * Permits all DynamoDB operations ("dynamodb:*") to an IAM principal.
347
+ *
348
+ * Appropriate grants will also be added to the customer-managed KMS key
349
+ * if one was configured.
350
+ *
351
+ * @param grantee The principal to grant access to
352
+ */
353
+ grantFullAccess(grantee: iam.IGrantable): iam.Grant;
354
+ /**
355
+ * Metric for the number of Errors executing all Lambdas
356
+ */
357
+ metric(metricName: string, props?: cloudwatch.MetricOptions): cloudwatch.Metric;
358
+ /**
359
+ * Metric for the consumed read capacity units
360
+ *
361
+ * @param props properties of a metric
362
+ */
363
+ metricConsumedReadCapacityUnits(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
364
+ /**
365
+ * Metric for the consumed write capacity units
366
+ *
367
+ * @param props properties of a metric
368
+ */
369
+ metricConsumedWriteCapacityUnits(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
370
+ /**
371
+ * Metric for the system errors
372
+ *
373
+ * @param props properties of a metric
374
+ *
375
+ * @deprecated use `metricSystemErrorsForOperations`
376
+ */
377
+ metricSystemErrors(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
378
+ /**
379
+ * Metric for the system errors this table
380
+ *
381
+ * @param props properties of a metric
382
+ *
383
+ */
384
+ metricSystemErrorsForOperations(props?: SystemErrorsForOperationsMetricOptions): cloudwatch.IMetric;
385
+ /**
386
+ * Metric for the user errors
387
+ *
388
+ * @param props properties of a metric
389
+ */
390
+ metricUserErrors(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
391
+ /**
392
+ * Metric for the conditional check failed requests
393
+ *
394
+ * @param props properties of a metric
395
+ */
396
+ metricConditionalCheckFailedRequests(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
397
+ /**
398
+ * Metric for throttled requests
399
+ *
400
+ * @param props properties of a metric
401
+ *
402
+ * @deprecated use `metricThrottledRequestsForOperations`
403
+ */
404
+ metricThrottledRequests(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
405
+ /**
406
+ * Metric for throttled requests
407
+ *
408
+ * @param props properties of a metric
409
+ *
410
+ */
411
+ metricThrottledRequestsForOperations(props?: OperationsMetricOptions): cloudwatch.IMetric;
412
+ /**
413
+ * Metric for the successful request latency
414
+ *
415
+ * @param props properties of a metric
416
+ *
417
+ */
418
+ metricSuccessfulRequestLatency(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
419
+ }
@@ -0,0 +1,161 @@
1
+ "use strict";
2
+ // https://github.com/aws/aws-cdk/blob/v2.186.0/packages/aws-cdk-lib/aws-dynamodb/lib/shared.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.StreamViewType = exports.TableEncryption = exports.TableClass = exports.ProjectionType = exports.BillingMode = exports.AttributeType = exports.Operation = void 0;
5
+ /**
6
+ * Supported DynamoDB table operations.
7
+ */
8
+ var Operation;
9
+ (function (Operation) {
10
+ /** GetItem */
11
+ Operation["GET_ITEM"] = "GetItem";
12
+ /** BatchGetItem */
13
+ Operation["BATCH_GET_ITEM"] = "BatchGetItem";
14
+ /** Scan */
15
+ Operation["SCAN"] = "Scan";
16
+ /** Query */
17
+ Operation["QUERY"] = "Query";
18
+ /** GetRecords */
19
+ Operation["GET_RECORDS"] = "GetRecords";
20
+ /** PutItem */
21
+ Operation["PUT_ITEM"] = "PutItem";
22
+ /** DeleteItem */
23
+ Operation["DELETE_ITEM"] = "DeleteItem";
24
+ /** UpdateItem */
25
+ Operation["UPDATE_ITEM"] = "UpdateItem";
26
+ /** BatchWriteItem */
27
+ Operation["BATCH_WRITE_ITEM"] = "BatchWriteItem";
28
+ /** TransactWriteItems */
29
+ Operation["TRANSACT_WRITE_ITEMS"] = "TransactWriteItems";
30
+ /** TransactGetItems */
31
+ Operation["TRANSACT_GET_ITEMS"] = "TransactGetItems";
32
+ /** ExecuteTransaction */
33
+ Operation["EXECUTE_TRANSACTION"] = "ExecuteTransaction";
34
+ /** BatchExecuteStatement */
35
+ Operation["BATCH_EXECUTE_STATEMENT"] = "BatchExecuteStatement";
36
+ /** ExecuteStatement */
37
+ Operation["EXECUTE_STATEMENT"] = "ExecuteStatement";
38
+ })(Operation || (exports.Operation = Operation = {}));
39
+ /**
40
+ * Data types for attributes within a table
41
+ *
42
+ * @see https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.NamingRulesDataTypes.html#HowItWorks.DataTypes
43
+ */
44
+ var AttributeType;
45
+ (function (AttributeType) {
46
+ /**
47
+ * Up to 400KiB of binary data (which must be encoded as base64 before sending to DynamoDB)
48
+ */
49
+ AttributeType["BINARY"] = "B";
50
+ /**
51
+ * Numeric values made of up to 38 digits (positive, negative or zero)
52
+ */
53
+ AttributeType["NUMBER"] = "N";
54
+ /**
55
+ * Up to 400KiB of UTF-8 encoded text
56
+ */
57
+ AttributeType["STRING"] = "S";
58
+ })(AttributeType || (exports.AttributeType = AttributeType = {}));
59
+ /**
60
+ * DynamoDB's Read/Write capacity modes.
61
+ */
62
+ var BillingMode;
63
+ (function (BillingMode) {
64
+ /**
65
+ * Pay only for what you use. You don't configure Read/Write capacity units.
66
+ */
67
+ BillingMode["PAY_PER_REQUEST"] = "PAY_PER_REQUEST";
68
+ /**
69
+ * Explicitly specified Read/Write capacity units.
70
+ */
71
+ BillingMode["PROVISIONED"] = "PROVISIONED";
72
+ })(BillingMode || (exports.BillingMode = BillingMode = {}));
73
+ /**
74
+ * The set of attributes that are projected into the index
75
+ *
76
+ * @see https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Projection.html
77
+ */
78
+ var ProjectionType;
79
+ (function (ProjectionType) {
80
+ /**
81
+ * Only the index and primary keys are projected into the index.
82
+ */
83
+ ProjectionType["KEYS_ONLY"] = "KEYS_ONLY";
84
+ /**
85
+ * Only the specified table attributes are projected into the index. The list
86
+ * of projected attributes is in `nonKeyAttributes`.
87
+ */
88
+ ProjectionType["INCLUDE"] = "INCLUDE";
89
+ /**
90
+ * All of the table attributes are projected into the index.
91
+ */
92
+ ProjectionType["ALL"] = "ALL";
93
+ })(ProjectionType || (exports.ProjectionType = ProjectionType = {}));
94
+ /**
95
+ * DynamoDB's table class.
96
+ *
97
+ * @see https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.TableClasses.html
98
+ */
99
+ var TableClass;
100
+ (function (TableClass) {
101
+ /**
102
+ * Default table class for DynamoDB.
103
+ */
104
+ TableClass["STANDARD"] = "STANDARD";
105
+ /**
106
+ * Table class for DynamoDB that reduces storage costs compared to existing DynamoDB
107
+ * standard tables.
108
+ */
109
+ TableClass["STANDARD_INFREQUENT_ACCESS"] = "STANDARD_INFREQUENT_ACCESS";
110
+ })(TableClass || (exports.TableClass = TableClass = {}));
111
+ /**
112
+ * What kind of server-side encryption to apply to this table.
113
+ */
114
+ var TableEncryption;
115
+ (function (TableEncryption) {
116
+ /**
117
+ * Server-side KMS encryption with a master key owned by AWS.
118
+ */
119
+ TableEncryption["DEFAULT"] = "AWS_OWNED";
120
+ /**
121
+ * Server-side KMS encryption with a customer master key managed by customer.
122
+ * If `encryptionKey` is specified, this key will be used, otherwise, one will be defined.
123
+ *
124
+ * > **NOTE**: if `encryptionKey` is not specified and the `Table` construct creates
125
+ * > a KMS key for you, the key will be created with default permissions. If you are using
126
+ * > CDKv2, these permissions will be sufficient to enable the key for use with DynamoDB tables.
127
+ * > If you are using CDKv1, make sure the feature flag `@aws-cdk/aws-kms:defaultKeyPolicies`
128
+ * > is set to `true` in your `cdk.json`.
129
+ */
130
+ TableEncryption["CUSTOMER_MANAGED"] = "CUSTOMER_MANAGED";
131
+ /**
132
+ * Server-side KMS encryption with a master key managed by AWS.
133
+ */
134
+ TableEncryption["AWS_MANAGED"] = "AWS_MANAGED";
135
+ })(TableEncryption || (exports.TableEncryption = TableEncryption = {}));
136
+ /**
137
+ * When an item in the table is modified, StreamViewType determines what information
138
+ * is written to the stream for this table.
139
+ *
140
+ * @see https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_StreamSpecification.html
141
+ */
142
+ var StreamViewType;
143
+ (function (StreamViewType) {
144
+ /**
145
+ * The entire item, as it appears after it was modified, is written to the stream.
146
+ */
147
+ StreamViewType["NEW_IMAGE"] = "NEW_IMAGE";
148
+ /**
149
+ * The entire item, as it appeared before it was modified, is written to the stream.
150
+ */
151
+ StreamViewType["OLD_IMAGE"] = "OLD_IMAGE";
152
+ /**
153
+ * Both the new and the old item images of the item are written to the stream.
154
+ */
155
+ StreamViewType["NEW_AND_OLD_IMAGES"] = "NEW_AND_OLD_IMAGES";
156
+ /**
157
+ * Only the key attributes of the modified item are written to the stream.
158
+ */
159
+ StreamViewType["KEYS_ONLY"] = "KEYS_ONLY";
160
+ })(StreamViewType || (exports.StreamViewType = StreamViewType = {}));
161
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F3cy9zdG9yYWdlL3NoYXJlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsK0ZBQStGOzs7QUFPL0Y7O0dBRUc7QUFDSCxJQUFZLFNBMENYO0FBMUNELFdBQVksU0FBUztJQUNuQixjQUFjO0lBQ2QsaUNBQW9CLENBQUE7SUFFcEIsbUJBQW1CO0lBQ25CLDRDQUErQixDQUFBO0lBRS9CLFdBQVc7SUFDWCwwQkFBYSxDQUFBO0lBRWIsWUFBWTtJQUNaLDRCQUFlLENBQUE7SUFFZixpQkFBaUI7SUFDakIsdUNBQTBCLENBQUE7SUFFMUIsY0FBYztJQUNkLGlDQUFvQixDQUFBO0lBRXBCLGlCQUFpQjtJQUNqQix1Q0FBMEIsQ0FBQTtJQUUxQixpQkFBaUI7SUFDakIsdUNBQTBCLENBQUE7SUFFMUIscUJBQXFCO0lBQ3JCLGdEQUFtQyxDQUFBO0lBRW5DLHlCQUF5QjtJQUN6Qix3REFBMkMsQ0FBQTtJQUUzQyx1QkFBdUI7SUFDdkIsb0RBQXVDLENBQUE7SUFFdkMseUJBQXlCO0lBQ3pCLHVEQUEwQyxDQUFBO0lBRTFDLDRCQUE0QjtJQUM1Qiw4REFBaUQsQ0FBQTtJQUVqRCx1QkFBdUI7SUFDdkIsbURBQXNDLENBQUE7QUFDeEMsQ0FBQyxFQTFDVyxTQUFTLHlCQUFULFNBQVMsUUEwQ3BCO0FBMkVEOzs7O0dBSUc7QUFDSCxJQUFZLGFBZVg7QUFmRCxXQUFZLGFBQWE7SUFDdkI7O09BRUc7SUFDSCw2QkFBWSxDQUFBO0lBRVo7O09BRUc7SUFDSCw2QkFBWSxDQUFBO0lBRVo7O09BRUc7SUFDSCw2QkFBWSxDQUFBO0FBQ2QsQ0FBQyxFQWZXLGFBQWEsNkJBQWIsYUFBYSxRQWV4QjtBQUVEOztHQUVHO0FBQ0gsSUFBWSxXQVVYO0FBVkQsV0FBWSxXQUFXO0lBQ3JCOztPQUVHO0lBQ0gsa0RBQW1DLENBQUE7SUFFbkM7O09BRUc7SUFDSCwwQ0FBMkIsQ0FBQTtBQUM3QixDQUFDLEVBVlcsV0FBVywyQkFBWCxXQUFXLFFBVXRCO0FBRUQ7Ozs7R0FJRztBQUNILElBQVksY0FnQlg7QUFoQkQsV0FBWSxjQUFjO0lBQ3hCOztPQUVHO0lBQ0gseUNBQXVCLENBQUE7SUFFdkI7OztPQUdHO0lBQ0gscUNBQW1CLENBQUE7SUFFbkI7O09BRUc7SUFDSCw2QkFBVyxDQUFBO0FBQ2IsQ0FBQyxFQWhCVyxjQUFjLDhCQUFkLGNBQWMsUUFnQnpCO0FBRUQ7Ozs7R0FJRztBQUNILElBQVksVUFXWDtBQVhELFdBQVksVUFBVTtJQUNwQjs7T0FFRztJQUNILG1DQUFxQixDQUFBO0lBRXJCOzs7T0FHRztJQUNILHVFQUF5RCxDQUFBO0FBQzNELENBQUMsRUFYVyxVQUFVLDBCQUFWLFVBQVUsUUFXckI7QUFFRDs7R0FFRztBQUNILElBQVksZUFzQlg7QUF0QkQsV0FBWSxlQUFlO0lBQ3pCOztPQUVHO0lBQ0gsd0NBQXFCLENBQUE7SUFFckI7Ozs7Ozs7OztPQVNHO0lBQ0gsd0RBQXFDLENBQUE7SUFFckM7O09BRUc7SUFDSCw4Q0FBMkIsQ0FBQTtBQUM3QixDQUFDLEVBdEJXLGVBQWUsK0JBQWYsZUFBZSxRQXNCMUI7QUFFRDs7Ozs7R0FLRztBQUNILElBQVksY0FvQlg7QUFwQkQsV0FBWSxjQUFjO0lBQ3hCOztPQUVHO0lBQ0gseUNBQXVCLENBQUE7SUFFdkI7O09BRUc7SUFDSCx5Q0FBdUIsQ0FBQTtJQUV2Qjs7T0FFRztJQUNILDJEQUF5QyxDQUFBO0lBRXpDOztPQUVHO0lBQ0gseUNBQXVCLENBQUE7QUFDekIsQ0FBQyxFQXBCVyxjQUFjLDhCQUFkLGNBQWMsUUFvQnpCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvdjIuMTg2LjAvcGFja2FnZXMvYXdzLWNkay1saWIvYXdzLWR5bmFtb2RiL2xpYi9zaGFyZWQudHNcblxuaW1wb3J0IHsgSUF3c0NvbnN0cnVjdCB9IGZyb20gXCIuLi9hd3MtY29uc3RydWN0XCI7XG5pbXBvcnQgKiBhcyBjbG91ZHdhdGNoIGZyb20gXCIuLi9jbG91ZHdhdGNoXCI7XG5pbXBvcnQgKiBhcyBrbXMgZnJvbSBcIi4uL2VuY3J5cHRpb25cIjtcbmltcG9ydCAqIGFzIGlhbSBmcm9tIFwiLi4vaWFtXCI7XG5cbi8qKlxuICogU3VwcG9ydGVkIER5bmFtb0RCIHRhYmxlIG9wZXJhdGlvbnMuXG4gKi9cbmV4cG9ydCBlbnVtIE9wZXJhdGlvbiB7XG4gIC8qKiBHZXRJdGVtICovXG4gIEdFVF9JVEVNID0gXCJHZXRJdGVtXCIsXG5cbiAgLyoqIEJhdGNoR2V0SXRlbSAqL1xuICBCQVRDSF9HRVRfSVRFTSA9IFwiQmF0Y2hHZXRJdGVtXCIsXG5cbiAgLyoqIFNjYW4gKi9cbiAgU0NBTiA9IFwiU2NhblwiLFxuXG4gIC8qKiBRdWVyeSAqL1xuICBRVUVSWSA9IFwiUXVlcnlcIixcblxuICAvKiogR2V0UmVjb3JkcyAqL1xuICBHRVRfUkVDT1JEUyA9IFwiR2V0UmVjb3Jkc1wiLFxuXG4gIC8qKiBQdXRJdGVtICovXG4gIFBVVF9JVEVNID0gXCJQdXRJdGVtXCIsXG5cbiAgLyoqIERlbGV0ZUl0ZW0gKi9cbiAgREVMRVRFX0lURU0gPSBcIkRlbGV0ZUl0ZW1cIixcblxuICAvKiogVXBkYXRlSXRlbSAqL1xuICBVUERBVEVfSVRFTSA9IFwiVXBkYXRlSXRlbVwiLFxuXG4gIC8qKiBCYXRjaFdyaXRlSXRlbSAqL1xuICBCQVRDSF9XUklURV9JVEVNID0gXCJCYXRjaFdyaXRlSXRlbVwiLFxuXG4gIC8qKiBUcmFuc2FjdFdyaXRlSXRlbXMgKi9cbiAgVFJBTlNBQ1RfV1JJVEVfSVRFTVMgPSBcIlRyYW5zYWN0V3JpdGVJdGVtc1wiLFxuXG4gIC8qKiBUcmFuc2FjdEdldEl0ZW1zICovXG4gIFRSQU5TQUNUX0dFVF9JVEVNUyA9IFwiVHJhbnNhY3RHZXRJdGVtc1wiLFxuXG4gIC8qKiBFeGVjdXRlVHJhbnNhY3Rpb24gKi9cbiAgRVhFQ1VURV9UUkFOU0FDVElPTiA9IFwiRXhlY3V0ZVRyYW5zYWN0aW9uXCIsXG5cbiAgLyoqIEJhdGNoRXhlY3V0ZVN0YXRlbWVudCAqL1xuICBCQVRDSF9FWEVDVVRFX1NUQVRFTUVOVCA9IFwiQmF0Y2hFeGVjdXRlU3RhdGVtZW50XCIsXG5cbiAgLyoqIEV4ZWN1dGVTdGF0ZW1lbnQgKi9cbiAgRVhFQ1VURV9TVEFURU1FTlQgPSBcIkV4ZWN1dGVTdGF0ZW1lbnRcIixcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciBjb25maWd1cmluZyBhIHN5c3RlbSBlcnJvcnMgbWV0cmljIHRoYXQgY29uc2lkZXJzIG11bHRpcGxlIG9wZXJhdGlvbnMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3lzdGVtRXJyb3JzRm9yT3BlcmF0aW9uc01ldHJpY09wdGlvbnNcbiAgZXh0ZW5kcyBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMge1xuICAvKipcbiAgICogVGhlIG9wZXJhdGlvbnMgdG8gYXBwbHkgdGhlIG1ldHJpYyB0by5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBBbGwgb3BlcmF0aW9ucyBhdmFpbGFibGUgYnkgRHluYW1vREIgdGFibGVzIHdpbGwgYmUgY29uc2lkZXJlZC5cbiAgICovXG4gIHJlYWRvbmx5IG9wZXJhdGlvbnM/OiBPcGVyYXRpb25bXTtcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciBjb25maWd1cmluZyBtZXRyaWNzIHRoYXQgY29uc2lkZXJzIG11bHRpcGxlIG9wZXJhdGlvbnMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT3BlcmF0aW9uc01ldHJpY09wdGlvbnNcbiAgZXh0ZW5kcyBTeXN0ZW1FcnJvcnNGb3JPcGVyYXRpb25zTWV0cmljT3B0aW9ucyB7fVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYW4gYXR0cmlidXRlIGZvciBkZXNjcmliaW5nIHRoZSBrZXkgc2NoZW1hIGZvciB0aGUgdGFibGVcbiAqIGFuZCBpbmRleGVzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF0dHJpYnV0ZSB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiBhbiBhdHRyaWJ1dGUuXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkYXRhIHR5cGUgb2YgYW4gYXR0cmlidXRlLlxuICAgKi9cbiAgcmVhZG9ubHkgdHlwZTogQXR0cmlidXRlVHlwZTtcbn1cblxuLyoqXG4gKiBSZWZlcmVuY2UgdG8gV2FybVRocm91Z2hwdXQgZm9yIGEgRHluYW1vREIgdGFibGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXYXJtVGhyb3VnaHB1dCB7XG4gIC8qKlxuICAgKiBDb25maWd1cmVzIHRoZSBudW1iZXIgb2YgcmVhZCB1bml0cyBwZXIgc2Vjb25kIGEgdGFibGUgd2lsbCBiZSBhYmxlIHRvIGhhbmRsZSBpbnN0YW50bHlcbiAgICogQGRlZmF1bHQgLSBubyByZWFkVW5pdHNQZXJTZWNvbmQgY29uZmlndXJlZFxuICAgKi9cbiAgcmVhZG9ubHkgcmVhZFVuaXRzUGVyU2Vjb25kPzogbnVtYmVyO1xuICAvKipcbiAgICogQ29uZmlndXJlcyB0aGUgbnVtYmVyIG9mIHdyaXRlIHVuaXRzIHBlciBzZWNvbmQgYSB0YWJsZSB3aWxsIGJlIGFibGUgdG8gaGFuZGxlIGluc3RhbnRseVxuICAgKiBAZGVmYXVsdCAtIG5vIHdyaXRlVW5pdHNQZXJTZWNvbmQgY29uZmlndXJlZFxuICAgKi9cbiAgcmVhZG9ubHkgd3JpdGVVbml0c1BlclNlY29uZD86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBSZWZlcmVuY2UgdG8gUG9pbnRJblRpbWVSZWNvdmV5IFNwZWNpZmljYXRpb25cbiAqIGZvciBjb250aW51b3VzIGJhY2t1cHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQb2ludEluVGltZVJlY292ZXJ5U3BlY2lmaWNhdGlvbiB7XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciBwb2ludCBpbiB0aW1lIHJlY292ZXJ5IGlzIGVuYWJsZWQgKHRydWUpIG9yIGRpc2FibGVkIChmYWxzZSkgb24gdGhlIHRhYmxlLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgcG9pbnRJblRpbWVSZWNvdmVyeUVuYWJsZWQ6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIHByZWNlZGluZyBkYXlzIGZvciB3aGljaCBjb250aW51b3VzIGJhY2t1cHMgYXJlIHRha2VuIGFuZCBtYWludGFpbmVkLlxuICAgKiBZb3VyIHRhYmxlIGRhdGEgaXMgb25seSByZWNvdmVyYWJsZSB0byBhbnkgcG9pbnQtaW4tdGltZSBmcm9tIHdpdGhpbiB0aGUgY29uZmlndXJlZCByZWNvdmVyeSBwZXJpb2QuXG4gICAqIElmIG5vIHZhbHVlIGlzIHByb3ZpZGVkLCB0aGUgdmFsdWUgd2lsbCBkZWZhdWx0IHRvIDM1LlxuICAgKlxuICAgKiBOT1RFOiBVbnVzZWQgcGVuZGluZyB1cGdyYWRlIHRvIHY1Ljk4LjAgb2YgdGhlIEFXUyBQcm92aWRlciBmb3IgVGVycmFmb3JtLlxuICAgKlxuICAgKiBAZGVmYXVsdCAzNVxuICAgKi9cbiAgcmVhZG9ubHkgcmVjb3ZlcnlQZXJpb2RJbkRheXM/OiBudW1iZXI7XG59XG5cbi8qKlxuICogRGF0YSB0eXBlcyBmb3IgYXR0cmlidXRlcyB3aXRoaW4gYSB0YWJsZVxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FtYXpvbmR5bmFtb2RiL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9Ib3dJdFdvcmtzLk5hbWluZ1J1bGVzRGF0YVR5cGVzLmh0bWwjSG93SXRXb3Jrcy5EYXRhVHlwZXNcbiAqL1xuZXhwb3J0IGVudW0gQXR0cmlidXRlVHlwZSB7XG4gIC8qKlxuICAgKiBVcCB0byA0MDBLaUIgb2YgYmluYXJ5IGRhdGEgKHdoaWNoIG11c3QgYmUgZW5jb2RlZCBhcyBiYXNlNjQgYmVmb3JlIHNlbmRpbmcgdG8gRHluYW1vREIpXG4gICAqL1xuICBCSU5BUlkgPSBcIkJcIixcblxuICAvKipcbiAgICogTnVtZXJpYyB2YWx1ZXMgbWFkZSBvZiB1cCB0byAzOCBkaWdpdHMgKHBvc2l0aXZlLCBuZWdhdGl2ZSBvciB6ZXJvKVxuICAgKi9cbiAgTlVNQkVSID0gXCJOXCIsXG5cbiAgLyoqXG4gICAqIFVwIHRvIDQwMEtpQiBvZiBVVEYtOCBlbmNvZGVkIHRleHRcbiAgICovXG4gIFNUUklORyA9IFwiU1wiLFxufVxuXG4vKipcbiAqIER5bmFtb0RCJ3MgUmVhZC9Xcml0ZSBjYXBhY2l0eSBtb2Rlcy5cbiAqL1xuZXhwb3J0IGVudW0gQmlsbGluZ01vZGUge1xuICAvKipcbiAgICogUGF5IG9ubHkgZm9yIHdoYXQgeW91IHVzZS4gWW91IGRvbid0IGNvbmZpZ3VyZSBSZWFkL1dyaXRlIGNhcGFjaXR5IHVuaXRzLlxuICAgKi9cbiAgUEFZX1BFUl9SRVFVRVNUID0gXCJQQVlfUEVSX1JFUVVFU1RcIixcblxuICAvKipcbiAgICogRXhwbGljaXRseSBzcGVjaWZpZWQgUmVhZC9Xcml0ZSBjYXBhY2l0eSB1bml0cy5cbiAgICovXG4gIFBST1ZJU0lPTkVEID0gXCJQUk9WSVNJT05FRFwiLFxufVxuXG4vKipcbiAqIFRoZSBzZXQgb2YgYXR0cmlidXRlcyB0aGF0IGFyZSBwcm9qZWN0ZWQgaW50byB0aGUgaW5kZXhcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hbWF6b25keW5hbW9kYi9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9Qcm9qZWN0aW9uLmh0bWxcbiAqL1xuZXhwb3J0IGVudW0gUHJvamVjdGlvblR5cGUge1xuICAvKipcbiAgICogT25seSB0aGUgaW5kZXggYW5kIHByaW1hcnkga2V5cyBhcmUgcHJvamVjdGVkIGludG8gdGhlIGluZGV4LlxuICAgKi9cbiAgS0VZU19PTkxZID0gXCJLRVlTX09OTFlcIixcblxuICAvKipcbiAgICogT25seSB0aGUgc3BlY2lmaWVkIHRhYmxlIGF0dHJpYnV0ZXMgYXJlIHByb2plY3RlZCBpbnRvIHRoZSBpbmRleC4gVGhlIGxpc3RcbiAgICogb2YgcHJvamVjdGVkIGF0dHJpYnV0ZXMgaXMgaW4gYG5vbktleUF0dHJpYnV0ZXNgLlxuICAgKi9cbiAgSU5DTFVERSA9IFwiSU5DTFVERVwiLFxuXG4gIC8qKlxuICAgKiBBbGwgb2YgdGhlIHRhYmxlIGF0dHJpYnV0ZXMgYXJlIHByb2plY3RlZCBpbnRvIHRoZSBpbmRleC5cbiAgICovXG4gIEFMTCA9IFwiQUxMXCIsXG59XG5cbi8qKlxuICogRHluYW1vREIncyB0YWJsZSBjbGFzcy5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hbWF6b25keW5hbW9kYi9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvSG93SXRXb3Jrcy5UYWJsZUNsYXNzZXMuaHRtbFxuICovXG5leHBvcnQgZW51bSBUYWJsZUNsYXNzIHtcbiAgLyoqXG4gICAqIERlZmF1bHQgdGFibGUgY2xhc3MgZm9yIER5bmFtb0RCLlxuICAgKi9cbiAgU1RBTkRBUkQgPSBcIlNUQU5EQVJEXCIsXG5cbiAgLyoqXG4gICAqIFRhYmxlIGNsYXNzIGZvciBEeW5hbW9EQiB0aGF0IHJlZHVjZXMgc3RvcmFnZSBjb3N0cyBjb21wYXJlZCB0byBleGlzdGluZyBEeW5hbW9EQlxuICAgKiBzdGFuZGFyZCB0YWJsZXMuXG4gICAqL1xuICBTVEFOREFSRF9JTkZSRVFVRU5UX0FDQ0VTUyA9IFwiU1RBTkRBUkRfSU5GUkVRVUVOVF9BQ0NFU1NcIixcbn1cblxuLyoqXG4gKiBXaGF0IGtpbmQgb2Ygc2VydmVyLXNpZGUgZW5jcnlwdGlvbiB0byBhcHBseSB0byB0aGlzIHRhYmxlLlxuICovXG5leHBvcnQgZW51bSBUYWJsZUVuY3J5cHRpb24ge1xuICAvKipcbiAgICogU2VydmVyLXNpZGUgS01TIGVuY3J5cHRpb24gd2l0aCBhIG1hc3RlciBrZXkgb3duZWQgYnkgQVdTLlxuICAgKi9cbiAgREVGQVVMVCA9IFwiQVdTX09XTkVEXCIsXG5cbiAgLyoqXG4gICAqIFNlcnZlci1zaWRlIEtNUyBlbmNyeXB0aW9uIHdpdGggYSBjdXN0b21lciBtYXN0ZXIga2V5IG1hbmFnZWQgYnkgY3VzdG9tZXIuXG4gICAqIElmIGBlbmNyeXB0aW9uS2V5YCBpcyBzcGVjaWZpZWQsIHRoaXMga2V5IHdpbGwgYmUgdXNlZCwgb3RoZXJ3aXNlLCBvbmUgd2lsbCBiZSBkZWZpbmVkLlxuICAgKlxuICAgKiA+ICoqTk9URSoqOiBpZiBgZW5jcnlwdGlvbktleWAgaXMgbm90IHNwZWNpZmllZCBhbmQgdGhlIGBUYWJsZWAgY29uc3RydWN0IGNyZWF0ZXNcbiAgICogPiBhIEtNUyBrZXkgZm9yIHlvdSwgdGhlIGtleSB3aWxsIGJlIGNyZWF0ZWQgd2l0aCBkZWZhdWx0IHBlcm1pc3Npb25zLiBJZiB5b3UgYXJlIHVzaW5nXG4gICAqID4gQ0RLdjIsIHRoZXNlIHBlcm1pc3Npb25zIHdpbGwgYmUgc3VmZmljaWVudCB0byBlbmFibGUgdGhlIGtleSBmb3IgdXNlIHdpdGggRHluYW1vREIgdGFibGVzLlxuICAgKiA+IElmIHlvdSBhcmUgdXNpbmcgQ0RLdjEsIG1ha2Ugc3VyZSB0aGUgZmVhdHVyZSBmbGFnIGBAYXdzLWNkay9hd3Mta21zOmRlZmF1bHRLZXlQb2xpY2llc2BcbiAgICogPiBpcyBzZXQgdG8gYHRydWVgIGluIHlvdXIgYGNkay5qc29uYC5cbiAgICovXG4gIENVU1RPTUVSX01BTkFHRUQgPSBcIkNVU1RPTUVSX01BTkFHRURcIixcblxuICAvKipcbiAgICogU2VydmVyLXNpZGUgS01TIGVuY3J5cHRpb24gd2l0aCBhIG1hc3RlciBrZXkgbWFuYWdlZCBieSBBV1MuXG4gICAqL1xuICBBV1NfTUFOQUdFRCA9IFwiQVdTX01BTkFHRURcIixcbn1cblxuLyoqXG4gKiBXaGVuIGFuIGl0ZW0gaW4gdGhlIHRhYmxlIGlzIG1vZGlmaWVkLCBTdHJlYW1WaWV3VHlwZSBkZXRlcm1pbmVzIHdoYXQgaW5mb3JtYXRpb25cbiAqIGlzIHdyaXR0ZW4gdG8gdGhlIHN0cmVhbSBmb3IgdGhpcyB0YWJsZS5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hbWF6b25keW5hbW9kYi9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9TdHJlYW1TcGVjaWZpY2F0aW9uLmh0bWxcbiAqL1xuZXhwb3J0IGVudW0gU3RyZWFtVmlld1R5cGUge1xuICAvKipcbiAgICogVGhlIGVudGlyZSBpdGVtLCBhcyBpdCBhcHBlYXJzIGFmdGVyIGl0IHdhcyBtb2RpZmllZCwgaXMgd3JpdHRlbiB0byB0aGUgc3RyZWFtLlxuICAgKi9cbiAgTkVXX0lNQUdFID0gXCJORVdfSU1BR0VcIixcblxuICAvKipcbiAgICogVGhlIGVudGlyZSBpdGVtLCBhcyBpdCBhcHBlYXJlZCBiZWZvcmUgaXQgd2FzIG1vZGlmaWVkLCBpcyB3cml0dGVuIHRvIHRoZSBzdHJlYW0uXG4gICAqL1xuICBPTERfSU1BR0UgPSBcIk9MRF9JTUFHRVwiLFxuXG4gIC8qKlxuICAgKiBCb3RoIHRoZSBuZXcgYW5kIHRoZSBvbGQgaXRlbSBpbWFnZXMgb2YgdGhlIGl0ZW0gYXJlIHdyaXR0ZW4gdG8gdGhlIHN0cmVhbS5cbiAgICovXG4gIE5FV19BTkRfT0xEX0lNQUdFUyA9IFwiTkVXX0FORF9PTERfSU1BR0VTXCIsXG5cbiAgLyoqXG4gICAqIE9ubHkgdGhlIGtleSBhdHRyaWJ1dGVzIG9mIHRoZSBtb2RpZmllZCBpdGVtIGFyZSB3cml0dGVuIHRvIHRoZSBzdHJlYW0uXG4gICAqL1xuICBLRVlTX09OTFkgPSBcIktFWVNfT05MWVwiLFxufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGEgc2Vjb25kYXJ5IGluZGV4XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2Vjb25kYXJ5SW5kZXhQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgc2Vjb25kYXJ5IGluZGV4LlxuICAgKi9cbiAgcmVhZG9ubHkgaW5kZXhOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBzZXQgb2YgYXR0cmlidXRlcyB0aGF0IGFyZSBwcm9qZWN0ZWQgaW50byB0aGUgc2Vjb25kYXJ5IGluZGV4LlxuICAgKiBAZGVmYXVsdCBBTExcbiAgICovXG4gIHJlYWRvbmx5IHByb2plY3Rpb25UeXBlPzogUHJvamVjdGlvblR5cGU7XG5cbiAgLyoqXG4gICAqIFRoZSBub24ta2V5IGF0dHJpYnV0ZXMgdGhhdCBhcmUgcHJvamVjdGVkIGludG8gdGhlIHNlY29uZGFyeSBpbmRleC5cbiAgICogQGRlZmF1bHQgLSBObyBhZGRpdGlvbmFsIGF0dHJpYnV0ZXNcbiAgICovXG4gIHJlYWRvbmx5IG5vbktleUF0dHJpYnV0ZXM/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBhIGxvY2FsIHNlY29uZGFyeSBpbmRleFxuICovXG5leHBvcnQgaW50ZXJmYWNlIExvY2FsU2Vjb25kYXJ5SW5kZXhQcm9wcyBleHRlbmRzIFNlY29uZGFyeUluZGV4UHJvcHMge1xuICAvKipcbiAgICogVGhlIGF0dHJpYnV0ZSBvZiBhIHNvcnQga2V5IGZvciB0aGUgbG9jYWwgc2Vjb25kYXJ5IGluZGV4LlxuICAgKi9cbiAgcmVhZG9ubHkgc29ydEtleTogQXR0cmlidXRlO1xufVxuXG4vKipcbiAqIEFuIGludGVyZmFjZSB0aGF0IHJlcHJlc2VudHMgYSBEeW5hbW9EQiBUYWJsZSAtIGVpdGhlciBjcmVhdGVkIHdpdGggdGhlIENESywgb3IgYW4gZXhpc3Rpbmcgb25lLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElUYWJsZSBleHRlbmRzIElBd3NDb25zdHJ1Y3Qge1xuICAvKipcbiAgICogQXJuIG9mIHRoZSBkeW5hbW9kYiB0YWJsZS5cbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgdGFibGVBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGFibGUgbmFtZSBvZiB0aGUgZHluYW1vZGIgdGFibGUuXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHRhYmxlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBUk4gb2YgdGhlIHRhYmxlJ3Mgc3RyZWFtLCBpZiB0aGVyZSBpcyBvbmUuXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHRhYmxlU3RyZWFtQXJuPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKlxuICAgKiBPcHRpb25hbCBLTVMgZW5jcnlwdGlvbiBrZXkgYXNzb2NpYXRlZCB3aXRoIHRoaXMgdGFibGUuXG4gICAqL1xuICByZWFkb25seSBlbmNyeXB0aW9uS2V5Pzoga21zLklLZXk7XG5cbiAgLyoqXG4gICAqIEFkZHMgYW4gSUFNIHBvbGljeSBzdGF0ZW1lbnQgYXNzb2NpYXRlZCB3aXRoIHRoaXMgdGFibGUgdG8gYW4gSUFNXG4gICAqIHByaW5jaXBhbCdzIHBvbGljeS5cbiAgICpcbiAgICogSWYgYGVuY3J5cHRpb25LZXlgIGlzIHByZXNlbnQsIGFwcHJvcHJpYXRlIGdyYW50cyB0byB0aGUga2V5IG5lZWRzIHRvIGJlIGFkZGVkXG4gICAqIHNlcGFyYXRlbHkgdXNpbmcgdGhlIGB0YWJsZS5lbmNyeXB0aW9uS2V5LmdyYW50KmAgbWV0aG9kcy5cbiAgICpcbiAgICogQHBhcmFtIGdyYW50ZWUgVGhlIHByaW5jaXBhbCAobm8tb3AgaWYgdW5kZWZpbmVkKVxuICAgKiBAcGFyYW0gYWN0aW9ucyBUaGUgc2V0IG9mIGFjdGlvbnMgdG8gYWxsb3cgKGkuZS4gXCJkeW5hbW9kYjpQdXRJdGVtXCIsIFwiZHluYW1vZGI6R2V0SXRlbVwiLCAuLi4pXG4gICAqL1xuICBncmFudChncmFudGVlOiBpYW0uSUdyYW50YWJsZSwgLi4uYWN0aW9uczogc3RyaW5nW10pOiBpYW0uR3JhbnQ7XG5cbiAgLyoqXG4gICAqIEFkZHMgYW4gSUFNIHBvbGljeSBzdGF0ZW1lbnQgYXNzb2NpYXRlZCB3aXRoIHRoaXMgdGFibGUncyBzdHJlYW0gdG8gYW5cbiAgICogSUFNIHByaW5jaXBhbCdzIHBvbGljeS5cbiAgICpcbiAgICogSWYgYGVuY3J5cHRpb25LZXlgIGlzIHByZXNlbnQsIGFwcHJvcHJpYXRlIGdyYW50cyB0byB0aGUga2V5IG5lZWRzIHRvIGJlIGFkZGVkXG4gICAqIHNlcGFyYXRlbHkgdXNpbmcgdGhlIGB0YWJsZS5lbmNyeXB0aW9uS2V5LmdyYW50KmAgbWV0aG9kcy5cbiAgICpcbiAgICogQHBhcmFtIGdyYW50ZWUgVGhlIHByaW5jaXBhbCAobm8tb3AgaWYgdW5kZWZpbmVkKVxuICAgKiBAcGFyYW0gYWN0aW9ucyBUaGUgc2V0IG9mIGFjdGlvbnMgdG8gYWxsb3cgKGkuZS4gXCJkeW5hbW9kYjpEZXNjcmliZVN0cmVhbVwiLCBcImR5bmFtb2RiOkdldFJlY29yZHNcIiwgLi4uKVxuICAgKi9cbiAgZ3JhbnRTdHJlYW0oZ3JhbnRlZTogaWFtLklHcmFudGFibGUsIC4uLmFjdGlvbnM6IHN0cmluZ1tdKTogaWFtLkdyYW50O1xuXG4gIC8qKlxuICAgKiBQZXJtaXRzIGFuIElBTSBwcmluY2lwYWwgYWxsIGRhdGEgcmVhZCBvcGVyYXRpb25zIGZyb20gdGhpcyB0YWJsZTpcbiAgICogQmF0Y2hHZXRJdGVtLCBHZXRSZWNvcmRzLCBHZXRTaGFyZEl0ZXJhdG9yLCBRdWVyeSwgR2V0SXRlbSwgU2Nhbi5cbiAgICpcbiAgICogQXBwcm9wcmlhdGUgZ3JhbnRzIHdpbGwgYWxzbyBiZSBhZGRlZCB0byB0aGUgY3VzdG9tZXItbWFuYWdlZCBLTVMga2V5XG4gICAqIGlmIG9uZSB3YXMgY29uZmlndXJlZC5cbiAgICpcbiAgICogQHBhcmFtIGdyYW50ZWUgVGhlIHByaW5jaXBhbCB0byBncmFudCBhY2Nlc3MgdG9cbiAgICovXG4gIGdyYW50UmVhZERhdGEoZ3JhbnRlZTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQ7XG5cbiAgLyoqXG4gICAqIFBlcm1pdHMgYW4gSUFNIFByaW5jaXBhbCB0byBsaXN0IHN0cmVhbXMgYXR0YWNoZWQgdG8gY3VycmVudCBkeW5hbW9kYiB0YWJsZS5cbiAgICpcbiAgICogQHBhcmFtIGdyYW50ZWUgVGhlIHByaW5jaXBhbCAobm8tb3AgaWYgdW5kZWZpbmVkKVxuICAgKi9cbiAgZ3JhbnRUYWJsZUxpc3RTdHJlYW1zKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50O1xuXG4gIC8qKlxuICAgKiBQZXJtaXRzIGFuIElBTSBwcmluY2lwYWwgYWxsIHN0cmVhbSBkYXRhIHJlYWQgb3BlcmF0aW9ucyBmb3IgdGhpc1xuICAgKiB0YWJsZSdzIHN0cmVhbTpcbiAgICogRGVzY3JpYmVTdHJlYW0sIEdldFJlY29yZHMsIEdldFNoYXJkSXRlcmF0b3IsIExpc3RTdHJlYW1zLlxuICAgKlxuICAgKiBBcHByb3ByaWF0ZSBncmFudHMgd2lsbCBhbHNvIGJlIGFkZGVkIHRvIHRoZSBjdXN0b21lci1tYW5hZ2VkIEtNUyBrZXlcbiAgICogaWYgb25lIHdhcyBjb25maWd1cmVkLlxuICAgKlxuICAgKiBAcGFyYW0gZ3JhbnRlZSBUaGUgcHJpbmNpcGFsIHRvIGdyYW50IGFjY2VzcyB0b1xuICAgKi9cbiAgZ3JhbnRTdHJlYW1SZWFkKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50O1xuXG4gIC8qKlxuICAgKiBQZXJtaXRzIGFuIElBTSBwcmluY2lwYWwgYWxsIGRhdGEgd3JpdGUgb3BlcmF0aW9ucyB0byB0aGlzIHRhYmxlOlxuICAgKiBCYXRjaFdyaXRlSXRlbSwgUHV0SXRlbSwgVXBkYXRlSXRlbSwgRGVsZXRlSXRlbS5cbiAgICpcbiAgICogQXBwcm9wcmlhdGUgZ3JhbnRzIHdpbGwgYWxzbyBiZSBhZGRlZCB0byB0aGUgY3VzdG9tZXItbWFuYWdlZCBLTVMga2V5XG4gICAqIGlmIG9uZSB3YXMgY29uZmlndXJlZC5cbiAgICpcbiAgICogQHBhcmFtIGdyYW50ZWUgVGhlIHByaW5jaXBhbCB0byBncmFudCBhY2Nlc3MgdG9cbiAgICovXG4gIGdyYW50V3JpdGVEYXRhKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50O1xuXG4gIC8qKlxuICAgKiBQZXJtaXRzIGFuIElBTSBwcmluY2lwYWwgdG8gYWxsIGRhdGEgcmVhZC93cml0ZSBvcGVyYXRpb25zIHRvIHRoaXMgdGFibGUuXG4gICAqIEJhdGNoR2V0SXRlbSwgR2V0UmVjb3JkcywgR2V0U2hhcmRJdGVyYXRvciwgUXVlcnksIEdldEl0ZW0sIFNjYW4sXG4gICAqIEJhdGNoV3JpdGVJdGVtLCBQdXRJdGVtLCBVcGRhdGVJdGVtLCBEZWxldGVJdGVtXG4gICAqXG4gICAqIEFwcHJvcHJpYXRlIGdyYW50cyB3aWxsIGFsc28gYmUgYWRkZWQgdG8gdGhlIGN1c3RvbWVyLW1hbmFnZWQgS01TIGtleVxuICAgKiBpZiBvbmUgd2FzIGNvbmZpZ3VyZWQuXG4gICAqXG4gICAqIEBwYXJhbSBncmFudGVlIFRoZSBwcmluY2lwYWwgdG8gZ3JhbnQgYWNjZXNzIHRvXG4gICAqL1xuICBncmFudFJlYWRXcml0ZURhdGEoZ3JhbnRlZTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQ7XG5cbiAgLyoqXG4gICAqIFBlcm1pdHMgYWxsIER5bmFtb0RCIG9wZXJhdGlvbnMgKFwiZHluYW1vZGI6KlwiKSB0byBhbiBJQU0gcHJpbmNpcGFsLlxuICAgKlxuICAgKiBBcHByb3ByaWF0ZSBncmFudHMgd2lsbCBhbHNvIGJlIGFkZGVkIHRvIHRoZSBjdXN0b21lci1tYW5hZ2VkIEtNUyBrZXlcbiAgICogaWYgb25lIHdhcyBjb25maWd1cmVkLlxuICAgKlxuICAgKiBAcGFyYW0gZ3JhbnRlZSBUaGUgcHJpbmNpcGFsIHRvIGdyYW50IGFjY2VzcyB0b1xuICAgKi9cbiAgZ3JhbnRGdWxsQWNjZXNzKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50O1xuXG4gIC8qKlxuICAgKiBNZXRyaWMgZm9yIHRoZSBudW1iZXIgb2YgRXJyb3JzIGV4ZWN1dGluZyBhbGwgTGFtYmRhc1xuICAgKi9cbiAgbWV0cmljKFxuICAgIG1ldHJpY05hbWU6IHN0cmluZyxcbiAgICBwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucyxcbiAgKTogY2xvdWR3YXRjaC5NZXRyaWM7XG5cbiAgLyoqXG4gICAqIE1ldHJpYyBmb3IgdGhlIGNvbnN1bWVkIHJlYWQgY2FwYWNpdHkgdW5pdHNcbiAgICpcbiAgICogQHBhcmFtIHByb3BzIHByb3BlcnRpZXMgb2YgYSBtZXRyaWNcbiAgICovXG4gIG1ldHJpY0NvbnN1bWVkUmVhZENhcGFjaXR5VW5pdHMoXG4gICAgcHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMsXG4gICk6IGNsb3Vkd2F0Y2guTWV0cmljO1xuXG4gIC8qKlxuICAgKiBNZXRyaWMgZm9yIHRoZSBjb25zdW1lZCB3cml0ZSBjYXBhY2l0eSB1bml0c1xuICAgKlxuICAgKiBAcGFyYW0gcHJvcHMgcHJvcGVydGllcyBvZiBhIG1ldHJpY1xuICAgKi9cbiAgbWV0cmljQ29uc3VtZWRXcml0ZUNhcGFjaXR5VW5pdHMoXG4gICAgcHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMsXG4gICk6IGNsb3Vkd2F0Y2guTWV0cmljO1xuXG4gIC8qKlxuICAgKiBNZXRyaWMgZm9yIHRoZSBzeXN0ZW0gZXJyb3JzXG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyBwcm9wZXJ0aWVzIG9mIGEgbWV0cmljXG4gICAqXG4gICAqIEBkZXByZWNhdGVkIHVzZSBgbWV0cmljU3lzdGVtRXJyb3JzRm9yT3BlcmF0aW9uc2BcbiAgICovXG4gIG1ldHJpY1N5c3RlbUVycm9ycyhwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucyk6IGNsb3Vkd2F0Y2guTWV0cmljO1xuXG4gIC8qKlxuICAgKiBNZXRyaWMgZm9yIHRoZSBzeXN0ZW0gZXJyb3JzIHRoaXMgdGFibGVcbiAgICpcbiAgICogQHBhcmFtIHByb3BzIHByb3BlcnRpZXMgb2YgYSBtZXRyaWNcbiAgICpcbiAgICovXG4gIG1ldHJpY1N5c3RlbUVycm9yc0Zvck9wZXJhdGlvbnMoXG4gICAgcHJvcHM/OiBTeXN0ZW1FcnJvcnNGb3JPcGVyYXRpb25zTWV0cmljT3B0aW9ucyxcbiAgKTogY2xvdWR3YXRjaC5JTWV0cmljO1xuXG4gIC8qKlxuICAgKiBNZXRyaWMgZm9yIHRoZSB1c2VyIGVycm9yc1xuICAgKlxuICAgKiBAcGFyYW0gcHJvcHMgcHJvcGVydGllcyBvZiBhIG1ldHJpY1xuICAgKi9cbiAgbWV0cmljVXNlckVycm9ycyhwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucyk6IGNsb3Vkd2F0Y2guTWV0cmljO1xuXG4gIC8qKlxuICAgKiBNZXRyaWMgZm9yIHRoZSBjb25kaXRpb25hbCBjaGVjayBmYWlsZWQgcmVxdWVzdHNcbiAgICpcbiAgICogQHBhcmFtIHByb3BzIHByb3BlcnRpZXMgb2YgYSBtZXRyaWNcbiAgICovXG4gIG1ldHJpY0NvbmRpdGlvbmFsQ2hlY2tGYWlsZWRSZXF1ZXN0cyhcbiAgICBwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucyxcbiAgKTogY2xvdWR3YXRjaC5NZXRyaWM7XG5cbiAgLyoqXG4gICAqIE1ldHJpYyBmb3IgdGhyb3R0bGVkIHJlcXVlc3RzXG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyBwcm9wZXJ0aWVzIG9mIGEgbWV0cmljXG4gICAqXG4gICAqIEBkZXByZWNhdGVkIHVzZSBgbWV0cmljVGhyb3R0bGVkUmVxdWVzdHNGb3JPcGVyYXRpb25zYFxuICAgKi9cbiAgbWV0cmljVGhyb3R0bGVkUmVxdWVzdHMocHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYztcblxuICAvKipcbiAgICogTWV0cmljIGZvciB0aHJvdHRsZWQgcmVxdWVzdHNcbiAgICpcbiAgICogQHBhcmFtIHByb3BzIHByb3BlcnRpZXMgb2YgYSBtZXRyaWNcbiAgICpcbiAgICovXG4gIG1ldHJpY1Rocm90dGxlZFJlcXVlc3RzRm9yT3BlcmF0aW9ucyhcbiAgICBwcm9wcz86IE9wZXJhdGlvbnNNZXRyaWNPcHRpb25zLFxuICApOiBjbG91ZHdhdGNoLklNZXRyaWM7XG5cbiAgLyoqXG4gICAqIE1ldHJpYyBmb3IgdGhlIHN1Y2Nlc3NmdWwgcmVxdWVzdCBsYXRlbmN5XG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyBwcm9wZXJ0aWVzIG9mIGEgbWV0cmljXG4gICAqXG4gICAqL1xuICBtZXRyaWNTdWNjZXNzZnVsUmVxdWVzdExhdGVuY3koXG4gICAgcHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMsXG4gICk6IGNsb3Vkd2F0Y2guTWV0cmljO1xufVxuIl19