@aws-cdk/aws-msk-alpha 2.0.0-alpha.9 → 2.2.0-alpha.0

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 CHANGED
@@ -8,7 +8,7 @@
8
8
  "url": "https://aws.amazon.com"
9
9
  },
10
10
  "dependencies": {
11
- "aws-cdk-lib": "^2.0.0-rc.32",
11
+ "aws-cdk-lib": "^2.2.0",
12
12
  "constructs": "^10.0.0"
13
13
  },
14
14
  "dependencyClosure": {
@@ -105,6 +105,19 @@
105
105
  }
106
106
  }
107
107
  },
108
+ "aws-cdk-lib.aws_amplifyuibuilder": {
109
+ "targets": {
110
+ "dotnet": {
111
+ "namespace": "Amazon.CDK.AWS.AmplifyUIBuilder"
112
+ },
113
+ "java": {
114
+ "package": "software.amazon.awscdk.services.amplifyuibuilder"
115
+ },
116
+ "python": {
117
+ "module": "aws_cdk.aws_amplifyuibuilder"
118
+ }
119
+ }
120
+ },
108
121
  "aws-cdk-lib.aws_apigateway": {
109
122
  "targets": {
110
123
  "dotnet": {
@@ -1120,6 +1133,19 @@
1120
1133
  }
1121
1134
  }
1122
1135
  },
1136
+ "aws-cdk-lib.aws_evidently": {
1137
+ "targets": {
1138
+ "dotnet": {
1139
+ "namespace": "Amazon.CDK.AWS.Evidently"
1140
+ },
1141
+ "java": {
1142
+ "package": "software.amazon.awscdk.services.evidently"
1143
+ },
1144
+ "python": {
1145
+ "module": "aws_cdk.aws_evidently"
1146
+ }
1147
+ }
1148
+ },
1123
1149
  "aws-cdk-lib.aws_finspace": {
1124
1150
  "targets": {
1125
1151
  "dotnet": {
@@ -1601,6 +1627,19 @@
1601
1627
  }
1602
1628
  }
1603
1629
  },
1630
+ "aws-cdk-lib.aws_lex": {
1631
+ "targets": {
1632
+ "dotnet": {
1633
+ "namespace": "Amazon.CDK.AWS.Lex"
1634
+ },
1635
+ "java": {
1636
+ "package": "software.amazon.awscdk.services.lex"
1637
+ },
1638
+ "python": {
1639
+ "module": "aws_cdk.aws_lex"
1640
+ }
1641
+ }
1642
+ },
1604
1643
  "aws-cdk-lib.aws_licensemanager": {
1605
1644
  "targets": {
1606
1645
  "dotnet": {
@@ -2030,6 +2069,19 @@
2030
2069
  }
2031
2070
  }
2032
2071
  },
2072
+ "aws-cdk-lib.aws_refactorspaces": {
2073
+ "targets": {
2074
+ "dotnet": {
2075
+ "namespace": "Amazon.CDK.AWS.RefactorSpaces"
2076
+ },
2077
+ "java": {
2078
+ "package": "software.amazon.awscdk.services.refactorspaces"
2079
+ },
2080
+ "python": {
2081
+ "module": "aws_cdk.aws_refactorspaces"
2082
+ }
2083
+ }
2084
+ },
2033
2085
  "aws-cdk-lib.aws_rekognition": {
2034
2086
  "targets": {
2035
2087
  "dotnet": {
@@ -2043,6 +2095,19 @@
2043
2095
  }
2044
2096
  }
2045
2097
  },
2098
+ "aws-cdk-lib.aws_resiliencehub": {
2099
+ "targets": {
2100
+ "dotnet": {
2101
+ "namespace": "Amazon.CDK.AWS.ResilienceHub"
2102
+ },
2103
+ "java": {
2104
+ "package": "software.amazon.awscdk.services.resiliencehub"
2105
+ },
2106
+ "python": {
2107
+ "module": "aws_cdk.aws_resiliencehub"
2108
+ }
2109
+ }
2110
+ },
2046
2111
  "aws-cdk-lib.aws_resourcegroups": {
2047
2112
  "targets": {
2048
2113
  "dotnet": {
@@ -2147,6 +2212,19 @@
2147
2212
  }
2148
2213
  }
2149
2214
  },
2215
+ "aws-cdk-lib.aws_rum": {
2216
+ "targets": {
2217
+ "dotnet": {
2218
+ "namespace": "Amazon.CDK.AWS.RUM"
2219
+ },
2220
+ "java": {
2221
+ "package": "software.amazon.awscdk.services.rum"
2222
+ },
2223
+ "python": {
2224
+ "module": "aws_cdk.aws_rum"
2225
+ }
2226
+ }
2227
+ },
2150
2228
  "aws-cdk-lib.aws_s3": {
2151
2229
  "targets": {
2152
2230
  "dotnet": {
@@ -2777,7 +2855,7 @@
2777
2855
  "stability": "experimental"
2778
2856
  },
2779
2857
  "homepage": "https://github.com/aws/aws-cdk",
2780
- "jsiiVersion": "1.46.0 (build cd08c55)",
2858
+ "jsiiVersion": "1.47.0 (build 86d2c33)",
2781
2859
  "keywords": [
2782
2860
  "aws",
2783
2861
  "cdk",
@@ -2840,7 +2918,10 @@
2840
2918
  "docs": {
2841
2919
  "stability": "experimental",
2842
2920
  "summary": "Configuration details related to broker logs.",
2843
- "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as msk_alpha from '@aws-cdk/aws-msk-alpha';\nimport { aws_logs as logs } from 'aws-cdk-lib';\nimport { aws_s3 as s3 } from 'aws-cdk-lib';\n\ndeclare const bucket: s3.Bucket;\ndeclare const logGroup: logs.LogGroup;\n\nconst brokerLogging: msk_alpha.BrokerLogging = {\n cloudwatchLogGroup: logGroup,\n firehoseDeliveryStreamName: 'firehoseDeliveryStreamName',\n s3: {\n bucket: bucket,\n\n // the properties below are optional\n prefix: 'prefix',\n },\n};"
2921
+ "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as msk_alpha from '@aws-cdk/aws-msk-alpha';\nimport { aws_logs as logs } from 'aws-cdk-lib';\nimport { aws_s3 as s3 } from 'aws-cdk-lib';\n\ndeclare const bucket: s3.Bucket;\ndeclare const logGroup: logs.LogGroup;\n\nconst brokerLogging: msk_alpha.BrokerLogging = {\n cloudwatchLogGroup: logGroup,\n firehoseDeliveryStreamName: 'firehoseDeliveryStreamName',\n s3: {\n bucket: bucket,\n\n // the properties below are optional\n prefix: 'prefix',\n },\n};",
2922
+ "custom": {
2923
+ "exampleMetadata": "fixture=_generated"
2924
+ }
2844
2925
  },
2845
2926
  "fqn": "@aws-cdk/aws-msk-alpha.BrokerLogging",
2846
2927
  "kind": "interface",
@@ -3322,7 +3403,10 @@
3322
3403
  "remarks": "Note: There is currently no Cloudformation Resource to create a Configuration",
3323
3404
  "stability": "experimental",
3324
3405
  "summary": "The Amazon MSK configuration to use for the cluster.",
3325
- "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as msk_alpha from '@aws-cdk/aws-msk-alpha';\n\nconst clusterConfigurationInfo: msk_alpha.ClusterConfigurationInfo = {\n arn: 'arn',\n revision: 123,\n};"
3406
+ "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as msk_alpha from '@aws-cdk/aws-msk-alpha';\n\nconst clusterConfigurationInfo: msk_alpha.ClusterConfigurationInfo = {\n arn: 'arn',\n revision: 123,\n};",
3407
+ "custom": {
3408
+ "exampleMetadata": "fixture=_generated"
3409
+ }
3326
3410
  },
3327
3411
  "fqn": "@aws-cdk/aws-msk-alpha.ClusterConfigurationInfo",
3328
3412
  "kind": "interface",
@@ -3694,7 +3778,10 @@
3694
3778
  "docs": {
3695
3779
  "stability": "experimental",
3696
3780
  "summary": "EBS volume information.",
3697
- "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as msk_alpha from '@aws-cdk/aws-msk-alpha';\nimport { aws_kms as kms } from 'aws-cdk-lib';\n\ndeclare const key: kms.Key;\n\nconst ebsStorageInfo: msk_alpha.EbsStorageInfo = {\n encryptionKey: key,\n volumeSize: 123,\n};"
3781
+ "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as msk_alpha from '@aws-cdk/aws-msk-alpha';\nimport { aws_kms as kms } from 'aws-cdk-lib';\n\ndeclare const key: kms.Key;\n\nconst ebsStorageInfo: msk_alpha.EbsStorageInfo = {\n encryptionKey: key,\n volumeSize: 123,\n};",
3782
+ "custom": {
3783
+ "exampleMetadata": "fixture=_generated"
3784
+ }
3698
3785
  },
3699
3786
  "fqn": "@aws-cdk/aws-msk-alpha.EbsStorageInfo",
3700
3787
  "kind": "interface",
@@ -3750,7 +3837,10 @@
3750
3837
  "see": "https://docs.aws.amazon.com/msk/latest/developerguide/msk-encryption.html#msk-encryption-in-transit",
3751
3838
  "stability": "experimental",
3752
3839
  "summary": "The settings for encrypting data in transit.",
3753
- "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as msk_alpha from '@aws-cdk/aws-msk-alpha';\n\nconst encryptionInTransitConfig: msk_alpha.EncryptionInTransitConfig = {\n clientBroker: msk_alpha.ClientBrokerEncryption.TLS,\n enableInCluster: false,\n};"
3840
+ "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as msk_alpha from '@aws-cdk/aws-msk-alpha';\n\nconst encryptionInTransitConfig: msk_alpha.EncryptionInTransitConfig = {\n clientBroker: msk_alpha.ClientBrokerEncryption.TLS,\n enableInCluster: false,\n};",
3841
+ "custom": {
3842
+ "exampleMetadata": "fixture=_generated"
3843
+ }
3754
3844
  },
3755
3845
  "fqn": "@aws-cdk/aws-msk-alpha.EncryptionInTransitConfig",
3756
3846
  "kind": "interface",
@@ -4114,7 +4204,10 @@
4114
4204
  "docs": {
4115
4205
  "stability": "experimental",
4116
4206
  "summary": "Monitoring Configuration.",
4117
- "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as msk_alpha from '@aws-cdk/aws-msk-alpha';\n\nconst monitoringConfiguration: msk_alpha.MonitoringConfiguration = {\n clusterMonitoringLevel: msk_alpha.ClusterMonitoringLevel.DEFAULT,\n enablePrometheusJmxExporter: false,\n enablePrometheusNodeExporter: false,\n};"
4207
+ "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as msk_alpha from '@aws-cdk/aws-msk-alpha';\n\nconst monitoringConfiguration: msk_alpha.MonitoringConfiguration = {\n clusterMonitoringLevel: msk_alpha.ClusterMonitoringLevel.DEFAULT,\n enablePrometheusJmxExporter: false,\n enablePrometheusNodeExporter: false,\n};",
4208
+ "custom": {
4209
+ "exampleMetadata": "fixture=_generated"
4210
+ }
4118
4211
  },
4119
4212
  "fqn": "@aws-cdk/aws-msk-alpha.MonitoringConfiguration",
4120
4213
  "kind": "interface",
@@ -4188,7 +4281,10 @@
4188
4281
  "docs": {
4189
4282
  "stability": "experimental",
4190
4283
  "summary": "Details of the Amazon S3 destination for broker logs.",
4191
- "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as msk_alpha from '@aws-cdk/aws-msk-alpha';\nimport { aws_s3 as s3 } from 'aws-cdk-lib';\n\ndeclare const bucket: s3.Bucket;\n\nconst s3LoggingConfiguration: msk_alpha.S3LoggingConfiguration = {\n bucket: bucket,\n\n // the properties below are optional\n prefix: 'prefix',\n};"
4284
+ "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as msk_alpha from '@aws-cdk/aws-msk-alpha';\nimport { aws_s3 as s3 } from 'aws-cdk-lib';\n\ndeclare const bucket: s3.Bucket;\n\nconst s3LoggingConfiguration: msk_alpha.S3LoggingConfiguration = {\n bucket: bucket,\n\n // the properties below are optional\n prefix: 'prefix',\n};",
4285
+ "custom": {
4286
+ "exampleMetadata": "fixture=_generated"
4287
+ }
4192
4288
  },
4193
4289
  "fqn": "@aws-cdk/aws-msk-alpha.S3LoggingConfiguration",
4194
4290
  "kind": "interface",
@@ -4352,6 +4448,6 @@
4352
4448
  "symbolId": "lib/cluster:TlsAuthProps"
4353
4449
  }
4354
4450
  },
4355
- "version": "2.0.0-alpha.9",
4451
+ "version": "2.2.0-alpha.0",
4356
4452
  "fingerprint": "**********"
4357
4453
  }
