# 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, integer
from .validators.synthetics import canary_runtime_version
[docs]class S3Encryption(AWSProperty):
"""
`S3Encryption <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-synthetics-canary-s3encryption.html>`__
"""
props: PropsDictType = {
"EncryptionMode": (str, False),
"KmsKeyArn": (str, False),
}
[docs]class ArtifactConfig(AWSProperty):
"""
`ArtifactConfig <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-synthetics-canary-artifactconfig.html>`__
"""
props: PropsDictType = {
"S3Encryption": (S3Encryption, False),
}
[docs]class Code(AWSProperty):
"""
`Code <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-synthetics-canary-code.html>`__
"""
props: PropsDictType = {
"Handler": (str, True),
"S3Bucket": (str, False),
"S3Key": (str, False),
"S3ObjectVersion": (str, False),
"Script": (str, False),
"SourceLocationArn": (str, False),
}
[docs]class RunConfig(AWSProperty):
"""
`RunConfig <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-synthetics-canary-runconfig.html>`__
"""
props: PropsDictType = {
"ActiveTracing": (boolean, False),
"EnvironmentVariables": (dict, False),
"MemoryInMB": (integer, False),
"TimeoutInSeconds": (integer, False),
}
[docs]class Schedule(AWSProperty):
"""
`Schedule <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-synthetics-canary-schedule.html>`__
"""
props: PropsDictType = {
"DurationInSeconds": (str, False),
"Expression": (str, True),
}
[docs]class VPCConfig(AWSProperty):
"""
`VPCConfig <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-synthetics-canary-vpcconfig.html>`__
"""
props: PropsDictType = {
"SecurityGroupIds": ([str], True),
"SubnetIds": ([str], True),
"VpcId": (str, False),
}
[docs]class BaseScreenshot(AWSProperty):
"""
`BaseScreenshot <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-synthetics-canary-basescreenshot.html>`__
"""
props: PropsDictType = {
"IgnoreCoordinates": ([str], False),
"ScreenshotName": (str, True),
}
[docs]class VisualReference(AWSProperty):
"""
`VisualReference <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-synthetics-canary-visualreference.html>`__
"""
props: PropsDictType = {
"BaseCanaryRunId": (str, True),
"BaseScreenshots": ([BaseScreenshot], False),
}
[docs]class Canary(AWSObject):
"""
`Canary <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-synthetics-canary.html>`__
"""
resource_type = "AWS::Synthetics::Canary"
props: PropsDictType = {
"ArtifactConfig": (ArtifactConfig, False),
"ArtifactS3Location": (str, True),
"Code": (Code, True),
"ExecutionRoleArn": (str, True),
"FailureRetentionPeriod": (integer, False),
"Name": (str, True),
"RunConfig": (RunConfig, False),
"RuntimeVersion": (canary_runtime_version, True),
"Schedule": (Schedule, True),
"StartCanaryAfterCreation": (boolean, False),
"SuccessRetentionPeriod": (integer, False),
"Tags": (Tags, False),
"VPCConfig": (VPCConfig, False),
"VisualReference": (VisualReference, False),
}
[docs]class Group(AWSObject):
"""
`Group <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-synthetics-group.html>`__
"""
resource_type = "AWS::Synthetics::Group"
props: PropsDictType = {
"Name": (str, True),
"ResourceArns": ([str], False),
"Tags": (Tags, False),
}