API: Create VM

Overview

In the following exercise, you will create a VM using Nutanix v3 APIs. The VM will be created in a powered off state with no disks attached.

Note

Estimated time to complete: 20 MINUTES

Exercise: Create your own VM

  1. Click + in the main window to create a new tab-window

    ../_images/newtab.png
  2. Click the dropdown and select POST

    • v3 is RESTful and uses standard HTTP verbs like GET, POST, PUT, DELETE
    ../_images/postfunction.png
  3. Enter the URL to create a VM

    • https://{{prism_central_ip}}:9440/api/nutanix/v3/vms
    • v3 exposes semantic URLs to make understanding and using the API easy
    ../_images/urlcreate.png
  4. Configure basic authentication for this API call

    • Click the Authorization tab and select Basic Auth from the Type dropdown
    • Enter Prism credentials of the cluster, and click Update Request:
      • Username - admin
      • Password - Use the “Prism login password” from handout
    ../_images/basicauth1.png
  5. Set the media type to application/json

    • Click the Body tab
    • Select the radio button for raw
    • Click the Text dropdown and select JSON (application/json)
    ../_images/jsonmediatype1.png
  6. Fill out the body

    • Copy or type the following JSON as the VM intent input
    {
        "spec": {
            "name": "API-VM-<initial>",
            "cluster_reference": { "kind": "cluster", "uuid": "<clusteruuid>"},
            "resources": {
                "num_vcpus_per_socket": 1,
                "num_sockets": 1,
                "memory_size_mib": 1024,
                "power_state": "OFF"
            }
        },
        "api_version": "3.0",
        "metadata": {
            "kind": "vm"
        }
    }
    
    • Change the VM’s name to add your initials at the end of VM name. Replace <initial> with your initials
    • You will need to replace <clusteruuid> with your cluster UUID from exercise 1
    • Take note of your VM UUID from the response
  1. Click Send to submit the v3 API call

    v3 provides a precise HTTP status and replies with the relevant intent response

    ../_images/vmuuid.png