@aws-cdk/aws-iot-alpha 2.161.0-alpha.0 → 2.162.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 +539 -3
- package/.jsii.tabl.json.gz +0 -0
- package/.warnings.jsii.js +19 -1
- package/README.md +48 -0
- package/awslint.json +2 -1
- package/lib/audit-configuration.d.ts +182 -0
- package/lib/audit-configuration.js +116 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.js +2 -1
- package/lib/iot-sql.js +1 -1
- package/lib/logging.js +1 -1
- package/lib/topic-rule.js +1 -1
- package/package.json +7 -7
- package/rosetta/default.ts-fixture +1 -0
package/.jsii
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"url": "https://aws.amazon.com"
|
|
9
9
|
},
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"aws-cdk-lib": "^2.
|
|
11
|
+
"aws-cdk-lib": "^2.162.0",
|
|
12
12
|
"constructs": "^10.0.0"
|
|
13
13
|
},
|
|
14
14
|
"dependencyClosure": {
|
|
@@ -3882,7 +3882,7 @@
|
|
|
3882
3882
|
},
|
|
3883
3883
|
"name": "@aws-cdk/aws-iot-alpha",
|
|
3884
3884
|
"readme": {
|
|
3885
|
-
"markdown": "# AWS IoT Construct Library\n<!--BEGIN STABILITY BANNER-->\n\n---\n\n\n\n> The APIs of higher level constructs in this module are experimental and under active development.\n> They are subject to non-backward compatible changes or removal in any future version. These are\n> not subject to the [Semantic Versioning](https://semver.org/) model and breaking changes will be\n> announced in the release notes. This means that while you may use them, you may need to update\n> your source code when upgrading to a newer version of this package.\n\n---\n\n<!--END STABILITY BANNER-->\n\nAWS IoT Core lets you connect billions of IoT devices and route trillions of\nmessages to AWS services without managing infrastructure.\n\n## `TopicRule`\n\nCreate a topic rule that give your devices the ability to interact with AWS services.\nYou can create a topic rule with an action that invoke the Lambda action as following:\n\n```ts\nconst func = new lambda.Function(this, 'MyFunction', {\n runtime: lambda.Runtime.NODEJS_LATEST,\n handler: 'index.handler',\n code: lambda.Code.fromInline(`\n exports.handler = (event) => {\n console.log(\"It is test for lambda action of AWS IoT Rule.\", event);\n };`\n ),\n});\n\nnew iot.TopicRule(this, 'TopicRule', {\n topicRuleName: 'MyTopicRule', // optional\n description: 'invokes the lambda function', // optional\n sql: iot.IotSql.fromStringAsVer20160323(\"SELECT topic(2) as device_id, timestamp() as timestamp FROM 'device/+/data'\"),\n actions: [new actions.LambdaFunctionAction(func)],\n});\n```\n\nOr, you can add an action after constructing the `TopicRule` instance as following:\n\n```ts\ndeclare const func: lambda.Function;\n\nconst topicRule = new iot.TopicRule(this, 'TopicRule', {\n sql: iot.IotSql.fromStringAsVer20160323(\"SELECT topic(2) as device_id, timestamp() as timestamp FROM 'device/+/data'\"),\n});\ntopicRule.addAction(new actions.LambdaFunctionAction(func));\n```\n\nYou can also supply `errorAction` as following,\nand the IoT Rule will trigger it if a rule's action is unable to perform:\n\n```ts\nimport * as logs from 'aws-cdk-lib/aws-logs';\n\nconst logGroup = new logs.LogGroup(this, 'MyLogGroup');\n\nnew iot.TopicRule(this, 'TopicRule', {\n sql: iot.IotSql.fromStringAsVer20160323(\"SELECT topic(2) as device_id, timestamp() as timestamp FROM 'device/+/data'\"),\n errorAction: new actions.CloudWatchLogsAction(logGroup),\n});\n```\n\nIf you wanna make the topic rule disable, add property `enabled: false` as following:\n\n```ts\nnew iot.TopicRule(this, 'TopicRule', {\n sql: iot.IotSql.fromStringAsVer20160323(\"SELECT topic(2) as device_id, timestamp() as timestamp FROM 'device/+/data'\"),\n enabled: false,\n});\n```\n\nSee also [@aws-cdk/aws-iot-actions-alpha](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-iot-actions-alpha-readme.html) for other actions.\n\n## Logging\n\nAWS IoT provides a [logging feature](https://docs.aws.amazon.com/iot/latest/developerguide/configure-logging.html) that allows you to monitor and log AWS IoT activity.\n\nYou can enable IoT logging with the following code:\n\n```ts\nnew iot.Logging(this, 'Logging', {\n logLevel: iot.LogLevel.INFO,\n});\n```\n\n**Note**: All logs are forwarded to the `AWSIotLogsV2` log group in CloudWatch.\n"
|
|
3885
|
+
"markdown": "# AWS IoT Construct Library\n<!--BEGIN STABILITY BANNER-->\n\n---\n\n\n\n> The APIs of higher level constructs in this module are experimental and under active development.\n> They are subject to non-backward compatible changes or removal in any future version. These are\n> not subject to the [Semantic Versioning](https://semver.org/) model and breaking changes will be\n> announced in the release notes. This means that while you may use them, you may need to update\n> your source code when upgrading to a newer version of this package.\n\n---\n\n<!--END STABILITY BANNER-->\n\nAWS IoT Core lets you connect billions of IoT devices and route trillions of\nmessages to AWS services without managing infrastructure.\n\n## `TopicRule`\n\nCreate a topic rule that give your devices the ability to interact with AWS services.\nYou can create a topic rule with an action that invoke the Lambda action as following:\n\n```ts\nconst func = new lambda.Function(this, 'MyFunction', {\n runtime: lambda.Runtime.NODEJS_LATEST,\n handler: 'index.handler',\n code: lambda.Code.fromInline(`\n exports.handler = (event) => {\n console.log(\"It is test for lambda action of AWS IoT Rule.\", event);\n };`\n ),\n});\n\nnew iot.TopicRule(this, 'TopicRule', {\n topicRuleName: 'MyTopicRule', // optional\n description: 'invokes the lambda function', // optional\n sql: iot.IotSql.fromStringAsVer20160323(\"SELECT topic(2) as device_id, timestamp() as timestamp FROM 'device/+/data'\"),\n actions: [new actions.LambdaFunctionAction(func)],\n});\n```\n\nOr, you can add an action after constructing the `TopicRule` instance as following:\n\n```ts\ndeclare const func: lambda.Function;\n\nconst topicRule = new iot.TopicRule(this, 'TopicRule', {\n sql: iot.IotSql.fromStringAsVer20160323(\"SELECT topic(2) as device_id, timestamp() as timestamp FROM 'device/+/data'\"),\n});\ntopicRule.addAction(new actions.LambdaFunctionAction(func));\n```\n\nYou can also supply `errorAction` as following,\nand the IoT Rule will trigger it if a rule's action is unable to perform:\n\n```ts\nimport * as logs from 'aws-cdk-lib/aws-logs';\n\nconst logGroup = new logs.LogGroup(this, 'MyLogGroup');\n\nnew iot.TopicRule(this, 'TopicRule', {\n sql: iot.IotSql.fromStringAsVer20160323(\"SELECT topic(2) as device_id, timestamp() as timestamp FROM 'device/+/data'\"),\n errorAction: new actions.CloudWatchLogsAction(logGroup),\n});\n```\n\nIf you wanna make the topic rule disable, add property `enabled: false` as following:\n\n```ts\nnew iot.TopicRule(this, 'TopicRule', {\n sql: iot.IotSql.fromStringAsVer20160323(\"SELECT topic(2) as device_id, timestamp() as timestamp FROM 'device/+/data'\"),\n enabled: false,\n});\n```\n\nSee also [@aws-cdk/aws-iot-actions-alpha](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-iot-actions-alpha-readme.html) for other actions.\n\n## Logging\n\nAWS IoT provides a [logging feature](https://docs.aws.amazon.com/iot/latest/developerguide/configure-logging.html) that allows you to monitor and log AWS IoT activity.\n\nYou can enable IoT logging with the following code:\n\n```ts\nnew iot.Logging(this, 'Logging', {\n logLevel: iot.LogLevel.INFO,\n});\n```\n\n**Note**: All logs are forwarded to the `AWSIotLogsV2` log group in CloudWatch.\n\n## Audit\n\nAn [AWS IoT Device Defender audit looks](https://docs.aws.amazon.com/iot-device-defender/latest/devguide/device-defender-audit.html) at account- and device-related settings and policies to ensure security measures are in place.\nAn audit can help you detect any drifts from security best practices or access policies.\n\n### Account Audit Configuration\n\nThe IoT audit includes [various audit checks](https://docs.aws.amazon.com/iot-device-defender/latest/devguide/device-defender-audit-checks.html), and it is necessary to configure settings to enable those checks.\n\nYou can enable an account audit configuration with the following code:\n\n```ts\n// Audit notification are sent to the SNS topic\ndeclare const targetTopic: sns.ITopic;\n\nnew iot.AccountAuditConfiguration(this, 'AuditConfiguration', {\n targetTopic,\n});\n```\n\nBy default, all audit checks are enabled, but it is also possible to enable only specific audit checks.\n\n```ts\nnew iot.AccountAuditConfiguration(this, 'AuditConfiguration', {\n checkConfiguration: {\n // enabled\n authenticatedCognitoRoleOverlyPermissiveCheck: true,\n // enabled by default\n caCertificateExpiringCheck: undefined,\n // disabled\n caCertificateKeyQualityCheck: false,\n conflictingClientIdsCheck: false,\n deviceCertificateExpiringCheck: false,\n deviceCertificateKeyQualityCheck: false,\n deviceCertificateSharedCheck: false,\n intermediateCaRevokedForActiveDeviceCertificatesCheck: false,\n ioTPolicyPotentialMisConfigurationCheck: false,\n iotPolicyOverlyPermissiveCheck: false,\n iotRoleAliasAllowsAccessToUnusedServicesCheck: false,\n iotRoleAliasOverlyPermissiveCheck: false,\n loggingDisabledCheck: false,\n revokedCaCertificateStillActiveCheck: false,\n revokedDeviceCertificateStillActiveCheck: false,\n unauthenticatedCognitoRoleOverlyPermissiveCheck: false,\n },\n});\n```\n"
|
|
3886
3886
|
},
|
|
3887
3887
|
"repository": {
|
|
3888
3888
|
"directory": "packages/@aws-cdk/aws-iot-alpha",
|
|
@@ -3920,6 +3920,186 @@
|
|
|
3920
3920
|
}
|
|
3921
3921
|
},
|
|
3922
3922
|
"types": {
|
|
3923
|
+
"@aws-cdk/aws-iot-alpha.AccountAuditConfiguration": {
|
|
3924
|
+
"assembly": "@aws-cdk/aws-iot-alpha",
|
|
3925
|
+
"base": "aws-cdk-lib.Resource",
|
|
3926
|
+
"docs": {
|
|
3927
|
+
"stability": "experimental",
|
|
3928
|
+
"summary": "Defines AWS IoT Audit Configuration.",
|
|
3929
|
+
"example": "// Audit notification are sent to the SNS topic\ndeclare const targetTopic: sns.ITopic;\n\nnew iot.AccountAuditConfiguration(this, 'AuditConfiguration', {\n targetTopic,\n});",
|
|
3930
|
+
"custom": {
|
|
3931
|
+
"exampleMetadata": "infused"
|
|
3932
|
+
}
|
|
3933
|
+
},
|
|
3934
|
+
"fqn": "@aws-cdk/aws-iot-alpha.AccountAuditConfiguration",
|
|
3935
|
+
"initializer": {
|
|
3936
|
+
"docs": {
|
|
3937
|
+
"stability": "experimental"
|
|
3938
|
+
},
|
|
3939
|
+
"locationInModule": {
|
|
3940
|
+
"filename": "lib/audit-configuration.ts",
|
|
3941
|
+
"line": 198
|
|
3942
|
+
},
|
|
3943
|
+
"parameters": [
|
|
3944
|
+
{
|
|
3945
|
+
"name": "scope",
|
|
3946
|
+
"type": {
|
|
3947
|
+
"fqn": "constructs.Construct"
|
|
3948
|
+
}
|
|
3949
|
+
},
|
|
3950
|
+
{
|
|
3951
|
+
"name": "id",
|
|
3952
|
+
"type": {
|
|
3953
|
+
"primitive": "string"
|
|
3954
|
+
}
|
|
3955
|
+
},
|
|
3956
|
+
{
|
|
3957
|
+
"name": "props",
|
|
3958
|
+
"optional": true,
|
|
3959
|
+
"type": {
|
|
3960
|
+
"fqn": "@aws-cdk/aws-iot-alpha.AccountAuditConfigurationProps"
|
|
3961
|
+
}
|
|
3962
|
+
}
|
|
3963
|
+
]
|
|
3964
|
+
},
|
|
3965
|
+
"interfaces": [
|
|
3966
|
+
"@aws-cdk/aws-iot-alpha.IAccountAuditConfiguration"
|
|
3967
|
+
],
|
|
3968
|
+
"kind": "class",
|
|
3969
|
+
"locationInModule": {
|
|
3970
|
+
"filename": "lib/audit-configuration.ts",
|
|
3971
|
+
"line": 177
|
|
3972
|
+
},
|
|
3973
|
+
"methods": [
|
|
3974
|
+
{
|
|
3975
|
+
"docs": {
|
|
3976
|
+
"stability": "experimental",
|
|
3977
|
+
"summary": "Import an existing AWS IoT Audit Configuration."
|
|
3978
|
+
},
|
|
3979
|
+
"locationInModule": {
|
|
3980
|
+
"filename": "lib/audit-configuration.ts",
|
|
3981
|
+
"line": 185
|
|
3982
|
+
},
|
|
3983
|
+
"name": "fromAccountId",
|
|
3984
|
+
"parameters": [
|
|
3985
|
+
{
|
|
3986
|
+
"docs": {
|
|
3987
|
+
"summary": "The parent creating construct (usually `this`)."
|
|
3988
|
+
},
|
|
3989
|
+
"name": "scope",
|
|
3990
|
+
"type": {
|
|
3991
|
+
"fqn": "constructs.Construct"
|
|
3992
|
+
}
|
|
3993
|
+
},
|
|
3994
|
+
{
|
|
3995
|
+
"docs": {
|
|
3996
|
+
"summary": "The construct's name."
|
|
3997
|
+
},
|
|
3998
|
+
"name": "id",
|
|
3999
|
+
"type": {
|
|
4000
|
+
"primitive": "string"
|
|
4001
|
+
}
|
|
4002
|
+
},
|
|
4003
|
+
{
|
|
4004
|
+
"docs": {
|
|
4005
|
+
"summary": "The account ID."
|
|
4006
|
+
},
|
|
4007
|
+
"name": "accountId",
|
|
4008
|
+
"type": {
|
|
4009
|
+
"primitive": "string"
|
|
4010
|
+
}
|
|
4011
|
+
}
|
|
4012
|
+
],
|
|
4013
|
+
"returns": {
|
|
4014
|
+
"type": {
|
|
4015
|
+
"fqn": "@aws-cdk/aws-iot-alpha.IAccountAuditConfiguration"
|
|
4016
|
+
}
|
|
4017
|
+
},
|
|
4018
|
+
"static": true
|
|
4019
|
+
}
|
|
4020
|
+
],
|
|
4021
|
+
"name": "AccountAuditConfiguration",
|
|
4022
|
+
"properties": [
|
|
4023
|
+
{
|
|
4024
|
+
"docs": {
|
|
4025
|
+
"custom": {
|
|
4026
|
+
"attribute": "true"
|
|
4027
|
+
},
|
|
4028
|
+
"stability": "experimental",
|
|
4029
|
+
"summary": "The account ID."
|
|
4030
|
+
},
|
|
4031
|
+
"immutable": true,
|
|
4032
|
+
"locationInModule": {
|
|
4033
|
+
"filename": "lib/audit-configuration.ts",
|
|
4034
|
+
"line": 196
|
|
4035
|
+
},
|
|
4036
|
+
"name": "accountId",
|
|
4037
|
+
"overrides": "@aws-cdk/aws-iot-alpha.IAccountAuditConfiguration",
|
|
4038
|
+
"type": {
|
|
4039
|
+
"primitive": "string"
|
|
4040
|
+
}
|
|
4041
|
+
}
|
|
4042
|
+
],
|
|
4043
|
+
"symbolId": "lib/audit-configuration:AccountAuditConfiguration"
|
|
4044
|
+
},
|
|
4045
|
+
"@aws-cdk/aws-iot-alpha.AccountAuditConfigurationProps": {
|
|
4046
|
+
"assembly": "@aws-cdk/aws-iot-alpha",
|
|
4047
|
+
"datatype": true,
|
|
4048
|
+
"docs": {
|
|
4049
|
+
"stability": "experimental",
|
|
4050
|
+
"summary": "Properties for defining AWS IoT Audit Configuration.",
|
|
4051
|
+
"example": "// Audit notification are sent to the SNS topic\ndeclare const targetTopic: sns.ITopic;\n\nnew iot.AccountAuditConfiguration(this, 'AuditConfiguration', {\n targetTopic,\n});",
|
|
4052
|
+
"custom": {
|
|
4053
|
+
"exampleMetadata": "infused"
|
|
4054
|
+
}
|
|
4055
|
+
},
|
|
4056
|
+
"fqn": "@aws-cdk/aws-iot-alpha.AccountAuditConfigurationProps",
|
|
4057
|
+
"kind": "interface",
|
|
4058
|
+
"locationInModule": {
|
|
4059
|
+
"filename": "lib/audit-configuration.ts",
|
|
4060
|
+
"line": 158
|
|
4061
|
+
},
|
|
4062
|
+
"name": "AccountAuditConfigurationProps",
|
|
4063
|
+
"properties": [
|
|
4064
|
+
{
|
|
4065
|
+
"abstract": true,
|
|
4066
|
+
"docs": {
|
|
4067
|
+
"default": "- all checks are enabled",
|
|
4068
|
+
"stability": "experimental",
|
|
4069
|
+
"summary": "Specifies which audit checks are enabled and disabled for this account."
|
|
4070
|
+
},
|
|
4071
|
+
"immutable": true,
|
|
4072
|
+
"locationInModule": {
|
|
4073
|
+
"filename": "lib/audit-configuration.ts",
|
|
4074
|
+
"line": 171
|
|
4075
|
+
},
|
|
4076
|
+
"name": "checkConfiguration",
|
|
4077
|
+
"optional": true,
|
|
4078
|
+
"type": {
|
|
4079
|
+
"fqn": "@aws-cdk/aws-iot-alpha.CheckConfiguration"
|
|
4080
|
+
}
|
|
4081
|
+
},
|
|
4082
|
+
{
|
|
4083
|
+
"abstract": true,
|
|
4084
|
+
"docs": {
|
|
4085
|
+
"default": "- no notifications are sent",
|
|
4086
|
+
"stability": "experimental",
|
|
4087
|
+
"summary": "The target SNS topic to which audit notifications are sent."
|
|
4088
|
+
},
|
|
4089
|
+
"immutable": true,
|
|
4090
|
+
"locationInModule": {
|
|
4091
|
+
"filename": "lib/audit-configuration.ts",
|
|
4092
|
+
"line": 164
|
|
4093
|
+
},
|
|
4094
|
+
"name": "targetTopic",
|
|
4095
|
+
"optional": true,
|
|
4096
|
+
"type": {
|
|
4097
|
+
"fqn": "aws-cdk-lib.aws_sns.ITopic"
|
|
4098
|
+
}
|
|
4099
|
+
}
|
|
4100
|
+
],
|
|
4101
|
+
"symbolId": "lib/audit-configuration:AccountAuditConfigurationProps"
|
|
4102
|
+
},
|
|
3923
4103
|
"@aws-cdk/aws-iot-alpha.ActionConfig": {
|
|
3924
4104
|
"assembly": "@aws-cdk/aws-iot-alpha",
|
|
3925
4105
|
"datatype": true,
|
|
@@ -3958,6 +4138,362 @@
|
|
|
3958
4138
|
],
|
|
3959
4139
|
"symbolId": "lib/action:ActionConfig"
|
|
3960
4140
|
},
|
|
4141
|
+
"@aws-cdk/aws-iot-alpha.CheckConfiguration": {
|
|
4142
|
+
"assembly": "@aws-cdk/aws-iot-alpha",
|
|
4143
|
+
"datatype": true,
|
|
4144
|
+
"docs": {
|
|
4145
|
+
"see": "https://docs.aws.amazon.com/iot-device-defender/latest/devguide/device-defender-audit-checks.html",
|
|
4146
|
+
"stability": "experimental",
|
|
4147
|
+
"summary": "The types of audit checks.",
|
|
4148
|
+
"example": "new iot.AccountAuditConfiguration(this, 'AuditConfiguration', {\n checkConfiguration: {\n // enabled\n authenticatedCognitoRoleOverlyPermissiveCheck: true,\n // enabled by default\n caCertificateExpiringCheck: undefined,\n // disabled\n caCertificateKeyQualityCheck: false,\n conflictingClientIdsCheck: false,\n deviceCertificateExpiringCheck: false,\n deviceCertificateKeyQualityCheck: false,\n deviceCertificateSharedCheck: false,\n intermediateCaRevokedForActiveDeviceCertificatesCheck: false,\n ioTPolicyPotentialMisConfigurationCheck: false,\n iotPolicyOverlyPermissiveCheck: false,\n iotRoleAliasAllowsAccessToUnusedServicesCheck: false,\n iotRoleAliasOverlyPermissiveCheck: false,\n loggingDisabledCheck: false,\n revokedCaCertificateStillActiveCheck: false,\n revokedDeviceCertificateStillActiveCheck: false,\n unauthenticatedCognitoRoleOverlyPermissiveCheck: false,\n },\n});",
|
|
4149
|
+
"custom": {
|
|
4150
|
+
"exampleMetadata": "infused"
|
|
4151
|
+
}
|
|
4152
|
+
},
|
|
4153
|
+
"fqn": "@aws-cdk/aws-iot-alpha.CheckConfiguration",
|
|
4154
|
+
"kind": "interface",
|
|
4155
|
+
"locationInModule": {
|
|
4156
|
+
"filename": "lib/audit-configuration.ts",
|
|
4157
|
+
"line": 23
|
|
4158
|
+
},
|
|
4159
|
+
"name": "CheckConfiguration",
|
|
4160
|
+
"properties": [
|
|
4161
|
+
{
|
|
4162
|
+
"abstract": true,
|
|
4163
|
+
"docs": {
|
|
4164
|
+
"default": "true",
|
|
4165
|
+
"remarks": "For this check, AWS IoT Device Defender audits all Amazon Cognito identity pools that have been used to connect to the AWS IoT message broker\nduring the 31 days before the audit is performed.",
|
|
4166
|
+
"stability": "experimental",
|
|
4167
|
+
"summary": "Checks the permissiveness of an authenticated Amazon Cognito identity pool role."
|
|
4168
|
+
},
|
|
4169
|
+
"immutable": true,
|
|
4170
|
+
"locationInModule": {
|
|
4171
|
+
"filename": "lib/audit-configuration.ts",
|
|
4172
|
+
"line": 32
|
|
4173
|
+
},
|
|
4174
|
+
"name": "authenticatedCognitoRoleOverlyPermissiveCheck",
|
|
4175
|
+
"optional": true,
|
|
4176
|
+
"type": {
|
|
4177
|
+
"primitive": "boolean"
|
|
4178
|
+
}
|
|
4179
|
+
},
|
|
4180
|
+
{
|
|
4181
|
+
"abstract": true,
|
|
4182
|
+
"docs": {
|
|
4183
|
+
"default": "true",
|
|
4184
|
+
"remarks": "This check applies to CA certificates expiring within 30 days or that have expired.",
|
|
4185
|
+
"stability": "experimental",
|
|
4186
|
+
"summary": "Checks if a CA certificate is expiring."
|
|
4187
|
+
},
|
|
4188
|
+
"immutable": true,
|
|
4189
|
+
"locationInModule": {
|
|
4190
|
+
"filename": "lib/audit-configuration.ts",
|
|
4191
|
+
"line": 41
|
|
4192
|
+
},
|
|
4193
|
+
"name": "caCertificateExpiringCheck",
|
|
4194
|
+
"optional": true,
|
|
4195
|
+
"type": {
|
|
4196
|
+
"primitive": "boolean"
|
|
4197
|
+
}
|
|
4198
|
+
},
|
|
4199
|
+
{
|
|
4200
|
+
"abstract": true,
|
|
4201
|
+
"docs": {
|
|
4202
|
+
"default": "true",
|
|
4203
|
+
"remarks": "The quality checks if the key is in a valid format, not expired, and if the key meets a minimum required size.\n\nThis check applies to CA certificates that are ACTIVE or PENDING_TRANSFER.",
|
|
4204
|
+
"stability": "experimental",
|
|
4205
|
+
"summary": "Checks the quality of the CA certificate key."
|
|
4206
|
+
},
|
|
4207
|
+
"immutable": true,
|
|
4208
|
+
"locationInModule": {
|
|
4209
|
+
"filename": "lib/audit-configuration.ts",
|
|
4210
|
+
"line": 52
|
|
4211
|
+
},
|
|
4212
|
+
"name": "caCertificateKeyQualityCheck",
|
|
4213
|
+
"optional": true,
|
|
4214
|
+
"type": {
|
|
4215
|
+
"primitive": "boolean"
|
|
4216
|
+
}
|
|
4217
|
+
},
|
|
4218
|
+
{
|
|
4219
|
+
"abstract": true,
|
|
4220
|
+
"docs": {
|
|
4221
|
+
"default": "true",
|
|
4222
|
+
"stability": "experimental",
|
|
4223
|
+
"summary": "Checks if multiple devices connect using the same client ID."
|
|
4224
|
+
},
|
|
4225
|
+
"immutable": true,
|
|
4226
|
+
"locationInModule": {
|
|
4227
|
+
"filename": "lib/audit-configuration.ts",
|
|
4228
|
+
"line": 59
|
|
4229
|
+
},
|
|
4230
|
+
"name": "conflictingClientIdsCheck",
|
|
4231
|
+
"optional": true,
|
|
4232
|
+
"type": {
|
|
4233
|
+
"primitive": "boolean"
|
|
4234
|
+
}
|
|
4235
|
+
},
|
|
4236
|
+
{
|
|
4237
|
+
"abstract": true,
|
|
4238
|
+
"docs": {
|
|
4239
|
+
"default": "true",
|
|
4240
|
+
"remarks": "This check applies to device certificates expiring within 30 days or that have expired.",
|
|
4241
|
+
"stability": "experimental",
|
|
4242
|
+
"summary": "Checks if a device certificate is expiring."
|
|
4243
|
+
},
|
|
4244
|
+
"immutable": true,
|
|
4245
|
+
"locationInModule": {
|
|
4246
|
+
"filename": "lib/audit-configuration.ts",
|
|
4247
|
+
"line": 68
|
|
4248
|
+
},
|
|
4249
|
+
"name": "deviceCertificateExpiringCheck",
|
|
4250
|
+
"optional": true,
|
|
4251
|
+
"type": {
|
|
4252
|
+
"primitive": "boolean"
|
|
4253
|
+
}
|
|
4254
|
+
},
|
|
4255
|
+
{
|
|
4256
|
+
"abstract": true,
|
|
4257
|
+
"docs": {
|
|
4258
|
+
"default": "true",
|
|
4259
|
+
"remarks": "The quality checks if the key is in a valid format, not expired, signed by a registered certificate authority,\nand if the key meets a minimum required size.",
|
|
4260
|
+
"stability": "experimental",
|
|
4261
|
+
"summary": "Checks the quality of the device certificate key."
|
|
4262
|
+
},
|
|
4263
|
+
"immutable": true,
|
|
4264
|
+
"locationInModule": {
|
|
4265
|
+
"filename": "lib/audit-configuration.ts",
|
|
4266
|
+
"line": 78
|
|
4267
|
+
},
|
|
4268
|
+
"name": "deviceCertificateKeyQualityCheck",
|
|
4269
|
+
"optional": true,
|
|
4270
|
+
"type": {
|
|
4271
|
+
"primitive": "boolean"
|
|
4272
|
+
}
|
|
4273
|
+
},
|
|
4274
|
+
{
|
|
4275
|
+
"abstract": true,
|
|
4276
|
+
"docs": {
|
|
4277
|
+
"default": "true",
|
|
4278
|
+
"stability": "experimental",
|
|
4279
|
+
"summary": "Checks if multiple concurrent connections use the same X.509 certificate to authenticate with AWS IoT."
|
|
4280
|
+
},
|
|
4281
|
+
"immutable": true,
|
|
4282
|
+
"locationInModule": {
|
|
4283
|
+
"filename": "lib/audit-configuration.ts",
|
|
4284
|
+
"line": 85
|
|
4285
|
+
},
|
|
4286
|
+
"name": "deviceCertificateSharedCheck",
|
|
4287
|
+
"optional": true,
|
|
4288
|
+
"type": {
|
|
4289
|
+
"primitive": "boolean"
|
|
4290
|
+
}
|
|
4291
|
+
},
|
|
4292
|
+
{
|
|
4293
|
+
"abstract": true,
|
|
4294
|
+
"docs": {
|
|
4295
|
+
"default": "true",
|
|
4296
|
+
"stability": "experimental",
|
|
4297
|
+
"summary": "Checks if device certificates are still active despite being revoked by an intermediate CA."
|
|
4298
|
+
},
|
|
4299
|
+
"immutable": true,
|
|
4300
|
+
"locationInModule": {
|
|
4301
|
+
"filename": "lib/audit-configuration.ts",
|
|
4302
|
+
"line": 92
|
|
4303
|
+
},
|
|
4304
|
+
"name": "intermediateCaRevokedForActiveDeviceCertificatesCheck",
|
|
4305
|
+
"optional": true,
|
|
4306
|
+
"type": {
|
|
4307
|
+
"primitive": "boolean"
|
|
4308
|
+
}
|
|
4309
|
+
},
|
|
4310
|
+
{
|
|
4311
|
+
"abstract": true,
|
|
4312
|
+
"docs": {
|
|
4313
|
+
"default": "true",
|
|
4314
|
+
"stability": "experimental",
|
|
4315
|
+
"summary": "Checks the permissiveness of a policy attached to an authenticated Amazon Cognito identity pool role."
|
|
4316
|
+
},
|
|
4317
|
+
"immutable": true,
|
|
4318
|
+
"locationInModule": {
|
|
4319
|
+
"filename": "lib/audit-configuration.ts",
|
|
4320
|
+
"line": 99
|
|
4321
|
+
},
|
|
4322
|
+
"name": "iotPolicyOverlyPermissiveCheck",
|
|
4323
|
+
"optional": true,
|
|
4324
|
+
"type": {
|
|
4325
|
+
"primitive": "boolean"
|
|
4326
|
+
}
|
|
4327
|
+
},
|
|
4328
|
+
{
|
|
4329
|
+
"abstract": true,
|
|
4330
|
+
"docs": {
|
|
4331
|
+
"default": "true",
|
|
4332
|
+
"remarks": "Misconfigured policies, including overly permissive policies, can cause security incidents like allowing devices access to unintended resources.\n\nThis check is a warning for you to make sure that only intended actions are allowed before updating the policy.",
|
|
4333
|
+
"stability": "experimental",
|
|
4334
|
+
"summary": "Checks if an AWS IoT policy is potentially misconfigured."
|
|
4335
|
+
},
|
|
4336
|
+
"immutable": true,
|
|
4337
|
+
"locationInModule": {
|
|
4338
|
+
"filename": "lib/audit-configuration.ts",
|
|
4339
|
+
"line": 110
|
|
4340
|
+
},
|
|
4341
|
+
"name": "ioTPolicyPotentialMisConfigurationCheck",
|
|
4342
|
+
"optional": true,
|
|
4343
|
+
"type": {
|
|
4344
|
+
"primitive": "boolean"
|
|
4345
|
+
}
|
|
4346
|
+
},
|
|
4347
|
+
{
|
|
4348
|
+
"abstract": true,
|
|
4349
|
+
"docs": {
|
|
4350
|
+
"default": "true",
|
|
4351
|
+
"stability": "experimental",
|
|
4352
|
+
"summary": "Checks if a role alias has access to services that haven't been used for the AWS IoT device in the last year."
|
|
4353
|
+
},
|
|
4354
|
+
"immutable": true,
|
|
4355
|
+
"locationInModule": {
|
|
4356
|
+
"filename": "lib/audit-configuration.ts",
|
|
4357
|
+
"line": 117
|
|
4358
|
+
},
|
|
4359
|
+
"name": "iotRoleAliasAllowsAccessToUnusedServicesCheck",
|
|
4360
|
+
"optional": true,
|
|
4361
|
+
"type": {
|
|
4362
|
+
"primitive": "boolean"
|
|
4363
|
+
}
|
|
4364
|
+
},
|
|
4365
|
+
{
|
|
4366
|
+
"abstract": true,
|
|
4367
|
+
"docs": {
|
|
4368
|
+
"default": "true",
|
|
4369
|
+
"stability": "experimental",
|
|
4370
|
+
"summary": "Checks if the temporary credentials provided by AWS IoT role aliases are overly permissive."
|
|
4371
|
+
},
|
|
4372
|
+
"immutable": true,
|
|
4373
|
+
"locationInModule": {
|
|
4374
|
+
"filename": "lib/audit-configuration.ts",
|
|
4375
|
+
"line": 124
|
|
4376
|
+
},
|
|
4377
|
+
"name": "iotRoleAliasOverlyPermissiveCheck",
|
|
4378
|
+
"optional": true,
|
|
4379
|
+
"type": {
|
|
4380
|
+
"primitive": "boolean"
|
|
4381
|
+
}
|
|
4382
|
+
},
|
|
4383
|
+
{
|
|
4384
|
+
"abstract": true,
|
|
4385
|
+
"docs": {
|
|
4386
|
+
"default": "true",
|
|
4387
|
+
"stability": "experimental",
|
|
4388
|
+
"summary": "Checks if AWS IoT logs are disabled."
|
|
4389
|
+
},
|
|
4390
|
+
"immutable": true,
|
|
4391
|
+
"locationInModule": {
|
|
4392
|
+
"filename": "lib/audit-configuration.ts",
|
|
4393
|
+
"line": 131
|
|
4394
|
+
},
|
|
4395
|
+
"name": "loggingDisabledCheck",
|
|
4396
|
+
"optional": true,
|
|
4397
|
+
"type": {
|
|
4398
|
+
"primitive": "boolean"
|
|
4399
|
+
}
|
|
4400
|
+
},
|
|
4401
|
+
{
|
|
4402
|
+
"abstract": true,
|
|
4403
|
+
"docs": {
|
|
4404
|
+
"default": "true",
|
|
4405
|
+
"stability": "experimental",
|
|
4406
|
+
"summary": "Checks if a revoked CA certificate is still active."
|
|
4407
|
+
},
|
|
4408
|
+
"immutable": true,
|
|
4409
|
+
"locationInModule": {
|
|
4410
|
+
"filename": "lib/audit-configuration.ts",
|
|
4411
|
+
"line": 138
|
|
4412
|
+
},
|
|
4413
|
+
"name": "revokedCaCertificateStillActiveCheck",
|
|
4414
|
+
"optional": true,
|
|
4415
|
+
"type": {
|
|
4416
|
+
"primitive": "boolean"
|
|
4417
|
+
}
|
|
4418
|
+
},
|
|
4419
|
+
{
|
|
4420
|
+
"abstract": true,
|
|
4421
|
+
"docs": {
|
|
4422
|
+
"default": "true",
|
|
4423
|
+
"stability": "experimental",
|
|
4424
|
+
"summary": "Checks if a revoked device certificate is still active."
|
|
4425
|
+
},
|
|
4426
|
+
"immutable": true,
|
|
4427
|
+
"locationInModule": {
|
|
4428
|
+
"filename": "lib/audit-configuration.ts",
|
|
4429
|
+
"line": 145
|
|
4430
|
+
},
|
|
4431
|
+
"name": "revokedDeviceCertificateStillActiveCheck",
|
|
4432
|
+
"optional": true,
|
|
4433
|
+
"type": {
|
|
4434
|
+
"primitive": "boolean"
|
|
4435
|
+
}
|
|
4436
|
+
},
|
|
4437
|
+
{
|
|
4438
|
+
"abstract": true,
|
|
4439
|
+
"docs": {
|
|
4440
|
+
"default": "true",
|
|
4441
|
+
"stability": "experimental",
|
|
4442
|
+
"summary": "Checks if policy attached to an unauthenticated Amazon Cognito identity pool role is too permissive."
|
|
4443
|
+
},
|
|
4444
|
+
"immutable": true,
|
|
4445
|
+
"locationInModule": {
|
|
4446
|
+
"filename": "lib/audit-configuration.ts",
|
|
4447
|
+
"line": 152
|
|
4448
|
+
},
|
|
4449
|
+
"name": "unauthenticatedCognitoRoleOverlyPermissiveCheck",
|
|
4450
|
+
"optional": true,
|
|
4451
|
+
"type": {
|
|
4452
|
+
"primitive": "boolean"
|
|
4453
|
+
}
|
|
4454
|
+
}
|
|
4455
|
+
],
|
|
4456
|
+
"symbolId": "lib/audit-configuration:CheckConfiguration"
|
|
4457
|
+
},
|
|
4458
|
+
"@aws-cdk/aws-iot-alpha.IAccountAuditConfiguration": {
|
|
4459
|
+
"assembly": "@aws-cdk/aws-iot-alpha",
|
|
4460
|
+
"docs": {
|
|
4461
|
+
"stability": "experimental",
|
|
4462
|
+
"summary": "Represents AWS IoT Audit Configuration."
|
|
4463
|
+
},
|
|
4464
|
+
"fqn": "@aws-cdk/aws-iot-alpha.IAccountAuditConfiguration",
|
|
4465
|
+
"interfaces": [
|
|
4466
|
+
"aws-cdk-lib.IResource"
|
|
4467
|
+
],
|
|
4468
|
+
"kind": "interface",
|
|
4469
|
+
"locationInModule": {
|
|
4470
|
+
"filename": "lib/audit-configuration.ts",
|
|
4471
|
+
"line": 10
|
|
4472
|
+
},
|
|
4473
|
+
"name": "IAccountAuditConfiguration",
|
|
4474
|
+
"properties": [
|
|
4475
|
+
{
|
|
4476
|
+
"abstract": true,
|
|
4477
|
+
"docs": {
|
|
4478
|
+
"custom": {
|
|
4479
|
+
"attribute": "true"
|
|
4480
|
+
},
|
|
4481
|
+
"stability": "experimental",
|
|
4482
|
+
"summary": "The account ID."
|
|
4483
|
+
},
|
|
4484
|
+
"immutable": true,
|
|
4485
|
+
"locationInModule": {
|
|
4486
|
+
"filename": "lib/audit-configuration.ts",
|
|
4487
|
+
"line": 15
|
|
4488
|
+
},
|
|
4489
|
+
"name": "accountId",
|
|
4490
|
+
"type": {
|
|
4491
|
+
"primitive": "string"
|
|
4492
|
+
}
|
|
4493
|
+
}
|
|
4494
|
+
],
|
|
4495
|
+
"symbolId": "lib/audit-configuration:IAccountAuditConfiguration"
|
|
4496
|
+
},
|
|
3961
4497
|
"@aws-cdk/aws-iot-alpha.IAction": {
|
|
3962
4498
|
"assembly": "@aws-cdk/aws-iot-alpha",
|
|
3963
4499
|
"docs": {
|
|
@@ -4783,6 +5319,6 @@
|
|
|
4783
5319
|
"symbolId": "lib/topic-rule:TopicRuleProps"
|
|
4784
5320
|
}
|
|
4785
5321
|
},
|
|
4786
|
-
"version": "2.
|
|
5322
|
+
"version": "2.162.0-alpha.0",
|
|
4787
5323
|
"fingerprint": "**********"
|
|
4788
5324
|
}
|
package/.jsii.tabl.json.gz
CHANGED
|
Binary file
|
package/.warnings.jsii.js
CHANGED
|
@@ -2,6 +2,24 @@ function _aws_cdk_aws_iot_alpha_IAction(p) {
|
|
|
2
2
|
}
|
|
3
3
|
function _aws_cdk_aws_iot_alpha_ActionConfig(p) {
|
|
4
4
|
}
|
|
5
|
+
function _aws_cdk_aws_iot_alpha_IAccountAuditConfiguration(p) {
|
|
6
|
+
}
|
|
7
|
+
function _aws_cdk_aws_iot_alpha_CheckConfiguration(p) {
|
|
8
|
+
}
|
|
9
|
+
function _aws_cdk_aws_iot_alpha_AccountAuditConfigurationProps(p) {
|
|
10
|
+
if (p == null)
|
|
11
|
+
return;
|
|
12
|
+
visitedObjects.add(p);
|
|
13
|
+
try {
|
|
14
|
+
if (!visitedObjects.has(p.checkConfiguration))
|
|
15
|
+
_aws_cdk_aws_iot_alpha_CheckConfiguration(p.checkConfiguration);
|
|
16
|
+
}
|
|
17
|
+
finally {
|
|
18
|
+
visitedObjects.delete(p);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
function _aws_cdk_aws_iot_alpha_AccountAuditConfiguration(p) {
|
|
22
|
+
}
|
|
5
23
|
function _aws_cdk_aws_iot_alpha_IotSqlConfig(p) {
|
|
6
24
|
}
|
|
7
25
|
function _aws_cdk_aws_iot_alpha_IotSql(p) {
|
|
@@ -82,4 +100,4 @@ class DeprecationError extends Error {
|
|
|
82
100
|
});
|
|
83
101
|
}
|
|
84
102
|
}
|
|
85
|
-
module.exports = { print, getPropertyDescriptor, DeprecationError, _aws_cdk_aws_iot_alpha_IAction, _aws_cdk_aws_iot_alpha_ActionConfig, _aws_cdk_aws_iot_alpha_IotSqlConfig, _aws_cdk_aws_iot_alpha_IotSql, _aws_cdk_aws_iot_alpha_ILogging, _aws_cdk_aws_iot_alpha_LogLevel, _aws_cdk_aws_iot_alpha_LoggingProps, _aws_cdk_aws_iot_alpha_Logging, _aws_cdk_aws_iot_alpha_ITopicRule, _aws_cdk_aws_iot_alpha_TopicRuleProps, _aws_cdk_aws_iot_alpha_TopicRule };
|
|
103
|
+
module.exports = { print, getPropertyDescriptor, DeprecationError, _aws_cdk_aws_iot_alpha_IAction, _aws_cdk_aws_iot_alpha_ActionConfig, _aws_cdk_aws_iot_alpha_IAccountAuditConfiguration, _aws_cdk_aws_iot_alpha_CheckConfiguration, _aws_cdk_aws_iot_alpha_AccountAuditConfigurationProps, _aws_cdk_aws_iot_alpha_AccountAuditConfiguration, _aws_cdk_aws_iot_alpha_IotSqlConfig, _aws_cdk_aws_iot_alpha_IotSql, _aws_cdk_aws_iot_alpha_ILogging, _aws_cdk_aws_iot_alpha_LogLevel, _aws_cdk_aws_iot_alpha_LoggingProps, _aws_cdk_aws_iot_alpha_Logging, _aws_cdk_aws_iot_alpha_ITopicRule, _aws_cdk_aws_iot_alpha_TopicRuleProps, _aws_cdk_aws_iot_alpha_TopicRule };
|
package/README.md
CHANGED
|
@@ -91,3 +91,51 @@ new iot.Logging(this, 'Logging', {
|
|
|
91
91
|
```
|
|
92
92
|
|
|
93
93
|
**Note**: All logs are forwarded to the `AWSIotLogsV2` log group in CloudWatch.
|
|
94
|
+
|
|
95
|
+
## Audit
|
|
96
|
+
|
|
97
|
+
An [AWS IoT Device Defender audit looks](https://docs.aws.amazon.com/iot-device-defender/latest/devguide/device-defender-audit.html) at account- and device-related settings and policies to ensure security measures are in place.
|
|
98
|
+
An audit can help you detect any drifts from security best practices or access policies.
|
|
99
|
+
|
|
100
|
+
### Account Audit Configuration
|
|
101
|
+
|
|
102
|
+
The IoT audit includes [various audit checks](https://docs.aws.amazon.com/iot-device-defender/latest/devguide/device-defender-audit-checks.html), and it is necessary to configure settings to enable those checks.
|
|
103
|
+
|
|
104
|
+
You can enable an account audit configuration with the following code:
|
|
105
|
+
|
|
106
|
+
```ts
|
|
107
|
+
// Audit notification are sent to the SNS topic
|
|
108
|
+
declare const targetTopic: sns.ITopic;
|
|
109
|
+
|
|
110
|
+
new iot.AccountAuditConfiguration(this, 'AuditConfiguration', {
|
|
111
|
+
targetTopic,
|
|
112
|
+
});
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
By default, all audit checks are enabled, but it is also possible to enable only specific audit checks.
|
|
116
|
+
|
|
117
|
+
```ts
|
|
118
|
+
new iot.AccountAuditConfiguration(this, 'AuditConfiguration', {
|
|
119
|
+
checkConfiguration: {
|
|
120
|
+
// enabled
|
|
121
|
+
authenticatedCognitoRoleOverlyPermissiveCheck: true,
|
|
122
|
+
// enabled by default
|
|
123
|
+
caCertificateExpiringCheck: undefined,
|
|
124
|
+
// disabled
|
|
125
|
+
caCertificateKeyQualityCheck: false,
|
|
126
|
+
conflictingClientIdsCheck: false,
|
|
127
|
+
deviceCertificateExpiringCheck: false,
|
|
128
|
+
deviceCertificateKeyQualityCheck: false,
|
|
129
|
+
deviceCertificateSharedCheck: false,
|
|
130
|
+
intermediateCaRevokedForActiveDeviceCertificatesCheck: false,
|
|
131
|
+
ioTPolicyPotentialMisConfigurationCheck: false,
|
|
132
|
+
iotPolicyOverlyPermissiveCheck: false,
|
|
133
|
+
iotRoleAliasAllowsAccessToUnusedServicesCheck: false,
|
|
134
|
+
iotRoleAliasOverlyPermissiveCheck: false,
|
|
135
|
+
loggingDisabledCheck: false,
|
|
136
|
+
revokedCaCertificateStillActiveCheck: false,
|
|
137
|
+
revokedDeviceCertificateStillActiveCheck: false,
|
|
138
|
+
unauthenticatedCognitoRoleOverlyPermissiveCheck: false,
|
|
139
|
+
},
|
|
140
|
+
});
|
|
141
|
+
```
|
package/awslint.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"exclude": [
|
|
3
3
|
"no-unused-type:@aws-cdk/aws-iot-alpha.ActionConfig",
|
|
4
|
-
"props-physical-name:@aws-cdk/aws-iot-alpha.LoggingProps"
|
|
4
|
+
"props-physical-name:@aws-cdk/aws-iot-alpha.LoggingProps",
|
|
5
|
+
"props-physical-name:@aws-cdk/aws-iot-alpha.AccountAuditConfigurationProps"
|
|
5
6
|
]
|
|
6
7
|
}
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
import { Resource, IResource } from 'aws-cdk-lib/core';
|
|
2
|
+
import { Construct } from 'constructs';
|
|
3
|
+
import * as sns from 'aws-cdk-lib/aws-sns';
|
|
4
|
+
/**
|
|
5
|
+
* Represents AWS IoT Audit Configuration
|
|
6
|
+
*/
|
|
7
|
+
export interface IAccountAuditConfiguration extends IResource {
|
|
8
|
+
/**
|
|
9
|
+
* The account ID
|
|
10
|
+
* @attribute
|
|
11
|
+
*/
|
|
12
|
+
readonly accountId: string;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* The types of audit checks
|
|
16
|
+
*
|
|
17
|
+
* @see https://docs.aws.amazon.com/iot-device-defender/latest/devguide/device-defender-audit-checks.html
|
|
18
|
+
*/
|
|
19
|
+
export interface CheckConfiguration {
|
|
20
|
+
/**
|
|
21
|
+
* Checks the permissiveness of an authenticated Amazon Cognito identity pool role.
|
|
22
|
+
*
|
|
23
|
+
* For this check, AWS IoT Device Defender audits all Amazon Cognito identity pools that have been used to connect to the AWS IoT message broker
|
|
24
|
+
* during the 31 days before the audit is performed.
|
|
25
|
+
*
|
|
26
|
+
* @default true
|
|
27
|
+
*/
|
|
28
|
+
readonly authenticatedCognitoRoleOverlyPermissiveCheck?: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Checks if a CA certificate is expiring.
|
|
31
|
+
*
|
|
32
|
+
* This check applies to CA certificates expiring within 30 days or that have expired.
|
|
33
|
+
*
|
|
34
|
+
* @default true
|
|
35
|
+
*/
|
|
36
|
+
readonly caCertificateExpiringCheck?: boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Checks the quality of the CA certificate key.
|
|
39
|
+
*
|
|
40
|
+
* The quality checks if the key is in a valid format, not expired, and if the key meets a minimum required size.
|
|
41
|
+
*
|
|
42
|
+
* This check applies to CA certificates that are ACTIVE or PENDING_TRANSFER.
|
|
43
|
+
*
|
|
44
|
+
* @default true
|
|
45
|
+
*/
|
|
46
|
+
readonly caCertificateKeyQualityCheck?: boolean;
|
|
47
|
+
/**
|
|
48
|
+
* Checks if multiple devices connect using the same client ID.
|
|
49
|
+
*
|
|
50
|
+
* @default true
|
|
51
|
+
*/
|
|
52
|
+
readonly conflictingClientIdsCheck?: boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Checks if a device certificate is expiring.
|
|
55
|
+
*
|
|
56
|
+
* This check applies to device certificates expiring within 30 days or that have expired.
|
|
57
|
+
*
|
|
58
|
+
* @default true
|
|
59
|
+
*/
|
|
60
|
+
readonly deviceCertificateExpiringCheck?: boolean;
|
|
61
|
+
/**
|
|
62
|
+
* Checks the quality of the device certificate key.
|
|
63
|
+
*
|
|
64
|
+
* The quality checks if the key is in a valid format, not expired, signed by a registered certificate authority,
|
|
65
|
+
* and if the key meets a minimum required size.
|
|
66
|
+
*
|
|
67
|
+
* @default true
|
|
68
|
+
*/
|
|
69
|
+
readonly deviceCertificateKeyQualityCheck?: boolean;
|
|
70
|
+
/**
|
|
71
|
+
* Checks if multiple concurrent connections use the same X.509 certificate to authenticate with AWS IoT.
|
|
72
|
+
*
|
|
73
|
+
* @default true
|
|
74
|
+
*/
|
|
75
|
+
readonly deviceCertificateSharedCheck?: boolean;
|
|
76
|
+
/**
|
|
77
|
+
* Checks if device certificates are still active despite being revoked by an intermediate CA.
|
|
78
|
+
*
|
|
79
|
+
* @default true
|
|
80
|
+
*/
|
|
81
|
+
readonly intermediateCaRevokedForActiveDeviceCertificatesCheck?: boolean;
|
|
82
|
+
/**
|
|
83
|
+
* Checks the permissiveness of a policy attached to an authenticated Amazon Cognito identity pool role.
|
|
84
|
+
*
|
|
85
|
+
* @default true
|
|
86
|
+
*/
|
|
87
|
+
readonly iotPolicyOverlyPermissiveCheck?: boolean;
|
|
88
|
+
/**
|
|
89
|
+
* Checks if an AWS IoT policy is potentially misconfigured.
|
|
90
|
+
*
|
|
91
|
+
* Misconfigured policies, including overly permissive policies, can cause security incidents like allowing devices access to unintended resources.
|
|
92
|
+
*
|
|
93
|
+
* This check is a warning for you to make sure that only intended actions are allowed before updating the policy.
|
|
94
|
+
*
|
|
95
|
+
* @default true
|
|
96
|
+
*/
|
|
97
|
+
readonly ioTPolicyPotentialMisConfigurationCheck?: boolean;
|
|
98
|
+
/**
|
|
99
|
+
* Checks if a role alias has access to services that haven't been used for the AWS IoT device in the last year.
|
|
100
|
+
*
|
|
101
|
+
* @default true
|
|
102
|
+
*/
|
|
103
|
+
readonly iotRoleAliasAllowsAccessToUnusedServicesCheck?: boolean;
|
|
104
|
+
/**
|
|
105
|
+
* Checks if the temporary credentials provided by AWS IoT role aliases are overly permissive.
|
|
106
|
+
*
|
|
107
|
+
* @default true
|
|
108
|
+
*/
|
|
109
|
+
readonly iotRoleAliasOverlyPermissiveCheck?: boolean;
|
|
110
|
+
/**
|
|
111
|
+
* Checks if AWS IoT logs are disabled.
|
|
112
|
+
*
|
|
113
|
+
* @default true
|
|
114
|
+
*/
|
|
115
|
+
readonly loggingDisabledCheck?: boolean;
|
|
116
|
+
/**
|
|
117
|
+
* Checks if a revoked CA certificate is still active.
|
|
118
|
+
*
|
|
119
|
+
* @default true
|
|
120
|
+
*/
|
|
121
|
+
readonly revokedCaCertificateStillActiveCheck?: boolean;
|
|
122
|
+
/**
|
|
123
|
+
* Checks if a revoked device certificate is still active.
|
|
124
|
+
*
|
|
125
|
+
* @default true
|
|
126
|
+
*/
|
|
127
|
+
readonly revokedDeviceCertificateStillActiveCheck?: boolean;
|
|
128
|
+
/**
|
|
129
|
+
* Checks if policy attached to an unauthenticated Amazon Cognito identity pool role is too permissive.
|
|
130
|
+
*
|
|
131
|
+
* @default true
|
|
132
|
+
*/
|
|
133
|
+
readonly unauthenticatedCognitoRoleOverlyPermissiveCheck?: boolean;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Properties for defining AWS IoT Audit Configuration
|
|
137
|
+
*/
|
|
138
|
+
export interface AccountAuditConfigurationProps {
|
|
139
|
+
/**
|
|
140
|
+
* The target SNS topic to which audit notifications are sent.
|
|
141
|
+
*
|
|
142
|
+
* @default - no notifications are sent
|
|
143
|
+
*/
|
|
144
|
+
readonly targetTopic?: sns.ITopic;
|
|
145
|
+
/**
|
|
146
|
+
* Specifies which audit checks are enabled and disabled for this account.
|
|
147
|
+
*
|
|
148
|
+
* @default - all checks are enabled
|
|
149
|
+
*/
|
|
150
|
+
readonly checkConfiguration?: CheckConfiguration;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Defines AWS IoT Audit Configuration
|
|
154
|
+
*/
|
|
155
|
+
export declare class AccountAuditConfiguration extends Resource implements IAccountAuditConfiguration {
|
|
156
|
+
/**
|
|
157
|
+
* Import an existing AWS IoT Audit Configuration
|
|
158
|
+
*
|
|
159
|
+
* @param scope The parent creating construct (usually `this`)
|
|
160
|
+
* @param id The construct's name
|
|
161
|
+
* @param accountId The account ID
|
|
162
|
+
*/
|
|
163
|
+
static fromAccountId(scope: Construct, id: string, accountId: string): IAccountAuditConfiguration;
|
|
164
|
+
/**
|
|
165
|
+
* The account ID
|
|
166
|
+
* @attribute
|
|
167
|
+
*/
|
|
168
|
+
readonly accountId: string;
|
|
169
|
+
constructor(scope: Construct, id: string, props?: AccountAuditConfigurationProps);
|
|
170
|
+
/**
|
|
171
|
+
* Render the audit notification target configurations
|
|
172
|
+
*/
|
|
173
|
+
private renderAuditNotificationTargetConfigurations;
|
|
174
|
+
/**
|
|
175
|
+
* Render the audit check configurations
|
|
176
|
+
*/
|
|
177
|
+
private renderAuditCheckConfigurations;
|
|
178
|
+
/**
|
|
179
|
+
* Render the audit check configuration
|
|
180
|
+
*/
|
|
181
|
+
private renderAuditCheckConfiguration;
|
|
182
|
+
}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.AccountAuditConfiguration = void 0;
|
|
5
|
+
const jsiiDeprecationWarnings = require("../.warnings.jsii.js");
|
|
6
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
7
|
+
const core_1 = require("aws-cdk-lib/core");
|
|
8
|
+
const iot = require("aws-cdk-lib/aws-iot");
|
|
9
|
+
const iam = require("aws-cdk-lib/aws-iam");
|
|
10
|
+
/**
|
|
11
|
+
* Defines AWS IoT Audit Configuration
|
|
12
|
+
*/
|
|
13
|
+
class AccountAuditConfiguration extends core_1.Resource {
|
|
14
|
+
/**
|
|
15
|
+
* Import an existing AWS IoT Audit Configuration
|
|
16
|
+
*
|
|
17
|
+
* @param scope The parent creating construct (usually `this`)
|
|
18
|
+
* @param id The construct's name
|
|
19
|
+
* @param accountId The account ID
|
|
20
|
+
*/
|
|
21
|
+
static fromAccountId(scope, id, accountId) {
|
|
22
|
+
class Import extends core_1.Resource {
|
|
23
|
+
constructor() {
|
|
24
|
+
super(...arguments);
|
|
25
|
+
this.accountId = accountId;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return new Import(scope, id);
|
|
29
|
+
}
|
|
30
|
+
constructor(scope, id, props) {
|
|
31
|
+
super(scope, id);
|
|
32
|
+
try {
|
|
33
|
+
jsiiDeprecationWarnings._aws_cdk_aws_iot_alpha_AccountAuditConfigurationProps(props);
|
|
34
|
+
}
|
|
35
|
+
catch (error) {
|
|
36
|
+
if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
|
|
37
|
+
Error.captureStackTrace(error, AccountAuditConfiguration);
|
|
38
|
+
}
|
|
39
|
+
throw error;
|
|
40
|
+
}
|
|
41
|
+
this.accountId = core_1.Stack.of(this).account;
|
|
42
|
+
const auditRole = new iam.Role(this, 'AuditRole', {
|
|
43
|
+
assumedBy: new iam.ServicePrincipal('iot.amazonaws.com'),
|
|
44
|
+
managedPolicies: [
|
|
45
|
+
iam.ManagedPolicy.fromAwsManagedPolicyName('service-role/AWSIoTDeviceDefenderAudit'),
|
|
46
|
+
],
|
|
47
|
+
});
|
|
48
|
+
new iot.CfnAccountAuditConfiguration(this, 'Resource', {
|
|
49
|
+
accountId: this.accountId,
|
|
50
|
+
auditCheckConfigurations: this.renderAuditCheckConfigurations(props?.checkConfiguration),
|
|
51
|
+
auditNotificationTargetConfigurations: this.renderAuditNotificationTargetConfigurations(props?.targetTopic),
|
|
52
|
+
roleArn: auditRole.roleArn,
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Render the audit notification target configurations
|
|
57
|
+
*/
|
|
58
|
+
renderAuditNotificationTargetConfigurations(targetTopic) {
|
|
59
|
+
if (!targetTopic) {
|
|
60
|
+
return undefined;
|
|
61
|
+
}
|
|
62
|
+
const notificationRole = new iam.Role(this, 'NotificationRole', {
|
|
63
|
+
assumedBy: new iam.ServicePrincipal('iot.amazonaws.com'),
|
|
64
|
+
inlinePolicies: {
|
|
65
|
+
NotificationPolicy: new iam.PolicyDocument({
|
|
66
|
+
statements: [
|
|
67
|
+
new iam.PolicyStatement({
|
|
68
|
+
actions: ['sns:Publish'],
|
|
69
|
+
resources: [targetTopic.topicArn],
|
|
70
|
+
}),
|
|
71
|
+
],
|
|
72
|
+
}),
|
|
73
|
+
},
|
|
74
|
+
});
|
|
75
|
+
return {
|
|
76
|
+
sns: {
|
|
77
|
+
enabled: true,
|
|
78
|
+
targetArn: targetTopic.topicArn,
|
|
79
|
+
roleArn: notificationRole.roleArn,
|
|
80
|
+
},
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Render the audit check configurations
|
|
85
|
+
*/
|
|
86
|
+
renderAuditCheckConfigurations(checkConfiguration) {
|
|
87
|
+
return {
|
|
88
|
+
authenticatedCognitoRoleOverlyPermissiveCheck: this.renderAuditCheckConfiguration(checkConfiguration?.authenticatedCognitoRoleOverlyPermissiveCheck),
|
|
89
|
+
caCertificateExpiringCheck: this.renderAuditCheckConfiguration(checkConfiguration?.caCertificateExpiringCheck),
|
|
90
|
+
caCertificateKeyQualityCheck: this.renderAuditCheckConfiguration(checkConfiguration?.caCertificateKeyQualityCheck),
|
|
91
|
+
conflictingClientIdsCheck: this.renderAuditCheckConfiguration(checkConfiguration?.conflictingClientIdsCheck),
|
|
92
|
+
deviceCertificateExpiringCheck: this.renderAuditCheckConfiguration(checkConfiguration?.deviceCertificateExpiringCheck),
|
|
93
|
+
deviceCertificateKeyQualityCheck: this.renderAuditCheckConfiguration(checkConfiguration?.deviceCertificateKeyQualityCheck),
|
|
94
|
+
deviceCertificateSharedCheck: this.renderAuditCheckConfiguration(checkConfiguration?.deviceCertificateSharedCheck),
|
|
95
|
+
intermediateCaRevokedForActiveDeviceCertificatesCheck: this.renderAuditCheckConfiguration(checkConfiguration?.intermediateCaRevokedForActiveDeviceCertificatesCheck),
|
|
96
|
+
iotPolicyOverlyPermissiveCheck: this.renderAuditCheckConfiguration(checkConfiguration?.iotPolicyOverlyPermissiveCheck),
|
|
97
|
+
ioTPolicyPotentialMisConfigurationCheck: this.renderAuditCheckConfiguration(checkConfiguration?.ioTPolicyPotentialMisConfigurationCheck),
|
|
98
|
+
iotRoleAliasAllowsAccessToUnusedServicesCheck: this.renderAuditCheckConfiguration(checkConfiguration?.iotRoleAliasAllowsAccessToUnusedServicesCheck),
|
|
99
|
+
iotRoleAliasOverlyPermissiveCheck: this.renderAuditCheckConfiguration(checkConfiguration?.iotRoleAliasOverlyPermissiveCheck),
|
|
100
|
+
loggingDisabledCheck: this.renderAuditCheckConfiguration(checkConfiguration?.loggingDisabledCheck),
|
|
101
|
+
revokedCaCertificateStillActiveCheck: this.renderAuditCheckConfiguration(checkConfiguration?.revokedCaCertificateStillActiveCheck),
|
|
102
|
+
revokedDeviceCertificateStillActiveCheck: this.renderAuditCheckConfiguration(checkConfiguration?.revokedDeviceCertificateStillActiveCheck),
|
|
103
|
+
unauthenticatedCognitoRoleOverlyPermissiveCheck: this.renderAuditCheckConfiguration(checkConfiguration?.unauthenticatedCognitoRoleOverlyPermissiveCheck),
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Render the audit check configuration
|
|
108
|
+
*/
|
|
109
|
+
renderAuditCheckConfiguration(check) {
|
|
110
|
+
return check === false ? undefined : { enabled: true };
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
exports.AccountAuditConfiguration = AccountAuditConfiguration;
|
|
114
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
115
|
+
AccountAuditConfiguration[_a] = { fqn: "@aws-cdk/aws-iot-alpha.AccountAuditConfiguration", version: "2.162.0-alpha.0" };
|
|
116
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQtY29uZmlndXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImF1ZGl0LWNvbmZpZ3VyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsMkNBQThEO0FBRTlELDJDQUEyQztBQUMzQywyQ0FBMkM7QUEwSzNDOztHQUVHO0FBQ0gsTUFBYSx5QkFBMEIsU0FBUSxlQUFRO0lBQ3JEOzs7Ozs7T0FNRztJQUNJLE1BQU0sQ0FBQyxhQUFhLENBQUMsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsU0FBaUI7UUFDekUsTUFBTSxNQUFPLFNBQVEsZUFBUTtZQUE3Qjs7Z0JBQ2tCLGNBQVMsR0FBRyxTQUFTLENBQUM7WUFDeEMsQ0FBQztTQUFBO1FBQ0QsT0FBTyxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7S0FDOUI7SUFRRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXNDO1FBQzlFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7Ozs7OzsrQ0F0QlIseUJBQXlCOzs7O1FBd0JsQyxJQUFJLENBQUMsU0FBUyxHQUFHLFlBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDO1FBRXhDLE1BQU0sU0FBUyxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFO1lBQ2hELFNBQVMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxtQkFBbUIsQ0FBQztZQUN4RCxlQUFlLEVBQUU7Z0JBQ2YsR0FBRyxDQUFDLGFBQWEsQ0FBQyx3QkFBd0IsQ0FBQyx3Q0FBd0MsQ0FBQzthQUNyRjtTQUNGLENBQUMsQ0FBQztRQUVILElBQUksR0FBRyxDQUFDLDRCQUE0QixDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDckQsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3pCLHdCQUF3QixFQUFFLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxLQUFLLEVBQUUsa0JBQWtCLENBQUM7WUFDeEYscUNBQXFDLEVBQUUsSUFBSSxDQUFDLDJDQUEyQyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUM7WUFDM0csT0FBTyxFQUFFLFNBQVMsQ0FBQyxPQUFPO1NBQzNCLENBQUMsQ0FBQztLQUNKO0lBRUQ7O09BRUc7SUFDSywyQ0FBMkMsQ0FDakQsV0FBd0I7UUFFeEIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2pCLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFFRCxNQUFNLGdCQUFnQixHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLEVBQUU7WUFDOUQsU0FBUyxFQUFFLElBQUksR0FBRyxDQUFDLGdCQUFnQixDQUFDLG1CQUFtQixDQUFDO1lBQ3hELGNBQWMsRUFBRTtnQkFDZCxrQkFBa0IsRUFBRSxJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQUM7b0JBQ3pDLFVBQVUsRUFBRTt3QkFDVixJQUFJLEdBQUcsQ0FBQyxlQUFlLENBQUM7NEJBQ3RCLE9BQU8sRUFBRSxDQUFDLGFBQWEsQ0FBQzs0QkFDeEIsU0FBUyxFQUFFLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQzt5QkFDbEMsQ0FBQztxQkFDSDtpQkFDRixDQUFDO2FBQ0g7U0FDRixDQUFDLENBQUM7UUFFSCxPQUFPO1lBQ0wsR0FBRyxFQUFFO2dCQUNILE9BQU8sRUFBRSxJQUFJO2dCQUNiLFNBQVMsRUFBRSxXQUFXLENBQUMsUUFBUTtnQkFDL0IsT0FBTyxFQUFFLGdCQUFnQixDQUFDLE9BQU87YUFDbEM7U0FDRixDQUFDO0tBQ0g7SUFFRDs7T0FFRztJQUNLLDhCQUE4QixDQUFDLGtCQUF1QztRQUM1RSxPQUFPO1lBQ0wsNkNBQTZDLEVBQzNDLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxrQkFBa0IsRUFBRSw2Q0FBNkMsQ0FBQztZQUN2RywwQkFBMEIsRUFBRSxJQUFJLENBQUMsNkJBQTZCLENBQUMsa0JBQWtCLEVBQUUsMEJBQTBCLENBQUM7WUFDOUcsNEJBQTRCLEVBQUUsSUFBSSxDQUFDLDZCQUE2QixDQUFDLGtCQUFrQixFQUFFLDRCQUE0QixDQUFDO1lBQ2xILHlCQUF5QixFQUFFLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxrQkFBa0IsRUFBRSx5QkFBeUIsQ0FBQztZQUM1Ryw4QkFBOEIsRUFBRSxJQUFJLENBQUMsNkJBQTZCLENBQUMsa0JBQWtCLEVBQUUsOEJBQThCLENBQUM7WUFDdEgsZ0NBQWdDLEVBQUUsSUFBSSxDQUFDLDZCQUE2QixDQUFDLGtCQUFrQixFQUFFLGdDQUFnQyxDQUFDO1lBQzFILDRCQUE0QixFQUFFLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxrQkFBa0IsRUFBRSw0QkFBNEIsQ0FBQztZQUNsSCxxREFBcUQsRUFDbkQsSUFBSSxDQUFDLDZCQUE2QixDQUFDLGtCQUFrQixFQUFFLHFEQUFxRCxDQUFDO1lBQy9HLDhCQUE4QixFQUFFLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxrQkFBa0IsRUFBRSw4QkFBOEIsQ0FBQztZQUN0SCx1Q0FBdUMsRUFBRSxJQUFJLENBQUMsNkJBQTZCLENBQUMsa0JBQWtCLEVBQUUsdUNBQXVDLENBQUM7WUFDeEksNkNBQTZDLEVBQzNDLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxrQkFBa0IsRUFBRSw2Q0FBNkMsQ0FBQztZQUN2RyxpQ0FBaUMsRUFBRSxJQUFJLENBQUMsNkJBQTZCLENBQUMsa0JBQWtCLEVBQUUsaUNBQWlDLENBQUM7WUFDNUgsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLDZCQUE2QixDQUFDLGtCQUFrQixFQUFFLG9CQUFvQixDQUFDO1lBQ2xHLG9DQUFvQyxFQUFFLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxrQkFBa0IsRUFBRSxvQ0FBb0MsQ0FBQztZQUNsSSx3Q0FBd0MsRUFDdEMsSUFBSSxDQUFDLDZCQUE2QixDQUFDLGtCQUFrQixFQUFFLHdDQUF3QyxDQUFDO1lBQ2xHLCtDQUErQyxFQUM3QyxJQUFJLENBQUMsNkJBQTZCLENBQUMsa0JBQWtCLEVBQUUsK0NBQStDLENBQUM7U0FDMUcsQ0FBQztLQUNIO0lBRUQ7O09BRUc7SUFDSyw2QkFBNkIsQ0FBQyxLQUFlO1FBQ25ELE9BQU8sS0FBSyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQztLQUN4RDs7QUE1R0gsOERBNkdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVzb3VyY2UsIFN0YWNrLCBJUmVzb3VyY2UgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0ICogYXMgaW90IGZyb20gJ2F3cy1jZGstbGliL2F3cy1pb3QnO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0ICogYXMgc25zIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zbnMnO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgQVdTIElvVCBBdWRpdCBDb25maWd1cmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUFjY291bnRBdWRpdENvbmZpZ3VyYXRpb24gZXh0ZW5kcyBJUmVzb3VyY2Uge1xuICAvKipcbiAgICogVGhlIGFjY291bnQgSURcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgYWNjb3VudElkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlIHR5cGVzIG9mIGF1ZGl0IGNoZWNrc1xuICpcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2lvdC1kZXZpY2UtZGVmZW5kZXIvbGF0ZXN0L2Rldmd1aWRlL2RldmljZS1kZWZlbmRlci1hdWRpdC1jaGVja3MuaHRtbFxuICovXG5leHBvcnQgaW50ZXJmYWNlIENoZWNrQ29uZmlndXJhdGlvbiB7XG4gIC8qKlxuICAgKiBDaGVja3MgdGhlIHBlcm1pc3NpdmVuZXNzIG9mIGFuIGF1dGhlbnRpY2F0ZWQgQW1hem9uIENvZ25pdG8gaWRlbnRpdHkgcG9vbCByb2xlLlxuICAgKlxuICAgKiBGb3IgdGhpcyBjaGVjaywgQVdTIElvVCBEZXZpY2UgRGVmZW5kZXIgYXVkaXRzIGFsbCBBbWF6b24gQ29nbml0byBpZGVudGl0eSBwb29scyB0aGF0IGhhdmUgYmVlbiB1c2VkIHRvIGNvbm5lY3QgdG8gdGhlIEFXUyBJb1QgbWVzc2FnZSBicm9rZXJcbiAgICogZHVyaW5nIHRoZSAzMSBkYXlzIGJlZm9yZSB0aGUgYXVkaXQgaXMgcGVyZm9ybWVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBhdXRoZW50aWNhdGVkQ29nbml0b1JvbGVPdmVybHlQZXJtaXNzaXZlQ2hlY2s/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYSBDQSBjZXJ0aWZpY2F0ZSBpcyBleHBpcmluZy5cbiAgICpcbiAgICogVGhpcyBjaGVjayBhcHBsaWVzIHRvIENBIGNlcnRpZmljYXRlcyBleHBpcmluZyB3aXRoaW4gMzAgZGF5cyBvciB0aGF0IGhhdmUgZXhwaXJlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgY2FDZXJ0aWZpY2F0ZUV4cGlyaW5nQ2hlY2s/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDaGVja3MgdGhlIHF1YWxpdHkgb2YgdGhlIENBIGNlcnRpZmljYXRlIGtleS5cbiAgICpcbiAgICogVGhlIHF1YWxpdHkgY2hlY2tzIGlmIHRoZSBrZXkgaXMgaW4gYSB2YWxpZCBmb3JtYXQsIG5vdCBleHBpcmVkLCBhbmQgaWYgdGhlIGtleSBtZWV0cyBhIG1pbmltdW0gcmVxdWlyZWQgc2l6ZS5cbiAgICpcbiAgICogVGhpcyBjaGVjayBhcHBsaWVzIHRvIENBIGNlcnRpZmljYXRlcyB0aGF0IGFyZSBBQ1RJVkUgb3IgUEVORElOR19UUkFOU0ZFUi5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgY2FDZXJ0aWZpY2F0ZUtleVF1YWxpdHlDaGVjaz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiBtdWx0aXBsZSBkZXZpY2VzIGNvbm5lY3QgdXNpbmcgdGhlIHNhbWUgY2xpZW50IElELlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBjb25mbGljdGluZ0NsaWVudElkc0NoZWNrPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ2hlY2tzIGlmIGEgZGV2aWNlIGNlcnRpZmljYXRlIGlzIGV4cGlyaW5nLlxuICAgKlxuICAgKiBUaGlzIGNoZWNrIGFwcGxpZXMgdG8gZGV2aWNlIGNlcnRpZmljYXRlcyBleHBpcmluZyB3aXRoaW4gMzAgZGF5cyBvciB0aGF0IGhhdmUgZXhwaXJlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZGV2aWNlQ2VydGlmaWNhdGVFeHBpcmluZ0NoZWNrPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ2hlY2tzIHRoZSBxdWFsaXR5IG9mIHRoZSBkZXZpY2UgY2VydGlmaWNhdGUga2V5LlxuICAgKlxuICAgKiBUaGUgcXVhbGl0eSBjaGVja3MgaWYgdGhlIGtleSBpcyBpbiBhIHZhbGlkIGZvcm1hdCwgbm90IGV4cGlyZWQsIHNpZ25lZCBieSBhIHJlZ2lzdGVyZWQgY2VydGlmaWNhdGUgYXV0aG9yaXR5LFxuICAgKiBhbmQgaWYgdGhlIGtleSBtZWV0cyBhIG1pbmltdW0gcmVxdWlyZWQgc2l6ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZGV2aWNlQ2VydGlmaWNhdGVLZXlRdWFsaXR5Q2hlY2s/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgbXVsdGlwbGUgY29uY3VycmVudCBjb25uZWN0aW9ucyB1c2UgdGhlIHNhbWUgWC41MDkgY2VydGlmaWNhdGUgdG8gYXV0aGVudGljYXRlIHdpdGggQVdTIElvVC5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZGV2aWNlQ2VydGlmaWNhdGVTaGFyZWRDaGVjaz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiBkZXZpY2UgY2VydGlmaWNhdGVzIGFyZSBzdGlsbCBhY3RpdmUgZGVzcGl0ZSBiZWluZyByZXZva2VkIGJ5IGFuIGludGVybWVkaWF0ZSBDQS5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgaW50ZXJtZWRpYXRlQ2FSZXZva2VkRm9yQWN0aXZlRGV2aWNlQ2VydGlmaWNhdGVzQ2hlY2s/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDaGVja3MgdGhlIHBlcm1pc3NpdmVuZXNzIG9mIGEgcG9saWN5IGF0dGFjaGVkIHRvIGFuIGF1dGhlbnRpY2F0ZWQgQW1hem9uIENvZ25pdG8gaWRlbnRpdHkgcG9vbCByb2xlLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBpb3RQb2xpY3lPdmVybHlQZXJtaXNzaXZlQ2hlY2s/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYW4gQVdTIElvVCBwb2xpY3kgaXMgcG90ZW50aWFsbHkgbWlzY29uZmlndXJlZC5cbiAgICpcbiAgICogTWlzY29uZmlndXJlZCBwb2xpY2llcywgaW5jbHVkaW5nIG92ZXJseSBwZXJtaXNzaXZlIHBvbGljaWVzLCBjYW4gY2F1c2Ugc2VjdXJpdHkgaW5jaWRlbnRzIGxpa2UgYWxsb3dpbmcgZGV2aWNlcyBhY2Nlc3MgdG8gdW5pbnRlbmRlZCByZXNvdXJjZXMuXG4gICAqXG4gICAqIFRoaXMgY2hlY2sgaXMgYSB3YXJuaW5nIGZvciB5b3UgdG8gbWFrZSBzdXJlIHRoYXQgb25seSBpbnRlbmRlZCBhY3Rpb25zIGFyZSBhbGxvd2VkIGJlZm9yZSB1cGRhdGluZyB0aGUgcG9saWN5LlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBpb1RQb2xpY3lQb3RlbnRpYWxNaXNDb25maWd1cmF0aW9uQ2hlY2s/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYSByb2xlIGFsaWFzIGhhcyBhY2Nlc3MgdG8gc2VydmljZXMgdGhhdCBoYXZlbid0IGJlZW4gdXNlZCBmb3IgdGhlIEFXUyBJb1QgZGV2aWNlIGluIHRoZSBsYXN0IHllYXIuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGlvdFJvbGVBbGlhc0FsbG93c0FjY2Vzc1RvVW51c2VkU2VydmljZXNDaGVjaz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGUgdGVtcG9yYXJ5IGNyZWRlbnRpYWxzIHByb3ZpZGVkIGJ5IEFXUyBJb1Qgcm9sZSBhbGlhc2VzIGFyZSBvdmVybHkgcGVybWlzc2l2ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgaW90Um9sZUFsaWFzT3Zlcmx5UGVybWlzc2l2ZUNoZWNrPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ2hlY2tzIGlmIEFXUyBJb1QgbG9ncyBhcmUgZGlzYWJsZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGxvZ2dpbmdEaXNhYmxlZENoZWNrPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ2hlY2tzIGlmIGEgcmV2b2tlZCBDQSBjZXJ0aWZpY2F0ZSBpcyBzdGlsbCBhY3RpdmUuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHJldm9rZWRDYUNlcnRpZmljYXRlU3RpbGxBY3RpdmVDaGVjaz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiBhIHJldm9rZWQgZGV2aWNlIGNlcnRpZmljYXRlIGlzIHN0aWxsIGFjdGl2ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgcmV2b2tlZERldmljZUNlcnRpZmljYXRlU3RpbGxBY3RpdmVDaGVjaz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiBwb2xpY3kgYXR0YWNoZWQgdG8gYW4gdW5hdXRoZW50aWNhdGVkIEFtYXpvbiBDb2duaXRvIGlkZW50aXR5IHBvb2wgcm9sZSBpcyB0b28gcGVybWlzc2l2ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgdW5hdXRoZW50aWNhdGVkQ29nbml0b1JvbGVPdmVybHlQZXJtaXNzaXZlQ2hlY2s/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGRlZmluaW5nIEFXUyBJb1QgQXVkaXQgQ29uZmlndXJhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFjY291bnRBdWRpdENvbmZpZ3VyYXRpb25Qcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgdGFyZ2V0IFNOUyB0b3BpYyB0byB3aGljaCBhdWRpdCBub3RpZmljYXRpb25zIGFyZSBzZW50LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIG5vdGlmaWNhdGlvbnMgYXJlIHNlbnRcbiAgICovXG4gIHJlYWRvbmx5IHRhcmdldFRvcGljPzogc25zLklUb3BpYztcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHdoaWNoIGF1ZGl0IGNoZWNrcyBhcmUgZW5hYmxlZCBhbmQgZGlzYWJsZWQgZm9yIHRoaXMgYWNjb3VudC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBhbGwgY2hlY2tzIGFyZSBlbmFibGVkXG4gICAqL1xuICByZWFkb25seSBjaGVja0NvbmZpZ3VyYXRpb24/OiBDaGVja0NvbmZpZ3VyYXRpb247XG59XG5cbi8qKlxuICogRGVmaW5lcyBBV1MgSW9UIEF1ZGl0IENvbmZpZ3VyYXRpb25cbiAqL1xuZXhwb3J0IGNsYXNzIEFjY291bnRBdWRpdENvbmZpZ3VyYXRpb24gZXh0ZW5kcyBSZXNvdXJjZSBpbXBsZW1lbnRzIElBY2NvdW50QXVkaXRDb25maWd1cmF0aW9uIHtcbiAgLyoqXG4gICAqIEltcG9ydCBhbiBleGlzdGluZyBBV1MgSW9UIEF1ZGl0IENvbmZpZ3VyYXRpb25cbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBwYXJlbnQgY3JlYXRpbmcgY29uc3RydWN0ICh1c3VhbGx5IGB0aGlzYClcbiAgICogQHBhcmFtIGlkIFRoZSBjb25zdHJ1Y3QncyBuYW1lXG4gICAqIEBwYXJhbSBhY2NvdW50SWQgVGhlIGFjY291bnQgSURcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUFjY291bnRJZChzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBhY2NvdW50SWQ6IHN0cmluZyk6IElBY2NvdW50QXVkaXRDb25maWd1cmF0aW9uIHtcbiAgICBjbGFzcyBJbXBvcnQgZXh0ZW5kcyBSZXNvdXJjZSBpbXBsZW1lbnRzIElBY2NvdW50QXVkaXRDb25maWd1cmF0aW9uIHtcbiAgICAgIHB1YmxpYyByZWFkb25seSBhY2NvdW50SWQgPSBhY2NvdW50SWQ7XG4gICAgfVxuICAgIHJldHVybiBuZXcgSW1wb3J0KHNjb3BlLCBpZCk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGFjY291bnQgSURcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGFjY291bnRJZDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzPzogQWNjb3VudEF1ZGl0Q29uZmlndXJhdGlvblByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIHRoaXMuYWNjb3VudElkID0gU3RhY2sub2YodGhpcykuYWNjb3VudDtcblxuICAgIGNvbnN0IGF1ZGl0Um9sZSA9IG5ldyBpYW0uUm9sZSh0aGlzLCAnQXVkaXRSb2xlJywge1xuICAgICAgYXNzdW1lZEJ5OiBuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoJ2lvdC5hbWF6b25hd3MuY29tJyksXG4gICAgICBtYW5hZ2VkUG9saWNpZXM6IFtcbiAgICAgICAgaWFtLk1hbmFnZWRQb2xpY3kuZnJvbUF3c01hbmFnZWRQb2xpY3lOYW1lKCdzZXJ2aWNlLXJvbGUvQVdTSW9URGV2aWNlRGVmZW5kZXJBdWRpdCcpLFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIG5ldyBpb3QuQ2ZuQWNjb3VudEF1ZGl0Q29uZmlndXJhdGlvbih0aGlzLCAnUmVzb3VyY2UnLCB7XG4gICAgICBhY2NvdW50SWQ6IHRoaXMuYWNjb3VudElkLFxuICAgICAgYXVkaXRDaGVja0NvbmZpZ3VyYXRpb25zOiB0aGlzLnJlbmRlckF1ZGl0Q2hlY2tDb25maWd1cmF0aW9ucyhwcm9wcz8uY2hlY2tDb25maWd1cmF0aW9uKSxcbiAgICAgIGF1ZGl0Tm90aWZpY2F0aW9uVGFyZ2V0Q29uZmlndXJhdGlvbnM6IHRoaXMucmVuZGVyQXVkaXROb3RpZmljYXRpb25UYXJnZXRDb25maWd1cmF0aW9ucyhwcm9wcz8udGFyZ2V0VG9waWMpLFxuICAgICAgcm9sZUFybjogYXVkaXRSb2xlLnJvbGVBcm4sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmVuZGVyIHRoZSBhdWRpdCBub3RpZmljYXRpb24gdGFyZ2V0IGNvbmZpZ3VyYXRpb25zXG4gICAqL1xuICBwcml2YXRlIHJlbmRlckF1ZGl0Tm90aWZpY2F0aW9uVGFyZ2V0Q29uZmlndXJhdGlvbnMoXG4gICAgdGFyZ2V0VG9waWM/OiBzbnMuSVRvcGljLFxuICApOiBpb3QuQ2ZuQWNjb3VudEF1ZGl0Q29uZmlndXJhdGlvbi5BdWRpdE5vdGlmaWNhdGlvblRhcmdldENvbmZpZ3VyYXRpb25zUHJvcGVydHkgfCB1bmRlZmluZWQge1xuICAgIGlmICghdGFyZ2V0VG9waWMpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgY29uc3Qgbm90aWZpY2F0aW9uUm9sZSA9IG5ldyBpYW0uUm9sZSh0aGlzLCAnTm90aWZpY2F0aW9uUm9sZScsIHtcbiAgICAgIGFzc3VtZWRCeTogbmV3IGlhbS5TZXJ2aWNlUHJpbmNpcGFsKCdpb3QuYW1hem9uYXdzLmNvbScpLFxuICAgICAgaW5saW5lUG9saWNpZXM6IHtcbiAgICAgICAgTm90aWZpY2F0aW9uUG9saWN5OiBuZXcgaWFtLlBvbGljeURvY3VtZW50KHtcbiAgICAgICAgICBzdGF0ZW1lbnRzOiBbXG4gICAgICAgICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgICAgIGFjdGlvbnM6IFsnc25zOlB1Ymxpc2gnXSxcbiAgICAgICAgICAgICAgcmVzb3VyY2VzOiBbdGFyZ2V0VG9waWMudG9waWNBcm5dLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgXSxcbiAgICAgICAgfSksXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHNuczoge1xuICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgICB0YXJnZXRBcm46IHRhcmdldFRvcGljLnRvcGljQXJuLFxuICAgICAgICByb2xlQXJuOiBub3RpZmljYXRpb25Sb2xlLnJvbGVBcm4sXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogUmVuZGVyIHRoZSBhdWRpdCBjaGVjayBjb25maWd1cmF0aW9uc1xuICAgKi9cbiAgcHJpdmF0ZSByZW5kZXJBdWRpdENoZWNrQ29uZmlndXJhdGlvbnMoY2hlY2tDb25maWd1cmF0aW9uPzogQ2hlY2tDb25maWd1cmF0aW9uKTogaW90LkNmbkFjY291bnRBdWRpdENvbmZpZ3VyYXRpb24uQXVkaXRDaGVja0NvbmZpZ3VyYXRpb25zUHJvcGVydHkge1xuICAgIHJldHVybiB7XG4gICAgICBhdXRoZW50aWNhdGVkQ29nbml0b1JvbGVPdmVybHlQZXJtaXNzaXZlQ2hlY2s6XG4gICAgICAgIHRoaXMucmVuZGVyQXVkaXRDaGVja0NvbmZpZ3VyYXRpb24oY2hlY2tDb25maWd1cmF0aW9uPy5hdXRoZW50aWNhdGVkQ29nbml0b1JvbGVPdmVybHlQZXJtaXNzaXZlQ2hlY2spLFxuICAgICAgY2FDZXJ0aWZpY2F0ZUV4cGlyaW5nQ2hlY2s6IHRoaXMucmVuZGVyQXVkaXRDaGVja0NvbmZpZ3VyYXRpb24oY2hlY2tDb25maWd1cmF0aW9uPy5jYUNlcnRpZmljYXRlRXhwaXJpbmdDaGVjayksXG4gICAgICBjYUNlcnRpZmljYXRlS2V5UXVhbGl0eUNoZWNrOiB0aGlzLnJlbmRlckF1ZGl0Q2hlY2tDb25maWd1cmF0aW9uKGNoZWNrQ29uZmlndXJhdGlvbj8uY2FDZXJ0aWZpY2F0ZUtleVF1YWxpdHlDaGVjayksXG4gICAgICBjb25mbGljdGluZ0NsaWVudElkc0NoZWNrOiB0aGlzLnJlbmRlckF1ZGl0Q2hlY2tDb25maWd1cmF0aW9uKGNoZWNrQ29uZmlndXJhdGlvbj8uY29uZmxpY3RpbmdDbGllbnRJZHNDaGVjayksXG4gICAgICBkZXZpY2VDZXJ0aWZpY2F0ZUV4cGlyaW5nQ2hlY2s6IHRoaXMucmVuZGVyQXVkaXRDaGVja0NvbmZpZ3VyYXRpb24oY2hlY2tDb25maWd1cmF0aW9uPy5kZXZpY2VDZXJ0aWZpY2F0ZUV4cGlyaW5nQ2hlY2spLFxuICAgICAgZGV2aWNlQ2VydGlmaWNhdGVLZXlRdWFsaXR5Q2hlY2s6IHRoaXMucmVuZGVyQXVkaXRDaGVja0NvbmZpZ3VyYXRpb24oY2hlY2tDb25maWd1cmF0aW9uPy5kZXZpY2VDZXJ0aWZpY2F0ZUtleVF1YWxpdHlDaGVjayksXG4gICAgICBkZXZpY2VDZXJ0aWZpY2F0ZVNoYXJlZENoZWNrOiB0aGlzLnJlbmRlckF1ZGl0Q2hlY2tDb25maWd1cmF0aW9uKGNoZWNrQ29uZmlndXJhdGlvbj8uZGV2aWNlQ2VydGlmaWNhdGVTaGFyZWRDaGVjayksXG4gICAgICBpbnRlcm1lZGlhdGVDYVJldm9rZWRGb3JBY3RpdmVEZXZpY2VDZXJ0aWZpY2F0ZXNDaGVjazpcbiAgICAgICAgdGhpcy5yZW5kZXJBdWRpdENoZWNrQ29uZmlndXJhdGlvbihjaGVja0NvbmZpZ3VyYXRpb24/LmludGVybWVkaWF0ZUNhUmV2b2tlZEZvckFjdGl2ZURldmljZUNlcnRpZmljYXRlc0NoZWNrKSxcbiAgICAgIGlvdFBvbGljeU92ZXJseVBlcm1pc3NpdmVDaGVjazogdGhpcy5yZW5kZXJBdWRpdENoZWNrQ29uZmlndXJhdGlvbihjaGVja0NvbmZpZ3VyYXRpb24/LmlvdFBvbGljeU92ZXJseVBlcm1pc3NpdmVDaGVjayksXG4gICAgICBpb1RQb2xpY3lQb3RlbnRpYWxNaXNDb25maWd1cmF0aW9uQ2hlY2s6IHRoaXMucmVuZGVyQXVkaXRDaGVja0NvbmZpZ3VyYXRpb24oY2hlY2tDb25maWd1cmF0aW9uPy5pb1RQb2xpY3lQb3RlbnRpYWxNaXNDb25maWd1cmF0aW9uQ2hlY2spLFxuICAgICAgaW90Um9sZUFsaWFzQWxsb3dzQWNjZXNzVG9VbnVzZWRTZXJ2aWNlc0NoZWNrOlxuICAgICAgICB0aGlzLnJlbmRlckF1ZGl0Q2hlY2tDb25maWd1cmF0aW9uKGNoZWNrQ29uZmlndXJhdGlvbj8uaW90Um9sZUFsaWFzQWxsb3dzQWNjZXNzVG9VbnVzZWRTZXJ2aWNlc0NoZWNrKSxcbiAgICAgIGlvdFJvbGVBbGlhc092ZXJseVBlcm1pc3NpdmVDaGVjazogdGhpcy5yZW5kZXJBdWRpdENoZWNrQ29uZmlndXJhdGlvbihjaGVja0NvbmZpZ3VyYXRpb24/LmlvdFJvbGVBbGlhc092ZXJseVBlcm1pc3NpdmVDaGVjayksXG4gICAgICBsb2dnaW5nRGlzYWJsZWRDaGVjazogdGhpcy5yZW5kZXJBdWRpdENoZWNrQ29uZmlndXJhdGlvbihjaGVja0NvbmZpZ3VyYXRpb24/LmxvZ2dpbmdEaXNhYmxlZENoZWNrKSxcbiAgICAgIHJldm9rZWRDYUNlcnRpZmljYXRlU3RpbGxBY3RpdmVDaGVjazogdGhpcy5yZW5kZXJBdWRpdENoZWNrQ29uZmlndXJhdGlvbihjaGVja0NvbmZpZ3VyYXRpb24/LnJldm9rZWRDYUNlcnRpZmljYXRlU3RpbGxBY3RpdmVDaGVjayksXG4gICAgICByZXZva2VkRGV2aWNlQ2VydGlmaWNhdGVTdGlsbEFjdGl2ZUNoZWNrOlxuICAgICAgICB0aGlzLnJlbmRlckF1ZGl0Q2hlY2tDb25maWd1cmF0aW9uKGNoZWNrQ29uZmlndXJhdGlvbj8ucmV2b2tlZERldmljZUNlcnRpZmljYXRlU3RpbGxBY3RpdmVDaGVjayksXG4gICAgICB1bmF1dGhlbnRpY2F0ZWRDb2duaXRvUm9sZU92ZXJseVBlcm1pc3NpdmVDaGVjazpcbiAgICAgICAgdGhpcy5yZW5kZXJBdWRpdENoZWNrQ29uZmlndXJhdGlvbihjaGVja0NvbmZpZ3VyYXRpb24/LnVuYXV0aGVudGljYXRlZENvZ25pdG9Sb2xlT3Zlcmx5UGVybWlzc2l2ZUNoZWNrKSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbmRlciB0aGUgYXVkaXQgY2hlY2sgY29uZmlndXJhdGlvblxuICAgKi9cbiAgcHJpdmF0ZSByZW5kZXJBdWRpdENoZWNrQ29uZmlndXJhdGlvbihjaGVjaz86IGJvb2xlYW4pOiBpb3QuQ2ZuQWNjb3VudEF1ZGl0Q29uZmlndXJhdGlvbi5BdWRpdENoZWNrQ29uZmlndXJhdGlvblByb3BlcnR5IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gY2hlY2sgPT09IGZhbHNlID8gdW5kZWZpbmVkIDogeyBlbmFibGVkOiB0cnVlIH07XG4gIH1cbn1cblxuIl19
|
package/lib/index.d.ts
CHANGED
package/lib/index.js
CHANGED
|
@@ -15,8 +15,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./action"), exports);
|
|
18
|
+
__exportStar(require("./audit-configuration"), exports);
|
|
18
19
|
__exportStar(require("./iot-sql"), exports);
|
|
19
20
|
__exportStar(require("./logging"), exports);
|
|
20
21
|
__exportStar(require("./topic-rule"), exports);
|
|
21
22
|
// AWS::IoT CloudFormation Resources:
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkNBQXlCO0FBQ3pCLHdEQUFzQztBQUN0Qyw0Q0FBMEI7QUFDMUIsNENBQTBCO0FBQzFCLCtDQUE2QjtBQUU3QixxQ0FBcUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FjdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2F1ZGl0LWNvbmZpZ3VyYXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9pb3Qtc3FsJztcbmV4cG9ydCAqIGZyb20gJy4vbG9nZ2luZyc7XG5leHBvcnQgKiBmcm9tICcuL3RvcGljLXJ1bGUnO1xuXG4vLyBBV1M6OklvVCBDbG91ZEZvcm1hdGlvbiBSZXNvdXJjZXM6XG4iXX0=
|
package/lib/iot-sql.js
CHANGED
|
@@ -38,7 +38,7 @@ class IotSql {
|
|
|
38
38
|
}
|
|
39
39
|
exports.IotSql = IotSql;
|
|
40
40
|
_a = JSII_RTTI_SYMBOL_1;
|
|
41
|
-
IotSql[_a] = { fqn: "@aws-cdk/aws-iot-alpha.IotSql", version: "2.
|
|
41
|
+
IotSql[_a] = { fqn: "@aws-cdk/aws-iot-alpha.IotSql", version: "2.162.0-alpha.0" };
|
|
42
42
|
class IotSqlImpl extends IotSql {
|
|
43
43
|
constructor(version, sql) {
|
|
44
44
|
super();
|
package/lib/logging.js
CHANGED
|
@@ -118,5 +118,5 @@ class Logging extends core_1.Resource {
|
|
|
118
118
|
}
|
|
119
119
|
exports.Logging = Logging;
|
|
120
120
|
_a = JSII_RTTI_SYMBOL_1;
|
|
121
|
-
Logging[_a] = { fqn: "@aws-cdk/aws-iot-alpha.Logging", version: "2.
|
|
121
|
+
Logging[_a] = { fqn: "@aws-cdk/aws-iot-alpha.Logging", version: "2.162.0-alpha.0" };
|
|
122
122
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2luZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImxvZ2dpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsMkNBQThEO0FBRTlELDJDQUEyQztBQUMzQywyQ0FBMkM7QUFhM0M7O0dBRUc7QUFDSCxJQUFZLFFBaUNYO0FBakNELFdBQVksUUFBUTtJQUNsQjs7OztPQUlHO0lBQ0gsMkJBQWUsQ0FBQTtJQUVmOzs7O09BSUc7SUFDSCx5QkFBYSxDQUFBO0lBRWI7Ozs7T0FJRztJQUNILHlCQUFhLENBQUE7SUFFYjs7OztPQUlHO0lBQ0gsMkJBQWUsQ0FBQTtJQUVmOztPQUVHO0lBQ0gsaUNBQXFCLENBQUE7QUFDdkIsQ0FBQyxFQWpDVyxRQUFRLHdCQUFSLFFBQVEsUUFpQ25CO0FBY0Q7O0dBRUc7QUFDSCxNQUFhLE9BQVEsU0FBUSxlQUFRO0lBQ25DOzs7Ozs7T0FNRztJQUNJLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBYTtRQUNqRSxNQUFNLE1BQU8sU0FBUSxlQUFRO1lBQTdCOztnQkFDa0IsVUFBSyxHQUFHLEtBQUssQ0FBQztZQUNoQyxDQUFDO1NBQUE7UUFDRCxPQUFPLElBQUksTUFBTSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztLQUM5QjtJQVFELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBb0I7UUFDNUQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQzs7Ozs7OytDQXRCUixPQUFPOzs7O1FBd0JoQixNQUFNLFNBQVMsR0FBRyxZQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUV6Qyw0QkFBNEI7UUFDNUIsaUhBQWlIO1FBQ2pILE1BQU0sSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFO1lBQ3RDLFNBQVMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxtQkFBbUIsQ0FBQztZQUN4RCxjQUFjLEVBQUU7Z0JBQ2QsYUFBYSxFQUFFLElBQUksR0FBRyxDQUFDLGNBQWMsQ0FBQztvQkFDcEMsVUFBVSxFQUFFO3dCQUNWLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQzs0QkFDdEIsT0FBTyxFQUFFO2dDQUNQLHFCQUFxQjtnQ0FDckIsc0JBQXNCO2dDQUN0QixtQkFBbUI7Z0NBQ25CLHNCQUFzQjtnQ0FDdEIseUJBQXlCO2dDQUN6Qix1QkFBdUI7Z0NBQ3ZCLHVCQUF1QjtnQ0FDdkIseUJBQXlCO2dDQUN6Qix5QkFBeUI7Z0NBQ3pCLHVCQUF1QjtnQ0FDdkIseUJBQXlCO2dDQUN6QiwwQkFBMEI7NkJBQzNCOzRCQUNELFNBQVMsRUFBRTtnQ0FDVCxZQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQztvQ0FDdkIsT0FBTyxFQUFFLE1BQU07b0NBQ2YsUUFBUSxFQUFFLFdBQVc7b0NBQ3JCLEdBQUcsRUFBRSxHQUFHO29DQUNSLFlBQVksRUFBRSxnQkFBZ0I7aUNBQy9CLENBQUM7NkJBQ0g7eUJBQ0YsQ0FBQztxQkFDSDtpQkFDRixDQUFDO2FBQ0g7U0FDRixDQUFDLENBQUM7UUFFSCxNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtZQUNwRCxTQUFTO1lBQ1QsZUFBZSxFQUFFLEtBQUssRUFBRSxRQUFRLElBQUksUUFBUSxDQUFDLEtBQUs7WUFDbEQsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1NBQ3RCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQztLQUMzQjs7QUFyRUgsMEJBc0VDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVzb3VyY2UsIFN0YWNrLCBJUmVzb3VyY2UgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0ICogYXMgaW90IGZyb20gJ2F3cy1jZGstbGliL2F3cy1pb3QnO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgQVdTIElvVCBMb2dnaW5nXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUxvZ2dpbmcgZXh0ZW5kcyBJUmVzb3VyY2Uge1xuICAvKipcbiAgICogVGhlIGxvZyBJRFxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBsb2dJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRoZSBsb2cgbGV2ZWwgZm9yIHRoZSBBV1MgSW9UIExvZ2dpbmdcbiAqL1xuZXhwb3J0IGVudW0gTG9nTGV2ZWwge1xuICAvKipcbiAgICogQW55IGVycm9yIHRoYXQgY2F1c2VzIGFuIG9wZXJhdGlvbiB0byBmYWlsXG4gICAqXG4gICAqIExvZ3MgaW5jbHVkZSBFUlJPUiBpbmZvcm1hdGlvbiBvbmx5XG4gICAqL1xuICBFUlJPUiA9ICdFUlJPUicsXG5cbiAgLyoqXG4gICAqIEFueXRoaW5nIHRoYXQgY2FuIHBvdGVudGlhbGx5IGNhdXNlIGluY29uc2lzdGVuY2llcyBpbiB0aGUgc3lzdGVtLCBidXQgbWlnaHQgbm90IGNhdXNlIHRoZSBvcGVyYXRpb24gdG8gZmFpbFxuICAgKlxuICAgKiBMb2dzIGluY2x1ZGUgRVJST1IgYW5kIFdBUk4gaW5mb3JtYXRpb25cbiAgICovXG4gIFdBUk4gPSAnV0FSTicsXG5cbiAgLyoqXG4gICAqIEhpZ2gtbGV2ZWwgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGZsb3cgb2YgdGhpbmdzXG4gICAqXG4gICAqIExvZ3MgaW5jbHVkZSBJTkZPLCBFUlJPUiwgYW5kIFdBUk4gaW5mb3JtYXRpb25cbiAgICovXG4gIElORk8gPSAnSU5GTycsXG5cbiAgLyoqXG4gICAqIEluZm9ybWF0aW9uIHRoYXQgbWlnaHQgYmUgaGVscGZ1bCB3aGVuIGRlYnVnZ2luZyBhIHByb2JsZW1cbiAgICpcbiAgICogTG9ncyBpbmNsdWRlIERFQlVHLCBJTkZPLCBFUlJPUiwgYW5kIFdBUk4gaW5mb3JtYXRpb25cbiAgICovXG4gIERFQlVHID0gJ0RFQlVHJyxcblxuICAvKipcbiAgICogQWxsIGxvZ2dpbmcgaXMgZGlzYWJsZWRcbiAgICovXG4gIERJU0FCTEVEID0gJ0RJU0FCTEVEJyxcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBkZWZpbmluZyBBV1MgSW9UIExvZ2dpbmdcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb2dnaW5nUHJvcHMge1xuICAvKipcbiAgICogVGhlIGxvZyBsZXZlbCBmb3IgdGhlIEFXUyBJb1QgTG9nZ2luZ1xuICAgKlxuICAgKiBAZGVmYXVsdCBMb2dMZXZlbC5FUlJPUlxuICAgKi9cbiAgcmVhZG9ubHkgbG9nTGV2ZWw/OiBMb2dMZXZlbDtcbn1cblxuLyoqXG4gKiBEZWZpbmVzIEFXUyBJb1QgTG9nZ2luZ1xuICovXG5leHBvcnQgY2xhc3MgTG9nZ2luZyBleHRlbmRzIFJlc291cmNlIGltcGxlbWVudHMgSUxvZ2dpbmcge1xuICAvKipcbiAgICogSW1wb3J0IGFuIGV4aXN0aW5nIEFXUyBJb1QgTG9nZ2luZ1xuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIHBhcmVudCBjcmVhdGluZyBjb25zdHJ1Y3QgKHVzdWFsbHkgYHRoaXNgKVxuICAgKiBAcGFyYW0gaWQgVGhlIGNvbnN0cnVjdCdzIG5hbWVcbiAgICogQHBhcmFtIGxvZ0lkIEFXUyBJb1QgTG9nZ2luZyBJRFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tTG9nSWQoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgbG9nSWQ6IHN0cmluZyk6IElMb2dnaW5nIHtcbiAgICBjbGFzcyBJbXBvcnQgZXh0ZW5kcyBSZXNvdXJjZSBpbXBsZW1lbnRzIElMb2dnaW5nIHtcbiAgICAgIHB1YmxpYyByZWFkb25seSBsb2dJZCA9IGxvZ0lkO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IEltcG9ydChzY29wZSwgaWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBsb2dnaW5nIElEXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBsb2dJZDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzPzogTG9nZ2luZ1Byb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IGFjY291bnRJZCA9IFN0YWNrLm9mKHRoaXMpLmFjY291bnQ7XG5cbiAgICAvLyBDcmVhdGUgYSByb2xlIGZvciBsb2dnaW5nXG4gICAgLy8gaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2lvdC9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvY29uZmlndXJlLWxvZ2dpbmcuaHRtbCNjb25maWd1cmUtbG9nZ2luZy1yb2xlLWFuZC1wb2xpY3lcbiAgICBjb25zdCByb2xlID0gbmV3IGlhbS5Sb2xlKHRoaXMsICdSb2xlJywge1xuICAgICAgYXNzdW1lZEJ5OiBuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoJ2lvdC5hbWF6b25hd3MuY29tJyksXG4gICAgICBpbmxpbmVQb2xpY2llczoge1xuICAgICAgICBMb2dnaW5nUG9saWN5OiBuZXcgaWFtLlBvbGljeURvY3VtZW50KHtcbiAgICAgICAgICBzdGF0ZW1lbnRzOiBbXG4gICAgICAgICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgICAgICAnbG9nczpDcmVhdGVMb2dHcm91cCcsXG4gICAgICAgICAgICAgICAgJ2xvZ3M6Q3JlYXRlTG9nU3RyZWFtJyxcbiAgICAgICAgICAgICAgICAnbG9nczpQdXRMb2dFdmVudHMnLFxuICAgICAgICAgICAgICAgICdsb2dzOlB1dE1ldHJpY0ZpbHRlcicsXG4gICAgICAgICAgICAgICAgJ2xvZ3M6UHV0UmV0ZW50aW9uUG9saWN5JyxcbiAgICAgICAgICAgICAgICAnaW90OkdldExvZ2dpbmdPcHRpb25zJyxcbiAgICAgICAgICAgICAgICAnaW90OlNldExvZ2dpbmdPcHRpb25zJyxcbiAgICAgICAgICAgICAgICAnaW90OlNldFYyTG9nZ2luZ09wdGlvbnMnLFxuICAgICAgICAgICAgICAgICdpb3Q6R2V0VjJMb2dnaW5nT3B0aW9ucycsXG4gICAgICAgICAgICAgICAgJ2lvdDpTZXRWMkxvZ2dpbmdMZXZlbCcsXG4gICAgICAgICAgICAgICAgJ2lvdDpMaXN0VjJMb2dnaW5nTGV2ZWxzJyxcbiAgICAgICAgICAgICAgICAnaW90OkRlbGV0ZVYyTG9nZ2luZ0xldmVsJyxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgcmVzb3VyY2VzOiBbXG4gICAgICAgICAgICAgICAgU3RhY2sub2YodGhpcykuZm9ybWF0QXJuKHtcbiAgICAgICAgICAgICAgICAgIHNlcnZpY2U6ICdsb2dzJyxcbiAgICAgICAgICAgICAgICAgIHJlc291cmNlOiAnbG9nLWdyb3VwJyxcbiAgICAgICAgICAgICAgICAgIHNlcDogJzonLFxuICAgICAgICAgICAgICAgICAgcmVzb3VyY2VOYW1lOiAnQVdTSW90TG9nc1YyOionLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgXSxcbiAgICAgICAgfSksXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgY29uc3QgcmVzb3VyY2UgPSBuZXcgaW90LkNmbkxvZ2dpbmcodGhpcywgJ1Jlc291cmNlJywge1xuICAgICAgYWNjb3VudElkLFxuICAgICAgZGVmYXVsdExvZ0xldmVsOiBwcm9wcz8ubG9nTGV2ZWwgPz8gTG9nTGV2ZWwuRVJST1IsXG4gICAgICByb2xlQXJuOiByb2xlLnJvbGVBcm4sXG4gICAgfSk7XG5cbiAgICB0aGlzLmxvZ0lkID0gcmVzb3VyY2UucmVmO1xuICB9XG59XG4iXX0=
|
package/lib/topic-rule.js
CHANGED
|
@@ -98,5 +98,5 @@ class TopicRule extends core_1.Resource {
|
|
|
98
98
|
}
|
|
99
99
|
exports.TopicRule = TopicRule;
|
|
100
100
|
_a = JSII_RTTI_SYMBOL_1;
|
|
101
|
-
TopicRule[_a] = { fqn: "@aws-cdk/aws-iot-alpha.TopicRule", version: "2.
|
|
101
|
+
TopicRule[_a] = { fqn: "@aws-cdk/aws-iot-alpha.TopicRule", version: "2.162.0-alpha.0" };
|
|
102
102
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9waWMtcnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRvcGljLXJ1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsMkNBQStFO0FBSS9FLGlEQUFtRDtBQW9FbkQ7O0dBRUc7QUFDSCxNQUFhLFNBQVUsU0FBUSxlQUFRO0lBQ3JDOzs7Ozs7T0FNRztJQUNJLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFnQixFQUFFLEVBQVUsRUFBRSxZQUFvQjtRQUMvRSxNQUFNLEtBQUssR0FBRyxZQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsZ0JBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3BGLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDeEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQ0FBb0MsWUFBWSxHQUFHLENBQUMsQ0FBQztRQUN2RSxDQUFDO1FBQ0QsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQztRQUV4QyxNQUFNLE1BQU8sU0FBUSxlQUFRO1lBQTdCOztnQkFDa0IsaUJBQVksR0FBRyxZQUFZLENBQUM7Z0JBQzVCLGtCQUFhLEdBQUcsWUFBWSxDQUFDO1lBQy9DLENBQUM7U0FBQTtRQUNELE9BQU8sSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUMzQixrQkFBa0IsRUFBRSxZQUFZO1NBQ2pDLENBQUMsQ0FBQztLQUNKO0lBZ0JELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBcUI7UUFDN0QsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixZQUFZLEVBQUUsS0FBSyxDQUFDLGFBQWE7U0FDbEMsQ0FBQyxDQUFDO1FBTFksWUFBTyxHQUFrQyxFQUFFLENBQUM7Ozs7OzsrQ0FwQ2xELFNBQVM7Ozs7UUEyQ2xCLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXZDLE1BQU0sUUFBUSxHQUFHLElBQUksc0JBQVksQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQ2xELFFBQVEsRUFBRSxJQUFJLENBQUMsWUFBWTtZQUMzQixnQkFBZ0IsRUFBRTtnQkFDaEIsT0FBTyxFQUFFLFdBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNsRCxnQkFBZ0IsRUFBRSxTQUFTLENBQUMsZ0JBQWdCO2dCQUM1QyxXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7Z0JBQzlCLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxhQUFhO2dCQUN6RCxZQUFZLEVBQUUsS0FBSyxDQUFDLE9BQU8sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTztnQkFDdEUsR0FBRyxFQUFFLFNBQVMsQ0FBQyxHQUFHO2FBQ25CO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRTtZQUNqRSxPQUFPLEVBQUUsS0FBSztZQUNkLFFBQVEsRUFBRSxNQUFNO1lBQ2hCLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTtTQUNoQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFakUsS0FBSyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDOUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQztLQUNKO0lBRUQ7Ozs7T0FJRztJQUNJLFNBQVMsQ0FBQyxNQUFlOzs7Ozs7Ozs7O1FBQzlCLE1BQU0sRUFBRSxhQUFhLEVBQUUsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTdDLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDeEMsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3RCLE1BQU0sSUFBSSxLQUFLLENBQUMsK0NBQStDLENBQUMsQ0FBQztRQUNuRSxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsMkRBQTJELElBQUksRUFBRSxDQUFDLENBQUM7UUFDckYsQ0FBQztRQUVELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0tBQ2xDOztBQXRGSCw4QkF1RkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcm5Gb3JtYXQsIFJlc291cmNlLCBTdGFjaywgSVJlc291cmNlLCBMYXp5IH0gZnJvbSAnYXdzLWNkay1saWIvY29yZSc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IElBY3Rpb24gfSBmcm9tICcuL2FjdGlvbic7XG5pbXBvcnQgeyBJb3RTcWwgfSBmcm9tICcuL2lvdC1zcWwnO1xuaW1wb3J0IHsgQ2ZuVG9waWNSdWxlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlvdCc7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhbiBBV1MgSW9UIFJ1bGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJVG9waWNSdWxlIGV4dGVuZHMgSVJlc291cmNlIHtcbiAgLyoqXG4gICAqIFRoZSB2YWx1ZSBvZiB0aGUgdG9waWMgcnVsZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSwgc3VjaCBhc1xuICAgKiBhcm46YXdzOmlvdDp1cy1lYXN0LTI6MTIzNDU2Nzg5MDEyOnJ1bGUvcnVsZV9uYW1lXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHRvcGljUnVsZUFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSB0b3BpYyBydWxlXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHRvcGljUnVsZU5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBkZWZpbmluZyBhbiBBV1MgSW9UIFJ1bGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUb3BpY1J1bGVQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgdG9waWMgcnVsZS5cbiAgICogQGRlZmF1bHQgTm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgdG9waWNSdWxlTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGFjdGlvbnMgYXNzb2NpYXRlZCB3aXRoIHRoZSB0b3BpYyBydWxlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBObyBhY3Rpb25zIHdpbGwgYmUgcGVyZm9ybVxuICAgKi9cbiAgcmVhZG9ubHkgYWN0aW9ucz86IElBY3Rpb25bXTtcblxuICAvKipcbiAgICogQSB0ZXh0dWFsIGRlc2NyaXB0aW9uIG9mIHRoZSB0b3BpYyBydWxlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBOb25lXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGFjdGlvbiBBV1MgSW9UIHBlcmZvcm1zIHdoZW4gaXQgaXMgdW5hYmxlIHRvIHBlcmZvcm0gYSBydWxlJ3MgYWN0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGFjdGlvbiB3aWxsIGJlIHBlcmZvcm1lZFxuICAgKi9cbiAgcmVhZG9ubHkgZXJyb3JBY3Rpb24/OiBJQWN0aW9uO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgd2hldGhlciB0aGUgcnVsZSBpcyBlbmFibGVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBlbmFibGVkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQSBzaW1wbGlmaWVkIFNRTCBzeW50YXggdG8gZmlsdGVyIG1lc3NhZ2VzIHJlY2VpdmVkIG9uIGFuIE1RVFQgdG9waWMgYW5kIHB1c2ggdGhlIGRhdGEgZWxzZXdoZXJlLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9pb3QvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL2lvdC1zcWwtcmVmZXJlbmNlLmh0bWxcbiAgICovXG4gIHJlYWRvbmx5IHNxbDogSW90U3FsO1xufVxuXG4vKipcbiAqIERlZmluZXMgYW4gQVdTIElvVCBSdWxlIGluIHRoaXMgc3RhY2suXG4gKi9cbmV4cG9ydCBjbGFzcyBUb3BpY1J1bGUgZXh0ZW5kcyBSZXNvdXJjZSBpbXBsZW1lbnRzIElUb3BpY1J1bGUge1xuICAvKipcbiAgICogSW1wb3J0IGFuIGV4aXN0aW5nIEFXUyBJb1QgUnVsZSBwcm92aWRlZCBhbiBBUk5cbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBwYXJlbnQgY3JlYXRpbmcgY29uc3RydWN0ICh1c3VhbGx5IGB0aGlzYCkuXG4gICAqIEBwYXJhbSBpZCBUaGUgY29uc3RydWN0J3MgbmFtZS5cbiAgICogQHBhcmFtIHRvcGljUnVsZUFybiBBV1MgSW9UIFJ1bGUgQVJOIChpLmUuIGFybjphd3M6aW90OjxyZWdpb24+OjxhY2NvdW50LWlkPjpydWxlL015UnVsZSkuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21Ub3BpY1J1bGVBcm4oc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgdG9waWNSdWxlQXJuOiBzdHJpbmcpOiBJVG9waWNSdWxlIHtcbiAgICBjb25zdCBwYXJ0cyA9IFN0YWNrLm9mKHNjb3BlKS5zcGxpdEFybih0b3BpY1J1bGVBcm4sIEFybkZvcm1hdC5TTEFTSF9SRVNPVVJDRV9OQU1FKTtcbiAgICBpZiAoIXBhcnRzLnJlc291cmNlTmFtZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBNaXNzaW5nIHRvcGljIHJ1bGUgbmFtZSBpbiBBUk46ICcke3RvcGljUnVsZUFybn0nYCk7XG4gICAgfVxuICAgIGNvbnN0IHJlc291cmNlTmFtZSA9IHBhcnRzLnJlc291cmNlTmFtZTtcblxuICAgIGNsYXNzIEltcG9ydCBleHRlbmRzIFJlc291cmNlIGltcGxlbWVudHMgSVRvcGljUnVsZSB7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgdG9waWNSdWxlQXJuID0gdG9waWNSdWxlQXJuO1xuICAgICAgcHVibGljIHJlYWRvbmx5IHRvcGljUnVsZU5hbWUgPSByZXNvdXJjZU5hbWU7XG4gICAgfVxuICAgIHJldHVybiBuZXcgSW1wb3J0KHNjb3BlLCBpZCwge1xuICAgICAgZW52aXJvbm1lbnRGcm9tQXJuOiB0b3BpY1J1bGVBcm4sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQXJuIG9mIHRoaXMgdG9waWMgcnVsZVxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdG9waWNSdWxlQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhpcyB0b3BpYyBydWxlXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB0b3BpY1J1bGVOYW1lOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBhY3Rpb25zOiBDZm5Ub3BpY1J1bGUuQWN0aW9uUHJvcGVydHlbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBUb3BpY1J1bGVQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgcGh5c2ljYWxOYW1lOiBwcm9wcy50b3BpY1J1bGVOYW1lLFxuICAgIH0pO1xuXG4gICAgY29uc3Qgc3FsQ29uZmlnID0gcHJvcHMuc3FsLmJpbmQodGhpcyk7XG5cbiAgICBjb25zdCByZXNvdXJjZSA9IG5ldyBDZm5Ub3BpY1J1bGUodGhpcywgJ1Jlc291cmNlJywge1xuICAgICAgcnVsZU5hbWU6IHRoaXMucGh5c2ljYWxOYW1lLFxuICAgICAgdG9waWNSdWxlUGF5bG9hZDoge1xuICAgICAgICBhY3Rpb25zOiBMYXp5LmFueSh7IHByb2R1Y2U6ICgpID0+IHRoaXMuYWN0aW9ucyB9KSxcbiAgICAgICAgYXdzSW90U3FsVmVyc2lvbjogc3FsQ29uZmlnLmF3c0lvdFNxbFZlcnNpb24sXG4gICAgICAgIGRlc2NyaXB0aW9uOiBwcm9wcy5kZXNjcmlwdGlvbixcbiAgICAgICAgZXJyb3JBY3Rpb246IHByb3BzLmVycm9yQWN0aW9uPy5fYmluZCh0aGlzKS5jb25maWd1cmF0aW9uLFxuICAgICAgICBydWxlRGlzYWJsZWQ6IHByb3BzLmVuYWJsZWQgPT09IHVuZGVmaW5lZCA/IHVuZGVmaW5lZCA6ICFwcm9wcy5lbmFibGVkLFxuICAgICAgICBzcWw6IHNxbENvbmZpZy5zcWwsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgdGhpcy50b3BpY1J1bGVBcm4gPSB0aGlzLmdldFJlc291cmNlQXJuQXR0cmlidXRlKHJlc291cmNlLmF0dHJBcm4sIHtcbiAgICAgIHNlcnZpY2U6ICdpb3QnLFxuICAgICAgcmVzb3VyY2U6ICdydWxlJyxcbiAgICAgIHJlc291cmNlTmFtZTogdGhpcy5waHlzaWNhbE5hbWUsXG4gICAgfSk7XG4gICAgdGhpcy50b3BpY1J1bGVOYW1lID0gdGhpcy5nZXRSZXNvdXJjZU5hbWVBdHRyaWJ1dGUocmVzb3VyY2UucmVmKTtcblxuICAgIHByb3BzLmFjdGlvbnM/LmZvckVhY2goYWN0aW9uID0+IHtcbiAgICAgIHRoaXMuYWRkQWN0aW9uKGFjdGlvbik7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgYWN0aW9uIHRvIHRoZSB0b3BpYyBydWxlLlxuICAgKlxuICAgKiBAcGFyYW0gYWN0aW9uIHRoZSBhY3Rpb24gdG8gYXNzb2NpYXRlIHdpdGggdGhlIHRvcGljIHJ1bGUuXG4gICAqL1xuICBwdWJsaWMgYWRkQWN0aW9uKGFjdGlvbjogSUFjdGlvbik6IHZvaWQge1xuICAgIGNvbnN0IHsgY29uZmlndXJhdGlvbiB9ID0gYWN0aW9uLl9iaW5kKHRoaXMpO1xuXG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGNvbmZpZ3VyYXRpb24pO1xuICAgIGlmIChrZXlzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdBbiBhY3Rpb24gcHJvcGVydHkgY2Fubm90IGJlIGFuIGVtcHR5IG9iamVjdC4nKTtcbiAgICB9XG4gICAgaWYgKGtleXMubGVuZ3RoID4gMSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBBbiBhY3Rpb24gcHJvcGVydHkgY2Fubm90IGhhdmUgbXVsdGlwbGUga2V5cywgcmVjZWl2ZWQ6ICR7a2V5c31gKTtcbiAgICB9XG5cbiAgICB0aGlzLmFjdGlvbnMucHVzaChjb25maWd1cmF0aW9uKTtcbiAgfVxufVxuIl19
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-cdk/aws-iot-alpha",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.162.0-alpha.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "The CDK Construct Library for AWS::IoT",
|
|
6
6
|
"main": "lib/index.js",
|
|
@@ -81,19 +81,19 @@
|
|
|
81
81
|
},
|
|
82
82
|
"license": "Apache-2.0",
|
|
83
83
|
"devDependencies": {
|
|
84
|
-
"@aws-cdk/cdk-build-tools": "2.
|
|
85
|
-
"@aws-cdk/integ-runner": "2.
|
|
86
|
-
"@aws-cdk/pkglint": "2.
|
|
84
|
+
"@aws-cdk/cdk-build-tools": "2.162.0-alpha.0",
|
|
85
|
+
"@aws-cdk/integ-runner": "2.162.0-alpha.0",
|
|
86
|
+
"@aws-cdk/pkglint": "2.162.0-alpha.0",
|
|
87
87
|
"@types/jest": "^29.5.12",
|
|
88
88
|
"jest": "^29.7.0",
|
|
89
|
-
"aws-cdk-lib": "2.
|
|
89
|
+
"aws-cdk-lib": "2.162.0",
|
|
90
90
|
"constructs": "^10.0.0",
|
|
91
|
-
"@aws-cdk/integ-tests-alpha": "2.
|
|
91
|
+
"@aws-cdk/integ-tests-alpha": "2.162.0-alpha.0"
|
|
92
92
|
},
|
|
93
93
|
"dependencies": {},
|
|
94
94
|
"homepage": "https://github.com/aws/aws-cdk",
|
|
95
95
|
"peerDependencies": {
|
|
96
|
-
"aws-cdk-lib": "^2.
|
|
96
|
+
"aws-cdk-lib": "^2.162.0",
|
|
97
97
|
"constructs": "^10.0.0"
|
|
98
98
|
},
|
|
99
99
|
"engines": {
|
|
@@ -5,6 +5,7 @@ import * as actions from '@aws-cdk/aws-iot-actions-alpha';
|
|
|
5
5
|
import * as iot from '@aws-cdk/aws-iot-alpha';
|
|
6
6
|
import * as lambda from 'aws-cdk-lib/aws-lambda';
|
|
7
7
|
import * as s3 from 'aws-cdk-lib/aws-s3';
|
|
8
|
+
import * as sns from 'aws-cdk-lib/aws-sns'
|
|
8
9
|
|
|
9
10
|
class Fixture extends Stack {
|
|
10
11
|
constructor(scope: Construct, id: string) {
|