{
    "namespace": "OS::Compute::HostCapabilities",
    "display_name": "Compute Host Capabilities",
    "description": "Hardware capabilities provided by the compute host. This provides the ability to fine tune the hardware specification required when an instance is requested. The ComputeCapabilitiesFilter should be enabled in the Nova scheduler to use these properties. When enabled, this filter checks that the capabilities provided by the compute host satisfy any extra specifications requested. Only hosts that can provide the requested capabilities will be eligible for hosting the instance.",
    "visibility": "public",
    "protected": true,
    "resource_type_associations": [
        {
            "name": "OS::Nova::Flavor",
            "prefix": "capabilities:"
        },
        {
            "name": "OS::Nova::Aggregate",
            "prefix": "aggregate_instance_extra_specs:"
        }
    ],
    "properties": {
        "cpu_info:vendor": {
            "title": "Vendor",
            "description": "Specifies the CPU manufacturer.",
            "operators": ["<or>"],
            "type": "string",
            "enum": [
                "Intel",
                "AMD"
            ]
        },
        "cpu_info:model": {
            "title": "Model",
            "description": "Specifies the CPU model. Use this property to ensure that your vm runs on a specific cpu model.",
            "operators": ["<or>"],
            "type": "string",
            "enum": [
                "Conroe",
                "Core2Duo",
                "Penryn",
                "Nehalem",
                "Westmere",
                "SandyBridge",
                "IvyBridge",
                "Haswell",
                "Broadwell",
                "Delhi",
                "Seoul",
                "Abu Dhabi",
                "Interlagos",
                "Kabini",
                "Valencia",
                "Zurich",
                "Budapest",
                "Barcelona",
                "Suzuka",
                "Shanghai",
                "Istanbul",
                "Lisbon",
                "Magny-Cours",
                "Cortex-A57",
                "Cortex-A53",
                "Cortex-A12",
                "Cortex-A17",
                "Cortex-A15",
                "Coretx-A7",
                "X-Gene"
            ]
        },
        "cpu_info:arch": {
            "title": "Architecture",
            "description": "Specifies the CPU architecture. Use this property to specify the architecture supported by the hypervisor.",
            "operators": ["<or>"],
            "type": "string",
            "enum": [
                "x86",
                "x86_64",
                "i686",
                "ia64",
                "ARMv8-A",
                "ARMv7-A"
            ]
        },
        "cpu_info:topology:cores": {
            "title": "cores",
            "description": "Number of cores.",
            "type": "integer",
            "readonly": false,
            "default": 1
        },
        "cpu_info:topology:threads": {
            "title": "threads",
            "description": "Number of threads.",
            "type": "integer",
            "readonly": false,
            "default": 1
        },
        "cpu_info:topology:sockets": {
            "title": "sockets",
            "description": "Number of sockets.",
            "type": "integer",
            "readonly": false,
            "default": 1
        },
        "cpu_info:features": {
            "title": "Features",
            "description": "Specifies CPU flags/features. Using this property you can specify the required set of instructions supported by a vm.",
            "operators": ["<or>", "<all-in>"],
            "type": "array",
            "items": {
                "type": "string",
                "enum": [
                    "fpu",
                    "vme",
                    "de",
                    "pse",
                    "tsc",
                    "msr",
                    "pae",
                    "mce",
                    "cx8",
                    "apic",
                    "sep",
                    "mtrr",
                    "pge",
                    "mca",
                    "cmov",
                    "pat",
                    "pse36",
                    "pn",
                    "clflush",
                    "dts",
                    "acpi",
                    "mmx",
                    "fxsr",
                    "sse",
                    "sse2",
                    "ss",
                    "ht",
                    "tm",
                    "ia64",
                    "pbe",
                    "syscall",
                    "mp",
                    "nx",
                    "mmxext",
                    "fxsr_opt",
                    "pdpe1gb",
                    "rdtscp",
                    "lm",
                    "3dnowext",
                    "3dnow",
                    "arch_perfmon",
                    "pebs",
                    "bts",
                    "rep_good",
                    "nopl",
                    "xtopology",
                    "tsc_reliable",
                    "nonstop_tsc",
                    "extd_apicid",
                    "amd_dcm",
                    "aperfmperf",
                    "eagerfpu",
                    "nonstop_tsc_s3",
                    "pni",
                    "pclmulqdq",
                    "dtes64",
                    "monitor",
                    "ds_cpl",
                    "vmx",
                    "smx",
                    "est",
                    "tm2",
                    "ssse3",
                    "cid",
                    "fma",
                    "cx16",
                    "xtpr",
                    "pdcm",
                    "pcid",
                    "dca",
                    "sse4_1",
                    "sse4_2",
                    "x2apic",
                    "movbe",
                    "popcnt",
                    "tsc_deadline_timer",
                    "aes",
                    "xsave",
                    "avx",
                    "f16c",
                    "rdrand",
                    "hypervisor",
                    "rng",
                    "rng_en",
                    "ace",
                    "ace_en",
                    "ace2",
                    "ace2_en",
                    "phe",
                    "phe_en",
                    "pmm",
                    "pmm_en",
                    "lahf_lm",
                    "cmp_legacy",
                    "svm",
                    "extapic",
                    "cr8_legacy",
                    "abm",
                    "sse4a",
                    "misalignsse",
                    "3dnowprefetch",
                    "osvw",
                    "ibs",
                    "xop",
                    "skinit",
                    "wdt",
                    "lwp",
                    "fma4",
                    "tce",
                    "nodeid_msr",
                    "tbm",
                    "topoext",
                    "perfctr_core",
                    "perfctr_nb",
                    "bpext",
                    "perfctr_l2",
                    "mwaitx",
                    "ida",
                    "arat",
                    "cpb",
                    "epb",
                    "pln",
                    "pts",
                    "dtherm",
                    "hw_pstate",
                    "proc_feedback",
                    "hwp",
                    "hwp_notify",
                    "hwp_act_window",
                    "hwp_epp",
                    "hwp_pkg_req",
                    "intel_pt",
                    "tpr_shadow",
                    "vnmi",
                    "flexpriority",
                    "ept",
                    "vpid",
                    "npt",
                    "lbrv",
                    "svm_lock",
                    "nrip_save",
                    "tsc_scale",
                    "vmcb_clean",
                    "flushbyasid",
                    "decodeassists",
                    "pausefilter",
                    "pfthreshold",
                    "vmmcall",
                    "fsgsbase",
                    "tsc_adjust",
                    "bmi1",
                    "hle",
                    "avx2",
                    "smep",
                    "bmi2",
                    "erms",
                    "invpcid",
                    "rtm",
                    "cqm",
                    "mpx",
                    "avx512f",
                    "rdseed",
                    "adx",
                    "smap",
                    "pcommit",
                    "clflushopt",
                    "clwb",
                    "avx512pf",
                    "avx512er",
                    "avx512cd",
                    "sha_ni",
                    "xsaveopt",
                    "xsavec",
                    "xgetbv1",
                    "xsaves",
                    "cqm_llc",
                    "cqm_occup_llc",
                    "clzero"
                ]
            }
        }
    },
    "objects": []
}