# Copyright (c) 2012-2022, 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


class EnabledControlParameter(AWSProperty):
    """
    `EnabledControlParameter <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-controltower-enabledcontrol-enabledcontrolparameter.html>`__
    """

    props: PropsDictType = {
        "Key": (str, True),
        "Value": (dict, True),
    }


class EnabledControl(AWSObject):
    """
    `EnabledControl <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-controltower-enabledcontrol.html>`__
    """

    resource_type = "AWS::ControlTower::EnabledControl"

    props: PropsDictType = {
        "ControlIdentifier": (str, True),
        "Parameters": ([EnabledControlParameter], False),
        "TargetIdentifier": (str, True),
    }


class LandingZone(AWSObject):
    """
    `LandingZone <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-controltower-landingzone.html>`__
    """

    resource_type = "AWS::ControlTower::LandingZone"

    props: PropsDictType = {
        "Manifest": (dict, True),
        "Tags": (Tags, False),
        "Version": (str, True),
    }
