Code Samples

The code samples provided here are intended as standalone examples.  They can be downloaded, copied and/or modified in any way you see fit.

Please be aware that all code samples provided here are unofficial in nature, are provided as examples only, are unsupported and will need to be heavily modified before they can be used in a production environment.

Most code samples can be directly accessed from the NutanixDev GitHub code samples repo.  Larger samples will be published via dedicated repos when required.

Please see the License section of this page for information on how these code samples may be used.

Languages & Scripts

Python

These samples require Python 3.7 or later and demonstrate complete, standalone scripts for carrying out common API operations.

For easy sharing of parameters between scripts, most scripts accept their JSON payloads via an on-disk JSON-formatted text file.

Most scripts utilise requests, urllib3, getpass, argparse and json modules.

Repo directory: python

PHP

These samples require PHP 7.2 or later and demonstrate complete, standalone scripts for carrying out common API operations.

For easy sharing of parameters between scripts, most scripts accept their JSON payloads via an on-disk JSON-formatted text file.

Repo directory: php

Bash Shell

These samples are written specifically for use with Bash Shell; please note that modification will be required before use with the sh shell.  All scripts are standalone and can be run without any other script dependencies.

All scripts utilise jq, a free sed-like JSON processor.  JQ can be downloaded from here.

Repo directory: shell

Ansible

These playbooks are provided as examples of how common tasks can be automated using Ansible.  Some modification may be required before these playbooks are used

Ansible installation instructions can be found here.

Repo directory: ansible

Nutanix Calm

These code samples and blueprints are provided for use with Nutanix Calm.  Please ensure Nutanix Calm is enabled and available before using these code samples.

Repo directory: calm and blueprints

C#

These samples are intended for use with Visual Studio.  Visual Studio Community can be downloaded from here.

All C# code samples utilise Newtonsoft.Json, a popular high-performance JSON framework for .NET.  Please see here for instructions on installing Newtonsoft.Json into your Visual Studio environment.

Repo directory: csharp

PowerShell

A default installation of PowerShell, e.g. on Windows 10 or Windows 2016 (or later) should have all required packages available.

To run these scripts the PowerShell ExecutionPolicy will need to be set to RemoteSigned.  To do this, run the following command in an administrative PowerShell session:

SetExecutionPolicy RemoteSigned

Repo directory: powershell

Go

A collection of Go code samples, provided by Nutanix Community and staff members.

To run these scripts please download and install Go from the Go website.

Repo directory: go

Javascript/JS

A collection of JS code samples, provided by Nutanix Community and staff members.

Repo directory: js

JSON

A collection of JSON Payload samples, intended for use with Nutanix API requests.

To use these samples it is suggested than an application such as Postman be used.

Repo directory: json

Update Existing VM

JSON payload to update an existing AHV VM. “spec” and “metadata” for the existing VM must be obtained first, using a GET request to https://[prism_central_ip_address]:9440/api/nutanix/v3/vms/[vm_uuid].

Read More »

Create Detailed VM

JSON payload to create a VM that includes details for vCPU, cores per vCPU, RAM and storage. It also specifies the VM should have a

Read More »

Create Basic Shell VM

JSON payload to create a basic shell VM. Only the required parameters are included, indicating that the Nutanix APIs should apply system defaults to parameters

Read More »

TERRAFORM

A collection of Terraform configurations aimed at demonstrating use of the Nutanix Terraform provider.

To use these configurations it is recommended to reference the Nutanix.dev articled titled “Using the Nutanix Terraform Provider”.  Please note this article will available after April 19th 2021.

Repo directory: terraform

License

All code samples are covered under the Open Source MIT license, as follows:

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.