Commit a0233a67 authored by Gergely Csatari's avatar Gergely Csatari Committed by Michele Carignani
Browse files

VNF Lifecycle Operation Granting interface



Change-Id: Ieaacad72426cc2e864220427891578e9add62790
Signed-off-by: Gergely Csatari's avatarGergely Csatari <gergely.csatari@nokia.com>
parent c62cb215
......@@ -1188,7 +1188,7 @@ paths:
maximum: 1
minimum: 0
schema:
$ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOpOcc"
$ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
500:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
503:
......
......@@ -187,7 +187,7 @@ definitions:
Information about external VLs to change (e.g. connect the VNF to).
type: array
items:
$ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ExtVirtualLinkData"
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtVirtualLinkData"
vimConnectionInfo:
description: >
Information about VIM connections to be used for managing the
......@@ -196,7 +196,7 @@ definitions:
if VNF-related resource management in direct mode is applicable.
type: array
items:
$ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VimConnectionInfo"
$ref: ../../../definitions/SOL002SOL003_def.yaml#/definitions/VimConnectionInfo
additionalParams:
description: >
Additional input parameters for the instantiation process, specific
......@@ -227,13 +227,13 @@ definitions:
Information about external VLs to connect the VNF to.
type: array
items:
$ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ExtVirtualLinkData"
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtVirtualLinkData"
extManagedVirtualLinks:
description: >
Information about external VLs to connect the VNF to.
type: array
items:
$ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ExtManagedVirtualLinkData"
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtManagedVirtualLinkData"
vimConnectionInfo:
description: >
Information about VIM connections to be used for managing the
......@@ -243,7 +243,7 @@ definitions:
management in direct mode is applicable.
type: array
items:
$ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VimConnectionInfo"
$ref: ../../../definitions/SOL002SOL003_def.yaml#/definitions/VimConnectionInfo
additionalParams:
description: >
Additional input parameters for the instantiation process, specific
......@@ -336,13 +336,13 @@ definitions:
Information about external VLs to connect the VNF to.
type: array
items:
$ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ExtVirtualLinkData"
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtVirtualLinkData"
extManagedVirtualLinks:
description: >
Information about external VLs to connect the VNF to.
type: array
items:
$ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ExtManagedVirtualLinkData"
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtManagedVirtualLinkData"
vimConnectionInfo:
description: >
Information about VIM connections to be used for managing the
......@@ -352,7 +352,7 @@ definitions:
management in direct mode is applicable.
type: array
items:
$ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VimConnectionInfo"
$ref: ../../../definitions/SOL002SOL003_def.yaml#/definitions/VimConnectionInfo
localizationLanguage:
description: >
Localization language of the VNF to be instantiated. The value shall
......@@ -641,31 +641,6 @@ definitions:
authorization of notifications.
$ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/SubscriptionAuthentication"
LcmOperationType:
description: >
Value | Description
------|------------
INSTANTIATE | Represents the "Instantiate VNF" LCM operation.
SCALE | Represents the "Scale VNF" LCM operation.
SCALE_TO_LEVEL | Represents the "Scale VNF to Level" LCM operation.
CHANGE_FLAVOUR | Represents the "Change VNF Flavour" LCM operation.
TERMINATE | Represents the "Terminate VNF" LCM operation.
HEAL | Represents the "Heal VNF" LCM operation.
OPERATE | Represents the "Operate VNF" LCM operation.
CHANGE_EXT_CONN | Represents the "Change external VNF connectivity" LCM operation.
MODIFY_INFO | Represents the "Modify VNF Information" LCM operation.
type: string
enum:
- INSTANTIATE
- SCALE
- SCALE_TO_LEVEL
- CHANGE_FLAVOUR
- TERMINATE
- HEAL
- OPERATE
- CHANGE_EXT_CONN
- MODIFY_INFO
LcmOperationStateType:
description: >
Value | Description
......@@ -727,7 +702,7 @@ definitions:
otherwise.
type: array
items:
$ref: "#/definitions/LcmOperationType"
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/LcmOperationType"
operationStates:
description: >
Match particular LCM operation state values as reported in
......@@ -1277,7 +1252,7 @@ definitions:
This attribute can be modified with the PATCH method.
type: array
items:
$ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VimConnectionInfo"
$ref: ../../../definitions/SOL002SOL003_def.yaml#/definitions/VimConnectionInfo
instantiationState:
description: >
The instantiation state of the VNF.
......@@ -1407,7 +1382,7 @@ definitions:
operation:
description: >
The lifecycle management operation.
$ref: "#/definitions/LcmOperationType"
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/LcmOperationType"
isAutomaticInvocation:
description: >
Set to true if this VNF LCM operation occurrence has been triggered
......@@ -1537,7 +1512,7 @@ definitions:
description: >
Type of the actual LCM operation represented by this VNF LCM
operation occurrence.
$ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LcmOperationType"
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/LcmOperationType"
isAutomaticInvocation:
description: >
Set to true if this VNF LCM operation occurrence has been triggered
......
swagger: "2.0"
info:
version: "2.3.0"
title: SOL003
license:
name: "ETSI Forge copyright notice"
url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
basePath: "/grant/v1"
schemes:
- https
consumes:
- "application/json"
produces:
- "application/json"
paths:
###############################################################################
# Resource: Grants #
###############################################################################
'/grants':
#SOL003 location: 9.4.2
post:
description: >
The POST method requests a grant for a particular VNF lifecycle
operation.
parameters:
- name: GrantRequest
in: body
required: true
schema:
$ref: "definitions/VNFLifecycleOperationGranting_def.yaml#/definitions/GrantRequest"
- name: Accept
description: >
Content-Types that are acceptable for the response.
Reference: IETF RFC 7231
in: header
required: true
type: string
- name: Content-Type
description: >
The MIME type of the body of the request.
Reference: IETF RFC 7231
in: header
required: true
type: string
- name: Authorization
description: >
The authorization token for the request.
Reference: IETF RFC 7235
in: header
required: true
type: string
responses:
201:
description: >
The grant was created successfully (synchronous mode).
A representation of the created "Individual grant" resource shall
be returned in the response body.
The HTTP response shall include a "Location" HTTP header that
indicates the URI of the "Individual grant" resource just created.
headers:
#TODO: Add headers defined in 4.3.4.3
Content-Type:
description: The MIME type of the body of the response.
type: string
maximum: 1
minimum: 1
Location:
description: The resource URI of the created VNF instance
type: string
format: url
WWW-Authenticate:
description: >
Challenge if the corresponding HTTP request has not provided
authorization, or error details if the corresponding HTTP
request has provided an invalid authorization token.
type: string
maximum: 1
minimum: 0
schema:
$ref: "definitions/VNFLifecycleOperationGranting_def.yaml#/definitions/Grant"
202:
description: >
The request was accepted for processing, but the processing has
not been completed. It is expected to take some time to create
the grant (asynchronous mode).
The response body shall be empty.
The HTTP response shall include a "Location" HTTP header that
indicates the URI of the "Individual grant" resource that will be
created once the granting decision has been made.
headers:
#TODO: Add headers defined in 4.3.4.3
Location:
description: The resource URI of the created VNF instance
type: string
format: url
WWW-Authenticate:
description: >
Challenge if the corresponding HTTP request has not provided
authorization, or error details if the corresponding HTTP
request has provided an invalid authorization token.
type: string
maximum: 1
minimum: 0
400:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
401:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
403:
description: >
The grant was rejected.
A ProblemDetails structure shall be included in the response to
provide more details about the rejection in the "details"
attribute.
headers:
#TODO: Add headers defined in 4.3.4.3
WWW-Authenticate:
description: >
Challenge if the corresponding HTTP request has not provided
authorization, or error details if the corresponding HTTP
request has provided an invalid authorization token.
type: string
maximum: 1
minimum: 0
schema:
$ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
404:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
405:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
406:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
416:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
422:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
500:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
503:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
###############################################################################
# Resource: Individual grant #
###############################################################################
'/grants/{grantId}':
#SOL003 location: 9.4.3
parameters:
- name: grantId
description: >
Identifier of the grant.
This identifier can be retrieved from the resource referenced by the
"Location" HTTP header in the response to a POST request granting a
new VNF lifecycle operation. It can also be retrieved from the "id"
attribute in the payload body of that response.
in: path
type: string
required: true
get:
description: >
The GET method retrieves information about a subscription by reading
an individual subscription resource.
responses:
200:
description: >
The grant was read successfully.
A representation of the "individual grant" resource shall be
returned in the response body.
headers:
#TODO: Add headers defined in 4.3.4.3
Content-Type:
description: The MIME type of the body of the response.
type: string
maximum: 1
minimum: 1
WWW-Authenticate:
description: >
Challenge if the corresponding HTTP request has not provided
authorization, or error details if the corresponding HTTP
request has provided an invalid authorization token.
type: string
maximum: 1
minimum: 0
schema:
$ref: "definitions/VNFLifecycleOperationGranting_def.yaml#/definitions/Grant"
202:
description: >
The process of creating the grant is ongoing, no grant is
available yet.
The response body shall be empty.
headers:
#TODO: Add headers defined in 4.3.4.3
WWW-Authenticate:
description: >
Challenge if the corresponding HTTP request has not provided
authorization, or error details if the corresponding HTTP
request has provided an invalid authorization token.
type: string
maximum: 1
minimum: 0
400:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
401:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
403:
description: >
The grant was rejected.
A ProblemDetails structure shall be included in the response to
provide more details about the rejection in the "details"
attribute.
headers:
#TODO: Add headers defined in 4.3.4.3
WWW-Authenticate:
description: >
Challenge if the corresponding HTTP request has not provided
authorization, or error details if the corresponding HTTP
request has provided an invalid authorization token.
type: string
maximum: 1
minimum: 0
schema:
$ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
404:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
405:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
406:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
416:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
422:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
500:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
503:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
......@@ -294,46 +294,6 @@ definitions:
items:
$ref: "#/definitions/ExtLinkPort"
ExtVirtualLinkData:
#SOL003 location: 4.4.1.11
description: >
This type represents an external VL.
type: object
required:
- id
- resourceId
- extCps
properties:
id:
description: >
The identifier of the external VL instance.
$ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
vimConnectionId:
description: >
Identifier of the VIM connection to manage this resource. This
attribute shall only be supported and present if VNF-related
resource management in direct mode is applicable.
$ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
resourceProviderId:
description: >
Identifies the entity responsible for the management of this
resource. This attribute shall only be supported and present
if VNF-related resource management in indirect mode is applicable.
The identification scheme is outside the scope of the present
document.
$ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
resourceId:
description: >
The identifier of the resource in the scope of the VIM or the
resource provider.
$ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVim"
extCps:
description: >
External CPs of the VNF to be connected to this external VL.
type: array
items:
$ref: "#/definitions/VnfExtCpData"
FixedNetworkAddressData:
#SOL003 location: 4.4.1.8
description: >
......
# Copyright (c) ETSI 2017.
# https://forge.etsi.org/etsi-forge-copyright-notice.txt
definitions:
......@@ -42,6 +42,155 @@ definitions:
type: string
format: "date-time"
DynamicNetworkAddressData:
description: >
This type represents a network address that is requested to be assigned.
type: object
required:
- numIpAddresses
properties:
macAddress:
description: >
MAC address. Shall not be present if numIPAddresses > 1. If it is not
present, it will be chosen by the VIM.
type: string
#TODO: Can we describe the syntax of this (Table 4.4.2.2-1)?
numIpAddresses:
description: >
Number of IP addresses to assign dynamically. Shall be greater than
zero.
type: integer
format: uint32
subnetId:
description: >
Subnet defined by the identifier of the subnet resource in the VIM.
In case this attribute is present, an IP addresses from that subnet
will be assigned; otherwise, IP addresses not bound to a subnet
will be assigned.
At most one of "subnetId" and "subnetIpRanges" shall be present.
$ref: "#/definitions/IdentifierInVim"
subnetIpRanges:
description: >
Subnet defined as one or more IP address ranges. In case this
attribute is present, IP addresses from one of the ranges will be
assigned; otherwise, IP addresses not bound to a subnet will be
assigned.
At most one of "subnetId" and "subnetIpRanges" shall be present.
type: array
items:
type: object
properties:
minIpAddress:
description: >
Lowest IP address belonging to the range.
type: string
#TODO: Can we describe the syntax of this (Table 4.4.2.2-1)?
maxIpAddress:
description: >
Highest IP address belonging to the range.
type: string
#TODO: Can we describe the syntax of this (Table 4.4.2.2-1)?
ExtManagedVirtualLinkData:
#SOL003 location: 4.4.1.12
type: object
required:
- id
- virtualLinkDescId
- resourceId
properties:
id:
description: >
The identifier of the externally-managed internal VL instance.
$ref: "#/definitions/Identifier"
virtualLinkDescId:
description: >
The identifier of the VLD in the VNFD for this VL.
$ref: "#/definitions/IdentifierInVnfd"
vimConnectionId:
description: >
Identifier of the VIM connection to manage this resource. This
attribute shall only be supported and present if VNF-related
resource management in direct mode is applicable.
$ref: "#/definitions/Identifier"
resourceProviderId:
description: >
Identifies the entity responsible for the management of this
resource. This attribute shall only be supported and present if
VNF-related resource management in indirect mode is applicable. The
identification scheme is outside the scope of the present document.
$ref: "#/definitions/Identifier"
resourceId:
description: >
The identifier of the resource in the scope of the VIM or the
resource provider.
$ref: "#/definitions/IdentifierInVim"
ExtVirtualLinkData:
#SOL003 location: 4.4.1.11
description: >
This type represents an external VL.
type: object
required:
- id
- resourceId
- extCps
properties:
id:
description: >
The identifier of the external VL instance.
$ref: "#/definitions/Identifier"
vimConnectionId:
description: >
Identifier of the VIM connection to manage this resource. This
attribute shall only be supported and present if VNF-related
resource management in direct mode is applicable.
$ref: "#/definitions/Identifier"
resourceProviderId:
description: >
Identifies the entity responsible for the management of this
resource. This attribute shall only be supported and present
if VNF-related resource management in indirect mode is applicable.
The identification scheme is outside the scope of the present
document.
$ref: "#/definitions/Identifier"
resourceId:
description: >
The identifier of the resource in the scope of the VIM or the
resource provider.
$ref: "#/definitions/IdentifierInVim"
extCps:
description: >
External CPs of the VNF to be connected to this external VL.
type: array
items:
$ref: "#/definitions/VnfExtCpData"
FixedNetworkAddressData:
#SOL003 location: 4.4.1.8
description: >
This type represents a network address that is requested to be assigned.
type: object
properties:
macAddress:
description: >
MAC address. If it is not present, it will be chosen by the VIM.
At least one of "macAddress" and "ipAddress" shall be present.
type: string
#TODO: Is it possible to describe the scheme of this? (Table 4.4.2.2-1)
ipAddress:
description: >
IP address. If it is not present, no IP address will be assigned.
At least one of "macAddress" and "ipAddress" shall be present.
type: string
#TODO: Can we describe the syntax of this (Table 4.4.2.2-1)?
subnetId:
description: >
Identifier of the subnet in the VIM. This attribute may be present
if the "ipAddress" attribute is present, and shall be absent
otherwise.
$ref: "#/definitions/IdentifierInVim"
Identifier:
description: >
An identifier with the intention of being globally unique.
......@@ -71,6 +220,31 @@ definitions:
defined in clause 4 of IETF RFC 7159.
type: object