# Copyright (c) 2012-2024, Mark Peek <mark@peek.org>
# All rights reserved.
#
# See LICENSE file for full license.
#
# *** Do not modify - this file is autogenerated ***
from . import AWSObject, AWSProperty, PropsDictType, Tags
from .validators import boolean, double, integer
from .validators.iot import policytypes, validate_json_checker
[docs]class AuditCheckConfiguration(AWSProperty):
"""
`AuditCheckConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfiguration.html>`__
"""
props: PropsDictType = {
"Enabled": (boolean, False),
}
[docs]class AuditCheckConfigurations(AWSProperty):
"""
`AuditCheckConfigurations <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfigurations.html>`__
"""
props: PropsDictType = {
"AuthenticatedCognitoRoleOverlyPermissiveCheck": (
AuditCheckConfiguration,
False,
),
"CaCertificateExpiringCheck": (AuditCheckConfiguration, False),
"CaCertificateKeyQualityCheck": (AuditCheckConfiguration, False),
"ConflictingClientIdsCheck": (AuditCheckConfiguration, False),
"DeviceCertificateExpiringCheck": (AuditCheckConfiguration, False),
"DeviceCertificateKeyQualityCheck": (AuditCheckConfiguration, False),
"DeviceCertificateSharedCheck": (AuditCheckConfiguration, False),
"IntermediateCaRevokedForActiveDeviceCertificatesCheck": (
AuditCheckConfiguration,
False,
),
"IoTPolicyPotentialMisConfigurationCheck": (AuditCheckConfiguration, False),
"IotPolicyOverlyPermissiveCheck": (AuditCheckConfiguration, False),
"IotRoleAliasAllowsAccessToUnusedServicesCheck": (
AuditCheckConfiguration,
False,
),
"IotRoleAliasOverlyPermissiveCheck": (AuditCheckConfiguration, False),
"LoggingDisabledCheck": (AuditCheckConfiguration, False),
"RevokedCaCertificateStillActiveCheck": (AuditCheckConfiguration, False),
"RevokedDeviceCertificateStillActiveCheck": (AuditCheckConfiguration, False),
"UnauthenticatedCognitoRoleOverlyPermissiveCheck": (
AuditCheckConfiguration,
False,
),
}
[docs]class AuditNotificationTarget(AWSProperty):
"""
`AuditNotificationTarget <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditnotificationtarget.html>`__
"""
props: PropsDictType = {
"Enabled": (boolean, False),
"RoleArn": (str, False),
"TargetArn": (str, False),
}
[docs]class AuditNotificationTargetConfigurations(AWSProperty):
"""
`AuditNotificationTargetConfigurations <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditnotificationtargetconfigurations.html>`__
"""
props: PropsDictType = {
"Sns": (AuditNotificationTarget, False),
}
[docs]class AccountAuditConfiguration(AWSObject):
"""
`AccountAuditConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-accountauditconfiguration.html>`__
"""
resource_type = "AWS::IoT::AccountAuditConfiguration"
props: PropsDictType = {
"AccountId": (str, True),
"AuditCheckConfigurations": (AuditCheckConfigurations, True),
"AuditNotificationTargetConfigurations": (
AuditNotificationTargetConfigurations,
False,
),
"RoleArn": (str, True),
}
[docs]class Authorizer(AWSObject):
"""
`Authorizer <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-authorizer.html>`__
"""
resource_type = "AWS::IoT::Authorizer"
props: PropsDictType = {
"AuthorizerFunctionArn": (str, True),
"AuthorizerName": (str, False),
"EnableCachingForHttp": (boolean, False),
"SigningDisabled": (boolean, False),
"Status": (str, False),
"Tags": (Tags, False),
"TokenKeyName": (str, False),
"TokenSigningPublicKeys": (dict, False),
}
[docs]class BillingGroupProperties(AWSProperty):
"""
`BillingGroupProperties <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-billinggroup-billinggroupproperties.html>`__
"""
props: PropsDictType = {
"BillingGroupDescription": (str, False),
}
[docs]class BillingGroup(AWSObject):
"""
`BillingGroup <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-billinggroup.html>`__
"""
resource_type = "AWS::IoT::BillingGroup"
props: PropsDictType = {
"BillingGroupName": (str, False),
"BillingGroupProperties": (BillingGroupProperties, False),
"Tags": (Tags, False),
}
[docs]class RegistrationConfig(AWSProperty):
"""
`RegistrationConfig <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-cacertificate-registrationconfig.html>`__
"""
props: PropsDictType = {
"RoleArn": (str, False),
"TemplateBody": (str, False),
"TemplateName": (str, False),
}
[docs]class CACertificate(AWSObject):
"""
`CACertificate <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-cacertificate.html>`__
"""
resource_type = "AWS::IoT::CACertificate"
props: PropsDictType = {
"AutoRegistrationStatus": (str, False),
"CACertificatePem": (str, True),
"CertificateMode": (str, False),
"RegistrationConfig": (RegistrationConfig, False),
"RemoveAutoRegistration": (boolean, False),
"Status": (str, True),
"Tags": (Tags, False),
"VerificationCertificatePem": (str, False),
}
[docs]class Certificate(AWSObject):
"""
`Certificate <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-certificate.html>`__
"""
resource_type = "AWS::IoT::Certificate"
props: PropsDictType = {
"CACertificatePem": (str, False),
"CertificateMode": (str, False),
"CertificatePem": (str, False),
"CertificateSigningRequest": (str, False),
"Status": (str, True),
}
[docs]class CertificateProvider(AWSObject):
"""
`CertificateProvider <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-certificateprovider.html>`__
"""
resource_type = "AWS::IoT::CertificateProvider"
props: PropsDictType = {
"AccountDefaultForOperations": ([str], True),
"CertificateProviderName": (str, False),
"LambdaFunctionArn": (str, True),
"Tags": (Tags, False),
}
[docs]class CustomMetric(AWSObject):
"""
`CustomMetric <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-custommetric.html>`__
"""
resource_type = "AWS::IoT::CustomMetric"
props: PropsDictType = {
"DisplayName": (str, False),
"MetricName": (str, False),
"MetricType": (str, True),
"Tags": (Tags, False),
}
[docs]class Dimension(AWSObject):
"""
`Dimension <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-dimension.html>`__
"""
resource_type = "AWS::IoT::Dimension"
props: PropsDictType = {
"Name": (str, False),
"StringValues": ([str], True),
"Tags": (Tags, False),
"Type": (str, True),
}
[docs]class AuthorizerConfig(AWSProperty):
"""
`AuthorizerConfig <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-domainconfiguration-authorizerconfig.html>`__
"""
props: PropsDictType = {
"AllowAuthorizerOverride": (boolean, False),
"DefaultAuthorizerName": (str, False),
}
[docs]class ServerCertificateConfig(AWSProperty):
"""
`ServerCertificateConfig <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-domainconfiguration-servercertificateconfig.html>`__
"""
props: PropsDictType = {
"EnableOCSPCheck": (boolean, False),
}
[docs]class TlsConfig(AWSProperty):
"""
`TlsConfig <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-domainconfiguration-tlsconfig.html>`__
"""
props: PropsDictType = {
"SecurityPolicy": (str, False),
}
[docs]class DomainConfiguration(AWSObject):
"""
`DomainConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-domainconfiguration.html>`__
"""
resource_type = "AWS::IoT::DomainConfiguration"
props: PropsDictType = {
"AuthorizerConfig": (AuthorizerConfig, False),
"DomainConfigurationName": (str, False),
"DomainConfigurationStatus": (str, False),
"DomainName": (str, False),
"ServerCertificateArns": ([str], False),
"ServerCertificateConfig": (ServerCertificateConfig, False),
"ServiceType": (str, False),
"Tags": (Tags, False),
"TlsConfig": (TlsConfig, False),
"ValidationCertificateArn": (str, False),
}
[docs]class AggregationType(AWSProperty):
"""
`AggregationType <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-fleetmetric-aggregationtype.html>`__
"""
props: PropsDictType = {
"Name": (str, True),
"Values": ([str], True),
}
[docs]class FleetMetric(AWSObject):
"""
`FleetMetric <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-fleetmetric.html>`__
"""
resource_type = "AWS::IoT::FleetMetric"
props: PropsDictType = {
"AggregationField": (str, False),
"AggregationType": (AggregationType, False),
"Description": (str, False),
"IndexName": (str, False),
"MetricName": (str, True),
"Period": (integer, False),
"QueryString": (str, False),
"QueryVersion": (str, False),
"Tags": (Tags, False),
"Unit": (str, False),
}
[docs]class AbortCriteria(AWSProperty):
"""
`AbortCriteria <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-jobtemplate-abortcriteria.html>`__
"""
props: PropsDictType = {
"Action": (str, True),
"FailureType": (str, True),
"MinNumberOfExecutedThings": (integer, True),
"ThresholdPercentage": (double, True),
}
[docs]class AbortConfig(AWSProperty):
"""
`AbortConfig <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-jobtemplate-abortconfig.html>`__
"""
props: PropsDictType = {
"CriteriaList": ([AbortCriteria], True),
}
[docs]class RetryCriteria(AWSProperty):
"""
`RetryCriteria <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-jobtemplate-retrycriteria.html>`__
"""
props: PropsDictType = {
"FailureType": (str, False),
"NumberOfRetries": (integer, False),
}
[docs]class JobExecutionsRetryConfig(AWSProperty):
"""
`JobExecutionsRetryConfig <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-jobtemplate-jobexecutionsretryconfig.html>`__
"""
props: PropsDictType = {
"RetryCriteriaList": ([RetryCriteria], False),
}
[docs]class RateIncreaseCriteria(AWSProperty):
"""
`RateIncreaseCriteria <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-jobtemplate-rateincreasecriteria.html>`__
"""
props: PropsDictType = {
"NumberOfNotifiedThings": (integer, False),
"NumberOfSucceededThings": (integer, False),
}
[docs]class ExponentialRolloutRate(AWSProperty):
"""
`ExponentialRolloutRate <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-jobtemplate-exponentialrolloutrate.html>`__
"""
props: PropsDictType = {
"BaseRatePerMinute": (integer, True),
"IncrementFactor": (double, True),
"RateIncreaseCriteria": (RateIncreaseCriteria, True),
}
[docs]class JobExecutionsRolloutConfig(AWSProperty):
"""
`JobExecutionsRolloutConfig <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-jobtemplate-jobexecutionsrolloutconfig.html>`__
"""
props: PropsDictType = {
"ExponentialRolloutRate": (ExponentialRolloutRate, False),
"MaximumPerMinute": (integer, False),
}
[docs]class MaintenanceWindow(AWSProperty):
"""
`MaintenanceWindow <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-jobtemplate-maintenancewindow.html>`__
"""
props: PropsDictType = {
"DurationInMinutes": (integer, False),
"StartTime": (str, False),
}
[docs]class PresignedUrlConfig(AWSProperty):
"""
`PresignedUrlConfig <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-jobtemplate-presignedurlconfig.html>`__
"""
props: PropsDictType = {
"ExpiresInSec": (integer, False),
"RoleArn": (str, True),
}
[docs]class TimeoutConfig(AWSProperty):
"""
`TimeoutConfig <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-jobtemplate-timeoutconfig.html>`__
"""
props: PropsDictType = {
"InProgressTimeoutInMinutes": (integer, True),
}
[docs]class JobTemplate(AWSObject):
"""
`JobTemplate <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-jobtemplate.html>`__
"""
resource_type = "AWS::IoT::JobTemplate"
props: PropsDictType = {
"AbortConfig": (validate_json_checker, False),
"Description": (str, True),
"DestinationPackageVersions": ([str], False),
"Document": (str, False),
"DocumentSource": (str, False),
"JobArn": (str, False),
"JobExecutionsRetryConfig": (JobExecutionsRetryConfig, False),
"JobExecutionsRolloutConfig": (validate_json_checker, False),
"JobTemplateId": (str, True),
"MaintenanceWindows": ([MaintenanceWindow], False),
"PresignedUrlConfig": (PresignedUrlConfig, False),
"Tags": (Tags, False),
"TimeoutConfig": (validate_json_checker, False),
}
[docs]class Logging(AWSObject):
"""
`Logging <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-logging.html>`__
"""
resource_type = "AWS::IoT::Logging"
props: PropsDictType = {
"AccountId": (str, True),
"DefaultLogLevel": (str, True),
"RoleArn": (str, True),
}
[docs]class AddThingsToThingGroupParams(AWSProperty):
"""
`AddThingsToThingGroupParams <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-addthingstothinggroupparams.html>`__
"""
props: PropsDictType = {
"OverrideDynamicGroups": (boolean, False),
"ThingGroupNames": ([str], True),
}
[docs]class EnableIoTLoggingParams(AWSProperty):
"""
`EnableIoTLoggingParams <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-enableiotloggingparams.html>`__
"""
props: PropsDictType = {
"LogLevel": (str, True),
"RoleArnForLogging": (str, True),
}
[docs]class PublishFindingToSnsParams(AWSProperty):
"""
`PublishFindingToSnsParams <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-publishfindingtosnsparams.html>`__
"""
props: PropsDictType = {
"TopicArn": (str, True),
}
[docs]class ReplaceDefaultPolicyVersionParams(AWSProperty):
"""
`ReplaceDefaultPolicyVersionParams <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-replacedefaultpolicyversionparams.html>`__
"""
props: PropsDictType = {
"TemplateName": (str, True),
}
[docs]class UpdateCACertificateParams(AWSProperty):
"""
`UpdateCACertificateParams <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-updatecacertificateparams.html>`__
"""
props: PropsDictType = {
"Action": (str, True),
}
[docs]class UpdateDeviceCertificateParams(AWSProperty):
"""
`UpdateDeviceCertificateParams <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-updatedevicecertificateparams.html>`__
"""
props: PropsDictType = {
"Action": (str, True),
}
[docs]class ActionParams(AWSProperty):
"""
`ActionParams <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-actionparams.html>`__
"""
props: PropsDictType = {
"AddThingsToThingGroupParams": (AddThingsToThingGroupParams, False),
"EnableIoTLoggingParams": (EnableIoTLoggingParams, False),
"PublishFindingToSnsParams": (PublishFindingToSnsParams, False),
"ReplaceDefaultPolicyVersionParams": (ReplaceDefaultPolicyVersionParams, False),
"UpdateCACertificateParams": (UpdateCACertificateParams, False),
"UpdateDeviceCertificateParams": (UpdateDeviceCertificateParams, False),
}
[docs]class MitigationAction(AWSObject):
"""
`MitigationAction <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-mitigationaction.html>`__
"""
resource_type = "AWS::IoT::MitigationAction"
props: PropsDictType = {
"ActionName": (str, False),
"ActionParams": (ActionParams, True),
"RoleArn": (str, True),
"Tags": (Tags, False),
}
[docs]class Policy(AWSObject):
"""
`Policy <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-policy.html>`__
"""
resource_type = "AWS::IoT::Policy"
props: PropsDictType = {
"PolicyDocument": (policytypes, True),
"PolicyName": (str, False),
"Tags": (Tags, False),
}
[docs]class PolicyPrincipalAttachment(AWSObject):
"""
`PolicyPrincipalAttachment <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-policyprincipalattachment.html>`__
"""
resource_type = "AWS::IoT::PolicyPrincipalAttachment"
props: PropsDictType = {
"PolicyName": (str, True),
"Principal": (str, True),
}
[docs]class ProvisioningHook(AWSProperty):
"""
`ProvisioningHook <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-provisioningtemplate-provisioninghook.html>`__
"""
props: PropsDictType = {
"PayloadVersion": (str, False),
"TargetArn": (str, False),
}
[docs]class ProvisioningTemplate(AWSObject):
"""
`ProvisioningTemplate <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-provisioningtemplate.html>`__
"""
resource_type = "AWS::IoT::ProvisioningTemplate"
props: PropsDictType = {
"Description": (str, False),
"Enabled": (boolean, False),
"PreProvisioningHook": (ProvisioningHook, False),
"ProvisioningRoleArn": (str, True),
"Tags": (Tags, False),
"TemplateBody": (str, True),
"TemplateName": (str, False),
"TemplateType": (str, False),
}
[docs]class ResourceSpecificLogging(AWSObject):
"""
`ResourceSpecificLogging <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-resourcespecificlogging.html>`__
"""
resource_type = "AWS::IoT::ResourceSpecificLogging"
props: PropsDictType = {
"LogLevel": (str, True),
"TargetName": (str, True),
"TargetType": (str, True),
}
[docs]class RoleAlias(AWSObject):
"""
`RoleAlias <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-rolealias.html>`__
"""
resource_type = "AWS::IoT::RoleAlias"
props: PropsDictType = {
"CredentialDurationSeconds": (integer, False),
"RoleAlias": (str, False),
"RoleArn": (str, True),
"Tags": (Tags, False),
}
[docs]class ScheduledAudit(AWSObject):
"""
`ScheduledAudit <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-scheduledaudit.html>`__
"""
resource_type = "AWS::IoT::ScheduledAudit"
props: PropsDictType = {
"DayOfMonth": (str, False),
"DayOfWeek": (str, False),
"Frequency": (str, True),
"ScheduledAuditName": (str, False),
"Tags": (Tags, False),
"TargetCheckNames": ([str], True),
}
[docs]class AlertTarget(AWSProperty):
"""
`AlertTarget <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-alerttarget.html>`__
"""
props: PropsDictType = {
"AlertTargetArn": (str, True),
"RoleArn": (str, True),
}
[docs]class MachineLearningDetectionConfig(AWSProperty):
"""
`MachineLearningDetectionConfig <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-machinelearningdetectionconfig.html>`__
"""
props: PropsDictType = {
"ConfidenceLevel": (str, False),
}
[docs]class MetricValue(AWSProperty):
"""
`MetricValue <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-metricvalue.html>`__
"""
props: PropsDictType = {
"Cidrs": ([str], False),
"Count": (str, False),
"Number": (double, False),
"Numbers": ([double], False),
"Ports": ([integer], False),
"Strings": ([str], False),
}
[docs]class StatisticalThreshold(AWSProperty):
"""
`StatisticalThreshold <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-statisticalthreshold.html>`__
"""
props: PropsDictType = {
"Statistic": (str, False),
}
[docs]class BehaviorCriteria(AWSProperty):
"""
`BehaviorCriteria <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-behaviorcriteria.html>`__
"""
props: PropsDictType = {
"ComparisonOperator": (str, False),
"ConsecutiveDatapointsToAlarm": (integer, False),
"ConsecutiveDatapointsToClear": (integer, False),
"DurationSeconds": (integer, False),
"MlDetectionConfig": (MachineLearningDetectionConfig, False),
"StatisticalThreshold": (StatisticalThreshold, False),
"Value": (MetricValue, False),
}
[docs]class MetricDimension(AWSProperty):
"""
`MetricDimension <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-metricdimension.html>`__
"""
props: PropsDictType = {
"DimensionName": (str, True),
"Operator": (str, False),
}
[docs]class Behavior(AWSProperty):
"""
`Behavior <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-behavior.html>`__
"""
props: PropsDictType = {
"Criteria": (BehaviorCriteria, False),
"ExportMetric": (boolean, False),
"Metric": (str, False),
"MetricDimension": (MetricDimension, False),
"Name": (str, True),
"SuppressAlerts": (boolean, False),
}
[docs]class MetricToRetain(AWSProperty):
"""
`MetricToRetain <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-metrictoretain.html>`__
"""
props: PropsDictType = {
"ExportMetric": (boolean, False),
"Metric": (str, True),
"MetricDimension": (MetricDimension, False),
}
[docs]class MetricsExportConfig(AWSProperty):
"""
`MetricsExportConfig <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-metricsexportconfig.html>`__
"""
props: PropsDictType = {
"MqttTopic": (str, True),
"RoleArn": (str, True),
}
[docs]class SecurityProfile(AWSObject):
"""
`SecurityProfile <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-securityprofile.html>`__
"""
resource_type = "AWS::IoT::SecurityProfile"
props: PropsDictType = {
"AdditionalMetricsToRetainV2": ([MetricToRetain], False),
"AlertTargets": (dict, False),
"Behaviors": ([Behavior], False),
"MetricsExportConfig": (MetricsExportConfig, False),
"SecurityProfileDescription": (str, False),
"SecurityProfileName": (str, False),
"Tags": (Tags, False),
"TargetArns": ([str], False),
}
[docs]class SoftwarePackage(AWSObject):
"""
`SoftwarePackage <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-softwarepackage.html>`__
"""
resource_type = "AWS::IoT::SoftwarePackage"
props: PropsDictType = {
"Description": (str, False),
"PackageName": (str, False),
"Tags": (Tags, False),
}
[docs]class SoftwarePackageVersion(AWSObject):
"""
`SoftwarePackageVersion <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-softwarepackageversion.html>`__
"""
resource_type = "AWS::IoT::SoftwarePackageVersion"
props: PropsDictType = {
"Attributes": (dict, False),
"Description": (str, False),
"PackageName": (str, True),
"Tags": (Tags, False),
"VersionName": (str, False),
}
[docs]class AttributePayload(AWSProperty):
"""
`AttributePayload <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-thinggroup-attributepayload.html>`__
"""
props: PropsDictType = {
"Attributes": (dict, False),
}
[docs]class Thing(AWSObject):
"""
`Thing <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-thing.html>`__
"""
resource_type = "AWS::IoT::Thing"
props: PropsDictType = {
"AttributePayload": (AttributePayload, False),
"ThingName": (str, False),
}
[docs]class ThingGroupProperties(AWSProperty):
"""
`ThingGroupProperties <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-thinggroup-thinggroupproperties.html>`__
"""
props: PropsDictType = {
"AttributePayload": (AttributePayload, False),
"ThingGroupDescription": (str, False),
}
[docs]class ThingGroup(AWSObject):
"""
`ThingGroup <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-thinggroup.html>`__
"""
resource_type = "AWS::IoT::ThingGroup"
props: PropsDictType = {
"ParentGroupName": (str, False),
"QueryString": (str, False),
"Tags": (Tags, False),
"ThingGroupName": (str, False),
"ThingGroupProperties": (ThingGroupProperties, False),
}
[docs]class ThingPrincipalAttachment(AWSObject):
"""
`ThingPrincipalAttachment <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-thingprincipalattachment.html>`__
"""
resource_type = "AWS::IoT::ThingPrincipalAttachment"
props: PropsDictType = {
"Principal": (str, True),
"ThingName": (str, True),
}
[docs]class ThingTypeProperties(AWSProperty):
"""
`ThingTypeProperties <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-thingtype-thingtypeproperties.html>`__
"""
props: PropsDictType = {
"SearchableAttributes": ([str], False),
"ThingTypeDescription": (str, False),
}
[docs]class ThingType(AWSObject):
"""
`ThingType <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-thingtype.html>`__
"""
resource_type = "AWS::IoT::ThingType"
props: PropsDictType = {
"DeprecateThingType": (boolean, False),
"Tags": (Tags, False),
"ThingTypeName": (str, False),
"ThingTypeProperties": (ThingTypeProperties, False),
}
[docs]class CloudwatchAlarmAction(AWSProperty):
"""
`CloudwatchAlarmAction <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-cloudwatchalarmaction.html>`__
"""
props: PropsDictType = {
"AlarmName": (str, True),
"RoleArn": (str, True),
"StateReason": (str, True),
"StateValue": (str, True),
}
[docs]class CloudwatchLogsAction(AWSProperty):
"""
`CloudwatchLogsAction <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-cloudwatchlogsaction.html>`__
"""
props: PropsDictType = {
"BatchMode": (boolean, False),
"LogGroupName": (str, True),
"RoleArn": (str, True),
}
[docs]class CloudwatchMetricAction(AWSProperty):
"""
`CloudwatchMetricAction <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-cloudwatchmetricaction.html>`__
"""
props: PropsDictType = {
"MetricName": (str, True),
"MetricNamespace": (str, True),
"MetricTimestamp": (str, False),
"MetricUnit": (str, True),
"MetricValue": (str, True),
"RoleArn": (str, True),
}
[docs]class DynamoDBAction(AWSProperty):
"""
`DynamoDBAction <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-dynamodbaction.html>`__
"""
props: PropsDictType = {
"HashKeyField": (str, True),
"HashKeyType": (str, False),
"HashKeyValue": (str, True),
"PayloadField": (str, False),
"RangeKeyField": (str, False),
"RangeKeyType": (str, False),
"RangeKeyValue": (str, False),
"RoleArn": (str, True),
"TableName": (str, True),
}
[docs]class DynamoDBv2Action(AWSProperty):
"""
`DynamoDBv2Action <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-dynamodbv2action.html>`__
"""
props: PropsDictType = {
"PutItem": (PutItemInput, False),
"RoleArn": (str, False),
}
[docs]class ElasticsearchAction(AWSProperty):
"""
`ElasticsearchAction <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-elasticsearchaction.html>`__
"""
props: PropsDictType = {
"Endpoint": (str, True),
"Id": (str, True),
"Index": (str, True),
"RoleArn": (str, True),
"Type": (str, True),
}
[docs]class FirehoseAction(AWSProperty):
"""
`FirehoseAction <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-firehoseaction.html>`__
"""
props: PropsDictType = {
"BatchMode": (boolean, False),
"DeliveryStreamName": (str, True),
"RoleArn": (str, True),
"Separator": (str, False),
}
[docs]class SigV4Authorization(AWSProperty):
"""
`SigV4Authorization <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-sigv4authorization.html>`__
"""
props: PropsDictType = {
"RoleArn": (str, True),
"ServiceName": (str, True),
"SigningRegion": (str, True),
}
[docs]class HttpAuthorization(AWSProperty):
"""
`HttpAuthorization <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-httpauthorization.html>`__
"""
props: PropsDictType = {
"Sigv4": (SigV4Authorization, False),
}
[docs]class HttpAction(AWSProperty):
"""
`HttpAction <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-httpaction.html>`__
"""
props: PropsDictType = {
"Auth": (HttpAuthorization, False),
"ConfirmationUrl": (str, False),
"Headers": ([HttpActionHeader], False),
"Url": (str, True),
}
[docs]class IotAnalyticsAction(AWSProperty):
"""
`IotAnalyticsAction <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-iotanalyticsaction.html>`__
"""
props: PropsDictType = {
"BatchMode": (boolean, False),
"ChannelName": (str, True),
"RoleArn": (str, True),
}
[docs]class IotEventsAction(AWSProperty):
"""
`IotEventsAction <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-ioteventsaction.html>`__
"""
props: PropsDictType = {
"BatchMode": (boolean, False),
"InputName": (str, True),
"MessageId": (str, False),
"RoleArn": (str, True),
}
[docs]class AssetPropertyTimestamp(AWSProperty):
"""
`AssetPropertyTimestamp <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-assetpropertytimestamp.html>`__
"""
props: PropsDictType = {
"OffsetInNanos": (str, False),
"TimeInSeconds": (str, True),
}
[docs]class AssetPropertyVariant(AWSProperty):
"""
`AssetPropertyVariant <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-assetpropertyvariant.html>`__
"""
props: PropsDictType = {
"BooleanValue": (str, False),
"DoubleValue": (str, False),
"IntegerValue": (str, False),
"StringValue": (str, False),
}
[docs]class AssetPropertyValue(AWSProperty):
"""
`AssetPropertyValue <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-assetpropertyvalue.html>`__
"""
props: PropsDictType = {
"Quality": (str, False),
"Timestamp": (AssetPropertyTimestamp, True),
"Value": (AssetPropertyVariant, True),
}
[docs]class PutAssetPropertyValueEntry(AWSProperty):
"""
`PutAssetPropertyValueEntry <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-putassetpropertyvalueentry.html>`__
"""
props: PropsDictType = {
"AssetId": (str, False),
"EntryId": (str, False),
"PropertyAlias": (str, False),
"PropertyId": (str, False),
"PropertyValues": ([AssetPropertyValue], True),
}
[docs]class IotSiteWiseAction(AWSProperty):
"""
`IotSiteWiseAction <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-iotsitewiseaction.html>`__
"""
props: PropsDictType = {
"PutAssetPropertyValueEntries": ([PutAssetPropertyValueEntry], True),
"RoleArn": (str, True),
}
[docs]class KafkaAction(AWSProperty):
"""
`KafkaAction <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-kafkaaction.html>`__
"""
props: PropsDictType = {
"ClientProperties": (dict, True),
"DestinationArn": (str, True),
"Headers": ([KafkaActionHeader], False),
"Key": (str, False),
"Partition": (str, False),
"Topic": (str, True),
}
[docs]class KinesisAction(AWSProperty):
"""
`KinesisAction <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-kinesisaction.html>`__
"""
props: PropsDictType = {
"PartitionKey": (str, False),
"RoleArn": (str, True),
"StreamName": (str, True),
}
[docs]class LambdaAction(AWSProperty):
"""
`LambdaAction <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-lambdaaction.html>`__
"""
props: PropsDictType = {
"FunctionArn": (str, False),
}
[docs]class Timestamp(AWSProperty):
"""
`Timestamp <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-timestamp.html>`__
"""
props: PropsDictType = {
"Unit": (str, False),
"Value": (str, True),
}
[docs]class LocationAction(AWSProperty):
"""
`LocationAction <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-locationaction.html>`__
"""
props: PropsDictType = {
"DeviceId": (str, True),
"Latitude": (str, True),
"Longitude": (str, True),
"RoleArn": (str, True),
"Timestamp": (Timestamp, False),
"TrackerName": (str, True),
}
[docs]class OpenSearchAction(AWSProperty):
"""
`OpenSearchAction <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-opensearchaction.html>`__
"""
props: PropsDictType = {
"Endpoint": (str, True),
"Id": (str, True),
"Index": (str, True),
"RoleArn": (str, True),
"Type": (str, True),
}
[docs]class UserProperty(AWSProperty):
"""
`UserProperty <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-userproperty.html>`__
"""
props: PropsDictType = {
"Key": (str, True),
"Value": (str, True),
}
[docs]class RepublishAction(AWSProperty):
"""
`RepublishAction <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-republishaction.html>`__
"""
props: PropsDictType = {
"Headers": (RepublishActionHeaders, False),
"Qos": (integer, False),
"RoleArn": (str, True),
"Topic": (str, True),
}
[docs]class S3Action(AWSProperty):
"""
`S3Action <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-s3action.html>`__
"""
props: PropsDictType = {
"BucketName": (str, True),
"CannedAcl": (str, False),
"Key": (str, True),
"RoleArn": (str, True),
}
[docs]class SnsAction(AWSProperty):
"""
`SnsAction <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-snsaction.html>`__
"""
props: PropsDictType = {
"MessageFormat": (str, False),
"RoleArn": (str, True),
"TargetArn": (str, True),
}
[docs]class SqsAction(AWSProperty):
"""
`SqsAction <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-sqsaction.html>`__
"""
props: PropsDictType = {
"QueueUrl": (str, True),
"RoleArn": (str, True),
"UseBase64": (boolean, False),
}
[docs]class StepFunctionsAction(AWSProperty):
"""
`StepFunctionsAction <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-stepfunctionsaction.html>`__
"""
props: PropsDictType = {
"ExecutionNamePrefix": (str, False),
"RoleArn": (str, True),
"StateMachineName": (str, True),
}
[docs]class TimestreamDimension(AWSProperty):
"""
`TimestreamDimension <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-timestreamdimension.html>`__
"""
props: PropsDictType = {
"Name": (str, True),
"Value": (str, True),
}
[docs]class TimestreamTimestamp(AWSProperty):
"""
`TimestreamTimestamp <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-timestreamtimestamp.html>`__
"""
props: PropsDictType = {
"Unit": (str, True),
"Value": (str, True),
}
[docs]class TimestreamAction(AWSProperty):
"""
`TimestreamAction <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-timestreamaction.html>`__
"""
props: PropsDictType = {
"DatabaseName": (str, True),
"Dimensions": ([TimestreamDimension], True),
"RoleArn": (str, True),
"TableName": (str, True),
"Timestamp": (TimestreamTimestamp, False),
}
[docs]class Action(AWSProperty):
"""
`Action <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html>`__
"""
props: PropsDictType = {
"CloudwatchAlarm": (CloudwatchAlarmAction, False),
"CloudwatchLogs": (CloudwatchLogsAction, False),
"CloudwatchMetric": (CloudwatchMetricAction, False),
"DynamoDB": (DynamoDBAction, False),
"DynamoDBv2": (DynamoDBv2Action, False),
"Elasticsearch": (ElasticsearchAction, False),
"Firehose": (FirehoseAction, False),
"Http": (HttpAction, False),
"IotAnalytics": (IotAnalyticsAction, False),
"IotEvents": (IotEventsAction, False),
"IotSiteWise": (IotSiteWiseAction, False),
"Kafka": (KafkaAction, False),
"Kinesis": (KinesisAction, False),
"Lambda": (LambdaAction, False),
"Location": (LocationAction, False),
"OpenSearch": (OpenSearchAction, False),
"Republish": (RepublishAction, False),
"S3": (S3Action, False),
"Sns": (SnsAction, False),
"Sqs": (SqsAction, False),
"StepFunctions": (StepFunctionsAction, False),
"Timestream": (TimestreamAction, False),
}
[docs]class TopicRulePayload(AWSProperty):
"""
`TopicRulePayload <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-topicrulepayload.html>`__
"""
props: PropsDictType = {
"Actions": ([Action], True),
"AwsIotSqlVersion": (str, False),
"Description": (str, False),
"ErrorAction": (Action, False),
"RuleDisabled": (boolean, False),
"Sql": (str, True),
}
[docs]class TopicRule(AWSObject):
"""
`TopicRule <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-topicrule.html>`__
"""
resource_type = "AWS::IoT::TopicRule"
props: PropsDictType = {
"RuleName": (str, False),
"Tags": (Tags, False),
"TopicRulePayload": (TopicRulePayload, True),
}
[docs]class HttpUrlDestinationSummary(AWSProperty):
"""
`HttpUrlDestinationSummary <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicruledestination-httpurldestinationsummary.html>`__
"""
props: PropsDictType = {
"ConfirmationUrl": (str, False),
}
[docs]class VpcDestinationProperties(AWSProperty):
"""
`VpcDestinationProperties <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicruledestination-vpcdestinationproperties.html>`__
"""
props: PropsDictType = {
"RoleArn": (str, False),
"SecurityGroups": ([str], False),
"SubnetIds": ([str], False),
"VpcId": (str, False),
}
[docs]class TopicRuleDestination(AWSObject):
"""
`TopicRuleDestination <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-topicruledestination.html>`__
"""
resource_type = "AWS::IoT::TopicRuleDestination"
props: PropsDictType = {
"HttpUrlProperties": (HttpUrlDestinationSummary, False),
"Status": (str, False),
"VpcProperties": (VpcDestinationProperties, False),
}
[docs]class ServerCertificateSummary(AWSProperty):
"""
`ServerCertificateSummary <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-domainconfiguration-servercertificatesummary.html>`__
"""
props: PropsDictType = {
"ServerCertificateArn": (str, False),
"ServerCertificateStatus": (str, False),
"ServerCertificateStatusDetail": (str, False),
}