Resource Management API Swagger Definition
swagger: '2.0'
info:
  title: Resource Management API
  description: Resource Management API
  version: "1.0.0"
host: vfc.onap.org
schemes:
  - https
  - http
basePath: /api/resmgr/v1.0
paths:
  /grantVNFLifeCycleOperation:
    put:
      summary: Grant VNF Life Cycle Operation
      description: Grant Resource
      consumes:
        - application/json
      produces:
        - application/json
      parameters:
        - in: body
          name: ONAP VFC
          description: ONAP Interface.
          required: true
          schema:
            $ref: '#/definitions/VnfResource'
      responses:
        201:
          description: VNF Resource Response
          schema:
            $ref: '#/definitions/VnfResourceResponse'
        401:
          description: Unauthorized
        404:
          description: VNF Resource Not Found
        500:
          description: VNF resource failed to process the request
          schema:
            $ref: '#/definitions/Error'
            
  /vl:
    put:
      summary: Create virtual link resource
      description: virtual link Resource
      consumes:
        - application/json
      produces:
        - application/json
      parameters:
        - in: body
          name: ONAP
          description: ONAP Interface.
          required: true
          schema:
            $ref: '#/definitions/VirtualLink'
      responses:
        202:
          description: Successfully Created VNF Resource
          schema:
            $ref: '#/definitions/VirtualLinkResponse'
        401:
          description: Unauthorized
        404:
          description: VNF Resource Not Found
        500:
          description: VNF resource failed to process the request
          schema:
            $ref: '#/definitions/Error'  
  /vl/{id}:
    put:
      summary: Delete virtual link resource
      description: Delete virtual link Resource
      consumes:
        - application/json
      produces:
        - application/json
      parameters:
        - name: id
          in: path
          description: VNF Resource Id
          required: true
          type: string
      responses:
        200:
          description: Successfully Deleted VNF Resource
        401:
          description: Unauthorized
        404:
          description: VNF Resource Not Found
        500:
          description: VNF resource failed to process the request
          schema:
            $ref: '#/definitions/Error'

  /vnf:
    put:
      summary: Create VNF instance resource
      description: Create VNF Resource
      consumes:
        - application/json
      produces:
        - application/json
      parameters:
        - in: body
          name: ONAP
          description: ONAP Interface.
          required: true
          schema:
            $ref: '#/definitions/CreateVNFResource'
      responses:
        201:
          description: Successfully Created VNF Resource
          schema:
            $ref: '#/definitions/CreateVNFResponse'
        401:
          description: Unauthorized
        404:
          description: VNF Resource Not Found
        500:
          description: VNF resource failed to process the request
          schema:
            $ref: '#/definitions/Error'             
 
  /vnfinfo:
    put:
      summary: Write VNF status information
      description: VNF Status
      consumes:
        - application/json
      produces:
        - application/json
      parameters:
        - in: body
          name: ONAP
          description: ONAP Interface.
          required: true
          schema:
            $ref: '#/definitions/VNFStatusInfo'
      responses:
        201:
          description: Successfully write VNF status
        401:
          description: Unauthorized
        404:
          description: VNF Resource Not Found
        500:
          description: VNF resource failed to process the request
          schema:
            $ref: '#/definitions/Error'             
 
  /vnfdetailinfo:
    put:
      summary: Write VNF detail information
      description: VNF detail info
      consumes:
        - application/json
      produces:
        - application/json
      parameters:
        - in: body
          name: ONAP
          description: ONAP Interface
          required: true
          schema:
            $ref: '#/definitions/VNFDetailInfo'
      responses:
        201:
          description: Successfully write VNF detail Info
        401:
          description: Unauthorized
        404:
          description: VNF Resource Not Found
        500:
          description: VNF resource failed to process the request
          schema:
            $ref: '#/definitions/Error'
 
