API Reference

Last updated: 04-04-2024

Foundation REST API (5.0)

Download OpenAPI specification:Download

Foundation

Foundation is a Nutanix provided tool used for bootstrapping, imaging, and deployment of Nutanix clusters. The imaging process will install the desired version of the AOS software and the hypervisor of your choice. One of the ways to use Foundation services is to make use of the APIs provided by Foundation.

Foundation provides seven categories of APIs, namely, General APIs, File Management APIs, Networking APIs, Imaging and Cluster Creation APIs, UCS Managed Mode APIs, Foundation Upgrade APIs and Factory APIs.

However, most of these APIs find their use in internal scenarios. Some APIs that find most relevance in the customer scenario are image_nodes, pre_check, reboot_to_phoenix, reboot_from_phoenix, progress, phoenix_network_status, abort_session, get_progress_sessions among others.

  • Foundation Version: 5.0

Terminology

Some of the acronyms frequently used in the API descriptions are listed below:

  • FVM - Foundation Virtual Machine, A VM that has Foundation service running on it.
  • BMC - Baseboard management controller.
  • IPMI - Intelligent Platform Management Interface.

Contact Us by Email

License: Copyright Nutanix Inc. All rights reserved

Components APIs

Get available updates.

Gets the list of available updates. Comma-separated component names can be provided as query parameter. If no component name is provided, it returns the list of updates for all installed components.

query Parameters
components
string

Comma-separated list of components

Responses

Request samples

curl --request GET \
    --url https://fvm_ip:8000/foundation/components/available_updates \
    --header 'Accept: application/json' \
     

Response samples

Content type
application/json
{
  • "updates": [
    ]
}

Get installation progress

Gets the component installation progress.

Responses

Request samples

curl --request GET \
    --url https://fvm_ip:8000/foundation/components/install_progress \
    --header 'Accept: application/json' \
     

Response samples

Content type
application/json
{
  • "components": [
    ],
  • "error": {
    },
  • "status": "string"
}

Get installed components list.

Gets a list of all installed components along with their versions.

Responses

Request samples

curl --request GET \
    --url https://fvm_ip:8000/foundation/components/inventory \
    --header 'Accept: application/json' \
     

Response samples

Content type
application/json
{
  • "components": [
    ]
}

Install packages

Installs the updates from the list.

Request Body schema: application/json
required
required
Array of objects (component_install)

Updates list.

Responses

Request samples

curl --request POST \
    --url https://fvm_ip:8000/foundation/components/install \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
    --data '{
    "updates": [
        {
            "component_name": "string",
            "target_version": "string"
        }
    ]
}'

Response samples

Content type
application/json
{
  • "components": [
    ]
}

Upload and install package for a component

Uploads and install the package for a component.

query Parameters
filename
required
string

Package file name

component
required
string

Component name

Responses

Request samples

curl --request PUT \
    --url https://fvm_ip:8000/foundation/components/upload \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
     

Response samples

Content type
application/json
{
  • "error": {
    }
}

File Management APIs

Delete a file uploaded to foundation.

Deletes hypervisor or AOS images uploaded to foundation.

Request Body schema: application/json
any

Responses

Request samples

curl --request POST \
    --url https://fvm_ip:8000/foundation/delete \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
     

Get current hypervisor whitelist.

Gets the current hypervisor whitelist.

Responses

Request samples

curl --request GET \
    --url https://fvm_ip:8000/foundation/get_whitelist \
    --header 'Accept: application/json' \
     

Response samples

Content type
application/json
{
  • "iso_whitelist": {
    },
  • "last_modified": 0
}

Get list of AOS packages available in Foundation.

Lists the available AOS packages in Foundation.

Responses

Request samples

curl --request GET \
    --url https://fvm_ip:8000/foundation/enumerate_nos_packages \
    --header 'Accept: application/json' \
     

Response samples

Content type
application/json
[
  • "string"
]

List hypervisor images available in Foundation.

Lists the hypervisor ISOs available in Foundation.

Responses

Request samples

curl --request GET \
    --url https://fvm_ip:8000/foundation/enumerate_hypervisor_isos \
    --header 'Accept: application/json' \
     

Response samples

Content type
application/json
{
  • "esx": [
    ],
  • "hyperv": [
    ],
  • "kvm": [
    ],
  • "linux": [
    ]
}

Update the hypervisor whitelist.

Updates the hypervisor whitelist.

Request Body schema: application/json
required
object

Details of ISO.

last_modified
integer <int64>

Last modified time.

Responses

Request samples

curl --request POST \
    --url https://fvm_ip:8000/foundation/update_whitelist \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
    --data '{
    "iso_whitelist": {
        "additionalProperties": {
            "compatible_versions": {
                "esx": [
                    "string"
                ],
                "hyperv": [
                    "string"
                ],
                "kvm": [
                    "string"
                ],
                "xen": [
                    "string"
                ]
            },
            "deprecated": "string",
            "filesize": "string",
            "friendly_name": "string",
            "hypervisor": "string",
            "min_foundation": "string",
            "min_nos": "string",
            "skus": [
                "string"
            ],
            "unsupported_hardware": [
                "string"
            ],
            "version": "string"
        }
    },
    "last_modified": 0
}'

Upload hypervisor or AOS image to foundation.

Uploads hypervisor or AOS image to foundation.

query Parameters
filename
required
string

Name of installer file.

installer_type
required
string

One of "kvm", "esx", "hyperv", "xen", or "nos".

Responses

Request samples

curl --request POST \
    --url https://fvm_ip:8000/foundation/upload \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
     

Response samples

Content type
application/json
{
  • "in_whitelist": true,
  • "md5sum": "string",
  • "name": "string"
}

