@@ -233,103 +233,179 @@ Header field name Reference Example Descriptions
- POST: Obtain a token. The 'username' and 'password' is mandatory only if http header does not contain Authorization. 'project' can be provided, if not, first project of available for this user is assigned. For changing project, a new token must be obtained.
- Example of request content: `'{username: <user>, password: <pass>, project_id: <project>}'`
`/admin/v1/tokens/`
`/admin/v1/tokens/ID`
- GET: show token details
- DELETE: revoque token. Logout
`/admin/v1/users`. (rbac: `users`). Users may operate in several projects
- GET: Get users
- GET: Get user list
- POST: Add a new user.
- Example of request content: `'{username: <user>, password: <pass>, projects: [P1, P2, ...]}'`
`/admin/v1/users/`. (rbac: `users:id`).
`/admin/v1/users/ID`. (rbac: `users:id`).
- GET: Get user details
- PUT/PATCH: Edit user.
- Example of user edition:
- PUT/PATCH: Edit user. Example of user edition:
- Change password: `'{password: <new_pass>}'`
-Change the list of available projects to a new one: `'{projects: [P1, P2, ...]}'`
- Remove a project 'P' from user if exist: `{projects: {"$'P'": null}}'`
-Add a project 'P' to user if not already exist: `'{projects: {"$+'P'": "P"}}'`
- Set 'P' to be project by default, (adding it if not exist): `'{projects: {"$'P'": null, "$+[0]": "P"}}'`
-Add role R1, projects P1: `'{add_project_role_mappings: [{project: role: R1}, ...]}'`
- Remove role R1, project P1 from user: `{remove_project_role_mappings: [{project: P1, role: R1}]}'`
-Remove a project 'P1' (all roles) from user: `{remove_project_role_mappings: [{project: P1}]}'`
- DELETE: Removes user.
`/admin/v1/projects`. (rbac: `projects`). A project contains its own separate space
- GET: Get projects
- POST: Add a new project.
- Example of request content: `'{name: <P-name>, admin: <True/False>}'`
- GET: Get project list
- POST: Add a new project. Example of request content: `'{name: <P-name>, admin: <True/False>}'`
`/admin/v1/projects/`. (rbac: `projects:id`)
`/admin/v1/projects/ID`. (rbac: `projects:id`)
- GET: Get project details
- PUT/PATCH: Edit project.
- Example of project edition to change admin status: `'{admin: <True/False>}'`
- PUT/PATCH: Edit project.Example of project edition to change admin status: `'{admin: <True/False>}'`
- DELETE: Removes project.
`/admin/v1/vim_accounts`. (rbac: `vims`). Vim account is the deployment target
- GET: Get vim_accounts
- POST: Add a new vim_accounts.
- Example of request content: TODO
- POST: Add a new vim_accounts.Example of request content:
```yaml
name:ost2
vim_url:http://vim-server:vim-port/version
vim_type:openstack
vim_user:user
vim_password:password
vim_tenant_name:tenant
```
`/admin/v1/vim_accounts/`. (rbac: `vims:id`)
`/admin/v1/vim_accounts/ID`. (rbac: `vims:id`)
- GET: Get vim_account details
- PUT/PATCH: Edit vim_account.
- Example of vim_account edition: TODO
- PUT/PATCH: Edit vim_account. Example of vim_account edition:
```yaml
vim_user:new-user
vim_password:new-password
vim_tenant_name:new-tenant
```
- DELETE: Removes vim_account.
`/admin/v1/wim_accounts`. (rbac: `wims`). WIM are WAN Infrastructure Managers, that is in charge of inter VIM connectivity management
- GET: Get wim_accounts
- POST: Add a new wim_account.
- Example of request content: TODO
- POST: Add a new wim_account. Example of request content:
`/admin/v1/wim_accounts/`. (rbac: `wims:id`)
```yaml
name:wim-name
wim_url:http://wim-server:wim-port/version
wim_type:onosof
```
`/admin/v1/wim_accounts/ID`. (rbac: `wims:id`)
- GET: Get wim_account details
- PUT/PATCH: Edit wim_account.
- Example of wim_account edition: TODO
- PUT/PATCH: Edit wim_account. Example of wim_account edition:
```yaml
wim_url:http://new-server:new-port/new-version
wim_type:new-type
```
- DELETE: Removes wim_account.
`/admin/v1/sdns`. (rbac: `sdn_controllers`). SDN controllers in charge of VIM's underlay connectivity in SDN Assist
- GET: Gets sdns
- POST: Add a new sdn.
- Example of request content: TODO
- GET: Gets sdn controller list
- POST: Add a new sdn. Example of request content:
`/admin/v1/k8sclusters`. (rbac: `k8sclusters`). K8S Clusters to deploy juju bundles or helm packages
- GET: Gets k8s clusters
- POST: Add a new k8s cluster.
- Example of request content: TODO
```yaml
name:sdn-name
type:onosof
url:"10.95.172.251:8181"
config:{dpid:"00:00:28:99:3a:43:38:a1"}
user:username
password:password
```
`/admin/v1/k8srepos`. (rbac: `k8srepos`). K8S repository that contains the juju bundles or helm packages
- PUT/PATCH: Edit k8sclusters. Example of k8scluster edition:
```yaml
k8s_version:"1.17"
nets:
internal:int-net
external:ext-net
description:K8sCluster description text
```
- DELETE: Removes k8sclusters.
`/admin/v1/k8srepos/`. (rbac: `k8srepos:id`)
`/admin/v1/k8srepos`. (rbac: `k8srepos`). K8S repository that contains the juju bundles or helm chart packages
- GET: Gets k8s repositories
- POST: Add a new k8s repository. Example of request content:
```yaml
name:k8s-repo-name
type:helm-chart|juju-bundle
url:https://repo-server/path
```
`/admin/v1/k8srepos/ID`. (rbac: `k8srepos:id`)
- GET: Get k8srepos details
- PUT/PATCH: Edit k8srepos.
- DELETE: Removes k8srepos.
## PDU Details
@@ -339,8 +415,7 @@ Physical Data Unit. This is catalogue of physical elements present at some vim_a
`/pdu/v1/pdu_descriptor`. (rbac: `pduds`)
- GET: List PDUs. Use query string for filtering.
- POST: Create a new PDU.
- Example of request content:
- POST: Create a new PDU. Example of request content:
```yaml
name:descriptive name# mandatory
@@ -355,7 +430,7 @@ interfaces: # mandatory
vim-network-name:xxx
```
`/pdu/v1/pdu_descriptor/`. (rbac: `pduds:id`)
`/pdu/v1/pdu_descriptor/ID`. (rbac: `pduds:id`)
- GET: show PDU details
- PUT: overwrite this PDU
@@ -366,13 +441,13 @@ interfaces: # mandatory
Virtual Network Function Descriptor. This includes also Physical and Hybrid Network Funcitons Descriptors (PNFD/HNFD). (At VDU level, it is indicated if it is physical with the `'pdu-type'` information element).
TBC
See complete documentation on: [Open OSM NBI in Swagger-UI](https://forge.etsi.org/swagger/ui/?url=https%3A%2F%2Fosm.etsi.org%2Fgitweb%2F%3Fp%3Dosm%2FSOL005.git%3Ba%3Dblob_plain%3Bf%3Dosm-openapi.yaml%3Bhb%3DHEAD)
## NSD Details
Network Services Descriptor
TBC
See complete documentation on: [Open OSM NBI in Swagger-UI](https://forge.etsi.org/swagger/ui/?url=https%3A%2F%2Fosm.etsi.org%2Fgitweb%2F%3Fp%3Dosm%2FSOL005.git%3Ba%3Dblob_plain%3Bf%3Dosm-openapi.yaml%3Bhb%3DHEAD)
- POST: (Asynchronous). Deploys a NS that it is in NOT_INSTANTIATED state. It returns the nsLcmOpOccId (Operations Occurrence Id) in the response header `'Location'`. Example of request content:
- POST: (Asynchronous). Undeploys a NS that it is in INSTANTIATED state. It returns the nsLcmOpOccId (Operations Occurrence Id) in the response header `'Location'`
- POST: (Asynchronous). Performs a Day-2 operation over the NS. It returns the nsLcmOpOccId (Operationts Occurence Id) in the response header `'Location'`
- Example of content to executing a primitive:
- POST: (Asynchronous). Performs a Day-2 operation over the NS. It returns the nsLcmOpOccId (Operationts Occurence Id) in the response header `'Location'`. Example of content to executing a primitive:
```yaml
member_vnf_index:str# Needed for VNFD mapping NSD.constituent-vnfd.member-vnf-index. If missing a NSD is targeting
- POST: (Asynchronous). Performs a manual scale OUT/IN over one of the VNFs of the NS. It returns the nsLcmOpOccId (Operationts Occurence Id) in the response header `'Location'`
- Example of content:
- POST: (Asynchronous). Performs a manual scale OUT/IN over one of the VNFs of the NS. It returns the nsLcmOpOccId (Operationts Occurence Id) in the response header `'Location'`. Example of content:
- GET: Show details of a concrete Network Slice Instance
- DELETE: (Asynchronous) Terminates (or _`undeploy`_) and deletes (if termination is done successfully) a Network Slice Instance Record
@@ -557,16 +626,16 @@ netslice-vld:
- GET: Obtain the list of Network Slice Instances
- POST: Create the Network Slice Instance but do not instantiate it. It returns the netsliceInstanceId in the response header `'Location'`. Example of request content: Same content as section [NSILCM Details /nsilcm/v1/netslice_instances_content](#nsilcm-details)
- POST: (Asynchronous). Deploys a Network Slice Instance that it is in `NOT_INSTANTIATED` state. It returns the `nsiLcmOpOccId` (Operations Occurrence Id) in the response header 'Location'. Example of request content: Same content as section [NSILCM Details /nsilcm/v1/netslice_instances_content](#nsilcm-details)
- POST: (Asynchronous). Undeploys a Network Slice Instance that it is in `INSTANTIATED` state. It returns the `nsLcmOpOccId` (Operations Occurrence Id) in the response header `'Location'`
@@ -574,6 +643,6 @@ netslice-vld:
- GET: Obtain the list of Network Slice Instances operations. It may be useful filtering by a concrete NSI with `'?netsliceInstanceId=<netsliceInstanceId>'`