# Copyright (c) 2012-2021, Mark Peek <mark@peek.org>
# All rights reserved.
#
# See LICENSE file for full license.
#
# *** Do not modify - this file is autogenerated ***
# Resource specification version: 31.1.0


from troposphere import Tags

from . import AWSObject, AWSProperty
from .validators import integer


class ExpiryEventsConfiguration(AWSProperty):
    props = {
        "DaysBeforeExpiry": (integer, False),
    }


class Account(AWSObject):
    resource_type = "AWS::CertificateManager::Account"

    props = {
        "ExpiryEventsConfiguration": (ExpiryEventsConfiguration, True),
    }


class DomainValidationOption(AWSProperty):
    props = {
        "DomainName": (str, True),
        "HostedZoneId": (str, False),
        "ValidationDomain": (str, False),
    }


class Certificate(AWSObject):
    resource_type = "AWS::CertificateManager::Certificate"

    props = {
        "CertificateAuthorityArn": (str, False),
        "CertificateTransparencyLoggingPreference": (str, False),
        "DomainName": (str, True),
        "DomainValidationOptions": ([DomainValidationOption], False),
        "SubjectAlternativeNames": ([str], False),
        "Tags": ((Tags, list), False),
        "ValidationMethod": (str, False),
    }