@@ -0,0 +1,806 @@
1
+ {
2
+ "version": "2",
3
+ "toolVersion": "1.47.0",
4
+ "snippets": {
5
+ "cb840666411d496d311c8046f0d8eb51caa3fa8f1ee32506c1aadd00010fde54": {
6
+ "translations": {
7
+ "python": {
8
+ "source": "import aws_cdk.aws_msk_alpha as msk\n\ncluster = Cluster(self, \"Cluster\",\n kafka_version=msk.KafkaVersion.V2_8_1,\n vpc=vpc\n)",
9
+ "version": "1"
10
+ },
11
+ "csharp": {
12
+ "source": "using Amazon.CDK.AWS.MSK.Alpha;\n\nvar cluster = new Cluster(this, \"Cluster\", new Struct {\n KafkaVersion = KafkaVersion.V2_8_1,\n Vpc = vpc\n});",
13
+ "version": "1"
14
+ },
15
+ "java": {
16
+ "source": "import software.amazon.awscdk.services.msk.alpha.*;\n\nObject cluster = Cluster.Builder.create(this, \"Cluster\")\n .kafkaVersion(KafkaVersion.V2_8_1)\n .vpc(vpc)\n .build();",
17
+ "version": "1"
18
+ },
19
+ "$": {
20
+ "source": "import * as msk from '@aws-cdk/aws-msk-alpha';\n\nconst cluster = new Cluster(this, 'Cluster', {\n kafkaVersion: msk.KafkaVersion.V2_8_1,\n vpc,\n});",
21
+ "version": "0"
22
+ }
23
+ },
24
+ "location": {
25
+ "api": {
26
+ "api": "moduleReadme",
27
+ "moduleFqn": "@aws-cdk/aws-msk-alpha"
28
+ },
29
+ "field": {
30
+ "field": "markdown",
31
+ "line": 22
32
+ }
33
+ },
34
+ "didCompile": false,
35
+ "fqnsReferenced": [
36
+ "@aws-cdk/aws-msk-alpha.KafkaVersion",
37
+ "@aws-cdk/aws-msk-alpha.KafkaVersion#V2_8_1"
38
+ ],
39
+ "fullSource": "import * as msk from '@aws-cdk/aws-msk-alpha';\n\nconst cluster = new Cluster(this, 'Cluster', {\n kafkaVersion: msk.KafkaVersion.V2_8_1,\n vpc,\n});",
40
+ "syntaxKindCounter": {
41
+ "10": 2,
42
+ "75": 8,
43
+ "104": 1,
44
+ "193": 1,
45
+ "194": 2,
46
+ "197": 1,
47
+ "225": 1,
48
+ "242": 1,
49
+ "243": 1,
50
+ "254": 1,
51
+ "255": 1,
52
+ "256": 1,
53
+ "281": 1,
54
+ "282": 1,
55
+ "290": 1
56
+ },
57
+ "fqnsFingerprint": "9f23e3e8621fe7b951e3d3d29c0dffe5b25784378000ea2898ac9bbcb9940caf"
58
+ },
59
+ "c345f8017c1c169b5642d6b3b9d887bb395c15f1f71cebb58b1119623320a7ff": {
60
+ "translations": {
61
+ "python": {
62
+ "source": "import aws_cdk.aws_msk_alpha as msk\nimport aws_cdk.aws_ec2 as ec2\n\ncluster = msk.Cluster(self, \"Cluster\", ...)\n\ncluster.connections.allow_from(\n ec2.Peer.ipv4(\"1.2.3.4/8\"),\n ec2.Port.tcp(2181))\ncluster.connections.allow_from(\n ec2.Peer.ipv4(\"1.2.3.4/8\"),\n ec2.Port.tcp(9094))",
63
+ "version": "1"
64
+ },
65
+ "csharp": {
66
+ "source": "using Amazon.CDK.AWS.MSK.Alpha;\nusing Amazon.CDK.AWS.EC2;\n\nCluster cluster = new Cluster(this, \"Cluster\", new ClusterProps { ... });\n\ncluster.Connections.AllowFrom(Peer.Ipv4(\"1.2.3.4/8\"), Port.Tcp(2181));\ncluster.Connections.AllowFrom(Peer.Ipv4(\"1.2.3.4/8\"), Port.Tcp(9094));",
67
+ "version": "1"
68
+ },
69
+ "java": {
70
+ "source": "import software.amazon.awscdk.services.msk.alpha.*;\nimport software.amazon.awscdk.services.ec2.*;\n\nCluster cluster = Cluster.Builder.create(this, \"Cluster\")....build();\n\ncluster.connections.allowFrom(Peer.ipv4(\"1.2.3.4/8\"), Port.tcp(2181));\ncluster.connections.allowFrom(Peer.ipv4(\"1.2.3.4/8\"), Port.tcp(9094));",
71
+ "version": "1"
72
+ },
73
+ "$": {
74
+ "source": "import * as msk from \"@aws-cdk/aws-msk-alpha\"\nimport * as ec2 from \"aws-cdk-lib/aws-ec2\"\n\nconst cluster = new msk.Cluster(this, \"Cluster\", {...})\n\ncluster.connections.allowFrom(\n ec2.Peer.ipv4(\"1.2.3.4/8\"),\n ec2.Port.tcp(2181)\n)\ncluster.connections.allowFrom(\n ec2.Peer.ipv4(\"1.2.3.4/8\"),\n ec2.Port.tcp(9094)\n)",
75
+ "version": "0"
76
+ }
77
+ },
78
+ "location": {
79
+ "api": {
80
+ "api": "moduleReadme",
81
+ "moduleFqn": "@aws-cdk/aws-msk-alpha"
82
+ },
83
+ "field": {
84
+ "field": "markdown",
85
+ "line": 35
86
+ }
87
+ },
88
+ "didCompile": false,
89
+ "fqnsReferenced": [
90
+ "@aws-cdk/aws-msk-alpha.Cluster",
91
+ "@aws-cdk/aws-msk-alpha.ClusterProps",
92
+ "aws-cdk-lib.aws_ec2.Connections#allowFrom",
93
+ "aws-cdk-lib.aws_ec2.IConnectable",
94
+ "aws-cdk-lib.aws_ec2.Peer",
95
+ "aws-cdk-lib.aws_ec2.Peer#ipv4",
96
+ "aws-cdk-lib.aws_ec2.Port",
97
+ "aws-cdk-lib.aws_ec2.Port#tcp"
98
+ ],
99
+ "fullSource": "import * as msk from \"@aws-cdk/aws-msk-alpha\"\nimport * as ec2 from \"aws-cdk-lib/aws-ec2\"\n\nconst cluster = new msk.Cluster(this, \"Cluster\", {...})\n\ncluster.connections.allowFrom(\n ec2.Peer.ipv4(\"1.2.3.4/8\"),\n ec2.Port.tcp(2181)\n)\ncluster.connections.allowFrom(\n ec2.Peer.ipv4(\"1.2.3.4/8\"),\n ec2.Port.tcp(9094)\n)",
100
+ "syntaxKindCounter": {
101
+ "8": 2,
102
+ "10": 5,
103
+ "75": 24,
104
+ "104": 1,
105
+ "193": 1,
106
+ "194": 13,
107
+ "196": 6,
108
+ "197": 1,
109
+ "225": 1,
110
+ "226": 2,
111
+ "242": 1,
112
+ "243": 1,
113
+ "254": 2,
114
+ "255": 2,
115
+ "256": 2,
116
+ "283": 1,
117
+ "290": 1
118
+ },
119
+ "fqnsFingerprint": "67290f70588d1fff401268bd54a30e78540fddb21a9fece28c5568d4066105dd"
120
+ },
121
+ "2ae2abef4b783b93c3df13edcc282e3030b82f3b879d2bb23bbb9d21a753a6ca": {
122
+ "translations": {
123
+ "python": {
124
+ "source": "cdk.CfnOutput(self, \"BootstrapBrokers\", value=cluster.bootstrap_brokers)\ncdk.CfnOutput(self, \"BootstrapBrokersTls\", value=cluster.bootstrap_brokers_tls)\ncdk.CfnOutput(self, \"BootstrapBrokersSaslScram\", value=cluster.bootstrap_brokers_sasl_scram)\ncdk.CfnOutput(self, \"ZookeeperConnection\", value=cluster.zookeeper_connection_string)\ncdk.CfnOutput(self, \"ZookeeperConnectionTls\", value=cluster.zookeeper_connection_string_tls)",
125
+ "version": "1"
126
+ },
127
+ "csharp": {
128
+ "source": "new cdk.CfnOutput(this, \"BootstrapBrokers\", new Struct { Value = cluster.BootstrapBrokers });\nnew cdk.CfnOutput(this, \"BootstrapBrokersTls\", new Struct { Value = cluster.BootstrapBrokersTls });\nnew cdk.CfnOutput(this, \"BootstrapBrokersSaslScram\", new Struct { Value = cluster.BootstrapBrokersSaslScram });\nnew cdk.CfnOutput(this, \"ZookeeperConnection\", new Struct { Value = cluster.ZookeeperConnectionString });\nnew cdk.CfnOutput(this, \"ZookeeperConnectionTls\", new Struct { Value = cluster.ZookeeperConnectionStringTls });",
129
+ "version": "1"
130
+ },
131
+ "java": {
132
+ "source": "CfnOutput.Builder.create(this, \"BootstrapBrokers\").value(cluster.getBootstrapBrokers()).build();\nCfnOutput.Builder.create(this, \"BootstrapBrokersTls\").value(cluster.getBootstrapBrokersTls()).build();\nCfnOutput.Builder.create(this, \"BootstrapBrokersSaslScram\").value(cluster.getBootstrapBrokersSaslScram()).build();\nCfnOutput.Builder.create(this, \"ZookeeperConnection\").value(cluster.getZookeeperConnectionString()).build();\nCfnOutput.Builder.create(this, \"ZookeeperConnectionTls\").value(cluster.getZookeeperConnectionStringTls()).build();",
133
+ "version": "1"
134
+ },
135
+ "$": {
136
+ "source": "new cdk.CfnOutput(this, 'BootstrapBrokers', { value: cluster.bootstrapBrokers });\nnew cdk.CfnOutput(this, 'BootstrapBrokersTls', { value: cluster.bootstrapBrokersTls });\nnew cdk.CfnOutput(this, 'BootstrapBrokersSaslScram', { value: cluster.bootstrapBrokersSaslScram });\nnew cdk.CfnOutput(this, 'ZookeeperConnection', { value: cluster.zookeeperConnectionString });\nnew cdk.CfnOutput(this, 'ZookeeperConnectionTls', { value: cluster.zookeeperConnectionStringTls });",
137
+ "version": "0"
138
+ }
139
+ },
140
+ "location": {
141
+ "api": {
142
+ "api": "moduleReadme",
143
+ "moduleFqn": "@aws-cdk/aws-msk-alpha"
144
+ },
145
+ "field": {
146
+ "field": "markdown",
147
+ "line": 55
148
+ }
149
+ },
150
+ "didCompile": false,
151
+ "fqnsReferenced": [],
152
+ "fullSource": "new cdk.CfnOutput(this, 'BootstrapBrokers', { value: cluster.bootstrapBrokers });\nnew cdk.CfnOutput(this, 'BootstrapBrokersTls', { value: cluster.bootstrapBrokersTls });\nnew cdk.CfnOutput(this, 'BootstrapBrokersSaslScram', { value: cluster.bootstrapBrokersSaslScram });\nnew cdk.CfnOutput(this, 'ZookeeperConnection', { value: cluster.zookeeperConnectionString });\nnew cdk.CfnOutput(this, 'ZookeeperConnectionTls', { value: cluster.zookeeperConnectionStringTls });",
153
+ "syntaxKindCounter": {
154
+ "10": 5,
155
+ "75": 25,
156
+ "104": 5,
157
+ "193": 5,
158
+ "194": 10,
159
+ "197": 5,
160
+ "226": 5,
161
+ "281": 5,
162
+ "290": 1
163
+ },
164
+ "fqnsFingerprint": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
165
+ },
166
+ "a29affc49768f714bab93625b38e2762b98c92a21742c9999ee1218fa4b5a92e": {
167
+ "translations": {
168
+ "python": {
169
+ "source": "cluster = msk.Cluster.from_cluster_arn(self, \"Cluster\", \"arn:aws:kafka:us-west-2:1234567890:cluster/a-cluster/11111111-1111-1111-1111-111111111111-1\")",
170
+ "version": "1"
171
+ },
172
+ "csharp": {
173
+ "source": "var cluster = msk.Cluster.FromClusterArn(this, \"Cluster\", \"arn:aws:kafka:us-west-2:1234567890:cluster/a-cluster/11111111-1111-1111-1111-111111111111-1\");",
174
+ "version": "1"
175
+ },
176
+ "java": {
177
+ "source": "Object cluster = msk.Cluster.fromClusterArn(this, \"Cluster\", \"arn:aws:kafka:us-west-2:1234567890:cluster/a-cluster/11111111-1111-1111-1111-111111111111-1\");",
178
+ "version": "1"
179
+ },
180
+ "$": {
181
+ "source": "const cluster = msk.Cluster.fromClusterArn(this, 'Cluster', 'arn:aws:kafka:us-west-2:1234567890:cluster/a-cluster/11111111-1111-1111-1111-111111111111-1')",
182
+ "version": "0"
183
+ }
184
+ },
185
+ "location": {
186
+ "api": {
187
+ "api": "moduleReadme",
188
+ "moduleFqn": "@aws-cdk/aws-msk-alpha"
189
+ },
190
+ "field": {
191
+ "field": "markdown",
192
+ "line": 67
193
+ }
194
+ },
195
+ "didCompile": false,
196
+ "fqnsReferenced": [],
197
+ "fullSource": "const cluster = msk.Cluster.fromClusterArn(this, 'Cluster', 'arn:aws:kafka:us-west-2:1234567890:cluster/a-cluster/11111111-1111-1111-1111-111111111111-1')",
198
+ "syntaxKindCounter": {
199
+ "10": 2,
200
+ "75": 4,
201
+ "104": 1,
202
+ "194": 2,
203
+ "196": 1,
204
+ "225": 1,
205
+ "242": 1,
206
+ "243": 1,
207
+ "290": 1
208
+ },
209
+ "fqnsFingerprint": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
210
+ },
211
+ "f8a5f518f2706a7f376a52637709270c712e6c21b7b5c200abd7c50a44e51641": {
212
+ "translations": {
213
+ "python": {
214
+ "source": "import aws_cdk.aws_msk_alpha as msk\nimport aws_cdk.aws_acmpca as acmpca\n\ncluster = msk.Cluster(self, \"Cluster\", msk.ClusterProps(\n (SpreadAssignment ...\n encryptionInTransit\n encryption_in_transit)\n), {\n \"client_broker\": msk.ClientBrokerEncryption.TLS\n}, client_authentication, msk.ClientAuthentication.tls(\n certificate_authorities=[\n acmpca.CertificateAuthority.from_certificate_authority_arn(stack, \"CertificateAuthority\", \"arn:aws:acm-pca:us-west-2:1234567890:certificate-authority/11111111-1111-1111-1111-111111111111\")\n ]\n))",
215
+ "version": "1"
216
+ },
217
+ "csharp": {
218
+ "source": "using Amazon.CDK.AWS.MSK.Alpha;\nusing Amazon.CDK.AWS.ACMPCA;\n\nCluster cluster = new Cluster(this, \"Cluster\", new ClusterProps {\n (SpreadAssignment ...\n encryptionInTransit\n encryptionInTransit)\n}, new Dictionary<string, ClientBrokerEncryption> {\n { \"clientBroker\", ClientBrokerEncryption.TLS }\n}, clientAuthentication, ClientAuthentication.Tls(new TlsAuthProps {\n CertificateAuthorities = new [] { CertificateAuthority.FromCertificateAuthorityArn(stack, \"CertificateAuthority\", \"arn:aws:acm-pca:us-west-2:1234567890:certificate-authority/11111111-1111-1111-1111-111111111111\") }\n}));",
219
+ "version": "1"
220
+ },
221
+ "java": {
222
+ "source": "import software.amazon.awscdk.services.msk.alpha.*;\nimport software.amazon.awscdk.services.acmpca.*;\n\nCluster cluster = new Cluster(this, \"Cluster\", ClusterProps.builder()\n (SpreadAssignment ...\n encryptionInTransit\n encryptionInTransit)\n .build(), Map.of(\n \"clientBroker\", ClientBrokerEncryption.TLS), clientAuthentication, ClientAuthentication.tls(TlsAuthProps.builder()\n .certificateAuthorities(List.of(CertificateAuthority.fromCertificateAuthorityArn(stack, \"CertificateAuthority\", \"arn:aws:acm-pca:us-west-2:1234567890:certificate-authority/11111111-1111-1111-1111-111111111111\")))\n .build()));",
223
+ "version": "1"
224
+ },
225
+ "$": {
226
+ "source": "import * as msk from \"@aws-cdk/aws-msk-alpha\"\nimport * as acmpca from \"aws-cdk-lib/aws-acmpca\"\n\nconst cluster = new msk.Cluster(this, 'Cluster', {\n ...\n encryptionInTransit: {\n clientBroker: msk.ClientBrokerEncryption.TLS,\n },\n clientAuthentication: msk.ClientAuthentication.tls({\n certificateAuthorities: [\n acmpca.CertificateAuthority.fromCertificateAuthorityArn(\n stack,\n \"CertificateAuthority\",\n \"arn:aws:acm-pca:us-west-2:1234567890:certificate-authority/11111111-1111-1111-1111-111111111111\"\n ),\n ],\n }),\n });\n});",
227
+ "version": "0"
228
+ }
229
+ },
230
+ "location": {
231
+ "api": {
232
+ "api": "moduleReadme",
233
+ "moduleFqn": "@aws-cdk/aws-msk-alpha"
234
+ },
235
+ "field": {
236
+ "field": "markdown",
237
+ "line": 81
238
+ }
239
+ },
240
+ "didCompile": false,
241
+ "fqnsReferenced": [
242
+ "@aws-cdk/aws-msk-alpha.ClientAuthentication",
243
+ "@aws-cdk/aws-msk-alpha.ClientAuthentication#tls",
244
+ "@aws-cdk/aws-msk-alpha.ClientBrokerEncryption",
245
+ "@aws-cdk/aws-msk-alpha.ClientBrokerEncryption#TLS",
246
+ "@aws-cdk/aws-msk-alpha.Cluster",
247
+ "@aws-cdk/aws-msk-alpha.ClusterProps",
248
+ "@aws-cdk/aws-msk-alpha.TlsAuthProps",
249
+ "aws-cdk-lib.aws_acmpca.CertificateAuthority",
250
+ "aws-cdk-lib.aws_acmpca.CertificateAuthority#fromCertificateAuthorityArn"
251
+ ],
252
+ "fullSource": "import * as msk from \"@aws-cdk/aws-msk-alpha\"\nimport * as acmpca from \"aws-cdk-lib/aws-acmpca\"\n\nconst cluster = new msk.Cluster(this, 'Cluster', {\n ...\n encryptionInTransit: {\n clientBroker: msk.ClientBrokerEncryption.TLS,\n },\n clientAuthentication: msk.ClientAuthentication.tls({\n certificateAuthorities: [\n acmpca.CertificateAuthority.fromCertificateAuthorityArn(\n stack,\n \"CertificateAuthority\",\n \"arn:aws:acm-pca:us-west-2:1234567890:certificate-authority/11111111-1111-1111-1111-111111111111\"\n ),\n ],\n }),\n });\n});",
253
+ "syntaxKindCounter": {
254
+ "10": 5,
255
+ "75": 19,
256
+ "104": 1,
257
+ "192": 1,
258
+ "193": 3,
259
+ "194": 7,
260
+ "196": 2,
261
+ "197": 1,
262
+ "224": 2,
263
+ "225": 1,
264
+ "242": 1,
265
+ "243": 1,
266
+ "254": 2,
267
+ "255": 2,
268
+ "256": 2,
269
+ "281": 2,
270
+ "283": 1,
271
+ "290": 1
272
+ },
273
+ "fqnsFingerprint": "474871a19edda892915562c7921bd05fecaec0a50b4fb3c32a88e0b00d7c2d83"
274
+ },
275
+ "fee7787184211e222b00054508278c2e83c9e80dc430cbb227fb5c6077468602": {
276
+ "translations": {
277
+ "python": {
278
+ "source": "import aws_cdk.aws_msk_alpha as msk\n\ncluster = msk.cluster(self, \"cluster\", {\n (SpreadAssignment ...\n encryptionInTransit\n encryption_in_transit)\n}, {\n \"client_broker\": msk.ClientBrokerEncryption.TLS\n}, client_authentication, msk.ClientAuthentication.sasl(\n scram=True\n))",
279
+ "version": "1"
280
+ },
281
+ "csharp": {
282
+ "source": "using Amazon.CDK.AWS.MSK.Alpha;\n\nvar cluster = new Cluster(this, \"cluster\", new Struct {\n (SpreadAssignment ...\n encryptionInTransit\n encryptionInTransit)\n}, new Struct {\n ClientBroker = ClientBrokerEncryption.TLS\n}, clientAuthentication, ClientAuthentication.Sasl(new SaslAuthProps {\n Scram = true\n}));",
283
+ "version": "1"
284
+ },
285
+ "java": {
286
+ "source": "import software.amazon.awscdk.services.msk.alpha.*;\n\nObject cluster = new cluster(this, \"cluster\", Map.of(\n (SpreadAssignment ...\n encryptionInTransit\n encryptionInTransit)), Map.of(\n \"clientBroker\", ClientBrokerEncryption.TLS), clientAuthentication, ClientAuthentication.sasl(SaslAuthProps.builder()\n .scram(true)\n .build()));",
287
+ "version": "1"
288
+ },
289
+ "$": {
290
+ "source": "import * as msk from \"@aws-cdk/aws-msk-alpha\"\n\nconst cluster = new msk.cluster(this, \"cluster\", {\n ...\n encryptionInTransit: {\n clientBroker: msk.ClientBrokerEncryption.TLS,\n },\n clientAuthentication: msk.ClientAuthentication.sasl({\n scram: true,\n }),\n})",
291
+ "version": "0"
292
+ }
293
+ },
294
+ "location": {
295
+ "api": {
296
+ "api": "moduleReadme",
297
+ "moduleFqn": "@aws-cdk/aws-msk-alpha"
298
+ },
299
+ "field": {
300
+ "field": "markdown",
301
+ "line": 107
302
+ }
303
+ },
304
+ "didCompile": false,
305
+ "fqnsReferenced": [
306
+ "@aws-cdk/aws-msk-alpha.ClientAuthentication",
307
+ "@aws-cdk/aws-msk-alpha.ClientAuthentication#sasl",
308
+ "@aws-cdk/aws-msk-alpha.ClientBrokerEncryption",
309
+ "@aws-cdk/aws-msk-alpha.ClientBrokerEncryption#TLS",
310
+ "@aws-cdk/aws-msk-alpha.SaslAuthProps"
311
+ ],
312
+ "fullSource": "import * as msk from \"@aws-cdk/aws-msk-alpha\"\n\nconst cluster = new msk.cluster(this, \"cluster\", {\n ...\n encryptionInTransit: {\n clientBroker: msk.ClientBrokerEncryption.TLS,\n },\n clientAuthentication: msk.ClientAuthentication.sasl({\n scram: true,\n }),\n})",
313
+ "syntaxKindCounter": {
314
+ "10": 2,
315
+ "75": 14,
316
+ "104": 1,
317
+ "106": 1,
318
+ "193": 3,
319
+ "194": 5,
320
+ "196": 1,
321
+ "197": 1,
322
+ "225": 1,
323
+ "242": 1,
324
+ "243": 1,
325
+ "254": 1,
326
+ "255": 1,
327
+ "256": 1,
328
+ "281": 2,
329
+ "283": 1,
330
+ "290": 1
331
+ },
332
+ "fqnsFingerprint": "d6d3d03f55f7d623d0e33912d9f103782dd1cee34a145cd4e74ecf73c980a3fe"
333
+ },
334
+ "e6f7a12dfe227cb129f1aa5e7e0eb94a159d7f839e44227aca7cc01e3a229fba": {
335
+ "translations": {
336
+ "python": {
337
+ "source": "import aws_cdk.aws_msk_alpha as msk\n\ncluster = msk.cluster(self, \"cluster\", {\n (SpreadAssignment ...\n encryptionInTransit\n encryption_in_transit)\n}, {\n \"client_broker\": msk.ClientBrokerEncryption.TLS\n}, client_authentication, msk.ClientAuthentication.sasl(\n iam=True\n))",
338
+ "version": "1"
339
+ },
340
+ "csharp": {
341
+ "source": "using Amazon.CDK.AWS.MSK.Alpha;\n\nvar cluster = new Cluster(this, \"cluster\", new Struct {\n (SpreadAssignment ...\n encryptionInTransit\n encryptionInTransit)\n}, new Struct {\n ClientBroker = ClientBrokerEncryption.TLS\n}, clientAuthentication, ClientAuthentication.Sasl(new SaslAuthProps {\n Iam = true\n}));",
342
+ "version": "1"
343
+ },
344
+ "java": {
345
+ "source": "import software.amazon.awscdk.services.msk.alpha.*;\n\nObject cluster = new cluster(this, \"cluster\", Map.of(\n (SpreadAssignment ...\n encryptionInTransit\n encryptionInTransit)), Map.of(\n \"clientBroker\", ClientBrokerEncryption.TLS), clientAuthentication, ClientAuthentication.sasl(SaslAuthProps.builder()\n .iam(true)\n .build()));",
346
+ "version": "1"
347
+ },
348
+ "$": {
349
+ "source": "import * as msk from \"@aws-cdk/aws-msk-alpha\"\n\nconst cluster = new msk.cluster(this, \"cluster\", {\n ...\n encryptionInTransit: {\n clientBroker: msk.ClientBrokerEncryption.TLS,\n },\n clientAuthentication: msk.ClientAuthentication.sasl({\n iam: true,\n }),\n})",
350
+ "version": "0"
351
+ }
352
+ },
353
+ "location": {
354
+ "api": {
355
+ "api": "moduleReadme",
356
+ "moduleFqn": "@aws-cdk/aws-msk-alpha"
357
+ },
358
+ "field": {
359
+ "field": "markdown",
360
+ "line": 125
361
+ }
362
+ },
363
+ "didCompile": false,
364
+ "fqnsReferenced": [
365
+ "@aws-cdk/aws-msk-alpha.ClientAuthentication",
366
+ "@aws-cdk/aws-msk-alpha.ClientAuthentication#sasl",
367
+ "@aws-cdk/aws-msk-alpha.ClientBrokerEncryption",
368
+ "@aws-cdk/aws-msk-alpha.ClientBrokerEncryption#TLS",
369
+ "@aws-cdk/aws-msk-alpha.SaslAuthProps"
370
+ ],
371
+ "fullSource": "import * as msk from \"@aws-cdk/aws-msk-alpha\"\n\nconst cluster = new msk.cluster(this, \"cluster\", {\n ...\n encryptionInTransit: {\n clientBroker: msk.ClientBrokerEncryption.TLS,\n },\n clientAuthentication: msk.ClientAuthentication.sasl({\n iam: true,\n }),\n})",
372
+ "syntaxKindCounter": {
373
+ "10": 2,
374
+ "75": 14,
375
+ "104": 1,
376
+ "106": 1,
377
+ "193": 3,
378
+ "194": 5,
379
+ "196": 1,
380
+ "197": 1,
381
+ "225": 1,
382
+ "242": 1,
383
+ "243": 1,
384
+ "254": 1,
385
+ "255": 1,
386
+ "256": 1,
387
+ "281": 2,
388
+ "283": 1,
389
+ "290": 1
390
+ },
391
+ "fqnsFingerprint": "d6d3d03f55f7d623d0e33912d9f103782dd1cee34a145cd4e74ecf73c980a3fe"
392
+ },
393
+ "abc52bbc5650c79e6165ed74f972426ef4f5c398d51f916ab8e78ae00133b602": {
394
+ "translations": {
395
+ "python": {
396
+ "source": "import aws_cdk.aws_msk_alpha as msk\n\ncluster = msk.cluster(self, \"cluster\", {\n (SpreadAssignment ...\n encryptionInTransit\n encryption_in_transit)\n}, {\n \"client_broker\": msk.ClientBrokerEncryption.TLS\n}, client_authentication, msk.ClientAuthentication.sasl(\n scram=True\n))",
397
+ "version": "1"
398
+ },
399
+ "csharp": {
400
+ "source": "using Amazon.CDK.AWS.MSK.Alpha;\n\nvar cluster = new Cluster(this, \"cluster\", new Struct {\n (SpreadAssignment ...\n encryptionInTransit\n encryptionInTransit)\n}, new Struct {\n ClientBroker = ClientBrokerEncryption.TLS\n}, clientAuthentication, ClientAuthentication.Sasl(new SaslAuthProps {\n Scram = true\n}));",
401
+ "version": "1"
402
+ },
403
+ "java": {
404
+ "source": "import software.amazon.awscdk.services.msk.alpha.*;\n\nObject cluster = new cluster(this, \"cluster\", Map.of(\n (SpreadAssignment ...\n encryptionInTransit\n encryptionInTransit)), Map.of(\n \"clientBroker\", ClientBrokerEncryption.TLS), clientAuthentication, ClientAuthentication.sasl(SaslAuthProps.builder()\n .scram(true)\n .build()));",
405
+ "version": "1"
406
+ },
407
+ "$": {
408
+ "source": "import * as msk from \"@aws-cdk/aws-msk-alpha\"\n\nconst cluster = new msk.cluster(this, \"cluster\", {\n ...\n encryptionInTransit: {\n clientBroker: msk.ClientBrokerEncryption.TLS,\n },\n clientAuthentication: msk.ClientAuthentication.sasl({\n scram: true,\n }),\n})",
409
+ "version": "0"
410
+ }
411
+ },
412
+ "location": {
413
+ "api": {
414
+ "api": "type",
415
+ "fqn": "@aws-cdk/aws-msk-alpha.ClientAuthentication"
416
+ },
417
+ "field": {
418
+ "field": "example"
419
+ }
420
+ },
421
+ "didCompile": false,
422
+ "fqnsReferenced": [
423
+ "@aws-cdk/aws-msk-alpha.ClientAuthentication",
424
+ "@aws-cdk/aws-msk-alpha.ClientAuthentication#sasl",
425
+ "@aws-cdk/aws-msk-alpha.ClientBrokerEncryption",
426
+ "@aws-cdk/aws-msk-alpha.ClientBrokerEncryption#TLS",
427
+ "@aws-cdk/aws-msk-alpha.SaslAuthProps"
428
+ ],
429
+ "fullSource": "import * as msk from \"@aws-cdk/aws-msk-alpha\"\n\nconst cluster = new msk.cluster(this, \"cluster\", {\n ...\n encryptionInTransit: {\n clientBroker: msk.ClientBrokerEncryption.TLS,\n },\n clientAuthentication: msk.ClientAuthentication.sasl({\n scram: true,\n }),\n})",
430
+ "syntaxKindCounter": {
431
+ "10": 2,
432
+ "75": 14,
433
+ "104": 1,
434
+ "106": 1,
435
+ "193": 3,
436
+ "194": 5,
437
+ "196": 1,
438
+ "197": 1,
439
+ "225": 1,
440
+ "242": 1,
441
+ "243": 1,
442
+ "254": 1,
443
+ "255": 1,
444
+ "256": 1,
445
+ "281": 2,
446
+ "283": 1,
447
+ "290": 1
448
+ },
449
+ "fqnsFingerprint": "d6d3d03f55f7d623d0e33912d9f103782dd1cee34a145cd4e74ecf73c980a3fe"
450
+ },
451
+ "cff3b29e78a8161df7384a9caa5d2f6e46259df777c4d149896d9d7bdeafcbb6": {
452
+ "translations": {
453
+ "python": {
454
+ "source": "import aws_cdk.aws_msk_alpha as msk\n\ncluster = msk.cluster(self, \"cluster\", {\n (SpreadAssignment ...\n encryptionInTransit\n encryption_in_transit)\n}, {\n \"client_broker\": msk.ClientBrokerEncryption.TLS\n}, client_authentication, msk.ClientAuthentication.sasl(\n scram=True\n))",
455
+ "version": "1"
456
+ },
457
+ "csharp": {
458
+ "source": "using Amazon.CDK.AWS.MSK.Alpha;\n\nvar cluster = new Cluster(this, \"cluster\", new Struct {\n (SpreadAssignment ...\n encryptionInTransit\n encryptionInTransit)\n}, new Struct {\n ClientBroker = ClientBrokerEncryption.TLS\n}, clientAuthentication, ClientAuthentication.Sasl(new SaslAuthProps {\n Scram = true\n}));",
459
+ "version": "1"
460
+ },
461
+ "java": {
462
+ "source": "import software.amazon.awscdk.services.msk.alpha.*;\n\nObject cluster = new cluster(this, \"cluster\", Map.of(\n (SpreadAssignment ...\n encryptionInTransit\n encryptionInTransit)), Map.of(\n \"clientBroker\", ClientBrokerEncryption.TLS), clientAuthentication, ClientAuthentication.sasl(SaslAuthProps.builder()\n .scram(true)\n .build()));",
463
+ "version": "1"
464
+ },
465
+ "$": {
466
+ "source": "import * as msk from \"@aws-cdk/aws-msk-alpha\"\n\nconst cluster = new msk.cluster(this, \"cluster\", {\n ...\n encryptionInTransit: {\n clientBroker: msk.ClientBrokerEncryption.TLS,\n },\n clientAuthentication: msk.ClientAuthentication.sasl({\n scram: true,\n }),\n})",
467
+ "version": "0"
468
+ }
469
+ },
470
+ "location": {
471
+ "api": {
472
+ "api": "type",
473
+ "fqn": "@aws-cdk/aws-msk-alpha.ClientBrokerEncryption"
474
+ },
475
+ "field": {
476
+ "field": "example"
477
+ }
478
+ },
479
+ "didCompile": false,
480
+ "fqnsReferenced": [
481
+ "@aws-cdk/aws-msk-alpha.ClientAuthentication",
482
+ "@aws-cdk/aws-msk-alpha.ClientAuthentication#sasl",
483
+ "@aws-cdk/aws-msk-alpha.ClientBrokerEncryption",
484
+ "@aws-cdk/aws-msk-alpha.ClientBrokerEncryption#TLS",
485
+ "@aws-cdk/aws-msk-alpha.SaslAuthProps"
486
+ ],
487
+ "fullSource": "import * as msk from \"@aws-cdk/aws-msk-alpha\"\n\nconst cluster = new msk.cluster(this, \"cluster\", {\n ...\n encryptionInTransit: {\n clientBroker: msk.ClientBrokerEncryption.TLS,\n },\n clientAuthentication: msk.ClientAuthentication.sasl({\n scram: true,\n }),\n})",
488
+ "syntaxKindCounter": {
489
+ "10": 2,
490
+ "75": 14,
491
+ "104": 1,
492
+ "106": 1,
493
+ "193": 3,
494
+ "194": 5,
495
+ "196": 1,
496
+ "197": 1,
497
+ "225": 1,
498
+ "242": 1,
499
+ "243": 1,
500
+ "254": 1,
501
+ "255": 1,
502
+ "256": 1,
503
+ "281": 2,
504
+ "283": 1,
505
+ "290": 1
506
+ },
507
+ "fqnsFingerprint": "d6d3d03f55f7d623d0e33912d9f103782dd1cee34a145cd4e74ecf73c980a3fe"
508
+ },
509
+ "4fd574236b78643ddafe0c80388ea1a18b3c391617fcbbd998ac54cf88bd9825": {
510
+ "translations": {
511
+ "python": {
512
+ "source": "import aws_cdk.aws_msk_alpha as msk\nimport aws_cdk.aws_ec2 as ec2\n\ncluster = msk.Cluster(self, \"Cluster\", ...)\n\ncluster.connections.allow_from(\n ec2.Peer.ipv4(\"1.2.3.4/8\"),\n ec2.Port.tcp(2181))\ncluster.connections.allow_from(\n ec2.Peer.ipv4(\"1.2.3.4/8\"),\n ec2.Port.tcp(9094))",
513
+ "version": "1"
514
+ },
515
+ "csharp": {
516
+ "source": "using Amazon.CDK.AWS.MSK.Alpha;\nusing Amazon.CDK.AWS.EC2;\n\nCluster cluster = new Cluster(this, \"Cluster\", new ClusterProps { ... });\n\ncluster.Connections.AllowFrom(Peer.Ipv4(\"1.2.3.4/8\"), Port.Tcp(2181));\ncluster.Connections.AllowFrom(Peer.Ipv4(\"1.2.3.4/8\"), Port.Tcp(9094));",
517
+ "version": "1"
518
+ },
519
+ "java": {
520
+ "source": "import software.amazon.awscdk.services.msk.alpha.*;\nimport software.amazon.awscdk.services.ec2.*;\n\nCluster cluster = Cluster.Builder.create(this, \"Cluster\")....build();\n\ncluster.connections.allowFrom(Peer.ipv4(\"1.2.3.4/8\"), Port.tcp(2181));\ncluster.connections.allowFrom(Peer.ipv4(\"1.2.3.4/8\"), Port.tcp(9094));",
521
+ "version": "1"
522
+ },
523
+ "$": {
524
+ "source": "import * as msk from \"@aws-cdk/aws-msk-alpha\"\nimport * as ec2 from \"aws-cdk-lib/aws-ec2\"\n\nconst cluster = new msk.Cluster(this, \"Cluster\", {...})\n\ncluster.connections.allowFrom(\n ec2.Peer.ipv4(\"1.2.3.4/8\"),\n ec2.Port.tcp(2181)\n)\ncluster.connections.allowFrom(\n ec2.Peer.ipv4(\"1.2.3.4/8\"),\n ec2.Port.tcp(9094)\n)",
525
+ "version": "0"
526
+ }
527
+ },
528
+ "location": {
529
+ "api": {
530
+ "api": "type",
531
+ "fqn": "@aws-cdk/aws-msk-alpha.Cluster"
532
+ },
533
+ "field": {
534
+ "field": "example"
535
+ }
536
+ },
537
+ "didCompile": false,
538
+ "fqnsReferenced": [
539
+ "@aws-cdk/aws-msk-alpha.Cluster",
540
+ "@aws-cdk/aws-msk-alpha.ClusterProps",
541
+ "aws-cdk-lib.aws_ec2.Connections#allowFrom",
542
+ "aws-cdk-lib.aws_ec2.IConnectable",
543
+ "aws-cdk-lib.aws_ec2.Peer",
544
+ "aws-cdk-lib.aws_ec2.Peer#ipv4",
545
+ "aws-cdk-lib.aws_ec2.Port",
546
+ "aws-cdk-lib.aws_ec2.Port#tcp"
547
+ ],
548
+ "fullSource": "import * as msk from \"@aws-cdk/aws-msk-alpha\"\nimport * as ec2 from \"aws-cdk-lib/aws-ec2\"\n\nconst cluster = new msk.Cluster(this, \"Cluster\", {...})\n\ncluster.connections.allowFrom(\n ec2.Peer.ipv4(\"1.2.3.4/8\"),\n ec2.Port.tcp(2181)\n)\ncluster.connections.allowFrom(\n ec2.Peer.ipv4(\"1.2.3.4/8\"),\n ec2.Port.tcp(9094)\n)",
549
+ "syntaxKindCounter": {
550
+ "8": 2,
551
+ "10": 5,
552
+ "75": 24,
553
+ "104": 1,
554
+ "193": 1,
555
+ "194": 13,
556
+ "196": 6,
557
+ "197": 1,
558
+ "225": 1,
559
+ "226": 2,
560
+ "242": 1,
561
+ "243": 1,
562
+ "254": 2,
563
+ "255": 2,
564
+ "256": 2,
565
+ "283": 1,
566
+ "290": 1
567
+ },
568
+ "fqnsFingerprint": "67290f70588d1fff401268bd54a30e78540fddb21a9fece28c5568d4066105dd"
569
+ },
570
+ "d3f01eb62169205f4e56402730360a1441a771303522aceacabd41e9d47b2106": {
571
+ "translations": {
572
+ "python": {
573
+ "source": "import aws_cdk.aws_msk_alpha as msk\nimport aws_cdk.aws_ec2 as ec2\n\ncluster = msk.Cluster(self, \"Cluster\", ...)\n\ncluster.connections.allow_from(\n ec2.Peer.ipv4(\"1.2.3.4/8\"),\n ec2.Port.tcp(2181))\ncluster.connections.allow_from(\n ec2.Peer.ipv4(\"1.2.3.4/8\"),\n ec2.Port.tcp(9094))",
574
+ "version": "1"
575
+ },
576
+ "csharp": {
577
+ "source": "using Amazon.CDK.AWS.MSK.Alpha;\nusing Amazon.CDK.AWS.EC2;\n\nCluster cluster = new Cluster(this, \"Cluster\", new ClusterProps { ... });\n\ncluster.Connections.AllowFrom(Peer.Ipv4(\"1.2.3.4/8\"), Port.Tcp(2181));\ncluster.Connections.AllowFrom(Peer.Ipv4(\"1.2.3.4/8\"), Port.Tcp(9094));",
578
+ "version": "1"
579
+ },
580
+ "java": {
581
+ "source": "import software.amazon.awscdk.services.msk.alpha.*;\nimport software.amazon.awscdk.services.ec2.*;\n\nCluster cluster = Cluster.Builder.create(this, \"Cluster\")....build();\n\ncluster.connections.allowFrom(Peer.ipv4(\"1.2.3.4/8\"), Port.tcp(2181));\ncluster.connections.allowFrom(Peer.ipv4(\"1.2.3.4/8\"), Port.tcp(9094));",
582
+ "version": "1"
583
+ },
584
+ "$": {
585
+ "source": "import * as msk from \"@aws-cdk/aws-msk-alpha\"\nimport * as ec2 from \"aws-cdk-lib/aws-ec2\"\n\nconst cluster = new msk.Cluster(this, \"Cluster\", {...})\n\ncluster.connections.allowFrom(\n ec2.Peer.ipv4(\"1.2.3.4/8\"),\n ec2.Port.tcp(2181)\n)\ncluster.connections.allowFrom(\n ec2.Peer.ipv4(\"1.2.3.4/8\"),\n ec2.Port.tcp(9094)\n)",
586
+ "version": "0"
587
+ }
588
+ },
589
+ "location": {
590
+ "api": {
591
+ "api": "type",
592
+ "fqn": "@aws-cdk/aws-msk-alpha.ClusterProps"
593
+ },
594
+ "field": {
595
+ "field": "example"
596
+ }
597
+ },
598
+ "didCompile": false,
599
+ "fqnsReferenced": [
600
+ "@aws-cdk/aws-msk-alpha.Cluster",
601
+ "@aws-cdk/aws-msk-alpha.ClusterProps",
602
+ "aws-cdk-lib.aws_ec2.Connections#allowFrom",
603
+ "aws-cdk-lib.aws_ec2.IConnectable",
604
+ "aws-cdk-lib.aws_ec2.Peer",
605
+ "aws-cdk-lib.aws_ec2.Peer#ipv4",
606
+ "aws-cdk-lib.aws_ec2.Port",
607
+ "aws-cdk-lib.aws_ec2.Port#tcp"
608
+ ],
609
+ "fullSource": "import * as msk from \"@aws-cdk/aws-msk-alpha\"\nimport * as ec2 from \"aws-cdk-lib/aws-ec2\"\n\nconst cluster = new msk.Cluster(this, \"Cluster\", {...})\n\ncluster.connections.allowFrom(\n ec2.Peer.ipv4(\"1.2.3.4/8\"),\n ec2.Port.tcp(2181)\n)\ncluster.connections.allowFrom(\n ec2.Peer.ipv4(\"1.2.3.4/8\"),\n ec2.Port.tcp(9094)\n)",
610
+ "syntaxKindCounter": {
611
+ "8": 2,
612
+ "10": 5,
613
+ "75": 24,
614
+ "104": 1,
615
+ "193": 1,
616
+ "194": 13,
617
+ "196": 6,
618
+ "197": 1,
619
+ "225": 1,
620
+ "226": 2,
621
+ "242": 1,
622
+ "243": 1,
623
+ "254": 2,
624
+ "255": 2,
625
+ "256": 2,
626
+ "283": 1,
627
+ "290": 1
628
+ },
629
+ "fqnsFingerprint": "67290f70588d1fff401268bd54a30e78540fddb21a9fece28c5568d4066105dd"
630
+ },
631
+ "0ad6bfb0f65b51bb3c39ec12fec3fe8e1ba1e1b0bd508166193c12f2124caea6": {
632
+ "translations": {
633
+ "python": {
634
+ "source": "import aws_cdk.aws_msk_alpha as msk\n\ncluster = Cluster(self, \"Cluster\",\n kafka_version=msk.KafkaVersion.V2_8_1,\n vpc=vpc\n)",
635
+ "version": "1"
636
+ },
637
+ "csharp": {
638
+ "source": "using Amazon.CDK.AWS.MSK.Alpha;\n\nvar cluster = new Cluster(this, \"Cluster\", new Struct {\n KafkaVersion = KafkaVersion.V2_8_1,\n Vpc = vpc\n});",
639
+ "version": "1"
640
+ },
641
+ "java": {
642
+ "source": "import software.amazon.awscdk.services.msk.alpha.*;\n\nObject cluster = Cluster.Builder.create(this, \"Cluster\")\n .kafkaVersion(KafkaVersion.V2_8_1)\n .vpc(vpc)\n .build();",
643
+ "version": "1"
644
+ },
645
+ "$": {
646
+ "source": "import * as msk from '@aws-cdk/aws-msk-alpha';\n\nconst cluster = new Cluster(this, 'Cluster', {\n kafkaVersion: msk.KafkaVersion.V2_8_1,\n vpc,\n});",
647
+ "version": "0"
648
+ }
649
+ },
650
+ "location": {
651
+ "api": {
652
+ "api": "type",
653
+ "fqn": "@aws-cdk/aws-msk-alpha.KafkaVersion"
654
+ },
655
+ "field": {
656
+ "field": "example"
657
+ }
658
+ },
659
+ "didCompile": false,
660
+ "fqnsReferenced": [
661
+ "@aws-cdk/aws-msk-alpha.KafkaVersion",
662
+ "@aws-cdk/aws-msk-alpha.KafkaVersion#V2_8_1"
663
+ ],
664
+ "fullSource": "import * as msk from '@aws-cdk/aws-msk-alpha';\n\nconst cluster = new Cluster(this, 'Cluster', {\n kafkaVersion: msk.KafkaVersion.V2_8_1,\n vpc,\n});",
665
+ "syntaxKindCounter": {
666
+ "10": 2,
667
+ "75": 8,
668
+ "104": 1,
669
+ "193": 1,
670
+ "194": 2,
671
+ "197": 1,
672
+ "225": 1,
673
+ "242": 1,
674
+ "243": 1,
675
+ "254": 1,
676
+ "255": 1,
677
+ "256": 1,
678
+ "281": 1,
679
+ "282": 1,
680
+ "290": 1
681
+ },
682
+ "fqnsFingerprint": "9f23e3e8621fe7b951e3d3d29c0dffe5b25784378000ea2898ac9bbcb9940caf"
683
+ },
684
+ "d68e073610bf9fd607121c4de45d0a9eefee66b21670bbc4644342c02bd7395d": {
685
+ "translations": {
686
+ "python": {
687
+ "source": "import aws_cdk.aws_msk_alpha as msk\n\ncluster = msk.cluster(self, \"cluster\", {\n (SpreadAssignment ...\n encryptionInTransit\n encryption_in_transit)\n}, {\n \"client_broker\": msk.ClientBrokerEncryption.TLS\n}, client_authentication, msk.ClientAuthentication.sasl(\n scram=True\n))",
688
+ "version": "1"
689
+ },
690
+ "csharp": {
691
+ "source": "using Amazon.CDK.AWS.MSK.Alpha;\n\nvar cluster = new Cluster(this, \"cluster\", new Struct {\n (SpreadAssignment ...\n encryptionInTransit\n encryptionInTransit)\n}, new Struct {\n ClientBroker = ClientBrokerEncryption.TLS\n}, clientAuthentication, ClientAuthentication.Sasl(new SaslAuthProps {\n Scram = true\n}));",
692
+ "version": "1"
693
+ },
694
+ "java": {
695
+ "source": "import software.amazon.awscdk.services.msk.alpha.*;\n\nObject cluster = new cluster(this, \"cluster\", Map.of(\n (SpreadAssignment ...\n encryptionInTransit\n encryptionInTransit)), Map.of(\n \"clientBroker\", ClientBrokerEncryption.TLS), clientAuthentication, ClientAuthentication.sasl(SaslAuthProps.builder()\n .scram(true)\n .build()));",
696
+ "version": "1"
697
+ },
698
+ "$": {
699
+ "source": "import * as msk from \"@aws-cdk/aws-msk-alpha\"\n\nconst cluster = new msk.cluster(this, \"cluster\", {\n ...\n encryptionInTransit: {\n clientBroker: msk.ClientBrokerEncryption.TLS,\n },\n clientAuthentication: msk.ClientAuthentication.sasl({\n scram: true,\n }),\n})",
700
+ "version": "0"
701
+ }
702
+ },
703
+ "location": {
704
+ "api": {
705
+ "api": "type",
706
+ "fqn": "@aws-cdk/aws-msk-alpha.SaslAuthProps"
707
+ },
708
+ "field": {
709
+ "field": "example"
710
+ }
711
+ },
712
+ "didCompile": false,
713
+ "fqnsReferenced": [
714
+ "@aws-cdk/aws-msk-alpha.ClientAuthentication",
715
+ "@aws-cdk/aws-msk-alpha.ClientAuthentication#sasl",
716
+ "@aws-cdk/aws-msk-alpha.ClientBrokerEncryption",
717
+ "@aws-cdk/aws-msk-alpha.ClientBrokerEncryption#TLS",
718
+ "@aws-cdk/aws-msk-alpha.SaslAuthProps"
719
+ ],
720
+ "fullSource": "import * as msk from \"@aws-cdk/aws-msk-alpha\"\n\nconst cluster = new msk.cluster(this, \"cluster\", {\n ...\n encryptionInTransit: {\n clientBroker: msk.ClientBrokerEncryption.TLS,\n },\n clientAuthentication: msk.ClientAuthentication.sasl({\n scram: true,\n }),\n})",
721
+ "syntaxKindCounter": {
722
+ "10": 2,
723
+ "75": 14,
724
+ "104": 1,
725
+ "106": 1,
726
+ "193": 3,
727
+ "194": 5,
728
+ "196": 1,
729
+ "197": 1,
730
+ "225": 1,
731
+ "242": 1,
732
+ "243": 1,
733
+ "254": 1,
734
+ "255": 1,
735
+ "256": 1,
736
+ "281": 2,
737
+ "283": 1,
738
+ "290": 1
739
+ },
740
+ "fqnsFingerprint": "d6d3d03f55f7d623d0e33912d9f103782dd1cee34a145cd4e74ecf73c980a3fe"
741
+ },
742
+ "d3d0ae1b223997ca0853812e111fa44cbc96c58d2b12626416a77ce5c910627d": {
743
+ "translations": {
744
+ "python": {
745
+ "source": "import aws_cdk.aws_msk_alpha as msk\nimport aws_cdk.aws_acmpca as acmpca\n\ncluster = msk.Cluster(self, \"Cluster\", msk.ClusterProps(\n (SpreadAssignment ...\n encryptionInTransit\n encryption_in_transit)\n), {\n \"client_broker\": msk.ClientBrokerEncryption.TLS\n}, client_authentication, msk.ClientAuthentication.tls(\n certificate_authorities=[\n acmpca.CertificateAuthority.from_certificate_authority_arn(stack, \"CertificateAuthority\", \"arn:aws:acm-pca:us-west-2:1234567890:certificate-authority/11111111-1111-1111-1111-111111111111\")\n ]\n))",
746
+ "version": "1"
747
+ },
748
+ "csharp": {
749
+ "source": "using Amazon.CDK.AWS.MSK.Alpha;\nusing Amazon.CDK.AWS.ACMPCA;\n\nCluster cluster = new Cluster(this, \"Cluster\", new ClusterProps {\n (SpreadAssignment ...\n encryptionInTransit\n encryptionInTransit)\n}, new Dictionary<string, ClientBrokerEncryption> {\n { \"clientBroker\", ClientBrokerEncryption.TLS }\n}, clientAuthentication, ClientAuthentication.Tls(new TlsAuthProps {\n CertificateAuthorities = new [] { CertificateAuthority.FromCertificateAuthorityArn(stack, \"CertificateAuthority\", \"arn:aws:acm-pca:us-west-2:1234567890:certificate-authority/11111111-1111-1111-1111-111111111111\") }\n}));",
750
+ "version": "1"
751
+ },
752
+ "java": {
753
+ "source": "import software.amazon.awscdk.services.msk.alpha.*;\nimport software.amazon.awscdk.services.acmpca.*;\n\nCluster cluster = new Cluster(this, \"Cluster\", ClusterProps.builder()\n (SpreadAssignment ...\n encryptionInTransit\n encryptionInTransit)\n .build(), Map.of(\n \"clientBroker\", ClientBrokerEncryption.TLS), clientAuthentication, ClientAuthentication.tls(TlsAuthProps.builder()\n .certificateAuthorities(List.of(CertificateAuthority.fromCertificateAuthorityArn(stack, \"CertificateAuthority\", \"arn:aws:acm-pca:us-west-2:1234567890:certificate-authority/11111111-1111-1111-1111-111111111111\")))\n .build()));",
754
+ "version": "1"
755
+ },
756
+ "$": {
757
+ "source": "import * as msk from \"@aws-cdk/aws-msk-alpha\"\nimport * as acmpca from \"aws-cdk-lib/aws-acmpca\"\n\nconst cluster = new msk.Cluster(this, 'Cluster', {\n ...\n encryptionInTransit: {\n clientBroker: msk.ClientBrokerEncryption.TLS,\n },\n clientAuthentication: msk.ClientAuthentication.tls({\n certificateAuthorities: [\n acmpca.CertificateAuthority.fromCertificateAuthorityArn(\n stack,\n \"CertificateAuthority\",\n \"arn:aws:acm-pca:us-west-2:1234567890:certificate-authority/11111111-1111-1111-1111-111111111111\"\n ),\n ],\n }),\n });\n});",
758
+ "version": "0"
759
+ }
760
+ },
761
+ "location": {
762
+ "api": {
763
+ "api": "type",
764
+ "fqn": "@aws-cdk/aws-msk-alpha.TlsAuthProps"
765
+ },
766
+ "field": {
767
+ "field": "example"
768
+ }
769
+ },
770
+ "didCompile": false,
771
+ "fqnsReferenced": [
772
+ "@aws-cdk/aws-msk-alpha.ClientAuthentication",
773
+ "@aws-cdk/aws-msk-alpha.ClientAuthentication#tls",
774
+ "@aws-cdk/aws-msk-alpha.ClientBrokerEncryption",
775
+ "@aws-cdk/aws-msk-alpha.ClientBrokerEncryption#TLS",
776
+ "@aws-cdk/aws-msk-alpha.Cluster",
777
+ "@aws-cdk/aws-msk-alpha.ClusterProps",
778
+ "@aws-cdk/aws-msk-alpha.TlsAuthProps",
779
+ "aws-cdk-lib.aws_acmpca.CertificateAuthority",
780
+ "aws-cdk-lib.aws_acmpca.CertificateAuthority#fromCertificateAuthorityArn"
781
+ ],
782
+ "fullSource": "import * as msk from \"@aws-cdk/aws-msk-alpha\"\nimport * as acmpca from \"aws-cdk-lib/aws-acmpca\"\n\nconst cluster = new msk.Cluster(this, 'Cluster', {\n ...\n encryptionInTransit: {\n clientBroker: msk.ClientBrokerEncryption.TLS,\n },\n clientAuthentication: msk.ClientAuthentication.tls({\n certificateAuthorities: [\n acmpca.CertificateAuthority.fromCertificateAuthorityArn(\n stack,\n \"CertificateAuthority\",\n \"arn:aws:acm-pca:us-west-2:1234567890:certificate-authority/11111111-1111-1111-1111-111111111111\"\n ),\n ],\n }),\n });\n});",
783
+ "syntaxKindCounter": {
784
+ "10": 5,
785
+ "75": 19,
786
+ "104": 1,
787
+ "192": 1,
788
+ "193": 3,
789
+ "194": 7,
790
+ "196": 2,
791
+ "197": 1,
792
+ "224": 2,
793
+ "225": 1,
794
+ "242": 1,
795
+ "243": 1,
796
+ "254": 2,
797
+ "255": 2,
798
+ "256": 2,
799
+ "281": 2,
800
+ "283": 1,
801
+ "290": 1
802
+ },
803
+ "fqnsFingerprint": "474871a19edda892915562c7921bd05fecaec0a50b4fb3c32a88e0b00d7c2d83"
804
+ }
805
+ }
806
+ }
@@ -28,7 +28,7 @@ class KafkaVersion {
28
28
  }