Foundation Upgrade APIs

Checks if there are any updates available for foundation.

Checks if a foundation update is available.

Responses

Request samples

curl --request POST \
    --url https://fvm_ip:8000/foundation/is_update_available \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
     

Response samples

Content type
application/json
{
  • "update": "string",
  • "update_available": true
}

Get last foundation update log.

Gets the logs of foundation upgrade process.

Responses

Request samples

curl --request GET \
    --url https://fvm_ip:8000/foundation/get_update_log \
    --header 'Accept: application/json' \
     

Get the previous Foundation Update status.

Gets the previous Foundation update status such as success, failure, in-progress and no auto update in progress.

Responses

Request samples

curl --request GET \
    --url https://fvm_ip:8000/foundation/last_update_status \
    --header 'Accept: application/json' \
     

Response samples

Content type
application/json
{
  • "status": "string"
}

Update foundation.

Updates Foundation either to a specified TAR file or version available on the Foundation Update URL mentioned in update_manager. If no path is provided for TAR file, the API looks, by default, for TAR file in the ~/foundation_updates folder.

query Parameters
tar_file
string

Responses

Request samples

curl --request GET \
    --url https://fvm_ip:8000/foundation/auto_update_foundation \
    --header 'Accept: application/json' \
     

Response samples

Content type
application/json
{
  • "error": {
    }
}

General APIs

Boot node(s) into phoenix.

Boots node(s) in phoenix asynchronously.

Request Body schema: application/json
required
ipmi_password
string

IPMI password.

ipmi_user
string

IPMI user.

required
Array of objects (node_dict_for_boot_phoenix)

Node details.

phoenix_gateway
string <ipv4>

Phoenix gateway.

phoenix_netmask
string <ipv4>

Phoenix netmask.

Responses

Request samples

curl --request POST \
    --url https://fvm_ip:8000/foundation/boot_phoenix \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
    --data '{
    "ipmi_password": "string",
    "ipmi_user": "string",
    "nodes": [
        {
            "bond_lacp_rate": "string",
            "bond_mode": "string",
            "bond_uplinks": [
                "string"
            ],
            "device_hint": "string",
            "install_discovery_os": true,
            "ipmi_ip": "192.168.0.1",
            "phoenix_ip": "192.168.0.1"
        }
    ],
    "phoenix_gateway": "192.168.0.1",
    "phoenix_netmask": "192.168.0.1"
}'

Response samples

Content type
application/json
{
  • "session_id": "string"
}

Check whether a hypervisor is supported.

Gets the details of a supported hypervisor from the iso_whitelist.json. If an AHV version is not specified in the JSON, the API reports it as supported with no additional details.

Request Body schema: application/json
required
hypervisor_type
required
string

Hypervisor type.

md5sum
required
string

md5sum of the hypervisor ISO.

node_model
required
string

Model name of the node.

nos_version
required
string

NOS version.

Responses

Request samples

curl --request POST \
    --url https://fvm_ip:8000/foundation/is_iso_supported \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
    --data '{
    "hypervisor_type": "string",
    "md5sum": "string",
    "node_model": "string",
    "nos_version": "string"
}'

Response samples

Content type
application/json
{
  • "metadata": { },
  • "supported": true
}

Detect hypervisor type.

Detects the hypervisor_ip for the CVM. Example: kvm, esx, hyperv.

Responses

Request samples

curl --request GET \
    --url https://fvm_ip:8000/foundation/detect_local_hypervisor_type \
    --header 'Accept: application/json' \
     

Response samples

Content type
application/json
"string"

Enable or disable foundation features.

Enables or disables foundation features for the current foundation session. If any of the features provided are unsupported by foundation or cannot be modified by this API, it aborts the operation and returns an error. This API has a non-persistent behaviour, i.e., when foundation is restarted, the features which are enabled/disabled by the API will not be reflected.

Request Body schema: application/json
required
Array
enable
boolean

True, if the feature has to be enabled. False, if the feature has to be disabled.

feature_name
string

Name of the feature.

Responses

Request samples

curl --request POST \
    --url https://fvm_ip:8000/foundation/features \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
    --data '{
    "features": [
        {
            "enable": true,
            "feature_name": "string"
        }
    ]
}'

Response samples

Content type
application/json
{
  • "error": {
    }
}

Get drivers tarball.

Gets a tarball with the required drivers for a given hypervisor type.

query Parameters
vendor
string

Vendor of hypervisor iso, required only for esx.

hypervisor_version
string

Hypervisor version, required only for esx.

hypervisor_type
required
string

Hypervisor Type.

Responses

Request samples

curl --request GET \
    --url https://fvm_ip:8000/foundation/drivers \
    --header 'Accept: application/json' \
     

Response samples

Content type
application/json
[
  • {
    }
]

Get feature(s) and their status.

Gets the status of the feature if feature_name is specified. Gets all the features with a particular status if status is specified. Gets all the features and their status if no query parameters are provided.

query Parameters
enabled
boolean

True, to query enabled features. False, to query disabled features

feature_name
string

Name of the feature.

Responses

Request samples

curl --request GET \
    --url https://fvm_ip:8000/foundation/features \
    --header 'Accept: application/json' \
     

Response samples

Content type
application/json
[
  • {
    }
]

Get Foundation tarball.

Gets tarball of currently running foundation. By default, this excludes hypervisor and AOS images inside Foundation VM to return a tarball of minimum size.

Responses

Request samples

curl --request GET \
    --url https://fvm_ip:8000/foundation/get_foundation_tar \
    --header 'Accept: application/json' \
     

Get Foundation version.

