@aws-cdk/aws-iot-alpha 2.194.0-alpha.0 → 2.195.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.194.0",
11
+ "aws-cdk-lib": "^2.195.0",
12
12
  "constructs": "^10.0.0"
13
13
  },
14
14
  "dependencyClosure": {
@@ -3516,6 +3516,19 @@
3516
3516
  }
3517
3517
  }
3518
3518
  },
3519
+ "aws-cdk-lib.aws_ssmguiconnect": {
3520
+ "targets": {
3521
+ "dotnet": {
3522
+ "package": "Amazon.CDK.AWS.SSMGuiConnect"
3523
+ },
3524
+ "java": {
3525
+ "package": "software.amazon.awscdk.services.ssmguiconnect"
3526
+ },
3527
+ "python": {
3528
+ "module": "aws_cdk.aws_ssmguiconnect"
3529
+ }
3530
+ }
3531
+ },
3519
3532
  "aws-cdk-lib.aws_ssmincidents": {
3520
3533
  "targets": {
3521
3534
  "dotnet": {
@@ -3973,7 +3986,7 @@
3973
3986
  },
3974
3987
  "name": "@aws-cdk/aws-iot-alpha",
3975
3988
  "readme": {
3976
- "markdown": "# AWS IoT Construct Library\n<!--BEGIN STABILITY BANNER-->\n\n---\n\n![cdk-constructs: Experimental](https://img.shields.io/badge/cdk--constructs-experimental-important.svg?style=for-the-badge)\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\n### Scheduled Audit\n\nYou can create a [scheduled audit](https://docs.aws.amazon.com/iot-device-defender/latest/devguide/AuditCommands.html#device-defender-AuditCommandsManageSchedules) that is run at a specified time interval. Checks must be enabled for your account by creating `AccountAuditConfiguration`.\n\n```ts\ndeclare const config: iot.AccountAuditConfiguration;\n\n// Daily audit\nconst dailyAudit = new iot.ScheduledAudit(this, 'DailyAudit', {\n accountAuditConfiguration: config,\n frequency: iot.Frequency.DAILY,\n auditChecks: [\n iot.AuditCheck.AUTHENTICATED_COGNITO_ROLE_OVERLY_PERMISSIVE_CHECK,\n ],\n})\n\n// Weekly audit\nconst weeklyAudit = new iot.ScheduledAudit(this, 'WeeklyAudit', {\n accountAuditConfiguration: config,\n frequency: iot.Frequency.WEEKLY,\n dayOfWeek: iot.DayOfWeek.SUNDAY,\n auditChecks: [\n iot.AuditCheck.CA_CERTIFICATE_EXPIRING_CHECK,\n ],\n});\n\n// Monthly audit\nconst monthlyAudit = new iot.ScheduledAudit(this, 'MonthlyAudit', {\n accountAuditConfiguration: config,\n frequency: iot.Frequency.MONTHLY,\n dayOfMonth: iot.DayOfMonth.of(1),\n auditChecks: [\n iot.AuditCheck.CA_CERTIFICATE_KEY_QUALITY_CHECK,\n ],\n});\n```\n"
3989
+ "markdown": "# AWS IoT Construct Library\n<!--BEGIN STABILITY BANNER-->\n\n---\n\n![cdk-constructs: Experimental](https://img.shields.io/badge/cdk--constructs-experimental-important.svg?style=for-the-badge)\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 deviceCertificateAgeCheck: 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\nTo configure [the device certificate age check](https://docs.aws.amazon.com/iot-device-defender/latest/devguide/device-certificate-age-check.html), you can specify the duration for the check:\n\n```ts\nimport { Duration } from 'aws-cdk-lib';\n\nnew iot.AccountAuditConfiguration(this, 'AuditConfiguration', {\n checkConfiguration: {\n deviceCertificateAgeCheck: true,\n // The default value is 365 days\n // Valid values range from 30 days (minimum) to 3652 days (10 years, maximum)\n deviceCertificateAgeCheckDuration: Duration.days(365),\n },\n});\n```\n\n### Scheduled Audit\n\nYou can create a [scheduled audit](https://docs.aws.amazon.com/iot-device-defender/latest/devguide/AuditCommands.html#device-defender-AuditCommandsManageSchedules) that is run at a specified time interval. Checks must be enabled for your account by creating `AccountAuditConfiguration`.\n\n```ts\ndeclare const config: iot.AccountAuditConfiguration;\n\n// Daily audit\nconst dailyAudit = new iot.ScheduledAudit(this, 'DailyAudit', {\n accountAuditConfiguration: config,\n frequency: iot.Frequency.DAILY,\n auditChecks: [\n iot.AuditCheck.AUTHENTICATED_COGNITO_ROLE_OVERLY_PERMISSIVE_CHECK,\n ],\n})\n\n// Weekly audit\nconst weeklyAudit = new iot.ScheduledAudit(this, 'WeeklyAudit', {\n accountAuditConfiguration: config,\n frequency: iot.Frequency.WEEKLY,\n dayOfWeek: iot.DayOfWeek.SUNDAY,\n auditChecks: [\n iot.AuditCheck.CA_CERTIFICATE_EXPIRING_CHECK,\n ],\n});\n\n// Monthly audit\nconst monthlyAudit = new iot.ScheduledAudit(this, 'MonthlyAudit', {\n accountAuditConfiguration: config,\n frequency: iot.Frequency.MONTHLY,\n dayOfMonth: iot.DayOfMonth.of(1),\n auditChecks: [\n iot.AuditCheck.CA_CERTIFICATE_KEY_QUALITY_CHECK,\n ],\n});\n```\n"
3977
3990
  },
3978
3991
  "repository": {
3979
3992
  "directory": "packages/@aws-cdk/aws-iot-alpha",
@@ -4017,7 +4030,7 @@
4017
4030
  "docs": {
4018
4031
  "stability": "experimental",
4019
4032
  "summary": "Defines AWS IoT Audit Configuration.",
4020
- "example": "// Audit notification are sent to the SNS topic\ndeclare const targetTopic: sns.ITopic;\n\nnew iot.AccountAuditConfiguration(this, 'AuditConfiguration', {\n targetTopic,\n});",
4033
+ "example": "import { Duration } from 'aws-cdk-lib';\n\nnew iot.AccountAuditConfiguration(this, 'AuditConfiguration', {\n checkConfiguration: {\n deviceCertificateAgeCheck: true,\n // The default value is 365 days\n // Valid values range from 30 days (minimum) to 3652 days (10 years, maximum)\n deviceCertificateAgeCheckDuration: Duration.days(365),\n },\n});",
4021
4034
  "custom": {
4022
4035
  "exampleMetadata": "infused"
4023
4036
  }
@@ -4029,7 +4042,7 @@
4029
4042
  },
4030
4043
  "locationInModule": {
4031
4044
  "filename": "lib/audit-configuration.ts",
4032
- "line": 199
4045
+ "line": 218
4033
4046
  },
4034
4047
  "parameters": [
4035
4048
  {
@@ -4059,7 +4072,7 @@
4059
4072
  "kind": "class",
4060
4073
  "locationInModule": {
4061
4074
  "filename": "lib/audit-configuration.ts",
4062
- "line": 178
4075
+ "line": 197
4063
4076
  },
4064
4077
  "methods": [
4065
4078
  {
@@ -4069,7 +4082,7 @@
4069
4082
  },
4070
4083
  "locationInModule": {
4071
4084
  "filename": "lib/audit-configuration.ts",
4072
- "line": 186
4085
+ "line": 205
4073
4086
  },
4074
4087
  "name": "fromAccountId",
4075
4088
  "parameters": [
@@ -4122,7 +4135,7 @@
4122
4135
  "immutable": true,
4123
4136
  "locationInModule": {
4124
4137
  "filename": "lib/audit-configuration.ts",
4125
- "line": 197
4138
+ "line": 216
4126
4139
  },
4127
4140
  "name": "accountId",
4128
4141
  "overrides": "@aws-cdk/aws-iot-alpha.IAccountAuditConfiguration",
@@ -4139,7 +4152,7 @@
4139
4152
  "docs": {
4140
4153
  "stability": "experimental",
4141
4154
  "summary": "Properties for defining AWS IoT Audit Configuration.",
4142
- "example": "// Audit notification are sent to the SNS topic\ndeclare const targetTopic: sns.ITopic;\n\nnew iot.AccountAuditConfiguration(this, 'AuditConfiguration', {\n targetTopic,\n});",
4155
+ "example": "import { Duration } from 'aws-cdk-lib';\n\nnew iot.AccountAuditConfiguration(this, 'AuditConfiguration', {\n checkConfiguration: {\n deviceCertificateAgeCheck: true,\n // The default value is 365 days\n // Valid values range from 30 days (minimum) to 3652 days (10 years, maximum)\n deviceCertificateAgeCheckDuration: Duration.days(365),\n },\n});",
4143
4156
  "custom": {
4144
4157
  "exampleMetadata": "infused"
4145
4158
  }
@@ -4148,7 +4161,7 @@
4148
4161
  "kind": "interface",
4149
4162
  "locationInModule": {
4150
4163
  "filename": "lib/audit-configuration.ts",
4151
- "line": 159
4164
+ "line": 178
4152
4165
  },
4153
4166
  "name": "AccountAuditConfigurationProps",
4154
4167
  "properties": [
@@ -4162,7 +4175,7 @@
4162
4175
  "immutable": true,
4163
4176
  "locationInModule": {
4164
4177
  "filename": "lib/audit-configuration.ts",
4165
- "line": 172
4178
+ "line": 191
4166
4179
  },
4167
4180
  "name": "checkConfiguration",
4168
4181
  "optional": true,
@@ -4180,7 +4193,7 @@
4180
4193
  "immutable": true,
4181
4194
  "locationInModule": {
4182
4195
  "filename": "lib/audit-configuration.ts",
4183
- "line": 165
4196
+ "line": 184
4184
4197
  },
4185
4198
  "name": "targetTopic",
4186
4199
  "optional": true,
@@ -4361,7 +4374,7 @@
4361
4374
  "see": "https://docs.aws.amazon.com/iot-device-defender/latest/devguide/device-defender-audit-checks.html",
4362
4375
  "stability": "experimental",
4363
4376
  "summary": "The types of audit checks.",
4364
- "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});",
4377
+ "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 deviceCertificateAgeCheck: 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});",
4365
4378
  "custom": {
4366
4379
  "exampleMetadata": "infused"
4367
4380
  }
@@ -4449,6 +4462,43 @@
4449
4462
  "primitive": "boolean"
4450
4463
  }
4451
4464
  },
4465
+ {
4466
+ "abstract": true,
4467
+ "docs": {
4468
+ "default": "true",
4469
+ "stability": "experimental",
4470
+ "summary": "Checks when a device certificate has been active for a number of days greater than or equal to the number you specify."
4471
+ },
4472
+ "immutable": true,
4473
+ "locationInModule": {
4474
+ "filename": "lib/audit-configuration.ts",
4475
+ "line": 67
4476
+ },
4477
+ "name": "deviceCertificateAgeCheck",
4478
+ "optional": true,
4479
+ "type": {
4480
+ "primitive": "boolean"
4481
+ }
4482
+ },
4483
+ {
4484
+ "abstract": true,
4485
+ "docs": {
4486
+ "default": "- 365 days",
4487
+ "remarks": "Valid values range from 30 days (minimum) to 3652 days (10 years, maximum).\n\nYou cannot specify a value for this check if `deviceCertificateAgeCheck` is set to `false`.",
4488
+ "stability": "experimental",
4489
+ "summary": "The duration used to check if a device certificate has been active for a number of days greater than or equal to the number you specify."
4490
+ },
4491
+ "immutable": true,
4492
+ "locationInModule": {
4493
+ "filename": "lib/audit-configuration.ts",
4494
+ "line": 79
4495
+ },
4496
+ "name": "deviceCertificateAgeCheckDuration",
4497
+ "optional": true,
4498
+ "type": {
4499
+ "fqn": "aws-cdk-lib.Duration"
4500
+ }
4501
+ },
4452
4502
  {
4453
4503
  "abstract": true,
4454
4504
  "docs": {
@@ -4460,7 +4510,7 @@
4460
4510
  "immutable": true,
4461
4511
  "locationInModule": {
4462
4512
  "filename": "lib/audit-configuration.ts",
4463
- "line": 69
4513
+ "line": 88
4464
4514
  },
4465
4515
  "name": "deviceCertificateExpiringCheck",
4466
4516
  "optional": true,
@@ -4479,7 +4529,7 @@
4479
4529
  "immutable": true,
4480
4530
  "locationInModule": {
4481
4531
  "filename": "lib/audit-configuration.ts",
4482
- "line": 79
4532
+ "line": 98
4483
4533
  },
4484
4534
  "name": "deviceCertificateKeyQualityCheck",
4485
4535
  "optional": true,
@@ -4497,7 +4547,7 @@
4497
4547
  "immutable": true,
4498
4548
  "locationInModule": {
4499
4549
  "filename": "lib/audit-configuration.ts",
4500
- "line": 86
4550
+ "line": 105
4501
4551
  },
4502
4552
  "name": "deviceCertificateSharedCheck",
4503
4553
  "optional": true,
@@ -4515,7 +4565,7 @@
4515
4565
  "immutable": true,
4516
4566
  "locationInModule": {
4517
4567
  "filename": "lib/audit-configuration.ts",
4518
- "line": 93
4568
+ "line": 112
4519
4569
  },
4520
4570
  "name": "intermediateCaRevokedForActiveDeviceCertificatesCheck",
4521
4571
  "optional": true,
@@ -4533,7 +4583,7 @@
4533
4583
  "immutable": true,
4534
4584
  "locationInModule": {
4535
4585
  "filename": "lib/audit-configuration.ts",
4536
- "line": 100
4586
+ "line": 119
4537
4587
  },
4538
4588
  "name": "iotPolicyOverlyPermissiveCheck",
4539
4589
  "optional": true,
@@ -4552,7 +4602,7 @@
4552
4602
  "immutable": true,
4553
4603
  "locationInModule": {
4554
4604
  "filename": "lib/audit-configuration.ts",
4555
- "line": 111
4605
+ "line": 130
4556
4606
  },
4557
4607
  "name": "ioTPolicyPotentialMisConfigurationCheck",
4558
4608
  "optional": true,
@@ -4570,7 +4620,7 @@
4570
4620
  "immutable": true,
4571
4621
  "locationInModule": {
4572
4622
  "filename": "lib/audit-configuration.ts",
4573
- "line": 118
4623
+ "line": 137
4574
4624
  },
4575
4625
  "name": "iotRoleAliasAllowsAccessToUnusedServicesCheck",
4576
4626
  "optional": true,
@@ -4588,7 +4638,7 @@
4588
4638
  "immutable": true,
4589
4639
  "locationInModule": {
4590
4640
  "filename": "lib/audit-configuration.ts",
4591
- "line": 125
4641
+ "line": 144
4592
4642
  },
4593
4643
  "name": "iotRoleAliasOverlyPermissiveCheck",
4594
4644
  "optional": true,
@@ -4606,7 +4656,7 @@
4606
4656
  "immutable": true,
4607
4657
  "locationInModule": {
4608
4658
  "filename": "lib/audit-configuration.ts",
4609
- "line": 132
4659
+ "line": 151
4610
4660
  },
4611
4661
  "name": "loggingDisabledCheck",
4612
4662
  "optional": true,
@@ -4624,7 +4674,7 @@
4624
4674
  "immutable": true,
4625
4675
  "locationInModule": {
4626
4676
  "filename": "lib/audit-configuration.ts",
4627
- "line": 139
4677
+ "line": 158
4628
4678
  },
4629
4679
  "name": "revokedCaCertificateStillActiveCheck",
4630
4680
  "optional": true,
@@ -4642,7 +4692,7 @@
4642
4692
  "immutable": true,
4643
4693
  "locationInModule": {
4644
4694
  "filename": "lib/audit-configuration.ts",
4645
- "line": 146
4695
+ "line": 165
4646
4696
  },
4647
4697
  "name": "revokedDeviceCertificateStillActiveCheck",
4648
4698
  "optional": true,
@@ -4660,7 +4710,7 @@
4660
4710
  "immutable": true,
4661
4711
  "locationInModule": {
4662
4712
  "filename": "lib/audit-configuration.ts",
4663
- "line": 153
4713
+ "line": 172
4664
4714
  },
4665
4715
  "name": "unauthenticatedCognitoRoleOverlyPermissiveCheck",
4666
4716
  "optional": true,
@@ -6174,6 +6224,6 @@
6174
6224
  "symbolId": "lib/topic-rule:TopicRuleProps"
6175
6225
  }
6176
6226
  },
6177
- "version": "2.194.0-alpha.0",
6227
+ "version": "2.195.0-alpha.0",
6178
6228
  "fingerprint": "**********"
6179
6229
  }
Binary file
package/README.md CHANGED
@@ -124,6 +124,7 @@ new iot.AccountAuditConfiguration(this, 'AuditConfiguration', {
124
124
  // disabled
125
125
  caCertificateKeyQualityCheck: false,
126
126
  conflictingClientIdsCheck: false,
127
+ deviceCertificateAgeCheck: false,
127
128
  deviceCertificateExpiringCheck: false,
128
129
  deviceCertificateKeyQualityCheck: false,
129
130
  deviceCertificateSharedCheck: false,
@@ -140,6 +141,21 @@ new iot.AccountAuditConfiguration(this, 'AuditConfiguration', {
140
141
  });
141
142
  ```
142
143
 
144
+ To configure [the device certificate age check](https://docs.aws.amazon.com/iot-device-defender/latest/devguide/device-certificate-age-check.html), you can specify the duration for the check:
145
+
146
+ ```ts
147
+ import { Duration } from 'aws-cdk-lib';
148
+
149
+ new iot.AccountAuditConfiguration(this, 'AuditConfiguration', {
150
+ checkConfiguration: {
151
+ deviceCertificateAgeCheck: true,
152
+ // The default value is 365 days
153
+ // Valid values range from 30 days (minimum) to 3652 days (10 years, maximum)
154
+ deviceCertificateAgeCheckDuration: Duration.days(365),
155
+ },
156
+ });
157
+ ```
158
+
143
159
  ### Scheduled Audit
144
160
 
145
161
  You can create a [scheduled audit](https://docs.aws.amazon.com/iot-device-defender/latest/devguide/AuditCommands.html#device-defender-AuditCommandsManageSchedules) that is run at a specified time interval. Checks must be enabled for your account by creating `AccountAuditConfiguration`.
@@ -1,4 +1,4 @@
1
- import { Resource, IResource } from 'aws-cdk-lib/core';
1
+ import { Resource, IResource, Duration } from 'aws-cdk-lib/core';
2
2
  import { Construct } from 'constructs';
3
3
  import * as sns from 'aws-cdk-lib/aws-sns';
4
4
  /**
@@ -50,6 +50,23 @@ export interface CheckConfiguration {
50
50
  * @default true
51
51
  */
52
52
  readonly conflictingClientIdsCheck?: boolean;
53
+ /**
54
+ * Checks when a device certificate has been active for a number of days greater than or equal to the number you specify.
55
+ *
56
+ * @default true
57
+ */
58
+ readonly deviceCertificateAgeCheck?: boolean;
59
+ /**
60
+ * The duration used to check if a device certificate has been active
61
+ * for a number of days greater than or equal to the number you specify.
62
+ *
63
+ * Valid values range from 30 days (minimum) to 3652 days (10 years, maximum).
64
+ *
65
+ * You cannot specify a value for this check if `deviceCertificateAgeCheck` is set to `false`.
66
+ *
67
+ * @default - 365 days
68
+ */
69
+ readonly deviceCertificateAgeCheckDuration?: Duration;
53
70
  /**
54
71
  * Checks if a device certificate is expiring.
55
72
  *
@@ -41,6 +41,15 @@ class AccountAuditConfiguration extends core_1.Resource {
41
41
  }
42
42
  // Enhanced CDK Analytics Telemetry
43
43
  (0, metadata_resource_1.addConstructMetadata)(this, props);
44
+ const deviceAgeCheckThreshold = props?.checkConfiguration?.deviceCertificateAgeCheckDuration;
45
+ if (deviceAgeCheckThreshold) {
46
+ if (props?.checkConfiguration?.deviceCertificateAgeCheck === false) {
47
+ throw new Error('You cannot specify a value for `deviceCertificateAgeCheckDuration` if `deviceCertificateAgeCheck` is set to `false`.');
48
+ }
49
+ if (!deviceAgeCheckThreshold.isUnresolved() && deviceAgeCheckThreshold.toDays() < 30 || deviceAgeCheckThreshold.toDays() > 3652) {
50
+ throw new Error(`The device certificate age check threshold must be between 30 and 3652 days. got: ${deviceAgeCheckThreshold.toDays()} days.`);
51
+ }
52
+ }
44
53
  this.accountId = core_1.Stack.of(this).account;
45
54
  const auditRole = new iam.Role(this, 'AuditRole', {
46
55
  assumedBy: new iam.ServicePrincipal('iot.amazonaws.com'),
@@ -92,6 +101,14 @@ class AccountAuditConfiguration extends core_1.Resource {
92
101
  caCertificateExpiringCheck: this.renderAuditCheckConfiguration(checkConfiguration?.caCertificateExpiringCheck),
93
102
  caCertificateKeyQualityCheck: this.renderAuditCheckConfiguration(checkConfiguration?.caCertificateKeyQualityCheck),
94
103
  conflictingClientIdsCheck: this.renderAuditCheckConfiguration(checkConfiguration?.conflictingClientIdsCheck),
104
+ deviceCertificateAgeCheck: checkConfiguration?.deviceCertificateAgeCheck !== false ?
105
+ {
106
+ enabled: true,
107
+ configuration: {
108
+ certAgeThresholdInDays: String(checkConfiguration?.deviceCertificateAgeCheckDuration?.toDays() ?? 365),
109
+ },
110
+ } :
111
+ undefined,
95
112
  deviceCertificateExpiringCheck: this.renderAuditCheckConfiguration(checkConfiguration?.deviceCertificateExpiringCheck),
96
113
  deviceCertificateKeyQualityCheck: this.renderAuditCheckConfiguration(checkConfiguration?.deviceCertificateKeyQualityCheck),
97
114
  deviceCertificateSharedCheck: this.renderAuditCheckConfiguration(checkConfiguration?.deviceCertificateSharedCheck),
@@ -115,5 +132,5 @@ class AccountAuditConfiguration extends core_1.Resource {
115
132
  }
116
133
  exports.AccountAuditConfiguration = AccountAuditConfiguration;
117
134
  _a = JSII_RTTI_SYMBOL_1;
118
- AccountAuditConfiguration[_a] = { fqn: "@aws-cdk/aws-iot-alpha.AccountAuditConfiguration", version: "2.194.0-alpha.0" };
119
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQtY29uZmlndXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImF1ZGl0LWNvbmZpZ3VyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsMkNBQThEO0FBRTlELDJDQUEyQztBQUMzQywyQ0FBMkM7QUFFM0MsOEVBQThFO0FBeUs5RTs7R0FFRztBQUNILE1BQWEseUJBQTBCLFNBQVEsZUFBUTtJQUNyRDs7Ozs7O09BTUc7SUFDSSxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQWdCLEVBQUUsRUFBVSxFQUFFLFNBQWlCO1FBQ3pFLE1BQU0sTUFBTyxTQUFRLGVBQVE7WUFBN0I7O2dCQUNrQixjQUFTLEdBQUcsU0FBUyxDQUFDO1lBQ3hDLENBQUM7U0FBQTtRQUNELE9BQU8sSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0tBQzlCO0lBUUQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFzQztRQUM5RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDOzs7Ozs7K0NBdEJSLHlCQUF5Qjs7OztRQXVCbEMsbUNBQW1DO1FBQ25DLElBQUEsd0NBQW9CLEVBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRWxDLElBQUksQ0FBQyxTQUFTLEdBQUcsWUFBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFFeEMsTUFBTSxTQUFTLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUU7WUFDaEQsU0FBUyxFQUFFLElBQUksR0FBRyxDQUFDLGdCQUFnQixDQUFDLG1CQUFtQixDQUFDO1lBQ3hELGVBQWUsRUFBRTtnQkFDZixHQUFHLENBQUMsYUFBYSxDQUFDLHdCQUF3QixDQUFDLHdDQUF3QyxDQUFDO2FBQ3JGO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxHQUFHLENBQUMsNEJBQTRCLENBQUMsSUFBSSxFQUFF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QXdDLENBQUM7WUFDbEcsK0NBQStDLEVBQzdDLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxrQkFBa0IsRUFBRSwrQ0FBK0MsQ0FBQztTQUMxRyxDQUFDO0tBQ0g7SUFFRDs7T0FFRztJQUNLLDZCQUE2QixDQUFDLEtBQWU7UUFDbkQsT0FBTyxLQUFLLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO0tBQ3hEOztBQTlHSCw4REErR0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZXNvdXJjZSwgU3RhY2ssIElSZXNvdXJjZSB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgKiBhcyBpb3QgZnJvbSAnYXdzLWNkay1saWIvYXdzLWlvdCc7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgKiBhcyBzbnMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXNucyc7XG5pbXBvcnQgeyBhZGRDb25zdHJ1Y3RNZXRhZGF0YSB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL21ldGFkYXRhLXJlc291cmNlJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIEFXUyBJb1QgQXVkaXQgQ29uZmlndXJhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIElBY2NvdW50QXVkaXRDb25maWd1cmF0aW9uIGV4dGVuZHMgSVJlc291cmNlIHtcbiAgLyoqXG4gICAqIFRoZSBhY2NvdW50IElEXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGFjY291bnRJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRoZSB0eXBlcyBvZiBhdWRpdCBjaGVja3NcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9pb3QtZGV2aWNlLWRlZmVuZGVyL2xhdGVzdC9kZXZndWlkZS9kZXZpY2UtZGVmZW5kZXItYXVkaXQtY2hlY2tzLmh0bWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDaGVja0NvbmZpZ3VyYXRpb24ge1xuICAvKipcbiAgICogQ2hlY2tzIHRoZSBwZXJtaXNzaXZlbmVzcyBvZiBhbiBhdXRoZW50aWNhdGVkIEFtYXpvbiBDb2duaXRvIGlkZW50aXR5IHBvb2wgcm9sZS5cbiAgICpcbiAgICogRm9yIHRoaXMgY2hlY2ssIEFXUyBJb1QgRGV2aWNlIERlZmVuZGVyIGF1ZGl0cyBhbGwgQW1hem9uIENvZ25pdG8gaWRlbnRpdHkgcG9vbHMgdGhhdCBoYXZlIGJlZW4gdXNlZCB0byBjb25uZWN0IHRvIHRoZSBBV1MgSW9UIG1lc3NhZ2UgYnJva2VyXG4gICAqIGR1cmluZyB0aGUgMzEgZGF5cyBiZWZvcmUgdGhlIGF1ZGl0IGlzIHBlcmZvcm1lZC5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgYXV0aGVudGljYXRlZENvZ25pdG9Sb2xlT3Zlcmx5UGVybWlzc2l2ZUNoZWNrPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ2hlY2tzIGlmIGEgQ0EgY2VydGlmaWNhdGUgaXMgZXhwaXJpbmcuXG4gICAqXG4gICAqIFRoaXMgY2hlY2sgYXBwbGllcyB0byBDQSBjZXJ0aWZpY2F0ZXMgZXhwaXJpbmcgd2l0aGluIDMwIGRheXMgb3IgdGhhdCBoYXZlIGV4cGlyZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGNhQ2VydGlmaWNhdGVFeHBpcmluZ0NoZWNrPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ2hlY2tzIHRoZSBxdWFsaXR5IG9mIHRoZSBDQSBjZXJ0aWZpY2F0ZSBrZXkuXG4gICAqXG4gICAqIFRoZSBxdWFsaXR5IGNoZWNrcyBpZiB0aGUga2V5IGlzIGluIGEgdmFsaWQgZm9ybWF0LCBub3QgZXhwaXJlZCwgYW5kIGlmIHRoZSBrZXkgbWVldHMgYSBtaW5pbXVtIHJlcXVpcmVkIHNpemUuXG4gICAqXG4gICAqIFRoaXMgY2hlY2sgYXBwbGllcyB0byBDQSBjZXJ0aWZpY2F0ZXMgdGhhdCBhcmUgQUNUSVZFIG9yIFBFTkRJTkdfVFJBTlNGRVIuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGNhQ2VydGlmaWNhdGVLZXlRdWFsaXR5Q2hlY2s/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgbXVsdGlwbGUgZGV2aWNlcyBjb25uZWN0IHVzaW5nIHRoZSBzYW1lIGNsaWVudCBJRC5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgY29uZmxpY3RpbmdDbGllbnRJZHNDaGVjaz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiBhIGRldmljZSBjZXJ0aWZpY2F0ZSBpcyBleHBpcmluZy5cbiAgICpcbiAgICogVGhpcyBjaGVjayBhcHBsaWVzIHRvIGRldmljZSBjZXJ0aWZpY2F0ZXMgZXhwaXJpbmcgd2l0aGluIDMwIGRheXMgb3IgdGhhdCBoYXZlIGV4cGlyZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGRldmljZUNlcnRpZmljYXRlRXhwaXJpbmdDaGVjaz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENoZWNrcyB0aGUgcXVhbGl0eSBvZiB0aGUgZGV2aWNlIGNlcnRpZmljYXRlIGtleS5cbiAgICpcbiAgICogVGhlIHF1YWxpdHkgY2hlY2tzIGlmIHRoZSBrZXkgaXMgaW4gYSB2YWxpZCBmb3JtYXQsIG5vdCBleHBpcmVkLCBzaWduZWQgYnkgYSByZWdpc3RlcmVkIGNlcnRpZmljYXRlIGF1dGhvcml0eSxcbiAgICogYW5kIGlmIHRoZSBrZXkgbWVldHMgYSBtaW5pbXVtIHJlcXVpcmVkIHNpemUuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGRldmljZUNlcnRpZmljYXRlS2V5UXVhbGl0eUNoZWNrPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ2hlY2tzIGlmIG11bHRpcGxlIGNvbmN1cnJlbnQgY29ubmVjdGlvbnMgdXNlIHRoZSBzYW1lIFguNTA5IGNlcnRpZmljYXRlIHRvIGF1dGhlbnRpY2F0ZSB3aXRoIEFXUyBJb1QuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGRldmljZUNlcnRpZmljYXRlU2hhcmVkQ2hlY2s/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgZGV2aWNlIGNlcnRpZmljYXRlcyBhcmUgc3RpbGwgYWN0aXZlIGRlc3BpdGUgYmVpbmcgcmV2b2tlZCBieSBhbiBpbnRlcm1lZGlhdGUgQ0EuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGludGVybWVkaWF0ZUNhUmV2b2tlZEZvckFjdGl2ZURldmljZUNlcnRpZmljYXRlc0NoZWNrPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ2hlY2tzIHRoZSBwZXJtaXNzaXZlbmVzcyBvZiBhIHBvbGljeSBhdHRhY2hlZCB0byBhbiBhdXRoZW50aWNhdGVkIEFtYXpvbiBDb2duaXRvIGlkZW50aXR5IHBvb2wgcm9sZS5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgaW90UG9saWN5T3Zlcmx5UGVybWlzc2l2ZUNoZWNrPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ2hlY2tzIGlmIGFuIEFXUyBJb1QgcG9saWN5IGlzIHBvdGVudGlhbGx5IG1pc2NvbmZpZ3VyZWQuXG4gICAqXG4gICAqIE1pc2NvbmZpZ3VyZWQgcG9saWNpZXMsIGluY2x1ZGluZyBvdmVybHkgcGVybWlzc2l2ZSBwb2xpY2llcywgY2FuIGNhdXNlIHNlY3VyaXR5IGluY2lkZW50cyBsaWtlIGFsbG93aW5nIGRldmljZXMgYWNjZXNzIHRvIHVuaW50ZW5kZWQgcmVzb3VyY2VzLlxuICAgKlxuICAgKiBUaGlzIGNoZWNrIGlzIGEgd2FybmluZyBmb3IgeW91IHRvIG1ha2Ugc3VyZSB0aGF0IG9ubHkgaW50ZW5kZWQgYWN0aW9ucyBhcmUgYWxsb3dlZCBiZWZvcmUgdXBkYXRpbmcgdGhlIHBvbGljeS5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgaW9UUG9saWN5UG90ZW50aWFsTWlzQ29uZmlndXJhdGlvbkNoZWNrPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ2hlY2tzIGlmIGEgcm9sZSBhbGlhcyBoYXMgYWNjZXNzIHRvIHNlcnZpY2VzIHRoYXQgaGF2ZW4ndCBiZWVuIHVzZWQgZm9yIHRoZSBBV1MgSW9UIGRldmljZSBpbiB0aGUgbGFzdCB5ZWFyLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBpb3RSb2xlQWxpYXNBbGxvd3NBY2Nlc3NUb1VudXNlZFNlcnZpY2VzQ2hlY2s/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhlIHRlbXBvcmFyeSBjcmVkZW50aWFscyBwcm92aWRlZCBieSBBV1MgSW9UIHJvbGUgYWxpYXNlcyBhcmUgb3Zlcmx5IHBlcm1pc3NpdmUuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGlvdFJvbGVBbGlhc092ZXJseVBlcm1pc3NpdmVDaGVjaz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiBBV1MgSW9UIGxvZ3MgYXJlIGRpc2FibGVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBsb2dnaW5nRGlzYWJsZWRDaGVjaz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiBhIHJldm9rZWQgQ0EgY2VydGlmaWNhdGUgaXMgc3RpbGwgYWN0aXZlLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSByZXZva2VkQ2FDZXJ0aWZpY2F0ZVN0aWxsQWN0aXZlQ2hlY2s/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYSByZXZva2VkIGRldmljZSBjZXJ0aWZpY2F0ZSBpcyBzdGlsbCBhY3RpdmUuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHJldm9rZWREZXZpY2VDZXJ0aWZpY2F0ZVN0aWxsQWN0aXZlQ2hlY2s/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgcG9saWN5IGF0dGFjaGVkIHRvIGFuIHVuYXV0aGVudGljYXRlZCBBbWF6b24gQ29nbml0byBpZGVudGl0eSBwb29sIHJvbGUgaXMgdG9vIHBlcm1pc3NpdmUuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHVuYXV0aGVudGljYXRlZENvZ25pdG9Sb2xlT3Zlcmx5UGVybWlzc2l2ZUNoZWNrPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBkZWZpbmluZyBBV1MgSW9UIEF1ZGl0IENvbmZpZ3VyYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBY2NvdW50QXVkaXRDb25maWd1cmF0aW9uUHJvcHMge1xuICAvKipcbiAgICogVGhlIHRhcmdldCBTTlMgdG9waWMgdG8gd2hpY2ggYXVkaXQgbm90aWZpY2F0aW9ucyBhcmUgc2VudC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBub3RpZmljYXRpb25zIGFyZSBzZW50XG4gICAqL1xuICByZWFkb25seSB0YXJnZXRUb3BpYz86IHNucy5JVG9waWM7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB3aGljaCBhdWRpdCBjaGVja3MgYXJlIGVuYWJsZWQgYW5kIGRpc2FibGVkIGZvciB0aGlzIGFjY291bnQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYWxsIGNoZWNrcyBhcmUgZW5hYmxlZFxuICAgKi9cbiAgcmVhZG9ubHkgY2hlY2tDb25maWd1cmF0aW9uPzogQ2hlY2tDb25maWd1cmF0aW9uO1xufVxuXG4vKipcbiAqIERlZmluZXMgQVdTIElvVCBBdWRpdCBDb25maWd1cmF0aW9uXG4gKi9cbmV4cG9ydCBjbGFzcyBBY2NvdW50QXVkaXRDb25maWd1cmF0aW9uIGV4dGVuZHMgUmVzb3VyY2UgaW1wbGVtZW50cyBJQWNjb3VudEF1ZGl0Q29uZmlndXJhdGlvbiB7XG4gIC8qKlxuICAgKiBJbXBvcnQgYW4gZXhpc3RpbmcgQVdTIElvVCBBdWRpdCBDb25maWd1cmF0aW9uXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgcGFyZW50IGNyZWF0aW5nIGNvbnN0cnVjdCAodXN1YWxseSBgdGhpc2ApXG4gICAqIEBwYXJhbSBpZCBUaGUgY29uc3RydWN0J3MgbmFtZVxuICAgKiBAcGFyYW0gYWNjb3VudElkIFRoZSBhY2NvdW50IElEXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21BY2NvdW50SWQoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgYWNjb3VudElkOiBzdHJpbmcpOiBJQWNjb3VudEF1ZGl0Q29uZmlndXJhdGlvbiB7XG4gICAgY2xhc3MgSW1wb3J0IGV4dGVuZHMgUmVzb3VyY2UgaW1wbGVtZW50cyBJQWNjb3VudEF1ZGl0Q29uZmlndXJhdGlvbiB7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgYWNjb3VudElkID0gYWNjb3VudElkO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IEltcG9ydChzY29wZSwgaWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBhY2NvdW50IElEXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhY2NvdW50SWQ6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wcz86IEFjY291bnRBdWRpdENvbmZpZ3VyYXRpb25Qcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgLy8gRW5oYW5jZWQgQ0RLIEFuYWx5dGljcyBUZWxlbWV0cnlcbiAgICBhZGRDb25zdHJ1Y3RNZXRhZGF0YSh0aGlzLCBwcm9wcyk7XG5cbiAgICB0aGlzLmFjY291bnRJZCA9IFN0YWNrLm9mKHRoaXMpLmFjY291bnQ7XG5cbiAgICBjb25zdCBhdWRpdFJvbGUgPSBuZXcgaWFtLlJvbGUodGhpcywgJ0F1ZGl0Um9sZScsIHtcbiAgICAgIGFzc3VtZWRCeTogbmV3IGlhbS5TZXJ2aWNlUHJpbmNpcGFsKCdpb3QuYW1hem9uYXdzLmNvbScpLFxuICAgICAgbWFuYWdlZFBvbGljaWVzOiBbXG4gICAgICAgIGlhbS5NYW5hZ2VkUG9saWN5LmZyb21Bd3NNYW5hZ2VkUG9saWN5TmFtZSgnc2VydmljZS1yb2xlL0FXU0lvVERldmljZURlZmVuZGVyQXVkaXQnKSxcbiAgICAgIF0sXG4gICAgfSk7XG5cbiAgICBuZXcgaW90LkNmbkFjY291bnRBdWRpdENvbmZpZ3VyYXRpb24odGhpcywgJ1Jlc291cmNlJywge1xuICAgICAgYWNjb3VudElkOiB0aGlzLmFjY291bnRJZCxcbiAgICAgIGF1ZGl0Q2hlY2tDb25maWd1cmF0aW9uczogdGhpcy5yZW5kZXJBdWRpdENoZWNrQ29uZmlndXJhdGlvbnMocHJvcHM/LmNoZWNrQ29uZmlndXJhdGlvbiksXG4gICAgICBhdWRpdE5vdGlmaWNhdGlvblRhcmdldENvbmZpZ3VyYXRpb25zOiB0aGlzLnJlbmRlckF1ZGl0Tm90aWZpY2F0aW9uVGFyZ2V0Q29uZmlndXJhdGlvbnMocHJvcHM/LnRhcmdldFRvcGljKSxcbiAgICAgIHJvbGVBcm46IGF1ZGl0Um9sZS5yb2xlQXJuLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbmRlciB0aGUgYXVkaXQgbm90aWZpY2F0aW9uIHRhcmdldCBjb25maWd1cmF0aW9uc1xuICAgKi9cbiAgcHJpdmF0ZSByZW5kZXJBdWRpdE5vdGlmaWNhdGlvblRhcmdldENvbmZpZ3VyYXRpb25zKFxuICAgIHRhcmdldFRvcGljPzogc25zLklUb3BpYyxcbiAgKTogaW90LkNmbkFjY291bnRBdWRpdENvbmZpZ3VyYXRpb24uQXVkaXROb3RpZmljYXRpb25UYXJnZXRDb25maWd1cmF0aW9uc1Byb3BlcnR5IHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIXRhcmdldFRvcGljKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGNvbnN0IG5vdGlmaWNhdGlvblJvbGUgPSBuZXcgaWFtLlJvbGUodGhpcywgJ05vdGlmaWNhdGlvblJvbGUnLCB7XG4gICAgICBhc3N1bWVkQnk6IG5ldyBpYW0uU2VydmljZVByaW5jaXBhbCgnaW90LmFtYXpvbmF3cy5jb20nKSxcbiAgICAgIGlubGluZVBvbGljaWVzOiB7XG4gICAgICAgIE5vdGlmaWNhdGlvblBvbGljeTogbmV3IGlhbS5Qb2xpY3lEb2N1bWVudCh7XG4gICAgICAgICAgc3RhdGVtZW50czogW1xuICAgICAgICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgICBhY3Rpb25zOiBbJ3NuczpQdWJsaXNoJ10sXG4gICAgICAgICAgICAgIHJlc291cmNlczogW3RhcmdldFRvcGljLnRvcGljQXJuXSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIF0sXG4gICAgICAgIH0pLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiB7XG4gICAgICBzbnM6IHtcbiAgICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgdGFyZ2V0QXJuOiB0YXJnZXRUb3BpYy50b3BpY0FybixcbiAgICAgICAgcm9sZUFybjogbm90aWZpY2F0aW9uUm9sZS5yb2xlQXJuLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbmRlciB0aGUgYXVkaXQgY2hlY2sgY29uZmlndXJhdGlvbnNcbiAgICovXG4gIHByaXZhdGUgcmVuZGVyQXVkaXRDaGVja0NvbmZpZ3VyYXRpb25zKGNoZWNrQ29uZmlndXJhdGlvbj86IENoZWNrQ29uZmlndXJhdGlvbik6IGlvdC5DZm5BY2NvdW50QXVkaXRDb25maWd1cmF0aW9uLkF1ZGl0Q2hlY2tDb25maWd1cmF0aW9uc1Byb3BlcnR5IHtcbiAgICByZXR1cm4ge1xuICAgICAgYXV0aGVudGljYXRlZENvZ25pdG9Sb2xlT3Zlcmx5UGVybWlzc2l2ZUNoZWNrOlxuICAgICAgICB0aGlzLnJlbmRlckF1ZGl0Q2hlY2tDb25maWd1cmF0aW9uKGNoZWNrQ29uZmlndXJhdGlvbj8uYXV0aGVudGljYXRlZENvZ25pdG9Sb2xlT3Zlcmx5UGVybWlzc2l2ZUNoZWNrKSxcbiAgICAgIGNhQ2VydGlmaWNhdGVFeHBpcmluZ0NoZWNrOiB0aGlzLnJlbmRlckF1ZGl0Q2hlY2tDb25maWd1cmF0aW9uKGNoZWNrQ29uZmlndXJhdGlvbj8uY2FDZXJ0aWZpY2F0ZUV4cGlyaW5nQ2hlY2spLFxuICAgICAgY2FDZXJ0aWZpY2F0ZUtleVF1YWxpdHlDaGVjazogdGhpcy5yZW5kZXJBdWRpdENoZWNrQ29uZmlndXJhdGlvbihjaGVja0NvbmZpZ3VyYXRpb24/LmNhQ2VydGlmaWNhdGVLZXlRdWFsaXR5Q2hlY2spLFxuICAgICAgY29uZmxpY3RpbmdDbGllbnRJZHNDaGVjazogdGhpcy5yZW5kZXJBdWRpdENoZWNrQ29uZmlndXJhdGlvbihjaGVja0NvbmZpZ3VyYXRpb24/LmNvbmZsaWN0aW5nQ2xpZW50SWRzQ2hlY2spLFxuICAgICAgZGV2aWNlQ2VydGlmaWNhdGVFeHBpcmluZ0NoZWNrOiB0aGlzLnJlbmRlckF1ZGl0Q2hlY2tDb25maWd1cmF0aW9uKGNoZWNrQ29uZmlndXJhdGlvbj8uZGV2aWNlQ2VydGlmaWNhdGVFeHBpcmluZ0NoZWNrKSxcbiAgICAgIGRldmljZUNlcnRpZmljYXRlS2V5UXVhbGl0eUNoZWNrOiB0aGlzLnJlbmRlckF1ZGl0Q2hlY2tDb25maWd1cmF0aW9uKGNoZWNrQ29uZmlndXJhdGlvbj8uZGV2aWNlQ2VydGlmaWNhdGVLZXlRdWFsaXR5Q2hlY2spLFxuICAgICAgZGV2aWNlQ2VydGlmaWNhdGVTaGFyZWRDaGVjazogdGhpcy5yZW5kZXJBdWRpdENoZWNrQ29uZmlndXJhdGlvbihjaGVja0NvbmZpZ3VyYXRpb24/LmRldmljZUNlcnRpZmljYXRlU2hhcmVkQ2hlY2spLFxuICAgICAgaW50ZXJtZWRpYXRlQ2FSZXZva2VkRm9yQWN0aXZlRGV2aWNlQ2VydGlmaWNhdGVzQ2hlY2s6XG4gICAgICAgIHRoaXMucmVuZGVyQXVkaXRDaGVja0NvbmZpZ3VyYXRpb24oY2hlY2tDb25maWd1cmF0aW9uPy5pbnRlcm1lZGlhdGVDYVJldm9rZWRGb3JBY3RpdmVEZXZpY2VDZXJ0aWZpY2F0ZXNDaGVjayksXG4gICAgICBpb3RQb2xpY3lPdmVybHlQZXJtaXNzaXZlQ2hlY2s6IHRoaXMucmVuZGVyQXVkaXRDaGVja0NvbmZpZ3VyYXRpb24oY2hlY2tDb25maWd1cmF0aW9uPy5pb3RQb2xpY3lPdmVybHlQZXJtaXNzaXZlQ2hlY2spLFxuICAgICAgaW9UUG9saWN5UG90ZW50aWFsTWlzQ29uZmlndXJhdGlvbkNoZWNrOiB0aGlzLnJlbmRlckF1ZGl0Q2hlY2tDb25maWd1cmF0aW9uKGNoZWNrQ29uZmlndXJhdGlvbj8uaW9UUG9saWN5UG90ZW50aWFsTWlzQ29uZmlndXJhdGlvbkNoZWNrKSxcbiAgICAgIGlvdFJvbGVBbGlhc0FsbG93c0FjY2Vzc1RvVW51c2VkU2VydmljZXNDaGVjazpcbiAgICAgICAgdGhpcy5yZW5kZXJBdWRpdENoZWNrQ29uZmlndXJhdGlvbihjaGVja0NvbmZpZ3VyYXRpb24/LmlvdFJvbGVBbGlhc0FsbG93c0FjY2Vzc1RvVW51c2VkU2VydmljZXNDaGVjayksXG4gICAgICBpb3RSb2xlQWxpYXNPdmVybHlQZXJtaXNzaXZlQ2hlY2s6IHRoaXMucmVuZGVyQXVkaXRDaGVja0NvbmZpZ3VyYXRpb24oY2hlY2tDb25maWd1cmF0aW9uPy5pb3RSb2xlQWxpYXNPdmVybHlQZXJtaXNzaXZlQ2hlY2spLFxuICAgICAgbG9nZ2luZ0Rpc2FibGVkQ2hlY2s6IHRoaXMucmVuZGVyQXVkaXRDaGVja0NvbmZpZ3VyYXRpb24oY2hlY2tDb25maWd1cmF0aW9uPy5sb2dnaW5nRGlzYWJsZWRDaGVjayksXG4gICAgICByZXZva2VkQ2FDZXJ0aWZpY2F0ZVN0aWxsQWN0aXZlQ2hlY2s6IHRoaXMucmVuZGVyQXVkaXRDaGVja0NvbmZpZ3VyYXRpb24oY2hlY2tDb25maWd1cmF0aW9uPy5yZXZva2VkQ2FDZXJ0aWZpY2F0ZVN0aWxsQWN0aXZlQ2hlY2spLFxuICAgICAgcmV2b2tlZERldmljZUNlcnRpZmljYXRlU3RpbGxBY3RpdmVDaGVjazpcbiAgICAgICAgdGhpcy5yZW5kZXJBdWRpdENoZWNrQ29uZmlndXJhdGlvbihjaGVja0NvbmZpZ3VyYXRpb24/LnJldm9rZWREZXZpY2VDZXJ0aWZpY2F0ZVN0aWxsQWN0aXZlQ2hlY2spLFxuICAgICAgdW5hdXRoZW50aWNhdGVkQ29nbml0b1JvbGVPdmVybHlQZXJtaXNzaXZlQ2hlY2s6XG4gICAgICAgIHRoaXMucmVuZGVyQXVkaXRDaGVja0NvbmZpZ3VyYXRpb24oY2hlY2tDb25maWd1cmF0aW9uPy51bmF1dGhlbnRpY2F0ZWRDb2duaXRvUm9sZU92ZXJseVBlcm1pc3NpdmVDaGVjayksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXIgdGhlIGF1ZGl0IGNoZWNrIGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIHByaXZhdGUgcmVuZGVyQXVkaXRDaGVja0NvbmZpZ3VyYXRpb24oY2hlY2s/OiBib29sZWFuKTogaW90LkNmbkFjY291bnRBdWRpdENvbmZpZ3VyYXRpb24uQXVkaXRDaGVja0NvbmZpZ3VyYXRpb25Qcm9wZXJ0eSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIGNoZWNrID09PSBmYWxzZSA/IHVuZGVmaW5lZCA6IHsgZW5hYmxlZDogdHJ1ZSB9O1xuICB9XG59XG5cbiJdfQ==
135
+ AccountAuditConfiguration[_a] = { fqn: "@aws-cdk/aws-iot-alpha.AccountAuditConfiguration", version: "2.195.0-alpha.0" };
136
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQtY29uZmlndXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImF1ZGl0LWNvbmZpZ3VyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsMkNBQXdFO0FBRXhFLDJDQUEyQztBQUMzQywyQ0FBMkM7QUFFM0MsOEVBQThFO0FBNEw5RTs7R0FFRztBQUNILE1BQWEseUJBQTBCLFNBQVEsZUFBUTtJQUNyRDs7Ozs7O09BTUc7SUFDSSxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQWdCLEVBQUUsRUFBVSxFQUFFLFNBQWlCO1FBQ3pFLE1BQU0sTUFBTyxTQUFRLGVBQVE7WUFBN0I7O2dCQUNrQixjQUFTLEdBQUcsU0FBUyxDQUFDO1lBQ3hDLENBQUM7U0FBQTtRQUNELE9BQU8sSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0tBQzlCO0lBUUQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFzQztRQUM5RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDOzs7Ozs7K0NBdEJSLHlCQUF5Qjs7OztRQXVCbEMsbUNBQW1DO1FBQ25DLElBQUEsd0NBQW9CLEVBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRWxDLE1BQU0sdUJBQXVCLEdBQUcsS0FBSyxFQUFFLGtCQUFrQixFQUFFLGlDQUFpQyxDQUFDO1FBRTdGLElBQUksdUJBQXVCLEVBQUUsQ0FBQztZQUM1QixJQUFJLEtBQUssRUFBRSxrQkFBa0IsRUFBRSx5QkFBeUIsS0FBSyxLQUFLLEVBQUUsQ0FBQztnQkFDbkUsTUFBTSxJQUFJLEtBQUssQ0FBQyxzSEFBc0gsQ0FBQyxDQUFDO1lBQzFJLENBQUM7WUFDRCxJQUFJLENBQUMsdUJBQXVCLENBQUMsWUFBWSxFQUFFLElBQUksdUJBQXVCLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLHVCQUF1QixDQUFDLE1BQU0sRUFBRSxHQUFHLElBQUksRUFBRSxDQUFD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Y2ssIElSZXNvdXJjZSwgRHVyYXRpb24gfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0ICogYXMgaW90IGZyb20gJ2F3cy1jZGstbGliL2F3cy1pb3QnO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0ICogYXMgc25zIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zbnMnO1xuaW1wb3J0IHsgYWRkQ29uc3RydWN0TWV0YWRhdGEgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9tZXRhZGF0YS1yZXNvdXJjZSc7XG5cbi8qKlxuICogUmVwcmVzZW50cyBBV1MgSW9UIEF1ZGl0IENvbmZpZ3VyYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJQWNjb3VudEF1ZGl0Q29uZmlndXJhdGlvbiBleHRlbmRzIElSZXNvdXJjZSB7XG4gIC8qKlxuICAgKiBUaGUgYWNjb3VudCBJRFxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBhY2NvdW50SWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGUgdHlwZXMgb2YgYXVkaXQgY2hlY2tzXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vaW90LWRldmljZS1kZWZlbmRlci9sYXRlc3QvZGV2Z3VpZGUvZGV2aWNlLWRlZmVuZGVyLWF1ZGl0LWNoZWNrcy5odG1sXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2hlY2tDb25maWd1cmF0aW9uIHtcbiAgLyoqXG4gICAqIENoZWNrcyB0aGUgcGVybWlzc2l2ZW5lc3Mgb2YgYW4gYXV0aGVudGljYXRlZCBBbWF6b24gQ29nbml0byBpZGVudGl0eSBwb29sIHJvbGUuXG4gICAqXG4gICAqIEZvciB0aGlzIGNoZWNrLCBBV1MgSW9UIERldmljZSBEZWZlbmRlciBhdWRpdHMgYWxsIEFtYXpvbiBDb2duaXRvIGlkZW50aXR5IHBvb2xzIHRoYXQgaGF2ZSBiZWVuIHVzZWQgdG8gY29ubmVjdCB0byB0aGUgQVdTIElvVCBtZXNzYWdlIGJyb2tlclxuICAgKiBkdXJpbmcgdGhlIDMxIGRheXMgYmVmb3JlIHRoZSBhdWRpdCBpcyBwZXJmb3JtZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGF1dGhlbnRpY2F0ZWRDb2duaXRvUm9sZU92ZXJseVBlcm1pc3NpdmVDaGVjaz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiBhIENBIGNlcnRpZmljYXRlIGlzIGV4cGlyaW5nLlxuICAgKlxuICAgKiBUaGlzIGNoZWNrIGFwcGxpZXMgdG8gQ0EgY2VydGlmaWNhdGVzIGV4cGlyaW5nIHdpdGhpbiAzMCBkYXlzIG9yIHRoYXQgaGF2ZSBleHBpcmVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBjYUNlcnRpZmljYXRlRXhwaXJpbmdDaGVjaz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENoZWNrcyB0aGUgcXVhbGl0eSBvZiB0aGUgQ0EgY2VydGlmaWNhdGUga2V5LlxuICAgKlxuICAgKiBUaGUgcXVhbGl0eSBjaGVja3MgaWYgdGhlIGtleSBpcyBpbiBhIHZhbGlkIGZvcm1hdCwgbm90IGV4cGlyZWQsIGFuZCBpZiB0aGUga2V5IG1lZXRzIGEgbWluaW11bSByZXF1aXJlZCBzaXplLlxuICAgKlxuICAgKiBUaGlzIGNoZWNrIGFwcGxpZXMgdG8gQ0EgY2VydGlmaWNhdGVzIHRoYXQgYXJlIEFDVElWRSBvciBQRU5ESU5HX1RSQU5TRkVSLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBjYUNlcnRpZmljYXRlS2V5UXVhbGl0eUNoZWNrPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ2hlY2tzIGlmIG11bHRpcGxlIGRldmljZXMgY29ubmVjdCB1c2luZyB0aGUgc2FtZSBjbGllbnQgSUQuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGNvbmZsaWN0aW5nQ2xpZW50SWRzQ2hlY2s/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDaGVja3Mgd2hlbiBhIGRldmljZSBjZXJ0aWZpY2F0ZSBoYXMgYmVlbiBhY3RpdmUgZm9yIGEgbnVtYmVyIG9mIGRheXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSBudW1iZXIgeW91IHNwZWNpZnkuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGRldmljZUNlcnRpZmljYXRlQWdlQ2hlY2s/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgZHVyYXRpb24gdXNlZCB0byBjaGVjayBpZiBhIGRldmljZSBjZXJ0aWZpY2F0ZSBoYXMgYmVlbiBhY3RpdmVcbiAgICogZm9yIGEgbnVtYmVyIG9mIGRheXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSBudW1iZXIgeW91IHNwZWNpZnkuXG4gICAqXG4gICAqIFZhbGlkIHZhbHVlcyByYW5nZSBmcm9tIDMwIGRheXMgKG1pbmltdW0pIHRvIDM2NTIgZGF5cyAoMTAgeWVhcnMsIG1heGltdW0pLlxuICAgKlxuICAgKiBZb3UgY2Fubm90IHNwZWNpZnkgYSB2YWx1ZSBmb3IgdGhpcyBjaGVjayBpZiBgZGV2aWNlQ2VydGlmaWNhdGVBZ2VDaGVja2AgaXMgc2V0IHRvIGBmYWxzZWAuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gMzY1IGRheXNcbiAgICovXG4gIHJlYWRvbmx5IGRldmljZUNlcnRpZmljYXRlQWdlQ2hlY2tEdXJhdGlvbj86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYSBkZXZpY2UgY2VydGlmaWNhdGUgaXMgZXhwaXJpbmcuXG4gICAqXG4gICAqIFRoaXMgY2hlY2sgYXBwbGllcyB0byBkZXZpY2UgY2VydGlmaWNhdGVzIGV4cGlyaW5nIHdpdGhpbiAzMCBkYXlzIG9yIHRoYXQgaGF2ZSBleHBpcmVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBkZXZpY2VDZXJ0aWZpY2F0ZUV4cGlyaW5nQ2hlY2s/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDaGVja3MgdGhlIHF1YWxpdHkgb2YgdGhlIGRldmljZSBjZXJ0aWZpY2F0ZSBrZXkuXG4gICAqXG4gICAqIFRoZSBxdWFsaXR5IGNoZWNrcyBpZiB0aGUga2V5IGlzIGluIGEgdmFsaWQgZm9ybWF0LCBub3QgZXhwaXJlZCwgc2lnbmVkIGJ5IGEgcmVnaXN0ZXJlZCBjZXJ0aWZpY2F0ZSBhdXRob3JpdHksXG4gICAqIGFuZCBpZiB0aGUga2V5IG1lZXRzIGEgbWluaW11bSByZXF1aXJlZCBzaXplLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBkZXZpY2VDZXJ0aWZpY2F0ZUtleVF1YWxpdHlDaGVjaz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiBtdWx0aXBsZSBjb25jdXJyZW50IGNvbm5lY3Rpb25zIHVzZSB0aGUgc2FtZSBYLjUwOSBjZXJ0aWZpY2F0ZSB0byBhdXRoZW50aWNhdGUgd2l0aCBBV1MgSW9ULlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBkZXZpY2VDZXJ0aWZpY2F0ZVNoYXJlZENoZWNrPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ2hlY2tzIGlmIGRldmljZSBjZXJ0aWZpY2F0ZXMgYXJlIHN0aWxsIGFjdGl2ZSBkZXNwaXRlIGJlaW5nIHJldm9rZWQgYnkgYW4gaW50ZXJtZWRpYXRlIENBLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBpbnRlcm1lZGlhdGVDYVJldm9rZWRGb3JBY3RpdmVEZXZpY2VDZXJ0aWZpY2F0ZXNDaGVjaz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENoZWNrcyB0aGUgcGVybWlzc2l2ZW5lc3Mgb2YgYSBwb2xpY3kgYXR0YWNoZWQgdG8gYW4gYXV0aGVudGljYXRlZCBBbWF6b24gQ29nbml0byBpZGVudGl0eSBwb29sIHJvbGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGlvdFBvbGljeU92ZXJseVBlcm1pc3NpdmVDaGVjaz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiBhbiBBV1MgSW9UIHBvbGljeSBpcyBwb3RlbnRpYWxseSBtaXNjb25maWd1cmVkLlxuICAgKlxuICAgKiBNaXNjb25maWd1cmVkIHBvbGljaWVzLCBpbmNsdWRpbmcgb3Zlcmx5IHBlcm1pc3NpdmUgcG9saWNpZXMsIGNhbiBjYXVzZSBzZWN1cml0eSBpbmNpZGVudHMgbGlrZSBhbGxvd2luZyBkZXZpY2VzIGFjY2VzcyB0byB1bmludGVuZGVkIHJlc291cmNlcy5cbiAgICpcbiAgICogVGhpcyBjaGVjayBpcyBhIHdhcm5pbmcgZm9yIHlvdSB0byBtYWtlIHN1cmUgdGhhdCBvbmx5IGludGVuZGVkIGFjdGlvbnMgYXJlIGFsbG93ZWQgYmVmb3JlIHVwZGF0aW5nIHRoZSBwb2xpY3kuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGlvVFBvbGljeVBvdGVudGlhbE1pc0NvbmZpZ3VyYXRpb25DaGVjaz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiBhIHJvbGUgYWxpYXMgaGFzIGFjY2VzcyB0byBzZXJ2aWNlcyB0aGF0IGhhdmVuJ3QgYmVlbiB1c2VkIGZvciB0aGUgQVdTIElvVCBkZXZpY2UgaW4gdGhlIGxhc3QgeWVhci5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgaW90Um9sZUFsaWFzQWxsb3dzQWNjZXNzVG9VbnVzZWRTZXJ2aWNlc0NoZWNrPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoZSB0ZW1wb3JhcnkgY3JlZGVudGlhbHMgcHJvdmlkZWQgYnkgQVdTIElvVCByb2xlIGFsaWFzZXMgYXJlIG92ZXJseSBwZXJtaXNzaXZlLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBpb3RSb2xlQWxpYXNPdmVybHlQZXJtaXNzaXZlQ2hlY2s/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgQVdTIElvVCBsb2dzIGFyZSBkaXNhYmxlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgbG9nZ2luZ0Rpc2FibGVkQ2hlY2s/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYSByZXZva2VkIENBIGNlcnRpZmljYXRlIGlzIHN0aWxsIGFjdGl2ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgcmV2b2tlZENhQ2VydGlmaWNhdGVTdGlsbEFjdGl2ZUNoZWNrPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ2hlY2tzIGlmIGEgcmV2b2tlZCBkZXZpY2UgY2VydGlmaWNhdGUgaXMgc3RpbGwgYWN0aXZlLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSByZXZva2VkRGV2aWNlQ2VydGlmaWNhdGVTdGlsbEFjdGl2ZUNoZWNrPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHBvbGljeSBhdHRhY2hlZCB0byBhbiB1bmF1dGhlbnRpY2F0ZWQgQW1hem9uIENvZ25pdG8gaWRlbnRpdHkgcG9vbCByb2xlIGlzIHRvbyBwZXJtaXNzaXZlLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSB1bmF1dGhlbnRpY2F0ZWRDb2duaXRvUm9sZU92ZXJseVBlcm1pc3NpdmVDaGVjaz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgZGVmaW5pbmcgQVdTIElvVCBBdWRpdCBDb25maWd1cmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWNjb3VudEF1ZGl0Q29uZmlndXJhdGlvblByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSB0YXJnZXQgU05TIHRvcGljIHRvIHdoaWNoIGF1ZGl0IG5vdGlmaWNhdGlvbnMgYXJlIHNlbnQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gbm90aWZpY2F0aW9ucyBhcmUgc2VudFxuICAgKi9cbiAgcmVhZG9ubHkgdGFyZ2V0VG9waWM/OiBzbnMuSVRvcGljO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgd2hpY2ggYXVkaXQgY2hlY2tzIGFyZSBlbmFibGVkIGFuZCBkaXNhYmxlZCBmb3IgdGhpcyBhY2NvdW50LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGFsbCBjaGVja3MgYXJlIGVuYWJsZWRcbiAgICovXG4gIHJlYWRvbmx5IGNoZWNrQ29uZmlndXJhdGlvbj86IENoZWNrQ29uZmlndXJhdGlvbjtcbn1cblxuLyoqXG4gKiBEZWZpbmVzIEFXUyBJb1QgQXVkaXQgQ29uZmlndXJhdGlvblxuICovXG5leHBvcnQgY2xhc3MgQWNjb3VudEF1ZGl0Q29uZmlndXJhdGlvbiBleHRlbmRzIFJlc291cmNlIGltcGxlbWVudHMgSUFjY291bnRBdWRpdENvbmZpZ3VyYXRpb24ge1xuICAvKipcbiAgICogSW1wb3J0IGFuIGV4aXN0aW5nIEFXUyBJb1QgQXVkaXQgQ29uZmlndXJhdGlvblxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIHBhcmVudCBjcmVhdGluZyBjb25zdHJ1Y3QgKHVzdWFsbHkgYHRoaXNgKVxuICAgKiBAcGFyYW0gaWQgVGhlIGNvbnN0cnVjdCdzIG5hbWVcbiAgICogQHBhcmFtIGFjY291bnRJZCBUaGUgYWNjb3VudCBJRFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tQWNjb3VudElkKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGFjY291bnRJZDogc3RyaW5nKTogSUFjY291bnRBdWRpdENvbmZpZ3VyYXRpb24ge1xuICAgIGNsYXNzIEltcG9ydCBleHRlbmRzIFJlc291cmNlIGltcGxlbWVudHMgSUFjY291bnRBdWRpdENvbmZpZ3VyYXRpb24ge1xuICAgICAgcHVibGljIHJlYWRvbmx5IGFjY291bnRJZCA9IGFjY291bnRJZDtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBJbXBvcnQoc2NvcGUsIGlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgYWNjb3VudCBJRFxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYWNjb3VudElkOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM/OiBBY2NvdW50QXVkaXRDb25maWd1cmF0aW9uUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIC8vIEVuaGFuY2VkIENESyBBbmFseXRpY3MgVGVsZW1ldHJ5XG4gICAgYWRkQ29uc3RydWN0TWV0YWRhdGEodGhpcywgcHJvcHMpO1xuXG4gICAgY29uc3QgZGV2aWNlQWdlQ2hlY2tUaHJlc2hvbGQgPSBwcm9wcz8uY2hlY2tDb25maWd1cmF0aW9uPy5kZXZpY2VDZXJ0aWZpY2F0ZUFnZUNoZWNrRHVyYXRpb247XG5cbiAgICBpZiAoZGV2aWNlQWdlQ2hlY2tUaHJlc2hvbGQpIHtcbiAgICAgIGlmIChwcm9wcz8uY2hlY2tDb25maWd1cmF0aW9uPy5kZXZpY2VDZXJ0aWZpY2F0ZUFnZUNoZWNrID09PSBmYWxzZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1lvdSBjYW5ub3Qgc3BlY2lmeSBhIHZhbHVlIGZvciBgZGV2aWNlQ2VydGlmaWNhdGVBZ2VDaGVja0R1cmF0aW9uYCBpZiBgZGV2aWNlQ2VydGlmaWNhdGVBZ2VDaGVja2AgaXMgc2V0IHRvIGBmYWxzZWAuJyk7XG4gICAgICB9XG4gICAgICBpZiAoIWRldmljZUFnZUNoZWNrVGhyZXNob2xkLmlzVW5yZXNvbHZlZCgpICYmIGRldmljZUFnZUNoZWNrVGhyZXNob2xkLnRvRGF5cygpIDwgMzAgfHwgZGV2aWNlQWdlQ2hlY2tUaHJlc2hvbGQudG9EYXlzKCkgPiAzNjUyKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVGhlIGRldmljZSBjZXJ0aWZpY2F0ZSBhZ2UgY2hlY2sgdGhyZXNob2xkIG11c3QgYmUgYmV0d2VlbiAzMCBhbmQgMzY1MiBkYXlzLiBnb3Q6ICR7ZGV2aWNlQWdlQ2hlY2tUaHJlc2hvbGQudG9EYXlzKCl9IGRheXMuYCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5hY2NvdW50SWQgPSBTdGFjay5vZih0aGlzKS5hY2NvdW50O1xuXG4gICAgY29uc3QgYXVkaXRSb2xlID0gbmV3IGlhbS5Sb2xlKHRoaXMsICdBdWRpdFJvbGUnLCB7XG4gICAgICBhc3N1bWVkQnk6IG5ldyBpYW0uU2VydmljZVByaW5jaXBhbCgnaW90LmFtYXpvbmF3cy5jb20nKSxcbiAgICAgIG1hbmFnZWRQb2xpY2llczogW1xuICAgICAgICBpYW0uTWFuYWdlZFBvbGljeS5mcm9tQXdzTWFuYWdlZFBvbGljeU5hbWUoJ3NlcnZpY2Utcm9sZS9BV1NJb1REZXZpY2VEZWZlbmRlckF1ZGl0JyksXG4gICAgICBdLFxuICAgIH0pO1xuXG4gICAgbmV3IGlvdC5DZm5BY2NvdW50QXVkaXRDb25maWd1cmF0aW9uKHRoaXMsICdSZXNvdXJjZScsIHtcbiAgICAgIGFjY291bnRJZDogdGhpcy5hY2NvdW50SWQsXG4gICAgICBhdWRpdENoZWNrQ29uZmlndXJhdGlvbnM6IHRoaXMucmVuZGVyQXVkaXRDaGVja0NvbmZpZ3VyYXRpb25zKHByb3BzPy5jaGVja0NvbmZpZ3VyYXRpb24pLFxuICAgICAgYXVkaXROb3RpZmljYXRpb25UYXJnZXRDb25maWd1cmF0aW9uczogdGhpcy5yZW5kZXJBdWRpdE5vdGlmaWNhdGlvblRhcmdldENvbmZpZ3VyYXRpb25zKHByb3BzPy50YXJnZXRUb3BpYyksXG4gICAgICByb2xlQXJuOiBhdWRpdFJvbGUucm9sZUFybixcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXIgdGhlIGF1ZGl0IG5vdGlmaWNhdGlvbiB0YXJnZXQgY29uZmlndXJhdGlvbnNcbiAgICovXG4gIHByaXZhdGUgcmVuZGVyQXVkaXROb3RpZmljYXRpb25UYXJnZXRDb25maWd1cmF0aW9ucyhcbiAgICB0YXJnZXRUb3BpYz86IHNucy5JVG9waWMsXG4gICk6IGlvdC5DZm5BY2NvdW50QXVkaXRDb25maWd1cmF0aW9uLkF1ZGl0Tm90aWZpY2F0aW9uVGFyZ2V0Q29uZmlndXJhdGlvbnNQcm9wZXJ0eSB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCF0YXJnZXRUb3BpYykge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBjb25zdCBub3RpZmljYXRpb25Sb2xlID0gbmV3IGlhbS5Sb2xlKHRoaXMsICdOb3RpZmljYXRpb25Sb2xlJywge1xuICAgICAgYXNzdW1lZEJ5OiBuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoJ2lvdC5hbWF6b25hd3MuY29tJyksXG4gICAgICBpbmxpbmVQb2xpY2llczoge1xuICAgICAgICBOb3RpZmljYXRpb25Qb2xpY3k6IG5ldyBpYW0uUG9saWN5RG9jdW1lbnQoe1xuICAgICAgICAgIHN0YXRlbWVudHM6IFtcbiAgICAgICAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICAgICAgYWN0aW9uczogWydzbnM6UHVibGlzaCddLFxuICAgICAgICAgICAgICByZXNvdXJjZXM6IFt0YXJnZXRUb3BpYy50b3BpY0Fybl0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICBdLFxuICAgICAgICB9KSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgc25zOiB7XG4gICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgIHRhcmdldEFybjogdGFyZ2V0VG9waWMudG9waWNBcm4sXG4gICAgICAgIHJvbGVBcm46IG5vdGlmaWNhdGlvblJvbGUucm9sZUFybixcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXIgdGhlIGF1ZGl0IGNoZWNrIGNvbmZpZ3VyYXRpb25zXG4gICAqL1xuICBwcml2YXRlIHJlbmRlckF1ZGl0Q2hlY2tDb25maWd1cmF0aW9ucyhjaGVja0NvbmZpZ3VyYXRpb24/OiBDaGVja0NvbmZpZ3VyYXRpb24pOiBpb3QuQ2ZuQWNjb3VudEF1ZGl0Q29uZmlndXJhdGlvbi5BdWRpdENoZWNrQ29uZmlndXJhdGlvbnNQcm9wZXJ0eSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGF1dGhlbnRpY2F0ZWRDb2duaXRvUm9sZU92ZXJseVBlcm1pc3NpdmVDaGVjazpcbiAgICAgICAgdGhpcy5yZW5kZXJBdWRpdENoZWNrQ29uZmlndXJhdGlvbihjaGVja0NvbmZpZ3VyYXRpb24/LmF1dGhlbnRpY2F0ZWRDb2duaXRvUm9sZU92ZXJseVBlcm1pc3NpdmVDaGVjayksXG4gICAgICBjYUNlcnRpZmljYXRlRXhwaXJpbmdDaGVjazogdGhpcy5yZW5kZXJBdWRpdENoZWNrQ29uZmlndXJhdGlvbihjaGVja0NvbmZpZ3VyYXRpb24/LmNhQ2VydGlmaWNhdGVFeHBpcmluZ0NoZWNrKSxcbiAgICAgIGNhQ2VydGlmaWNhdGVLZXlRdWFsaXR5Q2hlY2s6IHRoaXMucmVuZGVyQXVkaXRDaGVja0NvbmZpZ3VyYXRpb24oY2hlY2tDb25maWd1cmF0aW9uPy5jYUNlcnRpZmljYXRlS2V5UXVhbGl0eUNoZWNrKSxcbiAgICAgIGNvbmZsaWN0aW5nQ2xpZW50SWRzQ2hlY2s6IHRoaXMucmVuZGVyQXVkaXRDaGVja0NvbmZpZ3VyYXRpb24oY2hlY2tDb25maWd1cmF0aW9uPy5jb25mbGljdGluZ0NsaWVudElkc0NoZWNrKSxcbiAgICAgIGRldmljZUNlcnRpZmljYXRlQWdlQ2hlY2s6XG4gICAgICAgIGNoZWNrQ29uZmlndXJhdGlvbj8uZGV2aWNlQ2VydGlmaWNhdGVBZ2VDaGVjayAhPT0gZmFsc2UgP1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICBjb25maWd1cmF0aW9uOiB7XG4gICAgICAgICAgICAgIGNlcnRBZ2VUaHJlc2hvbGRJbkRheXM6IFN0cmluZyhjaGVja0NvbmZpZ3VyYXRpb24/LmRldmljZUNlcnRpZmljYXRlQWdlQ2hlY2tEdXJhdGlvbj8udG9EYXlzKCkgPz8gMzY1KSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSA6XG4gICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgZGV2aWNlQ2VydGlmaWNhdGVFeHBpcmluZ0NoZWNrOiB0aGlzLnJlbmRlckF1ZGl0Q2hlY2tDb25maWd1cmF0aW9uKGNoZWNrQ29uZmlndXJhdGlvbj8uZGV2aWNlQ2VydGlmaWNhdGVFeHBpcmluZ0NoZWNrKSxcbiAgICAgIGRldmljZUNlcnRpZmljYXRlS2V5UXVhbGl0eUNoZWNrOiB0aGlzLnJlbmRlckF1ZGl0Q2hlY2tDb25maWd1cmF0aW9uKGNoZWNrQ29uZmlndXJhdGlvbj8uZGV2aWNlQ2VydGlmaWNhdGVLZXlRdWFsaXR5Q2hlY2spLFxuICAgICAgZGV2aWNlQ2VydGlmaWNhdGVTaGFyZWRDaGVjazogdGhpcy5yZW5kZXJBdWRpdENoZWNrQ29uZmlndXJhdGlvbihjaGVja0NvbmZpZ3VyYXRpb24/LmRldmljZUNlcnRpZmljYXRlU2hhcmVkQ2hlY2spLFxuICAgICAgaW50ZXJtZWRpYXRlQ2FSZXZva2VkRm9yQWN0aXZlRGV2aWNlQ2VydGlmaWNhdGVzQ2hlY2s6XG4gICAgICAgIHRoaXMucmVuZGVyQXVkaXRDaGVja0NvbmZpZ3VyYXRpb24oY2hlY2tDb25maWd1cmF0aW9uPy5pbnRlcm1lZGlhdGVDYVJldm9rZWRGb3JBY3RpdmVEZXZpY2VDZXJ0aWZpY2F0ZXNDaGVjayksXG4gICAgICBpb3RQb2xpY3lPdmVybHlQZXJtaXNzaXZlQ2hlY2s6IHRoaXMucmVuZGVyQXVkaXRDaGVja0NvbmZpZ3VyYXRpb24oY2hlY2tDb25maWd1cmF0aW9uPy5pb3RQb2xpY3lPdmVybHlQZXJtaXNzaXZlQ2hlY2spLFxuICAgICAgaW9UUG9saWN5UG90ZW50aWFsTWlzQ29uZmlndXJhdGlvbkNoZWNrOiB0aGlzLnJlbmRlckF1ZGl0Q2hlY2tDb25maWd1cmF0aW9uKGNoZWNrQ29uZmlndXJhdGlvbj8uaW9UUG9saWN5UG90ZW50aWFsTWlzQ29uZmlndXJhdGlvbkNoZWNrKSxcbiAgICAgIGlvdFJvbGVBbGlhc0FsbG93c0FjY2Vzc1RvVW51c2VkU2VydmljZXNDaGVjazpcbiAgICAgICAgdGhpcy5yZW5kZXJBdWRpdENoZWNrQ29uZmlndXJhdGlvbihjaGVja0NvbmZpZ3VyYXRpb24/LmlvdFJvbGVBbGlhc0FsbG93c0FjY2Vzc1RvVW51c2VkU2VydmljZXNDaGVjayksXG4gICAgICBpb3RSb2xlQWxpYXNPdmVybHlQZXJtaXNzaXZlQ2hlY2s6IHRoaXMucmVuZGVyQXVkaXRDaGVja0NvbmZpZ3VyYXRpb24oY2hlY2tDb25maWd1cmF0aW9uPy5pb3RSb2xlQWxpYXNPdmVybHlQZXJtaXNzaXZlQ2hlY2spLFxuICAgICAgbG9nZ2luZ0Rpc2FibGVkQ2hlY2s6IHRoaXMucmVuZGVyQXVkaXRDaGVja0NvbmZpZ3VyYXRpb24oY2hlY2tDb25maWd1cmF0aW9uPy5sb2dnaW5nRGlzYWJsZWRDaGVjayksXG4gICAgICByZXZva2VkQ2FDZXJ0aWZpY2F0ZVN0aWxsQWN0aXZlQ2hlY2s6IHRoaXMucmVuZGVyQXVkaXRDaGVja0NvbmZpZ3VyYXRpb24oY2hlY2tDb25maWd1cmF0aW9uPy5yZXZva2VkQ2FDZXJ0aWZpY2F0ZVN0aWxsQWN0aXZlQ2hlY2spLFxuICAgICAgcmV2b2tlZERldmljZUNlcnRpZmljYXRlU3RpbGxBY3RpdmVDaGVjazpcbiAgICAgICAgdGhpcy5yZW5kZXJBdWRpdENoZWNrQ29uZmlndXJhdGlvbihjaGVja0NvbmZpZ3VyYXRpb24/LnJldm9rZWREZXZpY2VDZXJ0aWZpY2F0ZVN0aWxsQWN0aXZlQ2hlY2spLFxuICAgICAgdW5hdXRoZW50aWNhdGVkQ29nbml0b1JvbGVPdmVybHlQZXJtaXNzaXZlQ2hlY2s6XG4gICAgICAgIHRoaXMucmVuZGVyQXVkaXRDaGVja0NvbmZpZ3VyYXRpb24oY2hlY2tDb25maWd1cmF0aW9uPy51bmF1dGhlbnRpY2F0ZWRDb2duaXRvUm9sZU92ZXJseVBlcm1pc3NpdmVDaGVjayksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXIgdGhlIGF1ZGl0IGNoZWNrIGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIHByaXZhdGUgcmVuZGVyQXVkaXRDaGVja0NvbmZpZ3VyYXRpb24oY2hlY2s/OiBib29sZWFuKTogaW90LkNmbkFjY291bnRBdWRpdENvbmZpZ3VyYXRpb24uQXVkaXRDaGVja0NvbmZpZ3VyYXRpb25Qcm9wZXJ0eSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIGNoZWNrID09PSBmYWxzZSA/IHVuZGVmaW5lZCA6IHsgZW5hYmxlZDogdHJ1ZSB9O1xuICB9XG59XG5cbiJdfQ==
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.194.0-alpha.0" };
41
+ IotSql[_a] = { fqn: "@aws-cdk/aws-iot-alpha.IotSql", version: "2.195.0-alpha.0" };
42
42
  class IotSqlImpl extends IotSql {
43
43
  constructor(version, sql) {
44
44
  super();
package/lib/logging.js CHANGED
@@ -121,5 +121,5 @@ class Logging extends core_1.Resource {
121
121
  }
122
122
  exports.Logging = Logging;
123
123
  _a = JSII_RTTI_SYMBOL_1;
124
- Logging[_a] = { fqn: "@aws-cdk/aws-iot-alpha.Logging", version: "2.194.0-alpha.0" };
124
+ Logging[_a] = { fqn: "@aws-cdk/aws-iot-alpha.Logging", version: "2.195.0-alpha.0" };
125
125
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2luZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImxvZ2dpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsMkNBQXlFO0FBRXpFLDJDQUEyQztBQUMzQywyQ0FBMkM7QUFDM0MsOEVBQThFO0FBYTlFOztHQUVHO0FBQ0gsSUFBWSxRQWlDWDtBQWpDRCxXQUFZLFFBQVE7SUFDbEI7Ozs7T0FJRztJQUNILDJCQUFlLENBQUE7SUFFZjs7OztPQUlHO0lBQ0gseUJBQWEsQ0FBQTtJQUViOzs7O09BSUc7SUFDSCx5QkFBYSxDQUFBO0lBRWI7Ozs7T0FJRztJQUNILDJCQUFlLENBQUE7SUFFZjs7T0FFRztJQUNILGlDQUFxQixDQUFBO0FBQ3ZCLENBQUMsRUFqQ1csUUFBUSx3QkFBUixRQUFRLFFBaUNuQjtBQWNEOztHQUVHO0FBQ0gsTUFBYSxPQUFRLFNBQVEsZUFBUTtJQUNuQzs7Ozs7O09BTUc7SUFDSSxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQWE7UUFDakUsTUFBTSxNQUFPLFNBQVEsZUFBUTtZQUE3Qjs7Z0JBQ2tCLFVBQUssR0FBRyxLQUFLLENBQUM7WUFDaEMsQ0FBQztTQUFBO1FBQ0QsT0FBTyxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7S0FDOUI7SUFRRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQW9CO1FBQzVELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7Ozs7OzsrQ0F0QlIsT0FBTzs7OztRQXVCaEIsbUNBQW1DO1FBQ25DLElBQUEsd0NBQW9CLEVBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRWxDLE1BQU0sU0FBUyxHQUFHLFlBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDO1FBRXpDLDRCQUE0QjtRQUM1QixpSEFBaUg7UUFDakgsTUFBTSxJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUU7WUFDdEMsU0FBUyxFQUFFLElBQUksR0FBRyxDQUFDLGdCQUFnQixDQUFDLG1CQUFtQixDQUFDO1lBQ3hELGNBQWMsRUFBRTtnQkFDZCxhQUFhLEVBQUUsSUFBSSxHQUFHLENBQUMsY0FBYyxDQUFDO29CQUNwQyxVQUFVLEVBQUU7d0JBQ1YsSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDOzRCQUN0QixPQUFPLEVBQUU7Z0NBQ1AscUJBQXFCO2dDQUNyQixzQkFBc0I7Z0NBQ3RCLG1CQUFtQjtnQ0FDbkIsc0JBQXNCO2dDQUN0Qix5QkFBeUI7Z0NBQ3pCLHVCQUF1QjtnQ0FDdkIsdUJBQXVCO2dDQUN2Qix5QkFBeUI7Z0NBQ3pCLHlCQUF5QjtnQ0FDekIsdUJBQXVCO2dDQUN2Qix5QkFBeUI7Z0NBQ3pCLDBCQUEwQjs2QkFDM0I7NEJBQ0QsU0FBUyxFQUFFO2dDQUNULFlBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDO29DQUN2QixPQUFPLEVBQUUsTUFBTTtvQ0FDZixRQUFRLEVBQUUsV0FBVztvQ0FDckIsU0FBUyxFQUFFLGdCQUFTLENBQUMsbUJBQW1CO29DQUN4QyxZQUFZLEVBQUUsZ0JBQWdCO2lDQUMvQixDQUFDOzZCQUNIO3lCQUNGLENBQUM7cUJBQ0g7aUJBQ0YsQ0FBQzthQUNIO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsTUFBTSxRQUFRLEdBQUcsSUFBSSxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDcEQsU0FBUztZQUNULGVBQWUsRUFBRSxLQUFLLEVBQUUsUUFBUSxJQUFJLFFBQVEsQ0FBQyxLQUFLO1lBQ2xELE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztTQUN0QixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUM7S0FDM0I7O0FBdkVILDBCQXdFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlc291cmNlLCBTdGFjaywgSVJlc291cmNlLCBBcm5Gb3JtYXQgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0ICogYXMgaW90IGZyb20gJ2F3cy1jZGstbGliL2F3cy1pb3QnO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0IHsgYWRkQ29uc3RydWN0TWV0YWRhdGEgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9tZXRhZGF0YS1yZXNvdXJjZSc7XG5cbi8qKlxuICogUmVwcmVzZW50cyBBV1MgSW9UIExvZ2dpbmdcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJTG9nZ2luZyBleHRlbmRzIElSZXNvdXJjZSB7XG4gIC8qKlxuICAgKiBUaGUgbG9nIElEXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGxvZ0lkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlIGxvZyBsZXZlbCBmb3IgdGhlIEFXUyBJb1QgTG9nZ2luZ1xuICovXG5leHBvcnQgZW51bSBMb2dMZXZlbCB7XG4gIC8qKlxuICAgKiBBbnkgZXJyb3IgdGhhdCBjYXVzZXMgYW4gb3BlcmF0aW9uIHRvIGZhaWxcbiAgICpcbiAgICogTG9ncyBpbmNsdWRlIEVSUk9SIGluZm9ybWF0aW9uIG9ubHlcbiAgICovXG4gIEVSUk9SID0gJ0VSUk9SJyxcblxuICAvKipcbiAgICogQW55dGhpbmcgdGhhdCBjYW4gcG90ZW50aWFsbHkgY2F1c2UgaW5jb25zaXN0ZW5jaWVzIGluIHRoZSBzeXN0ZW0sIGJ1dCBtaWdodCBub3QgY2F1c2UgdGhlIG9wZXJhdGlvbiB0byBmYWlsXG4gICAqXG4gICAqIExvZ3MgaW5jbHVkZSBFUlJPUiBhbmQgV0FSTiBpbmZvcm1hdGlvblxuICAgKi9cbiAgV0FSTiA9ICdXQVJOJyxcblxuICAvKipcbiAgICogSGlnaC1sZXZlbCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZmxvdyBvZiB0aGluZ3NcbiAgICpcbiAgICogTG9ncyBpbmNsdWRlIElORk8sIEVSUk9SLCBhbmQgV0FSTiBpbmZvcm1hdGlvblxuICAgKi9cbiAgSU5GTyA9ICdJTkZPJyxcblxuICAvKipcbiAgICogSW5mb3JtYXRpb24gdGhhdCBtaWdodCBiZSBoZWxwZnVsIHdoZW4gZGVidWdnaW5nIGEgcHJvYmxlbVxuICAgKlxuICAgKiBMb2dzIGluY2x1ZGUgREVCVUcsIElORk8sIEVSUk9SLCBhbmQgV0FSTiBpbmZvcm1hdGlvblxuICAgKi9cbiAgREVCVUcgPSAnREVCVUcnLFxuXG4gIC8qKlxuICAgKiBBbGwgbG9nZ2luZyBpcyBkaXNhYmxlZFxuICAgKi9cbiAgRElTQUJMRUQgPSAnRElTQUJMRUQnLFxufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGRlZmluaW5nIEFXUyBJb1QgTG9nZ2luZ1xuICovXG5leHBvcnQgaW50ZXJmYWNlIExvZ2dpbmdQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgbG9nIGxldmVsIGZvciB0aGUgQVdTIElvVCBMb2dnaW5nXG4gICAqXG4gICAqIEBkZWZhdWx0IExvZ0xldmVsLkVSUk9SXG4gICAqL1xuICByZWFkb25seSBsb2dMZXZlbD86IExvZ0xldmVsO1xufVxuXG4vKipcbiAqIERlZmluZXMgQVdTIElvVCBMb2dnaW5nXG4gKi9cbmV4cG9ydCBjbGFzcyBMb2dnaW5nIGV4dGVuZHMgUmVzb3VyY2UgaW1wbGVtZW50cyBJTG9nZ2luZyB7XG4gIC8qKlxuICAgKiBJbXBvcnQgYW4gZXhpc3RpbmcgQVdTIElvVCBMb2dnaW5nXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgcGFyZW50IGNyZWF0aW5nIGNvbnN0cnVjdCAodXN1YWxseSBgdGhpc2ApXG4gICAqIEBwYXJhbSBpZCBUaGUgY29uc3RydWN0J3MgbmFtZVxuICAgKiBAcGFyYW0gbG9nSWQgQVdTIElvVCBMb2dnaW5nIElEXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21Mb2dJZChzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBsb2dJZDogc3RyaW5nKTogSUxvZ2dpbmcge1xuICAgIGNsYXNzIEltcG9ydCBleHRlbmRzIFJlc291cmNlIGltcGxlbWVudHMgSUxvZ2dpbmcge1xuICAgICAgcHVibGljIHJlYWRvbmx5IGxvZ0lkID0gbG9nSWQ7XG4gICAgfVxuICAgIHJldHVybiBuZXcgSW1wb3J0KHNjb3BlLCBpZCk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGxvZ2dpbmcgSURcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGxvZ0lkOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM/OiBMb2dnaW5nUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIC8vIEVuaGFuY2VkIENESyBBbmFseXRpY3MgVGVsZW1ldHJ5XG4gICAgYWRkQ29uc3RydWN0TWV0YWRhdGEodGhpcywgcHJvcHMpO1xuXG4gICAgY29uc3QgYWNjb3VudElkID0gU3RhY2sub2YodGhpcykuYWNjb3VudDtcblxuICAgIC8vIENyZWF0ZSBhIHJvbGUgZm9yIGxvZ2dpbmdcbiAgICAvLyBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vaW90L2xhdGVzdC9kZXZlbG9wZXJndWlkZS9jb25maWd1cmUtbG9nZ2luZy5odG1sI2NvbmZpZ3VyZS1sb2dnaW5nLXJvbGUtYW5kLXBvbGljeVxuICAgIGNvbnN0IHJvbGUgPSBuZXcgaWFtLlJvbGUodGhpcywgJ1JvbGUnLCB7XG4gICAgICBhc3N1bWVkQnk6IG5ldyBpYW0uU2VydmljZVByaW5jaXBhbCgnaW90LmFtYXpvbmF3cy5jb20nKSxcbiAgICAgIGlubGluZVBvbGljaWVzOiB7XG4gICAgICAgIExvZ2dpbmdQb2xpY3k6IG5ldyBpYW0uUG9saWN5RG9jdW1lbnQoe1xuICAgICAgICAgIHN0YXRlbWVudHM6IFtcbiAgICAgICAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgICAgICdsb2dzOkNyZWF0ZUxvZ0dyb3VwJyxcbiAgICAgICAgICAgICAgICAnbG9nczpDcmVhdGVMb2dTdHJlYW0nLFxuICAgICAgICAgICAgICAgICdsb2dzOlB1dExvZ0V2ZW50cycsXG4gICAgICAgICAgICAgICAgJ2xvZ3M6UHV0TWV0cmljRmlsdGVyJyxcbiAgICAgICAgICAgICAgICAnbG9nczpQdXRSZXRlbnRpb25Qb2xpY3knLFxuICAgICAgICAgICAgICAgICdpb3Q6R2V0TG9nZ2luZ09wdGlvbnMnLFxuICAgICAgICAgICAgICAgICdpb3Q6U2V0TG9nZ2luZ09wdGlvbnMnLFxuICAgICAgICAgICAgICAgICdpb3Q6U2V0VjJMb2dnaW5nT3B0aW9ucycsXG4gICAgICAgICAgICAgICAgJ2lvdDpHZXRWMkxvZ2dpbmdPcHRpb25zJyxcbiAgICAgICAgICAgICAgICAnaW90OlNldFYyTG9nZ2luZ0xldmVsJyxcbiAgICAgICAgICAgICAgICAnaW90Okxpc3RWMkxvZ2dpbmdMZXZlbHMnLFxuICAgICAgICAgICAgICAgICdpb3Q6RGVsZXRlVjJMb2dnaW5nTGV2ZWwnLFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICByZXNvdXJjZXM6IFtcbiAgICAgICAgICAgICAgICBTdGFjay5vZih0aGlzKS5mb3JtYXRBcm4oe1xuICAgICAgICAgICAgICAgICAgc2VydmljZTogJ2xvZ3MnLFxuICAgICAgICAgICAgICAgICAgcmVzb3VyY2U6ICdsb2ctZ3JvdXAnLFxuICAgICAgICAgICAgICAgICAgYXJuRm9ybWF0OiBBcm5Gb3JtYXQuQ09MT05fUkVTT1VSQ0VfTkFNRSxcbiAgICAgICAgICAgICAgICAgIHJlc291cmNlTmFtZTogJ0FXU0lvdExvZ3NWMjoqJyxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIF0sXG4gICAgICAgIH0pLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHJlc291cmNlID0gbmV3IGlvdC5DZm5Mb2dnaW5nKHRoaXMsICdSZXNvdXJjZScsIHtcbiAgICAgIGFjY291bnRJZCxcbiAgICAgIGRlZmF1bHRMb2dMZXZlbDogcHJvcHM/LmxvZ0xldmVsID8/IExvZ0xldmVsLkVSUk9SLFxuICAgICAgcm9sZUFybjogcm9sZS5yb2xlQXJuLFxuICAgIH0pO1xuXG4gICAgdGhpcy5sb2dJZCA9IHJlc291cmNlLnJlZjtcbiAgfVxufVxuIl19
@@ -150,7 +150,7 @@ class DayOfMonth {
150
150
  }
151
151
  exports.DayOfMonth = DayOfMonth;
152
152
  _a = JSII_RTTI_SYMBOL_1;
153
- DayOfMonth[_a] = { fqn: "@aws-cdk/aws-iot-alpha.DayOfMonth", version: "2.194.0-alpha.0" };
153
+ DayOfMonth[_a] = { fqn: "@aws-cdk/aws-iot-alpha.DayOfMonth", version: "2.195.0-alpha.0" };
154
154
  /**
155
155
  * The last day of the month
156
156
  */
@@ -288,5 +288,5 @@ class ScheduledAudit extends core_1.Resource {
288
288
  }
289
289
  exports.ScheduledAudit = ScheduledAudit;
290
290
  _b = JSII_RTTI_SYMBOL_1;
291
- ScheduledAudit[_b] = { fqn: "@aws-cdk/aws-iot-alpha.ScheduledAudit", version: "2.194.0-alpha.0" };
291
+ ScheduledAudit[_b] = { fqn: "@aws-cdk/aws-iot-alpha.ScheduledAudit", version: "2.195.0-alpha.0" };
292
292
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWR1bGVkLWF1ZGl0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic2NoZWR1bGVkLWF1ZGl0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDJDQUFnRjtBQUVoRiwyQ0FBMkM7QUFFM0MsOEVBQThFO0FBa0M5RTs7OztHQUlHO0FBQ0gsSUFBWSxVQW9GWDtBQXBGRCxXQUFZLFVBQVU7SUFDcEI7Ozs7O09BS0c7SUFDSCx1SEFBeUcsQ0FBQTtJQUV6Rzs7OztPQUlHO0lBQ0gsNkVBQStELENBQUE7SUFFL0Q7Ozs7OztPQU1HO0lBQ0gsbUZBQXFFLENBQUE7SUFFckU7O09BRUc7SUFDSCwyRUFBNkQsQ0FBQTtJQUU3RDs7OztPQUlHO0lBQ0gscUZBQXVFLENBQUE7SUFFdkU7Ozs7O09BS0c7SUFDSCwyRkFBNkUsQ0FBQTtJQUU3RTs7T0FFRztJQUNILGlGQUFtRSxDQUFBO0lBRW5FOztPQUVHO0lBQ0gsdUZBQXlFLENBQUE7SUFFekU7O09BRUc7SUFDSCw2SEFBK0csQ0FBQTtJQUUvRzs7T0FFRztJQUNILCtGQUFpRixDQUFBO0lBRWpGOztPQUVHO0lBQ0gsK0RBQWlELENBQUE7SUFFakQ7O09BRUc7SUFDSCxxR0FBdUYsQ0FBQTtJQUV2Rjs7T0FFRztJQUNILDZHQUErRixDQUFBO0lBRS9GOztPQUVHO0lBQ0gsMkhBQTZHLENBQUE7QUFDL0csQ0FBQyxFQXBGVyxVQUFVLDBCQUFWLFVBQVUsUUFvRnJCO0FBRUQ7O0dBRUc7QUFDSCxJQUFZLFNBd0NYO0FBeENELFdBQVksU0FBUztJQUNuQjs7T0FFRztJQUNILDJCQUFjLENBQUE7SUFFZDs7T0FFRztJQUNILDJCQUFjLENBQUE7SUFFZDs7T0FFRztJQUNILDRCQUFlLENBQUE7SUFFZjs7T0FFRztJQUNILDhCQUFpQixDQUFBO0lBRWpCOztPQUVHO0lBQ0gsNkJBQWdCLENBQUE7SUFFaEI7O09BRUc7SUFDSCwyQkFBYyxDQUFBO0lBRWQ7O09BRUc7SUFDSCw2QkFBZ0IsQ0FB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QUssQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUM7Z0JBQ2pGLE1BQU0sSUFBSSxLQUFLLENBQUMsbUVBQW1FLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1lBQ3hILENBQUM7WUFDRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUM7Z0JBQ3hELE1BQU0sSUFBSSxLQUFLLENBQUMsb0dBQW9HLEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUM7WUFDbEosQ0FBQztRQUNILENBQUM7UUFFRCxNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQzNELGtCQUFrQixFQUFFLEtBQUssQ0FBQyxrQkFBa0I7WUFDNUMsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLFdBQVc7WUFDbkMsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO1lBQzFCLFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVSxFQUFFLEdBQUc7WUFDakMsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO1NBQzNCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxrQkFBa0IsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxRQUFRLENBQUMscUJBQXFCLENBQUM7UUFFeEQsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7S0FDOUQ7O0FBeEdILHdDQXlHQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlc291cmNlLCBTdGFjaywgSVJlc291cmNlLCBUb2tlbiwgQXJuRm9ybWF0IH0gZnJvbSAnYXdzLWNkay1saWIvY29yZSc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCAqIGFzIGlvdCBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaW90JztcbmltcG9ydCB7IElBY2NvdW50QXVkaXRDb25maWd1cmF0aW9uIH0gZnJvbSAnLi9hdWRpdC1jb25maWd1cmF0aW9uJztcbmltcG9ydCB7IGFkZENvbnN0cnVjdE1ldGFkYXRhIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvbWV0YWRhdGEtcmVzb3VyY2UnO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgQVdTIElvVCBTY2hlZHVsZWQgQXVkaXRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJU2NoZWR1bGVkQXVkaXQgZXh0ZW5kcyBJUmVzb3VyY2Uge1xuICAvKipcbiAgICogVGhlIHNjaGVkdWxlZCBhdWRpdCBuYW1lXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHNjaGVkdWxlZEF1ZGl0TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBzY2hlZHVsZWQgYXVkaXRcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgc2NoZWR1bGVkQXVkaXRBcm46IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb25zdHJ1Y3Rpb24gcHJvcGVydGllcyBmb3IgYSBTY2hlZHVsZWQgQXVkaXRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTY2hlZHVsZWRBdWRpdEF0dHJpYnV0ZXMge1xuICAvKipcbiAgICogVGhlIHNjaGVkdWxlZCBhdWRpdCBuYW1lXG4gICAqL1xuICByZWFkb25seSBzY2hlZHVsZWRBdWRpdE5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgc2NoZWR1bGVkIGF1ZGl0XG4gICAqL1xuICByZWFkb25seSBzY2hlZHVsZWRBdWRpdEFybjogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRoZSBBV1MgSW9UIERldmljZSBEZWZlbmRlciBhdWRpdCBjaGVja3NcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9pb3QtZGV2aWNlLWRlZmVuZGVyL2xhdGVzdC9kZXZndWlkZS9kZXZpY2UtZGVmZW5kZXItYXVkaXQtY2hlY2tzLmh0bWxcbiAqL1xuZXhwb3J0IGVudW0gQXVkaXRDaGVjayB7XG4gIC8qKlxuICAgKiBDaGVja3MgdGhlIHBlcm1pc3NpdmVuZXNzIG9mIGFuIGF1dGhlbnRpY2F0ZWQgQW1hem9uIENvZ25pdG8gaWRlbnRpdHkgcG9vbCByb2xlLlxuICAgKlxuICAgKiBGb3IgdGhpcyBjaGVjaywgQVdTIElvVCBEZXZpY2UgRGVmZW5kZXIgYXVkaXRzIGFsbCBBbWF6b24gQ29nbml0byBpZGVudGl0eSBwb29scyB0aGF0IGhhdmUgYmVlbiB1c2VkIHRvIGNvbm5lY3QgdG8gdGhlIEFXUyBJb1QgbWVzc2FnZSBicm9rZXJcbiAgICogZHVyaW5nIHRoZSAzMSBkYXlzIGJlZm9yZSB0aGUgYXVkaXQgaXMgcGVyZm9ybWVkLlxuICAgKi9cbiAgQVVUSEVOVElDQVRFRF9DT0dOSVRPX1JPTEVfT1ZFUkxZX1BFUk1JU1NJVkVfQ0hFQ0sgPSAnQVVUSEVOVElDQVRFRF9DT0dOSVRPX1JPTEVfT1ZFUkxZX1BFUk1JU1NJVkVfQ0hFQ0snLFxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYSBDQSBjZXJ0aWZpY2F0ZSBpcyBleHBpcmluZy5cbiAgICpcbiAgICogVGhpcyBjaGVjayBhcHBsaWVzIHRvIENBIGNlcnRpZmljYXRlcyBleHBpcmluZyB3aXRoaW4gMzAgZGF5cyBvciB0aGF0IGhhdmUgZXhwaXJlZC5cbiAgICovXG4gIENBX0NFUlRJRklDQVRFX0VYUElSSU5HX0NIRUNLID0gJ0NBX0NFUlRJRklDQVRFX0VYUElSSU5HX0NIRUNLJyxcblxuICAvKipcbiAgICogQ2hlY2tzIHRoZSBxdWFsaXR5IG9mIHRoZSBDQSBjZXJ0aWZpY2F0ZSBrZXkuXG4gICAqXG4gICAqIFRoZSBxdWFsaXR5IGNoZWNrcyBpZiB0aGUga2V5IGlzIGluIGEgdmFsaWQgZm9ybWF0LCBub3QgZXhwaXJlZCwgYW5kIGlmIHRoZSBrZXkgbWVldHMgYSBtaW5pbXVtIHJlcXVpcmVkIHNpemUuXG4gICAqXG4gICAqIFRoaXMgY2hlY2sgYXBwbGllcyB0byBDQSBjZXJ0aWZpY2F0ZXMgdGhhdCBhcmUgQUNUSVZFIG9yIFBFTkRJTkdfVFJBTlNGRVIuXG4gICAqL1xuICBDQV9DRVJUSUZJQ0FURV9LRVlfUVVBTElUWV9DSEVDSyA9ICdDQV9DRVJUSUZJQ0FURV9LRVlfUVVBTElUWV9DSEVDSycsXG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiBtdWx0aXBsZSBkZXZpY2VzIGNvbm5lY3QgdXNpbmcgdGhlIHNhbWUgY2xpZW50IElELlxuICAgKi9cbiAgQ09ORkxJQ1RJTkdfQ0xJRU5UX0lEU19DSEVDSyA9ICdDT05GTElDVElOR19DTElFTlRfSURTX0NIRUNLJyxcblxuICAvKipcbiAgICogQ2hlY2tzIGlmIGEgZGV2aWNlIGNlcnRpZmljYXRlIGlzIGV4cGlyaW5nLlxuICAgKlxuICAgKiBUaGlzIGNoZWNrIGFwcGxpZXMgdG8gZGV2aWNlIGNlcnRpZmljYXRlcyBleHBpcmluZyB3aXRoaW4gMzAgZGF5cyBvciB0aGF0IGhhdmUgZXhwaXJlZC5cbiAgICovXG4gIERFVklDRV9DRVJUSUZJQ0FURV9FWFBJUklOR19DSEVDSyA9ICdERVZJQ0VfQ0VSVElGSUNBVEVfRVhQSVJJTkdfQ0hFQ0snLFxuXG4gIC8qKlxuICAgKiBDaGVja3MgdGhlIHF1YWxpdHkgb2YgdGhlIGRldmljZSBjZXJ0aWZpY2F0ZSBrZXkuXG4gICAqXG4gICAqIFRoZSBxdWFsaXR5IGNoZWNrcyBpZiB0aGUga2V5IGlzIGluIGEgdmFsaWQgZm9ybWF0LCBub3QgZXhwaXJlZCwgc2lnbmVkIGJ5IGEgcmVnaXN0ZXJlZCBjZXJ0aWZpY2F0ZSBhdXRob3JpdHksXG4gICAqIGFuZCBpZiB0aGUga2V5IG1lZXRzIGEgbWluaW11bSByZXF1aXJlZCBzaXplLlxuICAgKi9cbiAgREVWSUNFX0NFUlRJRklDQVRFX0tFWV9RVUFMSVRZX0NIRUNLID0gJ0RFVklDRV9DRVJUSUZJQ0FURV9LRVlfUVVBTElUWV9DSEVDSycsXG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiBtdWx0aXBsZSBjb25jdXJyZW50IGNvbm5lY3Rpb25zIHVzZSB0aGUgc2FtZSBYLjUwOSBjZXJ0aWZpY2F0ZSB0byBhdXRoZW50aWNhdGUgd2l0aCBBV1MgSW9ULlxuICAgKi9cbiAgREVWSUNFX0NFUlRJRklDQVRFX1NIQVJFRF9DSEVDSyA9ICdERVZJQ0VfQ0VSVElGSUNBVEVfU0hBUkVEX0NIRUNLJyxcblxuICAvKipcbiAgICogQ2hlY2tzIHRoZSBwZXJtaXNzaXZlbmVzcyBvZiBhIHBvbGljeSBhdHRhY2hlZCB0byBhbiBhdXRoZW50aWNhdGVkIEFtYXpvbiBDb2duaXRvIGlkZW50aXR5IHBvb2wgcm9sZS5cbiAgICovXG4gIElPVF9QT0xJQ1lfT1ZFUkxZX1BFUk1JU1NJVkVfQ0hFQ0sgPSAnSU9UX1BPTElDWV9PVkVSTFlfUEVSTUlTU0lWRV9DSEVDSycsXG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiBhIHJvbGUgYWxpYXMgaGFzIGFjY2VzcyB0byBzZXJ2aWNlcyB0aGF0IGhhdmVuJ3QgYmVlbiB1c2VkIGZvciB0aGUgQVdTIElvVCBkZXZpY2UgaW4gdGhlIGxhc3QgeWVhci5cbiAgICovXG4gIElPVF9ST0xFX0FMSUFTX0FMTE9XU19BQ0NFU1NfVE9fVU5VU0VEX1NFUlZJQ0VTX0NIRUNLID0gJ0lPVF9ST0xFX0FMSUFTX0FMTE9XU19BQ0NFU1NfVE9fVU5VU0VEX1NFUlZJQ0VTX0NIRUNLJyxcblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoZSB0ZW1wb3JhcnkgY3JlZGVudGlhbHMgcHJvdmlkZWQgYnkgQVdTIElvVCByb2xlIGFsaWFzZXMgYXJlIG92ZXJseSBwZXJtaXNzaXZlLlxuICAgKi9cbiAgSU9UX1JPTEVfQUxJQVNfT1ZFUkxZX1BFUk1JU1NJVkVfQ0hFQ0sgPSAnSU9UX1JPTEVfQUxJQVNfT1ZFUkxZX1BFUk1JU1NJVkVfQ0hFQ0snLFxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgQVdTIElvVCBsb2dzIGFyZSBkaXNhYmxlZC5cbiAgICovXG4gIExPR0dJTkdfRElTQUJMRURfQ0hFQ0sgPSAnTE9HR0lOR19ESVNBQkxFRF9DSEVDSycsXG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiBhIHJldm9rZWQgQ0EgY2VydGlmaWNhdGUgaXMgc3RpbGwgYWN0aXZlLlxuICAgKi9cbiAgUkVWT0tFRF9DQV9DRVJUSUZJQ0FURV9TVElMTF9BQ1RJVkVfQ0hFQ0sgPSAnUkVWT0tFRF9DQV9DRVJUSUZJQ0FURV9TVElMTF9BQ1RJVkVfQ0hFQ0snLFxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYSByZXZva2VkIGRldmljZSBjZXJ0aWZpY2F0ZSBpcyBzdGlsbCBhY3RpdmUuXG4gICAqL1xuICBSRVZPS0VEX0RFVklDRV9DRVJUSUZJQ0FURV9TVElMTF9BQ1RJVkVfQ0hFQ0sgPSAnUkVWT0tFRF9ERVZJQ0VfQ0VSVElGSUNBVEVfU1RJTExfQUNUSVZFX0NIRUNLJyxcblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHBvbGljeSBhdHRhY2hlZCB0byBhbiB1bmF1dGhlbnRpY2F0ZWQgQW1hem9uIENvZ25pdG8gaWRlbnRpdHkgcG9vbCByb2xlIGlzIHRvbyBwZXJtaXNzaXZlLlxuICAgKi9cbiAgVU5BVVRIRU5USUNBVEVEX0NPR05JVE9fUk9MRV9PVkVSTFlfUEVSTUlTU0lWRV9DSEVDSyA9ICdVTkFVVEhFTlRJQ0FURURfQ09HTklUT19ST0xFX09WRVJMWV9QRVJNSVNTSVZFX0NIRUNLJyxcbn1cblxuLyoqXG4gKiBUaGUgZGF5IG9mIHRoZSB3ZWVrIG9uIHdoaWNoIHRoZSBzY2hlZHVsZWQgYXVkaXQgdGFrZXMgcGxhY2UuXG4gKi9cbmV4cG9ydCBlbnVtIERheU9mV2VlayB7XG4gIC8qKlxuICAgKiBTdW5kYXlcbiAgICovXG4gIFNVTkRBWSA9ICdTVU4nLFxuXG4gIC8qKlxuICAgKiBNb25kYXlcbiAgICovXG4gIE1PTkRBWSA9ICdNT04nLFxuXG4gIC8qKlxuICAgKiBUdWVzZGF5XG4gICAqL1xuICBUVUVTREFZID0gJ1RVRScsXG5cbiAgLyoqXG4gICAqIFdlZG5lc2RheVxuICAgKi9cbiAgV0VETkVTREFZID0gJ1dFRCcsXG5cbiAgLyoqXG4gICAqIFRodXJzZGF5XG4gICAqL1xuICBUSFVSU0RBWSA9ICdUSFUnLFxuXG4gIC8qKlxuICAgKiBGcmlkYXlcbiAgICovXG4gIEZSSURBWSA9ICdGUkknLFxuXG4gIC8qKlxuICAgKiBTYXR1cmRheVxuICAgKi9cbiAgU0FUVVJEQVkgPSAnU0FUJyxcblxuICAvKipcbiAgICogVU5TRVRfVkFMVUVcbiAgICovXG4gIFVOU0VUX1ZBTFVFID0gJ1VOU0VUX1ZBTFVFJyxcbn1cblxuLyoqXG4gKiBUaGUgZGF5IG9mIHRoZSBtb250aCBvbiB3aGljaCB0aGUgc2NoZWR1bGVkIGF1ZGl0IHRha2VzIHBsYWNlLlxuICovXG5leHBvcnQgY2xhc3MgRGF5T2ZNb250aCB7XG4gIC8qKlxuICAgKiBUaGUgbGFzdCBkYXkgb2YgdGhlIG1vbnRoXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IExBU1RfREFZID0gbmV3IERheU9mTW9udGgoJ0xBU1QnKTtcblxuICAvKipcbiAgICogQ3VzdG9tIGRheSBvZiB0aGUgbW9udGhcbiAgICogQHBhcmFtIGRheSB0aGUgZGF5IG9mIHRoZSBtb250aFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBvZihkYXk6IG51bWJlcik6IERheU9mTW9udGgge1xuICAgIGlmIChkYXkgPCAxIHx8IGRheSA+IDMxKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYERheSBvZiBtb250aCBtdXN0IGJlIGJldHdlZW4gMSBhbmQgMzEsIGdvdDogJHtkYXl9YCk7XG4gICAgfVxuICAgIGlmICghTnVtYmVyLmlzSW50ZWdlcihkYXkpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYERheSBvZiBtb250aCBtdXN0IGJlIGFuIGludGVnZXIsIGdvdDogJHtkYXl9YCk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgRGF5T2ZNb250aChTdHJpbmcoZGF5KSk7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIGRheSBUaGUgZGF5IG9mIHRoZSBtb250aFxuICAgKi9cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgZGF5OiBzdHJpbmcpIHt9XG59XG5cbi8qKlxuICogVGhlIGZyZXF1ZW5jeSBhdCB3aGljaCB0aGUgc2NoZWR1bGVkIGF1ZGl0IHRha2VzIHBsYWNlLlxuICovXG5leHBvcnQgZW51bSBGcmVxdWVuY3kge1xuICAvKipcbiAgICogRGFpbHlcbiAgICovXG4gIERBSUxZID0gJ0RBSUxZJyxcblxuICAvKipcbiAgICogV2Vla2x5XG4gICAqL1xuICBXRUVLTFkgPSAnV0VFS0xZJyxcblxuICAvKipcbiAgICogQmktd2Vla2x5XG4gICAqL1xuICBCSV9XRUVLTFkgPSAnQklXRUVLTFknLFxuXG4gIC8qKlxuICAgKiBNb250aGx5XG4gICAqL1xuICBNT05USExZID0gJ01PTlRITFknLFxufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGRlZmluaW5nIEFXUyBJb1QgU2NoZWR1bGVkIEF1ZGl0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2NoZWR1bGVkQXVkaXRQcm9wcyB7XG4gIC8qKlxuICAgKiBXaGljaCBjaGVja3MgYXJlIHBlcmZvcm1lZCBkdXJpbmcgdGhlIHNjaGVkdWxlZCBhdWRpdC5cbiAgICpcbiAgICogQ2hlY2tzIG11c3QgYmUgZW5hYmxlZCBmb3IgeW91ciBhY2NvdW50LlxuICAgKi9cbiAgcmVhZG9ubHkgYXVkaXRDaGVja3M6IEF1ZGl0Q2hlY2tbXTtcblxuICAvKipcbiAgICogQWNjb3VudCBhdWRpdCBjb25maWd1cmF0aW9uLlxuICAgKlxuICAgKiBUaGUgYXVkaXQgY2hlY2tzIHNwZWNpZmllZCBpbiBgYXVkaXRDaGVja3NgIG11c3QgYmUgZW5hYmxlZCBpbiB0aGlzIGNvbmZpZ3VyYXRpb24uXG4gICAqL1xuICByZWFkb25seSBhY2NvdW50QXVkaXRDb25maWd1cmF0aW9uOiBJQWNjb3VudEF1ZGl0Q29uZmlndXJhdGlvbjtcblxuICAvKipcbiAgICogVGhlIGRheSBvZiB0aGUgd2VlayBvbiB3aGljaCB0aGUgc2NoZWR1bGVkIGF1ZGl0IGlzIHJ1biAoaWYgdGhlIGZyZXF1ZW5jeSBpcyBcIldFRUtMWVwiIG9yIFwiQklXRUVLTFlcIikuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gcmVxdWlyZWQgaWYgZnJlcXVlbmN5IGlzIFwiV0VFS0xZXCIgb3IgXCJCSVdFRUtMWVwiLCBub3QgYWxsb3dlZCBvdGhlcndpc2VcbiAgICovXG4gIHJlYWRvbmx5IGRheU9mV2Vlaz86IERheU9mV2VlaztcblxuICAvKipcbiAgICogVGhlIGRheSBvZiB0aGUgbW9udGggb24gd2hpY2ggdGhlIHNjaGVkdWxlZCBhdWRpdCBpcyBydW4gKGlmIHRoZSBmcmVxdWVuY3kgaXMgXCJNT05USExZXCIpLlxuICAgKlxuICAgKiBJZiBkYXlzIDI5LTMxIGFyZSBzcGVjaWZpZWQsIGFuZCB0aGUgbW9udGggZG9lcyBub3QgaGF2ZSB0aGF0IG1hbnkgZGF5cywgdGhlIGF1ZGl0IHRha2VzIHBsYWNlIG9uIHRoZSBcIkxBU1RcIiBkYXkgb2YgdGhlIG1vbnRoLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHJlcXVpcmVkIGlmIGZyZXF1ZW5jeSBpcyBcIk1PTlRITFlcIiwgbm90IGFsbG93ZWQgb3RoZXJ3aXNlXG4gICAqL1xuICByZWFkb25seSBkYXlPZk1vbnRoPzogRGF5T2ZNb250aDtcblxuICAvKipcbiAgICogSG93IG9mdGVuIHRoZSBzY2hlZHVsZWQgYXVkaXQgb2NjdXJzLlxuICAgKi9cbiAgcmVhZG9ubHkgZnJlcXVlbmN5OiBGcmVxdWVuY3k7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBzY2hlZHVsZWQgYXVkaXQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYXV0byBnZW5lcmF0ZWQgbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgc2NoZWR1bGVkQXVkaXROYW1lPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIERlZmluZXMgQVdTIElvVCBTY2hlZHVsZWQgQXVkaXRcbiAqL1xuZXhwb3J0IGNsYXNzIFNjaGVkdWxlZEF1ZGl0IGV4dGVuZHMgUmVzb3VyY2UgaW1wbGVtZW50cyBJU2NoZWR1bGVkQXVkaXQge1xuICAvKipcbiAgICogSW1wb3J0IGFuIGV4aXN0aW5nIEFXUyBJb1QgU2NoZWR1bGVkIEF1ZGl0IGZyb20gaXRzIEFSTi5cbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBwYXJlbnQgY3JlYXRpbmcgY29uc3RydWN0ICh1c3VhbGx5IGB0aGlzYClcbiAgICogQHBhcmFtIGlkIFRoZSBjb25zdHJ1Y3QncyBuYW1lXG4gICAqIEBwYXJhbSBzY2hlZHVsZWRBdWRpdEFybiBUaGUgQVJOIG9mIHRoZSBzY2hlZHVsZWQgYXVkaXRcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVNjaGVkdWxlZEF1ZGl0QXJuKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHNjaGVkdWxlZEF1ZGl0QXJuOiBzdHJpbmcpOiBJU2NoZWR1bGVkQXVkaXQge1xuICAgIGNvbnN0IG5hbWUgPSBTdGFjay5vZihzY29wZSkuc3BsaXRBcm4oc2NoZWR1bGVkQXVkaXRBcm4sIEFybkZvcm1hdC5TTEFTSF9SRVNPVVJDRV9OQU1FKS5yZXNvdXJjZU5hbWU7XG4gICAgaWYgKCFuYW1lKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIHNjaGVkdWxlZCBhdWRpdCBuYW1lIGZvdW5kIGluIEFSTjogJyR7c2NoZWR1bGVkQXVkaXRBcm59J2ApO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmZyb21TY2hlZHVsZWRBdWRpdEF0dHJpYnV0ZXMoc2NvcGUsIGlkLCB7IHNjaGVkdWxlZEF1ZGl0QXJuOiBzY2hlZHVsZWRBdWRpdEFybiwgc2NoZWR1bGVkQXVkaXROYW1lOiBuYW1lIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydCBhbiBleGlzdGluZyBBV1MgSW9UIFNjaGVkdWxlZCBBdWRpdCBmcm9tIGl0cyBhdHRyaWJ1dGVzLlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIHBhcmVudCBjcmVhdGluZyBjb25zdHJ1Y3QgKHVzdWFsbHkgYHRoaXNgKVxuICAgKiBAcGFyYW0gaWQgVGhlIGNvbnN0cnVjdCdzIG5hbWVcbiAgICogQHBhcmFtIGF0dHJzIFRoZSBzY2hlZHVsZWQgYXVkaXQgYXR0cmlidXRlc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tU2NoZWR1bGVkQXVkaXRBdHRyaWJ1dGVzKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGF0dHJzOiBTY2hlZHVsZWRBdWRpdEF0dHJpYnV0ZXMpOiBJU2NoZWR1bGVkQXVkaXQge1xuICAgIGNsYXNzIEltcG9ydCBleHRlbmRzIFJlc291cmNlIGltcGxlbWVudHMgSVNjaGVkdWxlZEF1ZGl0IHtcbiAgICAgIHB1YmxpYyByZWFkb25seSBzY2hlZHVsZWRBdWRpdEFybiA9IGF0dHJzLnNjaGVkdWxlZEF1ZGl0QXJuO1xuICAgICAgcHVibGljIHJlYWRvbmx5IHNjaGVkdWxlZEF1ZGl0TmFtZSA9IGF0dHJzLnNjaGVkdWxlZEF1ZGl0TmFtZTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBJbXBvcnQoc2NvcGUsIGlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgc2NoZWR1bGVkIGF1ZGl0IG5hbWVcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHNjaGVkdWxlZEF1ZGl0TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBzY2hlZHVsZWQgYXVkaXRcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHNjaGVkdWxlZEF1ZGl0QXJuOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFNjaGVkdWxlZEF1ZGl0UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIC8vIEVuaGFuY2VkIENESyBBbmFseXRpY3MgVGVsZW1ldHJ5XG4gICAgYWRkQ29uc3RydWN0TWV0YWRhdGEodGhpcywgcHJvcHMpO1xuXG4gICAgaWYgKHByb3BzLmF1ZGl0Q2hlY2tzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdBdCBsZWFzdCBvbmUgXFwnYXVkaXRDaGVja3NcXCcgbXVzdCBiZSBzcGVjaWZpZWQuJyk7XG4gICAgfVxuXG4gICAgc3dpdGNoIChwcm9wcy5mcmVxdWVuY3kpIHtcbiAgICAgIGNhc2UgRnJlcXVlbmN5LkRBSUxZOlxuICAgICAgICBpZiAocHJvcHMuZGF5T2ZXZWVrKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdEYXkgb2YgdGhlIHdlZWsgbXVzdCBub3QgYmUgc3BlY2lmaWVkIGZvciBkYWlseSBhdWRpdHMuJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHByb3BzLmRheU9mTW9udGgpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0RheSBvZiB0aGUgbW9udGggbXVzdCBub3QgYmUgc3BlY2lmaWVkIGZvciBkYWlseSBhdWRpdHMuJyk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEZyZXF1ZW5jeS5XRUVLTFk6XG4gICAgICBjYXNlIEZyZXF1ZW5jeS5CSV9XRUVLTFk6XG4gICAgICAgIGlmICghcHJvcHMuZGF5T2ZXZWVrKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdEYXkgb2YgdGhlIHdlZWsgbXVzdCBiZSBzcGVjaWZpZWQgZm9yIHdlZWtseSBvciBiaS13ZWVrbHkgYXVkaXRzLicpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwcm9wcy5kYXlPZk1vbnRoKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdEYXkgb2YgdGhlIG1vbnRoIG11c3Qgbm90IGJlIHNwZWNpZmllZCBmb3Igd2Vla2x5IG9yIGJpLXdlZWtseSBhdWRpdHMuJyk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEZyZXF1ZW5jeS5NT05USExZOlxuICAgICAgICBpZiAoIXByb3BzLmRheU9mTW9udGgpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0RheSBvZiB0aGUgbW9udGggbXVzdCBiZSBzcGVjaWZpZWQgZm9yIG1vbnRobHkgYXVkaXRzLicpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwcm9wcy5kYXlPZldlZWspIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0RheSBvZiB0aGUgd2VlayBtdXN0IG5vdCBiZSBzcGVjaWZpZWQgZm9yIG1vbnRobHkgYXVkaXRzLicpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGZyZXF1ZW5jeSBzcGVjaWZpZWQuJyk7XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLnNjaGVkdWxlZEF1ZGl0TmFtZSAhPT0gdW5kZWZpbmVkICYmICFUb2tlbi5pc1VucmVzb2x2ZWQocHJvcHMuc2NoZWR1bGVkQXVkaXROYW1lKSkge1xuICAgICAgaWYgKHByb3BzLnNjaGVkdWxlZEF1ZGl0TmFtZS5sZW5ndGggPCAxIHx8IHByb3BzLnNjaGVkdWxlZEF1ZGl0TmFtZS5sZW5ndGggPiAxMjgpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBTY2hlZHVsZWQgYXVkaXQgbmFtZSBtdXN0IGJlIGJldHdlZW4gMSBhbmQgMTI4IGNoYXJhY3RlcnMsIGdvdDogJHtwcm9wcy5zY2hlZHVsZWRBdWRpdE5hbWUubGVuZ3RofWApO1xuICAgICAgfVxuICAgICAgaWYgKCEvXlthLXpBLVowLTk6Xy1dKyQvLnRlc3QocHJvcHMuc2NoZWR1bGVkQXVkaXROYW1lKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFNjaGVkdWxlZCBhdWRpdCBuYW1lIG11c3QgYmUgYWxwaGFudW1lcmljIGFuZCBtYXkgaW5jbHVkZSBjb2xvbnMsIHVuZGVyc2NvcmVzLCBhbmQgaHlwaGVucywgZ290OiAke3Byb3BzLnNjaGVkdWxlZEF1ZGl0TmFtZX1gKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCByZXNvdXJjZSA9IG5ldyBpb3QuQ2ZuU2NoZWR1bGVkQXVkaXQodGhpcywgJ1Jlc291cmNlJywge1xuICAgICAgc2NoZWR1bGVkQXVkaXROYW1lOiBwcm9wcy5zY2hlZHVsZWRBdWRpdE5hbWUsXG4gICAgICB0YXJnZXRDaGVja05hbWVzOiBwcm9wcy5hdWRpdENoZWNrcyxcbiAgICAgIGRheU9mV2VlazogcHJvcHMuZGF5T2ZXZWVrLFxuICAgICAgZGF5T2ZNb250aDogcHJvcHMuZGF5T2ZNb250aD8uZGF5LFxuICAgICAgZnJlcXVlbmN5OiBwcm9wcy5mcmVxdWVuY3ksXG4gICAgfSk7XG5cbiAgICB0aGlzLnNjaGVkdWxlZEF1ZGl0TmFtZSA9IHJlc291cmNlLnJlZjtcbiAgICB0aGlzLnNjaGVkdWxlZEF1ZGl0QXJuID0gcmVzb3VyY2UuYXR0clNjaGVkdWxlZEF1ZGl0QXJuO1xuXG4gICAgcmVzb3VyY2Uubm9kZS5hZGREZXBlbmRlbmN5KHByb3BzLmFjY291bnRBdWRpdENvbmZpZ3VyYXRpb24pO1xuICB9XG59XG5cbiJdfQ==
package/lib/topic-rule.js CHANGED
@@ -107,7 +107,7 @@ class TopicRule extends core_1.Resource {
107
107
  }
108
108
  exports.TopicRule = TopicRule;
109
109
  _a = JSII_RTTI_SYMBOL_1;
110
- TopicRule[_a] = { fqn: "@aws-cdk/aws-iot-alpha.TopicRule", version: "2.194.0-alpha.0" };
110
+ TopicRule[_a] = { fqn: "@aws-cdk/aws-iot-alpha.TopicRule", version: "2.195.0-alpha.0" };
111
111
  __decorate([
112
112
  (0, metadata_resource_1.MethodMetadata)()
113
113
  ], TopicRule.prototype, "addAction", null);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-cdk/aws-iot-alpha",
3
- "version": "2.194.0-alpha.0",
3
+ "version": "2.195.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.194.0-alpha.0",
84
+ "@aws-cdk/cdk-build-tools": "2.195.0-alpha.0",
85
85
  "@aws-cdk/integ-runner": "^2.186.0",
86
- "@aws-cdk/pkglint": "2.194.0-alpha.0",
86
+ "@aws-cdk/pkglint": "2.195.0-alpha.0",
87
87
  "@types/jest": "^29.5.14",
88
88
  "jest": "^29.7.0",
89
- "aws-cdk-lib": "2.194.0",
89
+ "aws-cdk-lib": "2.195.0",
90
90
  "constructs": "^10.0.0",
91
- "@aws-cdk/integ-tests-alpha": "2.194.0-alpha.0"
91
+ "@aws-cdk/integ-tests-alpha": "2.195.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.194.0",
96
+ "aws-cdk-lib": "^2.195.0",
97
97
  "constructs": "^10.0.0"
98
98
  },
99
99
  "engines": {