29
29
  exports.KafkaVersion = KafkaVersion;
30
30
  _a = JSII_RTTI_SYMBOL_1;
31
- KafkaVersion[_a] = { fqn: "@aws-cdk/aws-msk-alpha.KafkaVersion", version: "2.0.0-alpha.9" };
31
+ KafkaVersion[_a] = { fqn: "@aws-cdk/aws-msk-alpha.KafkaVersion", version: "2.2.0-alpha.0" };
32
32
  /**
33
33
  * (experimental) Kafka version 1.1.1.
34
34
  *
package/lib/cluster.js CHANGED
@@ -87,7 +87,7 @@ class ClientAuthentication {
87
87
  }
88
88
  exports.ClientAuthentication = ClientAuthentication;
89
89
  _a = JSII_RTTI_SYMBOL_1;
90
- ClientAuthentication[_a] = { fqn: "@aws-cdk/aws-msk-alpha.ClientAuthentication", version: "2.0.0-alpha.9" };
90
+ ClientAuthentication[_a] = { fqn: "@aws-cdk/aws-msk-alpha.ClientAuthentication", version: "2.2.0-alpha.0" };
91
91
  /**
92
92
  * (experimental) Create a MSK Cluster.
93
93
  *
@@ -436,5 +436,5 @@ class Cluster extends ClusterBase {
436
436
  }
437
437
  exports.Cluster = Cluster;
438
438
  _b = JSII_RTTI_SYMBOL_1;
439
- Cluster[_b] = { fqn: "@aws-cdk/aws-msk-alpha.Cluster", version: "2.0.0-alpha.9" };
439
+ Cluster[_b] = { fqn: "@aws-cdk/aws-msk-alpha.Cluster", version: "2.2.0-alpha.0" };
440
440
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2x1c3Rlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNsdXN0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsMkNBQTJDO0FBQzNDLDJDQUEyQztBQUMzQywyQ0FBMkM7QUFHM0MsaUVBQWlFO0FBQ2pFLG9DQUFvQztBQUNwQyxtREFBbUQ7QUFFbkQsOERBQTREO0FBRTVELGlEQUFpRDtBQVdqRDs7R0FFRztBQUNILE1BQWUsV0FBWSxTQUFRLElBQUksQ0FBQyxRQUFROzs7Ozs7SUFPOUMsSUFBVyxXQUFXO1FBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3RCLE1BQU0sSUFBSSxLQUFLLENBQUMsdURBQXVELENBQUMsQ0FBQztTQUMxRTtRQUNELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztLQUMxQjtDQUNGOzs7Ozs7O0FBbURELElBQVksc0JBU1g7QUFURCxXQUFZLHNCQUFzQjtJQUVoQyw2Q0FBbUIsQ0FBQTtJQUVuQixtREFBeUIsQ0FBQTtJQUV6Qix1RUFBNkMsQ0FBQTtJQUU3Qyw2RUFBbUQsQ0FBQTtBQUNyRCxDQUFDLEVBVFcsc0JBQXNCLEdBQXRCLDhCQUFzQixLQUF0Qiw4QkFBc0IsUUFTakM7Ozs7OztBQStCRCxJQUFZLHNCQU9YO0FBUEQsV0FBWSxzQkFBc0I7SUFFaEMscUNBQVcsQ0FBQTtJQUVYLHlEQUErQixDQUFBO0lBRS9CLGlEQUF1QixDQUFBO0FBQ3pCLENBQUMsRUFQVyxzQkFBc0IsR0FBdEIsOEJBQXNCLEtBQXRCLDhCQUFzQixRQU9qQzs7Ozs7O0FBMkJELE1BQWEsb0JBQW9CO0lBVy9COzs7T0FHRztJQUNILFlBQ2tCLFNBQXlCLEVBQ3pCLFFBQXVCO1FBRHZCLGNBQVMsR0FBVCxTQUFTLENBQWdCO1FBQ3pCLGFBQVEsR0FBUixRQUFRLENBQWU7S0FDckM7Ozs7OztJQWhCRyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQW9COztRQUNyQyxPQUFPLElBQUksb0JBQW9CLENB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QTJCO29CQUNuQyxVQUFVLEVBQUU7d0JBQ1YsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO3dCQUMzQixhQUFhLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQztxQkFDekQ7b0JBQ0Qsa0JBQWtCLEVBQUUsRUFBRSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUM7aUJBQzVEO2dCQUNELE1BQU0sRUFBRSxFQUFFLENBQUMsdUJBQXVCLENBQUMsY0FBYyxDQUFDO29CQUNoRCxJQUFJLEdBQUcsQ0FBQyxlQUFlLENBQUM7d0JBQ3RCLE9BQU8sRUFBRSxDQUFDLGlCQUFpQixDQUFDO3dCQUM1QixTQUFTLEVBQUUsT0FBQyxJQUFJLENBQUMsMEJBQTBCLDBDQUFFLE1BQU0sQ0FBQztxQkFDckQsQ0FBQztvQkFDRixJQUFJLEdBQUcsQ0FBQyxlQUFlLENBQUM7d0JBQ3RCLE9BQU8sRUFBRSxDQUFDLGlDQUFpQyxDQUFDO3dCQUM1QyxTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO3FCQUM3QixDQUFDO2lCQUNILENBQUM7YUFDSCxDQUFDLENBQUM7U0FDSjthQUFNO1lBQ0wsTUFBTSxLQUFLLENBQ1QsaUZBQWlGLENBQ2xGLENBQUM7U0FDSDtLQUNGOztBQXZYSCwwQkF3WEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBhY21wY2EgZnJvbSAnYXdzLWNkay1saWIvYXdzLWFjbXBjYSc7XG5pbXBvcnQgKiBhcyBlYzIgZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjMic7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgKiBhcyBrbXMgZnJvbSAnYXdzLWNkay1saWIvYXdzLWttcyc7XG5pbXBvcnQgKiBhcyBsb2dzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sb2dzJztcbmltcG9ydCAqIGFzIHMzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMyc7XG5pbXBvcnQgKiBhcyBzZWNyZXRzbWFuYWdlciBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtc2VjcmV0c21hbmFnZXInO1xuaW1wb3J0ICogYXMgY29yZSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgKiBhcyBjciBmcm9tICdhd3MtY2RrLWxpYi9jdXN0b20tcmVzb3VyY2VzJztcbmltcG9ydCAqIGFzIGNvbnN0cnVjdHMgZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBhZGRyZXNzT2YgfSBmcm9tICdjb25zdHJ1Y3RzL2xpYi9wcml2YXRlL3VuaXF1ZWlkJztcbmltcG9ydCB7IEthZmthVmVyc2lvbiB9IGZyb20gJy4vJztcbmltcG9ydCB7IENmbkNsdXN0ZXIgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbXNrJztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBpbnRlcmZhY2UgSUNsdXN0ZXIgZXh0ZW5kcyBjb3JlLklSZXNvdXJjZSwgZWMyLklDb25uZWN0YWJsZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgY2x1c3RlckFybjogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBjbHVzdGVyTmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIEEgbmV3IG9yIGltcG9ydGVkIE1TSyBDbHVzdGVyLlxuICovXG5hYnN0cmFjdCBjbGFzcyBDbHVzdGVyQmFzZSBleHRlbmRzIGNvcmUuUmVzb3VyY2UgaW1wbGVtZW50cyBJQ2x1c3RlciB7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBjbHVzdGVyQXJuOiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBjbHVzdGVyTmFtZTogc3RyaW5nO1xuICAvKiogQGludGVybmFsICovXG4gIHByb3RlY3RlZCBfY29ubmVjdGlvbnM6IGVjMi5Db25uZWN0aW9ucyB8IHVuZGVmaW5lZDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIGdldCBjb25uZWN0aW9ucygpOiBlYzIuQ29ubmVjdGlvbnMge1xuICAgIGlmICghdGhpcy5fY29ubmVjdGlvbnMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQW4gaW1wb3J0ZWQgQ2x1c3RlciBjYW5ub3QgbWFuYWdlIGl0cyBzZWN1cml0eSBncm91cHMnKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2Nvbm5lY3Rpb25zO1xuICB9XG59XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBpbnRlcmZhY2UgQ2x1c3RlclByb3BzIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGNsdXN0ZXJOYW1lOiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkga2Fma2FWZXJzaW9uOiBLYWZrYVZlcnNpb247XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBudW1iZXJPZkJyb2tlck5vZGVzPzogbnVtYmVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSB2cGM6IGVjMi5JVnBjO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSB2cGNTdWJuZXRzPzogZWMyLlN1Ym5ldFNlbGVjdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgaW5zdGFuY2VUeXBlPzogZWMyLkluc3RhbmNlVHlwZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBzZWN1cml0eUdyb3Vwcz86IGVjMi5JU2VjdXJpdHlHcm91cFtdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBlYnNTdG9yYWdlSW5mbz86IEVic1N0b3JhZ2VJbmZvO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgY29uZmlndXJhdGlvbkluZm8/OiBDbHVzdGVyQ29uZmlndXJhdGlvbkluZm87XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgbW9uaXRvcmluZz86IE1vbml0b3JpbmdDb25maWd1cmF0aW9uO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgbG9nZ2luZz86IEJyb2tlckxvZ2dpbmc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgZW5jcnlwdGlvbkluVHJhbnNpdD86IEVuY3J5cHRpb25JblRyYW5zaXRDb25maWc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGNsaWVudEF1dGhlbnRpY2F0aW9uPzogQ2xpZW50QXV0aGVudGljYXRpb247XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgcmVtb3ZhbFBvbGljeT86IGNvcmUuUmVtb3ZhbFBvbGljeTtcbn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGludGVyZmFjZSBFYnNTdG9yYWdlSW5mbyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgdm9sdW1lU2l6ZT86IG51bWJlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGVuY3J5cHRpb25LZXk/OiBrbXMuSUtleTtcbn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgaW50ZXJmYWNlIENsdXN0ZXJDb25maWd1cmF0aW9uSW5mbyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgYXJuOiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgcmV2aXNpb246IG51bWJlcjtcbn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGVudW0gQ2x1c3Rlck1vbml0b3JpbmdMZXZlbCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIERFRkFVTFQgPSAnREVGQVVMVCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIFBFUl9CUk9LRVIgPSAnUEVSX0JST0tFUicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBQRVJfVE9QSUNfUEVSX0JST0tFUiA9ICdQRVJfVE9QSUNfUEVSX0JST0tFUicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgUEVSX1RPUElDX1BFUl9QQVJUSVRJT04gPSAnUEVSX1RPUElDX1BFUl9QQVJUSVRJT04nLFxufVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGludGVyZmFjZSBNb25pdG9yaW5nQ29uZmlndXJhdGlvbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBjbHVzdGVyTW9uaXRvcmluZ0xldmVsPzogQ2x1c3Rlck1vbml0b3JpbmdMZXZlbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGVuYWJsZVByb21ldGhldXNKbXhFeHBvcnRlcj86IGJvb2xlYW47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGVuYWJsZVByb21ldGhldXNOb2RlRXhwb3J0ZXI/OiBib29sZWFuO1xufVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGludGVyZmFjZSBCcm9rZXJMb2dnaW5nIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBmaXJlaG9zZURlbGl2ZXJ5U3RyZWFtTmFtZT86IHN0cmluZztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGNsb3Vkd2F0Y2hMb2dHcm91cD86IGxvZ3MuSUxvZ0dyb3VwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBzMz86IFMzTG9nZ2luZ0NvbmZpZ3VyYXRpb247XG59XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBpbnRlcmZhY2UgUzNMb2dnaW5nQ29uZmlndXJhdGlvbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBidWNrZXQ6IHMzLklCdWNrZXQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgcHJlZml4Pzogc3RyaW5nO1xufVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGVudW0gQ2xpZW50QnJva2VyRW5jcnlwdGlvbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIFRMUyA9ICdUTFMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgVExTX1BMQUlOVEVYVCA9ICdUTFNfUExBSU5URVhUJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIFBMQUlOVEVYVCA9ICdQTEFJTlRFWFQnLFxufVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgaW50ZXJmYWNlIEVuY3J5cHRpb25JblRyYW5zaXRDb25maWcge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGNsaWVudEJyb2tlcj86IENsaWVudEJyb2tlckVuY3J5cHRpb247XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgZW5hYmxlSW5DbHVzdGVyPzogYm9vbGVhbjtcbn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBpbnRlcmZhY2UgU2FzbEF1dGhQcm9wcyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgc2NyYW0/OiBib29sZWFuO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgaWFtPzogYm9vbGVhbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGtleT86IGttcy5JS2V5O1xufVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgaW50ZXJmYWNlIFRsc0F1dGhQcm9wcyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgY2VydGlmaWNhdGVBdXRob3JpdGllcz86IGFjbXBjYS5JQ2VydGlmaWNhdGVBdXRob3JpdHlbXTtcbn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBjbGFzcyBDbGllbnRBdXRoZW50aWNhdGlvbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHN0YXRpYyBzYXNsKHByb3BzOiBTYXNsQXV0aFByb3BzKTogQ2xpZW50QXV0aGVudGljYXRpb24ge1xuICAgIHJldHVybiBuZXcgQ2xpZW50QXV0aGVudGljYXRpb24ocHJvcHMsIHVuZGVmaW5lZCk7XG4gIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHN0YXRpYyB0bHMocHJvcHM6IFRsc0F1dGhQcm9wcyk6IENsaWVudEF1dGhlbnRpY2F0aW9uIHtcbiAgICByZXR1cm4gbmV3IENsaWVudEF1dGhlbnRpY2F0aW9uKHVuZGVmaW5lZCwgcHJvcHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBzYXNsUHJvcHMgLSBwcm9wZXJ0aWVzIGZvciBTQVNMIGF1dGhlbnRpY2F0aW9uXG4gICAqIEBwYXJhbSB0bHNQcm9wcyAtIHByb3BlcnRpZXMgZm9yIFRMUyBhdXRoZW50aWNhdGlvblxuICAgKi9cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgc2FzbFByb3BzPzogU2FzbEF1dGhQcm9wcyxcbiAgICBwdWJsaWMgcmVhZG9ubHkgdGxzUHJvcHM/OiBUbHNBdXRoUHJvcHMsXG4gICkge31cbn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgY2xhc3MgQ2x1c3RlciBleHRlbmRzIENsdXN0ZXJCYXNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUNsdXN0ZXJBcm4oXG4gICAgc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgY2x1c3RlckFybjogc3RyaW5nLFxuICApOiBJQ2x1c3RlciB7XG4gICAgY2xhc3MgSW1wb3J0IGV4dGVuZHMgQ2x1c3RlckJhc2Uge1xuICAgICAgcHVibGljIHJlYWRvbmx5IGNsdXN0ZXJBcm4gPSBjbHVzdGVyQXJuO1xuICAgICAgcHVibGljIHJlYWRvbmx5IGNsdXN0ZXJOYW1lID0gY29yZS5Gbi5zZWxlY3QoMSwgY29yZS5Gbi5zcGxpdCgnLycsIGNsdXN0ZXJBcm4pKTsgLy8gWydhcm46cGFydGl0aW9uOmthZmthOnJlZ2lvbjphY2NvdW50LWlkJywgY2x1c3Rlck5hbWUsIGNsdXN0ZXJJZF1cbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEltcG9ydChzY29wZSwgaWQpO1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IGNsdXN0ZXJBcm46IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGNsdXN0ZXJOYW1lOiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHJlYWRvbmx5IHNhc2xTY3JhbUF1dGhlbnRpY2F0aW9uS2V5Pzoga21zLklLZXk7XG4gIHByaXZhdGUgX2NsdXN0ZXJEZXNjcmlwdGlvbj86IGNyLkF3c0N1c3RvbVJlc291cmNlO1xuICBwcml2YXRlIF9jbHVzdGVyQm9vdHN0cmFwQnJva2Vycz86IGNyLkF3c0N1c3RvbVJlc291cmNlO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBjb25zdHJ1Y3RzLkNvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IENsdXN0ZXJQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgcGh5c2ljYWxOYW1lOiBwcm9wcy5jbHVzdGVyTmFtZSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHN1Ym5ldFNlbGVjdGlvbiA9IHByb3BzLnZwYy5zZWxlY3RTdWJuZXRzKHByb3BzLnZwY1N1Ym5ldHMpO1xuXG4gICAgdGhpcy5fY29ubmVjdGlvbnMgPSBuZXcgZWMyLkNvbm5lY3Rpb25zKHtcbiAgICAgIHNlY3VyaXR5R3JvdXBzOiBwcm9wcy5zZWN1cml0eUdyb3VwcyA/PyBbXG4gICAgICAgIG5ldyBlYzIuU2VjdXJpdHlHcm91cCh0aGlzLCAnU2VjdXJpdHlHcm91cCcsIHtcbiAgICAgICAgICBkZXNjcmlwdGlvbjogJ01TSyBzZWN1cml0eSBncm91cCcsXG4gICAgICAgICAgdnBjOiBwcm9wcy52cGMsXG4gICAgICAgIH0pLFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIGlmIChzdWJuZXRTZWxlY3Rpb24uc3VibmV0cy5sZW5ndGggPCAyKSB7XG4gICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgYENsdXN0ZXIgcmVxdWlyZXMgYXQgbGVhc3QgMiBzdWJuZXRzLCBnb3QgJHtzdWJuZXRTZWxlY3Rpb24uc3VibmV0cy5sZW5ndGh9YCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgIWNvcmUuVG9rZW4uaXNVbnJlc29sdmVkKHByb3BzLmNsdXN0ZXJOYW1lKSAmJlxuICAgICAgIS9eW2EtekEtWjAtOV0rJC8udGVzdChwcm9wcy5jbHVzdGVyTmFtZSkgJiZcbiAgICAgIHByb3BzLmNsdXN0ZXJOYW1lLmxlbmd0aCA+IDY0XG4gICAgKSB7XG4gICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgJ1RoZSBjbHVzdGVyIG5hbWUgbXVzdCBvbmx5IGNvbnRhaW4gYWxwaGFudW1lcmljIGNoYXJhY3RlcnMgYW5kIGhhdmUgYSBtYXhpbXVtIGxlbmd0aCBvZiA2NCBjaGFyYWN0ZXJzLicgK1xuICAgICAgICAgIGBnb3Q6ICcke3Byb3BzLmNsdXN0ZXJOYW1lfS4gbGVuZ3RoOiAke3Byb3BzLmNsdXN0ZXJOYW1lLmxlbmd0aH0nYCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgcHJvcHMuY2xpZW50QXV0aGVudGljYXRpb24/LnNhc2xQcm9wcz8uaWFtICYmXG4gICAgICBwcm9wcy5jbGllbnRBdXRoZW50aWNhdGlvbj8uc2FzbFByb3BzPy5zY3JhbVxuICAgICkge1xuICAgICAgdGhyb3cgRXJyb3IoJ09ubHkgb25lIGNsaWVudCBhdXRoZW50aWNhdGlvbiBtZXRob2QgY2FuIGJlIGVuYWJsZWQuJyk7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgcHJvcHMuZW5jcnlwdGlvbkluVHJhbnNpdD8uY2xpZW50QnJva2VyID09PVxuICAgICAgICBDbGllbnRCcm9rZXJFbmNyeXB0aW9uLlBMQUlOVEVYVCAmJlxuICAgICAgcHJvcHMuY2xpZW50QXV0aGVudGljYXRpb25cbiAgICApIHtcbiAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAnVG8gZW5hYmxlIGNsaWVudCBhdXRoZW50aWNhdGlvbiwgeW91IG11c3QgZW5hYmxlZCBUTFMtZW5jcnlwdGVkIHRyYWZmaWMgYmV0d2VlbiBjbGllbnRzIGFuZCBicm9rZXJzLicsXG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICBwcm9wcy5lbmNyeXB0aW9uSW5UcmFuc2l0Py5jbGllbnRCcm9rZXIgPT09XG4gICAgICAgIENsaWVudEJyb2tlckVuY3J5cHRpb24uVExTX1BMQUlOVEVYVCAmJlxuICAgICAgKHByb3BzLmNsaWVudEF1dGhlbnRpY2F0aW9uPy5zYXNsUHJvcHM/LnNjcmFtIHx8XG4gICAgICAgIHByb3BzLmNsaWVudEF1dGhlbnRpY2F0aW9uPy5zYXNsUHJvcHM/LmlhbSlcbiAgICApIHtcbiAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAnVG8gZW5hYmxlIFNBU0wvU0NSQU0gb3IgSUFNIGF1dGhlbnRpY2F0aW9uLCB5b3UgbXVzdCBvbmx5IGFsbG93IFRMUy1lbmNyeXB0ZWQgdHJhZmZpYyBiZXR3ZWVuIGNsaWVudHMgYW5kIGJyb2tlcnMuJyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3Qgdm9sdW1lU2l6ZSA9XG4gICAgICBwcm9wcy5lYnNTdG9yYWdlSW5mbz8udm9sdW1lU2l6ZSA/PyAxMDAwO1xuICAgIC8vIE1pbmltdW06IDEgR2lCLCBtYXhpbXVtOiAxNjM4NCBHaUJcbiAgICBpZiAodm9sdW1lU2l6ZSA8IDEgfHwgdm9sdW1lU2l6ZSA+IDE2Mzg0KSB7XG4gICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgJ0VCUyB2b2x1bWUgc2l6ZSBzaG91bGQgYmUgaW4gdGhlIHJhbmdlIDEtMTYzODQnLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBpbnN0YW5jZVR5cGUgPSBwcm9wcy5pbnN0YW5jZVR5cGVcbiAgICAgID8gdGhpcy5tc2tJbnN0YW5jZVR5cGUocHJvcHMuaW5zdGFuY2VUeXBlKVxuICAgICAgOiB0aGlzLm1za0luc3RhbmNlVHlwZShcbiAgICAgICAgZWMyLkluc3RhbmNlVHlwZS5vZihlYzIuSW5zdGFuY2VDbGFzcy5NNSwgZWMyLkluc3RhbmNlU2l6ZS5MQVJHRSksXG4gICAgICApO1xuXG4gICAgY29uc3QgZW5jcnlwdGlvbkF0UmVzdCA9IHByb3BzLmVic1N0b3JhZ2VJbmZvPy5lbmNyeXB0aW9uS2V5XG4gICAgICA/IHtcbiAgICAgICAgZGF0YVZvbHVtZUttc0tleUlkOlxuICAgICAgICAgICAgcHJvcHMuZWJzU3RvcmFnZUluZm8uZW5jcnlwdGlvbktleS5rZXlJZCxcbiAgICAgIH1cbiAgICAgIDogdW5kZWZpbmVkOyAvLyBNU0sgd2lsbCBjcmVhdGUgdGhlIG1hbmFnZWQga2V5XG5cbiAgICBjb25zdCBlbmNyeXB0aW9uSW5UcmFuc2l0ID0ge1xuICAgICAgY2xpZW50QnJva2VyOlxuICAgICAgICBwcm9wcy5lbmNyeXB0aW9uSW5UcmFuc2l0Py5jbGllbnRCcm9rZXIgPz9cbiAgICAgICAgQ2xpZW50QnJva2VyRW5jcnlwdGlvbi5UTFMsXG4gICAgICBpbkNsdXN0ZXI6IHByb3BzLmVuY3J5cHRpb25JblRyYW5zaXQ/LmVuYWJsZUluQ2x1c3RlciA/PyB0cnVlLFxuICAgIH07XG5cbiAgICBjb25zdCBvcGVuTW9uaXRvcmluZyA9XG4gICAgICBwcm9wcy5tb25pdG9yaW5nPy5lbmFibGVQcm9tZXRoZXVzSm14RXhwb3J0ZXIgfHxcbiAgICAgIHByb3BzLm1vbml0b3Jpbmc/LmVuYWJsZVByb21ldGhldXNOb2RlRXhwb3J0ZXJcbiAgICAgICAgPyB7XG4gICAgICAgICAgcHJvbWV0aGV1czoge1xuICAgICAgICAgICAgam14RXhwb3J0ZXI6IHByb3BzLm1vbml0b3Jpbmc/LmVuYWJsZVByb21ldGhldXNKbXhFeHBvcnRlclxuICAgICAgICAgICAgICA/IHsgZW5hYmxlZEluQnJva2VyOiB0cnVlIH1cbiAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBub2RlRXhwb3J0ZXI6IHByb3BzLm1vbml0b3JpbmdcbiAgICAgICAgICAgICAgPy5lbmFibGVQcm9tZXRoZXVzTm9kZUV4cG9ydGVyXG4gICAgICAgICAgICAgID8geyBlbmFibGVkSW5Ccm9rZXI6IHRydWUgfVxuICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgICB9LFxuICAgICAgICB9XG4gICAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgY29uc3QgbG9nZ2luZ0luZm8gPSB7XG4gICAgICBicm9rZXJMb2dzOiB7XG4gICAgICAgIGNsb3VkV2F0Y2hMb2dzOiB7XG4gICAgICAgICAgZW5hYmxlZDpcbiAgICAgICAgICAgIHByb3BzLmxvZ2dpbmc/LmNsb3Vkd2F0Y2hMb2dHcm91cCAhPT0gdW5kZWZpbmVkLFxuICAgICAgICAgIGxvZ0dyb3VwOlxuICAgICAgICAgICAgcHJvcHMubG9nZ2luZz8uY2xvdWR3YXRjaExvZ0dyb3VwPy5sb2dHcm91cE5hbWUsXG4gICAgICAgIH0sXG4gICAgICAgIGZpcmVob3NlOiB7XG4gICAgICAgICAgZW5hYmxlZDpcbiAgICAgICAgICAgIHByb3BzLmxvZ2dpbmc/LmZpcmVob3NlRGVsaXZlcnlTdHJlYW1OYW1lICE9PVxuICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgIGRlbGl2ZXJ5U3RyZWFtOlxuICAgICAgICAgICAgcHJvcHMubG9nZ2luZz8uZmlyZWhvc2VEZWxpdmVyeVN0cmVhbU5hbWUsXG4gICAgICAgIH0sXG4gICAgICAgIHMzOiB7XG4gICAgICAgICAgZW5hYmxlZDogcHJvcHMubG9nZ2luZz8uczM/LmJ1Y2tldCAhPT0gdW5kZWZpbmVkLFxuICAgICAgICAgIGJ1Y2tldDogcHJvcHMubG9nZ2luZz8uczM/LmJ1Y2tldC5idWNrZXROYW1lLFxuICAgICAgICAgIHByZWZpeDogcHJvcHMubG9nZ2luZz8uczM/LnByZWZpeCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIGlmIChcbiAgICAgIHByb3BzLmNsaWVudEF1dGhlbnRpY2F0aW9uPy5zYXNsUHJvcHM/LnNjcmFtICYmXG4gICAgICBwcm9wcy5jbGllbnRBdXRoZW50aWNhdGlvbj8uc2FzbFByb3BzPy5rZXkgPT09IHVuZGVmaW5lZFxuICAgICkge1xuICAgICAgdGhpcy5zYXNsU2NyYW1BdXRoZW50aWNhdGlvbktleSA9IG5ldyBrbXMuS2V5KHRoaXMsICdTQVNMS2V5Jywge1xuICAgICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgICAnVXNlZCBmb3IgZW5jcnlwdGluZyBNU0sgc2VjcmV0cyBmb3IgU0FTTC9TQ1JBTSBhdXRoZW50aWNhdGlvbi4nLFxuICAgICAgICBhbGlhczogYG1zay8ke3Byb3BzLmNsdXN0ZXJOYW1lfS9zYXNsL3NjcmFtYCxcbiAgICAgIH0pO1xuXG4gICAgICAvLyBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20va21zL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9zZXJ2aWNlcy1zZWNyZXRzLW1hbmFnZXIuaHRtbCNhc20tcG9saWNpZXNcbiAgICAgIHRoaXMuc2FzbFNjcmFtQXV0aGVudGljYXRpb25LZXkuYWRkVG9SZXNvdXJjZVBvbGljeShcbiAgICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgIHNpZDpcbiAgICAgICAgICAgICdBbGxvdyBhY2Nlc3MgdGhyb3VnaCBBV1MgU2VjcmV0cyBNYW5hZ2VyIGZvciBhbGwgcHJpbmNpcGFscyBpbiB0aGUgYWNjb3VudCB0aGF0IGFyZSBhdXRob3JpemVkIHRvIHVzZSBBV1MgU2VjcmV0cyBNYW5hZ2VyJyxcbiAgICAgICAgICBwcmluY2lwYWxzOiBbbmV3IGlhbS5BbnlQcmluY2lwYWwoKV0sXG4gICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgJ2ttczpFbmNyeXB0JyxcbiAgICAgICAgICAgICdrbXM6RGVjcnlwdCcsXG4gICAgICAgICAgICAna21zOlJlRW5jcnlwdConLFxuICAgICAgICAgICAgJ2ttczpHZW5lcmF0ZURhdGFLZXkqJyxcbiAgICAgICAgICAgICdrbXM6Q3JlYXRlR3JhbnQnLFxuICAgICAgICAgICAgJ2ttczpEZXNjcmliZUtleScsXG4gICAgICAgICAgXSxcbiAgICAgICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgICAgICAgIGNvbmRpdGlvbnM6IHtcbiAgICAgICAgICAgIFN0cmluZ0VxdWFsczoge1xuICAgICAgICAgICAgICAna21zOlZpYVNlcnZpY2UnOiBgc2VjcmV0c21hbmFnZXIuJHtjb3JlLlN0YWNrLm9mKHRoaXMpLnJlZ2lvbn0uYW1hem9uYXdzLmNvbWAsXG4gICAgICAgICAgICAgICdrbXM6Q2FsbGVyQWNjb3VudCc6IGNvcmUuU3RhY2sub2YodGhpcykuYWNjb3VudCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH1cblxuICAgIGxldCBjbGllbnRBdXRoZW50aWNhdGlvbjtcbiAgICBpZiAocHJvcHMuY2xpZW50QXV0aGVudGljYXRpb24/LnNhc2xQcm9wcz8uaWFtKSB7XG4gICAgICBjbGllbnRBdXRoZW50aWNhdGlvbiA9IHtcbiAgICAgICAgc2FzbDogeyBpYW06IHsgZW5hYmxlZDogcHJvcHMuY2xpZW50QXV0aGVudGljYXRpb24uc2FzbFByb3BzLmlhbSB9IH0sXG4gICAgICB9O1xuICAgIH0gZWxzZSBpZiAocHJvcHMuY2xpZW50QXV0aGVudGljYXRpb24/LnNhc2xQcm9wcz8uc2NyYW0pIHtcbiAgICAgIGNsaWVudEF1dGhlbnRpY2F0aW9uID0ge1xuICAgICAgICBzYXNsOiB7XG4gICAgICAgICAgc2NyYW06IHtcbiAgICAgICAgICAgIGVuYWJsZWQ6IHByb3BzLmNsaWVudEF1dGhlbnRpY2F0aW9uLnNhc2xQcm9wcy5zY3JhbSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgcHJvcHMuY2xpZW50QXV0aGVudGljYXRpb24/LnRsc1Byb3BzPy5jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzICE9PSB1bmRlZmluZWRcbiAgICApIHtcbiAgICAgIGNsaWVudEF1dGhlbnRpY2F0aW9uID0ge1xuICAgICAgICB0bHM6IHtcbiAgICAgICAgICBjZXJ0aWZpY2F0ZUF1dGhvcml0eUFybkxpc3Q6IHByb3BzLmNsaWVudEF1dGhlbnRpY2F0aW9uPy50bHNQcm9wcz8uY2VydGlmaWNhdGVBdXRob3JpdGllcy5tYXAoXG4gICAgICAgICAgICAoY2EpID0+IGNhLmNlcnRpZmljYXRlQXV0aG9yaXR5QXJuLFxuICAgICAgICAgICksXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0IHJlc291cmNlID0gbmV3IENmbkNsdXN0ZXIodGhpcywgJ1Jlc291cmNlJywge1xuICAgICAgY2x1c3Rlck5hbWU6IHByb3BzLmNsdXN0ZXJOYW1lLFxuICAgICAga2Fma2FWZXJzaW9uOiBwcm9wcy5rYWZrYVZlcnNpb24udmVyc2lvbixcbiAgICAgIG51bWJlck9mQnJva2VyTm9kZXM6XG4gICAgICAgIHByb3BzLm51bWJlck9mQnJva2VyTm9kZXMgIT09IHVuZGVmaW5lZCA/XG4gICAgICAgICAgc3VibmV0U2VsZWN0aW9uLmF2YWlsYWJpbGl0eVpvbmVzLmxlbmd0aCAqIHByb3BzLm51bWJlck9mQnJva2VyTm9kZXMgOiBzdWJuZXRTZWxlY3Rpb24uYXZhaWxhYmlsaXR5Wm9uZXMubGVuZ3RoLFxuICAgICAgYnJva2VyTm9kZUdyb3VwSW5mbzoge1xuICAgICAgICBpbnN0YW5jZVR5cGUsXG4gICAgICAgIGNsaWVudFN1Ym5ldHM6IHN1Ym5ldFNlbGVjdGlvbi5zdWJuZXRJZHMsXG4gICAgICAgIHNlY3VyaXR5R3JvdXBzOiB0aGlzLmNvbm5lY3Rpb25zLnNlY3VyaXR5R3JvdXBzLm1hcChcbiAgICAgICAgICAoZ3JvdXApID0+IGdyb3VwLnNlY3VyaXR5R3JvdXBJZCxcbiAgICAgICAgKSxcbiAgICAgICAgc3RvcmFnZUluZm86IHtcbiAgICAgICAgICBlYnNTdG9yYWdlSW5mbzoge1xuICAgICAgICAgICAgdm9sdW1lU2l6ZTogdm9sdW1lU2l6ZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGVuY3J5cHRpb25JbmZvOiB7XG4gICAgICAgIGVuY3J5cHRpb25BdFJlc3QsXG4gICAgICAgIGVuY3J5cHRpb25JblRyYW5zaXQsXG4gICAgICB9LFxuICAgICAgY29uZmlndXJhdGlvbkluZm86IHByb3BzLmNvbmZpZ3VyYXRpb25JbmZvLFxuICAgICAgZW5oYW5jZWRNb25pdG9yaW5nOiBwcm9wcy5tb25pdG9yaW5nPy5jbHVzdGVyTW9uaXRvcmluZ0xldmVsLFxuICAgICAgb3Blbk1vbml0b3Jpbmc6IG9wZW5Nb25pdG9yaW5nLFxuICAgICAgbG9nZ2luZ0luZm86IGxvZ2dpbmdJbmZvLFxuICAgICAgY2xpZW50QXV0aGVudGljYXRpb246IGNsaWVudEF1dGhlbnRpY2F0aW9uLFxuICAgIH0pO1xuXG4gICAgdGhpcy5jbHVzdGVyTmFtZSA9IHRoaXMuZ2V0UmVzb3VyY2VOYW1lQXR0cmlidXRlKFxuICAgICAgY29yZS5Gbi5zZWxlY3QoMSwgY29yZS5Gbi5zcGxpdCgnLycsIHJlc291cmNlLnJlZikpLFxuICAgICk7XG4gICAgdGhpcy5jbHVzdGVyQXJuID0gcmVzb3VyY2UucmVmO1xuXG4gICAgcmVzb3VyY2UuYXBwbHlSZW1vdmFsUG9saWN5KHByb3BzLnJlbW92YWxQb2xpY3ksIHtcbiAgICAgIGRlZmF1bHQ6IGNvcmUuUmVtb3ZhbFBvbGljeS5SRVRBSU4sXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIG1za0luc3RhbmNlVHlwZShpbnN0YW5jZVR5cGU6IGVjMi5JbnN0YW5jZVR5cGUpOiBzdHJpbmcge1xuICAgIHJldHVybiBga2Fma2EuJHtpbnN0YW5jZVR5cGUudG9TdHJpbmcoKX1gO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgWm9vS2VlcGVyIENvbm5lY3Rpb24gc3RyaW5nXG4gICAqXG4gICAqIFVzZXMgYSBDdXN0b20gUmVzb3VyY2UgdG8gbWFrZSBhbiBBUEkgY2FsbCB0byBgZGVzY3JpYmVDbHVzdGVyYCB1c2luZyB0aGUgSmF2YXNjcmlwdCBTREtcbiAgICpcbiAgICogQHBhcmFtIHJlc3BvbnNlRmllbGQgRmllbGQgdG8gcmV0dXJuIGZyb20gQVBJIGNhbGwuIGVnLiBab29rZWVwZXJDb25uZWN0U3RyaW5nLCBab29rZWVwZXJDb25uZWN0U3RyaW5nVGxzXG4gICAqIEByZXR1cm5zIC0gVGhlIGNvbm5lY3Rpb24gc3RyaW5nIHRvIHVzZSB0byBjb25uZWN0IHRvIHRoZSBBcGFjaGUgWm9vS2VlcGVyIGNsdXN0ZXIuXG4gICAqL1xuICBwcml2YXRlIF96b29rZWVwZXJDb25uZWN0aW9uU3RyaW5nKHJlc3BvbnNlRmllbGQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLl9jbHVzdGVyRGVzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuX2NsdXN0ZXJEZXNjcmlwdGlvbiA9IG5ldyBjci5Bd3NDdXN0b21SZXNvdXJjZSh0aGlzLCAnWm9va2VlcGVyQ29ubmVjdCcsIHtcbiAgICAgICAgb25VcGRhdGU6IHtcbiAgICAgICAgICBzZXJ2aWNlOiAnS2Fma2EnLFxuICAgICAgICAgIGFjdGlvbjogJ2Rlc2NyaWJlQ2x1c3RlcicsXG4gICAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgICAgQ2x1c3RlckFybjogdGhpcy5jbHVzdGVyQXJuLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkOiBjci5QaHlzaWNhbFJlc291cmNlSWQub2YoXG4gICAgICAgICAgICAnWm9vS2VlcGVyQ29ubmVjdGlvblN0cmluZycsXG4gICAgICAgICAgKSxcbiAgICAgICAgfSxcbiAgICAgICAgcG9saWN5OiBjci5Bd3NDdXN0b21SZXNvdXJjZVBvbGljeS5mcm9tU2RrQ2FsbHMoe1xuICAgICAgICAgIHJlc291cmNlczogW3RoaXMuY2x1c3RlckFybl0sXG4gICAgICAgIH0pLFxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9jbHVzdGVyRGVzY3JpcHRpb24uZ2V0UmVzcG9uc2VGaWVsZChgQ2x1c3RlckluZm8uJHtyZXNwb25zZUZpZWxkfWApO1xuICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyBnZXQgem9va2VlcGVyQ29ubmVjdGlvblN0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl96b29rZWVwZXJDb25uZWN0aW9uU3RyaW5nKCdab29rZWVwZXJDb25uZWN0U3RyaW5nJyk7XG4gIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIGdldCB6b29rZWVwZXJDb25uZWN0aW9uU3RyaW5nVGxzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3pvb2tlZXBlckNvbm5lY3Rpb25TdHJpbmcoJ1pvb2tlZXBlckNvbm5lY3RTdHJpbmdUbHMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGxpc3Qgb2YgYnJva2VycyB0aGF0IGEgY2xpZW50IGFwcGxpY2F0aW9uIGNhbiB1c2UgdG8gYm9vdHN0cmFwXG4gICAqXG4gICAqIFVzZXMgYSBDdXN0b20gUmVzb3VyY2UgdG8gbWFrZSBhbiBBUEkgY2FsbCB0byBgZ2V0Qm9vdHN0cmFwQnJva2Vyc2AgdXNpbmcgdGhlIEphdmFzY3JpcHQgU0RLXG4gICAqXG4gICAqIEBwYXJhbSByZXNwb25zZUZpZWxkIEZpZWxkIHRvIHJldHVybiBmcm9tIEFQSSBjYWxsLiBlZy4gQm9vdHN0cmFwQnJva2VyU3RyaW5nU2FzbFNjcmFtLCBCb290c3RyYXBCcm9rZXJTdHJpbmdcbiAgICogQHJldHVybnMgLSBBIHN0cmluZyBjb250YWluaW5nIG9uZSBvciBtb3JlIGhvc3RuYW1lOnBvcnQgcGFpcnMuXG4gICAqL1xuICBwcml2YXRlIF9ib290c3RyYXBCcm9rZXJzKHJlc3BvbnNlRmllbGQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLl9jbHVzdGVyQm9vdHN0cmFwQnJva2Vycykge1xuICAgICAgdGhpcy5fY2x1c3RlckJvb3RzdHJhcEJyb2tlcnMgPSBuZXcgY3IuQXdzQ3VzdG9tUmVzb3VyY2UodGhpcywgYEJvb3RzdHJhcEJyb2tlcnMke3Jlc3BvbnNlRmllbGR9YCwge1xuICAgICAgICBvblVwZGF0ZToge1xuICAgICAgICAgIHNlcnZpY2U6ICdLYWZrYScsXG4gICAgICAgICAgYWN0aW9uOiAnZ2V0Qm9vdHN0cmFwQnJva2VycycsXG4gICAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgICAgQ2x1c3RlckFybjogdGhpcy5jbHVzdGVyQXJuLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkOiBjci5QaHlzaWNhbFJlc291cmNlSWQub2YoJ0Jvb3RzdHJhcEJyb2tlcnMnKSxcbiAgICAgICAgfSxcbiAgICAgICAgcG9saWN5OiBjci5Bd3NDdXN0b21SZXNvdXJjZVBvbGljeS5mcm9tU2RrQ2FsbHMoe1xuICAgICAgICAgIHJlc291cmNlczogW3RoaXMuY2x1c3RlckFybl0sXG4gICAgICAgIH0pLFxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9jbHVzdGVyQm9vdHN0cmFwQnJva2Vycy5nZXRSZXNwb25zZUZpZWxkKHJlc3BvbnNlRmllbGQpO1xuXG4gIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgZ2V0IGJvb3RzdHJhcEJyb2tlcnMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fYm9vdHN0cmFwQnJva2VycygnQm9vdHN0cmFwQnJva2VyU3RyaW5nJyk7XG4gIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIGdldCBib290c3RyYXBCcm9rZXJzVGxzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2Jvb3RzdHJhcEJyb2tlcnMoJ0Jvb3RzdHJhcEJyb2tlclN0cmluZ1RscycpO1xuICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgZ2V0IGJvb3RzdHJhcEJyb2tlcnNTYXNsU2NyYW0oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fYm9vdHN0cmFwQnJva2VycygnQm9vdHN0cmFwQnJva2VyU3RyaW5nU2FzbFNjcmFtJyk7XG4gIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIGFkZFVzZXIoLi4udXNlcm5hbWVzOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNhc2xTY3JhbUF1dGhlbnRpY2F0aW9uS2V5KSB7XG4gICAgICBjb25zdCBNU0tfU0VDUkVUX1BSRUZJWCA9ICdBbWF6b25NU0tfJzsgLy8gUmVxdWlyZWRcbiAgICAgIGNvbnN0IHNlY3JldHMgPSB1c2VybmFtZXMubWFwKFxuICAgICAgICAodXNlcm5hbWUpID0+XG4gICAgICAgICAgbmV3IHNlY3JldHNtYW5hZ2VyLlNlY3JldCh0aGlzLCBgS2Fma2FVc2VyJHt1c2VybmFtZX1gLCB7XG4gICAgICAgICAgICBzZWNyZXROYW1lOiBgJHtNU0tfU0VDUkVUX1BSRUZJWH0ke3RoaXMuY2x1c3Rlck5hbWV9XyR7dXNlcm5hbWV9YCxcbiAgICAgICAgICAgIGdlbmVyYXRlU2VjcmV0U3RyaW5nOiB7XG4gICAgICAgICAgICAgIHNlY3JldFN0cmluZ1RlbXBsYXRlOiBKU09OLnN0cmluZ2lmeSh7IHVzZXJuYW1lIH0pLFxuICAgICAgICAgICAgICBnZW5lcmF0ZVN0cmluZ0tleTogJ3Bhc3N3b3JkJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlbmNyeXB0aW9uS2V5OiB0aGlzLnNhc2xTY3JhbUF1dGhlbnRpY2F0aW9uS2V5LFxuICAgICAgICAgIH0pLFxuICAgICAgKTtcblxuICAgICAgbmV3IGNyLkF3c0N1c3RvbVJlc291cmNlKHRoaXMsIGBCYXRjaEFzc29jaWF0ZVNjcmFtU2VjcmV0cyR7YWRkcmVzc09mKHVzZXJuYW1lcyl9YCwge1xuICAgICAgICBvblVwZGF0ZToge1xuICAgICAgICAgIHNlcnZpY2U6ICdLYWZrYScsXG4gICAgICAgICAgYWN0aW9uOiAnYmF0Y2hBc3NvY2lhdGVTY3JhbVNlY3JldCcsXG4gICAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgICAgQ2x1c3RlckFybjogdGhpcy5jbHVzdGVyQXJuLFxuICAgICAgICAgICAgU2VjcmV0QXJuTGlzdDogc2VjcmV0cy5tYXAoKHNlY3JldCkgPT4gc2VjcmV0LnNlY3JldEFybiksXG4gICAgICAgICAgfSxcbiAgICAgICAgICBwaHlzaWNhbFJlc291cmNlSWQ6IGNyLlBoeXNpY2FsUmVzb3VyY2VJZC5vZignQ3JlYXRlVXNlcnMnKSxcbiAgICAgICAgfSxcbiAgICAgICAgcG9saWN5OiBjci5Bd3NDdXN0b21SZXNvdXJjZVBvbGljeS5mcm9tU3RhdGVtZW50cyhbXG4gICAgICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgYWN0aW9uczogWydrbXM6Q3JlYXRlR3JhbnQnXSxcbiAgICAgICAgICAgIHJlc291cmNlczogW3RoaXMuc2FzbFNjcmFtQXV0aGVudGljYXRpb25LZXk/LmtleUFybl0sXG4gICAgICAgICAgfSksXG4gICAgICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgYWN0aW9uczogWydrYWZrYTpCYXRjaEFzc29jaWF0ZVNjcmFtU2VjcmV0J10sXG4gICAgICAgICAgICByZXNvdXJjZXM6IFt0aGlzLmNsdXN0ZXJBcm5dLFxuICAgICAgICAgIH0pLFxuICAgICAgICBdKSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgJ0Nhbm5vdCBjcmVhdGUgdXNlcnMgaWYgYW4gYXV0aGVudGljYXRpb24gS01TIGtleSBoYXMgbm90IGJlZW4gY3JlYXRlZC9wcm92aWRlZC4nLFxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-cdk/aws-msk-alpha",
3
- "version": "2.0.0-alpha.9",
3
+ "version": "2.2.0-alpha.0",
4
4
  "private": false,
5
5
  "description": "The CDK Construct Library for AWS::MSK",
6
6
  "main": "lib/index.js",
@@ -76,18 +76,18 @@
76
76
  },
77
77
  "license": "Apache-2.0",
78
78
  "devDependencies": {
79
- "@aws-cdk/cdk-build-tools": "2.0.0-rc.32",
80
- "@aws-cdk/cdk-integ-tools": "2.0.0-rc.32",
81
- "@aws-cdk/cfn2ts": "2.0.0-rc.32",
82
- "@aws-cdk/pkglint": "2.0.0-rc.32",
83
- "@types/jest": "^27.0.2",
84
- "jest": "^27.3.1",
85
- "aws-cdk-lib": "2.0.0-rc.32",
79
+ "@aws-cdk/cdk-build-tools": "2.2.0",
80
+ "@aws-cdk/cdk-integ-tools": "2.2.0",
81
+ "@aws-cdk/cfn2ts": "2.2.0",
82
+ "@aws-cdk/pkglint": "2.2.0",
83
+ "@types/jest": "^27.0.3",
84
+ "jest": "^27.4.3",
85
+ "aws-cdk-lib": "2.2.0",
86
86
  "constructs": "^10.0.0"
87
87
  },
88
88
  "dependencies": {},
89
89
  "peerDependencies": {
90
- "aws-cdk-lib": "^2.0.0-rc.32",
90
+ "aws-cdk-lib": "^2.2.0",
91
91
  "constructs": "^10.0.0"
92
92
  },
93
93
  "engines": {
@@ -0,0 +1,6 @@
1
+ import { Construct } from "constructs";
2
+ class MyConstruct extends Construct {
3
+ constructor(scope: Construct, id: string) {
4
+ super(scope, id);
5
+ /// here
6
+ } }