From 3e5073aafd514def87ae7708a086441b9c9746ab Mon Sep 17 00:00:00 2001 From: Gergely Csatari Date: Fri, 2 Feb 2018 15:13:37 +0100 Subject: [PATCH] Update to SOL003 2.4.1 and some bugfixes Udating the definitions to the 2.4.1 version of SOL003. - All interfaces are ready for review - WWW-Authenticate was removed from responses except the 401-s and in places where it is explicitly mentioned in the description - vnfInstanceIds and vnfInstanceNames added to VnfInstanceSubscriptionFilter - Inline types of VnfInstance are move to the main definition - Description of GET of Individual VNF instance fixed Change-Id: I06e16a69cc5338e39aef8d41699dea33171ed1d2 Signed-off-by: Gergely Csatari --- .../responses/VNFConfiguration_resp.yaml | 8 - .../SubscriptionAuthentication_def.yaml | 77 -- .../VnfIndicatorSubscriptionRequest_def.yaml | 2 +- .../responses/VNFIndicator_resp.yaml | 8 - .../VNFIndicatorNotification_resp.yaml | 8 - .../VNFFaultManagement.yaml | 80 +- .../responses/VNFFaultManagement_resp.yaml | 8 - .../VNFFaultManagementNotification.yaml | 58 +- src/SOL003/VNFIndicator/VNFIndicator.yaml | 74 +- .../VNFIndicatorNotification.yaml | 22 +- .../VNFLifecycleManagement.yaml | 212 +-- .../VNFLifecycleManagement_def.yaml | 1103 +--------------- .../VNFLifecycleManagement_resp.yaml | 63 +- .../VNFLifecycleManagementNotification.yaml | 40 +- ...NFLifecycleManagementNotification_def.yaml | 177 +++ .../VNFLifecycleOperationGranting.yaml | 56 +- .../VNFLifecycleOperationGranting_def.yaml | 8 +- .../VNFPackageManagement.yaml | 164 +-- .../definitions/VNFPackageManagement_def.yaml | 189 ++- .../responses/VNFPackageManagement_resp.yaml | 28 +- .../VNFPackageManagementNotification.yaml | 40 +- .../VNFPackageManagementNotification_def.yaml | 49 +- .../VNFPerformanceManagement.yaml | 130 +- .../VNFPerformanceManagement_def.yaml | 20 +- .../VNFPerformanceManagementNotification.yaml | 40 +- ...edResourcesQuotaAvailableNotification.yaml | 34 +- ...uotaAvailableNotificationNotification.yaml | 88 ++ ...AvailableNotificationNotification_def.yaml | 85 ++ src/SOL003/definitions/SOL003_def.yaml | 4 + .../SOL002SOL003VNFFaultManagement_def.yaml | 4 + .../SOL002SOL003VNFIndicator_def.yaml | 2 + ...OL002SOL003VNFLifecycleManagement_def.yaml | 1154 ++++++++++------- ...002SOL003VNFPerformanceManagement_def.yaml | 20 +- src/definitions/SOL002SOL003_def.yaml | 509 ++++++-- src/responses/SOL002SOL003_resp.yaml | 146 +-- 35 files changed, 1946 insertions(+), 2764 deletions(-) delete mode 100644 src/SOL002/VNFIndicator/definitions/SubscriptionAuthentication_def.yaml create mode 100644 src/SOL003/VNFLifecycleManagementNotification/definitions/VNFLifecycleManagementNotification_def.yaml create mode 100644 src/SOL003/VirtualisedResourcesQuotaAvailableNotificationNotification/VirtualisedResourcesQuotaAvailableNotificationNotification.yaml create mode 100644 src/SOL003/VirtualisedResourcesQuotaAvailableNotificationNotification/definitions/VirtualisedResourcesQuotaAvailableNotificationNotification_def.yaml diff --git a/src/SOL002/VNFConfiguration/responses/VNFConfiguration_resp.yaml b/src/SOL002/VNFConfiguration/responses/VNFConfiguration_resp.yaml index 58fb74f1..305b84ef 100644 --- a/src/SOL002/VNFConfiguration/responses/VNFConfiguration_resp.yaml +++ b/src/SOL002/VNFConfiguration/responses/VNFConfiguration_resp.yaml @@ -10,13 +10,5 @@ responses: 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/SOL002SOL003_def.yaml#/definitions/ProblemDetails" diff --git a/src/SOL002/VNFIndicator/definitions/SubscriptionAuthentication_def.yaml b/src/SOL002/VNFIndicator/definitions/SubscriptionAuthentication_def.yaml deleted file mode 100644 index cf8eb818..00000000 --- a/src/SOL002/VNFIndicator/definitions/SubscriptionAuthentication_def.yaml +++ /dev/null @@ -1,77 +0,0 @@ -definitions: - - SubscriptionAuthentication: - description: > - If an API consumer requires the API producer to authorize for sending notifications to that API consumer, - it shall include in the subscription request data according to the following structure. - type: object - required: - - authType - properties: - authType: - description: > - Defines the type of Authentication/Authorization to use when sending a notification. - Permitted values: - * BASIC - * In every POST request that sends a notification, use HTTP Basic authentication with - the client credentials. - * The API producer shall pass its client credentials in every POST request that sends a - notification, as defined in IETF RFC 7617. - * NOTE: The clientId and clientPassword passed in a subscription shall not be the same as the - clientId and clientPassword that are used to obtain authorization for API requests. - Client credentials may differ between subscriptions. The value of clientPassword should be - generated by a random process. - * OAUTH2_CLIENT_CREDENTIALS - * In every POST request that sends a notification, use an - OAuth 2.0 Bearer token, obtained using the client credentials grant type. - * The API producer shall, prior to sending any notification, obtain an access token from - the token endpoint using the OAuth 2.0 client credentials grant type as defined in - IETF RFC 6749. The API consumer should include expiry information with the token response. - * The API producer shall include that access token as a Bearer token in every POST request - that sends a notification (according to IETF RFC 6750). - * If the access token is expired, the API consumer shall reject the notification. In that case, - the API producer shall obtain a new access token, and repeat sending the notification. - * If the token expiry time is known to the API producer, it may obtain proactively a new access token. - type: string - enum: - - BASIC - - OAUTH2_CLIENT_CREDENTIALS - paramsBasic: - description: > - Parameters for authentication/authorization using BASIC. Shall be present if authType is "BASIC" and - the contained information has not been provisioned out of band. Shall be absent otherwise. - type: object - properties: - userName: - description: > - Username to be used in HTTP Basic authentication. Shall be present if it has not been provisioned - out of band. - type: string - password: - description: > - Password to be used in HTTP Basic authentication. Shall be present if it has not been provisioned - out of band. - type: string - paramsOauth2Client Credentials: - description: > - Parameters for authentication/authorization using OAUTH2_CLIENT_CREDENTIALS. Shall be present if - authType is "OAUTH2_CLIENT_CREDENTIALS" and the contained information has not been provisioned - out of band. Shall be absent otherwise. - type: object - properties: - clientId: - description: > - Client identifier to be used in the access token request of the OAuth 2.0 client credentials - grant type. Shall be present if it has not been provisioned out of band. See NOTE. - type: string - clientPassword: - description: > - Client password to be used in the access token request of the OAuth 2.0 client credentials - grant type. Shall be present if it has not been provisioned out of band. See NOTE. - type: string - tokenEndpoint: - description: > - The token endpoint from which the access token can be obtained. Shall be present if it has - not been provisioned out of band. - type: string - format: URI diff --git a/src/SOL002/VNFIndicator/definitions/VnfIndicatorSubscriptionRequest_def.yaml b/src/SOL002/VNFIndicator/definitions/VnfIndicatorSubscriptionRequest_def.yaml index 15826b38..fc7b2b15 100644 --- a/src/SOL002/VNFIndicator/definitions/VnfIndicatorSubscriptionRequest_def.yaml +++ b/src/SOL002/VNFIndicator/definitions/VnfIndicatorSubscriptionRequest_def.yaml @@ -23,5 +23,5 @@ definitions: Authentication parameters to configure the use of Authorization when sending notifications corresponding to this subscription. This attribute shall only be present if the subscriber requires authorization of notifications. - $ref: 'SubscriptionAuthentication_def.yaml#/definitions/SubscriptionAuthentication' + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/SubscriptionAuthentication" \ No newline at end of file diff --git a/src/SOL002/VNFIndicator/responses/VNFIndicator_resp.yaml b/src/SOL002/VNFIndicator/responses/VNFIndicator_resp.yaml index 58fb74f1..305b84ef 100644 --- a/src/SOL002/VNFIndicator/responses/VNFIndicator_resp.yaml +++ b/src/SOL002/VNFIndicator/responses/VNFIndicator_resp.yaml @@ -10,13 +10,5 @@ responses: 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/SOL002SOL003_def.yaml#/definitions/ProblemDetails" diff --git a/src/SOL002/VNFIndicatorNotification/responses/VNFIndicatorNotification_resp.yaml b/src/SOL002/VNFIndicatorNotification/responses/VNFIndicatorNotification_resp.yaml index 58fb74f1..305b84ef 100644 --- a/src/SOL002/VNFIndicatorNotification/responses/VNFIndicatorNotification_resp.yaml +++ b/src/SOL002/VNFIndicatorNotification/responses/VNFIndicatorNotification_resp.yaml @@ -10,13 +10,5 @@ responses: 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/SOL002SOL003_def.yaml#/definitions/ProblemDetails" diff --git a/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml b/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml index 3abbd05f..c69c52d1 100644 --- a/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml +++ b/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml @@ -1,7 +1,7 @@ swagger: "2.0" info: - version: "2.3.1" + version: "2.3.4" title: DRAFT - SOL003 - VNF Fault Management interface description: > DRAFT - SOL003 - VNF Fault Management interface @@ -9,7 +9,7 @@ info: version of the ETSI Group Specification it refers to and has not been approved by the ETSI NFV ISG. In case of discrepancies the published ETSI Group Specification takes precedence. - Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution=--- + Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution= license: name: "ETSI Forge copyright notice" url: https://forge.etsi.org/etsi-forge-copyright-notice.txt @@ -69,14 +69,6 @@ paths: 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/SOL003_def.yaml#/definitions/Alarm" 400: @@ -149,14 +141,6 @@ paths: 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/SOL003_def.yaml#/definitions/Alarm" 400: @@ -192,11 +176,13 @@ paths: type: string - name: Content-Type description: > - The MIME type of the body of the request. - Reference: IETF RFC 7231 + The Content-Type header shall be set to + "application/merge-patch+json" according to + IETF RFC 7396. in: header required: true type: string + enum: ["application/merge-patch+json"] - name: Authorization description: > The authorization token for the request. @@ -218,14 +204,6 @@ paths: 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/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/AlarmModifications" 400: @@ -249,11 +227,21 @@ paths: ############################################################################### # Subscriptions # ############################################################################### - '/alarms/subscriptions': + '/subscriptions': #SOL003 location: 7.4.4 post: description: > The POST method creates a new subscription. + Creation of two subscription resources with the same callbackURI and + the same filter can result in performance degradation and will + provide duplicates of notifications to the NFVO, and might make sense + only in very rare use cases. Consequently, the VNFM may either allow + creating a subscription resource if another subscription resource with + the same filter and callbackUri already exists (in which case it shall + return the “201 Created” response code), or may decide to not create a + duplicate subscription resource (in which case it shall return a + “303 See Other” response code referencing the existing subscription + resource with the same filter and callbackUri). parameters: - name: FmSubscriptionRequest description: The VNF creation parameters @@ -302,16 +290,10 @@ paths: The resource URI of the created subscription resource. 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/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/FmSubscription" + 303: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/303" 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: @@ -367,14 +349,6 @@ paths: 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/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/FmSubscription" 400: @@ -449,14 +423,6 @@ paths: 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/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/FmSubscription" 400: @@ -497,14 +463,6 @@ paths: 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 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: diff --git a/src/SOL003/VNFFaultManagement/responses/VNFFaultManagement_resp.yaml b/src/SOL003/VNFFaultManagement/responses/VNFFaultManagement_resp.yaml index 714c3491..65c775a8 100644 --- a/src/SOL003/VNFFaultManagement/responses/VNFFaultManagement_resp.yaml +++ b/src/SOL003/VNFFaultManagement/responses/VNFFaultManagement_resp.yaml @@ -14,13 +14,5 @@ responses: 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/SOL002SOL003_def.yaml#/definitions/ProblemDetails" diff --git a/src/SOL003/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml b/src/SOL003/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml index e4bc8e43..0eae92b0 100644 --- a/src/SOL003/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml +++ b/src/SOL003/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml @@ -1,7 +1,7 @@ swagger: "2.0" info: - version: "2.3.1" + version: "2.3.4" title: DRAFT - SOL003 - VNF Fault Management Notification interface description: > DRAFT - SOL003 - VNF Fault Management Notification interface @@ -9,7 +9,7 @@ info: version of the ETSI Group Specification it refers to and has not been approved by the ETSI NFV ISG. In case of discrepancies the published ETSI Group Specification takes precedence. - Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution=--- + Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution= license: name: "ETSI Forge copyright notice" url: https://forge.etsi.org/etsi-forge-copyright-notice.txt @@ -49,15 +49,6 @@ paths: description: > The notification was delivered successfully. The response body shall be empty. - headers: - 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: @@ -81,15 +72,6 @@ paths: description: > The notification endpoint was tested successfully. The response body shall be empty. - headers: - 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: @@ -126,15 +108,6 @@ paths: description: > The notification was delivered successfully. The response body shall be empty. - headers: - 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: @@ -158,15 +131,6 @@ paths: description: > The notification endpoint was tested successfully. The response body shall be empty. - headers: - 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: @@ -203,15 +167,6 @@ paths: description: > The notification was delivered successfully. The response body shall be empty. - headers: - 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: @@ -235,15 +190,6 @@ paths: description: > The notification endpoint was tested successfully. The response body shall be empty. - headers: - 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: diff --git a/src/SOL003/VNFIndicator/VNFIndicator.yaml b/src/SOL003/VNFIndicator/VNFIndicator.yaml index 4dc57d0d..f257a023 100644 --- a/src/SOL003/VNFIndicator/VNFIndicator.yaml +++ b/src/SOL003/VNFIndicator/VNFIndicator.yaml @@ -1,7 +1,7 @@ swagger: "2.0" info: - version: "2.3.1" + version: "2.3.4" title: DRAFT - SOL003 - VNF Indicator interface description: > DRAFT - SOL003 - VNF Indicator interface @@ -9,7 +9,7 @@ info: version of the ETSI Group Specification it refers to and has not been approved by the ETSI NFV ISG. In case of discrepancies the published ETSI Group Specification takes precedence. - Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution=--- + Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution= license: name: "ETSI Forge copyright notice" url: https://forge.etsi.org/etsi-forge-copyright-notice.txt @@ -69,14 +69,6 @@ paths: 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: type: array items: @@ -152,14 +144,6 @@ paths: 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: type: array items: @@ -242,14 +226,6 @@ paths: 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/SOL002SOL003VNFIndicator_def.yaml#/definitions/VnfIndicator" 400: @@ -270,10 +246,19 @@ paths: # Subscriptions # ############################################################################### '/subscriptions': - #SOL003 location: 8.4.5 post: description: > The POST method creates a new subscription. + Creation of two subscription resources with the same callbackURI and + the same filter can result in performance degradation and will provide + duplicates of notifications to the NFVO, and might make sense only in + very rare use cases. Consequently, the VNFM may either allow creating + a subscription resource if another subscription resource with the same + filter and callbackUri already exists (in which case it shall return + the “201 Created” response code), or may decide to not create a + duplicate subscription resource (in which case it shall return a + “303 See Other” response code referencing the existing subscription + resource with the same filter and callbackUri). parameters: - name: VnfIndicatorSubscriptionRequest description: Details of the subscription to be created. @@ -322,18 +307,12 @@ paths: 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: type: array items: $ref: "../../definitions/SOL002SOL003VNFIndicator_def.yaml#/definitions/VnfIndicatorSubscription" + 303: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/303" 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: @@ -394,14 +373,6 @@ paths: 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: type: array items: @@ -475,14 +446,6 @@ paths: 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/SOL002SOL003VNFIndicator_def.yaml#/definitions/VnfIndicatorSubscription" 400: @@ -515,15 +478,6 @@ paths: description: > The subscription resource was deleted successfully. The response body shall be empty. - headers: - 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: diff --git a/src/SOL003/VNFIndicatorNotification/VNFIndicatorNotification.yaml b/src/SOL003/VNFIndicatorNotification/VNFIndicatorNotification.yaml index 9111146e..790fdb9d 100644 --- a/src/SOL003/VNFIndicatorNotification/VNFIndicatorNotification.yaml +++ b/src/SOL003/VNFIndicatorNotification/VNFIndicatorNotification.yaml @@ -1,7 +1,7 @@ swagger: "2.0" info: - version: "2.3.1" + version: "2.3.4" title: DRAFT - SOL003 - VNF Indicator Notification interface description: > DRAFT - SOL003 - VNF Indicator Notification interface @@ -9,7 +9,7 @@ info: version of the ETSI Group Specification it refers to and has not been approved by the ETSI NFV ISG. In case of discrepancies the published ETSI Group Specification takes precedence. - Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution=--- + Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution= license: name: "ETSI Forge copyright notice" url: https://forge.etsi.org/etsi-forge-copyright-notice.txt @@ -49,15 +49,6 @@ paths: description: > The notification was delivered successfully. The response body shall be empty. - headers: - 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: @@ -81,15 +72,6 @@ paths: description: > The notification endpoint was tested successfully. The response body shall be empty. - headers: - 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: diff --git a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml index 614783dc..a1389d0a 100644 --- a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -1,7 +1,7 @@ swagger: "2.0" info: - version: "2.3.1" + version: "2.4.1" title: DRAFT - SOL003 - VNF Lifecycle Management interface description: > DRAFT - SOL003 - VNF Lifecycle Management interface definition @@ -9,7 +9,7 @@ info: version of the ETSI Group Specification it refers to and has not been approved by the ETSI NFV ISG. In case of discrepancies the published ETSI Group Specification takes precedence. - Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution=--- + Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution= license: name: "ETSI Forge copyright notice" url: https://forge.etsi.org/etsi-forge-copyright-notice.txt @@ -77,16 +77,8 @@ paths: 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/VNFLifecycleManagement_def.yaml#/definitions/VnfInstance" + $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfInstance" 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: @@ -139,18 +131,10 @@ paths: 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: type: array items: - $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/VnfInstance" + $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfInstance" 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400-attr-selector" 401: @@ -189,7 +173,8 @@ paths: required: true get: description: > - Information about an individual VNF instance was queried successfully. + The GET method retrieves information about a VNF instance by reading + an individual VNF instance resource. responses: 200: description: > @@ -202,16 +187,8 @@ paths: 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/VNFLifecycleManagement_def.yaml#/definitions/VnfInstance" + $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfInstance" 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: @@ -242,15 +219,24 @@ paths: managed by the VNFM, and are reflected in the representation of this resource parameters: - - name: vnfInfoModifications - description: Input parameters for VNF info modification + - name: VnfInfoModificationRequest + description: > + Input parameters for VNF info modification. required: true in: body schema: - $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfInfoModifications" + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/VnfInfoModificationRequest" + - name: Content-Type + description: > + The Content-Type header shall be set to + "application/merge-patch+json" according to IETF RFC 7396. + in: header + required: true + type: string + enum: ["application/merge-patch+json"] responses: 202: - $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/202-with-Location" + $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/202-with-Location-empty" 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400-attr-selector" 401: @@ -281,15 +267,6 @@ paths: The VNF instance resource and the associated VNF identifier were deleted successfully. The response body shall be empty. - headers: - 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-attr-selector" 401: @@ -349,16 +326,8 @@ paths: 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/VNFLifecycleManagement_def.yaml#/definitions/VnfInstance" + $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfInstance" 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: @@ -405,16 +374,8 @@ paths: 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/VNFLifecycleManagement_def.yaml#/definitions/VnfInstance" + $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfInstance" 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: @@ -445,12 +406,12 @@ paths: managed by the VNFM, and are reflected in the representation of this resource parameters: - - name: vnfInfoModifications + - name: VnfInfoModificationRequest description: Input parameters for VNF info modification required: true in: body schema: - $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfInfoModifications" + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/VnfInfoModificationRequest" - name: vnfInstanceId description: > Identifier of the VNF instance. This identifier can be retrieved from @@ -505,15 +466,6 @@ paths: The VNF instance resource and the associated VNF identifier were deleted successfully. The response body shall be empty. - headers: - 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-attr-selector" 401: @@ -572,7 +524,7 @@ paths: 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" 404: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404-task-not-suported" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404-task-resource-not-exists" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 406: @@ -621,7 +573,7 @@ paths: 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" 404: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404-task-not-suported" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404-task-resource-not-exists" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 406: @@ -669,7 +621,7 @@ paths: 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" 404: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404-task-not-suported" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404-task-resource-not-exists" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 406: @@ -763,7 +715,7 @@ paths: 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" 404: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404-task-not-suported" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404-task-resource-not-exists" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 406: @@ -810,7 +762,7 @@ paths: 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" 404: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404-task-not-suported" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404-task-resource-not-exists" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 406: @@ -824,7 +776,7 @@ paths: ############################################################################### # Change external VNF connectivity task # ############################################################################### - '/vnf_instances/{vnfInstanceId}/change_ext_vls': + '/vnf_instances/{vnfInstanceId}/change_ext_conn': #SOL003 location: 5.4.9.2 parameters: - name: vnfInstanceId @@ -893,14 +845,6 @@ paths: 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/VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOpOcc" 400: @@ -957,14 +901,6 @@ paths: 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/VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOpOcc" 400: @@ -1017,7 +953,7 @@ paths: 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" 404: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404-task-not-suported-VNF-LCM" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404-task-resource-not-exists-VNF-LCM" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 406: @@ -1060,7 +996,7 @@ paths: 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" 404: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404-task-not-suported-VNF-LCM" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404-task-resource-not-exists-VNF-LCM" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 406: @@ -1105,14 +1041,6 @@ paths: 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/VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOpOcc" 400: @@ -1122,7 +1050,7 @@ paths: 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" 404: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404-task-not-suported-VNF-LCM" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404-task-resource-not-exists-VNF-LCM" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 406: @@ -1166,7 +1094,7 @@ paths: 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" 404: - $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404-task-not-suported-VNF-LCM" + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404-task-resource-not-exists-VNF-LCM" 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 406: @@ -1186,14 +1114,6 @@ paths: 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/SOL002SOL003_def.yaml#/definitions/ProblemDetails" 500: @@ -1208,6 +1128,16 @@ paths: post: description: > The POST method creates a new subscription. + Creation of two subscription resources with the same callbackURI and + the same filter can result in performance degradation and will provide + duplicates of notifications to the NFVO, and might make sense only in + very rare use cases. Consequently, the VNFM may either allow creating + a subscription resource if another subscription resource with the same + filter and callbackUri already exists (in which case it shall return + the “201 Created” response code), or may decide to not create a + duplicate subscription resource (in which case it shall return a + “303 See Other” response code referencing the existing subscription + resource with the same filter and callbackUri). parameters: - name: LccnSubscriptionRequest description: > @@ -1233,16 +1163,21 @@ paths: 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/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LccnSubscription" + 303: + description: > + A subscription with the same callbackURI and the same filter already + exists and the policy of the VNFM is to not create redundant + subscriptions. + The HTTP response shall include a "Location" HTTP header that + contains the resource URI of the existing subscription resource. + The response body shall be empty. + headers: + Location: + description: The resource URI of the created VNF instance + type: string + format: url 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: @@ -1276,14 +1211,6 @@ paths: 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/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LccnSubscription" 400: @@ -1298,14 +1225,6 @@ paths: 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/SOL002SOL003_def.yaml#/definitions/ProblemDetails" 401: @@ -1354,14 +1273,6 @@ paths: 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/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LccnSubscription" 400: @@ -1388,15 +1299,6 @@ paths: description: > The subscription resource was deleted successfully. The response body shall be empty. - headers: - 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: diff --git a/src/SOL003/VNFLifecycleManagement/definitions/VNFLifecycleManagement_def.yaml b/src/SOL003/VNFLifecycleManagement/definitions/VNFLifecycleManagement_def.yaml index 00112ec4..89893bef 100644 --- a/src/SOL003/VNFLifecycleManagement/definitions/VNFLifecycleManagement_def.yaml +++ b/src/SOL003/VNFLifecycleManagement/definitions/VNFLifecycleManagement_def.yaml @@ -2,145 +2,6 @@ # https://forge.etsi.org/etsi-forge-copyright-notice.txt definitions: - AffectedVirtualLink: - #SOL003 Location: 5.5.3.14 - description: > - This type provides information about added, deleted, modified and - temporary VLs. - type: object - required: - - id - - virtualLinkDescId - - changeType - - networkResource - properties: - id: - description: > - Identifier of the virtual link instance, identifying the applicable - "vnfVirtualLinkResourceInfo" entry in the "VnfInstance" data type. - $ref: "#/definitions/IdentifierInVnf" - virtualLinkDescId: - description: > - Identifier of the related VLD in the VNFD. - $ref: "#/definitions/IdentifierInVnfd" - changeType: - description: > - Signals the type of change. Permitted values: - * ADDED - * REMOVED - * MODIFIED - * TEMPORARY - * LINK_PORT_ADDED - * LINK_PORT_REMOVED - For a temporary resource, an AffectedVirtualLink structure exists as - long as the temporary resource exists. - type: string - enum: - - ADDED - - REMOVED - - MODIFIED - - TEMPORARY - - LINK_PORT_ADDED - - LINK_PORT_REMOVED - networkResource: - description: > - Reference to the VirtualNetwork resource. Detailed information is - (for new and modified resources) or has been (for removed - resources) available from the VIM. - $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ResourceHandle" - - AffectedVirtualStorage: - #SOL003 Location: 5.5.3.15 - description: > - This type provides information about added, deleted, modified and - temporary virtual storage resources. - type: object - required: - - id - - virtualStorageDescId - - changeType - - storageResource - properties: - id: - description: > - Identifier of the storage instance, identifying the applicable - "virtualStorageResourceInfo" entry in the "VnfInstance" data type. - $ref: "#/definitions/IdentifierInVnf" - virtualStorageDescId: - description: > - Identifier of the related VirtualStorage descriptor in the VNFD. - $ref: "#/definitions/IdentifierInVnfd" - changeType: - description: > - Signals the type of change. Permitted values: - * ADDED - * REMOVED - * MODIFIED - * TEMPORARY - For a temporary resource, an AffectedVirtualStorage structure exists - as long as the temporary resource exists. - type: string - enum: - - ADDED - - REMOVED - - MODIFIED - - TEMPORARY - storageResource: - description: > - Reference to the VirtualStorage resource. Detailed information is - (for new and modified resources) or has been (for removed - resources) available from the VIM. - $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ResourceHandle" - - AffectedVnfc: - description: > - This type provides information about added, deleted, modified and - temporary VNFCs. - type: object - required: - - id - - vduId - - changeType - - computeResource - properties: - id: - description: > - Identifier of the Vnfc instance, identifying the applicable - "vnfcResourceInfo" entry in the "VnfInstance" data type. - $ref: "#/definitions/IdentifierInVnf" - vduId: - description: > - Identifier of the related VDU in the VNFD. - $ref: "#/definitions/IdentifierInVnfd" - changeType: - description: > - Signals the type of change. Permitted values: - * ADDED - * REMOVED - * MODIFIED - * TEMPORARY - For a temporary resource, an AffectedVnfc structure exists as long - as the temporary resource exists. - type: string - enum: - - ADDED - - REMOVED - - MODIFIED - - TEMPORARY - computeResource: - description: > - Reference to the VirtualCompute resource. Detailed information is - (for new and modified resources) or has been (for removed - resources) available from the VIM. - $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ResourceHandle" - addedStorageResourceIds: - description: > - References to VirtualStorage resources that have been added. Each - value refers to a VirtualStorageResourceInfo item in the - VnfInstance that was added to the VNFC. It shall be provided if at - least one storage resource was added to the VNFC. - $ref: "#/definitions/IdentifierInVnf" - CancelMode: description: > This type represents a parameter to select the mode of cancelling an @@ -157,16 +18,25 @@ definitions: CancelModeType: description: > Cancellation mode. - GRACEFUL: The VNFM shall not start any new resource management operation - and shall wait for the ongoing resource management operations in the - underlying system, typically the VIM, to finish execution or to time - out. After that, the VNFM shall put the operation occurrence into the - FAILED_TEMP state. - FORCEFUL: The VNFM shall not start any new resource management - operation, shall cancel the ongoing resource management operations - in the underlying system, typically the VIM, and shall wait for the - cancellation to finish or to time out. After that, the VNFM shall put - the operation occurrence into the FAILED_TEMP state. + GRACEFUL: If the VNF LCM operation occurrence is in "PROCESSING" or + "ROLLING_BACK" state, the VNFM shall not start any new resource + management operation and shall wait for the ongoing resource management + operations in the underlying system, typically the VIM, to finish + execution or to time out. After that, the VNFM shall put the operation + occurrence into the FAILED_TEMP state. + If the VNF LCM operation occurrence is in "STARTING" state, the VNFM + shall not start any resource management operation and shall wait for + the granting request to finish execution or time out. After that, the + VNFM shall put the operation occurrence into the ROLLED_BACK state. + FORCEFUL: If the VNF LCM operation occurrence is in "PROCESSING" or + "ROLLING_BACK" state, the VNFM shall not start any new resource + management operation, shall cancel the ongoing resource management + operations in the underlying system, typically the VIM, and shall wait + for the cancellation to finish or to time out. After that, the VNFM + shall put the operation occurrence into the FAILED_TEMP state. + If the VNF LCM operation occurrence is in "STARTING" state, the VNFM + shall not start any resource management operation and put the operation + occurrence into the ROLLED_BACK state. type: string enum: - GRACEFUL @@ -196,7 +66,7 @@ definitions: if VNF-related resource management in direct mode is applicable. type: array items: - $ref: ../../../definitions/SOL002SOL003_def.yaml#/definitions/VimConnectionInfo + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/VimConnectionInfo" additionalParams: description: > Additional input parameters for the instantiation process, specific @@ -230,7 +100,7 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtVirtualLinkData" extManagedVirtualLinks: description: > - Information about external VLs to connect the VNF to. + Information about internal VLs that are managed by the NFVO. type: array items: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtManagedVirtualLinkData" @@ -243,7 +113,7 @@ definitions: management in direct mode is applicable. type: array items: - $ref: ../../../definitions/SOL002SOL003_def.yaml#/definitions/VimConnectionInfo + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/VimConnectionInfo" additionalParams: description: > Additional input parameters for the instantiation process, specific @@ -251,56 +121,6 @@ definitions: "InstantiateVnfOpConfig". $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - extCpInfo: - type: object - required: - - id - - cpdId - properties: - id: - description: > - Identifier of the external CP instance and the related information - instance. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" - cpdId: - description: > - Identifier of the external connection point descriptor in the VNFD. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" - addresses: - description: > - List of network addresses that have been configured (statically or - dynamically) on the CP. - type: array - items: - $ref: "#/definitions/NetworkAddressInfo" - - ExtManagedVirtualLinkInfo: - #SOL003 location: 5.5.3.3 - type: object - required: - - id - - vnfVirtualLinkDescId - properties: - id: - description: > - Identifier of the externally-managed internal VL and the related - externally-managed VL information instance. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - vnfVirtualLinkDescId: - description: > - Identifier of the VNF Virtual Link Descriptor (VLD) in the VNFD. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" - networkResource: - description: > - Reference to the VirtualNetwork resource. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ResourceHandle" - vnfLinkPorts: - description: > - Link ports of this VL. - type: array - items: - $ref: "#/definitions/VnfLinkPort" - HealVnfRequest: type: object properties: @@ -339,7 +159,7 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtVirtualLinkData" extManagedVirtualLinks: description: > - Information about external VLs to connect the VNF to. + Information about internal VLs that are managed by the NFVO. type: array items: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtManagedVirtualLinkData" @@ -352,7 +172,7 @@ definitions: management in direct mode is applicable. type: array items: - $ref: ../../../definitions/SOL002SOL003_def.yaml#/definitions/VimConnectionInfo + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/VimConnectionInfo" localizationLanguage: description: > Localization language of the VNF to be instantiated. The value shall @@ -365,192 +185,6 @@ definitions: "InstantiateVnfOpConfig". $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - InstantiatedVnfInfo: - type: object - required: - - flavourId - - vnfState - properties: - flavourId: - description: > - Identifier of the VNF deployment flavour applied to this VNF instance. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" - vnfState: - description: > - The state of the VNF instance. - $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfOperationalStateType" - scaleStatus: - description: > - Scale status of the VNF, one entry per aspect. Represents for every - scaling aspect how "big" the VNF has been scaled w.r.t. that aspect. - type: array - items: - $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ScaleInfo" - extCpInfo: - description: > - Information about the external CPs exposed by the VNF instance. - type: array - minItems: 1 - items: - $ref: "#/definitions/extCpInfo" - extVirtualLinkInfo: - description: > - Information about the external VLs the VNF instance is connected to. - type: array - items: - $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ExtVirtualLinkInfo" - extManagedVirtualLinkInfo: - description: > - External virtual links the VNF instance is connected to. - type: array - items: - $ref: "#/definitions/ExtManagedVirtualLinkInfo" - monitoringParameters: - description: > - Active monitoring parameters. - type: array - items: - $ref: "#/definitions/MonitoringParameter" - localizationLanguage: - description: > - Information about localization language of the VNF (includes e.g. - strings in the VNFD). The localization languages supported by a VNF - can be declared in the VNFD, and localization language selection can - take place at instantiation time. - The value shall comply with the format defined in IETF RFC 5646. - type: string - vnfcResourceInfo: - description: > - Information about the virtualised compute and storage resources used - by the VNFCs of the VNF instance. - type: array - items: - $ref: "#/definitions/VnfcResourceInfo" - virtualLinkResourceInfo: - description: > - Information about the virtualised network resources used by the VLs - of the VNF instance. - type: array - items: - $ref: "#/definitions/VnfVirtualLinkResourceInfo" - virtualStorageResourceInfo: - description: > - Information on the virtualised storage resource(s) used as storage for the VNF instance. - type: array - items: - $ref: "#/definitions/VirtualStorageResourceInfo" - metadata: - description: > - Additional VNF-specific metadata describing the VNF instance. - Metadata that are writeable are declared in the VNFD. - This attribute can be modified with the PATCH method. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - extensions: - description: > - VNF-specific attributes that affect the lifecycle management of this - VNF instance by the VNFM, or the lifecycle management scripts. - Extensions that are writeable are declared in the VNFD. - This attribute can be modified with the PATCH method. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - _links: - description: > - Links to resources related to this resource. - type: object - required: - - self - properties: - self: - description: URI of this resource. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" - indicators: - description: Indicators related to this VNF instance, if applicable. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" - instantiate: - description: > - Link to the "instantiate" task resource, if the related operation - is possible based on the current status of this VNF instance - resource (i.e. VNF instance in NOT_INSTANTIATED state). - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" - terminate: - description: > - Link to the "terminate" task resource, if the related operation - is possible based on the current status of this VNF instance - resource (i.e. VNF instance is in INSTANTIATED state). - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" - scale: - description: > - Link to the "scale" task resource, if the related operation is - supported for this VNF instance, and is possible based on the - current status of this VNF instance resource (i.e. VNF instance - is in INSTANTIATED state). - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" - scaleToLevel: - description: > - Link to the "scale_to_level" task resource, if the related - operation is supported for this VNF instance, and is possible - based on the current status of this VNF instance resource - (i.e. VNF instance is in INSTANTIATED state). - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" - changeFlavour: - description: > - Link to the "change_flavour" task resource, if the related - operation is supported for this VNF instance, and is possible - based on the current status of this VNF instance resource - (i.e. VNF instance is in INSTANTIATED state). - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" - heal: - description: > - Link to the "heal" task resource, if the related operation is - supported for this VNF instance, and is possible based on the - current status of this VNF instance resource - (i.e. VNF instance is in INSTANTIATED state). - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" - operate: - description: > - Link to the "operate" task resource, if the related operation is - supported for this VNF instance, and is possible based on the - current status of this VNF instance resource - (i.e. VNF instance is in INSTANTIATED state). - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" - changeExtConn: - description: > - Link to the "change_ext_conn" task resource, if the related - operation is possible based on the current status of this VNF - instance resource (i.e. VNF instance is in INSTANTIATED state). - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" - - MonitoringParameter: - type: object - required: - - id - - value - - timeStamp - properties: - id: - description: > - Identifier of the monitoring parameter defined in the VNFD. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" - name: - description: > - Human readable name of the monitoring parameter, as defined in the - VNFD. - type: string - value: - description: > - Value of the monitoring parameter known to the VNFM (e.g. obtained - for autoscaling purposes). - The type of the "value" attribute (i.e. scalar, structure (Object in - JSON), or array (of scalars, arrays or structures/Objects)) is - assumed to be defined in an external measurement specification - outside the scope of the present document. - type: object - timeStamp: - description: > - Represents the point in time when the measurement has been performed, - as known to the VNFM. - Should be formatted according to ETF RFC 3339. - type: string - LccnLinks: description: > This type represents the links to resources that a notification can @@ -714,46 +348,6 @@ definitions: items: $ref: "#/definitions/LcmOperationStateType" - NetworkAddressInfo: - description: > - This type represents information about a network address that has been assigned. - type: object - required: - - macAddress - properties: - macAddress: - description: > - Assigned MAC address. - type: string - #TODO: Can we describe the syntax of this (Table 4.4.2.2-1)? - ipAddress: - description: > - IP address. Present if an IP address was assigned. - type: string - #TODO: Can we describe the syntax of this (Table 4.4.2.2-1)? - subnetIpRanges: - description: > - IP address ranges defining the subnet in which the IP address was - assigned. May be present if the "ipAddress" attribute is present, - and shall be absent if the "ipAddress" attribute is not present. - type: array - items: - type: object - required: - - minIpAddress - - maxIpAddress - properties: - minIpAddress: - description: > - Lowest IP address belonging to the range. - type: string - format: ipaddress - maxIpAddress: - description: > - Highest IP address belonging to the range. - type: string - format: ipaddress - OperateVnfRequest: description: > This type represents request parameters for the "Operate VNF" operation. @@ -768,14 +362,32 @@ definitions: $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfOperationalStateType" stopType: description: > - It signals whether forceful or graceful stop is requested. Ignored - if changeStateTo=STARTED. + It signals whether forceful or graceful stop is requested. + The “stopType” and “gracefulStopTimeout” attributes shall be absent, + when the “changeStateTo” attribute is equal to “STARTED”. The + “gracefulStopTimeout” attribute shall be present, when the + “changeStateTo” is equal to “STOPPED” and the “stopType” attribute + is equal to “GRACEFUL”. The “gracefulStopTimeout” attribute shall be + absent, when the “changeStateTo” attribute is equal to “STOPPED” and + the “stopType” attribute is equal to “FORCEFUL”. The request shall + be treated as if the “stopType” attribute was set to ”FORCEFUL”, when + the “changeStateTo” attribute is equal to “STOPPED” and the + “stopType” attribute is absent. $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/StopType" gracefulStopTimeout: description: > The time interval (in seconds) to wait for the VNF to be taken out - of service during graceful stop, before stopping the VNF. Ignored - if changeStateTo=STARTED. + of service during graceful stop, before stopping the VNF. + The “stopType” and “gracefulStopTimeout” attributes shall be absent, + when the “changeStateTo” attribute is equal to “STARTED”. The + “gracefulStopTimeout” attribute shall be present, when the + “changeStateTo” is equal to “STOPPED” and the “stopType” attribute + is equal to “GRACEFUL”. The “gracefulStopTimeout” attribute shall be + absent, when the “changeStateTo” attribute is equal to “STOPPED” and + the “stopType” attribute is equal to “FORCEFUL”. The request shall + be treated as if the “stopType” attribute was set to ”FORCEFUL”, when + the “changeStateTo” attribute is equal to “STOPPED” and the + “stopType” attribute is absent. type: integer additionalParams: description: > @@ -877,7 +489,6 @@ definitions: enum: - FORCEFUL - GRACEFUL - TerminateVnfRequest: type: object @@ -918,554 +529,6 @@ definitions: VNFD as part of "TerminateVnfOpConfig". $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - VirtualStorageResourceInfo: - description: > - This type represents the information that allows addressing a virtualised - resource that is used by a VNF instance. - type: object - required: - - id - - virtualStorageDescId - - storageResource - properties: - id: - description: > - Identifier of this VirtualStorageResourceInfo instance. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" - virtualStorageDescId: - description: > - Identifier of the VirtualStorageDesc in the VNFD. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" - storageResource: - description: > - Reference to the VirtualStorage resource. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ResourceHandle" - reservationId: - description: > - The reservation identifier applicable to the resource. It shall be - present when an applicable reservation exists. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - metadata: - description: > - Metadata about this resource. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - - VnfcResourceInfo: - description: > - This type represents the information on virtualised compute and storage - resources used by a VNFC in a VNF instance. - type: object - required: - - id - - vduId - - computeResource - properties: - id: - description: > - Identifier of this VnfcResourceInfo instance. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" - vduId: - description: > - Reference to the applicable VDU in the VNFD. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" - computeResource: - description: > - Reference to the VirtualCompute resource. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ResourceHandle" - storageResourceIds: - description: > - References to the VirtualStorage resources. The value refers to a - VirtualStorageResourceInfo item in the VnfInstance. - type: array - items: - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" - reservationId: - description: > - The reservation identifier applicable to the resource. It shall be - present when an applicable reservation exists. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - vnfcCpInfo: - description: > - CPs of the VNFC instance. - Shall be present when that particular CP of the VNFC instance is - associated to an external CP of the VNF instance. - May be present otherwise. - type: array - items: - type: object - required: - - id - - cpdId - properties: - id: - description: > - Identifier of this VNFC CP instance and the associated array - entry. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" - cpdId: - description: > - Identifier of the VDU CPD, cpdId, in the VNFD. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" - vnfExtCpId: - description: > - When the VNFC CP is exposed as external CP of the VNF, the - identifier of this external VNF CP. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" - addresses: - description: > - List of network addresses that have been configured (statically - or dynamically) on the CP. - $ref: "#/definitions/NetworkAddressInfo" - metadata: - description: > - Metadata about this resource. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - - VnfExtCpData: - #SOL003 location: 4.4.1.10 - description: > - This type represents an external CP. - type: object - required: - - cpdId - properties: - cpdId: - description: > - The identifier of the CPD in the VNFD. - $ref: "#/definitions/IdentifierInVnfd" - fixedAddresses: - description: > - List of (fixed) network addresses that need to be configured on the - CP. This attribute shall be present if fixed addresses need to be - configured. - type: array - items: - $ref: "#/definitions/FixedNetworkAddressData" - dynamicAddresses: - description: > - List of network addresses to be assigned dynamically. This attribute - shall be present if dynamic addresses need to be configured. - type: array - items: - $ref: "#/definitions/DynamicNetworkAddressData" - - VnfIdentifierCreationNotification: - description: > - This type represents a VNF identifier creation notification, which - informs the receiver of the creation of a new VNF instance resource and - the associated VNF instance identifier. - type: object - required: - - id - - notificationType - - timeStamp - - vnfInstanceId - - _links - properties: - id: - description: > - Identifier of this notification. If a notification is sent multiple - times due to multiple subscriptions, the "id" attribute of all these - notifications shall have the same value. - $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - notificationType: - description: > - Discriminator for the different notification types. Shall be set to - "VnfIdentifierCreationNotification" for this notification type. - type: string - enum: - - VnfIdentifierCreationNotification - subscriptionId: - description: > - Identifier of the subscription that this notification relates to. - $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - timeStamp: - description: > - Date-time of the generation of the notification. - $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime" - vnfInstanceId: - description: > - The created VNF instance identifier. - $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - _links: - description: > - Links to resources related to this notification. - $ref: "#/definitions/LccnLinks" - - VnfIdentifierDeletionNotification: - description: > - This type represents a VNF identifier deletion notification, which - informs the receiver of the deletion of a new VNF instance resource and - the associated VNF instance identifier. - type: object - required: - - id - - notificationType - - timeStamp - - vnfInstanceId - - _links - properties: - id: - description: > - Identifier of this notification. If a notification is sent multiple - times due to multiple subscriptions, the "id" attribute of all these - notifications shall have the same value. - $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - notificationType: - description: > - Discriminator for the different notification types. Shall be set to - "VnfIdentifierDeletionNotification" for this notification type. - type: string - enum: - - VnfIdentifierDeletionNotification - subscriptionId: - description: > - Identifier of the subscription that this notification relates to. - $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - timeStamp: - description: > - Date-time of the generation of the notification. - $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime" - vnfInstanceId: - description: > - The deleted VNF instance identifier. - $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - _links: - description: > - Links to resources related to this notification. - $ref: "#/definitions/LccnLinks" - - VnfInfoModifications: - #SOL003 location: 5.5.2.12 - description: > - This type represents attribute modifications for an - "Individual VNF instance" resource, i.e. modifications to a resource - representation based on the "VnfInstance" data type. The attributes of - "VnfInstance" that can be modified according to the provisions in - clause 5.5.2.2 are included in the "VnfInfoModifications" data type. - type: object - properties: - vnfInstanceName: - description: > - New value of the "vnfInstanceName" attribute in "VnfInstance", or - "null" to remove the attribute. - type: string - vnfInstanceDescription: - description: > - New value of the "vnfInstanceDescription" attribute in - "VnfInstance", or "null" to remove the attribute. - type: string - onboardedVnfPkgInfoId: - description: > - New value of the "onboardedVnfPkgInfoId" attribute in "VnfInstance". - The value "null" is not permitted. - $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - vnfConfigurableProperties: - description: > - Modifications of the "vnfConfigurableProperties" attribute in - "VnfInstance". If present, these modifications shall be applied - according to the rules of JSON Merge PATCH (see IETF RFC 7396). - $ref: "#/definitions/KeyValuePairs" - metadata: - description: > - Modifications of the "metadata" attribute in "VnfInstance". If - present, these modifications shall be applied according to the rules - of JSON Merge PATCH (see IETF RFC 7396). - $ref: "#/definitions/KeyValuePairs" - extensions: - description: > - Modifications of the "extensions" attribute in "VnfInstance". If - present, these modifications shall be applied according to the rules - of JSON Merge PATCH (see IETF RFC 7396). - $ref: "#/definitions/KeyValuePairs" - vimConnectionInfo: - description: > - New content of certain entries in the "vimConnectionInfo" attribute - array in "VnfInstance", as defined below this table. - $ref: "#/definitions/VimConnectionInfo" - - VnfInstance: - #SOL003 location: 5.5.2.2 - description: > - This type represents a VNF instance. - type: object - required: - - id - - vnfdId - - vnfProvider - - vnfProductName - - vnfSoftwareVersion - - vnfdVersion - - onboardedVnfPkgInfoId - - instantiationState - properties: - id: - description: > - Identifier of the VNF instance. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - vnfInstanceName: - description: > - Name of the VNF instance. - This attribute can be modified with the PATCH method. - type: string - vnfInstanceDescription: - description: > - Human-readable description of the VNF instance. - This attribute can be modified with the PATCH method. - type: string - vnfdId: - description: > - Identifier of the VNFD on which the VNF instance is based. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - vnfProvider: - description: > - Provider of the VNF and the VNFD. The value is copied from the VNFD. - type: string - vnfProductName: - description: > - Name to identify the VNF Product. The value is copied from the VNFD. - type: string - vnfSoftwareVersion: - description: > - Software version of the VNF. The value is copied from the VNFD. - $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Version" - vnfdVersion: - description: > - Identifies the version of the VNFD. The value is copied from the VNFD. - $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Version" - onboardedVnfPkgInfoId: - description: > - Identifier of information held by the NFVO about the specific VNF - package on which the VNF is based. This identifier was allocated by the - NFVO. This attribute can be modified with the PATCHmethod. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - vnfConfigurableProperties: - description: > - Current values of the configurable properties of the VNF instance. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - vimConnectionInfo: - description: > - Information about VIM connections to be used for managing the - resources for the VNF instance. This attribute shall only be - supported and present if VNF-related resource management in direct - mode is applicable. - This attribute can be modified with the PATCH method. - type: array - items: - $ref: ../../../definitions/SOL002SOL003_def.yaml#/definitions/VimConnectionInfo - instantiationState: - description: > - The instantiation state of the VNF. - type: string - enum: - - NOT_INSTANTIATED - - INSTANTIATED - instantiatedVnfInfo: - description: > - Information specific to an instantiated VNF instance. This attribute - shall be present if the instantiateState attribute value is - INSTANTIATED. - $ref: "#/definitions/InstantiatedVnfInfo" - - vnfInstanceIds: - description: > - If present, match VNF instances with an instance identifier listed - in this attribute. - The attributes "vnfInstanceIds" and "vnfInstanceNames" are - alternatives to reference to particular VNF Instances in a filter. - They should not be used both in the same filter instance, but one - alternative should be chosen. - type: array - items: - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - - vnfInstanceNames: - description: > - If present, match VNF instances with a VNF Instance Name listed in - this attribute. - The attributes "vnfInstanceIds" and "vnfInstanceNames" are - alternatives to reference to particular VNF Instances in a filter. - They should not be used both in the same filter instance, but one - alternative should be chosen. - type: array - items: - type: string - - VnfLcmOperationOccurrenceNotification: - description: > - This type represents a VNF lifecycle management operation occurrence - notification, which informs the receiver of changes in the VNF - lifecycle caused by a VNF LCM operation occurrence. The support of the - notification is mandatory. - This notification is produced when there is a change in the VNF - lifecycle caused by a VNF LCM operation occurrence, including: - * Instantiation of the VNF - * Scaling of the VNF instance (including auto-scaling) - * Healing of the VNF instance (including auto-healing) - * Change of the state of the VNF instance (i.e. Operate VNF) - * Change of the deployment flavour of the VNF instance - * Change of the external virtual links of the VNF instance - * Termination of the VNF instance - * Modification of VNF instance information and/or VNF configurable - properties through the "PATCH" method on the "Individual VNF instance" - resource - If this is the initial notification about the start of a VNF LCM - operation occurrence, it is assumed that the notification is sent by the - VNFM before any action (including sending the grant request) is taken, - however, after acknowledging the LCM operation request to the consumer. - Due to possible race conditions, this does not guarantee that the - notification will also arrive at the NFVO before the grant request, and - after the acknowledgement of the operation. It is not an error if the - "start" notification, the grant request and the LCM operation - acknowledgment arrive out of order at the NFVO, and the NFVO shall be - able to handle such a situation. - If this is a notification about a final or intermediate result state of - a VNF LCM operation occurrence, the notification shall be sent after - all related actions of the LCM operation that led to this state have - been executed. The new state shall be set in the VnfLcmOpOcc resource - before the notification about the state change is sent. - type: object - required: - - id - - notificationType - - timeStamp - - notificationStatus - - operationState - - vnfInstanceId - - operation - - isAutomaticInvocation - - vnfLcmOpOccId - - _links - properties: - id: - description: > - Identifier of this notification. If a notification is sent multiple - times due to multiple subscriptions, the "id" attribute of all these - notifications shall have the same value. - $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - notificationType: - description: > - Discriminator for the different notification types. Shall be set to - "VnfLcmOperationOccurrenceNotification" for this notification type. - type: string - enum: - - VnfLcmOperationOccurrenceNotification - subscriptionId: - description: > - Identifier of the subscription that this notification relates to. - $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - timeStamp: - description: > - Date-time of the generation of the notification. - $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime" - notificationStatus: - description: > - Indicates whether this notification reports about the start of a - lifecycle operation or the result of a lifecycle operation. - Permitted values: - * START: Informs about the start of the VNF LCM operation - occurrence. - * RESULT: Informs about the final or intermediate result of the VNF - LCM operation occurrence. - type: string - enum: - - START - - RESULT - operationState: - description: > - The state of the VNF LCM operation occurrence. - $ref: "#/definitions/LcmOperationStateType" - vnfInstanceId: - description: > - The identifier of the VNF instance affected. - $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - operation: - description: > - The lifecycle management operation. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/LcmOperationType" - isAutomaticInvocation: - description: > - Set to true if this VNF LCM operation occurrence has been triggered - by an automated procedure inside the VNFM - (i.e. ScaleVnf / ScaleVnfToLevel triggered by auto-scale, or HealVnf - triggered by auto-heal). - Set to false otherwise. - type: boolean - vnfLcmOpOccId: - description: > - The identifier of the VNF lifecycle management operation occurrence - associated to the notification. - $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - affectedVnfcs: - description: > - Information about VNFC instances that were affected during the - lifecycle operation. - Shall be present if the "notificationStatus" is set to "RESULT" and - the operation has performed any resource modification. Shall be - absent otherwise. This attribute contains information about the - cumulative changes to virtualised resources that were performed so - far by the VNF LCM operation occurrence and by any of the error - handling procedures for that operation occurrence. - type: array - items: - $ref: "#/definitions/AffectedVnfc" - affectedVirtualLinks: - description: > - Information about VL instances that were affected during the - lifecycle operation. - Shall be present if the "notificationStatus" is set to "RESULT" and - the operation has performed any resource modification. Shall be - absent otherwise. This attribute contains information about the - cumulative changes to virtualised resources that were performed so - far by the VNF LCM operation occurrence and by any of the error - handling procedures for that operation occurrence. - type: array - items: - $ref: "#/definitions/AffectedVirtualLink" - affectedVirtualStorages: - description: > - Information about virtualised storage instances that were affected - during the lifecycle operation. - Shall be present if the "notificationStatus" is set to "RESULT" and - the operation has performed any resource modification. Shall be - absent otherwise. This attribute contains information about the - cumulative changes to virtualised resources that were performed so - far by the VNF LCM operation occurrence and by any of the error - handling procedures for that operation occurrence. - type: array - items: - $ref: "#/definitions/AffectedVirtualStorage" - changedInfo: - description: > - Information about the changed VNF instance information, including - changed VNF configurable properties. - Shall be present if the "notificationStatus" is set to "RESULT" and - the operation has performed any changes to VNF instance information, - including VNF configurable properties. - Shall be absent otherwise. - $ref: "#/definitions/VnfInfoModifications" - changedExtConnectivity: - description: > - Information about changed external connectivity, if this - notification represents the result of a lifecycle operation - occurrence. Shall be present if the "notificationStatus" is set to - "RESULT" and the "operation" is set to "CHANGE_EXT_CONN". - Shall be absent otherwise. - type: array - items: - $ref: "#/definitions/ExtVirtualLinkInfo" - error: - description: > - Details of the latest error, if one has occurred during executing - the LCM operation. Shall be present if the "operationState" - attribute is "FAILED_TEMP" or "FAILED", and shall be absent - otherwise. - $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" - _links: - description: > - Links to resources related to this notification. - $ref: "#/definitions/LccnLinks" - VnfLcmOpOcc: description: > This type represents a VNF lifecycle management operation occurrence. @@ -1534,7 +597,7 @@ definitions: * HEAL: HealVnfRequest * CHANGE_EXT_CONN: ChangeExtVnfConnectivityRequest * TERMINATE: TerminateVnfRequest - * MODIFY_INFO: VnfInfoModifications + * MODIFY_INFO: VnfInfoModificationRequest $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" isCancelPending: description: > @@ -1571,7 +634,7 @@ definitions: error or a wrongly configured subscription filter. type: array items: - $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/AffectedVnfc" + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/AffectedVnfc" affectedVirtualLinks: description: > Information about VL instances that were affected during the @@ -1654,79 +717,9 @@ definitions: currently allowed. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" - VnfLinkPort: - type: object - required: - - id - - resourceHandle - properties: - id: - description: > - Identifier of this link port as provided by the entity that has created the link port. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" - resourceHandle: - description: > - Reference to the virtualised network resource realizing this link - port. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ResourceHandle" - cpInstanceId: - description: > - Identifier of the external CP of the VNF to be connected to this link - port. - Shall be present when the link port is used for external - connectivity by the VNF. - May be present if used to reference a VNFC CP instance. - There shall be at most one link port associated with any external - connection point instance or internal connection point (i.e. VNFC CP) - instance . - The value refers to an "extCpInfo" item in the VnfInstance or a - "vnfcCpInfo" item of a "vnfcResouceInfo" item in the VnfInstance. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" - VnfOperationalStateType: type: string enum: - STARTED - STOPPED - ERROR - - VnfVirtualLinkResourceInfo: - description: > - This type represents the information that allows addressing a virtualised - resource that is used by an internal VL instance in a VNF instance. - type: object - required: - - id - - virtualLinkDescId - - networkResource - properties: - id: - description: > - Identifier of this VnfVirtualLinkResourceInfo instance. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" - virtualLinkDescId: - description: > - Identifier of the VNF Virtual Link Descriptor (VLD) in the VNFD. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" - networkResource: - description: > - Reference to the VirtualNetwork resource. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ResourceHandle" - reservationId: - description: > - The reservation identifier applicable to the resource. It shall be - present when an applicable reservation exists. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - vnfLinkPorts: - description: > - Links ports of this VL. - Shall be present when the linkPort is used for external connectivity - by the VNF (refer to VnfLinkPort). - May be present otherwise. - type: array - items: - $ref: "#/definitions/VnfLinkPort" - metadata: - description: > - Metadata about this resource. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" diff --git a/src/SOL003/VNFLifecycleManagement/responses/VNFLifecycleManagement_resp.yaml b/src/SOL003/VNFLifecycleManagement/responses/VNFLifecycleManagement_resp.yaml index 9370a1d9..21a3b453 100644 --- a/src/SOL003/VNFLifecycleManagement/responses/VNFLifecycleManagement_resp.yaml +++ b/src/SOL003/VNFLifecycleManagement/responses/VNFLifecycleManagement_resp.yaml @@ -16,16 +16,21 @@ responses: 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/VNFLifecycleManagement_def.yaml#/definitions/VnfInstance" + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfInstance" + 202-with-Location-empty: + description: > + The request was accepted for processing, but the processing has not + been completed. On success, the HTTP response shall include a + "Location" HTTP header that contains the URI of the newly-created + "VNF LCM operation occurrence" resource corresponding to the + operation. + The response body shall be empty. + headers: + Location: + description: The resource URI of the created VNF instance + type: string + format: url 409-another-lcm-operation-ongoing: description: > The operation cannot be executed currently, due to a conflict with the @@ -40,14 +45,6 @@ responses: 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/SOL002SOL003_def.yaml#/definitions/ProblemDetails" 409-inconsistent-state: @@ -61,14 +58,6 @@ responses: 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/SOL002SOL003_def.yaml#/definitions/ProblemDetails" 409-state-conflict-INSTANTIATED: @@ -85,14 +74,6 @@ responses: 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/SOL002SOL003_def.yaml#/definitions/ProblemDetails" 409-state-conflict-not-FAILED_TEMP: @@ -110,14 +91,6 @@ responses: 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/SOL002SOL003_def.yaml#/definitions/ProblemDetails" 409-state-conflict-NOT-INSTANTIATED: @@ -135,13 +108,5 @@ responses: 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/SOL002SOL003_def.yaml#/definitions/ProblemDetails" diff --git a/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml b/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml index 42ac3f09..efcb82c5 100644 --- a/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml +++ b/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml @@ -1,7 +1,7 @@ swagger: "2.0" info: - version: "2.3.1" + version: "2.4.1" title: DRAFT - SOL003 - VNF Lifecycle Management Notification interface description: > DRAFT - SOL003 - VNF Lifecycle Management Notification interface @@ -9,7 +9,7 @@ info: version of the ETSI Group Specification it refers to and has not been approved by the ETSI NFV ISG. In case of discrepancies the published ETSI Group Specification takes precedence. - Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution=--- + Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution= license: name: "ETSI Forge copyright notice" url: https://forge.etsi.org/etsi-forge-copyright-notice.txt @@ -28,33 +28,23 @@ produces: paths: ############################################################################### -# Notification endpoint VnfLcmOperationOccurrenceNotification # +# Notification endpoint VnfLcmOperationOccurrenceNotification # ############################################################################### '/URI-is-provided-by-the-client-when-creating-the-subscription-VnfLcmOperationOccurrenceNotification': - #SOL003 location: 5.4.20 post: description: > The POST method delivers a notification from the server to the client. parameters: - name: VnfLcmOperationOccurrenceNotification - description: The VNF creation parameters + description: A notification about on-boarding of a VNF package. in: body required: true schema: - $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOperationOccurrenceNotification" + $ref: "definitions/VNFLifecycleManagementNotification_def.yaml#/definitions/VnfLcmOperationOccurrenceNotification" responses: 204: description: > The notification was delivered successfully. - headers: - 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: @@ -75,7 +65,6 @@ paths: # Notification endpoint VnfIdentifierCreationNotification # ############################################################################### '/URI-is-provided-by-the-client-when-creating-the-subscription-VnfIdentifierCreationNotification': - #SOL003 location: 5.4.20 post: description: > The POST method delivers a notification from the server to the client. @@ -92,15 +81,6 @@ paths: 204: description: > The notification was delivered successfully. - headers: - 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: @@ -121,7 +101,6 @@ paths: # Notification endpoint VnfIdentifierDeletionNotification # ############################################################################### '/URI-is-provided-by-the-client-when-creating-the-subscription-VnfIdentifierDeletionNotification': - #SOL003 location: 5.4.20 post: description: > The POST method delivers a notification from the server to the client. @@ -138,15 +117,6 @@ paths: 204: description: > The notification was delivered successfully. - headers: - 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: diff --git a/src/SOL003/VNFLifecycleManagementNotification/definitions/VNFLifecycleManagementNotification_def.yaml b/src/SOL003/VNFLifecycleManagementNotification/definitions/VNFLifecycleManagementNotification_def.yaml new file mode 100644 index 00000000..35c48453 --- /dev/null +++ b/src/SOL003/VNFLifecycleManagementNotification/definitions/VNFLifecycleManagementNotification_def.yaml @@ -0,0 +1,177 @@ +# Copyright (c) ETSI 2017. +# https://forge.etsi.org/etsi-forge-copyright-notice.txt + +definitions: + VnfLcmOperationOccurrenceNotification: + description: > + This type represents a VNF lifecycle management operation occurrence + notification, which informs the receiver of changes in the VNF + lifecycle caused by a VNF LCM operation occurrence. The support of the + notification is mandatory. + This notification shall be triggered by the VNFM when there is a change + in the VNF lifecycle caused by a VNF LCM operation occurrence, + including: + * Instantiation of the VNF + * Scaling of the VNF instance (including auto-scaling) + * Healing of the VNF instance (including auto-healing) + * Change of the state of the VNF instance (i.e. Operate VNF) + * Change of the deployment flavour of the VNF instance + * Change of the external connectivity of the VNF instance + * Termination of the VNF instance + * Modification of VNF instance information and/or VNF configurable + properties through the "PATCH" method on the "Individual VNF instance" + resource. + If this is the initial notification about the start of a VNF LCM + operation occurrence, it is assumed that the notification is sent by the + VNFM before any action (including sending the grant request) is taken as + part of the LCM operation. Due to possible race conditions, the "start" + notification, the grant request and the LCM operation acknowledgment can + arrive in any order at the NFVO, and the NFVO shall be able to handle + such a situation. + If this is a notification about a final or intermediate result state of + a VNF LCM operation occurrence, the notification shall be sent after + all related actions of the LCM operation that led to this state have + been executed. The new state shall be set in the VnfLcmOpOcc resource + before the notification about the state change is sent. + type: object + required: + - id + - notificationType + - subscriptionId + - timeStamp + - notificationStatus + - operationState + - vnfInstanceId + - operation + - isAutomaticInvocation + - vnfLcmOpOccId + - _links + properties: + id: + description: > + Identifier of this notification. If a notification is sent multiple + times due to multiple subscriptions, the "id" attribute of all these + notifications shall have the same value. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + notificationType: + description: > + Discriminator for the different notification types. Shall be set to + "VnfLcmOperationOccurrenceNotification" for this notification type. + type: string + enum: + - VnfLcmOperationOccurrenceNotification + subscriptionId: + description: > + Identifier of the subscription that this notification relates to. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + timeStamp: + description: > + Date-time of the generation of the notification. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime" + notificationStatus: + description: > + Indicates whether this notification reports about the start of a + lifecycle operation or the result of a lifecycle operation. + Permitted values: + * START: Informs about the start of the VNF LCM operation + occurrence. + * RESULT: Informs about the final or intermediate result of the VNF + LCM operation occurrence. + type: string + enum: + - START + - RESULT + operationState: + description: > + The state of the VNF LCM operation occurrence. + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LcmOperationStateType" + vnfInstanceId: + description: > + The identifier of the VNF instance affected. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + operation: + description: > + The lifecycle management operation. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/LcmOperationType" + isAutomaticInvocation: + description: > + Set to true if this VNF LCM operation occurrence has been triggered + by an automated procedure inside the VNFM + (i.e. ScaleVnf / ScaleVnfToLevel triggered by auto-scale, or HealVnf + triggered by auto-heal). + Set to false otherwise. + type: boolean + vnfLcmOpOccId: + description: > + The identifier of the VNF lifecycle management operation occurrence + associated to the notification. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + affectedVnfcs: + description: > + Information about VNFC instances that were affected during the + lifecycle operation. + Shall be present if the "notificationStatus" is set to "RESULT" and + the operation has performed any resource modification. Shall be + absent otherwise. This attribute contains information about the + cumulative changes to virtualised resources that were performed so + far by the VNF LCM operation occurrence and by any of the error + handling procedures for that operation occurrence. + type: array + items: + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/AffectedVnfc" + affectedVirtualLinks: + description: > + Information about VL instances that were affected during the + lifecycle operation. + Shall be present if the "notificationStatus" is set to "RESULT" and + the operation has performed any resource modification. Shall be + absent otherwise. This attribute contains information about the + cumulative changes to virtualised resources that were performed so + far by the VNF LCM operation occurrence and by any of the error + handling procedures for that operation occurrence. + type: array + items: + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/AffectedVirtualLink" + affectedVirtualStorages: + description: > + Information about virtualised storage instances that were affected + during the lifecycle operation. + Shall be present if the "notificationStatus" is set to "RESULT" and + the operation has performed any resource modification. Shall be + absent otherwise. This attribute contains information about the + cumulative changes to virtualised resources that were performed so + far by the VNF LCM operation occurrence and by any of the error + handling procedures for that operation occurrence. + type: array + items: + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/AffectedVirtualStorage" + changedInfo: + description: > + Information about the changed VNF instance information, including + changed VNF configurable properties. + Shall be present if the "notificationStatus" is set to "RESULT" and + the operation has performed any changes to VNF instance information, + including VNF configurable properties. + Shall be absent otherwise. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/VnfInfoModificationRequest" + changedExtConnectivity: + description: > + Information about changed external connectivity, if this + notification represents the result of a lifecycle operation + occurrence. Shall be present if the "notificationStatus" is set to + "RESULT" and the "operation" is set to "CHANGE_EXT_CONN". + Shall be absent otherwise. + type: array + items: + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ExtVirtualLinkInfo" + error: + description: > + Details of the latest error, if one has occurred during executing + the LCM operation. Shall be present if the "operationState" + attribute is "FAILED_TEMP" or "FAILED", and shall be absent + otherwise. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + _links: + description: > + Links to resources related to this notification. + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LccnLinks" diff --git a/src/SOL003/VNFLifecycleOperationGranting/VNFLifecycleOperationGranting.yaml b/src/SOL003/VNFLifecycleOperationGranting/VNFLifecycleOperationGranting.yaml index c8a2d735..631eec10 100644 --- a/src/SOL003/VNFLifecycleOperationGranting/VNFLifecycleOperationGranting.yaml +++ b/src/SOL003/VNFLifecycleOperationGranting/VNFLifecycleOperationGranting.yaml @@ -1,7 +1,7 @@ swagger: "2.0" info: - version: "2.3.1" + version: "2.4.1" title: DRAFT - SOL003 - VNF Lifecycle Operation Granting interface description: > DRAFT - SOL003 - VNF Lifecycle Operation Granting interface @@ -9,7 +9,7 @@ info: version of the ETSI Group Specification it refers to and has not been approved by the ETSI NFV ISG. In case of discrepancies the published ETSI Group Specification takes precedence. - Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution=--- + Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution= license: name: "ETSI Forge copyright notice" url: https://forge.etsi.org/etsi-forge-copyright-notice.txt @@ -80,14 +80,6 @@ paths: 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: @@ -105,14 +97,6 @@ paths: 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: @@ -125,14 +109,11 @@ paths: 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. + Content-Type: + description: The MIME type of the body of the response. type: string maximum: 1 - minimum: 0 + minimum: 1 schema: $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" 404: @@ -182,14 +163,6 @@ paths: 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: @@ -197,16 +170,6 @@ paths: 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: @@ -219,14 +182,11 @@ paths: 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. + Content-Type: + description: The MIME type of the body of the response. type: string maximum: 1 - minimum: 0 + minimum: 1 schema: $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" 404: diff --git a/src/SOL003/VNFLifecycleOperationGranting/definitions/VNFLifecycleOperationGranting_def.yaml b/src/SOL003/VNFLifecycleOperationGranting/definitions/VNFLifecycleOperationGranting_def.yaml index aab9abc9..73ed75d3 100644 --- a/src/SOL003/VNFLifecycleOperationGranting/definitions/VNFLifecycleOperationGranting_def.yaml +++ b/src/SOL003/VNFLifecycleOperationGranting/definitions/VNFLifecycleOperationGranting_def.yaml @@ -79,8 +79,8 @@ definitions: "VnfInstance" structure by adding unknown entries received in this attribute. This attribute is not intended for the modification of VimConnection - entries passed earlier; for that, the VnfInfoModifications structure - shall be used. + entries passed earlier; for that, the VnfInfoModificationRequest + structure shall be used. This attribute shall only be supported when VNF-related Resource Management in direct mode is applicable. In direct mode, this parameter shall be absent if the VIM information was configured to @@ -212,7 +212,9 @@ definitions: networks have been pre-configured for use with certain VNFs, for instance to ensure that these networks have certain properties such as security or acceleration features, or to address particular - network topologies. + network topologies. The present document assumes that + externally-managed internal VLs are managed by the NFVO and created + towards the VIM. External and/or externally-managed internal VLs can be passed in VNF lifecycle management operation requests such as InstantiateVnf or ChangeVnfFlavor, and/or in the grant response. The NFVO may choose diff --git a/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml b/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml index 73bd10c3..4c33403f 100644 --- a/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml +++ b/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml @@ -1,7 +1,7 @@ swagger: "2.0" info: - version: "2.3.1" + version: "2.4.1" title: DRAFT - SOL003 - VNF Package Management interface description: > DRAFT - SOL003 - VNF Package Management interface @@ -9,7 +9,7 @@ info: version of the ETSI Group Specification it refers to and has not been approved by the ETSI NFV ISG. In case of discrepancies the published ETSI Group Specification takes precedence. - Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution=--- + Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution= license: name: "ETSI Forge copyright notice" url: https://forge.etsi.org/etsi-forge-copyright-notice.txt @@ -34,8 +34,8 @@ paths: #SOL003 location: 10.4.2 get: description: > - The GET method queries the information of the on-boarded VNF packages - matching the filter. + The GET method queries the information of the VNF packages matching + the filter. parameters: - name: Accept description: > @@ -61,18 +61,10 @@ paths: 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: type: array items: - $ref: "definitions/VNFPackageManagement_def.yaml#/definitions/OnboardedVnfPkgInfo" + $ref: "definitions/VNFPackageManagement_def.yaml#/definitions/VnfPkgInfo" 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400-attr-selector" 401: @@ -92,17 +84,16 @@ paths: 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" ############################################################################### -# Individual on-boarded VNF package # +# Individual VNF package # ############################################################################### - '/vnf_packages/{onboardedVnfPkgId}': - #SOL003 location: 10.4.3 + '/vnf_packages/{vnfPkgId}': parameters: - - name: onboardedVnfPkgId + - name: vnfPkgId description: > - Identifier of the on-boarded VNF package. The identifier is - allocated by the NFVO. - This identifier can be retrieved from the "onboardedVnfPkgId" - attribute in the VnfPackageOnboardingNotification or + Identifier of the VNF package. The identifier is allocated by the + NFVO. + This identifier can be retrieved from the "vnfPkgId" attribute in + the VnfPackageOnboardingNotification or VnfPackageChangeNotification. in: path type: string @@ -135,16 +126,8 @@ paths: 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/VNFPackageManagement_def.yaml#/definitions/OnboardedVnfPkgInfo" + $ref: "definitions/VNFPackageManagement_def.yaml#/definitions/VnfPkgInfo" 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: @@ -164,16 +147,15 @@ paths: 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" ############################################################################### -# VNFD in an individual on-boarded VNF package # +# VNFD in an individual VNF package # ############################################################################### - '/vnf_packages/{onboardedVnfPkgId}/vnfd': - #SOL003 location: 10.4.4 + '/vnf_packages/{vnfPkgId}/vnfd': parameters: - - name: onboardedVnfPkgId + - name: vnfPkgId description: > Identifier of the on-boarded VNF package. The identifier is allocated by the NFVO. - This identifier can be retrieved from the "onboardedVnfPkgId" + This identifier can be retrieved from the "vnfPkgId" attribute in the VnfPackageOnboardingNotification or VnfPackageChangeNotification. in: path @@ -243,14 +225,6 @@ paths: - application/zip 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 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: @@ -263,6 +237,8 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 406: $ref: "responses/VNFPackageManagement_resp.yaml#/responses/406" + 409: + $ref: "responses/VNFPackageManagement_resp.yaml#/responses/409" 416: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" 500: @@ -270,16 +246,15 @@ paths: 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" ############################################################################### -# On-boarded VNF package content # +# VNF package content # ############################################################################### - '/vnf_packages/{onboardedVnfPkgId}/package_content': - #SOL003 location: 10.4.5 + '/vnf_packages/{vnfPkgId}/package_content': parameters: - - name: onboardedVnfPkgId + - name: vnfPkgId description: > Identifier of the on-boarded VNF package. The identifier is allocated by the NFVO. - This identifier can be retrieved from the "onboardedVnfPkgId" + This identifier can be retrieved from the "vnfPkgId" attribute in the VnfPackageOnboardingNotification or VnfPackageChangeNotification. in: path @@ -329,14 +304,6 @@ paths: 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 206: description: > On success, if the NFVO supports range requests, a single @@ -358,14 +325,6 @@ paths: 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 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: @@ -378,6 +337,8 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 409: + $ref: "responses/VNFPackageManagement_resp.yaml#/responses/409" 416: $ref: "responses/VNFPackageManagement_resp.yaml#/responses/416" 500: @@ -385,10 +346,9 @@ paths: 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" ############################################################################### -# Individual on-boarded VNF package artifact # +# Individual VNF package artifact # ############################################################################### - '/vnf_packages/{onboardedVnfPkgId}/artifacts/{artifactPath}': - #SOL003 location: 10.4.5 + '/vnf_packages/{vnfPkgId}/artifacts/{artifactPath}': parameters: - name: artifactPath description: > @@ -396,15 +356,15 @@ paths: This identifier can be retrieved from the "artifactPath" attribute of the applicable "additionalArtifacts" entry in the body of the response to a GET request querying the "Individual VNF package" or - the "On-boarded VNF packages" resource. + the "VNF packages" resource. in: path type: string required: true - - name: onboardedVnfPkgId + - name: vnfPkgId description: > Identifier of the on-boarded VNF package. The identifier is allocated by the NFVO. - This identifier can be retrieved from the "onboardedVnfPkgId" + This identifier can be retrieved from the "vnfPkgId" attribute in the VnfPackageOnboardingNotification or VnfPackageChangeNotification. in: path @@ -458,14 +418,6 @@ paths: 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 206: description: > On success, if the NFVO supports range requests, a single @@ -487,14 +439,6 @@ paths: 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 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: @@ -507,6 +451,8 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 409: + $ref: "responses/VNFPackageManagement_resp.yaml#/responses/409" 416: $ref: "responses/VNFPackageManagement_resp.yaml#/responses/416" 500: @@ -517,10 +463,19 @@ paths: # Subscriptions # ############################################################################### '/subscriptions': - #SOL003 location: 10.4.7 post: description: > The POST method creates a new subscription. + Creation of two subscription resources with the same callbackURI and + the same filter can result in performance degradation and will provide + duplicates of notifications to the VNFM, and might make sense only in + very rare use cases. Consequently, the NFVO may either allow creating + a subscription resource if another subscription resource with the same + filter and callbackUri already exists (in which case it shall return + the “201 Created” response code), or may decide to not create a + duplicate subscription resource (in which case it shall return a + “303 See Other” response code referencing the existing subscription + resource with the same filter and callbackUri). parameters: - name: PkgmSubscriptionRequest description: > @@ -564,14 +519,6 @@ paths: 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 Location: description: The resource URI of the created VNF instance type: string @@ -580,6 +527,8 @@ paths: type: array items: $ref: "definitions/VNFPackageManagement_def.yaml#/definitions/PkgmSubscription" + 303: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/303" 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: @@ -629,14 +578,6 @@ paths: 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: type: array items: @@ -703,14 +644,6 @@ paths: 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/VNFPackageManagement_def.yaml#/definitions/PkgmSubscription" 400: @@ -746,15 +679,6 @@ paths: 204: description: > The subscription resource was deleted successfully. - headers: - 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: diff --git a/src/SOL003/VNFPackageManagement/definitions/VNFPackageManagement_def.yaml b/src/SOL003/VNFPackageManagement/definitions/VNFPackageManagement_def.yaml index a612ed80..6caf4647 100644 --- a/src/SOL003/VNFPackageManagement/definitions/VNFPackageManagement_def.yaml +++ b/src/SOL003/VNFPackageManagement/definitions/VNFPackageManagement_def.yaml @@ -20,21 +20,14 @@ definitions: The hexadecimal value of the checksum. type: string - OnboardedVnfPkgInfo: + VnfPkgInfo: description: > - This type represents the information of an on-boarded VNF package. + This type represents the information of an VNF package. type: object required: - id - - vnfdId - - vnfProvider - - vnfProductName - - vnfSoftwareVersion - - vnfdVersion - - checksum - operationalState - usageState - - deletionPending - _links properties: id: @@ -47,6 +40,8 @@ definitions: This identifier, which is managed by the VNF provider, identifies the VNF package and the VNFD in a globally unique way. It's copied from the VNFD of the on-boarded VNF package. + It shall be present after the VNF package content has been + on-boarded and absent otherwise. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" vnfProvider: description: > @@ -57,26 +52,35 @@ definitions: description: > Name to identify the VNF product. Invariant for the VNF product lifetime. This information is copied from the VNFD. + It shall be present after the VNF package content has been + on-boarded and absent otherwise. type: string vnfSoftwareVersion: description: > Software version of the VNF. This is changed when there is any change to the software included in the VNF package. This information is copied from the VNFD. + It shall be present after the VNF package content has been + on-boarded and absent otherwise. $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Version" vnfdVersion: description: > The version of the VNFD. This information is copied from the VNFD. + It shall be present after the VNF package content has been + on-boarded and absent otherwise. $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Version" checksum: description: > Checksum of the on-boarded VNF package. + It shall be present after the VNF package content has been + on-boarded and absent otherwise. $ref: "#/definitions/Checksum" softwareImages: description: > Information about VNF package artifacts that are software images. - This attribute shall be present unless it has been requested to be - excluded per attribute selector. + This attribute shall not be present before the VNF package content + is on-boarded. Otherwise, this attribute shall be present unless it + has been requested to be excluded per attribute selector. type: array items: $ref: "#/definitions/VnfPackageSoftwareImageInfo" @@ -84,25 +88,30 @@ definitions: description: > Information about VNF package artifacts contained in the VNF package that are not software images. + This attribute shall not be present before the VNF package content + is on-boarded. Otherwise, this attribute shall be present if the VNF + package contains additional artifacts. type: array items: $ref: "#/definitions/VnfPackageArtifactInfo" + onboardingState: + description: > + On-boarding state of the VNF package. + $ref: "#/definitions/PackageOnboardingStateType" operationalState: description: > - Operational state of the on-boarded instance of the VNF package. + Operational state of the VNF package. + If the value of the onboardingState attribute is not equal to + "ONBOARDED", the value of the operationalState attribute shall be + equal to "DISABLED". $ref: "#/definitions/PackageOperationalStateType" usageState: description: > - Usage state of the on-boarded instance of the VNF package. + Usage state of the VNF package. + If the value of the onboardingState attribute is not equal to + "ONBOARDED", the value of the usageState attribute shall be + equal to "NOT_IN_USE". $ref: "#/definitions/PackageUsageStateType" - deletionPending: - description: > - The value "true" indicates that deletion of this instance of the VNF - package has been requested but the VNF package is still being used - by created VNFs. - This instance of the VNF package will be deleted once all VNFs - instantiated from this package are deleted. - type: boolean userDefinedData: description: > User defined data for the VNF package. @@ -113,7 +122,6 @@ definitions: type: object required: - self - - vnfd - packageContent properties: self: @@ -122,13 +130,29 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" vnfd: description: > - Link to the VNFD resource. + Link to the VNFD resource. This link shall be present after the + VNF package content is on-boarded. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" packageContent: description: > - Link to the "On-boarded VNF package content" resource. + Link to the "VNF package content" resource. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" + PackageOnboardingStateType: + description: > + CREATED: The VNF package resource has been created. + UPLOADING: The associated VNF package content is being uploaded. + PROCESSING: The associated VNF package content is being processed, e.g., + validation. + ONBOARDED: The associated VNF package content has been successfully + on-boarded. + type: string + enum: + - CREATED + - UPLOADING + - PROCESSING + - ONBOARDED + PackageOperationalStateType: description: > - ENABLED: The VNF package is enabled, i.e. it can be used for @@ -174,64 +198,83 @@ definitions: enum: - VnfPackageOnboardingNotification - VnfPackageChangeNotification - vnfProvider: - description: > - Match VNF packages from a provider that is listed as part of this - attribute. - type: array - items: - type: string - vnfProductInfo: - description: > - Match particular VNF products. + vnfProductsFromProviders: + description: > + If present, match VNF packages that contain VNF products from + certain providers. + The attributes "vnfProductsFromProviders", "vnfdId" and "vnfPkgId" + are alternatives to reference to particular VNF packages in a + filter. They should not be used both in the same filter instance, + but one alternative should be chosen. type: array - items: + items: type: object - required: - - vnfProductName - properties: - vnfProductName: + required: + - vnfProvider + properties: + vnfProvider: description: > - Match VNF products with a particular name. + Name of the VNF provider to match. type: string - vnfSoftwareVersion: - description: > - Match VNF products with one of the software versions listed as - part of this attribute. - As "vnfSoftwareVersion" and "vnfdVersion" can change - independently from each other, care should be taken when - specifying both at the same time. - type: array - items: - $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Version" - vnfdVersion: + vnfProducts: description: > - Match VNF products with one of the VNFD versions listed as - part of this attribute. + If present, match VNF packages that contain VNF products with + certain product names, from one particular provider. type: array items: - $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Version" + type: object + required: + - vnfProductName + properties: + vnfProductName: + description: > + Name of the VNF product to match. + type: string + versions: + description: > + If present, match VNF packages that contain VNF products + with certain versions and a certain product name, from + one particular provider. + type: array + items: + type: object + required: + - vnfSoftwareVersion + properties: + vnfSoftwareVersion: + description: > + VNF software version to match. + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Version" + vnfdVersions: + description: > + If present, match VNF packages that contain VNF + products with certain VNFD versions, a certain + software version and a certain product name, from + one particular provider. + type: array + items: + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Version" vnfdId: description: > Match VNF packages with a VNFD identifier listed in the attribute. - On-boarded VNF package identifiers and VNFD identifiers are - alternatives to reference to particular VNF packages in a filter. - They should not be used both in the same filter instance, but one - alternative should be chosen. + The attributes "vnfProductsFromProviders", "vnfdId" and "vnfPkgId" + are alternatives to reference to particular VNF packages in a + filter. They should not be used both in the same filter instance, + but one alternative should be chosen. type: array items: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - onboardedVnfPkgId: + vnfPkgId: description: > Match VNF packages with a package identifier listed in the attribute. May be present if the "notificationTypes" attribute contains the value "VnfPackageChangeNotification", and shall be absent otherwise. - On-boarded VNF package identifiers and VNFD identifiers are - alternatives to reference to particular VNF packages in a filter. - They should not be used both in the same filter instance, but one - alternative should be chosen. + The attributes "vnfProductsFromProviders", "vnfdId" and "vnfPkgId" + are alternatives to reference to particular VNF packages in a + filter. They should not be used both in the same filter instance, + but one alternative should be chosen. type: array items: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" @@ -250,6 +293,26 @@ definitions: otherwise. $ref: "#/definitions/PackageUsageStateType" + PkgmLinks: + description: > + This type represents the links to resources that a VNF package + management notification can contain. + type: object + required: + - vnfPackage + - subscription + properties: + vnfPackage: + description: > + Link to the resource representing the VNF package to which the + notified change applies, i.e. the individual on-boarded VNF package + resource that represents the VNF package. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" + subscription: + description: > + Link to the related subscription. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" + PkgmSubscription: description: > This type represents a subscription related to notifications about diff --git a/src/SOL003/VNFPackageManagement/responses/VNFPackageManagement_resp.yaml b/src/SOL003/VNFPackageManagement/responses/VNFPackageManagement_resp.yaml index ad9f9b60..18f57632 100644 --- a/src/SOL003/VNFPackageManagement/responses/VNFPackageManagement_resp.yaml +++ b/src/SOL003/VNFPackageManagement/responses/VNFPackageManagement_resp.yaml @@ -12,14 +12,22 @@ responses: 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. + schema: + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + 409: + description: > + Error: The operation cannot be executed currently, due to a conflict + with the state of the resource. + Typically, this is due to the fact that "onboardingState" of the VNF + package has a value different from "ONBOARDED". + The response body shall contain a ProblemDetails structure, in which the + "detail" attribute shall convey more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. type: string maximum: 1 - minimum: 0 + minimum: 1 schema: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" 416: @@ -33,14 +41,6 @@ responses: 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/SOL002SOL003_def.yaml#/definitions/ProblemDetails" \ No newline at end of file diff --git a/src/SOL003/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml b/src/SOL003/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml index 605472b8..7e79ed1f 100644 --- a/src/SOL003/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml +++ b/src/SOL003/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml @@ -1,7 +1,7 @@ swagger: "2.0" info: - version: "2.3.1" + version: "2.4.1" title: DRAFT - SOL003 - VNF Package Management Notification interface description: > DRAFT - SOL003 - VNF Package Management Notification interface @@ -9,7 +9,7 @@ info: version of the ETSI Group Specification it refers to and has not been approved by the ETSI NFV ISG. In case of discrepancies the published ETSI Group Specification takes precedence. - Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution=--- + Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution= license: name: "ETSI Forge copyright notice" url: https://forge.etsi.org/etsi-forge-copyright-notice.txt @@ -46,15 +46,6 @@ paths: 204: description: > The notification was delivered successfully. - headers: - 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: @@ -78,15 +69,6 @@ paths: description: > The notification endpoint was tested successfully. The response body shall be empty. - headers: - 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: @@ -121,15 +103,6 @@ paths: 204: description: > The notification was delivered successfully. - headers: - 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: @@ -153,15 +126,6 @@ paths: description: > The notification endpoint was tested successfully. The response body shall be empty. - headers: - 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: diff --git a/src/SOL003/VNFPackageManagementNotification/definitions/VNFPackageManagementNotification_def.yaml b/src/SOL003/VNFPackageManagementNotification/definitions/VNFPackageManagementNotification_def.yaml index f9dcd310..e7a01e06 100644 --- a/src/SOL003/VNFPackageManagementNotification/definitions/VNFPackageManagementNotification_def.yaml +++ b/src/SOL003/VNFPackageManagementNotification/definitions/VNFPackageManagementNotification_def.yaml @@ -5,7 +5,6 @@ definitions: PackageChangeType: description: > - OP_STATE_CHANGE: The "operationalState" attribute has been changed. - - DELETE_PEND_CHANGE: The "deletionPending" attribute has been changed. - PKG_DELETE: The VNF package has been deleted. type: string enum: @@ -28,21 +27,23 @@ definitions: VnfPackageChangeNotification: description: > This type represents a VNF package management notification, which - informs the receiver of a change of the status in a VNF package. - Only changes in operationalState and/or deletionPending attributes will - be reported. Change in usageState attribute is not reported. The support - of this notification is mandatory. - The notification is triggered when there is a change in the status of a - VNF package, including: - * Change of states (operationalState and/or deletionPending) of an - on-boarded VNF package. - * Deletion of an on-boarded VNF package. + informs the receiver of a change of the status in an on-boarded VNF + package. Only changes in the "operationalState" attribute of an + on-boarded VNF package and the deletion NF package will be reported. + Changes in the "usageState" and "onboardingState" attributes are not + reported. + The notification shall be triggered by the NFVO when there is a change + in the status of an onboarded VNF package, as follows: + * The "operationalState" attribute of a VNF package has changed, and the + "onboardingState" attribute of the package has the value "ONBOARDED" + (i.e. the package has been onboarded previously). + * The on-boarded VNF package has been deleted. type: object required: - id - notificationType - timeStamp - - onboardedVnfPkgId + - vnfPkgId - vnfdId - changeType - _links @@ -68,10 +69,12 @@ definitions: description: > Date-time of the generation of the notification. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime" - onboardedVnfPkgId: + vnfPkgId: description: > Identifier of the on-boarded VNF package. This identifier is allocated by the NFVO. + Its value is the same as the value of the "id" attribute of the + related "Individual VNF package" resource. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" vnfdId: description: > @@ -88,13 +91,6 @@ definitions: New operational state of the VNF package. Only present when changeType is OP_STATE_CHANGE. $ref: "#/definitions/PackageOperationalStateType" - deletionPending: - description: > - The value "true" indicates that the deletion instance of the VNF - package has been requested but the VNF package is still being used - by instantiated VNFs. - Only present when changeType is DELETE_PEND_CHANGE. - type: boolean _links: description: > Links to resources related to this notification. @@ -102,15 +98,18 @@ definitions: VnfPackageOnboardingNotification: description: > - This type represents a VNF package management notification, which - informs the receiver of the on-boarding of a VNF package. - The notification is triggered when a new VNF package is on-boarded. + This type represents a VNF package management notification, + which informs the receiver that the onboarding process of a VNF package + is complete and the package is ready for use. + The notification shall be triggered by the NFVO when the + "onboardingState" attribute of a new VNF package has changed to + "ONBOARDED". type: object required: - id - notificationType - timeStamp - - onboardedVnfPkgId + - vnfPkgId - vnfdId - _links properties: @@ -136,10 +135,12 @@ definitions: description: > Date-time of the generation of the notification. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime" - onboardedVnfPkgId: + vnfPkgId: description: > Identifier of the on-boarded VNF package. This identifier is allocated by the NFVO. + Its value is the same as the value of the "id" attribute of the + related "Individual VNF package" resource. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" vnfdId: description: > diff --git a/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml b/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml index 94aef15b..50b2e05b 100644 --- a/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml +++ b/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml @@ -1,7 +1,7 @@ swagger: "2.0" info: - version: "2.3.1" + version: "2.4.1" title: DRAFT - SOL003 - VNF Performance Management interface description: > DRAFT - SOL003 - VNF Performance Management interface @@ -9,7 +9,7 @@ info: version of the ETSI Group Specification it refers to and has not been approved by the ETSI NFV ISG. In case of discrepancies the published ETSI Group Specification takes precedence. - Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution=--- + Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution= license: name: "ETSI Forge copyright notice" url: https://forge.etsi.org/etsi-forge-copyright-notice.txt @@ -73,14 +73,6 @@ paths: description: The resource URI of the created PM Job 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/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmJob" 400: @@ -129,14 +121,13 @@ paths: The response body shall contain representations of zero or more PM jobs. headers: - WWW-Authenticate: + Content-Type: 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. + The MIME type of the body of the request. + Reference: IETF RFC 7231 type: string maximum: 1 - minimum: 0 + minimum: 1 schema: type: array items: @@ -196,14 +187,13 @@ paths: The response body shall contain a representation of the PM job resource. headers: - WWW-Authenticate: + Content-Type: 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. + The MIME type of the body of the request. + Reference: IETF RFC 7231 type: string maximum: 1 - minimum: 0 + minimum: 1 schema: $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmJob" 400: @@ -236,15 +226,6 @@ paths: description: > The PM job was deleted successfully. The response body shall be empty. - headers: - 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: @@ -304,14 +285,13 @@ paths: The response body shall contain a representation of the performance report resource. headers: - WWW-Authenticate: + Content-Type: 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. + The MIME type of the body of the request. + Reference: IETF RFC 7231 type: string maximum: 1 - minimum: 0 + minimum: 1 schema: $ref: "definitions/VNFPerformanceManagement_def.yaml#/definitions/PerformanceReport" 400: @@ -377,14 +357,13 @@ paths: description: The resource URI of the created VNF instance type: string format: url - WWW-Authenticate: + Content-Type: 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. + The MIME type of the body of the request. + Reference: IETF RFC 7231 type: string maximum: 1 - minimum: 0 + minimum: 1 schema: $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/Threshold" 400: @@ -431,14 +410,13 @@ paths: description: The resource URI of the created VNF instance type: string format: url - WWW-Authenticate: + Content-Type: 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. + The MIME type of the body of the request. + Reference: IETF RFC 7231 type: string maximum: 1 - minimum: 0 + minimum: 1 schema: type: array items: @@ -498,14 +476,13 @@ paths: successfully. The response body shall contain a representation of the threshold. headers: - WWW-Authenticate: + Content-Type: 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. + The MIME type of the body of the request. + Reference: IETF RFC 7231 type: string maximum: 1 - minimum: 0 + minimum: 1 schema: $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/Threshold" 400: @@ -545,15 +522,6 @@ paths: description: > The threshold was deleted successfully. The response body shall be empty. - headers: - 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: @@ -576,6 +544,16 @@ paths: post: description: > The POST method creates a new subscription. + Creation of two subscription resources with the same callbackURI and + the same filter can result in performance degradation and will provide + duplicates of notifications to the NFVO, and might make sense only in + very rare use cases. Consequently, the VNFM may either allow creating + a subscription resource if another subscription resource with the same + filter and callbackUri already exists (in which case it shall return + the “201 Created” response code), or may decide to not create a + duplicate subscription resource (in which case it shall return a + “303 See Other” response code referencing the existing subscription + resource with the same filter and callbackUri). parameters: - name: PmSubscriptionRequest description: > @@ -618,16 +596,17 @@ paths: description: The resource URI of the created VNF instance type: string format: url - WWW-Authenticate: + Content-Type: 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. + The MIME type of the body of the request. + Reference: IETF RFC 7231 type: string maximum: 1 - minimum: 0 + minimum: 1 schema: $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmSubscription" + 303: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/303" 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: @@ -676,14 +655,6 @@ paths: 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: type: array items: @@ -749,14 +720,6 @@ paths: 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/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmSubscription" 400: @@ -796,15 +759,6 @@ paths: description: > The subscription resource was deleted successfully. The response body shall be empty. - headers: - 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: diff --git a/src/SOL003/VNFPerformanceManagement/definitions/VNFPerformanceManagement_def.yaml b/src/SOL003/VNFPerformanceManagement/definitions/VNFPerformanceManagement_def.yaml index b95437d6..91daa216 100644 --- a/src/SOL003/VNFPerformanceManagement/definitions/VNFPerformanceManagement_def.yaml +++ b/src/SOL003/VNFPerformanceManagement/definitions/VNFPerformanceManagement_def.yaml @@ -32,16 +32,14 @@ definitions: type: string objectInstanceId: description: > - The object instance for which the performance metric is - reported. - The object instances for this information element will be VNF - instances. + The object instance (i.e. VNF instance) for which the + performance metric is reported. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" performanceMetric: description: > Name of the metric collected. type: string - performanceValue: + performanceValues: description: > List of performance values with associated timestamp. type: array @@ -55,13 +53,13 @@ definitions: description: > Time stamp indicating when the data was collected. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime" - performanceValue: + value: description: > Value of the metric collected. - The type of the "performanceValue" attribute - (i.e. scalar, structure (Object in JSON), or array - (of scalars, arrays or structures / Objects)) is assumed - to be defined in an external measurement specification - outside the scope of the present document. + The type of the "value" attribute (i.e. scalar, + structure (Object in JSON), or array (of scalars, arrays + or structures / Objects)) is assumed to be defined in + the external measurement specification + (see ETSI GS NFV-IFA 027). type: object diff --git a/src/SOL003/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml b/src/SOL003/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml index 8106d241..ad74805e 100644 --- a/src/SOL003/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml +++ b/src/SOL003/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml @@ -1,7 +1,7 @@ swagger: "2.0" info: - version: "2.3.1" + version: "2.4.1" title: DRAFT - SOL003 - VNF Performance Management Notification interface description: > DRAFT - SOL003 - VNF Performance Management Notification interface @@ -9,7 +9,7 @@ info: version of the ETSI Group Specification it refers to and has not been approved by the ETSI NFV ISG. In case of discrepancies the published ETSI Group Specification takes precedence. - Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution=--- + Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution= license: name: "ETSI Forge copyright notice" url: https://forge.etsi.org/etsi-forge-copyright-notice.txt @@ -48,15 +48,6 @@ paths: 204: description: > The notification was delivered successfully. - headers: - 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: @@ -79,15 +70,6 @@ paths: 204: description: > The notification endpoint was tested successfully. - headers: - 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: @@ -123,15 +105,6 @@ paths: 204: description: > The notification was delivered successfully. - headers: - 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: @@ -154,15 +127,6 @@ paths: 204: description: > The notification endpoint was tested successfully. - headers: - 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: diff --git a/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/VirtualisedResourcesQuotaAvailableNotification.yaml b/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/VirtualisedResourcesQuotaAvailableNotification.yaml index 7c1111f8..38bfd882 100644 --- a/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/VirtualisedResourcesQuotaAvailableNotification.yaml +++ b/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/VirtualisedResourcesQuotaAvailableNotification.yaml @@ -1,7 +1,7 @@ swagger: "2.0" info: - version: "2.3.1" + version: "2.4.1" title: DRAFT - SOL003 - Virtualised Resources Quota Available Notification interface description: > DRAFT - SOL003 - Virtualised Resources Quota Available Notification interface @@ -9,7 +9,7 @@ info: version of the ETSI Group Specification it refers to and has not been approved by the ETSI NFV ISG. In case of discrepancies the published ETSI Group Specification takes precedence. - Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution=--- + Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution= license: name: "ETSI Forge copyright notice" url: https://forge.etsi.org/etsi-forge-copyright-notice.txt @@ -31,10 +31,19 @@ paths: # Subscriptions # ############################################################################### '/subscriptions': - #SOL003 location: 11.4 post: description: > The POST method creates a new subscription. + Creation of two subscription resources with the same callbackURI and + the same filter can result in performance degradation and will provide + duplicates of notifications to the VNFM, and might make sense only in + very rare use cases. Consequently, the NFVO may either allow creating + a subscription resource if another subscription resource with the same + filter and callbackUri already exists (in which case it shall return + the “201 Created” response code), or may decide to not create a + duplicate subscription resource (in which case it shall return a + “303 See Other” response code referencing the existing subscription + resource with the same filter and callbackUri). parameters: - name: VrQuotaAvailSubscriptionRequest description: Details of the subscription to be created. @@ -54,20 +63,14 @@ paths: 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 Location: description: The resource URI of the created VNF instance type: string format: url schema: $ref: "definitions/VirtualisedResourcesQuotaAvailableNotification_def.yaml#/definitions/VrQuotaAvailSubscription" + 303: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/303" 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: @@ -93,15 +96,6 @@ paths: description: > The notification endpoint was tested successfully. The response body shall be empty. - headers: - 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: diff --git a/src/SOL003/VirtualisedResourcesQuotaAvailableNotificationNotification/VirtualisedResourcesQuotaAvailableNotificationNotification.yaml b/src/SOL003/VirtualisedResourcesQuotaAvailableNotificationNotification/VirtualisedResourcesQuotaAvailableNotificationNotification.yaml new file mode 100644 index 00000000..b4023f24 --- /dev/null +++ b/src/SOL003/VirtualisedResourcesQuotaAvailableNotificationNotification/VirtualisedResourcesQuotaAvailableNotificationNotification.yaml @@ -0,0 +1,88 @@ +swagger: "2.0" + +info: + version: "2.3.4" + title: DRAFT - SOL003 - Virtualised Resources Quota Available Notification Notification interface + description: > + DRAFT - SOL003 - Virtualised Resources Quota Available Notification Notification interface + IMPORTANT: Please note that this file might be not aligned to the current + version of the ETSI Group Specification it refers to and has not been + approved by the ETSI NFV ISG. In case of discrepancies the published ETSI + Group Specification takes precedence. + Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution= + license: + name: "ETSI Forge copyright notice" + url: https://forge.etsi.org/etsi-forge-copyright-notice.txt + contact: + name: "NFV-SOL WG" + +basePath: "/callback/v1" + +schemes: + - https + +consumes: + - "application/json" +produces: + - "application/json" + +paths: +############################################################################### +# Notification endpoint VnfLcmOperationOccurrenceNotification # +############################################################################### + '/URI-is-provided-by-the-client-when-creating-the-subscription': + post: + description: > + The POST method delivers a notification from the server to the client. + parameters: + - name: VrQuotaAvailNotification + description: A notification related to the availability of the virtualised resources quota. + in: body + required: true + schema: + $ref: "definitions/VirtualisedResourcesQuotaAvailableNotificationNotification_def.yaml#/definitions/VrQuotaAvailNotification" + responses: + 204: + description: > + The notification was delivered successfully. + 400: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" + 406: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 500: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" + 503: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + get: + description: > + The GET method allows the server to test the notification endpoint + that is provided by the client, e.g. during subscription. + responses: + 204: + description: > + The notification was delivered successfully. + 400: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" + 406: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 500: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" + 503: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + diff --git a/src/SOL003/VirtualisedResourcesQuotaAvailableNotificationNotification/definitions/VirtualisedResourcesQuotaAvailableNotificationNotification_def.yaml b/src/SOL003/VirtualisedResourcesQuotaAvailableNotificationNotification/definitions/VirtualisedResourcesQuotaAvailableNotificationNotification_def.yaml new file mode 100644 index 00000000..ea86df45 --- /dev/null +++ b/src/SOL003/VirtualisedResourcesQuotaAvailableNotificationNotification/definitions/VirtualisedResourcesQuotaAvailableNotificationNotification_def.yaml @@ -0,0 +1,85 @@ +# Copyright (c) ETSI 2017. +# https://forge.etsi.org/etsi-forge-copyright-notice.txt + +definitions: + VrQuotaAvailNotification: + description: > + This type represents a notification which indicates the availability of + a quota applicable to the consumer. + Support of this notification is mandatory if the + Virtualised Resources Quota Available Notification interface is + supported. + The notification shall be triggered by the NFVO when a virtualised + resource quota applicable to the consumer has been set. + type: object + required: + - id + - notificationType + - subscriptionId + - timeStamp + - resourceGroupId + - _links + properties: + id: + description: > + Identifier of this notification. If a notification is sent multiple + times due to multiple subscriptions, the "id" attribute of all these + notifications shall have the same value. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + notificationType: + description: > + Discriminator for the different notification types. + Shall be set to "VrQuotaAvailNotification" for this notification type. + type: string + enum: + - VrQuotaAvailNotification + subscriptionId: + description: > + Identifier of the subscription that this notification relates to. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + timeStamp: + description: > + Date-time of the generation of the notification. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime" + resourceGroupId: + description: > + Identifier of the "infrastructure resource group", logical grouping + of virtual resources assigned to a tenant within an Infrastructure + Domain. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVim" + vimConnectionInfo: + description: > + Information about the VIM connection to manage the virtualised + resources quota. + This attribute shall only be supported and present when VNF-related + Resource Management in direct mode is applicable. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/VimConnectionInfo" + resourceProviderId: + description: > + Identifies the entity responsible for the management of the + virtualised resources quota. + This attribute shall only be supported and present when + VNF-related Resource Management in indirect mode is applicable. The + identification scheme is outside the scope of the present document. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + _links: + description: > + Links to resources related to this notification. + $ref: "#/definitions/QuotaAvailLinks" + + QuotaAvailLinks: + description: > + This type represents the links to resources that a notification of type + "VrQuotaAvailNotification" can contain. + type: object + required: + - subscription + properties: + subscription: + description: > + Link to the related subscription. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" + + + + diff --git a/src/SOL003/definitions/SOL003_def.yaml b/src/SOL003/definitions/SOL003_def.yaml index 02b27db1..50307d9f 100644 --- a/src/SOL003/definitions/SOL003_def.yaml +++ b/src/SOL003/definitions/SOL003_def.yaml @@ -115,6 +115,10 @@ definitions: AlarmNotification: description: > This type represents an alarm notification about VNF faults. + This notification shall be triggered by the VNFM when: + * An alarm has been created. + * An alarm has been updated, e.g. if the severity of the alarm has + changed. type: object required: - id diff --git a/src/definitions/SOL002SOL003VNFFaultManagement_def.yaml b/src/definitions/SOL002SOL003VNFFaultManagement_def.yaml index 3f02ce6d..f9d5052f 100644 --- a/src/definitions/SOL002SOL003VNFFaultManagement_def.yaml +++ b/src/definitions/SOL002SOL003VNFFaultManagement_def.yaml @@ -5,6 +5,8 @@ definitions: AlarmClearedNotification: description: > This type represents an alarm cleared notification about VNF faults. + The notification shall be triggered by the VNFM when an alarm has been + cleared. type: object required: - id @@ -65,6 +67,8 @@ definitions: This type represents a notification that the alarm list has been rebuilt, e.g. if the VNFM detects its storage holding the alarm list is corrupted. + The notification shall be triggered by the VNFM when the alarm list has + been rebuilt. type: object required: - id diff --git a/src/definitions/SOL002SOL003VNFIndicator_def.yaml b/src/definitions/SOL002SOL003VNFIndicator_def.yaml index 7ba91a92..8c43b741 100644 --- a/src/definitions/SOL002SOL003VNFIndicator_def.yaml +++ b/src/definitions/SOL002SOL003VNFIndicator_def.yaml @@ -140,6 +140,8 @@ definitions: VnfIndicatorValueChangeNotification: description: > This type represents a VNF indicator value change notification. + The notification shall be triggered by the VNFM when the value of an + indicator has changed. type: object required: - id diff --git a/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml b/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml index 12d35cd4..83b249b9 100644 --- a/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml +++ b/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml @@ -3,7 +3,6 @@ definitions: AffectedVirtualLink: - #SOL003 Location: 5.5.3.14 description: > This type provides information about added, deleted, modified and temporary VLs. @@ -48,9 +47,14 @@ definitions: (for new and modified resources) or has been (for removed resources) available from the VIM. $ref: "SOL002SOL003_def.yaml#/definitions/ResourceHandle" + metadata: + description: > + Metadata about this resource. + The content of this attribute shall be a copy of the content of the + "metadata" attribute of the VnfVirtualLinkResourceInfo structure. + $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" AffectedVirtualStorage: - #SOL003 Location: 5.5.3.15 description: > This type provides information about added, deleted, modified and temporary virtual storage resources. @@ -91,58 +95,40 @@ definitions: (for new and modified resources) or has been (for removed resources) available from the VIM. $ref: "SOL002SOL003_def.yaml#/definitions/ResourceHandle" + metadata: + description: > + Metadata about this resource. + The content of this attribute shall be a copy of the content of the + "metadata" attribute of the VirtualStorageResourceInfo structure. + $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - AffectedVnfc: + CpProtocolInfo: description: > - This type provides information about added, deleted, modified and - temporary VNFCs. - type: object - required: - - id - - vduId - - changeType - - computeResource - properties: - id: - description: > - Identifier of the Vnfc instance, identifying the applicable - "vnfcResourceInfo" entry in the "VnfInstance" data type. - $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" - vduId: - description: > - Identifier of the related VDU in the VNFD. - $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" - changeType: - description: > - Signals the type of change. Permitted values: - * ADDED - * REMOVED - * MODIFIED - * TEMPORARY - For a temporary resource, an AffectedVnfc structure exists as long - as the temporary resource exists. + This type describes the protocol layer(s) that a CP uses together with + protocol-related information, like addresses. + required: + - layerProtocol + properties: + layerProtocol: + description: > + The identifier of layer(s) and protocol(s) associated to the network + address information. + Permitted values: IP_OVER_ETHERNET + This attribute allows to signal the addition of further types of + layer and protocol in future versions of the present document in a + backwards-compatible way. In the current version of the present + document, only IP over Ethernet is supported. type: string - enum: - - ADDED - - REMOVED - - MODIFIED - - TEMPORARY - computeResource: - description: > - Reference to the VirtualCompute resource. Detailed information is - (for new and modified resources) or has been (for removed - resources) available from the VIM. - $ref: "SOL002SOL003_def.yaml#/definitions/ResourceHandle" - addedStorageResourceIds: + enum: + - IP_OVER_ETHERNET + ipOverEthernet: description: > - References to VirtualStorage resources that have been added. Each - value refers to a VirtualStorageResourceInfo item in the - VnfInstance that was added to the VNFC. It shall be provided if at - least one storage resource was added to the VNFC. - $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + IP addresses over Ethernet to assign to the extCP instance. Shall be + present if layerProtocol is equal to " IP_OVER_ETHERNET", and shall + be absent otherwise. + $ref: "#/definitions/IpOverEthernetAddressInfo" CreateVnfRequest: - #SOL003 location: 5.5.2.3 type: object required: - vnfdId @@ -161,59 +147,38 @@ definitions: Human-readable description of the VNF instance to be created. type: string - DynamicNetworkAddressData: - description: > - This type represents a network address that is requested to be assigned. + ExtManagedVirtualLinkInfo: type: object required: - - numIpAddresses + - id + - vnfVirtualLinkDescId properties: - macAddress: + id: 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: + Identifier of the externally-managed internal VL and the related + externally-managed VL information instance. + The identifier is assigned by the NFV-MANO entity that manages this + VL instance. + $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + vnfVirtualLinkDescId: 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: "SOL002SOL003_def.yaml#/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. + Identifier of the VNF Virtual Link Descriptor (VLD) in the VNFD. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + networkResource: + description: > + Reference to the VirtualNetwork resource. + $ref: "SOL002SOL003_def.yaml#/definitions/ResourceHandle" + vnfLinkPorts: + description: > + Link ports of this VL. 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)? + $ref: "#/definitions/VnfLinkPortInfo" - ExtLinkPort: + ExtLinkPortInfo: description: > - This type represents a link port of an external VL, i.e. a port providing - connectivity for the VNF to an NS VL. + This type represents information about a link port of an external VL, + i.e. a port providing connectivity for the VNF to an NS VL. type: object required: - id @@ -226,52 +191,17 @@ definitions: $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" resourceHandle: description: > - Reference to the virtualised network resource realizing this link + Reference to the virtualised resource realizing this link port. $ref: "SOL002SOL003_def.yaml#/definitions/ResourceHandle" cpInstanceId: description: > - Identifier of the external CP of the VNF to be connected to this link + Identifier of the external CP of the VNF connected to this link port. There shall be at most one link port associated with any external connection point instance. The value refers to an "extCpInfo" item in the VnfInstance. $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" - 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: "SOL002SOL003_def.yaml#/definitions/Identifier" - virtualLinkDescId: - description: > - The identifier of the VLD in the VNFD for this VL. - $ref: "SOL002SOL003_def.yaml#/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: "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" - ExtVirtualLinkInfo: type: object required: @@ -280,44 +210,91 @@ definitions: properties: id: description: > - Identifier of the external VL and the related external VL information - instance. + Identifier of the external VL and the related external VL + information instance. + The identifier is assigned by the NFV-MANO entity that manages this + VL instance. $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" resourceHandle: description: > Reference to the resource realizing this VL. $ref: "SOL002SOL003_def.yaml#/definitions/ResourceHandle" - linkPorts: + extLinkPorts: description: > Link ports of this VL. type: array items: - $ref: "#/definitions/ExtLinkPort" + $ref: "#/definitions/ExtLinkPortInfo" - FixedNetworkAddressData: - #SOL003 location: 4.4.1.8 + IpOverEthernetAddressInfo: description: > - This type represents a network address that is requested to be assigned. + This type represents information about a network address that has been + assigned. type: object + required: + - macAddress 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: + macAddress: 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: + Assigned MAC address. + $ref: "SOL002SOL003_def.yaml#/definitions/MacAddress" + ipAddresses: 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: "SOL002SOL003_def.yaml#/definitions/IdentifierInVim" + Addresses assigned to the CP instance. Each entry represents IP + addresses assigned by fixed or dynamic IP address assignment per + subnet. + type: array + items: + type: object + required: + - type + properties: + type: + description: > + The type of the IP addresses. + Permitted values: IPV4, IPV6. + type: string + enum: + - IPV4 + - IPV6 + addresses: + description: > + Fixed addresses assigned (from the subnet defined by + "subnetId" if provided). + type: array + items: + $ref: "SOL002SOL003_def.yaml#/definitions/IpAddress" + isDynamic: + description: > + Indicates whether this set of addresses was assigned + dynamically (true) or based on address information provided as + input from the API consumer (false). Shall be present if + "addresses" is present and shall be absent otherwise. + type: boolean + addressRange: + description: > + An IP address range used, e.g., in case of egress connections. + Exactly one of "addresses" or "addressRange" shall be present. + type: object + required: + - minAddress + - maxAddress + properties: + minAddress: + description: > + Lowest IP address belonging to the range. + $ref: "SOL002SOL003_def.yaml#/definitions/IpAddress" + maxAddress: + description: > + Highest IP address belonging to the range + $ref: "SOL002SOL003_def.yaml#/definitions/IpAddress" + subnetId: + description: > + Subnet defined by the identifier of the subnet resource in + the VIM. + In case this attribute is present, IP addresses are bound + to that subnet. + $ref: "SOL002SOL003_def.yaml#/definitions/IpAddress" LccnLinks: description: > @@ -430,31 +407,6 @@ definitions: - ROLLING_BACK - ROLLED_BACK - 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 - LifecycleChangeNotificationsFilter: description: > This type represents a subscription filter related to notifications @@ -495,7 +447,7 @@ definitions: otherwise. type: array items: - $ref: "#/definitions/LcmOperationType" + $ref: "SOL002SOL003_def.yaml#/definitions/LcmOperationType" operationStates: description: > Match particular LCM operation state values as reported in @@ -507,6 +459,37 @@ definitions: items: $ref: "#/definitions/LcmOperationStateType" + MonitoringParameter: + type: object + required: + - id + - value + - timeStamp + properties: + id: + description: > + Identifier of the monitoring parameter defined in the VNFD. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" + name: + description: > + Human readable name of the monitoring parameter, as defined in the + VNFD. + type: string + value: + description: > + Value of the monitoring parameter known to the VNFM (e.g. obtained + for autoscaling purposes). + The type of the "value" attribute (i.e. scalar, structure (Object in + JSON), or array (of scalars, arrays or structures/Objects)) is + assumed to be defined in an external measurement specification. + type: object + timeStamp: + description: > + Represents the point in time when the measurement has been performed, + as known to the VNFM. + Should be formatted according to ETF RFC 3339. + type: string + ScaleInfo: required: - aspectId @@ -606,95 +589,123 @@ definitions: A Version. type: string - VimConnectionInfo: + VirtualStorageResourceInfo: + description: > + This type represents the information that allows addressing a virtualised + resource that is used by a VNF instance. type: object required: - id - - vimType + - virtualStorageDescId + - storageResource properties: id: description: > - The identifier of the VIM Connection. This identifier is managed by - the NFVO. - $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" - vimId: + Identifier of this VirtualStorageResourceInfo instance. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + virtualStorageDescId: description: > - The identifier of the VIM instance. This identifier is managed by - the NFVO. - Shall be present to address additional information about the VIM if - such information has been configured into the VNFM by means outside - the scope of the present document, and should be absent otherwise. + Identifier of the VirtualStorageDesc in the VNFD. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" + storageResource: + description: > + Reference to the VirtualStorage resource. + $ref: "SOL002SOL003_def.yaml#/definitions/ResourceHandle" + reservationId: + description: > + The reservation identifier applicable to the resource. It shall be + present when an applicable reservation exists. $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" - vimType: - description: > - Discriminator for the different types of the VIM information. The - value of this attribute determines the structure of the - "interfaceInfo" and "accessInfo" attributes, based on the type of the - VIM. The set of permitted values is expected to change over time as - new types or versions of VIMs become available. - The ETSI NFV registry of VIM-related information provides access to - information about VimConnectionInfo definitions for various VIM - types. The structure of the registry is defined in Annex C of SOL003. - type: string - interfaceInfo: - description: > - Information about the interface or interfaces to the VIM, if - applicable, such as the URI of an interface endpoint to - communicate with the VIM. The applicable keys are dependent on the - content of vimType. - Alternatively, such information may have been configured into the - VNFM and bound to the vimId. - $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - accessInfo: - description: > - Authentication credentials for accessing the VIM, and other - access-related information such as tenants or infrastructure - resource groups (see note). The applicable keys are dependent on the - content of vimType. - If the VimConnectionInfo structure is part of an HTTP response - payload body, sensitive attributes that are children of this attributes - (such as passwords) shall not be included. - $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - extra: + metadata: description: > - VIM type specific additional information. The applicable structure, - and whether or not this attribute is available, is dependent on the - content of vimType. + Metadata about this resource. $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - - VnfExtCpData: - #SOL003 location: 4.4.1.10 + + VnfcResourceInfo: description: > - This type represents an external CP. + This type represents the information on virtualised compute and storage + resources used by a VNFC in a VNF instance. type: object - required: - - cpdId - properties: - cpdId: + required: + - id + - vduId + - computeResource + properties: + id: description: > - The identifier of the CPD in the VNFD. + Identifier of this VnfcResourceInfo instance. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + vduId: + description: > + Reference to the applicable VDU in the VNFD. $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" - fixedAddresses: + computeResource: description: > - List of (fixed) network addresses that need to be configured on the - CP. This attribute shall be present if fixed addresses need to be - configured. + Reference to the VirtualCompute resource. + $ref: "SOL002SOL003_def.yaml#/definitions/ResourceHandle" + storageResourceIds: + description: > + References to the VirtualStorage resources. The value refers to a + VirtualStorageResourceInfo item in the VnfInstance. type: array items: - $ref: "#/definitions/FixedNetworkAddressData" - dynamicAddresses: + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + reservationId: description: > - List of network addresses to be assigned dynamically. This attribute - shall be present if dynamic addresses need to be configured. + The reservation identifier applicable to the resource. It shall be + present when an applicable reservation exists. + $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + vnfcCpInfo: + description: > + CPs of the VNFC instance. + Shall be present when that particular CP of the VNFC instance is + associated to an external CP of the VNF instance. + May be present otherwise. type: array items: - $ref: "#/definitions/DynamicNetworkAddressData" + type: object + required: + - id + - cpdId + properties: + id: + description: > + Identifier of this VNFC CP instance and the associated array + entry. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + cpdId: + description: > + Identifier of the VDU CPD, cpdId, in the VNFD. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" + vnfExtCpId: + description: > + When the VNFC CP is exposed as external CP of the VNF, the + identifier of this external VNF CP. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + cpProtocolInfo: + description: > + Network protocol information for this CP. + type: array + items: + $ref: "#/definitions/CpProtocolInfo" + vnfLinkPortId: + description: > + Identifier of the "vnfLinkPorts" structure in the + "vnfVirtualLinkResourceInfo" structure. Shall be present if + the CP is associated to a link port. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + metadata: + description: > + Metadata about this resource. + $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" VnfIdentifierCreationNotification: description: > This type represents a VNF identifier creation notification, which informs the receiver of the creation of a new VNF instance resource and the associated VNF instance identifier. + This notification shall be triggered by the VNFM when it has created a + VNF instance resource and the associated VNF instance identifier. type: object required: - id @@ -743,6 +754,8 @@ definitions: This type represents a VNF identifier deletion notification, which informs the receiver of the deletion of a new VNF instance resource and the associated VNF instance identifier. + This notification shall be triggered by the VNFM when it has deleted a + VNF instance resource and the associated VNF instance identifier. type: object required: - id @@ -782,302 +795,418 @@ definitions: $ref: "#/definitions/LccnLinks" VnfInfoModifications: - #SOL003 location: 5.5.2.12 description: > - This type represents attribute modifications for an - "Individual VNF instance" resource, i.e. modifications to a resource - representation based on the "VnfInstance" data type. The attributes of - "VnfInstance" that can be modified according to the provisions in - clause 5.5.2.2 are included in the "VnfInfoModifications" data type. + This type represents attribute modifications that were performed on an + "Individual VNF instance" resource. The attributes that can be included + consist of those requested to be modified explicitly in the + "VnfInfoModificationRequest" data structure, and additional attributes + of the "VnfInstance" data structure that were modified implicitly e.g. + when modifying the referenced VNF package. type: object properties: vnfInstanceName: description: > - New value of the "vnfInstanceName" attribute in "VnfInstance", or - "null" to remove the attribute. + If present, this attribute signals modifications of the + "vnfInstanceName" attribute in "VnfInstance". type: string vnfInstanceDescription: description: > - New value of the "vnfInstanceDescription" attribute in - "VnfInstance", or "null" to remove the attribute. + If present, this attribute signals modifications of the + "vnfInstanceDescription" attribute in "VnfInstance". type: string - onboardedVnfPkgInfoId: - description: > - New value of the "onboardedVnfPkgInfoId" attribute in "VnfInstance". - The value "null" is not permitted. - $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" vnfConfigurableProperties: description: > - Modifications of the "vnfConfigurableProperties" attribute in - "VnfInstance". If present, these modifications shall be applied - according to the rules of JSON Merge PATCH (see IETF RFC 7396). + If present, this attribute signals modifications of the + "vnfConfigurableProperties" attribute in "VnfInstance". $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" metadata: description: > - Modifications of the "metadata" attribute in "VnfInstance". If - present, these modifications shall be applied according to the rules - of JSON Merge PATCH (see IETF RFC 7396). + If present, this attribute signals modifications of the "metadata" + attribute in "VnfInstance". $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" extensions: description: > - Modifications of the "extensions" attribute in "VnfInstance". If - present, these modifications shall be applied according to the rules - of JSON Merge PATCH (see IETF RFC 7396). + If present, this attribute signals modifications of the "extensions" + attribute in "VnfInstance". $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" vimConnectionInfo: description: > - New content of certain entries in the "vimConnectionInfo" attribute - array in "VnfInstance", as defined below this table. - $ref: "#/definitions/VimConnectionInfo" - - VnfInstanceSubscriptionFilter: - description: > - This type represents subscription filter criteria to match VNF - instances. - type: object - properties: - vnfdIds: - description: > - If present, match VNF instances that were created based on a VNFD - identified by one of the vnfdId values listed in this attribute. - The attributes "vnfdIds" and "vnfProductsFromProviders" are - alternatives to reference to VNF instances that are based on certain - VNFDs in a filter. They should not be used both in the same filter - instance, but one alternative should be chosen. + If present, this attribute signals modifications of certain entries + in the "vimConnectionInfo" attribute array in "VnfInstance". type: array items: - $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" - vnfProductsFromProviders: - description: > - If present, match VNF instances that belong to VNF products from - certain providers. - The attributes "vnfdIds" and "vnfProductsFromProviders" are - alternatives to reference to VNF instances that are based on certain - VNFDs in a filter. They should not be used both in the same filter - instance, but one alternative should be chosen. - type: array - items: - type: object - required: - - vnfProvider - properties: - vnfProvider: - description: > - Name of the VNF provider to match. - type: string - vnfProducts: - description: > - If present, match VNF instances that belong to VNF products - with certain product names, from one particular provider. - type: array - items: - type: object - required: - - vnfProductName - properties: - vnfProductName: - description: > - Name of the VNF product to match. - type: string - versions: - description: > - If present, match VNF instances that belong to VNF - products with certain versions and a certain product - name, from one particular provider. - type: array - items: - type: object - required: - - vnfSoftwareVersions - properties: - vnfSoftwareVersions: - description: > - Software version to match. - $ref: "#/definitions/Version" - vnfdVersions: - description: > - If present, match VNF instances that belong to VNF - products with certain VNFD versions, a certain - software version and a certain product name, from - one particular provider. - type: array - items: - $ref: "#/definitions/Version" + $ref: "SOL002SOL003_def.yaml#/definitions/VimConnectionInfo" + vnfPkgId: + description: > + If present, this attribute signals modifications of the "vnfPkgId" + attribute in "VnfInstance". + $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + vnfdId: + description: > + If present, this attribute signals modifications of the "vnfdId" + attribute in "VnfInstance". + If present, this attribute (which depends on the value of the + "vnfPkgId" attribute) was modified implicitly following a request to + modify the "vnfPkgId" attribute, by copying the value of this + attribute from the VNFD in the VNF Package identified by the + "vnfPkgId” attribute. + $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + vnfProvider: + description: > + If present, this attribute signals modifications of the + "vnfProvider" attribute in "VnfInstance". + If present, this attribute (which depends on the value of the + "vnfPkgId" attribute) was modified implicitly following a request to + modify the "vnfPkgId" attribute, by copying the value of this + attribute from the VNFD in the VNF Package identified by the + "vnfPkgId” attribute. + type: string + vnfProductName: + description: > + If present, this attribute signals modifications of the + "vnfProductName" attribute in "VnfInstance". + If present, this attribute (which depends on the value of the + "vnfPkgId" attribute) was modified implicitly following a request to + modify the "vnfPkgId" attribute, by copying the value of this + attribute from the VNFD in the VNF Package identified by the + "vnfPkgId” attribute. + type: string + vnfSoftwareVersion: + description: > + If present, this attribute signals modifications of the + "vnfSoftwareVersion" attribute in "VnfInstance". + $ref: "SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Version" + vnfdVersion: + description: > + If present, this attribute signals modifications of the + "vnfdVersion" attribute in "VnfInstance". + If present, this attribute (which depends on the value of the + "vnfPkgId" attribute) was modified implicitly following a request to + modify the "vnfPkgId" attribute, by copying the value of this + attribute from the VNFD in the VNF Package identified by the + "vnfPkgId” attribute. + $ref: "SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Version" - VnfLcmOperationOccurrenceNotification: + VnfInstance: description: > - This type represents a VNF lifecycle management operation occurrence - notification, which informs the receiver of changes in the VNF - lifecycle caused by a VNF LCM operation occurrence. The support of the - notification is mandatory. - This notification is produced when there is a change in the VNF - lifecycle caused by a VNF LCM operation occurrence, including: - * Instantiation of the VNF - * Scaling of the VNF instance (including auto-scaling) - * Healing of the VNF instance (including auto-healing) - * Change of the state of the VNF instance (i.e. Operate VNF) - * Change of the deployment flavour of the VNF instance - * Change of the external virtual links of the VNF instance - * Termination of the VNF instance - * Modification of VNF instance information and/or VNF configurable - properties through the "PATCH" method on the "Individual VNF instance" - resource - If this is the initial notification about the start of a VNF LCM - operation occurrence, it is assumed that the notification is sent by the - VNFM before any action (including sending the grant request) is taken, - however, after acknowledging the LCM operation request to the consumer. - Due to possible race conditions, this does not guarantee that the - notification will also arrive at the NFVO before the grant request, and - after the acknowledgement of the operation. It is not an error if the - "start" notification, the grant request and the LCM operation - acknowledgment arrive out of order at the NFVO, and the NFVO shall be - able to handle such a situation. - If this is a notification about a final or intermediate result state of - a VNF LCM operation occurrence, the notification shall be sent after - all related actions of the LCM operation that led to this state have - been executed. The new state shall be set in the VnfLcmOpOcc resource - before the notification about the state change is sent. + This type represents a VNF instance. type: object required: - id - - notificationType - - timeStamp - - notificationStatus - - operationState - - vnfInstanceId - - operation - - isAutomaticInvocation - - vnfLcmOpOccId - - _links + - vnfdId + - vnfProvider + - vnfProductName + - vnfSoftwareVersion + - vnfdVersion + - vnfPkgId + - instantiationState properties: id: description: > - Identifier of this notification. If a notification is sent multiple - times due to multiple subscriptions, the "id" attribute of all these - notifications shall have the same value. + Identifier of the VNF instance. $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" - notificationType: + vnfInstanceName: description: > - Discriminator for the different notification types. Shall be set to - "VnfLcmOperationOccurrenceNotification" for this notification type. + Name of the VNF instance. + This attribute can be modified with the PATCH method. type: string - enum: - - VnfLcmOperationOccurrenceNotification - subscriptionId: + vnfInstanceDescription: description: > - Identifier of the subscription that this notification relates to. + Human-readable description of the VNF instance. + This attribute can be modified with the PATCH method. + type: string + vnfdId: + description: > + Identifier of the VNFD on which the VNF instance is based. $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" - timeStamp: + vnfProvider: description: > - Date-time of the generation of the notification. - $ref: "SOL002SOL003_def.yaml#/definitions/DateTime" - notificationStatus: + Provider of the VNF and the VNFD. The value is copied from the VNFD. + type: string + vnfProductName: description: > - Indicates whether this notification reports about the start of a - lifecycle operation or the result of a lifecycle operation. - Permitted values: - * START: Informs about the start of the VNF LCM operation - occurrence. - * RESULT: Informs about the final or intermediate result of the VNF - LCM operation occurrence. + Name to identify the VNF Product. The value is copied from the VNFD. type: string - enum: - - START - - RESULT - operationState: + vnfSoftwareVersion: + description: > + Software version of the VNF. The value is copied from the VNFD. + $ref: "SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Version" + vnfdVersion: + description: > + Identifies the version of the VNFD. The value is copied from the VNFD. + $ref: "SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Version" + vnfPkgId: + description: > + Identifier of information held by the NFVO about the specific VNF + package on which the VNF is based. This identifier was allocated by + the NFVO. This attribute can be modified with the PATCH method. + Modifying the value of this attribute shall not be performed when + conflicts exist between the previous and the newly referred VNF + package, i.e. when the new VNFD is not changed with respect to the + previous VNFD apart from referencing to other VNF software images. + In order to avoid misalignment of the VnfInstance with the current + VNF's on-boarded VNF Package, the values of attributes in the + VnfInstance that have corresponding attributes in the VNFD shall be + kept in sync with the values in the VNFD. + $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + vnfConfigurableProperties: description: > - The state of the VNF LCM operation occurrence. - $ref: "#/definitions/LcmOperationStateType" - vnfInstanceId: + Current values of the configurable properties of the VNF instance. + Configurable properties referred in this attribute are declared in + the VNFD. + ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD + based on TOSCA specifications. + VNF configurable properties are sometimes also referred to as + configuration parameters applicable to a VNF. Some of these are set + prior to instantiation and cannot be modified if the VNF is + instantiated, some are set prior to instantiation (are part of + initial configuration) and can be modified later, and others can be + set only after instantiation. The applicability of certain + configuration may depend on the VNF and the required operation of + the VNF at a certain point in time. + These configurable properties include the following standard + attributes, which are declared in the VNFD if auto-scaling and/or + auto-healing are supported by the VNF: + * isAutoscaleEnabled: If present, the VNF supports auto-scaling. If + set to true, auto-scaling is currently enabled. If set to false, + auto-scaling is currently disabled. + * isAutohealEnabled: If present, the VNF supports auto-healing. If + set to true, auto-healing is currently enabled. If set to false, + auto-healing is currently disabled. + This attribute can be modified with the PATCH method. + $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + vimConnectionInfo: description: > - The identifier of the VNF instance affected. - $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" - operation: - description: > - The lifecycle management operation. - $ref: "SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LcmOperationType" - isAutomaticInvocation: - description: > - Set to true if this VNF LCM operation occurrence has been triggered - by an automated procedure inside the VNFM - (i.e. ScaleVnf / ScaleVnfToLevel triggered by auto-scale, or HealVnf - triggered by auto-heal). - Set to false otherwise. - type: boolean - vnfLcmOpOccId: - description: > - The identifier of the VNF lifecycle management operation occurrence - associated to the notification. - $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" - affectedVnfcs: - description: > - Information about VNFC instances that were affected during the - lifecycle operation. - Shall be present if the "notificationStatus" is set to "RESULT" and - the operation has performed any resource modification. Shall be - absent otherwise. This attribute contains information about the - cumulative changes to virtualised resources that were performed so - far by the VNF LCM operation occurrence and by any of the error - handling procedures for that operation occurrence. - type: array - items: - $ref: "#/definitions/AffectedVnfc" - affectedVirtualLinks: - description: > - Information about VL instances that were affected during the - lifecycle operation. - Shall be present if the "notificationStatus" is set to "RESULT" and - the operation has performed any resource modification. Shall be - absent otherwise. This attribute contains information about the - cumulative changes to virtualised resources that were performed so - far by the VNF LCM operation occurrence and by any of the error - handling procedures for that operation occurrence. + Information about VIM connections to be used for managing the + resources for the VNF instance. This attribute shall only be + supported and present if VNF-related resource management in direct + mode is applicable. + This attribute can be modified with the PATCH method. type: array items: - $ref: "#/definitions/AffectedVirtualLink" - affectedVirtualStorages: - description: > - Information about virtualised storage instances that were affected - during the lifecycle operation. - Shall be present if the "notificationStatus" is set to "RESULT" and - the operation has performed any resource modification. Shall be - absent otherwise. This attribute contains information about the - cumulative changes to virtualised resources that were performed so - far by the VNF LCM operation occurrence and by any of the error - handling procedures for that operation occurrence. - type: array - items: - $ref: "#/definitions/AffectedVirtualStorage" - changedInfo: - description: > - Information about the changed VNF instance information, including - changed VNF configurable properties. - Shall be present if the "notificationStatus" is set to "RESULT" and - the operation has performed any changes to VNF instance information, - including VNF configurable properties. - Shall be absent otherwise. - $ref: "#/definitions/VnfInfoModifications" - changedExtConnectivity: - description: > - Information about changed external connectivity, if this - notification represents the result of a lifecycle operation - occurrence. Shall be present if the "notificationStatus" is set to - "RESULT" and the "operation" is set to "CHANGE_EXT_CONN". - Shall be absent otherwise. - type: array - items: - $ref: "#/definitions/ExtVirtualLinkInfo" - error: + $ref: "SOL002SOL003_def.yaml#/definitions/VimConnectionInfo" + instantiationState: description: > - Details of the latest error, if one has occurred during executing - the LCM operation. Shall be present if the "operationState" - attribute is "FAILED_TEMP" or "FAILED", and shall be absent - otherwise. - $ref: "SOL002SOL003_def.yaml#/definitions/ProblemDetails" + The instantiation state of the VNF. + type: string + enum: + - NOT_INSTANTIATED + - INSTANTIATED + instantiatedVnfInfo: + description: > + Information specific to an instantiated VNF instance. This attribute + shall be present if the instantiateState attribute value is + INSTANTIATED. + type: object + required: + - flavourId + - vnfState + properties: + flavourId: + description: > + Identifier of the VNF deployment flavour applied to this VNF instance. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" + vnfState: + description: > + The state of the VNF instance. + $ref: "SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfOperationalStateType" + scaleStatus: + description: > + Scale status of the VNF, one entry per aspect. Represents for every + scaling aspect how "big" the VNF has been scaled w.r.t. that aspect. + type: array + items: + $ref: "#/definitions/ScaleInfo" + extCpInfo: + description: > + Information about the external CPs exposed by the VNF instance. + type: array + minItems: 1 + items: + type: object + required: + - id + - cpdId + properties: + id: + description: > + Identifier of the external CP instance and the related information + instance. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + cpdId: + description: > + Identifier of the external CPD, VnfExtCpd, in the VNFD. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" + cpProtocolInfo: + description: > + Network protocol information for this CP. + type: array + items: + $ref: "#/definitions/CpProtocolInfo" + extLinkPortId: + description: > + Identifier of the "extLinkPortInfo" structure inside the the + "extVirtualLinkInfo" structure. Shall be present if the CP is + associated to a link port. + $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + extVirtualLinkInfo: + description: > + Information about the external VLs the VNF instance is connected to. + type: array + items: + $ref: "#/definitions/ExtVirtualLinkInfo" + extManagedVirtualLinkInfo: + description: > + External virtual links the VNF instance is connected to. + type: array + items: + $ref: "#/definitions/ExtManagedVirtualLinkInfo" + monitoringParameters: + description: > + Active monitoring parameters. + type: array + items: + $ref: "#/definitions/MonitoringParameter" + localizationLanguage: + description: > + Information about localization language of the VNF (includes e.g. + strings in the VNFD). The localization languages supported by a VNF + can be declared in the VNFD, and localization language selection can + take place at instantiation time. + The value shall comply with the format defined in IETF RFC 5646. + type: string + vnfcResourceInfo: + description: > + Information about the virtualised compute and storage resources used + by the VNFCs of the VNF instance. + type: array + items: + $ref: "#/definitions/VnfcResourceInfo" + virtualLinkResourceInfo: + description: > + Information about the virtualised network resources used by the VLs + of the VNF instance. + type: array + items: + $ref: "#/definitions/VnfVirtualLinkResourceInfo" + virtualStorageResourceInfo: + description: > + Information on the virtualised storage resource(s) used as storage for the VNF instance. + type: array + items: + $ref: "#/definitions/VirtualStorageResourceInfo" + metadata: + description: > + Additional VNF-specific metadata describing the VNF instance. + Metadata that are writeable are declared in the VNFD. + This attribute can be modified with the PATCH method. + $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + extensions: + description: > + VNF-specific attributes that affect the lifecycle management of this + VNF instance by the VNFM, or the lifecycle management scripts. + Extensions that are writeable are declared in the VNFD. + This attribute can be modified with the PATCH method. + $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" _links: description: > - Links to resources related to this notification. - $ref: "#/definitions/LccnLinks" + Links to resources related to this resource. + type: object + required: + - self + properties: + self: + description: URI of this resource. + $ref: "SOL002SOL003_def.yaml#/definitions/Link" + indicators: + description: Indicators related to this VNF instance, if applicable. + $ref: "SOL002SOL003_def.yaml#/definitions/Link" + instantiate: + description: > + Link to the "instantiate" task resource, if the related operation + is possible based on the current status of this VNF instance + resource (i.e. VNF instance in NOT_INSTANTIATED state). + $ref: "SOL002SOL003_def.yaml#/definitions/Link" + terminate: + description: > + Link to the "terminate" task resource, if the related operation + is possible based on the current status of this VNF instance + resource (i.e. VNF instance is in INSTANTIATED state). + $ref: "SOL002SOL003_def.yaml#/definitions/Link" + scale: + description: > + Link to the "scale" task resource, if the related operation is + supported for this VNF instance, and is possible based on the + current status of this VNF instance resource (i.e. VNF instance + is in INSTANTIATED state). + $ref: "SOL002SOL003_def.yaml#/definitions/Link" + scaleToLevel: + description: > + Link to the "scale_to_level" task resource, if the related + operation is supported for this VNF instance, and is possible + based on the current status of this VNF instance resource + (i.e. VNF instance is in INSTANTIATED state). + $ref: "SOL002SOL003_def.yaml#/definitions/Link" + changeFlavour: + description: > + Link to the "change_flavour" task resource, if the related + operation is supported for this VNF instance, and is possible + based on the current status of this VNF instance resource + (i.e. VNF instance is in INSTANTIATED state). + $ref: "SOL002SOL003_def.yaml#/definitions/Link" + heal: + description: > + Link to the "heal" task resource, if the related operation is + supported for this VNF instance, and is possible based on the + current status of this VNF instance resource + (i.e. VNF instance is in INSTANTIATED state). + $ref: "SOL002SOL003_def.yaml#/definitions/Link" + operate: + description: > + Link to the "operate" task resource, if the related operation is + supported for this VNF instance, and is possible based on the + current status of this VNF instance resource + (i.e. VNF instance is in INSTANTIATED state). + $ref: "SOL002SOL003_def.yaml#/definitions/Link" + changeExtConn: + description: > + Link to the "change_ext_conn" task resource, if the related + operation is possible based on the current status of this VNF + instance resource (i.e. VNF instance is in INSTANTIATED state). + $ref: "SOL002SOL003_def.yaml#/definitions/Link" + + VnfLinkPortInfo: + type: object + required: + - id + - resourceHandle + properties: + id: + description: > + Identifier of this link port as provided by the entity that has created the link port. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + resourceHandle: + description: > + Reference to the virtualised network resource realizing this link + port. + $ref: "SOL002SOL003_def.yaml#/definitions/ResourceHandle" + cpInstanceId: + description: > + When the link port is used for external connectivity by the VNF, + this attribute represents the identifier of the external CP of the + VNF to be connected to this link port. + When the link port is used for internal connectivity in the VNF, + this attribute represents the VNFC CP to be connected to this link + port. + Shall be present when the link port is used for external + connectivity by the VNF. + May be present if used to reference a VNFC CP instance. + There shall be at most one link port associated with any external + connection point instance or internal connection point + (i.e. VNFC CP) instance. + The value refers to an "extCpInfo" item in the VnfInstance or a + "vnfcCpInfo" item of a "vnfcResouceInfo" item in the VnfInstance. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" VnfOperationalStateType: type: string @@ -1086,3 +1215,44 @@ definitions: - STOPPED - ERROR + VnfVirtualLinkResourceInfo: + description: > + This type represents the information that allows addressing a virtualised + resource that is used by an internal VL instance in a VNF instance. + type: object + required: + - id + - vnfVirtualLinkDescId + - networkResource + properties: + id: + description: > + Identifier of this VnfVirtualLinkResourceInfo instance. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + vnfVirtualLinkDescId: + description: > + Identifier of the VNF Virtual Link Descriptor (VLD) in the VNFD. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" + networkResource: + description: > + Reference to the VirtualNetwork resource. + $ref: "SOL002SOL003_def.yaml#/definitions/ResourceHandle" + reservationId: + description: > + The reservation identifier applicable to the resource. It shall be + present when an applicable reservation exists. + $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + vnfLinkPorts: + description: > + Links ports of this VL. + Shall be present when the linkPort is used for external connectivity + by the VNF (refer to VnfLinkPortInfo). + May be present otherwise. + type: array + items: + $ref: "#/definitions/VnfLinkPortInfo" + metadata: + description: > + Metadata about this resource. + $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + diff --git a/src/definitions/SOL002SOL003VNFPerformanceManagement_def.yaml b/src/definitions/SOL002SOL003VNFPerformanceManagement_def.yaml index 96480305..f63fecd7 100644 --- a/src/definitions/SOL002SOL003VNFPerformanceManagement_def.yaml +++ b/src/definitions/SOL002SOL003VNFPerformanceManagement_def.yaml @@ -50,6 +50,8 @@ definitions: available. The timing of sending this notification is determined by the capability of the producing entity to evaluate the threshold crossing condition. + The notification shall be triggered by the VNFM when new performance + information collected by a PM job is available. type: object required: - id @@ -198,8 +200,9 @@ definitions: performanceMetric: description: > This defines the types of performance metrics for the specified - object instances. At least one of the two attributes - (performance metric or group) shall be present. + object instances, as specified in ETSI GS NFV-IFA 027). At least one + of the two attributes (performance metric or group) shall be + present. type: array items: type: string @@ -383,7 +386,8 @@ definitions: properties: performanceMetric: description: > - Defines the performance metric associated with the threshold. + Defines the performance metric associated with the + threshold, as specified in ETSI GS NFV-IFA 027). type: string thresholdType: description: > @@ -433,6 +437,8 @@ definitions: description: > This type represents a notification that is sent when a threshold has been crossed. + The notification shall be triggered by the VNFM when a threshold has + been crossed. type: object required: - id @@ -487,10 +493,10 @@ definitions: performanceValue: description: > Value of the metric that resulted in threshold crossing. - The type of the "performanceValue" attribute (i.e. scalar, - structure (Object in JSON), or array (of scalars, arrays or - structures / Objects)) is assumed to be defined in an external - measurement specification outside the scope of the present document. + The type of the "performanceValue" attribute (i.e. scalar, structure + (Object in JSON), or array (of scalars, arrays or + structures / Objects)) is assumed to be defined in the external + measurement specification (see ETSI GS NFV-IFA 027). type: object _links: description: > diff --git a/src/definitions/SOL002SOL003_def.yaml b/src/definitions/SOL002SOL003_def.yaml index 4f37d159..abac310e 100644 --- a/src/definitions/SOL002SOL003_def.yaml +++ b/src/definitions/SOL002SOL003_def.yaml @@ -3,6 +3,84 @@ definitions: + AffectedVnfc: + description: > + This type provides information about added, deleted, modified and + temporary VNFCs. + type: object + required: + - id + - vduId + - changeType + - computeResource + properties: + id: + description: > + Identifier of the Vnfc instance, identifying the applicable + "vnfcResourceInfo" entry in the "VnfInstance" data type. + $ref: "#/definitions/IdentifierInVnf" + vduId: + description: > + Identifier of the related VDU in the VNFD. + $ref: "#/definitions/IdentifierInVnfd" + changeType: + description: > + Signals the type of change. Permitted values: + * ADDED + * REMOVED + * MODIFIED + * TEMPORARY + For a temporary resource, an AffectedVnfc structure exists as long + as the temporary resource exists. + type: string + enum: + - ADDED + - REMOVED + - MODIFIED + - TEMPORARY + computeResource: + description: > + Reference to the VirtualCompute resource. Detailed information is + (for new and modified resources) or has been (for removed + resources) available from the VIM. + $ref: "#/definitions/ResourceHandle" + metadata: + description: > + Metadata about this resource. + The content of this attribute shall be a copy of the content of the + "metadata" attribute of the VnfcResourceInfo structure. + $ref: "#/definitions/KeyValuePairs" + affectedVnfcCpIds: + description: > + Identifiers of CP(s) of the VNFC instance that were affected by the + change. + Shall be present for those affected CPs of the VNFC instance that + are associated to an external CP of the VNF instance. + May be present for further affected CPs of the VNFC instance. + type: array + items: + $ref: "#/definitions/IdentifierInVnf" + addedStorageResourceIds: + description: > + References to VirtualStorage resources that have been added. Each + value refers to a VirtualStorageResourceInfo item in the + VnfInstance that was added to the VNFC. It shall be provided if at + least one storage resource was added to the VNFC. + type: array + items: + $ref: "#/definitions/IdentifierInVnf" + removedStorageResourceIds: + description: > + References to VirtualStorage resources that have been removed. + The value contains the identifier of a VirtualStorageResourceInfo + item that has been removed from the VNFC, and might no longer exist + in the VnfInstance. + It shall be provided if at least one storage resource was removed + from the VNFC. + type: array + items: + $ref: "#/definitions/IdentifierInVnf" + Link: description: > This type represents a link to a resource. @@ -35,6 +113,30 @@ definitions: type: string format: IP + CpProtocolData: + description: > + This type represents network protocol data. + type: object + required: + - layerProtocol + properties: + layerProtocol: + description: > + Identifier of layer(s) and protocol(s). + This attribute allows to signal the addition of further types of + layer and protocol in future versions of the present document in a + backwards-compatible way. In the current version of the present + document, only IP over Ethernet is supported. + type: string + enum: + - IP_OVER_ETHERNET + ipOverEthernet: + description: > + Network address data for IP over Ethernet to assign to the extCP + instance. Shall be present if layerProtocol is equal to + "IP_OVER_ETHERNET", and shall be absent otherwise. + $ref: "#/definitions/IpOverEthernetAddressData" + DateTime: description: > Date-time stamp. @@ -42,57 +144,26 @@ definitions: type: string format: "date-time" - DynamicNetworkAddressData: + ExtLinkPortData: description: > - This type represents a network address that is requested to be assigned. + This type represents an externally provided link port to be used to + connect an external connection point to an external VL. type: object - required: - - numIpAddresses + required: + - id + - resourceHandle 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: + id: 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: + Identifier of this link port as provided by the entity that has + created the link port. + $ref: "#/definitions/Identifier" + resourceHandle: 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)? + Reference to the virtualised resource realizing this link port. + $ref: "#/definitions/ResourceHandle" ExtManagedVirtualLinkData: - #SOL003 location: 4.4.1.12 type: object required: - id @@ -101,7 +172,9 @@ definitions: properties: id: description: > - The identifier of the externally-managed internal VL instance. + The identifier of the externally-managed internal VL instance. The + identifier is assigned by the NFV-MANO entity that manages this VL + instance. $ref: "#/definitions/Identifier" virtualLinkDescId: description: > @@ -127,7 +200,6 @@ definitions: $ref: "#/definitions/IdentifierInVim" ExtVirtualLinkData: - #SOL003 location: 4.4.1.11 description: > This type represents an external VL. type: object @@ -138,7 +210,8 @@ definitions: properties: id: description: > - The identifier of the external VL instance. + The identifier of the external VL instance. The identifier is + assigned by the NFV-MANO entity that manages this VL instance. $ref: "#/definitions/Identifier" vimConnectionId: description: > @@ -165,31 +238,14 @@ definitions: 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: + extLinkPorts: 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" + Externally provided link ports to be used to connect external + connection points to this external VL. If this attribute is not + present, the VNFM shall create the link ports on the external VL. + type: array + items: + $ref: "#/definitions/ExtLinkPortData" Identifier: description: > @@ -213,6 +269,81 @@ definitions: An identifier that is unique within a VNF descriptor. type: string + IpOverEthernetAddressData: + description: > + This type represents network address data for IP over Ethernet. + type: object + properties: + macAddress: + description: > + MAC address. If this attribute is not present, it shall be chosen by + the VIM. + At least one of "macAddress" or "ipAddresses" shall be present. + $ref: "#/definitions/MacAddress" + ipAddresses: + description: > + List of IP addresses to assign to the CP instance. Each entry + represents IP address data for fixed or dynamic IP address + assignment per subnet. + If this attribute is not present, no IP address shall be assigned. + type: array + items: + type: object + required: + - type + properties: + type: + description: > + The type of the IP addresses. + Permitted values: IPV4, IPV6. + type: string + enum: + - IPV4 + - IPV6 + fixedAddresses: + description: > + Fixed addresses to assign (from the subnet defined by + "subnetId" if provided). + Exactly one of "fixedAddresses", "numDynamicAddresses" or + "ipAddressRange" shall be present. + type: array + items: + $ref: "#/definitions/IpAddress" + numDynamicAddresses: + description: > + Number of dynamic addresses to assign (from the subnet defined + by "subnetId" if provided). + Exactly one of "fixedAddresses", "numDynamicAddresses" or + "ipAddressRange" shall be present. + type: integer + addressRange: + description: > + An IP address range to be used, e.g. in case of egress + connections. + In case this attribute is present, IP addresses from the range + will be used. + type: object + required: + - minAddress + - maxAddress + properties: + minAddress: + description: > + Lowest IP address belonging to the range. + $ref: "#/definitions/IpAddress" + maxAddress: + description: > + Highest IP address belonging to the range. + $ref: "#/definitions/IpAddress" + subnetId: + description: > + Subnet defined by the identifier of the subnet resource in the + VIM. + In case this attribute is present, IP addresses from that + subnet will be assigned; otherwise, IP addresses not bound to + a subnet will be assigned. + $ref: "#/definitions/IdentifierInVim" + KeyValuePairs: description: > This type represents a list of key-value pairs. The order of the pairs in the list is not significant. @@ -349,18 +480,25 @@ definitions: properties: authType: description: > - Defines the type of Authentication / Authorization to use when - sending a notification. + Defines the types of Authentication / Authorization which the API + consumer is willing to accept when receiving a notification. Permitted values: - * BASIC: In every POST request that sends a notification, use - HTTP Basic authentication with the client credentials. - * OAUTH2_CLIENT_CREDENTIALS: In every POST request that sends a - notification, use an OAuth 2.0 Bearer token, obtained using the - client credentials grant type. - type: string - enum: - - BASIC - - OAUTH2_CLIENT_CREDENTIALS + * BASIC: In every HTTP request to the notification endpoint, use + HTTP Basic authentication with the client credentials. + * OAUTH2_CLIENT_CREDENTIALS: In every HTTP request to the + notification endpoint, use an OAuth 2.0 Bearer token, obtained + using the client credentials grant type. + * TLS_CERT: Every HTTP request to the notification endpoint is sent + over a mutually authenticated TLS session, i.e. not only the + server is authenticated, but also the client is authenticated + during the TLS tunnel setup. + type: array + items: + type: string + enum: + - BASIC + - OAUTH2_CLIENT_CREDENTIALS + - TLS_CERT paramsBasic: description: > Parameters for authentication/authorization using BASIC. @@ -422,17 +560,31 @@ definitions: type: string VimConnectionInfo: + description: > + This type represents parameters to connect to a VIM for managing the + resources of a VNF instance. + This structure is used to convey VIM-related parameters over the Or-Vnfm + interface. Additional parameters for a VIM may be configured into the + VNFM by means outside the scope of the present document, and bound to + the identifier of that VIM. type: object required: - id - vimType - discriminator: vimType properties: id: description: > The identifier of the VIM Connection. This identifier is managed by the NFVO. $ref: "#/definitions/Identifier" + vimId: + description: > + The identifier of the VIM instance. This identifier is managed by + the NFVO. + Shall be present to address additional information about the VIM if + such information has been configured into the VNFM by means outside + the scope of the present document, and should be absent otherwise. + $ref: "#/definitions/Identifier" vimType: description: > Discriminator for the different types of the VIM information. The @@ -440,16 +592,109 @@ definitions: "interfaceInfo" and "accessInfo" attributes, based on the type of the VIM. The set of permitted values is expected to change over time as new types or versions of VIMs become available. + The ETSI NFV registry of VIM-related information provides access to + information about VimConnectionInfo definitions for various VIM + types. The structure of the registry is defined in Annex C of SOL003. type: string - enum: - # These are only examples - - EXAMPLE_OPENSTACK - - EXAMPLE_VMWARE_VCLOUD + interfaceInfo: + description: > + Information about the interface or interfaces to the VIM, if + applicable, such as the URI of an interface endpoint to + communicate with the VIM. The applicable keys are dependent on the + content of vimType. + Alternatively, such information may have been configured into the + VNFM and bound to the vimId. + $ref: "#/definitions/KeyValuePairs" + accessInfo: + description: > + Authentication credentials for accessing the VIM, and other + access-related information such as tenants or infrastructure + resource groups (see note). The applicable keys are dependent on the + content of vimType. + If the VimConnectionInfo structure is part of an HTTP response + payload body, sensitive attributes that are children of this attributes + (such as passwords) shall not be included. + If the VimConnectionInfo structure is part of an HTTP request payload + body, sensitive attributes that are children of this attribute (such + as passwords) shall be present if they have not been provisioned out + of band. + $ref: "#/definitions/KeyValuePairs" + extra: + description: > + VIM type specific additional information. The applicable structure, + and whether or not this attribute is available, is dependent on the + content of vimType. + $ref: "#/definitions/KeyValuePairs" + + VnfExtCpConfig: + description: > + This type represents an externally provided link port or network address + information per instance of an external connection point. In case a link + port is provided, the VNFM shall use that link port when connecting the + external CP to the external VL. In a link port is not provided, the VNFM + shall create a link port on the external VL, and use that link port to + connect the external CP to the external VL. + type: object + properties: + cpInstanceId: + description: > + Identifier of the external CP instance to which this set of + configuration parameters is requested to be applied. + Shall be present if this instance has already been created. + $ref: "#/definitions/IdentifierInVnf" + linkPortId: + description: > + Identifier of a pre-configured link port to which the external CP + will be associated. + The following conditions apply to the attributes "linkPortId" and + "cpProtocolData": + * The "linkPortId" and "cpProtocolData" attributes shall both be + absent for the deletion of an existing external CP instance + addressed by cpInstanceId. + * At least one of these attributes shall be present for a + to-be-created external CP instance or an existing external + CP instance. + * If the "linkPortId" attribute is absent, the VNFM shall create a + link port. + * If the "cpProtocolData" attribute is absent, the "linkPortId" + attribute shall be provided referencing a pre-created link port, + and the VNFM can use means outside the scope of the present + document to obtain the pre-configured address information for the + connection point from the resource representing the link port. + * If both "cpProtocolData" and "linkportId" are provided, the API + consumer shall ensure that the cpProtocolData can be used with the + pre-created link port referenced by "linkPortId". + $ref: "#/definitions/Identifier" + cpProtocolData: + description: > + Parameters for configuring the network protocols on the link port + that connects the CP to a VL. + The following conditions apply to the attributes "linkPortId" and + "cpProtocolData": + * The "linkPortId" and "cpProtocolData" attributes shall both be + absent for the deletion of an existing external CP instance + addressed by cpInstanceId. + * At least one of these attributes shall be present for a + to-be-created external CP instance or an existing external + CP instance. + * If the "linkPortId" attribute is absent, the VNFM shall create a + link port. + * If the "cpProtocolData" attribute is absent, the "linkPortId" + attribute shall be provided referencing a pre-created link port, + and the VNFM can use means outside the scope of the present + document to obtain the pre-configured address information for the + connection point from the resource representing the link port. + * If both "cpProtocolData" and "linkportId" are provided, the API + consumer shall ensure that the cpProtocolData can be used with the + pre-created link port referenced by "linkPortId". + type: array + items: + $ref: "#/definitions/CpProtocolData" VnfExtCpData: - #SOL003 location: 4.4.1.10 description: > - This type represents an external CP. + This type represents configuration information for external CPs created + from a CPD. type: object required: - cpdId @@ -458,21 +703,59 @@ definitions: description: > The identifier of the CPD in the VNFD. $ref: "#/definitions/IdentifierInVnfd" - fixedAddresses: + cpConfig: description: > - List of (fixed) network addresses that need to be configured on the - CP. This attribute shall be present if fixed addresses need to be - configured. + List of instance data that need to be configured on the CP instances + created from the respective CPD. type: array items: - $ref: "#/definitions/FixedNetworkAddressData" - dynamicAddresses: + $ref: "#/definitions/VnfExtCpConfig" + + VnfInfoModificationRequest: + description: > + This type represents attribute modifications for an + "Individual VNF instance" resource, i.e. modifications to a resource + representation based on the "VnfInstance" data type. + type: object + properties: + vnfInstanceName: description: > - List of network addresses to be assigned dynamically. This attribute - shall be present if dynamic addresses need to be configured. - type: array - items: - $ref: "#/definitions/DynamicNetworkAddressData" + New value of the "vnfInstanceName" attribute in "VnfInstance", or + "null" to remove the attribute. + type: string + vnfInstanceDescription: + description: > + New value of the "vnfInstanceDescription" attribute in + "VnfInstance", or "null" to remove the attribute. + type: string + vnfPkgId: + description: > + New value of the "vnfPkgId" attribute in "VnfInstance". + The value "null" is not permitted. + $ref: "#/definitions/Identifier" + vnfConfigurableProperties: + description: > + Modifications of the "vnfConfigurableProperties" attribute in + "VnfInstance". If present, these modifications shall be applied + according to the rules of JSON Merge PATCH (see IETF RFC 7396). + $ref: "#/definitions/KeyValuePairs" + metadata: + description: > + Modifications of the "metadata" attribute in "VnfInstance". If + present, these modifications shall be applied according to the rules + of JSON Merge PATCH (see IETF RFC 7396). + $ref: "#/definitions/KeyValuePairs" + extensions: + description: > + Modifications of the "extensions" attribute in "VnfInstance". If + present, these modifications shall be applied according to the rules + of JSON Merge PATCH (see IETF RFC 7396). + $ref: "#/definitions/KeyValuePairs" + vimConnectionInfo: + description: > + New content of certain entries in the "vimConnectionInfo" attribute + array in "VnfInstance", as defined below this table. + $ref: "#/definitions/VimConnectionInfo" VnfInstanceSubscriptionFilter: description: > @@ -532,9 +815,9 @@ definitions: items: type: object required: - - vnfSoftwareVersions + - vnfSoftwareVersion properties: - vnfSoftwareVersions: + vnfSoftwareVersion: description: > Software version to match. $ref: "#/definitions/Version" @@ -547,3 +830,25 @@ definitions: type: array items: $ref: "#/definitions/Version" + vnfInstanceIds: + description: > + If present, match VNF instances with an instance identifier listed + in this attribute. + The attributes "vnfInstanceIds" and "vnfInstanceNames" are + alternatives to reference to particular VNF Instances in a filter. + They should not be used both in the same filter instance, but one + alternative should be chosen. + type: array + items: + $ref: "#/definitions/Identifier" + vnfInstanceNames: + description: > + If present, match VNF instances with a VNF Instance Name listed in + this attribute. + The attributes "vnfInstanceIds" and "vnfInstanceNames" are + alternatives to reference to particular VNF Instances in a filter. + They should not be used both in the same filter instance, but one + alternative should be chosen. + type: array + items: + type: string diff --git a/src/responses/SOL002SOL003_resp.yaml b/src/responses/SOL002SOL003_resp.yaml index 9dcfdf78..a0e4441f 100644 --- a/src/responses/SOL002SOL003_resp.yaml +++ b/src/responses/SOL002SOL003_resp.yaml @@ -48,6 +48,14 @@ responses: type: string maximum: 1 minimum: 0 + 303: + description: > + A subscription with the same callbackURI and the same filter already + exists and the policy of the VNFM is to not create redundant + subscriptions. + The HTTP response shall include a "Location" HTTP header that contains + the resource URI of the existing subscription resource. + The response body shall be empty. 400: description: > It fhe request is malformed or syntactically incorrect (e.g. if the @@ -59,8 +67,8 @@ responses: If the request contains a malformed access token, the API producer should respond with this response. The details of the error shall be returned in the WWW-Authenticate HTTP header, as defined in - IETF RFC 6750 [11] and IETF RFC 7235 [16]. The ProblemDetails - structure may be provided. + IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be + provided. If there is an application error related to the client's input that cannot be easily mapped to any other HTTP response code ("catch all error"), the API producer shall respond with this response code.The @@ -96,8 +104,8 @@ responses: If the request contains a malformed access token, the API producer should respond with this response. The details of the error shall be returned in the WWW-Authenticate HTTP header, as defined in - IETF RFC 6750 [11] and IETF RFC 7235 [16]. The ProblemDetails - structure may be provided. + IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be + provided. If there is an application error related to the client's input that cannot be easily mapped to any other HTTP response code ("catch all error"), the API producer shall respond with this response code.The @@ -116,8 +124,6 @@ responses: 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" 400-attr-selector: @@ -131,8 +137,8 @@ responses: If the request contains a malformed access token, the API producer should respond with this response. The details of the error shall be returned in the WWW-Authenticate HTTP header, as defined in - IETF RFC 6750 [11] and IETF RFC 7235 [16]. The ProblemDetails - structure may be provided. + IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be + provided. If there is an application error related to the client's input that cannot be easily mapped to any other HTTP response code ("catch all error"), the API producer shall respond with this response code.The @@ -162,7 +168,7 @@ responses: is invalid (e.g. expired or revoked), the API producer should respond with this response. The details of the error shall be returned in the WWW-Authenticate HTTP header, as defined in - IETF RFC 6750 [11] and IETF RFC 7235 [16]. The ProblemDetails + IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be provided. headers: Content-Type: @@ -193,14 +199,6 @@ responses: 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/SOL002SOL003_def.yaml#/definitions/ProblemDetails" 404: @@ -218,14 +216,44 @@ responses: 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. + schema: + $ref: "/../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + 404-task-resource-not-exists: + description: > + Error: The API producer did not find a current representation for the + target resource or is not willing to disclose that one exists. + Specifically in case of this task resource, the response code 404 shall + also returned if the task is not supported for the VNF instance + represented by the parent resource, which means that the task resource + consequently does not exist. + In this case, the response body shall be present, and shall contain a + ProblemDetails structure, in which the "detail" attribute shall convey + more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. type: string maximum: 1 - minimum: 0 + minimum: 1 + schema: + $ref: "/../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + 404-task-resource-not-exists-VNF-LCM: + description: > + Error: The API producer did not find a current representation for the + target resource or is not willing to disclose that one exists. + Specifically in case of this task resource, the response code 404 shall + also be returned if the task is not supported for the VNF LCM operation + occurrence represented by the parent resource, which means that the task + resource consequently does not exist. + In this case, the response body shall be present, and shall contain a + ProblemDetails structure, in which the "detail" attribute shall convey + more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 schema: $ref: "/../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" 404-task-not-suported: @@ -246,14 +274,6 @@ responses: 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/SOL002SOL003_def.yaml#/definitions/ProblemDetails" 404-task-not-suported-VNF-LCM: @@ -275,14 +295,6 @@ responses: 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/SOL002SOL003_def.yaml#/definitions/ProblemDetails" 405: @@ -296,14 +308,6 @@ responses: 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/SOL002SOL003_def.yaml#/definitions/ProblemDetails" 406: @@ -318,14 +322,6 @@ responses: 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/SOL002SOL003_def.yaml#/definitions/ProblemDetails" 412: @@ -341,14 +337,6 @@ responses: 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/SOL002SOL003_def.yaml#/definitions/ProblemDetails" 416: @@ -361,14 +349,6 @@ responses: 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/SOL002SOL003_def.yaml#/definitions/ProblemDetails" 422: @@ -388,14 +368,6 @@ responses: 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/SOL002SOL003_def.yaml#/definitions/ProblemDetails" 500: @@ -412,14 +384,6 @@ responses: 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/SOL002SOL003_def.yaml#/definitions/ProblemDetails" 503: @@ -435,13 +399,5 @@ responses: 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/SOL002SOL003_def.yaml#/definitions/ProblemDetails" -- GitLab