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


from . import AWSObject
from . import AWSProperty
from .validators import integer


class EventBus(AWSObject):
    resource_type = "AWS::Events::EventBus"

    props = {
        'EventSourceName': (basestring, False),
        'Name': (basestring, True),
    }


class Condition(AWSProperty):
    props = {
        'Key': (basestring, False),
        'Type': (basestring, False),
        'Value': (basestring, False),
    }


class EventBusPolicy(AWSObject):
    resource_type = "AWS::Events::EventBusPolicy"

    props = {
        'Action': (basestring, True),
        'Condition': (Condition, False),
        'EventBusName': (basestring, False),
        'Principal': (basestring, True),
        'StatementId': (basestring, True),
    }


class BatchArrayProperties(AWSProperty):
    props = {
        'Size': (integer, False),
    }


class BatchRetryStrategy(AWSProperty):
    props = {
        'Attempts': (integer, False),
    }


class BatchParameters(AWSProperty):
    props = {
        'ArrayProperties': (BatchArrayProperties, False),
        'JobDefinition': (basestring, True),
        'JobName': (basestring, True),
        'RetryStrategy': (BatchRetryStrategy, False),
    }


class AwsVpcConfiguration(AWSProperty):
    props = {
        'AssignPublicIp': (basestring, False),
        'SecurityGroups': ([basestring], False),
        'Subnets': ([basestring], True),
    }


class NetworkConfiguration(AWSProperty):
    props = {
        'AwsVpcConfiguration': (AwsVpcConfiguration, False),
    }


class EcsParameters(AWSProperty):
    props = {
        'Group': (basestring, False),
        'LaunchType': (basestring, False),
        'NetworkConfiguration': (NetworkConfiguration, False),
        'PlatformVersion': (basestring, False),
        'TaskCount': (integer, False),
        'TaskDefinitionArn': (basestring, True),
    }


class InputTransformer(AWSProperty):
    props = {
        'InputPathsMap': (dict, False),
        'InputTemplate': (basestring, True),
    }


class KinesisParameters(AWSProperty):
    props = {
        'PartitionKeyPath': (basestring, True),
    }


class RunCommandTarget(AWSProperty):
    props = {
        'Key': (basestring, True),
        'Values': ([basestring], True),
    }


class RunCommandParameters(AWSProperty):
    props = {
        'RunCommandTargets': ([RunCommandTarget], True),
    }


class SqsParameters(AWSProperty):
    props = {
        'MessageGroupId': (basestring, True),
    }


class Target(AWSProperty):
    props = {
        'Arn': (basestring, True),
        'BatchParameters': (BatchParameters, False),
        'EcsParameters': (EcsParameters, False),
        'Id': (basestring, True),
        'Input': (basestring, False),
        'InputPath': (basestring, False),
        'InputTransformer': (InputTransformer, False),
        'KinesisParameters': (KinesisParameters, False),
        'RoleArn': (basestring, False),
        'RunCommandParameters': (RunCommandParameters, False),
        'SqsParameters': (SqsParameters, False),
    }


class Rule(AWSObject):
    resource_type = "AWS::Events::Rule"

    props = {
        'Description': (basestring, False),
        'EventBusName': (basestring, False),
        'EventPattern': (dict, False),
        'Name': (basestring, False),
        'RoleArn': (basestring, False),
        'ScheduleExpression': (basestring, False),
        'State': (basestring, False),
        'Targets': ([Target], False),
    }

@@ -2049,24 +2049,226 @@
 e),%0A    %7D%0A%0A%0A
+class HttpParameters(AWSProperty):%0A    props = %7B%0A        'HeaderParameters': (dict, False),%0A        'PathParameterValues': (%5Bbasestring%5D, False),%0A        'QueryStringParameters': (dict, False),%0A    %7D%0A%0A%0A
 class InputT
@@ -3033,32 +3033,83 @@
 meters, False),%0A
+        'HttpParameters': (HttpParameters, False),%0A
         'Id': (b

Update AWS::Events::Rule per 2020-07-06 changes