Gets the version of Foundation software.

Responses

Request samples

curl --request GET \
    --url https://fvm_ip:8000/foundation/version \
    --header 'Accept: application/json' \
     

Response samples

Content type
application/json
"string"

Get phoenix ISO.

Generates and downloads Phoenix ISO.

Request Body schema: application/json
required
arch
string

Must be one of x86_64 or ppc64le.

bond_lacp_rate
string

slow or fast if lacp if being used at the switch.

bond_mode
string

dynamic if LACP, static if using LAG.

bond_uplinks
Array of strings

MAC Addresses of NICs in a teambond.

gateway
string <ipv4>

Phoenix Netmask

ip
string <ipv4>

Phoenix Ipv4 address.

mode
string

Must be one of Installer, RescueShell or NDPRescueShell.

nameservers
Array of strings <ipv4> [ items <ipv4 > ]

List of DNS servers.

netmask
string <ipv4>

Phoenix Netmask.

test_ip
string <ipv4>

IP to test phoenix connectivity with.

Responses

Request samples

curl --request POST \
    --url https://fvm_ip:8000/foundation/get_phoenix_iso \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
    --data '{
    "arch": "string",
    "bond_lacp_rate": "string",
    "bond_mode": "string",
    "bond_uplinks": [
        "string"
    ],
    "gateway": "192.168.0.1",
    "ip": "192.168.0.1",
    "mode": "string",
    "nameservers": [
        "192.168.0.1"
    ],
    "netmask": "192.168.0.1",
    "test_ip": "192.168.0.1"
}'

Reboot a node from phoenix.

Reboot the phoenix image back.

Request Body schema: application/json
required
compute_only
boolean

indicate this is a compute-only node.

cvm_ip
string <ipv4>

IP address of CVM.

hypervisor_ip
string <ipv4>

IP address of Hypervisor.

reboot_timeout_mins
integer <int64> >= 25

Time period (in minutes) foundation waits for the CVM to come up.

Responses

Request samples

curl --request POST \
    --url https://fvm_ip:8000/foundation/reboot_from_phoenix \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
    --data '{
    "compute_only": true,
    "cvm_ip": "192.168.0.1",
    "hypervisor_ip": "192.168.0.1",
    "reboot_timeout_mins": 25
}'

Reboot a node into phoenix.

Reboot CVM into Phoenix image.

Request Body schema: application/json
required
bond_lacp_rate
string

slow or fast if lacp if being used at the switch

bond_mode
string

dynamic if using LACP, static for LAG

bond_uplinks
Array of strings

MAC Addresses of NICs in a team/bond

compute_only
boolean

indicate this is a compute-only node.

cvm_gateway
string <ipv4>

Gateway of CVM.

cvm_ip
string <ipv4>

IP address of CVM.

cvm_netmask
string <ipv4>

Netmask of CVM.

cvm_vlan_id
integer

vlan id of cvm.

hypervisor_gateway
string <ipv4>

Gateway of the hypervisor.

hypervisor_ip
string <ipv4>

IP address of the hypervisor.

hypervisor_netmask
string <ipv4>

Netmask of the hypervisor.

mitigate_low_boot_space
boolean

relocate bootbank files to make space for phoenix files.

nameservers
Array of strings <ipv4> [ items <ipv4 > ]

List of DNS servers.

precheck_only
boolean

Check if the node can be booted into phoenix.

reboot_timeout_mins
integer <int64> >= 25

Time period (in minutes) foundation waits for the node to boot into phoenix.

Responses

Request samples

curl --request POST \
    --url https://fvm_ip:8000/foundation/reboot_to_phoenix \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
    --data '{
    "bond_lacp_rate": "string",
    "bond_mode": "string",
    "bond_uplinks": [
        "string"
    ],
    "compute_only": true,
    "cvm_gateway": "192.168.0.1",
    "cvm_ip": "192.168.0.1",
    "cvm_netmask": "192.168.0.1",
    "cvm_vlan_id": 0,
    "hypervisor_gateway": "192.168.0.1",
    "hypervisor_ip": "192.168.0.1",
    "hypervisor_netmask": "192.168.0.1",
    "mitigate_low_boot_space": true,
    "nameservers": [
        "192.168.0.1"
    ],
    "precheck_only": true,
    "reboot_timeout_mins": 25
}'

Response samples

Content type
application/json
{
  • "session_id": "string"
}

Imaging and Cluster Creation APIs

Abort a running session.

Aborts a running imaging session for a given session_id.

query Parameters
session_id
required
string

Responses

Request samples

curl --request GET \
    --url https://fvm_ip:8000/foundation/abort_session \
    --header 'Accept: application/json' \
     

Download archive of the logs.

Downloads archive of the logs.

Responses

Request samples

curl --request GET \
    --url https://fvm_ip:8000/foundation/log_archive_tar \
    --header 'Accept: application/json' \
     

Get cluster log.

Gets the cluster installation log. Can also get the logs for a particular session ID.

query Parameters
session_id
string

ID of imaging session

cvm_ip
required
string

Specify cvm ip of any member of the cluster.

Responses

Request samples

curl --request GET \
    --url https://fvm_ip:8000/foundation/cluster_log \
    --header 'Accept: application/json' \
     

Get Foundation log for a node.

Gets the Foundation installation log for an individual node. Can also get the logs for a particular session ID.

query Parameters
ip
string

Can be one of hypervisor, phoenix or cvm ip of the node.

session_id
string

ID of imaging session

hypervisor_ip
string

Specify the hypervisor ip of the node.

Responses

Request samples

curl --request GET \
    --url https://fvm_ip:8000/foundation/node_log \
    --header 'Accept: application/json' \
     

