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.
- package/.jsii +104400 -90067
- package/go.mod +2 -1
- package/go.sum +2 -0
- package/lib/aws/arn.js +1 -1
- package/lib/aws/aws-construct.js +1 -1
- package/lib/aws/aws-stack.js +1 -1
- package/lib/aws/aws-tags.js +2 -2
- package/lib/aws/cloudwatch/actions/ec2.js +1 -1
- package/lib/aws/cloudwatch/actions/lambda.js +1 -1
- package/lib/aws/cloudwatch/alarm-base.js +1 -1
- package/lib/aws/cloudwatch/alarm-rule.js +1 -1
- package/lib/aws/cloudwatch/alarm-status-widget.js +1 -1
- package/lib/aws/cloudwatch/alarm.js +4 -5
- package/lib/aws/cloudwatch/composite-alarm.js +1 -1
- package/lib/aws/cloudwatch/dashboard.js +1 -1
- package/lib/aws/cloudwatch/data-protection-policy.js +5 -5
- package/lib/aws/cloudwatch/graph.js +8 -8
- package/lib/aws/cloudwatch/layout.js +3 -3
- package/lib/aws/cloudwatch/log-destinations/kinesis.js +1 -1
- package/lib/aws/cloudwatch/log-destinations/lambda.js +1 -1
- package/lib/aws/cloudwatch/log-group.js +3 -3
- package/lib/aws/cloudwatch/log-query.js +1 -1
- package/lib/aws/cloudwatch/log-stream.js +1 -1
- package/lib/aws/cloudwatch/metric-filter.js +1 -1
- package/lib/aws/cloudwatch/metric.js +4 -4
- package/lib/aws/cloudwatch/pattern.js +3 -3
- package/lib/aws/cloudwatch/policy.js +1 -1
- package/lib/aws/cloudwatch/private/metric-util.js +1 -2
- package/lib/aws/cloudwatch/query-definition.js +2 -2
- package/lib/aws/cloudwatch/stats.js +1 -1
- package/lib/aws/cloudwatch/subscription-filter.js +1 -1
- package/lib/aws/cloudwatch/text.js +1 -1
- package/lib/aws/cloudwatch/variable.js +3 -3
- package/lib/aws/cloudwatch/widget.js +1 -1
- package/lib/aws/compute/activity.js +1 -1
- package/lib/aws/compute/alb/application-listener-action.js +1 -1
- package/lib/aws/compute/alb/application-listener-certificate.js +1 -1
- package/lib/aws/compute/alb/application-listener-rule.js +1 -1
- package/lib/aws/compute/alb/application-listener.js +2 -4
- package/lib/aws/compute/alb/application-load-balancer.js +2 -4
- package/lib/aws/compute/alb/application-target-group.js +1 -1
- package/lib/aws/compute/alb/conditions.js +1 -1
- package/lib/aws/compute/alb/trust-store-revocation.js +1 -1
- package/lib/aws/compute/alb/trust-store.js +1 -1
- package/lib/aws/compute/architecture.js +1 -1
- package/lib/aws/compute/aspects/require-imdsv2-aspect.js +2 -2
- package/lib/aws/compute/autoscaling-common/index.d.ts +3 -0
- package/lib/aws/compute/autoscaling-common/index.js +21 -0
- package/lib/aws/compute/autoscaling-common/interval-utils.d.ts +21 -0
- package/lib/aws/compute/autoscaling-common/interval-utils.js +213 -0
- package/lib/aws/compute/autoscaling-common/test-utils.d.ts +21 -0
- package/lib/aws/compute/autoscaling-common/test-utils.js +94 -0
- package/lib/aws/compute/autoscaling-common/types.d.ts +34 -0
- package/lib/aws/compute/autoscaling-common/types.js +3 -0
- package/lib/aws/compute/base-scalable-attribute.d.ts +74 -0
- package/lib/aws/compute/base-scalable-attribute.js +58 -0
- package/lib/aws/compute/bastion-host.js +1 -1
- package/lib/aws/compute/chain.js +1 -1
- package/lib/aws/compute/client-vpn-authorization-rule.js +1 -1
- package/lib/aws/compute/client-vpn-endpoint.js +2 -2
- package/lib/aws/compute/client-vpn-route.js +2 -2
- package/lib/aws/compute/condition.js +1 -1
- package/lib/aws/compute/connections.js +1 -1
- package/lib/aws/compute/ec2-util.js +1 -4
- package/lib/aws/compute/event-invoke-config.js +1 -1
- package/lib/aws/compute/event-source-filter.js +2 -2
- package/lib/aws/compute/event-source-mapping.js +3 -3
- package/lib/aws/compute/event-sources/s3-onfailure-destination.js +1 -1
- package/lib/aws/compute/event-sources/s3.js +1 -1
- package/lib/aws/compute/event-sources/sqs-dlq.js +1 -1
- package/lib/aws/compute/event-sources/sqs.js +1 -1
- package/lib/aws/compute/fields.js +4 -4
- package/lib/aws/compute/function-alias.js +1 -1
- package/lib/aws/compute/function-base.js +7 -8
- package/lib/aws/compute/function-destinations/event-bridge.js +3 -3
- package/lib/aws/compute/function-destinations/function.js +1 -1
- package/lib/aws/compute/function-destinations/sqs.js +1 -1
- package/lib/aws/compute/function-nodejs.js +1 -1
- package/lib/aws/compute/function-url.js +1 -1
- package/lib/aws/compute/function-vpc-config.generated.d.ts +3 -3
- package/lib/aws/compute/function-vpc-config.generated.js +1 -1
- package/lib/aws/compute/function.js +1 -1
- package/lib/aws/compute/index.d.ts +7 -0
- package/lib/aws/compute/index.js +11 -2
- package/lib/aws/compute/instance-types.js +1 -1
- package/lib/aws/compute/instance.js +1 -1
- package/lib/aws/compute/ip-addresses.js +2 -2
- package/lib/aws/compute/ipam.js +1 -1
- package/lib/aws/compute/key-pair.js +1 -1
- package/lib/aws/compute/launch-template.js +2 -2
- package/lib/aws/compute/lb-shared/base-listener.js +1 -1
- package/lib/aws/compute/lb-shared/base-load-balancer.js +2 -2
- package/lib/aws/compute/lb-shared/base-target-group.js +1 -1
- package/lib/aws/compute/lb-shared/lb-listener-config.generated.d.ts +31 -31
- package/lib/aws/compute/lb-shared/lb-listener-config.generated.js +1 -1
- package/lib/aws/compute/lb-shared/lb-target-group-attachment-config.generated.d.ts +4 -4
- package/lib/aws/compute/lb-shared/lb-target-group-attachment-config.generated.js +1 -1
- package/lib/aws/compute/lb-shared/listener-certificate.js +1 -1
- package/lib/aws/compute/lb-shared/load-balancer-targets.js +2 -2
- package/lib/aws/compute/lb-shared/util.js +1 -2
- package/lib/aws/compute/lb-targets/alb-target.js +3 -3
- package/lib/aws/compute/lb-targets/instance-target.js +2 -2
- package/lib/aws/compute/lb-targets/ip-target.js +1 -1
- package/lib/aws/compute/lb-targets/lambda-target.js +1 -1
- package/lib/aws/compute/load-balancer.js +3 -3
- package/lib/aws/compute/machine-image/amazon-linux-2022.js +2 -2
- package/lib/aws/compute/machine-image/amazon-linux-2023.js +2 -2
- package/lib/aws/compute/machine-image/amazon-linux2.js +2 -2
- package/lib/aws/compute/machine-image/common.js +1 -1
- package/lib/aws/compute/machine-image/machine-image.js +8 -8
- package/lib/aws/compute/machine-image/utils.js +6 -6
- package/lib/aws/compute/nat.js +5 -5
- package/lib/aws/compute/network-acl-types.js +2 -2
- package/lib/aws/compute/network-acl.js +3 -3
- package/lib/aws/compute/nlb/network-listener-action.js +1 -1
- package/lib/aws/compute/nlb/network-listener.js +2 -3
- package/lib/aws/compute/nlb/network-load-balancer.js +1 -1
- package/lib/aws/compute/nlb/network-target-group.js +1 -1
- package/lib/aws/compute/peer.js +1 -1
- package/lib/aws/compute/placement-group.js +1 -1
- package/lib/aws/compute/port.js +1 -1
- package/lib/aws/compute/prefix-list.js +1 -1
- package/lib/aws/compute/private/context-stub.js +2 -2
- package/lib/aws/compute/route.js +11 -11
- package/lib/aws/compute/scalable-target.d.ts +197 -0
- package/lib/aws/compute/scalable-target.js +168 -0
- package/lib/aws/compute/schedule.d.ts +81 -0
- package/lib/aws/compute/schedule.js +145 -0
- package/lib/aws/compute/security-group.js +4 -4
- package/lib/aws/compute/state-graph.js +1 -1
- package/lib/aws/compute/state-machine-fragment.js +1 -1
- package/lib/aws/compute/state-machine.js +4 -4
- package/lib/aws/compute/states/choice.js +1 -1
- package/lib/aws/compute/states/custom-state.js +1 -1
- package/lib/aws/compute/states/distributed-map/item-batcher.js +1 -1
- package/lib/aws/compute/states/distributed-map/item-reader.js +7 -7
- package/lib/aws/compute/states/distributed-map/result-writer.js +1 -1
- package/lib/aws/compute/states/distributed-map.js +4 -4
- package/lib/aws/compute/states/fail.js +1 -1
- package/lib/aws/compute/states/map-base.js +1 -1
- package/lib/aws/compute/states/map.js +1 -1
- package/lib/aws/compute/states/parallel.js +1 -1
- package/lib/aws/compute/states/pass.js +2 -2
- package/lib/aws/compute/states/state.js +1 -1
- package/lib/aws/compute/states/succeed.js +1 -1
- package/lib/aws/compute/states/task-base.js +2 -2
- package/lib/aws/compute/states/task.js +1 -1
- package/lib/aws/compute/states/wait.js +2 -2
- package/lib/aws/compute/step-scaling-action.d.ts +148 -0
- package/lib/aws/compute/step-scaling-action.js +109 -0
- package/lib/aws/compute/step-scaling-policy.d.ts +132 -0
- package/lib/aws/compute/step-scaling-policy.js +153 -0
- package/lib/aws/compute/subnet-v2.js +2 -2
- package/lib/aws/compute/subnet.js +1 -1
- package/lib/aws/compute/target-tracking-scaling-policy.d.ts +262 -0
- package/lib/aws/compute/target-tracking-scaling-policy.js +234 -0
- package/lib/aws/compute/task-credentials.js +1 -1
- package/lib/aws/compute/task-input.js +1 -1
- package/lib/aws/compute/tasks/aws-sdk/call-aws-service.js +1 -1
- package/lib/aws/compute/tasks/eventbridge/put-events.js +1 -1
- package/lib/aws/compute/tasks/http/invoke.js +1 -1
- package/lib/aws/compute/tasks/lambda/invoke.js +1 -1
- package/lib/aws/compute/tasks/sqs/send-message.js +1 -1
- package/lib/aws/compute/tasks/stepfunctions/invoke-activity.js +1 -1
- package/lib/aws/compute/tasks/stepfunctions/start-execution.js +1 -1
- package/lib/aws/compute/types.js +1 -1
- package/lib/aws/compute/user-data.js +3 -3
- package/lib/aws/compute/volume.js +2 -2
- package/lib/aws/compute/vpc-endpoint-service.js +1 -1
- package/lib/aws/compute/vpc-endpoint.js +6 -6
- package/lib/aws/compute/vpc-flow-logs.js +4 -4
- package/lib/aws/compute/vpc-v2-base.js +1 -1
- package/lib/aws/compute/vpc-v2.js +2 -2
- package/lib/aws/compute/vpc.d.ts +1 -1
- package/lib/aws/compute/vpc.js +10 -16
- package/lib/aws/compute/vpn.js +4 -7
- package/lib/aws/compute/windows-versions.js +1 -2
- package/lib/aws/edge/certificate.js +1 -1
- package/lib/aws/edge/distribution.js +4 -5
- package/lib/aws/edge/dns-alias-record-targets.js +3 -3
- package/lib/aws/edge/dns-record.js +13 -13
- package/lib/aws/edge/dns-zone.js +1 -1
- package/lib/aws/edge/function.js +2 -2
- package/lib/aws/edge/key-value-store.js +4 -4
- package/lib/aws/edge/origin.js +3 -3
- package/lib/aws/edge/response-headers-policy.js +1 -1
- package/lib/aws/encryption/alias.js +1 -1
- package/lib/aws/encryption/key.js +1 -1
- package/lib/aws/encryption/via-service-principal.js +1 -1
- package/lib/aws/iam/grant.js +3 -4
- package/lib/aws/iam/group.js +1 -1
- package/lib/aws/iam/instance-profile.js +1 -1
- package/lib/aws/iam/managed-policy.js +1 -1
- package/lib/aws/iam/oidc-provider.js +3 -3
- package/lib/aws/iam/policy-document-config.generated.d.ts +8 -8
- package/lib/aws/iam/policy-document-config.generated.js +1 -1
- package/lib/aws/iam/policy-document.js +1 -1
- package/lib/aws/iam/policy-statement-props.generated.d.ts +8 -8
- package/lib/aws/iam/policy-statement-props.generated.js +1 -1
- package/lib/aws/iam/policy-statement.js +1 -1
- package/lib/aws/iam/policy.js +1 -1
- package/lib/aws/iam/principals.js +20 -20
- package/lib/aws/iam/role.js +1 -1
- package/lib/aws/iam/saml-provider.js +2 -2
- package/lib/aws/iam/unknown-principal.js +1 -1
- package/lib/aws/iam/user.js +1 -1
- package/lib/aws/network/simple-ipv4-vpc.js +1 -1
- package/lib/aws/network/subnet-group.js +3 -3
- package/lib/aws/network/subnet.js +4 -4
- package/lib/aws/notify/archive.js +1 -1
- package/lib/aws/notify/connection.js +7 -7
- package/lib/aws/notify/event-bus.js +3 -3
- package/lib/aws/notify/event-pattern.js +1 -1
- package/lib/aws/notify/input.js +2 -2
- package/lib/aws/notify/kinesis-stream.js +1 -1
- package/lib/aws/notify/notification-rule.js +1 -1
- package/lib/aws/notify/policy.js +1 -1
- package/lib/aws/notify/queue-config.generated.d.ts +12 -12
- package/lib/aws/notify/queue-config.generated.js +1 -1
- package/lib/aws/notify/queue-policy.js +1 -1
- package/lib/aws/notify/queue.js +1 -1
- package/lib/aws/notify/resource-policy.js +1 -1
- package/lib/aws/notify/rule.js +1 -1
- package/lib/aws/notify/schedule.js +1 -1
- package/lib/aws/notify/subscription-filter.js +1 -1
- package/lib/aws/notify/subscription.js +4 -4
- package/lib/aws/notify/subscriptions/email.js +1 -1
- package/lib/aws/notify/subscriptions/lambda.js +1 -1
- package/lib/aws/notify/subscriptions/sms.js +1 -1
- package/lib/aws/notify/subscriptions/sqs.js +1 -1
- package/lib/aws/notify/subscriptions/url.js +1 -1
- package/lib/aws/notify/targets/event-bus.js +1 -1
- package/lib/aws/notify/targets/function.js +1 -1
- package/lib/aws/notify/targets/log-group.js +2 -2
- package/lib/aws/notify/targets/sqs.js +3 -3
- package/lib/aws/notify/targets/state-machine.js +1 -1
- package/lib/aws/notify/targets/util.js +2 -2
- package/lib/aws/notify/topic-base.js +1 -1
- package/lib/aws/notify/topic.js +1 -1
- package/lib/aws/provider-config.generated.d.ts +33 -33
- package/lib/aws/provider-config.generated.js +1 -1
- package/lib/aws/storage/billing.d.ts +62 -0
- package/lib/aws/storage/billing.js +49 -0
- package/lib/aws/storage/bucket-notifications.js +1 -1
- package/lib/aws/storage/bucket-policy.js +1 -1
- package/lib/aws/storage/bucket-source.js +3 -3
- package/lib/aws/storage/bucket.js +2 -2
- package/lib/aws/storage/capacity.d.ts +96 -0
- package/lib/aws/storage/capacity.js +103 -0
- package/lib/aws/storage/cors-config.generated.d.ts +3 -3
- package/lib/aws/storage/cors-config.generated.js +1 -1
- package/lib/aws/storage/cors-rule-config.generated.d.ts +5 -5
- package/lib/aws/storage/cors-rule-config.generated.js +1 -1
- package/lib/aws/storage/dynamodb-canned-metrics.generated.d.ts +493 -0
- package/lib/aws/storage/dynamodb-canned-metrics.generated.js +263 -0
- package/lib/aws/storage/dynamodb-perms.d.ts +8 -0
- package/lib/aws/storage/dynamodb-perms.js +45 -0
- package/lib/aws/storage/encryption.d.ts +54 -0
- package/lib/aws/storage/encryption.js +116 -0
- package/lib/aws/storage/index.d.ts +6 -0
- package/lib/aws/storage/index.js +10 -1
- package/lib/aws/storage/lifecycle-config.generated.d.ts +7 -7
- package/lib/aws/storage/lifecycle-config.generated.js +1 -1
- package/lib/aws/storage/notification-targets/function.js +1 -1
- package/lib/aws/storage/notification-targets/queue.js +1 -1
- package/lib/aws/storage/origin-access-identity.js +1 -1
- package/lib/aws/storage/parameter.js +2 -2
- package/lib/aws/storage/scalable-attribute-api.d.ts +36 -0
- package/lib/aws/storage/scalable-attribute-api.js +3 -0
- package/lib/aws/storage/scalable-table-attribute.d.ts +32 -0
- package/lib/aws/storage/scalable-table-attribute.js +48 -0
- package/lib/aws/storage/shared.d.ts +419 -0
- package/lib/aws/storage/shared.js +161 -0
- package/lib/aws/storage/table.d.ts +536 -0
- package/lib/aws/storage/table.js +1054 -0
- package/lib/aws/storage/website-config.generated.d.ts +5 -5
- package/lib/aws/storage/website-config.generated.js +1 -1
- package/lib/construct-base.js +2 -2
- package/lib/duration.js +1 -1
- package/lib/expiration.js +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.js +2 -1
- package/lib/size.js +1 -1
- package/lib/stack-base.js +1 -1
- package/lib/terra-func.js +1 -1
- package/lib/time-zone.d.ts +724 -0
- package/lib/time-zone.js +737 -0
- 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
|