Files
agent-claw/cdk/node_modules/aws-cdk-lib/aws-iot/lib/iot.generated.js
2026-05-06 18:55:16 -05:00

2 lines
465 KiB
JavaScript

"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.CfnEncryptionConfiguration=exports.CfnCommand=exports.CfnCertificateProvider=exports.CfnTopicRuleDestination=exports.CfnTopicRule=exports.CfnThingType=exports.CfnThingPrincipalAttachment=exports.CfnThingGroup=exports.CfnThing=exports.CfnSoftwarePackageVersion=exports.CfnSoftwarePackage=exports.CfnSecurityProfile=exports.CfnScheduledAudit=exports.CfnRoleAlias=exports.CfnResourceSpecificLogging=exports.CfnProvisioningTemplate=exports.CfnPolicyPrincipalAttachment=exports.CfnPolicy=exports.CfnMitigationAction=exports.CfnLogging=exports.CfnJobTemplate=exports.CfnFleetMetric=exports.CfnDomainConfiguration=exports.CfnDimension=exports.CfnCustomMetric=exports.CfnCertificate=exports.CfnCACertificate=exports.CfnBillingGroup=exports.CfnAuthorizer=exports.CfnAccountAuditConfiguration=void 0;var jsiiDeprecationWarnings=()=>{var tmp=require("../../.warnings.jsii.js");return jsiiDeprecationWarnings=()=>tmp,tmp};const JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti");var cdk=()=>{var tmp=require("../../core/lib");return cdk=()=>tmp,tmp},cfn_parse=()=>{var tmp=require("../../core/lib/helpers-internal");return cfn_parse=()=>tmp,tmp},cdk_errors=()=>{var tmp=require("../../core/lib/errors");return cdk_errors=()=>tmp,tmp};class CfnAccountAuditConfiguration extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_iot.CfnAccountAuditConfiguration",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::IoT::AccountAuditConfiguration";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnAccountAuditConfigurationPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnAccountAuditConfiguration(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnAccountAuditConfiguration(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnAccountAuditConfiguration.CFN_RESOURCE_TYPE_NAME}_accountId;_auditCheckConfigurations;_auditNotificationTargetConfigurations;_roleArn;cfnPropertyNames={accountId:"AccountId",auditCheckConfigurations:"AuditCheckConfigurations",auditNotificationTargetConfigurations:"AuditNotificationTargetConfigurations",roleArn:"RoleArn"};constructor(scope,id,props){super(scope,id,{type:CfnAccountAuditConfiguration.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_iot_CfnAccountAuditConfigurationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnAccountAuditConfiguration),error}cdk().requireProperty(props,"accountId",this),cdk().requireProperty(props,"auditCheckConfigurations",this),cdk().requireProperty(props,"roleArn",this),this._accountId=props.accountId,this._auditCheckConfigurations=props.auditCheckConfigurations,this._auditNotificationTargetConfigurations=props.auditNotificationTargetConfigurations,this._roleArn=props.roleArn}get accountAuditConfigurationRef(){return{accountId:this.ref}}get accountId(){return this._accountId}set accountId(value){cdk().traceProperty(this.node,"AccountId"),this._accountId=value}get auditCheckConfigurations(){return this._auditCheckConfigurations}set auditCheckConfigurations(value){cdk().traceProperty(this.node,"AuditCheckConfigurations"),this._auditCheckConfigurations=value}get auditNotificationTargetConfigurations(){return this._auditNotificationTargetConfigurations}set auditNotificationTargetConfigurations(value){cdk().traceProperty(this.node,"AuditNotificationTargetConfigurations"),this._auditNotificationTargetConfigurations=value}get roleArn(){return this._roleArn}set roleArn(value){cdk().traceProperty(this.node,"RoleArn"),this._roleArn=value}get cfnProperties(){return{accountId:this._accountId,auditCheckConfigurations:this._auditCheckConfigurations,auditNotificationTargetConfigurations:this._auditNotificationTargetConfigurations,roleArn:this._roleArn}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnAccountAuditConfiguration.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnAccountAuditConfigurationPropsToCloudFormation(props)}}exports.CfnAccountAuditConfiguration=CfnAccountAuditConfiguration;function CfnAccountAuditConfigurationAuditCheckConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("enabled",cdk().validateBoolean)(properties.enabled)),errors.wrap('supplied properties not correct for "AuditCheckConfigurationProperty"')}function convertCfnAccountAuditConfigurationAuditCheckConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnAccountAuditConfigurationAuditCheckConfigurationPropertyValidator(properties).assertSuccess(),{Enabled:cdk().booleanToCloudFormation(properties.enabled)}):properties}function CfnAccountAuditConfigurationAuditCheckConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("enabled","Enabled",properties.Enabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Enabled):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnAccountAuditConfigurationCertAgeCheckCustomConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("certAgeThresholdInDays",cdk().validateString)(properties.certAgeThresholdInDays)),errors.wrap('supplied properties not correct for "CertAgeCheckCustomConfigurationProperty"')}function convertCfnAccountAuditConfigurationCertAgeCheckCustomConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnAccountAuditConfigurationCertAgeCheckCustomConfigurationPropertyValidator(properties).assertSuccess(),{CertAgeThresholdInDays:cdk().stringToCloudFormation(properties.certAgeThresholdInDays)}):properties}function CfnAccountAuditConfigurationCertAgeCheckCustomConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("certAgeThresholdInDays","CertAgeThresholdInDays",properties.CertAgeThresholdInDays!=null?cfn_parse().FromCloudFormation.getString(properties.CertAgeThresholdInDays):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnAccountAuditConfigurationDeviceCertAgeAuditCheckConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("configuration",CfnAccountAuditConfigurationCertAgeCheckCustomConfigurationPropertyValidator)(properties.configuration)),errors.collect(cdk().propertyValidator("enabled",cdk().validateBoolean)(properties.enabled)),errors.wrap('supplied properties not correct for "DeviceCertAgeAuditCheckConfigurationProperty"')}function convertCfnAccountAuditConfigurationDeviceCertAgeAuditCheckConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnAccountAuditConfigurationDeviceCertAgeAuditCheckConfigurationPropertyValidator(properties).assertSuccess(),{Configuration:convertCfnAccountAuditConfigurationCertAgeCheckCustomConfigurationPropertyToCloudFormation(properties.configuration),Enabled:cdk().booleanToCloudFormation(properties.enabled)}):properties}function CfnAccountAuditConfigurationDeviceCertAgeAuditCheckConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("configuration","Configuration",properties.Configuration!=null?CfnAccountAuditConfigurationCertAgeCheckCustomConfigurationPropertyFromCloudFormation(properties.Configuration):void 0),ret.addPropertyResult("enabled","Enabled",properties.Enabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Enabled):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnAccountAuditConfigurationAuditCheckConfigurationsPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("authenticatedCognitoRoleOverlyPermissiveCheck",CfnAccountAuditConfigurationAuditCheckConfigurationPropertyValidator)(properties.authenticatedCognitoRoleOverlyPermissiveCheck)),errors.collect(cdk().propertyValidator("caCertificateExpiringCheck",CfnAccountAuditConfigurationAuditCheckConfigurationPropertyValidator)(properties.caCertificateExpiringCheck)),errors.collect(cdk().propertyValidator("caCertificateKeyQualityCheck",CfnAccountAuditConfigurationAuditCheckConfigurationPropertyValidator)(properties.caCertificateKeyQualityCheck)),errors.collect(cdk().propertyValidator("conflictingClientIdsCheck",CfnAccountAuditConfigurationAuditCheckConfigurationPropertyValidator)(properties.conflictingClientIdsCheck)),errors.collect(cdk().propertyValidator("deviceCertificateAgeCheck",CfnAccountAuditConfigurationDeviceCertAgeAuditCheckConfigurationPropertyValidator)(properties.deviceCertificateAgeCheck)),errors.collect(cdk().propertyValidator("deviceCertificateExpiringCheck",CfnAccountAuditConfigurationAuditCheckConfigurationPropertyValidator)(properties.deviceCertificateExpiringCheck)),errors.collect(cdk().propertyValidator("deviceCertificateKeyQualityCheck",CfnAccountAuditConfigurationAuditCheckConfigurationPropertyValidator)(properties.deviceCertificateKeyQualityCheck)),errors.collect(cdk().propertyValidator("deviceCertificateSharedCheck",CfnAccountAuditConfigurationAuditCheckConfigurationPropertyValidator)(properties.deviceCertificateSharedCheck)),errors.collect(cdk().propertyValidator("intermediateCaRevokedForActiveDeviceCertificatesCheck",CfnAccountAuditConfigurationAuditCheckConfigurationPropertyValidator)(properties.intermediateCaRevokedForActiveDeviceCertificatesCheck)),errors.collect(cdk().propertyValidator("ioTPolicyPotentialMisConfigurationCheck",CfnAccountAuditConfigurationAuditCheckConfigurationPropertyValidator)(properties.ioTPolicyPotentialMisConfigurationCheck)),errors.collect(cdk().propertyValidator("iotPolicyOverlyPermissiveCheck",CfnAccountAuditConfigurationAuditCheckConfigurationPropertyValidator)(properties.iotPolicyOverlyPermissiveCheck)),errors.collect(cdk().propertyValidator("iotRoleAliasAllowsAccessToUnusedServicesCheck",CfnAccountAuditConfigurationAuditCheckConfigurationPropertyValidator)(properties.iotRoleAliasAllowsAccessToUnusedServicesCheck)),errors.collect(cdk().propertyValidator("iotRoleAliasOverlyPermissiveCheck",CfnAccountAuditConfigurationAuditCheckConfigurationPropertyValidator)(properties.iotRoleAliasOverlyPermissiveCheck)),errors.collect(cdk().propertyValidator("loggingDisabledCheck",CfnAccountAuditConfigurationAuditCheckConfigurationPropertyValidator)(properties.loggingDisabledCheck)),errors.collect(cdk().propertyValidator("revokedCaCertificateStillActiveCheck",CfnAccountAuditConfigurationAuditCheckConfigurationPropertyValidator)(properties.revokedCaCertificateStillActiveCheck)),errors.collect(cdk().propertyValidator("revokedDeviceCertificateStillActiveCheck",CfnAccountAuditConfigurationAuditCheckConfigurationPropertyValidator)(properties.revokedDeviceCertificateStillActiveCheck)),errors.collect(cdk().propertyValidator("unauthenticatedCognitoRoleOverlyPermissiveCheck",CfnAccountAuditConfigurationAuditCheckConfigurationPropertyValidator)(properties.unauthenticatedCognitoRoleOverlyPermissiveCheck)),errors.wrap('supplied properties not correct for "AuditCheckConfigurationsProperty"')}function convertCfnAccountAuditConfigurationAuditCheckConfigurationsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnAccountAuditConfigurationAuditCheckConfigurationsPropertyValidator(properties).assertSuccess(),{AuthenticatedCognitoRoleOverlyPermissiveCheck:convertCfnAccountAuditConfigurationAuditCheckConfigurationPropertyToCloudFormation(properties.authenticatedCognitoRoleOverlyPermissiveCheck),CaCertificateExpiringCheck:convertCfnAccountAuditConfigurationAuditCheckConfigurationPropertyToCloudFormation(properties.caCertificateExpiringCheck),CaCertificateKeyQualityCheck:convertCfnAccountAuditConfigurationAuditCheckConfigurationPropertyToCloudFormation(properties.caCertificateKeyQualityCheck),ConflictingClientIdsCheck:convertCfnAccountAuditConfigurationAuditCheckConfigurationPropertyToCloudFormation(properties.conflictingClientIdsCheck),DeviceCertificateAgeCheck:convertCfnAccountAuditConfigurationDeviceCertAgeAuditCheckConfigurationPropertyToCloudFormation(properties.deviceCertificateAgeCheck),DeviceCertificateExpiringCheck:convertCfnAccountAuditConfigurationAuditCheckConfigurationPropertyToCloudFormation(properties.deviceCertificateExpiringCheck),DeviceCertificateKeyQualityCheck:convertCfnAccountAuditConfigurationAuditCheckConfigurationPropertyToCloudFormation(properties.deviceCertificateKeyQualityCheck),DeviceCertificateSharedCheck:convertCfnAccountAuditConfigurationAuditCheckConfigurationPropertyToCloudFormation(properties.deviceCertificateSharedCheck),IntermediateCaRevokedForActiveDeviceCertificatesCheck:convertCfnAccountAuditConfigurationAuditCheckConfigurationPropertyToCloudFormation(properties.intermediateCaRevokedForActiveDeviceCertificatesCheck),IoTPolicyPotentialMisConfigurationCheck:convertCfnAccountAuditConfigurationAuditCheckConfigurationPropertyToCloudFormation(properties.ioTPolicyPotentialMisConfigurationCheck),IotPolicyOverlyPermissiveCheck:convertCfnAccountAuditConfigurationAuditCheckConfigurationPropertyToCloudFormation(properties.iotPolicyOverlyPermissiveCheck),IotRoleAliasAllowsAccessToUnusedServicesCheck:convertCfnAccountAuditConfigurationAuditCheckConfigurationPropertyToCloudFormation(properties.iotRoleAliasAllowsAccessToUnusedServicesCheck),IotRoleAliasOverlyPermissiveCheck:convertCfnAccountAuditConfigurationAuditCheckConfigurationPropertyToCloudFormation(properties.iotRoleAliasOverlyPermissiveCheck),LoggingDisabledCheck:convertCfnAccountAuditConfigurationAuditCheckConfigurationPropertyToCloudFormation(properties.loggingDisabledCheck),RevokedCaCertificateStillActiveCheck:convertCfnAccountAuditConfigurationAuditCheckConfigurationPropertyToCloudFormation(properties.revokedCaCertificateStillActiveCheck),RevokedDeviceCertificateStillActiveCheck:convertCfnAccountAuditConfigurationAuditCheckConfigurationPropertyToCloudFormation(properties.revokedDeviceCertificateStillActiveCheck),UnauthenticatedCognitoRoleOverlyPermissiveCheck:convertCfnAccountAuditConfigurationAuditCheckConfigurationPropertyToCloudFormation(properties.unauthenticatedCognitoRoleOverlyPermissiveCheck)}):properties}function CfnAccountAuditConfigurationAuditCheckConfigurationsPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("authenticatedCognitoRoleOverlyPermissiveCheck","AuthenticatedCognitoRoleOverlyPermissiveCheck",properties.AuthenticatedCognitoRoleOverlyPermissiveCheck!=null?CfnAccountAuditConfigurationAuditCheckConfigurationPropertyFromCloudFormation(properties.AuthenticatedCognitoRoleOverlyPermissiveCheck):void 0),ret.addPropertyResult("caCertificateExpiringCheck","CaCertificateExpiringCheck",properties.CaCertificateExpiringCheck!=null?CfnAccountAuditConfigurationAuditCheckConfigurationPropertyFromCloudFormation(properties.CaCertificateExpiringCheck):void 0),ret.addPropertyResult("caCertificateKeyQualityCheck","CaCertificateKeyQualityCheck",properties.CaCertificateKeyQualityCheck!=null?CfnAccountAuditConfigurationAuditCheckConfigurationPropertyFromCloudFormation(properties.CaCertificateKeyQualityCheck):void 0),ret.addPropertyResult("conflictingClientIdsCheck","ConflictingClientIdsCheck",properties.ConflictingClientIdsCheck!=null?CfnAccountAuditConfigurationAuditCheckConfigurationPropertyFromCloudFormation(properties.ConflictingClientIdsCheck):void 0),ret.addPropertyResult("deviceCertificateAgeCheck","DeviceCertificateAgeCheck",properties.DeviceCertificateAgeCheck!=null?CfnAccountAuditConfigurationDeviceCertAgeAuditCheckConfigurationPropertyFromCloudFormation(properties.DeviceCertificateAgeCheck):void 0),ret.addPropertyResult("deviceCertificateExpiringCheck","DeviceCertificateExpiringCheck",properties.DeviceCertificateExpiringCheck!=null?CfnAccountAuditConfigurationAuditCheckConfigurationPropertyFromCloudFormation(properties.DeviceCertificateExpiringCheck):void 0),ret.addPropertyResult("deviceCertificateKeyQualityCheck","DeviceCertificateKeyQualityCheck",properties.DeviceCertificateKeyQualityCheck!=null?CfnAccountAuditConfigurationAuditCheckConfigurationPropertyFromCloudFormation(properties.DeviceCertificateKeyQualityCheck):void 0),ret.addPropertyResult("deviceCertificateSharedCheck","DeviceCertificateSharedCheck",properties.DeviceCertificateSharedCheck!=null?CfnAccountAuditConfigurationAuditCheckConfigurationPropertyFromCloudFormation(properties.DeviceCertificateSharedCheck):void 0),ret.addPropertyResult("intermediateCaRevokedForActiveDeviceCertificatesCheck","IntermediateCaRevokedForActiveDeviceCertificatesCheck",properties.IntermediateCaRevokedForActiveDeviceCertificatesCheck!=null?CfnAccountAuditConfigurationAuditCheckConfigurationPropertyFromCloudFormation(properties.IntermediateCaRevokedForActiveDeviceCertificatesCheck):void 0),ret.addPropertyResult("iotPolicyOverlyPermissiveCheck","IotPolicyOverlyPermissiveCheck",properties.IotPolicyOverlyPermissiveCheck!=null?CfnAccountAuditConfigurationAuditCheckConfigurationPropertyFromCloudFormation(properties.IotPolicyOverlyPermissiveCheck):void 0),ret.addPropertyResult("ioTPolicyPotentialMisConfigurationCheck","IoTPolicyPotentialMisConfigurationCheck",properties.IoTPolicyPotentialMisConfigurationCheck!=null?CfnAccountAuditConfigurationAuditCheckConfigurationPropertyFromCloudFormation(properties.IoTPolicyPotentialMisConfigurationCheck):void 0),ret.addPropertyResult("iotRoleAliasAllowsAccessToUnusedServicesCheck","IotRoleAliasAllowsAccessToUnusedServicesCheck",properties.IotRoleAliasAllowsAccessToUnusedServicesCheck!=null?CfnAccountAuditConfigurationAuditCheckConfigurationPropertyFromCloudFormation(properties.IotRoleAliasAllowsAccessToUnusedServicesCheck):void 0),ret.addPropertyResult("iotRoleAliasOverlyPermissiveCheck","IotRoleAliasOverlyPermissiveCheck",properties.IotRoleAliasOverlyPermissiveCheck!=null?CfnAccountAuditConfigurationAuditCheckConfigurationPropertyFromCloudFormation(properties.IotRoleAliasOverlyPermissiveCheck):void 0),ret.addPropertyResult("loggingDisabledCheck","LoggingDisabledCheck",properties.LoggingDisabledCheck!=null?CfnAccountAuditConfigurationAuditCheckConfigurationPropertyFromCloudFormation(properties.LoggingDisabledCheck):void 0),ret.addPropertyResult("revokedCaCertificateStillActiveCheck","RevokedCaCertificateStillActiveCheck",properties.RevokedCaCertificateStillActiveCheck!=null?CfnAccountAuditConfigurationAuditCheckConfigurationPropertyFromCloudFormation(properties.RevokedCaCertificateStillActiveCheck):void 0),ret.addPropertyResult("revokedDeviceCertificateStillActiveCheck","RevokedDeviceCertificateStillActiveCheck",properties.RevokedDeviceCertificateStillActiveCheck!=null?CfnAccountAuditConfigurationAuditCheckConfigurationPropertyFromCloudFormation(properties.RevokedDeviceCertificateStillActiveCheck):void 0),ret.addPropertyResult("unauthenticatedCognitoRoleOverlyPermissiveCheck","UnauthenticatedCognitoRoleOverlyPermissiveCheck",properties.UnauthenticatedCognitoRoleOverlyPermissiveCheck!=null?CfnAccountAuditConfigurationAuditCheckConfigurationPropertyFromCloudFormation(properties.UnauthenticatedCognitoRoleOverlyPermissiveCheck):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnAccountAuditConfigurationAuditNotificationTargetPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("enabled",cdk().validateBoolean)(properties.enabled)),errors.collect(cdk().propertyValidator("roleArn",cdk().validateString)(properties.roleArn)),errors.collect(cdk().propertyValidator("targetArn",cdk().validateString)(properties.targetArn)),errors.wrap('supplied properties not correct for "AuditNotificationTargetProperty"')}function convertCfnAccountAuditConfigurationAuditNotificationTargetPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnAccountAuditConfigurationAuditNotificationTargetPropertyValidator(properties).assertSuccess(),{Enabled:cdk().booleanToCloudFormation(properties.enabled),RoleArn:cdk().stringToCloudFormation(properties.roleArn),TargetArn:cdk().stringToCloudFormation(properties.targetArn)}):properties}function CfnAccountAuditConfigurationAuditNotificationTargetPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("enabled","Enabled",properties.Enabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Enabled):void 0),ret.addPropertyResult("roleArn","RoleArn",properties.RoleArn!=null?cfn_parse().FromCloudFormation.getString(properties.RoleArn):void 0),ret.addPropertyResult("targetArn","TargetArn",properties.TargetArn!=null?cfn_parse().FromCloudFormation.getString(properties.TargetArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnAccountAuditConfigurationAuditNotificationTargetConfigurationsPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("sns",CfnAccountAuditConfigurationAuditNotificationTargetPropertyValidator)(properties.sns)),errors.wrap('supplied properties not correct for "AuditNotificationTargetConfigurationsProperty"')}function convertCfnAccountAuditConfigurationAuditNotificationTargetConfigurationsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnAccountAuditConfigurationAuditNotificationTargetConfigurationsPropertyValidator(properties).assertSuccess(),{Sns:convertCfnAccountAuditConfigurationAuditNotificationTargetPropertyToCloudFormation(properties.sns)}):properties}function CfnAccountAuditConfigurationAuditNotificationTargetConfigurationsPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("sns","Sns",properties.Sns!=null?CfnAccountAuditConfigurationAuditNotificationTargetPropertyFromCloudFormation(properties.Sns):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnAccountAuditConfigurationPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("accountId",cdk().requiredValidator)(properties.accountId)),errors.collect(cdk().propertyValidator("accountId",cdk().validateString)(properties.accountId)),errors.collect(cdk().propertyValidator("auditCheckConfigurations",cdk().requiredValidator)(properties.auditCheckConfigurations)),errors.collect(cdk().propertyValidator("auditCheckConfigurations",CfnAccountAuditConfigurationAuditCheckConfigurationsPropertyValidator)(properties.auditCheckConfigurations)),errors.collect(cdk().propertyValidator("auditNotificationTargetConfigurations",CfnAccountAuditConfigurationAuditNotificationTargetConfigurationsPropertyValidator)(properties.auditNotificationTargetConfigurations)),errors.collect(cdk().propertyValidator("roleArn",cdk().requiredValidator)(properties.roleArn)),errors.collect(cdk().propertyValidator("roleArn",cdk().validateString)(properties.roleArn)),errors.wrap('supplied properties not correct for "CfnAccountAuditConfigurationProps"')}function convertCfnAccountAuditConfigurationPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnAccountAuditConfigurationPropsValidator(properties).assertSuccess(),{AccountId:cdk().stringToCloudFormation(properties.accountId),AuditCheckConfigurations:convertCfnAccountAuditConfigurationAuditCheckConfigurationsPropertyToCloudFormation(properties.auditCheckConfigurations),AuditNotificationTargetConfigurations:convertCfnAccountAuditConfigurationAuditNotificationTargetConfigurationsPropertyToCloudFormation(properties.auditNotificationTargetConfigurations),RoleArn:cdk().stringToCloudFormation(properties.roleArn)}):properties}function CfnAccountAuditConfigurationPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("accountId","AccountId",properties.AccountId!=null?cfn_parse().FromCloudFormation.getString(properties.AccountId):void 0),ret.addPropertyResult("auditCheckConfigurations","AuditCheckConfigurations",properties.AuditCheckConfigurations!=null?CfnAccountAuditConfigurationAuditCheckConfigurationsPropertyFromCloudFormation(properties.AuditCheckConfigurations):void 0),ret.addPropertyResult("auditNotificationTargetConfigurations","AuditNotificationTargetConfigurations",properties.AuditNotificationTargetConfigurations!=null?CfnAccountAuditConfigurationAuditNotificationTargetConfigurationsPropertyFromCloudFormation(properties.AuditNotificationTargetConfigurations):void 0),ret.addPropertyResult("roleArn","RoleArn",properties.RoleArn!=null?cfn_parse().FromCloudFormation.getString(properties.RoleArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnAuthorizer extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_iot.CfnAuthorizer",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::IoT::Authorizer";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnAuthorizerPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnAuthorizer(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnAuthorizer(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnAuthorizer.CFN_RESOURCE_TYPE_NAME}static fromAuthorizerArn(scope,id,arn){class Import extends cdk().Resource{authorizerRef;constructor(scope2,id2,arn2){super(scope2,id2,{environmentFromArn:arn2});const variables=new(cfn_parse()).TemplateString("arn:${Partition}:iot:${Region}:${Account}:authorizer/${AuthorizerName}").parse(arn2);this.authorizerRef={authorizerName:variables.AuthorizerName,authorizerArn:arn2}}}return new Import(scope,id,arn)}static fromAuthorizerName(scope,id,authorizerName){class Import extends cdk().Resource{authorizerRef;constructor(scope2,id2,authorizerName2){const arn=new(cfn_parse()).TemplateString("arn:${Partition}:iot:${Region}:${Account}:authorizer/${AuthorizerName}").interpolate({Partition:cdk().Stack.of(scope2).partition,Region:cdk().Stack.of(scope2).region,Account:cdk().Stack.of(scope2).account,AuthorizerName:authorizerName2});super(scope2,id2,{environmentFromArn:arn}),this.authorizerRef={authorizerName:authorizerName2,authorizerArn:arn}}}return new Import(scope,id,authorizerName)}static arnForAuthorizer(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_iot_IAuthorizerRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForAuthorizer),error}return resource.authorizerRef.authorizerArn}_authorizerFunctionArn;_authorizerName;_enableCachingForHttp;_signingDisabled;_status;tags;_tagsRaw;_tokenKeyName;_tokenSigningPublicKeys;cfnPropertyNames={authorizerFunctionArn:"AuthorizerFunctionArn",authorizerName:"AuthorizerName",enableCachingForHttp:"EnableCachingForHttp",signingDisabled:"SigningDisabled",status:"Status",tags:"Tags",tokenKeyName:"TokenKeyName",tokenSigningPublicKeys:"TokenSigningPublicKeys"};constructor(scope,id,props){super(scope,id,{type:CfnAuthorizer.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_iot_CfnAuthorizerProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnAuthorizer),error}cdk().requireProperty(props,"authorizerFunctionArn",this),this._authorizerFunctionArn=props.authorizerFunctionArn,this._authorizerName=props.authorizerName,this._enableCachingForHttp=props.enableCachingForHttp,this._signingDisabled=props.signingDisabled,this._status=props.status,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::IoT::Authorizer",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._tokenKeyName=props.tokenKeyName,this._tokenSigningPublicKeys=props.tokenSigningPublicKeys}get authorizerRef(){return{authorizerName:this.ref,authorizerArn:this.attrArn}}get authorizerFunctionArn(){return this._authorizerFunctionArn}set authorizerFunctionArn(value){cdk().traceProperty(this.node,"AuthorizerFunctionArn"),this._authorizerFunctionArn=value}get authorizerName(){return this._authorizerName}set authorizerName(value){cdk().traceProperty(this.node,"AuthorizerName"),this._authorizerName=value}get enableCachingForHttp(){return this._enableCachingForHttp}set enableCachingForHttp(value){cdk().traceProperty(this.node,"EnableCachingForHttp"),this._enableCachingForHttp=value}get signingDisabled(){return this._signingDisabled}set signingDisabled(value){cdk().traceProperty(this.node,"SigningDisabled"),this._signingDisabled=value}get status(){return this._status}set status(value){cdk().traceProperty(this.node,"Status"),this._status=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get tokenKeyName(){return this._tokenKeyName}set tokenKeyName(value){cdk().traceProperty(this.node,"TokenKeyName"),this._tokenKeyName=value}get tokenSigningPublicKeys(){return this._tokenSigningPublicKeys}set tokenSigningPublicKeys(value){cdk().traceProperty(this.node,"TokenSigningPublicKeys"),this._tokenSigningPublicKeys=value}get attrArn(){return cdk().Token.asString(this.getAtt("Arn",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{authorizerFunctionArn:this._authorizerFunctionArn,authorizerName:this._authorizerName,enableCachingForHttp:this._enableCachingForHttp,signingDisabled:this._signingDisabled,status:this._status,tags:this.tags.renderTags(),tokenKeyName:this._tokenKeyName,tokenSigningPublicKeys:this._tokenSigningPublicKeys}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnAuthorizer.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnAuthorizerPropsToCloudFormation(props)}}exports.CfnAuthorizer=CfnAuthorizer;function CfnAuthorizerPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("authorizerFunctionArn",cdk().requiredValidator)(properties.authorizerFunctionArn)),errors.collect(cdk().propertyValidator("authorizerFunctionArn",cdk().validateString)(properties.authorizerFunctionArn)),errors.collect(cdk().propertyValidator("authorizerName",cdk().validateString)(properties.authorizerName)),errors.collect(cdk().propertyValidator("enableCachingForHttp",cdk().validateBoolean)(properties.enableCachingForHttp)),errors.collect(cdk().propertyValidator("signingDisabled",cdk().validateBoolean)(properties.signingDisabled)),errors.collect(cdk().propertyValidator("status",cdk().validateString)(properties.status)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("tokenKeyName",cdk().validateString)(properties.tokenKeyName)),errors.collect(cdk().propertyValidator("tokenSigningPublicKeys",cdk().hashValidator(cdk().validateString))(properties.tokenSigningPublicKeys)),errors.wrap('supplied properties not correct for "CfnAuthorizerProps"')}function convertCfnAuthorizerPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnAuthorizerPropsValidator(properties).assertSuccess(),{AuthorizerFunctionArn:cdk().stringToCloudFormation(properties.authorizerFunctionArn),AuthorizerName:cdk().stringToCloudFormation(properties.authorizerName),EnableCachingForHttp:cdk().booleanToCloudFormation(properties.enableCachingForHttp),SigningDisabled:cdk().booleanToCloudFormation(properties.signingDisabled),Status:cdk().stringToCloudFormation(properties.status),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),TokenKeyName:cdk().stringToCloudFormation(properties.tokenKeyName),TokenSigningPublicKeys:cdk().hashMapper(cdk().stringToCloudFormation)(properties.tokenSigningPublicKeys)}):properties}function CfnAuthorizerPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("authorizerFunctionArn","AuthorizerFunctionArn",properties.AuthorizerFunctionArn!=null?cfn_parse().FromCloudFormation.getString(properties.AuthorizerFunctionArn):void 0),ret.addPropertyResult("authorizerName","AuthorizerName",properties.AuthorizerName!=null?cfn_parse().FromCloudFormation.getString(properties.AuthorizerName):void 0),ret.addPropertyResult("enableCachingForHttp","EnableCachingForHttp",properties.EnableCachingForHttp!=null?cfn_parse().FromCloudFormation.getBoolean(properties.EnableCachingForHttp):void 0),ret.addPropertyResult("signingDisabled","SigningDisabled",properties.SigningDisabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.SigningDisabled):void 0),ret.addPropertyResult("status","Status",properties.Status!=null?cfn_parse().FromCloudFormation.getString(properties.Status):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("tokenKeyName","TokenKeyName",properties.TokenKeyName!=null?cfn_parse().FromCloudFormation.getString(properties.TokenKeyName):void 0),ret.addPropertyResult("tokenSigningPublicKeys","TokenSigningPublicKeys",properties.TokenSigningPublicKeys!=null?cfn_parse().FromCloudFormation.getMap(cfn_parse().FromCloudFormation.getString)(properties.TokenSigningPublicKeys):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnBillingGroup extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_iot.CfnBillingGroup",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::IoT::BillingGroup";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnBillingGroupPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnBillingGroup(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnBillingGroup(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnBillingGroup.CFN_RESOURCE_TYPE_NAME}static fromBillingGroupArn(scope,id,arn){class Import extends cdk().Resource{billingGroupRef;constructor(scope2,id2,arn2){super(scope2,id2,{environmentFromArn:arn2});const variables=new(cfn_parse()).TemplateString("arn:${Partition}:iot:${Region}:${Account}:billinggroup/${BillingGroupName}").parse(arn2);this.billingGroupRef={billingGroupName:variables.BillingGroupName,billingGroupArn:arn2}}}return new Import(scope,id,arn)}static fromBillingGroupName(scope,id,billingGroupName){class Import extends cdk().Resource{billingGroupRef;constructor(scope2,id2,billingGroupName2){const arn=new(cfn_parse()).TemplateString("arn:${Partition}:iot:${Region}:${Account}:billinggroup/${BillingGroupName}").interpolate({Partition:cdk().Stack.of(scope2).partition,Region:cdk().Stack.of(scope2).region,Account:cdk().Stack.of(scope2).account,BillingGroupName:billingGroupName2});super(scope2,id2,{environmentFromArn:arn}),this.billingGroupRef={billingGroupName:billingGroupName2,billingGroupArn:arn}}}return new Import(scope,id,billingGroupName)}static arnForBillingGroup(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_iot_IBillingGroupRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForBillingGroup),error}return resource.billingGroupRef.billingGroupArn}_billingGroupName;_billingGroupProperties;tags;_tagsRaw;cfnPropertyNames={billingGroupName:"BillingGroupName",billingGroupProperties:"BillingGroupProperties",tags:"Tags"};constructor(scope,id,props={}){super(scope,id,{type:CfnBillingGroup.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_iot_CfnBillingGroupProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnBillingGroup),error}this._billingGroupName=props.billingGroupName,this._billingGroupProperties=props.billingGroupProperties,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::IoT::BillingGroup",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags}get billingGroupRef(){return{billingGroupName:this.ref,billingGroupArn:this.attrArn}}get billingGroupName(){return this._billingGroupName}set billingGroupName(value){cdk().traceProperty(this.node,"BillingGroupName"),this._billingGroupName=value}get billingGroupProperties(){return this._billingGroupProperties}set billingGroupProperties(value){cdk().traceProperty(this.node,"BillingGroupProperties"),this._billingGroupProperties=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get attrArn(){return cdk().Token.asString(this.getAtt("Arn",cdk().ResolutionTypeHint.STRING))}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{billingGroupName:this._billingGroupName,billingGroupProperties:this._billingGroupProperties,tags:this.tags.renderTags()}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnBillingGroup.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnBillingGroupPropsToCloudFormation(props)}}exports.CfnBillingGroup=CfnBillingGroup;function CfnBillingGroupBillingGroupPropertiesPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("billingGroupDescription",cdk().validateString)(properties.billingGroupDescription)),errors.wrap('supplied properties not correct for "BillingGroupPropertiesProperty"')}function convertCfnBillingGroupBillingGroupPropertiesPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnBillingGroupBillingGroupPropertiesPropertyValidator(properties).assertSuccess(),{BillingGroupDescription:cdk().stringToCloudFormation(properties.billingGroupDescription)}):properties}function CfnBillingGroupBillingGroupPropertiesPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("billingGroupDescription","BillingGroupDescription",properties.BillingGroupDescription!=null?cfn_parse().FromCloudFormation.getString(properties.BillingGroupDescription):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnBillingGroupPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("billingGroupName",cdk().validateString)(properties.billingGroupName)),errors.collect(cdk().propertyValidator("billingGroupProperties",CfnBillingGroupBillingGroupPropertiesPropertyValidator)(properties.billingGroupProperties)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnBillingGroupProps"')}function convertCfnBillingGroupPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnBillingGroupPropsValidator(properties).assertSuccess(),{BillingGroupName:cdk().stringToCloudFormation(properties.billingGroupName),BillingGroupProperties:convertCfnBillingGroupBillingGroupPropertiesPropertyToCloudFormation(properties.billingGroupProperties),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnBillingGroupPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("billingGroupName","BillingGroupName",properties.BillingGroupName!=null?cfn_parse().FromCloudFormation.getString(properties.BillingGroupName):void 0),ret.addPropertyResult("billingGroupProperties","BillingGroupProperties",properties.BillingGroupProperties!=null?CfnBillingGroupBillingGroupPropertiesPropertyFromCloudFormation(properties.BillingGroupProperties):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnCACertificate extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_iot.CfnCACertificate",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::IoT::CACertificate";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnCACertificatePropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnCACertificate(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnCACertificate(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnCACertificate.CFN_RESOURCE_TYPE_NAME}static arnForCACertificate(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_iot_ICACertificateRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForCACertificate),error}return resource.caCertificateRef.caCertificateArn}_autoRegistrationStatus;_caCertificatePem;_certificateMode;_registrationConfig;_removeAutoRegistration;_status;tags;_tagsRaw;_verificationCertificatePem;cfnPropertyNames={autoRegistrationStatus:"AutoRegistrationStatus",caCertificatePem:"CACertificatePem",certificateMode:"CertificateMode",registrationConfig:"RegistrationConfig",removeAutoRegistration:"RemoveAutoRegistration",status:"Status",tags:"Tags",verificationCertificatePem:"VerificationCertificatePem"};constructor(scope,id,props){super(scope,id,{type:CfnCACertificate.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_iot_CfnCACertificateProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnCACertificate),error}cdk().requireProperty(props,"caCertificatePem",this),cdk().requireProperty(props,"status",this),this._autoRegistrationStatus=props.autoRegistrationStatus,this._caCertificatePem=props.caCertificatePem,this._certificateMode=props.certificateMode,this._registrationConfig=props.registrationConfig,this._removeAutoRegistration=props.removeAutoRegistration,this._status=props.status,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::IoT::CACertificate",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._verificationCertificatePem=props.verificationCertificatePem}get caCertificateRef(){return{caCertificateId:this.ref,caCertificateArn:this.attrArn}}get autoRegistrationStatus(){return this._autoRegistrationStatus}set autoRegistrationStatus(value){cdk().traceProperty(this.node,"AutoRegistrationStatus"),this._autoRegistrationStatus=value}get caCertificatePem(){return this._caCertificatePem}set caCertificatePem(value){cdk().traceProperty(this.node,"CACertificatePem"),this._caCertificatePem=value}get certificateMode(){return this._certificateMode}set certificateMode(value){cdk().traceProperty(this.node,"CertificateMode"),this._certificateMode=value}get registrationConfig(){return this._registrationConfig}set registrationConfig(value){cdk().traceProperty(this.node,"RegistrationConfig"),this._registrationConfig=value}get removeAutoRegistration(){return this._removeAutoRegistration}set removeAutoRegistration(value){cdk().traceProperty(this.node,"RemoveAutoRegistration"),this._removeAutoRegistration=value}get status(){return this._status}set status(value){cdk().traceProperty(this.node,"Status"),this._status=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get verificationCertificatePem(){return this._verificationCertificatePem}set verificationCertificatePem(value){cdk().traceProperty(this.node,"VerificationCertificatePem"),this._verificationCertificatePem=value}get attrArn(){return cdk().Token.asString(this.getAtt("Arn",cdk().ResolutionTypeHint.STRING))}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{autoRegistrationStatus:this._autoRegistrationStatus,caCertificatePem:this._caCertificatePem,certificateMode:this._certificateMode,registrationConfig:this._registrationConfig,removeAutoRegistration:this._removeAutoRegistration,status:this._status,tags:this.tags.renderTags(),verificationCertificatePem:this._verificationCertificatePem}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnCACertificate.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnCACertificatePropsToCloudFormation(props)}}exports.CfnCACertificate=CfnCACertificate;function CfnCACertificateRegistrationConfigPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("roleArn",cdk().validateString)(properties.roleArn)),errors.collect(cdk().propertyValidator("templateBody",cdk().validateString)(properties.templateBody)),errors.collect(cdk().propertyValidator("templateName",cdk().validateString)(properties.templateName)),errors.wrap('supplied properties not correct for "RegistrationConfigProperty"')}function convertCfnCACertificateRegistrationConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCACertificateRegistrationConfigPropertyValidator(properties).assertSuccess(),{RoleArn:cdk().stringToCloudFormation(properties.roleArn),TemplateBody:cdk().stringToCloudFormation(properties.templateBody),TemplateName:cdk().stringToCloudFormation(properties.templateName)}):properties}function CfnCACertificateRegistrationConfigPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("roleArn","RoleArn",properties.RoleArn!=null?cfn_parse().FromCloudFormation.getString(properties.RoleArn):void 0),ret.addPropertyResult("templateBody","TemplateBody",properties.TemplateBody!=null?cfn_parse().FromCloudFormation.getString(properties.TemplateBody):void 0),ret.addPropertyResult("templateName","TemplateName",properties.TemplateName!=null?cfn_parse().FromCloudFormation.getString(properties.TemplateName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnCACertificatePropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("autoRegistrationStatus",cdk().validateString)(properties.autoRegistrationStatus)),errors.collect(cdk().propertyValidator("caCertificatePem",cdk().requiredValidator)(properties.caCertificatePem)),errors.collect(cdk().propertyValidator("caCertificatePem",cdk().validateString)(properties.caCertificatePem)),errors.collect(cdk().propertyValidator("certificateMode",cdk().validateString)(properties.certificateMode)),errors.collect(cdk().propertyValidator("registrationConfig",CfnCACertificateRegistrationConfigPropertyValidator)(properties.registrationConfig)),errors.collect(cdk().propertyValidator("removeAutoRegistration",cdk().validateBoolean)(properties.removeAutoRegistration)),errors.collect(cdk().propertyValidator("status",cdk().requiredValidator)(properties.status)),errors.collect(cdk().propertyValidator("status",cdk().validateString)(properties.status)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("verificationCertificatePem",cdk().validateString)(properties.verificationCertificatePem)),errors.wrap('supplied properties not correct for "CfnCACertificateProps"')}function convertCfnCACertificatePropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCACertificatePropsValidator(properties).assertSuccess(),{AutoRegistrationStatus:cdk().stringToCloudFormation(properties.autoRegistrationStatus),CACertificatePem:cdk().stringToCloudFormation(properties.caCertificatePem),CertificateMode:cdk().stringToCloudFormation(properties.certificateMode),RegistrationConfig:convertCfnCACertificateRegistrationConfigPropertyToCloudFormation(properties.registrationConfig),RemoveAutoRegistration:cdk().booleanToCloudFormation(properties.removeAutoRegistration),Status:cdk().stringToCloudFormation(properties.status),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),VerificationCertificatePem:cdk().stringToCloudFormation(properties.verificationCertificatePem)}):properties}function CfnCACertificatePropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("autoRegistrationStatus","AutoRegistrationStatus",properties.AutoRegistrationStatus!=null?cfn_parse().FromCloudFormation.getString(properties.AutoRegistrationStatus):void 0),ret.addPropertyResult("caCertificatePem","CACertificatePem",properties.CACertificatePem!=null?cfn_parse().FromCloudFormation.getString(properties.CACertificatePem):void 0),ret.addPropertyResult("certificateMode","CertificateMode",properties.CertificateMode!=null?cfn_parse().FromCloudFormation.getString(properties.CertificateMode):void 0),ret.addPropertyResult("registrationConfig","RegistrationConfig",properties.RegistrationConfig!=null?CfnCACertificateRegistrationConfigPropertyFromCloudFormation(properties.RegistrationConfig):void 0),ret.addPropertyResult("removeAutoRegistration","RemoveAutoRegistration",properties.RemoveAutoRegistration!=null?cfn_parse().FromCloudFormation.getBoolean(properties.RemoveAutoRegistration):void 0),ret.addPropertyResult("status","Status",properties.Status!=null?cfn_parse().FromCloudFormation.getString(properties.Status):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("verificationCertificatePem","VerificationCertificatePem",properties.VerificationCertificatePem!=null?cfn_parse().FromCloudFormation.getString(properties.VerificationCertificatePem):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnCertificate extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_iot.CfnCertificate",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::IoT::Certificate";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnCertificatePropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnCertificate(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnCertificate(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnCertificate.CFN_RESOURCE_TYPE_NAME}static fromCertificateArn(scope,id,arn){class Import extends cdk().Resource{certificateRef;constructor(scope2,id2,arn2){super(scope2,id2,{environmentFromArn:arn2});const variables=new(cfn_parse()).TemplateString("arn:${Partition}:iot:${Region}:${Account}:cert/${CertificateId}").parse(arn2);this.certificateRef={certificateId:variables.CertificateId,certificateArn:arn2}}}return new Import(scope,id,arn)}static fromCertificateId(scope,id,certificateId){class Import extends cdk().Resource{certificateRef;constructor(scope2,id2,certificateId2){const arn=new(cfn_parse()).TemplateString("arn:${Partition}:iot:${Region}:${Account}:cert/${CertificateId}").interpolate({Partition:cdk().Stack.of(scope2).partition,Region:cdk().Stack.of(scope2).region,Account:cdk().Stack.of(scope2).account,CertificateId:certificateId2});super(scope2,id2,{environmentFromArn:arn}),this.certificateRef={certificateId:certificateId2,certificateArn:arn}}}return new Import(scope,id,certificateId)}static arnForCertificate(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_iot_ICertificateRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForCertificate),error}return resource.certificateRef.certificateArn}_caCertificatePem;_certificateMode;_certificatePem;_certificateSigningRequest;_status;cfnPropertyNames={caCertificatePem:"CACertificatePem",certificateMode:"CertificateMode",certificatePem:"CertificatePem",certificateSigningRequest:"CertificateSigningRequest",status:"Status"};constructor(scope,id,props){super(scope,id,{type:CfnCertificate.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_iot_CfnCertificateProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnCertificate),error}cdk().requireProperty(props,"status",this),this._caCertificatePem=props.caCertificatePem,this._certificateMode=props.certificateMode,this._certificatePem=props.certificatePem,this._certificateSigningRequest=props.certificateSigningRequest,this._status=props.status}get certificateRef(){return{certificateId:this.ref,certificateArn:this.attrArn}}get caCertificatePem(){return this._caCertificatePem}set caCertificatePem(value){cdk().traceProperty(this.node,"CACertificatePem"),this._caCertificatePem=value}get certificateMode(){return this._certificateMode}set certificateMode(value){cdk().traceProperty(this.node,"CertificateMode"),this._certificateMode=value}get certificatePem(){return this._certificatePem}set certificatePem(value){cdk().traceProperty(this.node,"CertificatePem"),this._certificatePem=value}get certificateSigningRequest(){return this._certificateSigningRequest}set certificateSigningRequest(value){cdk().traceProperty(this.node,"CertificateSigningRequest"),this._certificateSigningRequest=value}get status(){return this._status}set status(value){cdk().traceProperty(this.node,"Status"),this._status=value}get attrArn(){return cdk().Token.asString(this.getAtt("Arn",cdk().ResolutionTypeHint.STRING))}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{caCertificatePem:this._caCertificatePem,certificateMode:this._certificateMode,certificatePem:this._certificatePem,certificateSigningRequest:this._certificateSigningRequest,status:this._status}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnCertificate.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnCertificatePropsToCloudFormation(props)}}exports.CfnCertificate=CfnCertificate;function CfnCertificatePropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("caCertificatePem",cdk().validateString)(properties.caCertificatePem)),errors.collect(cdk().propertyValidator("certificateMode",cdk().validateString)(properties.certificateMode)),errors.collect(cdk().propertyValidator("certificatePem",cdk().validateString)(properties.certificatePem)),errors.collect(cdk().propertyValidator("certificateSigningRequest",cdk().validateString)(properties.certificateSigningRequest)),errors.collect(cdk().propertyValidator("status",cdk().requiredValidator)(properties.status)),errors.collect(cdk().propertyValidator("status",cdk().validateString)(properties.status)),errors.wrap('supplied properties not correct for "CfnCertificateProps"')}function convertCfnCertificatePropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCertificatePropsValidator(properties).assertSuccess(),{CACertificatePem:cdk().stringToCloudFormation(properties.caCertificatePem),CertificateMode:cdk().stringToCloudFormation(properties.certificateMode),CertificatePem:cdk().stringToCloudFormation(properties.certificatePem),CertificateSigningRequest:cdk().stringToCloudFormation(properties.certificateSigningRequest),Status:cdk().stringToCloudFormation(properties.status)}):properties}function CfnCertificatePropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("caCertificatePem","CACertificatePem",properties.CACertificatePem!=null?cfn_parse().FromCloudFormation.getString(properties.CACertificatePem):void 0),ret.addPropertyResult("certificateMode","CertificateMode",properties.CertificateMode!=null?cfn_parse().FromCloudFormation.getString(properties.CertificateMode):void 0),ret.addPropertyResult("certificatePem","CertificatePem",properties.CertificatePem!=null?cfn_parse().FromCloudFormation.getString(properties.CertificatePem):void 0),ret.addPropertyResult("certificateSigningRequest","CertificateSigningRequest",properties.CertificateSigningRequest!=null?cfn_parse().FromCloudFormation.getString(properties.CertificateSigningRequest):void 0),ret.addPropertyResult("status","Status",properties.Status!=null?cfn_parse().FromCloudFormation.getString(properties.Status):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnCustomMetric extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_iot.CfnCustomMetric",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::IoT::CustomMetric";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnCustomMetricPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnCustomMetric(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnCustomMetric(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnCustomMetric.CFN_RESOURCE_TYPE_NAME}static fromMetricName(scope,id,metricName){class Import extends cdk().Resource{customMetricRef;constructor(scope2,id2,metricName2){super(scope2,id2),this.customMetricRef={metricName:metricName2}}}return new Import(scope,id,metricName)}static arnForCustomMetric(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_iot_ICustomMetricRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForCustomMetric),error}return new(cfn_parse()).TemplateString("arn:${Partition}:iot:${Region}:${Account}:custommetric/${MetricName}").interpolate({Partition:cdk().Stack.of(resource).partition,Region:resource.env.region,Account:resource.env.account,MetricName:resource.customMetricRef.metricName})}_displayName;_metricName;_metricType;tags;_tagsRaw;cfnPropertyNames={displayName:"DisplayName",metricName:"MetricName",metricType:"MetricType",tags:"Tags"};constructor(scope,id,props){super(scope,id,{type:CfnCustomMetric.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_iot_CfnCustomMetricProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnCustomMetric),error}cdk().requireProperty(props,"metricType",this),this._displayName=props.displayName,this._metricName=props.metricName,this._metricType=props.metricType,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::IoT::CustomMetric",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags}get customMetricRef(){return{metricName:this.ref}}get displayName(){return this._displayName}set displayName(value){cdk().traceProperty(this.node,"DisplayName"),this._displayName=value}get metricName(){return this._metricName}set metricName(value){cdk().traceProperty(this.node,"MetricName"),this._metricName=value}get metricType(){return this._metricType}set metricType(value){cdk().traceProperty(this.node,"MetricType"),this._metricType=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get attrMetricArn(){return cdk().Token.asString(this.getAtt("MetricArn",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{displayName:this._displayName,metricName:this._metricName,metricType:this._metricType,tags:this.tags.renderTags()}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnCustomMetric.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnCustomMetricPropsToCloudFormation(props)}}exports.CfnCustomMetric=CfnCustomMetric;function CfnCustomMetricPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("displayName",cdk().validateString)(properties.displayName)),errors.collect(cdk().propertyValidator("metricName",cdk().validateString)(properties.metricName)),errors.collect(cdk().propertyValidator("metricType",cdk().requiredValidator)(properties.metricType)),errors.collect(cdk().propertyValidator("metricType",cdk().validateString)(properties.metricType)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnCustomMetricProps"')}function convertCfnCustomMetricPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCustomMetricPropsValidator(properties).assertSuccess(),{DisplayName:cdk().stringToCloudFormation(properties.displayName),MetricName:cdk().stringToCloudFormation(properties.metricName),MetricType:cdk().stringToCloudFormation(properties.metricType),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnCustomMetricPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("displayName","DisplayName",properties.DisplayName!=null?cfn_parse().FromCloudFormation.getString(properties.DisplayName):void 0),ret.addPropertyResult("metricName","MetricName",properties.MetricName!=null?cfn_parse().FromCloudFormation.getString(properties.MetricName):void 0),ret.addPropertyResult("metricType","MetricType",properties.MetricType!=null?cfn_parse().FromCloudFormation.getString(properties.MetricType):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnDimension extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_iot.CfnDimension",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::IoT::Dimension";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnDimensionPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnDimension(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnDimension(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnDimension.CFN_RESOURCE_TYPE_NAME}static fromDimensionArn(scope,id,arn){class Import extends cdk().Resource{dimensionRef;constructor(scope2,id2,arn2){super(scope2,id2,{environmentFromArn:arn2});const variables=new(cfn_parse()).TemplateString("arn:${Partition}:iot:${Region}:${Account}:dimension/${DimensionName}").parse(arn2);this.dimensionRef={dimensionName:variables.DimensionName,dimensionArn:arn2}}}return new Import(scope,id,arn)}static fromDimensionName(scope,id,dimensionName){class Import extends cdk().Resource{dimensionRef;constructor(scope2,id2,dimensionName2){const arn=new(cfn_parse()).TemplateString("arn:${Partition}:iot:${Region}:${Account}:dimension/${DimensionName}").interpolate({Partition:cdk().Stack.of(scope2).partition,Region:cdk().Stack.of(scope2).region,Account:cdk().Stack.of(scope2).account,DimensionName:dimensionName2});super(scope2,id2,{environmentFromArn:arn}),this.dimensionRef={dimensionName:dimensionName2,dimensionArn:arn}}}return new Import(scope,id,dimensionName)}static arnForDimension(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_iot_IDimensionRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForDimension),error}return resource.dimensionRef.dimensionArn}_name;_stringValues;tags;_tagsRaw;_type;cfnPropertyNames={name:"Name",stringValues:"StringValues",tags:"Tags",type:"Type"};constructor(scope,id,props){super(scope,id,{type:CfnDimension.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_iot_CfnDimensionProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnDimension),error}cdk().requireProperty(props,"stringValues",this),cdk().requireProperty(props,"type",this),this._name=props.name,this._stringValues=props.stringValues,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::IoT::Dimension",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._type=props.type}get dimensionRef(){return{dimensionName:this.ref,dimensionArn:this.attrArn}}get name(){return this._name}set name(value){cdk().traceProperty(this.node,"Name"),this._name=value}get stringValues(){return this._stringValues}set stringValues(value){cdk().traceProperty(this.node,"StringValues"),this._stringValues=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get type(){return this._type}set type(value){cdk().traceProperty(this.node,"Type"),this._type=value}get attrArn(){return cdk().Token.asString(this.getAtt("Arn",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{name:this._name,stringValues:this._stringValues,tags:this.tags.renderTags(),type:this._type}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnDimension.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnDimensionPropsToCloudFormation(props)}}exports.CfnDimension=CfnDimension;function CfnDimensionPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("stringValues",cdk().requiredValidator)(properties.stringValues)),errors.collect(cdk().propertyValidator("stringValues",cdk().listValidator(cdk().validateString))(properties.stringValues)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("type",cdk().requiredValidator)(properties.type)),errors.collect(cdk().propertyValidator("type",cdk().validateString)(properties.type)),errors.wrap('supplied properties not correct for "CfnDimensionProps"')}function convertCfnDimensionPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDimensionPropsValidator(properties).assertSuccess(),{Name:cdk().stringToCloudFormation(properties.name),StringValues:cdk().listMapper(cdk().stringToCloudFormation)(properties.stringValues),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),Type:cdk().stringToCloudFormation(properties.type)}):properties}function CfnDimensionPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("stringValues","StringValues",properties.StringValues!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.StringValues):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("type","Type",properties.Type!=null?cfn_parse().FromCloudFormation.getString(properties.Type):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnDomainConfiguration extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_iot.CfnDomainConfiguration",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::IoT::DomainConfiguration";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnDomainConfigurationPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnDomainConfiguration(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnDomainConfiguration(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnDomainConfiguration.CFN_RESOURCE_TYPE_NAME}static fromDomainConfigurationArn(scope,id,arn){class Import extends cdk().Resource{domainConfigurationRef;constructor(scope2,id2,arn2){super(scope2,id2,{environmentFromArn:arn2});const variables=new(cfn_parse()).TemplateString("arn:${Partition}:iot:${Region}:${Account}:domainconfiguration/${DomainConfigurationName}").parse(arn2);this.domainConfigurationRef={domainConfigurationName:variables.DomainConfigurationName,domainConfigurationArn:arn2}}}return new Import(scope,id,arn)}static fromDomainConfigurationName(scope,id,domainConfigurationName){class Import extends cdk().Resource{domainConfigurationRef;constructor(scope2,id2,domainConfigurationName2){const arn=new(cfn_parse()).TemplateString("arn:${Partition}:iot:${Region}:${Account}:domainconfiguration/${DomainConfigurationName}").interpolate({Partition:cdk().Stack.of(scope2).partition,Region:cdk().Stack.of(scope2).region,Account:cdk().Stack.of(scope2).account,DomainConfigurationName:domainConfigurationName2});super(scope2,id2,{environmentFromArn:arn}),this.domainConfigurationRef={domainConfigurationName:domainConfigurationName2,domainConfigurationArn:arn}}}return new Import(scope,id,domainConfigurationName)}static arnForDomainConfiguration(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_iot_IDomainConfigurationRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForDomainConfiguration),error}return resource.domainConfigurationRef.domainConfigurationArn}_applicationProtocol;_authenticationType;_authorizerConfig;_clientCertificateConfig;_domainConfigurationName;_domainConfigurationStatus;_domainName;_serverCertificateArns;_serverCertificateConfig;_serviceType;tags;_tagsRaw;_tlsConfig;_validationCertificateArn;cfnPropertyNames={applicationProtocol:"ApplicationProtocol",authenticationType:"AuthenticationType",authorizerConfig:"AuthorizerConfig",clientCertificateConfig:"ClientCertificateConfig",domainConfigurationName:"DomainConfigurationName",domainConfigurationStatus:"DomainConfigurationStatus",domainName:"DomainName",serverCertificateArns:"ServerCertificateArns",serverCertificateConfig:"ServerCertificateConfig",serviceType:"ServiceType",tags:"Tags",tlsConfig:"TlsConfig",validationCertificateArn:"ValidationCertificateArn"};constructor(scope,id,props={}){super(scope,id,{type:CfnDomainConfiguration.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_iot_CfnDomainConfigurationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnDomainConfiguration),error}this._applicationProtocol=props.applicationProtocol,this._authenticationType=props.authenticationType,this._authorizerConfig=props.authorizerConfig,this._clientCertificateConfig=props.clientCertificateConfig,this._domainConfigurationName=props.domainConfigurationName,this._domainConfigurationStatus=props.domainConfigurationStatus,this._domainName=props.domainName,this._serverCertificateArns=props.serverCertificateArns,this._serverCertificateConfig=props.serverCertificateConfig,this._serviceType=props.serviceType,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::IoT::DomainConfiguration",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._tlsConfig=props.tlsConfig,this._validationCertificateArn=props.validationCertificateArn}get domainConfigurationRef(){return{domainConfigurationName:this.ref,domainConfigurationArn:this.attrArn}}get applicationProtocol(){return this._applicationProtocol}set applicationProtocol(value){cdk().traceProperty(this.node,"ApplicationProtocol"),this._applicationProtocol=value}get authenticationType(){return this._authenticationType}set authenticationType(value){cdk().traceProperty(this.node,"AuthenticationType"),this._authenticationType=value}get authorizerConfig(){return this._authorizerConfig}set authorizerConfig(value){cdk().traceProperty(this.node,"AuthorizerConfig"),this._authorizerConfig=value}get clientCertificateConfig(){return this._clientCertificateConfig}set clientCertificateConfig(value){cdk().traceProperty(this.node,"ClientCertificateConfig"),this._clientCertificateConfig=value}get domainConfigurationName(){return this._domainConfigurationName}set domainConfigurationName(value){cdk().traceProperty(this.node,"DomainConfigurationName"),this._domainConfigurationName=value}get domainConfigurationStatus(){return this._domainConfigurationStatus}set domainConfigurationStatus(value){cdk().traceProperty(this.node,"DomainConfigurationStatus"),this._domainConfigurationStatus=value}get domainName(){return this._domainName}set domainName(value){cdk().traceProperty(this.node,"DomainName"),this._domainName=value}get serverCertificateArns(){return this._serverCertificateArns}set serverCertificateArns(value){cdk().traceProperty(this.node,"ServerCertificateArns"),this._serverCertificateArns=value}get serverCertificateConfig(){return this._serverCertificateConfig}set serverCertificateConfig(value){cdk().traceProperty(this.node,"ServerCertificateConfig"),this._serverCertificateConfig=value}get serviceType(){return this._serviceType}set serviceType(value){cdk().traceProperty(this.node,"ServiceType"),this._serviceType=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get tlsConfig(){return this._tlsConfig}set tlsConfig(value){cdk().traceProperty(this.node,"TlsConfig"),this._tlsConfig=value}get validationCertificateArn(){return this._validationCertificateArn}set validationCertificateArn(value){cdk().traceProperty(this.node,"ValidationCertificateArn"),this._validationCertificateArn=value}get attrArn(){return cdk().Token.asString(this.getAtt("Arn",cdk().ResolutionTypeHint.STRING))}get attrDomainType(){return cdk().Token.asString(this.getAtt("DomainType",cdk().ResolutionTypeHint.STRING))}get attrServerCertificates(){return this.getAtt("ServerCertificates")}get cfnProperties(){return{applicationProtocol:this._applicationProtocol,authenticationType:this._authenticationType,authorizerConfig:this._authorizerConfig,clientCertificateConfig:this._clientCertificateConfig,domainConfigurationName:this._domainConfigurationName,domainConfigurationStatus:this._domainConfigurationStatus,domainName:this._domainName,serverCertificateArns:this._serverCertificateArns,serverCertificateConfig:this._serverCertificateConfig,serviceType:this._serviceType,tags:this.tags.renderTags(),tlsConfig:this._tlsConfig,validationCertificateArn:this._validationCertificateArn}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnDomainConfiguration.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnDomainConfigurationPropsToCloudFormation(props)}}exports.CfnDomainConfiguration=CfnDomainConfiguration;function CfnDomainConfigurationTlsConfigPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("securityPolicy",cdk().validateString)(properties.securityPolicy)),errors.wrap('supplied properties not correct for "TlsConfigProperty"')}function convertCfnDomainConfigurationTlsConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDomainConfigurationTlsConfigPropertyValidator(properties).assertSuccess(),{SecurityPolicy:cdk().stringToCloudFormation(properties.securityPolicy)}):properties}function CfnDomainConfigurationTlsConfigPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("securityPolicy","SecurityPolicy",properties.SecurityPolicy!=null?cfn_parse().FromCloudFormation.getString(properties.SecurityPolicy):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDomainConfigurationAuthorizerConfigPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("allowAuthorizerOverride",cdk().validateBoolean)(properties.allowAuthorizerOverride)),errors.collect(cdk().propertyValidator("defaultAuthorizerName",cdk().validateString)(properties.defaultAuthorizerName)),errors.wrap('supplied properties not correct for "AuthorizerConfigProperty"')}function convertCfnDomainConfigurationAuthorizerConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDomainConfigurationAuthorizerConfigPropertyValidator(properties).assertSuccess(),{AllowAuthorizerOverride:cdk().booleanToCloudFormation(properties.allowAuthorizerOverride),DefaultAuthorizerName:cdk().stringToCloudFormation(properties.defaultAuthorizerName)}):properties}function CfnDomainConfigurationAuthorizerConfigPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("allowAuthorizerOverride","AllowAuthorizerOverride",properties.AllowAuthorizerOverride!=null?cfn_parse().FromCloudFormation.getBoolean(properties.AllowAuthorizerOverride):void 0),ret.addPropertyResult("defaultAuthorizerName","DefaultAuthorizerName",properties.DefaultAuthorizerName!=null?cfn_parse().FromCloudFormation.getString(properties.DefaultAuthorizerName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDomainConfigurationServerCertificateConfigPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("enableOcspCheck",cdk().validateBoolean)(properties.enableOcspCheck)),errors.collect(cdk().propertyValidator("ocspAuthorizedResponderArn",cdk().validateString)(properties.ocspAuthorizedResponderArn)),errors.collect(cdk().propertyValidator("ocspLambdaArn",cdk().validateString)(properties.ocspLambdaArn)),errors.wrap('supplied properties not correct for "ServerCertificateConfigProperty"')}function convertCfnDomainConfigurationServerCertificateConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDomainConfigurationServerCertificateConfigPropertyValidator(properties).assertSuccess(),{EnableOCSPCheck:cdk().booleanToCloudFormation(properties.enableOcspCheck),OcspAuthorizedResponderArn:cdk().stringToCloudFormation(properties.ocspAuthorizedResponderArn),OcspLambdaArn:cdk().stringToCloudFormation(properties.ocspLambdaArn)}):properties}function CfnDomainConfigurationServerCertificateConfigPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("enableOcspCheck","EnableOCSPCheck",properties.EnableOCSPCheck!=null?cfn_parse().FromCloudFormation.getBoolean(properties.EnableOCSPCheck):void 0),ret.addPropertyResult("ocspAuthorizedResponderArn","OcspAuthorizedResponderArn",properties.OcspAuthorizedResponderArn!=null?cfn_parse().FromCloudFormation.getString(properties.OcspAuthorizedResponderArn):void 0),ret.addPropertyResult("ocspLambdaArn","OcspLambdaArn",properties.OcspLambdaArn!=null?cfn_parse().FromCloudFormation.getString(properties.OcspLambdaArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDomainConfigurationClientCertificateConfigPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("clientCertificateCallbackArn",cdk().validateString)(properties.clientCertificateCallbackArn)),errors.wrap('supplied properties not correct for "ClientCertificateConfigProperty"')}function convertCfnDomainConfigurationClientCertificateConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDomainConfigurationClientCertificateConfigPropertyValidator(properties).assertSuccess(),{ClientCertificateCallbackArn:cdk().stringToCloudFormation(properties.clientCertificateCallbackArn)}):properties}function CfnDomainConfigurationClientCertificateConfigPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("clientCertificateCallbackArn","ClientCertificateCallbackArn",properties.ClientCertificateCallbackArn!=null?cfn_parse().FromCloudFormation.getString(properties.ClientCertificateCallbackArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDomainConfigurationServerCertificateSummaryPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("serverCertificateArn",cdk().validateString)(properties.serverCertificateArn)),errors.collect(cdk().propertyValidator("serverCertificateStatus",cdk().validateString)(properties.serverCertificateStatus)),errors.collect(cdk().propertyValidator("serverCertificateStatusDetail",cdk().validateString)(properties.serverCertificateStatusDetail)),errors.wrap('supplied properties not correct for "ServerCertificateSummaryProperty"')}function convertCfnDomainConfigurationServerCertificateSummaryPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDomainConfigurationServerCertificateSummaryPropertyValidator(properties).assertSuccess(),{ServerCertificateArn:cdk().stringToCloudFormation(properties.serverCertificateArn),ServerCertificateStatus:cdk().stringToCloudFormation(properties.serverCertificateStatus),ServerCertificateStatusDetail:cdk().stringToCloudFormation(properties.serverCertificateStatusDetail)}):properties}function CfnDomainConfigurationServerCertificateSummaryPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("serverCertificateArn","ServerCertificateArn",properties.ServerCertificateArn!=null?cfn_parse().FromCloudFormation.getString(properties.ServerCertificateArn):void 0),ret.addPropertyResult("serverCertificateStatus","ServerCertificateStatus",properties.ServerCertificateStatus!=null?cfn_parse().FromCloudFormation.getString(properties.ServerCertificateStatus):void 0),ret.addPropertyResult("serverCertificateStatusDetail","ServerCertificateStatusDetail",properties.ServerCertificateStatusDetail!=null?cfn_parse().FromCloudFormation.getString(properties.ServerCertificateStatusDetail):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDomainConfigurationPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("applicationProtocol",cdk().validateString)(properties.applicationProtocol)),errors.collect(cdk().propertyValidator("authenticationType",cdk().validateString)(properties.authenticationType)),errors.collect(cdk().propertyValidator("authorizerConfig",CfnDomainConfigurationAuthorizerConfigPropertyValidator)(properties.authorizerConfig)),errors.collect(cdk().propertyValidator("clientCertificateConfig",CfnDomainConfigurationClientCertificateConfigPropertyValidator)(properties.clientCertificateConfig)),errors.collect(cdk().propertyValidator("domainConfigurationName",cdk().validateString)(properties.domainConfigurationName)),errors.collect(cdk().propertyValidator("domainConfigurationStatus",cdk().validateString)(properties.domainConfigurationStatus)),errors.collect(cdk().propertyValidator("domainName",cdk().validateString)(properties.domainName)),errors.collect(cdk().propertyValidator("serverCertificateArns",cdk().listValidator(cdk().validateString))(properties.serverCertificateArns)),errors.collect(cdk().propertyValidator("serverCertificateConfig",CfnDomainConfigurationServerCertificateConfigPropertyValidator)(properties.serverCertificateConfig)),errors.collect(cdk().propertyValidator("serviceType",cdk().validateString)(properties.serviceType)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("tlsConfig",CfnDomainConfigurationTlsConfigPropertyValidator)(properties.tlsConfig)),errors.collect(cdk().propertyValidator("validationCertificateArn",cdk().validateString)(properties.validationCertificateArn)),errors.wrap('supplied properties not correct for "CfnDomainConfigurationProps"')}function convertCfnDomainConfigurationPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDomainConfigurationPropsValidator(properties).assertSuccess(),{ApplicationProtocol:cdk().stringToCloudFormation(properties.applicationProtocol),AuthenticationType:cdk().stringToCloudFormation(properties.authenticationType),AuthorizerConfig:convertCfnDomainConfigurationAuthorizerConfigPropertyToCloudFormation(properties.authorizerConfig),ClientCertificateConfig:convertCfnDomainConfigurationClientCertificateConfigPropertyToCloudFormation(properties.clientCertificateConfig),DomainConfigurationName:cdk().stringToCloudFormation(properties.domainConfigurationName),DomainConfigurationStatus:cdk().stringToCloudFormation(properties.domainConfigurationStatus),DomainName:cdk().stringToCloudFormation(properties.domainName),ServerCertificateArns:cdk().listMapper(cdk().stringToCloudFormation)(properties.serverCertificateArns),ServerCertificateConfig:convertCfnDomainConfigurationServerCertificateConfigPropertyToCloudFormation(properties.serverCertificateConfig),ServiceType:cdk().stringToCloudFormation(properties.serviceType),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),TlsConfig:convertCfnDomainConfigurationTlsConfigPropertyToCloudFormation(properties.tlsConfig),ValidationCertificateArn:cdk().stringToCloudFormation(properties.validationCertificateArn)}):properties}function CfnDomainConfigurationPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("applicationProtocol","ApplicationProtocol",properties.ApplicationProtocol!=null?cfn_parse().FromCloudFormation.getString(properties.ApplicationProtocol):void 0),ret.addPropertyResult("authenticationType","AuthenticationType",properties.AuthenticationType!=null?cfn_parse().FromCloudFormation.getString(properties.AuthenticationType):void 0),ret.addPropertyResult("authorizerConfig","AuthorizerConfig",properties.AuthorizerConfig!=null?CfnDomainConfigurationAuthorizerConfigPropertyFromCloudFormation(properties.AuthorizerConfig):void 0),ret.addPropertyResult("clientCertificateConfig","ClientCertificateConfig",properties.ClientCertificateConfig!=null?CfnDomainConfigurationClientCertificateConfigPropertyFromCloudFormation(properties.ClientCertificateConfig):void 0),ret.addPropertyResult("domainConfigurationName","DomainConfigurationName",properties.DomainConfigurationName!=null?cfn_parse().FromCloudFormation.getString(properties.DomainConfigurationName):void 0),ret.addPropertyResult("domainConfigurationStatus","DomainConfigurationStatus",properties.DomainConfigurationStatus!=null?cfn_parse().FromCloudFormation.getString(properties.DomainConfigurationStatus):void 0),ret.addPropertyResult("domainName","DomainName",properties.DomainName!=null?cfn_parse().FromCloudFormation.getString(properties.DomainName):void 0),ret.addPropertyResult("serverCertificateArns","ServerCertificateArns",properties.ServerCertificateArns!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.ServerCertificateArns):void 0),ret.addPropertyResult("serverCertificateConfig","ServerCertificateConfig",properties.ServerCertificateConfig!=null?CfnDomainConfigurationServerCertificateConfigPropertyFromCloudFormation(properties.ServerCertificateConfig):void 0),ret.addPropertyResult("serviceType","ServiceType",properties.ServiceType!=null?cfn_parse().FromCloudFormation.getString(properties.ServiceType):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("tlsConfig","TlsConfig",properties.TlsConfig!=null?CfnDomainConfigurationTlsConfigPropertyFromCloudFormation(properties.TlsConfig):void 0),ret.addPropertyResult("validationCertificateArn","ValidationCertificateArn",properties.ValidationCertificateArn!=null?cfn_parse().FromCloudFormation.getString(properties.ValidationCertificateArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnFleetMetric extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_iot.CfnFleetMetric",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::IoT::FleetMetric";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnFleetMetricPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnFleetMetric(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnFleetMetric(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnFleetMetric.CFN_RESOURCE_TYPE_NAME}_aggregationField;_aggregationType;_description;_indexName;_metricName;_period;_queryString;_queryVersion;tags;_tagsRaw;_unit;cfnPropertyNames={aggregationField:"AggregationField",aggregationType:"AggregationType",description:"Description",indexName:"IndexName",metricName:"MetricName",period:"Period",queryString:"QueryString",queryVersion:"QueryVersion",tags:"Tags",unit:"Unit"};constructor(scope,id,props){super(scope,id,{type:CfnFleetMetric.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_iot_CfnFleetMetricProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnFleetMetric),error}cdk().requireProperty(props,"metricName",this),this._aggregationField=props.aggregationField,this._aggregationType=props.aggregationType,this._description=props.description,this._indexName=props.indexName,this._metricName=props.metricName,this._period=props.period,this._queryString=props.queryString,this._queryVersion=props.queryVersion,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::IoT::FleetMetric",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._unit=props.unit}get fleetMetricRef(){return{metricName:this.ref}}get aggregationField(){return this._aggregationField}set aggregationField(value){cdk().traceProperty(this.node,"AggregationField"),this._aggregationField=value}get aggregationType(){return this._aggregationType}set aggregationType(value){cdk().traceProperty(this.node,"AggregationType"),this._aggregationType=value}get description(){return this._description}set description(value){cdk().traceProperty(this.node,"Description"),this._description=value}get indexName(){return this._indexName}set indexName(value){cdk().traceProperty(this.node,"IndexName"),this._indexName=value}get metricName(){return this._metricName}set metricName(value){cdk().traceProperty(this.node,"MetricName"),this._metricName=value}get period(){return this._period}set period(value){cdk().traceProperty(this.node,"Period"),this._period=value}get queryString(){return this._queryString}set queryString(value){cdk().traceProperty(this.node,"QueryString"),this._queryString=value}get queryVersion(){return this._queryVersion}set queryVersion(value){cdk().traceProperty(this.node,"QueryVersion"),this._queryVersion=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get unit(){return this._unit}set unit(value){cdk().traceProperty(this.node,"Unit"),this._unit=value}get attrCreationDate(){return this.getAtt("CreationDate",cdk().ResolutionTypeHint.NUMBER)}get attrLastModifiedDate(){return this.getAtt("LastModifiedDate",cdk().ResolutionTypeHint.NUMBER)}get attrMetricArn(){return cdk().Token.asString(this.getAtt("MetricArn",cdk().ResolutionTypeHint.STRING))}get attrVersion(){return this.getAtt("Version",cdk().ResolutionTypeHint.NUMBER)}get cfnProperties(){return{aggregationField:this._aggregationField,aggregationType:this._aggregationType,description:this._description,indexName:this._indexName,metricName:this._metricName,period:this._period,queryString:this._queryString,queryVersion:this._queryVersion,tags:this.tags.renderTags(),unit:this._unit}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnFleetMetric.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnFleetMetricPropsToCloudFormation(props)}}exports.CfnFleetMetric=CfnFleetMetric;function CfnFleetMetricAggregationTypePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("values",cdk().requiredValidator)(properties.values)),errors.collect(cdk().propertyValidator("values",cdk().listValidator(cdk().validateString))(properties.values)),errors.wrap('supplied properties not correct for "AggregationTypeProperty"')}function convertCfnFleetMetricAggregationTypePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFleetMetricAggregationTypePropertyValidator(properties).assertSuccess(),{Name:cdk().stringToCloudFormation(properties.name),Values:cdk().listMapper(cdk().stringToCloudFormation)(properties.values)}):properties}function CfnFleetMetricAggregationTypePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("values","Values",properties.Values!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Values):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnFleetMetricPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("aggregationField",cdk().validateString)(properties.aggregationField)),errors.collect(cdk().propertyValidator("aggregationType",CfnFleetMetricAggregationTypePropertyValidator)(properties.aggregationType)),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("indexName",cdk().validateString)(properties.indexName)),errors.collect(cdk().propertyValidator("metricName",cdk().requiredValidator)(properties.metricName)),errors.collect(cdk().propertyValidator("metricName",cdk().validateString)(properties.metricName)),errors.collect(cdk().propertyValidator("period",cdk().validateNumber)(properties.period)),errors.collect(cdk().propertyValidator("queryString",cdk().validateString)(properties.queryString)),errors.collect(cdk().propertyValidator("queryVersion",cdk().validateString)(properties.queryVersion)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("unit",cdk().validateString)(properties.unit)),errors.wrap('supplied properties not correct for "CfnFleetMetricProps"')}function convertCfnFleetMetricPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFleetMetricPropsValidator(properties).assertSuccess(),{AggregationField:cdk().stringToCloudFormation(properties.aggregationField),AggregationType:convertCfnFleetMetricAggregationTypePropertyToCloudFormation(properties.aggregationType),Description:cdk().stringToCloudFormation(properties.description),IndexName:cdk().stringToCloudFormation(properties.indexName),MetricName:cdk().stringToCloudFormation(properties.metricName),Period:cdk().numberToCloudFormation(properties.period),QueryString:cdk().stringToCloudFormation(properties.queryString),QueryVersion:cdk().stringToCloudFormation(properties.queryVersion),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),Unit:cdk().stringToCloudFormation(properties.unit)}):properties}function CfnFleetMetricPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("aggregationField","AggregationField",properties.AggregationField!=null?cfn_parse().FromCloudFormation.getString(properties.AggregationField):void 0),ret.addPropertyResult("aggregationType","AggregationType",properties.AggregationType!=null?CfnFleetMetricAggregationTypePropertyFromCloudFormation(properties.AggregationType):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("indexName","IndexName",properties.IndexName!=null?cfn_parse().FromCloudFormation.getString(properties.IndexName):void 0),ret.addPropertyResult("metricName","MetricName",properties.MetricName!=null?cfn_parse().FromCloudFormation.getString(properties.MetricName):void 0),ret.addPropertyResult("period","Period",properties.Period!=null?cfn_parse().FromCloudFormation.getNumber(properties.Period):void 0),ret.addPropertyResult("queryString","QueryString",properties.QueryString!=null?cfn_parse().FromCloudFormation.getString(properties.QueryString):void 0),ret.addPropertyResult("queryVersion","QueryVersion",properties.QueryVersion!=null?cfn_parse().FromCloudFormation.getString(properties.QueryVersion):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("unit","Unit",properties.Unit!=null?cfn_parse().FromCloudFormation.getString(properties.Unit):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnJobTemplate extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_iot.CfnJobTemplate",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::IoT::JobTemplate";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnJobTemplatePropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnJobTemplate(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnJobTemplate(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnJobTemplate.CFN_RESOURCE_TYPE_NAME}static fromJobTemplateArn(scope,id,arn){class Import extends cdk().Resource{jobTemplateRef;constructor(scope2,id2,arn2){super(scope2,id2,{environmentFromArn:arn2});const variables=new(cfn_parse()).TemplateString("arn:${Partition}:iot:${Region}:${Account}:jobtemplate/${JobTemplateId}").parse(arn2);this.jobTemplateRef={jobTemplateId:variables.JobTemplateId,jobTemplateArn:arn2}}}return new Import(scope,id,arn)}static fromJobTemplateId(scope,id,jobTemplateId){class Import extends cdk().Resource{jobTemplateRef;constructor(scope2,id2,jobTemplateId2){const arn=new(cfn_parse()).TemplateString("arn:${Partition}:iot:${Region}:${Account}:jobtemplate/${JobTemplateId}").interpolate({Partition:cdk().Stack.of(scope2).partition,Region:cdk().Stack.of(scope2).region,Account:cdk().Stack.of(scope2).account,JobTemplateId:jobTemplateId2});super(scope2,id2,{environmentFromArn:arn}),this.jobTemplateRef={jobTemplateId:jobTemplateId2,jobTemplateArn:arn}}}return new Import(scope,id,jobTemplateId)}static arnForJobTemplate(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_iot_IJobTemplateRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForJobTemplate),error}return resource.jobTemplateRef.jobTemplateArn}_abortConfig;_description;_destinationPackageVersions;_document;_documentSource;_jobArn;_jobExecutionsRetryConfig;_jobExecutionsRolloutConfig;_jobTemplateId;_maintenanceWindows;_presignedUrlConfig;tags;_tagsRaw;_timeoutConfig;cfnPropertyNames={abortConfig:"AbortConfig",description:"Description",destinationPackageVersions:"DestinationPackageVersions",document:"Document",documentSource:"DocumentSource",jobArn:"JobArn",jobExecutionsRetryConfig:"JobExecutionsRetryConfig",jobExecutionsRolloutConfig:"JobExecutionsRolloutConfig",jobTemplateId:"JobTemplateId",maintenanceWindows:"MaintenanceWindows",presignedUrlConfig:"PresignedUrlConfig",tags:"Tags",timeoutConfig:"TimeoutConfig"};constructor(scope,id,props){super(scope,id,{type:CfnJobTemplate.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_iot_CfnJobTemplateProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnJobTemplate),error}cdk().requireProperty(props,"description",this),cdk().requireProperty(props,"jobTemplateId",this),this._abortConfig=props.abortConfig,this._description=props.description,this._destinationPackageVersions=props.destinationPackageVersions,this._document=props.document,this._documentSource=props.documentSource,this._jobArn=props.jobArn,this._jobExecutionsRetryConfig=props.jobExecutionsRetryConfig,this._jobExecutionsRolloutConfig=props.jobExecutionsRolloutConfig,this._jobTemplateId=props.jobTemplateId,this._maintenanceWindows=props.maintenanceWindows,this._presignedUrlConfig=props.presignedUrlConfig,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::IoT::JobTemplate",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._timeoutConfig=props.timeoutConfig}get jobTemplateRef(){return{jobTemplateId:this.ref,jobTemplateArn:this.attrArn}}get abortConfig(){return this._abortConfig}set abortConfig(value){cdk().traceProperty(this.node,"AbortConfig"),this._abortConfig=value}get description(){return this._description}set description(value){cdk().traceProperty(this.node,"Description"),this._description=value}get destinationPackageVersions(){return this._destinationPackageVersions}set destinationPackageVersions(value){cdk().traceProperty(this.node,"DestinationPackageVersions"),this._destinationPackageVersions=value}get document(){return this._document}set document(value){cdk().traceProperty(this.node,"Document"),this._document=value}get documentSource(){return this._documentSource}set documentSource(value){cdk().traceProperty(this.node,"DocumentSource"),this._documentSource=value}get jobArn(){return this._jobArn}set jobArn(value){cdk().traceProperty(this.node,"JobArn"),this._jobArn=value}get jobExecutionsRetryConfig(){return this._jobExecutionsRetryConfig}set jobExecutionsRetryConfig(value){cdk().traceProperty(this.node,"JobExecutionsRetryConfig"),this._jobExecutionsRetryConfig=value}get jobExecutionsRolloutConfig(){return this._jobExecutionsRolloutConfig}set jobExecutionsRolloutConfig(value){cdk().traceProperty(this.node,"JobExecutionsRolloutConfig"),this._jobExecutionsRolloutConfig=value}get jobTemplateId(){return this._jobTemplateId}set jobTemplateId(value){cdk().traceProperty(this.node,"JobTemplateId"),this._jobTemplateId=value}get maintenanceWindows(){return this._maintenanceWindows}set maintenanceWindows(value){cdk().traceProperty(this.node,"MaintenanceWindows"),this._maintenanceWindows=value}get presignedUrlConfig(){return this._presignedUrlConfig}set presignedUrlConfig(value){cdk().traceProperty(this.node,"PresignedUrlConfig"),this._presignedUrlConfig=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get timeoutConfig(){return this._timeoutConfig}set timeoutConfig(value){cdk().traceProperty(this.node,"TimeoutConfig"),this._timeoutConfig=value}get attrArn(){return cdk().Token.asString(this.getAtt("Arn",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{abortConfig:this._abortConfig,description:this._description,destinationPackageVersions:this._destinationPackageVersions,document:this._document,documentSource:this._documentSource,jobArn:this._jobArn,jobExecutionsRetryConfig:this._jobExecutionsRetryConfig,jobExecutionsRolloutConfig:this._jobExecutionsRolloutConfig,jobTemplateId:this._jobTemplateId,maintenanceWindows:this._maintenanceWindows,presignedUrlConfig:this._presignedUrlConfig,tags:this.tags.renderTags(),timeoutConfig:this._timeoutConfig}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnJobTemplate.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnJobTemplatePropsToCloudFormation(props)}}exports.CfnJobTemplate=CfnJobTemplate;function CfnJobTemplateTimeoutConfigPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("inProgressTimeoutInMinutes",cdk().requiredValidator)(properties.inProgressTimeoutInMinutes)),errors.collect(cdk().propertyValidator("inProgressTimeoutInMinutes",cdk().validateNumber)(properties.inProgressTimeoutInMinutes)),errors.wrap('supplied properties not correct for "TimeoutConfigProperty"')}function convertCfnJobTemplateTimeoutConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnJobTemplateTimeoutConfigPropertyValidator(properties).assertSuccess(),{InProgressTimeoutInMinutes:cdk().numberToCloudFormation(properties.inProgressTimeoutInMinutes)}):properties}function CfnJobTemplateTimeoutConfigPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("inProgressTimeoutInMinutes","InProgressTimeoutInMinutes",properties.InProgressTimeoutInMinutes!=null?cfn_parse().FromCloudFormation.getNumber(properties.InProgressTimeoutInMinutes):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnJobTemplateRetryCriteriaPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("failureType",cdk().validateString)(properties.failureType)),errors.collect(cdk().propertyValidator("numberOfRetries",cdk().validateNumber)(properties.numberOfRetries)),errors.wrap('supplied properties not correct for "RetryCriteriaProperty"')}function convertCfnJobTemplateRetryCriteriaPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnJobTemplateRetryCriteriaPropertyValidator(properties).assertSuccess(),{FailureType:cdk().stringToCloudFormation(properties.failureType),NumberOfRetries:cdk().numberToCloudFormation(properties.numberOfRetries)}):properties}function CfnJobTemplateRetryCriteriaPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("failureType","FailureType",properties.FailureType!=null?cfn_parse().FromCloudFormation.getString(properties.FailureType):void 0),ret.addPropertyResult("numberOfRetries","NumberOfRetries",properties.NumberOfRetries!=null?cfn_parse().FromCloudFormation.getNumber(properties.NumberOfRetries):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnJobTemplateJobExecutionsRetryConfigPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("retryCriteriaList",cdk().listValidator(CfnJobTemplateRetryCriteriaPropertyValidator))(properties.retryCriteriaList)),errors.wrap('supplied properties not correct for "JobExecutionsRetryConfigProperty"')}function convertCfnJobTemplateJobExecutionsRetryConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnJobTemplateJobExecutionsRetryConfigPropertyValidator(properties).assertSuccess(),{RetryCriteriaList:cdk().listMapper(convertCfnJobTemplateRetryCriteriaPropertyToCloudFormation)(properties.retryCriteriaList)}):properties}function CfnJobTemplateJobExecutionsRetryConfigPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("retryCriteriaList","RetryCriteriaList",properties.RetryCriteriaList!=null?cfn_parse().FromCloudFormation.getArray(CfnJobTemplateRetryCriteriaPropertyFromCloudFormation)(properties.RetryCriteriaList):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnJobTemplateAbortCriteriaPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("action",cdk().requiredValidator)(properties.action)),errors.collect(cdk().propertyValidator("action",cdk().validateString)(properties.action)),errors.collect(cdk().propertyValidator("failureType",cdk().requiredValidator)(properties.failureType)),errors.collect(cdk().propertyValidator("failureType",cdk().validateString)(properties.failureType)),errors.collect(cdk().propertyValidator("minNumberOfExecutedThings",cdk().requiredValidator)(properties.minNumberOfExecutedThings)),errors.collect(cdk().propertyValidator("minNumberOfExecutedThings",cdk().validateNumber)(properties.minNumberOfExecutedThings)),errors.collect(cdk().propertyValidator("thresholdPercentage",cdk().requiredValidator)(properties.thresholdPercentage)),errors.collect(cdk().propertyValidator("thresholdPercentage",cdk().validateNumber)(properties.thresholdPercentage)),errors.wrap('supplied properties not correct for "AbortCriteriaProperty"')}function convertCfnJobTemplateAbortCriteriaPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnJobTemplateAbortCriteriaPropertyValidator(properties).assertSuccess(),{Action:cdk().stringToCloudFormation(properties.action),FailureType:cdk().stringToCloudFormation(properties.failureType),MinNumberOfExecutedThings:cdk().numberToCloudFormation(properties.minNumberOfExecutedThings),ThresholdPercentage:cdk().numberToCloudFormation(properties.thresholdPercentage)}):properties}function CfnJobTemplateAbortCriteriaPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("action","Action",properties.Action!=null?cfn_parse().FromCloudFormation.getString(properties.Action):void 0),ret.addPropertyResult("failureType","FailureType",properties.FailureType!=null?cfn_parse().FromCloudFormation.getString(properties.FailureType):void 0),ret.addPropertyResult("minNumberOfExecutedThings","MinNumberOfExecutedThings",properties.MinNumberOfExecutedThings!=null?cfn_parse().FromCloudFormation.getNumber(properties.MinNumberOfExecutedThings):void 0),ret.addPropertyResult("thresholdPercentage","ThresholdPercentage",properties.ThresholdPercentage!=null?cfn_parse().FromCloudFormation.getNumber(properties.ThresholdPercentage):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnJobTemplateAbortConfigPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("criteriaList",cdk().requiredValidator)(properties.criteriaList)),errors.collect(cdk().propertyValidator("criteriaList",cdk().listValidator(CfnJobTemplateAbortCriteriaPropertyValidator))(properties.criteriaList)),errors.wrap('supplied properties not correct for "AbortConfigProperty"')}function convertCfnJobTemplateAbortConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnJobTemplateAbortConfigPropertyValidator(properties).assertSuccess(),{CriteriaList:cdk().listMapper(convertCfnJobTemplateAbortCriteriaPropertyToCloudFormation)(properties.criteriaList)}):properties}function CfnJobTemplateAbortConfigPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("criteriaList","CriteriaList",properties.CriteriaList!=null?cfn_parse().FromCloudFormation.getArray(CfnJobTemplateAbortCriteriaPropertyFromCloudFormation)(properties.CriteriaList):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnJobTemplateRateIncreaseCriteriaPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("numberOfNotifiedThings",cdk().validateNumber)(properties.numberOfNotifiedThings)),errors.collect(cdk().propertyValidator("numberOfSucceededThings",cdk().validateNumber)(properties.numberOfSucceededThings)),errors.wrap('supplied properties not correct for "RateIncreaseCriteriaProperty"')}function convertCfnJobTemplateRateIncreaseCriteriaPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnJobTemplateRateIncreaseCriteriaPropertyValidator(properties).assertSuccess(),{NumberOfNotifiedThings:cdk().numberToCloudFormation(properties.numberOfNotifiedThings),NumberOfSucceededThings:cdk().numberToCloudFormation(properties.numberOfSucceededThings)}):properties}function CfnJobTemplateRateIncreaseCriteriaPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("numberOfNotifiedThings","NumberOfNotifiedThings",properties.NumberOfNotifiedThings!=null?cfn_parse().FromCloudFormation.getNumber(properties.NumberOfNotifiedThings):void 0),ret.addPropertyResult("numberOfSucceededThings","NumberOfSucceededThings",properties.NumberOfSucceededThings!=null?cfn_parse().FromCloudFormation.getNumber(properties.NumberOfSucceededThings):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnJobTemplateExponentialRolloutRatePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("baseRatePerMinute",cdk().requiredValidator)(properties.baseRatePerMinute)),errors.collect(cdk().propertyValidator("baseRatePerMinute",cdk().validateNumber)(properties.baseRatePerMinute)),errors.collect(cdk().propertyValidator("incrementFactor",cdk().requiredValidator)(properties.incrementFactor)),errors.collect(cdk().propertyValidator("incrementFactor",cdk().validateNumber)(properties.incrementFactor)),errors.collect(cdk().propertyValidator("rateIncreaseCriteria",cdk().requiredValidator)(properties.rateIncreaseCriteria)),errors.collect(cdk().propertyValidator("rateIncreaseCriteria",CfnJobTemplateRateIncreaseCriteriaPropertyValidator)(properties.rateIncreaseCriteria)),errors.wrap('supplied properties not correct for "ExponentialRolloutRateProperty"')}function convertCfnJobTemplateExponentialRolloutRatePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnJobTemplateExponentialRolloutRatePropertyValidator(properties).assertSuccess(),{BaseRatePerMinute:cdk().numberToCloudFormation(properties.baseRatePerMinute),IncrementFactor:cdk().numberToCloudFormation(properties.incrementFactor),RateIncreaseCriteria:convertCfnJobTemplateRateIncreaseCriteriaPropertyToCloudFormation(properties.rateIncreaseCriteria)}):properties}function CfnJobTemplateExponentialRolloutRatePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("baseRatePerMinute","BaseRatePerMinute",properties.BaseRatePerMinute!=null?cfn_parse().FromCloudFormation.getNumber(properties.BaseRatePerMinute):void 0),ret.addPropertyResult("incrementFactor","IncrementFactor",properties.IncrementFactor!=null?cfn_parse().FromCloudFormation.getNumber(properties.IncrementFactor):void 0),ret.addPropertyResult("rateIncreaseCriteria","RateIncreaseCriteria",properties.RateIncreaseCriteria!=null?CfnJobTemplateRateIncreaseCriteriaPropertyFromCloudFormation(properties.RateIncreaseCriteria):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnJobTemplateJobExecutionsRolloutConfigPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("exponentialRolloutRate",CfnJobTemplateExponentialRolloutRatePropertyValidator)(properties.exponentialRolloutRate)),errors.collect(cdk().propertyValidator("maximumPerMinute",cdk().validateNumber)(properties.maximumPerMinute)),errors.wrap('supplied properties not correct for "JobExecutionsRolloutConfigProperty"')}function convertCfnJobTemplateJobExecutionsRolloutConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnJobTemplateJobExecutionsRolloutConfigPropertyValidator(properties).assertSuccess(),{ExponentialRolloutRate:convertCfnJobTemplateExponentialRolloutRatePropertyToCloudFormation(properties.exponentialRolloutRate),MaximumPerMinute:cdk().numberToCloudFormation(properties.maximumPerMinute)}):properties}function CfnJobTemplateJobExecutionsRolloutConfigPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("exponentialRolloutRate","ExponentialRolloutRate",properties.ExponentialRolloutRate!=null?CfnJobTemplateExponentialRolloutRatePropertyFromCloudFormation(properties.ExponentialRolloutRate):void 0),ret.addPropertyResult("maximumPerMinute","MaximumPerMinute",properties.MaximumPerMinute!=null?cfn_parse().FromCloudFormation.getNumber(properties.MaximumPerMinute):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnJobTemplateMaintenanceWindowPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("durationInMinutes",cdk().validateNumber)(properties.durationInMinutes)),errors.collect(cdk().propertyValidator("startTime",cdk().validateString)(properties.startTime)),errors.wrap('supplied properties not correct for "MaintenanceWindowProperty"')}function convertCfnJobTemplateMaintenanceWindowPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnJobTemplateMaintenanceWindowPropertyValidator(properties).assertSuccess(),{DurationInMinutes:cdk().numberToCloudFormation(properties.durationInMinutes),StartTime:cdk().stringToCloudFormation(properties.startTime)}):properties}function CfnJobTemplateMaintenanceWindowPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("durationInMinutes","DurationInMinutes",properties.DurationInMinutes!=null?cfn_parse().FromCloudFormation.getNumber(properties.DurationInMinutes):void 0),ret.addPropertyResult("startTime","StartTime",properties.StartTime!=null?cfn_parse().FromCloudFormation.getString(properties.StartTime):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnJobTemplatePresignedUrlConfigPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("expiresInSec",cdk().validateNumber)(properties.expiresInSec)),errors.collect(cdk().propertyValidator("roleArn",cdk().requiredValidator)(properties.roleArn)),errors.collect(cdk().propertyValidator("roleArn",cdk().validateString)(properties.roleArn)),errors.wrap('supplied properties not correct for "PresignedUrlConfigProperty"')}function convertCfnJobTemplatePresignedUrlConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnJobTemplatePresignedUrlConfigPropertyValidator(properties).assertSuccess(),{ExpiresInSec:cdk().numberToCloudFormation(properties.expiresInSec),RoleArn:cdk().stringToCloudFormation(properties.roleArn)}):properties}function CfnJobTemplatePresignedUrlConfigPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("expiresInSec","ExpiresInSec",properties.ExpiresInSec!=null?cfn_parse().FromCloudFormation.getNumber(properties.ExpiresInSec):void 0),ret.addPropertyResult("roleArn","RoleArn",properties.RoleArn!=null?cfn_parse().FromCloudFormation.getString(properties.RoleArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnJobTemplatePropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("abortConfig",cdk().validateObject)(properties.abortConfig)),errors.collect(cdk().propertyValidator("description",cdk().requiredValidator)(properties.description)),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("destinationPackageVersions",cdk().listValidator(cdk().validateString))(properties.destinationPackageVersions)),errors.collect(cdk().propertyValidator("document",cdk().validateString)(properties.document)),errors.collect(cdk().propertyValidator("documentSource",cdk().validateString)(properties.documentSource)),errors.collect(cdk().propertyValidator("jobArn",cdk().validateString)(properties.jobArn)),errors.collect(cdk().propertyValidator("jobExecutionsRetryConfig",CfnJobTemplateJobExecutionsRetryConfigPropertyValidator)(properties.jobExecutionsRetryConfig)),errors.collect(cdk().propertyValidator("jobExecutionsRolloutConfig",cdk().validateObject)(properties.jobExecutionsRolloutConfig)),errors.collect(cdk().propertyValidator("jobTemplateId",cdk().requiredValidator)(properties.jobTemplateId)),errors.collect(cdk().propertyValidator("jobTemplateId",cdk().validateString)(properties.jobTemplateId)),errors.collect(cdk().propertyValidator("maintenanceWindows",cdk().listValidator(CfnJobTemplateMaintenanceWindowPropertyValidator))(properties.maintenanceWindows)),errors.collect(cdk().propertyValidator("presignedUrlConfig",cdk().validateObject)(properties.presignedUrlConfig)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("timeoutConfig",cdk().validateObject)(properties.timeoutConfig)),errors.wrap('supplied properties not correct for "CfnJobTemplateProps"')}function convertCfnJobTemplatePropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnJobTemplatePropsValidator(properties).assertSuccess(),{AbortConfig:cdk().objectToCloudFormation(properties.abortConfig),Description:cdk().stringToCloudFormation(properties.description),DestinationPackageVersions:cdk().listMapper(cdk().stringToCloudFormation)(properties.destinationPackageVersions),Document:cdk().stringToCloudFormation(properties.document),DocumentSource:cdk().stringToCloudFormation(properties.documentSource),JobArn:cdk().stringToCloudFormation(properties.jobArn),JobExecutionsRetryConfig:convertCfnJobTemplateJobExecutionsRetryConfigPropertyToCloudFormation(properties.jobExecutionsRetryConfig),JobExecutionsRolloutConfig:cdk().objectToCloudFormation(properties.jobExecutionsRolloutConfig),JobTemplateId:cdk().stringToCloudFormation(properties.jobTemplateId),MaintenanceWindows:cdk().listMapper(convertCfnJobTemplateMaintenanceWindowPropertyToCloudFormation)(properties.maintenanceWindows),PresignedUrlConfig:cdk().objectToCloudFormation(properties.presignedUrlConfig),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),TimeoutConfig:cdk().objectToCloudFormation(properties.timeoutConfig)}):properties}function CfnJobTemplatePropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("abortConfig","AbortConfig",properties.AbortConfig!=null?cfn_parse().FromCloudFormation.getAny(properties.AbortConfig):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("destinationPackageVersions","DestinationPackageVersions",properties.DestinationPackageVersions!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.DestinationPackageVersions):void 0),ret.addPropertyResult("document","Document",properties.Document!=null?cfn_parse().FromCloudFormation.getString(properties.Document):void 0),ret.addPropertyResult("documentSource","DocumentSource",properties.DocumentSource!=null?cfn_parse().FromCloudFormation.getString(properties.DocumentSource):void 0),ret.addPropertyResult("jobArn","JobArn",properties.JobArn!=null?cfn_parse().FromCloudFormation.getString(properties.JobArn):void 0),ret.addPropertyResult("jobExecutionsRetryConfig","JobExecutionsRetryConfig",properties.JobExecutionsRetryConfig!=null?CfnJobTemplateJobExecutionsRetryConfigPropertyFromCloudFormation(properties.JobExecutionsRetryConfig):void 0),ret.addPropertyResult("jobExecutionsRolloutConfig","JobExecutionsRolloutConfig",properties.JobExecutionsRolloutConfig!=null?cfn_parse().FromCloudFormation.getAny(properties.JobExecutionsRolloutConfig):void 0),ret.addPropertyResult("jobTemplateId","JobTemplateId",properties.JobTemplateId!=null?cfn_parse().FromCloudFormation.getString(properties.JobTemplateId):void 0),ret.addPropertyResult("maintenanceWindows","MaintenanceWindows",properties.MaintenanceWindows!=null?cfn_parse().FromCloudFormation.getArray(CfnJobTemplateMaintenanceWindowPropertyFromCloudFormation)(properties.MaintenanceWindows):void 0),ret.addPropertyResult("presignedUrlConfig","PresignedUrlConfig",properties.PresignedUrlConfig!=null?cfn_parse().FromCloudFormation.getAny(properties.PresignedUrlConfig):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("timeoutConfig","TimeoutConfig",properties.TimeoutConfig!=null?cfn_parse().FromCloudFormation.getAny(properties.TimeoutConfig):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnLogging extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_iot.CfnLogging",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::IoT::Logging";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnLoggingPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnLogging(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnLogging(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnLogging.CFN_RESOURCE_TYPE_NAME}_accountId;_defaultLogLevel;_eventConfigurations;_roleArn;cfnPropertyNames={accountId:"AccountId",defaultLogLevel:"DefaultLogLevel",eventConfigurations:"EventConfigurations",roleArn:"RoleArn"};constructor(scope,id,props){super(scope,id,{type:CfnLogging.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_iot_CfnLoggingProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnLogging),error}cdk().requireProperty(props,"accountId",this),cdk().requireProperty(props,"defaultLogLevel",this),cdk().requireProperty(props,"roleArn",this),this._accountId=props.accountId,this._defaultLogLevel=props.defaultLogLevel,this._eventConfigurations=props.eventConfigurations,this._roleArn=cdk().getRefProperty(props.roleArn?.roleRef,"roleArn")??cdk().ensureStringOrUndefined(props.roleArn,"roleArn","iam.IRoleRef | string")}get loggingRef(){return{accountId:this.ref}}get accountId(){return this._accountId}set accountId(value){cdk().traceProperty(this.node,"AccountId"),this._accountId=value}get defaultLogLevel(){return this._defaultLogLevel}set defaultLogLevel(value){cdk().traceProperty(this.node,"DefaultLogLevel"),this._defaultLogLevel=value}get eventConfigurations(){return this._eventConfigurations}set eventConfigurations(value){cdk().traceProperty(this.node,"EventConfigurations"),this._eventConfigurations=value}get roleArn(){return this._roleArn}set roleArn(value){cdk().traceProperty(this.node,"RoleArn"),this._roleArn=value}get cfnProperties(){return{accountId:this._accountId,defaultLogLevel:this._defaultLogLevel,eventConfigurations:this._eventConfigurations,roleArn:this._roleArn}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnLogging.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnLoggingPropsToCloudFormation(props)}}exports.CfnLogging=CfnLogging;function CfnLoggingEventConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("eventType",cdk().requiredValidator)(properties.eventType)),errors.collect(cdk().propertyValidator("eventType",cdk().validateString)(properties.eventType)),errors.collect(cdk().propertyValidator("logDestination",cdk().validateString)(properties.logDestination)),errors.collect(cdk().propertyValidator("logLevel",cdk().validateString)(properties.logLevel)),errors.wrap('supplied properties not correct for "EventConfigurationProperty"')}function convertCfnLoggingEventConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLoggingEventConfigurationPropertyValidator(properties).assertSuccess(),{EventType:cdk().stringToCloudFormation(properties.eventType),LogDestination:cdk().stringToCloudFormation(properties.logDestination),LogLevel:cdk().stringToCloudFormation(properties.logLevel)}):properties}function CfnLoggingEventConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("eventType","EventType",properties.EventType!=null?cfn_parse().FromCloudFormation.getString(properties.EventType):void 0),ret.addPropertyResult("logDestination","LogDestination",properties.LogDestination!=null?cfn_parse().FromCloudFormation.getString(properties.LogDestination):void 0),ret.addPropertyResult("logLevel","LogLevel",properties.LogLevel!=null?cfn_parse().FromCloudFormation.getString(properties.LogLevel):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLoggingPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("accountId",cdk().requiredValidator)(properties.accountId)),errors.collect(cdk().propertyValidator("accountId",cdk().validateString)(properties.accountId)),errors.collect(cdk().propertyValidator("defaultLogLevel",cdk().requiredValidator)(properties.defaultLogLevel)),errors.collect(cdk().propertyValidator("defaultLogLevel",cdk().validateString)(properties.defaultLogLevel)),errors.collect(cdk().propertyValidator("eventConfigurations",cdk().listValidator(CfnLoggingEventConfigurationPropertyValidator))(properties.eventConfigurations)),errors.collect(cdk().propertyValidator("roleArn",cdk().requiredValidator)(properties.roleArn)),errors.collect(cdk().propertyValidator("roleArn",cdk().validateString)(properties.roleArn)),errors.wrap('supplied properties not correct for "CfnLoggingProps"')}function convertCfnLoggingPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLoggingPropsValidator(properties).assertSuccess(),{AccountId:cdk().stringToCloudFormation(properties.accountId),DefaultLogLevel:cdk().stringToCloudFormation(properties.defaultLogLevel),EventConfigurations:cdk().listMapper(convertCfnLoggingEventConfigurationPropertyToCloudFormation)(properties.eventConfigurations),RoleArn:cdk().stringToCloudFormation(properties.roleArn)}):properties}function CfnLoggingPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("accountId","AccountId",properties.AccountId!=null?cfn_parse().FromCloudFormation.getString(properties.AccountId):void 0),ret.addPropertyResult("defaultLogLevel","DefaultLogLevel",properties.DefaultLogLevel!=null?cfn_parse().FromCloudFormation.getString(properties.DefaultLogLevel):void 0),ret.addPropertyResult("eventConfigurations","EventConfigurations",properties.EventConfigurations!=null?cfn_parse().FromCloudFormation.getArray(CfnLoggingEventConfigurationPropertyFromCloudFormation)(properties.EventConfigurations):void 0),ret.addPropertyResult("roleArn","RoleArn",properties.RoleArn!=null?cfn_parse().FromCloudFormation.getString(properties.RoleArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnMitigationAction extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_iot.CfnMitigationAction",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::IoT::MitigationAction";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnMitigationActionPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnMitigationAction(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnMitigationAction(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnMitigationAction.CFN_RESOURCE_TYPE_NAME}static arnForMitigationAction(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_iot_IMitigationActionRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForMitigationAction),error}return resource.mitigationActionRef.mitigationActionArn}_actionName;_actionParams;_roleArn;tags;_tagsRaw;cfnPropertyNames={actionName:"ActionName",actionParams:"ActionParams",roleArn:"RoleArn",tags:"Tags"};constructor(scope,id,props){super(scope,id,{type:CfnMitigationAction.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_iot_CfnMitigationActionProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnMitigationAction),error}cdk().requireProperty(props,"actionParams",this),cdk().requireProperty(props,"roleArn",this),this._actionName=props.actionName,this._actionParams=props.actionParams,this._roleArn=props.roleArn,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::IoT::MitigationAction",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags}get mitigationActionRef(){return{actionName:this.ref,mitigationActionArn:this.attrMitigationActionArn}}get actionName(){return this._actionName}set actionName(value){cdk().traceProperty(this.node,"ActionName"),this._actionName=value}get actionParams(){return this._actionParams}set actionParams(value){cdk().traceProperty(this.node,"ActionParams"),this._actionParams=value}get roleArn(){return this._roleArn}set roleArn(value){cdk().traceProperty(this.node,"RoleArn"),this._roleArn=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get attrMitigationActionArn(){return cdk().Token.asString(this.getAtt("MitigationActionArn",cdk().ResolutionTypeHint.STRING))}get attrMitigationActionId(){return cdk().Token.asString(this.getAtt("MitigationActionId",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{actionName:this._actionName,actionParams:this._actionParams,roleArn:this._roleArn,tags:this.tags.renderTags()}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnMitigationAction.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnMitigationActionPropsToCloudFormation(props)}}exports.CfnMitigationAction=CfnMitigationAction;function CfnMitigationActionUpdateDeviceCertificateParamsPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("action",cdk().requiredValidator)(properties.action)),errors.collect(cdk().propertyValidator("action",cdk().validateString)(properties.action)),errors.wrap('supplied properties not correct for "UpdateDeviceCertificateParamsProperty"')}function convertCfnMitigationActionUpdateDeviceCertificateParamsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnMitigationActionUpdateDeviceCertificateParamsPropertyValidator(properties).assertSuccess(),{Action:cdk().stringToCloudFormation(properties.action)}):properties}function CfnMitigationActionUpdateDeviceCertificateParamsPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("action","Action",properties.Action!=null?cfn_parse().FromCloudFormation.getString(properties.Action):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnMitigationActionAddThingsToThingGroupParamsPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("overrideDynamicGroups",cdk().validateBoolean)(properties.overrideDynamicGroups)),errors.collect(cdk().propertyValidator("thingGroupNames",cdk().requiredValidator)(properties.thingGroupNames)),errors.collect(cdk().propertyValidator("thingGroupNames",cdk().listValidator(cdk().validateString))(properties.thingGroupNames)),errors.wrap('supplied properties not correct for "AddThingsToThingGroupParamsProperty"')}function convertCfnMitigationActionAddThingsToThingGroupParamsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnMitigationActionAddThingsToThingGroupParamsPropertyValidator(properties).assertSuccess(),{OverrideDynamicGroups:cdk().booleanToCloudFormation(properties.overrideDynamicGroups),ThingGroupNames:cdk().listMapper(cdk().stringToCloudFormation)(properties.thingGroupNames)}):properties}function CfnMitigationActionAddThingsToThingGroupParamsPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("overrideDynamicGroups","OverrideDynamicGroups",properties.OverrideDynamicGroups!=null?cfn_parse().FromCloudFormation.getBoolean(properties.OverrideDynamicGroups):void 0),ret.addPropertyResult("thingGroupNames","ThingGroupNames",properties.ThingGroupNames!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.ThingGroupNames):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnMitigationActionPublishFindingToSnsParamsPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("topicArn",cdk().requiredValidator)(properties.topicArn)),errors.collect(cdk().propertyValidator("topicArn",cdk().validateString)(properties.topicArn)),errors.wrap('supplied properties not correct for "PublishFindingToSnsParamsProperty"')}function convertCfnMitigationActionPublishFindingToSnsParamsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnMitigationActionPublishFindingToSnsParamsPropertyValidator(properties).assertSuccess(),{TopicArn:cdk().stringToCloudFormation(properties.topicArn)}):properties}function CfnMitigationActionPublishFindingToSnsParamsPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("topicArn","TopicArn",properties.TopicArn!=null?cfn_parse().FromCloudFormation.getString(properties.TopicArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnMitigationActionEnableIoTLoggingParamsPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("logLevel",cdk().requiredValidator)(properties.logLevel)),errors.collect(cdk().propertyValidator("logLevel",cdk().validateString)(properties.logLevel)),errors.collect(cdk().propertyValidator("roleArnForLogging",cdk().requiredValidator)(properties.roleArnForLogging)),errors.collect(cdk().propertyValidator("roleArnForLogging",cdk().validateString)(properties.roleArnForLogging)),errors.wrap('supplied properties not correct for "EnableIoTLoggingParamsProperty"')}function convertCfnMitigationActionEnableIoTLoggingParamsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnMitigationActionEnableIoTLoggingParamsPropertyValidator(properties).assertSuccess(),{LogLevel:cdk().stringToCloudFormation(properties.logLevel),RoleArnForLogging:cdk().stringToCloudFormation(properties.roleArnForLogging)}):properties}function CfnMitigationActionEnableIoTLoggingParamsPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("logLevel","LogLevel",properties.LogLevel!=null?cfn_parse().FromCloudFormation.getString(properties.LogLevel):void 0),ret.addPropertyResult("roleArnForLogging","RoleArnForLogging",properties.RoleArnForLogging!=null?cfn_parse().FromCloudFormation.getString(properties.RoleArnForLogging):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnMitigationActionReplaceDefaultPolicyVersionParamsPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("templateName",cdk().requiredValidator)(properties.templateName)),errors.collect(cdk().propertyValidator("templateName",cdk().validateString)(properties.templateName)),errors.wrap('supplied properties not correct for "ReplaceDefaultPolicyVersionParamsProperty"')}function convertCfnMitigationActionReplaceDefaultPolicyVersionParamsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnMitigationActionReplaceDefaultPolicyVersionParamsPropertyValidator(properties).assertSuccess(),{TemplateName:cdk().stringToCloudFormation(properties.templateName)}):properties}function CfnMitigationActionReplaceDefaultPolicyVersionParamsPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("templateName","TemplateName",properties.TemplateName!=null?cfn_parse().FromCloudFormation.getString(properties.TemplateName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnMitigationActionUpdateCACertificateParamsPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("action",cdk().requiredValidator)(properties.action)),errors.collect(cdk().propertyValidator("action",cdk().validateString)(properties.action)),errors.wrap('supplied properties not correct for "UpdateCACertificateParamsProperty"')}function convertCfnMitigationActionUpdateCACertificateParamsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnMitigationActionUpdateCACertificateParamsPropertyValidator(properties).assertSuccess(),{Action:cdk().stringToCloudFormation(properties.action)}):properties}function CfnMitigationActionUpdateCACertificateParamsPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("action","Action",properties.Action!=null?cfn_parse().FromCloudFormation.getString(properties.Action):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnMitigationActionActionParamsPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("addThingsToThingGroupParams",CfnMitigationActionAddThingsToThingGroupParamsPropertyValidator)(properties.addThingsToThingGroupParams)),errors.collect(cdk().propertyValidator("enableIoTLoggingParams",CfnMitigationActionEnableIoTLoggingParamsPropertyValidator)(properties.enableIoTLoggingParams)),errors.collect(cdk().propertyValidator("publishFindingToSnsParams",CfnMitigationActionPublishFindingToSnsParamsPropertyValidator)(properties.publishFindingToSnsParams)),errors.collect(cdk().propertyValidator("replaceDefaultPolicyVersionParams",CfnMitigationActionReplaceDefaultPolicyVersionParamsPropertyValidator)(properties.replaceDefaultPolicyVersionParams)),errors.collect(cdk().propertyValidator("updateCaCertificateParams",CfnMitigationActionUpdateCACertificateParamsPropertyValidator)(properties.updateCaCertificateParams)),errors.collect(cdk().propertyValidator("updateDeviceCertificateParams",CfnMitigationActionUpdateDeviceCertificateParamsPropertyValidator)(properties.updateDeviceCertificateParams)),errors.wrap('supplied properties not correct for "ActionParamsProperty"')}function convertCfnMitigationActionActionParamsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnMitigationActionActionParamsPropertyValidator(properties).assertSuccess(),{AddThingsToThingGroupParams:convertCfnMitigationActionAddThingsToThingGroupParamsPropertyToCloudFormation(properties.addThingsToThingGroupParams),EnableIoTLoggingParams:convertCfnMitigationActionEnableIoTLoggingParamsPropertyToCloudFormation(properties.enableIoTLoggingParams),PublishFindingToSnsParams:convertCfnMitigationActionPublishFindingToSnsParamsPropertyToCloudFormation(properties.publishFindingToSnsParams),ReplaceDefaultPolicyVersionParams:convertCfnMitigationActionReplaceDefaultPolicyVersionParamsPropertyToCloudFormation(properties.replaceDefaultPolicyVersionParams),UpdateCACertificateParams:convertCfnMitigationActionUpdateCACertificateParamsPropertyToCloudFormation(properties.updateCaCertificateParams),UpdateDeviceCertificateParams:convertCfnMitigationActionUpdateDeviceCertificateParamsPropertyToCloudFormation(properties.updateDeviceCertificateParams)}):properties}function CfnMitigationActionActionParamsPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("addThingsToThingGroupParams","AddThingsToThingGroupParams",properties.AddThingsToThingGroupParams!=null?CfnMitigationActionAddThingsToThingGroupParamsPropertyFromCloudFormation(properties.AddThingsToThingGroupParams):void 0),ret.addPropertyResult("enableIoTLoggingParams","EnableIoTLoggingParams",properties.EnableIoTLoggingParams!=null?CfnMitigationActionEnableIoTLoggingParamsPropertyFromCloudFormation(properties.EnableIoTLoggingParams):void 0),ret.addPropertyResult("publishFindingToSnsParams","PublishFindingToSnsParams",properties.PublishFindingToSnsParams!=null?CfnMitigationActionPublishFindingToSnsParamsPropertyFromCloudFormation(properties.PublishFindingToSnsParams):void 0),ret.addPropertyResult("replaceDefaultPolicyVersionParams","ReplaceDefaultPolicyVersionParams",properties.ReplaceDefaultPolicyVersionParams!=null?CfnMitigationActionReplaceDefaultPolicyVersionParamsPropertyFromCloudFormation(properties.ReplaceDefaultPolicyVersionParams):void 0),ret.addPropertyResult("updateCaCertificateParams","UpdateCACertificateParams",properties.UpdateCACertificateParams!=null?CfnMitigationActionUpdateCACertificateParamsPropertyFromCloudFormation(properties.UpdateCACertificateParams):void 0),ret.addPropertyResult("updateDeviceCertificateParams","UpdateDeviceCertificateParams",properties.UpdateDeviceCertificateParams!=null?CfnMitigationActionUpdateDeviceCertificateParamsPropertyFromCloudFormation(properties.UpdateDeviceCertificateParams):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnMitigationActionPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("actionName",cdk().validateString)(properties.actionName)),errors.collect(cdk().propertyValidator("actionParams",cdk().requiredValidator)(properties.actionParams)),errors.collect(cdk().propertyValidator("actionParams",CfnMitigationActionActionParamsPropertyValidator)(properties.actionParams)),errors.collect(cdk().propertyValidator("roleArn",cdk().requiredValidator)(properties.roleArn)),errors.collect(cdk().propertyValidator("roleArn",cdk().validateString)(properties.roleArn)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnMitigationActionProps"')}function convertCfnMitigationActionPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnMitigationActionPropsValidator(properties).assertSuccess(),{ActionName:cdk().stringToCloudFormation(properties.actionName),ActionParams:convertCfnMitigationActionActionParamsPropertyToCloudFormation(properties.actionParams),RoleArn:cdk().stringToCloudFormation(properties.roleArn),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnMitigationActionPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("actionName","ActionName",properties.ActionName!=null?cfn_parse().FromCloudFormation.getString(properties.ActionName):void 0),ret.addPropertyResult("actionParams","ActionParams",properties.ActionParams!=null?CfnMitigationActionActionParamsPropertyFromCloudFormation(properties.ActionParams):void 0),ret.addPropertyResult("roleArn","RoleArn",properties.RoleArn!=null?cfn_parse().FromCloudFormation.getString(properties.RoleArn):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnPolicy extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_iot.CfnPolicy",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::IoT::Policy";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnPolicyPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnPolicy(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnPolicy(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnPolicy.CFN_RESOURCE_TYPE_NAME}static fromPolicyArn(scope,id,arn){class Import extends cdk().Resource{policyRef;constructor(scope2,id2,arn2){super(scope2,id2,{environmentFromArn:arn2});const variables=new(cfn_parse()).TemplateString("arn:${Partition}:iot:${Region}:${Account}:policy/${PolicyName}").parse(arn2);this.policyRef={policyName:variables.PolicyName,policyArn:arn2}}}return new Import(scope,id,arn)}static fromPolicyName(scope,id,policyName){class Import extends cdk().Resource{policyRef;constructor(scope2,id2,policyName2){const arn=new(cfn_parse()).TemplateString("arn:${Partition}:iot:${Region}:${Account}:policy/${PolicyName}").interpolate({Partition:cdk().Stack.of(scope2).partition,Region:cdk().Stack.of(scope2).region,Account:cdk().Stack.of(scope2).account,PolicyName:policyName2});super(scope2,id2,{environmentFromArn:arn}),this.policyRef={policyName:policyName2,policyArn:arn}}}return new Import(scope,id,policyName)}static arnForPolicy(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_iot_IPolicyRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForPolicy),error}return resource.policyRef.policyArn}cdkTagManager;_policyDocument;_policyName;_tags;cfnPropertyNames={tags:"Tags",policyDocument:"PolicyDocument",policyName:"PolicyName"};constructor(scope,id,props){super(scope,id,{type:CfnPolicy.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_iot_CfnPolicyProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnPolicy),error}cdk().requireProperty(props,"policyDocument",this),this.cdkTagManager=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::IoT::Policy",void 0,{tagPropertyName:"tags"}),this._policyDocument=props.policyDocument,this._policyName=props.policyName,this._tags=props.tags}get policyRef(){return{policyName:this.ref,policyArn:this.attrArn}}get policyDocument(){return this._policyDocument}set policyDocument(value){cdk().traceProperty(this.node,"PolicyDocument"),this._policyDocument=value}get policyName(){return this._policyName}set policyName(value){cdk().traceProperty(this.node,"PolicyName"),this._policyName=value}get tags(){return this._tags}set tags(value){cdk().traceProperty(this.node,"Tags"),this._tags=value}get attrArn(){return cdk().Token.asString(this.getAtt("Arn",cdk().ResolutionTypeHint.STRING))}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{tags:this.cdkTagManager.renderTags(this._tags),policyDocument:this._policyDocument,policyName:this._policyName}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnPolicy.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnPolicyPropsToCloudFormation(props)}}exports.CfnPolicy=CfnPolicy;function CfnPolicyPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("policyDocument",cdk().requiredValidator)(properties.policyDocument)),errors.collect(cdk().propertyValidator("policyDocument",cdk().validateObject)(properties.policyDocument)),errors.collect(cdk().propertyValidator("policyName",cdk().validateString)(properties.policyName)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnPolicyProps"')}function convertCfnPolicyPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnPolicyPropsValidator(properties).assertSuccess(),{PolicyDocument:cdk().objectToCloudFormation(properties.policyDocument),PolicyName:cdk().stringToCloudFormation(properties.policyName),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnPolicyPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("policyDocument","PolicyDocument",properties.PolicyDocument!=null?cfn_parse().FromCloudFormation.getAny(properties.PolicyDocument):void 0),ret.addPropertyResult("policyName","PolicyName",properties.PolicyName!=null?cfn_parse().FromCloudFormation.getString(properties.PolicyName):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnPolicyPrincipalAttachment extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_iot.CfnPolicyPrincipalAttachment",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::IoT::PolicyPrincipalAttachment";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnPolicyPrincipalAttachmentPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnPolicyPrincipalAttachment(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnPolicyPrincipalAttachment(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnPolicyPrincipalAttachment.CFN_RESOURCE_TYPE_NAME}_policyName;_principal;cfnPropertyNames={policyName:"PolicyName",principal:"Principal"};constructor(scope,id,props){super(scope,id,{type:CfnPolicyPrincipalAttachment.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_iot_CfnPolicyPrincipalAttachmentProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnPolicyPrincipalAttachment),error}cdk().requireProperty(props,"policyName",this),cdk().requireProperty(props,"principal",this),this._policyName=props.policyName,this._principal=props.principal}get policyPrincipalAttachmentRef(){return{policyPrincipalAttachmentId:this.ref}}get policyName(){return this._policyName}set policyName(value){cdk().traceProperty(this.node,"PolicyName"),this._policyName=value}get principal(){return this._principal}set principal(value){cdk().traceProperty(this.node,"Principal"),this._principal=value}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{policyName:this._policyName,principal:this._principal}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnPolicyPrincipalAttachment.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnPolicyPrincipalAttachmentPropsToCloudFormation(props)}}exports.CfnPolicyPrincipalAttachment=CfnPolicyPrincipalAttachment;function CfnPolicyPrincipalAttachmentPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("policyName",cdk().requiredValidator)(properties.policyName)),errors.collect(cdk().propertyValidator("policyName",cdk().validateString)(properties.policyName)),errors.collect(cdk().propertyValidator("principal",cdk().requiredValidator)(properties.principal)),errors.collect(cdk().propertyValidator("principal",cdk().validateString)(properties.principal)),errors.wrap('supplied properties not correct for "CfnPolicyPrincipalAttachmentProps"')}function convertCfnPolicyPrincipalAttachmentPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnPolicyPrincipalAttachmentPropsValidator(properties).assertSuccess(),{PolicyName:cdk().stringToCloudFormation(properties.policyName),Principal:cdk().stringToCloudFormation(properties.principal)}):properties}function CfnPolicyPrincipalAttachmentPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("policyName","PolicyName",properties.PolicyName!=null?cfn_parse().FromCloudFormation.getString(properties.PolicyName):void 0),ret.addPropertyResult("principal","Principal",properties.Principal!=null?cfn_parse().FromCloudFormation.getString(properties.Principal):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnProvisioningTemplate extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_iot.CfnProvisioningTemplate",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::IoT::ProvisioningTemplate";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnProvisioningTemplatePropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnProvisioningTemplate(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnProvisioningTemplate(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnProvisioningTemplate.CFN_RESOURCE_TYPE_NAME}static fromTemplateName(scope,id,templateName){class Import extends cdk().Resource{provisioningTemplateRef;constructor(scope2,id2,templateName2){super(scope2,id2),this.provisioningTemplateRef={templateName:templateName2}}}return new Import(scope,id,templateName)}static arnForProvisioningTemplate(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_iot_IProvisioningTemplateRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForProvisioningTemplate),error}return new(cfn_parse()).TemplateString("arn:${Partition}:iot:${Region}:${Account}:provisioningtemplate/${TemplateName}").interpolate({Partition:cdk().Stack.of(resource).partition,Region:resource.env.region,Account:resource.env.account,TemplateName:resource.provisioningTemplateRef.templateName})}_description;_enabled;_preProvisioningHook;_provisioningRoleArn;tags;_tagsRaw;_templateBody;_templateName;_templateType;cfnPropertyNames={description:"Description",enabled:"Enabled",preProvisioningHook:"PreProvisioningHook",provisioningRoleArn:"ProvisioningRoleArn",tags:"Tags",templateBody:"TemplateBody",templateName:"TemplateName",templateType:"TemplateType"};constructor(scope,id,props){super(scope,id,{type:CfnProvisioningTemplate.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_iot_CfnProvisioningTemplateProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnProvisioningTemplate),error}cdk().requireProperty(props,"provisioningRoleArn",this),cdk().requireProperty(props,"templateBody",this),this._description=props.description,this._enabled=props.enabled,this._preProvisioningHook=props.preProvisioningHook,this._provisioningRoleArn=cdk().getRefProperty(props.provisioningRoleArn?.roleRef,"roleArn")??cdk().ensureStringOrUndefined(props.provisioningRoleArn,"provisioningRoleArn","iam.IRoleRef | string"),this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::IoT::ProvisioningTemplate",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._templateBody=props.templateBody,this._templateName=props.templateName,this._templateType=props.templateType}get provisioningTemplateRef(){return{templateName:this.ref}}get description(){return this._description}set description(value){cdk().traceProperty(this.node,"Description"),this._description=value}get enabled(){return this._enabled}set enabled(value){cdk().traceProperty(this.node,"Enabled"),this._enabled=value}get preProvisioningHook(){return this._preProvisioningHook}set preProvisioningHook(value){cdk().traceProperty(this.node,"PreProvisioningHook"),this._preProvisioningHook=value}get provisioningRoleArn(){return this._provisioningRoleArn}set provisioningRoleArn(value){cdk().traceProperty(this.node,"ProvisioningRoleArn"),this._provisioningRoleArn=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get templateBody(){return this._templateBody}set templateBody(value){cdk().traceProperty(this.node,"TemplateBody"),this._templateBody=value}get templateName(){return this._templateName}set templateName(value){cdk().traceProperty(this.node,"TemplateName"),this._templateName=value}get templateType(){return this._templateType}set templateType(value){cdk().traceProperty(this.node,"TemplateType"),this._templateType=value}get attrTemplateArn(){return cdk().Token.asString(this.getAtt("TemplateArn",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{description:this._description,enabled:this._enabled,preProvisioningHook:this._preProvisioningHook,provisioningRoleArn:this._provisioningRoleArn,tags:this.tags.renderTags(),templateBody:this._templateBody,templateName:this._templateName,templateType:this._templateType}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnProvisioningTemplate.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnProvisioningTemplatePropsToCloudFormation(props)}}exports.CfnProvisioningTemplate=CfnProvisioningTemplate;function CfnProvisioningTemplateProvisioningHookPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("payloadVersion",cdk().validateString)(properties.payloadVersion)),errors.collect(cdk().propertyValidator("targetArn",cdk().validateString)(properties.targetArn)),errors.wrap('supplied properties not correct for "ProvisioningHookProperty"')}function convertCfnProvisioningTemplateProvisioningHookPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnProvisioningTemplateProvisioningHookPropertyValidator(properties).assertSuccess(),{PayloadVersion:cdk().stringToCloudFormation(properties.payloadVersion),TargetArn:cdk().stringToCloudFormation(properties.targetArn)}):properties}function CfnProvisioningTemplateProvisioningHookPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("payloadVersion","PayloadVersion",properties.PayloadVersion!=null?cfn_parse().FromCloudFormation.getString(properties.PayloadVersion):void 0),ret.addPropertyResult("targetArn","TargetArn",properties.TargetArn!=null?cfn_parse().FromCloudFormation.getString(properties.TargetArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnProvisioningTemplatePropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("enabled",cdk().validateBoolean)(properties.enabled)),errors.collect(cdk().propertyValidator("preProvisioningHook",CfnProvisioningTemplateProvisioningHookPropertyValidator)(properties.preProvisioningHook)),errors.collect(cdk().propertyValidator("provisioningRoleArn",cdk().requiredValidator)(properties.provisioningRoleArn)),errors.collect(cdk().propertyValidator("provisioningRoleArn",cdk().validateString)(properties.provisioningRoleArn)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("templateBody",cdk().requiredValidator)(properties.templateBody)),errors.collect(cdk().propertyValidator("templateBody",cdk().validateString)(properties.templateBody)),errors.collect(cdk().propertyValidator("templateName",cdk().validateString)(properties.templateName)),errors.collect(cdk().propertyValidator("templateType",cdk().validateString)(properties.templateType)),errors.wrap('supplied properties not correct for "CfnProvisioningTemplateProps"')}function convertCfnProvisioningTemplatePropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnProvisioningTemplatePropsValidator(properties).assertSuccess(),{Description:cdk().stringToCloudFormation(properties.description),Enabled:cdk().booleanToCloudFormation(properties.enabled),PreProvisioningHook:convertCfnProvisioningTemplateProvisioningHookPropertyToCloudFormation(properties.preProvisioningHook),ProvisioningRoleArn:cdk().stringToCloudFormation(properties.provisioningRoleArn),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),TemplateBody:cdk().stringToCloudFormation(properties.templateBody),TemplateName:cdk().stringToCloudFormation(properties.templateName),TemplateType:cdk().stringToCloudFormation(properties.templateType)}):properties}function CfnProvisioningTemplatePropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("enabled","Enabled",properties.Enabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Enabled):void 0),ret.addPropertyResult("preProvisioningHook","PreProvisioningHook",properties.PreProvisioningHook!=null?CfnProvisioningTemplateProvisioningHookPropertyFromCloudFormation(properties.PreProvisioningHook):void 0),ret.addPropertyResult("provisioningRoleArn","ProvisioningRoleArn",properties.ProvisioningRoleArn!=null?cfn_parse().FromCloudFormation.getString(properties.ProvisioningRoleArn):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("templateBody","TemplateBody",properties.TemplateBody!=null?cfn_parse().FromCloudFormation.getString(properties.TemplateBody):void 0),ret.addPropertyResult("templateName","TemplateName",properties.TemplateName!=null?cfn_parse().FromCloudFormation.getString(properties.TemplateName):void 0),ret.addPropertyResult("templateType","TemplateType",properties.TemplateType!=null?cfn_parse().FromCloudFormation.getString(properties.TemplateType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnResourceSpecificLogging extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_iot.CfnResourceSpecificLogging",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::IoT::ResourceSpecificLogging";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnResourceSpecificLoggingPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnResourceSpecificLogging(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnResourceSpecificLogging(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnResourceSpecificLogging.CFN_RESOURCE_TYPE_NAME}_logLevel;_targetName;_targetType;cfnPropertyNames={logLevel:"LogLevel",targetName:"TargetName",targetType:"TargetType"};constructor(scope,id,props){super(scope,id,{type:CfnResourceSpecificLogging.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_iot_CfnResourceSpecificLoggingProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnResourceSpecificLogging),error}cdk().requireProperty(props,"logLevel",this),cdk().requireProperty(props,"targetName",this),cdk().requireProperty(props,"targetType",this),this._logLevel=props.logLevel,this._targetName=props.targetName,this._targetType=props.targetType}get resourceSpecificLoggingRef(){return{targetId:this.ref}}get logLevel(){return this._logLevel}set logLevel(value){cdk().traceProperty(this.node,"LogLevel"),this._logLevel=value}get targetName(){return this._targetName}set targetName(value){cdk().traceProperty(this.node,"TargetName"),this._targetName=value}get targetType(){return this._targetType}set targetType(value){cdk().traceProperty(this.node,"TargetType"),this._targetType=value}get attrTargetId(){return cdk().Token.asString(this.getAtt("TargetId",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{logLevel:this._logLevel,targetName:this._targetName,targetType:this._targetType}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnResourceSpecificLogging.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnResourceSpecificLoggingPropsToCloudFormation(props)}}exports.CfnResourceSpecificLogging=CfnResourceSpecificLogging;function CfnResourceSpecificLoggingPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("logLevel",cdk().requiredValidator)(properties.logLevel)),errors.collect(cdk().propertyValidator("logLevel",cdk().validateString)(properties.logLevel)),errors.collect(cdk().propertyValidator("targetName",cdk().requiredValidator)(properties.targetName)),errors.collect(cdk().propertyValidator("targetName",cdk().validateString)(properties.targetName)),errors.collect(cdk().propertyValidator("targetType",cdk().requiredValidator)(properties.targetType)),errors.collect(cdk().propertyValidator("targetType",cdk().validateString)(properties.targetType)),errors.wrap('supplied properties not correct for "CfnResourceSpecificLoggingProps"')}function convertCfnResourceSpecificLoggingPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnResourceSpecificLoggingPropsValidator(properties).assertSuccess(),{LogLevel:cdk().stringToCloudFormation(properties.logLevel),TargetName:cdk().stringToCloudFormation(properties.targetName),TargetType:cdk().stringToCloudFormation(properties.targetType)}):properties}function CfnResourceSpecificLoggingPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("logLevel","LogLevel",properties.LogLevel!=null?cfn_parse().FromCloudFormation.getString(properties.LogLevel):void 0),ret.addPropertyResult("targetName","TargetName",properties.TargetName!=null?cfn_parse().FromCloudFormation.getString(properties.TargetName):void 0),ret.addPropertyResult("targetType","TargetType",properties.TargetType!=null?cfn_parse().FromCloudFormation.getString(properties.TargetType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnRoleAlias extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_iot.CfnRoleAlias",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::IoT::RoleAlias";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnRoleAliasPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnRoleAlias(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnRoleAlias(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnRoleAlias.CFN_RESOURCE_TYPE_NAME}static fromRoleAliasArn(scope,id,arn){class Import extends cdk().Resource{roleAliasRef;constructor(scope2,id2,arn2){super(scope2,id2,{environmentFromArn:arn2});const variables=new(cfn_parse()).TemplateString("arn:${Partition}:iot:${Region}:${Account}:rolealias/${RoleAlias}").parse(arn2);this.roleAliasRef={roleAlias:variables.RoleAlias,roleAliasArn:arn2}}}return new Import(scope,id,arn)}static fromRoleAlias(scope,id,roleAlias){class Import extends cdk().Resource{roleAliasRef;constructor(scope2,id2,roleAlias2){const arn=new(cfn_parse()).TemplateString("arn:${Partition}:iot:${Region}:${Account}:rolealias/${RoleAlias}").interpolate({Partition:cdk().Stack.of(scope2).partition,Region:cdk().Stack.of(scope2).region,Account:cdk().Stack.of(scope2).account,RoleAlias:roleAlias2});super(scope2,id2,{environmentFromArn:arn}),this.roleAliasRef={roleAlias:roleAlias2,roleAliasArn:arn}}}return new Import(scope,id,roleAlias)}static arnForRoleAlias(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_iot_IRoleAliasRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForRoleAlias),error}return resource.roleAliasRef.roleAliasArn}_credentialDurationSeconds;_roleAlias;_roleArn;tags;_tagsRaw;cfnPropertyNames={credentialDurationSeconds:"CredentialDurationSeconds",roleAlias:"RoleAlias",roleArn:"RoleArn",tags:"Tags"};constructor(scope,id,props){super(scope,id,{type:CfnRoleAlias.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_iot_CfnRoleAliasProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnRoleAlias),error}cdk().requireProperty(props,"roleArn",this),this._credentialDurationSeconds=props.credentialDurationSeconds,this._roleAlias=props.roleAlias,this._roleArn=cdk().getRefProperty(props.roleArn?.roleRef,"roleArn")??cdk().ensureStringOrUndefined(props.roleArn,"roleArn","iam.IRoleRef | string"),this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::IoT::RoleAlias",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags}get roleAliasRef(){return{roleAlias:this.ref,roleAliasArn:this.attrRoleAliasArn}}get credentialDurationSeconds(){return this._credentialDurationSeconds}set credentialDurationSeconds(value){cdk().traceProperty(this.node,"CredentialDurationSeconds"),this._credentialDurationSeconds=value}get roleAlias(){return this._roleAlias}set roleAlias(value){cdk().traceProperty(this.node,"RoleAlias"),this._roleAlias=value}get roleArn(){return this._roleArn}set roleArn(value){cdk().traceProperty(this.node,"RoleArn"),this._roleArn=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get attrRoleAliasArn(){return cdk().Token.asString(this.getAtt("RoleAliasArn",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{credentialDurationSeconds:this._credentialDurationSeconds,roleAlias:this._roleAlias,roleArn:this._roleArn,tags:this.tags.renderTags()}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnRoleAlias.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnRoleAliasPropsToCloudFormation(props)}}exports.CfnRoleAlias=CfnRoleAlias;function CfnRoleAliasPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("credentialDurationSeconds",cdk().validateNumber)(properties.credentialDurationSeconds)),errors.collect(cdk().propertyValidator("roleAlias",cdk().validateString)(properties.roleAlias)),errors.collect(cdk().propertyValidator("roleArn",cdk().requiredValidator)(properties.roleArn)),errors.collect(cdk().propertyValidator("roleArn",cdk().validateString)(properties.roleArn)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnRoleAliasProps"')}function convertCfnRoleAliasPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRoleAliasPropsValidator(properties).assertSuccess(),{CredentialDurationSeconds:cdk().numberToCloudFormation(properties.credentialDurationSeconds),RoleAlias:cdk().stringToCloudFormation(properties.roleAlias),RoleArn:cdk().stringToCloudFormation(properties.roleArn),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnRoleAliasPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("credentialDurationSeconds","CredentialDurationSeconds",properties.CredentialDurationSeconds!=null?cfn_parse().FromCloudFormation.getNumber(properties.CredentialDurationSeconds):void 0),ret.addPropertyResult("roleAlias","RoleAlias",properties.RoleAlias!=null?cfn_parse().FromCloudFormation.getString(properties.RoleAlias):void 0),ret.addPropertyResult("roleArn","RoleArn",properties.RoleArn!=null?cfn_parse().FromCloudFormation.getString(properties.RoleArn):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnScheduledAudit extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_iot.CfnScheduledAudit",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::IoT::ScheduledAudit";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnScheduledAuditPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnScheduledAudit(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnScheduledAudit(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnScheduledAudit.CFN_RESOURCE_TYPE_NAME}static fromScheduledAuditArn(scope,id,arn){class Import extends cdk().Resource{scheduledAuditRef;constructor(scope2,id2,arn2){super(scope2,id2,{environmentFromArn:arn2});const variables=new(cfn_parse()).TemplateString("arn:${Partition}:iot:${Region}:${Account}:scheduledaudit/${ScheduledAuditName}").parse(arn2);this.scheduledAuditRef={scheduledAuditName:variables.ScheduledAuditName,scheduledAuditArn:arn2}}}return new Import(scope,id,arn)}static fromScheduledAuditName(scope,id,scheduledAuditName){class Import extends cdk().Resource{scheduledAuditRef;constructor(scope2,id2,scheduledAuditName2){const arn=new(cfn_parse()).TemplateString("arn:${Partition}:iot:${Region}:${Account}:scheduledaudit/${ScheduledAuditName}").interpolate({Partition:cdk().Stack.of(scope2).partition,Region:cdk().Stack.of(scope2).region,Account:cdk().Stack.of(scope2).account,ScheduledAuditName:scheduledAuditName2});super(scope2,id2,{environmentFromArn:arn}),this.scheduledAuditRef={scheduledAuditName:scheduledAuditName2,scheduledAuditArn:arn}}}return new Import(scope,id,scheduledAuditName)}static arnForScheduledAudit(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_iot_IScheduledAuditRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForScheduledAudit),error}return resource.scheduledAuditRef.scheduledAuditArn}_dayOfMonth;_dayOfWeek;_frequency;_scheduledAuditName;tags;_tagsRaw;_targetCheckNames;cfnPropertyNames={dayOfMonth:"DayOfMonth",dayOfWeek:"DayOfWeek",frequency:"Frequency",scheduledAuditName:"ScheduledAuditName",tags:"Tags",targetCheckNames:"TargetCheckNames"};constructor(scope,id,props){super(scope,id,{type:CfnScheduledAudit.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_iot_CfnScheduledAuditProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnScheduledAudit),error}cdk().requireProperty(props,"frequency",this),cdk().requireProperty(props,"targetCheckNames",this),this._dayOfMonth=props.dayOfMonth,this._dayOfWeek=props.dayOfWeek,this._frequency=props.frequency,this._scheduledAuditName=props.scheduledAuditName,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::IoT::ScheduledAudit",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._targetCheckNames=props.targetCheckNames}get scheduledAuditRef(){return{scheduledAuditName:this.ref,scheduledAuditArn:this.attrScheduledAuditArn}}get dayOfMonth(){return this._dayOfMonth}set dayOfMonth(value){cdk().traceProperty(this.node,"DayOfMonth"),this._dayOfMonth=value}get dayOfWeek(){return this._dayOfWeek}set dayOfWeek(value){cdk().traceProperty(this.node,"DayOfWeek"),this._dayOfWeek=value}get frequency(){return this._frequency}set frequency(value){cdk().traceProperty(this.node,"Frequency"),this._frequency=value}get scheduledAuditName(){return this._scheduledAuditName}set scheduledAuditName(value){cdk().traceProperty(this.node,"ScheduledAuditName"),this._scheduledAuditName=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get targetCheckNames(){return this._targetCheckNames}set targetCheckNames(value){cdk().traceProperty(this.node,"TargetCheckNames"),this._targetCheckNames=value}get attrScheduledAuditArn(){return cdk().Token.asString(this.getAtt("ScheduledAuditArn",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{dayOfMonth:this._dayOfMonth,dayOfWeek:this._dayOfWeek,frequency:this._frequency,scheduledAuditName:this._scheduledAuditName,tags:this.tags.renderTags(),targetCheckNames:this._targetCheckNames}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnScheduledAudit.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnScheduledAuditPropsToCloudFormation(props)}}exports.CfnScheduledAudit=CfnScheduledAudit;function CfnScheduledAuditPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("dayOfMonth",cdk().validateString)(properties.dayOfMonth)),errors.collect(cdk().propertyValidator("dayOfWeek",cdk().validateString)(properties.dayOfWeek)),errors.collect(cdk().propertyValidator("frequency",cdk().requiredValidator)(properties.frequency)),errors.collect(cdk().propertyValidator("frequency",cdk().validateString)(properties.frequency)),errors.collect(cdk().propertyValidator("scheduledAuditName",cdk().validateString)(properties.scheduledAuditName)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("targetCheckNames",cdk().requiredValidator)(properties.targetCheckNames)),errors.collect(cdk().propertyValidator("targetCheckNames",cdk().listValidator(cdk().validateString))(properties.targetCheckNames)),errors.wrap('supplied properties not correct for "CfnScheduledAuditProps"')}function convertCfnScheduledAuditPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnScheduledAuditPropsValidator(properties).assertSuccess(),{DayOfMonth:cdk().stringToCloudFormation(properties.dayOfMonth),DayOfWeek:cdk().stringToCloudFormation(properties.dayOfWeek),Frequency:cdk().stringToCloudFormation(properties.frequency),ScheduledAuditName:cdk().stringToCloudFormation(properties.scheduledAuditName),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),TargetCheckNames:cdk().listMapper(cdk().stringToCloudFormation)(properties.targetCheckNames)}):properties}function CfnScheduledAuditPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("dayOfMonth","DayOfMonth",properties.DayOfMonth!=null?cfn_parse().FromCloudFormation.getString(properties.DayOfMonth):void 0),ret.addPropertyResult("dayOfWeek","DayOfWeek",properties.DayOfWeek!=null?cfn_parse().FromCloudFormation.getString(properties.DayOfWeek):void 0),ret.addPropertyResult("frequency","Frequency",properties.Frequency!=null?cfn_parse().FromCloudFormation.getString(properties.Frequency):void 0),ret.addPropertyResult("scheduledAuditName","ScheduledAuditName",properties.ScheduledAuditName!=null?cfn_parse().FromCloudFormation.getString(properties.ScheduledAuditName):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("targetCheckNames","TargetCheckNames",properties.TargetCheckNames!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.TargetCheckNames):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnSecurityProfile extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_iot.CfnSecurityProfile",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::IoT::SecurityProfile";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnSecurityProfilePropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnSecurityProfile(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnSecurityProfile(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnSecurityProfile.CFN_RESOURCE_TYPE_NAME}static fromSecurityProfileArn(scope,id,arn){class Import extends cdk().Resource{securityProfileRef;constructor(scope2,id2,arn2){super(scope2,id2,{environmentFromArn:arn2});const variables=new(cfn_parse()).TemplateString("arn:${Partition}:iot:${Region}:${Account}:securityprofile/${SecurityProfileName}").parse(arn2);this.securityProfileRef={securityProfileName:variables.SecurityProfileName,securityProfileArn:arn2}}}return new Import(scope,id,arn)}static fromSecurityProfileName(scope,id,securityProfileName){class Import extends cdk().Resource{securityProfileRef;constructor(scope2,id2,securityProfileName2){const arn=new(cfn_parse()).TemplateString("arn:${Partition}:iot:${Region}:${Account}:securityprofile/${SecurityProfileName}").interpolate({Partition:cdk().Stack.of(scope2).partition,Region:cdk().Stack.of(scope2).region,Account:cdk().Stack.of(scope2).account,SecurityProfileName:securityProfileName2});super(scope2,id2,{environmentFromArn:arn}),this.securityProfileRef={securityProfileName:securityProfileName2,securityProfileArn:arn}}}return new Import(scope,id,securityProfileName)}static arnForSecurityProfile(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_iot_ISecurityProfileRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForSecurityProfile),error}return resource.securityProfileRef.securityProfileArn}_additionalMetricsToRetainV2;_alertTargets;_behaviors;_metricsExportConfig;_securityProfileDescription;_securityProfileName;tags;_tagsRaw;_targetArns;cfnPropertyNames={additionalMetricsToRetainV2:"AdditionalMetricsToRetainV2",alertTargets:"AlertTargets",behaviors:"Behaviors",metricsExportConfig:"MetricsExportConfig",securityProfileDescription:"SecurityProfileDescription",securityProfileName:"SecurityProfileName",tags:"Tags",targetArns:"TargetArns"};constructor(scope,id,props={}){super(scope,id,{type:CfnSecurityProfile.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_iot_CfnSecurityProfileProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnSecurityProfile),error}this._additionalMetricsToRetainV2=props.additionalMetricsToRetainV2,this._alertTargets=props.alertTargets,this._behaviors=props.behaviors,this._metricsExportConfig=props.metricsExportConfig,this._securityProfileDescription=props.securityProfileDescription,this._securityProfileName=props.securityProfileName,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::IoT::SecurityProfile",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._targetArns=props.targetArns}get securityProfileRef(){return{securityProfileName:this.ref,securityProfileArn:this.attrSecurityProfileArn}}get additionalMetricsToRetainV2(){return this._additionalMetricsToRetainV2}set additionalMetricsToRetainV2(value){cdk().traceProperty(this.node,"AdditionalMetricsToRetainV2"),this._additionalMetricsToRetainV2=value}get alertTargets(){return this._alertTargets}set alertTargets(value){cdk().traceProperty(this.node,"AlertTargets"),this._alertTargets=value}get behaviors(){return this._behaviors}set behaviors(value){cdk().traceProperty(this.node,"Behaviors"),this._behaviors=value}get metricsExportConfig(){return this._metricsExportConfig}set metricsExportConfig(value){cdk().traceProperty(this.node,"MetricsExportConfig"),this._metricsExportConfig=value}get securityProfileDescription(){return this._securityProfileDescription}set securityProfileDescription(value){cdk().traceProperty(this.node,"SecurityProfileDescription"),this._securityProfileDescription=value}get securityProfileName(){return this._securityProfileName}set securityProfileName(value){cdk().traceProperty(this.node,"SecurityProfileName"),this._securityProfileName=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get targetArns(){return this._targetArns}set targetArns(value){cdk().traceProperty(this.node,"TargetArns"),this._targetArns=value}get attrSecurityProfileArn(){return cdk().Token.asString(this.getAtt("SecurityProfileArn",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{additionalMetricsToRetainV2:this._additionalMetricsToRetainV2,alertTargets:this._alertTargets,behaviors:this._behaviors,metricsExportConfig:this._metricsExportConfig,securityProfileDescription:this._securityProfileDescription,securityProfileName:this._securityProfileName,tags:this.tags.renderTags(),targetArns:this._targetArns}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnSecurityProfile.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnSecurityProfilePropsToCloudFormation(props)}}exports.CfnSecurityProfile=CfnSecurityProfile;function CfnSecurityProfileMetricDimensionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("dimensionName",cdk().requiredValidator)(properties.dimensionName)),errors.collect(cdk().propertyValidator("dimensionName",cdk().validateString)(properties.dimensionName)),errors.collect(cdk().propertyValidator("operator",cdk().validateString)(properties.operator)),errors.wrap('supplied properties not correct for "MetricDimensionProperty"')}function convertCfnSecurityProfileMetricDimensionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSecurityProfileMetricDimensionPropertyValidator(properties).assertSuccess(),{DimensionName:cdk().stringToCloudFormation(properties.dimensionName),Operator:cdk().stringToCloudFormation(properties.operator)}):properties}function CfnSecurityProfileMetricDimensionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("dimensionName","DimensionName",properties.DimensionName!=null?cfn_parse().FromCloudFormation.getString(properties.DimensionName):void 0),ret.addPropertyResult("operator","Operator",properties.Operator!=null?cfn_parse().FromCloudFormation.getString(properties.Operator):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSecurityProfileMetricToRetainPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("exportMetric",cdk().validateBoolean)(properties.exportMetric)),errors.collect(cdk().propertyValidator("metric",cdk().requiredValidator)(properties.metric)),errors.collect(cdk().propertyValidator("metric",cdk().validateString)(properties.metric)),errors.collect(cdk().propertyValidator("metricDimension",CfnSecurityProfileMetricDimensionPropertyValidator)(properties.metricDimension)),errors.wrap('supplied properties not correct for "MetricToRetainProperty"')}function convertCfnSecurityProfileMetricToRetainPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSecurityProfileMetricToRetainPropertyValidator(properties).assertSuccess(),{ExportMetric:cdk().booleanToCloudFormation(properties.exportMetric),Metric:cdk().stringToCloudFormation(properties.metric),MetricDimension:convertCfnSecurityProfileMetricDimensionPropertyToCloudFormation(properties.metricDimension)}):properties}function CfnSecurityProfileMetricToRetainPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("exportMetric","ExportMetric",properties.ExportMetric!=null?cfn_parse().FromCloudFormation.getBoolean(properties.ExportMetric):void 0),ret.addPropertyResult("metric","Metric",properties.Metric!=null?cfn_parse().FromCloudFormation.getString(properties.Metric):void 0),ret.addPropertyResult("metricDimension","MetricDimension",properties.MetricDimension!=null?CfnSecurityProfileMetricDimensionPropertyFromCloudFormation(properties.MetricDimension):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSecurityProfileMachineLearningDetectionConfigPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("confidenceLevel",cdk().validateString)(properties.confidenceLevel)),errors.wrap('supplied properties not correct for "MachineLearningDetectionConfigProperty"')}function convertCfnSecurityProfileMachineLearningDetectionConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSecurityProfileMachineLearningDetectionConfigPropertyValidator(properties).assertSuccess(),{ConfidenceLevel:cdk().stringToCloudFormation(properties.confidenceLevel)}):properties}function CfnSecurityProfileMachineLearningDetectionConfigPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("confidenceLevel","ConfidenceLevel",properties.ConfidenceLevel!=null?cfn_parse().FromCloudFormation.getString(properties.ConfidenceLevel):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSecurityProfileMetricValuePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("cidrs",cdk().listValidator(cdk().validateString))(properties.cidrs)),errors.collect(cdk().propertyValidator("count",cdk().validateString)(properties.count)),errors.collect(cdk().propertyValidator("number",cdk().validateNumber)(properties.number)),errors.collect(cdk().propertyValidator("numbers",cdk().listValidator(cdk().validateNumber))(properties.numbers)),errors.collect(cdk().propertyValidator("ports",cdk().listValidator(cdk().validateNumber))(properties.ports)),errors.collect(cdk().propertyValidator("strings",cdk().listValidator(cdk().validateString))(properties.strings)),errors.wrap('supplied properties not correct for "MetricValueProperty"')}function convertCfnSecurityProfileMetricValuePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSecurityProfileMetricValuePropertyValidator(properties).assertSuccess(),{Cidrs:cdk().listMapper(cdk().stringToCloudFormation)(properties.cidrs),Count:cdk().stringToCloudFormation(properties.count),Number:cdk().numberToCloudFormation(properties.number),Numbers:cdk().listMapper(cdk().numberToCloudFormation)(properties.numbers),Ports:cdk().listMapper(cdk().numberToCloudFormation)(properties.ports),Strings:cdk().listMapper(cdk().stringToCloudFormation)(properties.strings)}):properties}function CfnSecurityProfileMetricValuePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("cidrs","Cidrs",properties.Cidrs!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Cidrs):void 0),ret.addPropertyResult("count","Count",properties.Count!=null?cfn_parse().FromCloudFormation.getString(properties.Count):void 0),ret.addPropertyResult("number","Number",properties.Number!=null?cfn_parse().FromCloudFormation.getNumber(properties.Number):void 0),ret.addPropertyResult("numbers","Numbers",properties.Numbers!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getNumber)(properties.Numbers):void 0),ret.addPropertyResult("ports","Ports",properties.Ports!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getNumber)(properties.Ports):void 0),ret.addPropertyResult("strings","Strings",properties.Strings!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Strings):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSecurityProfileStatisticalThresholdPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("statistic",cdk().validateString)(properties.statistic)),errors.wrap('supplied properties not correct for "StatisticalThresholdProperty"')}function convertCfnSecurityProfileStatisticalThresholdPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSecurityProfileStatisticalThresholdPropertyValidator(properties).assertSuccess(),{Statistic:cdk().stringToCloudFormation(properties.statistic)}):properties}function CfnSecurityProfileStatisticalThresholdPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("statistic","Statistic",properties.Statistic!=null?cfn_parse().FromCloudFormation.getString(properties.Statistic):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSecurityProfileBehaviorCriteriaPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("comparisonOperator",cdk().validateString)(properties.comparisonOperator)),errors.collect(cdk().propertyValidator("consecutiveDatapointsToAlarm",cdk().validateNumber)(properties.consecutiveDatapointsToAlarm)),errors.collect(cdk().propertyValidator("consecutiveDatapointsToClear",cdk().validateNumber)(properties.consecutiveDatapointsToClear)),errors.collect(cdk().propertyValidator("durationSeconds",cdk().validateNumber)(properties.durationSeconds)),errors.collect(cdk().propertyValidator("mlDetectionConfig",CfnSecurityProfileMachineLearningDetectionConfigPropertyValidator)(properties.mlDetectionConfig)),errors.collect(cdk().propertyValidator("statisticalThreshold",CfnSecurityProfileStatisticalThresholdPropertyValidator)(properties.statisticalThreshold)),errors.collect(cdk().propertyValidator("value",CfnSecurityProfileMetricValuePropertyValidator)(properties.value)),errors.wrap('supplied properties not correct for "BehaviorCriteriaProperty"')}function convertCfnSecurityProfileBehaviorCriteriaPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSecurityProfileBehaviorCriteriaPropertyValidator(properties).assertSuccess(),{ComparisonOperator:cdk().stringToCloudFormation(properties.comparisonOperator),ConsecutiveDatapointsToAlarm:cdk().numberToCloudFormation(properties.consecutiveDatapointsToAlarm),ConsecutiveDatapointsToClear:cdk().numberToCloudFormation(properties.consecutiveDatapointsToClear),DurationSeconds:cdk().numberToCloudFormation(properties.durationSeconds),MlDetectionConfig:convertCfnSecurityProfileMachineLearningDetectionConfigPropertyToCloudFormation(properties.mlDetectionConfig),StatisticalThreshold:convertCfnSecurityProfileStatisticalThresholdPropertyToCloudFormation(properties.statisticalThreshold),Value:convertCfnSecurityProfileMetricValuePropertyToCloudFormation(properties.value)}):properties}function CfnSecurityProfileBehaviorCriteriaPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("comparisonOperator","ComparisonOperator",properties.ComparisonOperator!=null?cfn_parse().FromCloudFormation.getString(properties.ComparisonOperator):void 0),ret.addPropertyResult("consecutiveDatapointsToAlarm","ConsecutiveDatapointsToAlarm",properties.ConsecutiveDatapointsToAlarm!=null?cfn_parse().FromCloudFormation.getNumber(properties.ConsecutiveDatapointsToAlarm):void 0),ret.addPropertyResult("consecutiveDatapointsToClear","ConsecutiveDatapointsToClear",properties.ConsecutiveDatapointsToClear!=null?cfn_parse().FromCloudFormation.getNumber(properties.ConsecutiveDatapointsToClear):void 0),ret.addPropertyResult("durationSeconds","DurationSeconds",properties.DurationSeconds!=null?cfn_parse().FromCloudFormation.getNumber(properties.DurationSeconds):void 0),ret.addPropertyResult("mlDetectionConfig","MlDetectionConfig",properties.MlDetectionConfig!=null?CfnSecurityProfileMachineLearningDetectionConfigPropertyFromCloudFormation(properties.MlDetectionConfig):void 0),ret.addPropertyResult("statisticalThreshold","StatisticalThreshold",properties.StatisticalThreshold!=null?CfnSecurityProfileStatisticalThresholdPropertyFromCloudFormation(properties.StatisticalThreshold):void 0),ret.addPropertyResult("value","Value",properties.Value!=null?CfnSecurityProfileMetricValuePropertyFromCloudFormation(properties.Value):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSecurityProfileBehaviorPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("criteria",CfnSecurityProfileBehaviorCriteriaPropertyValidator)(properties.criteria)),errors.collect(cdk().propertyValidator("exportMetric",cdk().validateBoolean)(properties.exportMetric)),errors.collect(cdk().propertyValidator("metric",cdk().validateString)(properties.metric)),errors.collect(cdk().propertyValidator("metricDimension",CfnSecurityProfileMetricDimensionPropertyValidator)(properties.metricDimension)),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("suppressAlerts",cdk().validateBoolean)(properties.suppressAlerts)),errors.wrap('supplied properties not correct for "BehaviorProperty"')}function convertCfnSecurityProfileBehaviorPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSecurityProfileBehaviorPropertyValidator(properties).assertSuccess(),{Criteria:convertCfnSecurityProfileBehaviorCriteriaPropertyToCloudFormation(properties.criteria),ExportMetric:cdk().booleanToCloudFormation(properties.exportMetric),Metric:cdk().stringToCloudFormation(properties.metric),MetricDimension:convertCfnSecurityProfileMetricDimensionPropertyToCloudFormation(properties.metricDimension),Name:cdk().stringToCloudFormation(properties.name),SuppressAlerts:cdk().booleanToCloudFormation(properties.suppressAlerts)}):properties}function CfnSecurityProfileBehaviorPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("criteria","Criteria",properties.Criteria!=null?CfnSecurityProfileBehaviorCriteriaPropertyFromCloudFormation(properties.Criteria):void 0),ret.addPropertyResult("exportMetric","ExportMetric",properties.ExportMetric!=null?cfn_parse().FromCloudFormation.getBoolean(properties.ExportMetric):void 0),ret.addPropertyResult("metric","Metric",properties.Metric!=null?cfn_parse().FromCloudFormation.getString(properties.Metric):void 0),ret.addPropertyResult("metricDimension","MetricDimension",properties.MetricDimension!=null?CfnSecurityProfileMetricDimensionPropertyFromCloudFormation(properties.MetricDimension):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("suppressAlerts","SuppressAlerts",properties.SuppressAlerts!=null?cfn_parse().FromCloudFormation.getBoolean(properties.SuppressAlerts):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSecurityProfileAlertTargetPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("alertTargetArn",cdk().requiredValidator)(properties.alertTargetArn)),errors.collect(cdk().propertyValidator("alertTargetArn",cdk().validateString)(properties.alertTargetArn)),errors.collect(cdk().propertyValidator("roleArn",cdk().requiredValidator)(properties.roleArn)),errors.collect(cdk().propertyValidator("roleArn",cdk().validateString)(properties.roleArn)),errors.wrap('supplied properties not correct for "AlertTargetProperty"')}function convertCfnSecurityProfileAlertTargetPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSecurityProfileAlertTargetPropertyValidator(properties).assertSuccess(),{AlertTargetArn:cdk().stringToCloudFormation(properties.alertTargetArn),RoleArn:cdk().stringToCloudFormation(properties.roleArn)}):properties}function CfnSecurityProfileAlertTargetPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("alertTargetArn","AlertTargetArn",properties.AlertTargetArn!=null?cfn_parse().FromCloudFormation.getString(properties.AlertTargetArn):void 0),ret.addPropertyResult("roleArn","RoleArn",properties.RoleArn!=null?cfn_parse().FromCloudFormation.getString(properties.RoleArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSecurityProfileMetricsExportConfigPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("mqttTopic",cdk().requiredValidator)(properties.mqttTopic)),errors.collect(cdk().propertyValidator("mqttTopic",cdk().validateString)(properties.mqttTopic)),errors.collect(cdk().propertyValidator("roleArn",cdk().requiredValidator)(properties.roleArn)),errors.collect(cdk().propertyValidator("roleArn",cdk().validateString)(properties.roleArn)),errors.wrap('supplied properties not correct for "MetricsExportConfigProperty"')}function convertCfnSecurityProfileMetricsExportConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSecurityProfileMetricsExportConfigPropertyValidator(properties).assertSuccess(),{MqttTopic:cdk().stringToCloudFormation(properties.mqttTopic),RoleArn:cdk().stringToCloudFormation(properties.roleArn)}):properties}function CfnSecurityProfileMetricsExportConfigPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("mqttTopic","MqttTopic",properties.MqttTopic!=null?cfn_parse().FromCloudFormation.getString(properties.MqttTopic):void 0),ret.addPropertyResult("roleArn","RoleArn",properties.RoleArn!=null?cfn_parse().FromCloudFormation.getString(properties.RoleArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSecurityProfilePropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("additionalMetricsToRetainV2",cdk().listValidator(CfnSecurityProfileMetricToRetainPropertyValidator))(properties.additionalMetricsToRetainV2)),errors.collect(cdk().propertyValidator("alertTargets",cdk().hashValidator(CfnSecurityProfileAlertTargetPropertyValidator))(properties.alertTargets)),errors.collect(cdk().propertyValidator("behaviors",cdk().listValidator(CfnSecurityProfileBehaviorPropertyValidator))(properties.behaviors)),errors.collect(cdk().propertyValidator("metricsExportConfig",CfnSecurityProfileMetricsExportConfigPropertyValidator)(properties.metricsExportConfig)),errors.collect(cdk().propertyValidator("securityProfileDescription",cdk().validateString)(properties.securityProfileDescription)),errors.collect(cdk().propertyValidator("securityProfileName",cdk().validateString)(properties.securityProfileName)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("targetArns",cdk().listValidator(cdk().validateString))(properties.targetArns)),errors.wrap('supplied properties not correct for "CfnSecurityProfileProps"')}function convertCfnSecurityProfilePropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSecurityProfilePropsValidator(properties).assertSuccess(),{AdditionalMetricsToRetainV2:cdk().listMapper(convertCfnSecurityProfileMetricToRetainPropertyToCloudFormation)(properties.additionalMetricsToRetainV2),AlertTargets:cdk().hashMapper(convertCfnSecurityProfileAlertTargetPropertyToCloudFormation)(properties.alertTargets),Behaviors:cdk().listMapper(convertCfnSecurityProfileBehaviorPropertyToCloudFormation)(properties.behaviors),MetricsExportConfig:convertCfnSecurityProfileMetricsExportConfigPropertyToCloudFormation(properties.metricsExportConfig),SecurityProfileDescription:cdk().stringToCloudFormation(properties.securityProfileDescription),SecurityProfileName:cdk().stringToCloudFormation(properties.securityProfileName),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),TargetArns:cdk().listMapper(cdk().stringToCloudFormation)(properties.targetArns)}):properties}function CfnSecurityProfilePropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("additionalMetricsToRetainV2","AdditionalMetricsToRetainV2",properties.AdditionalMetricsToRetainV2!=null?cfn_parse().FromCloudFormation.getArray(CfnSecurityProfileMetricToRetainPropertyFromCloudFormation)(properties.AdditionalMetricsToRetainV2):void 0),ret.addPropertyResult("alertTargets","AlertTargets",properties.AlertTargets!=null?cfn_parse().FromCloudFormation.getMap(CfnSecurityProfileAlertTargetPropertyFromCloudFormation)(properties.AlertTargets):void 0),ret.addPropertyResult("behaviors","Behaviors",properties.Behaviors!=null?cfn_parse().FromCloudFormation.getArray(CfnSecurityProfileBehaviorPropertyFromCloudFormation)(properties.Behaviors):void 0),ret.addPropertyResult("metricsExportConfig","MetricsExportConfig",properties.MetricsExportConfig!=null?CfnSecurityProfileMetricsExportConfigPropertyFromCloudFormation(properties.MetricsExportConfig):void 0),ret.addPropertyResult("securityProfileDescription","SecurityProfileDescription",properties.SecurityProfileDescription!=null?cfn_parse().FromCloudFormation.getString(properties.SecurityProfileDescription):void 0),ret.addPropertyResult("securityProfileName","SecurityProfileName",properties.SecurityProfileName!=null?cfn_parse().FromCloudFormation.getString(properties.SecurityProfileName):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("targetArns","TargetArns",properties.TargetArns!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.TargetArns):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnSoftwarePackage extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_iot.CfnSoftwarePackage",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::IoT::SoftwarePackage";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnSoftwarePackagePropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnSoftwarePackage(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnSoftwarePackage(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnSoftwarePackage.CFN_RESOURCE_TYPE_NAME}static fromPackageName(scope,id,packageName){class Import extends cdk().Resource{softwarePackageRef;constructor(scope2,id2,packageName2){super(scope2,id2),this.softwarePackageRef={packageName:packageName2}}}return new Import(scope,id,packageName)}static arnForSoftwarePackage(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_iot_ISoftwarePackageRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForSoftwarePackage),error}return new(cfn_parse()).TemplateString("arn:${Partition}:iot:${Region}:${Account}:package/${PackageName}").interpolate({Partition:cdk().Stack.of(resource).partition,Region:resource.env.region,Account:resource.env.account,PackageName:resource.softwarePackageRef.packageName})}cdkTagManager;_description;_packageName;_tags;cfnPropertyNames={tags:"Tags",description:"Description",packageName:"PackageName"};constructor(scope,id,props={}){super(scope,id,{type:CfnSoftwarePackage.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_iot_CfnSoftwarePackageProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnSoftwarePackage),error}this.cdkTagManager=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::IoT::SoftwarePackage",void 0,{tagPropertyName:"tags"}),this._description=props.description,this._packageName=props.packageName,this._tags=props.tags}get softwarePackageRef(){return{packageName:this.ref}}get description(){return this._description}set description(value){cdk().traceProperty(this.node,"Description"),this._description=value}get packageName(){return this._packageName}set packageName(value){cdk().traceProperty(this.node,"PackageName"),this._packageName=value}get tags(){return this._tags}set tags(value){cdk().traceProperty(this.node,"Tags"),this._tags=value}get attrPackageArn(){return cdk().Token.asString(this.getAtt("PackageArn",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{tags:this.cdkTagManager.renderTags(this._tags),description:this._description,packageName:this._packageName}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnSoftwarePackage.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnSoftwarePackagePropsToCloudFormation(props)}}exports.CfnSoftwarePackage=CfnSoftwarePackage;function CfnSoftwarePackagePropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("packageName",cdk().validateString)(properties.packageName)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnSoftwarePackageProps"')}function convertCfnSoftwarePackagePropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSoftwarePackagePropsValidator(properties).assertSuccess(),{Description:cdk().stringToCloudFormation(properties.description),PackageName:cdk().stringToCloudFormation(properties.packageName),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnSoftwarePackagePropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("packageName","PackageName",properties.PackageName!=null?cfn_parse().FromCloudFormation.getString(properties.PackageName):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnSoftwarePackageVersion extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_iot.CfnSoftwarePackageVersion",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::IoT::SoftwarePackageVersion";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnSoftwarePackageVersionPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnSoftwarePackageVersion(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnSoftwarePackageVersion(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnSoftwarePackageVersion.CFN_RESOURCE_TYPE_NAME}_artifact;_attributes;cdkTagManager;_description;_packageName;_recipe;_sbom;_tags;_versionName;cfnPropertyNames={artifact:"Artifact",attributes:"Attributes",tags:"Tags",description:"Description",packageName:"PackageName",recipe:"Recipe",sbom:"Sbom",versionName:"VersionName"};constructor(scope,id,props){super(scope,id,{type:CfnSoftwarePackageVersion.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_iot_CfnSoftwarePackageVersionProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnSoftwarePackageVersion),error}cdk().requireProperty(props,"packageName",this),this._artifact=props.artifact,this._attributes=props.attributes,this.cdkTagManager=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::IoT::SoftwarePackageVersion",void 0,{tagPropertyName:"tags"}),this._description=props.description,this._packageName=props.packageName,this._recipe=props.recipe,this._sbom=props.sbom,this._tags=props.tags,this._versionName=props.versionName}get softwarePackageVersionRef(){return{packageName:cdk().Fn.select(0,cdk().Fn.split("|",this.ref)),versionName:cdk().Fn.select(1,cdk().Fn.split("|",this.ref))}}get artifact(){return this._artifact}set artifact(value){cdk().traceProperty(this.node,"Artifact"),this._artifact=value}get attributes(){return this._attributes}set attributes(value){cdk().traceProperty(this.node,"Attributes"),this._attributes=value}get description(){return this._description}set description(value){cdk().traceProperty(this.node,"Description"),this._description=value}get packageName(){return this._packageName}set packageName(value){cdk().traceProperty(this.node,"PackageName"),this._packageName=value}get recipe(){return this._recipe}set recipe(value){cdk().traceProperty(this.node,"Recipe"),this._recipe=value}get sbom(){return this._sbom}set sbom(value){cdk().traceProperty(this.node,"Sbom"),this._sbom=value}get tags(){return this._tags}set tags(value){cdk().traceProperty(this.node,"Tags"),this._tags=value}get versionName(){return this._versionName}set versionName(value){cdk().traceProperty(this.node,"VersionName"),this._versionName=value}get attrErrorReason(){return cdk().Token.asString(this.getAtt("ErrorReason",cdk().ResolutionTypeHint.STRING))}get attrPackageVersionArn(){return cdk().Token.asString(this.getAtt("PackageVersionArn",cdk().ResolutionTypeHint.STRING))}get attrSbomValidationStatus(){return cdk().Token.asString(this.getAtt("SbomValidationStatus",cdk().ResolutionTypeHint.STRING))}get attrStatus(){return cdk().Token.asString(this.getAtt("Status",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{artifact:this._artifact,attributes:this._attributes,tags:this.cdkTagManager.renderTags(this._tags),description:this._description,packageName:this._packageName,recipe:this._recipe,sbom:this._sbom,versionName:this._versionName}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnSoftwarePackageVersion.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnSoftwarePackageVersionPropsToCloudFormation(props)}}exports.CfnSoftwarePackageVersion=CfnSoftwarePackageVersion;function CfnSoftwarePackageVersionS3LocationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("bucket",cdk().requiredValidator)(properties.bucket)),errors.collect(cdk().propertyValidator("bucket",cdk().validateString)(properties.bucket)),errors.collect(cdk().propertyValidator("key",cdk().requiredValidator)(properties.key)),errors.collect(cdk().propertyValidator("key",cdk().validateString)(properties.key)),errors.collect(cdk().propertyValidator("version",cdk().requiredValidator)(properties.version)),errors.collect(cdk().propertyValidator("version",cdk().validateString)(properties.version)),errors.wrap('supplied properties not correct for "S3LocationProperty"')}function convertCfnSoftwarePackageVersionS3LocationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSoftwarePackageVersionS3LocationPropertyValidator(properties).assertSuccess(),{Bucket:cdk().stringToCloudFormation(properties.bucket),Key:cdk().stringToCloudFormation(properties.key),Version:cdk().stringToCloudFormation(properties.version)}):properties}function CfnSoftwarePackageVersionS3LocationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("bucket","Bucket",properties.Bucket!=null?cfn_parse().FromCloudFormation.getString(properties.Bucket):void 0),ret.addPropertyResult("key","Key",properties.Key!=null?cfn_parse().FromCloudFormation.getString(properties.Key):void 0),ret.addPropertyResult("version","Version",properties.Version!=null?cfn_parse().FromCloudFormation.getString(properties.Version):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSoftwarePackageVersionPackageVersionArtifactPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("s3Location",cdk().requiredValidator)(properties.s3Location)),errors.collect(cdk().propertyValidator("s3Location",CfnSoftwarePackageVersionS3LocationPropertyValidator)(properties.s3Location)),errors.wrap('supplied properties not correct for "PackageVersionArtifactProperty"')}function convertCfnSoftwarePackageVersionPackageVersionArtifactPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSoftwarePackageVersionPackageVersionArtifactPropertyValidator(properties).assertSuccess(),{S3Location:convertCfnSoftwarePackageVersionS3LocationPropertyToCloudFormation(properties.s3Location)}):properties}function CfnSoftwarePackageVersionPackageVersionArtifactPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("s3Location","S3Location",properties.S3Location!=null?CfnSoftwarePackageVersionS3LocationPropertyFromCloudFormation(properties.S3Location):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSoftwarePackageVersionSbomPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("s3Location",cdk().requiredValidator)(properties.s3Location)),errors.collect(cdk().propertyValidator("s3Location",CfnSoftwarePackageVersionS3LocationPropertyValidator)(properties.s3Location)),errors.wrap('supplied properties not correct for "SbomProperty"')}function convertCfnSoftwarePackageVersionSbomPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSoftwarePackageVersionSbomPropertyValidator(properties).assertSuccess(),{S3Location:convertCfnSoftwarePackageVersionS3LocationPropertyToCloudFormation(properties.s3Location)}):properties}function CfnSoftwarePackageVersionSbomPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("s3Location","S3Location",properties.S3Location!=null?CfnSoftwarePackageVersionS3LocationPropertyFromCloudFormation(properties.S3Location):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSoftwarePackageVersionPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("artifact",CfnSoftwarePackageVersionPackageVersionArtifactPropertyValidator)(properties.artifact)),errors.collect(cdk().propertyValidator("attributes",cdk().hashValidator(cdk().validateString))(properties.attributes)),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("packageName",cdk().requiredValidator)(properties.packageName)),errors.collect(cdk().propertyValidator("packageName",cdk().validateString)(properties.packageName)),errors.collect(cdk().propertyValidator("recipe",cdk().validateString)(properties.recipe)),errors.collect(cdk().propertyValidator("sbom",CfnSoftwarePackageVersionSbomPropertyValidator)(properties.sbom)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("versionName",cdk().validateString)(properties.versionName)),errors.wrap('supplied properties not correct for "CfnSoftwarePackageVersionProps"')}function convertCfnSoftwarePackageVersionPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSoftwarePackageVersionPropsValidator(properties).assertSuccess(),{Artifact:convertCfnSoftwarePackageVersionPackageVersionArtifactPropertyToCloudFormation(properties.artifact),Attributes:cdk().hashMapper(cdk().stringToCloudFormation)(properties.attributes),Description:cdk().stringToCloudFormation(properties.description),PackageName:cdk().stringToCloudFormation(properties.packageName),Recipe:cdk().stringToCloudFormation(properties.recipe),Sbom:convertCfnSoftwarePackageVersionSbomPropertyToCloudFormation(properties.sbom),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),VersionName:cdk().stringToCloudFormation(properties.versionName)}):properties}function CfnSoftwarePackageVersionPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("artifact","Artifact",properties.Artifact!=null?CfnSoftwarePackageVersionPackageVersionArtifactPropertyFromCloudFormation(properties.Artifact):void 0),ret.addPropertyResult("attributes","Attributes",properties.Attributes!=null?cfn_parse().FromCloudFormation.getMap(cfn_parse().FromCloudFormation.getString)(properties.Attributes):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("packageName","PackageName",properties.PackageName!=null?cfn_parse().FromCloudFormation.getString(properties.PackageName):void 0),ret.addPropertyResult("recipe","Recipe",properties.Recipe!=null?cfn_parse().FromCloudFormation.getString(properties.Recipe):void 0),ret.addPropertyResult("sbom","Sbom",properties.Sbom!=null?CfnSoftwarePackageVersionSbomPropertyFromCloudFormation(properties.Sbom):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("versionName","VersionName",properties.VersionName!=null?cfn_parse().FromCloudFormation.getString(properties.VersionName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnThing extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_iot.CfnThing",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::IoT::Thing";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnThingPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnThing(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnThing(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnThing.CFN_RESOURCE_TYPE_NAME}static fromThingArn(scope,id,arn){class Import extends cdk().Resource{thingRef;constructor(scope2,id2,arn2){super(scope2,id2,{environmentFromArn:arn2});const variables=new(cfn_parse()).TemplateString("arn:${Partition}:iot:${Region}:${Account}:thing/${ThingName}").parse(arn2);this.thingRef={thingName:variables.ThingName,thingArn:arn2}}}return new Import(scope,id,arn)}static fromThingName(scope,id,thingName){class Import extends cdk().Resource{thingRef;constructor(scope2,id2,thingName2){const arn=new(cfn_parse()).TemplateString("arn:${Partition}:iot:${Region}:${Account}:thing/${ThingName}").interpolate({Partition:cdk().Stack.of(scope2).partition,Region:cdk().Stack.of(scope2).region,Account:cdk().Stack.of(scope2).account,ThingName:thingName2});super(scope2,id2,{environmentFromArn:arn}),this.thingRef={thingName:thingName2,thingArn:arn}}}return new Import(scope,id,thingName)}static arnForThing(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_iot_IThingRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForThing),error}return resource.thingRef.thingArn}_attributePayload;_thingName;cfnPropertyNames={attributePayload:"AttributePayload",thingName:"ThingName"};constructor(scope,id,props={}){super(scope,id,{type:CfnThing.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_iot_CfnThingProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnThing),error}this._attributePayload=props.attributePayload,this._thingName=props.thingName}get thingRef(){return{thingName:this.ref,thingArn:this.attrArn}}get attributePayload(){return this._attributePayload}set attributePayload(value){cdk().traceProperty(this.node,"AttributePayload"),this._attributePayload=value}get thingName(){return this._thingName}set thingName(value){cdk().traceProperty(this.node,"ThingName"),this._thingName=value}get attrArn(){return cdk().Token.asString(this.getAtt("Arn",cdk().ResolutionTypeHint.STRING))}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{attributePayload:this._attributePayload,thingName:this._thingName}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnThing.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnThingPropsToCloudFormation(props)}}exports.CfnThing=CfnThing;function CfnThingAttributePayloadPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("attributes",cdk().hashValidator(cdk().validateString))(properties.attributes)),errors.wrap('supplied properties not correct for "AttributePayloadProperty"')}function convertCfnThingAttributePayloadPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnThingAttributePayloadPropertyValidator(properties).assertSuccess(),{Attributes:cdk().hashMapper(cdk().stringToCloudFormation)(properties.attributes)}):properties}function CfnThingAttributePayloadPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("attributes","Attributes",properties.Attributes!=null?cfn_parse().FromCloudFormation.getMap(cfn_parse().FromCloudFormation.getString)(properties.Attributes):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnThingPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("attributePayload",CfnThingAttributePayloadPropertyValidator)(properties.attributePayload)),errors.collect(cdk().propertyValidator("thingName",cdk().validateString)(properties.thingName)),errors.wrap('supplied properties not correct for "CfnThingProps"')}function convertCfnThingPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnThingPropsValidator(properties).assertSuccess(),{AttributePayload:convertCfnThingAttributePayloadPropertyToCloudFormation(properties.attributePayload),ThingName:cdk().stringToCloudFormation(properties.thingName)}):properties}function CfnThingPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("attributePayload","AttributePayload",properties.AttributePayload!=null?CfnThingAttributePayloadPropertyFromCloudFormation(properties.AttributePayload):void 0),ret.addPropertyResult("thingName","ThingName",properties.ThingName!=null?cfn_parse().FromCloudFormation.getString(properties.ThingName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnThingGroup extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_iot.CfnThingGroup",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::IoT::ThingGroup";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnThingGroupPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnThingGroup(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnThingGroup(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnThingGroup.CFN_RESOURCE_TYPE_NAME}static fromThingGroupArn(scope,id,arn){class Import extends cdk().Resource{thingGroupRef;constructor(scope2,id2,arn2){super(scope2,id2,{environmentFromArn:arn2});const variables=new(cfn_parse()).TemplateString("arn:${Partition}:iot:${Region}:${Account}:thinggroup/${ThingGroupName}").parse(arn2);this.thingGroupRef={thingGroupName:variables.ThingGroupName,thingGroupArn:arn2}}}return new Import(scope,id,arn)}static fromThingGroupName(scope,id,thingGroupName){class Import extends cdk().Resource{thingGroupRef;constructor(scope2,id2,thingGroupName2){const arn=new(cfn_parse()).TemplateString("arn:${Partition}:iot:${Region}:${Account}:thinggroup/${ThingGroupName}").interpolate({Partition:cdk().Stack.of(scope2).partition,Region:cdk().Stack.of(scope2).region,Account:cdk().Stack.of(scope2).account,ThingGroupName:thingGroupName2});super(scope2,id2,{environmentFromArn:arn}),this.thingGroupRef={thingGroupName:thingGroupName2,thingGroupArn:arn}}}return new Import(scope,id,thingGroupName)}static arnForThingGroup(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_iot_IThingGroupRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForThingGroup),error}return resource.thingGroupRef.thingGroupArn}_parentGroupName;_queryString;tags;_tagsRaw;_thingGroupName;_thingGroupProperties;cfnPropertyNames={parentGroupName:"ParentGroupName",queryString:"QueryString",tags:"Tags",thingGroupName:"ThingGroupName",thingGroupProperties:"ThingGroupProperties"};constructor(scope,id,props={}){super(scope,id,{type:CfnThingGroup.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_iot_CfnThingGroupProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnThingGroup),error}this._parentGroupName=props.parentGroupName,this._queryString=props.queryString,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::IoT::ThingGroup",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._thingGroupName=props.thingGroupName,this._thingGroupProperties=props.thingGroupProperties}get thingGroupRef(){return{thingGroupName:this.ref,thingGroupArn:this.attrArn}}get parentGroupName(){return this._parentGroupName}set parentGroupName(value){cdk().traceProperty(this.node,"ParentGroupName"),this._parentGroupName=value}get queryString(){return this._queryString}set queryString(value){cdk().traceProperty(this.node,"QueryString"),this._queryString=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get thingGroupName(){return this._thingGroupName}set thingGroupName(value){cdk().traceProperty(this.node,"ThingGroupName"),this._thingGroupName=value}get thingGroupProperties(){return this._thingGroupProperties}set thingGroupProperties(value){cdk().traceProperty(this.node,"ThingGroupProperties"),this._thingGroupProperties=value}get attrArn(){return cdk().Token.asString(this.getAtt("Arn",cdk().ResolutionTypeHint.STRING))}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{parentGroupName:this._parentGroupName,queryString:this._queryString,tags:this.tags.renderTags(),thingGroupName:this._thingGroupName,thingGroupProperties:this._thingGroupProperties}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnThingGroup.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnThingGroupPropsToCloudFormation(props)}}exports.CfnThingGroup=CfnThingGroup;function CfnThingGroupAttributePayloadPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("attributes",cdk().hashValidator(cdk().validateString))(properties.attributes)),errors.wrap('supplied properties not correct for "AttributePayloadProperty"')}function convertCfnThingGroupAttributePayloadPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnThingGroupAttributePayloadPropertyValidator(properties).assertSuccess(),{Attributes:cdk().hashMapper(cdk().stringToCloudFormation)(properties.attributes)}):properties}function CfnThingGroupAttributePayloadPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("attributes","Attributes",properties.Attributes!=null?cfn_parse().FromCloudFormation.getMap(cfn_parse().FromCloudFormation.getString)(properties.Attributes):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnThingGroupThingGroupPropertiesPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("attributePayload",CfnThingGroupAttributePayloadPropertyValidator)(properties.attributePayload)),errors.collect(cdk().propertyValidator("thingGroupDescription",cdk().validateString)(properties.thingGroupDescription)),errors.wrap('supplied properties not correct for "ThingGroupPropertiesProperty"')}function convertCfnThingGroupThingGroupPropertiesPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnThingGroupThingGroupPropertiesPropertyValidator(properties).assertSuccess(),{AttributePayload:convertCfnThingGroupAttributePayloadPropertyToCloudFormation(properties.attributePayload),ThingGroupDescription:cdk().stringToCloudFormation(properties.thingGroupDescription)}):properties}function CfnThingGroupThingGroupPropertiesPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("attributePayload","AttributePayload",properties.AttributePayload!=null?CfnThingGroupAttributePayloadPropertyFromCloudFormation(properties.AttributePayload):void 0),ret.addPropertyResult("thingGroupDescription","ThingGroupDescription",properties.ThingGroupDescription!=null?cfn_parse().FromCloudFormation.getString(properties.ThingGroupDescription):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnThingGroupPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("parentGroupName",cdk().validateString)(properties.parentGroupName)),errors.collect(cdk().propertyValidator("queryString",cdk().validateString)(properties.queryString)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("thingGroupName",cdk().validateString)(properties.thingGroupName)),errors.collect(cdk().propertyValidator("thingGroupProperties",CfnThingGroupThingGroupPropertiesPropertyValidator)(properties.thingGroupProperties)),errors.wrap('supplied properties not correct for "CfnThingGroupProps"')}function convertCfnThingGroupPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnThingGroupPropsValidator(properties).assertSuccess(),{ParentGroupName:cdk().stringToCloudFormation(properties.parentGroupName),QueryString:cdk().stringToCloudFormation(properties.queryString),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),ThingGroupName:cdk().stringToCloudFormation(properties.thingGroupName),ThingGroupProperties:convertCfnThingGroupThingGroupPropertiesPropertyToCloudFormation(properties.thingGroupProperties)}):properties}function CfnThingGroupPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("parentGroupName","ParentGroupName",properties.ParentGroupName!=null?cfn_parse().FromCloudFormation.getString(properties.ParentGroupName):void 0),ret.addPropertyResult("queryString","QueryString",properties.QueryString!=null?cfn_parse().FromCloudFormation.getString(properties.QueryString):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("thingGroupName","ThingGroupName",properties.ThingGroupName!=null?cfn_parse().FromCloudFormation.getString(properties.ThingGroupName):void 0),ret.addPropertyResult("thingGroupProperties","ThingGroupProperties",properties.ThingGroupProperties!=null?CfnThingGroupThingGroupPropertiesPropertyFromCloudFormation(properties.ThingGroupProperties):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnThingPrincipalAttachment extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_iot.CfnThingPrincipalAttachment",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::IoT::ThingPrincipalAttachment";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnThingPrincipalAttachmentPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnThingPrincipalAttachment(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnThingPrincipalAttachment(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnThingPrincipalAttachment.CFN_RESOURCE_TYPE_NAME}_principal;_thingName;_thingPrincipalType;cfnPropertyNames={principal:"Principal",thingName:"ThingName",thingPrincipalType:"ThingPrincipalType"};constructor(scope,id,props){super(scope,id,{type:CfnThingPrincipalAttachment.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_iot_CfnThingPrincipalAttachmentProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnThingPrincipalAttachment),error}cdk().requireProperty(props,"principal",this),cdk().requireProperty(props,"thingName",this),this._principal=props.principal,this._thingName=props.thingName,this._thingPrincipalType=props.thingPrincipalType}get thingPrincipalAttachmentRef(){return{thingPrincipalAttachmentId:this.ref}}get principal(){return this._principal}set principal(value){cdk().traceProperty(this.node,"Principal"),this._principal=value}get thingName(){return this._thingName}set thingName(value){cdk().traceProperty(this.node,"ThingName"),this._thingName=value}get thingPrincipalType(){return this._thingPrincipalType}set thingPrincipalType(value){cdk().traceProperty(this.node,"ThingPrincipalType"),this._thingPrincipalType=value}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{principal:this._principal,thingName:this._thingName,thingPrincipalType:this._thingPrincipalType}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnThingPrincipalAttachment.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnThingPrincipalAttachmentPropsToCloudFormation(props)}}exports.CfnThingPrincipalAttachment=CfnThingPrincipalAttachment;function CfnThingPrincipalAttachmentPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("principal",cdk().requiredValidator)(properties.principal)),errors.collect(cdk().propertyValidator("principal",cdk().validateString)(properties.principal)),errors.collect(cdk().propertyValidator("thingName",cdk().requiredValidator)(properties.thingName)),errors.collect(cdk().propertyValidator("thingName",cdk().validateString)(properties.thingName)),errors.collect(cdk().propertyValidator("thingPrincipalType",cdk().validateString)(properties.thingPrincipalType)),errors.wrap('supplied properties not correct for "CfnThingPrincipalAttachmentProps"')}function convertCfnThingPrincipalAttachmentPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnThingPrincipalAttachmentPropsValidator(properties).assertSuccess(),{Principal:cdk().stringToCloudFormation(properties.principal),ThingName:cdk().stringToCloudFormation(properties.thingName),ThingPrincipalType:cdk().stringToCloudFormation(properties.thingPrincipalType)}):properties}function CfnThingPrincipalAttachmentPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("principal","Principal",properties.Principal!=null?cfn_parse().FromCloudFormation.getString(properties.Principal):void 0),ret.addPropertyResult("thingName","ThingName",properties.ThingName!=null?cfn_parse().FromCloudFormation.getString(properties.ThingName):void 0),ret.addPropertyResult("thingPrincipalType","ThingPrincipalType",properties.ThingPrincipalType!=null?cfn_parse().FromCloudFormation.getString(properties.ThingPrincipalType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnThingType extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_iot.CfnThingType",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::IoT::ThingType";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnThingTypePropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnThingType(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnThingType(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnThingType.CFN_RESOURCE_TYPE_NAME}static fromThingTypeArn(scope,id,arn){class Import extends cdk().Resource{thingTypeRef;constructor(scope2,id2,arn2){super(scope2,id2,{environmentFromArn:arn2});const variables=new(cfn_parse()).TemplateString("arn:${Partition}:iot:${Region}:${Account}:thingtype/${ThingTypeName}").parse(arn2);this.thingTypeRef={thingTypeName:variables.ThingTypeName,thingTypeArn:arn2}}}return new Import(scope,id,arn)}static fromThingTypeName(scope,id,thingTypeName){class Import extends cdk().Resource{thingTypeRef;constructor(scope2,id2,thingTypeName2){const arn=new(cfn_parse()).TemplateString("arn:${Partition}:iot:${Region}:${Account}:thingtype/${ThingTypeName}").interpolate({Partition:cdk().Stack.of(scope2).partition,Region:cdk().Stack.of(scope2).region,Account:cdk().Stack.of(scope2).account,ThingTypeName:thingTypeName2});super(scope2,id2,{environmentFromArn:arn}),this.thingTypeRef={thingTypeName:thingTypeName2,thingTypeArn:arn}}}return new Import(scope,id,thingTypeName)}static arnForThingType(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_iot_IThingTypeRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForThingType),error}return resource.thingTypeRef.thingTypeArn}_deprecateThingType;tags;_tagsRaw;_thingTypeName;_thingTypeProperties;cfnPropertyNames={deprecateThingType:"DeprecateThingType",tags:"Tags",thingTypeName:"ThingTypeName",thingTypeProperties:"ThingTypeProperties"};constructor(scope,id,props={}){super(scope,id,{type:CfnThingType.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_iot_CfnThingTypeProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnThingType),error}this._deprecateThingType=props.deprecateThingType,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::IoT::ThingType",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._thingTypeName=props.thingTypeName,this._thingTypeProperties=props.thingTypeProperties}get thingTypeRef(){return{thingTypeName:this.ref,thingTypeArn:this.attrArn}}get deprecateThingType(){return this._deprecateThingType}set deprecateThingType(value){cdk().traceProperty(this.node,"DeprecateThingType"),this._deprecateThingType=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get thingTypeName(){return this._thingTypeName}set thingTypeName(value){cdk().traceProperty(this.node,"ThingTypeName"),this._thingTypeName=value}get thingTypeProperties(){return this._thingTypeProperties}set thingTypeProperties(value){cdk().traceProperty(this.node,"ThingTypeProperties"),this._thingTypeProperties=value}get attrArn(){return cdk().Token.asString(this.getAtt("Arn",cdk().ResolutionTypeHint.STRING))}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{deprecateThingType:this._deprecateThingType,tags:this.tags.renderTags(),thingTypeName:this._thingTypeName,thingTypeProperties:this._thingTypeProperties}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnThingType.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnThingTypePropsToCloudFormation(props)}}exports.CfnThingType=CfnThingType;function CfnThingTypePropagatingAttributePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("connectionAttribute",cdk().validateString)(properties.connectionAttribute)),errors.collect(cdk().propertyValidator("thingAttribute",cdk().validateString)(properties.thingAttribute)),errors.collect(cdk().propertyValidator("userPropertyKey",cdk().requiredValidator)(properties.userPropertyKey)),errors.collect(cdk().propertyValidator("userPropertyKey",cdk().validateString)(properties.userPropertyKey)),errors.wrap('supplied properties not correct for "PropagatingAttributeProperty"')}function convertCfnThingTypePropagatingAttributePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnThingTypePropagatingAttributePropertyValidator(properties).assertSuccess(),{ConnectionAttribute:cdk().stringToCloudFormation(properties.connectionAttribute),ThingAttribute:cdk().stringToCloudFormation(properties.thingAttribute),UserPropertyKey:cdk().stringToCloudFormation(properties.userPropertyKey)}):properties}function CfnThingTypePropagatingAttributePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("connectionAttribute","ConnectionAttribute",properties.ConnectionAttribute!=null?cfn_parse().FromCloudFormation.getString(properties.ConnectionAttribute):void 0),ret.addPropertyResult("thingAttribute","ThingAttribute",properties.ThingAttribute!=null?cfn_parse().FromCloudFormation.getString(properties.ThingAttribute):void 0),ret.addPropertyResult("userPropertyKey","UserPropertyKey",properties.UserPropertyKey!=null?cfn_parse().FromCloudFormation.getString(properties.UserPropertyKey):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnThingTypeMqtt5ConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("propagatingAttributes",cdk().listValidator(CfnThingTypePropagatingAttributePropertyValidator))(properties.propagatingAttributes)),errors.wrap('supplied properties not correct for "Mqtt5ConfigurationProperty"')}function convertCfnThingTypeMqtt5ConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnThingTypeMqtt5ConfigurationPropertyValidator(properties).assertSuccess(),{PropagatingAttributes:cdk().listMapper(convertCfnThingTypePropagatingAttributePropertyToCloudFormation)(properties.propagatingAttributes)}):properties}function CfnThingTypeMqtt5ConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("propagatingAttributes","PropagatingAttributes",properties.PropagatingAttributes!=null?cfn_parse().FromCloudFormation.getArray(CfnThingTypePropagatingAttributePropertyFromCloudFormation)(properties.PropagatingAttributes):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnThingTypeThingTypePropertiesPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("mqtt5Configuration",CfnThingTypeMqtt5ConfigurationPropertyValidator)(properties.mqtt5Configuration)),errors.collect(cdk().propertyValidator("searchableAttributes",cdk().listValidator(cdk().validateString))(properties.searchableAttributes)),errors.collect(cdk().propertyValidator("thingTypeDescription",cdk().validateString)(properties.thingTypeDescription)),errors.wrap('supplied properties not correct for "ThingTypePropertiesProperty"')}function convertCfnThingTypeThingTypePropertiesPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnThingTypeThingTypePropertiesPropertyValidator(properties).assertSuccess(),{Mqtt5Configuration:convertCfnThingTypeMqtt5ConfigurationPropertyToCloudFormation(properties.mqtt5Configuration),SearchableAttributes:cdk().listMapper(cdk().stringToCloudFormation)(properties.searchableAttributes),ThingTypeDescription:cdk().stringToCloudFormation(properties.thingTypeDescription)}):properties}function CfnThingTypeThingTypePropertiesPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("mqtt5Configuration","Mqtt5Configuration",properties.Mqtt5Configuration!=null?CfnThingTypeMqtt5ConfigurationPropertyFromCloudFormation(properties.Mqtt5Configuration):void 0),ret.addPropertyResult("searchableAttributes","SearchableAttributes",properties.SearchableAttributes!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.SearchableAttributes):void 0),ret.addPropertyResult("thingTypeDescription","ThingTypeDescription",properties.ThingTypeDescription!=null?cfn_parse().FromCloudFormation.getString(properties.ThingTypeDescription):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnThingTypePropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("deprecateThingType",cdk().validateBoolean)(properties.deprecateThingType)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("thingTypeName",cdk().validateString)(properties.thingTypeName)),errors.collect(cdk().propertyValidator("thingTypeProperties",CfnThingTypeThingTypePropertiesPropertyValidator)(properties.thingTypeProperties)),errors.wrap('supplied properties not correct for "CfnThingTypeProps"')}function convertCfnThingTypePropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnThingTypePropsValidator(properties).assertSuccess(),{DeprecateThingType:cdk().booleanToCloudFormation(properties.deprecateThingType),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),ThingTypeName:cdk().stringToCloudFormation(properties.thingTypeName),ThingTypeProperties:convertCfnThingTypeThingTypePropertiesPropertyToCloudFormation(properties.thingTypeProperties)}):properties}function CfnThingTypePropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("deprecateThingType","DeprecateThingType",properties.DeprecateThingType!=null?cfn_parse().FromCloudFormation.getBoolean(properties.DeprecateThingType):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("thingTypeName","ThingTypeName",properties.ThingTypeName!=null?cfn_parse().FromCloudFormation.getString(properties.ThingTypeName):void 0),ret.addPropertyResult("thingTypeProperties","ThingTypeProperties",properties.ThingTypeProperties!=null?CfnThingTypeThingTypePropertiesPropertyFromCloudFormation(properties.ThingTypeProperties):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnTopicRule extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_iot.CfnTopicRule",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::IoT::TopicRule";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTopicRulePropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnTopicRule(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnTopicRule(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnTopicRule.CFN_RESOURCE_TYPE_NAME}static fromTopicRuleArn(scope,id,arn){class Import extends cdk().Resource{topicRuleRef;constructor(scope2,id2,arn2){super(scope2,id2,{environmentFromArn:arn2});const variables=new(cfn_parse()).TemplateString("arn:${Partition}:iot:${Region}:${Account}:rule/${RuleName}").parse(arn2);this.topicRuleRef={ruleName:variables.RuleName,topicRuleArn:arn2}}}return new Import(scope,id,arn)}static fromRuleName(scope,id,ruleName){class Import extends cdk().Resource{topicRuleRef;constructor(scope2,id2,ruleName2){const arn=new(cfn_parse()).TemplateString("arn:${Partition}:iot:${Region}:${Account}:rule/${RuleName}").interpolate({Partition:cdk().Stack.of(scope2).partition,Region:cdk().Stack.of(scope2).region,Account:cdk().Stack.of(scope2).account,RuleName:ruleName2});super(scope2,id2,{environmentFromArn:arn}),this.topicRuleRef={ruleName:ruleName2,topicRuleArn:arn}}}return new Import(scope,id,ruleName)}static arnForTopicRule(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_iot_ITopicRuleRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForTopicRule),error}return resource.topicRuleRef.topicRuleArn}_ruleName;tags;_tagsRaw;_topicRulePayload;cfnPropertyNames={ruleName:"RuleName",tags:"Tags",topicRulePayload:"TopicRulePayload"};constructor(scope,id,props){super(scope,id,{type:CfnTopicRule.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_iot_CfnTopicRuleProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTopicRule),error}cdk().requireProperty(props,"topicRulePayload",this),this._ruleName=props.ruleName,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::IoT::TopicRule",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._topicRulePayload=props.topicRulePayload}get topicRuleRef(){return{ruleName:this.ref,topicRuleArn:this.attrArn}}get ruleName(){return this._ruleName}set ruleName(value){cdk().traceProperty(this.node,"RuleName"),this._ruleName=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get topicRulePayload(){return this._topicRulePayload}set topicRulePayload(value){cdk().traceProperty(this.node,"TopicRulePayload"),this._topicRulePayload=value}get attrArn(){return cdk().Token.asString(this.getAtt("Arn",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{ruleName:this._ruleName,tags:this.tags.renderTags(),topicRulePayload:this._topicRulePayload}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnTopicRule.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnTopicRulePropsToCloudFormation(props)}}exports.CfnTopicRule=CfnTopicRule;function CfnTopicRuleS3ActionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("bucketName",cdk().requiredValidator)(properties.bucketName)),errors.collect(cdk().propertyValidator("bucketName",cdk().validateString)(properties.bucketName)),errors.collect(cdk().propertyValidator("cannedAcl",cdk().validateString)(properties.cannedAcl)),errors.collect(cdk().propertyValidator("key",cdk().requiredValidator)(properties.key)),errors.collect(cdk().propertyValidator("key",cdk().validateString)(properties.key)),errors.collect(cdk().propertyValidator("roleArn",cdk().requiredValidator)(properties.roleArn)),errors.collect(cdk().propertyValidator("roleArn",cdk().validateString)(properties.roleArn)),errors.wrap('supplied properties not correct for "S3ActionProperty"')}function convertCfnTopicRuleS3ActionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTopicRuleS3ActionPropertyValidator(properties).assertSuccess(),{BucketName:cdk().stringToCloudFormation(properties.bucketName),CannedAcl:cdk().stringToCloudFormation(properties.cannedAcl),Key:cdk().stringToCloudFormation(properties.key),RoleArn:cdk().stringToCloudFormation(properties.roleArn)}):properties}function CfnTopicRuleS3ActionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("bucketName","BucketName",properties.BucketName!=null?cfn_parse().FromCloudFormation.getString(properties.BucketName):void 0),ret.addPropertyResult("cannedAcl","CannedAcl",properties.CannedAcl!=null?cfn_parse().FromCloudFormation.getString(properties.CannedAcl):void 0),ret.addPropertyResult("key","Key",properties.Key!=null?cfn_parse().FromCloudFormation.getString(properties.Key):void 0),ret.addPropertyResult("roleArn","RoleArn",properties.RoleArn!=null?cfn_parse().FromCloudFormation.getString(properties.RoleArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTopicRuleCloudwatchAlarmActionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("alarmName",cdk().requiredValidator)(properties.alarmName)),errors.collect(cdk().propertyValidator("alarmName",cdk().validateString)(properties.alarmName)),errors.collect(cdk().propertyValidator("roleArn",cdk().requiredValidator)(properties.roleArn)),errors.collect(cdk().propertyValidator("roleArn",cdk().validateString)(properties.roleArn)),errors.collect(cdk().propertyValidator("stateReason",cdk().requiredValidator)(properties.stateReason)),errors.collect(cdk().propertyValidator("stateReason",cdk().validateString)(properties.stateReason)),errors.collect(cdk().propertyValidator("stateValue",cdk().requiredValidator)(properties.stateValue)),errors.collect(cdk().propertyValidator("stateValue",cdk().validateString)(properties.stateValue)),errors.wrap('supplied properties not correct for "CloudwatchAlarmActionProperty"')}function convertCfnTopicRuleCloudwatchAlarmActionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTopicRuleCloudwatchAlarmActionPropertyValidator(properties).assertSuccess(),{AlarmName:cdk().stringToCloudFormation(properties.alarmName),RoleArn:cdk().stringToCloudFormation(properties.roleArn),StateReason:cdk().stringToCloudFormation(properties.stateReason),StateValue:cdk().stringToCloudFormation(properties.stateValue)}):properties}function CfnTopicRuleCloudwatchAlarmActionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("alarmName","AlarmName",properties.AlarmName!=null?cfn_parse().FromCloudFormation.getString(properties.AlarmName):void 0),ret.addPropertyResult("roleArn","RoleArn",properties.RoleArn!=null?cfn_parse().FromCloudFormation.getString(properties.RoleArn):void 0),ret.addPropertyResult("stateReason","StateReason",properties.StateReason!=null?cfn_parse().FromCloudFormation.getString(properties.StateReason):void 0),ret.addPropertyResult("stateValue","StateValue",properties.StateValue!=null?cfn_parse().FromCloudFormation.getString(properties.StateValue):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTopicRuleIotEventsActionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("batchMode",cdk().validateBoolean)(properties.batchMode)),errors.collect(cdk().propertyValidator("inputName",cdk().requiredValidator)(properties.inputName)),errors.collect(cdk().propertyValidator("inputName",cdk().validateString)(properties.inputName)),errors.collect(cdk().propertyValidator("messageId",cdk().validateString)(properties.messageId)),errors.collect(cdk().propertyValidator("roleArn",cdk().requiredValidator)(properties.roleArn)),errors.collect(cdk().propertyValidator("roleArn",cdk().validateString)(properties.roleArn)),errors.wrap('supplied properties not correct for "IotEventsActionProperty"')}function convertCfnTopicRuleIotEventsActionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTopicRuleIotEventsActionPropertyValidator(properties).assertSuccess(),{BatchMode:cdk().booleanToCloudFormation(properties.batchMode),InputName:cdk().stringToCloudFormation(properties.inputName),MessageId:cdk().stringToCloudFormation(properties.messageId),RoleArn:cdk().stringToCloudFormation(properties.roleArn)}):properties}function CfnTopicRuleIotEventsActionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("batchMode","BatchMode",properties.BatchMode!=null?cfn_parse().FromCloudFormation.getBoolean(properties.BatchMode):void 0),ret.addPropertyResult("inputName","InputName",properties.InputName!=null?cfn_parse().FromCloudFormation.getString(properties.InputName):void 0),ret.addPropertyResult("messageId","MessageId",properties.MessageId!=null?cfn_parse().FromCloudFormation.getString(properties.MessageId):void 0),ret.addPropertyResult("roleArn","RoleArn",properties.RoleArn!=null?cfn_parse().FromCloudFormation.getString(properties.RoleArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTopicRuleFirehoseActionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("batchMode",cdk().validateBoolean)(properties.batchMode)),errors.collect(cdk().propertyValidator("deliveryStreamName",cdk().requiredValidator)(properties.deliveryStreamName)),errors.collect(cdk().propertyValidator("deliveryStreamName",cdk().validateString)(properties.deliveryStreamName)),errors.collect(cdk().propertyValidator("roleArn",cdk().requiredValidator)(properties.roleArn)),errors.collect(cdk().propertyValidator("roleArn",cdk().validateString)(properties.roleArn)),errors.collect(cdk().propertyValidator("separator",cdk().validateString)(properties.separator)),errors.wrap('supplied properties not correct for "FirehoseActionProperty"')}function convertCfnTopicRuleFirehoseActionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTopicRuleFirehoseActionPropertyValidator(properties).assertSuccess(),{BatchMode:cdk().booleanToCloudFormation(properties.batchMode),DeliveryStreamName:cdk().stringToCloudFormation(properties.deliveryStreamName),RoleArn:cdk().stringToCloudFormation(properties.roleArn),Separator:cdk().stringToCloudFormation(properties.separator)}):properties}function CfnTopicRuleFirehoseActionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("batchMode","BatchMode",properties.BatchMode!=null?cfn_parse().FromCloudFormation.getBoolean(properties.BatchMode):void 0),ret.addPropertyResult("deliveryStreamName","DeliveryStreamName",properties.DeliveryStreamName!=null?cfn_parse().FromCloudFormation.getString(properties.DeliveryStreamName):void 0),ret.addPropertyResult("roleArn","RoleArn",properties.RoleArn!=null?cfn_parse().FromCloudFormation.getString(properties.RoleArn):void 0),ret.addPropertyResult("separator","Separator",properties.Separator!=null?cfn_parse().FromCloudFormation.getString(properties.Separator):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTopicRuleUserPropertyPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("key",cdk().requiredValidator)(properties.key)),errors.collect(cdk().propertyValidator("key",cdk().validateString)(properties.key)),errors.collect(cdk().propertyValidator("value",cdk().requiredValidator)(properties.value)),errors.collect(cdk().propertyValidator("value",cdk().validateString)(properties.value)),errors.wrap('supplied properties not correct for "UserPropertyProperty"')}function convertCfnTopicRuleUserPropertyPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTopicRuleUserPropertyPropertyValidator(properties).assertSuccess(),{Key:cdk().stringToCloudFormation(properties.key),Value:cdk().stringToCloudFormation(properties.value)}):properties}function CfnTopicRuleUserPropertyPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("key","Key",properties.Key!=null?cfn_parse().FromCloudFormation.getString(properties.Key):void 0),ret.addPropertyResult("value","Value",properties.Value!=null?cfn_parse().FromCloudFormation.getString(properties.Value):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTopicRuleRepublishActionHeadersPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("contentType",cdk().validateString)(properties.contentType)),errors.collect(cdk().propertyValidator("correlationData",cdk().validateString)(properties.correlationData)),errors.collect(cdk().propertyValidator("messageExpiry",cdk().validateString)(properties.messageExpiry)),errors.collect(cdk().propertyValidator("payloadFormatIndicator",cdk().validateString)(properties.payloadFormatIndicator)),errors.collect(cdk().propertyValidator("responseTopic",cdk().validateString)(properties.responseTopic)),errors.collect(cdk().propertyValidator("userProperties",cdk().listValidator(CfnTopicRuleUserPropertyPropertyValidator))(properties.userProperties)),errors.wrap('supplied properties not correct for "RepublishActionHeadersProperty"')}function convertCfnTopicRuleRepublishActionHeadersPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTopicRuleRepublishActionHeadersPropertyValidator(properties).assertSuccess(),{ContentType:cdk().stringToCloudFormation(properties.contentType),CorrelationData:cdk().stringToCloudFormation(properties.correlationData),MessageExpiry:cdk().stringToCloudFormation(properties.messageExpiry),PayloadFormatIndicator:cdk().stringToCloudFormation(properties.payloadFormatIndicator),ResponseTopic:cdk().stringToCloudFormation(properties.responseTopic),UserProperties:cdk().listMapper(convertCfnTopicRuleUserPropertyPropertyToCloudFormation)(properties.userProperties)}):properties}function CfnTopicRuleRepublishActionHeadersPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("contentType","ContentType",properties.ContentType!=null?cfn_parse().FromCloudFormation.getString(properties.ContentType):void 0),ret.addPropertyResult("correlationData","CorrelationData",properties.CorrelationData!=null?cfn_parse().FromCloudFormation.getString(properties.CorrelationData):void 0),ret.addPropertyResult("messageExpiry","MessageExpiry",properties.MessageExpiry!=null?cfn_parse().FromCloudFormation.getString(properties.MessageExpiry):void 0),ret.addPropertyResult("payloadFormatIndicator","PayloadFormatIndicator",properties.PayloadFormatIndicator!=null?cfn_parse().FromCloudFormation.getString(properties.PayloadFormatIndicator):void 0),ret.addPropertyResult("responseTopic","ResponseTopic",properties.ResponseTopic!=null?cfn_parse().FromCloudFormation.getString(properties.ResponseTopic):void 0),ret.addPropertyResult("userProperties","UserProperties",properties.UserProperties!=null?cfn_parse().FromCloudFormation.getArray(CfnTopicRuleUserPropertyPropertyFromCloudFormation)(properties.UserProperties):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTopicRuleRepublishActionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("headers",CfnTopicRuleRepublishActionHeadersPropertyValidator)(properties.headers)),errors.collect(cdk().propertyValidator("qos",cdk().validateNumber)(properties.qos)),errors.collect(cdk().propertyValidator("roleArn",cdk().requiredValidator)(properties.roleArn)),errors.collect(cdk().propertyValidator("roleArn",cdk().validateString)(properties.roleArn)),errors.collect(cdk().propertyValidator("topic",cdk().requiredValidator)(properties.topic)),errors.collect(cdk().propertyValidator("topic",cdk().validateString)(properties.topic)),errors.wrap('supplied properties not correct for "RepublishActionProperty"')}function convertCfnTopicRuleRepublishActionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTopicRuleRepublishActionPropertyValidator(properties).assertSuccess(),{Headers:convertCfnTopicRuleRepublishActionHeadersPropertyToCloudFormation(properties.headers),Qos:cdk().numberToCloudFormation(properties.qos),RoleArn:cdk().stringToCloudFormation(properties.roleArn),Topic:cdk().stringToCloudFormation(properties.topic)}):properties}function CfnTopicRuleRepublishActionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("headers","Headers",properties.Headers!=null?CfnTopicRuleRepublishActionHeadersPropertyFromCloudFormation(properties.Headers):void 0),ret.addPropertyResult("qos","Qos",properties.Qos!=null?cfn_parse().FromCloudFormation.getNumber(properties.Qos):void 0),ret.addPropertyResult("roleArn","RoleArn",properties.RoleArn!=null?cfn_parse().FromCloudFormation.getString(properties.RoleArn):void 0),ret.addPropertyResult("topic","Topic",properties.Topic!=null?cfn_parse().FromCloudFormation.getString(properties.Topic):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTopicRuleKafkaActionHeaderPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("key",cdk().requiredValidator)(properties.key)),errors.collect(cdk().propertyValidator("key",cdk().validateString)(properties.key)),errors.collect(cdk().propertyValidator("value",cdk().requiredValidator)(properties.value)),errors.collect(cdk().propertyValidator("value",cdk().validateString)(properties.value)),errors.wrap('supplied properties not correct for "KafkaActionHeaderProperty"')}function convertCfnTopicRuleKafkaActionHeaderPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTopicRuleKafkaActionHeaderPropertyValidator(properties).assertSuccess(),{Key:cdk().stringToCloudFormation(properties.key),Value:cdk().stringToCloudFormation(properties.value)}):properties}function CfnTopicRuleKafkaActionHeaderPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("key","Key",properties.Key!=null?cfn_parse().FromCloudFormation.getString(properties.Key):void 0),ret.addPropertyResult("value","Value",properties.Value!=null?cfn_parse().FromCloudFormation.getString(properties.Value):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTopicRuleKafkaActionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("clientProperties",cdk().requiredValidator)(properties.clientProperties)),errors.collect(cdk().propertyValidator("clientProperties",cdk().hashValidator(cdk().validateString))(properties.clientProperties)),errors.collect(cdk().propertyValidator("destinationArn",cdk().requiredValidator)(properties.destinationArn)),errors.collect(cdk().propertyValidator("destinationArn",cdk().validateString)(properties.destinationArn)),errors.collect(cdk().propertyValidator("headers",cdk().listValidator(CfnTopicRuleKafkaActionHeaderPropertyValidator))(properties.headers)),errors.collect(cdk().propertyValidator("key",cdk().validateString)(properties.key)),errors.collect(cdk().propertyValidator("partition",cdk().validateString)(properties.partition)),errors.collect(cdk().propertyValidator("topic",cdk().requiredValidator)(properties.topic)),errors.collect(cdk().propertyValidator("topic",cdk().validateString)(properties.topic)),errors.wrap('supplied properties not correct for "KafkaActionProperty"')}function convertCfnTopicRuleKafkaActionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTopicRuleKafkaActionPropertyValidator(properties).assertSuccess(),{ClientProperties:cdk().hashMapper(cdk().stringToCloudFormation)(properties.clientProperties),DestinationArn:cdk().stringToCloudFormation(properties.destinationArn),Headers:cdk().listMapper(convertCfnTopicRuleKafkaActionHeaderPropertyToCloudFormation)(properties.headers),Key:cdk().stringToCloudFormation(properties.key),Partition:cdk().stringToCloudFormation(properties.partition),Topic:cdk().stringToCloudFormation(properties.topic)}):properties}function CfnTopicRuleKafkaActionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("clientProperties","ClientProperties",properties.ClientProperties!=null?cfn_parse().FromCloudFormation.getMap(cfn_parse().FromCloudFormation.getString)(properties.ClientProperties):void 0),ret.addPropertyResult("destinationArn","DestinationArn",properties.DestinationArn!=null?cfn_parse().FromCloudFormation.getString(properties.DestinationArn):void 0),ret.addPropertyResult("headers","Headers",properties.Headers!=null?cfn_parse().FromCloudFormation.getArray(CfnTopicRuleKafkaActionHeaderPropertyFromCloudFormation)(properties.Headers):void 0),ret.addPropertyResult("key","Key",properties.Key!=null?cfn_parse().FromCloudFormation.getString(properties.Key):void 0),ret.addPropertyResult("partition","Partition",properties.Partition!=null?cfn_parse().FromCloudFormation.getString(properties.Partition):void 0),ret.addPropertyResult("topic","Topic",properties.Topic!=null?cfn_parse().FromCloudFormation.getString(properties.Topic):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTopicRuleStepFunctionsActionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("executionNamePrefix",cdk().validateString)(properties.executionNamePrefix)),errors.collect(cdk().propertyValidator("roleArn",cdk().requiredValidator)(properties.roleArn)),errors.collect(cdk().propertyValidator("roleArn",cdk().validateString)(properties.roleArn)),errors.collect(cdk().propertyValidator("stateMachineName",cdk().requiredValidator)(properties.stateMachineName)),errors.collect(cdk().propertyValidator("stateMachineName",cdk().validateString)(properties.stateMachineName)),errors.wrap('supplied properties not correct for "StepFunctionsActionProperty"')}function convertCfnTopicRuleStepFunctionsActionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTopicRuleStepFunctionsActionPropertyValidator(properties).assertSuccess(),{ExecutionNamePrefix:cdk().stringToCloudFormation(properties.executionNamePrefix),RoleArn:cdk().stringToCloudFormation(properties.roleArn),StateMachineName:cdk().stringToCloudFormation(properties.stateMachineName)}):properties}function CfnTopicRuleStepFunctionsActionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("executionNamePrefix","ExecutionNamePrefix",properties.ExecutionNamePrefix!=null?cfn_parse().FromCloudFormation.getString(properties.ExecutionNamePrefix):void 0),ret.addPropertyResult("roleArn","RoleArn",properties.RoleArn!=null?cfn_parse().FromCloudFormation.getString(properties.RoleArn):void 0),ret.addPropertyResult("stateMachineName","StateMachineName",properties.StateMachineName!=null?cfn_parse().FromCloudFormation.getString(properties.StateMachineName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTopicRuleDynamoDBActionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("hashKeyField",cdk().requiredValidator)(properties.hashKeyField)),errors.collect(cdk().propertyValidator("hashKeyField",cdk().validateString)(properties.hashKeyField)),errors.collect(cdk().propertyValidator("hashKeyType",cdk().validateString)(properties.hashKeyType)),errors.collect(cdk().propertyValidator("hashKeyValue",cdk().requiredValidator)(properties.hashKeyValue)),errors.collect(cdk().propertyValidator("hashKeyValue",cdk().validateString)(properties.hashKeyValue)),errors.collect(cdk().propertyValidator("payloadField",cdk().validateString)(properties.payloadField)),errors.collect(cdk().propertyValidator("rangeKeyField",cdk().validateString)(properties.rangeKeyField)),errors.collect(cdk().propertyValidator("rangeKeyType",cdk().validateString)(properties.rangeKeyType)),errors.collect(cdk().propertyValidator("rangeKeyValue",cdk().validateString)(properties.rangeKeyValue)),errors.collect(cdk().propertyValidator("roleArn",cdk().requiredValidator)(properties.roleArn)),errors.collect(cdk().propertyValidator("roleArn",cdk().validateString)(properties.roleArn)),errors.collect(cdk().propertyValidator("tableName",cdk().requiredValidator)(properties.tableName)),errors.collect(cdk().propertyValidator("tableName",cdk().validateString)(properties.tableName)),errors.wrap('supplied properties not correct for "DynamoDBActionProperty"')}function convertCfnTopicRuleDynamoDBActionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTopicRuleDynamoDBActionPropertyValidator(properties).assertSuccess(),{HashKeyField:cdk().stringToCloudFormation(properties.hashKeyField),HashKeyType:cdk().stringToCloudFormation(properties.hashKeyType),HashKeyValue:cdk().stringToCloudFormation(properties.hashKeyValue),PayloadField:cdk().stringToCloudFormation(properties.payloadField),RangeKeyField:cdk().stringToCloudFormation(properties.rangeKeyField),RangeKeyType:cdk().stringToCloudFormation(properties.rangeKeyType),RangeKeyValue:cdk().stringToCloudFormation(properties.rangeKeyValue),RoleArn:cdk().stringToCloudFormation(properties.roleArn),TableName:cdk().stringToCloudFormation(properties.tableName)}):properties}function CfnTopicRuleDynamoDBActionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("hashKeyField","HashKeyField",properties.HashKeyField!=null?cfn_parse().FromCloudFormation.getString(properties.HashKeyField):void 0),ret.addPropertyResult("hashKeyType","HashKeyType",properties.HashKeyType!=null?cfn_parse().FromCloudFormation.getString(properties.HashKeyType):void 0),ret.addPropertyResult("hashKeyValue","HashKeyValue",properties.HashKeyValue!=null?cfn_parse().FromCloudFormation.getString(properties.HashKeyValue):void 0),ret.addPropertyResult("payloadField","PayloadField",properties.PayloadField!=null?cfn_parse().FromCloudFormation.getString(properties.PayloadField):void 0),ret.addPropertyResult("rangeKeyField","RangeKeyField",properties.RangeKeyField!=null?cfn_parse().FromCloudFormation.getString(properties.RangeKeyField):void 0),ret.addPropertyResult("rangeKeyType","RangeKeyType",properties.RangeKeyType!=null?cfn_parse().FromCloudFormation.getString(properties.RangeKeyType):void 0),ret.addPropertyResult("rangeKeyValue","RangeKeyValue",properties.RangeKeyValue!=null?cfn_parse().FromCloudFormation.getString(properties.RangeKeyValue):void 0),ret.addPropertyResult("roleArn","RoleArn",properties.RoleArn!=null?cfn_parse().FromCloudFormation.getString(properties.RoleArn):void 0),ret.addPropertyResult("tableName","TableName",properties.TableName!=null?cfn_parse().FromCloudFormation.getString(properties.TableName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTopicRuleHttpActionHeaderPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("key",cdk().requiredValidator)(properties.key)),errors.collect(cdk().propertyValidator("key",cdk().validateString)(properties.key)),errors.collect(cdk().propertyValidator("value",cdk().requiredValidator)(properties.value)),errors.collect(cdk().propertyValidator("value",cdk().validateString)(properties.value)),errors.wrap('supplied properties not correct for "HttpActionHeaderProperty"')}function convertCfnTopicRuleHttpActionHeaderPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTopicRuleHttpActionHeaderPropertyValidator(properties).assertSuccess(),{Key:cdk().stringToCloudFormation(properties.key),Value:cdk().stringToCloudFormation(properties.value)}):properties}function CfnTopicRuleHttpActionHeaderPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("key","Key",properties.Key!=null?cfn_parse().FromCloudFormation.getString(properties.Key):void 0),ret.addPropertyResult("value","Value",properties.Value!=null?cfn_parse().FromCloudFormation.getString(properties.Value):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTopicRuleSigV4AuthorizationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("roleArn",cdk().requiredValidator)(properties.roleArn)),errors.collect(cdk().propertyValidator("roleArn",cdk().validateString)(properties.roleArn)),errors.collect(cdk().propertyValidator("serviceName",cdk().requiredValidator)(properties.serviceName)),errors.collect(cdk().propertyValidator("serviceName",cdk().validateString)(properties.serviceName)),errors.collect(cdk().propertyValidator("signingRegion",cdk().requiredValidator)(properties.signingRegion)),errors.collect(cdk().propertyValidator("signingRegion",cdk().validateString)(properties.signingRegion)),errors.wrap('supplied properties not correct for "SigV4AuthorizationProperty"')}function convertCfnTopicRuleSigV4AuthorizationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTopicRuleSigV4AuthorizationPropertyValidator(properties).assertSuccess(),{RoleArn:cdk().stringToCloudFormation(properties.roleArn),ServiceName:cdk().stringToCloudFormation(properties.serviceName),SigningRegion:cdk().stringToCloudFormation(properties.signingRegion)}):properties}function CfnTopicRuleSigV4AuthorizationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("roleArn","RoleArn",properties.RoleArn!=null?cfn_parse().FromCloudFormation.getString(properties.RoleArn):void 0),ret.addPropertyResult("serviceName","ServiceName",properties.ServiceName!=null?cfn_parse().FromCloudFormation.getString(properties.ServiceName):void 0),ret.addPropertyResult("signingRegion","SigningRegion",properties.SigningRegion!=null?cfn_parse().FromCloudFormation.getString(properties.SigningRegion):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTopicRuleHttpAuthorizationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("sigv4",CfnTopicRuleSigV4AuthorizationPropertyValidator)(properties.sigv4)),errors.wrap('supplied properties not correct for "HttpAuthorizationProperty"')}function convertCfnTopicRuleHttpAuthorizationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTopicRuleHttpAuthorizationPropertyValidator(properties).assertSuccess(),{Sigv4:convertCfnTopicRuleSigV4AuthorizationPropertyToCloudFormation(properties.sigv4)}):properties}function CfnTopicRuleHttpAuthorizationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("sigv4","Sigv4",properties.Sigv4!=null?CfnTopicRuleSigV4AuthorizationPropertyFromCloudFormation(properties.Sigv4):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTopicRuleBatchConfigPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("maxBatchOpenMs",cdk().validateNumber)(properties.maxBatchOpenMs)),errors.collect(cdk().propertyValidator("maxBatchSize",cdk().validateNumber)(properties.maxBatchSize)),errors.collect(cdk().propertyValidator("maxBatchSizeBytes",cdk().validateNumber)(properties.maxBatchSizeBytes)),errors.wrap('supplied properties not correct for "BatchConfigProperty"')}function convertCfnTopicRuleBatchConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTopicRuleBatchConfigPropertyValidator(properties).assertSuccess(),{MaxBatchOpenMs:cdk().numberToCloudFormation(properties.maxBatchOpenMs),MaxBatchSize:cdk().numberToCloudFormation(properties.maxBatchSize),MaxBatchSizeBytes:cdk().numberToCloudFormation(properties.maxBatchSizeBytes)}):properties}function CfnTopicRuleBatchConfigPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("maxBatchOpenMs","MaxBatchOpenMs",properties.MaxBatchOpenMs!=null?cfn_parse().FromCloudFormation.getNumber(properties.MaxBatchOpenMs):void 0),ret.addPropertyResult("maxBatchSize","MaxBatchSize",properties.MaxBatchSize!=null?cfn_parse().FromCloudFormation.getNumber(properties.MaxBatchSize):void 0),ret.addPropertyResult("maxBatchSizeBytes","MaxBatchSizeBytes",properties.MaxBatchSizeBytes!=null?cfn_parse().FromCloudFormation.getNumber(properties.MaxBatchSizeBytes):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTopicRuleHttpActionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("auth",CfnTopicRuleHttpAuthorizationPropertyValidator)(properties.auth)),errors.collect(cdk().propertyValidator("batchConfig",CfnTopicRuleBatchConfigPropertyValidator)(properties.batchConfig)),errors.collect(cdk().propertyValidator("confirmationUrl",cdk().validateString)(properties.confirmationUrl)),errors.collect(cdk().propertyValidator("enableBatching",cdk().validateBoolean)(properties.enableBatching)),errors.collect(cdk().propertyValidator("headers",cdk().listValidator(CfnTopicRuleHttpActionHeaderPropertyValidator))(properties.headers)),errors.collect(cdk().propertyValidator("url",cdk().requiredValidator)(properties.url)),errors.collect(cdk().propertyValidator("url",cdk().validateString)(properties.url)),errors.wrap('supplied properties not correct for "HttpActionProperty"')}function convertCfnTopicRuleHttpActionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTopicRuleHttpActionPropertyValidator(properties).assertSuccess(),{Auth:convertCfnTopicRuleHttpAuthorizationPropertyToCloudFormation(properties.auth),BatchConfig:convertCfnTopicRuleBatchConfigPropertyToCloudFormation(properties.batchConfig),ConfirmationUrl:cdk().stringToCloudFormation(properties.confirmationUrl),EnableBatching:cdk().booleanToCloudFormation(properties.enableBatching),Headers:cdk().listMapper(convertCfnTopicRuleHttpActionHeaderPropertyToCloudFormation)(properties.headers),Url:cdk().stringToCloudFormation(properties.url)}):properties}function CfnTopicRuleHttpActionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("auth","Auth",properties.Auth!=null?CfnTopicRuleHttpAuthorizationPropertyFromCloudFormation(properties.Auth):void 0),ret.addPropertyResult("batchConfig","BatchConfig",properties.BatchConfig!=null?CfnTopicRuleBatchConfigPropertyFromCloudFormation(properties.BatchConfig):void 0),ret.addPropertyResult("confirmationUrl","ConfirmationUrl",properties.ConfirmationUrl!=null?cfn_parse().FromCloudFormation.getString(properties.ConfirmationUrl):void 0),ret.addPropertyResult("enableBatching","EnableBatching",properties.EnableBatching!=null?cfn_parse().FromCloudFormation.getBoolean(properties.EnableBatching):void 0),ret.addPropertyResult("headers","Headers",properties.Headers!=null?cfn_parse().FromCloudFormation.getArray(CfnTopicRuleHttpActionHeaderPropertyFromCloudFormation)(properties.Headers):void 0),ret.addPropertyResult("url","Url",properties.Url!=null?cfn_parse().FromCloudFormation.getString(properties.Url):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTopicRuleOpenSearchActionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("endpoint",cdk().requiredValidator)(properties.endpoint)),errors.collect(cdk().propertyValidator("endpoint",cdk().validateString)(properties.endpoint)),errors.collect(cdk().propertyValidator("id",cdk().requiredValidator)(properties.id)),errors.collect(cdk().propertyValidator("id",cdk().validateString)(properties.id)),errors.collect(cdk().propertyValidator("index",cdk().requiredValidator)(properties.index)),errors.collect(cdk().propertyValidator("index",cdk().validateString)(properties.index)),errors.collect(cdk().propertyValidator("roleArn",cdk().requiredValidator)(properties.roleArn)),errors.collect(cdk().propertyValidator("roleArn",cdk().validateString)(properties.roleArn)),errors.collect(cdk().propertyValidator("type",cdk().requiredValidator)(properties.type)),errors.collect(cdk().propertyValidator("type",cdk().validateString)(properties.type)),errors.wrap('supplied properties not correct for "OpenSearchActionProperty"')}function convertCfnTopicRuleOpenSearchActionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTopicRuleOpenSearchActionPropertyValidator(properties).assertSuccess(),{Endpoint:cdk().stringToCloudFormation(properties.endpoint),Id:cdk().stringToCloudFormation(properties.id),Index:cdk().stringToCloudFormation(properties.index),RoleArn:cdk().stringToCloudFormation(properties.roleArn),Type:cdk().stringToCloudFormation(properties.type)}):properties}function CfnTopicRuleOpenSearchActionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("endpoint","Endpoint",properties.Endpoint!=null?cfn_parse().FromCloudFormation.getString(properties.Endpoint):void 0),ret.addPropertyResult("id","Id",properties.Id!=null?cfn_parse().FromCloudFormation.getString(properties.Id):void 0),ret.addPropertyResult("index","Index",properties.Index!=null?cfn_parse().FromCloudFormation.getString(properties.Index):void 0),ret.addPropertyResult("roleArn","RoleArn",properties.RoleArn!=null?cfn_parse().FromCloudFormation.getString(properties.RoleArn):void 0),ret.addPropertyResult("type","Type",properties.Type!=null?cfn_parse().FromCloudFormation.getString(properties.Type):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTopicRulePutItemInputPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("tableName",cdk().requiredValidator)(properties.tableName)),errors.collect(cdk().propertyValidator("tableName",cdk().validateString)(properties.tableName)),errors.wrap('supplied properties not correct for "PutItemInputProperty"')}function convertCfnTopicRulePutItemInputPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTopicRulePutItemInputPropertyValidator(properties).assertSuccess(),{TableName:cdk().stringToCloudFormation(properties.tableName)}):properties}function CfnTopicRulePutItemInputPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("tableName","TableName",properties.TableName!=null?cfn_parse().FromCloudFormation.getString(properties.TableName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTopicRuleDynamoDBv2ActionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("putItem",CfnTopicRulePutItemInputPropertyValidator)(properties.putItem)),errors.collect(cdk().propertyValidator("roleArn",cdk().validateString)(properties.roleArn)),errors.wrap('supplied properties not correct for "DynamoDBv2ActionProperty"')}function convertCfnTopicRuleDynamoDBv2ActionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTopicRuleDynamoDBv2ActionPropertyValidator(properties).assertSuccess(),{PutItem:convertCfnTopicRulePutItemInputPropertyToCloudFormation(properties.putItem),RoleArn:cdk().stringToCloudFormation(properties.roleArn)}):properties}function CfnTopicRuleDynamoDBv2ActionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("putItem","PutItem",properties.PutItem!=null?CfnTopicRulePutItemInputPropertyFromCloudFormation(properties.PutItem):void 0),ret.addPropertyResult("roleArn","RoleArn",properties.RoleArn!=null?cfn_parse().FromCloudFormation.getString(properties.RoleArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTopicRuleCloudwatchMetricActionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("metricName",cdk().requiredValidator)(properties.metricName)),errors.collect(cdk().propertyValidator("metricName",cdk().validateString)(properties.metricName)),errors.collect(cdk().propertyValidator("metricNamespace",cdk().requiredValidator)(properties.metricNamespace)),errors.collect(cdk().propertyValidator("metricNamespace",cdk().validateString)(properties.metricNamespace)),errors.collect(cdk().propertyValidator("metricTimestamp",cdk().validateString)(properties.metricTimestamp)),errors.collect(cdk().propertyValidator("metricUnit",cdk().requiredValidator)(properties.metricUnit)),errors.collect(cdk().propertyValidator("metricUnit",cdk().validateString)(properties.metricUnit)),errors.collect(cdk().propertyValidator("metricValue",cdk().requiredValidator)(properties.metricValue)),errors.collect(cdk().propertyValidator("metricValue",cdk().validateString)(properties.metricValue)),errors.collect(cdk().propertyValidator("roleArn",cdk().requiredValidator)(properties.roleArn)),errors.collect(cdk().propertyValidator("roleArn",cdk().validateString)(properties.roleArn)),errors.wrap('supplied properties not correct for "CloudwatchMetricActionProperty"')}function convertCfnTopicRuleCloudwatchMetricActionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTopicRuleCloudwatchMetricActionPropertyValidator(properties).assertSuccess(),{MetricName:cdk().stringToCloudFormation(properties.metricName),MetricNamespace:cdk().stringToCloudFormation(properties.metricNamespace),MetricTimestamp:cdk().stringToCloudFormation(properties.metricTimestamp),MetricUnit:cdk().stringToCloudFormation(properties.metricUnit),MetricValue:cdk().stringToCloudFormation(properties.metricValue),RoleArn:cdk().stringToCloudFormation(properties.roleArn)}):properties}function CfnTopicRuleCloudwatchMetricActionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("metricName","MetricName",properties.MetricName!=null?cfn_parse().FromCloudFormation.getString(properties.MetricName):void 0),ret.addPropertyResult("metricNamespace","MetricNamespace",properties.MetricNamespace!=null?cfn_parse().FromCloudFormation.getString(properties.MetricNamespace):void 0),ret.addPropertyResult("metricTimestamp","MetricTimestamp",properties.MetricTimestamp!=null?cfn_parse().FromCloudFormation.getString(properties.MetricTimestamp):void 0),ret.addPropertyResult("metricUnit","MetricUnit",properties.MetricUnit!=null?cfn_parse().FromCloudFormation.getString(properties.MetricUnit):void 0),ret.addPropertyResult("metricValue","MetricValue",properties.MetricValue!=null?cfn_parse().FromCloudFormation.getString(properties.MetricValue):void 0),ret.addPropertyResult("roleArn","RoleArn",properties.RoleArn!=null?cfn_parse().FromCloudFormation.getString(properties.RoleArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTopicRuleAssetPropertyVariantPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("booleanValue",cdk().validateString)(properties.booleanValue)),errors.collect(cdk().propertyValidator("doubleValue",cdk().validateString)(properties.doubleValue)),errors.collect(cdk().propertyValidator("integerValue",cdk().validateString)(properties.integerValue)),errors.collect(cdk().propertyValidator("stringValue",cdk().validateString)(properties.stringValue)),errors.wrap('supplied properties not correct for "AssetPropertyVariantProperty"')}function convertCfnTopicRuleAssetPropertyVariantPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTopicRuleAssetPropertyVariantPropertyValidator(properties).assertSuccess(),{BooleanValue:cdk().stringToCloudFormation(properties.booleanValue),DoubleValue:cdk().stringToCloudFormation(properties.doubleValue),IntegerValue:cdk().stringToCloudFormation(properties.integerValue),StringValue:cdk().stringToCloudFormation(properties.stringValue)}):properties}function CfnTopicRuleAssetPropertyVariantPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("booleanValue","BooleanValue",properties.BooleanValue!=null?cfn_parse().FromCloudFormation.getString(properties.BooleanValue):void 0),ret.addPropertyResult("doubleValue","DoubleValue",properties.DoubleValue!=null?cfn_parse().FromCloudFormation.getString(properties.DoubleValue):void 0),ret.addPropertyResult("integerValue","IntegerValue",properties.IntegerValue!=null?cfn_parse().FromCloudFormation.getString(properties.IntegerValue):void 0),ret.addPropertyResult("stringValue","StringValue",properties.StringValue!=null?cfn_parse().FromCloudFormation.getString(properties.StringValue):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTopicRuleAssetPropertyTimestampPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("offsetInNanos",cdk().validateString)(properties.offsetInNanos)),errors.collect(cdk().propertyValidator("timeInSeconds",cdk().requiredValidator)(properties.timeInSeconds)),errors.collect(cdk().propertyValidator("timeInSeconds",cdk().validateString)(properties.timeInSeconds)),errors.wrap('supplied properties not correct for "AssetPropertyTimestampProperty"')}function convertCfnTopicRuleAssetPropertyTimestampPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTopicRuleAssetPropertyTimestampPropertyValidator(properties).assertSuccess(),{OffsetInNanos:cdk().stringToCloudFormation(properties.offsetInNanos),TimeInSeconds:cdk().stringToCloudFormation(properties.timeInSeconds)}):properties}function CfnTopicRuleAssetPropertyTimestampPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("offsetInNanos","OffsetInNanos",properties.OffsetInNanos!=null?cfn_parse().FromCloudFormation.getString(properties.OffsetInNanos):void 0),ret.addPropertyResult("timeInSeconds","TimeInSeconds",properties.TimeInSeconds!=null?cfn_parse().FromCloudFormation.getString(properties.TimeInSeconds):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTopicRuleAssetPropertyValuePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("quality",cdk().validateString)(properties.quality)),errors.collect(cdk().propertyValidator("timestamp",cdk().requiredValidator)(properties.timestamp)),errors.collect(cdk().propertyValidator("timestamp",CfnTopicRuleAssetPropertyTimestampPropertyValidator)(properties.timestamp)),errors.collect(cdk().propertyValidator("value",cdk().requiredValidator)(properties.value)),errors.collect(cdk().propertyValidator("value",CfnTopicRuleAssetPropertyVariantPropertyValidator)(properties.value)),errors.wrap('supplied properties not correct for "AssetPropertyValueProperty"')}function convertCfnTopicRuleAssetPropertyValuePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTopicRuleAssetPropertyValuePropertyValidator(properties).assertSuccess(),{Quality:cdk().stringToCloudFormation(properties.quality),Timestamp:convertCfnTopicRuleAssetPropertyTimestampPropertyToCloudFormation(properties.timestamp),Value:convertCfnTopicRuleAssetPropertyVariantPropertyToCloudFormation(properties.value)}):properties}function CfnTopicRuleAssetPropertyValuePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("quality","Quality",properties.Quality!=null?cfn_parse().FromCloudFormation.getString(properties.Quality):void 0),ret.addPropertyResult("timestamp","Timestamp",properties.Timestamp!=null?CfnTopicRuleAssetPropertyTimestampPropertyFromCloudFormation(properties.Timestamp):void 0),ret.addPropertyResult("value","Value",properties.Value!=null?CfnTopicRuleAssetPropertyVariantPropertyFromCloudFormation(properties.Value):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTopicRulePutAssetPropertyValueEntryPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("assetId",cdk().validateString)(properties.assetId)),errors.collect(cdk().propertyValidator("entryId",cdk().validateString)(properties.entryId)),errors.collect(cdk().propertyValidator("propertyAlias",cdk().validateString)(properties.propertyAlias)),errors.collect(cdk().propertyValidator("propertyId",cdk().validateString)(properties.propertyId)),errors.collect(cdk().propertyValidator("propertyValues",cdk().requiredValidator)(properties.propertyValues)),errors.collect(cdk().propertyValidator("propertyValues",cdk().listValidator(CfnTopicRuleAssetPropertyValuePropertyValidator))(properties.propertyValues)),errors.wrap('supplied properties not correct for "PutAssetPropertyValueEntryProperty"')}function convertCfnTopicRulePutAssetPropertyValueEntryPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTopicRulePutAssetPropertyValueEntryPropertyValidator(properties).assertSuccess(),{AssetId:cdk().stringToCloudFormation(properties.assetId),EntryId:cdk().stringToCloudFormation(properties.entryId),PropertyAlias:cdk().stringToCloudFormation(properties.propertyAlias),PropertyId:cdk().stringToCloudFormation(properties.propertyId),PropertyValues:cdk().listMapper(convertCfnTopicRuleAssetPropertyValuePropertyToCloudFormation)(properties.propertyValues)}):properties}function CfnTopicRulePutAssetPropertyValueEntryPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("assetId","AssetId",properties.AssetId!=null?cfn_parse().FromCloudFormation.getString(properties.AssetId):void 0),ret.addPropertyResult("entryId","EntryId",properties.EntryId!=null?cfn_parse().FromCloudFormation.getString(properties.EntryId):void 0),ret.addPropertyResult("propertyAlias","PropertyAlias",properties.PropertyAlias!=null?cfn_parse().FromCloudFormation.getString(properties.PropertyAlias):void 0),ret.addPropertyResult("propertyId","PropertyId",properties.PropertyId!=null?cfn_parse().FromCloudFormation.getString(properties.PropertyId):void 0),ret.addPropertyResult("propertyValues","PropertyValues",properties.PropertyValues!=null?cfn_parse().FromCloudFormation.getArray(CfnTopicRuleAssetPropertyValuePropertyFromCloudFormation)(properties.PropertyValues):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTopicRuleIotSiteWiseActionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("putAssetPropertyValueEntries",cdk().requiredValidator)(properties.putAssetPropertyValueEntries)),errors.collect(cdk().propertyValidator("putAssetPropertyValueEntries",cdk().listValidator(CfnTopicRulePutAssetPropertyValueEntryPropertyValidator))(properties.putAssetPropertyValueEntries)),errors.collect(cdk().propertyValidator("roleArn",cdk().requiredValidator)(properties.roleArn)),errors.collect(cdk().propertyValidator("roleArn",cdk().validateString)(properties.roleArn)),errors.wrap('supplied properties not correct for "IotSiteWiseActionProperty"')}function convertCfnTopicRuleIotSiteWiseActionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTopicRuleIotSiteWiseActionPropertyValidator(properties).assertSuccess(),{PutAssetPropertyValueEntries:cdk().listMapper(convertCfnTopicRulePutAssetPropertyValueEntryPropertyToCloudFormation)(properties.putAssetPropertyValueEntries),RoleArn:cdk().stringToCloudFormation(properties.roleArn)}):properties}function CfnTopicRuleIotSiteWiseActionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("putAssetPropertyValueEntries","PutAssetPropertyValueEntries",properties.PutAssetPropertyValueEntries!=null?cfn_parse().FromCloudFormation.getArray(CfnTopicRulePutAssetPropertyValueEntryPropertyFromCloudFormation)(properties.PutAssetPropertyValueEntries):void 0),ret.addPropertyResult("roleArn","RoleArn",properties.RoleArn!=null?cfn_parse().FromCloudFormation.getString(properties.RoleArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTopicRuleElasticsearchActionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("endpoint",cdk().requiredValidator)(properties.endpoint)),errors.collect(cdk().propertyValidator("endpoint",cdk().validateString)(properties.endpoint)),errors.collect(cdk().propertyValidator("id",cdk().requiredValidator)(properties.id)),errors.collect(cdk().propertyValidator("id",cdk().validateString)(properties.id)),errors.collect(cdk().propertyValidator("index",cdk().requiredValidator)(properties.index)),errors.collect(cdk().propertyValidator("index",cdk().validateString)(properties.index)),errors.collect(cdk().propertyValidator("roleArn",cdk().requiredValidator)(properties.roleArn)),errors.collect(cdk().propertyValidator("roleArn",cdk().validateString)(properties.roleArn)),errors.collect(cdk().propertyValidator("type",cdk().requiredValidator)(properties.type)),errors.collect(cdk().propertyValidator("type",cdk().validateString)(properties.type)),errors.wrap('supplied properties not correct for "ElasticsearchActionProperty"')}function convertCfnTopicRuleElasticsearchActionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTopicRuleElasticsearchActionPropertyValidator(properties).assertSuccess(),{Endpoint:cdk().stringToCloudFormation(properties.endpoint),Id:cdk().stringToCloudFormation(properties.id),Index:cdk().stringToCloudFormation(properties.index),RoleArn:cdk().stringToCloudFormation(properties.roleArn),Type:cdk().stringToCloudFormation(properties.type)}):properties}function CfnTopicRuleElasticsearchActionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("endpoint","Endpoint",properties.Endpoint!=null?cfn_parse().FromCloudFormation.getString(properties.Endpoint):void 0),ret.addPropertyResult("id","Id",properties.Id!=null?cfn_parse().FromCloudFormation.getString(properties.Id):void 0),ret.addPropertyResult("index","Index",properties.Index!=null?cfn_parse().FromCloudFormation.getString(properties.Index):void 0),ret.addPropertyResult("roleArn","RoleArn",properties.RoleArn!=null?cfn_parse().FromCloudFormation.getString(properties.RoleArn):void 0),ret.addPropertyResult("type","Type",properties.Type!=null?cfn_parse().FromCloudFormation.getString(properties.Type):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTopicRuleSqsActionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("queueUrl",cdk().requiredValidator)(properties.queueUrl)),errors.collect(cdk().propertyValidator("queueUrl",cdk().validateString)(properties.queueUrl)),errors.collect(cdk().propertyValidator("roleArn",cdk().requiredValidator)(properties.roleArn)),errors.collect(cdk().propertyValidator("roleArn",cdk().validateString)(properties.roleArn)),errors.collect(cdk().propertyValidator("useBase64",cdk().validateBoolean)(properties.useBase64)),errors.wrap('supplied properties not correct for "SqsActionProperty"')}function convertCfnTopicRuleSqsActionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTopicRuleSqsActionPropertyValidator(properties).assertSuccess(),{QueueUrl:cdk().stringToCloudFormation(properties.queueUrl),RoleArn:cdk().stringToCloudFormation(properties.roleArn),UseBase64:cdk().booleanToCloudFormation(properties.useBase64)}):properties}function CfnTopicRuleSqsActionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("queueUrl","QueueUrl",properties.QueueUrl!=null?cfn_parse().FromCloudFormation.getString(properties.QueueUrl):void 0),ret.addPropertyResult("roleArn","RoleArn",properties.RoleArn!=null?cfn_parse().FromCloudFormation.getString(properties.RoleArn):void 0),ret.addPropertyResult("useBase64","UseBase64",properties.UseBase64!=null?cfn_parse().FromCloudFormation.getBoolean(properties.UseBase64):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTopicRuleKinesisActionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("partitionKey",cdk().validateString)(properties.partitionKey)),errors.collect(cdk().propertyValidator("roleArn",cdk().requiredValidator)(properties.roleArn)),errors.collect(cdk().propertyValidator("roleArn",cdk().validateString)(properties.roleArn)),errors.collect(cdk().propertyValidator("streamName",cdk().requiredValidator)(properties.streamName)),errors.collect(cdk().propertyValidator("streamName",cdk().validateString)(properties.streamName)),errors.wrap('supplied properties not correct for "KinesisActionProperty"')}function convertCfnTopicRuleKinesisActionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTopicRuleKinesisActionPropertyValidator(properties).assertSuccess(),{PartitionKey:cdk().stringToCloudFormation(properties.partitionKey),RoleArn:cdk().stringToCloudFormation(properties.roleArn),StreamName:cdk().stringToCloudFormation(properties.streamName)}):properties}function CfnTopicRuleKinesisActionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("partitionKey","PartitionKey",properties.PartitionKey!=null?cfn_parse().FromCloudFormation.getString(properties.PartitionKey):void 0),ret.addPropertyResult("roleArn","RoleArn",properties.RoleArn!=null?cfn_parse().FromCloudFormation.getString(properties.RoleArn):void 0),ret.addPropertyResult("streamName","StreamName",properties.StreamName!=null?cfn_parse().FromCloudFormation.getString(properties.StreamName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTopicRuleCloudwatchLogsActionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("batchMode",cdk().validateBoolean)(properties.batchMode)),errors.collect(cdk().propertyValidator("logGroupName",cdk().requiredValidator)(properties.logGroupName)),errors.collect(cdk().propertyValidator("logGroupName",cdk().validateString)(properties.logGroupName)),errors.collect(cdk().propertyValidator("roleArn",cdk().requiredValidator)(properties.roleArn)),errors.collect(cdk().propertyValidator("roleArn",cdk().validateString)(properties.roleArn)),errors.wrap('supplied properties not correct for "CloudwatchLogsActionProperty"')}function convertCfnTopicRuleCloudwatchLogsActionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTopicRuleCloudwatchLogsActionPropertyValidator(properties).assertSuccess(),{BatchMode:cdk().booleanToCloudFormation(properties.batchMode),LogGroupName:cdk().stringToCloudFormation(properties.logGroupName),RoleArn:cdk().stringToCloudFormation(properties.roleArn)}):properties}function CfnTopicRuleCloudwatchLogsActionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("batchMode","BatchMode",properties.BatchMode!=null?cfn_parse().FromCloudFormation.getBoolean(properties.BatchMode):void 0),ret.addPropertyResult("logGroupName","LogGroupName",properties.LogGroupName!=null?cfn_parse().FromCloudFormation.getString(properties.LogGroupName):void 0),ret.addPropertyResult("roleArn","RoleArn",properties.RoleArn!=null?cfn_parse().FromCloudFormation.getString(properties.RoleArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTopicRuleTimestreamDimensionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("value",cdk().requiredValidator)(properties.value)),errors.collect(cdk().propertyValidator("value",cdk().validateString)(properties.value)),errors.wrap('supplied properties not correct for "TimestreamDimensionProperty"')}function convertCfnTopicRuleTimestreamDimensionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTopicRuleTimestreamDimensionPropertyValidator(properties).assertSuccess(),{Name:cdk().stringToCloudFormation(properties.name),Value:cdk().stringToCloudFormation(properties.value)}):properties}function CfnTopicRuleTimestreamDimensionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("value","Value",properties.Value!=null?cfn_parse().FromCloudFormation.getString(properties.Value):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTopicRuleTimestreamTimestampPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("unit",cdk().requiredValidator)(properties.unit)),errors.collect(cdk().propertyValidator("unit",cdk().validateString)(properties.unit)),errors.collect(cdk().propertyValidator("value",cdk().requiredValidator)(properties.value)),errors.collect(cdk().propertyValidator("value",cdk().validateString)(properties.value)),errors.wrap('supplied properties not correct for "TimestreamTimestampProperty"')}function convertCfnTopicRuleTimestreamTimestampPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTopicRuleTimestreamTimestampPropertyValidator(properties).assertSuccess(),{Unit:cdk().stringToCloudFormation(properties.unit),Value:cdk().stringToCloudFormation(properties.value)}):properties}function CfnTopicRuleTimestreamTimestampPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("unit","Unit",properties.Unit!=null?cfn_parse().FromCloudFormation.getString(properties.Unit):void 0),ret.addPropertyResult("value","Value",properties.Value!=null?cfn_parse().FromCloudFormation.getString(properties.Value):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTopicRuleTimestreamActionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("databaseName",cdk().requiredValidator)(properties.databaseName)),errors.collect(cdk().propertyValidator("databaseName",cdk().validateString)(properties.databaseName)),errors.collect(cdk().propertyValidator("dimensions",cdk().requiredValidator)(properties.dimensions)),errors.collect(cdk().propertyValidator("dimensions",cdk().listValidator(CfnTopicRuleTimestreamDimensionPropertyValidator))(properties.dimensions)),errors.collect(cdk().propertyValidator("roleArn",cdk().requiredValidator)(properties.roleArn)),errors.collect(cdk().propertyValidator("roleArn",cdk().validateString)(properties.roleArn)),errors.collect(cdk().propertyValidator("tableName",cdk().requiredValidator)(properties.tableName)),errors.collect(cdk().propertyValidator("tableName",cdk().validateString)(properties.tableName)),errors.collect(cdk().propertyValidator("timestamp",CfnTopicRuleTimestreamTimestampPropertyValidator)(properties.timestamp)),errors.wrap('supplied properties not correct for "TimestreamActionProperty"')}function convertCfnTopicRuleTimestreamActionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTopicRuleTimestreamActionPropertyValidator(properties).assertSuccess(),{DatabaseName:cdk().stringToCloudFormation(properties.databaseName),Dimensions:cdk().listMapper(convertCfnTopicRuleTimestreamDimensionPropertyToCloudFormation)(properties.dimensions),RoleArn:cdk().stringToCloudFormation(properties.roleArn),TableName:cdk().stringToCloudFormation(properties.tableName),Timestamp:convertCfnTopicRuleTimestreamTimestampPropertyToCloudFormation(properties.timestamp)}):properties}function CfnTopicRuleTimestreamActionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("databaseName","DatabaseName",properties.DatabaseName!=null?cfn_parse().FromCloudFormation.getString(properties.DatabaseName):void 0),ret.addPropertyResult("dimensions","Dimensions",properties.Dimensions!=null?cfn_parse().FromCloudFormation.getArray(CfnTopicRuleTimestreamDimensionPropertyFromCloudFormation)(properties.Dimensions):void 0),ret.addPropertyResult("roleArn","RoleArn",properties.RoleArn!=null?cfn_parse().FromCloudFormation.getString(properties.RoleArn):void 0),ret.addPropertyResult("tableName","TableName",properties.TableName!=null?cfn_parse().FromCloudFormation.getString(properties.TableName):void 0),ret.addPropertyResult("timestamp","Timestamp",properties.Timestamp!=null?CfnTopicRuleTimestreamTimestampPropertyFromCloudFormation(properties.Timestamp):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTopicRuleIotAnalyticsActionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("batchMode",cdk().validateBoolean)(properties.batchMode)),errors.collect(cdk().propertyValidator("channelName",cdk().requiredValidator)(properties.channelName)),errors.collect(cdk().propertyValidator("channelName",cdk().validateString)(properties.channelName)),errors.collect(cdk().propertyValidator("roleArn",cdk().requiredValidator)(properties.roleArn)),errors.collect(cdk().propertyValidator("roleArn",cdk().validateString)(properties.roleArn)),errors.wrap('supplied properties not correct for "IotAnalyticsActionProperty"')}function convertCfnTopicRuleIotAnalyticsActionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTopicRuleIotAnalyticsActionPropertyValidator(properties).assertSuccess(),{BatchMode:cdk().booleanToCloudFormation(properties.batchMode),ChannelName:cdk().stringToCloudFormation(properties.channelName),RoleArn:cdk().stringToCloudFormation(properties.roleArn)}):properties}function CfnTopicRuleIotAnalyticsActionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("batchMode","BatchMode",properties.BatchMode!=null?cfn_parse().FromCloudFormation.getBoolean(properties.BatchMode):void 0),ret.addPropertyResult("channelName","ChannelName",properties.ChannelName!=null?cfn_parse().FromCloudFormation.getString(properties.ChannelName):void 0),ret.addPropertyResult("roleArn","RoleArn",properties.RoleArn!=null?cfn_parse().FromCloudFormation.getString(properties.RoleArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTopicRuleSnsActionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("messageFormat",cdk().validateString)(properties.messageFormat)),errors.collect(cdk().propertyValidator("roleArn",cdk().requiredValidator)(properties.roleArn)),errors.collect(cdk().propertyValidator("roleArn",cdk().validateString)(properties.roleArn)),errors.collect(cdk().propertyValidator("targetArn",cdk().requiredValidator)(properties.targetArn)),errors.collect(cdk().propertyValidator("targetArn",cdk().validateString)(properties.targetArn)),errors.wrap('supplied properties not correct for "SnsActionProperty"')}function convertCfnTopicRuleSnsActionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTopicRuleSnsActionPropertyValidator(properties).assertSuccess(),{MessageFormat:cdk().stringToCloudFormation(properties.messageFormat),RoleArn:cdk().stringToCloudFormation(properties.roleArn),TargetArn:cdk().stringToCloudFormation(properties.targetArn)}):properties}function CfnTopicRuleSnsActionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("messageFormat","MessageFormat",properties.MessageFormat!=null?cfn_parse().FromCloudFormation.getString(properties.MessageFormat):void 0),ret.addPropertyResult("roleArn","RoleArn",properties.RoleArn!=null?cfn_parse().FromCloudFormation.getString(properties.RoleArn):void 0),ret.addPropertyResult("targetArn","TargetArn",properties.TargetArn!=null?cfn_parse().FromCloudFormation.getString(properties.TargetArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTopicRuleLambdaActionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("functionArn",cdk().validateString)(properties.functionArn)),errors.wrap('supplied properties not correct for "LambdaActionProperty"')}function convertCfnTopicRuleLambdaActionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTopicRuleLambdaActionPropertyValidator(properties).assertSuccess(),{FunctionArn:cdk().stringToCloudFormation(properties.functionArn)}):properties}function CfnTopicRuleLambdaActionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("functionArn","FunctionArn",properties.FunctionArn!=null?cfn_parse().FromCloudFormation.getString(properties.FunctionArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTopicRuleTimestampPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("unit",cdk().validateString)(properties.unit)),errors.collect(cdk().propertyValidator("value",cdk().requiredValidator)(properties.value)),errors.collect(cdk().propertyValidator("value",cdk().validateString)(properties.value)),errors.wrap('supplied properties not correct for "TimestampProperty"')}function convertCfnTopicRuleTimestampPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTopicRuleTimestampPropertyValidator(properties).assertSuccess(),{Unit:cdk().stringToCloudFormation(properties.unit),Value:cdk().stringToCloudFormation(properties.value)}):properties}function CfnTopicRuleTimestampPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("unit","Unit",properties.Unit!=null?cfn_parse().FromCloudFormation.getString(properties.Unit):void 0),ret.addPropertyResult("value","Value",properties.Value!=null?cfn_parse().FromCloudFormation.getString(properties.Value):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTopicRuleLocationActionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("deviceId",cdk().requiredValidator)(properties.deviceId)),errors.collect(cdk().propertyValidator("deviceId",cdk().validateString)(properties.deviceId)),errors.collect(cdk().propertyValidator("latitude",cdk().requiredValidator)(properties.latitude)),errors.collect(cdk().propertyValidator("latitude",cdk().validateString)(properties.latitude)),errors.collect(cdk().propertyValidator("longitude",cdk().requiredValidator)(properties.longitude)),errors.collect(cdk().propertyValidator("longitude",cdk().validateString)(properties.longitude)),errors.collect(cdk().propertyValidator("roleArn",cdk().requiredValidator)(properties.roleArn)),errors.collect(cdk().propertyValidator("roleArn",cdk().validateString)(properties.roleArn)),errors.collect(cdk().propertyValidator("timestamp",CfnTopicRuleTimestampPropertyValidator)(properties.timestamp)),errors.collect(cdk().propertyValidator("trackerName",cdk().requiredValidator)(properties.trackerName)),errors.collect(cdk().propertyValidator("trackerName",cdk().validateString)(properties.trackerName)),errors.wrap('supplied properties not correct for "LocationActionProperty"')}function convertCfnTopicRuleLocationActionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTopicRuleLocationActionPropertyValidator(properties).assertSuccess(),{DeviceId:cdk().stringToCloudFormation(properties.deviceId),Latitude:cdk().stringToCloudFormation(properties.latitude),Longitude:cdk().stringToCloudFormation(properties.longitude),RoleArn:cdk().stringToCloudFormation(properties.roleArn),Timestamp:convertCfnTopicRuleTimestampPropertyToCloudFormation(properties.timestamp),TrackerName:cdk().stringToCloudFormation(properties.trackerName)}):properties}function CfnTopicRuleLocationActionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("deviceId","DeviceId",properties.DeviceId!=null?cfn_parse().FromCloudFormation.getString(properties.DeviceId):void 0),ret.addPropertyResult("latitude","Latitude",properties.Latitude!=null?cfn_parse().FromCloudFormation.getString(properties.Latitude):void 0),ret.addPropertyResult("longitude","Longitude",properties.Longitude!=null?cfn_parse().FromCloudFormation.getString(properties.Longitude):void 0),ret.addPropertyResult("roleArn","RoleArn",properties.RoleArn!=null?cfn_parse().FromCloudFormation.getString(properties.RoleArn):void 0),ret.addPropertyResult("timestamp","Timestamp",properties.Timestamp!=null?CfnTopicRuleTimestampPropertyFromCloudFormation(properties.Timestamp):void 0),ret.addPropertyResult("trackerName","TrackerName",properties.TrackerName!=null?cfn_parse().FromCloudFormation.getString(properties.TrackerName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTopicRuleActionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("cloudwatchAlarm",CfnTopicRuleCloudwatchAlarmActionPropertyValidator)(properties.cloudwatchAlarm)),errors.collect(cdk().propertyValidator("cloudwatchLogs",CfnTopicRuleCloudwatchLogsActionPropertyValidator)(properties.cloudwatchLogs)),errors.collect(cdk().propertyValidator("cloudwatchMetric",CfnTopicRuleCloudwatchMetricActionPropertyValidator)(properties.cloudwatchMetric)),errors.collect(cdk().propertyValidator("dynamoDb",CfnTopicRuleDynamoDBActionPropertyValidator)(properties.dynamoDb)),errors.collect(cdk().propertyValidator("dynamoDBv2",CfnTopicRuleDynamoDBv2ActionPropertyValidator)(properties.dynamoDBv2)),errors.collect(cdk().propertyValidator("elasticsearch",CfnTopicRuleElasticsearchActionPropertyValidator)(properties.elasticsearch)),errors.collect(cdk().propertyValidator("firehose",CfnTopicRuleFirehoseActionPropertyValidator)(properties.firehose)),errors.collect(cdk().propertyValidator("http",CfnTopicRuleHttpActionPropertyValidator)(properties.http)),errors.collect(cdk().propertyValidator("iotAnalytics",CfnTopicRuleIotAnalyticsActionPropertyValidator)(properties.iotAnalytics)),errors.collect(cdk().propertyValidator("iotEvents",CfnTopicRuleIotEventsActionPropertyValidator)(properties.iotEvents)),errors.collect(cdk().propertyValidator("iotSiteWise",CfnTopicRuleIotSiteWiseActionPropertyValidator)(properties.iotSiteWise)),errors.collect(cdk().propertyValidator("kafka",CfnTopicRuleKafkaActionPropertyValidator)(properties.kafka)),errors.collect(cdk().propertyValidator("kinesis",CfnTopicRuleKinesisActionPropertyValidator)(properties.kinesis)),errors.collect(cdk().propertyValidator("lambda",CfnTopicRuleLambdaActionPropertyValidator)(properties.lambda)),errors.collect(cdk().propertyValidator("location",CfnTopicRuleLocationActionPropertyValidator)(properties.location)),errors.collect(cdk().propertyValidator("openSearch",CfnTopicRuleOpenSearchActionPropertyValidator)(properties.openSearch)),errors.collect(cdk().propertyValidator("republish",CfnTopicRuleRepublishActionPropertyValidator)(properties.republish)),errors.collect(cdk().propertyValidator("s3",CfnTopicRuleS3ActionPropertyValidator)(properties.s3)),errors.collect(cdk().propertyValidator("sns",CfnTopicRuleSnsActionPropertyValidator)(properties.sns)),errors.collect(cdk().propertyValidator("sqs",CfnTopicRuleSqsActionPropertyValidator)(properties.sqs)),errors.collect(cdk().propertyValidator("stepFunctions",CfnTopicRuleStepFunctionsActionPropertyValidator)(properties.stepFunctions)),errors.collect(cdk().propertyValidator("timestream",CfnTopicRuleTimestreamActionPropertyValidator)(properties.timestream)),errors.wrap('supplied properties not correct for "ActionProperty"')}function convertCfnTopicRuleActionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTopicRuleActionPropertyValidator(properties).assertSuccess(),{CloudwatchAlarm:convertCfnTopicRuleCloudwatchAlarmActionPropertyToCloudFormation(properties.cloudwatchAlarm),CloudwatchLogs:convertCfnTopicRuleCloudwatchLogsActionPropertyToCloudFormation(properties.cloudwatchLogs),CloudwatchMetric:convertCfnTopicRuleCloudwatchMetricActionPropertyToCloudFormation(properties.cloudwatchMetric),DynamoDB:convertCfnTopicRuleDynamoDBActionPropertyToCloudFormation(properties.dynamoDb),DynamoDBv2:convertCfnTopicRuleDynamoDBv2ActionPropertyToCloudFormation(properties.dynamoDBv2),Elasticsearch:convertCfnTopicRuleElasticsearchActionPropertyToCloudFormation(properties.elasticsearch),Firehose:convertCfnTopicRuleFirehoseActionPropertyToCloudFormation(properties.firehose),Http:convertCfnTopicRuleHttpActionPropertyToCloudFormation(properties.http),IotAnalytics:convertCfnTopicRuleIotAnalyticsActionPropertyToCloudFormation(properties.iotAnalytics),IotEvents:convertCfnTopicRuleIotEventsActionPropertyToCloudFormation(properties.iotEvents),IotSiteWise:convertCfnTopicRuleIotSiteWiseActionPropertyToCloudFormation(properties.iotSiteWise),Kafka:convertCfnTopicRuleKafkaActionPropertyToCloudFormation(properties.kafka),Kinesis:convertCfnTopicRuleKinesisActionPropertyToCloudFormation(properties.kinesis),Lambda:convertCfnTopicRuleLambdaActionPropertyToCloudFormation(properties.lambda),Location:convertCfnTopicRuleLocationActionPropertyToCloudFormation(properties.location),OpenSearch:convertCfnTopicRuleOpenSearchActionPropertyToCloudFormation(properties.openSearch),Republish:convertCfnTopicRuleRepublishActionPropertyToCloudFormation(properties.republish),S3:convertCfnTopicRuleS3ActionPropertyToCloudFormation(properties.s3),Sns:convertCfnTopicRuleSnsActionPropertyToCloudFormation(properties.sns),Sqs:convertCfnTopicRuleSqsActionPropertyToCloudFormation(properties.sqs),StepFunctions:convertCfnTopicRuleStepFunctionsActionPropertyToCloudFormation(properties.stepFunctions),Timestream:convertCfnTopicRuleTimestreamActionPropertyToCloudFormation(properties.timestream)}):properties}function CfnTopicRuleActionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("cloudwatchAlarm","CloudwatchAlarm",properties.CloudwatchAlarm!=null?CfnTopicRuleCloudwatchAlarmActionPropertyFromCloudFormation(properties.CloudwatchAlarm):void 0),ret.addPropertyResult("cloudwatchLogs","CloudwatchLogs",properties.CloudwatchLogs!=null?CfnTopicRuleCloudwatchLogsActionPropertyFromCloudFormation(properties.CloudwatchLogs):void 0),ret.addPropertyResult("cloudwatchMetric","CloudwatchMetric",properties.CloudwatchMetric!=null?CfnTopicRuleCloudwatchMetricActionPropertyFromCloudFormation(properties.CloudwatchMetric):void 0),ret.addPropertyResult("dynamoDb","DynamoDB",properties.DynamoDB!=null?CfnTopicRuleDynamoDBActionPropertyFromCloudFormation(properties.DynamoDB):void 0),ret.addPropertyResult("dynamoDBv2","DynamoDBv2",properties.DynamoDBv2!=null?CfnTopicRuleDynamoDBv2ActionPropertyFromCloudFormation(properties.DynamoDBv2):void 0),ret.addPropertyResult("elasticsearch","Elasticsearch",properties.Elasticsearch!=null?CfnTopicRuleElasticsearchActionPropertyFromCloudFormation(properties.Elasticsearch):void 0),ret.addPropertyResult("firehose","Firehose",properties.Firehose!=null?CfnTopicRuleFirehoseActionPropertyFromCloudFormation(properties.Firehose):void 0),ret.addPropertyResult("http","Http",properties.Http!=null?CfnTopicRuleHttpActionPropertyFromCloudFormation(properties.Http):void 0),ret.addPropertyResult("iotAnalytics","IotAnalytics",properties.IotAnalytics!=null?CfnTopicRuleIotAnalyticsActionPropertyFromCloudFormation(properties.IotAnalytics):void 0),ret.addPropertyResult("iotEvents","IotEvents",properties.IotEvents!=null?CfnTopicRuleIotEventsActionPropertyFromCloudFormation(properties.IotEvents):void 0),ret.addPropertyResult("iotSiteWise","IotSiteWise",properties.IotSiteWise!=null?CfnTopicRuleIotSiteWiseActionPropertyFromCloudFormation(properties.IotSiteWise):void 0),ret.addPropertyResult("kafka","Kafka",properties.Kafka!=null?CfnTopicRuleKafkaActionPropertyFromCloudFormation(properties.Kafka):void 0),ret.addPropertyResult("kinesis","Kinesis",properties.Kinesis!=null?CfnTopicRuleKinesisActionPropertyFromCloudFormation(properties.Kinesis):void 0),ret.addPropertyResult("lambda","Lambda",properties.Lambda!=null?CfnTopicRuleLambdaActionPropertyFromCloudFormation(properties.Lambda):void 0),ret.addPropertyResult("location","Location",properties.Location!=null?CfnTopicRuleLocationActionPropertyFromCloudFormation(properties.Location):void 0),ret.addPropertyResult("openSearch","OpenSearch",properties.OpenSearch!=null?CfnTopicRuleOpenSearchActionPropertyFromCloudFormation(properties.OpenSearch):void 0),ret.addPropertyResult("republish","Republish",properties.Republish!=null?CfnTopicRuleRepublishActionPropertyFromCloudFormation(properties.Republish):void 0),ret.addPropertyResult("s3","S3",properties.S3!=null?CfnTopicRuleS3ActionPropertyFromCloudFormation(properties.S3):void 0),ret.addPropertyResult("sns","Sns",properties.Sns!=null?CfnTopicRuleSnsActionPropertyFromCloudFormation(properties.Sns):void 0),ret.addPropertyResult("sqs","Sqs",properties.Sqs!=null?CfnTopicRuleSqsActionPropertyFromCloudFormation(properties.Sqs):void 0),ret.addPropertyResult("stepFunctions","StepFunctions",properties.StepFunctions!=null?CfnTopicRuleStepFunctionsActionPropertyFromCloudFormation(properties.StepFunctions):void 0),ret.addPropertyResult("timestream","Timestream",properties.Timestream!=null?CfnTopicRuleTimestreamActionPropertyFromCloudFormation(properties.Timestream):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTopicRuleTopicRulePayloadPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("actions",cdk().requiredValidator)(properties.actions)),errors.collect(cdk().propertyValidator("actions",cdk().listValidator(CfnTopicRuleActionPropertyValidator))(properties.actions)),errors.collect(cdk().propertyValidator("awsIotSqlVersion",cdk().validateString)(properties.awsIotSqlVersion)),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("errorAction",CfnTopicRuleActionPropertyValidator)(properties.errorAction)),errors.collect(cdk().propertyValidator("ruleDisabled",cdk().validateBoolean)(properties.ruleDisabled)),errors.collect(cdk().propertyValidator("sql",cdk().requiredValidator)(properties.sql)),errors.collect(cdk().propertyValidator("sql",cdk().validateString)(properties.sql)),errors.wrap('supplied properties not correct for "TopicRulePayloadProperty"')}function convertCfnTopicRuleTopicRulePayloadPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTopicRuleTopicRulePayloadPropertyValidator(properties).assertSuccess(),{Actions:cdk().listMapper(convertCfnTopicRuleActionPropertyToCloudFormation)(properties.actions),AwsIotSqlVersion:cdk().stringToCloudFormation(properties.awsIotSqlVersion),Description:cdk().stringToCloudFormation(properties.description),ErrorAction:convertCfnTopicRuleActionPropertyToCloudFormation(properties.errorAction),RuleDisabled:cdk().booleanToCloudFormation(properties.ruleDisabled),Sql:cdk().stringToCloudFormation(properties.sql)}):properties}function CfnTopicRuleTopicRulePayloadPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("actions","Actions",properties.Actions!=null?cfn_parse().FromCloudFormation.getArray(CfnTopicRuleActionPropertyFromCloudFormation)(properties.Actions):void 0),ret.addPropertyResult("awsIotSqlVersion","AwsIotSqlVersion",properties.AwsIotSqlVersion!=null?cfn_parse().FromCloudFormation.getString(properties.AwsIotSqlVersion):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("errorAction","ErrorAction",properties.ErrorAction!=null?CfnTopicRuleActionPropertyFromCloudFormation(properties.ErrorAction):void 0),ret.addPropertyResult("ruleDisabled","RuleDisabled",properties.RuleDisabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.RuleDisabled):void 0),ret.addPropertyResult("sql","Sql",properties.Sql!=null?cfn_parse().FromCloudFormation.getString(properties.Sql):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTopicRulePropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("ruleName",cdk().validateString)(properties.ruleName)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("topicRulePayload",cdk().requiredValidator)(properties.topicRulePayload)),errors.collect(cdk().propertyValidator("topicRulePayload",CfnTopicRuleTopicRulePayloadPropertyValidator)(properties.topicRulePayload)),errors.wrap('supplied properties not correct for "CfnTopicRuleProps"')}function convertCfnTopicRulePropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTopicRulePropsValidator(properties).assertSuccess(),{RuleName:cdk().stringToCloudFormation(properties.ruleName),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),TopicRulePayload:convertCfnTopicRuleTopicRulePayloadPropertyToCloudFormation(properties.topicRulePayload)}):properties}function CfnTopicRulePropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("ruleName","RuleName",properties.RuleName!=null?cfn_parse().FromCloudFormation.getString(properties.RuleName):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("topicRulePayload","TopicRulePayload",properties.TopicRulePayload!=null?CfnTopicRuleTopicRulePayloadPropertyFromCloudFormation(properties.TopicRulePayload):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnTopicRuleDestination extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_iot.CfnTopicRuleDestination",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::IoT::TopicRuleDestination";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTopicRuleDestinationPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnTopicRuleDestination(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnTopicRuleDestination(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnTopicRuleDestination.CFN_RESOURCE_TYPE_NAME}static arnForTopicRuleDestination(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_iot_ITopicRuleDestinationRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForTopicRuleDestination),error}return resource.topicRuleDestinationRef.topicRuleDestinationArn}_httpUrlProperties;_status;_vpcProperties;cfnPropertyNames={httpUrlProperties:"HttpUrlProperties",status:"Status",vpcProperties:"VpcProperties"};constructor(scope,id,props={}){super(scope,id,{type:CfnTopicRuleDestination.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_iot_CfnTopicRuleDestinationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTopicRuleDestination),error}this._httpUrlProperties=props.httpUrlProperties,this._status=props.status,this._vpcProperties=props.vpcProperties}get topicRuleDestinationRef(){return{topicRuleDestinationArn:this.ref}}get httpUrlProperties(){return this._httpUrlProperties}set httpUrlProperties(value){cdk().traceProperty(this.node,"HttpUrlProperties"),this._httpUrlProperties=value}get status(){return this._status}set status(value){cdk().traceProperty(this.node,"Status"),this._status=value}get vpcProperties(){return this._vpcProperties}set vpcProperties(value){cdk().traceProperty(this.node,"VpcProperties"),this._vpcProperties=value}get attrArn(){return cdk().Token.asString(this.getAtt("Arn",cdk().ResolutionTypeHint.STRING))}get attrStatusReason(){return cdk().Token.asString(this.getAtt("StatusReason",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{httpUrlProperties:this._httpUrlProperties,status:this._status,vpcProperties:this._vpcProperties}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnTopicRuleDestination.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnTopicRuleDestinationPropsToCloudFormation(props)}}exports.CfnTopicRuleDestination=CfnTopicRuleDestination;function CfnTopicRuleDestinationHttpUrlDestinationSummaryPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("confirmationUrl",cdk().validateString)(properties.confirmationUrl)),errors.wrap('supplied properties not correct for "HttpUrlDestinationSummaryProperty"')}function convertCfnTopicRuleDestinationHttpUrlDestinationSummaryPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTopicRuleDestinationHttpUrlDestinationSummaryPropertyValidator(properties).assertSuccess(),{ConfirmationUrl:cdk().stringToCloudFormation(properties.confirmationUrl)}):properties}function CfnTopicRuleDestinationHttpUrlDestinationSummaryPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("confirmationUrl","ConfirmationUrl",properties.ConfirmationUrl!=null?cfn_parse().FromCloudFormation.getString(properties.ConfirmationUrl):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTopicRuleDestinationVpcDestinationPropertiesPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("roleArn",cdk().validateString)(properties.roleArn)),errors.collect(cdk().propertyValidator("securityGroups",cdk().listValidator(cdk().validateString))(properties.securityGroups)),errors.collect(cdk().propertyValidator("subnetIds",cdk().listValidator(cdk().validateString))(properties.subnetIds)),errors.collect(cdk().propertyValidator("vpcId",cdk().validateString)(properties.vpcId)),errors.wrap('supplied properties not correct for "VpcDestinationPropertiesProperty"')}function convertCfnTopicRuleDestinationVpcDestinationPropertiesPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTopicRuleDestinationVpcDestinationPropertiesPropertyValidator(properties).assertSuccess(),{RoleArn:cdk().stringToCloudFormation(properties.roleArn),SecurityGroups:cdk().listMapper(cdk().stringToCloudFormation)(properties.securityGroups),SubnetIds:cdk().listMapper(cdk().stringToCloudFormation)(properties.subnetIds),VpcId:cdk().stringToCloudFormation(properties.vpcId)}):properties}function CfnTopicRuleDestinationVpcDestinationPropertiesPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("roleArn","RoleArn",properties.RoleArn!=null?cfn_parse().FromCloudFormation.getString(properties.RoleArn):void 0),ret.addPropertyResult("securityGroups","SecurityGroups",properties.SecurityGroups!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.SecurityGroups):void 0),ret.addPropertyResult("subnetIds","SubnetIds",properties.SubnetIds!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.SubnetIds):void 0),ret.addPropertyResult("vpcId","VpcId",properties.VpcId!=null?cfn_parse().FromCloudFormation.getString(properties.VpcId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTopicRuleDestinationPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("httpUrlProperties",CfnTopicRuleDestinationHttpUrlDestinationSummaryPropertyValidator)(properties.httpUrlProperties)),errors.collect(cdk().propertyValidator("status",cdk().validateString)(properties.status)),errors.collect(cdk().propertyValidator("vpcProperties",CfnTopicRuleDestinationVpcDestinationPropertiesPropertyValidator)(properties.vpcProperties)),errors.wrap('supplied properties not correct for "CfnTopicRuleDestinationProps"')}function convertCfnTopicRuleDestinationPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTopicRuleDestinationPropsValidator(properties).assertSuccess(),{HttpUrlProperties:convertCfnTopicRuleDestinationHttpUrlDestinationSummaryPropertyToCloudFormation(properties.httpUrlProperties),Status:cdk().stringToCloudFormation(properties.status),VpcProperties:convertCfnTopicRuleDestinationVpcDestinationPropertiesPropertyToCloudFormation(properties.vpcProperties)}):properties}function CfnTopicRuleDestinationPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("httpUrlProperties","HttpUrlProperties",properties.HttpUrlProperties!=null?CfnTopicRuleDestinationHttpUrlDestinationSummaryPropertyFromCloudFormation(properties.HttpUrlProperties):void 0),ret.addPropertyResult("status","Status",properties.Status!=null?cfn_parse().FromCloudFormation.getString(properties.Status):void 0),ret.addPropertyResult("vpcProperties","VpcProperties",properties.VpcProperties!=null?CfnTopicRuleDestinationVpcDestinationPropertiesPropertyFromCloudFormation(properties.VpcProperties):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnCertificateProvider extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_iot.CfnCertificateProvider",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::IoT::CertificateProvider";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnCertificateProviderPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnCertificateProvider(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnCertificateProvider(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnCertificateProvider.CFN_RESOURCE_TYPE_NAME}static fromCertificateProviderArn(scope,id,arn){class Import extends cdk().Resource{certificateProviderRef;constructor(scope2,id2,arn2){super(scope2,id2,{environmentFromArn:arn2});const variables=new(cfn_parse()).TemplateString("arn:${Partition}:iot:${Region}:${Account}:certificateprovider/${CertificateProviderName}").parse(arn2);this.certificateProviderRef={certificateProviderName:variables.CertificateProviderName,certificateProviderArn:arn2}}}return new Import(scope,id,arn)}static fromCertificateProviderName(scope,id,certificateProviderName){class Import extends cdk().Resource{certificateProviderRef;constructor(scope2,id2,certificateProviderName2){const arn=new(cfn_parse()).TemplateString("arn:${Partition}:iot:${Region}:${Account}:certificateprovider/${CertificateProviderName}").interpolate({Partition:cdk().Stack.of(scope2).partition,Region:cdk().Stack.of(scope2).region,Account:cdk().Stack.of(scope2).account,CertificateProviderName:certificateProviderName2});super(scope2,id2,{environmentFromArn:arn}),this.certificateProviderRef={certificateProviderName:certificateProviderName2,certificateProviderArn:arn}}}return new Import(scope,id,certificateProviderName)}static arnForCertificateProvider(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_iot_ICertificateProviderRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForCertificateProvider),error}return resource.certificateProviderRef.certificateProviderArn}_accountDefaultForOperations;cdkTagManager;_certificateProviderName;_lambdaFunctionArn;_tags;cfnPropertyNames={accountDefaultForOperations:"AccountDefaultForOperations",tags:"Tags",certificateProviderName:"CertificateProviderName",lambdaFunctionArn:"LambdaFunctionArn"};constructor(scope,id,props){super(scope,id,{type:CfnCertificateProvider.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_iot_CfnCertificateProviderProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnCertificateProvider),error}cdk().requireProperty(props,"accountDefaultForOperations",this),cdk().requireProperty(props,"lambdaFunctionArn",this),this._accountDefaultForOperations=props.accountDefaultForOperations,this.cdkTagManager=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::IoT::CertificateProvider",void 0,{tagPropertyName:"tags"}),this._certificateProviderName=props.certificateProviderName,this._lambdaFunctionArn=props.lambdaFunctionArn,this._tags=props.tags}get certificateProviderRef(){return{certificateProviderName:this.ref,certificateProviderArn:this.attrArn}}get accountDefaultForOperations(){return this._accountDefaultForOperations}set accountDefaultForOperations(value){cdk().traceProperty(this.node,"AccountDefaultForOperations"),this._accountDefaultForOperations=value}get certificateProviderName(){return this._certificateProviderName}set certificateProviderName(value){cdk().traceProperty(this.node,"CertificateProviderName"),this._certificateProviderName=value}get lambdaFunctionArn(){return this._lambdaFunctionArn}set lambdaFunctionArn(value){cdk().traceProperty(this.node,"LambdaFunctionArn"),this._lambdaFunctionArn=value}get tags(){return this._tags}set tags(value){cdk().traceProperty(this.node,"Tags"),this._tags=value}get attrArn(){return cdk().Token.asString(this.getAtt("Arn",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{accountDefaultForOperations:this._accountDefaultForOperations,tags:this.cdkTagManager.renderTags(this._tags),certificateProviderName:this._certificateProviderName,lambdaFunctionArn:this._lambdaFunctionArn}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnCertificateProvider.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnCertificateProviderPropsToCloudFormation(props)}}exports.CfnCertificateProvider=CfnCertificateProvider;function CfnCertificateProviderPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("accountDefaultForOperations",cdk().requiredValidator)(properties.accountDefaultForOperations)),errors.collect(cdk().propertyValidator("accountDefaultForOperations",cdk().listValidator(cdk().validateString))(properties.accountDefaultForOperations)),errors.collect(cdk().propertyValidator("certificateProviderName",cdk().validateString)(properties.certificateProviderName)),errors.collect(cdk().propertyValidator("lambdaFunctionArn",cdk().requiredValidator)(properties.lambdaFunctionArn)),errors.collect(cdk().propertyValidator("lambdaFunctionArn",cdk().validateString)(properties.lambdaFunctionArn)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnCertificateProviderProps"')}function convertCfnCertificateProviderPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCertificateProviderPropsValidator(properties).assertSuccess(),{AccountDefaultForOperations:cdk().listMapper(cdk().stringToCloudFormation)(properties.accountDefaultForOperations),CertificateProviderName:cdk().stringToCloudFormation(properties.certificateProviderName),LambdaFunctionArn:cdk().stringToCloudFormation(properties.lambdaFunctionArn),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnCertificateProviderPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("accountDefaultForOperations","AccountDefaultForOperations",properties.AccountDefaultForOperations!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.AccountDefaultForOperations):void 0),ret.addPropertyResult("certificateProviderName","CertificateProviderName",properties.CertificateProviderName!=null?cfn_parse().FromCloudFormation.getString(properties.CertificateProviderName):void 0),ret.addPropertyResult("lambdaFunctionArn","LambdaFunctionArn",properties.LambdaFunctionArn!=null?cfn_parse().FromCloudFormation.getString(properties.LambdaFunctionArn):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnCommand extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_iot.CfnCommand",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::IoT::Command";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnCommandPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnCommand(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnCommand(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnCommand.CFN_RESOURCE_TYPE_NAME}static fromCommandArn(scope,id,arn){class Import extends cdk().Resource{commandRef;constructor(scope2,id2,arn2){super(scope2,id2,{environmentFromArn:arn2});const variables=new(cfn_parse()).TemplateString("arn:${Partition}:iot:${Region}:${Account}:command/${CommandId}").parse(arn2);this.commandRef={commandId:variables.CommandId,commandArn:arn2}}}return new Import(scope,id,arn)}static fromCommandId(scope,id,commandId){class Import extends cdk().Resource{commandRef;constructor(scope2,id2,commandId2){const arn=new(cfn_parse()).TemplateString("arn:${Partition}:iot:${Region}:${Account}:command/${CommandId}").interpolate({Partition:cdk().Stack.of(scope2).partition,Region:cdk().Stack.of(scope2).region,Account:cdk().Stack.of(scope2).account,CommandId:commandId2});super(scope2,id2,{environmentFromArn:arn}),this.commandRef={commandId:commandId2,commandArn:arn}}}return new Import(scope,id,commandId)}static arnForCommand(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_iot_ICommandRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForCommand),error}return resource.commandRef.commandArn}cdkTagManager;_commandId;_createdAt;_deprecated;_description;_displayName;_lastUpdatedAt;_mandatoryParameters;_namespace;_payload;_payloadTemplate;_pendingDeletion;_preprocessor;_roleArn;_tags;cfnPropertyNames={tags:"Tags",commandId:"CommandId",createdAt:"CreatedAt",deprecated:"Deprecated",description:"Description",displayName:"DisplayName",lastUpdatedAt:"LastUpdatedAt",mandatoryParameters:"MandatoryParameters",namespace:"Namespace",payload:"Payload",payloadTemplate:"PayloadTemplate",pendingDeletion:"PendingDeletion",preprocessor:"Preprocessor",roleArn:"RoleArn"};constructor(scope,id,props){super(scope,id,{type:CfnCommand.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_iot_CfnCommandProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnCommand),error}cdk().requireProperty(props,"commandId",this),this.cdkTagManager=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::IoT::Command",void 0,{tagPropertyName:"tags"}),this._commandId=props.commandId,this._createdAt=props.createdAt,this._deprecated=props.deprecated,this._description=props.description,this._displayName=props.displayName,this._lastUpdatedAt=props.lastUpdatedAt,this._mandatoryParameters=props.mandatoryParameters,this._namespace=props.namespace,this._payload=props.payload,this._payloadTemplate=props.payloadTemplate,this._pendingDeletion=props.pendingDeletion,this._preprocessor=props.preprocessor,this._roleArn=props.roleArn,this._tags=props.tags}get commandRef(){return{commandId:this.ref,commandArn:this.attrCommandArn}}get commandId(){return this._commandId}set commandId(value){cdk().traceProperty(this.node,"CommandId"),this._commandId=value}get createdAt(){return this._createdAt}set createdAt(value){cdk().traceProperty(this.node,"CreatedAt"),this._createdAt=value}get deprecated(){return this._deprecated}set deprecated(value){cdk().traceProperty(this.node,"Deprecated"),this._deprecated=value}get description(){return this._description}set description(value){cdk().traceProperty(this.node,"Description"),this._description=value}get displayName(){return this._displayName}set displayName(value){cdk().traceProperty(this.node,"DisplayName"),this._displayName=value}get lastUpdatedAt(){return this._lastUpdatedAt}set lastUpdatedAt(value){cdk().traceProperty(this.node,"LastUpdatedAt"),this._lastUpdatedAt=value}get mandatoryParameters(){return this._mandatoryParameters}set mandatoryParameters(value){cdk().traceProperty(this.node,"MandatoryParameters"),this._mandatoryParameters=value}get namespace(){return this._namespace}set namespace(value){cdk().traceProperty(this.node,"Namespace"),this._namespace=value}get payload(){return this._payload}set payload(value){cdk().traceProperty(this.node,"Payload"),this._payload=value}get payloadTemplate(){return this._payloadTemplate}set payloadTemplate(value){cdk().traceProperty(this.node,"PayloadTemplate"),this._payloadTemplate=value}get pendingDeletion(){return this._pendingDeletion}set pendingDeletion(value){cdk().traceProperty(this.node,"PendingDeletion"),this._pendingDeletion=value}get preprocessor(){return this._preprocessor}set preprocessor(value){cdk().traceProperty(this.node,"Preprocessor"),this._preprocessor=value}get roleArn(){return this._roleArn}set roleArn(value){cdk().traceProperty(this.node,"RoleArn"),this._roleArn=value}get tags(){return this._tags}set tags(value){cdk().traceProperty(this.node,"Tags"),this._tags=value}get attrCommandArn(){return cdk().Token.asString(this.getAtt("CommandArn",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{tags:this.cdkTagManager.renderTags(this._tags),commandId:this._commandId,createdAt:this._createdAt,deprecated:this._deprecated,description:this._description,displayName:this._displayName,lastUpdatedAt:this._lastUpdatedAt,mandatoryParameters:this._mandatoryParameters,namespace:this._namespace,payload:this._payload,payloadTemplate:this._payloadTemplate,pendingDeletion:this._pendingDeletion,preprocessor:this._preprocessor,roleArn:this._roleArn}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnCommand.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnCommandPropsToCloudFormation(props)}}exports.CfnCommand=CfnCommand;function CfnCommandCommandParameterValuePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("b",cdk().validateBoolean)(properties.b)),errors.collect(cdk().propertyValidator("bin",cdk().validateString)(properties.bin)),errors.collect(cdk().propertyValidator("d",cdk().validateNumber)(properties.d)),errors.collect(cdk().propertyValidator("i",cdk().validateNumber)(properties.i)),errors.collect(cdk().propertyValidator("l",cdk().validateString)(properties.l)),errors.collect(cdk().propertyValidator("s",cdk().validateString)(properties.s)),errors.collect(cdk().propertyValidator("ul",cdk().validateString)(properties.ul)),errors.wrap('supplied properties not correct for "CommandParameterValueProperty"')}function convertCfnCommandCommandParameterValuePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCommandCommandParameterValuePropertyValidator(properties).assertSuccess(),{B:cdk().booleanToCloudFormation(properties.b),BIN:cdk().stringToCloudFormation(properties.bin),D:cdk().numberToCloudFormation(properties.d),I:cdk().numberToCloudFormation(properties.i),L:cdk().stringToCloudFormation(properties.l),S:cdk().stringToCloudFormation(properties.s),UL:cdk().stringToCloudFormation(properties.ul)}):properties}function CfnCommandCommandParameterValuePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("b","B",properties.B!=null?cfn_parse().FromCloudFormation.getBoolean(properties.B):void 0),ret.addPropertyResult("bin","BIN",properties.BIN!=null?cfn_parse().FromCloudFormation.getString(properties.BIN):void 0),ret.addPropertyResult("d","D",properties.D!=null?cfn_parse().FromCloudFormation.getNumber(properties.D):void 0),ret.addPropertyResult("i","I",properties.I!=null?cfn_parse().FromCloudFormation.getNumber(properties.I):void 0),ret.addPropertyResult("l","L",properties.L!=null?cfn_parse().FromCloudFormation.getString(properties.L):void 0),ret.addPropertyResult("s","S",properties.S!=null?cfn_parse().FromCloudFormation.getString(properties.S):void 0),ret.addPropertyResult("ul","UL",properties.UL!=null?cfn_parse().FromCloudFormation.getString(properties.UL):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnCommandCommandParameterValueNumberRangePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("max",cdk().requiredValidator)(properties.max)),errors.collect(cdk().propertyValidator("max",cdk().validateString)(properties.max)),errors.collect(cdk().propertyValidator("min",cdk().requiredValidator)(properties.min)),errors.collect(cdk().propertyValidator("min",cdk().validateString)(properties.min)),errors.wrap('supplied properties not correct for "CommandParameterValueNumberRangeProperty"')}function convertCfnCommandCommandParameterValueNumberRangePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCommandCommandParameterValueNumberRangePropertyValidator(properties).assertSuccess(),{Max:cdk().stringToCloudFormation(properties.max),Min:cdk().stringToCloudFormation(properties.min)}):properties}function CfnCommandCommandParameterValueNumberRangePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("max","Max",properties.Max!=null?cfn_parse().FromCloudFormation.getString(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse().FromCloudFormation.getString(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnCommandCommandParameterValueComparisonOperandPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("number",cdk().validateString)(properties.number)),errors.collect(cdk().propertyValidator("numberRange",CfnCommandCommandParameterValueNumberRangePropertyValidator)(properties.numberRange)),errors.collect(cdk().propertyValidator("numbers",cdk().listValidator(cdk().validateString))(properties.numbers)),errors.collect(cdk().propertyValidator("string",cdk().validateString)(properties.string)),errors.collect(cdk().propertyValidator("strings",cdk().listValidator(cdk().validateString))(properties.strings)),errors.wrap('supplied properties not correct for "CommandParameterValueComparisonOperandProperty"')}function convertCfnCommandCommandParameterValueComparisonOperandPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCommandCommandParameterValueComparisonOperandPropertyValidator(properties).assertSuccess(),{Number:cdk().stringToCloudFormation(properties.number),NumberRange:convertCfnCommandCommandParameterValueNumberRangePropertyToCloudFormation(properties.numberRange),Numbers:cdk().listMapper(cdk().stringToCloudFormation)(properties.numbers),String:cdk().stringToCloudFormation(properties.string),Strings:cdk().listMapper(cdk().stringToCloudFormation)(properties.strings)}):properties}function CfnCommandCommandParameterValueComparisonOperandPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("number","Number",properties.Number!=null?cfn_parse().FromCloudFormation.getString(properties.Number):void 0),ret.addPropertyResult("numberRange","NumberRange",properties.NumberRange!=null?CfnCommandCommandParameterValueNumberRangePropertyFromCloudFormation(properties.NumberRange):void 0),ret.addPropertyResult("numbers","Numbers",properties.Numbers!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Numbers):void 0),ret.addPropertyResult("string","String",properties.String!=null?cfn_parse().FromCloudFormation.getString(properties.String):void 0),ret.addPropertyResult("strings","Strings",properties.Strings!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Strings):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnCommandCommandParameterValueConditionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("comparisonOperator",cdk().requiredValidator)(properties.comparisonOperator)),errors.collect(cdk().propertyValidator("comparisonOperator",cdk().validateString)(properties.comparisonOperator)),errors.collect(cdk().propertyValidator("operand",cdk().requiredValidator)(properties.operand)),errors.collect(cdk().propertyValidator("operand",CfnCommandCommandParameterValueComparisonOperandPropertyValidator)(properties.operand)),errors.wrap('supplied properties not correct for "CommandParameterValueConditionProperty"')}function convertCfnCommandCommandParameterValueConditionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCommandCommandParameterValueConditionPropertyValidator(properties).assertSuccess(),{ComparisonOperator:cdk().stringToCloudFormation(properties.comparisonOperator),Operand:convertCfnCommandCommandParameterValueComparisonOperandPropertyToCloudFormation(properties.operand)}):properties}function CfnCommandCommandParameterValueConditionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("comparisonOperator","ComparisonOperator",properties.ComparisonOperator!=null?cfn_parse().FromCloudFormation.getString(properties.ComparisonOperator):void 0),ret.addPropertyResult("operand","Operand",properties.Operand!=null?CfnCommandCommandParameterValueComparisonOperandPropertyFromCloudFormation(properties.Operand):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnCommandCommandParameterPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("defaultValue",CfnCommandCommandParameterValuePropertyValidator)(properties.defaultValue)),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("type",cdk().validateString)(properties.type)),errors.collect(cdk().propertyValidator("value",CfnCommandCommandParameterValuePropertyValidator)(properties.value)),errors.collect(cdk().propertyValidator("valueConditions",cdk().listValidator(CfnCommandCommandParameterValueConditionPropertyValidator))(properties.valueConditions)),errors.wrap('supplied properties not correct for "CommandParameterProperty"')}function convertCfnCommandCommandParameterPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCommandCommandParameterPropertyValidator(properties).assertSuccess(),{DefaultValue:convertCfnCommandCommandParameterValuePropertyToCloudFormation(properties.defaultValue),Description:cdk().stringToCloudFormation(properties.description),Name:cdk().stringToCloudFormation(properties.name),Type:cdk().stringToCloudFormation(properties.type),Value:convertCfnCommandCommandParameterValuePropertyToCloudFormation(properties.value),ValueConditions:cdk().listMapper(convertCfnCommandCommandParameterValueConditionPropertyToCloudFormation)(properties.valueConditions)}):properties}function CfnCommandCommandParameterPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("defaultValue","DefaultValue",properties.DefaultValue!=null?CfnCommandCommandParameterValuePropertyFromCloudFormation(properties.DefaultValue):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("type","Type",properties.Type!=null?cfn_parse().FromCloudFormation.getString(properties.Type):void 0),ret.addPropertyResult("value","Value",properties.Value!=null?CfnCommandCommandParameterValuePropertyFromCloudFormation(properties.Value):void 0),ret.addPropertyResult("valueConditions","ValueConditions",properties.ValueConditions!=null?cfn_parse().FromCloudFormation.getArray(CfnCommandCommandParameterValueConditionPropertyFromCloudFormation)(properties.ValueConditions):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnCommandCommandPayloadPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("content",cdk().validateString)(properties.content)),errors.collect(cdk().propertyValidator("contentType",cdk().validateString)(properties.contentType)),errors.wrap('supplied properties not correct for "CommandPayloadProperty"')}function convertCfnCommandCommandPayloadPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCommandCommandPayloadPropertyValidator(properties).assertSuccess(),{Content:cdk().stringToCloudFormation(properties.content),ContentType:cdk().stringToCloudFormation(properties.contentType)}):properties}function CfnCommandCommandPayloadPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("content","Content",properties.Content!=null?cfn_parse().FromCloudFormation.getString(properties.Content):void 0),ret.addPropertyResult("contentType","ContentType",properties.ContentType!=null?cfn_parse().FromCloudFormation.getString(properties.ContentType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnCommandAwsJsonSubstitutionCommandPreprocessorConfigPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("outputFormat",cdk().requiredValidator)(properties.outputFormat)),errors.collect(cdk().propertyValidator("outputFormat",cdk().validateString)(properties.outputFormat)),errors.wrap('supplied properties not correct for "AwsJsonSubstitutionCommandPreprocessorConfigProperty"')}function convertCfnCommandAwsJsonSubstitutionCommandPreprocessorConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCommandAwsJsonSubstitutionCommandPreprocessorConfigPropertyValidator(properties).assertSuccess(),{OutputFormat:cdk().stringToCloudFormation(properties.outputFormat)}):properties}function CfnCommandAwsJsonSubstitutionCommandPreprocessorConfigPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("outputFormat","OutputFormat",properties.OutputFormat!=null?cfn_parse().FromCloudFormation.getString(properties.OutputFormat):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnCommandCommandPreprocessorPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("awsJsonSubstitution",CfnCommandAwsJsonSubstitutionCommandPreprocessorConfigPropertyValidator)(properties.awsJsonSubstitution)),errors.wrap('supplied properties not correct for "CommandPreprocessorProperty"')}function convertCfnCommandCommandPreprocessorPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCommandCommandPreprocessorPropertyValidator(properties).assertSuccess(),{AwsJsonSubstitution:convertCfnCommandAwsJsonSubstitutionCommandPreprocessorConfigPropertyToCloudFormation(properties.awsJsonSubstitution)}):properties}function CfnCommandCommandPreprocessorPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("awsJsonSubstitution","AwsJsonSubstitution",properties.AwsJsonSubstitution!=null?CfnCommandAwsJsonSubstitutionCommandPreprocessorConfigPropertyFromCloudFormation(properties.AwsJsonSubstitution):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnCommandPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("commandId",cdk().requiredValidator)(properties.commandId)),errors.collect(cdk().propertyValidator("commandId",cdk().validateString)(properties.commandId)),errors.collect(cdk().propertyValidator("createdAt",cdk().validateString)(properties.createdAt)),errors.collect(cdk().propertyValidator("deprecated",cdk().validateBoolean)(properties.deprecated)),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("displayName",cdk().validateString)(properties.displayName)),errors.collect(cdk().propertyValidator("lastUpdatedAt",cdk().validateString)(properties.lastUpdatedAt)),errors.collect(cdk().propertyValidator("mandatoryParameters",cdk().listValidator(CfnCommandCommandParameterPropertyValidator))(properties.mandatoryParameters)),errors.collect(cdk().propertyValidator("namespace",cdk().validateString)(properties.namespace)),errors.collect(cdk().propertyValidator("payload",CfnCommandCommandPayloadPropertyValidator)(properties.payload)),errors.collect(cdk().propertyValidator("payloadTemplate",cdk().validateString)(properties.payloadTemplate)),errors.collect(cdk().propertyValidator("pendingDeletion",cdk().validateBoolean)(properties.pendingDeletion)),errors.collect(cdk().propertyValidator("preprocessor",CfnCommandCommandPreprocessorPropertyValidator)(properties.preprocessor)),errors.collect(cdk().propertyValidator("roleArn",cdk().validateString)(properties.roleArn)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnCommandProps"')}function convertCfnCommandPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCommandPropsValidator(properties).assertSuccess(),{CommandId:cdk().stringToCloudFormation(properties.commandId),CreatedAt:cdk().stringToCloudFormation(properties.createdAt),Deprecated:cdk().booleanToCloudFormation(properties.deprecated),Description:cdk().stringToCloudFormation(properties.description),DisplayName:cdk().stringToCloudFormation(properties.displayName),LastUpdatedAt:cdk().stringToCloudFormation(properties.lastUpdatedAt),MandatoryParameters:cdk().listMapper(convertCfnCommandCommandParameterPropertyToCloudFormation)(properties.mandatoryParameters),Namespace:cdk().stringToCloudFormation(properties.namespace),Payload:convertCfnCommandCommandPayloadPropertyToCloudFormation(properties.payload),PayloadTemplate:cdk().stringToCloudFormation(properties.payloadTemplate),PendingDeletion:cdk().booleanToCloudFormation(properties.pendingDeletion),Preprocessor:convertCfnCommandCommandPreprocessorPropertyToCloudFormation(properties.preprocessor),RoleArn:cdk().stringToCloudFormation(properties.roleArn),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnCommandPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("commandId","CommandId",properties.CommandId!=null?cfn_parse().FromCloudFormation.getString(properties.CommandId):void 0),ret.addPropertyResult("createdAt","CreatedAt",properties.CreatedAt!=null?cfn_parse().FromCloudFormation.getString(properties.CreatedAt):void 0),ret.addPropertyResult("deprecated","Deprecated",properties.Deprecated!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Deprecated):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("displayName","DisplayName",properties.DisplayName!=null?cfn_parse().FromCloudFormation.getString(properties.DisplayName):void 0),ret.addPropertyResult("lastUpdatedAt","LastUpdatedAt",properties.LastUpdatedAt!=null?cfn_parse().FromCloudFormation.getString(properties.LastUpdatedAt):void 0),ret.addPropertyResult("mandatoryParameters","MandatoryParameters",properties.MandatoryParameters!=null?cfn_parse().FromCloudFormation.getArray(CfnCommandCommandParameterPropertyFromCloudFormation)(properties.MandatoryParameters):void 0),ret.addPropertyResult("namespace","Namespace",properties.Namespace!=null?cfn_parse().FromCloudFormation.getString(properties.Namespace):void 0),ret.addPropertyResult("payload","Payload",properties.Payload!=null?CfnCommandCommandPayloadPropertyFromCloudFormation(properties.Payload):void 0),ret.addPropertyResult("payloadTemplate","PayloadTemplate",properties.PayloadTemplate!=null?cfn_parse().FromCloudFormation.getString(properties.PayloadTemplate):void 0),ret.addPropertyResult("pendingDeletion","PendingDeletion",properties.PendingDeletion!=null?cfn_parse().FromCloudFormation.getBoolean(properties.PendingDeletion):void 0),ret.addPropertyResult("preprocessor","Preprocessor",properties.Preprocessor!=null?CfnCommandCommandPreprocessorPropertyFromCloudFormation(properties.Preprocessor):void 0),ret.addPropertyResult("roleArn","RoleArn",properties.RoleArn!=null?cfn_parse().FromCloudFormation.getString(properties.RoleArn):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnEncryptionConfiguration extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_iot.CfnEncryptionConfiguration",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::IoT::EncryptionConfiguration";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnEncryptionConfigurationPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnEncryptionConfiguration(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnEncryptionConfiguration(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnEncryptionConfiguration.CFN_RESOURCE_TYPE_NAME}_encryptionType;_kmsAccessRoleArn;_kmsKeyArn;cfnPropertyNames={encryptionType:"EncryptionType",kmsAccessRoleArn:"KmsAccessRoleArn",kmsKeyArn:"KmsKeyArn"};constructor(scope,id,props){super(scope,id,{type:CfnEncryptionConfiguration.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_iot_CfnEncryptionConfigurationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnEncryptionConfiguration),error}cdk().requireProperty(props,"encryptionType",this),this._encryptionType=props.encryptionType,this._kmsAccessRoleArn=props.kmsAccessRoleArn,this._kmsKeyArn=props.kmsKeyArn}get encryptionConfigurationRef(){return{accountId:this.ref}}get encryptionType(){return this._encryptionType}set encryptionType(value){cdk().traceProperty(this.node,"EncryptionType"),this._encryptionType=value}get kmsAccessRoleArn(){return this._kmsAccessRoleArn}set kmsAccessRoleArn(value){cdk().traceProperty(this.node,"KmsAccessRoleArn"),this._kmsAccessRoleArn=value}get kmsKeyArn(){return this._kmsKeyArn}set kmsKeyArn(value){cdk().traceProperty(this.node,"KmsKeyArn"),this._kmsKeyArn=value}get attrAccountId(){return cdk().Token.asString(this.getAtt("AccountId",cdk().ResolutionTypeHint.STRING))}get attrConfigurationDetails(){return this.getAtt("ConfigurationDetails")}get attrLastModifiedDate(){return cdk().Token.asString(this.getAtt("LastModifiedDate",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{encryptionType:this._encryptionType,kmsAccessRoleArn:this._kmsAccessRoleArn,kmsKeyArn:this._kmsKeyArn}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnEncryptionConfiguration.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnEncryptionConfigurationPropsToCloudFormation(props)}}exports.CfnEncryptionConfiguration=CfnEncryptionConfiguration;function CfnEncryptionConfigurationConfigurationDetailsPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("configurationStatus",cdk().validateString)(properties.configurationStatus)),errors.collect(cdk().propertyValidator("errorCode",cdk().validateString)(properties.errorCode)),errors.collect(cdk().propertyValidator("errorMessage",cdk().validateString)(properties.errorMessage)),errors.wrap('supplied properties not correct for "ConfigurationDetailsProperty"')}function convertCfnEncryptionConfigurationConfigurationDetailsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnEncryptionConfigurationConfigurationDetailsPropertyValidator(properties).assertSuccess(),{ConfigurationStatus:cdk().stringToCloudFormation(properties.configurationStatus),ErrorCode:cdk().stringToCloudFormation(properties.errorCode),ErrorMessage:cdk().stringToCloudFormation(properties.errorMessage)}):properties}function CfnEncryptionConfigurationConfigurationDetailsPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("configurationStatus","ConfigurationStatus",properties.ConfigurationStatus!=null?cfn_parse().FromCloudFormation.getString(properties.ConfigurationStatus):void 0),ret.addPropertyResult("errorCode","ErrorCode",properties.ErrorCode!=null?cfn_parse().FromCloudFormation.getString(properties.ErrorCode):void 0),ret.addPropertyResult("errorMessage","ErrorMessage",properties.ErrorMessage!=null?cfn_parse().FromCloudFormation.getString(properties.ErrorMessage):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEncryptionConfigurationPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("encryptionType",cdk().requiredValidator)(properties.encryptionType)),errors.collect(cdk().propertyValidator("encryptionType",cdk().validateString)(properties.encryptionType)),errors.collect(cdk().propertyValidator("kmsAccessRoleArn",cdk().validateString)(properties.kmsAccessRoleArn)),errors.collect(cdk().propertyValidator("kmsKeyArn",cdk().validateString)(properties.kmsKeyArn)),errors.wrap('supplied properties not correct for "CfnEncryptionConfigurationProps"')}function convertCfnEncryptionConfigurationPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnEncryptionConfigurationPropsValidator(properties).assertSuccess(),{EncryptionType:cdk().stringToCloudFormation(properties.encryptionType),KmsAccessRoleArn:cdk().stringToCloudFormation(properties.kmsAccessRoleArn),KmsKeyArn:cdk().stringToCloudFormation(properties.kmsKeyArn)}):properties}function CfnEncryptionConfigurationPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("encryptionType","EncryptionType",properties.EncryptionType!=null?cfn_parse().FromCloudFormation.getString(properties.EncryptionType):void 0),ret.addPropertyResult("kmsAccessRoleArn","KmsAccessRoleArn",properties.KmsAccessRoleArn!=null?cfn_parse().FromCloudFormation.getString(properties.KmsAccessRoleArn):void 0),ret.addPropertyResult("kmsKeyArn","KmsKeyArn",properties.KmsKeyArn!=null?cfn_parse().FromCloudFormation.getString(properties.KmsKeyArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}