Get foundation service logs.

Gets the logs of foundation service.

Responses

Request samples

curl --request GET \
    --url https://fvm_ip:8000/foundation/service_log \
    --header 'Accept: application/json' \
     

Get progress of imaging.

Gets progress of imaging session.

query Parameters
session_id
string

ID of imaging session

Responses

Request samples

curl --request GET \
    --url https://fvm_ip:8000/foundation/progress \
    --header 'Accept: application/json' \
     

Response samples

Content type
application/json
{
  • "abort_session": true,
  • "action": "string",
  • "aggregate_percent_complete": 0.1,
  • "clusters": [
    ],
  • "imaging_stopped": true,
  • "nodes": [
    ],
  • "results": [
    ],
  • "session_id": "string"
}

Get status of imaging sessions.

Reports status of current and all previous sessions. The sessions can have active, failed and succeeded status. Can use this API to also check if a session is currently active.

Responses

Request samples

curl --request GET \
    --url https://fvm_ip:8000/foundation/get_progress_sessions \
    --header 'Accept: application/json' \
     

Response samples

Content type
application/json
{
  • "active_sessions": [
    ],
  • "failed_sessions": [
    ],
  • "succeeded_sessions": [
    ]
}

Get the imaging configuration of the previous session.

Gets the imaging configuration of the previous session.

Responses

Request samples

curl --request GET \
    --url https://fvm_ip:8000/foundation/get_last_config \
    --header 'Accept: application/json' \
     

Response samples

Content type
application/json
{
  • "blocks": [
    ],
  • "clusters": [
    ],
  • "cvm_gateway": "192.168.0.1",
  • "cvm_netmask": "192.168.0.1",
  • "eos_metadata": {
    },
  • "fc_settings": {
    },
  • "hyperv_external_vnic": "string",
  • "hyperv_external_vswitch": "string",
  • "hyperv_product_key": "string",
  • "hyperv_sku": "string",
  • "hypervisor_gateway": "192.168.0.1",
  • "hypervisor_iso": {
    },
  • "hypervisor_nameserver": "string",
  • "hypervisor_netmask": "192.168.0.1",
  • "hypervisor_password": "string",
  • "install_script": "string",
  • "ipmi_password": "string",
  • "ipmi_user": "string",
  • "nos_package": "string",
  • "skip_hypervisor": true,
  • "svm_rescue_args": [
    ],
  • "tests": {
    },
  • "ucsm_ip": "192.168.0.1",
  • "ucsm_password": "string",
  • "ucsm_user": "string",
  • "unc_password": "string",
  • "unc_path": "string",
  • "unc_username": "string",
  • "xen_config_type": "string",
  • "xs_master_ip": "192.168.0.1",
  • "xs_master_label": "string",
  • "xs_master_password": "string",
  • "xs_master_username": "string"
}

Image a given set of nodes.

Images node(s) and optionally creates clusters.

Request Body schema: application/json
required
required
Array of objects (block)

Block level parameters.

Array of objects (cluster)

Cluster parameters.

cvm_gateway
string <ipv4>

CVM gateway.

cvm_netmask
string <ipv4>

CVM netmask.

object (eos_metadata)

Contains user data from Eos portal.

object (fc_settings)

Foundation Central specific settings.

hyperv_external_vnic
string

Hyperv External virtual network adapter name.

hyperv_external_vswitch
string

Hyperv External vswitch name.

hyperv_product_key
string

Hyperv product key .

hyperv_sku
string

Hyperv SKU.

hypervisor_gateway
string <ipv4>

Hypervisor gateway.

object (hypervisor_iso)

Hypervisor ISO.

hypervisor_nameserver
string

Hypervisor nameserver .

hypervisor_netmask
string <ipv4>

Hypervisor netmask.

hypervisor_password
string

Hypervisor password.

install_script
string

install script.

ipmi_password
string

IPMI password.

ipmi_user
string

IPMI username.

nos_package
string

NOS package.

skip_hypervisor
boolean

If hypervisor installation should be skipped.

svm_rescue_args
Array of strings

Arguments to be passed to svm_rescue for AOS installation. Ensure that the arguments provided are supported by the AOS version used for imaging.

object (tests)

Types of tests to be performed.

ucsm_ip
string <ipv4>

UCSM IP address.

ucsm_password
string

UCSM password.

ucsm_user
string

UCSM username.

unc_password
string

UNC password.

unc_path
string

UNC Path.

unc_username
string

UNC username.

xen_config_type
string

xen config types.

xs_master_ip
string <ipv4>

xen server master IP address.

xs_master_label
string

xen server master label.

xs_master_password
string

xen server master password.

xs_master_username
string

xen server master username.

Responses

Request samples

