From 40e9a4c54bc502abd75c351a48989bff549bcf77 Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Thu, 10 Oct 2019 11:06:15 +0200 Subject: [PATCH 01/24] first commit for APIVersion --- src/SOL011/APIVersion/APIVersion.yaml | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 src/SOL011/APIVersion/APIVersion.yaml diff --git a/src/SOL011/APIVersion/APIVersion.yaml b/src/SOL011/APIVersion/APIVersion.yaml new file mode 100644 index 0000000..4645720 --- /dev/null +++ b/src/SOL011/APIVersion/APIVersion.yaml @@ -0,0 +1,27 @@ +openapi: 3.0.2 + +info: + version: 1.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 + + title: SOL011 - API version interface + + description: > + SOL011 - API version 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 + + license: + name: ETSI Forge copyright notice + url: https://forge.etsi.org/etsi-forge-copyright-notice.txt + + contact: + name: NFV-SOL WG + +externalDocs: + description: ETSI GS NFV-SOL 011 V0.1.0 + url: https://docbox.etsi.org/ISG/NFV/Open/Drafts/SOL011ed331_Or-Or_Stage_3/NFV-SOL011ed331v010.zip -- GitLab From 20cc48364be05d6a8eb3e0e21c6a9d23fa2df5ec Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Thu, 21 Nov 2019 17:04:03 +0100 Subject: [PATCH 02/24] added common data types, responses, endpoints, parameters --- src/SOL011/APIVersion/APIVersion.yaml | 8 +- src/SOL011/components/SOL011_params.yaml | 106 ++++ src/SOL011/components/SOL011_resp.yaml | 658 +++++++++++++++++++++ src/SOL011/components/SOL011_schemas.yaml | 289 +++++++++ src/SOL011/endpoints/SOL011_endpoints.yaml | 87 +++ 5 files changed, 1146 insertions(+), 2 deletions(-) create mode 100644 src/SOL011/components/SOL011_params.yaml create mode 100644 src/SOL011/components/SOL011_resp.yaml create mode 100644 src/SOL011/components/SOL011_schemas.yaml create mode 100644 src/SOL011/endpoints/SOL011_endpoints.yaml diff --git a/src/SOL011/APIVersion/APIVersion.yaml b/src/SOL011/APIVersion/APIVersion.yaml index 4645720..f4b01a0 100644 --- a/src/SOL011/APIVersion/APIVersion.yaml +++ b/src/SOL011/APIVersion/APIVersion.yaml @@ -1,7 +1,7 @@ openapi: 3.0.2 info: - version: 1.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 + version: 1.1.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 title: SOL011 - API version interface @@ -23,5 +23,9 @@ info: name: NFV-SOL WG externalDocs: - description: ETSI GS NFV-SOL 011 V0.1.0 + description: ETSI GS NFV-SOL 011 V3.3.1 url: https://docbox.etsi.org/ISG/NFV/Open/Drafts/SOL011ed331_Or-Or_Stage_3/NFV-SOL011ed331v010.zip + +paths: + /nfvmanofm/api_versions: + $ref: '../endpoints/SOL011_endpoints.yaml#/endpoints/api_versions' diff --git a/src/SOL011/components/SOL011_params.yaml b/src/SOL011/components/SOL011_params.yaml new file mode 100644 index 0000000..dbb92ea --- /dev/null +++ b/src/SOL011/components/SOL011_params.yaml @@ -0,0 +1,106 @@ +components: + parameters: + Version: + name: Version + description: > + Version of the API requested to use when responding to this request. + in: header + required: true + schema: + type: string + + Accept: + name: Accept + description: > + Content-Types that are acceptable for the response. Reference: IETF RFC 7231. + in: header + required: true + schema: + type: string + + Authorization: + name: Authorization + description: > + The authorization token for the request. Reference: IETF RFC 7235. + in: header + required: false + schema: + type: string + + ContentType: + name: Content-Type + description: | + The MIME type of the body of the request. Reference: IETF RFC 7231 + in: header + required: true + schema: + type: string + + filter: + name: filter + description: > + Attribute-based filtering expression according to clause 5.2 of ETSI + GS NFV-SOL 013. The NFV-MANO functional entity shall support + receiving this parameter as part of the URI query string. The API + consumer may supply this parameter. All attribute names that appear + in the FmSubscription and in data types referenced from it shall be + supported by the NFV-MANO functional entity in the filter + expression. + in: query + required: false + schema: + type: string + + all_fields: + name: all_fields + description: > + Include all complex attributes in the response. See clause + 5.3 of ETSI GS NFV-SOL 013. The NFV-MANO functional entity + shall support this parameter. + in: query + required: false + schema: + type: string + + fields: + name: fields + description: > + Complex attributes to be included into the response. See clause + 5.3 of ETSI GS NFV-SOL 013 for details. The NFV-MANO functional + entity should support this parameter. + in: query + required: false + schema: + type: string + + exclude_fields: + name: exclude_fields + description: > + Complex attributes to be excluded from the response. See clause + 5.3 of ETSI GS NFV-SOL 013 for details. The NFV-MANO functional + entity should support this parameter. + in: query + required: false + schema: + type: string + + exclude_default: + name: exclude_default + in: query + description: >- + Indicates to exclude the following complex attributes from the response. See clause 5.3 of ETSI GS NFV-SOL 013 + for details. The NFV-MANO functional entity shall support this parameter. + required: false + schema: + type: string + + nextpage_opaque_marker: + name: nextpage_opaque_marker + description: > + Marker to obtain the next page of a paged response. Shall be supported by + the NFV-MANO functional entity if the entity supports alternative 2 (paging) + according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource. + in: query + required: false + schema: + type: string diff --git a/src/SOL011/components/SOL011_resp.yaml b/src/SOL011/components/SOL011_resp.yaml new file mode 100644 index 0000000..6c28def --- /dev/null +++ b/src/SOL011/components/SOL011_resp.yaml @@ -0,0 +1,658 @@ +components: + responses: + 206: + description: > + 206 PARTIAL CONTENT + headers: + Content-Type: + description: > + The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + Content-Range: + description: > + The Content-Range response HTTP header indicates where in a full body message a partial message belongs. + schema: + 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: + type: string + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + $ref: "../components/SOL011_schemas.yaml#/components/schemas/ProblemDetails" + + 303: + description: > + 303 See Other + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + 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: + type: string + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + + 400: + description: > + 400 BAD REQUEST + + 400 code can be returned in the following specified cases, the specific cause has to be proper specified in the + "ProblemDetails" structure to be returned. + + If the request is malformed or syntactically incorrect (e.g. if the request URI contains incorrect + query parameters or the payload body contains a syntactically incorrect data structure), + the API producer shall respond with this response code. The "ProblemDetails" structure shall be provided, + and should include in the "detail" attribute more information about the source of the problem. + + If the response to a GET request which queries a container resource would be so big that the performance + of the API producer is adversely affected, and the API producer does not support paging for the affected resource, + it shall respond with this response code. The "ProblemDetails" structure shall be provided, and should include + in the "detail" attribute more information about the source of the problem. + + 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 "ProblemDetails" structure shall be provided, and shall include in the "detail" attribute more information + about the source of the problem. + + 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 + and IETF RFC 7235. The ProblemDetails structure may be provided. + + The use of this HTTP error response code described above is applicable to the use of the OAuth 2.0 + for the authorization of API requests and notifications, as defined in clauses 4.5.3.3 and 4.5.3.4. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + 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: + type: string + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + $ref: "../components/SOL011_schemas.yaml#/components/schemas/ProblemDetails" + + 401: + description: > + 401 UNAUTHORIZED + + If the request contains no access token even though one is required, or if the request contains an authorization + token that 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 + and IETF RFC 7235. The ProblemDetails structure may be provided. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + 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: + type: string + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + $ref: "../components/SOL011_schemas.yaml#/components/schemas/ProblemDetails" + + 403: + description: > + 403 FORBIDDEN + + If the API consumer is not allowed to perform a particular request to a particular resource, + the API producer shall respond with this response code. The "ProblemDetails" structure shall be provided. + It should include in the "detail" attribute information about the source of the problem, + and may indicate how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + 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: + type: string + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + $ref: "../components/SOL011_schemas.yaml#/components/schemas/ProblemDetails" + + 404: + description: > + 404 NOT FOUND + + If the API producer did not find a current representation for the resource addressed by the URI passed + in the request or is not willing to disclose that one exists, it shall respond with this response code. + The "ProblemDetails" structure may be provided, including in the "detail" attribute information about + the source of the problem, e.g. a wrong resource URI variable. + + This response code is not appropriate in case the resource addressed by the URI is a container resource + which is designed to contain child resources, but does not contain any child resource at the time + the request is received. For a GET request to an existing empty container resource, a typical response + contains a 200 OK response code and a payload body with an empty array. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + 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: + type: string + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + $ref: "../components/SOL011_schemas.yaml#/components/schemas/ProblemDetails" + + 405: + description: > + 405 METHOD NOT ALLOWED + + If a particular HTTP method is not supported for a particular resource, the API producer shall respond + with this response code. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + 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: + type: string + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + $ref: "../components/SOL011_schemas.yaml#/components/schemas/ProblemDetails" + + 406: + description: > + 406 NOT ACCEPTABLE + + If the "Accept" HTTP header does not contain at least one name of a content type + that is acceptable to the API producer, the API producer shall respond with this + response code. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + 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: + type: string + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + $ref: "../components/SOL011_schemas.yaml#/components/schemas/ProblemDetails" + + 409: + description: > + 409 CONFLICT + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + 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: + type: string + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + $ref: "../components/SOL011_schemas.yaml#/components/schemas/ProblemDetails" + + 412: + description: > + 412 PRECONDITION FAILED + + Error: A precondition given in an HTTP request header is not fulfilled. + Typically, this is due to an ETag mismatch, indicating that the resource was modified by another entity. + The response body should contain a ProblemDetails structure, in which the "detail" attribute should convey + more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + 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: + type: string + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + $ref: "../components/SOL011_schemas.yaml#/components/schemas/ProblemDetails" + + 413: + description: > + 413 PAYLOAD TOO LARGE + + If the payload body of a request is larger than the amount of data the API producer is willing or able to process, + it shall respond with this response code, following the provisions in IETF RFC 7231 for the use + of the "Retry-After" HTTP header and for closing the connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + 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: + type: string + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + $ref: "../components/SOL011_schemas.yaml#/components/schemas/ProblemDetails" + + 414: + description: > + 414 URI TOO LONG + + If the request URI of a request is longer than the API producer is willing or able to process, + it shall respond with this response code. This condition can e.g. be caused by passing long queries + in the request URI of a GET request. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + 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: + type: string + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + $ref: "../components/SOL011_schemas.yaml#/components/schemas/ProblemDetails" + + 416: + description: > + 416 Range Not Satisfiable + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + 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: + type: string + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + $ref: "../components/SOL011_schemas.yaml#/components/schemas/ProblemDetails" + + 422: + description: > + 422 UNPROCESSABLE ENTITY + + If the payload body of a request contains syntactically correct data (e.g. well-formed JSON) but the data + cannot be processed (e.g. because it fails validation against a schema), the API producer shall respond + with this response code. The "ProblemDetails" structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + This error response code is only applicable for methods that have a request body. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + 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: + type: string + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + $ref: "../components/SOL011_schemas.yaml#/components/schemas/ProblemDetails" + + 429: + description: > + 429 TOO MANY REQUESTS + + If the API consumer has sent too many requests in a defined period of time and the API producer is able + to detect that condition ("rate limiting"), the API producer shall respond with this response code, + following the provisions in IETF RFC 6585 [17] for the use of the "Retry-After" HTTP header. + The "ProblemDetails" structure shall be provided and shall include in the "detail" attribute more information + about the source of the problem. + + The period of time and allowed number of requests are configured within the API producer by means + outside the scope of the present document. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + 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: + type: string + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + $ref: "../components/SOL011_schemas.yaml#/components/schemas/ProblemDetails" + + 500: + description: > + 500 INTERNAL SERVER ERROR + + If there is an application error not 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 "ProblemDetails" structure shall be provided, and shall include in the "detail" attribute more information + about the source of the problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + 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: + type: string + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + $ref: "../components/SOL011_schemas.yaml#/components/schemas/ProblemDetails" + + 503: + description: > + 503 SERVICE UNAVAILABLE + + If the API producer encounters an internal overload situation of itself or of a system it relies on, + it should respond with this response code, following the provisions in IETF RFC 7231 for the use of + the "Retry-After" HTTP header and for the alternative to refuse the connection. The "ProblemDetails" + structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + 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: + type: string + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + $ref: "../components/SOL011_schemas.yaml#/components/schemas/ProblemDetails" + + 504: + description: > + 504 GATEWAY TIMEOUT + + If the API producer encounters a timeout while waiting for a response from an upstream server + (i.e. a server that the API producer communicates with when fulfilling a request), it should respond + with this response code. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + 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: + type: string + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + $ref: "../components/SOL011_schemas.yaml#/components/schemas/ProblemDetails" \ No newline at end of file diff --git a/src/SOL011/components/SOL011_schemas.yaml b/src/SOL011/components/SOL011_schemas.yaml new file mode 100644 index 0000000..1718b90 --- /dev/null +++ b/src/SOL011/components/SOL011_schemas.yaml @@ -0,0 +1,289 @@ +components: + schemas: + Link: + description: > + This type represents a link to a resource using an absolute URI. + type: object + required: + - href + properties: + href: + description: > + URI of another resource referenced from a resource. + Shall be an absolute URI (i.e. a UTI that contains {apiRoot}). + $ref: "#/components/schemas/Uri" + + NotificationLink: + description: > + This type represents a link to a resource in a notification, using an absolute or relative URI. + type: object + required: + - href + properties: + href: + description: > + URI of a resource referenced from a notification. + Should be an absolute URI (i.e. a URI that contains + {apiRoot}), however, may be a relative URI (i.e. a URI + where the {apiRoot} part is omitted) if the {apiRoot} + information is not available. + $ref: "#/components/schemas/Uri" + + IpAddress: + description: > + An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal + integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that + consists of groups of zero to four hexadecimal digits, separated by colons. + type: string + format: IP + + KeyValuePairs: + description: > + This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, + a set of keyvalue pairs is represented as an object. It shall comply with the provisions defined in clause 4 + of IETF RFC 8259. In the following example, a list of key-value pairs with four keys ("aString", "aNumber", + "anArray" and "anObject") is provided to illustrate that the values associated with different keys can be of + different type. + type: object + + ApiVersionInformation: + description: > + This type represents API version information. + type: object + required: + - uriPrefix + - apiVersions + properties: + uriPrefix: + description: > + Specifies the URI prefix for the API, in the following + form {apiRoot}/{apiName}/{apiMajorVersion}/. + type: string + apiVersions: + description: > + Version(s) supported for the API signaled by the + uriPrefix attribute. + type: array + items: + type: object + required: + - version + properties: + version: + description: > + Identifies a supported version. The value of the + version attribute shall be a version identifier as + specified in clause 9.1 (SOL013). + type: string + isDeprecated: + description: > + If such information is available, this attribute indicates + whether use of the version signaled by the version + attribute is deprecated (true) or not (false). + + A deprecated version is still supported by the API producer but is recommended + not to be used any longer. + When a version is no longer supported, it does not appear in the response body. + type: boolean + retirementDate: + description: > + The date and time after which the API version will no + longer be supported. + This attribute may be included if the value of the + isDeprecated attribute is set to true and shall be + absent otherwise. + $ref: "#/components/schemas/DateTime" + + Identifier: + description: > + An identifier with the intention of being globally unique. + type: string + + IdentifierInManoEntity: + description: > + An identifier that is unique for the respective type within a NFV-MANO functional entity, + but that need not be globally unique. Representation: string of variable length.. + type: string + + IdentifierLocal: + description: > + An identifier that is unique within a limited local scope other than above listed identifiers, + such as within a complex data structure or within a request-response pair. + Representation: string of variable length. + type: string + + DateTime: + description: > + Date-time stamp. + Representation: String formatted according to IETF RFC 3339. + type: string + format: date-time + + Uri: + description: > + String formatted according to IETF RFC 3986. + type: string + + Boolean: + description: > + The Boolean is a data type having two values (true and false). + type: boolean + + Version: + description: > + A version. + type: string + + String: + description: > + A string defined in IETF RFC 8259. + type: string + + Number: + description: > + A number defined in IETF RFC 8259. + type: number + + UnsignedInt: + description: > + Unsigned integer + type: number + + SubscriptionAuthentication: + type: object + required: + - authType + properties: + authType: + description: > + Defines the types of Authentication / Authorization which the API + consumer is willing to accept when receiving a notification. + Permitted values: + * 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. + 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 + paramsOauth2ClientCredentials: + 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. + 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. + 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. + 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. + 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. + $ref: "#/components/schemas/Uri" + + ProblemDetails: + description: > + The definition of the general "ProblemDetails" data structure from + IETF RFC 7807 [19] is reproduced inthis structure. Compared to the + general framework defined in IETF RFC 7807 [19], the "status" and + "detail" attributes are mandated to be included by the present document, + to ensure that the response contains additional textual information about + an error. IETF RFC 7807 [19] foresees extensibility of the + "ProblemDetails" type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to define + additional attributes that provide more information about the error. + The description column only provides some explanation of the meaning to + Facilitate understanding of the design. For a full description, see + IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that identifies the + problem type. It is encouraged that the URI provides human-readable + documentation for the problem (e.g. using HTML) when dereferenced. + When this member is not present, its value is assumed to be + "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It should not + change from occurrence to occurrence of the problem, except for + purposes of localization. If type is given and other than + "about:blank", this attribute shall also be provided. + A short, human-readable summary of the problem + type. It SHOULD NOT change from occurrence to occurrence of the + problem, except for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by the origin + server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence of the + problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of the + problem. It may yield further information if dereferenced. + type: string + format: URI + #TODO: How to express "any additional attributes"? diff --git a/src/SOL011/endpoints/SOL011_endpoints.yaml b/src/SOL011/endpoints/SOL011_endpoints.yaml new file mode 100644 index 0000000..8d49184 --- /dev/null +++ b/src/SOL011/endpoints/SOL011_endpoints.yaml @@ -0,0 +1,87 @@ +# Copyright (c) ETSI 2019. +# https://forge.etsi.org/etsi-forge-copyright-notice.txt +endpoints: + api_versions: + parameters: + - name: Version + description: > + Version of the API requested to use when responding to this request. + in: header + required: false + schema: + type: string + - name: Authorization + description: >- + The authorization token for the request. Reference: IETF RFC 7235 + in: header + required: false + schema: + type: string + get: + summary: Retrieve API version information + description: > + The GET method reads API version information. This method shall follow the provisions specified in + table 4.6.3.3.3.2-1 for request and response data structures, and response codes. URI query parameters are not + supported. + responses: + 200: + description: > + 200 OK + + API version information was read successfully. + The response body shall contain 4.4 API version + information, as defined in clause 4.4.1.13. + content: + application/json: + schema: + $ref: '../components/SOL011_schemas.yaml#/components/schemas/ApiVersionInformation' + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + 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: + type: string + maximum: 1 + minimum: 0 + Version: + description: The used API version. + schema: + type: string + maximum: 1 + minimum: 1 + 400: + $ref: '../components/SOL011_resp.yaml#/components/responses/400' + 401: + $ref: '../components/SOL011_resp.yaml#/components/responses/401' + 403: + $ref: '../components/SOL011_resp.yaml#/components/responses/403' + 404: + $ref: '../components/SOL011_resp.yaml#/components/responses/404' + 405: + $ref: '../components/SOL011_resp.yaml#/components/responses/405' + 406: + $ref: '../components/SOL011_resp.yaml#/components/responses/406' + 413: + $ref: '../components/SOL011_resp.yaml#/components/responses/413' + 414: + $ref: '../components/SOL011_resp.yaml#/components/responses/414' + 416: + $ref: '../components/SOL011_resp.yaml#/components/responses/416' + 422: + $ref: '../components/SOL011_resp.yaml#/components/responses/422' + 429: + $ref: '../components/SOL011_resp.yaml#/components/responses/429' + 500: + $ref: '../components/SOL011_resp.yaml#/components/responses/500' + 503: + $ref: '../components/SOL011_resp.yaml#/components/responses/503' + 504: + $ref: '../components/SOL011_resp.yaml#/components/responses/504' \ No newline at end of file -- GitLab From 68b76d04f5457144080a38928d1085dbe5f7c038 Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Thu, 21 Nov 2019 17:35:07 +0100 Subject: [PATCH 03/24] Added NSLifecycleOperationGranting openapi --- .../NSLifecycleOperationGranting.yaml | 165 ++++++++++++++++++ 1 file changed, 165 insertions(+) create mode 100644 src/SOL011/NSLifecycleOperationGranting/NSLifecycleOperationGranting.yaml diff --git a/src/SOL011/NSLifecycleOperationGranting/NSLifecycleOperationGranting.yaml b/src/SOL011/NSLifecycleOperationGranting/NSLifecycleOperationGranting.yaml new file mode 100644 index 0000000..d7c800c --- /dev/null +++ b/src/SOL011/NSLifecycleOperationGranting/NSLifecycleOperationGranting.yaml @@ -0,0 +1,165 @@ +openapi: 3.0.2 +info: + version: 1.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 + title: SOL011 - NS Lifecycle Operation Granting Interface + description: > + SOL009 - NS Lifecycle Operation Granting Interface + + IMPORTANT: Please note that this file might be not aligned to the current version of the ETSI Group Specification + it refers to. 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 +externalDocs: + description: ETSI GS NFV-SOL 011 V3.3.1 + url: https://docbox.etsi.org/ISG/NFV/Open/Drafts/SOL011ed331_Or-Or_Stage_3/NFV-SOL011ed331v010.zip + +security: + - OauthSecurity: + - all +servers: + - url: http://127.0.0.1/nslcog/v1 + - url: https://127.0.0.1/nslcog/v1 + +paths: + "/api_versions": + $ref: '../endpoints/SOL011_endpoints.yaml#/endpoints/api_versions' + + "/grant": + description: >- + This resource represents grant. The NFVO-N can use this resource to request a grant. + post: + description: >- + The POST method requests a grant for a particular NS lifecycle operation. + This method shall follow the provisions specified in the tables 7.5.3.3.1-1 and 7.5.3.3.1-2 + for URI query parameters, request and response data structures, and response codes. + parameters: + - $ref: "../components/SOL011_params.yaml#/components/parameters/Version" + - $ref: "../components/SOL011_params.yaml#/components/parameters/Accept" + - $ref: "../components/SOL011_params.yaml#/components/parameters/ContentType" + - $ref: "../components/SOL011_params.yaml#/components/parameters/Authorization" + requestBody: + $ref: "#/components/requestBodies/GrantNsLifecycleOperationRequest" + responses: + "204": + $ref: '#/components/responses/Grant.Post.204' + "400": + $ref: ../components/SOL011_resp.yaml#/components/responses/400 + "401": + $ref: ../components/SOL011_resp.yaml#/components/responses/401 + "403": + $ref: '#/components/responses/Grant.Post.403' + "404": + $ref: ../components/SOL011_resp.yaml#/components/responses/404 + "405": + $ref: ../components/SOL011_resp.yaml#/components/responses/405 + "406": + $ref: ../components/SOL011_resp.yaml#/components/responses/406 + "422": + $ref: ../components/SOL011_resp.yaml#/components/responses/422 + "500": + $ref: ../components/SOL011_resp.yaml#/components/responses/500 + "503": + $ref: ../components/SOL011_resp.yaml#/components/responses/503 + "504": + $ref: ../components/SOL011_resp.yaml#/components/responses/504 + +components: + requestBodies: + GrantNsLifecycleOperationRequest: + description: >- + The NS lifecycle operation grant request parameters, as defined in clause 7.6.x.a. + content: + application/json: + schema: + $ref: "#/components/schemas/GrantNsLifecycleOperationRequest" + responses: + Grant.Post.204: + description: >- + Shall be returned when the grant request was approved. + 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. + schema: + type: string + Version: + description: > + Version of the API used in the response. + schema: + type: string + + Grant.Post.403: + description: >- + Shall be returned upon the following error: the grant request was rejected. + A ProblemDetails structure shall be included in the response to provide more + details about the rejection in the "details" attribute. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + 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: + type: string + Version: + description: > + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + $ref: '../components/SOL011_schemas.yaml#/components/schemas/ProblemDetails' + schemas: + GrantNsLifecycleOperationRequest: + description: >- + This type represents request parameters for the "grant NS lifecycle" operation. + It shall comply with the provisions defined in table 7.6.2.2-1. + type: object + required: + - nsInstanceId + - nsdId + - lifecycleOperation + properties: + nsInstanceId: + description: >- + Identifier of the NS instance which this grant request relates to. + Each NFVO-N instance manages its own namespace for NS instance identifiers. + $ref: "../components/SOL011_schemas.yaml#/components/schemas/Identifier" + nsdId: + description: >- + Identifier of the NSD that defines the NS for which the lifecycle management operation is to be granted. + $ref: "../components/SOL011_schemas.yaml#/components/schemas/Identifier" + lifecycleOperation: + description: >- + Type of the lifecycle management operation for which the granting is requested. + The NS LCM operations InstantiateNS, CreateNsIdentifier, DeleteNsIdentifier and + QueryNs can be executed by NFVO-N without requesting granting. + $ref: "#/components/schemas/NsLcmOperation" + additionalParams: + description: >- + Additional parameters passed by NFVO-N, specific to the NS and the lifecycle management operation. + $ref: "../components/SOL011_schemas.yaml#/components/schemas/KeyValuePairs" + + NsLcmOperation: + description: >- + The enumeration NsLcmOperation shall comply with the provisions defined in table 7.6.4.3-1. + It indicates the type of the NS lifecycle management operation for which the granting is requested. + type: string + enum: + - SCALE + - TERMINATE + - HEAL + + + -- GitLab From 9fda58e2267ad30c303f399083952f6fa7311a55 Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Mon, 25 Nov 2019 12:09:53 +0100 Subject: [PATCH 04/24] added SOL011 NSD Management openapi --- src/SOL011/NSDManagement/NSDManagement.yaml | 371 ++++++++++++++++++++ 1 file changed, 371 insertions(+) create mode 100644 src/SOL011/NSDManagement/NSDManagement.yaml diff --git a/src/SOL011/NSDManagement/NSDManagement.yaml b/src/SOL011/NSDManagement/NSDManagement.yaml new file mode 100644 index 0000000..b6bf4d9 --- /dev/null +++ b/src/SOL011/NSDManagement/NSDManagement.yaml @@ -0,0 +1,371 @@ +openapi: 3.0.2 +info: + version: 1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 + title: SOL011 - NSD Management Interface + description: > + SOL011 - NSD Management Interface + + IMPORTANT: Please note that this file might be not aligned to the current version of the ETSI Group Specification + it refers to. 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 +externalDocs: + description: ETSI GS NFV-SOL 011 V3.3.1 + url: https://docbox.etsi.org/ISG/NFV/Open/Drafts/SOL011ed331_Or-Or_Stage_3/NFV-SOL011ed331v010.zip + +security: + - OauthSecurity: + - all +servers: + - url: http://127.0.0.1/nsd/v1 + - url: https://127.0.0.1/nsd/v1 + +paths: + "/api_versions": + $ref: '../endpoints/SOL011_endpoints.yaml#/endpoints/api_versions' + + "/ns_descriptors": + description: >- + It can be used by NFVO-C to query multiple NS descriptors from NFVO-N. + parameters: + - $ref: "../components/SOL011_params.yaml#/components/parameters/Version" + - $ref: "../components/SOL011_params.yaml#/components/parameters/Accept" + - $ref: "../components/SOL011_params.yaml#/components/parameters/Authorization" + get: + description: >- + The GET method queries information about multiple NS descriptor resources. + This method shall follow the provisions specified in the clause 5.4.2.3.2 of ETSI GS NFV-SOL 005. + parameters: + - $ref: "../components/SOL011_params.yaml#/components/parameters/filter" + - $ref: "../components/SOL011_params.yaml#/components/parameters/all_fields" + - $ref: "../components/SOL011_params.yaml#/components/parameters/fields" + - $ref: "../components/SOL011_params.yaml#/components/parameters/exclude_fields" + - $ref: "../components/SOL011_params.yaml#/components/parameters/exclude_default" + - $ref: "../components/SOL011_params.yaml#/components/parameters/nextpage_opaque_marker" + + responses: + 200: + $ref: "#/components/responses/NsdInfos.Get.200" + 400: + $ref: "../components/SOL011_resp.yaml#/components/responses/400" + 401: + $ref: "../components/SOL011_resp.yaml#/components/responses/401" + 403: + $ref: "../components/SOL011_resp.yaml#/components/responses/403" + 404: + $ref: "../components/SOL011_resp.yaml#/components/responses/404" + 405: + $ref: "../components/SOL011_resp.yaml#/components/responses/405" + 406: + $ref: "../components/SOL011_resp.yaml#/components/responses/406" + 500: + $ref: "../components/SOL011_resp.yaml#/components/responses/500" + 503: + $ref: "../components/SOL011_resp.yaml#/components/responses/503" + 504: + $ref: "../components/SOL011_resp.yaml#/components/responses/504" + + '/ns_descriptors/{nsdInfoId}': + description: >- + It can be used by NFVO-C to query an individual NS descriptor from NFVO-N. + parameters: + - $ref: "#/components/parameters/nsdInfoId" + - $ref: "../components/SOL011_params.yaml#/components/parameters/Version" + - $ref: "../components/SOL011_params.yaml#/components/parameters/Accept" + - $ref: "../components/SOL011_params.yaml#/components/parameters/Authorization" + + get: + description: > + The GET method reads information about an individual NS descriptor resource. + This method shall follow the provisions specified in the clause 5.4.3.3.2 of ETSI GS NFV-SOL 005. + responses: + 200: + $ref: "#/components/responses/NsdInfo.Get.200" + 400: + $ref: "../components/SOL011_resp.yaml#/components/responses/400" + 401: + $ref: "../components/SOL011_resp.yaml#/components/responses/401" + 403: + $ref: "../components/SOL011_resp.yaml#/components/responses/403" + 404: + $ref: "../components/SOL011_resp.yaml#/components/responses/404" + 405: + $ref: "../components/SOL011_resp.yaml#/components/responses/405" + 406: + $ref: "../components/SOL011_resp.yaml#/components/responses/406" + 500: + $ref: "../components/SOL011_resp.yaml#/components/responses/500" + 503: + $ref: "../components/SOL011_resp.yaml#/components/responses/503" + 504: + $ref: "../components/SOL011_resp.yaml#/components/responses/504" + +components: + parameters: + nsdInfoId: + name: nsdInfoId + description: > + Identifier of the individual NS descriptor resource. + in: path + required: true + schema: + type: string + + responses: + NsdInfos.Get.200: + description: >- + 200 OK + Information about zero or more NS descriptors. + The response body shall contain in an array the + representations of zero or more NS descriptors, as + defined in clause 5.5.2.2. + If the NFVO supports alternative 2 (paging) according + to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for + this resource, inclusion of the Link HTTP header in + this response shall follow the provisions in clause + 5.4.2.3 of ETSI GS NFV-SOL 013. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + 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: + type: string + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + Link: + description: > + Reference to other resources. Used for paging in the present document, see clause 4.7.2.1. + schema: + type: string + maximum: 1 + minimum: 0 + content: + application/json: + schema: + $ref: "#/components/schemas/NsdInfos.Get.Response" + + NsdInfo.Get.200: + description: >- + 200 OK + Information about the individual NS descriptor. + The response body shall contain a representation of the individual NS descriptor, + as defined in clause 5.5.2.2. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + 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: + type: string + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + Link: + description: > + Reference to other resources. Used for paging in the present document, see clause 4.7.2.1. + schema: + type: string + maximum: 1 + minimum: 0 + content: + application/json: + schema: + $ref: "#/components/schemas/NsdInfo" + + schemas: + NsdInfos.Get.Response: + description: > + This type represents a response for the query NSD operation. + type: array + items: + $ref: "#/components/schemas/NsdInfo" + + NsdInfo: + description: > + This type represents a response for the query NSD operation. + type: object + required: + - id + - nsdOnboardingState + - nsdOperationalState + - nsdUsageState + - _links + - oneOf: + - vnfPkgId + - nestedNsdInfoId + properties: + id: + description: > + Identifier of the on boarded individual NS descriptor + resource. This identifier is allocated by the NFVO. + $ref: "../components/SOL011_schemas.yaml#/components/schemas/Identifier" + nsdId: + description: > + This identifier, which is allocated by the NSD + designer, identifies the NSD in a globally unique + way. It is copied from the NSD content and shall be + present after the NSD content is on-boarded. + $ref: "../components/SOL011_schemas.yaml#/components/schemas/Identifier" + nsdName: + type: string + description: > + Name of the on boarded NSD. This information is copied from the + NSD content and shall be present after the NSD content is on-boarded. + nsdVersion: + description: > + Version of the on-boarded NSD. This information is + copied from the NSD content and shall be present + after the NSD content is on-boarded. + $ref: "../components/SOL011_schemas.yaml#/components/schemas/Version" + nsdDesigner: + type: string + description: > + Designer of the on-boarded NSD. This information is copied + from the NSD content and shall be present after the NSD content is on-boarded. + nsdInvariantId: + description: > + This identifier, which is allocated by the NSD + designer, identifies an NSD in a version independent + manner. This information is copied from the NSD + content and shall be present after the NSD content is + on-boarded. + $ref: "../components/SOL011_schemas.yaml#/components/schemas/Identifier" + vnfPkgIds: + description: > + Identifies the VNF package for the VNFD referenced + by the on-boarded NS descriptor resource. + type: array + items: + $ref: "../components/SOL011_schemas.yaml#/components/schemas/Identifier" + pnfdInfoIds: + description: > + Identifies the PnfdInfo element for the PNFD + referenced by the on-boarded NS descriptor + resource. + type: array + items: + $ref: "../components/SOL011_schemas.yaml#/components/schemas/Identifier" + nestedNsdInfoIds: + description: > + Identifies the NsdInfo element for the nested NSD + referenced by the on-boarded NS descriptor + resource. + type: array + items: + $ref: "../components/SOL011_schemas.yaml#/components/schemas/Identifier" + nsdOnboardingState: + description: > + On boarding state of the individual NS descriptor resource. + $ref: "#/components/schemas/NsdOnboardingStateType" + onboardingFailureDetails: + description: > + Failure details of current on boarding procedure. See + clause 6.3 of ETSI GS NFV-SOL 013 for the details of "ProblemDetails" + structure. + It shall be present when the "nsdOnboardingState" + attribute is CREATED and the uploading or + processing fails in NFVO. + $ref: "../components/SOL011_schemas.yaml#/components/schemas/ProblemDetails" + nsdOperationalState: + description: > + Operational state of the individual NS descriptor + resource. This attribute can be modified with the + PATCH method. + $ref: "#/components/schemas/NsdOperationalStateType" + nsdUsageState: + description: > + Usage state of the individual NS descriptor resource. + $ref: "#/components/schemas/NsdUsageStateType" + userDefinedData: + description: > + User defined data for the individual NS descriptor + resource. This attribute can be modified with the + PATCH method. + $ref: "../components/SOL011_schemas.yaml#/components/schemas/KeyValuePairs" + _links: + type: object + required: + - self + - nsd_content + description: > + Links to resources related to this resource. + properties: + self: + description: > + URI of this resource. + $ref: "../components/SOL011_schemas.yaml#/components/schemas/Link" + nsd_content: + description: > + Link to the NSD content resource. + $ref: "../components/SOL011_schemas.yaml#/components/schemas/Link" + + NsdOperationalStateType: + type: string + description: > + The enumeration NsdOperationalStateType shall comply with the provisions + defined in Table 5.5.4.3-1 of GS NFV_SOL 005. It indicates the operational + state of the resource. + ENABLED = The operational state of the resource is enabled. + DISABLED = The operational state of the resource is disabled. + enum: + - ENABLED + - DISABLED + + NsdUsageStateType: + type: string + description: > + The enumeration NsdUsageStateType shall comply with the provisions + defined in Table 5.5.4.4-1 of GS NFV-SOL 005. It indicates the usage state + of the resource.IN_USE = The resource is in use.NOT_IN_USE = The resource + is not-in-use. + enum: + - IN_USE + - NOT_IN_USE + + NsdOnboardingStateType: + type: string + description: > + The enumeration NsdOnboardingStateType shall comply with the provisions + defined in Table 5.5.4.5-1 of GS NFV-SOL 005. It indicates the on-boarding + state of the NSD. + CREATED = The NSD information object is created. + UPLOADING = The associated NSD content is being uploaded. + PROCESSING = The associated NSD content is being processed, e.g. validation. + ONBOARDED = The associated NSD content is on-boarded. + enum: + - CREATED + - UPLOADING + - PROCESSING + - ONBOARDED + -- GitLab From a2250d76d35eb80a64030480be72c4e4ef44206b Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Mon, 25 Nov 2019 12:14:59 +0100 Subject: [PATCH 05/24] fix --- src/SOL011/NSDManagement/NSDManagement.yaml | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/src/SOL011/NSDManagement/NSDManagement.yaml b/src/SOL011/NSDManagement/NSDManagement.yaml index b6bf4d9..e641237 100644 --- a/src/SOL011/NSDManagement/NSDManagement.yaml +++ b/src/SOL011/NSDManagement/NSDManagement.yaml @@ -215,14 +215,20 @@ components: description: > This type represents a response for the query NSD operation. type: object - required: - - id - - nsdOnboardingState - - nsdOperationalState - - nsdUsageState - - _links - - oneOf: + oneOf: + - required: + - id + - nsdOnboardingState + - nsdOperationalState + - nsdUsageState + - _links - vnfPkgId + - required: + - id + - nsdOnboardingState + - nsdOperationalState + - nsdUsageState + - _links - nestedNsdInfoId properties: id: -- GitLab From 38464c983862cb302a551f17529dcf000ae1c8ed Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Mon, 25 Nov 2019 12:17:40 +0100 Subject: [PATCH 06/24] fix --- src/SOL011/NSDManagement/NSDManagement.yaml | 22 ++++++++------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/src/SOL011/NSDManagement/NSDManagement.yaml b/src/SOL011/NSDManagement/NSDManagement.yaml index e641237..8451585 100644 --- a/src/SOL011/NSDManagement/NSDManagement.yaml +++ b/src/SOL011/NSDManagement/NSDManagement.yaml @@ -215,20 +215,14 @@ components: description: > This type represents a response for the query NSD operation. type: object - oneOf: - - required: - - id - - nsdOnboardingState - - nsdOperationalState - - nsdUsageState - - _links - - vnfPkgId - - required: - - id - - nsdOnboardingState - - nsdOperationalState - - nsdUsageState - - _links + required: + - id + - nsdOnboardingState + - nsdOperationalState + - nsdUsageState + - _links + - oneOf: + - vnfPkgIds - nestedNsdInfoId properties: id: -- GitLab From 07fc645e39becc4a66dda069f6fab7b07dd3a746 Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Mon, 25 Nov 2019 12:18:45 +0100 Subject: [PATCH 07/24] fix --- src/SOL011/NSDManagement/NSDManagement.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SOL011/NSDManagement/NSDManagement.yaml b/src/SOL011/NSDManagement/NSDManagement.yaml index 8451585..90e1c21 100644 --- a/src/SOL011/NSDManagement/NSDManagement.yaml +++ b/src/SOL011/NSDManagement/NSDManagement.yaml @@ -223,7 +223,7 @@ components: - _links - oneOf: - vnfPkgIds - - nestedNsdInfoId + - nestedNsdInfoIds properties: id: description: > -- GitLab From 2234f3dbaeedee02d8586c4e4cf6b60e28c7179d Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Mon, 25 Nov 2019 12:21:04 +0100 Subject: [PATCH 08/24] fix --- src/SOL011/NSDManagement/NSDManagement.yaml | 24 +++++++++++++-------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/src/SOL011/NSDManagement/NSDManagement.yaml b/src/SOL011/NSDManagement/NSDManagement.yaml index 90e1c21..e689dcf 100644 --- a/src/SOL011/NSDManagement/NSDManagement.yaml +++ b/src/SOL011/NSDManagement/NSDManagement.yaml @@ -215,15 +215,21 @@ components: description: > This type represents a response for the query NSD operation. type: object - required: - - id - - nsdOnboardingState - - nsdOperationalState - - nsdUsageState - - _links - - oneOf: - - vnfPkgIds - - nestedNsdInfoIds + oneOf: + - required: + - id + - nsdOnboardingState + - nsdOperationalState + - nsdUsageState + - _links + - vnfPkgIds + - required: + - id + - nsdOnboardingState + - nsdOperationalState + - nsdUsageState + - _links + - nestedNsdInfoIds properties: id: description: > -- GitLab From ad4e522c84b546f61c081ede2634365a12f6415a Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Mon, 25 Nov 2019 12:29:12 +0100 Subject: [PATCH 09/24] fix --- src/SOL011/NSDManagement/NSDManagement.yaml | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/src/SOL011/NSDManagement/NSDManagement.yaml b/src/SOL011/NSDManagement/NSDManagement.yaml index e689dcf..4676fbe 100644 --- a/src/SOL011/NSDManagement/NSDManagement.yaml +++ b/src/SOL011/NSDManagement/NSDManagement.yaml @@ -159,8 +159,10 @@ components: minimum: 0 content: application/json: - schema: - $ref: "#/components/schemas/NsdInfos.Get.Response" + schema: + type: array + items: + $ref: "#/components/schemas/NsdInfo" NsdInfo.Get.200: description: >- @@ -200,17 +202,10 @@ components: minimum: 0 content: application/json: - schema: - $ref: "#/components/schemas/NsdInfo" + schema: + $ref: "#/components/schemas/NsdInfo" schemas: - NsdInfos.Get.Response: - description: > - This type represents a response for the query NSD operation. - type: array - items: - $ref: "#/components/schemas/NsdInfo" - NsdInfo: description: > This type represents a response for the query NSD operation. -- GitLab From 081b081c303663c80e02b190b502c51e4a1619da Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Mon, 25 Nov 2019 12:39:26 +0100 Subject: [PATCH 10/24] Added ci/cd jenkins and docker files --- .jenkins.sh | 19 +++++++ docker/Dockerfile | 33 ++++++++++++ docker/build-container.sh | 25 +++++++++ docker/oas2pdf | 61 +++++++++++++++++++++ docker/run-container.sh | 27 ++++++++++ docker/swg2mrkup | 17 ++++++ docker/validate-in-docker.sh | 100 +++++++++++++++++++++++++++++++++++ 7 files changed, 282 insertions(+) create mode 100644 .jenkins.sh create mode 100644 docker/Dockerfile create mode 100755 docker/build-container.sh create mode 100644 docker/oas2pdf create mode 100755 docker/run-container.sh create mode 100644 docker/swg2mrkup create mode 100644 docker/validate-in-docker.sh diff --git a/.jenkins.sh b/.jenkins.sh new file mode 100644 index 0000000..2a971ec --- /dev/null +++ b/.jenkins.sh @@ -0,0 +1,19 @@ +#!/bin/bash +# Copyright ETSI 2017 +# See: https://forge.etsi.org/etsi-forge-copyright-statement.txt + +cd "$(dirname "$0")" + +run_dir="$(pwd)" + +rm build/*-API.yaml +rm build/*-API.json + +cd docker + +./build-container.sh + +./run-container.sh "${run_dir}" +OUTCOME=$? + +exit $OUTCOME diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 0000000..9b3d838 --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,33 @@ +# Copyright ETSI 2017 +# See: https://forge.etsi.org/etsi-forge-copyright-statement.txt + +FROM alpine:3.10.0 + +RUN env +RUN apk update +RUN apk add bash +RUN apk add nodejs +RUN apk add nodejs-npm +RUN apk add asciidoctor +RUN apk add openjdk8 +RUN apk add ca-certificates wget && update-ca-certificates +RUN apk add openssl +RUN gem install rdoc --pre || gem install rdoc --pre +RUN gem install asciidoctor-pdf-cjk +RUN wget https://forge.etsi.org/swagger2markup-cli-1.3.2.jar +RUN npm config set proxy $http_proxy +RUN npm install -g swagger-cli +RUN npm install -g json-refs +RUN npm install -g yamljs + +ADD validate-in-docker.sh /validate-in-docker.sh +RUN chmod +x /validate-in-docker.sh + +ADD swg2mrkup /bin/swg2mrkup +RUN chmod +x /bin/swg2mrkup + +ADD oas2pdf /bin/oas2pdf +RUN chmod +x /bin/oas2pdf + +ENTRYPOINT ["/validate-in-docker.sh"] + diff --git a/docker/build-container.sh b/docker/build-container.sh new file mode 100755 index 0000000..d633cde --- /dev/null +++ b/docker/build-container.sh @@ -0,0 +1,25 @@ +#!/bin/bash +# Copyright ETSI 2017 +# See: https://forge.etsi.org/etsi-forge-copyright-statement.txt + +#set -x + +proxy = "" +if [[ ! -v http_proxy ]]; then + echo "http_proxy is not set" +elif [[ -z "$http_proxy" ]]; then + echo "http_proxy is empty" +else + echo "http_proxy is set to $http_proxy" + if [[ $http_proxy =~ ^http:\/\/[0-9] ]]; then + echo "starts with http" + proxy=$http_proxy + elif [[ $http_proxy =~ ^[0-9] ]]; then + echo "starts with number" + proxy=http://$http_proxy + fi +fi + +echo "Proxy set to $proxy" + +docker build --build-arg http_proxy=$proxy --build-arg https_proxy=$proxy -t openapivalidator . \ No newline at end of file diff --git a/docker/oas2pdf b/docker/oas2pdf new file mode 100644 index 0000000..70a36a0 --- /dev/null +++ b/docker/oas2pdf @@ -0,0 +1,61 @@ +#!/bin/bash +#Copyright (c) ETSI 2017. + +# This software is subject to copyrights owned by ETSI. Non-exclusive permission +# is hereby granted, free of charge, to copy, reproduce and amend this file +# under the following conditions: It is provided "as is", without warranty of any +# kind, expressed or implied. + +# ETSI shall never be liable for any claim, damages, or other liability arising +# from its use or inability of use.This permission does not apply to any documentation +# associated with this file for which ETSI keeps all rights reserved. The present +# copyright notice shall be included in all copies of whole or part of this +# software and shall not imply any sub-license right. +# +# Author: michele.carignani@etsi.org +# +# This script takes an OpenAPI file in input and creates +# a PDF file with the content. +# +# Prerequisites: +# - https://github.com/Swagger2Markup/swagger2markup-cli +# - Asciidoctor (sudo apt-get install asciidoctor) +# - Asciidoctor-pdf (sudo gem install asciidoctor-pdf) +# +# Usage: +# oas2pdf (e.g. myapi.json) +# +# Result: +# A new pdf file is created in the working directory (e.g. myapi.pdf) +# +# +# +# + +# Configuration + +# Change this if needed +SWG2MRKUP=swg2mrkup +ASCIIDOCPDF=asciidoctor-pdf + +# Setup +WD=$(pwd) +TWD=$(mktemp -d) + +INFILE=$(basename ${1?"Error: missing input file name"} ) +OUTFILE="${INFILE%.*}" + +echo "$INFILE, $OUTFILE" + +echo "Converting to asciidoc.." +${SWG2MRKUP} convert -i "$1" -f "$TWD/$OUTFILE" +echo + +echo "Converting to PDF.." +"${ASCIIDOCPDF}" "$TWD/${OUTFILE}.adoc" -o "$WD/${OUTFILE}.pdf" +echo + +echo "Done." +# Clean up +rm -r $TWD + diff --git a/docker/run-container.sh b/docker/run-container.sh new file mode 100755 index 0000000..7118514 --- /dev/null +++ b/docker/run-container.sh @@ -0,0 +1,27 @@ +#!/bin/bash +# Copyright ETSI 2017 +# See: https://forge.etsi.org/etsi-forge-copyright-statement.txt + +# Change this variable to true if you want +# to copy the created yaml files to a web served directory +# +# +WEB_PUBLISH=true + +f="${1:-`pwd`}" +filter="$2" + +echo "Mounting dir $f as /work" + +if [ -n "$JOB_BASE_NAME" -a "$WEB_PUBLISH" = true ] ; then + s="/var/www/html/api/nfv/$JOB_BASE_NAME/$BUILD_NUMBER" + mkdir -v -p "$s" + echo "Mounting dir $s as /storage" + docker run -v "$f":/work -v "$s":/storage openapivalidator "/work" "/storage" "$filter" +else + docker run -v "$f":/work openapivalidator "/work" "/storage" "$filter" +fi + + + + diff --git a/docker/swg2mrkup b/docker/swg2mrkup new file mode 100644 index 0000000..b549371 --- /dev/null +++ b/docker/swg2mrkup @@ -0,0 +1,17 @@ +#!/bin/bash +#Copyright (c) ETSI 2017. + +# This software is subject to copyrights owned by ETSI. Non-exclusive permission +# is hereby granted, free of charge, to copy, reproduce and amend this file +# under the following conditions: It is provided "as is", without warranty of any +# kind, expressed or implied. + +# ETSI shall never be liable for any claim, damages, or other liability arising +# from its use or inability of use.This permission does not apply to any documentation +# associated with this file for which ETSI keeps all rights reserved. The present +# copyright notice shall be included in all copies of whole or part of this +# software and shall not imply any sub-license right. +# +# Author: michele.carignani@etsi.org + +java -jar /swagger2markup-cli-1.3.2.jar $@ diff --git a/docker/validate-in-docker.sh b/docker/validate-in-docker.sh new file mode 100644 index 0000000..765269d --- /dev/null +++ b/docker/validate-in-docker.sh @@ -0,0 +1,100 @@ +#!/bin/bash +# Copyright ETSI 2017 +# See: https://forge.etsi.org/etsi-forge-copyright-statement.txt + +# Merges OpenAPIs interfaces in the working directory +# and validates them individually. +# Exit status is 0 if all validation passed, 1 otherwise + +# Usage: +# $0 + +#set -x + +function store_api () { + f="$1" + cp -v "$1" "${storage_dir}/" +} + +function validate_api () { + file="$1" + api="$2" + deliverable="$3" + echo "--- Merging file." + merged_file="../build/${deliverable}-${api}-API.yaml" + json_file="../build/${deliverable}-${api}-API.json" + json-refs resolve "${file}" > "${merged_file}" + yaml2json "${merged_file}" > "${json_file}" + + # Create the PDF version + echo "--- Create PDF..." + oas2pdf "${json_file}" 2>/dev/null 1>/dev/null + mv "${deliverable}-${api}-API.pdf" "../build/" + + echo "--- Validating ${merged_file}" + swagger-cli validate "${merged_file}" + vres=$? + echo "--- Validation done ($vres)." + + # If validation succedes, store the generated file + [ $vres -a -d "/storage" ] && store_api "${merged_file}" + [ $vres -a -d "/storage" ] && store_api "${json_file}" + [ $vres -a -d "/storage" ] && store_api "../build/${deliverable}-${api}-API.pdf" + + + return $vres +} + +# usage get_api_from_fn +# e.g. get_api_from_fn /path/to/SOL003/Api1/Api1.yaml returns Api1 +function get_api_from_fn () { + echo "$(basename $(dirname $1))" +} + +# usage get_api_from_fn +# e.g. get_api_from_fn /path/to/SOL003/Api1/Api1.yaml returns Api1 +function get_deliverable_from_fn () { + echo "$(basename $(dirname $(dirname $1 )))" +} + +## Main ## + +wd="${1?"Usage: $0 []"}" +storage_dir="${2?"Usage: $0 []"}" + +filter="$3" +echo "Using filter '$filter'" +echo + +mkdir -p "$wd/build" + +echo "Entering dir $wd/src" +cd "$wd/src" + +# Stores the overall validation result +# (single results in OR) +fres=0 + + +for f in $(find -name "*.yaml") ; do + # echo "Found yaml file: $f" + file=$(basename "$f") + api=$(get_api_from_fn $f) + deliverable=$(get_deliverable_from_fn $f) + if [ "$file" = "$api.yaml" ]; then + if [[ -n "$filter" && ! "$f" =~ ^[a-zA-Z0-9\.\/\-]*$filter[a-zA-Z\.\/0-9\-]*$ ]] ; then + echo "Filtered out: $f (api: $api) (deliverable:$deliverable)." + else + echo "-- Will validate: $f (api: $api) (deliverable:$deliverable)" + validate_api "$f" "$api" "$deliverable" + res=$? + fres=$(($fres||$res)) + fi + fi +done + +chmod -R o+w "$wd/build" + +# Exit code needed for jenkins to know the verdict of the build +echo "-- Final validator returns $fres." +exit $fres -- GitLab From 2c610b57dc1905ef0e4df54e4f7c0f1eb389b810 Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Mon, 23 Dec 2019 17:10:14 +0100 Subject: [PATCH 11/24] updated SOL011 NSLifecycleOperationGranting.yaml --- .../NSLifecycleOperationGranting.yaml | 149 ++++++++++++++++-- 1 file changed, 138 insertions(+), 11 deletions(-) diff --git a/src/SOL011/NSLifecycleOperationGranting/NSLifecycleOperationGranting.yaml b/src/SOL011/NSLifecycleOperationGranting/NSLifecycleOperationGranting.yaml index d7c800c..295ee57 100644 --- a/src/SOL011/NSLifecycleOperationGranting/NSLifecycleOperationGranting.yaml +++ b/src/SOL011/NSLifecycleOperationGranting/NSLifecycleOperationGranting.yaml @@ -14,7 +14,7 @@ info: url: https://forge.etsi.org/etsi-forge-copyright-notice.txt externalDocs: description: ETSI GS NFV-SOL 011 V3.3.1 - url: https://docbox.etsi.org/ISG/NFV/Open/Drafts/SOL011ed331_Or-Or_Stage_3/NFV-SOL011ed331v010.zip + url: https://docbox.etsi.org/ISG/NFV/Open/Drafts/SOL011ed331_Or-Or_Stage_3/NFV-SOL011ed331v020.zip security: - OauthSecurity: @@ -27,7 +27,7 @@ paths: "/api_versions": $ref: '../endpoints/SOL011_endpoints.yaml#/endpoints/api_versions' - "/grant": + "/grants": description: >- This resource represents grant. The NFVO-N can use this resource to request a grant. post: @@ -43,14 +43,14 @@ paths: requestBody: $ref: "#/components/requestBodies/GrantNsLifecycleOperationRequest" responses: - "204": - $ref: '#/components/responses/Grant.Post.204' + "201": + $ref: '#/components/responses/Grants.Post.201' "400": $ref: ../components/SOL011_resp.yaml#/components/responses/400 "401": $ref: ../components/SOL011_resp.yaml#/components/responses/401 "403": - $ref: '#/components/responses/Grant.Post.403' + $ref: '#/components/responses/Grants.Post.403' "404": $ref: ../components/SOL011_resp.yaml#/components/responses/404 "405": @@ -66,20 +66,70 @@ paths: "504": $ref: ../components/SOL011_resp.yaml#/components/responses/504 + "/grants/{grantId}": + description: >- + This resource represents an individual grant.. + get: + description: >- + The GET method reads a grant. + This method shall follow the provisions specified in the tables 7.5.4.3.2-1 and 7.5.4.3.2-2 + for URI query parameters, request and response data structures, and response codes. + parameters: + - $ref: "#/components/parameters/grantId" + - $ref: "../components/SOL011_params.yaml#/components/parameters/Version" + - $ref: "../components/SOL011_params.yaml#/components/parameters/Accept" + - $ref: "../components/SOL011_params.yaml#/components/parameters/Authorization" + responses: + "200": + $ref: '#/components/responses/Grant.Get.200' + "400": + $ref: ../components/SOL011_resp.yaml#/components/responses/400 + "401": + $ref: ../components/SOL011_resp.yaml#/components/responses/401 + "403": + $ref: ../components/SOL011_resp.yaml#/components/responses/403 + "404": + $ref: ../components/SOL011_resp.yaml#/components/responses/404 + "405": + $ref: ../components/SOL011_resp.yaml#/components/responses/405 + "406": + $ref: ../components/SOL011_resp.yaml#/components/responses/406 + "422": + $ref: ../components/SOL011_resp.yaml#/components/responses/422 + "500": + $ref: ../components/SOL011_resp.yaml#/components/responses/500 + "503": + $ref: ../components/SOL011_resp.yaml#/components/responses/503 + "504": + $ref: ../components/SOL011_resp.yaml#/components/responses/504 + + components: + parameters: + grantId: + name: grantId + in: path + description: >- + Identifier of the grant + required: true + schema: + $ref: '../components/SOL011_schemas.yaml#/components/schemas/Identifier' requestBodies: GrantNsLifecycleOperationRequest: description: >- - The NS lifecycle operation grant request parameters, as defined in clause 7.6.x.a. + The NS lifecycle operation grant request parameters, as defined in clause 7.6.2.2. content: application/json: schema: $ref: "#/components/schemas/GrantNsLifecycleOperationRequest" responses: - Grant.Post.204: + Grants.Post.201: description: >- - Shall be returned when the grant request was approved. - The response body shall be empty. + Shall be returned when the grant has been created successfully. + A representation of the created "Individual grant" resource shall be returned in the response body. + The HTTP response shall include a "Location" HTTP header that indicates the URI of the + "Individual grant" resource just created. + headers: WWW-Authenticate: description: > @@ -93,8 +143,17 @@ components: Version of the API used in the response. schema: type: string + Location: + description: > + URI of the "Individual grant" resource just created + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/Grant' - Grant.Post.403: + Grants.Post.403: description: >- Shall be returned upon the following error: the grant request was rejected. A ProblemDetails structure shall be included in the response to provide more @@ -120,6 +179,29 @@ components: application/json: schema: $ref: '../components/SOL011_schemas.yaml#/components/schemas/ProblemDetails' + + Grant.Get.200: + description: >- + Shall be returned when the grant has been read successfully. + A representation of the "Individual grant" resource shall be returned in the response body. + 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. + schema: + type: string + Version: + description: > + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/Grant' + schemas: GrantNsLifecycleOperationRequest: description: >- @@ -161,5 +243,50 @@ components: - TERMINATE - HEAL + Grant: + description: >- - + type: object + required: + - id + - nsInstanceId + - nsLcmOpOccId + - _links + properties: + id: + description: >- + Identifier of the grant. + $ref: "../components/SOL011_schemas.yaml#/components/schemas/Identifier" + nsInstanceId: + description: >- + Identifier of the NS instance which this grant request relates to. + $ref: "../components/SOL011_schemas.yaml#/components/schemas/Identifier" + nsLcmOpOccId: + description: >- + Identifier of the NS lifecycle management operation occurrence associated to the GrantRequest. + $ref: "../components/SOL011_schemas.yaml#/components/schemas/Identifier" + additionalParams: + description: >- + Additional parameters passed by NFVO-N, specific to the NS and the lifecycle management operation. + $ref: "../components/SOL011_schemas.yaml#/components/schemas/KeyValuePairs" + _links: + description: >- + Links to resources related to this resource. + type: object + required: + - self + - nsLcmOpOcc + - nsInstance + properties: + self: + description: >- + URI of this resource + $ref: "../components/SOL011_schemas.yaml#/components/schemas/Link" + nsLcmOpOcc: + description: >- + Related NS lifecycle management operation occurrence + $ref: "../components/SOL011_schemas.yaml#/components/schemas/Link" + nsInstance: + description: >- + Related NS instance. + $ref: "../components/SOL011_schemas.yaml#/components/schemas/Link" -- GitLab From a3dddfcc8d6a284a4d7a89b8c5152f4bb9340448 Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Tue, 7 Jan 2020 15:16:22 +0100 Subject: [PATCH 12/24] fixed API version --- src/SOL011/APIVersion/APIVersion.yaml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/SOL011/APIVersion/APIVersion.yaml b/src/SOL011/APIVersion/APIVersion.yaml index f4b01a0..ec227f6 100644 --- a/src/SOL011/APIVersion/APIVersion.yaml +++ b/src/SOL011/APIVersion/APIVersion.yaml @@ -1,7 +1,7 @@ openapi: 3.0.2 info: - version: 1.1.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 + version: 1.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 title: SOL011 - API version interface @@ -27,5 +27,7 @@ externalDocs: url: https://docbox.etsi.org/ISG/NFV/Open/Drafts/SOL011ed331_Or-Or_Stage_3/NFV-SOL011ed331v010.zip paths: - /nfvmanofm/api_versions: + /nsdm/api_versions: + $ref: '../endpoints/SOL011_endpoints.yaml#/endpoints/api_versions' + /nslcog/api_versions: $ref: '../endpoints/SOL011_endpoints.yaml#/endpoints/api_versions' -- GitLab From 63da9bc36ff1944a25dc1cf5163495fd3841f5e6 Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Fri, 17 Jan 2020 17:58:55 +0100 Subject: [PATCH 13/24] updated link to SOL011 v3.3.1 doc --- src/SOL011/APIVersion/APIVersion.yaml | 2 +- src/SOL011/NSDManagement/NSDManagement.yaml | 2 +- .../NSLifecycleOperationGranting.yaml | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/SOL011/APIVersion/APIVersion.yaml b/src/SOL011/APIVersion/APIVersion.yaml index ec227f6..96f1345 100644 --- a/src/SOL011/APIVersion/APIVersion.yaml +++ b/src/SOL011/APIVersion/APIVersion.yaml @@ -24,7 +24,7 @@ info: externalDocs: description: ETSI GS NFV-SOL 011 V3.3.1 - url: https://docbox.etsi.org/ISG/NFV/Open/Drafts/SOL011ed331_Or-Or_Stage_3/NFV-SOL011ed331v010.zip + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/011/03.03.01_60/gs_NFV-SOL011v030301p.pdf paths: /nsdm/api_versions: diff --git a/src/SOL011/NSDManagement/NSDManagement.yaml b/src/SOL011/NSDManagement/NSDManagement.yaml index 4676fbe..22d796e 100644 --- a/src/SOL011/NSDManagement/NSDManagement.yaml +++ b/src/SOL011/NSDManagement/NSDManagement.yaml @@ -14,7 +14,7 @@ info: url: https://forge.etsi.org/etsi-forge-copyright-notice.txt externalDocs: description: ETSI GS NFV-SOL 011 V3.3.1 - url: https://docbox.etsi.org/ISG/NFV/Open/Drafts/SOL011ed331_Or-Or_Stage_3/NFV-SOL011ed331v010.zip + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/011/03.03.01_60/gs_NFV-SOL011v030301p.pdf security: - OauthSecurity: diff --git a/src/SOL011/NSLifecycleOperationGranting/NSLifecycleOperationGranting.yaml b/src/SOL011/NSLifecycleOperationGranting/NSLifecycleOperationGranting.yaml index 295ee57..3c9a148 100644 --- a/src/SOL011/NSLifecycleOperationGranting/NSLifecycleOperationGranting.yaml +++ b/src/SOL011/NSLifecycleOperationGranting/NSLifecycleOperationGranting.yaml @@ -3,7 +3,7 @@ info: version: 1.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 title: SOL011 - NS Lifecycle Operation Granting Interface description: > - SOL009 - NS Lifecycle Operation Granting Interface + SOL011 - NS Lifecycle Operation Granting Interface IMPORTANT: Please note that this file might be not aligned to the current version of the ETSI Group Specification it refers to. In case of discrepancies the published ETSI Group Specification takes precedence. @@ -14,7 +14,7 @@ info: url: https://forge.etsi.org/etsi-forge-copyright-notice.txt externalDocs: description: ETSI GS NFV-SOL 011 V3.3.1 - url: https://docbox.etsi.org/ISG/NFV/Open/Drafts/SOL011ed331_Or-Or_Stage_3/NFV-SOL011ed331v020.zip + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/011/03.03.01_60/gs_NFV-SOL011v030301p.pdf security: - OauthSecurity: -- GitLab From 405d99787e12d546db333929b3dfc5d8d6d85191 Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Fri, 17 Jan 2020 17:59:21 +0100 Subject: [PATCH 14/24] Added NS Performance Management openAPI - reference to SOL005 as-is --- .../NSPerformanceManagement.yaml | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 src/SOL011/NSPerformanceManagement/NSPerformanceManagement.yaml diff --git a/src/SOL011/NSPerformanceManagement/NSPerformanceManagement.yaml b/src/SOL011/NSPerformanceManagement/NSPerformanceManagement.yaml new file mode 100644 index 0000000..12f8bfe --- /dev/null +++ b/src/SOL011/NSPerformanceManagement/NSPerformanceManagement.yaml @@ -0,0 +1,45 @@ +swagger: "2.0" + +info: + version: "1.1.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" + title: "SOL011 - NS Performance Management Interface" + description: > + SOL011 - NS Performance Management 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 + license: + name: "ETSI Forge copyright notice" + url: https://forge.etsi.org/etsi-forge-copyright-notice.txt + contact: + name: "NFV-SOL WG" + +externalDocs: + description: ETSI GS NFV-SOL 011 V3.3.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/011/03.03.01_60/gs_NFV-SOL011v030301p.pdf + +basePath: /nspm/v1 + +schemes: + - http + - https + +consumes: + - application/json + +produces: + - application/json + +paths: + "/api_versions": + $ref: 'https://forge.etsi.org/jenkins/job/NFV%20-%20Network%20Functions%20Virtualisation/job/sol005-master/20/artifact/build/SOL005-NSPerformanceManagement-API.yaml#/paths/~1api-versions' + "/pm_jobs": + $ref: 'https://forge.etsi.org/jenkins/job/NFV%20-%20Network%20Functions%20Virtualisation/job/sol005-master/20/artifact/build/SOL005-NSPerformanceManagement-API.yaml#/paths/~1pm_jobs' + "/pm_jobs/{pmJobId}": + $ref: 'https://forge.etsi.org/jenkins/job/NFV%20-%20Network%20Functions%20Virtualisation/job/sol005-master/20/artifact/build/SOL005-NSPerformanceManagement-API.yaml#/paths/~1pm_jobs~1{pmJobId}' + "/thresholds": + $ref: 'https://forge.etsi.org/jenkins/job/NFV%20-%20Network%20Functions%20Virtualisation/job/sol005-master/20/artifact/build/SOL005-NSPerformanceManagement-API.yaml#/paths/~1thresholds' + "/thresholds/{thresholdId}": + $ref: 'https://forge.etsi.org/jenkins/job/NFV%20-%20Network%20Functions%20Virtualisation/job/sol005-master/20/artifact/build/SOL005-NSPerformanceManagement-API.yaml#/paths/~1thresholds~1{thresholdId}' \ No newline at end of file -- GitLab From 67c366b45772354ee26059bd2bdd2f8c292216a2 Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Fri, 17 Jan 2020 18:04:17 +0100 Subject: [PATCH 15/24] added NS Fault Management openAPI - reference to SOL005 as-is --- .../NSFaultManagement/NSFaultManagement.yaml | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 src/SOL011/NSFaultManagement/NSFaultManagement.yaml diff --git a/src/SOL011/NSFaultManagement/NSFaultManagement.yaml b/src/SOL011/NSFaultManagement/NSFaultManagement.yaml new file mode 100644 index 0000000..ee85f49 --- /dev/null +++ b/src/SOL011/NSFaultManagement/NSFaultManagement.yaml @@ -0,0 +1,45 @@ +swagger: "2.0" + +info: + version: "1.1.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" + title: "SOL011 - NS Fault Management Interface" + description: > + SOL011 - NS Fault Management 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 + license: + name: "ETSI Forge copyright notice" + url: https://forge.etsi.org/etsi-forge-copyright-notice.txt + contact: + name: "NFV-SOL WG" + +externalDocs: + description: ETSI GS NFV-SOL 011 V3.3.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/011/03.03.01_60/gs_NFV-SOL011v030301p.pdf + +basePath: /nsfm/v1 + +schemes: + - http + - https + +consumes: + - application/json + +produces: + - application/json + +paths: + "/api_versions": + $ref: 'https://forge.etsi.org/jenkins/job/NFV%20-%20Network%20Functions%20Virtualisation/job/sol005-master/20/artifact/build/SOL005-NSFaultManagement-API.yaml#/paths/~1api-versions' + "/alarms": + $ref: 'https://forge.etsi.org/jenkins/job/NFV%20-%20Network%20Functions%20Virtualisation/job/sol005-master/20/artifact/build/SOL005-NSFaultManagement-API.yaml#/paths/~1alarms' + "/alarms/{alarmId}": + $ref: 'https://forge.etsi.org/jenkins/job/NFV%20-%20Network%20Functions%20Virtualisation/job/sol005-master/20/artifact/build/SOL005-NSFaultManagement-API.yaml#/paths/~1alarms~1{alarmId}' + "/subscriptions": + $ref: 'https://forge.etsi.org/jenkins/job/NFV%20-%20Network%20Functions%20Virtualisation/job/sol005-master/20/artifact/build/SOL005-NSFaultManagement-API.yaml#/paths/~1subscriptions' + "/subscriptions/{subscriptionId}": + $ref: 'https://forge.etsi.org/jenkins/job/NFV%20-%20Network%20Functions%20Virtualisation/job/sol005-master/20/artifact/build/SOL005-NSFaultManagement-API.yaml#/paths/~1subscriptions~1{subscriptionId}' -- GitLab From e0a238630bc2fd960850a93e691eb3c75500c992 Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Wed, 22 Jan 2020 18:54:15 +0100 Subject: [PATCH 16/24] updated external reference to SOL005 OpenAPIs --- src/SOL011/NSFaultManagement/NSFaultManagement.yaml | 10 +++++----- .../NSPerformanceManagement.yaml | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/SOL011/NSFaultManagement/NSFaultManagement.yaml b/src/SOL011/NSFaultManagement/NSFaultManagement.yaml index ee85f49..0e529d4 100644 --- a/src/SOL011/NSFaultManagement/NSFaultManagement.yaml +++ b/src/SOL011/NSFaultManagement/NSFaultManagement.yaml @@ -34,12 +34,12 @@ produces: paths: "/api_versions": - $ref: 'https://forge.etsi.org/jenkins/job/NFV%20-%20Network%20Functions%20Virtualisation/job/sol005-master/20/artifact/build/SOL005-NSFaultManagement-API.yaml#/paths/~1api-versions' + $ref: 'https://forge.etsi.org/rep/nfv/SOL005/raw/v2.6.1/src/SOL005/NSFaultManagement/NSFaultManagement.yaml#/paths/~1api-versions' "/alarms": - $ref: 'https://forge.etsi.org/jenkins/job/NFV%20-%20Network%20Functions%20Virtualisation/job/sol005-master/20/artifact/build/SOL005-NSFaultManagement-API.yaml#/paths/~1alarms' + $ref: 'https://forge.etsi.org/rep/nfv/SOL005/raw/v2.6.1/src/SOL005/NSFaultManagement/NSFaultManagement.yaml#/paths/~1alarms' "/alarms/{alarmId}": - $ref: 'https://forge.etsi.org/jenkins/job/NFV%20-%20Network%20Functions%20Virtualisation/job/sol005-master/20/artifact/build/SOL005-NSFaultManagement-API.yaml#/paths/~1alarms~1{alarmId}' + $ref: 'https://forge.etsi.org/rep/nfv/SOL005/raw/v2.6.1/src/SOL005/NSFaultManagement/NSFaultManagement.yaml#/paths/~1alarms~1{alarmId}' "/subscriptions": - $ref: 'https://forge.etsi.org/jenkins/job/NFV%20-%20Network%20Functions%20Virtualisation/job/sol005-master/20/artifact/build/SOL005-NSFaultManagement-API.yaml#/paths/~1subscriptions' + $ref: 'https://forge.etsi.org/rep/nfv/SOL005/raw/v2.6.1/src/SOL005/NSFaultManagement/NSFaultManagement.yaml#/paths/~1subscriptions' "/subscriptions/{subscriptionId}": - $ref: 'https://forge.etsi.org/jenkins/job/NFV%20-%20Network%20Functions%20Virtualisation/job/sol005-master/20/artifact/build/SOL005-NSFaultManagement-API.yaml#/paths/~1subscriptions~1{subscriptionId}' + $ref: 'https://forge.etsi.org/rep/nfv/SOL005/raw/v2.6.1/src/SOL005/NSFaultManagement/NSFaultManagement.yaml#/paths/~1subscriptions~1{subscriptionId}' diff --git a/src/SOL011/NSPerformanceManagement/NSPerformanceManagement.yaml b/src/SOL011/NSPerformanceManagement/NSPerformanceManagement.yaml index 12f8bfe..00121bc 100644 --- a/src/SOL011/NSPerformanceManagement/NSPerformanceManagement.yaml +++ b/src/SOL011/NSPerformanceManagement/NSPerformanceManagement.yaml @@ -34,12 +34,12 @@ produces: paths: "/api_versions": - $ref: 'https://forge.etsi.org/jenkins/job/NFV%20-%20Network%20Functions%20Virtualisation/job/sol005-master/20/artifact/build/SOL005-NSPerformanceManagement-API.yaml#/paths/~1api-versions' + $ref: 'https://forge.etsi.org/rep/nfv/SOL005/raw/v2.6.1/src/SOL005/NSPerformanceManagement/NSPerformanceManagement.yaml#/paths/~1api-versions' "/pm_jobs": - $ref: 'https://forge.etsi.org/jenkins/job/NFV%20-%20Network%20Functions%20Virtualisation/job/sol005-master/20/artifact/build/SOL005-NSPerformanceManagement-API.yaml#/paths/~1pm_jobs' + $ref: 'https://forge.etsi.org/rep/nfv/SOL005/raw/v2.6.1/src/SOL005/NSPerformanceManagement/NSPerformanceManagement.yaml#/paths/~1pm_jobs' "/pm_jobs/{pmJobId}": - $ref: 'https://forge.etsi.org/jenkins/job/NFV%20-%20Network%20Functions%20Virtualisation/job/sol005-master/20/artifact/build/SOL005-NSPerformanceManagement-API.yaml#/paths/~1pm_jobs~1{pmJobId}' + $ref: 'https://forge.etsi.org/rep/nfv/SOL005/raw/v2.6.1/src/SOL005/NSPerformanceManagement/NSPerformanceManagement.yaml#/paths/~1pm_jobs~1{pmJobId}' "/thresholds": - $ref: 'https://forge.etsi.org/jenkins/job/NFV%20-%20Network%20Functions%20Virtualisation/job/sol005-master/20/artifact/build/SOL005-NSPerformanceManagement-API.yaml#/paths/~1thresholds' + $ref: 'https://forge.etsi.org/rep/nfv/SOL005/raw/v2.6.1/src/SOL005/NSPerformanceManagement/NSPerformanceManagement.yaml#/paths/~1thresholds' "/thresholds/{thresholdId}": - $ref: 'https://forge.etsi.org/jenkins/job/NFV%20-%20Network%20Functions%20Virtualisation/job/sol005-master/20/artifact/build/SOL005-NSPerformanceManagement-API.yaml#/paths/~1thresholds~1{thresholdId}' \ No newline at end of file + $ref: 'https://forge.etsi.org/rep/nfv/SOL005/raw/v2.6.1/src/SOL005/NSPerformanceManagement/NSPerformanceManagement.yaml#/paths/~1thresholds~1{thresholdId}' \ No newline at end of file -- GitLab From 60191c34ec8d960628d16a8d5f7816a86774a2d1 Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Thu, 23 Jan 2020 10:41:35 +0100 Subject: [PATCH 17/24] Added NS LCM openapis from SOL005 --- .../NSLifecycleManagement.yaml | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 src/SOL011/NSLifecycleManagement/NSLifecycleManagement.yaml diff --git a/src/SOL011/NSLifecycleManagement/NSLifecycleManagement.yaml b/src/SOL011/NSLifecycleManagement/NSLifecycleManagement.yaml new file mode 100644 index 0000000..bf19038 --- /dev/null +++ b/src/SOL011/NSLifecycleManagement/NSLifecycleManagement.yaml @@ -0,0 +1,57 @@ +swagger: "2.0" + +info: + version: "1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" + title: "SOL011 - NS Lifecycle Management Interface" + description: > + SOL011 - NS Lifecycle Management 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 + license: + name: "ETSI Forge copyright notice" + url: https://forge.etsi.org/etsi-forge-copyright-notice.txt + contact: + name: "NFV-SOL WG" + +externalDocs: + description: ETSI GS NFV-SOL 011 V3.3.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/011/03.03.01_60/gs_NFV-SOL011v030301p.pdf + +basePath: /nslcm/v1 + +schemes: + - http + - https + +consumes: + - application/json + +produces: + - application/json + +paths: + "/api_versions": + $ref: 'https://forge.etsi.org/rep/nfv/SOL005/raw/v2.6.1/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml#/paths/~1api-versions' + "/ns_instances": + $ref: 'https://forge.etsi.org/rep/nfv/SOL005/raw/v2.6.1/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml#/paths/~1ns_instances' + "/ns_instances/{nsInstanceId}": + $ref: 'https://forge.etsi.org/rep/nfv/SOL005/raw/v2.6.1/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml#/paths/~1ns_instances~1{nsInstanceId}' + "/ns_instances/{nsInstanceId}/instantiate": + $ref: 'https://forge.etsi.org/rep/nfv/SOL005/raw/v2.6.1/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml#/paths/~1ns_instances~1{nsInstanceId}~1instantiate' + "/ns_instances/{nsInstanceId}/terminate": + $ref: 'https://forge.etsi.org/rep/nfv/SOL005/raw/v2.6.1/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml#/paths/~1ns_instances~1{nsInstanceId}~1terminate' + "/ns_instances/{nsInstanceId}/scale": + $ref: 'https://forge.etsi.org/rep/nfv/SOL005/raw/v2.6.1/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml#/paths/~1ns_instances~1{nsInstanceId}~1scale' + "/ns_instances/{nsInstanceId}/heal": + $ref: 'https://forge.etsi.org/rep/nfv/SOL005/raw/v2.6.1/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml#/paths/~1ns_instances~1{nsInstanceId}~1heal' + "/ns_lcm_op_occs": + $ref: 'https://forge.etsi.org/rep/nfv/SOL005/raw/v2.6.1/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml#/paths/~1ns_lcm_op_occs' + "/ns_lcm_op_occs/{nsLcmOpOccId}": + $ref: 'https://forge.etsi.org/rep/nfv/SOL005/raw/v2.6.1/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml#/paths/~1ns_lcm_op_occs~1{nsLcmOpOccId}' + "/subscriptions": + $ref: 'https://forge.etsi.org/rep/nfv/SOL005/raw/v2.6.1/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml#/paths/~1subscriptions' + "/subscriptions/{subscriptionId}": + $ref: 'https://forge.etsi.org/rep/nfv/SOL005/raw/v2.6.1/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml#/paths/~1subscriptions~1{subscriptionId}' -- GitLab From 5d1d354d009121f45da2b0266618ea87bed1cc14 Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Thu, 23 Jan 2020 10:58:14 +0100 Subject: [PATCH 18/24] Added NS LCM, PM and FM notification openapis - ref from SOL005 --- .../NSFaultManagementNotification.yaml | 41 +++++++++++++++++++ .../NSLifecycleManagementNotification.yaml | 41 +++++++++++++++++++ .../NSPerformanceManagementNotification.yaml | 39 ++++++++++++++++++ 3 files changed, 121 insertions(+) create mode 100644 src/SOL011/NSFaultManagementNotification/NSFaultManagementNotification.yaml create mode 100644 src/SOL011/NSLifecycleManagementNotification/NSLifecycleManagementNotification.yaml create mode 100644 src/SOL011/NSPerformanceManagementNotification/NSPerformanceManagementNotification.yaml diff --git a/src/SOL011/NSFaultManagementNotification/NSFaultManagementNotification.yaml b/src/SOL011/NSFaultManagementNotification/NSFaultManagementNotification.yaml new file mode 100644 index 0000000..c2de980 --- /dev/null +++ b/src/SOL011/NSFaultManagementNotification/NSFaultManagementNotification.yaml @@ -0,0 +1,41 @@ +swagger: "2.0" + +info: + version: "1.1.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" + title: "SOL011 - NS Fault Management Interface" + description: > + SOL011 - NS Fault Management 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 + license: + name: "ETSI Forge copyright notice" + url: https://forge.etsi.org/etsi-forge-copyright-notice.txt + contact: + name: "NFV-SOL WG" + +externalDocs: + description: ETSI GS NFV-SOL 011 V3.3.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/011/03.03.01_60/gs_NFV-SOL011v030301p.pdf + +basePath: /callback/v1 + +schemes: + - http + - https + +consumes: + - application/json + +produces: + - application/json + +paths: + '/URI_is_provided_by_the_client_when_creating_the_subscription-AlarmNotification': + $ref: 'https://forge.etsi.org/rep/nfv/SOL005/raw/v2.6.1/src/SOL005/NSFaultManagementNotification/NSFaultManagementNotification.yaml#/paths/~URI_is_provided_by_the_client_when_creating_the_subscription-AlarmNotification' + '/URI_is_provided_by_the_client_when_creating_the_subscription-AlarmClearedNotification': + $ref: 'https://forge.etsi.org/rep/nfv/SOL005/raw/v2.6.1/src/SOL005/NSFaultManagementNotification/NSFaultManagementNotification.yaml#/paths/~URI_is_provided_by_the_client_when_creating_the_subscription-AlarmClearedNotification' + '/URI_is_provided_by_the_client_when_creating_the_subscription-AlarmListRebuiltNotification': + $ref: 'https://forge.etsi.org/rep/nfv/SOL005/raw/v2.6.1/src/SOL005/NSFaultManagementNotification/NSFaultManagementNotification.yaml#/paths/~URI_is_provided_by_the_client_when_creating_the_subscription-AlarmListRebuiltNotification' diff --git a/src/SOL011/NSLifecycleManagementNotification/NSLifecycleManagementNotification.yaml b/src/SOL011/NSLifecycleManagementNotification/NSLifecycleManagementNotification.yaml new file mode 100644 index 0000000..cc54c7c --- /dev/null +++ b/src/SOL011/NSLifecycleManagementNotification/NSLifecycleManagementNotification.yaml @@ -0,0 +1,41 @@ +swagger: "2.0" + +info: + version: "1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" + title: "SOL011 - NS Lifecycle Management Interface" + description: > + SOL011 - NS Lifecycle Management 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 + license: + name: "ETSI Forge copyright notice" + url: https://forge.etsi.org/etsi-forge-copyright-notice.txt + contact: + name: "NFV-SOL WG" + +externalDocs: + description: ETSI GS NFV-SOL 011 V3.3.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/011/03.03.01_60/gs_NFV-SOL011v030301p.pdf + + +basePath: /callback/v1 + +schemes: + - http + - https + +consumes: + - application/json +produces: + - application/json + +paths: + '/URI_is_provided_by_the_client_when_creating_the_subscription-NsLcmOperationOccurrenceNotification': + $ref: 'https://forge.etsi.org/rep/nfv/SOL005/raw/v2.6.1/src/SOL005/NSLifecycleManagementNotification/NSLifecycleManagementNotification.yaml#/paths/~URI_is_provided_by_the_client_when_creating_the_subscription-NsLcmOperationOccurrenceNotification' + '/URI_is_provided_by_the_client_when_creating_the_subscription-NsIdentifierCreationNotification': + $ref: 'https://forge.etsi.org/rep/nfv/SOL005/raw/v2.6.1/src/SOL005/NSLifecycleManagementNotification/NSLifecycleManagementNotification.yaml#/paths/~URI_is_provided_by_the_client_when_creating_the_subscription-NsIdentifierCreationNotification' + '/URI_is_provided_by_the_client_when_creating_the_subscription-NsIdentifierDeletionNotification': + $ref: 'https://forge.etsi.org/rep/nfv/SOL005/raw/v2.6.1/src/SOL005/NSLifecycleManagementNotification/NSLifecycleManagementNotification.yaml#/paths/~URI_is_provided_by_the_client_when_creating_the_subscription-NsIdentifierDeletionNotification' \ No newline at end of file diff --git a/src/SOL011/NSPerformanceManagementNotification/NSPerformanceManagementNotification.yaml b/src/SOL011/NSPerformanceManagementNotification/NSPerformanceManagementNotification.yaml new file mode 100644 index 0000000..e36f102 --- /dev/null +++ b/src/SOL011/NSPerformanceManagementNotification/NSPerformanceManagementNotification.yaml @@ -0,0 +1,39 @@ +swagger: "2.0" + +info: + version: "1.1.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" + title: "SOL011 - NS Performance Management Interface" + description: > + SOL011 - NS Performance Management 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 + license: + name: "ETSI Forge copyright notice" + url: https://forge.etsi.org/etsi-forge-copyright-notice.txt + contact: + name: "NFV-SOL WG" + +externalDocs: + description: ETSI GS NFV-SOL 011 V3.3.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/011/03.03.01_60/gs_NFV-SOL011v030301p.pdf + +basePath: /callback/v1 + +schemes: + - http + - https + +consumes: + - application/json + +produces: + - application/json + +paths: + '/URI_is_provided_by_the_client_when_creating_the_subscription_PerformanceInformationAvailableNotification': + $ref: 'https://forge.etsi.org/rep/nfv/SOL005/raw/v2.6.1/src/SOL005/NSPerformanceManagementNotification/NSPerformanceManagementNotification.yaml#/paths/~URI_is_provided_by_the_client_when_creating_the_subscription_PerformanceInformationAvailableNotificatio' + '/URI_is_provided_by_the_client_when_creating_the_subscription_ThresholdCrossedNotification': + $ref: 'https://forge.etsi.org/rep/nfv/SOL005/raw/v2.6.1/src/SOL005/NSPerformanceManagementNotification/NSPerformanceManagementNotification.yaml#/paths/~URI_is_provided_by_the_client_when_creating_the_subscription_ThresholdCrossedNotification' \ No newline at end of file -- GitLab From 8d6708c6e7e3932cedf5304a514c7aea493e7abe Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Thu, 23 Jan 2020 17:20:50 +0100 Subject: [PATCH 19/24] fix references to SOL005 notifications --- .../NSFaultManagementNotification.yaml | 6 +++--- .../NSLifecycleManagementNotification.yaml | 6 +++--- .../NSPerformanceManagementNotification.yaml | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/SOL011/NSFaultManagementNotification/NSFaultManagementNotification.yaml b/src/SOL011/NSFaultManagementNotification/NSFaultManagementNotification.yaml index c2de980..52b13ce 100644 --- a/src/SOL011/NSFaultManagementNotification/NSFaultManagementNotification.yaml +++ b/src/SOL011/NSFaultManagementNotification/NSFaultManagementNotification.yaml @@ -34,8 +34,8 @@ produces: paths: '/URI_is_provided_by_the_client_when_creating_the_subscription-AlarmNotification': - $ref: 'https://forge.etsi.org/rep/nfv/SOL005/raw/v2.6.1/src/SOL005/NSFaultManagementNotification/NSFaultManagementNotification.yaml#/paths/~URI_is_provided_by_the_client_when_creating_the_subscription-AlarmNotification' + $ref: 'https://forge.etsi.org/rep/nfv/SOL005/raw/v2.6.1/src/SOL005/NSFaultManagementNotification/NSFaultManagementNotification.yaml#/paths/~1URI_is_provided_by_the_client_when_creating_the_subscription-AlarmNotification' '/URI_is_provided_by_the_client_when_creating_the_subscription-AlarmClearedNotification': - $ref: 'https://forge.etsi.org/rep/nfv/SOL005/raw/v2.6.1/src/SOL005/NSFaultManagementNotification/NSFaultManagementNotification.yaml#/paths/~URI_is_provided_by_the_client_when_creating_the_subscription-AlarmClearedNotification' + $ref: 'https://forge.etsi.org/rep/nfv/SOL005/raw/v2.6.1/src/SOL005/NSFaultManagementNotification/NSFaultManagementNotification.yaml#/paths/~1URI_is_provided_by_the_client_when_creating_the_subscription-AlarmClearedNotification' '/URI_is_provided_by_the_client_when_creating_the_subscription-AlarmListRebuiltNotification': - $ref: 'https://forge.etsi.org/rep/nfv/SOL005/raw/v2.6.1/src/SOL005/NSFaultManagementNotification/NSFaultManagementNotification.yaml#/paths/~URI_is_provided_by_the_client_when_creating_the_subscription-AlarmListRebuiltNotification' + $ref: 'https://forge.etsi.org/rep/nfv/SOL005/raw/v2.6.1/src/SOL005/NSFaultManagementNotification/NSFaultManagementNotification.yaml#/paths/~1URI_is_provided_by_the_client_when_creating_the_subscription-AlarmListRebuiltNotification' diff --git a/src/SOL011/NSLifecycleManagementNotification/NSLifecycleManagementNotification.yaml b/src/SOL011/NSLifecycleManagementNotification/NSLifecycleManagementNotification.yaml index cc54c7c..4266cbf 100644 --- a/src/SOL011/NSLifecycleManagementNotification/NSLifecycleManagementNotification.yaml +++ b/src/SOL011/NSLifecycleManagementNotification/NSLifecycleManagementNotification.yaml @@ -34,8 +34,8 @@ produces: paths: '/URI_is_provided_by_the_client_when_creating_the_subscription-NsLcmOperationOccurrenceNotification': - $ref: 'https://forge.etsi.org/rep/nfv/SOL005/raw/v2.6.1/src/SOL005/NSLifecycleManagementNotification/NSLifecycleManagementNotification.yaml#/paths/~URI_is_provided_by_the_client_when_creating_the_subscription-NsLcmOperationOccurrenceNotification' + $ref: 'https://forge.etsi.org/rep/nfv/SOL005/raw/v2.6.1/src/SOL005/NSLifecycleManagementNotification/NSLifecycleManagementNotification.yaml#/paths/~1URI_is_provided_by_the_client_when_creating_the_subscription-NsLcmOperationOccurrenceNotification' '/URI_is_provided_by_the_client_when_creating_the_subscription-NsIdentifierCreationNotification': - $ref: 'https://forge.etsi.org/rep/nfv/SOL005/raw/v2.6.1/src/SOL005/NSLifecycleManagementNotification/NSLifecycleManagementNotification.yaml#/paths/~URI_is_provided_by_the_client_when_creating_the_subscription-NsIdentifierCreationNotification' + $ref: 'https://forge.etsi.org/rep/nfv/SOL005/raw/v2.6.1/src/SOL005/NSLifecycleManagementNotification/NSLifecycleManagementNotification.yaml#/paths/~1URI_is_provided_by_the_client_when_creating_the_subscription-NsIdentifierCreationNotification' '/URI_is_provided_by_the_client_when_creating_the_subscription-NsIdentifierDeletionNotification': - $ref: 'https://forge.etsi.org/rep/nfv/SOL005/raw/v2.6.1/src/SOL005/NSLifecycleManagementNotification/NSLifecycleManagementNotification.yaml#/paths/~URI_is_provided_by_the_client_when_creating_the_subscription-NsIdentifierDeletionNotification' \ No newline at end of file + $ref: 'https://forge.etsi.org/rep/nfv/SOL005/raw/v2.6.1/src/SOL005/NSLifecycleManagementNotification/NSLifecycleManagementNotification.yaml#/paths/~1URI_is_provided_by_the_client_when_creating_the_subscription-NsIdentifierDeletionNotification' \ No newline at end of file diff --git a/src/SOL011/NSPerformanceManagementNotification/NSPerformanceManagementNotification.yaml b/src/SOL011/NSPerformanceManagementNotification/NSPerformanceManagementNotification.yaml index e36f102..bdc71a8 100644 --- a/src/SOL011/NSPerformanceManagementNotification/NSPerformanceManagementNotification.yaml +++ b/src/SOL011/NSPerformanceManagementNotification/NSPerformanceManagementNotification.yaml @@ -34,6 +34,6 @@ produces: paths: '/URI_is_provided_by_the_client_when_creating_the_subscription_PerformanceInformationAvailableNotification': - $ref: 'https://forge.etsi.org/rep/nfv/SOL005/raw/v2.6.1/src/SOL005/NSPerformanceManagementNotification/NSPerformanceManagementNotification.yaml#/paths/~URI_is_provided_by_the_client_when_creating_the_subscription_PerformanceInformationAvailableNotificatio' + $ref: 'https://forge.etsi.org/rep/nfv/SOL005/raw/v2.6.1/src/SOL005/NSPerformanceManagementNotification/NSPerformanceManagementNotification.yaml#/paths/~1URI_is_provided_by_the_client_when_creating_the_subscription_PerformanceInformationAvailableNotificatio' '/URI_is_provided_by_the_client_when_creating_the_subscription_ThresholdCrossedNotification': - $ref: 'https://forge.etsi.org/rep/nfv/SOL005/raw/v2.6.1/src/SOL005/NSPerformanceManagementNotification/NSPerformanceManagementNotification.yaml#/paths/~URI_is_provided_by_the_client_when_creating_the_subscription_ThresholdCrossedNotification' \ No newline at end of file + $ref: 'https://forge.etsi.org/rep/nfv/SOL005/raw/v2.6.1/src/SOL005/NSPerformanceManagementNotification/NSPerformanceManagementNotification.yaml#/paths/~1URI_is_provided_by_the_client_when_creating_the_subscription_ThresholdCrossedNotification' \ No newline at end of file -- GitLab From 50d55c3af96da71eaf1febc8b60de286c58b5b10 Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Sun, 26 Jan 2020 22:11:55 +0100 Subject: [PATCH 20/24] Added NS Instance Usage Notification API --- .../NSInstanceUsageNotification.yaml | 581 ++++++++++++++++++ 1 file changed, 581 insertions(+) create mode 100644 src/SOL011/NSInstanceUsageNotification/NSInstanceUsageNotification.yaml diff --git a/src/SOL011/NSInstanceUsageNotification/NSInstanceUsageNotification.yaml b/src/SOL011/NSInstanceUsageNotification/NSInstanceUsageNotification.yaml new file mode 100644 index 0000000..f1fd136 --- /dev/null +++ b/src/SOL011/NSInstanceUsageNotification/NSInstanceUsageNotification.yaml @@ -0,0 +1,581 @@ +openapi: 3.0.2 +info: + version: 1.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 + title: SOL011 - NS Instance Usage Notification Interface + description: > + SOL011 - NS Instance Usage Notification Interface + + IMPORTANT: Please note that this file might be not aligned to the current version of the ETSI Group Specification + it refers to. 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 +externalDocs: + description: ETSI GS NFV-SOL 011 V3.3.1 + url: https://docbox.etsi.org/ISG/NFV/Open/Drafts/SOL011ed331_Or-Or_Stage_3/NFV-SOL011ed331v020.zip + +security: + - OauthSecurity: + - all +servers: + - url: http://0.0.0.0/nsiun/v1 + - url: https://0.0.0.0/nsiun/v1 + +paths: + "/api_versions": + $ref: '../endpoints/SOL011_endpoints.yaml#/endpoints/api_versions' + + "/subscriptions": + description: >- + This resource represents subscriptions. The client can use this resource to subscribe to notifications + related to NS instance usage, and to query its subscriptions. + post: + description: >- + The POST method creates a new subscription. + parameters: + - $ref: "../components/SOL011_params.yaml#/components/parameters/Version" + - $ref: "../components/SOL011_params.yaml#/components/parameters/Accept" + - $ref: "../components/SOL011_params.yaml#/components/parameters/ContentType" + - $ref: "../components/SOL011_params.yaml#/components/parameters/Authorization" + requestBody: + $ref: "#/components/requestBodies/NsInstanceUsageSubscriptionRequest" + responses: + 201: + $ref: '#/components/responses/Subscriptions.Post.201' + 303: + $ref: '#/components/responses/Subscriptions.Post.303' + 400: + $ref: ../components/SOL011_resp.yaml#/components/responses/400 + 401: + $ref: ../components/SOL011_resp.yaml#/components/responses/401 + 403: + $ref: ../components/SOL011_resp.yaml#/components/responses/403 + 404: + $ref: ../components/SOL011_resp.yaml#/components/responses/404 + 405: + $ref: ../components/SOL011_resp.yaml#/components/responses/405 + 406: + $ref: ../components/SOL011_resp.yaml#/components/responses/406 + 422: + $ref: ../components/SOL011_resp.yaml#/components/responses/422 + 500: + $ref: ../components/SOL011_resp.yaml#/components/responses/500 + 503: + $ref: ../components/SOL011_resp.yaml#/components/responses/503 + 504: + $ref: ../components/SOL011_resp.yaml#/components/responses/504 + get: + description: >- + The GET method queries the list of active subscriptions of the functional block that invokes the method. + It can be used e.g. for resynchronization after error situations. + parameters: + - $ref: "../components/SOL011_params.yaml#/components/parameters/Version" + - $ref: "../components/SOL011_params.yaml#/components/parameters/Accept" + - $ref: "../components/SOL011_params.yaml#/components/parameters/Authorization" + - $ref: "../components/SOL011_params.yaml#/components/parameters/filter" + - $ref: "../components/SOL011_params.yaml#/components/parameters/nextpage_opaque_marker" + responses: + 201: + $ref: "#/components/responses/Subscriptions.Get.200" + 400: + $ref: ../components/SOL011_resp.yaml#/components/responses/400 + 401: + $ref: ../components/SOL011_resp.yaml#/components/responses/401 + 403: + $ref: ../components/SOL011_resp.yaml#/components/responses/403 + 404: + $ref: ../components/SOL011_resp.yaml#/components/responses/404 + 405: + $ref: ../components/SOL011_resp.yaml#/components/responses/405 + 406: + $ref: ../components/SOL011_resp.yaml#/components/responses/406 + 422: + $ref: ../components/SOL011_resp.yaml#/components/responses/422 + 500: + $ref: ../components/SOL011_resp.yaml#/components/responses/500 + 503: + $ref: ../components/SOL011_resp.yaml#/components/responses/503 + 504: + $ref: ../components/SOL011_resp.yaml#/components/responses/504 + + "/subscriptions/{subscriptionId}": + description: >- + This resource represents an individual subscription. The client can use this resource to read and to + terminate a subscription to notifications related to NS instance usage. + get: + description: >- + The GET method retrieves information about a subscription by reading an "individual subscription" resource. + parameters: + - $ref: "../components/SOL011_params.yaml#/components/parameters/Version" + - $ref: "../components/SOL011_params.yaml#/components/parameters/Accept" + - $ref: "../components/SOL011_params.yaml#/components/parameters/ContentType" + - $ref: "../components/SOL011_params.yaml#/components/parameters/Authorization" + responses: + 200: + $ref: '#/components/responses/Subscription.Get.200' + 400: + $ref: ../components/SOL011_resp.yaml#/components/responses/400 + 401: + $ref: ../components/SOL011_resp.yaml#/components/responses/401 + 403: + $ref: ../components/SOL011_resp.yaml#/components/responses/403 + 404: + $ref: ../components/SOL011_resp.yaml#/components/responses/404 + 405: + $ref: ../components/SOL011_resp.yaml#/components/responses/405 + 406: + $ref: ../components/SOL011_resp.yaml#/components/responses/406 + 422: + $ref: ../components/SOL011_resp.yaml#/components/responses/422 + 500: + $ref: ../components/SOL011_resp.yaml#/components/responses/500 + 503: + $ref: ../components/SOL011_resp.yaml#/components/responses/503 + 504: + $ref: ../components/SOL011_resp.yaml#/components/responses/504 + delete: + description: >- + The DELETE method terminates an individual subscription. + parameters: + - $ref: "../components/SOL011_params.yaml#/components/parameters/Version" + - $ref: "../components/SOL011_params.yaml#/components/parameters/Accept" + - $ref: "../components/SOL011_params.yaml#/components/parameters/ContentType" + - $ref: "../components/SOL011_params.yaml#/components/parameters/Authorization" + responses: + 200: + $ref: '#/components/responses/Subscription.Delete.204' + 400: + $ref: ../components/SOL011_resp.yaml#/components/responses/400 + 401: + $ref: ../components/SOL011_resp.yaml#/components/responses/401 + 403: + $ref: ../components/SOL011_resp.yaml#/components/responses/403 + 404: + $ref: ../components/SOL011_resp.yaml#/components/responses/404 + 405: + $ref: ../components/SOL011_resp.yaml#/components/responses/405 + 406: + $ref: ../components/SOL011_resp.yaml#/components/responses/406 + 422: + $ref: ../components/SOL011_resp.yaml#/components/responses/422 + 500: + $ref: ../components/SOL011_resp.yaml#/components/responses/500 + 503: + $ref: ../components/SOL011_resp.yaml#/components/responses/503 + 504: + $ref: ../components/SOL011_resp.yaml#/components/responses/504 + + "/URI-is-provided-by-the-client-when-creating-the-subscription-NSInstanceUsageNotification": + description: > + This resource represents a notification endpoint. The NFVO-C can use this resource to send + notifications related to NS instance usage to a subscribed NFVO-N, which has provided the + URI of this resource during the subscription process + post: + description: > + The POST method delivers a notification from the NFVO-C to the NFVO-N. + parameters: + - $ref: "../components/SOL011_params.yaml#/components/parameters/Version" + - $ref: "../components/SOL011_params.yaml#/components/parameters/ContentType" + - $ref: "../components/SOL011_params.yaml#/components/parameters/Accept" + - $ref: "../components/SOL011_params.yaml#/components/parameters/Authorization" + requestBody: + $ref: "#/components/requestBodies/NsInstanceUsageNotification" + responses: + 204: + $ref: "#/components/responses/Notification.Post.204" + 400: + $ref: ../components/SOL011_resp.yaml#/components/responses/400 + 401: + $ref: ../components/SOL011_resp.yaml#/components/responses/401 + 403: + $ref: ../components/SOL011_resp.yaml#/components/responses/403 + 404: + $ref: ../components/SOL011_resp.yaml#/components/responses/404 + 405: + $ref: ../components/SOL011_resp.yaml#/components/responses/405 + 406: + $ref: ../components/SOL011_resp.yaml#/components/responses/406 + 422: + $ref: ../components/SOL011_resp.yaml#/components/responses/422 + 500: + $ref: ../components/SOL011_resp.yaml#/components/responses/500 + 503: + $ref: ../components/SOL011_resp.yaml#/components/responses/503 + 504: + $ref: ../components/SOL011_resp.yaml#/components/responses/504 + get: + description: > + The GET method allows the server to test the notification endpoint that is provided + by the client, e.g., during the subscription process. + parameters: + - $ref: "../components/SOL011_params.yaml#/components/parameters/Version" + - $ref: "../components/SOL011_params.yaml#/components/parameters/Accept" + - $ref: "../components/SOL011_params.yaml#/components/parameters/Authorization" + responses: + 204: + $ref: "#/components/responses/Notification.Get.204" + 400: + $ref: ../components/SOL011_resp.yaml#/components/responses/400 + 401: + $ref: ../components/SOL011_resp.yaml#/components/responses/401 + 403: + $ref: ../components/SOL011_resp.yaml#/components/responses/403 + 404: + $ref: ../components/SOL011_resp.yaml#/components/responses/404 + 405: + $ref: ../components/SOL011_resp.yaml#/components/responses/405 + 406: + $ref: ../components/SOL011_resp.yaml#/components/responses/406 + 422: + $ref: ../components/SOL011_resp.yaml#/components/responses/422 + 500: + $ref: ../components/SOL011_resp.yaml#/components/responses/500 + 503: + $ref: ../components/SOL011_resp.yaml#/components/responses/503 + 504: + $ref: ../components/SOL011_resp.yaml#/components/responses/504 + +components: + + requestBodies: + NsInstanceUsageSubscriptionRequest: + description: + Details of the subscription to be created, as defined in clause 8.6.2.2. + content: + application/json: + schema: + $ref: "#/components/schemas/NsInstanceUsageSubscriptionRequest" + + NsInstanceUsageNotification: + description: + A notification about the change of usage of an NS instance as part of + a composite NS managed by the server. + content: + application/json: + schema: + $ref: "#/components/schemas/NsInstanceUsageNotification" + + responses: + Subscriptions.Post.201: + description: >- + Shall be returned when the subscription has been created successfully. + The response body shall contain a representation of the created + "individual subscription" resource. + The HTTP response shall include a "Location" HTTP header that points to + the created "individual subscription" resource. + 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. + schema: + type: string + Version: + description: > + Version of the API used in the response. + schema: + type: string + Location: + description: > + URI of the "Individual subscription" resource just created. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/NsInstanceUsageSubscription' + + Subscriptions.Post.303: + description: >- + Shall be returned if a subscription with the same callbackURI and the + same filter already exists and the policy of the NFVO-C is to not create + redundant subscriptions. + The HTTP response shall include a "Location" HTTP header that contains + the resource URI of the existing "individual subscription" resource. + 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. + schema: + type: string + Version: + description: > + Version of the API used in the response. + schema: + type: string + Location: + description: > + URI of the "Individual subscription" resource just created. + schema: + type: string + + Subscriptions.Get.200: + description: >- + Shall be returned when the list of subscriptions has been queried successfully. + The response body shall contain in an array the representations of all active + subscriptions of the functional block that invokes the method, i.e. zero or more + representations of NS instance usage notification subscriptions as defined in + clause 8.6.2.3. + If the "filter" URI parameter was supplied in the request, the data in the response + body shall have been transformed according to the rules specified in clause 5.2.2 + of ETSI GS NFV-SOL 013. + If the NFVO-C supports alternative 2 (paging) according to clause 5.4.2.1 of + ETSI GS NFV-SOL 013 for this resource, inclusion of the Link HTTP header in this + response shall follow the provisions in clause 5.4.2.3 of ETSI GS NFV-SOL 013. + 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. + schema: + type: string + Version: + description: > + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + type: array + items: + $ref: "#/components/schemas/NsInstanceUsageSubscription" + + Subscription.Get.200: + description: >- + Shall be returned when information about an individual subscription has been + read successfully. + The response body shall contain a representation of the "individual subscription" + resource. + 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. + schema: + type: string + Version: + description: > + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/NsInstanceUsageSubscription' + + Subscription.Delete.204: + description: >- + Shall be returned when the "individual subscription" resource has been + 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. + schema: + type: string + Version: + description: > + Version of the API used in the response. + schema: + type: string + + Notification.Post.204: + description: >- + Shall be returned when 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. + schema: + type: string + Version: + description: > + Version of the API used in the response. + schema: + type: string + + Notification.Get.204: + description: >- + Shall be returned when the notification 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. + schema: + type: string + Version: + description: > + Version of the API used in the response. + schema: + type: string + + schemas: + NsInstanceUsageSubscriptionRequest: + description: >- + This type represents a subscription request related to notifications about NS + instance usage. It shall comply with the provisions defined in table 8.6.2.2-1. + type: object + required: + - callbackUri + properties: + filter: + description: >- + Filter settings for this subscription, to define the subset of all notifications + this subscription relates to. A particular notification is sent to the subscriber + if the filter matches, or if there is no filter. + $ref: "#/components/schemas/NsInstanceUsageNotificationsFilter" + callbackUri: + description: >- + The URI of the endpoint to send the notification to. + $ref: "../components/SOL011_schemas.yaml#/components/schemas/Uri" + authentication: + description: >- + Authentication parameters to configure the use of Authorization when sending + notifications corresponding to this subscription, as defined in clause 8.3.4 + of ETSI GS NFV-SOL 013. + + This attribute shall only be present if the subscriber requires authorization + of notifications. + $ref: "../components/SOL011_schemas.yaml#/components/schemas/SubscriptionAuthentication" + + NsInstanceUsageSubscription: + description: >- + This type represents a subscription related to notifications about NS instance usage. + It shall comply with the provisions defined in table 8.6.2.3-1. + type: object + required: + - id + - callbackUri + - _links + properties: + id: + description: >- + Identifier that identifies the subscription. + $ref: "../components/SOL011_schemas.yaml#/components/schemas/Identifier" + filter: + description: >- + Filter settings for this subscription, to define the subset of all notifications + this subscription relates to. A particular notification is sent to the subscriber + if the filter matches, or if there is no filter. + $ref: "#/components/schemas/NsInstanceUsageNotificationsFilter" + callbackUri: + description: >- + The URI of the endpoint to send the notification to. + $ref: "../components/SOL011_schemas.yaml#/components/schemas/Uri" + _links: + description: >- + Links to resources related to this resource. + type: object + required: + - self + properties: + self: + description: >- + URI of this resource. + $ref: "../components/SOL011_schemas.yaml#/components/schemas/Link" + + NsInstanceUsageNotification: + description: >- + This type represents an NS instance usage notification, which indicates the start + or end of usage of an NS instance as a part of a composite NS managed by the NFVO-C. + It shall comply with the provisions defined in table 8.6.2.4-1. + type: object + required: + - id + - notificationType + - subscriptionId + - timeStamp + - nsInstanceId + - status + - _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: "../components/SOL011_schemas.yaml#/components/schemas/Identifier" + notificationType: + description: >- + Discriminator for the different notification types. Shall be set to + "NsInstanceUsageNotification" for this notification type. + type: string + subscriptionId: + description: >- + Identifier of the subscription that this notification relates to. + $ref: "../components/SOL011_schemas.yaml#/components/schemas/Identifier" + timeStamp: + description: >- + Date and time of the generation of the notification. + $ref: "../components/SOL011_schemas.yaml#/components/schemas/DateTime" + nsInstanceId: + description: >- + Identifier of the NS instance affected. + $ref: "../components/SOL011_schemas.yaml#/components/schemas/Identifier" + status: + description: >- + Indicates whether this notification reports about the start of the usage of + an NS instance or about the end of the usage of an NS instance. + $ref: "#/components/schemas/NsInstanceUsageStatusType" + _links: + description: >- + Links to resources related to this notification. + $ref: "../components/SOL011_schemas.yaml#/components/schemas/NotificationLink" + + NsInstanceUsageNotificationsFilter: + description: >- + This type represents a subscription filter related to notifications about NS + instance usage. It shall comply with the provisions defined in table 8.6.3.1-1. + type: object + properties: + notificationTypes: + description: >- + Match particular notification types. + + Permitted values: + - NsInstanceUsageNotification + + NOTE: The permitted values of the "notificationTypes" attribute are spelled + exactly as the names of the notification types to facilitate automated code + generation systems. + type: array + items: + type: string + enum: + - NsInstanceUsageNotification + nsInstanceId: + description: >- + If present, match NS instances with an instance identifier listed in this attribute. + type: array + items: + $ref: "../components/SOL011_schemas.yaml#/components/schemas/Identifier" + status: + description: >- + If present, match a particular status of usage of an NS instance. + $ref: "#/components/schemas/NsInstanceUsageStatusType" + + NsInstanceUsageStatusType: + description: >- + The enumeration NsInstanceUsageStatusType shall comply with the provisions defined + in table 8.6.4.3-1. + type: string + enum: + - START + - END -- GitLab From b7c9170a480778e9b4bb865bf67294e3be26ae7a Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Tue, 28 Jan 2020 14:34:27 +0100 Subject: [PATCH 21/24] added missing parameter --- .../NSInstanceUsageNotification.yaml | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/SOL011/NSInstanceUsageNotification/NSInstanceUsageNotification.yaml b/src/SOL011/NSInstanceUsageNotification/NSInstanceUsageNotification.yaml index f1fd136..4df5be0 100644 --- a/src/SOL011/NSInstanceUsageNotification/NSInstanceUsageNotification.yaml +++ b/src/SOL011/NSInstanceUsageNotification/NSInstanceUsageNotification.yaml @@ -104,6 +104,8 @@ paths: description: >- This resource represents an individual subscription. The client can use this resource to read and to terminate a subscription to notifications related to NS instance usage. + parameters: + - $ref: "#/components/parameters/subscriptionId" get: description: >- The GET method retrieves information about a subscription by reading an "individual subscription" resource. @@ -238,7 +240,16 @@ paths: $ref: ../components/SOL011_resp.yaml#/components/responses/504 components: - + parameters: + subscriptionId: + name: subscriptionId + in: path + description: >- + Identifier of the subscription + required: true + schema: + $ref: '../components/SOL011_schemas.yaml#/components/schemas/Identifier' + requestBodies: NsInstanceUsageSubscriptionRequest: description: -- GitLab From c687bb5c2e045065b4367d916e864711e32803eb Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Thu, 30 Jan 2020 16:21:32 +0100 Subject: [PATCH 22/24] updated NSD Management OpenAPI to refer to SOL005 --- src/SOL011/NSDManagement/NSDManagement.yaml | 412 +++----------------- 1 file changed, 60 insertions(+), 352 deletions(-) diff --git a/src/SOL011/NSDManagement/NSDManagement.yaml b/src/SOL011/NSDManagement/NSDManagement.yaml index 22d796e..33a1d3b 100644 --- a/src/SOL011/NSDManagement/NSDManagement.yaml +++ b/src/SOL011/NSDManagement/NSDManagement.yaml @@ -1,372 +1,80 @@ -openapi: 3.0.2 +swagger: "2.0" + info: - version: 1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 - title: SOL011 - NSD Management Interface + version: "1.1.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" + title: "SOL011 - NSD Management Interface" description: > - SOL011 - NSD Management Interface - - IMPORTANT: Please note that this file might be not aligned to the current version of the ETSI Group Specification - it refers to. 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= + SOL011 - NSD Management 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 license: - name: ETSI Forge copyright notice + name: "ETSI Forge copyright notice" url: https://forge.etsi.org/etsi-forge-copyright-notice.txt + contact: + name: "NFV-SOL WG" + externalDocs: description: ETSI GS NFV-SOL 011 V3.3.1 url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/011/03.03.01_60/gs_NFV-SOL011v030301p.pdf -security: - - OauthSecurity: - - all -servers: - - url: http://127.0.0.1/nsd/v1 - - url: https://127.0.0.1/nsd/v1 +basePath: /nslcm/v1 + +schemes: + - http + - https + +consumes: + - application/json + +produces: + - application/json paths: "/api_versions": - $ref: '../endpoints/SOL011_endpoints.yaml#/endpoints/api_versions' + $ref: 'https://forge.etsi.org/rep/nfv/SOL005/raw/v2.6.1/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml#/paths/~1api-versions' "/ns_descriptors": - description: >- - It can be used by NFVO-C to query multiple NS descriptors from NFVO-N. parameters: - - $ref: "../components/SOL011_params.yaml#/components/parameters/Version" - - $ref: "../components/SOL011_params.yaml#/components/parameters/Accept" - - $ref: "../components/SOL011_params.yaml#/components/parameters/Authorization" + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235. + in: header + required: false + type: string + - name: Version + description: > + Version of the API requested to use when responding to this request. + in: header + required: true + type: string get: - description: >- - The GET method queries information about multiple NS descriptor resources. - This method shall follow the provisions specified in the clause 5.4.2.3.2 of ETSI GS NFV-SOL 005. - parameters: - - $ref: "../components/SOL011_params.yaml#/components/parameters/filter" - - $ref: "../components/SOL011_params.yaml#/components/parameters/all_fields" - - $ref: "../components/SOL011_params.yaml#/components/parameters/fields" - - $ref: "../components/SOL011_params.yaml#/components/parameters/exclude_fields" - - $ref: "../components/SOL011_params.yaml#/components/parameters/exclude_default" - - $ref: "../components/SOL011_params.yaml#/components/parameters/nextpage_opaque_marker" - - responses: - 200: - $ref: "#/components/responses/NsdInfos.Get.200" - 400: - $ref: "../components/SOL011_resp.yaml#/components/responses/400" - 401: - $ref: "../components/SOL011_resp.yaml#/components/responses/401" - 403: - $ref: "../components/SOL011_resp.yaml#/components/responses/403" - 404: - $ref: "../components/SOL011_resp.yaml#/components/responses/404" - 405: - $ref: "../components/SOL011_resp.yaml#/components/responses/405" - 406: - $ref: "../components/SOL011_resp.yaml#/components/responses/406" - 500: - $ref: "../components/SOL011_resp.yaml#/components/responses/500" - 503: - $ref: "../components/SOL011_resp.yaml#/components/responses/503" - 504: - $ref: "../components/SOL011_resp.yaml#/components/responses/504" + $ref: 'https://forge.etsi.org/rep/nfv/SOL005/raw/v2.6.1/src/SOL005/NSDManagement/NSDManagement.yaml#/paths/~1ns_descriptors/get' '/ns_descriptors/{nsdInfoId}': - description: >- - It can be used by NFVO-C to query an individual NS descriptor from NFVO-N. parameters: - - $ref: "#/components/parameters/nsdInfoId" - - $ref: "../components/SOL011_params.yaml#/components/parameters/Version" - - $ref: "../components/SOL011_params.yaml#/components/parameters/Accept" - - $ref: "../components/SOL011_params.yaml#/components/parameters/Authorization" - - get: - description: > - The GET method reads information about an individual NS descriptor resource. - This method shall follow the provisions specified in the clause 5.4.3.3.2 of ETSI GS NFV-SOL 005. - responses: - 200: - $ref: "#/components/responses/NsdInfo.Get.200" - 400: - $ref: "../components/SOL011_resp.yaml#/components/responses/400" - 401: - $ref: "../components/SOL011_resp.yaml#/components/responses/401" - 403: - $ref: "../components/SOL011_resp.yaml#/components/responses/403" - 404: - $ref: "../components/SOL011_resp.yaml#/components/responses/404" - 405: - $ref: "../components/SOL011_resp.yaml#/components/responses/405" - 406: - $ref: "../components/SOL011_resp.yaml#/components/responses/406" - 500: - $ref: "../components/SOL011_resp.yaml#/components/responses/500" - 503: - $ref: "../components/SOL011_resp.yaml#/components/responses/503" - 504: - $ref: "../components/SOL011_resp.yaml#/components/responses/504" - -components: - parameters: - nsdInfoId: - name: nsdInfoId - description: > - Identifier of the individual NS descriptor resource. - in: path - required: true - schema: + - name: nsdInfoId + description: > + Identifier of the individual NS descriptor resource. + in: path + required: true type: string - - responses: - NsdInfos.Get.200: - description: >- - 200 OK - Information about zero or more NS descriptors. - The response body shall contain in an array the - representations of zero or more NS descriptors, as - defined in clause 5.5.2.2. - If the NFVO supports alternative 2 (paging) according - to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for - this resource, inclusion of the Link HTTP header in - this response shall follow the provisions in clause - 5.4.2.3 of ETSI GS NFV-SOL 013. - headers: - Content-Type: - description: The MIME type of the body of the response. - schema: - 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: - type: string - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - schema: - type: string - maximum: 1 - minimum: 1 - Link: - description: > - Reference to other resources. Used for paging in the present document, see clause 4.7.2.1. - schema: - type: string - maximum: 1 - minimum: 0 - content: - application/json: - schema: - type: array - items: - $ref: "#/components/schemas/NsdInfo" - - NsdInfo.Get.200: - description: >- - 200 OK - Information about the individual NS descriptor. - The response body shall contain a representation of the individual NS descriptor, - as defined in clause 5.5.2.2. - headers: - Content-Type: - description: The MIME type of the body of the response. - schema: - 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: - type: string - maximum: 1 - minimum: 0 - Version: - description: > - Version of the API used in the response. - schema: - type: string - maximum: 1 - minimum: 1 - Link: - description: > - Reference to other resources. Used for paging in the present document, see clause 4.7.2.1. - schema: - type: string - maximum: 1 - minimum: 0 - content: - application/json: - schema: - $ref: "#/components/schemas/NsdInfo" - - schemas: - NsdInfo: - description: > - This type represents a response for the query NSD operation. - type: object - oneOf: - - required: - - id - - nsdOnboardingState - - nsdOperationalState - - nsdUsageState - - _links - - vnfPkgIds - - required: - - id - - nsdOnboardingState - - nsdOperationalState - - nsdUsageState - - _links - - nestedNsdInfoIds - properties: - id: - description: > - Identifier of the on boarded individual NS descriptor - resource. This identifier is allocated by the NFVO. - $ref: "../components/SOL011_schemas.yaml#/components/schemas/Identifier" - nsdId: - description: > - This identifier, which is allocated by the NSD - designer, identifies the NSD in a globally unique - way. It is copied from the NSD content and shall be - present after the NSD content is on-boarded. - $ref: "../components/SOL011_schemas.yaml#/components/schemas/Identifier" - nsdName: - type: string - description: > - Name of the on boarded NSD. This information is copied from the - NSD content and shall be present after the NSD content is on-boarded. - nsdVersion: - description: > - Version of the on-boarded NSD. This information is - copied from the NSD content and shall be present - after the NSD content is on-boarded. - $ref: "../components/SOL011_schemas.yaml#/components/schemas/Version" - nsdDesigner: - type: string - description: > - Designer of the on-boarded NSD. This information is copied - from the NSD content and shall be present after the NSD content is on-boarded. - nsdInvariantId: - description: > - This identifier, which is allocated by the NSD - designer, identifies an NSD in a version independent - manner. This information is copied from the NSD - content and shall be present after the NSD content is - on-boarded. - $ref: "../components/SOL011_schemas.yaml#/components/schemas/Identifier" - vnfPkgIds: - description: > - Identifies the VNF package for the VNFD referenced - by the on-boarded NS descriptor resource. - type: array - items: - $ref: "../components/SOL011_schemas.yaml#/components/schemas/Identifier" - pnfdInfoIds: - description: > - Identifies the PnfdInfo element for the PNFD - referenced by the on-boarded NS descriptor - resource. - type: array - items: - $ref: "../components/SOL011_schemas.yaml#/components/schemas/Identifier" - nestedNsdInfoIds: - description: > - Identifies the NsdInfo element for the nested NSD - referenced by the on-boarded NS descriptor - resource. - type: array - items: - $ref: "../components/SOL011_schemas.yaml#/components/schemas/Identifier" - nsdOnboardingState: - description: > - On boarding state of the individual NS descriptor resource. - $ref: "#/components/schemas/NsdOnboardingStateType" - onboardingFailureDetails: - description: > - Failure details of current on boarding procedure. See - clause 6.3 of ETSI GS NFV-SOL 013 for the details of "ProblemDetails" - structure. - It shall be present when the "nsdOnboardingState" - attribute is CREATED and the uploading or - processing fails in NFVO. - $ref: "../components/SOL011_schemas.yaml#/components/schemas/ProblemDetails" - nsdOperationalState: - description: > - Operational state of the individual NS descriptor - resource. This attribute can be modified with the - PATCH method. - $ref: "#/components/schemas/NsdOperationalStateType" - nsdUsageState: - description: > - Usage state of the individual NS descriptor resource. - $ref: "#/components/schemas/NsdUsageStateType" - userDefinedData: - description: > - User defined data for the individual NS descriptor - resource. This attribute can be modified with the - PATCH method. - $ref: "../components/SOL011_schemas.yaml#/components/schemas/KeyValuePairs" - _links: - type: object - required: - - self - - nsd_content - description: > - Links to resources related to this resource. - properties: - self: - description: > - URI of this resource. - $ref: "../components/SOL011_schemas.yaml#/components/schemas/Link" - nsd_content: - description: > - Link to the NSD content resource. - $ref: "../components/SOL011_schemas.yaml#/components/schemas/Link" - - NsdOperationalStateType: - type: string - description: > - The enumeration NsdOperationalStateType shall comply with the provisions - defined in Table 5.5.4.3-1 of GS NFV_SOL 005. It indicates the operational - state of the resource. - ENABLED = The operational state of the resource is enabled. - DISABLED = The operational state of the resource is disabled. - enum: - - ENABLED - - DISABLED - - NsdUsageStateType: - type: string - description: > - The enumeration NsdUsageStateType shall comply with the provisions - defined in Table 5.5.4.4-1 of GS NFV-SOL 005. It indicates the usage state - of the resource.IN_USE = The resource is in use.NOT_IN_USE = The resource - is not-in-use. - enum: - - IN_USE - - NOT_IN_USE - - NsdOnboardingStateType: - type: string - description: > - The enumeration NsdOnboardingStateType shall comply with the provisions - defined in Table 5.5.4.5-1 of GS NFV-SOL 005. It indicates the on-boarding - state of the NSD. - CREATED = The NSD information object is created. - UPLOADING = The associated NSD content is being uploaded. - PROCESSING = The associated NSD content is being processed, e.g. validation. - ONBOARDED = The associated NSD content is on-boarded. - enum: - - CREATED - - UPLOADING - - PROCESSING - - ONBOARDED + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235. + in: header + required: false + type: string + - name: Version + description: > + Version of the API requested to use when responding to this request. + in: header + required: true + type: string + get: + $ref: 'https://forge.etsi.org/rep/nfv/SOL005/raw/v2.6.1/src/SOL005/NSDManagement/NSDManagement.yaml#/paths/~1ns_descriptors/~1{nsdInfoId}/get' -- GitLab From f7f5a173f5cdf2e725afcf9d18b668dd376a73f3 Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Thu, 30 Jan 2020 16:23:55 +0100 Subject: [PATCH 23/24] fix --- src/SOL011/NSDManagement/NSDManagement.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SOL011/NSDManagement/NSDManagement.yaml b/src/SOL011/NSDManagement/NSDManagement.yaml index 33a1d3b..f6eedaa 100644 --- a/src/SOL011/NSDManagement/NSDManagement.yaml +++ b/src/SOL011/NSDManagement/NSDManagement.yaml @@ -76,5 +76,5 @@ paths: required: true type: string get: - $ref: 'https://forge.etsi.org/rep/nfv/SOL005/raw/v2.6.1/src/SOL005/NSDManagement/NSDManagement.yaml#/paths/~1ns_descriptors/~1{nsdInfoId}/get' + $ref: 'https://forge.etsi.org/rep/nfv/SOL005/raw/v2.6.1/src/SOL005/NSDManagement/NSDManagement.yaml#/paths/~1ns_descriptors~1{nsdInfoId}/get' -- GitLab From 7dfbb8f164f8241b72ed8fcb40d8f77b1e163432 Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Mon, 10 Feb 2020 12:07:54 +0100 Subject: [PATCH 24/24] fixed few inconsistencies after internal review --- src/SOL011/APIVersion/APIVersion.yaml | 10 +++++++++- src/SOL011/NSDManagement/NSDManagement.yaml | 2 +- .../NSInstanceUsageNotification.yaml | 2 +- .../NSLifecycleOperationGranting.yaml | 7 ++++++- 4 files changed, 17 insertions(+), 4 deletions(-) diff --git a/src/SOL011/APIVersion/APIVersion.yaml b/src/SOL011/APIVersion/APIVersion.yaml index 96f1345..5bdb07f 100644 --- a/src/SOL011/APIVersion/APIVersion.yaml +++ b/src/SOL011/APIVersion/APIVersion.yaml @@ -27,7 +27,15 @@ externalDocs: url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/011/03.03.01_60/gs_NFV-SOL011v030301p.pdf paths: - /nsdm/api_versions: + /nsd/api_versions: $ref: '../endpoints/SOL011_endpoints.yaml#/endpoints/api_versions' /nslcog/api_versions: $ref: '../endpoints/SOL011_endpoints.yaml#/endpoints/api_versions' + /nslcm/api_versions: + $ref: '../endpoints/SOL011_endpoints.yaml#/endpoints/api_versions' + /nsiun/api_versions: + $ref: '../endpoints/SOL011_endpoints.yaml#/endpoints/api_versions' + /nspm/api_versions: + $ref: '../endpoints/SOL011_endpoints.yaml#/endpoints/api_versions' + /nsfm/api_versions: + $ref: '../endpoints/SOL011_endpoints.yaml#/endpoints/api_versions' \ No newline at end of file diff --git a/src/SOL011/NSDManagement/NSDManagement.yaml b/src/SOL011/NSDManagement/NSDManagement.yaml index f6eedaa..3f00d71 100644 --- a/src/SOL011/NSDManagement/NSDManagement.yaml +++ b/src/SOL011/NSDManagement/NSDManagement.yaml @@ -20,7 +20,7 @@ externalDocs: description: ETSI GS NFV-SOL 011 V3.3.1 url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/011/03.03.01_60/gs_NFV-SOL011v030301p.pdf -basePath: /nslcm/v1 +basePath: /nsd/v1 schemes: - http diff --git a/src/SOL011/NSInstanceUsageNotification/NSInstanceUsageNotification.yaml b/src/SOL011/NSInstanceUsageNotification/NSInstanceUsageNotification.yaml index 4df5be0..cc83013 100644 --- a/src/SOL011/NSInstanceUsageNotification/NSInstanceUsageNotification.yaml +++ b/src/SOL011/NSInstanceUsageNotification/NSInstanceUsageNotification.yaml @@ -146,7 +146,7 @@ paths: - $ref: "../components/SOL011_params.yaml#/components/parameters/ContentType" - $ref: "../components/SOL011_params.yaml#/components/parameters/Authorization" responses: - 200: + 204: $ref: '#/components/responses/Subscription.Delete.204' 400: $ref: ../components/SOL011_resp.yaml#/components/responses/400 diff --git a/src/SOL011/NSLifecycleOperationGranting/NSLifecycleOperationGranting.yaml b/src/SOL011/NSLifecycleOperationGranting/NSLifecycleOperationGranting.yaml index 3c9a148..76912a3 100644 --- a/src/SOL011/NSLifecycleOperationGranting/NSLifecycleOperationGranting.yaml +++ b/src/SOL011/NSLifecycleOperationGranting/NSLifecycleOperationGranting.yaml @@ -211,6 +211,7 @@ components: required: - nsInstanceId - nsdId + - nsLcmOpOccId - lifecycleOperation properties: nsInstanceId: @@ -222,6 +223,10 @@ components: description: >- Identifier of the NSD that defines the NS for which the lifecycle management operation is to be granted. $ref: "../components/SOL011_schemas.yaml#/components/schemas/Identifier" + nsLcmOpOccId: + description: >- + The identifier of the NS lifecycle management operation occurrence associated to the GrantRequest.. + $ref: "../components/SOL011_schemas.yaml#/components/schemas/Identifier" lifecycleOperation: description: >- Type of the lifecycle management operation for which the granting is requested. @@ -245,7 +250,7 @@ components: Grant: description: >- - + This type represents a grant. It shall comply with the provisions defined in table 7.6.2.3-1. type: object required: - id -- GitLab