from . import AWSObject, Tags
from .validators import boolean


class Trail(AWSObject):
    resource_type = "AWS::CloudTrail::Trail"

    props = {
        'CloudWatchLogsLogGroupArn': (basestring, False),
        'CloudWatchLogsRoleArn': (basestring, False),
        'EnableLogFileValidation': (boolean, False),
        'IncludeGlobalServiceEvents': (boolean, False),
        'IsLogging': (boolean, True),
        'IsMultiRegionTrail': (boolean, False),
        'KMSKeyId': (basestring, False),
        'S3BucketName': (basestring, True),
        'S3KeyPrefix': (basestring, False),
        'SnsTopicName': (basestring, False),
        'Tags': (Tags, False),
        'TrailName': (basestring, False),
    }

@@ -22,17 +22,30 @@
 ct, Tags
+, AWSProperty
 %0A
-
 from .va
@@ -70,16 +70,353 @@
 olean%0A%0A%0A
+class DataResource(AWSProperty):%0A    props = %7B%0A        'Type': (basestring, True),%0A        'Values': (%5Bbasestring%5D, False),%0A    %7D%0A%0A%0Aclass EventSelector(AWSProperty):%0A    props = %7B%0A        'DataResources': (%5BDataResource%5D, False),%0A        'IncludeManagementEvents': (boolean, False),%0A        'ReadWriteType': (basestring, False),%0A    %7D%0A%0A%0A
 class Tr
@@ -595,32 +595,32 @@
 string, False),%0A
-
         'EnableL
@@ -648,32 +648,84 @@
 oolean, False),%0A
+        'EventSelectors': (%5BEventSelector%5D, False),%0A
         'Include

Add CloudTrail EventSelectors (#815)