curl --request POST \
    --url https://fvm_ip:8000/foundation/image_nodes \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
    --data '{
    "blocks": [
        {
            "block_id": "string",
            "nodes": [
                {
                    "bond_lacp_rate": "string",
                    "bond_mode": "string",
                    "bond_uplinks": [
                        "string"
                    ],
                    "cluster_id": null,
                    "current_cvm_vlan_tag": null,
                    "current_network_interface": "string",
                    "cvm_gb_ram": null,
                    "cvm_ip": "192.168.0.1",
                    "cvm_num_vcpus": 0,
                    "device_hint": "string",
                    "exlude_boot_serial": "string",
                    "hypervisor": "string",
                    "hypervisor_hostname": "string",
                    "hypervisor_ip": "192.168.0.1",
                    "image_delay": null,
                    "image_now": true,
                    "image_successful": true,
                    "ipmi_configure_now": true,
                    "ipmi_ip": "192.168.0.1",
                    "ipmi_mac": "string",
                    "ipv6_address": "string",
                    "ipv6_interface": "string",
                    "mitigate_low_boot_space": true,
                    "node_position": "string",
                    "node_serial": "string",
                    "rdma_mac_addr": "string",
                    "rdma_passthrough": true,
                    "ucsm_managed_mode": "string",
                    "ucsm_node_serial": "string",
                    "ucsm_params": {
                        "keep_ucsm_settings": true,
                        "mac_pool": "string",
                        "native_vlan": true,
                        "vlan_name": "string"
                    },
                    "vswitches": [
                        {
                            "bond_mode": "string",
                            "lacp": "string",
                            "mtu": 0,
                            "name": "string",
                            "other_config": [
                                "string"
                            ],
                            "uplinks": [
                                "string"
                            ]
                        }
                    ]
                }
            ]
        }
    ],
    "clusters": [
        {
            "backplane_netmask": "192.168.0.1",
            "backplane_subnet": "192.168.0.1",
            "backplane_vlan": null,
            "cluster_external_ip": "192.168.0.1",
            "cluster_init_now": true,
            "cluster_init_successful": true,
            "cluster_members": [
                "string"
            ],
            "cluster_name": "string",
            "cvm_dns_servers": "string",
            "cvm_ntp_servers": "string",
            "enable_ns": true,
            "hypervisor_ntp_servers": "string",
            "redundancy_factor": 0,
            "single_node_cluster": true
        }
    ],
    "cvm_gateway": "192.168.0.1",
    "cvm_netmask": "192.168.0.1",
    "eos_metadata": {
        "account_name": [
            "string"
        ],
        "config_id": "string",
        "email": "user@example.com"
    },
    "fc_settings": {
        "fc_metadata": {
            "api_key": "string",
            "fc_ip": "string"
        },
        "foundation_central": true
    },
    "hyperv_external_vnic": "string",
    "hyperv_external_vswitch": "string",
    "hyperv_product_key": "string",
    "hyperv_sku": "string",
    "hypervisor_gateway": "192.168.0.1",
    "hypervisor_iso": {
        "esx": {
            "checksum": "string",
            "filename": "string"
        },
        "hyperv": {
            "checksum": "string",
            "filename": "string"
        },
        "kvm": {
            "checksum": "string",
            "filename": "string"
        },
        "xen": {
            "checksum": "string",
            "filename": "string"
        }
    },
    "hypervisor_nameserver": "string",
    "hypervisor_netmask": "192.168.0.1",
    "hypervisor_password": "string",
    "install_script": "string",
    "ipmi_password": "string",
    "ipmi_user": "string",
    "nos_package": "string",
    "skip_hypervisor": true,
    "svm_rescue_args": [
        "string"
    ],
    "tests": {
        "run_ncc": true,
        "run_syscheck": true
    },
    "ucsm_ip": "192.168.0.1",
    "ucsm_password": "string",
    "ucsm_user": "string",
    "unc_password": "string",
    "unc_path": "string",
    "unc_username": "string",
    "xen_config_type": "string",
    "xs_master_ip": "192.168.0.1",
    "xs_master_label": "string",
    "xs_master_password": "string",
    "xs_master_username": "string"
}'

Response samples

Content type
application/json
{
  • "session_id": "string"
}

Reset Foundation

Restores Foundation to its original state by deleting persisted_config.json and clearing out last active session.

Responses

Request samples

curl --request GET \
    --url https://fvm_ip:8000/foundation/reset_state \
    --header 'Accept: application/json' \
     

Run all pre-imaging validations.

Checks all the parameters and configurations that are used to call image_nodes.

Request Body schema: application/json
required
required
Array of objects (block)

Block level parameters.

Array of objects (cluster)

Cluster parameters.

cvm_gateway
string <ipv4>

CVM gateway.

cvm_netmask
string <ipv4>

CVM netmask.

object (eos_metadata)

Contains user data from Eos portal.

object (fc_settings)

Foundation Central specific settings.

hyperv_external_vnic
string

Hyperv External virtual network adapter name.

hyperv_external_vswitch
string

Hyperv External vswitch name.

hyperv_product_key
string

Hyperv product key .

hyperv_sku
string

Hyperv SKU.

hypervisor_gateway
string <ipv4>

Hypervisor gateway.

object (hypervisor_iso)

Hypervisor ISO.

hypervisor_nameserver
string

Hypervisor nameserver .

hypervisor_netmask
string <ipv4>

Hypervisor netmask.

hypervisor_password
string

Hypervisor password.

install_script
string

install script.

ipmi_password
string

IPMI password.

ipmi_user
string

IPMI username.

nos_package
string

NOS package.

skip_hypervisor
boolean

If hypervisor installation should be skipped.

svm_rescue_args
Array of strings

Arguments to be passed to svm_rescue for AOS installation. Ensure that the arguments provided are supported by the AOS version used for imaging.

object (tests)

Types of tests to be performed.

ucsm_ip
string <ipv4>

UCSM IP address.

ucsm_password
string

UCSM password.

ucsm_user
string

UCSM username.

unc_password
string

UNC password.

unc_path
string

UNC Path.

unc_username
string

UNC username.

xen_config_type
string

xen config types.

xs_master_ip
string <ipv4>

xen server master IP address.

xs_master_label
string

xen server master label.

xs_master_password
string

xen server master password.

xs_master_username
string

xen server master username.

Responses

Request samples

