def _instance_types(self):
        """
        Return a list of all known EC2 instance types

        :returns: list of all valid known EC2 instance types
        :rtype: list
        """
        GENERAL_TYPES = [
            'a1.2xlarge',
            'a1.4xlarge',
            'a1.large',
            'a1.medium',
            'a1.xlarge',
            't2.nano',
            't2.micro',
            't2.small',
            't2.medium',
            't2.large',
            't2.xlarge',
            't2.2xlarge',
            't3.nano',
            't3.micro',
            't3.small',
            't3.medium',
            't3.large',
            't3.xlarge',
            't3.2xlarge',
            'm3.medium',
            'm3.large',
            'm3.xlarge',
            'm3.2xlarge',
            'm4.large',
            'm4.xlarge',
            'm4.2xlarge',
            'm4.4xlarge',
            'm4.10xlarge',
            'm4.16xlarge',
            'm5.12xlarge',
            'm5.24xlarge',
            'm5.2xlarge',
            'm5.4xlarge',
            'm5.large',
            'm5.xlarge',
            'm5d.12xlarge',
            'm5d.24xlarge',
            'm5d.2xlarge',
            'm5d.4xlarge',
            'm5d.large',
            'm5d.xlarge',
            'm5a.12xlarge',
            'm5a.24xlarge',
            'm5a.2xlarge',
            'm5a.4xlarge',
            'm5a.large',
            'm5a.xlarge',
        ]

        PREV_GENERAL_TYPES = [
            't1.micro',
            'm1.small',
            'm1.medium',
            'm1.large',
            'm1.xlarge',
        ]

        MEMORY_TYPES = [
            'r3.2xlarge',
            'r3.4xlarge',
            'r3.8xlarge',
            'r3.large',
            'r3.xlarge',
            'r4.2xlarge',
            'r4.4xlarge',
            'r4.8xlarge',
            'r4.16xlarge',
            'r4.large',
            'r4.xlarge',
            'r5.2xlarge',
            'r5.4xlarge',
            'r5.8xlarge',
            'r5.12xlarge',
            'r5.16xlarge',
            'r5.24xlarge',
            'r5.large',
            'r5.metal',
            'r5.xlarge',
            'r5a.12xlarge',
            'r5a.24xlarge',
            'r5a.2xlarge',
            'r5a.4xlarge',
            'r5a.large',
            'r5a.xlarge',
            'r5d.2xlarge',
            'r5d.4xlarge',
            'r5d.8xlarge',
            'r5d.12xlarge',
            'r5d.16xlarge',
            'r5d.24xlarge',
            'r5d.large',
            'r5d.metal',
            'r5d.xlarge',
            'x1.16xlarge',
            'x1.32xlarge',
            'x1e.2xlarge',
            'x1e.4xlarge',
            'x1e.8xlarge',
            'x1e.16xlarge',
            'x1e.32xlarge',
            'x1e.xlarge',
            'z1d.2xlarge',
            'z1d.3xlarge',
            'z1d.6xlarge',
            'z1d.12xlarge',
            'z1d.large',
            'z1d.xlarge',
        ]

        PREV_MEMORY_TYPES = [
            'm2.xlarge',
            'm2.2xlarge',
            'm2.4xlarge',
            'cr1.8xlarge',
        ]

        COMPUTE_TYPES = [
            'c3.large',
            'c3.xlarge',
            'c3.2xlarge',
            'c3.4xlarge',
            'c3.8xlarge',
            'c4.large',
            'c4.xlarge',
            'c4.2xlarge',
            'c4.4xlarge',
            'c4.8xlarge',
            'c5.18xlarge',
            'c5.2xlarge',
            'c5.4xlarge',
            'c5.9xlarge',
            'c5.large',
            'c5.xlarge',
            'c5d.18xlarge',
            'c5d.2xlarge',
            'c5d.4xlarge',
            'c5d.9xlarge',
            'c5d.large',
            'c5d.xlarge',
            'c5n.18xlarge',
            'c5n.2xlarge',
            'c5n.4xlarge',
            'c5n.9xlarge',
            'c5n.large',
            'c5n.xlarge',
        ]

        PREV_COMPUTE_TYPES = [
            'c1.medium',
            'c1.xlarge',
            'cc2.8xlarge',
            'cc1.4xlarge',
        ]

        ACCELERATED_COMPUTE_TYPES = [
            'f1.4xlarge',
            'p2.xlarge',
            'p2.8xlarge',
            'p2.16xlarge',
            'p3.16xlarge',
            'p3.2xlarge',
            'p3.8xlarge',
            'p3dn.24xlarge',
        ]

        STORAGE_TYPES = [
            'i2.xlarge',
            'i2.2xlarge',
            'i2.4xlarge',
            'i2.8xlarge',
            'i3.large',
            'i3.xlarge',
            'i3.2xlarge',
            'i3.4xlarge',
            'i3.8xlarge',
            'i3.16xlarge',
            'i3.metal',
            'h1.16xlarge',
            'h1.2xlarge',
            'h1.4xlarge',
            'h1.8xlarge',
        ]

        PREV_STORAGE_TYPES = [
            # NOTE hi1.4xlarge is no longer in the instance type listings,
            # but some accounts might still have a limit for it
            'hi1.4xlarge',
            'hs1.8xlarge',
        ]

        DENSE_STORAGE_TYPES = [
            'd2.xlarge',
            'd2.2xlarge',
            'd2.4xlarge',
            'd2.8xlarge',
        ]

        GPU_TYPES = [
            'g2.2xlarge',
            'g2.8xlarge',
            'g3.16xlarge',
            'g3.4xlarge',
            'g3.8xlarge',
            'g3s.xlarge',
        ]

        PREV_GPU_TYPES = [
            'cg1.4xlarge',
        ]

        FPGA_TYPES = [
            # note, as of 2016-12-17, these are still in Developer Preview;
            # there isn't a published instance limit yet, so we'll assume
            # it's the default...
            'f1.2xlarge',
            'f1.16xlarge',
        ]

        return (
            GENERAL_TYPES +
            PREV_GENERAL_TYPES +
            MEMORY_TYPES +
            PREV_MEMORY_TYPES +
            COMPUTE_TYPES +
            PREV_COMPUTE_TYPES +
            ACCELERATED_COMPUTE_TYPES +
            STORAGE_TYPES +
            PREV_STORAGE_TYPES +
            DENSE_STORAGE_TYPES +
            GPU_TYPES +
            PREV_GPU_TYPES +
            FPGA_TYPES
        )
