aboutsummaryrefslogtreecommitdiffstats
path: root/open-api-spec.yaml
diff options
context:
space:
mode:
authorGergely Csatari <gergely.csatari@nokia.com>2023-10-26 10:33:28 +0300
committerGergely Csatari <gergely.csatari@nokia.com>2023-10-26 10:34:28 +0300
commit2ec0d7b9f5c1354977b821c6b06c24a3ffa13142 (patch)
tree6e449d92ddfc880ed007e9d8a8f25bda8fc7cb0f /open-api-spec.yaml
parent0d3dd290aa6e7f39e7b0b3cbe448b6622f924240 (diff)
Removing project content and adding a noteHEADmaster
that the development continues in GitHub Change-Id: I25c58a679dbf92b2367d826429b7cda936bf9f0e Signed-off-by: Gergely Csatari <gergely.csatari@nokia.com>
Diffstat (limited to 'open-api-spec.yaml')
-rw-r--r--open-api-spec.yaml523
1 files changed, 0 insertions, 523 deletions
diff --git a/open-api-spec.yaml b/open-api-spec.yaml
deleted file mode 100644
index 2e8dfd6..0000000
--- a/open-api-spec.yaml
+++ /dev/null
@@ -1,523 +0,0 @@
----
-swagger: "2.0"
-info:
- description: This is the Lab as a Service API
- version: 2.0.1
- title: LaaS API
- contact:
- email: nfvlab@iol.unh.edu
- license:
- name: Apache 2.0
- url: http://www.apache.org/licenses/LICENSE-2.0.html
-host: virtserver.swaggerhub.com
-basePath: /IOL-OPNFV-LaaS/Labs/1.0.0
-tags:
-- name: admin
- description: Secured Admin-only calls
-- name: developers
- description: Operations available to regular developers
-schemes:
-- https
-paths:
- /api/labs/{lab-name}/jobs/new:
- get:
- summary: list of new, unstarted jobs for the lab
- description: |
- List of jobs for <lab-name> to start. These jobs all must have a status of `new`,
- meaning they are unstarted.
- produces:
- - application/json
- parameters:
- - name: lab-name
- in: path
- required: true
- type: string
- responses:
- 200:
- description: search results matching criteria
- schema:
- type: array
- items:
- $ref: '#/definitions/Job'
- /api/labs/{lab-name}/jobs/current:
- get:
- summary: list of unfinished jobs
- description: |
- List of jobs for <lab-name> that are still in progress. A job is in progress if
- it has been started but has not finished.
- produces:
- - application/json
- parameters:
- - name: lab-name
- in: path
- required: true
- type: string
- responses:
- 200:
- description: search results matching criteria
- schema:
- type: array
- items:
- $ref: '#/definitions/Job'
- /api/labs/{lab-name}/jobs/done:
- get:
- summary: list of done jobs
- description: |
- List of jobs for <lab-name> that were started and are no longer in progress.
- A job can be marked 'done' with a succesful or error status.
- produces:
- - application/json
- parameters:
- - name: lab-name
- in: path
- required: true
- type: string
- responses:
- 200:
- description: search results matching criteria
- schema:
- type: array
- items:
- $ref: '#/definitions/Job'
- /api/labs/{lab-name}/jobs/{job_id}/{task_id}>:
- post:
- summary: update job information
- produces:
- - application/json
- parameters:
- - name: lab-name
- in: path
- required: true
- type: string
- - name: job_id
- in: path
- required: true
- type: integer
- - name: task_id
- in: path
- required: true
- type: string
- - in: body
- name: payload
- description: payload, schema based on job type
- required: true
- schema:
- $ref: '#/definitions/JobUpdate'
- responses:
- 200:
- description: success
- /api/labs/{lab-name}/inventory:
- get:
- summary: lab inventory
- produces:
- - application/json
- parameters:
- - name: lab-name
- in: path
- required: true
- type: string
- responses:
- 200:
- description: lab inventory
- schema:
- $ref: '#/definitions/Inventory'
- post:
- summary: updates lab inventory
- parameters:
- - name: lab-name
- in: path
- required: true
- type: string
- - in: body
- name: inventory
- required: true
- schema:
- $ref: '#/definitions/Inventory'
- responses:
- 200:
- description: success
- /api/labs/{lab-name}/profile:
- get:
- summary: lab profile
- produces:
- - application/json
- parameters:
- - name: lab-name
- in: path
- required: true
- type: string
- responses:
- 200:
- description: lab profile
- schema:
- $ref: '#/definitions/Profile'
- post:
- summary: updates lab profile
- parameters:
- - name: lab-name
- in: path
- required: true
- type: string
- - in: body
- name: profile
- required: true
- schema:
- $ref: '#/definitions/Profile'
- responses:
- 200:
- description: success
-definitions:
- Host_Interface:
- properties:
- mac:
- type: string
- example: 00:11:22:33:44:55
- description: mac address
- busaddr:
- type: string
- example: 0000:02:00.1
- description: bus address reported by `ethtool -i <ifname>`
- switchport:
- $ref: '#/definitions/Switchport'
- Generic_Interface:
- properties:
- speed:
- type: string
- example: 10G
- description: speed in M or G
- name:
- type: string
- example: eno3
- description: interface name
- Generic_Disk:
- properties:
- size:
- type: string
- example: 500G
- description: size in M, G, or T
- type:
- type: string
- example: SSD
- description: must be SSD or HDD
- name:
- type: string
- example: sda
- description: name of root block device
- CPU:
- properties:
- cores:
- type: integer
- format: int32
- example: 64
- description: how many CPU cores the host has (across all physical cpus)
- minimum: 1
- arch:
- type: string
- example: x86_64
- description: must be x86_64 or aarch64
- cpus:
- type: integer
- example: 2
- description: Number of different physical CPU chips
- minimum: 1
- Image:
- properties:
- name:
- type: string
- description:
- type: string
- lab_id:
- type: string
- description: identifier provided by lab
- dashboard_id:
- type: string
- description: identifier provided by dashboard
- Inventory_Host:
- properties:
- interfaces:
- type: array
- items:
- $ref: '#/definitions/Host_Interface'
- hostname:
- type: string
- example: hpe3.opnfv.iol.unh.edu
- description: globally unique fqdn
- host_type:
- type: string
- description: name of host type this host belongs to
- Inventory_Network:
- properties:
- cidr:
- type: string
- example: 174.0.5.0/24
- description: subnet description
- gateway:
- type: string
- example: 174.0.5.1
- description: ip of gateway
- vlan:
- type: integer
- example: 100
- description: vlan tag of this network
- Inventory:
- properties:
- hosts:
- type: array
- description: all hosts
- items:
- $ref: '#/definitions/Inventory_Host'
- networks:
- type: array
- description: all networks
- items:
- $ref: '#/definitions/Inventory_Network'
- images:
- type: array
- description: available images
- items:
- $ref: '#/definitions/Image'
- host_types:
- type: array
- description: all host types hosted by a lab
- items:
- $ref: '#/definitions/Host_Type'
- Host_Type:
- properties:
- cpu:
- $ref: '#/definitions/CPU'
- disks:
- type: array
- items:
- $ref: '#/definitions/Generic_Disk'
- description:
- type: string
- description: human readable description of host type
- interface:
- type: array
- items:
- $ref: '#/definitions/Generic_Interface'
- ram:
- $ref: '#/definitions/Ram'
- name:
- type: string
- description: lab-unique name
- Ram:
- properties:
- amount:
- type: integer
- example: 16
- description: amount of ram in Gibibytes (GiB)
- Switchport:
- properties:
- switch_name:
- type: string
- example: Cisco-9
- description: name of switch owning this switchport
- port_name:
- type: string
- example: Ethernet1/34
- description: name of port on switch
- invariant_config:
- type: array
- description: list of vlans that may not be modified on this port
- items:
- $ref: '#/definitions/Vlan'
- current_config:
- type: array
- description: list of current vlan configuration
- items:
- $ref: '#/definitions/Vlan'
- Vlan:
- properties:
- vlan_id:
- type: integer
- example: 100
- description: vlan id
- minimum: 1
- maximum: 4098
- tagged:
- type: boolean
- example: true
- description: whether this vlan is tagged or untagged
- Job:
- properties:
- id:
- type: integer
- description: globally unique job identifier
- payload:
- $ref: '#/definitions/JobPayload'
- JobPayload:
- properties:
- hardware:
- $ref: '#/definitions/HardwareTask'
- software:
- $ref: '#/definitions/SoftwareTask'
- network:
- $ref: '#/definitions/NetworkTask'
- access:
- $ref: '#/definitions/AccessTask'
- snapshot:
- $ref: '#/definitions/SnapshotTask'
- HardwareTask:
- properties:
- taskId:
- $ref: '#/definitions/HardwareConfig'
- SoftwareTask:
- properties:
- taskId:
- $ref: '#/definitions/SoftwarePayload'
- NetworkTask:
- properties:
- taskId:
- $ref: '#/definitions/NetworkPayload'
- AccessTask:
- properties:
- taskId:
- $ref: '#/definitions/AccessPayload'
- SnapshotTask:
- properties:
- taskId:
- $ref: '#/definitions/SnapshotPayload'
- SnapshotPayload:
- properties:
- host:
- type: string
- example: hpe3
- description: how the lab identifies the host
- image:
- type: string
- example: "4"
- description: lab id of existing image, if updating an existing image. if this key does not exist, the lab must create a new image
- dashboard_id:
- type: string
- description: how the dashboard identifies this image / snapshot
- AccessPayload:
- properties:
- revoke:
- type: boolean
- description: whether to revoke key during completion of job
- user:
- type: string
- description: PK/ID of user access is being given to
- access_type:
- type: string
- example: ssh
- description: type of access key to be generated. Options include "vpn and ssh"
- hosts:
- type: array
- description: hosts to grant access to if applicable
- items:
- type: string
- description: id of host
- lab_token:
- type: string
- description: identifier provided by lab to this task
- HardwareConfig:
- properties:
- id:
- type: string
- description: ID of host
- image:
- type: integer
- example: 42
- description: lab provided ID of the request image
- power:
- type: string
- example: on
- description: desired power state, either on or off
- hostname:
- type: string
- example: my_new_machine
- description: user-defined hostname
- ipmi_create:
- type: boolean
- description: whether or not to create an ipmi account
- lab_token:
- type: string
- description: identifier provided by lab to this task
- SoftwarePayload:
- properties:
- opnfv:
- $ref: '#/definitions/OpnfvConfiguration'
- lab_token:
- type: string
- description: identifier provided by lab to this task
- OpnfvHost:
- properties:
- hostname:
- type: string
- example: Jumphost
- description: maps hostname to OPNFV role
- OpnfvConfiguration:
- properties:
- installer:
- type: string
- description: Installer user wants
- scenario:
- type: string
- description: scenario of OPNFV to deploy
- pdf:
- type: string
- example: LaaS.com/api/my_job/pdf
- description: URL to find the Pod Descriptor File contents
- idf:
- type: string
- example: LaaS.com/api/my_job/idf
- description: URL to find the Installer Descriptor File contents
- roles:
- type: array
- description: role the host will play in OPNFV
- items:
- $ref: '#/definitions/OpnfvHost'
- NetworkPayload:
- properties:
- hostId:
- $ref: '#/definitions/NetworkConfig'
- lab_token:
- type: string
- description: identifier provided by lab to this task
- NetworkConfig:
- properties:
- interface_name:
- type: array
- description: list of vlans on this interface
- items:
- $ref: '#/definitions/Vlan'
- JobUpdate:
- properties:
- status:
- type: integer
- description: status type, see status enum
- message:
- type: string
- description: message from lab for user
- lab_token:
- type: string
- description: identifier provided by lab to this task
- Profile:
- properties:
- name:
- type: string
- description: proper expanded lab name
- contact:
- $ref: '#/definitions/Contact'
- description:
- type: string
- host_count:
- type: array
- items:
- $ref: '#/definitions/Host_Number'
- Host_Number:
- properties:
- type:
- type: string
- count:
- type: integer
- Contact:
- properties:
- phone:
- type: string
- description: phone number at which a lab can be reached
- email:
- type: string
- description: email at which a lab can be reached