Oracle Solaris Unified Archives Zones API

API for creating, deploying, and managing Unified Archives for zone system recovery, cloning, and migration across Oracle Solaris systems.

OpenAPI Specification

solaris-unified-archives-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Solaris Zones Oracle Solaris Unified Archives Zones API
  description: >-
    REST API for creating, deploying, and managing Unified Archives for Oracle
    Solaris zone system recovery, cloning, and migration. Unified Archives
    package one or more system images (zones and global zone) into a single
    portable archive file that can be used for bare-metal recovery, zone
    cloning, zone deployment on new systems, and disaster recovery scenarios.
  version: '1.0'
  contact:
    name: Oracle Solaris Support
    url: https://www.oracle.com/solaris/support/
    email: [email protected]
  license:
    name: Oracle Technology Network License
    url: https://www.oracle.com/legal/terms.html
externalDocs:
  description: Using Unified Archives for System Recovery and Cloning
  url: https://docs.oracle.com/cd/E37838_01/html/E60984/gmrlo.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: Archive Creation
  description: Create Unified Archives from zones
- name: Archive Deployment
  description: Deploy zones from Unified Archives
- name: Archive Information
  description: Query archive contents and metadata
- name: Zone Recovery
  description: Recover zones from archives
security:
- cookieAuth: []
paths:
  /ZoneManager/_rad_method/create:
    put:
      operationId: createZoneFromArchive
      summary: Solaris Zones Create a Zone From a Unified Archive
      description: >-
        Create and configure a new zone that will be installed from a Unified
        Archive. The zone is created in the configured state and can then be
        installed using the archive as the installation source.
      tags:
      - Archive Deployment
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - name
              properties:
                name:
                  type: string
                  description: Name for the new zone
                path:
                  type: string
                  description: Zone root path
                template:
                  type: string
                  description: Zone brand template
                  default: SYSdefault
            examples:
              CreatezonefromarchiveRequestExample:
                summary: Default createZoneFromArchive request
                x-microcks-default: true
                value:
                  name: Example Title
                  path: example_value
                  template: example_value
      responses:
        '200':
          description: Zone created ready for archive-based installation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZoneResult'
              examples:
                Createzonefromarchive200Example:
                  summary: Default createZoneFromArchive 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}/_rad_method/install:
    put:
      operationId: installZoneFromArchive
      summary: Solaris Zones Install a Zone From a Unified Archive
      description: >-
        Install a configured zone using a Unified Archive as the source. The
        archive path is provided as an install option using -a flag. Supports
        both recovery archives (full system state) and clone archives
        (template-based deployment).
      tags:
      - Archive Deployment
      parameters:
      - $ref: '#/components/parameters/zoneName'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - options
              properties:
                options:
                  type: array
                  items:
                    type: string
                  description: >-
                    Install options. Use -a to specify the archive path and
                    -c for a system configuration profile.
                  example:
                  - '-a'
                  - '/archives/zone-backup.uar'
                  - '-c'
                  - '/profiles/zone-sc.xml'
            examples:
              InstallzonefromarchiveRequestExample:
                summary: Default installZoneFromArchive request
                x-microcks-default: true
                value:
                  options:
                  - example_value
      responses:
        '200':
          description: Zone installation from archive initiated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZoneResult'
              examples:
                Installzonefromarchive200Example:
                  summary: Default installZoneFromArchive 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/clone:
    put:
      operationId: cloneZoneFromArchive
      summary: Solaris Zones Clone a Zone Using a Unified Archive
      description: >-
        Clone a zone using a Unified Archive as the source. This creates a new
        zone installation based on the archived zone image, allowing rapid
        deployment of standardized zone configurations.
      tags:
      - Archive Deployment
      parameters:
      - $ref: '#/components/parameters/zoneName'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - source
              properties:
                source:
                  type: string
                  description: >-
                    Source zone name within the archive to clone from
                archivePath:
                  type: string
                  description: Path to the Unified Archive file
                snapshot:
                  type: string
                  description: ZFS snapshot within the archive to use
            examples:
              ClonezonefromarchiveRequestExample:
                summary: Default cloneZoneFromArchive request
                x-microcks-default: true
                value:
                  source: example_value
                  archivePath: example_value
                  snapshot: example_value
      responses:
        '200':
          description: Zone cloned from archive
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZoneResult'
              examples:
                Clonezonefromarchive200Example:
                  summary: Default cloneZoneFromArchive 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/attach:
    put:
      operationId: attachZoneFromArchive
      summary: Solaris Zones Attach a Zone From a Unified Archive
      description: >-
        Attach a zone using a Unified Archive. Used for restoring a zone from
        an archive on a new or rebuilt system. The archive provides the zone
        root content that is attached to the zone configuration.
      tags:
      - Zone Recovery
      parameters:
      - $ref: '#/components/parameters/zoneName'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                options:
                  type: array
                  items:
                    type: string
                  description: >-
                    Attach options. Use -a for archive path, -z for zone
                    within the archive.
                  example:
                  - '-a'
                  - '/archives/zone-backup.uar'
            examples:
              AttachzonefromarchiveRequestExample:
                summary: Default attachZoneFromArchive request
                x-microcks-default: true
                value:
                  options:
                  - example_value
      responses:
        '200':
          description: Zone attached from archive
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZoneResult'
              examples:
                Attachzonefromarchive200Example:
                  summary: Default attachZoneFromArchive 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/exportConfig:
    put:
      operationId: exportZoneConfigForArchive
      summary: Solaris Zones Export Zone Configuration for Archival
      description: >-
        Export the zone configuration as a string suitable for inclusion in
        a Unified Archive or for recreating the zone on another system.
      tags:
      - Archive Creation
      parameters:
      - $ref: '#/components/parameters/zoneName'
      responses:
        '200':
          description: Exported zone configuration
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                  payload:
                    type: string
                    description: >-
                      Zone configuration in zonecfg export format
              examples:
                Exportzoneconfigforarchive200Example:
                  summary: Default exportZoneConfigForArchive 200 response
                  x-microcks-default: true
                  value:
                    status: example_value
                    payload: 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: getArchiveZoneResources
      summary: Solaris Zones Get Zone Resources for Archive Validation
      description: >-
        Retrieve all configured resources for a zone to validate compatibility
        before creating an archive or deploying from an archive.
      tags:
      - Archive Information
      parameters:
      - $ref: '#/components/parameters/zoneName'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                type:
                  type: string
                  description: Optional resource type filter
                filter:
                  type: array
                  items:
                    $ref: '#/components/schemas/Property'
            examples:
              GetarchivezoneresourcesRequestExample:
                summary: Default getArchiveZoneResources request
                x-microcks-default: true
                value:
                  type: example_value
                  filter:
                  - name: Example Title
                    value: example_value
                    type: simple
                    listvalue:
                    - {}
                    complexvalue:
                    - {}
      responses:
        '200':
          description: Zone resources
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                  payload:
                    type: array
                    items:
                      $ref: '#/components/schemas/Resource'
              examples:
                Getarchivezoneresources200Example:
                  summary: Default getArchiveZoneResources 200 response
                  x-microcks-default: true
                  value:
                    status: example_value
                    payload:
                    - type: example_value
                      properties:
                      - {}
                      parent: example_value
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /Zone/{zoneName}:
    get:
      operationId: getZoneForArchive
      summary: Solaris Zones Get Zone Details for Archive Operations
      description: >-
        Retrieve zone details to verify state before creating archives or
        deploying from archives. Includes zone brand, state, and UUID.
      tags:
      - Archive Information
      parameters:
      - $ref: '#/components/parameters/zoneName'
      - $ref: '#/components/parameters/radDetail'
      responses:
        '200':
          description: Zone details
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                  payload:
                    $ref: '#/components/schemas/Zone'
              examples:
                Getzoneforarchive200Example:
                  summary: Default getZoneForArchive 200 response
                  x-microcks-default: true
                  value:
                    status: example_value
                    payload:
                      name: Example Title
                      brand: example_value
                      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/detach:
    put:
      operationId: detachZoneForArchive
      summary: Solaris Zones Detach Zone for Archival
      description: >-
        Detach a zone in preparation for archiving or moving. The zone
        transitions to the configured state with its data preserved.
      tags:
      - Archive Creation
      parameters:
      - $ref: '#/components/parameters/zoneName'
      responses:
        '200':
          description: Zone detached for archival
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZoneResult'
              examples:
                Detachzoneforarchive200Example:
                  summary: Default detachZoneForArchive 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
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: 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
    Zone:
      type: object
      properties:
        name:
          type: string
          example: Example Title
        brand:
          type: string
          example: example_value
        id:
          type: integer
          example: abc123
        uuid:
          type: string
          format: uuid
          example: '500123'
        state:
          type: string
          enum:
          - configured
          - incomplete
          - installed
          - ready
          - running
          - shutting_down
          - down
          example: configured
        auxstate:
          type: array
          items:
            type: string
          example: []
    Resource:
      type: object
      properties:
        type:
          type: string
          example: example_value
        properties:
          type: array
          items:
            $ref: '#/components/schemas/Property'
          example: []
        parent:
          type: string
          example: example_value
    Property:
      type: object
      required:
      - name
      properties:
        name:
          type: string
          example: Example Title
        value:
          type: string
          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: []