API Reference

Last updated: 04-04-2024

Foundation Central Service (1.0)

Download OpenAPI specification:Download

Introduction

Foundation Central creates clusters from factory-imaged nodes and reimage existing nodes that are already registered with Foundation Central. This allows creating clusters on remote sites such as ROBO, without arranging a personnel visit for deployment.

Contact Us by Email

License: Copyright Nutanix Inc. All rights reserved

api_keys

Create an API key

Create a new API key which will be used by remote nodes to authenticate with Foundation Central.

Authorizations:
BasicAuthCookieAuth
Request Body schema: application/json
required
alias
required
string

Alias for the API key to be created.

Responses

Request samples

curl --request POST \
    --url https://www.nutanix.dev/api_keys \
    --header 'Accept: application/json' \
    --header 'Authorization: Basic <basic_auth_token>' \
    --header 'Content-Type: application/json' \
    --data '{
    "alias": "string"
}'

Response samples

Content type
application/json
{
  • "alias": "string",
  • "api_key": "string",
  • "created_timestamp": "2019-08-24T14:15:22Z",
  • "current_time": "2019-08-24T14:15:22Z",
  • "key_uuid": "cb86f4ea-c2d1-4d78-981a-a8b9cc24b981"
}

Delete an API key

Delete the API key based on its UUID.

Authorizations:
BasicAuthCookieAuth
path Parameters
key_uuid
required
string <uuid>

UUID of the API key that must be deleted.

Responses

Request samples

curl --request DELETE \
    --url https://www.nutanix.dev/api_keys/{key_uuid} \
    --header 'Accept: application/json' \
    --header 'Authorization: Basic <basic_auth_token>' \
     

Response samples

Content type
application/json
{
  • "code": 0,
  • "message_list": [
    ]
}

Get an API key

Get an API key based on its UUID.

Authorizations:
BasicAuthCookieAuth
path Parameters
key_uuid
required
string <uuid>

UUID of the API key that must be fetched.

Responses

Request samples

curl --request GET \
    --url https://www.nutanix.dev/api_keys/{key_uuid} \
    --header 'Accept: application/json' \
    --header 'Authorization: Basic <basic_auth_token>' \
     

Response samples

Content type
application/json
{
  • "alias": "string",
  • "api_key": "string",
  • "created_timestamp": "2019-08-24T14:15:22Z",
  • "current_time": "2019-08-24T14:15:22Z",
  • "key_uuid": "cb86f4ea-c2d1-4d78-981a-a8b9cc24b981"
}

List all the API keys

List all the API keys created in Foundation Central.

Authorizations:
BasicAuthCookieAuth
Request Body schema: application/json
required
length
integer

The number of records to retrieve.

offset
integer >= 0

Offset from the start of the object list. If omitted, default value is 0.

Responses

Request samples

curl --request POST \
    --url https://www.nutanix.dev/api_keys/list \
    --header 'Accept: application/json' \
    --header 'Authorization: Basic <basic_auth_token>' \
    --header 'Content-Type: application/json' \
    --data '{
    "length": 0,
    "offset": 0
}'

Response samples

Content type
application/json
{
  • "api_keys": [
    ],
  • "metadata": {
    }
}

details

Get the details of Foundation Central

Get the details of Foundation Central.

Authorizations:
BasicAuthAPIKeyAuthCookieAuthAPIKeyKubAuth

Responses

Request samples

curl --request GET \
    --url https://www.nutanix.dev/details \
    --header 'Accept: application/json' \
    --header 'Authorization: Basic <basic_auth_token>' \
     

Response samples

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

imaged_clusters

Delete a cluster

Delete a cluster entry from Foundation Central. This API will not destroy the remote cluster. Deletion is allowed only if the cluster creation process is not in-progress.

Authorizations:
BasicAuthCookieAuth
path Parameters
imaged_cluster_uuid
required
string <uuid>

UUID of the cluster which needs to be deleted.

Responses

Request samples

curl --request DELETE \
    --url https://www.nutanix.dev/imaged_clusters/{imaged_cluster_uuid} \
    --header 'Accept: application/json' \
    --header 'Authorization: Basic <basic_auth_token>' \
     

Response samples

Content type
application/json
{
  • "code": 0,
  • "message_list": [
    ]
}

Get the details of a cluster

Get the cluster created using Foundation Central.

Authorizations:
BasicAuthAPIKeyAuthCookieAuth
path Parameters
imaged_cluster_uuid
required
string <uuid>

UUID of the cluster whose details need to be fetched.

Responses

Request samples

curl --request GET \
    --url https://www.nutanix.dev/imaged_clusters/{imaged_cluster_uuid} \
    --header 'Accept: application/json' \
    --header 'Authorization: Basic <basic_auth_token>' \
     

