# Copyright (c) 2012-2024, 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
from .validators import boolean, double, integer
from .validators.globalaccelerator import (
accelerator_ipaddresstype,
endpointgroup_healthcheckprotocol,
listener_clientaffinity,
listener_protocol,
)
[docs]class Accelerator(AWSObject):
"""
`Accelerator <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-accelerator.html>`__
"""
resource_type = "AWS::GlobalAccelerator::Accelerator"
props: PropsDictType = {
"Enabled": (boolean, False),
"IpAddressType": (accelerator_ipaddresstype, False),
"IpAddresses": ([str], False),
"Name": (str, True),
"Tags": (Tags, False),
}
[docs]class Resource(AWSProperty):
"""
`Resource <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-globalaccelerator-crossaccountattachment-resource.html>`__
"""
props: PropsDictType = {
"EndpointId": (str, True),
"Region": (str, False),
}
[docs]class CrossAccountAttachment(AWSObject):
"""
`CrossAccountAttachment <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-crossaccountattachment.html>`__
"""
resource_type = "AWS::GlobalAccelerator::CrossAccountAttachment"
props: PropsDictType = {
"Name": (str, True),
"Principals": ([str], False),
"Resources": ([Resource], False),
"Tags": (Tags, False),
}
[docs]class EndpointConfiguration(AWSProperty):
"""
`EndpointConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-globalaccelerator-endpointgroup-endpointconfiguration.html>`__
"""
props: PropsDictType = {
"AttachmentArn": (str, False),
"ClientIPPreservationEnabled": (boolean, False),
"EndpointId": (str, True),
"Weight": (integer, False),
}
[docs]class PortOverride(AWSProperty):
"""
`PortOverride <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-globalaccelerator-endpointgroup-portoverride.html>`__
"""
props: PropsDictType = {
"EndpointPort": (integer, True),
"ListenerPort": (integer, True),
}
[docs]class EndpointGroup(AWSObject):
"""
`EndpointGroup <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-endpointgroup.html>`__
"""
resource_type = "AWS::GlobalAccelerator::EndpointGroup"
props: PropsDictType = {
"EndpointConfigurations": ([EndpointConfiguration], False),
"EndpointGroupRegion": (str, True),
"HealthCheckIntervalSeconds": (integer, False),
"HealthCheckPath": (str, False),
"HealthCheckPort": (integer, False),
"HealthCheckProtocol": (endpointgroup_healthcheckprotocol, False),
"ListenerArn": (str, True),
"PortOverrides": ([PortOverride], False),
"ThresholdCount": (integer, False),
"TrafficDialPercentage": (double, False),
}
[docs]class PortRange(AWSProperty):
"""
`PortRange <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-globalaccelerator-listener-portrange.html>`__
"""
props: PropsDictType = {
"FromPort": (integer, True),
"ToPort": (integer, True),
}
[docs]class Listener(AWSObject):
"""
`Listener <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-listener.html>`__
"""
resource_type = "AWS::GlobalAccelerator::Listener"
props: PropsDictType = {
"AcceleratorArn": (str, True),
"ClientAffinity": (listener_clientaffinity, False),
"PortRanges": ([PortRange], True),
"Protocol": (listener_protocol, True),
}