curl --request POST \
    --url https://fvm_ip:8000/foundation/pre_check \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
    --data '{
    "blocks": [
        {
            "block_id": "string",
            "nodes": [
                {
                    "bond_lacp_rate": "string",
                    "bond_mode": "string",
                    "bond_uplinks": [
                        "string"
                    ],
                    "cluster_id": null,
                    "current_cvm_vlan_tag": null,
                    "current_network_interface": "string",
                    "cvm_gb_ram": null,
                    "cvm_ip": "192.168.0.1",
                    "cvm_num_vcpus": 0,
                    "device_hint": "string",
                    "exlude_boot_serial": "string",
                    "hypervisor": "string",
                    "hypervisor_hostname": "string",
                    "hypervisor_ip": "192.168.0.1",
                    "image_delay": null,
                    "image_now": true,
                    "image_successful": true,
                    "ipmi_configure_now": true,
                    "ipmi_ip": "192.168.0.1",
                    "ipmi_mac": "string",
                    "ipv6_address": "string",
                    "ipv6_interface": "string",
                    "mitigate_low_boot_space": true,
                    "node_position": "string",
                    "node_serial": "string",
                    "rdma_mac_addr": "string",
                    "rdma_passthrough": true,
                    "ucsm_managed_mode": "string",
                    "ucsm_node_serial": "string",
                    "ucsm_params": {
                        "keep_ucsm_settings": true,
                        "mac_pool": "string",
                        "native_vlan": true,
                        "vlan_name": "string"
                    },
                    "vswitches": [
                        {
                            "bond_mode": "string",
                            "lacp": "string",
                            "mtu": 0,
                            "name": "string",
                            "other_config": [
                                "string"
                            ],
                            "uplinks": [
                                "string"
                            ]
                        }
                    ]
                }
            ]
        }
    ],
    "clusters": [
        {
            "backplane_netmask": "192.168.0.1",
            "backplane_subnet": "192.168.0.1",
            "backplane_vlan": null,
            "cluster_external_ip": "192.168.0.1",
            "cluster_init_now": true,
            "cluster_init_successful": true,
            "cluster_members": [
                "string"
            ],
            "cluster_name": "string",
            "cvm_dns_servers": "string",
            "cvm_ntp_servers": "string",
            "enable_ns": true,
            "hypervisor_ntp_servers": "string",
            "redundancy_factor": 0,
            "single_node_cluster": true
        }
    ],
    "cvm_gateway": "192.168.0.1",
    "cvm_netmask": "192.168.0.1",
    "eos_metadata": {
        "account_name": [
            "string"
        ],
        "config_id": "string",
        "email": "user@example.com"
    },
    "fc_settings": {
        "fc_metadata": {
            "api_key": "string",
            "fc_ip": "string"
        },
        "foundation_central": true
    },
    "hyperv_external_vnic": "string",
    "hyperv_external_vswitch": "string",
    "hyperv_product_key": "string",
    "hyperv_sku": "string",
    "hypervisor_gateway": "192.168.0.1",
    "hypervisor_iso": {
        "esx": {
            "checksum": "string",
            "filename": "string"
        },
        "hyperv": {
            "checksum": "string",
            "filename": "string"
        },
        "kvm": {
            "checksum": "string",
            "filename": "string"
        },
        "xen": {
            "checksum": "string",
            "filename": "string"
        }
    },
    "hypervisor_nameserver": "string",
    "hypervisor_netmask": "192.168.0.1",
    "hypervisor_password": "string",
    "install_script": "string",
    "ipmi_password": "string",
    "ipmi_user": "string",
    "nos_package": "string",
    "skip_hypervisor": true,
    "svm_rescue_args": [
        "string"
    ],
    "tests": {
        "run_ncc": true,
        "run_syscheck": true
    },
    "ucsm_ip": "192.168.0.1",
    "ucsm_password": "string",
    "ucsm_user": "string",
    "unc_password": "string",
    "unc_path": "string",
    "unc_username": "string",
    "xen_config_type": "string",
    "xs_master_ip": "192.168.0.1",
    "xs_master_label": "string",
    "xs_master_password": "string",
    "xs_master_username": "string"
}'

Response samples

Content type
application/json
{
  • "session_id": "string"
}

Networking APIs

Check whether phoenix has stable network.

Checks whether node is booted into phoenix and has a stable network.

query Parameters
phoenix_ip
required
string

IP address of phoenix node.

Responses

Request samples

curl --request GET \
    --url https://fvm_ip:8000/foundation/phoenix_network_status \
    --header 'Accept: application/json' \
     

Response samples

Content type
application/json
{
  • "stable": true
}

Configure BMC IPv4.

Configures IPMI IP address on BMC of nodes.

Request Body schema: application/json
required
required
Array of objects

Block details.

ipmi_gateway
required
string <ipv4>

IPMI gateway.

ipmi_netmask
required
string <ipv4>

IPMI netmask.

ipmi_password
string

IPMI password.

ipmi_user
string

IPMI username.

Responses

Request samples

curl --request POST \
    --url https://fvm_ip:8000/foundation/ipmi_config \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
    --data '{
    "blocks": [
        {}
    ],
    "ipmi_gateway": "192.168.0.1",
    "ipmi_netmask": "192.168.0.1",
    "ipmi_password": "string",
    "ipmi_user": "string"
}'

Response samples

Content type
application/json
{
  • "blocks": [
    ],
  • "ipmi_gateway": "192.168.0.1",
  • "ipmi_netmask": "192.168.0.1",
  • "ipmi_password": "string",
  • "ipmi_user": "string"
}

Deletes virtual interface configuration.

Delete all the virtual interfaces on a node except the primary interface.

Responses

Request samples

curl --request DELETE \
    --url https://fvm_ip:8000/foundation/foundation_networking \
    --header 'Accept: application/json' \
     

