# coding=utf-8
# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
# *** Do not edit by hand unless you're certain you know what you are doing! ***

from enum import Enum

__all__ = [
    'InstancePlatform',
    'InstanceType',
    'PlacementStrategy',
    'ProtocolType',
    'Tenancy',
]


class InstancePlatform(str, Enum):
    LINUX_UNIX = "Linux/UNIX"
    RED_HAT_ENTERPRISE_LINUX = "Red Hat Enterprise Linux"
    SUSE_LINUX = "SUSE Linux"
    WINDOWS = "Windows"
    WINDOWS_WITH_SQL_SERVER = "Windows with SQL Server"
    WINDOWS_WITH_SQL_SERVER_ENTERPRISE = "Windows with SQL Server Enterprise"
    WINDOWS_WITH_SQL_SERVER_STANDARD = "Windows with SQL Server Standard"
    WINDOWS_WITH_SQL_SERVER_WEB = "Windows with SQL Server Web"


class InstanceType(str, Enum):
    A1_2_X_LARGE = "a1.2xlarge"
    A1_4_X_LARGE = "a1.4xlarge"
    A1_LARGE = "a1.large"
    A1_MEDIUM = "a1.medium"
    A1_X_LARGE = "a1.xlarge"
    C3_2_X_LARGE = "c3.2xlarge"
    C3_4_X_LARGE = "c3.4xlarge"
    C3_8_X_LARGE = "c3.8xlarge"
    C3_LARGE = "c3.large"
    C3_X_LARGE = "c3.xlarge"
    C4_2_X_LARGE = "c4.2xlarge"
    C4_4_X_LARGE = "c4.4xlarge"
    C4_8_X_LARGE = "c4.8xlarge"
    C4_LARGE = "c4.large"
    C4_X_LARGE = "c4.xlarge"
    C5_18_X_LARGE = "c5.18xlarge"
    C5_2_X_LARGE = "c5.2xlarge"
    C5_4_X_LARGE = "c5.4xlarge"
    C5_9_X_LARGE = "c5.9xlarge"
    C5_LARGE = "c5.large"
    C5_X_LARGE = "c5.xlarge"
    C5A_12_X_LARGE = "c5a.12xlarge"
    C5A_16_X_LARGE = "c5a.16xlarge"
    C5A_2_X_LARGE = "c5a.2xlarge"
    C5A_24_X_LARGE = "c5a.24xlarge"
    C5A_4_X_LARGE = "c5a.4xlarge"
    C5A_8_X_LARGE = "c5a.8xlarge"
    C5A_LARGE = "c5a.large"
    C5A_X_LARGE = "c5a.xlarge"
    C5D_18_X_LARGE = "c5d.18xlarge"
    C5D_2_X_LARGE = "c5d.2xlarge"
    C5D_4_X_LARGE = "c5d.4xlarge"
    C5D_9_X_LARGE = "c5d.9xlarge"
    C5D_LARGE = "c5d.large"
    C5D_X_LARGE = "c5d.xlarge"
    C5N_18_X_LARGE = "c5n.18xlarge"
    C5N_2_X_LARGE = "c5n.2xlarge"
    C5N_4_X_LARGE = "c5n.4xlarge"
    C5N_9_X_LARGE = "c5n.9xlarge"
    C5N_LARGE = "c5n.large"
    C5N_X_LARGE = "c5n.xlarge"
    D2_2_X_LARGE = "d2.2xlarge"
    D2_4_X_LARGE = "d2.4xlarge"
    D2_8_X_LARGE = "d2.8xlarge"
    D2_X_LARGE = "d2.xlarge"
    F1_16_X_LARGE = "f1.16xlarge"
    F1_2_X_LARGE = "f1.2xlarge"
    G2_2_X_LARGE = "g2.2xlarge"
    G2_8_X_LARGE = "g2.8xlarge"
    G3_16_X_LARGE = "g3.16xlarge"
    G3_4_X_LARGE = "g3.4xlarge"
    G3_8_X_LARGE = "g3.8xlarge"
    G3S_X_LARGE = "g3s.xlarge"
    H1_16_X_LARGE = "h1.16xlarge"
    H1_2_X_LARGE = "h1.2xlarge"
    H1_4_X_LARGE = "h1.4xlarge"
    H1_8_X_LARGE = "h1.8xlarge"
    HS1_8_X_LARGE = "hs1.8xlarge"
    I3_16_X_LARGE = "i3.16xlarge"
    I3_2_X_LARGE = "i3.2xlarge"
    I3_4_X_LARGE = "i3.4xlarge"
    I3_8_X_LARGE = "i3.8xlarge"
    I3_LARGE = "i3.large"
    I3_X_LARGE = "i3.xlarge"
    I3_METAL = "i3.metal"
    M3_2_X_LARGE = "m3.2xlarge"
    M3_LARGE = "m3.large"
    M3_MEDIUM = "m3.medium"
    M3_X_LARGE = "m3.xlarge"
    M4_10_X_LARGE = "m4.10xlarge"
    M4_16_X_LARGE = "m4.16xlarge"
    M4_2_X_LARGE = "m4.2xlarge"
    M4_4_X_LARGE = "m4.4xlarge"
    M4_LARGE = "m4.large"
    M4_X_LARGE = "m4.xlarge"
    M5_LARGE = "m5.large"
    M5_X_LARGE = "m5.xlarge"
    M5_2_X_LARGE = "m5.2xlarge"
    M5_4_X_LARGE = "m5.4xlarge"
    M5_12_X_LARGE = "m5.12xlarge"
    M5_24_X_LARGE = "m5.24xlarge"
    M5D_LARGE = "m5d.large"
    M5D_X_LARGE = "m5d.xlarge"
    M5D_2_X_LARGE = "m5d.2xlarge"
    M5D_4_X_LARGE = "m5d.4xlarge"
    M5D_12_X_LARGE = "m5d.12xlarge"
    M5D_24_X_LARGE = "m5d.24xlarge"
    M5A_12_X_LARGE = "m5a.12xlarge"
    M5A_24_X_LARGE = "m5a.24xlarge"
    M5A_2_X_LARGE = "m5a.2xlarge"
    M5A_4_X_LARGE = "m5a.4xlarge"
    M5A_LARGE = "m5a.large"
    M5A_X_LARGE = "m5a.xlarge"
    P2_16_X_LARGE = "p2.16xlarge"
    P2_8_X_LARGE = "p2.8xlarge"
    P2_X_LARGE = "p2.xlarge"
    P3_16_X_LARGE = "p3.16xlarge"
    P3_2_X_LARGE = "p3.2xlarge"
    P3_8_X_LARGE = "p3.8xlarge"
    P3DN_24_X_LARGE = "p3dn.24xlarge"
    R3_2_X_LARGE = "r3.2xlarge"
    R3_4_X_LARGE = "r3.4xlarge"
    R3_8_X_LARGE = "r3.8xlarge"
    R3_LARGE = "r3.large"
    R3_X_LARGE = "r3.xlarge"
    R4_16_X_LARGE = "r4.16xlarge"
    R4_2_X_LARGE = "r4.2xlarge"
    R4_4_X_LARGE = "r4.4xlarge"
    R4_8_X_LARGE = "r4.8xlarge"
    R4_LARGE = "r4.large"
    R4_X_LARGE = "r4.xlarge"
    R5_12_X_LARGE = "r5.12xlarge"
    R5_24_X_LARGE = "r5.24xlarge"
    R5_2_X_LARGE = "r5.2xlarge"
    R5_4_X_LARGE = "r5.4xlarge"
    R5_LARGE = "r5.large"
    R5_X_LARGE = "r5.xlarge"
    R5A_12_X_LARGE = "r5a.12xlarge"
    R5A_24_X_LARGE = "r5a.24xlarge"
    R5A_2_X_LARGE = "r5a.2xlarge"
    R5A_4_X_LARGE = "r5a.4xlarge"
    R5A_LARGE = "r5a.large"
    R5A_X_LARGE = "r5a.xlarge"
    R5D_12_X_LARGE = "r5d.12xlarge"
    R5D_24_X_LARGE = "r5d.24xlarge"
    R5D_2_X_LARGE = "r5d.2xlarge"
    R5D_4_X_LARGE = "r5d.4xlarge"
    R5D_LARGE = "r5d.large"
    R5D_X_LARGE = "r5d.xlarge"
    T2_2_X_LARGE = "t2.2xlarge"
    T2_LARGE = "t2.large"
    T2_MEDIUM = "t2.medium"
    T2_MICRO = "t2.micro"
    T2_NANO = "t2.nano"
    T2_SMALL = "t2.small"
    T2_X_LARGE = "t2.xlarge"
    T3_2_X_LARGE = "t3.2xlarge"
    T3_LARGE = "t3.large"
    T3_MEDIUM = "t3.medium"
    T3_MICRO = "t3.micro"
    T3_NANO = "t3.nano"
    T3_SMALL = "t3.small"
    T3_X_LARGE = "t3.xlarge"
    T3A_2_X_LARGE = "t3a.2xlarge"
    T3A_LARGE = "t3a.large"
    T3A_MEDIUM = "t3a.medium"
    T3A_MICRO = "t3a.micro"
    T3A_NANO = "t3a.nano"
    T3A_SMALL = "t3a.small"
    T3A_X_LARGE = "t3a.xlarge"
    U_12TB1_METAL = "u-12tb1.metal"
    U_6TB1_METAL = "u-6tb1.metal"
    U_9TB1_METAL = "u-9tb1.metal"
    X1_16_X_LARGE = "x1.16xlarge"
    X1_32_X_LARGE = "x1.32xlarge"
    X1E_16_X_LARGE = "x1e.16xlarge"
    X1E_2_X_LARGE = "x1e.2xlarge"
    X1E_32_X_LARGE = "x1e.32xlarge"
    X1E_4_X_LARGE = "x1e.4xlarge"
    X1E_8_X_LARGE = "x1e.8xlarge"
    X1E_X_LARGE = "x1e.xlarge"
    Z1D_12_X_LARGE = "z1d.12xlarge"
    Z1D_2_X_LARGE = "z1d.2xlarge"
    Z1D_3_X_LARGE = "z1d.3xlarge"
    Z1D_6_X_LARGE = "z1d.6xlarge"
    Z1D_LARGE = "z1d.large"
    Z1D_X_LARGE = "z1d.xlarge"


class PlacementStrategy(str, Enum):
    """
    The strategy of the placement group determines how the instances are organized within the group.
    See https://docs.aws.amazon.com/cli/latest/reference/ec2/create-placement-group.html
    """
    SPREAD = "spread"
    CLUSTER = "cluster"


class ProtocolType(str, Enum):
    ALL = "all"
    TCP = "tcp"
    UDP = "udp"
    ICMP = "icmp"


class Tenancy(str, Enum):
    DEFAULT = "default"
    DEDICATED = "dedicated"