Response samples

Content type
application/json
{
  • "archived": true,
  • "cluster_external_ip": "192.168.0.1",
  • "cluster_name": "string",
  • "cluster_size": 0,
  • "cluster_status": {
    },
  • "common_network_settings": {
    },
  • "created_timestamp": "2019-08-24T14:15:22Z",
  • "current_time": "2019-08-24T14:15:22Z",
  • "destroyed": true,
  • "discovered_node_details": [
    ],
  • "foundation_init_config": { },
  • "foundation_init_node_uuid": "bfa3e63b-8135-4819-963c-e54eac10cf53",
  • "imaged_cluster_uuid": "b4d15375-1097-4c96-a4c4-4cb5809b05bb",
  • "imaged_node_uuid_list": [
    ],
  • "redundancy_factor": 0,
  • "skip_cluster_creation": true,
  • "storage_node_count": 0,
  • "updated_timestamp": "2019-08-24T14:15:22Z",
  • "workflow_type": "string"
}

Get the details of all the clusters

List all the clusters created using Foundation Central.

Authorizations:
BasicAuthCookieAuth
Request Body schema: application/json
required
object (imaged_clusters_list_filter_fields)

Supported fields for filtering the cluster entities.

length
integer

The number of records to retrieve.

offset
integer >= 0

Offset from the start of the object list. If omitted, default value is 0.

Responses

Request samples

curl --request POST \
    --url https://www.nutanix.dev/imaged_clusters/list \
    --header 'Accept: application/json' \
    --header 'Authorization: Basic <basic_auth_token>' \
    --header 'Content-Type: application/json' \
    --data '{
    "filters": {
        "archived": true
    },
    "length": 0,
    "offset": 0
}'

Response samples

Content type
application/json
{
  • "imaged_clusters": [
    ],
  • "metadata": {
    }
}

Request a cluster creation

Create a cluster from the nodes registered with Foundation Central.

Authorizations:
BasicAuthCookieAuth
Request Body schema: application/json
required
aos_package_sha256sum
string

SHA256sum of the AOS package.

aos_package_url
string

URL to download the AOS package. Required only if imaging is needed.

cluster_external_ip
string <ipv4>

External management IP of the cluster.

cluster_name
string

Name of the cluster.

cluster_size
integer

Number of nodes in the cluster.

object (common_network_settings)

Common network settings across the nodes in the cluster.

object (hypervisor_iso_details)

Details of the hypervisor ISO.

Array of objects (hypervisor_iso_details)

List of hypervisor ISOs.

Array of objects (node_details)

List of details of the nodes for which the cluster needs to be created.

redundancy_factor
integer

Redundancy factor of the cluster.

skip_cluster_creation
boolean
Default: false

True if the cluster creation must be skipped. Otherwise, False.

storage_node_count
integer

Number of storage-only nodes in the cluster. The AHV ISO for storage node will be taken from the AOS package.

timezone
string

Timezone to be set on the cluster.

Responses

Request samples

curl --request POST \
    --url https://www.nutanix.dev/imaged_clusters \
    --header 'Accept: application/json' \
    --header 'Authorization: Basic <basic_auth_token>' \
    --header 'Content-Type: application/json' \
    --data '{
    "aos_package_sha256sum": "string",
    "aos_package_url": "string",
    "cluster_external_ip": "192.168.0.1",
    "cluster_name": "string",
    "cluster_size": 0,
    "common_network_settings": {
        "cvm_dns_servers": [
            "192.168.0.1"
        ],
        "cvm_ntp_servers": [
            "string"
        ],
        "hypervisor_dns_servers": [
            "192.168.0.1"
        ],
        "hypervisor_ntp_servers": [
            "string"
        ]
    },
    "hypervisor_iso_details": {
        "hyperv_product_key": "string",
        "hyperv_sku": "string",
        "hypervisor_type": "kvm",
        "sha256sum": "string",
        "url": "string"
    },
    "hypervisor_isos": [
        {
            "hyperv_product_key": "string",
            "hyperv_sku": "string",
            "hypervisor_type": "kvm",
            "sha256sum": "string",
            "url": "string"
        }
    ],
    "nodes_list": [
        {
            "cvm_gateway": "192.168.0.1",
            "cvm_ip": "192.168.0.1",
            "cvm_netmask": "string",
            "cvm_ram_gb": 0,
            "cvm_vlan_id": 0,
            "hardware_attributes_override": {},
            "hypervisor_gateway": "192.168.0.1",
            "hypervisor_hostname": "string",
            "hypervisor_ip": "192.168.0.1",
            "hypervisor_netmask": "string",
            "hypervisor_type": "string",
            "image_now": true,
            "imaged_node_uuid": "b4d15375-1097-4c96-a4c4-4cb5809b05bb",
            "ipmi_gateway": "192.168.0.1",
            "ipmi_ip": "192.168.0.1",
            "ipmi_netmask": "string",
            "rdma_passthrough": false,
            "use_existing_network_settings": false
        }
    ],
    "redundancy_factor": 0,
    "skip_cluster_creation": false,
    "storage_node_count": 0,
    "timezone": "string"
}'