Response samples

Content type
application/json
{
  • "default_gateway": "string",
  • "nics": {
    }
}

Get IPv4 and IPv6 addresses for network interfaces on CVM.

Gets IPv4 and IPv6 addresses for network interfaces on CVM. Lists only network interfaces that have both IPv4 and IPv6 Link Local addresses.

Responses

Request samples

curl --request GET \
    --url https://fvm_ip:8000/foundation/list_nics \
    --header 'Accept: application/json' \
     

Response samples

Content type
application/json
{
  • "property1": {
    },
  • "property2": {
    }
}

Get NIC configuration for discovery and imaging.

Gets NIC configuration for discovery and imaging. Lists NICs only if they have both IPv4 and IPv6 Link Local addresses.

Responses

Request samples

curl --request GET \
    --url https://fvm_ip:8000/foundation/foundation_networking \
    --header 'Accept: application/json' \
     

Response samples

Content type
application/json
{
  • "default_gateway": "string",
  • "nics": {
    }
}

Get primary NIC for node discovery.

Gets the primary NIC for node discovery.

Responses

Request samples

curl --request GET \
    --url https://fvm_ip:8000/foundation/primary_nic \
    --header 'Accept: application/json' \
     

Response samples

Content type
application/json
{
  • "primary_nic": "string"
}

Get the network configuration details of the node.

Gets hypervisor, CVM & IPMI info of the discovered nodes.

Request Body schema: application/json
required
required
Array of objects (cvm_ipv6_address)

target ipv6 address array.

timeout
string

timeout in seconds

Responses

Request samples

curl --request POST \
    --url https://fvm_ip:8000/foundation/node_network_details \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
    --data '{
    "nodes": [
        {
            "ipv6_address": "string"
        }
    ],
    "timeout": "string"
}'

Response samples

Content type
application/json
{
  • "error": "string",
  • "nodes": [
    ]
}

IPv6 Discovery.

Discovers Nutanix-imaged nodes within an IPv6 network.

Responses

Request samples

curl --request GET \
    --url https://fvm_ip:8000/foundation/discover_nodes \
    --header 'Accept: application/json' \
     

Response samples

Content type
application/json
[
  • {
    }
]

Ping multiple nodes.

Ping multiple nodes concurrently.

Request Body schema: application/json
required

Array of IP addresses to ping

Array
string

Responses

Request samples

curl --request POST \
    --url https://fvm_ip:8000/foundation/ping_multiple \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
     

Response samples

Content type
application/json
[
  • [
    ]
]

Provision IP address on CVM or host and change vlan.

Configures IP address on cvm and(or) host and dynamically change vlan tag to move the nodes into a different vlan network. This operation should be attempted only if standalone foundation has access to that particular network. Else, nodes will not be reachable.

Request Body schema: application/json
required
error
string

Present when this API returns partial results. See the error field at node level for more details.

required
Array of objects (node_info_list)

nodes array.

Responses

Request samples

curl --request POST \
    --url https://fvm_ip:8000/foundation/provision_network \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
    --data '{
    "error": "string",
    "nodes": [
        {
            "cvm_gateway": "192.168.0.1",
            "cvm_ip": "192.168.0.1",
            "cvm_netmask": "192.168.0.1",
            "cvm_vlan_id": "string",
            "error": "string",
            "hypervisor_gateway": "192.168.0.1",
            "hypervisor_hostname": "string",
            "hypervisor_ip": "192.168.0.1",
            "hypervisor_netmask": "192.168.0.1",
            "ipmi_gateway": "192.168.0.1",
            "ipmi_ip": "192.168.0.1",
            "ipmi_netmask": "192.168.0.1",
            "ipv6_address": "string"
        }
    ]
}'

Response samples

Content type
application/json
{
  • "error": {
    }
}

Set a primary NIC for node discovery.

Sets a NIC as primary for node discovery.

Request Body schema: application/json
any

Responses

Request samples

curl --request POST \
    --url https://fvm_ip:8000/foundation/primary_nic \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
     

Response samples

Content type
application/json
{
  • "primary_nic": "string"
}

Set NIC configuration for discovery and imaging.

Configures network settings for foundation. Supports configuring virtual interfaces when multihoming is enabled. Configures sub-interfaces with VLAN ID so that standalone or CVM foundation can image and/or discover nodes that are behind a flat switch or managed switch.

Request Body schema: application/json
required
default_gateway
string <ipv4>

Default gateway on the node.

required
Array of objects (nics_list)

NICs array.

Responses

Request samples

curl --request POST \
    --url https://fvm_ip:8000/foundation/foundation_networking \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
    --data '{
    "default_gateway": "192.168.0.1",
    "nics": [
        {
            "config": [
                {
                    "delete": true,
                    "ipv4_address": "192.168.0.1",
                    "netmask": "192.168.0.1",
                    "vlan": 0
                }
            ],
            "interface_index": "string"
        }
    ]
}'

Response samples

Content type
application/json
[
  • {
    }
]

Validate network configuration.

Validates the IP configuration of Hypervisor, CVM and IPMI. This includes:

  • Detecting IP conflicts
  • Confirming CVM-CVM connection
  • Confirming CVM-Hypervisor connection (optional)
Request Body schema: application/json
required
required
Array of objects (block)

Block level parameters.

Array of objects (cluster)

Cluster parameters.

cvm_gateway
string <ipv4>

CVM gateway.

cvm_netmask
string <ipv4>

CVM netmask.

object (eos_metadata)

Contains user data from Eos portal.

object (fc_settings)

Foundation Central specific settings.

hyperv_external_vnic
string

