Operating System

Create Operating System

Create an Operating System for the org.

Either infrastructureProviderId or tenantId must be provided in request data. Both cannot be provided at the same time.

If infrastructureProviderId is provided in request data, then org must have an Infrastructure Provider entity and its ID should match the query param value. User must have authorization role with PROVIDER_ADMIN suffix.

If tenantId is provided in request data, then org must have a Tenant entity and its ID should match the query param value. User must have authorization role with TENANT_ADMIN suffix.

Only Tenants are allowed to create Operating System for MVP.

post/v2/org/{org}/nico/operating-system

Request body

namestring required

Name of the Operating System

descriptionstring nullable

Optional description of the Operating System

infrastructureProviderIdstring uuid nullable

Deprecated: Infrastructure Provider is now inferred from org membership.

tenantIdstring uuid nullable

Deprecated: Tenant is now inferred from org membership.

siteIdsstring[]

Specified only one Site if an Operating System is Image based, more than one Site is not supported"

ipxeScriptstring nullable

iPXE script or URL, only applicable for iPXE based OS. Cannot be specified if imageUrl is specified

imageUrlstring uri nullable

Original URL from where the Operating System image can be retreived from, required for image based OS. Cannot be specified if ipxeScript is specified

imageShastring nullable

SHA hash of the image file, required for image based OS

imageAuthTypestring nullable

Authentication type for image URL if needed e.g. basic/bearer/token, required is imageAuthToken is specified

imageAuthTokenstring nullable

Auth token to retrieve the image from image URL, required if imageAuthType is specified

imageDiskstring nullable

Disk path where the image should be mounted, optional

rootFsIdstring nullable

Root filesystem UUID, this or rootFsLabel required for image based OS

rootFsLabelstring nullable

Root filesystem label, this or rootFsId required for image based OS

phoneHomeEnabledboolean nullable

Indicates whether the Phone Home service should be enabled or disabled for Operating System

userDatastring nullable

User data for the Operating System

isCloudInitboolean

Specified when the Operating System is Cloud Init based

allowOverrideboolean

Indicates if the user data can be overridden at Instance creation time

Example request

{
  "name": "ubuntu-official-22.04",
  "description": "Official Ubuntu 22.04",
  "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",
  "ipxeScript": "#!ipxe\nkernel http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/linux initrd=initrd.gz\ninitrd http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/initrd.gz\nboot || imgfree\n shell",
  "userData": "#cloud-config\nautoinstall:\n  apt:\n    geoip: true\n    preserve_sources_list: false\n    primary:\n    - arches: [amd64, i386]\n      uri: http://archive.ubuntu.com/ubuntu\n    - arches: [default]\n      uri: http://ports.ubuntu.com/ubuntu-ports",
  "phoneHomeEnabled": true,
  "isCloudInit": true,
  "allowOverride": false
}

Response

Created

idstring uuid

ID of the Operating System

namestring

Name of the Operating System

descriptionstring nullable

Optional description of the Operating System

infrastructureProviderIdstring uuid nullable

Specified if a Provider owns the Operating System

tenantIdstring uuid nullable

Specified if a Tenant owns the Operating System

type'iPXE' | 'Image' nullable

Type of the Operating System

imageUrlstring uri nullable

Original URL from where the Operating System image can be retrieved

imageShastring nullable

SHA hash of the image file, only present for image based OS

imageAuthTypestring nullable

Authentication type for image URL e.g. 'Basic' or 'Bearer'

imageAuthTokenstring nullable

Auth token to retrieve the image from image URL

imageDiskstring nullable

Disk path where the image should be monuted

rootFsIdstring nullable

Root filesystem UUID, only applicable for image based Operating System

rootFsLabelstring nullable

Root filesystem label, only applicable for image based Operating System

ipxeScriptstring nullable

iPXE script or URL, only applicable for iPXE based Operating System

userDatastring nullable

User data for the Operating System

isCloudInitboolean

Specified when the Operating System is Cloud Init based

phoneHomeEnabledboolean

Indicates whether the Phone Home service should be enabled or disabled for Operating System

isActiveboolean

Indicates if the Operating System is active

deactivationNotestring nullable

Optional deactivation note if OS is inactive

allowOverrideboolean

Indicates if the user data can be overridden at Instance creation time

status'Pending' | 'Provisioning' | 'Syncing' | 'Ready' | 'Deleting' | 'Error' | 'Deactivated'

Status values for Operating System objects

createdstring date-time

Date/time when the Operating System was created

updatedstring date-time

Date/time when the Operating System was updated

Example response

{
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "name": "ubuntu-22.04",
  "description": "Ubuntu 22.04",
  "infrastructureProviderId": null,
  "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",
  "ipxeScript": "#!ipxe\nkernel http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/linux initrd=initrd.gz\ninitrd http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/initrd.gz\nboot || imgfree\n shell",
  "userData": "#cloud-config\nautoinstall:\n  apt:\n    geoip: true\n    preserve_sources_list: false\n    primary:\n    - arches: [amd64, i386]\n      uri: http://archive.ubuntu.com/ubuntu\n    - arches: [default]\n      uri: http://ports.ubuntu.com/ubuntu-ports\nphone_home:\n  url: http://169.254.169.254:7777/latest/meta-data/phone_home\n  post: all",
  "isCloudInit": true,
  "phoneHomeEnabled": true,
  "isActive": true,
  "deactivationNote": null,
  "allowOverride": false,
  "status": "Pending",
  "statusHistory": [
    {
      "status": "Pending",
      "message": "Request received, pending processing",
      "created": "2019-08-24T14:15:22Z",
      "updated": "2019-08-24T14:15:22Z"
    }
  ],
  "created": "2019-08-24T14:15:22Z",
  "updated": "2019-08-24T14:15:22Z"
}

Changes