definitions:

  VirtualLinkResponse:
    type: object
    description: Virtual Link Response.
    required:
      - Id
      - Name
    properties:
      Id:
        type: string
        description: Identifier of VL.
      Name:
        type: string
        description: Name of VL.   
  
  CreateVNFResponse:
    type: object
    description: Create VNF Response.
    required:
      - Id
      - Name
    properties:
      Id:
        type: string
        description: UUID.
      Name:
        type: string
        description: Instance Name.   
  
  VNFDetailInfo:
    type: object
    description: List of Vm to be added or deleted
    required:
      - vnfInstanceId
      - nsId
      - vnfmId
      - Vms
    properties:
      vnfInstanceId:
        type: string
        description: The id of VNF instance
      nsId:
        type: string
        description: NS ID
      vnfmId:
        type: string
        description: VNFM ID
      Vms:
        type: array
        items:
             $ref: '#/definitions/Vm'
  
  VNFStatusInfo:
    type: object
    description: Write VNF Status.
    required:
      - vnfInstanceId
      - jobId
      - nsId
      - vnfmId
      - responseDescriptor
      - status
      - progress
      - sStatusDescription
      - errorCode
      - responseId
      - responseHistoryList
      - addVm
      - delVm
    properties:
      vnfInstanceId:
        type: string
        description: The Id of VNF Instance.
      jobId:
        type: string
        description: The ID of workflow.
      nsId:
        type: string
        description: NS ID.
      vnfmId:
        type: string
        description: The VNFM ID. 
      responseDescriptor:
        type: string
        description: The name of VNFM.
      status:
        type: string
        description: Status of VNF - started processing finished error.
      progress:
        type: integer
        description: progress (1-100).
      sStatusDescription:
        type: string
        description: current Progress Description.
      errorCode:
        type: integer
        description: Error code. 
      responseId:
        type: integer
        description: Message Number.
      responseHistoryList:
        type: array
        items:
             $ref: '#/definitions/progressInfo'
      addVm:
       type: array
       items:
             $ref: '#/definitions/Vm'
      delVm:
       type: array
       items:
             $ref: '#/definitions/Vm'
  
  
  progressInfo:
    type: object
    description: List of Vm to be added or deleted
    required:
      - progress
      - status
      - statusDescription
      - errorCode
      - responseId
      - responseHistoryList
    properties:
      progress:
        type: integer
        description: progress (1 - 100)
      status:
        type: string
        description: status
      statusDescription:
        type: string
        description: status description
      errorCode:
        type: integer
        description: Error Code
      responseId:
        type: integer
        description: Id
      responseHistoryList:
        type: array
        items:
             $ref: '#/definitions/historyInfo'
  
  historyInfo:
    type: object
    description: List of Vm to be added or deleted
    required:
      - progress
      - status
      - statusDescription
      - errorCode
      - responseId
    properties:
      progress:
        type: integer
        description: progress (1 - 100)
      status:
        type: string
        description: status
      statusDescription:
        type: string
        description: status description
      errorCode:
        type: integer
        description: Error Code
      responseId:
        type: integer
        description: Id
  
  Vm:
    type: object
    description: List of Vm to be added or deleted
    required:
      - vmId
      - vmName
      - vmStatus
    properties:
      vmId:
        type: string
        description: The ID of VM
      vmName:
        type: string
        description: The name of VM
      vmStatus:
        type: string
        description: The Status of VM
  
  
  CreateVNFResource:
    type: object
    description: Create VNF Resource.
    required:
      - vnfInstanceId
      - vnfInstanceName
      - nsId
      - nsName
      - vnfmId
      - vnfmName
      - vnfPackageName
      - vnfDescriptorName
      - vimId
      - vimName
      - vimTenant
      - jobId
      - vnfStatus
      - vnfType
      - maxVm
      - maxCpu
      - maxDisk
      - maxRam
      - maxShd
      - maxNet
    properties:
      vnfInstanceId:
        type: string
        description: The Identifier of VNF Instance.
      vnfInstanceName:
        type: string
        description: The name of VNF.
      nsId:
        type: string
        description: NS ID.
      nsName:
        type: string
        description: NS name.
      vnfmId:
        type: string
        description: The ID of VNFM. 
      vnfmName:
        type: string
        description: The name of VNFM.
      vnfPackageName:
        type: string
        description: The description of VNF Package.
      vnfDescriptorName:
        type: string
        description: The Description of VNFD.
      vimId:
        type: string
        description: Vim ID.
      vimName:
        type: string
        description: The Name of VIM. 
      vimTenant:
        type: string
        description: The tenant of VIM.
      jobId:
        type: string
        description: The ID of workflow.
      vnfStatus:
        type: string
        description: The status of VNF.
      vnfType:
        type: string
        description: The type of VNF.
      maxVm:
        type: integer
        description: Max Vm in this VNF.
      maxCpu:
        type: integer
        description: Max CPU in this VNF.
      maxDisk:
        type: integer
        description: Max Disk in this VNF.
      maxRam:
        type: integer
        description: Max Memory in this VNF.
      maxShd:
        type: integer
        description: Max Share Disk in this VNF.
      maxNet:
        type: integer
        description: Max logical Network in this VNF.
        
  VirtualLink:
    type: object
    description: Virtual Link Resource.
    required:
      - name
      - backendId
      - isPublic
      - dcName
      - vimId
      - vimName
      - physicialNet
      - nsId
      - nsName
      - description
      - networkType
      - segmentation
      - mtu
      - vlanTransparent
      - routerExternal
      - resourceProviderType
      - resourceProviderId
    properties:
      name:
        type: string
        description: Logical Network Name.
      backendId:
        type: string
        description: The backend id on VIM.
      isPublic:
        type: string
        description: Sharable - True or False.
      dcName:
        type: string
        description: The DataCenter name.
      vimId:
        type: string
        description: vim Id. 
      vimName:
        type: string
        description: The name of VIM.
      physicialNet:
        type: string
        description: Physicial Network.
      nsId:
        type: string
        description: NsId.
      nsName:
        type: string
        description: The name of NS.
      description:
        type: string
        description: Description. 
      networkType:
        type: string
        description: Network Type - gre/vlan/vxlan.
      segmentation:
        type: string
        description: Segmentation Id just like vlan id.
      mtu:
        type: string
        description: MTU value.
      vlanTransparent:
        type: string
        description: Support vlan transparent- True/False.
      routerExternal:
        type: string
        description: Support External Router - True / False.
      resourceProviderType:
        type: string
        description: The location to be deployed in one of the list - VIM/DC/Zone/Host.
      resourceProviderId:
        type: string
        description: The location ID to be deployed.
      
  VnfResourceResponse:
    type: object
    description: Resource Response.
    required:
      - vim
      - reservationIdCompute
      - reservationIdNetwork
      - reservationIdStorage
      - addResource
      - tempResource
      - removeResource
      - updateResource
    properties:
      vim:
        $ref: '#/definitions/VimInfo'
      reservationIdCompute:
        type: string
        description: Information that identifies a reservation applicable to the compute resource requirements of the corresponding Grant request
      reservationIdNetwork:
        type: string
        description: Information that identifies a reservation applicable to the network resource requirements of the corresponding Grant request
      reservationIdStorage:
        type: string
        description: Information that identifies a reservation applicable to the storage resource requirements of the corresponding Grant request
      addResource:
        $ref: '#/definitions/GrantInfo'
      tempResource:
        $ref: '#/definitions/GrantInfo'
      removeResource:
        $ref: '#/definitions/GrantInfo'
      updateResource:
        $ref: '#/definitions/GrantInfo'
  
  VimInfo:
    type: object
    description: Information about the VIM that manages this resource.
    required:
      - vimInfoId
      - vimId
      - interfaceInfo
      - accessInfo
      - interfaceEndpoint
    properties:
      vimInfoId:
        type: string
        description: The identifier of this VimInfo instance, for the purpose of referencing it from other information elements.
      vimId:
        type: string
        description: The identifier of the VIM..
      interfaceInfo:
        $ref: '#/definitions/interfaceInfo'
      accessInfo:
        $ref: '#/definitions/accessInfo'
      interfaceEndpoint:
        type: string
        description: Information about the interface endpoint. An example is a URL. 
       
  interfaceInfo:
    type: object
    description: Information about the interface to the VIM, including VIM provider type, API version, and protocol type..
    required:
      - vimType
      - apiVersion
      - protocolType
    properties:
      vimType:
        type: string
        description: vim
      apiVersion:
        type: string
        description: api version
      protocolType:
        type: string
        description: Type of the protocol

  accessInfo:
    type: object
    description: Authentication credentials for accessing the VIM. Examples may include those to support different authentication schemes, e.g., OAuth, Token, etc..
    required:
      - tenant
      - username
      - password
    properties:
      tenant:
        type: string
        description: Tenant Name of tenant
      username:
        type: string
        description: Username for login
      password:
        type: string
        description: Password of login user
  
  GrantInfo:
    type: object
    description: Grant Information.
    required:
      - resourceDefinitionId
      - reservationId
      - vimId
      - resourceProviderId
      - zoneId
    properties:
      resourceDefinitionId:
        type: string
        description: Identifier of the related ResourceDefinition information from Grant Request
      reservationId:
        type: string
        description: Reservation Identifier applicable to the VNFC/VL.
      vimId:
        type: string
        description: Reference to the identifier of the VimInfo information element defining the VIM under whose control this resource to be placed.
      resourceProviderId:
        type: string
        description: Identifies the entity responsible for the management of the virtualized resource.
      zoneId:
        type: string
        description: Reference of the identifier of the zoneInfo information element defining the resource zone in which resource to be placed.   
  
  VnfResource:
    type: object
    description: Grant VNFLifeCycleOperation to VNF Resource.
    required:
      - vnfInstanceId
      - exvimids
      - addResource
      - removeResource
      - instantiationLevel
      - tempResource
      - updateResource
      - placementConstraint
    properties:
      vnfInstanceId:
        type: string
        description: Identifier Instance. 
      exvimids:
        type: array
        items: 
          type: string
      addResource:
        type: array
        items:
             $ref: '#/definitions/ResourceDefinition'
        description: Information sufficient to identify the VNF Descriptor which defines the VNF to be created.
      removeResource:
        type: array
        items:
             $ref: '#/definitions/ResourceDefinition' 
      instantiationLevel:
        type: string
        description: VNF instantiation level(This parameter is optional that can get it from instantiation parameter list or scaling interface, if fail, it’s useless ).
      tempResource:
        type: array
        items:
             $ref: '#/definitions/ResourceDefinition'
      updateResource:
        type: array
        items:
             $ref: '#/definitions/ResourceDefinition'
      placementConstraint:
        $ref: '#/definitions/placementConstraint' 
  
  ResourceDefinition:
    type: object
    description: List of resources to be added / deleted / updated.
    required:
      - resourceDefinitionId
      - resourceTemplate
      - type
      - vdu
    properties:
      resourceDefinitionId:
        type: string
        description: Identifier of this ResourceDefinition information element, unique at least within the scope of the Grant request.
      resourceTemplate:
        $ref: '#/definitions/ResourceTemplate'
      type:
        default: compute
        enum:
          - compute
          - VL
          - CP
          - Storage
        description: Currently only support tosca.nodes.nfv.VDU.      
      vdu:
        type: string
        description: Reference to the related Vdu applicable to this resource in the VNFD.
  
  ResourceTemplate:
     type: object
     description: Resource templates.
     required:
       - VirtualComputeDescriptor
       - VirtualStorageDescriptor
     properties:
       VirtualComputeDescriptor:
         $ref: '#/definitions/VirtualComputeDescriptor'
       VirtualStorageDescriptor:
         $ref: '#/definitions/VirtualStorageDescriptor'
  placementConstraint:
    type: object
    description: The restriction of deployment.
    required:
      - type
      - scope
      - resource
    properties:
      type:
        default: anfinity
        enum:
          - anfinity
          - anti-anfinity
        description: Currently only support tosca.nodes.nfv.VDU.
      scope:
        type: string
        description: Location of deployment Host/zone.
      resource:
        type: array
        items:
          type: string
        description: The list of resource?According scope to choose the proper id
                     resourceDefinitionId.      
  
  VirtualComputeDescriptor:
    type: object
    description: Reference to a resource template.
    required:
      - virtualCpu
      - virtualMemory
    properties:
      virtualCpu:
        type: integer
        format: int32
        description: Number of virtual CPUs
      virtualMemory:
        type: integer
        format: int32
        description: Amount of virtual Memory
        
  VirtualStorageDescriptor:
    type: object
    description: Reference to a resource template.
    required:
      - typeOfStorage
      - sizeOfStorage
      - swImageDescriptor
    properties:
      typeOfStorage:
        type: string
        description: Type of virtualized storage resource
      sizeOfStorage:
        type: integer
        format: int32
        description: Size of virtualized storage resource
      swImageDescriptor:
        type: string
        description: Software image to be loaded on the Virtual Storage
  
  Error:
    type: object
    properties:
      code:
        type: integer
        format: int32
      message:
        type: string
  • No labels