openapi: 3.1.0 info: title: Solaris Zones Oracle Solaris Kernel Zones API description: >- REST API for creating and managing Oracle Solaris Kernel Zones via the RAD zonemgr module. Kernel Zones (brand solaris-kz) are non-global zones with their own kernel, providing greater independence and enhanced security isolation compared to native zones. They support live migration, independent patching, and hardware-assisted virtualization. version: '1.6' contact: name: Oracle Solaris Support url: https://www.oracle.com/solaris/support/ email: solaris-support@oracle.com license: name: Oracle Technology Network License url: https://www.oracle.com/legal/terms.html externalDocs: description: Oracle Solaris Kernel Zones Documentation url: https://docs.oracle.com/en/operating-systems/solaris/oracle-solaris/11.4/kernel-zones/oracle-solaris-kernel-zones.html servers: - url: https://{host}:{port}/api/com.oracle.solaris.rad.zonemgr/1.6 description: Oracle Solaris RAD REST endpoint variables: host: default: localhost description: Solaris host running RAD port: default: '6788' description: RAD REST API port tags: - name: Kernel Zone Configuration description: Configure kernel zone resources and properties - name: Kernel Zone Lifecycle description: Kernel zone boot, halt, suspend, and resume operations - name: Kernel Zone Management description: Create and manage kernel zones - name: Kernel Zone Migration description: Live migration of kernel zones between hosts security: - cookieAuth: [] paths: /ZoneManager/_rad_method/create: put: operationId: createKernelZone summary: Solaris Zones Create a Kernel Zone description: >- Create a new kernel zone using the solaris-kz brand template. Kernel zones run their own kernel and provide enhanced isolation through hardware-assisted virtualization. tags: - Kernel Zone Management requestBody: required: true content: application/json: schema: type: object required: - name properties: name: type: string description: Unique kernel zone name example: kzone1 path: type: string description: Zone root path example: /zones/kzone1 template: type: string description: Must be SYSsolaris-kz for kernel zones default: SYSsolaris-kz enum: - SYSsolaris-kz examples: CreatekernelzoneRequestExample: summary: Default createKernelZone request x-microcks-default: true value: name: Example Title path: example_value template: SYSsolaris-kz responses: '200': description: Kernel zone created content: application/json: schema: $ref: '#/components/schemas/ZoneResult' examples: Createkernelzone200Example: summary: Default createKernelZone 200 response x-microcks-default: true value: status: example_value payload: code: NONE message: example_value stdout: example_value stderr: example_value '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' x-microcks-operation: delay: 0 dispatcher: FALLBACK /Zone/{zoneName}: get: operationId: getKernelZone summary: Solaris Zones Get Kernel Zone Details description: >- Retrieve detailed information about a kernel zone including its brand (solaris-kz), state, UUID, and auxiliary states. The brand property confirms this is a kernel zone. tags: - Kernel Zone Management parameters: - $ref: '#/components/parameters/zoneName' - $ref: '#/components/parameters/radDetail' responses: '200': description: Kernel zone details content: application/json: schema: type: object properties: status: type: string payload: $ref: '#/components/schemas/KernelZone' examples: Getkernelzone200Example: summary: Default getKernelZone 200 response x-microcks-default: true value: status: example_value payload: name: Example Title brand: solaris-kz id: abc123 uuid: '500123' state: configured auxstate: - example_value '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' x-microcks-operation: delay: 0 dispatcher: FALLBACK /Zone/{zoneName}/_rad_method/install: put: operationId: installKernelZone summary: Solaris Zones Install a Kernel Zone description: >- Install a configured kernel zone. This provisions the zone with its own Solaris kernel, creating an independent operating environment with hardware-assisted virtualization support. tags: - Kernel Zone Lifecycle parameters: - $ref: '#/components/parameters/zoneName' requestBody: content: application/json: schema: type: object properties: options: type: array items: type: string description: Optional install arguments examples: InstallkernelzoneRequestExample: summary: Default installKernelZone request x-microcks-default: true value: options: - example_value responses: '200': description: Kernel zone installation initiated content: application/json: schema: $ref: '#/components/schemas/ZoneResult' examples: Installkernelzone200Example: summary: Default installKernelZone 200 response x-microcks-default: true value: status: example_value payload: code: NONE message: example_value stdout: example_value stderr: example_value '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' x-microcks-operation: delay: 0 dispatcher: FALLBACK /Zone/{zoneName}/_rad_method/boot: put: operationId: bootKernelZone summary: Solaris Zones Boot a Kernel Zone description: >- Boot a kernel zone. Unlike native zones, kernel zones boot their own kernel providing full OS isolation. tags: - Kernel Zone Lifecycle parameters: - $ref: '#/components/parameters/zoneName' requestBody: content: application/json: schema: type: object properties: options: type: array items: type: string description: Optional boot arguments examples: BootkernelzoneRequestExample: summary: Default bootKernelZone request x-microcks-default: true value: options: - example_value responses: '200': description: Kernel zone boot initiated content: application/json: schema: $ref: '#/components/schemas/ZoneResult' examples: Bootkernelzone200Example: summary: Default bootKernelZone 200 response x-microcks-default: true value: status: example_value payload: code: NONE message: example_value stdout: example_value stderr: example_value '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' x-microcks-operation: delay: 0 dispatcher: FALLBACK /Zone/{zoneName}/_rad_method/halt: put: operationId: haltKernelZone summary: Solaris Zones Halt a Kernel Zone tags: - Kernel Zone Lifecycle parameters: - $ref: '#/components/parameters/zoneName' responses: '200': description: Kernel zone halted content: application/json: schema: $ref: '#/components/schemas/ZoneResult' examples: Haltkernelzone200Example: summary: Default haltKernelZone 200 response x-microcks-default: true value: status: example_value payload: code: NONE message: example_value stdout: example_value stderr: example_value '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' x-microcks-operation: delay: 0 dispatcher: FALLBACK /Zone/{zoneName}/_rad_method/shutdown: put: operationId: shutdownKernelZone summary: Solaris Zones Gracefully Shut Down a Kernel Zone tags: - Kernel Zone Lifecycle parameters: - $ref: '#/components/parameters/zoneName' responses: '200': description: Kernel zone shutdown initiated content: application/json: schema: $ref: '#/components/schemas/ZoneResult' examples: Shutdownkernelzone200Example: summary: Default shutdownKernelZone 200 response x-microcks-default: true value: status: example_value payload: code: NONE message: example_value stdout: example_value stderr: example_value '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' x-microcks-operation: delay: 0 dispatcher: FALLBACK /Zone/{zoneName}/_rad_method/reboot: put: operationId: rebootKernelZone summary: Solaris Zones Reboot a Kernel Zone tags: - Kernel Zone Lifecycle parameters: - $ref: '#/components/parameters/zoneName' responses: '200': description: Kernel zone reboot initiated content: application/json: schema: $ref: '#/components/schemas/ZoneResult' examples: Rebootkernelzone200Example: summary: Default rebootKernelZone 200 response x-microcks-default: true value: status: example_value payload: code: NONE message: example_value stdout: example_value stderr: example_value '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' x-microcks-operation: delay: 0 dispatcher: FALLBACK /Zone/{zoneName}/_rad_method/suspend: put: operationId: suspendKernelZone summary: Solaris Zones Suspend a Kernel Zone description: >- Suspend a running kernel zone, saving its complete state including the kernel zone's own kernel state for later resumption. tags: - Kernel Zone Lifecycle parameters: - $ref: '#/components/parameters/zoneName' responses: '200': description: Kernel zone suspended content: application/json: schema: $ref: '#/components/schemas/ZoneResult' examples: Suspendkernelzone200Example: summary: Default suspendKernelZone 200 response x-microcks-default: true value: status: example_value payload: code: NONE message: example_value stdout: example_value stderr: example_value '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' x-microcks-operation: delay: 0 dispatcher: FALLBACK /Zone/{zoneName}/_rad_method/editConfig: put: operationId: editKernelZoneConfig summary: Solaris Zones Begin Editing Kernel Zone Configuration description: >- Start a configuration editing session for a kernel zone. Kernel zones support additional resource types such as virtual CPUs (dedicated-cpu), virtual memory, and virtual I/O devices. tags: - Kernel Zone Configuration parameters: - $ref: '#/components/parameters/zoneName' requestBody: content: application/json: schema: type: object properties: liveMode: type: boolean default: false description: Enable live reconfiguration examples: EditkernelzoneconfigRequestExample: summary: Default editKernelZoneConfig request x-microcks-default: true value: liveMode: true responses: '200': description: Editing session started content: application/json: schema: $ref: '#/components/schemas/ZoneResult' examples: Editkernelzoneconfig200Example: summary: Default editKernelZoneConfig 200 response x-microcks-default: true value: status: example_value payload: code: NONE message: example_value stdout: example_value stderr: example_value '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' x-microcks-operation: delay: 0 dispatcher: FALLBACK /Zone/{zoneName}/_rad_method/addResource: put: operationId: addKernelZoneResource summary: Solaris Zones Add Resource to Kernel Zone description: >- Add a resource to the kernel zone configuration. Kernel zones support additional resource types including dedicated-cpu for virtual CPU allocation, capped-memory for memory limits, and virtual I/O devices. tags: - Kernel Zone Configuration parameters: - $ref: '#/components/parameters/zoneName' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/KernelZoneResource' examples: AddkernelzoneresourceRequestExample: summary: Default addKernelZoneResource request x-microcks-default: true value: type: dedicated-cpu properties: - name: Example Title value: example_value type: simple listvalue: {} complexvalue: {} parent: example_value responses: '200': description: Resource added content: application/json: schema: $ref: '#/components/schemas/ZoneResult' examples: Addkernelzoneresource200Example: summary: Default addKernelZoneResource 200 response x-microcks-default: true value: status: example_value payload: code: NONE message: example_value stdout: example_value stderr: example_value '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' x-microcks-operation: delay: 0 dispatcher: FALLBACK /Zone/{zoneName}/_rad_method/commitConfig: put: operationId: commitKernelZoneConfig summary: Solaris Zones Commit Kernel Zone Configuration tags: - Kernel Zone Configuration parameters: - $ref: '#/components/parameters/zoneName' responses: '200': description: Configuration committed content: application/json: schema: $ref: '#/components/schemas/ZoneResult' examples: Commitkernelzoneconfig200Example: summary: Default commitKernelZoneConfig 200 response x-microcks-default: true value: status: example_value payload: code: NONE message: example_value stdout: example_value stderr: example_value '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' x-microcks-operation: delay: 0 dispatcher: FALLBACK /Zone/{zoneName}/_rad_method/getResources: put: operationId: getKernelZoneResources summary: Solaris Zones Query Kernel Zone Resources description: >- Retrieve resources configured for the kernel zone including CPU, memory, I/O devices, and networking. tags: - Kernel Zone Configuration parameters: - $ref: '#/components/parameters/zoneName' requestBody: content: application/json: schema: type: object properties: type: type: string description: >- Resource type filter. Kernel zones support: dedicated-cpu, capped-memory, anet, device, suspend, security-flags filter: type: array items: $ref: '#/components/schemas/Property' examples: GetkernelzoneresourcesRequestExample: summary: Default getKernelZoneResources request x-microcks-default: true value: type: example_value filter: - name: Example Title value: example_value type: simple listvalue: - {} complexvalue: - {} responses: '200': description: Kernel zone resources content: application/json: schema: type: object properties: status: type: string payload: type: array items: $ref: '#/components/schemas/KernelZoneResource' examples: Getkernelzoneresources200Example: summary: Default getKernelZoneResources 200 response x-microcks-default: true value: status: example_value payload: - type: dedicated-cpu properties: - {} parent: example_value '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' x-microcks-operation: delay: 0 dispatcher: FALLBACK /Zone/{zoneName}/_rad_method/migrate: put: operationId: livelyMigrateKernelZone summary: Solaris Zones Live Migrate a Kernel Zone description: >- Live migrate a running kernel zone to a remote host. Kernel zones are the primary zone type that supports live migration where the zone continues running while its state is transferred to the destination. tags: - Kernel Zone Migration parameters: - $ref: '#/components/parameters/zoneName' requestBody: required: true content: application/json: schema: type: object required: - host - type properties: host: type: string description: Destination host for the migration type: type: string enum: - live - cold description: >- Migration type. Kernel zones support both live and cold migration. Live migration keeps the zone running. cipher: type: string description: Encryption cipher for migration data transfer examples: LivelymigratekernelzoneRequestExample: summary: Default livelyMigrateKernelZone request x-microcks-default: true value: host: example_value type: live cipher: example_value responses: '200': description: Migration initiated content: application/json: schema: $ref: '#/components/schemas/ZoneResult' examples: Livelymigratekernelzone200Example: summary: Default livelyMigrateKernelZone 200 response x-microcks-default: true value: status: example_value payload: code: NONE message: example_value stdout: example_value stderr: example_value '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' x-microcks-operation: delay: 0 dispatcher: FALLBACK components: securitySchemes: cookieAuth: type: apiKey in: cookie name: _rad_session description: RAD session cookie obtained via authentication parameters: zoneName: name: zoneName in: path required: true description: Kernel zone name schema: type: string radDetail: name: _rad_detail in: query required: false description: Include detailed property information schema: type: boolean responses: Unauthorized: description: Authentication required content: application/json: schema: $ref: '#/components/schemas/RadError' BadRequest: description: Invalid request content: application/json: schema: $ref: '#/components/schemas/RadError' NotFound: description: Zone not found content: application/json: schema: $ref: '#/components/schemas/RadError' schemas: RadError: type: object properties: status: type: string example: failure payload: type: object properties: code: type: integer message: type: string example: example_value ZoneResult: type: object properties: status: type: string example: example_value payload: type: object properties: code: type: string enum: - NONE - FRAMEWORK_ERROR - SNAPSHOT_ERROR - COMMAND_ERROR - RESOURCE_ALREADY_EXISTS - RESOURCE_NOT_FOUND - RESOURCE_TOO_MANY - RESOURCE_UNKNOWN - ALREADY_EDITING - INCOMPLETE_NO_CONFIG - PROPERTY_UNKNOWN - NOT_EDITING - SYSTEM_ERROR - INVALID_ARGUMENT - INVALID_ZONE_STATE message: type: string stdout: type: string stderr: type: string example: example_value KernelZone: type: object properties: name: type: string description: Kernel zone name example: Example Title brand: type: string description: Zone brand (solaris-kz for kernel zones) enum: - solaris-kz example: solaris-kz id: type: integer description: Numeric zone ID example: abc123 uuid: type: string format: uuid description: Zone UUID example: '500123' state: type: string enum: - configured - incomplete - installed - ready - running - shutting_down - down description: Current zone state example: configured auxstate: type: array items: type: string description: Auxiliary zone states example: [] KernelZoneResource: type: object required: - type properties: type: type: string description: >- Resource type. Kernel zone specific types include dedicated-cpu and capped-memory for virtual hardware allocation. enum: - dedicated-cpu - capped-memory - capped-cpu - anet - device - fs - suspend - security-flags - attr example: dedicated-cpu properties: type: array items: $ref: '#/components/schemas/Property' description: Resource property values example: [] parent: type: string description: Parent resource reference example: example_value Property: type: object required: - name properties: name: type: string description: >- Property name. Key kernel zone properties include ncpus, physical, locked, swap, lower-link, allowed-address. example: Example Title value: type: string description: Property value example: example_value type: type: string enum: - simple - list - complex example: simple listvalue: type: array items: type: string example: [] complexvalue: type: array items: type: string example: []