# 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: 39.7.0


from troposphere import Tags

from . import AWSObject, AWSProperty
from .validators import boolean


class Ledger(AWSObject):
    resource_type = "AWS::QLDB::Ledger"

    props = {
        "DeletionProtection": (boolean, False),
        "KmsKey": (str, False),
        "Name": (str, False),
        "PermissionsMode": (str, True),
        "Tags": (Tags, False),
    }


class KinesisConfiguration(AWSProperty):
    props = {
        "AggregationEnabled": (boolean, False),
        "StreamArn": (str, False),
    }


class Stream(AWSObject):
    resource_type = "AWS::QLDB::Stream"

    props = {
        "ExclusiveEndTime": (str, False),
        "InclusiveStartTime": (str, True),
        "KinesisConfiguration": (KinesisConfiguration, True),
        "LedgerName": (str, True),
        "RoleArn": (str, True),
        "StreamName": (str, True),
        "Tags": (Tags, False),
    }