def _instance_types ( self ) : GENERAL_TYPES = [ 'a1.2xlarge' , 'a1.4xlarge' , 'a1.large' , 'a1.medium' , 'a1.xlarge' , 't2.nano' , 't2.micro' , 't2.small' , 't2.medium' , 't2.large' , 't2.xlarge' , 't2.2xlarge' , 't3.nano' , 't3.micro' , 't3.small' , 't3.medium' , 't3.large' , 't3.xlarge' , 't3.2xlarge' , 'm3.medium' , 'm3.large' , 'm3.xlarge' , 'm3.2xlarge' , 'm4.large' , 'm4.xlarge' , 'm4.2xlarge' , 'm4.4xlarge' , 'm4.10xlarge' , 'm4.16xlarge' , 'm5.12xlarge' , 'm5.24xlarge' , 'm5.2xlarge' , 'm5.4xlarge' , 'm5.large' , 'm5.xlarge' , 'm5d.12xlarge' , 'm5d.24xlarge' , 'm5d.2xlarge' , 'm5d.4xlarge' , 'm5d.large' , 'm5d.xlarge' , 'm5a.12xlarge' , 'm5a.24xlarge' , 'm5a.2xlarge' , 'm5a.4xlarge' , 'm5a.large' , 'm5a.xlarge' , ] PREV_GENERAL_TYPES = [ 't1.micro' , 'm1.small' , 'm1.medium' , 'm1.large' , 'm1.xlarge' , ] MEMORY_TYPES = [ 'r3.2xlarge' , 'r3.4xlarge' , 'r3.8xlarge' , 'r3.large' , 'r3.xlarge' , 'r4.2xlarge' , 'r4.4xlarge' , 'r4.8xlarge' , 'r4.16xlarge' , 'r4.large' , 'r4.xlarge' , 'r5.2xlarge' , 'r5.4xlarge' , 'r5.8xlarge' , 'r5.12xlarge' , 'r5.16xlarge' , 'r5.24xlarge' , 'r5.large' , 'r5.metal' , 'r5.xlarge' , 'r5a.12xlarge' , 'r5a.24xlarge' , 'r5a.2xlarge' , 'r5a.4xlarge' , 'r5a.large' , 'r5a.xlarge' , 'r5d.2xlarge' , 'r5d.4xlarge' , 'r5d.8xlarge' , 'r5d.12xlarge' , 'r5d.16xlarge' , 'r5d.24xlarge' , 'r5d.large' , 'r5d.metal' , 'r5d.xlarge' , 'x1.16xlarge' , 'x1.32xlarge' , 'x1e.2xlarge' , 'x1e.4xlarge' , 'x1e.8xlarge' , 'x1e.16xlarge' , 'x1e.32xlarge' , 'x1e.xlarge' , 'z1d.2xlarge' , 'z1d.3xlarge' , 'z1d.6xlarge' , 'z1d.12xlarge' , 'z1d.large' , 'z1d.xlarge' , ] PREV_MEMORY_TYPES = [ 'm2.xlarge' , 'm2.2xlarge' , 'm2.4xlarge' , 'cr1.8xlarge' , ] COMPUTE_TYPES = [ 'c3.large' , 'c3.xlarge' , 'c3.2xlarge' , 'c3.4xlarge' , 'c3.8xlarge' , 'c4.large' , 'c4.xlarge' , 'c4.2xlarge' , 'c4.4xlarge' , 'c4.8xlarge' , 'c5.18xlarge' , 'c5.2xlarge' , 'c5.4xlarge' , 'c5.9xlarge' , 'c5.large' , 'c5.xlarge' , 'c5d.18xlarge' , 'c5d.2xlarge' , 'c5d.4xlarge' , 'c5d.9xlarge' , 'c5d.large' , 'c5d.xlarge' , 'c5n.18xlarge' , 'c5n.2xlarge' , 'c5n.4xlarge' , 'c5n.9xlarge' , 'c5n.large' , 'c5n.xlarge' , ] PREV_COMPUTE_TYPES = [ 'c1.medium' , 'c1.xlarge' , 'cc2.8xlarge' , 'cc1.4xlarge' , ] ACCELERATED_COMPUTE_TYPES = [ 'f1.4xlarge' , 'p2.xlarge' , 'p2.8xlarge' , 'p2.16xlarge' , 'p3.16xlarge' , 'p3.2xlarge' , 'p3.8xlarge' , 'p3dn.24xlarge' , ] STORAGE_TYPES = [ 'i2.xlarge' , 'i2.2xlarge' , 'i2.4xlarge' , 'i2.8xlarge' , 'i3.large' , 'i3.xlarge' , 'i3.2xlarge' , 'i3.4xlarge' , 'i3.8xlarge' , 'i3.16xlarge' , 'i3.metal' , 'h1.16xlarge' , 'h1.2xlarge' , 'h1.4xlarge' , 'h1.8xlarge' , ] PREV_STORAGE_TYPES = [ 'hi1.4xlarge' , 'hs1.8xlarge' , ] DENSE_STORAGE_TYPES = [ 'd2.xlarge' , 'd2.2xlarge' , 'd2.4xlarge' , 'd2.8xlarge' , ] GPU_TYPES = [ 'g2.2xlarge' , 'g2.8xlarge' , 'g3.16xlarge' , 'g3.4xlarge' , 'g3.8xlarge' , 'g3s.xlarge' , ] PREV_GPU_TYPES = [ 'cg1.4xlarge' , ] FPGA_TYPES = [ 'f1.2xlarge' , 'f1.16xlarge' , ] return ( GENERAL_TYPES + PREV_GENERAL_TYPES + MEMORY_TYPES + PREV_MEMORY_TYPES + COMPUTE_TYPES + PREV_COMPUTE_TYPES + ACCELERATED_COMPUTE_TYPES + STORAGE_TYPES + PREV_STORAGE_TYPES + DENSE_STORAGE_TYPES + GPU_TYPES + PREV_GPU_TYPES + FPGA_TYPES )
Return a list of all known EC2 instance types

        :returns: list of all valid known EC2 instance types
        :rtype: list