Response samples

Content type
application/json
{
  • "imaged_cluster_uuid": "b4d15375-1097-4c96-a4c4-4cb5809b05bb"
}

Update the details of a cluster

Update the details of the cluster created using Foundation Central.

Authorizations:
BasicAuthCookieAuth
path Parameters
imaged_cluster_uuid
required
string <uuid>

UUID of the cluster whose details need to be updated.

Request Body schema: application/json
required
archived
boolean or null

Denotes the archive status of the cluster creation request. If true, the cluster will be archived. If false, the cluster will be removed from archive.

Responses

Request samples

curl --request PUT \
    --url https://www.nutanix.dev/imaged_clusters/{imaged_cluster_uuid} \
    --header 'Accept: application/json' \
    --header 'Authorization: Basic <basic_auth_token>' \
    --header 'Content-Type: application/json' \
    --data '{
    "archived": true
}'

Response samples

Content type
application/json
{
  • "code": 0,
  • "message_list": [
    ]
}

imaged_nodes

Get the details of a single node

Get the details of a single node based on its UUID.

Authorizations:
BasicAuthAPIKeyAuthCookieAuth
path Parameters
imaged_node_uuid
required
string <uuid>

UUID of the node whose details need to be fetched.

Responses

Request samples

curl --request GET \
    --url https://www.nutanix.dev/imaged_nodes/{imaged_node_uuid} \
    --header 'Accept: application/json' \
    --header 'Authorization: Basic <basic_auth_token>' \
     

Response samples

Content type
application/json
{
  • "aos_version": "string",
  • "api_key_uuid": "9e84e0a6-4d1a-49b3-9101-ef0be589692a",
  • "available": true,
  • "block_serial": "string",
  • "created_timestamp": "2019-08-24T14:15:22Z",
  • "current_time": "2019-08-24T14:15:22Z",
  • "cvm_gateway": "192.168.0.1",
  • "cvm_ip": "192.168.0.1",
  • "cvm_ipv6": "2001:0db8:85a3:0000:0000:8a2e:0370:7334",
  • "cvm_netmask": "string",
  • "cvm_up": true,
  • "cvm_uuid": "bc552bda-763d-4d78-9d84-c7b0c365b9fc",
  • "cvm_vlan_id": 0,
  • "foundation_version": "string",
  • "hardware_attributes": { },
  • "hypervisor_gateway": "192.168.0.1",
  • "hypervisor_hostname": "string",
  • "hypervisor_ip": "192.168.0.1",
  • "hypervisor_netmask": "string",
  • "hypervisor_type": "string",
  • "hypervisor_version": "string",
  • "imaged_cluster_uuid": "b4d15375-1097-4c96-a4c4-4cb5809b05bb",
  • "imaged_node_uuid": "66f773da-5478-4f28-a022-22a755c801f3",
  • "ipmi_gateway": "192.168.0.1",
  • "ipmi_ip": "192.168.0.1",
  • "ipmi_netmask": "string",
  • "ipv6_interface": "string",
  • "latest_hb_ts_list": [
    ],
  • "model": "string",
  • "node_position": "string",
  • "node_serial": "string",
  • "node_state": "string",
  • "node_type": "string",
  • "object_version": 0,
  • "supported_features": [
    ]
}

List all the nodes

List all the nodes registered with Foundation Central.

Authorizations:
BasicAuthCookieAuth
Request Body schema: application/json
required
object (imaged_nodes_list_filter_fields)

Supported fields for filtering the node entities.

length
integer

The number of records to retrieve.

offset
integer >= 0

Offset from the start of the object list. If omitted, default value is 0.

Responses

Request samples

curl --request POST \
    --url https://www.nutanix.dev/imaged_nodes/list \
    --header 'Accept: application/json' \
    --header 'Authorization: Basic <basic_auth_token>' \
    --header 'Content-Type: application/json' \
    --data '{
    "filters": {
        "node_state": "STATE_AVAILABLE"
    },
    "length": 0,
    "offset": 0
}'

Response samples

Content type
application/json
{
  • "imaged_nodes": [
    ],
  • "metadata": {
    }
}