Hyperv External virtual network adapter name.

hyperv_external_vswitch
string

Hyperv External vswitch name.

hyperv_product_key
string

Hyperv product key .

hyperv_sku
string

Hyperv SKU.

hypervisor_gateway
string <ipv4>

Hypervisor gateway.

object (hypervisor_iso)

Hypervisor ISO.

hypervisor_nameserver
string

Hypervisor nameserver .

hypervisor_netmask
string <ipv4>

Hypervisor netmask.

hypervisor_password
string

Hypervisor password.

install_script
string

install script.

ipmi_password
string

IPMI password.

ipmi_user
string

IPMI username.

nos_package
string

NOS package.

skip_hypervisor
boolean

If hypervisor installation should be skipped.

svm_rescue_args
Array of strings

Arguments to be passed to svm_rescue for AOS installation. Ensure that the arguments provided are supported by the AOS version used for imaging.

object (tests)

Types of tests to be performed.

ucsm_ip
string <ipv4>

UCSM IP address.

ucsm_password
string

UCSM password.

ucsm_user
string

UCSM username.

unc_password
string

UNC password.

unc_path
string

UNC Path.

unc_username
string

UNC username.

xen_config_type
string

xen config types.

xs_master_ip
string <ipv4>

xen server master IP address.

xs_master_label
string

xen server master label.

xs_master_password
string

xen server master password.

xs_master_username
string

xen server master username.

Responses

Request samples

curl --request POST \
    --url https://fvm_ip:8000/foundation/validate_network_configuration \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
    --data '{
    "blocks": [
        {
            "block_id": "string",
            "nodes": [
                {
                    "bond_lacp_rate": "string",
                    "bond_mode": "string",
                    "bond_uplinks": [
                        "string"
                    ],
                    "cluster_id": null,
                    "current_cvm_vlan_tag": null,
                    "current_network_interface": "string",
                    "cvm_gb_ram": null,
                    "cvm_ip": "192.168.0.1",
                    "cvm_num_vcpus": 0,
                    "device_hint": "string",
                    "exlude_boot_serial": "string",
                    "hypervisor": "string",
                    "hypervisor_hostname": "string",
                    "hypervisor_ip": "192.168.0.1",
                    "image_delay": null,
                    "image_now": true,
                    "image_successful": true,
                    "ipmi_configure_now": true,
                    "ipmi_ip": "192.168.0.1",
                    "ipmi_mac": "string",
                    "ipv6_address": "string",
                    "ipv6_interface": "string",
                    "mitigate_low_boot_space": true,
                    "node_position": "string",
                    "node_serial": "string",
                    "rdma_mac_addr": "string",
                    "rdma_passthrough": true,
                    "ucsm_managed_mode": "string",
                    "ucsm_node_serial": "string",
                    "ucsm_params": {
                        "keep_ucsm_settings": true,
                        "mac_pool": "string",
                        "native_vlan": true,
                        "vlan_name": "string"
                    },
                    "vswitches": [
                        {
                            "bond_mode": "string",
                            "lacp": "string",
                            "mtu": 0,
                            "name": "string",
                            "other_config": [
                                "string"
                            ],
                            "uplinks": [
                                "string"
                            ]
                        }
                    ]
                }
            ]
        }
    ],
    "clusters": [
        {
            "backplane_netmask": "192.168.0.1",
            "backplane_subnet": "192.168.0.1",
            "backplane_vlan": null,
            "cluster_external_ip": "192.168.0.1",
            "cluster_init_now": true,
            "cluster_init_successful": true,
            "cluster_members": [
                "string"
            ],
            "cluster_name": "string",
            "cvm_dns_servers": "string",
            "cvm_ntp_servers": "string",
            "enable_ns": true,
            "hypervisor_ntp_servers": "string",
            "redundancy_factor": 0,
            "single_node_cluster": true
        }
    ],
    "cvm_gateway": "192.168.0.1",
    "cvm_netmask": "192.168.0.1",
    "eos_metadata": {
        "account_name": [
            "string"
        ],
        "config_id": "string",
        "email": "user@example.com"
    },
    "fc_settings": {
        "fc_metadata": {
            "api_key": "string",
            "fc_ip": "string"
        },
        "foundation_central": true
    },
    "hyperv_external_vnic": "string",
    "hyperv_external_vswitch": "string",
    "hyperv_product_key": "string",
    "hyperv_sku": "string",
    "hypervisor_gateway": "192.168.0.1",
    "hypervisor_iso": {
        "esx": {
            "checksum": "string",
            "filename": "string"
        },
        "hyperv": {
            "checksum": "string",
            "filename": "string"
        },
        "kvm": {
            "checksum": "string",
            "filename": "string"
        },
        "xen": {
            "checksum": "string",
            "filename": "string"
        }
    },
    "hypervisor_nameserver": "string",
    "hypervisor_netmask": "192.168.0.1",
    "hypervisor_password": "string",
    "install_script": "string",
    "ipmi_password": "string",
    "ipmi_user": "string",
    "nos_package": "string",
    "skip_hypervisor": true,
    "svm_rescue_args": [
        "string"
    ],
    "tests": {
        "run_ncc": true,
        "run_syscheck": true
    },
    "ucsm_ip": "192.168.0.1",
    "ucsm_password": "string",
    "ucsm_user": "string",
    "unc_password": "string",
    "unc_path": "string",
    "unc_username": "string",
    "xen_config_type": "string",
    "xs_master_ip": "192.168.0.1",
    "xs_master_label": "string",
    "xs_master_password": "string",
    "xs_master_username": "string"
}'

Response samples

Content type
application/json
{
  • "session_id": "string"
}