VF-C: Resource Management Definition

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