Create Operating System

View as Markdown
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 parameter 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 parameter value. User must have authorization role with `TENANT_ADMIN` suffix. Only Tenants are allowed to create Operating System for MVP.

Authentication

AuthorizationBearer
``` export JWT_BEARER_TOKEN="<jwt-bearer-token>" # Example org name: "acme-inc export ORG_NAME=<org-name> # Use the JWT bearer token in your API request auth header: curl -v -X GET -H "Content-Type: application/json" -H "Authorization: Bearer $JWT_BEARER_TOKEN" https://nico-rest-api.nico.svc.cluster.local/v2/org/$ORG_NAME/nico/user/current ```

Path parameters

orgstringRequired
Name of the Org

Request

This endpoint expects an object.
namestringRequired2-256 characters
Name of the Operating System
descriptionstring or nullOptional
Optional description of the Operating System
siteIdslist of stringsOptional

Target Sites for the Operating System. For image-based OS specify exactly one Site (more than one is not supported). For Templated iPXE OS at least one Site is required and the list is fixed at creation: it cannot be changed on update. Not applicable to raw iPXE OS.

imageUrlstring or nullOptionalformat: "uri"

Original URL from which the Operating System image can be retrieved; required for image-based OS. Cannot be specified if ipxeScript is specified

imageShastring or nullOptional

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

imageAuthTypestring or nullOptional

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

imageAuthTokenstring or nullOptional
Auth token to retrieve the image from image URL, required if imageAuthType is specified
imageDiskstring or nullOptional
Disk path where the image should be mounted, optional
rootFsIdstring or nullOptional

Root filesystem UUID; this or rootFsLabel is required for image-based OS

rootFsLabelstring or nullOptional

Root filesystem label; this or rootFsId is required for image-based OS

phoneHomeEnabledboolean or nullOptional
Indicates whether the Phone Home service should be enabled or disabled for Operating System
userDatastring or nullOptional
User data for the Operating System
allowOverridebooleanOptional
Indicates if the user data can be overridden at Instance creation time
ipxeTemplateIdstring or nullOptional

ID of the iPXE template to use; identifies a Templated iPXE Operating System. Mutually exclusive with ipxeScript and imageUrl.

ipxeTemplateParameterslist of objectsOptional

Parameters passed to the iPXE template (Templated iPXE only).

ipxeTemplateArtifactslist of objectsOptional

Artifacts (kernel, initrd, ISO, …) for the iPXE OS definition (Templated iPXE only).

infrastructureProviderIdstring or nullOptionalformat: "uuid"Deprecated

Deprecated: Infrastructure Provider is now inferred from org membership.

tenantIdstring or nullOptionalformat: "uuid"Deprecated

Deprecated: Tenant is now inferred from org membership.

ipxeScriptstring or nullOptionalDeprecated

Deprecated: raw iPXE Operating Systems are superseded by Templated iPXE (ipxeTemplateId). iPXE script or URL, only applicable for iPXE-based OS. Cannot be specified if imageUrl is specified.

isCloudInitbooleanOptionalDeprecated

Deprecated and ignored: whether the Operating System is cloud-init based. Value now derived from userData.

Response

Created
idstringRead-onlyformat: "uuid"
ID of the Operating System
namestring2-256 characters
Name of the Operating System
descriptionstring or null
Optional description of the Operating System
infrastructureProviderIdstring or nullformat: "uuid"
Specified if a Provider owns the Operating System
tenantIdstring or nullformat: "uuid"
Specified if a Tenant owns the Operating System
typeenum
Type of the Operating System
imageUrlstring or nullformat: "uri"
Original URL from which the Operating System image can be retrieved
imageShastring or null

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

imageAuthTypestring or null
Authentication type for image URL, e.g., 'Basic' or 'Bearer'
imageAuthTokenstring or null
Auth token to retrieve the image from image URL
imageDiskstring or null
Disk path where the image should be mounted
rootFsIdstring or null

Root filesystem UUID, only applicable for image-based Operating System

rootFsLabelstring or null

Root filesystem label, only applicable for image-based Operating System

ipxeScriptstring or null

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

ipxeTemplateIdstring or null
ID of the iPXE template used, only present for Templated iPXE Operating System
ipxeTemplateParameterslist of objects

Parameters passed to the iPXE template (Templated iPXE only)

ipxeTemplateArtifactslist of objects

Artifacts for the iPXE OS definition (Templated iPXE only). authToken is redacted.

userDatastring or null
User data for the Operating System
isCloudInitboolean

Whether the Operating System is cloud-init based; true if there is non-empty userData, false otherwise.

phoneHomeEnabledboolean
Indicates whether the Phone Home service should be enabled or disabled for Operating System
isActiveboolean
Indicates if the Operating System is active
deactivationNotestring or null
Optional deactivation note if OS is inactive
allowOverrideboolean
Indicates if the user data can be overridden at Instance creation time
siteAssociationslist of objects
Sites the Operating System is synced to
statusenum
Status of the Operating System
statusHistorylist of objects
History of status changes over time
createddatetimeRead-only

Date/time when the Operating System was created

updateddatetimeRead-only

Date/time when the Operating System was updated

Errors

400
Bad Request Error
403
Forbidden Error